From 7930bfa7bf26c4cdde4486d4c1ab7b32c5880511 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 11:15:41 +0530 Subject: [PATCH 01/31] name fix --- nlptest/transform/representation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index a0c485205..6c68f5f48 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -37,9 +37,9 @@ def transform(self): alias_name = None -class GenderReprestation(BaseRepresentation): +class GenderRepresentation(BaseRepresentation): - alias_name = "gender_represtation" + alias_name = "gender_representation" def transform(data: List[Sample]): return super().transform() \ No newline at end of file From 478d5764bd0d627be1535eaa50103309245f9720 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 11:25:58 +0530 Subject: [PATCH 02/31] add representation test classes --- nlptest/transform/representation.py | 45 ++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 6c68f5f48..ed3138488 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -39,7 +39,50 @@ def transform(self): class GenderRepresentation(BaseRepresentation): - alias_name = "gender_representation" + alias_name = [ + "min_gender_representation_count", + "min_gender_representation_proportion" + ] + + def transform(data: List[Sample]): + return super().transform() + +class EthnicityRepresentation(BaseRepresentation): + + alias_name = [ + "min_ethnicity_name_representation_count", + "min_ethnicity_name_representation_proportion" + ] + + def transform(data: List[Sample]): + return super().transform() + +class LabelRepresentation(BaseRepresentation): + + alias_name = [ + "min_label_representation_count", + "min_label_representation_proportion" + ] + + def transform(data: List[Sample]): + return super().transform() + +class ReligionRepresentation(BaseRepresentation): + + alias_name = [ + "min_religion_name_representation_count", + "min_religion_name_representation_proportion" + ] + + def transform(data: List[Sample]): + return super().transform() + +class CountryEconomicRepresentation(BaseRepresentation): + + alias_name = [ + "min_country_economic_representation_count", + "min_country_economic_representation_proportion" + ] def transform(data: List[Sample]): return super().transform() \ No newline at end of file From 22207c91ca1126111dbaa6bbf704df278018155a Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 22:18:02 +0530 Subject: [PATCH 03/31] update utils --- nlptest/transform/representation.py | 58 +++++++++++++++++++++++++++-- nlptest/transform/utils.py | 5 +++ 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index ed3138488..bfd644dda 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List from nlptest.utils.custom_types import Sample - +from .utils import default_representation ,default_ehtnicity_representation, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names class BaseRepresentation(ABC): @@ -47,6 +47,7 @@ class GenderRepresentation(BaseRepresentation): def transform(data: List[Sample]): return super().transform() + class EthnicityRepresentation(BaseRepresentation): alias_name = [ @@ -54,8 +55,59 @@ class EthnicityRepresentation(BaseRepresentation): "min_ethnicity_name_representation_proportion" ] - def transform(data: List[Sample]): - return super().transform() + def transform( + dataset: List[Sample], + min_count: dict = default_ehtnicity_representation + ) -> pd.DataFrame(): + """Converts input sentences using a conversion dictionary + Args: + sample_list: List of sentences to process. + strategy: Config method to adjust where will context tokens added. start, end or combined. + starting_context: list of terms (context) to input at start of sentences. + ending_context: list of terms (context) to input at end of sentences. + Returns: + List of sentences that context added at to begging, end or both, randomly. + """ + # define a function to check if a word belongs to any of the given name lists + def check_name(word, name_lists): + return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) + + # initialize a dictionary to store the ethnicity representation + ethnicity_representation = {"black": 0, "asian": 0, "white": 0, "native_american": 0, "hispanic": 0, "inter_racial": 0} + representation_dict = min_count + + # iterate over the samples in the dataset + for sample in dataset: + # iterate over the expected results in the sample + for i in sample.expected_results.predictions: + # check if the word belongs to any of the name lists and update the ethnicity representation + if check_name(i.span.word, [white_names['first_names'], white_names['last_names']]): + ethnicity_representation["white"] += 1 + if check_name(i.span.word, [black_names['first_names'], black_names['last_names']]): + ethnicity_representation["black"] += 1 + if check_name(i.span.word, [hispanic_names['first_names'], hispanic_names['last_names']]): + ethnicity_representation["hispanic"] += 1 + if check_name(i.span.word, [asian_names['first_names'], asian_names['last_names']]): + ethnicity_representation["asian"] += 1 + if check_name(i.span.word, [inter_racial_names['last_names']]): + ethnicity_representation["inter_racial"] += 1 + if check_name(i.span.word, [native_american_names['last_names']]): + ethnicity_representation["native_american"] += 1 + + + expected_representation = {**default_ehtnicity_representation, **representation_dict} + actual_representation = {**default_ehtnicity_representation, **ethnicity_representation} + + try: + ethnicity_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"ethnicity_representation","Original":"-","Test_Case":[label for label in ethnicity_representation.keys()],"expected_result":[value for value in expected_representation.values()], + "actual_result":[value for value in actual_representation.values()]}) + + except: + raise ValueError(f"Check your labels. By default, we use these labels only : 'black', 'white', 'hispanic', 'inter_racial', 'asian_pacific_islander' and 'american_indian_alaskan' \n You provided : {representation_dict.keys()}") + ethnicity_representation_df = ethnicity_representation_df.assign(is_pass=ethnicity_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) + return ethnicity_representation_df + + class LabelRepresentation(BaseRepresentation): diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 62edc98e7..212e01714 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -661,3 +661,8 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: ent_type = None return terminology + + +default_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} + +default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} \ No newline at end of file From 9572230aafa0fb72869881e226e34c30a7b1b254 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 22:19:51 +0530 Subject: [PATCH 04/31] add label_representation test --- nlptest/transform/representation.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index bfd644dda..3133b851e 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -116,8 +116,33 @@ class LabelRepresentation(BaseRepresentation): "min_label_representation_proportion" ] - def transform(data: List[Sample]): - return super().transform() + def transform(data: List[Sample], min_count: dict = default_representation): + representation_dict = min_count + entity_representation={} + + for sample in data: + for i in sample.expected_results.predictions: + if i.entity=='O': + if i.entity not in entity_representation: + entity_representation[i.entity]=1 + else: + entity_representation[i.entity]+=1 + + elif i.entity in ['B-LOC','I-LOC','B-PER','I-PER','B-MISC','I-MISC','B-ORG','I-ORG']: + if i.entity.split("-")[1] not in entity_representation : + entity_representation[i.entity.split("-")[1]]=1 + else: + entity_representation[i.entity.split("-")[1]]+=1 + expected_representation = {**default_representation, **representation_dict} + actual_representation = {**default_representation, **entity_representation} + try: + label_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"label_representation","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], + "actual_result":[value for value in actual_representation.values()]}) + + except: + raise ValueError(f"Check your labels. By default, we use these labels only : 'O', 'LOC', 'PER', 'MISC', 'ORG' \n You provided : {representation_dict.keys()}") + label_representation_df = label_representation_df.assign(is_pass=label_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) + return label_representation_df class ReligionRepresentation(BaseRepresentation): From 97b4211cf3f48debc17a348a7ef3a64a9d8a9591 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 23:01:28 +0530 Subject: [PATCH 05/31] add ReligionRepresentation test --- nlptest/transform/representation.py | 56 ++++++++++++++++++++++------- nlptest/transform/utils.py | 4 ++- 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 3133b851e..2d13aa053 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -2,9 +2,9 @@ from abc import ABC, abstractmethod from typing import List - +import pandas as pd from nlptest.utils.custom_types import Sample -from .utils import default_representation ,default_ehtnicity_representation, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names +from .utils import default_representation ,default_ehtnicity_representation, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation class BaseRepresentation(ABC): @@ -59,15 +59,7 @@ def transform( dataset: List[Sample], min_count: dict = default_ehtnicity_representation ) -> pd.DataFrame(): - """Converts input sentences using a conversion dictionary - Args: - sample_list: List of sentences to process. - strategy: Config method to adjust where will context tokens added. start, end or combined. - starting_context: list of terms (context) to input at start of sentences. - ending_context: list of terms (context) to input at end of sentences. - Returns: - List of sentences that context added at to begging, end or both, randomly. - """ + # define a function to check if a word belongs to any of the given name lists def check_name(word, name_lists): return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) @@ -151,8 +143,46 @@ class ReligionRepresentation(BaseRepresentation): "min_religion_name_representation_proportion" ] - def transform(data: List[Sample]): - return super().transform() + def transform( + dataset: List[Sample], + min_count: dict = default_religion_representation + ) -> pd.DataFrame(): + + def check_name(word, name_lists): + return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) + + religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} + representation_dict = min_count + + # iterate over the samples in the dataset + for sample in dataset: + for i in sample.expected_results.predictions: + if check_name(i.span.word, [religion_wise_names['Muslim']]): + religion_representation["muslim"] += 1 + if check_name(i.span.word, [religion_wise_names['Hindu']]): + religion_representation["hindu"] += 1 + if check_name(i.span.word, [religion_wise_names['Sikh']]): + religion_representation["sikh"] += 1 + if check_name(i.span.word, [religion_wise_names['Parsi']]): + religion_representation["parsi"] += 1 + if check_name(i.span.word, [religion_wise_names['Christian']]): + religion_representation["christian"] += 1 + if check_name(i.span.word, [religion_wise_names['Buddhist']]): + religion_representation["buddhist"] += 1 + if check_name(i.span.word, [religion_wise_names['Jain']]): + religion_representation["jain"] += 1 + + expected_representation = {**default_religion_representation, **representation_dict} + actual_representation = {**default_religion_representation, **religion_representation} + + try: + religion_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"religion_representation","Original":"-","Test_Case":[label for label in religion_representation.keys()],"expected_result":[value for value in expected_representation.values()], + "actual_result":[value for value in actual_representation.values()]}) + + except: + raise ValueError(f"Check your labels. By default, we use these labels only : 'muslim', 'hindu', 'sikh', 'christian', 'jain', 'parsi' and 'buddhist' \n You provided : {representation_dict.keys()}") + religion_representation_df = religion_representation_df.assign(is_pass=religion_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) + return religion_representation_df class CountryEconomicRepresentation(BaseRepresentation): diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 212e01714..cae0a595a 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -665,4 +665,6 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} -default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} \ No newline at end of file +default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} + +default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} \ No newline at end of file From bfc20c7ebaf81001cda9f7129f0cc7e5c0a530f7 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 23:20:01 +0530 Subject: [PATCH 06/31] Add CountryEconomicRepresentation Test --- nlptest/transform/representation.py | 40 ++++++++++++++++++++++++++--- nlptest/transform/utils.py | 4 ++- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 2d13aa053..981dc83a5 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample -from .utils import default_representation ,default_ehtnicity_representation, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation +from .utils import default_representation ,default_ehtnicity_representation,default_economic_country_representation, country_economic_dict, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation class BaseRepresentation(ABC): @@ -191,5 +191,39 @@ class CountryEconomicRepresentation(BaseRepresentation): "min_country_economic_representation_proportion" ] - def transform(data: List[Sample]): - return super().transform() \ No newline at end of file + def transform( + dataset: List[Sample], + min_count: dict = default_economic_country_representation + ) -> pd.DataFrame(): + + + def check_name(word, name_lists): + return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) + + country_economic_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} + representation_dict = min_count + + # iterate over the samples in the dataset + for sample in dataset: + for i in sample.expected_results.predictions: + if check_name(i.span.word, [country_economic_dict['High-income']]): + country_economic_representation["high_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Low-income']]): + country_economic_representation["low_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Lower-middle-income']]): + country_economic_representation["lower_middle_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Upper-middle-income']]): + country_economic_representation["upper_middle_income"] += 1 + + expected_representation = {**default_economic_country_representation, **representation_dict} + actual_representation = {**default_economic_country_representation, **country_economic_representation} + + try: + country_economic_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"country_economic_representation","Original":"-","Test_Case":[label for label in country_economic_representation.keys()],"expected_result":[value for value in expected_representation.values()], + "actual_result":[value for value in actual_representation.values()]}) + + except: + raise ValueError(f"Check your labels. By default, we use these labels only : 'high_income', 'low_income', 'lower_middle_income' and 'upper_middle_income' \n You provided : {representation_dict.keys()}") + country_economic_representation_df = country_economic_representation_df.assign(is_pass=country_economic_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) + print(country_economic_representation_df.head()) + return country_economic_representation_df \ No newline at end of file diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index cae0a595a..732744488 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -667,4 +667,6 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} -default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} \ No newline at end of file +default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} + +default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} \ No newline at end of file From 5a18af23c27ff48a68c553a1e294ca63e1d499d3 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Thu, 16 Mar 2023 23:22:30 +0530 Subject: [PATCH 07/31] remove unnecessary code --- nlptest/transform/representation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 981dc83a5..7c241500f 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -225,5 +225,5 @@ def check_name(word, name_lists): except: raise ValueError(f"Check your labels. By default, we use these labels only : 'high_income', 'low_income', 'lower_middle_income' and 'upper_middle_income' \n You provided : {representation_dict.keys()}") country_economic_representation_df = country_economic_representation_df.assign(is_pass=country_economic_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) - print(country_economic_representation_df.head()) + return country_economic_representation_df \ No newline at end of file From a11c5939c4f06a8608dccd892622aadbdf59dae6 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Fri, 17 Mar 2023 01:34:38 +0530 Subject: [PATCH 08/31] update names as per specified format --- nlptest/transform/representation.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 7c241500f..ae6e7a61a 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -91,7 +91,7 @@ def check_name(word, name_lists): actual_representation = {**default_ehtnicity_representation, **ethnicity_representation} try: - ethnicity_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"ethnicity_representation","Original":"-","Test_Case":[label for label in ethnicity_representation.keys()],"expected_result":[value for value in expected_representation.values()], + ethnicity_representation_df = pd.DataFrame({"category":"Representation","Test_type":"ethnicity_representation","Original":"-","Test_Case":[label for label in ethnicity_representation.keys()],"expected_result":[value for value in expected_representation.values()], "actual_result":[value for value in actual_representation.values()]}) except: @@ -128,7 +128,7 @@ def transform(data: List[Sample], min_count: dict = default_representation): expected_representation = {**default_representation, **representation_dict} actual_representation = {**default_representation, **entity_representation} try: - label_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"label_representation","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], + label_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_label_representation_count","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], "actual_result":[value for value in actual_representation.values()]}) except: @@ -176,7 +176,7 @@ def check_name(word, name_lists): actual_representation = {**default_religion_representation, **religion_representation} try: - religion_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"religion_representation","Original":"-","Test_Case":[label for label in religion_representation.keys()],"expected_result":[value for value in expected_representation.values()], + religion_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_religion_name_representation_count","Original":"-","Test_Case":[label for label in religion_representation.keys()],"expected_result":[value for value in expected_representation.values()], "actual_result":[value for value in actual_representation.values()]}) except: @@ -219,7 +219,7 @@ def check_name(word, name_lists): actual_representation = {**default_economic_country_representation, **country_economic_representation} try: - country_economic_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"country_economic_representation","Original":"-","Test_Case":[label for label in country_economic_representation.keys()],"expected_result":[value for value in expected_representation.values()], + country_economic_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_country_economic_representation_count","Original":"-","Test_Case":[label for label in country_economic_representation.keys()],"expected_result":[value for value in expected_representation.values()], "actual_result":[value for value in actual_representation.values()]}) except: From 9718ed96cb21cbc50a86f88470cdc1ff39b8e8b9 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Fri, 17 Mar 2023 03:19:52 +0530 Subject: [PATCH 09/31] Updated LabelRepresentation with proportion test --- nlptest/transform/representation.py | 34 +++++++++++++++++++++++------ nlptest/transform/utils.py | 3 ++- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index ae6e7a61a..696121447 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample -from .utils import default_representation ,default_ehtnicity_representation,default_economic_country_representation, country_economic_dict, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation +from .utils import default_representation ,default_ehtnicity_representation,default_economic_country_representation, default_representation_proportion, country_economic_dict, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation class BaseRepresentation(ABC): @@ -107,13 +107,21 @@ class LabelRepresentation(BaseRepresentation): "min_label_representation_count", "min_label_representation_proportion" ] - - def transform(data: List[Sample], min_count: dict = default_representation): - representation_dict = min_count + + def transform(data: List[Sample], min_count: dict = default_representation, min_proportion: dict = None): + representation_dict = min_proportion + if not representation_dict: + representation_dict = {'O': 0.16, 'LOC': 0.16, 'PER': 0.16, 'MISC': 0.16, 'ORG': 0.16} + + if sum(representation_dict.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So running for default proportions \n") + raise ValueError() + entity_representation={} for sample in data: for i in sample.expected_results.predictions: + if i.entity=='O': if i.entity not in entity_representation: entity_representation[i.entity]=1 @@ -125,15 +133,27 @@ def transform(data: List[Sample], min_count: dict = default_representation): entity_representation[i.entity.split("-")[1]]=1 else: entity_representation[i.entity.split("-")[1]]+=1 - expected_representation = {**default_representation, **representation_dict} - actual_representation = {**default_representation, **entity_representation} + + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities + + + expected_representation = {**default_representation_proportion, **representation_dict} if min_proportion else {**default_representation, **min_count} + actual_representation = {**default_representation_proportion, **entity_representation_proportion} if min_proportion else {**default_representation, **entity_representation} + try: - label_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_label_representation_count","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], + label_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"label_representation","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], "actual_result":[value for value in actual_representation.values()]}) except: raise ValueError(f"Check your labels. By default, we use these labels only : 'O', 'LOC', 'PER', 'MISC', 'ORG' \n You provided : {representation_dict.keys()}") + label_representation_df = label_representation_df.assign(is_pass=label_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) + label_representation_df.drop(label_representation_df[label_representation_df['expected_result'] == 0].index, inplace=True) + + print(label_representation_df.head()) return label_representation_df class ReligionRepresentation(BaseRepresentation): diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 732744488..1ccc6cb6b 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -669,4 +669,5 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} -default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} \ No newline at end of file +default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} +default_representation_proportion = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} From c4f934321a1fa9e3de36df6121a3d1d54ecb98c1 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 14:07:56 +0530 Subject: [PATCH 10/31] update representation tests --- nlptest/transform/representation.py | 356 +++++++++++++++------------- 1 file changed, 192 insertions(+), 164 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 696121447..70e338482 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -3,7 +3,7 @@ from abc import ABC, abstractmethod from typing import List import pandas as pd -from nlptest.utils.custom_types import Sample +from nlptest.utils.custom_types import Sample, MinScoreOutput from .utils import default_representation ,default_ehtnicity_representation,default_economic_country_representation, default_representation_proportion, country_economic_dict, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation class BaseRepresentation(ABC): @@ -47,59 +47,64 @@ class GenderRepresentation(BaseRepresentation): def transform(data: List[Sample]): return super().transform() - class EthnicityRepresentation(BaseRepresentation): alias_name = [ "min_ethnicity_name_representation_count", "min_ethnicity_name_representation_proportion" ] - - def transform( - dataset: List[Sample], - min_count: dict = default_ehtnicity_representation - ) -> pd.DataFrame(): - - # define a function to check if a word belongs to any of the given name lists - def check_name(word, name_lists): - return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) - - # initialize a dictionary to store the ethnicity representation - ethnicity_representation = {"black": 0, "asian": 0, "white": 0, "native_american": 0, "hispanic": 0, "inter_racial": 0} - representation_dict = min_count - - # iterate over the samples in the dataset - for sample in dataset: - # iterate over the expected results in the sample - for i in sample.expected_results.predictions: - # check if the word belongs to any of the name lists and update the ethnicity representation - if check_name(i.span.word, [white_names['first_names'], white_names['last_names']]): - ethnicity_representation["white"] += 1 - if check_name(i.span.word, [black_names['first_names'], black_names['last_names']]): - ethnicity_representation["black"] += 1 - if check_name(i.span.word, [hispanic_names['first_names'], hispanic_names['last_names']]): - ethnicity_representation["hispanic"] += 1 - if check_name(i.span.word, [asian_names['first_names'], asian_names['last_names']]): - ethnicity_representation["asian"] += 1 - if check_name(i.span.word, [inter_racial_names['last_names']]): - ethnicity_representation["inter_racial"] += 1 - if check_name(i.span.word, [native_american_names['last_names']]): - ethnicity_representation["native_american"] += 1 - - - expected_representation = {**default_ehtnicity_representation, **representation_dict} - actual_representation = {**default_ehtnicity_representation, **ethnicity_representation} - - try: - ethnicity_representation_df = pd.DataFrame({"category":"Representation","Test_type":"ethnicity_representation","Original":"-","Test_Case":[label for label in ethnicity_representation.keys()],"expected_result":[value for value in expected_representation.values()], - "actual_result":[value for value in actual_representation.values()]}) - - except: - raise ValueError(f"Check your labels. By default, we use these labels only : 'black', 'white', 'hispanic', 'inter_racial', 'asian_pacific_islander' and 'american_indian_alaskan' \n You provided : {representation_dict.keys()}") - ethnicity_representation_df = ethnicity_representation_df.assign(is_pass=ethnicity_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) - return ethnicity_representation_df + def transform(test, + min_count: dict = None, + min_proportion: dict = None + ) -> pd.DataFrame(): + sample_list = [] + + if test=="min_ethnicity_name_representation_count": + if not min_count: + min_count = {"black": 10, "asian": 10, "white": 10, "native_american": 10, "hispanic": 10, "inter_racial": 10} + + + expected_representation = {**default_ehtnicity_representation, **min_count} + for key, value in expected_representation.items(): + sample = Sample( + original = "-", + category = "representation", + test_type = "min_ethnicity_name_representation_count", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + if test=="min_ethnicity_name_representation_proportion": + if not min_proportion: + min_proportion = {"black": 0.13, "asian": 0.13, "white": 0.13, "native_american": 0.13, "hispanic": 0.13, "inter_racial": 0.13} + + + if sum(min_proportion.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_ethnicity_name_representation_proportion test run for default proportions\n") + raise ValueError() + + + else: + + expected_representation = {**default_ehtnicity_representation, **min_proportion} + + + for key, value in expected_representation.items(): + + sample = Sample( + original = "-", + category = "representation", + test_type = "min_ethnicity_name_representation_proportion", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + return sample_list + class LabelRepresentation(BaseRepresentation): @@ -108,53 +113,52 @@ class LabelRepresentation(BaseRepresentation): "min_label_representation_proportion" ] - def transform(data: List[Sample], min_count: dict = default_representation, min_proportion: dict = None): - representation_dict = min_proportion - if not representation_dict: - representation_dict = {'O': 0.16, 'LOC': 0.16, 'PER': 0.16, 'MISC': 0.16, 'ORG': 0.16} - - if sum(representation_dict.values()) > 1: - print(f"\nSum of proportions cannot be greater than 1. So running for default proportions \n") - raise ValueError() - - entity_representation={} - - for sample in data: - for i in sample.expected_results.predictions: - - if i.entity=='O': - if i.entity not in entity_representation: - entity_representation[i.entity]=1 - else: - entity_representation[i.entity]+=1 - - elif i.entity in ['B-LOC','I-LOC','B-PER','I-PER','B-MISC','I-MISC','B-ORG','I-ORG']: - if i.entity.split("-")[1] not in entity_representation : - entity_representation[i.entity.split("-")[1]]=1 - else: - entity_representation[i.entity.split("-")[1]]+=1 - - total_entities = sum(entity_representation.values()) - entity_representation_proportion={} - for k,v in entity_representation.items(): - entity_representation_proportion[k] = v/total_entities - - - expected_representation = {**default_representation_proportion, **representation_dict} if min_proportion else {**default_representation, **min_count} - actual_representation = {**default_representation_proportion, **entity_representation_proportion} if min_proportion else {**default_representation, **entity_representation} - try: - label_representation_df = pd.DataFrame({"Category":"Representation","Test_type":"label_representation","Original":"-","Test_Case":[label for label in entity_representation.keys()],"expected_result":[value for value in expected_representation.values()], - "actual_result":[value for value in actual_representation.values()]}) - - except: - raise ValueError(f"Check your labels. By default, we use these labels only : 'O', 'LOC', 'PER', 'MISC', 'ORG' \n You provided : {representation_dict.keys()}") - - label_representation_df = label_representation_df.assign(is_pass=label_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) - label_representation_df.drop(label_representation_df[label_representation_df['expected_result'] == 0].index, inplace=True) - - print(label_representation_df.head()) - return label_representation_df + def transform(test, min_count: dict = None, min_proportion: dict = None): + sample_list = [] + + if test=="min_label_representation_count": + if not min_count: + min_count = {'O': 10, 'LOC': 10, 'PER': 10, 'MISC': 10, 'ORG': 10} + + + expected_representation = {**default_representation, **min_count} + for key, value in expected_representation.items(): + sample = Sample( + original = "-", + category = "representation", + test_type = "min_label_representation_count", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + if test=="min_label_representation_proportion": + if not min_proportion: + min_proportion = {'O': 0.16, 'LOC': 0.16, 'PER': 0.16, 'MISC': 0.16, 'ORG': 0.16} + + + if sum(min_proportion.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_label_representation_proportion test run for default proportions\n") + raise ValueError() + + else: + + expected_representation = {**default_representation, **min_proportion} + + + for key, value in expected_representation.items(): + + sample = Sample( + original = "-", + category = "representation", + test_type = "min_label_representation_proportion", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + return sample_list class ReligionRepresentation(BaseRepresentation): @@ -162,47 +166,57 @@ class ReligionRepresentation(BaseRepresentation): "min_religion_name_representation_count", "min_religion_name_representation_proportion" ] + - def transform( - dataset: List[Sample], - min_count: dict = default_religion_representation + def transform(test, + min_count: dict = None, + min_proportion: dict = None ) -> pd.DataFrame(): - - def check_name(word, name_lists): - return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) - - religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} - representation_dict = min_count - # iterate over the samples in the dataset - for sample in dataset: - for i in sample.expected_results.predictions: - if check_name(i.span.word, [religion_wise_names['Muslim']]): - religion_representation["muslim"] += 1 - if check_name(i.span.word, [religion_wise_names['Hindu']]): - religion_representation["hindu"] += 1 - if check_name(i.span.word, [religion_wise_names['Sikh']]): - religion_representation["sikh"] += 1 - if check_name(i.span.word, [religion_wise_names['Parsi']]): - religion_representation["parsi"] += 1 - if check_name(i.span.word, [religion_wise_names['Christian']]): - religion_representation["christian"] += 1 - if check_name(i.span.word, [religion_wise_names['Buddhist']]): - religion_representation["buddhist"] += 1 - if check_name(i.span.word, [religion_wise_names['Jain']]): - religion_representation["jain"] += 1 - - expected_representation = {**default_religion_representation, **representation_dict} - actual_representation = {**default_religion_representation, **religion_representation} - - try: - religion_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_religion_name_representation_count","Original":"-","Test_Case":[label for label in religion_representation.keys()],"expected_result":[value for value in expected_representation.values()], - "actual_result":[value for value in actual_representation.values()]}) - - except: - raise ValueError(f"Check your labels. By default, we use these labels only : 'muslim', 'hindu', 'sikh', 'christian', 'jain', 'parsi' and 'buddhist' \n You provided : {representation_dict.keys()}") - religion_representation_df = religion_representation_df.assign(is_pass=religion_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) - return religion_representation_df + sample_list = [] + if test=="min_religion_name_representation_count": + if not min_count: + min_count = {'muslim': 10, 'hindu': 10, 'sikh':10, 'christian':10, 'jain':10, 'buddhist':10, 'parsi':10} + + + expected_representation = {**default_religion_representation, **min_count} + for key, value in expected_representation.items(): + sample = Sample( + original = "-", + category = "representation", + test_type = "min_religion_name_representation_count", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + if test=="min_religion_name_representation_proportion": + if not min_proportion: + min_proportion = {'muslim': 0.11, 'hindu':0.11, 'sikh':0.11, 'christian':0.11, 'jain':0.11, 'buddhist':0.11, 'parsi':0.11} + + + if sum(min_proportion.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_religion_name_representation_proportion test run for default proportions\n") + raise ValueError() + + + else: + + expected_representation = {**default_religion_representation, **min_proportion} + + + for key, value in expected_representation.items(): + + sample = Sample( + original = "-", + category = "representation", + test_type = "min_religion_name_representation_proportion", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + return sample_list class CountryEconomicRepresentation(BaseRepresentation): @@ -210,40 +224,54 @@ class CountryEconomicRepresentation(BaseRepresentation): "min_country_economic_representation_count", "min_country_economic_representation_proportion" ] + - def transform( - dataset: List[Sample], - min_count: dict = default_economic_country_representation + def transform(test, + min_count: dict = None, + min_proportion: dict = None ) -> pd.DataFrame(): - - - def check_name(word, name_lists): - return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) - - country_economic_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} - representation_dict = min_count - # iterate over the samples in the dataset - for sample in dataset: - for i in sample.expected_results.predictions: - if check_name(i.span.word, [country_economic_dict['High-income']]): - country_economic_representation["high_income"] += 1 - if check_name(i.span.word, [country_economic_dict['Low-income']]): - country_economic_representation["low_income"] += 1 - if check_name(i.span.word, [country_economic_dict['Lower-middle-income']]): - country_economic_representation["lower_middle_income"] += 1 - if check_name(i.span.word, [country_economic_dict['Upper-middle-income']]): - country_economic_representation["upper_middle_income"] += 1 - - expected_representation = {**default_economic_country_representation, **representation_dict} - actual_representation = {**default_economic_country_representation, **country_economic_representation} - - try: - country_economic_representation_df = pd.DataFrame({"category":"representation","Test_type":"min_country_economic_representation_count","Original":"-","Test_Case":[label for label in country_economic_representation.keys()],"expected_result":[value for value in expected_representation.values()], - "actual_result":[value for value in actual_representation.values()]}) - - except: - raise ValueError(f"Check your labels. By default, we use these labels only : 'high_income', 'low_income', 'lower_middle_income' and 'upper_middle_income' \n You provided : {representation_dict.keys()}") - country_economic_representation_df = country_economic_representation_df.assign(is_pass=country_economic_representation_df.apply(lambda row: row['actual_result'] >= row['expected_result'], axis=1)) - - return country_economic_representation_df \ No newline at end of file + sample_list = [] + + if test=="min_country_economic_representation_count": + if not min_count: + min_count = {'high_income': 10,'low_income': 10,'lower_middle_income': 10,'upper_middle_income': 10} + + + expected_representation = {**default_economic_country_representation, **min_count} + for key, value in expected_representation.items(): + sample = Sample( + original = "-", + category = "representation", + test_type = "min_country_economic_representation_count", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + if test=="min_country_economic_representation_proportion": + if not min_proportion: + min_proportion = {'high_income': 0.20,'low_income': 0.20,'lower_middle_income': 0.20,'upper_middle_income': 0.20} + + + if sum(min_proportion.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_country_economic_representation_proportion test run for default proportions\n") + raise ValueError() + + + else: + + expected_representation = {**default_economic_country_representation, **min_proportion} + + for key, value in expected_representation.items(): + + sample = Sample( + original = "-", + category = "representation", + test_type = "min_country_economic_representation_proportion", + test_case = key, + expected_results = MinScoreOutput(score=value) + ) + sample_list.append(sample) + + return sample_list \ No newline at end of file From 7e4196c84b2f72470a92e86ccbd608c441dcf864 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 14:09:18 +0530 Subject: [PATCH 11/31] update custom_types --- nlptest/utils/custom_types.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/nlptest/utils/custom_types.py b/nlptest/utils/custom_types.py index b10b58e4b..53e6d1951 100644 --- a/nlptest/utils/custom_types.py +++ b/nlptest/utils/custom_types.py @@ -169,10 +169,33 @@ def __eq__(self, other): top_class = max(self.predictions, key=lambda x: x.score).label other_top_class = max(other.predictions, key=lambda x: x.score).label return top_class == other_top_class + +class MinScoreOutput(BaseModel): + """Output for accuracy tests.""" + score: float + + def to_str_list(self) -> float: + return self.score + + def __repr__(self) -> str: + return f"{self.score}" + def __str__(self) -> str: + return f"{self.score}" +class MaxScoreOutput(BaseModel): + """Output for accuracy tests.""" + score: float + + def to_str_list(self) -> float: + return self.score + + def __repr__(self) -> str: + return f"{self.score}" + def __str__(self) -> str: + return f"{self.score}" -Result = TypeVar("Result", NEROutput, SequenceClassificationOutput) +Result = TypeVar("Result", NEROutput, SequenceClassificationOutput, MinScoreOutput) class Transformation(BaseModel): original_span: Span From 749114aa99409eb08746a78d6fad78c6f1993412 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 14:13:21 +0530 Subject: [PATCH 12/31] update imports --- nlptest/transform/representation.py | 6 +++--- nlptest/transform/utils.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 70e338482..a749afac9 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_representation ,default_ehtnicity_representation,default_economic_country_representation, default_representation_proportion, country_economic_dict, white_names, black_names, hispanic_names, asian_names, native_american_names, inter_racial_names, religion_wise_names, default_religion_representation +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation class BaseRepresentation(ABC): @@ -122,7 +122,7 @@ def transform(test, min_count: dict = None, min_proportion: dict = None): min_count = {'O': 10, 'LOC': 10, 'PER': 10, 'MISC': 10, 'ORG': 10} - expected_representation = {**default_representation, **min_count} + expected_representation = {**default_label_representation, **min_count} for key, value in expected_representation.items(): sample = Sample( original = "-", @@ -144,7 +144,7 @@ def transform(test, min_count: dict = None, min_proportion: dict = None): else: - expected_representation = {**default_representation, **min_proportion} + expected_representation = {**default_label_representation, **min_proportion} for key, value in expected_representation.items(): diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 1ccc6cb6b..ce7b877ad 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -663,11 +663,11 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: return terminology -default_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} +default_label_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} -default_representation_proportion = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} + From 43b7400130260e635c72cbddd214acb28be1d7b0 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 14:16:39 +0530 Subject: [PATCH 13/31] update testfactory representation transform --- nlptest/transform/__init__.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nlptest/transform/__init__.py b/nlptest/transform/__init__.py index e8d186e0a..dc758cba7 100644 --- a/nlptest/transform/__init__.py +++ b/nlptest/transform/__init__.py @@ -431,16 +431,17 @@ def transform(self): List[Sample] A list of `Sample` objects representing the resulting dataset after running the robustness test. """ - - all_samples = [] + + all_samples = [] for test_name, params in self.tests.items(): - print(test_name) - data_handler_copy = [x.copy() for x in self._data_handler] - transformed_samples = self.supported_tests[test_name].transform(data_handler_copy, - **params.get('parameters', {})) + try: + transformed_samples = self.supported_tests[test_name].transform(test_name, **params.get('parameters',{})) + except: + transformed_samples = self.supported_tests[test_name].transform(test_name) for sample in transformed_samples: sample.test_type = test_name all_samples.extend(transformed_samples) + return all_samples @classmethod From 719b7c9cc559540f0f8f75e6515404e9e46a58da Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 14:18:29 +0530 Subject: [PATCH 14/31] update config with representation tests --- demo/data/config.yml | 81 ++++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 22 deletions(-) diff --git a/demo/data/config.yml b/demo/data/config.yml index c53ec8cee..484bb6da1 100644 --- a/demo/data/config.yml +++ b/demo/data/config.yml @@ -1,26 +1,63 @@ defaults: min_pass_rate: 0.65 min_representation: 50 + tests: - # accuracy: - # macro_f1: - # PER: 0.3 - # min_f1: - # O: 0.8 - bias: - replace_to_female_pronouns: - min_pass_rate: 0.65 - replace_to_male_pronouns: - min_pass_rate: 0.65 - robustness: - lowercase: - min_pass_rate: 0.65 - swap_entities: - min_pass_rate: 0.65 - uppercase: - min_pass_rate: 0.65 - add_context: - min_pass_rate: 0.65 - parameters: - ending_context: ['Bye', 'Reported'] - starting_context: ['Hi', 'Good morning', 'Hello'] + representation: + min_label_representation_count: + parameters: + min_count: + 'O' : 50 + 'PER': 10 + 'LOC': 40 + + min_ethnicity_name_representation_count: + parameters: + min_count: + 'white' : 50 + 'black': 10 + 'asian': 40 + 'hispanic': 30 + + min_ethnicity_name_representation_proportion: + parameters: + min_proportion: + 'white' : 0.20 + 'black': 0.36 + + + min_religion_name_representation_count: + parameters: + min_count: + 'muslim' : 10 + 'hindu': 10 + 'parsi': 40 + 'sikh': 10 + + + min_religion_name_representation_proportion: + parameters: + min_proportion: + 'muslim' : 0.4 + 'hindu': 0.5 + + + min_country_economic_representation_count: + parameters: + min_count: + 'high_income' : 10 + 'low_income': 10 + + + min_label_representation_proportion: + parameters: + min_proportion: + 'O' : 0.8 + 'PER': 0.1 + + + min_country_economic_representation_proportion: + parameters: + min_proportion: + 'high_income' : 0.6 + 'low_income': 0.6 From de0a38152db482dc8ceb19750b56b2ad52ab2f5f Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 21:33:00 +0530 Subject: [PATCH 15/31] update LabelRepresentation test --- nlptest/transform/representation.py | 67 ++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index a749afac9..3bac7cc6c 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_entity_representation_dict class BaseRepresentation(ABC): @@ -105,7 +105,6 @@ def transform(test, return sample_list - class LabelRepresentation(BaseRepresentation): alias_name = [ @@ -114,51 +113,79 @@ class LabelRepresentation(BaseRepresentation): ] - def transform(test, min_count: dict = None, min_proportion: dict = None): + def transform(test,data,params): sample_list = [] - + if test=="min_label_representation_count": - if not min_count: - min_count = {'O': 10, 'LOC': 10, 'PER': 10, 'MISC': 10, 'ORG': 10} - - - expected_representation = {**default_label_representation, **min_count} + + if not params: + expected_representation = {'O': 10, 'LOC': 10, 'PER': 10, 'MISC': 10, 'ORG': 10} + + else: + if isinstance(params['min_count'], dict): + expected_representation = params['min_count'] + + elif isinstance(params['min_count'], int): + expected_representation = {key: params['min_count'] for key in default_label_representation} + + + entity_representation= get_entity_representation_dict(data) + + actual_representation = {**default_label_representation, **entity_representation} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_label_representation_count", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value) , + actual_results = MinScoreOutput(score=actual_representation[key]) ) sample_list.append(sample) + if test=="min_label_representation_proportion": - if not min_proportion: - min_proportion = {'O': 0.16, 'LOC': 0.16, 'PER': 0.16, 'MISC': 0.16, 'ORG': 0.16} - - - if sum(min_proportion.values()) > 1: - print(f"\nSum of proportions cannot be greater than 1. So min_label_representation_proportion test run for default proportions\n") - raise ValueError() + if not params: + expected_representation = {'O': 0.16, 'LOC': 0.16, 'PER': 0.16, 'MISC': 0.16, 'ORG': 0.16} else: + if isinstance(params['min_proportion'], dict): + expected_representation = params['min_proportion'] + + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_label_representation_proportion test cannot run \n") + raise ValueError() + + elif isinstance(params['min_proportion'], float): + expected_representation = {key: params['min_proportion'] for key in default_label_representation} + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_label_representation_proportion test cannot run \n") + raise ValueError() - expected_representation = {**default_label_representation, **min_proportion} + entity_representation= get_entity_representation_dict(data) - for key, value in expected_representation.items(): + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities + + actual_representation = {**default_label_representation, **entity_representation_proportion} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_label_representation_proportion", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value), + actual_results = MinScoreOutput(score=actual_representation[key]) ) sample_list.append(sample) return sample_list + class ReligionRepresentation(BaseRepresentation): From 638507f034d5a2d11adc8d547a6f627f428affe6 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 21:34:24 +0530 Subject: [PATCH 16/31] add get_entity_representation_dict to utils --- nlptest/transform/utils.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index ce7b877ad..9461d2bbc 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -671,3 +671,24 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} + +def get_entity_representation_dict(data): + + entity_representation={} + for sample in data: + for i in sample.expected_results.predictions: + if i.entity=='O': + if i.entity not in entity_representation: + entity_representation[i.entity]=1 + else: + entity_representation[i.entity]+=1 + + + elif i.entity in ['B-LOC','I-LOC','B-PER','I-PER','B-MISC','I-MISC','B-ORG','I-ORG']: + if i.entity.split("-")[1] not in entity_representation : + entity_representation[i.entity.split("-")[1]]=1 + else: + entity_representation[i.entity.split("-")[1]]+=1 + + return entity_representation + From ba9dc42e912fef18c5dce3b02e24f7d683034b4c Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 21:38:41 +0530 Subject: [PATCH 17/31] update __init__ representation --- nlptest/transform/__init__.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/nlptest/transform/__init__.py b/nlptest/transform/__init__.py index dc758cba7..01177c5f4 100644 --- a/nlptest/transform/__init__.py +++ b/nlptest/transform/__init__.py @@ -434,10 +434,8 @@ def transform(self): all_samples = [] for test_name, params in self.tests.items(): - try: - transformed_samples = self.supported_tests[test_name].transform(test_name, **params.get('parameters',{})) - except: - transformed_samples = self.supported_tests[test_name].transform(test_name) + data_handler_copy = [x.copy() for x in self._data_handler] + transformed_samples = self.supported_tests[test_name].transform(test_name,data_handler_copy, params) for sample in transformed_samples: sample.test_type = test_name all_samples.extend(transformed_samples) From 008427a4118197851e23cec0792b5ff71e696368 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 22:17:08 +0530 Subject: [PATCH 18/31] add state conditions --- nlptest/testrunner.py | 6 ++++-- nlptest/transform/representation.py | 6 ++++-- nlptest/utils/custom_types.py | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/nlptest/testrunner.py b/nlptest/testrunner.py index b9b460129..454fb10b5 100644 --- a/nlptest/testrunner.py +++ b/nlptest/testrunner.py @@ -61,8 +61,10 @@ def evaluate(self): all containing the predictions for both the original text and the pertubed one """ for sample in self.load_testcases: - sample.expected_results = self._model_handler(sample.original) - sample.actual_results = self._model_handler(sample.test_case) + if sample.state != "done": + sample.expected_results = self._model_handler(sample.original) + sample.actual_results = self._model_handler(sample.test_case) + sample.state = "done" return self.load_testcases diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 3bac7cc6c..163892c17 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -140,7 +140,8 @@ def transform(test,data,params): test_type = "min_label_representation_count", test_case = key, expected_results = MinScoreOutput(score=value) , - actual_results = MinScoreOutput(score=actual_representation[key]) + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) @@ -180,7 +181,8 @@ def transform(test,data,params): test_type = "min_label_representation_proportion", test_case = key, expected_results = MinScoreOutput(score=value), - actual_results = MinScoreOutput(score=actual_representation[key]) + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) diff --git a/nlptest/utils/custom_types.py b/nlptest/utils/custom_types.py index 53e6d1951..c338d623b 100644 --- a/nlptest/utils/custom_types.py +++ b/nlptest/utils/custom_types.py @@ -223,6 +223,7 @@ class Sample(BaseModel): transformations: List[Transformation] = None _realigned_spans: Optional[Result] = PrivateAttr(default_factory=None) category: str = None + state: str = None # TODO: remove _realigned_spans, but for now it ensures that we don't realign spans multiple times From 71826eb6f03ead9aef951e596b51a7438014afb0 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Tue, 21 Mar 2023 22:39:37 +0530 Subject: [PATCH 19/31] get_entity_representation -> get_label_representation_dict --- nlptest/transform/representation.py | 6 +++--- nlptest/transform/utils.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 163892c17..db98169ad 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_entity_representation_dict +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict class BaseRepresentation(ABC): @@ -129,7 +129,7 @@ def transform(test,data,params): expected_representation = {key: params['min_count'] for key in default_label_representation} - entity_representation= get_entity_representation_dict(data) + entity_representation= get_label_representation_dict(data) actual_representation = {**default_label_representation, **entity_representation} @@ -165,7 +165,7 @@ def transform(test,data,params): raise ValueError() - entity_representation= get_entity_representation_dict(data) + entity_representation= get_label_representation_dict(data) total_entities = sum(entity_representation.values()) entity_representation_proportion={} diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 9461d2bbc..6b7bbc5e3 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -672,7 +672,7 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} -def get_entity_representation_dict(data): +def get_label_representation_dict(data): entity_representation={} for sample in data: From f6c3329a36b198192754fa9db3c7795354c60785 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 00:23:46 +0530 Subject: [PATCH 20/31] add CountryEconomicRepresentation test --- nlptest/transform/representation.py | 71 +- nlptest/transform/utils.py | 4318 ++++++++++++++++++++++++++- 2 files changed, 4358 insertions(+), 31 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index db98169ad..696c2eb6c 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict class BaseRepresentation(ABC): @@ -255,51 +255,74 @@ class CountryEconomicRepresentation(BaseRepresentation): ] - def transform(test, - min_count: dict = None, - min_proportion: dict = None - ) -> pd.DataFrame(): - + def transform(test,data,params): sample_list = [] if test=="min_country_economic_representation_count": - if not min_count: - min_count = {'high_income': 10,'low_income': 10,'lower_middle_income': 10,'upper_middle_income': 10} - - - expected_representation = {**default_economic_country_representation, **min_count} + if not params: + expected_representation = {'high_income': 10,'low_income': 10,'lower_middle_income': 10,'upper_middle_income': 10} + + else: + if isinstance(params['min_count'], dict): + expected_representation = params['min_count'] + + elif isinstance(params['min_count'], int): + expected_representation = {key: params['min_count'] for key in default_economic_country_representation} + + entity_representation= get_country_economic_representation_dict(data) + + actual_representation = {**default_economic_country_representation, **entity_representation} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_country_economic_representation_count", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value) , + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) + if test=="min_country_economic_representation_proportion": - if not min_proportion: - min_proportion = {'high_income': 0.20,'low_income': 0.20,'lower_middle_income': 0.20,'upper_middle_income': 0.20} - - - if sum(min_proportion.values()) > 1: - print(f"\nSum of proportions cannot be greater than 1. So min_country_economic_representation_proportion test run for default proportions\n") - raise ValueError() - + if not params: + expected_representation = {'high_income': 0.20,'low_income': 0.20,'lower_middle_income': 0.20,'upper_middle_income': 0.20} else: - - expected_representation = {**default_economic_country_representation, **min_proportion} + if isinstance(params['min_proportion'], dict): + expected_representation = params['min_proportion'] + + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_country_economic_representation_proportion test cannot run \n") + raise ValueError() + + elif isinstance(params['min_proportion'], float): + expected_representation = {key: params['min_proportion'] for key in default_economic_country_representation} + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_country_economic_representation_proportion test cannot run \n") + raise ValueError() + + + + entity_representation= get_country_economic_representation_dict(data) + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities - for key, value in expected_representation.items(): + actual_representation = {**default_economic_country_representation, **entity_representation_proportion} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_country_economic_representation_proportion", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value), + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 6b7bbc5e3..dff5448ab 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -1,6 +1,8 @@ from typing import Dict, List import pandas as pd + + DEFAULT_PERTURBATIONS = [ "uppercase", "lowercase", @@ -607,13 +609,4295 @@ " you'd ", ' you will ': " you'll ", ' you are ': " you're " } +#Curated from the United States Census Bureau surveys +white_names = {"first_names": ["Sage", "Jeremy", "Alisa", "Shaya", "Barbara", "Savannah", "Sonny", "Kate", "Jenna", "Yossi", "Lauren", "Alexia", "Eva", "Chiara", "Kaitlyn", "Lilia", "Leah", "Lucille", "Siena", "Henchy", "Tyler", "Hope", "Clementine", "Paige", "Finley", "Jason", "Michael", "Taylor", "Mohamed", "Milania", "Elise", "Lucy", "Sylvie", "Shlome", "Blake", "Stephen", "Brady", "Maxwell", "Ayelet", "Yocheved", "Noam", "Jana", "Elimelech", "Emmy", "Morris", "Younis", "Moishe", "Freya", "Batsheva", "Nico", "Zain", "Amelie", "Mohammed", "Ava", "Harper", "Reizy", "Lielle", "Malak", "Shevy", "Liliana", "Lily", "Leona", "Ephraim", "Freida", "Valerie", "Alina", "Kevin", "Perl", "Rhett", "Jace", "Jaxson", "Amara", "Fishel", "Goldie", "Kyle", "Avery", "Viviana", "Sabrina", "Xavier", "Ariela", "Vincenzo", "Marc", "David", "Sidney", "Issac", "Hayden", "Yitta", "Yeshaya", "Yaakov", "Evelyn", "Hayes", "Dashiell", "Katerina", "Hazel", "Sabina", "Myles", "Bryan", "Karas", "Annabel", "Alan", "Bina", "Amina", "Lorenzo", "Alexis", "Finn", "Frady", "Adalyn", "Hanna", "James", "Imran", "Jasmine", "Arabella", "Nolan", "Shloma", "Yonatan", "Perel", "Alter", "Marco", "Rafael", "Frieda", "Guy", "Samantha", "Cleo", "Griffin", "Nathan", "Chavy", "Eliza", "Reed", "Louise", "Peretz", "Isla", "Hadassa", "Meyer", "Chelsea", "Chesky", "Olive", "Blimy", "Aya", "Anthony", "Ezra", "Shraga", "Timothy", "Dovid", "Iymona", "Abdullah", "Seth", "Gianna", "Kamila", "Lyla", "Calvin", "Michaela", "Cora", "Liora", "Max", "Phoenix", "Devora", "Paisley", "Sarah", "Ameer", "Daria", "Ashley", "Evan", "Roizy", "Rocco", "Blair", "Erik", "Aria", "Claire", "Kian", "Emmeline", "Shukrona", "Daniela", "Bryce", "Esther", "Celia", "Nova", "Elsa", "Trany", "Hadley", "Brynlee", "Eric", "Walker", "Laith", "Xander", "Tucker", "Bentzion", "Celeste", "Antonia", "Rhys", "Yahya", "Parizoda", "Kyler", "Vivienne", "Vincent", "Raya", "Lucas", "Arya", "Hailey", "Nechama", "Theo", "Joel", "Phoebe", "Yael", "Lukas", "Saoirse", "Valentina", "Tristan", "Otto", "Brian", "Andrew", "Lilian", "Mika", "Dominic", "Ezriel", "Chaya", "Devin", "Toby", "Willow", "Meilech", "William", "Weston", "Aliza", "Maryam", "Jaxon", "Yassin", "Ansel", "Theodora", "Richard", "Nash", "Owen", "Noa", "Dalia", "Gavin", "Elliot", "Chany", "Esty", "Amalia", "Hamza", "Blima", "Antonio", "Hassan", "Ada", "Luciana", "Eloise", "Helen", "Maximilian", "Juliette", "Samira", "Giovanna", "Daphne", "Diana", "Gwendolyn", "Skylar", "Elya", "Marlowe", "Arielle", "Dominick", "Arthur", "Ella", "Abdulloh", "Charlie", "Elliana", "Avraham", "Harlow", "Isaac", "Mabel", "Georgia", "Faigy", "Sima", "Amira", "Mendy", "Kenneth", "Yechezkel", "Reuven", "Shneur", "Maya", "Luke", "Eleanor", "Tzivia", "Madison", "Quinn", "Henry", "Maggie", "Luka", "Augustus", "Ayala", "Imogen", "Gabriel", "Lilly", "Millie", "Shloimy", "Waylon", "Maeve", "Meir", "Menashe", "Ryder", "Zayn", "Nikita", "Gregory", "Shimon", "Emersyn", "Noelle", "Damian", "Khloe", "Devorah", "Leon", "Aleksander", "Frederick", "Laura", "Joanna", "Magnolia", "Adina", "Florence", "Bodhi", "Ilan", "Billie", "Carly", "Yachet", "Cheskel", "Zoey", "Giulia", "Sonia", "Sam", "Mackenzie", "John", "Aryeh", "Alessia", "Micah", "Sammy", "Emanuel", "Zalmen", "Yisrael", "Bridget", "Giuseppe", "Nathaniel", "Emmanuel", "Delilah", "Ilana", "Kira", "Laila", "Alec", "Kaya", "Avi", "Adrian", "Tzirel", "Sawyer", "Gabriela", "Orly", "Mirel", "Cassandra", "Keira", "Carter", "Camila", "Scarlett", "Gianluca", "Raizel", "Olivia", "Kennedy", "Aurora", "Frank", "Vienna", "Mechel", "Rivka", "Chava", "Bianca", "Casey", "Braxton", "Sara", "Oren", "Elaina", "Justin", "Felix", "Omar", "Jane", "Ariel", "Mateo", "Kacper", "Yitzchok", "Layan", "Rowan", "Desmond", "Olympia", "Ruth", "Louisa", "Nicholas", "Robert", "Saul", "Serafina", "Christian", "Ronan", "Adrianna", "Tova", "Yasmina", "Vanessa", "Gracie", "Lev", "Paul", "Ethan", "Nadia", "Eliot", "Tess", "Adeline", "Binyamin", "Sari", "Madelyn", "Angelica", "Stephanie", "Emilia", "Samuel", "Ben", "Gabriella", "Diyora", "Shmiel", "Elisa", "Rina", "Lillian", "Ari", "Raizy", "Angelo", "Reid", "Madina", "Aviva", "Georgina", "Brandon", "Beckham", "Morgan", "Marie", "Mushka", "Alana", "Grey", "Ariella", "London", "Basya", "Youssef", "Maxim", "Burech", "Levi", "Cecilia", "Mila", "Mira", "Camden", "Mendel", "Nina", "Emery", "Mason", "Eden", "Eleni", "Winston", "Breindy", "Tallulah", "Miriam", "Naftuli", "Liana", "Matteo", "Pinchas", "Elodie", "Alyssa", "Eluzer", "Elisheva", "Livia", "Ahmed", "Joaquin", "Baruch", "Lydia", "Sadie", "Steven", "Yisroel", "Sophia", "Celine", "Amrom", "Judah", "Selim", "Ellis", "Kai", "Naftali", "Christopher", "Sama", "Arden", "Julie", "Peter", "Faiga", "Ahmad", "Clark", "Joshua", "Simi", "Jordyn", "Reuben", "Luca", "Jude", "Jakob", "Spencer", "Lina", "Harry", "Moses", "Shaindel", "Tehila", "Miri", "Edward", "Nicolas", "Francesca", "Amir", "Abubakr", "Libby", "Anton", "Salvatore", "Stanley", "Jacob", "Hindy", "Baila", "Mark", "Simcha", "Isabella", "Marina", "Ibrohim", "Thomas", "Ahuva", "Joyce", "Anas", "Ahron", "Yaseen", "Connor", "Melina", "Fiona", "Zane", "Sloane", "Aliya", "Selma", "Arlo", "Greta", "Stella", "Jameson", "Knox", "Megan", "Tamara", "Wilder", "Mary", "Genevieve", "Theodore", "Timur", "Lara", "Elijah", "Yida", "Elias", "Viktor", "Yara", "Colin", "Toba", "Dillon", "Alexander", "Brantley", "Elliott", "Riva", "Ryleigh", "Elena", "Hershel", "Leyla", "Margaret", "Simon", "Leonidas", "Tamar", "Hersh", "Harley", "Chloe", "Zachary", "Yitty", "Abraham", "Jasper", "Easton", "Josephine", "Esme", "Vera", "Carolina", "Barrett", "Moshe", "Eliana", "Nava", "Raphael", "Shulem", "Ashton", "Hunter", "Beau", "Adam", "Malka", "Ori", "Rochel", "Axel", "Umar", "Melissa", "Catherine", "Sophie", "Shayna", "Natalia", "Erin", "Graham", "Harvey", "Lilliana", "Helena", "Giada", "Shea", "Ester", "Nora", "Anya", "Enzo", "Yanky", "Atlas", "Goldy", "Liba", "Aleksandra", "Bruchy", "Jesse", "Louis", "Mollie", "Suri", "Linda", "Zakaria", "Jonah", "Sienna", "Angelina", "River", "Cooper", "Sholom", "Layla", "Devory", "Henny", "Rena", "Derek", "Isabel", "Duvid", "Elle", "Fradel", "Wolf", "Juliana", "Juliet", "Bailey", "Alexa", "Shoshana", "Simone", "Josef", "Santino", "Hillel", "Carmine", "Mohammad", "Meshilem", "Herman", "Reagan", "Alicia", "Clara", "Rebecca", "Abe", "Gaia", "Daniella", "Nicole", "Dua", "Raymond", "Jessica", "Charlotte", "Shaul", "Julian", "Yehoshua", "Julius", "Margaux", "Muhammad", "Anisa", "Polina", "Brooklyn", "Dante", "Jakub", "Giuliana", "Addison", "Shifra", "Alexandra", "Naomi", "Salma", "Katie", "Shia", "Sury", "Russell", "Brooke", "Lucia", "Etty", "Aaron", "Muslima", "Julianna", "Silas", "Avrum", "Summer", "Eitan", "Oscar", "Shaindy", "Yasmin", "Matilda", "Ayla", "Yitzchak", "Lila", "Preston", "Estelle", "Isaiah", "Brody", "Donovan", "Mindy", "Briella", "Lazer", "Jackson", "Shalom", "Norah", "Atara", "Lucien", "Colton", "Maisie", "Anderson", "Reem", "Juniper", "Michal", "Akiva", "Chana", "Kiera", "Tobias", "Cecelia", "Yehudah", "Aubrey", "Yides", "Idy", "Zissy", "Dina", "Yona", "Shmuel", "Giancarlo", "Leibish", "Talia", "Neil", "Nuchem", "Katelyn", "Matthew", "Miles", "Daisy", "Jamie", "Nachman", "Kinsley", "Yidel", "Albert", "Fraidy", "Farida", "Emmett", "Dylan", "Eyad", "Rose", "Liam", "Dana", "Austin", "Filip", "Harrison", "Ayden", "Menucha", "Madeline", "Anastasia", "Angela", "Mordechai", "Lana", "Gavriel", "Grayson", "Evangeline", "Iris", "Isabelle", "Brayden", "Greyson", "Batya", "Scott", "Rosalie", "Anna", "Alma", "Remy", "Milo", "Aiden", "Nikolas", "Frances", "Elizabeth", "Chanie", "Tziporah", "Adriana", "Reese", "Pierce", "Remington", "Mina", "Jad", "Yehudis", "Brianna", "Everly", "Allison", "Winnie", "George", "Giovanni", "Emma", "Berish", "Zoe", "Yechiel", "Zev", "Julia", "Adelina", "Wyatt", "Colette", "Nicolette", "Chaim", "Lipa", "Eliyahu", "Alessandra", "Milan", "Bradley", "Veronica", "Caroline", "Yoel", "Avigail", "Lucian", "Adele", "Muhammad ali", "Audrey", "Mikaela", "Ellie", "Natalie", "Adelaide", "Avrohom", "Hinda", "Callie", "Maia", "Dahlia", "Vivian", "Hershy", "Mayar", "Gemma", "Ines", "Orion", "Caitlin", "Beatrix", "Faith", "Kareem", "Declan", "Margot", "Cassidy", "Aurelia", "Melanie", "Leila", "Hana", "Francesco", "Allen", "Shaina", "Ruchel", "Josie", "Lia", "Emerson", "Yousef", "Danielle", "Massimo", "Rayan", "Nosson", "August", "Kristina", "Cameron", "Camilla", "Ali", "Logan", "Riley", "Alexandria", "Brielle", "Veronika", "Usher", "Penelope", "Marielle", "Sebastian", "Ivan", "Daniel", "Ian", "Violet", "Nikolai", "Tzipora", "Luna", "Aziza", "Efraim", "Victor", "Arye", "Cody", "Jacqueline", "Eli", "Kaia", "Piper", "Beatrice", "Alice", "Frida", "Claudia", "Ruchy", "Francis", "Michelle", "Rory", "Poppy", "Ryan", "Katherine", "Molly", "Marcus", "Noor", "Otis", "Avital", "Samir", "Parker", "Rachel", "Teagan", "Dawson", "Eliezer", "Leonard", "Beckett", "Rifka", "Jade", "Noach", "Blakely", "Alessandro", "Kathryn", "June", "Brynn", "Rosa", "Aidan", "Anne", "Amanda", "Devoiry", "Caleb", "Philip", "Jayden", "Lola", "Amirjon", "Drew", "Gittel", "Dean", "Amy", "Roman", "Shane", "Hendy", "Archer", "Sylvia", "Rifky", "Mia", "Finnegan", "Solomon", "Binyomin", "Edith", "Shloime", "Asher", "Hannah", "Atticus", "Tomas", "Everett", "Abigail", "Presley", "Arianna", "Sofia", "Rivky", "Mikayla", "Serena", "Crosby", "Gideon", "Martin", "Idris", "Lincoln", "Denis", "Camille", "Gia", "Chris", "Bella", "Tzvi", "Cyrus", "Madeleine", "Shlomo", "Jennifer", "Emir", "Jax", "Malky", "Maksim", "Sydney", "Stefan", "Maximus", "Giselle", "Sami", "Yosef", "Zainab", "Roiza", "Annabelle", "Romy", "Elan", "Ralph", "Milana", "Virginia", "Pearl", "Mayer", "Aviel", "Ruby", "Pessy", "Renee", "Mordche", "Jonathan", "Hugo", "Yonah", "Menachem", "Jolie", "Rivkah", "Sean", "Aron", "Jordan", "Kylie", "Leia", "Yusuf", "Israel", "Kayla", "Oliver", "Jasmina", "Gabrielle", "Bennett", "Walter", "Imona", "Holden", "Willa", "Boruch", "Everleigh", "Hadassah", "Frimet", "Ariana", "Ryker", "Astrid", "Judy", "Emily", "Cole", "Wesley", "Malika", "Brooks", "Brendan", "Grace", "Ember", "Victoria", "Aisha", "Dion", "Alex", "Remi", "Joseph", "Lilah", "Lea", "Josiah", "Rahaf", "Julien", "Sasha", "Motty", "Yakov", "Benjamin", "Mariam", "Marcel", "Eve", "Pinchus", "Gitty", "Leo", "Benzion", "Evie", "Farah", "Hudson", "Rosie", "Meira", "Grant", "Noah", "Landon", "Zelda", "Golda", "Malek", "Leonardo", "Autumn", "Maria", "Peyton", "Evelina", "Aspen", "Colt", "Izabella", "Shira", "Perry", "Caden", "Makayla", "Brucha", "Ivy", "Patrick", "Liv", "Kieran", "Thea", "Zara", "Dennis", "Tzippy", "Cormac", "Charles", "Elina", "Mae", "Yehuda", "Conor", "Ibrahim", "Kaylee", "Amelia", "Christina", "Bracha", "Athena", "Berl", "Maverick", "Leora", "Jack", "Milena", "Aharon", "Ana", "Kobe", "Moishy", "Jake", "Raelynn", "Jay", "Oskar", "Melania", "Tessa", "Aydin", "Paloma", "Fatima", "Lena", "Chase", "Malcolm", "Dov", "Bentley", "Raquel", "Malik", "Yasmine"], "last_names": ["Holcomb", "Gallant", "Mayes", "Franklin", "Westphal", "Goff", "Fitzpatrick", "Mcvey", "Churchill", "Matteson", "Worrell", "Kieffer", "Whiteside", "Bills", "Bledsoe", "Brownlee", "Barrows", "Courtney", "Breedlove", "Feldman", "Brandenburg", "Eagle", "Mears", "Bunting", "Thompson", "Garman", "Hope", "Clancy", "Power", "Whitaker", "Whalen", "Hodge", "Culpepper", "Bruno", "Robison", "Neeley", "Roeder", "Baxter", "Keller", "Donato", "Wheaton", "Wilburn", "Jackman", "Abernathy", "Seeley", "Belt", "Hawks", "Medley", "Birch", "Gough", "Mcneely", "Armstrong", "Colbert", "Christianson", "Huston", "Magnuson", "Dietz", "Morrissey", "Greer", "Kyle", "Mcgarry", "Mull", "Fusco", "Higgins", "Gooch", "Snook", "Goss", "Nilson", "Beattie", "Rife", "Good", "Hayes", "Franks", "Salisbury", "Ruggiero", "Deboer", "Rowland", "Embry", "Powers", "Pate", "Shapiro", "Herzog", "Reedy", "Buehler", "Unger", "Cassell", "Finn", "Harrington", "Frankel", "Ritchey", "Dorn", "Chance", "Christy", "Tyson", "Martindale", "Mccurdy", "Thayer", "Corrigan", "Wills", "Jansen", "Hail", "Bingham", "Ramey", "Searcy", "Alford", "Redmon", "Delong", "Thorpe", "Beers", "Light", "Belanger", "Tackett", "Michels", "Calvin", "Kwiatkowski", "Ring", "Blum", "Lackey", "Rutledge", "Farrar", "Crump", "Gorham", "Bryson", "Southerland", "Blodgett", "Bradshaw", "Held", "Copeland", "Woodward", "Borges", "Horne", "Nicholson", "Samson", "Givens", "Windham", "Pepper", "Markham", "Finch", "Greco", "Mcclintock", "Carey", "Voss", "Moseley", "Mize", "Hitt", "Owens", "Brittain", "Barros", "Isaacs", "Baskin", "Mortensen", "Rainey", "Somers", "Sowers", "Hurst", "Royal", "Crawford", "Broussard", "Hamilton", "Paris", "Ahrens", "Eldridge", "Bradbury", "Wallen", "Otto", "Fisk", "Short", "Gaston", "Land", "Rust", "Franke", "Andrew", "Patten", "Lindgren", "Showalter", "Wilkins", "Willingham", "Weston", "Pruitt", "Brenner", "Clements", "Hathaway", "Bandy", "Clement", "Purcell", "Mcalister", "Gilligan", "Bartholomew", "Lantz", "Rossi", "Latimer", "Sinclair", "Sherrill", "Healey", "Pelletier", "Thigpen", "Aldrich", "Love", "Reuter", "Brumfield", "Neville", "Fay", "Brannon", "Taber", "Murphy", "Edwards", "Henley", "Mckee", "Partridge", "Mcneill", "Collins", "Robins", "Brewer", "Weinstein", "Still", "Oates", "Cass", "Romeo", "Salem", "Rich", "Mcgowan", "Irby", "Curtin", "Lay", "Lavender", "Broughton", "Snider", "Palmer", "Holmes", "Gabriel", "Gresham", "Morse", "Manning", "Schumann", "Vanhorn", "Ricker", "Whitten", "Rockwell", "Chaney", "Case", "Conlon", "Keenan", "Markley", "Ryder", "Woods", "Ellington", "Gregory", "Mccollum", "Kee", "Deutsch", "Reece", "Kincaid", "Clay", "Millard", "Freitas", "Witte", "Oliveira", "Snell", "Posey", "Ogrady", "Lacroix", "Mcclanahan", "Bosch", "Fitzsimmons", "Spellman", "Phelps", "Mcguire", "Dubose", "Person", "Mcinnis", "Langlois", "Buell", "Willson", "Hagen", "Eisenberg", "Cates", "Sherman", "Costello", "Whitman", "Tierney", "Mckinley", "Kling", "Muller", "Bradford", "Lavoie", "Coyle", "Kingsley", "Friedman", "Barnes", "Saylor", "Jarrell", "Weatherford", "Mckeever", "Dupre", "Lambert", "Eads", "Boles", "Gruber", "Talbot", "Mcginley", "Kaufmann", "Hammond", "Carter", "Walling", "Cosgrove", "Oconnor", "Rutkowski", "Mcgregor", "Hanson", "Casey", "Gearhart", "Leone", "Neely", "Rohr", "Ridenour", "Hartmann", "Tanner", "Gower", "Ward", "Stamps", "Ponder", "Paulson", "Pettigrew", "Cockrell", "Stoltzfus", "Hartzell", "Clemens", "Kunkel", "Rhoads", "Winstead", "Meyers", "Mckeon", "Donley", "Graves", "Brand", "Hedges", "Bonham", "Hubbard", "Pinson", "Saul", "Harman", "Hartnett", "Baugh", "Gunn", "Hutcheson", "Mcnabb", "Combs", "Meek", "Larsen", "Schwab", "Weil", "Tinsley", "Roderick", "Fitch", "Lively", "Seaton", "Hargrave", "Puckett", "Geary", "Ott", "Sutton", "Gatlin", "Dobbs", "Jett", "Moser", "Callahan", "Gaskin", "Gleason", "Randolph", "Card", "Beckham", "Fulkerson", "Melvin", "Grey", "Michalski", "Deloach", "London", "Aiken", "Tabor", "Pippin", "Estes", "Hoyle", "Jones", "Penny", "Roberts", "Stuart", "Hooker", "Lacy", "Summers", "Emery", "Weldon", "Cotter", "Holder", "Orton", "Mccarthy", "Rains", "Keeling", "Weed", "Wegner", "Guarino", "Cohn", "Gilson", "Medlin", "Gunther", "Sadler", "Johnston", "Yoder", "Stidham", "Judge", "Harder", "Witt", "Dockery", "Zeigler", "Lovell", "Blackwell", "Waters", "Cantrell", "Clark", "Hodgson", "Farley", "Herrick", "Snowden", "Moses", "Fabian", "Mancini", "Friedrich", "Leroy", "Place", "Mccann", "Mckenney", "Troutman", "Ferry", "Southard", "Libby", "Minor", "Ethridge", "Traylor", "Stanley", "Tilton", "Beeler", "Mcgovern", "Garber", "Treadway", "Guenther", "Buxton", "Lange", "Grubb", "Dick", "Tatum", "Rayburn", "Fernandes", "Connor", "Hodges", "Moorman", "Carson", "Peterman", "Mccormack", "Conger", "Helm", "Key", "Messick", "Buffington", "Warden", "Herbst", "Wadsworth", "Fortner", "Wheatley", "Pannell", "Poston", "Emmons", "Applegate", "Cox", "Frazer", "Ross", "Baron", "Mead", "Mcbride", "Dillon", "Schindler", "Stoker", "Turk", "Alexander", "Rasmussen", "Lawson", "Mckelvey", "Steel", "Mccarty", "Swanson", "Zielinski", "Byrne", "Brunner", "Nugent", "Bayer", "Houck", "Cupp", "Craven", "Dubois", "Hobson", "Wicker", "Deal", "Booher", "Adam", "Crane", "Rock", "Wentworth", "Goebel", "Shull", "Martell", "Rash", "Nielson", "Kitchens", "Parent", "Kozlowski", "Barber", "Lilley", "Dumas", "Sorensen", "Valente", "Harvey", "Munson", "Munn", "Martz", "Pringle", "Goodrich", "Gillis", "Martini", "Minton", "Call", "Varney", "Weems", "Gross", "Keefe", "Dove", "Hale", "Bourgeois", "Skipper", "Cramer", "Flanagan", "Lanham", "Farmer", "Dunlap", "Gardner", "Ketchum", "Mcmurray", "Sales", "Fleming", "Hintz", "Roark", "Gerlach", "Bales", "Strange", "Wilson", "Mcclain", "Byrd", "Nix", "Beaulieu", "Oglesby", "Adcock", "Stroud", "Schulte", "Leclair", "Stuckey", "Baggett", "Heaton", "Clary", "Merkel", "Reagan", "Gosnell", "East", "Miley", "Read", "Lovejoy", "Sabo", "Huskey", "Boston", "Burger", "Lindley", "Smithson", "Wilkerson", "Starr", "Jerome", "Gilley", "Fenner", "Russell", "Guidry", "Gates", "Mccord", "Wimberly", "Amato", "Whiteman", "Fogle", "Waller", "Enos", "Bowers", "Gottlieb", "Glaser", "Floyd", "Sager", "Harter", "Lundy", "Koster", "Mancuso", "Stringer", "Barth", "Dowd", "Loftus", "Meehan", "Donovan", "Hoover", "Maclean", "Laney", "Byrnes", "Martel", "Riedel", "Milam", "Stull", "Woodworth", "Steele", "Seidel", "Burgess", "Coons", "Neill", "Pugh", "Cave", "Waite", "Head", "Marvin", "Camara", "Moulton", "Bianchi", "Brockman", "Sells", "Crutchfield", "Maier", "Driver", "Roy", "Rousseau", "Alderman", "Stamper", "Fuqua", "Register", "Erdman", "Erb", "Albert", "Heath", "Duckworth", "Roland", "Staples", "Boling", "Lehmann", "Horn", "Fredericks", "Mcallister", "Oakley", "Nickerson", "Handley", "Bowen", "Basile", "Frick", "Langford", "Oaks", "Holtz", "Beaver", "Sisco", "Pierson", "Halsey", "Sprouse", "Beiler", "Zimmermann", "Keys", "Andrews", "Judd", "Roller", "Mackey", "Merrick", "Weinberg", "Lauer", "Weiner", "Keel", "Christensen", "Granger", "Hardy", "Stovall", "Gonsalves", "Wickham", "Mcknight", "Isaacson", "Milburn", "Evers", "Kenny", "Chadwick", "Bray", "Redmond", "Shoemaker", "Cochrane", "Lovelace", "Lynch", "Bowden", "Mcmillan", "Rollins", "Reich", "Gilbertson", "Scherer", "Sowell", "Patterson", "Whiting", "Holt", "Grover", "Eckert", "Tibbs", "Crews", "Burnett", "Adler", "Renner", "Royer", "Grasso", "Sneed", "Seals", "Wainwright", "Weiler", "Yarbrough", "Smyth", "Redman", "Falk", "Shank", "Durham", "Welsh", "Wentz", "Hunt", "Belcher", "Renfro", "Rizzo", "Marques", "Coffman", "Patton", "Hendricks", "Crist", "Schiller", "Hales", "Caputo", "Lind", "Russo", "Shuler", "Legg", "Etheridge", "Chaffin", "Goldstein", "Janes", "Starnes", "Pyles", "Greenberg", "Gibbons", "Carroll", "Scarbrough", "Bassett", "Riley", "Hammer", "Roth", "Falcone", "Herron", "Albers", "Burley", "Matlock", "Fry", "Leblanc", "Mcmaster", "Macdonald", "Damron", "Boone", "North", "Hogg", "Cody", "Kenyon", "Mckenna", "Erwin", "Whitmore", "Fenton", "Marcus", "Sargent", "Blackman", "Kuykendall", "Whited", "Blakely", "Keil", "Stine", "Albertson", "Conrad", "Fair", "Raines", "Daly", "Mickelson", "Fountain", "Wharton", "Gilman", "Bannister", "Thurman", "Spurgeon", "Bracken", "Gordon", "Triplett", "Fletcher", "Kress", "Archer", "Dunne", "Reis", "Culver", "Hill", "Reilly", "Asher", "Hannah", "Hughes", "Friend", "Marek", "Sherry", "Daigle", "Clausen", "Ames", "Drake", "Presley", "Crosby", "Felts", "Gagne", "Whelan", "Kurtz", "Galvin", "Linn", "Brice", "Borden", "Byers", "Wheat", "Denney", "Simmons", "Bain", "Trombley", "Mattson", "Marx", "Iverson", "Richards", "Shelton", "Brubaker", "Albanese", "Chastain", "Hurt", "Coley", "Oconnell", "Flora", "Baldwin", "Kish", "Alley", "Sander", "Grande", "Unruh", "Tracey", "Pulley", "Mcwhorter", "Trotter", "Cooney", "Ludwig", "Rathbun", "Mills", "Earl", "Wimmer", "Whittington", "Jordan", "Clemmons", "Houghton", "Sheppard", "Holman", "Hahn", "Newberry", "Griffith", "Camp", "Turner", "Glover", "Blanchard", "Cummins", "Cheek", "Baumgartner", "Seaman", "Frame", "Bruner", "Sellers", "Croft", "Glasgow", "Conaway", "Proffitt", "Winchester", "Gooding", "Judy", "Daley", "Needham", "Gillen", "Durand", "Hague", "Rawson", "Paxton", "Bagley", "Whitworth", "Morley", "Desantis", "Hillman", "Cowart", "Gann", "Wooden", "Sayers", "Monson", "Osullivan", "Slayton", "Mcelroy", "Layman", "Benjamin", "Mcclelland", "Roden", "Choate", "Oshea", "Kuhn", "Manley", "Bohn", "Hanks", "Haase", "Keener", "Dahl", "Garrett", "Beckman", "Neal", "Morrill", "Ivy", "Pitman", "Keeton", "Augustine", "Sylvester", "Street", "Huggins", "Switzer", "Worley", "Shaw", "Fort", "Leigh", "Salyer", "Allred", "Dodge", "Witmer", "Weiss", "Furlong", "Cady", "Maloney", "Jack", "Mendenhall", "Maddox", "Halverson", "Nunley", "Wasson", "Pauley", "Jay", "Bauer", "Enright", "Holliday", "Metzler", "Sexton", "Amos", "Hetrick", "Bittner", "Lundquist", "Malcolm", "Truitt", "Lord", "Bentley", "Mcdevitt", "English", "Livingston", "Coppola", "Mcdade", "Ezell", "Scarborough", "Fullerton", "Ferraro", "Britton", "Mccartney", "Mcnally", "Massey", "Odonnell", "Jacobsen", "Musick", "Trent", "Stevens", "Blount", "Sessions", "Huntley", "Sammons", "Winslow", "Wojcik", "Spurlock", "Thomson", "Yates", "Law", "Lundgren", "Pulliam", "Meier", "Bischoff", "Rosenberger", "Myrick", "Brinson", "Eller", "Pritchett", "Ricketts", "Hall", "Woolley", "Mcconnell", "Mcafee", "Corbett", "Story", "Horner", "Groves", "Barkley", "Whittle", "Blank", "Boswell", "Blackwood", "Tisdale", "Burrows", "Rosen", "Taylor", "Shannon", "Paulsen", "Thorne", "Norton", "Straub", "Brady", "Atchison", "Stoll", "Snipes", "Lancaster", "Shaver", "Waldron", "Rosser", "Borders", "Mcmillen", "Post", "Ladd", "Cushing", "Holbrook", "Gray", "Harper", "Painter", "Phelan", "Heilman", "Masterson", "Wenzel", "Gurley", "Causey", "Steinmetz", "Sprague", "Christie", "Casper", "Mccall", "Rider", "Heck", "Schmid", "Schweitzer", "Slattery", "Heims", "Bolt", "Snyder", "Loper", "Welker", "Griffis", "Sweat", "Mckeown", "Gatewood", "Morrell", "Halstead", "David", "Ingram", "Baird", "Miner", "Fleck", "Fagan", "Allman", "Bruce", "Ware", "Hazel", "Grenier", "Rudd", "Bahr", "Bryan", "Hamby", "Shepard", "Boatwright", "Bernstein", "Redden", "Crocker", "Nolan", "Butcher", "Haines", "Bricker", "Boyce", "Nance", "Mashburn", "Newton", "Toler", "Sumner", "Reaves", "Carden", "Nathan", "Silverstein", "Reed", "Foreman", "Ashe", "Hickey", "Anthony", "Martins", "Lemaster", "Doll", "Grogan", "Stebbins", "Mayberry", "Day", "Anglin", "Higginbotham", "Mccue", "Linville", "Larose", "Carbone", "Seibert", "Warfield", "Pickens", "Walz", "Ries", "Greene", "Mertz", "Jenks", "Destefano", "Walters", "Nettles", "Lowery", "Teixeira", "Putnam", "Volpe", "Gauthier", "Hanlon", "Walker", "Ragan", "Tucker", "Rubino", "Kirk", "Stepp", "Leslie", "Shelby", "Jernigan", "Low", "Downey", "Woolsey", "Palermo", "Schreiber", "Arndt", "Salter", "Pease", "Barnard", "Hussey", "Lucas", "Walsh", "Vincent", "Silver", "Bivens", "Bussey", "Hartwell", "Jacobs", "Bernhardt", "Deyoung", "Counts", "Farrow", "Lutz", "Strain", "Dreyer", "Hofer", "Schmitz", "Milner", "Oden", "Parkinson", "Romano", "Hibbard", "Staggs", "Mcvay", "Nash", "Owen", "Johnson", "Glenn", "Toney", "Mcdonough", "Whitcomb", "Purdy", "Loyd", "Quick", "Slaughter", "Doolittle", "Marchese", "Montague", "Way", "Doughty", "Earley", "Swafford", "Pieper", "Conley", "Kruger", "Ragland", "Harlow", "Carmichael", "Garrison", "Shanks", "Michel", "Weller", "Huff", "Hacker", "Cobb", "Larue", "Guillory", "Speer", "Cato", "Hoff", "Madison", "Benoit", "Flowers", "Lipscomb", "Langston", "Mckenzie", "Howland", "Andres", "Dayton", "Donnelly", "Potter", "Clouse", "Shirley", "Downs", "Hecht", "Stubblefield", "Matheny", "Walther", "Selby", "Stark", "Rutherford", "Bergeron", "Eggleston", "Simpkins", "Reiter", "Rohrer", "Knoll", "Lusk", "Jorgensen", "Gannon", "Jarvis", "Lindberg", "Newman", "Wiseman", "Schreiner", "Perdue", "Burdick", "Galbraith", "Garvin", "Boren", "Frederick", "Priest", "Beverly", "Valenti", "Smothers", "Bartley", "Burnside", "Larkin", "Lamb", "Agnew", "Spitzer", "Mccutcheon", "Shipman", "Mackenzie", "Himes", "Wheeler", "Ely", "Cottrell", "Munro", "Plunkett", "Dickerson", "Williford", "Leary", "Ruff", "Sample", "Niles", "Stephan", "Badger", "Cordell", "Robertson", "Creighton", "Creech", "Briggs", "Hoffman", "Reinhart", "Richmond", "Bolen", "Cornelius", "Pendleton", "Olmstead", "Mangum", "Basham", "Vetter", "Barr", "Marquardt", "Erickson", "Holland", "Faulkner", "Melton", "Haynes", "Heffernan", "Whyte", "Skidmore", "Adams", "Minnick", "Towne", "Greiner", "Mccormick", "Crawley", "Ruble", "Prewitt", "Roddy", "Heil", "Sheets", "Marker", "Atkinson", "Wilkes", "Cushman", "Wilt", "Palumbo", "Pogue", "Ruth", "Littlefield", "Newby", "Stinnett", "Mcmullen", "Wozniak", "Keeler", "Havens", "Grisham", "Shaffer", "Castellano", "Wilbur", "Greathouse", "Poe", "Holley", "Barnhill", "Rankin", "Lennon", "Koch", "Larson", "Arsenault", "Rosenfeld", "Hooper", "Darr", "Kremer", "Binkley", "Merrill", "Miller", "Vickers", "Hare", "Whitley", "Cotton", "Jobe", "Dickinson", "Morgan", "Rinaldi", "Kaminski", "Riggs", "Thibodeaux", "Bostick", "Deangelo", "Ralston", "Lanning", "Hoffmann", "Connors", "Mcarthur", "Valentine", "Bair", "Eden", "Mattox", "Crabtree", "Schenk", "Timmerman", "Pagano", "Whatley", "Mendes", "Hancock", "Boothe", "Linder", "Theis", "Bankston", "Rector", "Horton", "Roe", "Cross", "Gibson", "Wright", "Tharp", "Hutson", "Clarkson", "Colley", "Sousa", "Kasper", "Muir", "Peter", "Mccrary", "Beavers", "Farkas", "Gilchrist", "Robson", "Moore", "Ford", "Beck", "Bice", "Hager", "Irwin", "Temple", "Dover", "Hough", "Rooney", "Goforth", "Watkins", "Corbin", "Blalock", "Headley", "Shipp", "Ransom", "Estep", "Adair", "Gilliland", "Biddle", "Wilke", "Prosser", "Gerard", "Wells", "Bollinger", "Pearson", "Boyer", "Hanes", "Kenney", "Bock", "Noland", "Corey", "Thomas", "Joyce", "Mcpherson", "Monahan", "Pickett", "Hutton", "Tubbs", "Derr", "Reeves", "Seiler", "Lott", "Cahill", "Lemke", "Cline", "Henke", "Maki", "Lund", "Burkett", "Wise", "Hackett", "Mallory", "Bone", "Jacobson", "Byler", "Saunders", "Haag", "Dodson", "Mccorkle", "Flannery", "Lake", "Thomsen", "Brantley", "Winn", "Hardman", "Regan", "Ginn", "Bernard", "Mccallum", "Haggard", "Simon", "Mooney", "Luttrell", "Jasper", "Mundy", "Windsor", "Coulter", "Acker", "Duff", "Lawrence", "Mccaffrey", "Gulley", "Simms", "Hull", "Thames", "Ackley", "Vanmeter", "Minter", "Worth", "Pettis", "Donaldson", "Sands", "Whitmire", "Mercer", "Duffy", "Stanfield", "Gaskins", "Engel", "Lohr", "Bloom", "Barton", "Teal", "Parrott", "Mandel", "Kirby", "Pope", "Klein", "Wellman", "Mcdowell", "Redding", "Hinkle", "Baughman", "Quirk", "Stockwell", "Goolsby", "Blaylock", "Moe", "True", "Seitz", "Criswell", "Chandler", "Mchugh", "Almeida", "Yocum", "Fuller", "Johansen", "Rickard", "Sampson", "Sacco", "Schaeffer", "Burr", "Groth", "Hand", "Trainor", "Burroughs", "Bettencourt", "Schoonover", "Lockwood", "Karr", "Dupont", "Fraley", "Hermann", "Ripley", "Andrus", "Bailey", "Bosley", "Schulz", "Autry", "Hess", "Simone", "Neff", "Mccracken", "Eason", "Kimball", "Redd", "Wilks", "Sams", "Spicer", "Springer", "Utley", "Sumpter", "High", "Pratt", "Fogarty", "Thornton", "Frantz", "Orth", "Julian", "Laws", "Sorenson", "Piper", "Cornwell", "Whaley", "Seymour", "Hershberger", "Conner", "Perrin", "Hornsby", "Hutchins", "Lafleur", "Garner", "Best", "Crain", "Mcnamara", "Sikes", "Roche", "Sears", "Spears", "Shipley", "Saleh", "Parish", "Killian", "Smart", "Stewart", "Barbour", "Edgar", "Brock", "Bachman", "Sheridan", "Wirth", "Copley", "Ferrara", "House", "Preston", "Black", "Murrell", "Gilliam", "Broyles", "Guinn", "Kinard", "Fischer", "Schmidt", "Harwood", "Joiner", "Battles", "Mabe", "Snead", "Poulin", "Dangelo", "Tuttle", "Winter", "Seward", "Wynne", "Barron", "Goddard", "Dickey", "Dyson", "Busby", "Billings", "Gamble", "Childress", "Burke", "Gilbert", "Ebert", "Funk", "Bucher", "Fine", "Albright", "Baran", "Pinto", "Kirchner", "Garland", "Beatty", "Marquis", "Dupree", "Pike", "Waiters", "Grubbs", "Paterson", "Rowley", "Custer", "Stockton", "Raynor", "Tate", "Guess", "Deluca", "Mccloud", "Arnold", "Ridley", "Krantz", "Noyes", "Lovett", "Bolin", "Norman", "Prince", "Herrin", "Close", "Bratcher", "Pickering", "Grayson", "Frye", "Lanier", "Hensley", "Crider", "Wessel", "Keim", "Eggers", "Fryer", "Ennis", "Gill", "Carlson", "Bechtel", "Vogel", "Gagnon", "Douglas", "Oleary", "Scott", "Wick", "Fiore", "Wampler", "Burt", "Bunch", "Schultz", "Stott", "Mcwilliams", "Breaux", "Payne", "Hutchison", "Giese", "Hair", "Willett", "Keane", "Button", "Settle", "Hedrick", "Linton", "Burrow", "Castleberry", "Ferrari", "Easterling", "Ferreira", "Bertram", "Bonner", "Penrod", "Myers", "Wyatt", "Lenz", "Davis", "Bordelon", "Cleary", "Conover", "Moen", "Walton", "Troyer", "Ragsdale", "Watt", "Schneider", "Vinson", "Weathers", "Bristol", "Jester", "Olson", "Findley", "Watters", "Ledford", "Gerber", "Desimone", "Stowe", "Hines", "Wyman", "Goode", "Harris", "Godfrey", "Dehart", "Novotny", "Heffner", "Matthews", "Crowder", "Kramer", "Kendrick", "Huss", "Napier", "Kehoe", "Mcgill", "Heflin", "Moll", "Casto", "Hyland", "Beam", "Gregg", "Donald", "Montgomery", "Braun", "Emerson", "Kidder", "Benton", "Petersen", "Cavanaugh", "Withers", "Meade", "Furr", "Logan", "Kozak", "Clifford", "Irvine", "Packer", "Justice", "Huddleston", "Dailey", "Brophy", "Riordan", "Stillwell", "Victor", "Lassiter", "Hopson", "Humphrey", "Dye", "Grady", "Conte", "Dwyer", "Kaplan", "Hudgins", "Corder", "Skelton", "Ryan", "Greenlee", "Keene", "Meeker", "Mullins", "Toomey", "Swartz", "Armour", "Otis", "Mcmahon", "Griffiths", "Bontrager", "Marino", "Beckett", "Bernier", "French", "Noll", "Wallis", "Schott", "Ledbetter", "Earnest", "Steen", "Chestnut", "Runyon", "Ferris", "Crum", "Johnsen", "Kingston", "Silverman", "Dean", "Pickard", "Hart", "Knowles", "Mcintosh", "Majors", "Ogden", "Shane", "Pool", "Krebs", "Eby", "Bail", "Coats", "Solomon", "Faust", "Fahey", "Clough", "Brennan", "Field", "Stein", "Nixon", "Harbin", "Sparkman", "Palm", "Abel", "Westmoreland", "Haight", "Parson", "Petty", "Lincoln", "Worthington", "Gorski", "Buchholz", "Gallagher", "Kidwell", "Hoag", "Aiello", "Cherry", "Wilhite", "Holly", "Noe", "Lombardo", "Laird", "Neumann", "Bourque", "Brinkman", "Slater", "Hauser", "Gee", "Gillespie", "Everhart", "Hutto", "Cason", "Beil", "Spain", "Sanderson", "Krieger", "Bowles", "Farr", "Vandyke", "Hatfield", "Clemons", "Pearl", "Mayer", "Odom", "Ruby", "Samples", "Kiefer", "Sharpe", "Barger", "Swisher", "Warner", "Cheatham", "Church", "Landis", "Whipple", "Leavitt", "Paquette", "Boehm", "Coon", "Israel", "Cantwell", "Marion", "Mcneil", "Bennett", "Keck", "Hartley", "Bruns", "Flick", "Wray", "Cope", "Engle", "Dougherty", "March", "Graf", "Provost", "Sharkey", "Beasley", "Hyatt", "Sturgill", "Butts", "Shinn", "Barnett", "Plummer", "Hawkins", "Brooks", "Lumpkin", "Keyes", "Barone", "Spalding", "Berlin", "Rodrigues", "Boss", "Leighton", "Rhea", "Meador", "Dube", "Woody", "Mcleod", "Huebner", "Dion", "Stout", "Rogers", "Lundberg", "Adkins", "Capps", "Carrier", "Clapp", "Canfield", "Fox", "Friesen", "Slone", "Doherty", "Tripp", "Thatcher", "Butterfield", "Barlow", "Buckner", "Lafferty", "Stover", "Hurley", "Bull", "Drury", "Large", "Wasserman", "Hampton", "Mccauley", "Landon", "Hardwick", "Beeson", "Vargo", "Fellows", "Cummings", "Swank", "Wolford", "Pace", "Brunson", "Vick", "Herr", "Ingle", "Kline", "Comstock", "Honeycutt", "Holcombe", "Goad", "Lehman", "Currier", "Bullock", "Hennessy", "Rau", "Forsythe", "Hatton", "Lyons", "Troy", "Ibrahim", "Dowell", "Locke", "Dellinger", "Ridgeway", "Haller", "Stauffer", "Southern", "Eastman", "Shockley", "Westbrook", "Savage", "Whitson", "Houser", "Dvorak", "Nelms", "Murdock", "Chase", "Fredrickson", "Shumate", "Herrington", "Vogt", "Porter", "Milton", "Chester", "Champion", "Groff", "Dixon", "Lemay", "Yost", "Gary", "Colson", "Arnett", "Riggins", "Merchant", "Dickson", "Carney", "Howes", "Stevenson", "Haas", "Ball", "Kerns", "Bader", "Cote", "Heckman", "Collett", "Falls", "Cowan", "Metzger", "Thornburg", "Severson", "Olds", "Rinehart", "Kern", "Finley", "Knutson", "Nesmith", "Michaud", "Michael", "Schrock", "Davenport", "Atkins", "Blake", "Hewitt", "Dutton", "Sewell", "Madsen", "Foote", "Sherwood", "Coleman", "Morris", "Workman", "Gaffney", "Lapointe", "Woodcock", "Stacy", "Harrelson", "Dempsey", "Prater", "Flynn", "Reichert", "Scholl", "Kiley", "Kidd", "Pyle", "Walden", "Bolton", "Lorenz", "Chambers", "Hansen", "Partin", "Fraser", "Goodwin", "Fairbanks", "Cloutier", "Little", "Huffman", "Billingsley", "Boyles", "Lewis", "Bates", "Crites", "Mohr", "Stephens", "Marks", "Rauch", "Apple", "Shell", "Venable", "Back", "Anders", "Sims", "Barrow", "Breen", "Everson", "Horowitz", "Winters", "Horning", "Whitlock", "Muse", "Varner", "Zink", "Mcintire", "Bliss", "Poore", "Doss", "Dagostino", "Griffin", "Hollis", "Woodbury", "Kohl", "Huntington", "Ham", "Hulse", "Dykes", "Willoughby", "Strother", "Booth", "Kroll", "Garrity", "Plank", "Adamson", "Stone", "Craddock", "Mcginnis", "Luther", "Ernst", "Devlin", "Grigsby", "Hays", "Pinkerton", "Backus", "Mclemore", "Dill", "Ellison", "Rea", "Stock", "Jeffries", "Reardon", "Blair", "Graff", "Townsend", "Richardson", "Mohler", "Merritt", "Moriarty", "Fugate", "Lathrop", "Fannin", "Moreau", "Layne", "Pollack", "Swope", "Waldrop", "Gale", "Justus", "Teel", "Sigler", "Moffitt", "Willard", "Schumacher", "Cranford", "Wayne", "Bremer", "Landrum", "Clanton", "Durbin", "Kellogg", "Braswell", "Whitehurst", "Fink", "Rupp", "Kiser", "Kovacs", "Mclain", "Lightfoot", "Hailey", "Hite", "Gainey", "Roush", "Forsyth", "Paine", "Haney", "Cohen", "Swan", "Jamieson", "Thibodeau", "Hulsey", "Fortune", "Kinsey", "Waddell", "Berger", "Diamond", "Ferrell", "Carnes", "Kent", "Baxley", "Dombrowski", "Boudreaux", "Gaddis", "Trimble", "Monaghan", "Fazio", "Hinson", "York", "Pederson", "Sandberg", "Hembree", "Haggerty", "Gavin", "Giddens", "Mabry", "Keegan", "Foley", "Fields", "Bostic", "Knudson", "Schilling", "Harless", "Pedersen", "Gore", "Blackburn", "Pellegrino", "Poland", "Schell", "Cloud", "Hubert", "Beach", "Bigelow", "Siler", "Talley", "Cain", "Jonas", "Pitts", "Metcalf", "Conn", "Arthur", "Currie", "Tarr", "Waterman", "Wood", "Peek", "Rutter", "Chapman", "Isaac", "Carman", "Roach", "Healy", "Bickel", "Goncalves", "Altman", "Derrick", "Proctor", "Cannon", "Beall", "Boyle", "Doucette", "Corwin", "Colwell", "Eaton", "Hutchings", "Morrow", "Longo", "Jaeger", "Morehead", "Briscoe", "Lilly", "Chrisman", "Merrell", "Mcgrath", "Berg", "Sperry", "Cable", "Corley", "Denning", "Taft", "Lavigne", "Damico", "Mullis", "Crooks", "Rushing", "Hoppe", "Conti", "Kesler", "Ehlers", "Holton", "Cooley", "Dallas", "Beyer", "Rigsby", "Randall", "Alcorn", "Knight", "Hilliard", "Aldridge", "Joyner", "Mosier", "Bragg", "Blocker", "White", "Ogle", "Zimmer", "Isom", "Buck", "Pond", "Seal", "Hume", "Goodson", "Kilgore", "Babb", "Hoyt", "Meeks", "Keith", "Brothers", "Lapp", "Underhill", "Stjohn", "Sawyer", "Bratton", "Nagy", "Sachs", "Kennedy", "Newkirk", "Hatcher", "Satterfield", "Rosenthal", "Schlegel", "Thorn", "Smail", "Kilpatrick", "Koester", "Parr", "Cathey", "Grabowski", "Fennell", "Amaral", "Wendt", "Sipes", "Akers", "Oneal", "Bethel", "Koehn", "Stoddard", "Strickland", "Rowan", "Tilley", "Batson", "Howard", "Shore", "Gentry", "Ridge", "Brumley", "Robert", "Blankenship", "Newsome", "Butler", "Blackmon", "Timm", "Tomlin", "Durant", "Rice", "Hoy", "Howell", "Radford", "Cronin", "Davey", "Paul", "Bond", "Reynolds", "Bright", "Richey", "Horvath", "Moss", "Hannon", "Daugherty", "Thomason", "Scanlon", "Werner", "Janssen", "Cornett", "Rawlings", "Blanchette", "Storm", "Brandon", "Newcomb", "Devito", "Williamson", "Esposito", "Robinette", "Sasser", "Duval", "Beale", "Trout", "Sanders", "Brink", "Pollock", "Ballard", "Gunter", "Browning", "Mason", "Peak", "Gipson", "Spring", "Moreland", "Kersey", "Holm", "Hardin", "Phillips", "Sauer", "Mckinney", "Ballinger", "Mahaffey", "Packard", "Scruggs", "Schnell", "Stokes", "Loving", "Kerr", "Oreilly", "Ellis", "Peltier", "Christopher", "Barney", "Simpson", "Mccune", "Frazier", "Kempf", "Mulder", "Mcrae", "Barnette", "Mckinnon", "Dix", "Lawton", "Farrington", "Elrod", "Roby", "Mullin", "Gable", "Covert", "Kemper", "Platt", "Kemp", "Forster", "Harp", "Laster", "Piazza", "Bower", "Tibbetts", "Cartwright", "Monk", "Carr", "Chamberlin", "Leggett", "Hankins", "Parnell", "Cleveland", "Kistler", "Vandenberg", "Clem", "Penn", "Romine", "Begley", "Fiedler", "Trowbridge", "Koller", "Mccoy", "Weir", "Thacker", "Gladden", "Appel", "Burris", "Burton", "Westfall", "Knox", "Cromer", "Atwood", "Christman", "Jameson", "Kay", "Lehr", "Beaudoin", "Burden", "Harlan", "Glass", "Denny", "Hawley", "Hogan", "Schmitt", "Henderson", "Lowry", "Fain", "Slack", "Batten", "Mcmichael", "Elliott", "Kimmel", "Dow", "Littleton", "Norwood", "Clegg", "Harley", "Hackney", "Stubbs", "Easton", "Tyree", "Correll", "Fontenot", "Levine", "Wakefield", "Albrecht", "Shade", "Purvis", "Barrett", "Powell", "Clawson", "Isbell", "Hearn", "Tenney", "Wild", "Ashton", "Hunter", "Grantham", "Kirkland", "Rowe", "Queen", "Hopkins", "Bogart", "Crockett", "Titus", "Tracy", "Britt", "Jablonski", "Krug", "Ritchie", "Beaty", "Bickford", "Graham", "Berkowitz", "Mott", "Campbell", "Stanton", "Bach", "Denham", "Ewing", "Mace", "Pereira", "Shea", "Callaway", "Carlton", "Logue", "Schaefer", "Long", "Mathis", "Ostrander", "Blanton", "Carlin", "Schatz", "Kimble", "Graber", "Saxton", "Shook", "Devries", "Peterson", "Glick", "Handy", "Mcgee", "Sanford", "Cade", "Hyde", "Fortier", "Hildebrand", "Cornell", "Rawls", "Orourke", "Cooper", "Mccombs", "Harms", "Wilkie", "Moffett", "Harmon", "Wolf", "Streeter", "Warren", "Langdon", "Ulmer", "Weeks", "Stiles", "Sanborn", "Krauss", "Compton", "Dunham", "Moran", "Salerno", "Gould", "Vann", "Feller", "Nesbitt", "Lunsford", "Flint", "Gandy", "Thornhill", "Hendrickson", "Stallings", "Matson", "Hirsch", "Chism", "Marr", "Laughlin", "Dewey", "Calabrese", "Siebert", "May", "Aaron", "Brownell", "Sweeney", "Brinkley", "Daily", "Dodd", "Carver", "Malloy", "Menard", "Colvin", "Kendall", "Odell", "Correia", "Nelson", "Parisi", "Singer", "Cyr", "Neel", "Peebles", "Brody", "Schwarz", "Lane", "Flanders", "Mulligan", "Burchett", "Barclay", "Souza", "Caudle", "Berry", "Bohannon", "Jewell", "Culbertson", "Anderson", "Self", "Oneill", "Perkins", "Landry", "Hay", "Bass", "Tobias", "Rhodes", "Costa", "Carpenter", "Keaton", "Dalton", "Santoro", "Hawthorne", "Childers", "Vitale", "Peace", "Quigley", "Neil", "Hynes", "Lytle", "Robb", "Kuehn", "Greenwood", "Swann", "Deaton", "Pack", "Colby", "Lawless", "Hundley", "Gillette", "Knotts", "Ingalls", "Rose", "Seifert", "Harrison", "Pitt", "Spriggs", "Sisson", "Koenig", "Grice", "Cardwell", "Rubin", "Meredith", "Knowlton", "Burnette", "Eaves", "Bell", "Carlisle", "Raney", "Beauchamp", "Gold", "Parris", "Dodds", "Reimer", "Hammett", "Prentice", "Hein", "Ohara", "Sorrell", "Raley", "Turley", "Fuchs", "Allison", "Condon", "Corcoran", "Hargis", "Covington", "Quinlan", "Langley", "Kovach", "Geiger", "Gustafson", "Watts", "Wilcox", "Lerner", "Roberson", "Ferrante", "Gifford", "Younger", "Mackay", "Schroeder", "Kelly", "Mchale", "Hendrick", "Maggard", "Spires", "Pfeifer", "Gilmore", "Pape", "Mahoney", "Mathias", "Lacey", "Toth", "Jeffrey", "Hildreth", "Peck", "Monaco", "Marlow", "Eck", "Motley", "Gay", "Coburn", "Shay", "Marsh", "Tavares", "Cassidy", "Putman", "Szymanski", "Barfield", "Pearce", "Hanley", "Bland", "Okeefe", "Herbert", "Peters", "Prather", "Conway", "Dunning", "Samuelson", "Rowell", "Peacock", "Flood", "Cosby", "Foster", "Vickery", "Mcdermott", "Whitehead", "Fritz", "Guido", "Kraft", "Usher", "Garnett", "Crouch", "Davidson", "Beal", "Pappas", "Bridges", "Geller", "Jenkins", "Rudolph", "Hyman", "Watson", "Lowman", "Roper", "Pritchard", "Francis", "Burdette", "Feeney", "Monroe", "Cormier", "Boudreau", "Grossman", "Mcdonnell", "Keiser", "Hannan", "Leonard", "Major", "Picard", "Whitlow", "Moon", "Hummel", "Lindner", "Hamm", "Mauro", "Bird", "Branham", "Inman", "Lindsay", "Wingate", "Barry", "Fitzgerald", "Womack", "Andre", "Burk", "Nunn", "Glynn", "Foss", "Rambo", "Drew", "Stearns", "Alves", "Hoskins", "Mccurry", "Spear", "Barbee", "Shanahan", "Ness", "Nadeau", "Hefner", "Osborn", "Simons", "Dial", "Beard", "Clifton", "Crandall", "Goble", "Hagan", "Henning", "Ambrose", "Baum", "Skaggs", "Pomeroy", "Everett", "Lemieux", "Burleson", "Geer", "Whittaker", "Hayward", "Potts", "Bishop", "Vance", "Sullivan", "Slade", "Mobley", "Hawes", "Drummond", "Tomlinson", "Hills", "Connell", "Steffen", "Wertz", "Stinson", "Brewster", "Hemphill", "Calvert", "Stump", "Gantt", "Sizemore", "Madden", "Sutherland", "Boland", "Bianco", "Hastings", "Tompkins", "Schrader", "Wyant", "Golden", "Dunbar", "Reitz", "Ainsworth", "Gomes", "Marler", "Elkins", "Steinberg", "Musser", "Morrison", "Houle", "Kaiser", "Doyle", "Parks", "Hamlin", "Coffin", "Walter", "Stephenson", "Bowling", "Benner", "Hiatt", "Vollmer", "Ives", "Marshall", "Shearer", "Rodgers", "Beardsley", "Savoy", "Joslin", "Neilson", "Logsdon", "Wylie", "Coughlin", "Otoole", "Doran", "Shepherd", "Orlando", "Goldberg", "Musselman", "Sides", "Fried", "Hopper", "Bronson", "Craig", "Ivey", "Maurer", "Casteel", "Landers", "Mcculloch", "Lea", "Ramsay", "Schoen", "Stegall", "Kuntz", "Boettcher", "Hardison", "Siegel", "Elmore", "Martens", "Goins", "Caldwell", "Crow", "Main", "Tennant", "Mathews", "Koontz", "Mclaughlin", "Mcgraw", "Nagel", "Webb", "Grant", "Kraus", "Edge", "Nutt", "Peyton", "Wagoner", "Brackett", "Crenshaw", "Benson", "Downing", "Wilkinson", "Mueller", "Perry", "Mays", "Wolfe", "Kohn", "Huey", "Vaccaro", "Hightower", "Mosher", "Ayers", "Geyer", "King", "Plante", "Dennis", "Griggs", "Root", "Fournier", "Horan", "Becker", "Carl", "Lowe", "Kitchen", "Ritter", "Turpin", "Woodruff", "Heller", "Pollard", "Mann", "Reeder", "Ray", "Bryant", "Ayres", "Hooks", "Brower", "Starling", "Darnell", "Griswold", "Trammell", "Willey", "Pendergrass", "Asbury", "Ammons", "Perryman", "Epperson", "Duggan", "Tuck", "Nelsen", "Mayo", "Archibald", "New", "Grimes", "Berryman", "Fontaine", "Liles", "Sage", "Douglass", "Boggs", "Hostetler", "Tice", "Wynn", "Bowlin", "Boucher", "Lindsey", "Jacques", "Wallace", "Talbert", "Jamison", "Templeton", "Faircloth", "Barnhart", "Faber", "Houston", "Stroup", "Messer", "Joy", "Testa", "Diehl", "Barker", "Wooten", "Broderick", "Bush", "Tyler", "Arrington", "Green", "Colburn", "Wicks", "Brannan", "Rush", "Crowell", "Dell", "Pennington", "Reno", "Stephen", "Maxwell", "Nobles", "Bourne", "Mckay", "Kahn", "Ashby", "Creamer", "Schaffer", "Nielsen", "Newell", "Mcqueen", "Link", "Sturgeon", "Greenwell", "Abrams", "Speed", "Swift", "Richman", "Spangler", "Keating", "Shively", "Whitt", "Ratcliff", "Smoot", "Mcfarland", "Kelley", "Welch", "Angell", "Avery", "Spiegel", "Yeager", "Keyser", "Hayden", "Hargrove", "Lang", "Fish", "Curtis", "Foy", "Petrie", "Dunaway", "Shirk", "Caudill", "Ahern", "Ziegler", "Sheffield", "Shackelford", "Cecil", "Molloy", "Haskell", "James", "Comer", "Hanna", "Bobo", "Easter", "Holloway", "Hurd", "Abell", "Morey", "Mello", "Staton", "Ferguson", "Mccallister", "Nye", "Guy", "Wahl", "Mcnutt", "Shumaker", "Mayfield", "Stclair", "Ackerman", "Chisholm", "Payton", "Mast", "Means", "Meyer", "Ballew", "Mahan", "Noel", "Farrell", "Nemeth", "Laporte", "Furman", "Gossett", "Lankford", "Forrester", "Laplante", "Krueger", "Hamel", "Benedict", "Stapleton", "Bogan", "Mowery", "Mount", "Cagle", "Mclean", "Lloyd", "Ashley", "Poling", "Stacey", "Sheldon", "Beebe", "Lance", "Mccarter", "Jorgenson", "Tallman", "Brogan", "Walls", "Macleod", "Rohde", "Terrell", "Eddy", "Steiner", "Egan", "Leger", "Felton", "Mitchell", "Oswald", "Rouse", "Vanwinkle", "Winkler", "Freed", "Dickens", "Halvorson", "Hass", "Slocum", "Mccloskey", "Overton", "Strand", "Hadley", "Pressley", "Allan", "Childs", "Grove", "Kinder", "Kelsey", "Bess", "Grimm", "Chamberlain", "Dale", "Kolb", "Herrmann", "Lyon", "Heiser", "Medeiros", "Damon", "Weigel", "Schuler", "Fanning", "Cromwell", "Koss", "Keen", "Irving", "Mauldin", "Forte", "Ferro", "Bergman", "Bundy", "Scroggins", "Poole", "Shrader", "Richard", "Grim", "Parry", "Mather", "Mixon", "Haugen", "Cutler", "Farber", "Higdon", "Swain", "Tiller", "Fishman", "Sibley", "Ricci", "Pullen", "Donohue", "Elliot", "Mansfield", "Fincher", "Jolley", "Dennison", "Waltz", "Mcclure", "Echols", "Tobin", "Burnham", "Abney", "Nunes", "Kane", "Sparrow", "Rausch", "Underwood", "Graziano", "Johnstone", "Fisher", "Rainwater", "Youngblood", "Magee", "Osborne", "Heim", "Buckingham", "Washburn", "Lefebvre", "Blevins", "Christenson", "Ash", "Bacon", "Yount", "Ratliff", "Calkins", "Andersen", "Mazza", "Mulcahy", "Luke", "Steadman", "Quinn", "Loy", "Henry", "Kerrigan", "Gaddy", "Dietrich", "Duke", "Mercier", "Schafer", "Bear", "Moeller", "Bedford", "Travers", "Kessler", "Lindquist", "Pinkston", "Deangelis", "Buss", "Heinrich", "Segal", "Box", "Wooldridge", "Schulze", "Mcmahan", "Buchanan", "Harrell", "Burks", "Pittman", "Irvin", "Doe", "Poindexter", "Bagwell", "Middleton", "Fultz", "Allard", "Overstreet", "South", "Vail", "Germain", "Lamar", "Cook", "Turnbull", "Vanover", "Mcreynolds", "Scoggins", "Florence", "Sommer", "Wing", "John", "Koehler", "Mahon", "Lemons", "Sapp", "Pryor", "Mcdaniels", "Ramsey", "Steward", "Devine", "Goodin", "Layton", "Morton", "Scully", "Jarrett", "Calhoun", "Rupert", "Kester", "Withrow", "Skinner", "Ashworth", "Nutter", "Hoke", "Cornish", "Christ", "Grissom", "Edmondson", "Martinson", "Trapp", "Charlton", "Masters", "Cooke", "Frank", "Small", "Wren", "Prescott", "Schofield", "Wofford", "Wiese", "Maher", "Sandlin", "Goldman", "Wiley", "Bertrand", "Coble", "Demarco", "Wolff", "Woodall", "Dobbins", "Loveless", "Levin", "Loomis", "Squires", "Willis", "Bunn", "Mccabe", "Strom", "Goldsmith", "Stack", "Desmond", "Hogue", "Mccain", "Crowe", "Greenwald", "Higgs", "Schuster", "Foltz", "Nicholas", "German", "West", "Christian", "Wilde", "Hauck", "Schubert", "Kirkwood", "Forrest", "Farris", "Vieira", "Strong", "Nowak", "Schwartz", "Upchurch", "Donahue", "Phipps", "Webber", "Stafford", "Wenger", "Seay", "Haddock", "Mcgrew", "Betts", "Young", "Stoner", "Coyne", "Swearingen", "Angelo", "Reid", "Page", "Duckett", "Free", "Hammonds", "Zook", "Jeffers", "Boyd", "Cullen", "Snow", "Flanigan", "Dewitt", "Fontana", "Vaughan", "Frost", "Stutzman", "Talbott", "Humphries", "Doane", "Driscoll", "Biggs", "Wiggins", "Cone", "Levi", "Knott", "Chappell", "Dudley", "Nagle", "Howe", "Binder", "Ellsworth", "Lyman", "Shifflett", "Hallman", "Keefer", "Collier", "Slagle", "Staley", "Burkhart", "Gorman", "Hitchcock", "Haddad", "Stpierre", "Burney", "Goodman", "Lister", "Devore", "Oneil", "Canady", "Hebert", "Kearney", "Wisniewski", "Browne", "Smalley", "Johns", "Gaither", "Weber", "Horst", "Rand", "Spencer", "Schlosser", "Dalrymple", "Gibbs", "Harry", "Silvers", "Abbott", "Edmonds", "Sarver", "Wiles", "Buckley", "Rader", "Weidner", "Hennessey", "Jacob", "Homan", "Mcclellan", "Haskins", "Mcfarlane", "Hardesty", "Noonan", "Waugh", "Curry", "Mark", "Knapp", "Hickman", "Szabo", "Keeney", "Clayton", "Murray", "Herndon", "Gabel", "Harden", "Baer", "Beckwith", "Looney", "Hamblin", "Stern", "Mcdaniel", "Raber", "Elam", "Mcadams", "Duvall", "Fries", "Coates", "Wilder", "Dooley", "Sell", "Couch", "Heinz", "Crook", "Couture", "Maas", "Bunker", "Lewandowski", "Giordano", "Maguire", "Hawk", "Budd", "Irish", "Mariano", "Zimmerman", "Smallwood", "Abraham", "Soper", "Henson", "Parrish", "Akin", "Dugger", "Sisk", "Lentz", "Hiller", "Timmons", "Freedman", "Mccreary", "Mcfall", "Creel", "Comeaux", "Babcock", "Freund", "Simonson", "Lester", "Kopp", "Soares", "Jensen", "Voigt", "Catalano", "Denton", "Coffey", "Finney", "Todd", "Haley", "Norris", "Omalley", "Bauman", "Orr", "Maples", "Fike", "Hobbs", "Earle", "Ladner", "Hutchens", "Vaughn", "Klinger", "Ulrich", "Guest", "Bullard", "Forbes", "Wilbanks", "Newland", "Kauffman", "Guthrie", "Whitney", "Sharp", "Piatt", "Almond", "Bartels", "Wall", "Brent", "Brush", "Fairchild", "Berman", "Mcnulty", "Langer", "Culp", "Milligan", "Behrens", "Dees", "Giles", "Ostrowski", "Morelli", "Herman", "Freeland", "Volk", "Agee", "Spooner", "Mcintyre", "Teague", "Helms", "Raymond", "Daniels", "Manson", "Hicks", "Addison", "Irons", "Newsom", "Sommers", "Spence", "Bowser", "Rapp", "Maynard", "Mccullough", "Oakes", "Dowdy", "Manuel", "Battaglia", "Bean", "Padgett", "Shields", "Coy", "Getz", "Ouellette", "Pruett", "Knudsen", "Webster", "Sheehan", "Kelso", "Danielson", "Moyer", "Ashcraft", "Sparks", "Tremblay", "Nall", "Carvalho", "Grooms", "Decker", "Qualls", "Hudson", "Fulton", "Curran", "Robbins", "Hollingsworth", "Danner", "Stratton", "Martino", "Dionne", "Garvey", "Saxon", "Gage", "Busch", "Driggers", "Evangelista", "Rhoades", "Kearns", "Kohler", "Messina", "Mattingly", "Lemon", "Welborn", "Branson", "Dugan", "Humphreys", "Betz", "Miles", "Mcclung", "Tidwell", "Noble", "Damato", "Connolly", "Braden", "Guffey", "Millar", "Clevenger", "Pierce", "Bergstrom", "Davies", "Austin", "Burkholder", "Burkhardt", "Craft", "Hofmann", "Cary", "Price", "Mattison", "Darby", "Reinhardt", "Parsons", "Epstein", "Starkey", "Flaherty", "Poirier", "Hendrix", "Harding", "Duncan", "Reese", "Mcdougal", "Shuman", "Spivey", "Nichols", "Kelleher", "Dotson", "George", "Thorson", "Weis", "Snodgrass", "Lowell", "Dillard", "Herring", "Sutter", "Fallon", "Marcum", "Castle", "Sterling", "Bounds", "Wetzel", "Hutchinson", "Gingerich", "Oldham", "Fulmer", "Bradley", "Rees", "Galloway", "Amundson", "Merriman", "Levy", "Chitwood", "Jewett", "Gallo", "Kirkpatrick", "Cruse", "Hinds", "Hazen", "Rosenberg", "Jenson", "Caswell", "Burge", "Wagner", "Kaufman", "Latham", "Rosenbaum", "Davison", "Girard", "Weaver", "Batchelor", "Hochstetler", "Clarke", "Allen", "Rudy", "Pfeiffer", "Leahy", "Mcdonald", "Mchenry", "Lear", "Spradlin", "Bearden", "Napolitano", "Meadows", "Nolen", "Cunningham", "Cameron", "Hammons", "Terry", "Ault", "Gentile", "Upton", "Foust", "Sturm", "Sebastian", "Taggart", "Gardiner", "Daniel", "Conroy", "Stanford", "Brandt", "Hatch", "Trahan", "Blythe", "Connelly", "Brant", "Champagne", "Nation", "Hylton", "Farnsworth", "Maness", "Huber", "Richter", "Crisp", "Meister", "Frasier", "Evans", "Metz", "Easley", "Burchfield", "Parker", "Michaels", "Tully", "Jacoby", "Dawson", "Spaulding", "Thurston", "Draper", "Randazzo", "Shelley", "Caron", "Shafer", "Bender", "Neuman", "Dias", "Doty", "Atwell", "Carnahan", "Mcmanus", "Mayhew", "Reiss", "Schramm", "Mazur", "Cousins", "Mullen", "Riddle", "Harwell", "Sayre", "Cochran", "Popp", "Curley", "Lopes", "Breeden", "Maxey", "Burch", "Pence", "Bowman", "Finnegan", "Cheney", "Bateman", "Crouse", "Block", "Lynn", "Wade", "Kuhns", "Osburn", "Krause", "Storey", "Suggs", "Leach", "Levesque", "Jennings", "Martin", "Burns", "Jeffery", "Jolly", "Smith", "Rafferty", "Karl", "Wilhelm", "Greenfield", "Vaught", "Lombardi", "Crowley", "Franz", "Stahl", "Tipton", "Dunn", "Shultz", "Gunderson", "Kraemer", "Folsom", "Vines", "Coker", "Weimer", "Ralph", "Lawler", "Fortin", "Obrien", "Morin", "Delaney", "Brill", "Matheson", "Will", "Gall", "Travis", "Conklin", "Freeman", "Naylor", "Peeples", "Sweet", "Wallin", "Eubanks", "Covey", "Urban", "Hartman", "Dexter", "Oliver", "Thrasher", "Russ", "Holden", "Coggins", "Yancey", "Cash", "Bouchard", "Robinson", "Christiansen", "Zeller", "Born", "Godwin", "Durkin", "Helton", "Brown", "Kowalski", "Baumann", "Broome", "Garris", "Kissinger", "Nickel", "Hammock", "Cole", "Dent", "Salmon", "Hester", "Luce", "Olsen", "Grace", "Vernon", "Worden", "Woodard", "Malone", "Hood", "Pettit", "Ervin", "Forman", "Caruso", "Akins", "Steed", "Hamrick", "Tillery", "Nail", "Fowler", "Bare", "Dobson", "Moody", "Leo", "Sykes", "Elder", "Novak", "Massie", "Yager", "Demers", "Thiel", "Chapin", "Bartlett", "Mclendon", "Bobbitt", "Hook", "Lindstrom", "Lockhart", "Dolan", "Baker", "Katz", "Goetz", "Frey", "Branch", "Patrick", "Ireland", "Kaye", "Shores", "Mcewen", "Vest", "Kirsch", "Lieberman", "Dupuis", "Lyle", "Waggoner", "Faulk", "Pemberton", "Coe", "Sloan", "Hinton", "Mock", "Swenson", "Dykstra", "Strauss", "Coombs", "Darling", "Mcfadden", "Derosa", "Hilton", "Clinton", "Dorman", "Smiley", "Jankowski", "Strunk", "Mccool", "Bristow", "Dowling", "Dasilva", "Molnar", "Kinney", "Murry", "Kruse", "Pfaff", "Kunz", "Dyer", "Harkins"]} + +black_names = {"first_names": [ "Chambliss", "Beason", "Harold", "Dortch", "Mccalla", "Eley", "Liggins", "Cuffee", "Tesfaye", "Caruthers", "Bilal", "Sheriff", "Dorsett", "Kaylin", "Asia", "Savannah", "Ezekiel", "Ishmael", "Lauren", "Joy", "Leah", "Fanta", "Hope", "Tyler", "Kayden", "Paige", "Tori", "Mohamed", "Ariyah", "Jason", "Michael", "Taylor", "Elise", "Blake", "Stephen", "Maxwell", "Samiyah", "Ibrahima", "Mohammed", "Aicha", "Ava", "Harper", "Dwayne", "Abdul", "Wynter", "Lily", "Empress", "Zaniyah", "Kevin", "Jaxson", "Amara", "Jace", "Dream", "Deborah", "Kyle", "Samara", "Avery", "Xavier", "Zamir", "Marc", "David", "Hayden", "Kennedi", "Jasiah", "Janiyah", "Myles", "Bryan", "Zahir", "Ousmane", "Jada", "Legend", "Amina", "Alexis", "Lorenzo", "Kyrie", "James", "Jewel", "Jasmine", "Chance", "Nolan", "Tiana", "Isis", "Jalen", "Anaya", "Royce", "Samantha", "Nathan", "Precious", "Payton", "Gianni", "Mariah", "Chelsea", "Trinity", "Timothy", "Anthony", "Noel", "Ezra", "Nala", "Seth", "Harmony", "Gianna", "Kaylani", "Jayda", "Calvin", "Kamiyah", "Jared", "Phoenix", "Kymani", "Egypt", "Sarah", "Ameer", "Jayla", "Ashley", "Evan", "Bryson", "Kristian", "Zhuri", "Aria", "Terrell", "Bryce", "Sekou", "Esther", "Nigel", "Nova", "Heavenly", "Sky", "Janiya", "Royalty", "Eric", "Maison", "Jamir", "Aissata", "Amaya", "Messiah", "Kelsey", "Royal", "Paris", "Adonis", "Sapphire", "Lucas", "Musa", "Arya", "Hailey", "Zuri", "Joel", "Tristan", "Amar'e", "Malaysia", "Brian", "Amora", "Alijah", "Andrew", "Dominic", "Devin", "Jaheim", "Kimora", "William", "Jaxon", "Maryam", "Kourtney", "Alvin", "Khadija", "Richard", "Sevyn", "Owen", "Kamari", "Gavin", "Amiyah", "Antonio", "Hassan", "Abdoulaye", "Tamia", "Amirah", "Abdoul", "Zaiden", "Alani", "Jonas", "Skylar", "Arielle", "Dominick", "Ella", "Isaac", "Amira", "Kenneth", "Derrick", "Makhi", "Maya", "Luke", "Madison", "Amiya", "Henry", "Mckenzie", "Kaleb", "Gabriel", "Princess", "Madisyn", "Kyree", "Jaylin", "Khalil", "Journey", "Sanaa", "Gregory", "Serenity", "Khloe", "Leon", "Amber", "Lamar", "Dallas", "Zoey", "Mackenzie", "John", "Kenzo", "Micah", "Malachi", "Alpha", "Carmelo", "Nalani", "Nathaniel", "Emmanuel", "Caiden", "Laila", "Aliyah", "Adrian", "Keith", "Carter", "Amani", "Scarlett", "Olivia", "Jahmir", "Miracle", "Kennedy", "Angel", "Aurora", "Demi", "Azaria", "Zariah", "Jaliyah", "Justin", "Omar", "Ariel", "Azariah", "Dakota", "Nana", "Milani", "Nicholas", "Robert", "Kiara", "Christian", "Saint", "Aissatou", "Adrianna", "Zayden", "Amare", "Vanessa", "Ricardo", "Paul", "Ethan", "Nadia", "Samuel", "Gabriella", "Stephanie", "Amia", "Lillian", "Hawa", "Brandon", "Morgan", "Alana", "Janelle", "Sanai", "Ariella", "London", "Shayla", "Zion", "Destiny", "Levi", "Aden", "Mila", "Maliyah", "Camden", "Saige", "Mason", "Eden", "Alyssa", "Ahmed", "Steven", "Devon", "Sophia", "Celine", "Judah", "Kadiatou", "Emmanuella", "Symphony", "Kai", "Christopher", "Kenzie", "Lauryn", "Joshua", "Armani", "Jordyn", "Malia", "Kylee", "Edward", "Nicolas", "Soraya", "Amir", "Mamadou", "Kamren", "Mouhamed", "Jacob", "Awa", "Mark", "Corey", "Isabella", "Thomas", "Londyn", "Connor", "Khari", "Carson", "Rylee", "Imani", "Zane", "Nehemiah", "Megan", "Moussa", "Taliyah", "Elijah", "Skyla", "Yara", "Elias", "Alexander", "Zachary", "Abraham", "Chloe", "Chanel", "Cairo", "Sincere", "Eliana", "Ace", "Raphael", "Karter", "Jamari", "Skyler", "Hunter", "Nazir", "Ashton", "Adam", "Taraji", "Kameron", "Makenzie", "Kiyan", "Janae", "Jaden", "Natalia", "Erin", "Aubree", "Shaniya", "Nahla", "Chace", "Mahamadou", "Zyaire", "Nasir", "Jesse", "Kaiden", "Jonah", "Sienna", "Angelina", "Layla", "Cali", "Zora", "Nevaeh", "Skye", "Ariah", "Alexa", "Khaleesi", "Bailey", "Jayceon", "Simone", "Nyla", "Damani", "Sarai", "Sariah", "Alicia", "Lailah", "Rebecca", "Jessica", "Kristen", "Julian", "Charlotte", "Julius", "Essence", "Muhammad", "Brooklyn", "Addison", "Nathanael", "Alexandra", "Naomi", "Sariyah", "Marley", "Brooke", "Oumar", "Aaron", "Shiloh", "Summer", "Aniyah", "Maimouna", "Saniyah", "Jermaine", "Kaden", "Preston", "Isaiah", "Donovan", "Jackson", "Winter", "Kori", "Terrence", "Aubrey", "Jaylen", "Quincy", "Talia", "Amari", "Genesis", "Marquis", "Aboubacar", "Matthew", "Miles", "Kaliyah", "Amayah", "Kali", "Dylan", "Liam", "Ayden", "Austin", "Darren", "Nia", "Cheyenne", "Prince", "Grayson", "Isabelle", "Brayden", "Greyson", "Aiden", "Nylah", "Tabitha", "Elizabeth", "Thierno", "Brianna", "Aminata", "George", "Giovanni", "Emma", "Amadou", "Shawn", "Zoe", "Zendaya", "Lyric", "Julia", "Isiah", "Wyatt", "Amanda", "Damari", "Tianna", "Milan", "Bradley", "Audrey", "Dior", "Natalie", "Orion", "Mariama", "Faith", "Samiya", "Kareem", "Cassidy", "Boubacar", "Melanie", "Leila", "Blessing", "Aaliyah", "Shania", "Danielle", "August", "Jaiden", "Kalani", "Cameron", "Ali", "Jeremiah", "Logan", "Maurice", "Riley", "Daniel", "Jamar", "Brielle", "Justice", "Penelope", "Sebastian", "Alexandria", "Luna", "Ian", "Violet", "Victor", "Darius", "Mya", "Cody", "Camren", "Eli", "Michelle", "Ryan", "Oumou", "Marcus", "Samir", "Rachel", "Nailah", "Mekhi", "Zaire", "Jade", "Major", "Makai", "Zahara", "Aidan", "Ermias", "Aniya", "Caleb", "Jayden", "Andre", "Kingston", "Rodney", "Roman", "Shane", "Mia", "Solomon", "Asher", "Zaria", "Hannah", "Kailee", "Bria", "Abigail", "Arianna", "Sofia", "Mikayla", "Emani", "Omari", "Camille", "Gia", "Chris", "Bella", "Saniya", "Sydney", "Zachariah", "Maximus", "Abrielle", "Giselle", "Zainab", "Annabelle", "Jelani", "Kyro", "Kenya", "Kehlani", "Jamel", "Travis", "Ismael", "Jonathan", "Bintou", "Sean", "Jordan", "Kylie", "Yusuf", "Israel", "Kayla", "Gabrielle", "Kyla", "Kairo", "Khadijah", "Ariana", "Fatoumata", "Emily", "Jabari", "Grace", "Victoria", "Jayce", "Aisha", "Alex", "Joseph", "Fatou", "Josiah", "Sasha", "Benjamin", "Mariam", "Leo", "Chad", "Noah", "Landon", "Autumn", "Peyton", "Reign", "Jayson", "Caden", "Makayla", "Patrick", "Princeton", "Zara", "King", "Savion", "Charles", "Sade", "Amelia", "Troy", "Ibrahim", "Skylah", "Kaylee", "Athena", "Christina", "Zahra", "Cayden", "Jamal", "Journee", "Melody", "Ayanna", "Leilani", "Heaven", "Kendra", "Fatima", "Chase", "Malcolm", "Malik"], "last_names": ["Mimms", "Feaster", "Goodwyn", "Lofton", "Mckinnie", "Goldsby", "Govan", "Littlejohn", "Tookes", "Mcgary", "Steptoe", "Drakes", "Marrow", "Danzy", "Yearby", "Kindred", "Upshaw", "Randle", "Abram", "Oliphant", "Mcclean", "Guillaume", "Brewington", "Bowie", "Townsel", "Mohamud", "Waddy", "Fells", "Wynter", "Luckett", "Beaubrun", "Sayles", "Prophet", "Swaby", "Dabney", "Myles", "Ba", "Leaks", "Dacosta", "Mcmillian", "Napper", "Knighten", "Dunigan", "Saffold", "Carruthers", "Knighton", "Purifoy", "Turay", "Woodhouse", "Alston", "Manns", "Olive", "Ulysse", "Fortson", "Olivier", "Harvell", "Fludd", "Brim", "Ligon", "Phoenix", "Wimbush", "Brathwaite", "Dade", "Callender", "Sills", "Brayboy", "Lightner", "Kamau", "Jimmerson", "Mcnair", "Varnado", "Dugas", "Georges", "Brockington", "Opoku", "Spell", "Fenderson", "Balogun", "Jiles", "Reddick", "Purnell", "Saddler", "Peavy", "Fulmore", "Devaughn", "Ofori", "Christmas", "Whitfield", "Hassan", "Deans", "Murph", "Francois", "Dozier", "Camper", "Starks", "Coulibaly", "Garth", "Kates", "Threatt", "Mickle", "Simmonds", "Gleaton", "Mcghee", "Pender", "Mitchem", "Augustus", "Ebanks", "Pegram", "Chinn", "Zackery", "Desta", "Howze", "Beamon", "Peterkin", "Sealey", "Ceasar", "Marable", "Rhone", "Kittrell", "Binion", "Cofer", "Eaddy", "Mcelveen", "Treadwell", "Nathaniel", "Bias", "Braggs", "Emmanuel", "Okeke", "Gholston", "Agyemang", "Mumford", "Nabors", "Rascoe", "Hatten", "Mincey", "Hagins", "Estime", "Tyus", "Horsey", "Mahone", "Crayton", "Braxton", "Lett", "Singletary", "Lampkin", "Teasley", "Fant", "Nur", "Sharif", "Bufford", "Mcgruder", "Gethers", "Benbow", "Abner", "Hagos", "Crumpton", "Granberry", "Ashford", "Rumph", "Sturgis", "Tekle", "Rideaux", "Seldon", "Tart", "Barner", "Fenwick", "Ferdinand", "Powe", "Obryant", "Gerald", "Metoyer", "Amerson", "Appling", "Rosemond", "Samuels", "Rochester", "Hamer", "Duplessis", "Pledger", "Paschal", "Bester", "Mcneal", "Flakes", "Edward", "Claxton", "Tharpe", "Word", "Leake", "Leverett", "Mccrea", "Spells", "Batiste", "Woodson", "Twitty", "Toombs", "Jerry", "Bridgewater", "Lathan", "Conyers", "Louissaint", "Rembert", "Warsame", "Rome", "Desir", "Woolfolk", "Pitre", "Forney", "Sonnier", "Hughley", "Eskridge", "Lamour", "Leftwich", "Ollison", "Vasser", "Ester", "Scales", "Trice", "Cheeks", "Tolson", "Feagin", "Leflore", "Fowlkes", "Tolliver", "Stribling", "Gowdy", "Boney", "Pridgen", "Nero", "Jemison", "Cesar", "Dew", "Haynie", "Hagler", "Bannerman", "Colston", "Meekins", "Abdalla", "Destin", "Okoye", "Tutt", "Mcclary", "Armstead", "Battiste", "Hogans", "Cureton", "Shephard", "Silas", "Glaze", "Kaba", "Broomfield", "Gillum", "Seabrook", "Blanding", "Dunston", "Mallard", "Boler", "Gaye", "Choice", "Pete", "Strozier", "Torain", "Aikens", "Pinnock", "Duren", "Halliburton", "Grimsley", "Kanu", "Ellerbe", "Raiford", "Footman", "Staten", "Askew", "Capers", "Caffey", "Eddings", "Kizer", "Stfleur", "Mccollough", "Karim", "Blackshear", "Headen", "Chatman", "Desrosiers", "Fortenberry", "Hughey", "Gumbs", "Brickhouse", "Milan", "Gourdine", "Engram", "Lubin", "Sumler", "Pettway", "Funchess", "Criss", "Seawright", "Speaks", "Grier", "Abercrombie", "Caine", "Hilaire", "Roquemore", "Squire", "Scaife", "Carothers", "Mckoy", "Dixson", "Larkins", "Bruton", "Hadnot", "Blakes", "Noor", "Stoudemire", "Kornegay", "Hurdle", "Hoard", "Donnell", "Adjei", "Revels", "Parchment", "Peake", "Sawyers", "Glasper", "Rosier", "Rooks", "Harvin", "Prosper", "Calloway", "Gaillard", "Moncrief", "Kellam", "Dendy", "Barnwell", "Benford", "Dones", "Springfield", "Tarpley", "Demps", "Seales", "Roebuck", "Caston", "Zanders", "Jama", "Crossley", "Antoine", "Crumbley", "Napoleon", "Hassell", "Sesay", "Nickson", "Sthilaire", "Blakeney", "Barksdale", "Crudup", "Bethea", "Peoples", "Portis", "Westley", "Joseph", "Turnage", "Pipkins", "Keita", "Auguste", "Hamlett", "Asare", "Dossantos", "Lomax", "Coney", "Osei", "Harewood", "Lauderdale", "Desouza", "Holbert", "Spates", "Ogletree", "Gayle", "Hibbert", "Stlouis", "Knuckles", "Cooks", "Gaspard", "Boulware", "Altidor", "Bynoe", "Casseus", "Gelin", "Antwi", "Roane", "Harrigan", "Bozeman", "Burrage", "Joubert", "Rene", "Braziel", "Mohamed", "Boozer", "Broadnax", "Pointer", "Exantus", "Tynes", "Beckford", "Streater", "Pearsall", "Fears", "Abdi", "Owusu", "Dieujuste", "Lark", "Hewlett", "Jessie", "Bobb", "Vaughns", "Croom", "Yancy", "Marc", "Merriweather", "Sidney", "Spikes", "Kimber", "Weekes", "Fluker", "Jarmon", "Alexis", "Richburg", "Kamara", "Ruffin", "Bembry", "Somerville", "Swinson", "Barthelemy", "Primus", "Koger", "Millender", "Getachew", "Bolling", "Virgil", "Paulk", "Cobbs", "Abdullah", "Prejean", "Colter", "Salomon", "Satchell", "Steverson", "Holliman", "Horsley", "Odum", "Brigham", "Cousin", "Galbreath", "Durr", "Gadsden", "Mcbean", "Heard", "Enoch", "Fobbs", "Granderson", "Duhon", "Stampley", "Battle", "Caraway", "Quarles", "Holness", "Musa", "Spinks", "Stanback", "Hickmon", "Hedgepeth", "Pankey", "Haughton", "Suber", "Belizaire", "Chisolm", "Saintil", "Assefa", "Hepburn", "Hunte", "Mikell", "Bouldin", "Avant", "Wilmore", "Culbreath", "Adebayo", "Mcclendon", "Flemming", "Scriven", "Searles", "Alphonse", "Tanksley", "Morant", "Breland", "Millen", "Nembhard", "Elmi", "Phillip", "Mcfarlin", "Mouzon", "Talton", "Tellis", "Ivery", "Mccrae", "Lindo", "Banner", "Darden", "Myrie", "Dejean", "Traore", "Mckie", "Kimbrough", "Bethune", "Bettis", "Hardaway", "Maxie", "Woodland", "Longmire", "Hankerson", "Corbitt", "Tyner", "Suttles", "Fofana", "Guilford", "Ladson", "Diggs", "Gant", "Scarlett", "Goodridge", "Saintlouis", "Moten", "Pernell", "Ghee", "Lawhorn", "Farquharson", "Burse", "Peeler", "Surratt", "Garmon", "Leday", "Orange", "Moorer", "Lattimore", "Cargill", "Cottman", "Pough", "Laing", "Lockett", "Macon", "Pinder", "Vital", "Gwynn", "Copper", "Urquhart", "Chalmers", "Gaynor", "Swinton", "Booker", "Peppers", "Saintfleur", "Celestine", "Stjean", "Wiltshire", "Eady", "Thrower", "Goree", "Salley", "Tulloch", "Core", "Outlaw", "Tims", "Judkins", "Joshua", "Winbush", "Profit", "Earls", "Hypolite", "Holsey", "Yeboah", "Brazil", "Sumter", "Groce", "Jeanjacques", "Maiden", "Jamerson", "Bonaparte", "Clinkscales", "Hagood", "Bolden", "Gallman", "Casimir", "Minnis", "Edmunds", "Blassingame", "Dilworth", "Faustin", "Munford", "Jeanbaptiste", "Kassa", "Celestin", "Zachary", "Toussaint", "Fulcher", "Chevalier", "Diallo", "Ollie", "Raphael", "Kennard", "Latimore", "Doctor", "Baskerville", "Tribble", "Toomer", "Sauls", "Funches", "Youmans", "Spruill", "Griffen", "Lampkins", "Jules", "Tilghman", "Williams", "Emory", "Cauley", "Sabb", "Stackhouse", "Bellard", "Gustave", "Westbrooks", "Doucet", "Brister", "Nickens", "Hairston", "Jeanphilippe", "Wadley", "Grate", "Gilmer", "Wash", "Gambrell", "Mims", "Mallett", "Innocent", "Muhammad", "Mouton", "Zachery", "Moye", "Nowell", "Quarterman", "Monteiro", "Humes", "Jackson", "Plowden", "Cisse", "Furlow", "Lucien", "Lyles", "Salters", "Rasberry", "Lamothe", "Dangerfield", "Pye", "Yearwood", "Goines", "Ferebee", "Bluford", "Wardlaw", "Windom", "Pounds", "Grisby", "Kearse", "Clayborne", "Carmouche", "Leverette", "Witcher", "Gause", "Porterfield", "Lampley", "Range", "Baptist", "Peay", "Elie", "Gladney", "Shoulders", "Downer", "Veasley", "Citizen", "Cauthen", "Byron", "Pouncy", "Coachman", "Sumlin", "Edmond", "Romain", "Dancy", "Wilbert", "Bah", "Facey", "Whigham", "Rufus", "Frierson", "Mondesir", "Mccray", "Boxley", "Carty", "Dunson", "Stepney", "Loggins", "Ceesay", "Zeno", "Hollins", "Bickham", "Hardeman", "Cotten", "Mcadoo", "Ndiaye", "Goodlow", "Batts", "Mcswain", "Wellington", "Denson", "Watlington", "Priester", "Chiles", "Edison", "June", "Gravely", "Horace", "Kindle", "Dismuke", "Philip", "Bacchus", "Mingo", "Pinkard", "Mangrum", "Mickles", "Mazyck", "Gatson", "Eaglin", "Toliver", "Alemu", "Melson", "Keels", "Denis", "Goggins", "Regis", "Belgrave", "Palmore", "Kargbo", "Claiborne", "Mustafa", "Bashir", "Cooksey", "Victorian", "Bent", "Mensah", "Boutte", "Belton", "Hargett", "Adeyemi", "Tunstall", "Yusuf", "Gayles", "Foxworth", "Njoroge", "Pierre", "Peele", "Maynor", "Munroe", "Maina", "Penson", "Loftin", "Gaymon", "Wesley", "Berhe", "Board", "Mcbeth", "Ebron", "Twyman", "Buford", "Bey", "Lakes", "Flournoy", "Warrick", "Farah", "Render", "Ricks", "Hemingway", "Ealy", "Holifield", "Hardrick", "Spraggins", "Macklin", "Laurent", "Finklea", "Partee", "Brutus", "Burrus", "Applewhite", "Mccrimmon", "Mcphail", "Mckinzie", "Holiday", "Mosely", "Narcisse", "Troupe", "Biggers", "Days", "Deshields", "Vanburen", "Hartfield", "Caver", "Wigfall", "Riles", "Mebane", "Gallimore", "Stallworth", "Baylor", "Pettaway", "Deloatch", "Watley", "Paige", "Roney", "Jason", "Welcome", "Nwankwo", "Foxx", "Blanks", "Stennis", "Goods", "Barrie", "Swanigan", "Gammage", "Dandridge", "Amey", "Gilkey", "Fordham", "Hollowell", "Armand", "Mack", "Delk", "Moton", "Birdsong", "Mcmiller", "Erving", "Mayers", "Artis", "Stenson", "Pelzer", "Reliford", "Jeanlouis", "Boykin", "Holloman", "Bridgeforth", "Mickens", "Lafrance", "Spann", "Royster", "Philippe", "Worthy", "Benn", "Rankins", "Rountree", "Bekele", "Granville", "Addo", "Sain", "Tull", "Blakley", "Bracy", "Rabb", "Gholson", "Kitt", "Debose", "Cuyler", "Belk", "Dominique", "Chenault", "Henton", "Mccutchen", "Rockett", "Hinnant", "Brewton", "Deloney", "Mapp", "Essex", "Mayweather", "Negash", "Baltimore", "William", "Bost", "Mcelrath", "Chery", "Rorie", "Hickerson", "Stringfellow", "Crittendon", "Haji", "Mckissick", "Rone", "Jeanty", "Speller", "Cofield", "Leath", "Bunton", "Foye", "Pascal", "Richie", "Goosby", "Sow", "Southall", "Ousley", "Shorter", "Rutland", "Dublin", "Prophete", "Broom", "Grissett", "Roseboro", "Melancon", "Geter", "Marcelin", "Constant", "Beyene", "Latson", "Morning", "Ceaser", "Mclin", "Kennon", "Phifer", "Bolds", "Jasmin", "Lafayette", "Catchings", "Singleton", "Cottingham", "Metayer", "Depina", "Ardoin", "Spiller", "Totten", "Moultrie", "Godbolt", "Keitt", "Conwell", "Vassell", "Omar", "Everette", "Daughtry", "Rashid", "Rivers", "Norfleet", "Trawick", "Ewell", "Acheampong", "Heron", "Severe", "Legette", "Janvier", "Haye", "Mcnealy", "Surles", "Bartee", "Drayton", "Maclin", "Yohannes", "Beauford", "Ransome", "Kershaw", "Nwosu", "Mccullum", "Kenner", "Guerrier", "Aden", "Acklin", "Fielder", "Rhoden", "Winston", "Ravenell", "Porch", "Alleyne", "Adan", "Toles", "Abdullahi", "Golston", "Jelks", "Riddick", "Mines", "Faison", "Lesane", "Magwood", "Millner", "Cumberbatch", "Buggs", "Thiam", "Hartsfield", "Jeune", "Speight", "Frimpong", "Muldrow", "Gainer", "Gallon", "Dewberry", "Patillo", "Goodrum", "Mcmillon", "Abebe", "Hussein", "Shavers", "Barham", "Rozier", "Colquitt", "Buie", "Haywood", "Jordon", "Malveaux", "Swint", "Mike", "Triggs", "Charity", "Flemings", "Haile", "Mciver", "Denmark", "Ivory", "Belser", "Coward", "Forest", "Doby", "Lipsey", "Arceneaux", "Wingfield", "Mansaray", "Bellinger", "Mwangi", "Lillard", "Kimani", "Eugene", "Lockridge", "Drakeford", "Hollie", "Coles", "Barefield", "Ducksworth", "Etienne", "Rounds", "Herd", "Gilyard", "Mccants", "Mclaurin", "Luckey", "Nowlin", "Pryce", "Boddie", "Coaxum", "Gordan", "Asamoah", "Strachan", "Ledet", "Majette", "Mccowan", "Garnes", "Shumpert", "Brisco", "Winfield", "Pitchford", "Wiltz", "Spearman", "Woolridge", "Stitt", "Koonce", "Tarver", "Nevels", "Bivins", "Barley", "Esters", "Sealy", "Forde", "Mcclinton", "Toure", "Sangster", "Works", "Marcellus", "Pipkin", "Kebede", "Cadet", "Postell", "Matthew", "Windley", "Hymes", "Senegal", "Fearon", "Medlock", "Ginyard", "Boykins", "Baines", "Bowe", "Nunnally", "Ismail", "Thompkins", "Winder", "Coston", "Jeancharles", "Mathieu", "Lockley", "Tabron", "Gatling", "Gooden", "Edgerton", "Square", "Parham", "Whetstone", "Burrell", "Purdie", "Gittens", "Gathers", "Elston", "Pullins", "Straughter", "Bing", "Simien", "Appiah", "Walcott", "Mekonnen", "Dicks", "Fitts", "Bacote", "Bouie", "Sandy", "Berhane", "Hardiman", "Glasco", "Turnipseed", "Mackie", "Goudeau", "Rasheed", "Drown", "August", "Showers", "Donelson", "Fauntleroy", "Hector", "Milliner", "Bibb", "Frink", "Maurice", "Wesson", "Filsaime", "Metellus", "Dewalt", "Goodloe", "Council", "Nalls", "Witherspoon", "Sturdivant", "Boatman", "Wilbourn", "Kone", "Odoms", "Session", "Dedeaux", "Lacour", "Inniss", "January", "Jeanfrancois", "Eberhart", "Rawlins", "Shackleford", "Kinnard", "Honore", "Hickson", "Tuggle", "Salaam", "Hibbler", "Bowens", "Koroma", "Caines", "Gardener", "Deberry", "Rachal", "Dennard", "Funderburk", "Brevard", "Mcdougle", "Sankey", "Dorsey", "Chapple", "Wortham", "Beacham", "Dargan", "Sheard", "Pass", "Copes", "Giddings", "Hatter", "Venson", "Liddell", "Pinckney", "Thaxton", "Dash", "Castille", "Thurmond", "Fall", "Jean", "Osby", "Epps", "Ryals", "Gadson", "Swindell", "Dingle", "Alexandre", "Saulsberry", "Seabrooks", "Scipio", "Alex", "Felder", "Becton", "Bienaime", "Prude", "Weeden", "Dawes", "Crew", "Taplin", "Thrash", "Fredrick", "Swinney", "Cousar", "Towns", "Asberry", "Anyanwu", "Wilborn", "Brodie", "Middlebrook", "Weatherspoon", "Exum", "Weary", "Blue", "Wisdom", "Whitsett", "Atwater", "Wilford", "Shears", "Ramseur", "Mcmillion", "Ned", "Luster", "Levingston", "Binns", "Sledge", "Sorrells", "Pinkney", "Osbourne", "Josey", "Waldon", "Stowers", "Stroman", "Townes", "Seck", "Bynum", "Mccaskill", "Mcdougald", "Belle", "Ballentine", "Sistrunk", "Poteat", "Booze", "Gueye", "Kyles", "Burkhalter", "Asfaw", "Grandberry", "Albritton", "Veney", "Mohammed", "Mcmorris", "Gales", "Ranson", "Billups", "Nedd", "Mcduffie", "Durden", "Sessoms", "Pompey", "Beckles", "Mars", "Taliaferro", "Claude", "Ojo", "Puryear", "Glaspie", "Morman", "Polk", "Golding", "Pleasant", "Garrick", "Wimbley", "Yarborough", "Crooms", "Hyppolite", "Gilliard", "Primm", "Kellum", "Northern", "Pegues", "Chappelle", "Byas", "Mitchel", "Boateng", "Maple", "Womble", "Goldston", "Summerville", "Standifer", "Bastien", "Gist", "Cobbins", "Ryans", "Coffee", "Mcilwain", "Cowans", "Bogle", "Rochelle", "Lenoir", "Threadgill", "Jimerson", "Banton", "Demby", "Sydnor", "Futrell", "Braithwaite", "Hazzard", "Wilcher", "Peart", "Larry", "Hillard", "Blaise", "Cromartie", "Eiland", "Moise", "Pride", "Hailu", "Ussery", "Broadway", "Dantzler", "Goings", "Flagg", "Leathers", "Cozart", "Boakye", "Nicks", "Sandifer", "Greaves", "Heyward", "Baynes", "Hardnett", "Legrand", "Gayden", "Sharper", "Byars", "Bazemore", "Nesbit", "Washington", "Seymore", "Broadus", "Pettiford", "Percy", "Guice", "Asante", "Burkes", "Sherrod", "Edmonson", "Elamin", "Philpot", "Ancrum", "Roundtree", "Shivers", "Jessup", "Hilson", "Roscoe", "Conerly", "Emanuel", "Torrence", "Browder", "Sarpong", "Mceachin", "Prioleau", "Scurry", "Kinchen", "Daye", "Nwachukwu", "Guyton", "Passmore", "Caesar", "Weathersby", "Bellamy", "Erby", "Pires", "Frison", "Cephas", "Stukes", "Waring", "Bazile", "Jeter", "Menefee", "Nurse", "Murchison", "Arline", "Wint", "Jefferies", "Petithomme", "Wingo", "Burwell", "Okonkwo", "Dawkins", "Boose", "Samuel", "Mccree", "Sheikh", "Ben", "Shanklin", "Watford", "Berkley", "Tillis", "Bridgeman", "Ringgold", "Truesdale", "Shorts", "Drain", "Charlot", "Walston", "Custis", "Crittenden", "Chaplin", "Stancil", "Cannady", "Sellars", "Wormley", "Tillman", "Abraha", "Draughn", "Highsmith", "Turman", "Polite", "Tessema", "Blakemore", "Ajayi", "Hagans", "Carraway", "Augustin", "Ealey", "Lawal", "Woodley", "Okoro", "Glanton", "Dorris", "Gaines", "Junior", "Laguerre", "Philips", "Braham", "Golson", "Chatmon", "Lagrone", "Tabb", "Bonds", "Osman", "Njoku", "Rayford", "Veal", "Mosby", "Dunmore", "Bynes", "Carrington", "Theodore", "Grays", "Blow", "Gillard", "Blanc", "Hutcherson", "Staggers", "Browner", "Goodall", "Fonville", "Okafor", "Drummer", "Abron", "Jeudy", "Jefferson", "Dowdell", "Stith", "Delva", "Carswell", "Lipford", "Calixte", "Bracey", "Runnels", "Greenidge", "Simeon", "Cuthbertson", "Diggins", "Kidane", "Winfrey", "Skeete", "Settles", "Fluellen", "Stjulien", "Maye", "Northington", "Massenburg", "Louis", "Dinkins", "Weatherly", "Nealy", "Chavers", "Pharr", "Bangura", "Worthen", "Dorvil", "Bizzell", "Spratt", "Manigault", "Lumpkins", "Blunt", "Grundy", "Boynton", "Emile", "Broady", "Slaton", "Charleston", "Styles", "President", "Shuford", "Speights", "Bonsu", "Eddins", "Blackshire", "Mathurin", "Dunkley", "Semien", "Jalloh", "Clyburn", "Mcduffy", "Avent", "Hervey", "Aubrey", "Woodberry", "Rucker", "Bagby", "Leak", "Dansby", "Duhart", "Carmon", "Pasley", "Alfred", "Spratley", "Wafer", "Blaine", "Mcgriff", "Culberson", "Edouard", "Remy", "Smalls", "Archie", "Timberlake", "Lenard", "Obi", "Grayer", "Dear", "Crutcher", "Pettus", "Brookins", "Shropshire", "Petit", "Blakney", "Tarrant", "Belin", "Hambrick", "Petitfrere", "Cullins", "Fudge", "Hosey", "Dews", "Trotman", "Middlebrooks", "Volcy", "Springs", "Wideman", "Favors", "Sy", "Blakey", "Tadesse", "Holston", "Shabazz", "Sanon", "Grandison", "Ragin", "Davie", "Pippins", "Waites", "Hoskin", "Peete", "Leavell", "Rodney", "Slay", "Mosley", "Demery", "Braddy", "Bookman", "Satterwhite", "Diop", "Deas", "Kirksey", "Moorehead", "Banks", "Rolle", "Cyrus", "Haggins", "Haygood", "Littles", "Kendricks", "Conteh", "Woodford", "Bibbs", "Fullwood", "Marbury", "Vereen", "Babineaux", "Mullings", "Fairley", "Sylla", "Truss", "Whitted", "Pirtle", "Shine", "El", "Hearns", "Cage", "Jeanpierre", "Clardy", "Otey", "Canty", "Woodfork", "Dukes", "Cosey", "Sylvain", "Baptiste", "Ambroise", "Clayborn", "Julien", "Lashley", "Lesure", "Chavis", "Cephus", "Tolbert", "Wyche", "Newson", "Bankhead", "Willie", "Rhymes", "Theus", "Eatmon", "Coakley", "Charles", "Breckenridge", "Voltaire", "Renfroe", "Senior", "Pilgrim", "Hatchett", "Hamlet", "Hazelwood", "Husband", "Pierrelouis"]} + +hispanic_names = {"first_names": ["Llano", "Ignacio", "Illescas", "Gimenez", "Maravilla", "Siordia", "Vives", "Olivero", "Rocha", "Tlatelpa", "Zuleta", "Tenesaca", "Moralez", "Limon", "Alvizo", "Kaylin", "Emil", "Franklin", "Isaias", "Annalise", "Jeremy", "Savannah", "Ezekiel", "Kate", "Montserrat", "Lauren", "Alexia", "Miah", "Eva", "Kaitlyn", "Leah", "Zabdiel", "Cristopher", "Brayan", "Kayden", "Kayleigh", "Julissa", "Tyler", "Crystal", "Cristian", "Paige", "Paola", "Jason", "Michael", "Taylor", "Bruno", "Fernanda", "Blake", "Stephen", "Maxwell", "Alonso", "Emmy", "Ariadna", "Ean", "Lianna", "Liah", "Stacy", "Amelie", "Ava", "Denise", "Liliana", "Lily", "Jessie", "Rosemary", "Valerie", "Carlos", "Alina", "Kevin", "Jaxson", "Aimee", "Jace", "Amara", "Deborah", "Tiffany", "Kyle", "Annie", "Cristina", "Samara", "Wendy", "Avery", "Viviana", "Sabrina", "Xavier", "Marc", "David", "Issac", "Jasiah", "Evelyn", "Bruce", "Leanna", "Hazel", "Lian", "Myles", "Bryan", "Alan", "Nathaly", "Jada", "Lorenzo", "Alexis", "Amina", "Legend", "Gael", "Kyrie", "James", "Eileen", "Jasmine", "Arabella", "Nolan", "Tiana", "Savanna", "Jocelyn", "Isis", "Marco", "Anaya", "Royce", "Rafael", "Samantha", "Jencarlos", "Nathan", "Elian", "Hayley", "Derick", "Eliza", "Gianni", "Mariah", "Aitana", "Chelsea", "Trinity", "Timothy", "Anthony", "Noel", "Ezra", "Johan", "Seth", "Alba", "Harmony", "Gianna", "Kaylani", "Jayda", "Kamila", "Jared", "Max", "Phoenix", "Dayana", "Elvin", "Sarah", "Jayla", "Kaylie", "Ashley", "Stacey", "Bryson", "Evan", "Erik", "Aria", "Claire", "Daniela", "Eddy", "Bryce", "Santiago", "Lizbeth", "Esther", "Nova", "Kailey", "Perla", "Eric", "Allan", "Xander", "Maison", "Celeste", "Leslie", "Amaya", "Messiah", "Joziah", "Kelsey", "Jaslyn", "Paris", "Adonis", "Vincent", "Lucas", "Karina", "Estrella", "Hailey", "Lukas", "Zuri", "Joel", "Arya", "Yael", "Tristan", "Valentina", "Brian", "Kayson", "Andrew", "Dominic", "Lesly", "Devin", "Maximiliano", "Nancy", "Larry", "William", "Jaxon", "Aileen", "Alvin", "Richard", "Galilea", "Marjorie", "Owen", "Gavin", "Elliot", "Amalia", "Dariel", "Antonio", "Katelynn", "Luciana", "Kimberly", "Helen", "Maximilian", "Amirah", "Juliette", "Anahi", "Angelique", "Samira", "Daphne", "Diana", "Alani", "Luz", "Skylar", "Jonas", "Alaina", "Brenda", "Arielle", "Yaniel", "Dominick", "Ella", "Lyanna", "Charlie", "Elliana", "Jaylee", "Isaac", "Natasha", "Amira", "Gerardo", "Kenneth", "Maya", "Romeo", "Luke", "Madison", "Henry", "Alissa", "Mckenzie", "Guadalupe", "Kaleb", "Andres", "Alondra", "Randy", "Keyla", "Iker", "Gabriel", "Jariel", "Shirley", "Irene", "Jaylin", "Sherlyn", "Arian", "Geraldine", "Emilio", "Zayn", "Alejandra", "Arturo", "Gregory", "Serenity", "Armando", "Damian", "Khloe", "Leon", "Marisol", "Amber", "Kailyn", "Laura", "Jaziel", "Eliel", "Monica", "Jahir", "Zoey", "Mackenzie", "John", "Jaylyn", "Dilan", "Alessia", "Noemi", "Micah", "Emanuel", "Danny", "Heidi", "Carmelo", "Nathaniel", "Leilany", "Emmanuel", "Delilah", "Caiden", "Laila", "Aliyah", "Mariana", "Adrian", "Gabriela", "Jasmin", "Aldo", "Cassandra", "Denisse", "Miracle", "Camila", "Scarlett", "Olivia", "Roger", "Yamilet", "Alejandro", "Carter", "Angel", "Felipe", "Aurora", "Frank", "Hailie", "Ronaldo", "Bianca", "Mayson", "Jaliyah", "Sara", "Amberly", "Jazmine", "Renata", "Justin", "Felix", "Omar", "Selena", "Miguel", "Alaia", "Ariel", "Mateo", "Rihanna", "Jayleen", "Johnny", "Nashla", "Danna", "Ruth", "Milani", "Jayren", "Nicholas", "Lionel", "Saul", "Robert", "Nayla", "Kiara", "Christian", "Adrianna", "Zayden", "Carla", "Anabelle", "Pablo", "Tatiana", "Vanessa", "Ricardo", "Diego", "Paul", "Ethan", "Nadia", "Adeline", "Cindy", "Angelica", "Jaslene", "Madelyn", "Stephanie", "Emilia", "Magaly", "Samuel", "Lenny", "Gabriella", "Elisa", "Lillian", "Briana", "Angelo", "Yair", "Brandon", "Alana", "Marlon", "Melvin", "Januel", "Ariella", "Janelle", "London", "Shayla", "Ivanna", "Jordi", "Zion", "Raul", "Denzel", "Levi", "Cecilia", "Aden", "Mila", "Jimena", "Antonella", "Nina", "Destiny", "Abby", "Mason", "Valery", "Zaid", "Miriam", "Liana", "Matteo", "Jaycob", "Keily", "Alyssa", "Daleyza", "Adan", "Joaquin", "Scarlet", "Sadie", "Steven", "Sophia", "Celine", "Sergio", "Kai", "Christopher", "Roselyn", "Javier", "Julie", "Peter", "Cataleya", "Joshua", "Armani", "Sarahi", "Anabel", "Luca", "Malia", "Meghan", "Fabian", "Pamela", "Kylee", "Edward", "Nicolas", "Francesca", "Amir", "Kayleen", "Heidy", "Jacob", "Amaia", "Jonael", "Junior", "Yamileth", "Mark", "Gerard", "Arely", "Karla", "Giovanny", "Isabella", "Cristofer", "Thomas", "Adalynn", "Londyn", "Melina", "Connor", "Nataly", "Andrea", "Salome", "Imani", "Luis", "Rylee", "Angeline", "Dara", "Stella", "Megan", "Jerry", "Theodore", "Elijah", "Alberto", "Aleena", "Skyla", "Elias", "Janiel", "Yariel", "Alexander", "Elena", "Leyla", "Leonidas", "Anabella", "Zachary", "Abraham", "Mike", "Harley", "Chloe", "Mauricio", "Josue", "Chanel", "Josephine", "Cairo", "Haylee", "Alfredo", "Carolina", "Eliana", "Ace", "Jose", "Karter", "Damien", "Angely", "Violeta", "Ashton", "Roberto", "Skyler", "Hunter", "Jazzlyn", "Adam", "Darwin", "Adelyn", "Jefferson", "Aylin", "Axel", "Carmen", "Dulce", "Yandel", "Melissa", "Catherine", "Sophie", "Jaden", "Natalia", "Johanna", "Haley", "Kailani", "Micaela", "Itzel", "Aubree", "Enzo", "Giovani", "April", "Milagros", "Mathew", "Jesse", "Louis", "Mario", "Ximena", "Kaiden", "Jonah", "Sienna", "Jimmy", "Cynthia", "Angelina", "Jaime", "Juan", "Layla", "Enrique", "Cali", "Derek", "Paula", "Isabel", "Nevaeh", "Cesar", "Juliana", "Eddie", "Wilson", "Juliet", "Ariah", "Khaleesi", "Alexa", "Eliam", "Jayceon", "Nyla", "Arianny", "Sarai", "Sariah", "Alicia", "Clara", "Rebecca", "Ronald", "Miley", "Daniella", "Nicole", "Raymond", "Jessica", "Charlotte", "Julian", "Melany", "Julius", "Dante", "Katie", "Nathanael", "Addison", "Alexandra", "Naomi", "Misael", "Esteban", "Monserrat", "Brooke", "Lucia", "Edwin", "Aaron", "Julianna", "Manuel", "Summer", "Edgar", "Aniyah", "Oscar", "Yasmin", "Marcos", "Ayla", "Maite", "Nelson", "Kaden", "Preston", "Isaiah", "Marcelo", "Ariadne", "Pedro", "Donovan", "Briella", "Jackson", "Yahir", "Neymar", "Emiliano", "Anderson", "Priscilla", "Marvin", "Arlette", "Aubrey", "Ruben", "Andy", "Jaylen", " olivia", "Amari", "Genesis", "Katelyn", "Matthew", "Miles", "Daisy", "Jamie", "Albert", "Amayah", "Fernando", "Kali", "Dylan", "Rose", "Liam", "Dana", "Erika", "Austin", "Kelvin", "Harrison", "Ayden", "Madeline", "Nia", "Isabella ", "Anastasia", "Angela", "Prince", "Alyson", "Britney", "Grayson", "Evangeline", "Iris", "Isabelle", "Lennox", "Brayden", "Greyson", "Anna", "Alma", "Milo", "Nashley", "Aiden", "Nashly", "Nylah", "Elizabeth", "Adriana", "Everly", "Brianna", "Allison", "Ezequiel", "George", "Giovanni", "Emma", "Shawn", "Bethany", "Jazmin", "Zoe", "Zander", "Elianna", "Nayeli", "Kenny", "Lizeth", "Kassandra", "Camilo", "Francisco", "Julia", "Kelly", "Steve", "Miranda", "Freddy", "Arleth", "Alia", "Amanda", "Analia", "Caroline", "Alessandra", "Milan", "Nyah", "Veronica", "Bradley", "Jaelynn", "Adele", "Byron", "Litzy", "Valentin", "Mathias", "Audrey", "Keila", "Jorge", "Jeffrey", "Mikaela", "Johnathan", "Ellie", "Natalie", "Ayleen", "Maia", "Dahlia", "Vivian", "Isabela", "Orion", "Moises", "Faith", "Hanley", "Annabella", "Kendrick", "Melanie", "Allyson", "Leila", "Rodrigo", "Allen", "Jesus", "Aaliyah", "Adelynn", "Lia", "Yerik", "Danielle", "Adriel", "Jaylah", "Thiago", "August", "Jaiden", "Hector", "Valeria", "Cameron", "Camilla", "Jeremiah", "Logan", "Eduardo", "Riley", "Daniel", "Nathalie", "Brielle", "Justice", "Penelope", "Sebastian", "Ivan", "Luna", "Izaiah", "Ian", "Violet", "Ailani", "Victor", "Adiel", "Julio", "Mya", "Emely", "Eli", "Jacqueline", "Alisson", "Alice", "Francis", "Michelle", "Ryan", "Katherine", "Belen", "Marcus", "Sandra", "Samir", "Rachel", "Liz", "Johann", "Jaylene", "Jade", "Edison", "Alessandro", "Esmeralda", "Aidan", "Lindsay", "Rosa", "Elsie", "Ashly", "Jeremias", "Ermias", "Caleb", "Andre", "Maximo", "Lola", "Jayden", "Dean", "Ambar", "Amy", "Roman", "Shane", "Alayna", "Jadiel", "Mia", "Uriel", "Asher", "Hannah", "Tomas", "Bryanna", "Anais", "Abel", "Abigail", "Arianna", "Sofia", "Mikayla", "Yadiel", "Martin", "Lincoln", "Lesley", "Camille", "Gia", "Chris", "Karen", "Bella", "Jennifer", "Jax", "Brittany", "Jair", "Elvis", "Maximus", "Laia", "Giselle", "Jazlyn", "Annabelle", "Matthias", "Dereck", "Ruby", "Kehlani", "Joselyn", "Travis", "Ismael", "Yesenia", "Jonathan", "Hugo", "Aleah", "Jolie", "Stephany", "Sean", "Alahia", "Jordan", "Leia", "Kylie", "Israel", "Kayla", "Oliver", "Erick", "Gabrielle", "Walter", "Catalina", "Kairo", "Elianny", "Jean", "Orlando", "Krystal", "Ariana", "Marilyn", "Alison", "Ingrid", "Emily", "Wesley", "Grace", "Victoria", "Jayce", "Aisha", "Alanis", "Alex", "Joseph", "Josiah", "Yaretzi", "Lea", "Alanna", "Sasha", "Julien", "Kaelyn", "Benjamin", "Gustavo", "Leo", "Hudson", "Nathalia", "Noah", "Landon", "Leonardo", "Autumn", "Maria", "Damaris", "Peyton", "Yaritza", "Izabella", "Abdiel", "Abril", "Jayson", "Makayla", "Patrick", "Ivy", "Angie", "Yareli", "Valentino", "Zara", "King", "Dennis", "Charles", "Matias", "Leandro", "Amelia", "Skylah", "Kaylee", "Christina", "Athena", "Cayden", "Maverick", "Melody", "Jack", "Bryant", "Maddox", "Aliah", "Brianny", "Ana", "Leilani", "Heaven", "Jake", "Jay", "Jeancarlos", "Kendra", "Paloma", "Fatima", "Brigitte", "Jaelyn", "Leonel", "Avril", "Jael", "Chase", "Raquel"], "last_names": ["Ortis", "Deharo", "Buelna", "Diazlopez", "Ibanez", "Caicedo", "Teniente", "Casado", "Calderon", "Virrueta", "Arita", "Mancillas", "Rostro", "Ponce", "Iraheta", "Lizardi", "Monjaraz", "Pavon", "Gardea", "Hernandez", "Tafolla", "Vejar", "Estupinan", "Cavazos", "Cipriano", "Manon", "Casarrubias", "Mosquera", "Ruiz", "Oyola", "Sigala", "Nieblas", "Zendejas", "Raygoza", "Loaiza", "Canelo", "Pintado", "Aguirre", "Fleites", "Pita", "Cerezo", "Mancia", "Ospina", "Velazquez", "Zarate", "Infante", "Bermudes", "Villatoro", "Disla", "Almaraz", "Jalomo", "Villar", "Masias", "Noriega", "Cervera", "Ruvalcaba", "Estremera", "Chevere", "Ugarte", "Equihua", "Caba", "Argueta", "Rincon", "Botero", "Arellano", "Aceves", "Granillo", "Terrazas", "Graciano", "Samaniego", "Machin", "Ramires", "Hiraldo", "Sardinas", "Aviles", "Carchi", "Yanes", "Inoa", "Jaramillo", "Servin", "Vasquez", "Anzures", "Recio", "Ballinas", "Pedroza", "Olivieri", "Montesdeoca", "Esparza", "Resendez", "Villalba", "Marentes", "Verdejo", "Lugo", "Mansilla", "Aristizabal", "Mundo", "Mancha", "Basilio", "Zevallos", "Cuervo", "Devora", "Grillo", "Delao", "Gonzalezgarcia", "Perez", "Pinal", "Salcido", "Zambrano", "Puig", "Santiago", "Talamantes", "Rojo", "Tenezaca", "Nova", "Jarquin", "Verduzco", "Perla", "Sustaita", "Vidana", "Herrejon", "Suastegui", "Ochoa", "Puello", "Moreno", "Lung", "Villagomez", "Campillo", "Virella", "Huitron", "Amarillas", "Perea", "Marmolejos", "Raya", "Armenta", "Rodriguez", "Guallpa", "Font", "Paulin", "Urbano", "Garciasanchez", "Deluna", "Tristan", "Gines", "Pabon", "Vaquera", "Ventura", "Troche", "Osuna", "Moreira", "Collazo", "Pineda", "Tena", "Pavia", "Portal", "Maysonet", "Noa", "Laurel", "Escamilla", "Alvira", "Alzate", "Plazola", "Azevedo", "Vale", "Godoy", "Dorantes", "Sermeno", "Buentello", "Nieves", "Ardon", "Vicente", "Chiquito", "Banda", "Olivares", "Olivos", "Barra", "Cantillo", "Vallejo", "Ticas", "Cienfuegos", "Rada", "Macareno", "Picasso", "Lopezgarcia", "Marte", "Facio", "Leiva", "Mederos", "Sanmartin", "Gerardo", "Campa", "Saavedra", "Colmenero", "Navarrete", "Guadalupe", "Rosales", "Corrales", "Tavarez", "Acosta", "Cosme", "Salais", "Funes", "Lepe", "Narez", "Asencio", "Quinteros", "Zarco", "Irigoyen", "Meraz", "Regino", "Garciaramirez", "Pecina", "Tijerina", "Barradas", "Magallanes", "Delvillar", "Madero", "Cardoza", "Cepeda", "Guajardo", "Olarte", "Toledo", "Donoso", "Terrones", "Silva", "Barboza", "Bravo", "Solorzano", "Ordones", "Catalan", "Licea", "Amado", "Duenez", "Salas", "Adrian", "Bedoy", "Caban", "Jasso", "Mas", "Calles", "Sotelo", "Alcazar", "Morel", "Felipe", "Dubon", "Puentes", "Cuadra", "Zubia", "Sanabria", "Amigon", "Calva", "Olivar", "Mena", "Villalobos", "Solorio", "Fundora", "Puente", "Jiron", "Desantiago", "Zavaleta", "Moraga", "Rosario", "Ipina", "Aldaz", "Rosiles", "Ferman", "Bisono", "Bugarin", "Mendoza", "Aispuro", "Tobar", "Suarez", "Espana", "Herrero", "Martines", "Goto", "Brizuela", "Barcenas", "Alamillo", "Ricardo", "Elizarraraz", "Diego", "Maese", "Orona", "Domingues", "Merced", "Murrieta", "Enciso", "Barba", "Febles", "Uriegas", "Alers", "Elenes", "Alvarenga", "Cubillos", "Monreal", "Centeno", "Aguiniga", "Aldama", "Guardiola", "Vizcaino", "Lamas", "Belmares", "Gatica", "Ferrufino", "Cabanillas", "Yebra", "Mazariego", "Soltero", "Barreras", "Mayorga", "Maynes", "Siqueiros", "Gamarra", "Villasenor", "Casas", "Pratts", "Hipolito", "Chirinos", "Cordon", "Mares", "Minjares", "Candela", "Olivo", "Balderas", "Becerril", "Urrutia", "Cordero", "Olivarez", "Castanon", "Revilla", "Eguia", "Valtierra", "Oviedo", "Gaytan", "Olivencia", "Negron", "Pereida", "Lizcano", "Larranaga", "Lujano", "Urrea", "Sorto", "Carachure", "Mariscal", "Cifuentes", "Rangel", "Pequeno", "Blandon", "Luis", "Pujol", "Canchola", "Barrales", "Salceda", "Cadiz", "Becerra", "Lucena", "Chaves", "Curbelo", "Colina", "Cruzmartinez", "Dutan", "Lara", "Villalva", "Velarde", "Riveros", "Altamirano", "Figuereo", "Mulero", "Galeano", "Rueda", "Cid", "Lumbreras", "Perezmartinez", "Chavira", "Planas", "Granado", "Villacis", "Silvera", "Lezcano", "Fermin", "Grajales", "Roberto", "Lino", "Esqueda", "Rojas", "Pelayo", "Rosado", "Lainez", "Alpizar", "Ovalles", "Canizales", "Alcon", "Camberos", "Romero", "Idrovo", "Negrete", "Eusebio", "Coreas", "Delvalle", "Mier", "Carabajal", "Ramirezhernand", "Cardenas", "Andrade", "Lua", "Perezrodriguez", "Delarosa", "Bermudez", "Natera", "Ribas", "Guereca", "Melendez", "Gamino", "Labrada", "Araya", "Rebollo", "Bobadilla", "Juan", "Corporan", "Portalatin", "Limones", "Pech", "Casasola", "Trigueros", "Hinojosa", "Diaz", "Alvarado", "Arellanes", "Allende", "Berlanga", "Bedoya", "Sepeda", "Tiburcio", "Esteban", "Alcantara", "Febres", "Casados", "Arebalo", "Orejel", "Caballero", "Zabala", "Guandique", "Posada", "Fiallo", "Cuadros", "Valiente", "Carlo", "Recendez", "Payano", "Herrera", "Izquierdo", "Bencosme", "Arista", "Copado", "Aquilar", "Gonzaga", "Tercero", "Maturino", "Santibanez", "Pastor", "Valdes", "Mota", "Depena", "Freyre", "Cayetano", "Flores", "Briones", "Montes", "Limas", "Mijares", "Gama", "Riojas", "Lopez", "Lamboy", "Heredia", "Palafox", "Olmos", "Narciso", "Contrera", "Araiza", "Barcelo", "Zurita", "Feliciano", "Melero", "Monsalve", "Martindelcamp", "Marcelino", "Delacerda", "Landa", "Cuevas", "Carrasquillo", "Ortiz", "Suriel", "Izaguirre", "Calzadilla", "Pinero", "Arriola", "Encinas", "Chevez", "Gaxiola", "Quiroga", "Hercules", "Adame", "Borbon", "Vidaurri", "Barroso", "Yepez", "Herrarte", "Enriquez", "Francisco", "Nino", "Ledesma", "Mandujano", "Delahoz", "Salazar", "Moron", "Pozos", "Samudio", "Poblano", "Baylon", "Pallares", "Esquilin", "Casillas", "Picazo", "Briceno", "Jimenez", "Mencia", "Candia", "Aldaba", "Cansino", "Pizano", "Garfias", "Alfaro", "Guzman", "Zarazua", "Monrroy", "Jesus", "Piedrahita", "Agramonte", "Arauz", "Olivas", "Zazueta", "Aguero", "Castillo", "Raymundo", "Cahue", "Narvaez", "Deltoro", "Rivero", "Camejo", "Lona", "Linan", "Melo", "Marrujo", "Delira", "Rubalcaba", "Bastidas", "Cea", "Silvas", "Frayre", "Niebla", "Rentas", "Cabada", "Loja", "Duarte", "Chapa", "Lavin", "Favela", "Fontanez", "Rivadeneira", "Ramirezgarcia", "Labra", "Bodden", "Corral", "Abila", "Jaso", "Afanador", "Montenegro", "Taboada", "Negrin", "Fuentez", "Menchaca", "Clavijo", "Pantoja", "Bernabe", "Desoto", "Baez", "Melchor", "Matos", "Lagunes", "Sala", "Marin", "Noyola", "Rivas", "Urquidi", "Garciagonzalez", "Ocana", "Espitia", "Gallardo", "Delosrios", "Davalos", "Enriques", "Aguillar", "Garza", "Moncivais", "Arguijo", "Viruet", "Valderrama", "Buenrostro", "Leyva", "Madrid", "Arciga", "Constanza", "Merida", "Morera", "Alvarez", "Ruybal", "Quintanar", "Somoza", "Hoyos", "Gaeta", "Farfan", "Ornelas", "Casco", "Chicas", "Tineo", "Almendarez", "Castano", "Rodela", "Perezsanchez", "Camarillo", "Escalante", "Alas", "Restrepo", "Carrizales", "Barreiro", "Gallegos", "Vilchis", "Corvera", "Garnica", "Urdiales", "Llerena", "Medero", "Lovo", "Gonzalezlopez", "Erives", "Hinostroza", "Huertas", "Uvalle", "Villaverde", "Virgen", "Longoria", "Talamantez", "Ovando", "Osorio", "Tagle", "Blas", "Serpas", "Canedo", "Barahona", "Victoria", "Penaranda", "Guerrero", "Salguero", "Espin", "Sagrero", "Aracena", "Peguero", "Montelongo", "Mairena", "Baltazar", "Olmeda", "Lizardo", "Castilleja", "Arreaga", "Saez", "Ozuna", "Cantu", "Magallon", "Medellin", "Mungia", "Elvira", "Lastra", "Minchala", "Maestas", "Lasalle", "Retana", "Abril", "Cotto", "Apolinar", "Aguilera", "Favila", "Pinon", "Castelan", "Popoca", "Murrietta", "Barcena", "Veliz", "Carbajal", "Galvan", "Arrellano", "Grijalva", "Laredo", "Loa", "Fregoso", "Euceda", "Bibian", "Borrego", "Rogue", "Silverio", "Carapia", "Pargas", "Criollo", "Venzor", "Benavidez", "Henriquez", "Alcorta", "Urquidez", "Inzunza", "Gerena", "Villafana", "Ureno", "Mosqueda", "Mendizabal", "Servellon", "Vieyra", "Cabrera", "Carrillo", "Viramontes", "Morillo", "Ron", "Torrez", "Calleros", "Bran", "Servantes", "Carcamo", "Aranda", "Costilla", "Taborda", "Constantino", "Perezperez", "Santizo", "Covarrubias", "Marron", "Delapena", "Bustillos", "Mestas", "Quevedo", "Rizo", "Pineiro", "Batista", "Jeronimo", "Paulino", "Arocha", "Botello", "Montero", "Echeverry", "Baeza", "Navarro", "Gervacio", "Sabillon", "Vela", "Deniz", "Ceron", "Herandez", "Gaviria", "Badillo", "Panuco", "Villada", "Somarriba", "Castruita", "Veloz", "Guevara", "Carlos", "Medina", "Platero", "Olalde", "Otano", "Penafiel", "Alcocer", "Blancarte", "Vara", "Velaquez", "Campusano", "Arevalo", "Mojarro", "Llanos", "Reveles", "Valcarcel", "Paxtor", "Ciriaco", "Murillo", "Gaitan", "Larin", "Villafranco", "Lemos", "Curiel", "Campuzano", "Vallejos", "Dolores", "Montejano", "Andujo", "Montalvan", "Gongora", "Cruzlopez", "Gamero", "Urizar", "Garica", "Olvera", "Remache", "Nevarez", "Parga", "Uscanga", "Aguillon", "Archila", "Olaya", "Montijo", "Cardoso", "Monteon", "Rodriguezlopez", "Naranjo", "Campo", "Bucio", "Oregel", "Gauna", "Torres", "Arizmendi", "Quinto", "Amparan", "Cuesta", "Roybal", "Tamayo", "Lupercio", "Galvis", "Sevilla", "Loya", "Lobo", "Tostado", "Borrero", "Guadarrama", "Perera", "Lago", "Bejarano", "Razo", "Rufino", "Maqueda", "Plasencia", "Barreto", "Amaya", "Agredano", "Panameno", "Carretero", "Delreal", "Govea", "Salaiz", "Estudillo", "Andazola", "Delara", "Renteria", "Quispe", "Miramontes", "Magallan", "Rubi", "Lascano", "Tonche", "Rosendo", "Escobedo", "Aldrete", "Piedra", "Gracia", "Salasar", "Munos", "Cadavid", "Rebolledo", "Basurto", "Pliego", "Esperanza", "Polanco", "Delafuente", "Durazo", "Deloera", "Legaspi", "Vivas", "Delatorre", "Brenes", "Delahoya", "Viera", "Palacio", "Rosillo", "Merlos", "Bartolo", "Escorcia", "Nuno", "Amaro", "Facundo", "Seda", "Noboa", "Valera", "Canela", "Coca", "Santiesteban", "Escarcega", "Picon", "Clemente", "Galban", "Bribiesca", "Chavarria", "Vivanco", "Vicuna", "Urquizo", "Ayala", "Benito", "Matute", "Toribio", "Barrio", "Preciado", "Mendiola", "Echevarria", "Langarica", "Mellado", "Licon", "Luque", "Yanez", "Carrizal", "Algarin", "Arvizu", "Decastro", "Leon", "Alverio", "Mesa", "Moncayo", "Cedillos", "Hinojos", "Patino", "Jacinto", "Ferrera", "Alavez", "Isaza", "Montiel", "Olveda", "Villalon", "Espericueta", "Jerez", "Mancera", "Losada", "Oquendo", "Crespin", "Donis", "Constancio", "Jara", "Cancel", "Iribe", "Landeros", "Cortinas", "Arceo", "Catano", "Santacruz", "Benites", "Joya", "Vega", "Sicairos", "Ybanez", "Alban", "Garcialopez", "Cruzhernandez", "Fuerte", "Tarin", "Calzada", "Castilla", "Lopezlopez", "Natal", "Ojeda", "Travieso", "Olavarria", "Viloria", "Larosa", "Pesqueira", "Carreto", "Loredo", "Fortuna", "Soberanis", "Bonet", "Pastrana", "Benavides", "Sahagun", "Navia", "Simental", "Arzate", "Bazaldua", "Picado", "Majano", "Batz", "Mejia", "Obeso", "Carmona", "Carrasco", "Santillanes", "Pinales", "Mestre", "Acevedo", "Aliaga", "Serrata", "Fuertes", "Victorino", "Carvajal", "Marinez", "Bringas", "Candelaria", "Turrubiates", "Luevanos", "Sabino", "Neria", "Arenas", "Banales", "Maceda", "Quintanilla", "Rua", "Lima", "Buitrago", "Zavala", "Fulgencio", "Pozo", "Sambrano", "Zamarripa", "Inocencio", "Joaquin", "Ernandez", "Garibay", "Maez", "Javier", "Camarena", "Soberanes", "Quinones", "Trillo", "Cigarroa", "Aponte", "Leyba", "Lupian", "Ugalde", "Marez", "Suazo", "Batalla", "Alderete", "Morones", "Albarran", "Nicolas", "Anton", "Alcoser", "Garrido", "Tabares", "Loza", "Zuluaga", "Lomas", "Menjivar", "Rodas", "Valderas", "Guadiana", "Santillana", "Ybarra", "Chavez", "Cendejas", "Vigil", "Pons", "Colindres", "Blancas", "Alday", "Nicasio", "Onate", "Godines", "Rosas", "Marmol", "Inga", "Anchondo", "Moronta", "Elias", "Capellan", "Campoverde", "Baca", "Patricio", "Quito", "Santa", "Galeas", "Alvardo", "Canal", "Corniel", "Guijarro", "Revolorio", "Najar", "Arambula", "Sisneros", "Cerrillo", "Nava", "Gasca", "Cardozo", "Espino", "Sosa", "Serratos", "Uranga", "Garcia", "Crisanto", "Faz", "Carmen", "Angeles", "Quirarte", "Rosero", "Alamo", "Alamilla", "Arana", "Agosto", "Pulgarin", "Feliz", "Madril", "Bernardo", "Cantarero", "Marcia", "Casaus", "Pellot", "Castillon", "Cisneros", "Veras", "Cossio", "Tiscareno", "Bueso", "Ramirezlopez", "Noguez", "Quiroz", "Obregon", "Bardales", "Vinas", "Olmo", "Haro", "Zetina", "Gomez", "Correa", "Salinas", "Maza", "Padua", "Enrique", "Paula", "Balderrama", "Santander", "Clavel", "Vigo", "Argote", "Lomeli", "Rengifo", "Bedolla", "Vivar", "Escudero", "Villagrana", "Rosalez", "Segovia", "Perezgonzalez", "Mendosa", "Montalvo", "Valencia", "Martinez", "Minaya", "Quizhpi", "Mayorquin", "Vergara", "Arreola", "Bonilla", "Chagoya", "Roldan", "Fleitas", "Casique", "Morado", "Zacarias", "Barrera", "Delaguila", "Comas", "Raigoza", "Marcelo", "Aldaco", "Placido", "Pedro", "Ruedas", "Novoa", "Bibiano", "Huesca", "Moscoso", "Vazques", "Bencomo", "Goris", "Gusman", "Vilches", "Caldera", "Pazmino", "Porto", "Pera", "Carbonell", "Candido", "Santini", "Frometa", "Crispin", "Tienda", "Teran", "Duron", "Armendarez", "Castrejon", "Orengo", "Brito", "Machorro", "Bracamontes", "Bolivar", "Diez", "Frausto", "Pizarro", "Zatarain", "Castorena", "Ceniceros", "Porras", "Casiano", "Puerto", "Armijo", "Canto", "Puga", "Jaquez", "Castellon", "Nazario", "Peraza", "Reinoso", "Pagan", "Amador", "Caceres", "Nambo", "Corella", "Higuera", "Castro", "Salamanca", "Adorno", "Olguin", "Cervantes", "Cabral", "Sesma", "Ortez", "Calleja", "Hermida", "Topete", "Lemus", "Camilo", "Monterroza", "Maisonet", "Liriano", "Alegria", "Haros", "Medrano", "Pelaez", "Chirino", "Colon", "Leija", "Carballo", "Ocasio", "Monge", "Montealegre", "Figueredo", "Galarza", "Armas", "Albarado", "Morua", "Lizarraga", "Arias", "Bosquez", "Laboy", "Lerma", "Quijas", "Villafranca", "Sillas", "Fernandez", "Morell", "Luquin", "Cabello", "Lora", "Delacruz", "Genao", "Arispe", "Rubalcava", "Estevez", "Valero", "Pesina", "Gonzalezperez", "Meneses", "Esquibel", "Carillo", "Palomar", "Antigua", "Zermeno", "Delfin", "Leal", "Montesino", "Erazo", "Mera", "Delcastillo", "Alvares", "Buitron", "Balladares", "Soria", "Liz", "Pardo", "Toro", "Poveda", "Uribe", "Roa", "Obando", "Zamarron", "Zavalza", "Leanos", "Barrios", "Ferreras", "Boza", "Freire", "Carreno", "Chaires", "Mattos", "Sabedra", "Vaquerano", "Monegro", "Horta", "Burgos", "Coto", "Esquer", "Gaucin", "Serrato", "Tomas", "Nogueras", "Galeno", "Echeverria", "Penaloza", "Cerda", "Capetillo", "Almanza", "Rayo", "Loor", "Segundo", "Soliz", "Juarbe", "Huaman", "Carnero", "Berumen", "Zepeda", "Alcantar", "Saucedo", "Villamil", "Garriga", "Farinas", "Rogel", "Martinezhernan", "Mancilla", "Marenco", "Cervantez", "Massa", "Garduno", "Palos", "Redondo", "Baltodano", "Gabaldon", "Urzua", "Ferreyra", "Ancira", "Muneton", "Plata", "Bermeo", "Orosco", "Godina", "Garzon", "Cazares", "Franqui", "Balcazar", "Navarette", "Mancinas", "Cruz", "Cruzado", "Albino", "Albor", "Gonzales", "Latorre", "Berganza", "Consuegra", "Santana", "Osoria", "Cortina", "Pino", "Yerena", "Figueroa", "Merchan", "Villalvazo", "Vierra", "Avelino", "Magadan", "Gascon", "Castrillon", "Loayza", "Custodio", "Muratalla", "Maltez", "Cabrales", "Manjarrez", "Ocegueda", "Losoya", "Ahumada", "Duenas", "Araujo", "Quiros", "Ramon", "Cespedes", "Pruneda", "Vaquero", "Pantaleon", "Najera", "Portilla", "Puebla", "Amezcua", "Escareno", "Solivan", "Calero", "Pareja", "Cajigas", "Hidrogo", "Rodriges", "Montejo", "Garciacruz", "Remigio", "Trigo", "Fuentes", "Ogando", "Penuelas", "Urquiza", "Delgado", "Rabadan", "Umanzor", "Grau", "Huezo", "Pereda", "Barraza", "Gandarilla", "Varela", "Ribera", "Lazalde", "Guebara", "Cornejo", "Padin", "Banos", "Morgado", "Samano", "Rios", "Real", "Dominquez", "Agudelo", "Calvillo", "Guerra", "Andujar", "Melgarejo", "Hincapie", "Huante", "Malagon", "Valeriano", "Hernandezlopez", "Marroquin", "Sencion", "Navedo", "Maciel", "Suniga", "Corredor", "Menendez", "Chaidez", "Valerio", "Azua", "Hernandezperez", "Vicencio", "Aparicio", "Texidor", "Pupo", "Encalada", "Sabala", "Venegas", "Escalona", "Calixto", "Paniagua", "Desantos", "Chica", "Pedraza", "Dominguez", "Renderos", "Heras", "Pazos", "Roig", "Ulloa", "Dena", "Aldape", "Berrones", "Cebreros", "Azcona", "Cuautle", "Garciarodrigue", "Napoles", "Chairez", "Fausto", "Campos", "Grado", "Tanguma", "Sanches", "Chino", "Lagos", "Aguila", "Molano", "Basulto", "Aleman", "Quinonez", "Lanuza", "Palaguachi", "Alegre", "Machado", "Solares", "Lorenzo", "Delavega", "Requena", "Sequeira", "Ferrer", "Silvestre", "Saldarriaga", "Callejas", "Lozoya", "Aquino", "Hermosillo", "Loreto", "Jusino", "Rayas", "Anaya", "Cedano", "Montellano", "Gavina", "Bohorquez", "Pinzon", "Ocon", "Quezada", "Nodarse", "Patron", "Bueno", "Saenz", "Balli", "Donjuan", "Suero", "Ortegon", "Barbosa", "Cuello", "Burruel", "Soriano", "Mazon", "Cora", "Membreno", "Godinez", "Junco", "Cubias", "Morano", "Canizalez", "Arvizo", "Compean", "Gotay", "Arriaza", "Orellana", "Paez", "Viana", "Vidrio", "Tabarez", "Roca", "Vidals", "Moro", "Cabanas", "Celestino", "Cuen", "Telles", "Juarez", "Plascencia", "Navas", "Oregon", "Arreguin", "Rivera", "Estrella", "Capo", "Manso", "Bauza", "Madriz", "Pujols", "Siguenza", "Monterroso", "Zagal", "Lasso", "Venancio", "Torralba", "Montufar", "Varona", "Badilla", "Villagran", "Leos", "Arango", "Licona", "Florencio", "Fletes", "Quintana", "Peralez", "Triana", "Alcala", "Rutz", "Candelas", "Riveron", "Espaillat", "Solache", "Luz", "Jovel", "Corea", "Valdivieso", "Carrero", "Celaya", "Cazarez", "Rod", "Pintor", "Arzola", "Trevino", "Garciagarcia", "Cambron", "Isais", "Cornelio", "Guardado", "Sapien", "Basaldua", "Henao", "Orduno", "Caraveo", "Lantigua", "Jauregui", "Aburto", "Belloso", "Valenciano", "Vasques", "Chamorro", "Munoz", "Vazquez", "Garciaflores", "Paz", "Fragoso", "Paiz", "Velasco", "Vento", "Puac", "Espinal", "Arcia", "Roque", "Damian", "Asuncion", "Oliveras", "Brambila", "Galeana", "Orea", "Lagunas", "Bautista", "Escutia", "Bejar", "Manzano", "Gregorio", "Prieto", "Sardina", "Delrio", "Gorostieta", "Chacon", "Monje", "Reyez", "Carpio", "Minjarez", "Soler", "Febus", "Villamar", "Cedeno", "Arteaga", "Angel", "Lanza", "Gamboa", "Cepero", "Gonzalez", "Barreda", "Umana", "Lopezperez", "Arce", "Ortega", "Verdin", "Nungaray", "Espejo", "Conde", "Aragon", "Castelo", "Motta", "Irizarry", "Crespo", "Tobon", "Treto", "Escoto", "Lule", "Guizar", "Vegas", "Corpus", "Claros", "Vidales", "Marty", "Florentino", "Dorado", "Garciaperez", "Bermea", "Belmontes", "Griego", "Marmolejo", "Grullon", "Montesinos", "Levario", "Savedra", "Banuelos", "Ordaz", "Bocanegra", "Trejo", "Arzu", "Lopezramirez", "Nuncio", "Santillan", "Castrillo", "Tafoya", "Morales", "Corchado", "Concha", "Perezgarcia", "Acuna", "Sarabia", "Sagastume", "Magana", "Osorto", "Acedo", "Acebedo", "Arocho", "Lucio", "Rodriques", "Palencia", "Labrador", "Gallego", "Manzanares", "Silveira", "Campas", "Lazo", "Cueva", "Padro", "Olea", "Frias", "Mirabal", "Cecena", "Madrigal", "Murga", "Arechiga", "Milian", "Sias", "Pinilla", "Liberato", "Robaina", "Placencia", "Dehoyos", "Cirilo", "Anguiano", "Delcampo", "Alvear", "Basquez", "Monarrez", "Fabela", "Victoriano", "Dearmas", "Silguero", "Toscano", "Bracero", "Ponciano", "Angulo", "Serafin", "Zelaya", "Bosque", "Martinezcruz", "Coronel", "Alberto", "Barcia", "Bermejo", "Gastelum", "Villareal", "Fontes", "Marquez", "Deanda", "Pleitez", "Lucatero", "Perales", "Magdaleno", "Deras", "Paramo", "Grajeda", "Monjaras", "Tenorio", "Cantoran", "Gandara", "Jaimes", "Abundiz", "Pico", "Puerta", "Aguiar", "Pocasangre", "Calvo", "Torrico", "Parrales", "Munguia", "Perezcruz", "Marban", "Villarroel", "Savala", "Murguia", "Pesantez", "Rebollar", "Echeverri", "Alarid", "Zapata", "Zetino", "Prada", "Peralta", "Corzo", "Giron", "Deleon", "Armendariz", "Uresti", "Monroy", "Zambrana", "Arencibia", "Arroyave", "Lozano", "Guijosa", "Espindola", "Abeyta", "Villafan", "Cubas", "Bolanos", "Posadas", "Zamora", "Albarez", "Hilario", "Pizana", "Ariza", "Saldana", "Uriarte", "Proano", "Espinola", "Alvidrez", "Resendiz", "Giraldo", "Belmonte", "Valladolid", "Villafuerte", "Saravia", "Mondragon", "Delosangeles", "Santo", "Alarcon", "Baiza", "Mazariegos", "Floresgarcia", "Portela", "Vallecillo", "Aldana", "Merlo", "Machuca", "Gudino", "Bernardino", "Irias", "Urdaneta", "Clara", "Arballo", "Lorenzana", "Encinias", "Olmedo", "Breceda", "Cuba", "Tamez", "Guitron", "Avilez", "Dionicio", "Ciprian", "Natividad", "Sandoval", "Arcila", "Casimiro", "Corona", "Llamas", "Peinado", "Solano", "Zuniga", "Celis", "Loera", "Marcos", "Fiscal", "Luera", "Zuno", "Alonzo", "Ballester", "Gavidia", "Cereceres", "Burrola", "Hernandezcruz", "Tarango", "Vanegas", "Justiniano", "Berroa", "Portugal", "Mar", "Padron", "Bustos", "Lacayo", "Zamudio", "Navejas", "Onofre", "Manriquez", "Ocanas", "Diosdado", "Agustin", "Pascual", "Quijada", "Sauceda", "Cuebas", "Arciniega", "Aybar", "Aguayo", "Delangel", "Lizama", "Mireles", "Muralles", "Milanes", "Marcial", "Vitela", "Santos", "Plaza", "Checo", "Vides", "Moreta", "Viteri", "Rascon", "Cardiel", "Terrero", "Burgueno", "Florian", "Dejesus", "Macedo", "Verdugo", "Sais", "Duque", "Urioste", "Morataya", "Chinchilla", "Collado", "Gutierres", "Poncedeleon", "Arroyos", "Almeda", "Chavero", "Zumba", "Amparo", "Victorio", "Aguado", "Saragosa", "Belman", "Galindez", "Bailon", "Arrieta", "Ceja", "Tinoco", "Salvatierra", "Mayen", "Betances", "Escalera", "Anzaldua", "Salado", "Ramirezramirez", "Pla", "Osornio", "Pando", "Lobos", "Barranco", "Ceballos", "Buendia", "Bustillo", "Maradiaga", "Luna", "Tejada", "Guillermo", "Colocho", "Julio", "Villicana", "Flamenco", "Rovira", "Segarra", "Balbuena", "Lafuente", "Breton", "Santistevan", "Cota", "Cruzgarcia", "Villescas", "Huerta", "Arroyo", "Amezquita", "Dieguez", "Ley", "Encarnacion", "Ayon", "Artiaga", "Marine", "Costales", "Delgadillo", "Cabezas", "Navarrette", "Tacuri", "Baros", "Rosa", "Ambrosio", "Almazan", "Matus", "Maximo", "Neri", "Parras", "Alejo", "Orihuela", "Granados", "Ocampo", "Tadeo", "Turrubiartes", "Urquilla", "Trujillo", "Astacio", "Delossantos", "Renovato", "Berrio", "Banegas", "Parrilla", "Velasquez", "Ledezma", "Sedillo", "Caro", "Barrientos", "Crisostomo", "Landin", "Cerrato", "Fimbres", "Antuna", "Cardona", "Ramirez", "Santillano", "Morocho", "Cantero", "Gordillo", "Mateos", "Oyervides", "Modesto", "Samora", "Oliveros", "Cerna", "Valle", "Abundis", "Urias", "Gurule", "Then", "Beltre", "Abad", "Lechuga", "Villalovos", "Canas", "Aguilar", "Chaparro", "Muniz", "Fraire", "Orozco", "Benavente", "Rosete", "Iturralde", "Interiano", "Castello", "Cano", "Serna", "Lobato", "Chavarin", "Arcos", "Alferez", "Jiminez", "Tovar", "Patlan", "Elvir", "Delamora", "Ronquillo", "Casares", "Arboleda", "Monzon", "Cartagena", "Alanis", "Cancino", "Pedregon", "Romo", "Sanmiguel", "Fresquez", "Tejeda", "Mascarenas", "Astorga", "Daza", "Pena", "Gomezgarcia", "Burciaga", "Archibeque", "Landaverde", "Leonardo", "Salcedo", "Valles", "Padilla", "Urbina", "Pichardo", "Osegueda", "Isidoro", "Elizalde", "Meza", "Elizondo", "Manzo", "Claudio", "Verde", "Mesta", "Chagolla", "Mero", "Marcano", "Almaguer", "Calcano", "Jimenes", "Cortez", "Alameda", "Paredez", "Jacome", "Fraga", "Balandran", "Avelar", "Nanez", "Coria", "Palomera", "Montalbo", "Miera", "Briseno", "Osorno", "Mangual", "Carreon", "Rayon", "Chico", "Deherrera", "Arredondo", "Garcilazo", "Riera", "Zorrilla", "Salaz", "Millan", "Zaldivar", "Vialpando", "Deavila", "Gayton", "Gloria", "Vaca", "Arevalos", "Mantilla", "Lizaola", "Reynosa", "Monterrosa", "Nogales", "Hernandezgarci", "Artiga", "Villarreal", "Cobian", "Arizpe", "Morga", "Galvez", "Secundino", "Oceguera", "Atencio", "Almodovar", "Lezama", "Malacara", "Castrellon", "Pedrosa", "Lopezmartinez", "Valenzuela", "Ramos", "Alonso", "Tinajero", "Alfonso", "Zapien", "Canul", "Borunda", "Delpozo", "Iriarte", "Bargas", "Abreu", "Minero", "Gavilanes", "Nadal", "Echavarria", "Salgado", "Gil", "Pomales", "Fajardo", "Urena", "Guel", "Estrada", "Beltran", "Martinezlopez", "Domenech", "Baquero", "Yniguez", "Orrego", "Parra", "Presas", "Barco", "Tirado", "Espiritu", "Cobo", "Fraijo", "Arguelles", "Amesquita", "Aceituno", "Eugenio", "Perezramirez", "Enamorado", "Roblero", "Piceno", "Rafael", "Sotomayor", "Reyes", "Portillo", "Sanchezlopez", "Rubio", "Vences", "Alva", "Zea", "Alba", "Garibaldi", "Subia", "Lopezhernandez", "Villegas", "Mayoral", "Adames", "Iglesias", "Gaspar", "Garciamartinez", "Cuellar", "Ruelas", "Inda", "Frutos", "Murcia", "Revuelta", "Cerros", "Mendieta", "Zayas", "Falcon", "Mercado", "Berrios", "Viveros", "Torre", "Gurrola", "Morelos", "Baza", "Henandez", "Monteagudo", "Turcios", "Guillen", "Corado", "Mayor", "Riviera", "Aguas", "Ontiveros", "Linares", "Lopezgonzalez", "Oros", "Carranza", "Fiallos", "Calix", "Loeza", "Fierro", "Calvario", "Lamadrid", "Sarria", "Paredes", "Quirino", "Hernandes", "Catala", "Cristobal", "Prudencio", "Mojica", "Garsia", "Dedios", "Morquecho", "Antillon", "Villeda", "Antonio", "Feria", "Serrano", "Pereyra", "Muriel", "Arriaga", "Villafane", "Pimentel", "Cortes", "Zertuche", "Esquivel", "Larios", "Puma", "Cibrian", "Sanchezgarcia", "Doria", "Pasillas", "Mora", "Montemayor", "Montez", "Aros", "Arguello", "Vielma", "Bastida", "Robledo", "Liera", "Madera", "Almada", "Olan", "Nerio", "Luviano", "Villasana", "Navar", "Maya", "Atilano", "Faria", "Gaona", "Valadez", "Lucero", "Blanco", "Cedillo", "Sevillano", "Ibarra", "Castellanos", "Zenteno", "Rey", "Garces", "Garciahernande", "Marrero", "Rochin", "Alcaraz", "Herrada", "Sixtos", "Sotolongo", "Alejos", "Mata", "Prado", "Borjas", "Lajara", "Lebron", "Pina", "Barriga", "Toral", "Carrion", "Velazco", "Capote", "Aguinaga", "Forero", "Galicia", "Perezhernandez", "Trevizo", "Merino", "Lopezsanchez", "Jacobo", "Vargas", "Galan", "Delpino", "Valdiviezo", "Plancarte", "Borrayo", "Elizarraras", "Alejandro", "Almonte", "Palomo", "Quintero", "Andino", "Geronimo", "Duenes", "Monrreal", "Iracheta", "Caraballo", "Sanchez", "Bretado", "Orta", "Salmeron", "Felix", "Perdomo", "Lema", "Tello", "Vizcarrondo", "Miguel", "Mateo", "Lux", "Cordoba", "Soza", "Flecha", "Madueno", "Borquez", "Sarmiento", "Segoviano", "Pablo", "Delaluz", "Nieto", "Borboa", "Sarinana", "Mercedes", "Rabago", "Ruis", "Sierra", "Ulibarri", "Villavicencio", "Dimas", "Avendano", "Muro", "Abarca", "Mijangos", "Cuadrado", "Escatel", "Campana", "Betancur", "Germosen", "Yslas", "Zubiate", "Martinezperez", "Vila", "Unzueta", "Tapia", "Mira", "Tavera", "Ambriz", "Sandate", "Cubero", "Camero", "Quesada", "Ferrel", "Najarro", "Lira", "Sanjuan", "Troncoso", "Palmerin", "Marti", "Huizar", "Bernal", "Lujan", "Tejera", "Milla", "Robles", "Melendrez", "Saiz", "Florez", "Oropeza", "Montana", "Villalpando", "Carranco", "Palomino", "Melara", "Borja", "Escajeda", "Sifuentes", "Camacho", "Sauseda", "Bazan", "Delcid", "Gramajo", "Mejorado", "Regalado", "Martir", "Diazdeleon", "Lopezrodriguez", "Santamaria", "Neira", "Ordonez", "Galaviz", "Cesena", "Orantes", "Reynaga", "Medel", "Archuleta", "Calle", "Moncada", "Ambrocio", "Vilchez", "Arvelo", "Yescas", "Barragan", "Malpica", "Serano", "Taveras", "Colin", "Celedon", "Vizcarra", "Gonsales", "Blea", "Llanas", "Barocio", "Mauricio", "Orduna", "Molinar", "Candelario", "Delapaz", "Astudillo", "Vera", "Carino", "Berber", "Molina", "Olivera", "Jacquez", "Yzaguirre", "Jose", "Payan", "Barrientes", "Velasques", "Agudo", "Delariva", "Davila", "Beato", "Montilla", "Montoya", "Cosio", "Franco", "Villarruel", "Palma", "Valdespino", "Noguera", "Laguna", "Arizaga", "Sibrian", "Moctezuma", "Marchena", "Mendivil", "Coronado", "Lopera", "Baena", "Ballesteros", "Samayoa", "Sostre", "Valdovinos", "Constante", "Cobos", "Almanzar", "Lares", "Garay", "Llanes", "Fierros", "Sotello", "Olague", "Sinchi", "Colmenares", "Villa", "Carrera", "Canales", "Marines", "Bonifacio", "Bello", "Baltierra", "Jaime", "Malave", "Galo", "Betancourt", "Casias", "Nolasco", "Delagarza", "Rodarte", "Cerritos", "Melgoza", "Luciano", "Justo", "Urbieta", "Lazcano", "Carreras", "Reza", "Peres", "Radilla", "Sedano", "Tolentino", "Abalos", "Caamano", "Balboa", "Corro", "Provencio", "Rico", "Iniguez", "Avellaneda", "Canseco", "Arjona", "Soto", "Parada", "Galindo", "Reina", "Conejo", "Avila", "Colunga", "Marquina", "Bahena", "Degante", "Apodaca", "Quiles", "Avalos", "Cantor", "Lombera", "Funez", "Alejandre", "Cuenca", "Federico", "Novelo", "Carias", "Monsivais", "Cabeza", "Rauda", "Matamoros", "Pinedo", "Ramales", "Toledano", "Borjon", "Chiriboga", "Arrazola", "Baires", "Rayos", "Holguin", "Cordova", "Camargo", "Solis", "Urgiles", "Felan", "Gudiel", "Azpeitia", "Farias", "Fernando", "Barrantes", "Melgar", "Cadenas", "Miron", "Barrientez", "Valdez", "Cintron", "Siller", "Avitia", "Quiroa", "Partida", "Villacorta", "Islas", "Recendiz", "Depaz", "Beas", "Reyesgarcia", "Liranzo", "Serra", "Recinos", "Aramburo", "Valdivia", "Galdamez", "Santoyo", "Mina", "Zeledon", "Riquelme", "Montano", "Isidro", "Acero", "Viscarra", "Espinoza", "Guaman", "Saito", "Rael", "Miranda", "Delbosque", "Castaneda", "Jurado", "Sanz", "Luevano", "Macario", "Espada", "Valentin", "Lozada", "Reyna", "Jorge", "Ortuno", "Ascencio", "Sanroman", "Cabreja", "Rodriquez", "Familia", "Villalta", "Talavera", "Alicea", "Gonsalez", "Hurtado", "Aboytes", "Antunez", "Maldonado", "Caudillo", "Figeroa", "Socarras", "Anzaldo", "Dorta", "Saldierna", "Morejon", "Dilone", "Ardila", "Rolon", "Batres", "Serpa", "Sainz", "Class", "Baldonado", "Valladares", "Londono", "Jaimez", "Rondon", "Oseguera", "Sena", "Otero", "Cevallos", "Garate", "Pimienta", "Lopezcruz", "Gutierrez", "Alatorre", "Terriquez", "Villanueva", "Fonseca", "Cajamarca", "Penate", "Granda", "Balleza", "Laracuente", "Macias", "Gamez", "Larrea", "Barillas", "Chihuahua", "Bustamante", "Palomares", "Barona", "Grimaldo", "Villela", "Zaragoza", "Rendon", "Resto", "Galaz", "Artiles", "Polo", "Roman", "Conchas", "Concepcion", "Cacho", "Melena", "Fiorentino", "Delcarmen", "Contreras", "Argumedo", "Alaniz", "Avina", "Arbelaez", "Palacios", "Severino", "Vidal", "Zamorano", "Pacheco", "Verastegui", "Pulido", "Morena", "Hidalgo", "Ovalle", "Ravelo", "Mejias", "Higareda", "Trejos", "Perezlopez", "Gomezlopez", "Dealba", "Esquivias", "Zaldana", "Barela", "Muzquiz", "Cadena", "Barberena", "Casarez", "Montanez", "Coss", "Espinosa", "Mascorro", "Canez", "Neyra", "Sepulveda", "Reta", "Quijano", "Delosreyes", "Escandon", "Trinidad", "Esteves", "Matta", "Paucar", "Talamante", "Manrique", "Melecio", "Mendez", "Duran", "Bracamonte", "Tabora", "Casanova", "Cisnero", "Lazaro", "Loyola", "Panduro", "Bojorquez", "Marchan", "Reynoso", "Mujica", "Villalona", "Urenda", "Ruano", "Sola", "Yepes", "Maes", "Oliva", "Cueto", "Brea", "Vallin", "Barajas", "Uriostegui", "Segura", "Moya", "Banderas", "Andrades", "Lovato", "Pompa", "Nunez", "Maria", "Morfin", "Castor", "Laureano", "Trochez", "Valverde", "Salto", "Raudales", "Velez", "Escobar", "Capistran", "Martinezgarcia", "Matias", "Leandro", "Portales", "Coello", "Urieta", "Benitez", "Tellez", "Bayona", "Degollado", "Rijo", "Marrufo", "Dorame", "Guity", "Colorado", "Saldivar", "Salvador", "Abrego"]} + +native_american_names = {"last_names": ["Rosetta", "Todechine", "Jock", "Custalow", "Blacklance", "Stcyr", "Littledog", "Charette", "Sunday", "Tritt", "Gene", "Tecumseh", "Tarbell", "Capitan", "Poyer", "Swimmer", "Navajo", "Blackbear", "Holgate", "Tubby", "Fragua", "Maybee", "Silversmith", "Malmay", "Dubray", "Braveheart", "Wallette", "Tallbull", "Bigbear", "Osceola", "Redeagle", "Goodbird", "Shomo", "Leask", "Blackeagle", "Treat", "Medicinehorse", "Lameman", "Dixey", "Davids", "Bark", "Mcanally", "Keeto", "Larvie", "Hilderbrand", "Greybear", "Beaudry", "Burshia", "Harker", "Mouse", "Tommy", "Killion", "Whiteface", "Nastacio", "Douville", "Liner", "Maracle", "Lossiah", "Cly", "Tsinnijinnie", "Vandiver", "Shorthair", "Colombe", "Plant", "Becenti", "Atene", "Poolaw", "Prue", "Oldbear", "Chair", "Waseta", "Bitsue", "Ironwing", "Vermillion", "Peynetsa", "Sepulvado", "Alden", "Whitehair", "Ironcloud", "Billy", "Daw", "Yellowhair", "Whitewolf", "Nosie", "Littlethunder", "Hollowhorn", "Hillis", "Fleury", "Printup", "Martine", "Pappan", "Gooday", "Moquino", "Mohawk", "Nason", "Dushkin", "Topping", "Yellow", "Killsnight", "Gust", "Finkbonner", "Edaakie", "Stiffarm", "Butterfly", "Skinaway", "Shanta", "Cosen", "Cisco", "Cadotte", "Blackdeer", "Capoeman", "Tsinnie", "Danforth", "Atcitty", "Bitsoi", "Demoski", "Ghost", "Angaiak", "Belgarde", "Charley", "Valliere", "Lasiloo", "Ike", "Pinkham", "Fasthorse", "Truax", "Parkhurst", "Whiteowl", "Longee", "Mountain", "Spottedeagle", "Andreas", "Elm", "Littlebear", "Cozad", "Deswood", "Lehi", "Warrington", "Bigeagle", "Twiss", "Valley", "Hubbell", "Labatte", "Adakai", "Apachito", "Flute", "Arviso", "Talk", "Klain", "Max", "Standridge", "Woodman", "Manygoats", "Schurz", "Toya", "Herrod", "Kingfisher", "Eades", "Reevis", "Whiteplume", "Stabler", "Evan", "Bitsoie", "Cassa", "Beyale", "Lieb", "Valandra", "Vallo", "Wildcat", "Girty", "Suina", "Lamebull", "Yandell", "Drennan", "Funmaker", "Renville", "Mesteth", "Decory", "Gordy", "Garfield", "Gardipee", "Redstar", "Wassillie", "Fred", "Hooke", "Verrett", "Ivanoff", "Lecompte", "Juneau", "Wahnee", "Delozier", "Deerinwater", "Maney", "Shangin", "Twitchell", "Jumper", "Runningcrane", "Enjady", "Grinnell", "Masten", "Laverdure", "Haskie", "Demarrias", "Redeye", "Parisien", "Trueblood", "Cayaditto", "Yellowbird", "Bohanan", "Broncheau", "Yahola", "Bercier", "Whitecloud", "Seminole", "Tobey", "Sarracino", "Willow", "Littlewolf", "Neztsosie", "Whitebird", "Denoyer", "Yellowhorse", "Norcross", "Bowekaty", "Adson", "Youpee", "Blackbird", "Bevins", "Enno", "Ganadonegro", "Brien", "Ezernack", "Duane", "Paddock", "Goodbear", "Cayou", "Tessay", "Whitehat", "Rhodd", "Cypress", "Foret", "Ofield", "Ducheneaux", "Decorah", "Yellowboy", "Halwood", "Tohannie", "Williston", "Roubideaux", "Slim", "Gambler", "Declay", "Fastwolf", "Belcourt", "Hornbuckle", "Hoskie", "Carlile", "Thinn", "Blackwater", "Rattler", "Blacksmith", "Nicolai", "Charlie", "Charbonneau", "Trosclair", "Stick", "Notafraid", "Salway", "Sando", "Teeple", "Bellanger", "Ramone", "Kalmakoff", "Suke", "Captain", "Valdo", "Kenneth", "Pickup", "Diver", "Keeble", "Ayze", "Deacon", "Buster", "Frankson", "Hogner", "Eaglestar", "Gopher", "Whitebear", "Makil", "Marcellais", "Barse", "Pioche", "Stops", "Nockideneh", "Mustache", "Quiver", "Wauneka", "Polacca", "Ojibway", "Tunney", "Mangan", "Blackcloud", "Stalker", "Cuch", "Slinkey", "Sagataw", "Alloway", "Bekis", "Sully", "Lomayaktewa", "Zahne", "Dry", "Haukaas", "Dundas", "Billie", "Chickaway", "Bushman", "Gonnie", "Smoker", "Redwine", "Kanuho", "Bitsui", "Leno", "Wayman", "Latray", "Bodfish", "Maize", "Isham", "Oxendine", "Roanhorse", "Smiling", "Bonnie", "Birdshead", "Fryberg", "Blackowl", "Barnaby", "Walkingstick", "Delorme", "Tullie", "Sherlock", "Quaderer", "Blackcrow", "Freemont", "Saunooke", "Kie", "Pigeon", "Nephew", "Boni", "Comby", "Standingbear", "Bagola", "Kenton", "Fulwilder", "Cata", "Stgermaine", "Todacheene", "Raper", "Bia", "Haven", "Stately", "Jojola", "Yazzie", "Ironhawk", "Poitra", "Charboneau", "Homer", "Pitka", "Bigby", "Monette", "Brunet", "Natonabah", "Newago", "Kessay", "Rabbit", "Killsinwater", "Twocrow", "Watchman", "Dazen", "Montour", "Benge", "Chischilly", "Katchatag", "Hosteen", "Blackhawk", "Arquette", "Fixico", "Sevenstar", "Gervais", "Justin", "Mexicano", "Botts", "Payer", "Redcloud", "Seyler", "Jeanotte", "Hilburn", "Beans", "Bert", "Fuson", "Horsechief", "Garbow", "Brisbois", "Johnny", "Laroche", "Hatathlie", "Stead", "Heminger", "Babbitt", "Bitsinnie", "Highelk", "Evanoff", "Malaterre", "Logg", "Dauphinais", "Chancellor", "Battise", "Bonito", "Broncho", "Danks", "Doxtator", "Tallchief", "Carrick", "Ironshell", "Monte", "Heavyrunner", "Madplume", "Solet", "Lazore", "Flett", "Chaisson", "Honie", "Blackfox", "Clah", "Vivier", "Limberhand", "Girdner", "Spino", "Shangreaux", "Demientieff", "Birdinground", "Edmo", "Dosela", "Bordeaux", "Tall", "Quinton", "Wind", "Claymore", "Manheimer", "Deschine", "Burd", "Shortman", "Mccovey", "Harney", "Zunie", "Salois", "Twoeagle", "Seabolt", "Smoke", "Whiterock", "Blossom", "Drywater", "Doney", "Poncho", "Whitewater", "Chief", "Bill", "Grass", "Traversie", "Whiteeyes", "Bitsuie", "Beston", "Spottedwolf", "Arch", "Russel", "Mexican", "Bullbear", "Cournoyer", "Rondeau", "Tsoodle", "Coriz", "Augare", "Shakespeare", "Roehl", "Lafave", "Echohawk", "Goodluck", "Vanderpool", "Quam", "Yankton", "Tahy", "Kindelay", "Spry", "Kipp", "Tony", "Benny", "Lente", "Labarge", "Boivin", "Stash", "Parisian", "Naha", "Stclaire", "Amyotte", "Steven", "Decora", "Abrahamson", "Gritts", "Jandreau", "Gasper", "Shije", "Fallis", "Bible", "Yelloweagle", "Kinsel", "Redhair", "Rouillard", "Leviner", "Worcester", "Largo", "Mccurtain", "Moose", "Waukau", "Sisto", "Blackie", "Deese", "Dickenson", "Factor", "Neptune", "Lamere", "Allery", "Bowker", "Cambridge", "Nicholai", "Twohearts", "Tsethlikai", "Meshell", "Azure", "Blueeyes", "Owle", "Jourdain", "Eagleman", "Descheny", "Secody", "Tourtillott", "Holmberg", "Graymountain", "Tachine", "Yallup", "Laclair", "Dardar", "Peneaux", "Analla", "Deckard", "Pancho", "Tocktoo", "Morningstar", "Archambault", "Battiest", "Marchand", "Youngbird", "Fallsdown", "Redhouse", "Watahomigie", "Alcott", "Mescal", "Numkena", "Deverney", "Brunette", "Teton", "Stands", "Alexie", "Mcnac", "Antone", "Greeley", "Herder", "Brake", "Ninham", "Eustace", "Benallie", "Ahhaitty", "Hostler", "Honea", "Loring", "Goulet", "Metoxen", "Parton", "Clyde", "Smallcanyon", "Horse", "Benally", "Ballot", "Gilpin", "Bighorse", "Bedoni", "Redwing", "Pilcher", "Dougi", "Lirette", "Whitebuffalo", "Tsosie", "Lodrigue", "Yellowhawk", "Canuto", "Whiteshirt", "Bigboy", "Sockey", "Cottier", "Madosh", "Whisenhunt", "Slick", "Mcculley", "Paquin", "Shamblin", "Jimmie", "Bowannie", "Whitehouse", "Ellenwood", "Ebarb", "Segay", "Slivers", "Devereaux", "Nomee", "Siers", "Snowball", "Tulley", "Skenadore", "Laughter", "Leith", "Kameroff", "Decoteau", "Russette", "Belone", "Chasinghawk", "Denetsosie", "Twist", "Weasel", "Etcitty", "Iceman", "Trudell", "Belonga", "Lafontaine", "Brave", "Silverhorn", "Jimmy", "Thunder", "Brunk", "Wesaw", "Paxson", "Oakgrove", "Naquin", "Tommie", "Littledave", "Wheelock", "Fawcett", "Blackhorse", "Mix", "Gunhammer", "Rope", "Larock", "Keeswood", "Wero", "Eddie", "Cesspooch", "Torivio", "Waupoose", "Descheenie", "Skye", "Mcgirt", "Bighorn", "Chatlin", "Ivins", "Procell", "Laplant", "Apache", "Thundercloud", "Lonebear", "Rodrigue", "Realbird", "Livers", "Siow", "Keplin", "Marris", "Redhorn", "Kaquatosh", "Bigcrow", "Pahe", "Whitford", "Hot", "Vielle", "Tortice", "Julius", "Arrow", "Swayney", "Dollar", "Goudreau", "Longsoldier", "Ami", "Wilber", "Lohnes", "Goombi", "Terrance", "Cohoe", "Altaha", "Desjarlais", "Bettelyoun", "Clairmont", "Ladeaux", "Booqua", "Loonsfoot", "Wassilie", "Frechette", "Redowl", "Gunville", "Spottedelk", "Narcia", "Yeahquo", "Turtle", "Lafountain", "Baptisto", "Ahasteen", "Oscar", "Woodell", "Soap", "Whitefeather", "Leclaire", "Fineday", "Morigeau", "Otten", "Drift", "Blackgoat", "Wadena", "Goggleye", "Calabaza", "Shendo", "Cheatwood", "Whitebull", "Caulder", "Leaf", "Stites", "Dock", "Silk", "Norberto", "Jourdan", "Martineau", "Paisano", "Gregoire", "Redshirt", "Bullis", "Warrior", "Arcoren", "Stensgar", "Nofire", "Labelle", "Bahe", "Adolph", "Caddo", "Croy", "Littlebird", "Desiderio", "Lussier", "Lafromboise", "Colelay", "Roan", "Polty", "Hoptowit", "Andy", "Courville", "Begay", "Buffalohead", "Gouge", "Peaches", "Poorbear", "Barbone", "Yazza", "Farve", "Bigpond", "Laducer", "Weahkee", "Belvin", "Ranger", "Jumbo", "Keezer", "Trancosa", "Mousseau", "Cassadore", "Big", "Sawney", "Edenshaw", "Swallow", "Snake", "Halona", "Soulier", "Waskey", "Catron", "Denetso", "Orso", "Hugs", "Spoonhunter", "Seneca", "Vandever", "Skenandore", "Joe", "Holyan", "Basina", "Twinn", "Gachupin", "Callison", "Bitsilly", "Standingrock", "Lefthandbull", "Purser", "Narcho", "Baloo", "Deroche", "Nickey", "Henio", "Goldtooth", "Honanie", "Cheromiah", "Begody", "Larocque", "Tahe", "Tisi", "Cuny", "Paden", "Redday", "Chippewa", "Deatherage", "Dreadfulwater", "Blatchford", "Keyonnie", "Bluebird", "Verret", "Thunderhawk", "Littlewhiteman", "Runningbear", "Gokey", "Hunnicutt", "Billsie", "Tomah", "Standing", "Chapo", "Littlewind", "Steve", "Buffalo", "Goseyun", "Redbird", "Corbine", "Villebrun", "Duboise", "Looper", "Lebeau", "Cheater", "Reano", "Chinana", "Rolin", "Yepa", "Perrault", "Melot", "Clitso", "Mcgehee", "Walkingeagle", "Blackwolf", "Larney", "Kellywood", "Abeita", "Muskrat", "Billey", "Marrietta", "Yellowman", "Laroque", "Bow", "Lalio", "Cree", "Countryman", "Chavarillo", "Sleeper", "Buckles", "Pelt", "Fatt", "Catches", "Stopp", "Hillaire", "Firethunder", "Garrow", "Ludlow", "Dumont", "Primeaux", "Payment", "Armajo", "Chatto", "Bohanon", "Fleetwood", "Kerley", "Feather", "Kingbird", "Twobulls", "Arpan", "Bushyhead", "Ballou", "Tree", "Lestenkof", "Standingelk", "Osife", "Amiotte", "Dumarce", "Poupart", "Kallestewa", "Orcutt", "Lansing", "Lowrey", "Nick", "Bruguier", "Desautel", "Weddell", "Powless", "Eriacho", "Berryhill", "Kisto", "Postoak", "Whiteeagle", "Tilden", "Etsitty", "Parfait", "Crank", "Kokrine", "Milford", "Dake", "Salt", "Claw", "Secatero", "Redelk", "Spang", "Lavallie", "Iron", "Six", "Kaulaity", "Evon", "Messerly", "Hyden", "Skeets", "Chiago", "Dann", "Waln", "Impson", "Antelope", "Loftis", "Brunelle", "Kettle", "Littleman", "Cowboy", "Dedman", "Picotte", "Redfeather", "Skeet", "Brockie", "Peone", "Todacheenie", "Marceau", "Burbank", "Goodshield", "Grimmett", "Oldman", "Silago", "Rexford", "Namoki", "Summerfield", "Haskan", "Oats", "Spottedbear", "Panther", "Gladue", "Springwater", "Talayumptewa", "Kompkoff", "Colegrove", "Gobert", "Pecos", "Lasley", "Olanna", "Zuni", "Denetclaw", "Wanna", "Denison", "Deere", "Windyboy", "Tabaha", "Deer", "Swett", "Vanzile", "Racine", "Trottier", "Redfox", "Demontiney", "Active", "Werito", "Dull", "Chosa", "Columbus", "Sylestine", "Bedonie", "Runninghawk", "Janis", "Bigman", "Alberts", "Bourdon", "Poorman", "Drapeau", "Longie", "Delgarito", "Matt", "Bob", "Birdtail", "Astor", "Badonie", "Greymountain", "Cadman", "Littlelight", "Olney", "Jeff", "Whitekiller", "Gishie", "Bancroft", "Nayokpuk", "Hugo", "Jumpingeagle", "Tobacco", "Chalepah", "Manymules", "Teller", "Mcgeshick", "Archambeau", "Aday", "Rickman", "Aleck", "Nez", "Bitsie", "Laughing", "Flyinghorse", "Cate", "Sixkiller", "Whitehawk", "Merculief", "Buckman", "Tartsah", "Saunsoci", "Rustin", "Kitcheyan", "Lupe", "Tatsey", "Tapaha", "Ethelbah", "Werk", "Demmert", "Bresette", "Pearman", "Defoe", "Loretto", "Fourkiller", "Guerue", "Laforge", "Bobelu", "Neadeau", "Grignon", "Attakai", "Shorty", "Americanhorse", "Dejolie", "Carle", "Creppel", "Greyeyes", "Pepion", "Dupris", "Tyndall", "Keams", "Gourneau", "Ketcher", "Lafountaine", "Whitehorse", "Gwin", "Youngman", "Cosay", "Vicenti", "Northrup", "Minthorn", "Lonewolf", "Teehee", "Pourier", "Mckerchie", "Dugi", "Brigman", "Shoemake", "Dayzie", "Bremner", "Nault", "Gourd", "Noah", "Onefeather", "Whiteshield", "Ladue", "Coho", "Buzzard", "Parrie", "Zephier", "Quickbear", "Turcotte", "Scraper", "Autaubo", "Herne", "Conners", "Morsette", "Hummingbird", "Bissonette", "Byington", "Ridgway", "Stillday", "Locklear", "Corn", "Schuyler", "Muskett", "Manuelito", "Star", "Blackelk", "Causley", "Peshlakai", "Owl", "Mute", "Pewo", "Drum", "Bread", "Vanpelt", "Mose", "Begaye", "Lefthand", "Spottedhorse", "Yoe", "Redhorse", "Pakootas", "Locust", "Badoni", "Clown", "Lamont", "Seaboy", "Jake", "Bilagody", "Watashe", "Hinman", "Concho", "Notah", "Guardipee", "Lena", "Speck", "Laduke", "Chuculate", "Waska", "Youngbear", "Feathers", "Pine", "Elk", "Eskeets", "Tonasket", "Redbear", "Tah", "Maupin", "Eder", "Rave"]} + +asian_names = { + "first_names": [ "Tailor", "Bhalla", "Look", "Roh", "Hao", "Bi", "Bunag", "Char", "Ravi", "Sunny", "Balasubramaniam", "Yoshimoto", "Nay", "Shu", "Subramanian", "Moala", "Parveen","Jeremy", "Gary", "Alisa", "Savannah", "Zayan", "Arham", "Kate", "Sharon", "Jenna", "Alisha", "Leela", "Lauren", "Eva", "Kaitlyn", "Mikael", "Joy", "Leah", "Tyler", "Kayden", "Crystal", "Mohamed", "Jason", "Myra", "Michael", "Taylor", "Elise", "Lucy", "Maxwell", "Ayesha", "Zain", "Mohammed", "Erica", "Ava", "Harper", "Doris", "Abdul", "Farhan", "Carina", "Lily", "Jessie", "Valerie", "Selina", "Alina", "Kevin", "Amara", "Mandy", "Jace", "Eshal", "Tiffany", "Annie", "Samara", "Kyle", "Wendy", "Avery", "Shreya", "Sabrina", "Xavier", "Anisha", "David", "Hayden", "Evelyn", "Bruce", "Leanna", "Hazel", "Bryan", "Alan", "Amina", "Alexis", "Shayaan", "Lisa", "James", "Eileen", "Hanna", "Jasmine", "Nolan", "Jocelyn", "Christy", "Anaya", "Kazi", "Samantha", "Nathan", "Raina", "Isla", "Alston", "Chelsea", "Timothy", "Anthony", "Abdullah", "Ahad", "Gianna", "Jannatul", "Calvin", "Max", "Sarah", "Ashley", "Jannat", "Sheldon", "Evan", "Aria", "Claire", "Kian", "Jun", "Veer", "Esther", "Elsa", "Diya", "Eric", "Xander", "Yahya", "Amaya", "Vincent", "Arya", "Musa", "Lucas", "Hailey", "Karina", "Theo", "Phoebe", "Tristan", "Brian", "Andrew", "Damon", "Devin", "Krish", "Md", "William", "Tanisha", "Queenie", "Maryam", "Aliza", "Aileen", "Alvin", "Khadija", "Richard", "Owen", "Inaya", "Gavin", "Elliot", "Hamza", "Hassan", "Ada", "Liyana", "Kimberly", "Helen", "Maximilian", "Daphne", "Manha", "Diana", "Skylar", "Ishaan", "Arthur", "Ella", "Isaac", "Amira", "Sabiha", "Kenneth", "Derrick", "Maya", "Luke", "Eleanor", "Madison", "Henry", "Arisha", "Maggie", "Kaleb", "Gabriel", "Shirley", "Irene", "Ryder", "Zayn", "Niam", "Arjun", "Khloe", "Leon", "Amber", "Laura", "Joanna", "Bodhi", "Zoey", "John", "Micah", "Danny", "Bonnie", "Saifan", "Nathaniel", "Emmanuel", "Kingsley", "Nikhil", "Kira", "Aliyah", "Ophelia", "Adrian", "Jolin", "Keira", "Ahnaf", "Carter", "Scarlett", "Olivia", "Angel", "Aurora", "Frank", "Sara", "Justin", "Felix", "Safa", "Selena", "Omar", "Rayyan", "Ariel", "Armaan", "Johnny", "Nicholas", "Robert", "Kiara", "Christian", "Vanessa", "Ayra", "Ethan", "Cindy", "Samuel", "Madelyn", "Gabriella", "Stephanie", "Emilia", "Vicky", "Lillian", "Brandon", "Miya", "Ariella", "Levi", "Cecilia", "Aden", "Mila", "Mira", "Nina", "Mason", "Maliha", "Eden", "Abby", "Winston", "Liana", "Tony", "Alyssa", "Livia", "Ahmed", "Lydia", "Syeda", "Kimi", "Steven", "Sophia", "Celine", "Aayat", "Kai", "Christopher", "Peter", "Ahmad", "Joshua", "Luca", "Spencer", "Lina", "Harry", "Ananya", "Edward", "Safwan", "Amir", "Sulaiman", "Stanley", "Jacob", "Aarav", "Ivaan", "Feynman", "Mark", "Isabella", "Thomas", "Joyce", "Connor", "Fiona", "Carson", "Aliya", "Stella", "Megan", "Jerry", "Theodore", "Elijah", "Aleena", "Abrar", "Elias", "Colin", "Alexander", "Elena", "Simon", "Zachary", "Chloe", "Subhan", "Jasper", "Josephine", "Vera", "Rayna", "Eliana", "Eshan", "Skyler", "Hunter", "Lawrence", "Ashton", "Adam", "Anson", "Catherine", "Sophie", "Jaden", "Erin", "Enzo", "Nora", "Anya", "Louis", "Linda", "Sienna", "Cynthia", "Jimmy", "Angelina", "Yu", "Layla", "Derek", "Isabel", "Samaira", "Adyan", "Eddie", "Wilson", "Alexa", "Ayan", "Eason", "Mohammad", "Alicia", "Clara", "Rebecca", "Jessica", "Nicole", "Dua", "Raymond", "Julian", "Charlotte", "Muhammad", "Anisa", "Katie", "Alexandra", "Naomi", "Edwin", "Aaron", "Reina", "Summer", "Aayan", "Oscar", "Rohaan", "Elaine", "Lila", "Nelson", "Kaden", "Preston", "Isaiah", "Jackson", "Norah", "Tahmid", "Shayan", "Anderson", "Terrence", "Hoorain", "Priscilla", "Andy", "Roy", "Neil", "Matthew", "Miles", "Katelyn", "Daisy", "Jamie", "Albert", "Dylan", "Liam", "Erika", "Ayden", "Harrison", "Austin", "Darren", "Madeline", "Riya", "Angela", "Alfred", "Tenzin", "Tasnim", "Grayson", "Ismail", "Iris", "Isabelle", "Jenny", "Brayden", "Bowen", "Anna", "Aiden", "Syed", "Sarina", "Elizabeth", "Ricky", "Mina", "Brianna", "Allison", "Winnie", "Queena", "George", "Emma", "Shawn", "Zoe", "Jia", "Kenny", "Kelly", "Julia", "Miranda", "Wyatt", "Amanda", "Caroline", "Anika", "Bradley", "Audrey", "Ayaan", "Jeffrey", "Hao", "Ellie", "Natalie", "Vivian", "Sahil", "Sunny", "Vihaan", "Faith", "Tina", "Eunice", "Leila", "Melanie", "Hana", "Hashim", "Saif", "Allen", "Haniya", "Aaliyah", "Lia", "Rayan", "Cameron", "Ali", "Inaaya", "Nabiha", "Logan", "Terry", "Riley", "Daniel", "Penelope", "Ivan", "Sebastian", "Luna", "Ian", "Violet", "Victor", "Aizah", "Ayat", "Cody", "Jacqueline", "Eli", "Kaia", "Anjali", "Alice", "Hafsa", "Azaan", "Michelle", "Ryan", "Katherine", "Marcus", "Noor", "Parker", "Rachel", "Edison", "Rehan", "Aidan", "Anne", "Caleb", "Nusrat", "Jayden", "Kingston", "Gordon", "Amy", "Dean", "Roman", "Anayah", "Alayna", "Sylvia", "Mia", "Asher", "Hannah", "Abigail", "Arianna", "Sofia", "Sherry", "Aarya", "Aahil", "Serena", "Martin", "Lincoln", "Gia", "Chris", "Karen", "Bella", "Cyrus", "Madeleine", "Jennifer", "Annika", "Sydney", "Elvis", "Giselle", "Mustafa", "Zainab", "Annabelle", "Connie", "Rohan", "Ruby", "Renee", "Travis", "Aaryan", "Jonathan", "Hugo", "Christine", "Sean", "Jordan", "Arvin", "Kylie", "Yusuf", "Kayla", "Oliver", "Aiza", "Muntaha", "Janice", "Jacky", "Khadijah", "Meera", "Ariana", "Judy", "Emily", "Wesley", "Brendan", "Grace", "Xin", "Rhea", "Victoria", "Aisha", "Alex", "Joseph", "Josiah", "Mahnoor", "Kabir", "Benjamin", "Mariam", "Hudson", "Leo", "Angus", "Noah", "Landon", "Leonardo", "Emaan", "Benson", "Aditya", "Caden", "Patrick", "Angie", "Ivy", "Anabia", "Zara", "Kyson", "Eshaal", "Yuna", "Charles", "Elina", "Amelia", "Ibrahim", "Kaylee", "Athena", "Christina", "Zahra", "Cayden", "Melody", "Jack", "Hareem", "Jake", "Jay", "Zoya", "Aryan", "Aydin", "Fatima", "Lena", "Chase"], + + "last_names": [ "Nhan", "Yao", "Jou", "Buenaventura", "Shwe", "Lou", "Thai", "Shirai", "Mai", "Bhasin", "Senthilkumar", "Zulueta", "Sor", "Jen", "Soundara", "Francia", "Miah", "Abidi", "Pancholi", "Muranaka", "Chao", "Ramesh", "Koyama", "Vakharia", "Chang", "Kawabata", "Tengan", "Caballes", "Manivong", "Cun", "Lhamo", "Hirano", "Arun", "Hum", "Hariharan", "Manaloto", "Ni", "Chen", "Len", "Tani", "Huq", "Chiba", "Kalra", "Kham", "Sinha", "Miyoshi", "Manalastas", "Matsuoka", "Balagtas", "Matharu", "Ao", "Matsuno", "Latif", "Nayyar", "Yon", "Hsiao", "Tamashiro", "Bath", "Halim", "Acoba", "Soy", "Jamil", "Almario", "Kosaka", "Shakeel", "Soliven", "Tandoc", "Kafley", "Dayal", "Minhas", "Potluri", "Kuwahara", "Ramasamy", "Ramones", "Goel", "Pathan", "Batra", "Fan", "Mukai", "Huda", "Aftab", "Kazi", "Azad", "Tsu", "Nishiyama", "Zhai", "Rosal", "Makwana", "Matsuura", "Shum", "Charania", "Talati", "Lagman", "Im", "Ramchandani", "Sanluis", "Barua", "Tesoro", "Sham", "Jared", "Karnik", "Phouthavong", "Lo", "Saluja", "Taneja", "Quadri", "Kwok", "Cinco", "Torio", "Farooqi", "Sikder", "Noguchi", "Goh", "Nakai", "Rozario", "Qian", "Shafi", "Guiang", "Somera", "Pandey", "Mian", "Song", "Katayama", "Sanpedro", "Apte", "Hoo", "Ghosh", "Jow", "Salud", "Prum", "Cho", "Danh", "Tamondong", "Pagdilao", "Dancel", "Tewari", "Jan", "Asai", "Rana", "Sachdev", "Halder", "Hayakawa", "Narasimhan", "Sahai", "Bansal", "Thakur", "Sawada", "Hor", "Tham", "Foronda", "Thammavongsa", "Vue", "Nonaka", "Miyahara", "Huy", "Lagasca", "Chon", "Kamal", "Shiraishi", "Chap", "Pao", "Advincula", "Sapkota", "Talukder", "Naseem", "Kundu", "Sakuma", "Voong", "Hur", "Nip", "Yokoyama", "Ravindran", "Wi", "Veloso", "Meas", "Kanno", "Sridharan", "Quizon", "Ren", "Kishore", "Shahi", "Matsui", "Nepomuceno", "Thakker", "Mahajan", "Thapa", "Soo", "Hirani", "Akhtar", "Riaz", "Lomboy", "Lei", "Hwang", "Khatoon", "Maqsood", "Tiu", "Mir", "Miyazaki", "Andal", "Menon", "Joung", "Shang", "Jew", "Siddiqui", "Mascarenhas", "Kaya", "Khan", "Shergill", "Sandhu", "Mok", "Wah", "Ramalingam", "Madarang", "Tonga", "Majumder", "Bagga", "Liem", "Edralin", "Tuong", "Basa", "Bista", "Nath", "Zheng", "Sahni", "Sohail", "Pho", "Khare", "Lock", "Naidu", "Yum", "Yun", "Kothari", "Rizal", "Liu", "Duggal", "Chern", "La", "Rama", "Tiwana", "Om", "Sherpa", "Teruya", "Mohapatra", "Nand", "Szeto", "Thapar", "Parayno", "Qadri", "Takano", "Takaki", "Ikram", "Paw", "Guan", "Fang", "Zhou", "Ona", "Sohi", "Foo", "Bayani", "Manzoor", "Quiambao", "More", "Si", "Tupas", "Yoshioka", "Furuta", "Nakanishi", "Junio", "Kiang", "Soohoo", "Wijaya", "Villaruz", "Oba", "Ibay", "Banu", "Murayama", "Toyama", "Khosla", "Shastri", "Kang", "Yousaf", "Khadka", "Sundararajan", "Halili", "Biju", "Venkat", "Ya", "Jin", "Amir", "Yoon", "Sarin", "Chaudhri", "Madamba", "Tsutsui", "Terada", "Payumo", "Touch", "Chim", "Narine", "Dev", "Seok", "Kodali", "Durrani", "Saesee", "Tsou", "Sul", "Amante", "Basra", "Luthra", "Karthikeyan", "Hung", "Fong", "Galiza", "Jaffer", "Konishi", "Benedicto", "Jeng", "Paraiso", "Haq", "Lalani", "Shee", "Mainali", "Isip", "Varkey", "Weng", "Kum", "Sachdeva", "Malonzo", "Sakaguchi", "Uong", "Manlapaz", "Araki", "Motiwala", "Acharya", "Varshney", "Mehdi", "Dhir", "Cung", "Nakatani", "Tripathi", "Kalidindi", "Bo", "Atienza", "Yin", "Suri", "Kil", "Chuong", "Chien", "Sriram", "Lan", "Jindal", "Ruan", "Ganguly", "Phon", "Kadakia", "Mamaril", "Asano", "Pol", "Vaghela", "Zahid", "Challa", "Bassi", "Hori", "Pong", "Siddiqi", "Khanal", "Sultana", "Dabu", "Thao", "Zhuang", "Ioane", "Mathur", "Phann", "Villaflor", "Rajagopalan", "Nishioka", "Matsuyama", "Naito", "Sua", "Ran", "Nessa", "Hanif", "Maeng", "Asis", "Cheuk", "Narayanan", "Ozaki", "Sanghera", "Akram", "Pun", "Lama", "Hafeez", "Lacuesta", "Menezes", "Jayaraman", "Tang", "Ashraf", "Vahora", "Chhetri", "Cariaga", "Otani", "Shakir", "Delkcruz", "Wada", "Kikuchi", "Pok", "Hem", "Shafiq", "Shankar", "Master", "Kansara", "Cai", "Phung", "Yue", "Mitra", "Paudel", "Sim", "Akamine", "Nisa", "Mahal", "Panjwani", "Kale", "Shenoy", "Qi", "Dinh", "Adnan", "Htoo", "Subramaniam", "Policarpio", "Huang", "Paule", "Bolosan", "Chilukuri", "Chuck", "Yamanaka", "Chacko", "Asim", "Ravikumar", "Desai", "Navalta", "Timsina", "Banaag", "Bae", "Ngai", "Vasudevan", "Chi", "Mahadevan", "Mehta", "Baluyut", "Macadangdang", "Nguon", "Sardar", "Yem", "Jian", "Vemulapalli", "Kishi", "Rim", "Pillar", "Yumul", "Ksor", "Mesina", "Nabong", "Balachandran", "Par", "Vuu", "Ki", "Razzak", "Lata", "Shamsi", "Zhao", "Mizuno", "Choudhry", "Prabhu", "Adusumilli", "Suh", "Sanyal", "Agnihotri", "Taketa", "Ke", "Dewan", "Jeong", "Pu", "Naval", "Munshi", "Basco", "Shamim", "Nee", "Yalamanchili", "Prashad", "Wakabayashi", "Rangarajan", "Koshy","Villarin", "Luc", "Patnaik", "Magbanua", "Mistry", "Pervaiz", "Masaki", "Sue", "Dhanani", "Austria", "Langi", "Biswa", "Farooq", "Phan", "Patwardhan", "Koh", "Vashi", "Ulep", "Koneru", "Manivanh", "Ma", "Cherukuri", "Yamagata", "Tyagi", "Bella", "Ramiro", "Mohabir", "Matsumura", "Bahl", "Lieu", "Saelee", "Malabanan", "Wee", "Surti", "Tomita", "Momin", "Afzal", "Kotha", "Jadhav", "Malhotra", "Ear", "Takhar", "Salam", "Ngu", "Sattar", "Noronha", "Tee", "Alvi", "Nagano", "Thind", "Seshadri", "Der", "Hon", "Pillai", "Das", "Siwakoti", "Jaswal", "Noda", "Jani", "Shams", "Puno", "Sengupta", "Hok", "Wai", "Oki", "Woon", "Kun", "Arshad", "Teves", "Yonamine", "Murthy", "Hans", "Oka", "Aktar", "Koirala", "Arcilla", "Iyengar", "Haroon", "Kobashigawa", "Kapadia", "Chiang", "Abuan", "Nayar", "Capulong", "Maknojia", "Malek", "Ijaz", "Ghani", "Vaidya", "Chaturvedi", "Choun", "Ngo", "Lew", "Leng", "Bedi", "Jahangir", "Kataria", "Subedi", "Chaudhari", "Panda", "Manalac", "Quraishi", "Dasari", "Chugh", "Somasundaram", "Ashfaq", "Fazal", "Fok", "Uk", "Shabbir", "Jaffery", "Duldulao", "Ramamoorthy", "Bao", "Jabbar", "Yamamura", "Baloch", "Saran", "Yeom", "Saing", "Oo", "Cha", "Pathammavong", "Babu", "Abedin", "Xia", "Kashyap", "Malik", "Chiu", "Gaviola", "Soeung", "Vongphakdy", "Hua", "Jang", "Nim", "Taira", "Chinen", "Ngan", "Chawla", "Nagarajan","Hamamoto", "Iftikhar", "Shibata", "Mangal", "Sutaria", "Untalan", "Beharry", "Enomoto", "Furuya", "Miyahira", "Rho", "Tsuda", "Suthar", "De", "Badua", "Chue", "Alikhan", "Qamar", "Masih", "Din", "Sahi", "Man", "Thi", "Chhum", "Bhatia", "Deshmukh", "Gupta", "Hing", "Lapid", "Sankar", "Cabacungan", "Rafique", "Tanveer", "Guintu", "Gatdula", "Yagi", "Chatterjee", "Yasin", "Hossain", "Chandrasekar", "Guo", "Macapagal", "Rafi", "Thang", "Bong", "Shishido", "Imran", "Hizon", "Zhang", "Kothapalli", "Shiroma", "Cendana", "Bano", "Farooqui", "Hsiung", "Soh", "Nayak", "Pili", "Sampath", "Seth", "Ando", "Cul", "Espina", "Lam", "Ige", "Banez", "Rajan", "Khangura", "Cabana", "Amano", "Iwai", "Bhullar", "Nishi", "Narang", "Loi", "Sanghvi", "Igarashi", "Magsino", "Irfan", "Murugesan", "Matsushima", "Sugimoto", "Safdar", "Tiwari", "Sahoo", "Handa", "Kho", "Takada", "Hirose", "Puri", "Sawant", "Shahid", "Ramaswamy", "Khanom", "Manu", "Orpilla", "Basnet", "Mangahas", "Aung", "Xiao", "Adhikari", "Mazhar", "Sayani", "Jiwani", "Mayeda", "Park", "Lakshmanan", "Son", "Macaraeg", "Mallari", "Yung", "Takeshita", "Mushtaq", "Shiao", "Sekar", "Chiao", "Rabbani", "Naing", "Dsilva", "Omori", "Nakamura", "Chio", "Ouch", "Azeem", "Soong", "Ejaz", "Chhoeun", "Lyu", "Rajagopal", "Takemoto", "Tejani", "Paik", "Tuan", "Islam", "Pa", "Hui", "Hashmi", "Bhatnagar", "Xi", "Ou", "Xayavong", "Phou", "Tonnu", "Uno", "Zee", "Uppalapati", "Ramiscal", "Rawal", "Chander", "Bajpai", "Bun", "Rathore", "Alipio", "Kandasamy", "Co", "Vohra", "Capistrano", "Choe", "Ally", "Paguirigan", "Pokharel", "Shanmugam", "Qadir", "Kwock", "Tam", "Sher", "Rafiq", "Sicat", "Chhim", "Chong", "Mam", "Neupane", "Mong", "Ngov", "Sui", "Manoharan", "Aggarwal", "Kurien", "Iida", "Guevarra", "Punjabi", "Chakraborty", "Quintos", "Le", "Imperial", "Luy", "Yasui", "Kien", "Teo", "Mi", "Chiou", "Kwak", "Lakhani", "Ai", "Sathe", "Magpantay", "Saephan", "Kapur", "Sarwar", "Laxamana", "Oun", "Rahman", "Songco", "Varadarajan", "Karri", "Sorn", "Xiang", "Aranas", "Sugai", "Magar", "Barot", "Dhimal", "Jabeen", "Pasco", "Perumal", "Sankaran", "Ghaffar", "Jha", "Noh", "Doan", "Amin", "Takenaka", "Salim", "Siddiq", "Ishaq", "Shoji", "Nasim", "Hin", "Kawashima", "Kou", "Pradeep", "Yeo", "Liew", "Dass", "Tonthat", "Dcosta", "Randhawa", "Tada", "Penaflor", "Chughtai", "Upreti", "Bandi", "Ouyang", "Chahal", "Ramcharan", "Pangan", "Kancharla", "Seang", "Chhabra", "Sayavong", "Ueno", "Goyal", "Deng", "Chokshi", "Pyo", "Jassal", "Krishna", "Alapati", "Ramkumar", "Chua", "Sulit", "Suguitan", "Sehgal", "Rajkumar", "Yep", "Purewal", "Ping", "Chann", "Cheah", "Mannan", "Villena", "Venugopal", "Latu", "Ong", "Gowda", "Kwong", "Phal", "Ganti", "Soon", "Manahan", "Ilyas", "Kieu", "Nijjar", "Gopinath", "Pilapil", "Maniar", "Khuon", "Moua", "Balasubramanian", "Suk", "Akula", "Tuason", "Tith", "Situ", "Qiao", "Paulo", "Vaswani", "Toor", "Thakkar", "Biswas", "Villaruel", "Nagpal", "Ching", "Leung", "Mukhopadhyay", "Philipose", "Purohit", "Tanaka", "Suy", "Panicker", "Ghotra", "Regmi", "Chiong", "Lie", "Shetty", "Dy", "Dam", "Arunachalam", "Inthavong", "Ganapathy", "Ek", "Amjad", "Hemani", "Ashok", "Meghani", "Catacutan", "Kar", "Kishimoto", "No", "Du", "Lapuz", "Buan", "Toda", "Liou", "Sanjose", "Rattan", "Chattopadhyay", "Dolma", "Okubo", "Goon", "Saraf", "Yokota", "Panganiban", "Boparai", "Prasla", "Macatangay", "Usmani", "Lun", "Mandal", "Oberoi", "Cam", "Namba", "Razon", "Yu", "Zou", "Pandit", "Matsuo", "Gaur", "Phommachanh", "Mui", "Kamdar", "Razzaq", "Kannan", "Cheang", "Teoh", "Bawa", "Walla", "Dhingra", "Katta", "Maung", "Lingad", "Khuu", "Kaneko", "Youn", "Palisoc", "Jiang", "Vinh", "Kha", "Jong", "Gorospe", "Natarajan", "Baguio", "Agpaoa", "Kamiya", "Borromeo", "Olaes", "Pagaduan", "Dhungana", "Kamboj", "Varanasi", "Louie", "Balk", "Yasmin", "Akella", "Wei", "Khattak", "Kondo", "Mac", "Tariq", "Tat", "Ohta", "Pamintuan", "Seki", "Kok", "Okimoto", "Que", "Saiki", "Venkatesan", "Pervez", "Dalisay", "Ip", "Chun", "Tsan", "Stamaria", "Kuroda", "Choudhury", "Rathod", "Sampat", "Barcelona", "Jilani", "Bhola", "Sotto", "Brillantes", "Vachhani", "Zia", "Parikh", "Fujiwara", "Saldanha", "Andrada", "Tin", "Chaudhary", "Dana", "Chui", "Shukla", "Chaudry", "Nepal", "Kaul", "Yam", "Suda", "Tsuji", "Sze", "Kazmi", "Dhindsa", "Elahi", "Leota", "Soth", "Singhal", "Iwamoto", "Cunanan", "Nishikawa", "Ny", "Bukhari", "Sethi", "Bose", "Insixiengmay", "Muramoto", "Huot", "Kojima", "Caparas", "Yoshikawa", "Kurup", "Khamvongsa", "Gala", "Yuen", "Ge", "Thakar", "Raju", "Aujla", "Sadiq", "Kyi", "Ilano", "Kumar", "Fukunaga", "Nawaz", "Te", "Pabla", "Sajjad", "Gupte", "Nakayama", "Visitacion", "Pi", "Sa", "Okuda", "Yabut", "Ji", "Baral", "Fontanilla", "Kim", "Jim", "Gang", "Yuan", "Ines", "Miu", "Lala", "Quon", "Madan", "Bang", "Balaji", "Hashim", "Ryoo", "Da", "Keo", "Heer", "Viswanathan", "Agcaoili", "Jee", "Myung", "Ghuman", "Vijay", "Rigor", "Sastry", "Shah", "Mall", "Santaana", "Saiyed", "Fujikawa", "Nguyen", "Ali", "Pannu", "Dionisio", "Calma", "Cayabyab", "Koizumi", "Ng", "Niu", "Luu", "Zang", "Lien", "Bumanglag", "Sugiyama", "Aspiras", "Miao", "Dino", "Buenviaje", "Umeda", "Parekh", "Misa", "Moy", "Cua", "Manglicmot", "Dixit", "Kido", "Trinh", "Sheu", "Prasad", "Patil", "Soe", "Kissoon", "Phimmasone", "Sang", "Hong", "Manalili", "Dhillon", "Uyehara", "Chari", "Dhesi", "Deperalta", "Alviar", "Auyeung", "Dulay", "Ravishankar", "Han", "Tao", "Hinh", "Takara", "Hsing", "Masud", "Mehmood", "Mittal", "Vemuri", "Dungca", "Mei", "Terrado", "Chuang", "Jalil", "Regala", "Mani", "Khandelwal", "Lachica", "Zhan", "Yo", "Lansang", "Arca", "Lalwani", "Tecson", "Kaw", "Shariff", "Sagar", "Raut", "Nakasone", "Kuang", "Deb", "Trang", "Yamashiro", "Sese", "Sunga", "Zubair", "Fujioka", "Hu", "Kabir", "Xian", "Teodoro", "Balan", "Otsuka", "Buenaflor", "Brun", "Teng", "You", "Su", "Jasti", "Dang", "Ayson", "Samala", "Miyasato", "Sai", "Agha", "Capili", "Rong", "Maharjan", "Ninh", "Balakrishnan", "Hundal", "Ing", "Selvaraj", "Wang", "Tea", "Capati", "Sundaresan", "Bou", "Koy", "Tsai", "Topacio", "Ea", "Abueg", "Nagasawa", "Jaiswal", "Garg", "Hyon", "Adachi", "Naik", "Chea", "Sakurai", "Dar", "Manickam", "Nadkarni", "Vaid", "Raman", "Rami", "Yamauchi", "Niazi", "Singla", "Ka", "Abaya", "Kuan", "Mody", "Verzosa", "Bokhari", "Khatiwada", "Cheung", "Choksi", "Setiawan", "Ly", "Ta", "Mochizuki", "Leang", "Leong", "Yang", "Pang", "Siv", "Brar", "Saefong", "Sidhu", "Oommen", "Naseer", "Parungao", "Nakao", "Sabharwal", "Panchal", "Shahzad", "Fujita", "Qu", "Baxi", "Domingo", "Chadha", "Sarkar", "Vijayan", "Quitugua", "Fifita", "Javaid", "Shaik", "Kawai", "Radhakrishnan", "Panlilio", "Khin", "Chaudhuri", "Kitagawa", "Mou", "Kukreja", "Doo", "Lodhi", "Marzan", "Soun", "Darjee", "Varughese", "Baek", "Asato", "Landicho", "Lian", "Bharadwaj", "Rehman", "Fnu", "Kye", "Tso", "Poudel", "Ragasa", "Kausar", "Raina", "Andaya", "Cabanilla", "Dave", "Sio", "Macalino", "Degracia", "Chanda", "Inamdar", "Luk", "Vemula", "Pheng", "Bhandari", "Horiuchi", "Supnet", "Lavarias", "Hai", "Pasion", "Yeon", "Tanabe", "Van", "Vaidyanathan", "Thieu", "Asad", "Kohli", "Faustino", "Jafri", "Tuy", "Ramani", "Swamy", "Giri", "Parvin", "Shin", "Santhanam", "Hau", "Yi", "Mangat", "Ning", "Moo", "Di", "Soliman", "Kashif", "Byun", "Kin", "Ryu", "Mansuri", "Liaw", "Upadhyaya", "Suresh", "Kwan", "Gip", "Arya", "Zong", "Vangala", "Escano", "Ramroop", "Wu", "Oyama", "Gaddam", "Rhee", "Atluri", "Mondal", "Kudo", "Yiu", "Mo", "Saha", "Aslam", "Tsao", "Ganesan", "Rajesh", "Okumura", "Liao", "Parajuli", "Dhar", "Lardizabal", "Bak", "Salman", "Gan", "Hy", "Uyeno", "Khawaja", "Abellera", "Ramdass", "Iwata", "Wahab", "Koo", "Tsuchiya", "Finau", "Dawood", "Nigam", "Dey", "Ramnarine", "Nagaraj", "Dwivedi", "Darji", "Chowdhry", "Kolli", "Villamor", "Basdeo", "Chan", "Kem", "Mehrotra", "Asif", "Sayson", "Coloma", "Tom", "Afridi", "Mughal", "Alluri", "Okazaki", "Sanagustin", "Akter", "Htwe", "Trivedi", "Lum", "Fiesta", "Balingit", "Venkatachalam", "Sabado", "Loh", "Mazumder", "Dumlao", "Lad", "Rin", "Magno", "Samra", "Gopal", "Gandhi", "Rizvi", "Pin", "Nadeem", "Devilla", "Narra", "Khiev", "Suan", "Nandi", "Rasool", "Sangha", "Sam", "Budhu", "Solanki", "Hoang", "Estacio", "Saechao", "Murugan", "Devi", "Paras", "Viado", "Rajput", "Nishida", "Ra", "Hun", "Quang", "Baik", "Venkataraman", "Gunawan", "Raghunathan", "Khun", "Sahota", "Nie", "Khuc", "Dholakia", "Tak", "Irani", "Em", "Widjaja", "Heo", "Ros", "Swaminathan", "Bagchi", "Saetern", "Adriano", "Reh", "Malhi", "Goya", "Bhuiyan", "Arciaga", "Uppal", "Tajima", "Sharma", "Kong", "Hoque", "Prajapati", "Antony", "Agbayani", "Salahuddin", "Kagawa", "Mey", "Murtaza", "Maglalang", "Eun", "Hak", "Viray", "Chay", "Masood", "Yambao", "Manalang", "Manaois", "Villaluz", "Pokhrel", "Uy", "Vuong", "Srinivas", "Delmundo", "Dung", "Albano", "Tummala", "Aguinaldo", "Jeung", "Aurelio", "Joshi", "Singh", "Rath", "Inaba", "Kadam", "Tokunaga", "Pyon", "Altaf", "Kaushal", "Xue", "Palaniappan", "Heng", "Bhattacharyya", "Braganza", "Khang", "Kadiyala", "Abadilla", "Goswami", "Tan", "Galang", "Khuong", "Chak", "Sananikone", "Bhaskar", "Awasthi", "Jue", "Varghese", "Majid", "Phong", "Khurana", "Oh", "Tong", "Taufa", "Yamane", "Li", "Ahmad", "Chavan", "Moorthy", "Krishnan", "Nagata", "Gao", "Nair", "Sabir", "Khokhar", "Vakil", "Talwar", "Eh", "Kurian", "Parmar", "Mahmud", "Ichikawa", "Nisar", "Cuaresma", "Modi", "Bay", "Lahiri", "Imamura", "Shi", "Don", "Tominaga", "Azim", "Pak", "Kaushik", "Guinto", "So", "Kwon", "Mon", "Lac", "Sandiego", "Yano", "Nimmagadda", "Thakore", "Hahm", "Lukose", "Pon", "Giang", "Bahadur", "Jiao", "Shen", "Nham", "Floresca", "Ramnath", "Soeun", "Un", "Nakahara", "Bhatt", "Doshi", "Fu", "Dayao", "Yoshino", "Inoue", "Lagmay", "Hegde", "Lai", "Heu", "Thu", "Ghai", "Xie", "Maheshwari", "Lao", "Dorjee", "Virk", "Luan", "Bajwa", "Mathew", "Varma", "Sarker", "Nasir", "Lin", "Sivakumar", "Athwal", "Zeng", "Delrosario", "Jung", "Gulati", "Ramakrishnan", "Nou", "Thammavong", "Marwaha", "Hira", "Nagamine", "Kono", "Zuo", "Kue", "Hue", "Pepito", "Keung", "Jayaram", "Miura", "Izumi", "Ang", "Uehara", "Hironaka", "Sou", "Sridhar", "Kan", "Guha", "Shareef", "Eng", "Dubey", "Vy", "Seo", "Bhardwaj", "Jing", "Sethuraman", "Ayub", "Sun", "Ilagan", "Pae", "Gautam", "Younus", "Kaur", "Chalasani", "Qui", "Mung", "Makino", "Nan", "Gajjar", "Tsoi", "Talluri", "Hou", "Rastogi", "Gu", "Wahid", "Chauhan", "Loc", "Konda", "Fukushima", "Yom", "Multani", "Vong", "Akther", "Lwin", "Nop", "Fei", "Mallick", "Palanisamy", "Macaspac", "Ara", "Okano", "Apostol", "Dalal", "Soung", "Bhagat", "Fronda", "Peng", "Ton", "Um", "Chou", "Hadi", "Sha", "Gopalan", "Narain", "Kuruvilla", "Manandhar", "Doi", "Kubota", "Rane", "Nong", "Liang", "Sajid", "Tzeng", "Jahan", "Chey", "Kamran", "Raval", "Miyata", "Garcha", "Mammen", "Demesa", "Dea", "Keomany", "Jia", "Sao", "Sunkara", "Florendo", "Arai", "Yong", "Koga", "Taing", "Dimaano", "Ahuja", "Rawat", "Khurshid", "Nam", "Sur", "Xiong", "Shroff", "Sibayan", "Marinas", "Qin", "Nuon", "Ullah", "Mandava", "Ojha", "Lor", "Pangilinan", "Shan", "Gopalakrishnan", "Bindra", "Bin", "Whang", "Ling", "Alo", "Lach", "Senthil", "Uemura", "Dai", "Mangubat", "Waheed", "Alegado", "Mohanty", "Contractor", "Chum", "Kassam", "Sen", "Tamang", "Kitamura", "Sar", "Nagao", "Mach", "Cao", "Grewal", "Tio", "Belen", "Chhin", "Akiyama", "Sok", "Naveed", "Hasan", "Kamat", "Yadav", "Oishi", "Toh", "Nocon", "Piao", "Parameswaran", "Zhong", "Cui", "Shimada", "Gurung", "Kyaw", "Hari", "Dou", "Paguio", "Sana", "Ying", "Hamasaki", "Luong", "Lising", "Mehra", "Nazareno", "Layug", "Woo", "Oum", "Babauta", "Banga", "Rauf", "Arain", "Carandang", "Banerjee", "Oshima", "Lee", "Atwal", "Shue", "Bui", "Dieu", "Duan", "Deguia", "Takai", "Oei", "Baccam", "Murai", "Pawar", "Choi", "Tien", "Gokhale", "Lovan", "Shon", "Jayakumar", "Lat", "Mukhtar", "Upadhyay", "Hang", "Gaerlan", "Hsu", "Aman", "Sek", "Datta", "Awan", "Razvi", "Saephanh", "Usman", "Kamath", "Chatha", "Anjum", "Paracha", "Chiem", "Khim", "Krishnaswamy", "Akhter", "Thiara", "Ung", "Seid", "Pham", "Agarwal", "Sieng", "Deasis", "Morikawa", "Truong", "Jariwala", "Dee", "Kano", "Doung", "Sood", "Madriaga", "Huynh", "Dhawan", "Bibi", "Kawasaki", "Saravanan", "Sarma", "Cong", "Papa", "Noorani", "Baskaran", "Ranjan", "Gohil", "Chandrasekaran", "Ok", "Thor", "Agrawal", "Matsunaga", "Iwasaki", "Fonua", "Pua", "Lall", "Lacson", "Verghese", "Do", "Kelkar", "Abella", "Dhakal", "Pathak", "Zaheer", "Tian", "Sugihara", "Bandaru", "Mahadeo", "Dah", "Hafiz", "Fatima", "Trias", "Nambiar", "Manabat", "Uchiyama", "Hirai", "Bien", "Taw", "Pan", "Dasgupta", "Bakshi", "Kawaguchi", "Geng", "Madhavan", "Sangalang", "Sahu", "Vitug", "Miyake", "Yogi", "Sekhon", "Suen", "Susanto", "Samad", "Dan", "Ban", "Dosanjh", "Chakravarty", "Sonoda", "Ty", "Gaw", "Samaroo", "Taguchi", "Manda", "Chopra", "Ouk", "Liwag", "Pe", "Tsering", "Salonga", "Punzalan", "Chung", "Asghar", "Kulkarni", "Fukuhara", "Subramani", "Umali", "Majmudar", "Bal", "Hameed", "Nakama", "Sumida", "Casino", "Sin", "Yamazaki", "Zaveri", "Khera", "Engineer", "Arif", "Thiagarajan", "Malla", "Madayag", "Gim", "Gunda", "Ohashi", "Cabreros", "Sein", "Srinivasan", "Cham", "Fukumoto", "Gul", "Ooi", "Guanzon", "Goll", "Sah", "Kimoto", "Paek", "Mak", "Alam", "Naidoo", "Toves", "Beg", "Shiau", "Prom", "Jivani", "Tupou", "Phang", "Ro", "Arumugam", "Tsukamoto", "Tangonan", "Poblete", "Parvez", "Kalsi", "Kuriakose", "Gilani", "Menor", "Wadhwa", "Tran", "Pant", "Joo", "Shiu", "Hsia", "Tra", "Yamamoto", "Begum", "Durrant", "Gin", "Meng", "Zaw", "Majeed", "Jun", "Sheth", "Chanthavong", "Chowdhary", "Rajani", "Hussain", "Javed", "Shek", "Manansala", "Gade", "Say", "Dhami", "Kharel", "Saxena", "Imam", "Neang", "Deocampo", "Bastola", "Walia", "Ding", "Roeun", "Aulakh", "Rahaman", "Meh", "Morioka", "Kurihara", "Tse", "Her", "Po", "Govindarajan", "Bian", "Pradhan", "Thaker", "Kota", "Tsang", "Reddy", "Cayanan", "Faisal", "Santoso", "Leu", "Wong", "Joson", "Khaira", "Tha", "Mahtani", "Jeon", "Bacani", "Choudhary", "Ye", "Phanthavong", "Samonte", "Hussaini", "Bhandal", "Bhimani", "Shimamoto", "Cachola", "Khatri", "Chu", "Pajarillo", "Nozaki", "Suon", "Ky", "Siharath", "Bhattacharya", "Tuazon", "Naqvi", "Liwanag", "Sato", "Chae", "Chia", "Nagar", "Oshita", "Mohiuddin", "Chandran", "Sayarath", "Barretto", "Or", "Tau", "Kawahara", "Cheema", "Rao", "Zhen", "Thong", "Bains", "Sohal", "Karthik", "Rampersaud", "Chhor", "Poon", "Bamba", "Kau", "Bai", "Ghimire", "Chandy", "Lamba", "Ahn", "Nag", "Khwaja", "Che", "Ho", "Debnath", "Tun", "Wo", "Nagai", "Matsubara", "Qiu", "Pen", "Hirayama", "Kinoshita", "Deo", "Shimoda", "Takeda", "Tsay", "Vaz", "Khanam", "Onishi", "Yau", "Lue", "Brahmbhatt", "Mao", "Cadiente", "Bala", "Satish", "Pich", "Tep", "Furukawa", "Pacis", "Baby", "Aryal", "Kodama", "Oza", "Shakoor", "Kathuria", "Diep", "Lok", "Be", "Mirchandani", "Barroga", "Batac", "Choudry", "Chhun", "Tu", "Xu", "Tashiro", "Subba", "Tokuda", "Dao", "Rajaram", "Sheng", "Kumagai", "Chheng", "Dharia", "Xing", "Banh", "Seng", "Ishihara", "Vijayakumar", "Gohel", "Takayama", "Mathai", "Jagannathan", "Sayeed", "Tandon", "Muraoka", "Shibuya", "Paragas", "Kanda", "Lim", "Murali", "Nahar", "Bhattarai", "Saini", "Esguerra", "Yasuda", "Zacharias", "Banzon", "Zhu", "Hsueh", "Mohsin", "Chau", "Ninan", "Rafanan", "Ahmed", "Ramanathan", "Rajendran", "Bondoc", "Manohar", "Tsui", "Trieu", "Bartolome", "Abid", "Choo", "Kai", "Jao", "Takata", "Jonnalagadda", "Qazi", "Yarlagadda", "Somani", "Bhattacharjee", "Dahal", "Saeteurn", "Yoo", "Yousuf", "Srivastava", "Chidambaram", "Juneja", "Vallabhaneni", "Rimando", "Shakya", "Chandrasekhar", "Yuson", "Mansoor", "Doh", "Mang", "Deol", "Datu", "Mahesh", "Troung", "Imtiaz", "Eapen", "Jhaveri", "Canlas", "Pei", "Ha", "Baba", "Mumtaz", "Choung", "Deshpande", "Takagi", "Vo", "Padmanabhan", "Pyun", "Tram", "Shinde", "Shaheen", "Soni", "Phi", "Gatchalian", "Pau", "Mun", "Araneta", "Nazir", "Bari", "Umar", "Huh", "Ranganathan", "Hlaing", "Hyder", "Sheen", "Ganesh", "Yoshihara", "Balagot", "Sakata", "Calimlim", "Iyer", "Anand", "Tae", "Hayat", "Cheng", "Hattori", "Roxas", "Cen", "Chhay", "Sundaram", "Sem", "Advani", "Magat", "Srikanth", "Vien", "Rani", "Amar", "Dayrit", "Naeem", "Zafar", "Takashima", "Hew", "Nguy", "Lomibao", "Sano", "Sit", "Venkateswaran", "Kolla", "Ishibashi", "Krishnamurthy", "Dhaliwal", "Mua", "Leano", "Thota", "Sodhi", "Diao", "Srey", "Dogra", "Sallee", "Dua", "Dutt", "Sawhney", "Tseng", "Lau", "Kataoka", "Hyun", "Bali", "Singson", "Shao", "Hoshino", "Maredia", "Ahamed", "Seong", "Miyasaki", "Au", "Dacanay", "Eom", "Teh", "Querubin", "Zapanta", "Tim", "Dong", "Tiongson", "Eang", "Maranan", "Chohan", "Bee", "Fung", "Nicdao", "Memon", "Luangrath", "Muralidharan", "Cheon", "Vi", "Cherian", "Rizwan", "Ishida", "Dimalanta", "Vu", "Waseem", "Murata", "Zaidi", "Majumdar", "Kuo", "Parthasarathy", "Higuchi", "Chow", "Pillay", "Ueda", "Nanda", "Khong", "Huo", "Ju", "Vang", "Sagun", "Deen", "Hasnain", "Mu", "Azhar", "Khem", "Husain", "Vyas", "Kahlon", "Duong", "Gui", "Vinluan", "Raza", "Syed", "Narula", "Pasha", "Sundara", "Zaman", "Chowdhury", "Hata", "Ahsan", "Vij", "Ko", "Khatun", "Chin", "Raja", "Arakawa", "Ozawa", "Rabanal", "Sundar", "Thein", "Tayag", "Krishnamoorthy", "Tripathy", "Rathi", "Bhavsar", "Shrestha", "Bhat", "Gogineni", "Krishnakumar", "Shrivastava", "Som", "Bhakta", "Acob", "Suleman", "Golla", "Tabassum", "Pandya", "Sabio", "Marasigan", "Paruchuri", "Patel", "Vora", "Jain", "Nhem", "Rodrigo", "Yan", "Baig", "Bajaj", "Wen", "Cacal", "Phu", "Murtha", "Shieh", "Tagawa", "Sia", "Vea", "Matsushita", "Basu", "Azam", "Jo", "Hayashida", "Fabro", "Resurreccion", "Lacsamana", "Sum", "Chakrabarti", "Chhan", "Yoshimura", "Huie", "Yadao", "Mukherjee", "Pai", "Tahir", "Pande", "Koike", "Mishra", "Rupani", "Hirota", "Kung", "Sohn", "Nagra", "Feng", "Imai", "Sung", "Minami", "Chew", "Mia", "Haque", "Respicio", "Pung", "Prak", "Venkatraman", "Maruyama", "Tay", "Dutta", "Trac", "Siddique", "Yeung", "Malladi", "Babar", "Kubo", "Wadhwani", "Baluyot", "Naz", "Zachariah", "Tanimoto", "Svay", "Sami", "San", "Fukui", "Bhargava", "Arora", "Komatsu", "Dhanoa", "Canete", "Patankar", "Lacap", "Prabhakar", "Katragadda", "Boado", "Ravichandran", "Camba", "Chieng", "Uchida", "Manibusan", "Tsung", "Nghiem", "Venkatesh", "Cheong", "Jocson", "Janjua", "Luo", "Johal", "Antolin", "Alli", "Tamanaha", "Xin", "Xuan", "Cing", "Tiet", "Phuong", "Munar", "Kawano", "Lugtu", "Ramamurthy", "Sanghavi", "Calica", "Quach", "Ramachandran", "Staana", "Kumari", "Persaud", "Aye", "Sibal", "Bandyopadhyay", "Cu", "Sukhu", "Surapaneni", "Ahluwalia", "Bu", "Perveen", "Eum", "Shyu", "Lu", "Liv", "Khoo", "Hsi", "Verma", "Nakajima", "Nang", "Tieu", "Joh", "Zhuo", "Mikami", "Misra", "Khoja", "Jamal", "Pandian", "Virani", "Karki", "Lem", "Dau", "Raghavan", "Nabi", "Him", "Yee", "Okawa", "Myint", "Kalia", "Pha", "Deguzman", "Munir"] + } + + +inter_racial_names = {"last_names": ["Tinker", "Pal", "Sultan", "Kamaka", "Lal", "Inouye", "Azizi", "Shaikh", "Oda", "Popal", "Sablan", "Harjo", "Saleem", "Akbar", "Ahuna", "Ishii", "Hodson", "Aoki", "Ishikawa", "Khalil", "Khalid", "Chee", "Kam", "Shih", "Ono", "Nitta", "Gouveia", "Khanna", "Dizon", "Lui", "Mirza", "Mori", "Suzuki", "Desilva", "Butt", "Loo", "Murakami", "Turney", "Hasegawa", "Higashi", "Cordeiro", "Taitano", "Baptista", "Abbasi", "Anwar", "Raj", "Gong", "Rapoza", "Issa", "Ikeda", "Neves", "Billiot", "Maeda", "Habib", "Pascua", "Fujii", "Coelho", "Aziz", "Mahmoud", "Wan", "Endo", "Aguon", "Cambra", "Moniz", "Matsuda", "Ting", "Mohammadi", "Hosseini", "Texeira", "Kakar", "Saeed", "Nazari", "Abdul", "Decosta", "Chai", "Barakat", "Goo", "Yamashita", "Scanlan", "Nobriga", "Tamura", "Morimoto", "Hashimi", "Chaudhry", "Kimura", "Mohan", "Karimi", "Hom", "Honda", "Ansari", "Perreira", "Choy", "Haider", "Kawakami", "Ming", "Quan", "Kawamura", "Shim", "Tung", "Iqbal", "Leeper", "Aki", "Yen", "Shimizu", "Hamidi", "Mahabir", "Matsumoto", "Nishimura", "Mansour", "Mohammad", "Tiger", "Sultani", "Xavier", "Hamid", "Go", "Nakagawa", "Chock", "Dsouza", "Mau", "Viernes", "Sing", "Abe", "Yim", "Corpuz", "Azimi", "Mendonca", "Hakim", "Sakamoto", "Apo", "Mahmood", "Akiona", "Lyn", "Takeuchi", "Kato", "Chandra", "Sison", "Wardak", "Hanohano", "Mossman", "Miyamoto", "Sasaki", "Devera", "Kobayashi", "Delima", "Ogata", "Hirata", "Ogawa", "Manalo", "Rahimi", "Hamada", "Ancheta", "Yousif", "Yamasaki", "Ku", "Min", "Ota", "Jardine", "Hashimoto", "Sannicolas", "Ram", "Amini", "Toma", "Nakamoto", "Jaber", "Higa", "Noori", "Seto", "Nomura", "Baldridge", "Youssef", "Ito", "Prakash", "Akana", "Morita", "Miyashiro", "Hsieh", "Persad", "Rampersad", "Nakata", "Uddin", "Habibi", "Akbari", "Abdallah", "Leonguerrero", "Furtado", "Ramkissoon", "Fujimoto", "Qureshi", "Yoshida", "Rahim", "Akina", "Sadeghi", "Ornellas", "Kamai", "Kaneshiro", "Kealoha", "Toy", "Taniguchi", "Gragg", "Hosein", "Sayed", "Degroat", "Zamani", "Yamada", "Hamdan", "Masuda", "Thach", "Ahmadi", "Abdulla", "Narayan", "Sylva", "Arakaki", "Rahmani", "Maharaj", "Yeh", "Suleiman", "Mclellan", "Botelho", "Awad", "Takahashi", "Demello", "Okada", "Chilton", "Saad", "Okamoto", "Kawamoto", "Mah", "Sharifi", "Kao", "Fukuda", "Kalama", "Bhatti", "Afshar", "Hazard", "Khoury", "Akau", "Uyeda", "Hara", "Hee", "Nakano", "Yip", "Abbas", "Tehrani", "Pangelinan", "Rai", "Salehi", "Nasser", "Sakai", "Nishimoto", "Vandunk", "Hayashi", "Hakimi", "Yap", "Amiri", "Shimabukuro", "Cravens", "Paiva", "Kapoor", "Nakashima", "Okamura", "Watanabe", "Chand", "Safi", "Hashemi", "Tai", "Siu", "Harada", "Baksh", "Oshiro", "Yamaguchi", "Mayle"]} + + +religion_wise_names = { +"Muslim": [ + "Adyan", + "Kasib", + "Sadiqah ", + "Samit", + "Husam", + "Abdul Qadir", + "Gulfam", + "Rashdan", + " Rasheeda ", + "Mulayl", + " Hussein", + "Sayfiyy", + "Faheem", + "Jawharah ", + "Sageda ", + "Nusayr", + "Nisha ", + "Iqra ", + "Marnia ", + " Ubaydah", + "Nazim", + "Ziram ", + "Sahibah ", + "Najm al Din", + "Majdy", + "Mahrus", + "Nimr", + "Talib", + "Shuhda ", + "Mubin", + "Nasih", + "Sakinah", + "Jameelah ", + "Rubadah ", + " Ala al din", + "Khidr", + "Adl", + "Norhan ", + " Rufaydah ", + "Sahrish ", + "Abdul Mueed", + "Shabeeh", + "Isaf ", + " Sayf", + "Amatullah ", + "Nisrin ", + "Fazzilet ", + "Nazirah ", + "Bakht ", + "Taqwa", + "Abdul Noor", + "Shahnoor ", + "Fadwah ", + "Ali", + "Mohid", + "Mikhail", + "Abdus Sami", + "Salam", + "Muazah ", + "Abdul Samad", + "Alzubra ", + "Waseem", + " Lulwa ", + "Abdul-Malik", + "Mahir", + "Abdul Jabbar", + "Shabaan", + "Rafah ", + " Khayriyyah", + "Fahimah ", + "Muqatadir", + "Rafeek", + "Furayah ", + "Wahibah ", + "Zaigham", + "Abdus Sattar", + "Amin", + "Rabi", + "Sumlina ", + "Hanifa ", + "Kishwar", + " Intisaar ", + "Azlan", + "Ibtihal ", + "Muneerah ", + " Fareeq", + "Aqil", + "Azra ", + "Aman ", + "Murshidah ", + "Zulekha ", + "Shuaib", + "Jasim", + "Zulfiqar", + "Nuri", + "Abdul Aliyy", + "Fadilah ", + "Ambreen ", + "Ruhi", + "Karimah ", + "Suheb", + "Ayah", + "Abdul-Ghafur", + "Thamer", + "Mariyah ", + "Abdul-Jabbar", + "Mandhur", + "Abdul-Barr", + "Mashhur", + "Muhsin", + "Mundhir", + "Saib", + " Jumaana ", + "Aasim", + "Abdul-Mueid", + "Robeel", + "Parveen ", + "Naveen ", + "Jabalah", + "Mukarram", + "Anwaar", + "Shumaylah ", + "Dhiya", + "Sad al Din", + "Istakhri", + "Aryisha ", + "Faizah", + "Sameenah ", + "Sahmir", + "Armaan", + "Khirash", + "Fayruz ", + "Abdul-Waajid", + "Aludra ", + "Nashmia ", + "Lamya", + "Aabirah ", + "Qudamah", + "Zumzum ", + "Humayl", + "Umayr", + "Inam", + "Barkat", + "Rahiq ", + "Tanweer ", + "Abdul-Muqtadir", + "Sumara ", + "Mahirah ", + "Kaseem", + "Habis", + "Sultanah ", + "Ahzab", + "Tulayhah ", + "Jazib", + " Taalah ", + "Hibah ", + "Shaheer", + "Husain", + " Yaseen", + "Muruj ", + "Makki", + " Anaan ", + "Abdul Wahhab", + "Banafsha ", + "Tazmeen ", + "Zaynah", + " Raneem ", + "Taymullah", + "Muneer", + "Zahra ", + "Hayaat", + "Mahdi", + "Azizah ", + " Hasna", + "Hakim", + "Azka ", + "Nadirah ", + " Nawwaf", + "Gulzar", + "Rubaba ", + "Munkadir", + "Dunya ", + "Adbul-Qawi", + "Usaimah", + "Saleemah ", + "Burhan", + "Aasimah ", + " Nasser", + "Zaytoon ", + "Wajeeh", + "Aftab", + "Limazah", + "Wadiah ", + "Asbat", + "Tarannum", + "Chaman ", + "Iffah ", + "Balqis ", + "Wahbiyah ", + "Rayyan", + "Wifaq ", + "Maheen", + "Baqir", + "Wafa", + " Farraj", + " Khadeeja ", + "Abdul-Haseeb", + "Munqad", + "Quadir", + "Ayman", + "Zaeem", + "Ilias", + "Mujab", + " Nudhar ", + "Saima ", + "Shumaila ", + "Dakhil", + "Wahidah ", + "Kardawiyah ", + "Jamal al Din", + "Aidh", + "Gul-e-Rana ", + " Faiza ", + "Mufid", + "Abdul Badee", + " Ghayth", + "Hooman", + "Mawiyah", + "Abdul Waali", + "Mariam", + "Maridah ", + "Samiyah", + "Arwa ", + "Abeer ", + "Hadeeqah ", + "Nur-ul-Qiblatayn", + "Hibba ", + "Shabah", + " Nur ", + " Waseem", + "Kamilah ", + "Sameeha ", + "Bakr", + "Soraiya ", + "Naim", + "Uhud ", + "Noman", + "Mirsab", + "Mujahid", + "Thauban", + "Shillan ", + "Najjar", + " Hasna ", + "Summar ", + "Nabil", + "Mubeenah ", + "Urooj", + " Hikmat ", + "Mehjabeen ", + "Fadi", + "Jun ", + "Mohsin", + "Athil", + "Ghaziyah ", + "Amirah ", + " Shafeeq", + "Marghub", + "Nageenah ", + "Khulayd", + "Jabr", + "Izz", + "Khatib", + "Majd", + "Mika", + "Lamya ", + "Tariqah ", + "Nasirah ", + " Nashat", + "Risay", + "Fajaruddin", + "Hanai", + "Haneef", + "Shabbeer", + "Abeedah ", + "Ishfaq ", + "Juma", + "Lutf", + "Amreen ", + "Nasifah ", + "Bilqis", + "Zayba ", + "Basel", + "Zaytoonah ", + "Zaahirah ", + "Hashim", + "Mummar", + "Senait ", + "Ismat ", + "Fanan ", + " Safiya ", + "Qindeel ", + "Hanfa ", + "Sultaan", + "Hayud ", + " Taahira ", + "Bahia ", + " Manaal ", + "Hadiyah", + "Shahnaaz ", + "Sumra ", + "Iskandar", + "Farqad ", + "Wafiyah ", + " Shareefa", + "Ammar", + "Nimah ", + "Reem ", + " Khairiya ", + "Fusaylah ", + "Waddah", + "Kadar", + "Intizar", + "Anisa ", + "Faria ", + "Naina ", + "Junnut ", + "Samira ", + "Wardah", + "Manzoor", + "Ruqayyah", + "Naira ", + "Safuh", + "Mulham", + "Zahid", + "Murtada", + "Zuti", + " Najaah ", + "Salsabil", + "Mays", + "Tahseenah ", + "Mutahharah ", + "Mardhiah ", + "Nisa ", + "Sahirah ", + "Areeb", + "Abdul Mujeeb", + " Aida ", + " Najeeba ", + " Manaar ", + "Qameer ", + "Rijja ", + "Hamidah ", + "Zaynah ", + "Jahdari", + "Amrah ", + "Mihran", + "Yamha ", + "Nasra ", + "Faridah ", + "Tahir", + "Haniyyah", + "Almir", + "Najm", + "Arissa ", + "Zumurruda ", + "Nawwar ", + "Qutb", + "Ali ", + "Sulafah ", + "Karam ", + "Qani", + "Munahid", + "Shafiq", + "Mehndi ", + "Muslimah ", + "Shakir", + "Ghazanfar", + "Haniya ", + "Nimat", + "Hibatullah ", + "Ajer", + "Nafi", + "Isa ", + "Shahrazad ", + "Ibrahim", + "Shamsheer", + "Zuhur ", + "Nawlah ", + "Abzari", + "Adeem", + " Irfan", + "Wazeera ", + "Ghaniyah ", + " Rayyaa ", + "Jada ", + "Numan", + "Jasrah ", + "Samihah", + "Abdush Shahid", + "Nizam", + "Aroosa ", + "Shakeelah ", + "Subhaan ", + " Fawza ", + "Awatif ", + "Shaheenah ", + "Muniba ", + "Sakina ", + "Alim", + "Faheemah ", + "Yasmin ", + "Zunairah ", + "Rahat", + "Lublubah ", + " Mohammed", + "Abdul Rahim", + "Abdul-Hakeem", + "Tabalah ", + "Taqiy", + "Nura ", + "Tasneem ", + "Jamila ", + "Hunaidah", + "Abdul Qawi", + "Kanza ", + "Iqbal", + "Mahdiya ", + "Luluah", + "Saila ", + "Nabigh", + "Hujjat", + "Aminah", + "Salah al Din", + "Haifa ", + "Simra ", + "Karida ", + "Badia ", + " Shaymaa ", + "Qirat ", + "Nashirah ", + "Iba ", + " Ruqayya ", + "Zahra", + "Abdul Kareem", + " Iffat ", + "Abdul Wali", + "Malik", + "Thalabah", + "Imam", + "Mikaeel", + "Naba ", + " Raawiya ", + "Yunus", + "Mehr ", + "Wagma ", + "Safwah", + "Anbar ", + "Mawaddah ", + "Ruhee ", + "Abdul Haseeb", + "Jabrayah ", + "Athazaz", + "Sabiha ", + "Shairyaar", + "Thawab ", + "Zulfa ", + "Salman", + "Aliyah ", + "Mateen", + "Khazanah ", + " Thanaa ", + "Shamailah ", + "Aleena ", + "Seema", + "Ashalina ", + "Hirah ", + "Humaira ", + "Zaid", + "Sukainah", + "Zubdah ", + "Maysa ", + "Tanwir", + "Rizwan", + "Fatik", + "Ghufayrah ", + "Asim", + "Faiz", + "Abdul Qahhar", + "Muafa", + "Jalilah ", + "Jafar", + "Fir ", + "Kaltham ", + "Ishaq", + "Zahir", + "Nawrah ", + "Masarrah ", + "Abdul Muti", + "Qabalah ", + "Ghareebah ", + "Nasmi", + "Mishall ", + "Sammar ", + "Asiya ", + "Abdul Tawwab", + "Aymen ", + " Ziyad", + " Atiya ", + "Sairah", + " Kameel", + "Sabrina ", + "Shama ", + "Mustaeenah ", + "Rahila ", + "Sabahat", + "Sakhr", + "Qubilah ", + "Saleh", + "Aatirah ", + "Liba ", + "Hayat ", + "Mutawalli", + " Junayd", + "Shahbaz", + "Shahida ", + "Madaniyah ", + " Rida", + " Badriya ", + "Udaysah ", + "Fasahat", + "Deema ", + "Lulu ", + "Salsaal", + "Nazmin ", + "Sadan", + " Jaleel", + "Naushad", + "Ziya ", + "Ithaar", + "Aneesa ", + "Zenia ", + "Abdul Adl", + "Mustahsan", + "Mustafa", + "Sameen ", + "Raquib", + "Ajmal", + "Hawa", + "Raid", + "Hameeda ", + "Hurya ", + "Kaheesha ", + "Adeelah ", + "Razia ", + "Pervaiz", + " Joozher", + " Atifa ", + " Saleem", + "Mulhim", + "Zafar", + "Rafay", + "Kamran", + "Zaeemah ", + "Hibbah ", + "Mutasim", + "Sabeen ", + "Ghanim", + "Khitam ", + "Ehsan", + "Abdul Hafiz", + "Mazhar", + " Raja ", + "Mubid", + "Faiq", + "Liban", + "Koila ", + " Sherrifah ", + "Walladah ", + "Basir", + "Talhah", + "Abdul Baqi", + "Ghayda ", + "Amah ", + "Shuja", + "Shakila ", + "Tamim", + "Rafid", + "Samaira ", + "Sarwat ", + "Hashmat", + "Nur al Din", + " Safwat", + "Saaqib", + " Leila ", + " Muneera ", + "Rifaat ", + "Muzhir", + "Shamsa ", + "Tahirah", + "Meher ", + "Saadat", + "Hawazin ", + "Shajarah ", + "Sabina ", + "Tihami", + "Faiqa ", + "Hamzah", + "Taslim", + "Hijrah ", + "Layla", + "Muizz", + "Tahoor", + "Abia ", + "Nashida ", + "Thabitah ", + "Yusuf", + "Rahma ", + "Mubassirah ", + " Ayeh ", + " Yusraa ", + "Izz al Din", + " Kareem", + "Zarrah ", + " Lubayd", + "Qasid", + " Usaym", + "Meymona ", + "Rafiah ", + "Yaqeen", + "Lanika ", + "Afifah ", + "Juwan ", + "Ruwaid", + "Subhan", + "Eimaan ", + "Mehtab", + "Khalil", + "Dina ", + " Zubayr", + "Ahsan", + "Birrah ", + "Fozia ", + "Shellah ", + "Mubarakah ", + " Faysal", + " Hakeem", + "Sami", + "Fellah ", + "Museeb", + "Saji", + " Suhayb", + "Akifah ", + "Linah", + "Rushd", + "Abdul Wahid", + " Labeeb", + "Mayyasah ", + "Safa ", + "Shabina ", + "Siddra ", + "Abdul Ghafoor", + "Ghalibah ", + "Ma as-sama ", + "Talha", + "Qais", + "Ghumaysa ", + "Tawhid", + "Tuqa", + "Maimun", + "Aribah ", + "Nafis", + "Rasin", + "Shehr bano ", + "Wakeel", + "Mushir", + " Nadwa ", + "Nabiha ", + "Abdul Jabaar", + "Parvez", + "Zulfaqar", + "Sunya ", + "Nahal ", + "Futun ", + "Ziyad", + " Shuayb", + "Anniyah ", + "Shahirah ", + "Waqas", + "Masoomah ", + "Shareen ", + "Matloob", + "Qatadah", + "Haydar", + "Eiliyah ", + "Hazar ", + "Hayah ", + "Eshal ", + "Damurah", + "Amira ", + "Atiya ", + "Eiman ", + "Sabah ", + "Nusaybah ", + "Muntasir", + "Haifa", + "Shuhrah ", + " Zaafirah ", + " Sahla ", + "Shawaiz", + "Suad ", + "Tulayb", + "Khuzama ", + " Zayn", + "Tawbah ", + "Fahmi", + " Fatima ", + "Aafreeda ", + "Ihsan", + "Hira ", + " Amineh", + "Tumadur ", + "Abdul-Majeed", + "Heba ", + "Hannah ", + "Aymaan", + "Ijlal ", + "Daliyah ", + "Tabassum ", + "Mufallah", + "Taibah ", + "Faseeh", + "Abida ", + "Nuzhah ", + " Tubaa ", + " Wadhaa ", + "Kas ", + "Nasimah ", + "Masroor", + "Minha ", + " Juwayn", + "Muddaththir", + "Halwani", + "Tanveer", + "Yazid", + "Reeha ", + " Ghaydaa ", + "Unaysah ", + "Zeena ", + "Gulshan", + "Reyah ", + "Hallaj", + "Mahaz", + "Muzzammil", + "Najibah ", + "Nuhaid", + "Muhjah", + "Mushfiq", + "Rizqin ", + "Ruwaidah", + " Azzam", + "Aani Fatimah Khatoon ", + " Usamah", + "Nawaz", + "Ayaat ", + "Nizzar", + "Rajaa", + "Amirah", + "Nibal", + "Fakeehah ", + "Tawfiq", + "Aafreen ", + "Sauda", + "Sadaf ", + "Khalis", + "Youssef", + "Izzah (Izzat) ", + "Sakinah ", + "Wafiqah ", + "Aziman ", + "Leilah ", + " Nabeela ", + "Tufayl", + "Dawlat Khatoon ", + "Abdul-Haleem", + "Sakhawat", + "Mansur", + "Qadr ", + "Rukayat ", + " Suhaymah ", + "Bahirah", + "Aswad", + "Zarifah ", + "Ilm ", + "Muammar", + "Aya ", + "Maysarah ", + "Gazala ", + " Usaymah ", + "Nuha ", + "Noshaba ", + "Fairuzah ", + " Nojood ", + "Muyassar", + "Aqilah ", + "Zynah ", + "Ghawth", + "Akhdan", + "Dhakwan", + "Shahla ", + "Taima", + "Mihyar", + "Raheel", + "Fatimah ", + "Halimah ", + "Rasul", + "Azeeza ", + "Daania ", + " Haneefa ", + "Namyla ", + "Mashel ", + "Taqiyy", + "Faseehah ", + "Shafeeqah ", + "Waqqas", + "Farha ", + "Raghad or Raghda ", + "Subhi", + "Naifah ", + "Abdul-Ghani", + "Nabih", + "Fatinah ", + "Neelofer ", + "Marwah ", + "Humaydah ", + "Reda", + "Nejat ", + "Shakib", + "Nabeelah ", + "Fahad", + "Ghitbah ", + "Fakhri", + "Shumaysah ", + "Darakhshaan ", + "Sonia ", + "Hamal", + "Ridha", + "Deen", + "Amaar", + "Thubaytah ", + "Abdul Mubdi", + "Samra ", + "Hussein", + "Thumamah", + "Tamara ", + "Jumanah", + "Rafan", + "Fakih", + " Nuwayrah ", + "Rais", + "Fareeha ", + "Azim", + "Tamir", + "Nigar ", + " Zayn ", + " Noori", + "Shimah ", + "Akbar", + "Shujana ", + "Zulaym", + "Nazindah ", + "Shaila ", + "Shamilah ", + "Wali", + "Ghazi", + "Id", + "Shamas", + "Siddiq", + "Duaa ", + "Imani ", + "Juthamah", + "Abdul Latif", + "Rakin", + "Ilham ", + " Jala ", + "Khayriyah", + "Yaseen", + "Qurratul Ayn ", + "Zilal ", + "Abdul Muhaymin", + "Salsabil ", + "Nafiah ", + "Uzair", + "Yafi", + "Jumaymah ", + "Adab", + "Muqaddas", + "Fawzan", + "Obaid", + "Siwar", + " Haala ", + "Rihab", + "Taha", + "Farheen ", + "Nurah", + "Salah", + "Nabilah ", + " Ahmed", + "Farhan", + "Sayf", + "Munib", + "Ghanem", + "Baha", + "Hadil ", + "Hamdan", + " Riyadh", + "Nawar ", + "Hamnah ", + "Imtiaz", + "Lubna ", + "Sadiq", + "Abu Bakr", + "Zahraa ", + "Qutayyah ", + "Asar", + "Himayat", + "Hidayah ", + "Shabeehah ", + "Raihana ", + "Latifah", + "Talibah ", + "Mahbub", + " Ayoob", + "Hashir", + "Buhjah ", + "Bariah", + "Manahil ", + "Ayra ", + "Asma ", + "Radiyah", + "Hujaymah ", + "Walihah ", + "Abdul-Mujeeb", + "Kardal", + "Kadeen", + "Shariq", + "Attiq", + "Mouna ", + "Zainab ", + "Jian ", + "Nuaym", + "Tarub ", + "Dameer", + " Afeef", + "Munawar ", + "Warda ", + "Tali", + "Sidra ", + "Usman", + "Abdul Lateef", + " Ameena ", + "Luja ", + "Nadeem", + " Nabeeha ", + "Sahlah ", + "Anisah", + "Aishah ", + " Maymun", + "Abdul-Lateef", + "Angbin ", + "Makhtoonah ", + "Abdur Rashid", + "Hiba ", + "Suhayb", + "Fareedah ", + "Farihah", + "Jammana ", + "Muznah ", + "Dafiyah ", + "Shasmeen ", + "Raseem", + "Suhaim", + "Manar ", + " Nadeeda ", + "Dayyan", + "Rubaa ", + "Shakeel", + "Abdul Musawwir", + "Samia ", + "Samina ", + "Thuml ", + "Tufaylah ", + "Khidash", + "Shafqat", + "Faruq", + "Qurban", + " Nazaaha ", + "Adilah", + " Atif", + "Salma ", + "Surur", + "Jahdami", + "Safiy", + "Kulthum ", + "Farwah", + "Abbudin", + "Jahan Aara ", + "Aariz", + "Jennah ", + "Rumeha ", + "Shafiulla", + "Furat ", + "Aahil", + "Tayyibah ", + "Abdul Muiz", + "Zaheen ", + "Izzah ", + "Lubanah ", + "Shahd ", + "Barzah ", + "Aban", + " Abdel", + "Uwaisah", + "Ubayd", + "Abdul Ghafur", + "Khudrah ", + "Nasif", + "Barirah ", + "Nina ", + "Kabirah ", + "Afnan ", + "Sumayya", + "Jasmina ", + "Momina ", + " Ali", + "Maira ", + "Nijad", + "Mussaret ", + "Makarim", + "Amina ", + " Taym Allah", + "Zunnoon", + "Nazar", + " Kalil", + " Hunaydah ", + "Yar", + "Diya al Din", + "Numair", + "Summaya ", + "Lashirah ", + "Zia ", + "Nadyne ", + "Adiba ", + "Haseen", + "Masahir ", + "Rania ", + "Raameen ", + "Nasir al Din", + "Mahveen ", + "Kifayat", + "Leena ", + "Mutawassit", + "Sumaira", + "Abdul Matin", + "Faiza ", + "Nawel ", + "Utaybah ", + "Abdul-Qaiyoum", + "Anasah", + "Shariqah ", + " Fareeha ", + "Jahdamah ", + "Maisarah ", + "Najih", + "Muhafiz", + "Fadwa ", + "Rumailah", + "Laila ", + "Masabeeh ", + "Nahid", + "Nisreen ", + "Islam", + "Huda ", + "Abdus-Shaheed", + " Nazeeh", + "Mamun", + "Ayah ", + "Zahwah ", + "Safeer", + "Shamamah ", + "Minhaj", + "Wasfiyah ", + "Fouad", + "Vardah ", + "Murtaad", + " Sibaal ", + "Nailah", + "Mujazziz", + "Femida ", + "Faraj", + "Nashwan", + "Farihah ", + "Aybak", + "Asimah", + "Zuhayr", + "Hunaydah ", + " Adnan", + "Mamduh", + "Ziad", + "Ain ", + "Fadiyah ", + "Mumin", + "Shamima ", + "Fadl", + "Reza", + "Muflih", + "Zainab", + "Raha ", + "Hamidah", + "Hurmat", + "Adeena ", + " Awad", + "Ramih", + " Basheera ", + "Yusra ", + "Naji", + "Tahani ", + "Nasim", + "Abdul Maajid", + "Asmat ", + "Wala", + "Rashid", + " Imran", + "Dunyana ", + "Hudun ", + "Wadid", + "Rabeea ", + "Liyaqat", + "Salamat", + "Rowel", + "Waqar", + "Alleyah ", + "Abidin", + "Ajeebah ", + "Yaghnam", + "Naimah", + "Thawab", + "Nilofer ", + "Jabir", + "Anwar", + "Sayhan", + "Alishba ", + "Khalisah ", + "Ashfaq", + "Ashaz", + "Nazir", + "Adawi", + "Haleef", + "Safiyya ", + "Abdul Jawwad", + "Qareeb", + "Mahbeer", + "Salamah", + "Jahan Khatoon ", + "Muzakkir", + "Bahriyah al-Aabidah ", + "Mahabbah ", + " Sihaam ", + " Rafa ", + "Abdul Baasit", + "Athar", + "Ermina ", + "Abdul Hameed", + " Zaky", + "Zeba ", + "Murdiyyah ", + "Khulud", + "Shafath ", + "Ramiz", + "Afia ", + "Kawkab ", + "Sameh ", + "Safiy-Allah", + "Fattah", + "Afizah ", + "Bisar ", + "Dalal ", + "Maida ", + "Abdus-Salaam", + "Faqeeh", + " Zuzer", + "Najla ", + "Barir", + " Ameen", + "Bariah ", + " Mona ", + " Tharaa ", + "Romeesa ", + "Rabitah ", + "Saira ", + "Syed", + "Mawara ", + " Aadab ", + "Samiah ", + "Falisha ", + "Bakhtawar ", + "Raees", + "Tayyab", + "Naqeebah ", + "Shimaz ", + "Sabih", + "Fiddah ", + "Kunza ", + "Hidayat", + "Widad ", + "Muyassar ", + "Ghazwan", + "Sadad", + "Zerina ", + "Baha al Din", + "Abdul Nafi", + "Anjum ", + "Hayed ", + "Ghiyath", + "Mujeeb", + "Jahaan ", + "Diqrah ", + "Manhalah ", + "Nishat ", + "Hababah ", + "Munsif", + "Munirah", + "Farah ", + "Hawshab", + "Walif", + "Mehvesh ", + "Nashita Energetic", + "Nasrin ", + "Khallad", + "Ashika ", + "Safwah ", + "Yasmin", + "Sabiqah ", + "Abdul-Mutaalee", + "Aalee", + "Bakri", + " Hilel", + "Azeem", + "Basinah ", + "Kaysah ", + "Najeeb", + "Maysun ", + "Firdaus ", + "Harith", + "Manzar", + "Urfee", + "Saniyah ", + "Fareed", + "Muawwiz", + "Imtiyaz", + "Nawaf", + "Zonira ", + "Mustaeen", + "Umaynah ", + "Diyari", + "Siham ", + "Rafiq", + "Fuseelah ", + "Hajrah ", + "Kanzah ", + "Musaddiq", + "Zafeerah ", + "Faaz", + "Luban ", + "Madani", + "Suad", + "Amal", + "Shadab", + "Bahar ", + "Aniq", + "Maysa", + "Ajlah", + "Najidah ", + "Dildar", + "Afroze ", + " Ruwaydah ", + "Nahidah", + "Tanzeela ", + "Abdul Ghafaar", + "Jahm", + "Naveed", + "Saeed", + "Ateefa ", + "Hasinah ", + "Lamis", + "Sukaynah ", + "Tisha ", + "Aaban", + "Malih", + "Budail", + "Shaheen", + "Ghazawan", + "Hakem", + "Sheza ", + "Feroz", + "Sahir", + "Sohaib", + "Fahima ", + "Sayyidah ", + "ziyada ", + "Abdul Muhyi", + " Dhuha ", + "Khazin", + "Musheer", + "Arsalaan", + "Khadeeja ", + "Shuruq ", + "Habbab", + "Azad", + "Ruyah ", + "Muhair", + "Johara ", + "Shaheerah ", + "Kasam", + "Moemen", + "Asna ", + " Uwaysah ", + "Jiyad", + "Rami", + "Nashit", + "Juhainah", + "Ghunwah or Ghunyah ", + "Naazneen ", + "Munisah ", + "Mudar", + "Wisam", + "Sifet", + "Mehriban ", + "Jinan ", + "Nashah", + "Shudun ", + "Shawqi", + "Thawban", + "Farafisa", + "Mysha ", + " Zaina ", + "Areej ", + "Aaleyah ", + " Saamiya ", + "Tahiyah ", + "Sahib", + "Sarwari ", + "Kathirah ", + "karawan ", + "Sarah ", + "Thara ", + "Abdul Muqaddim", + "Fayha ", + " Hafsa ", + "Safwana ", + " Yasmeen ", + "Mamdouh", + "Nabighah", + "Masudah", + "Abdul Baseer", + "Hayam", + " Tareef", + "Iram ", + "Hibat Allah ", + "Mahasin ", + "Aminah ", + "Tasnim ", + "Shahana ", + "Safia ", + "Rasheed", + "Kamaliyah ", + "Suraiya ", + "Mudabbir", + "Yusayrah ", + "Zulaykha ", + "Kaashif", + "Shuayb", + "Saffar", + "Manfoosah ", + "Mehnaz ", + "Wasim", + "Najah", + "Rasheedah ", + "Yumna ", + "Fariha ", + "Mahek ", + "Shaistah ", + "Faseelah ", + "Qasif", + "Saida ", + "Makkiyah ", + "Muallim", + "Ambereen ", + "Umair", + "Waajidah ", + "Sumrah", + "Foziah ", + " Hanifa", + "Makhtooma ", + "Suwaybit", + "Usama", + "Aimen ", + "Dabir", + "Hameem", + "Badriyah", + " Aroob ", + "Sameya ", + "Shadha ", + "Naeema ", + " Alhusayn", + "Hayyan", + "Raahil", + "Abdul-Ghaffar", + "Tawseef", + "Zubair", + " Afraa ", + "Shiyam ", + "Junayd", + "Hafsah", + "Isha ", + "Thana", + "Rabee", + "Utbah", + "Aabidah ", + "Azraa ", + "Komal ", + "Kuhaylah ", + "Juman ", + "Yusur ", + "Fawzi", + "Abdul-Baasit", + "Mikayeel", + "Ateeqah ", + "Nudbah ", + "Cala ", + "Sabburah ", + "Abdus Samad", + " Sumayyah ", + "Musaykah ", + "Mushtaq", + "Tayyib", + "Thana ", + "Abdul Waliy", + "Abdul-Wahhab", + "Fatin or Fatinah ", + " Raniya ", + "Abdul-Baari", + "Akhtar", + "Iffah", + "Hasibah ", + "Falah", + "Jahfar", + "Tabish", + "Amna ", + "Qiyyama ", + "Mourad", + "Aaeedah ", + "Fikri", + "Sajjad", + "Abdul Bari", + "Mina ", + "Nagheen ", + "Fakhr", + " Sameeha ", + "Abdul Maalik", + "Hooria ", + "Hareem ", + "Fayd", + " Nazeera ", + "Manab ", + "Ramzia ", + "Bisma ", + "Haniyah ", + "Mukarram ", + " Leena ", + "Iqrit", + "Bayan ", + "Thuwaibah", + "Umamah ", + "Sofia ", + "Suhaib", + "Talat", + "Humd", + "Khalilah ", + "Alina ", + "Lubaid", + "Nubaid", + "Anan", + "Jaraah", + "Nibras", + "Abdus-Samad", + "Tamadur ", + "Shanaz ", + "Radwa", + " Warqaa ", + " Ghaada ", + "Zuhayra ", + "Fawwaz", + "Nazmi", + "Jaun", + "Aziz", + "Abdul Mumin", + "Erum ", + "Ikram ", + "Manha ", + "Hud", + "Abdul Salam", + "Abdul Muqtadir", + "Shakurah ", + "Asiya", + "Mehwish ", + "Rubina ", + "Noreen ", + " Naila ", + "Ziyan ", + " Kareema ", + "Seemeen ", + "Khalid", + "Arya ", + "Fikriyah ", + "Ikrimah", + "Abdul Rafi", + "Nazahah ", + "Rawdah", + "Naib", + "Wajihah ", + "Alaia ", + "Latifa ", + "Naraiman ", + "Halimah", + "Asbah ", + "Abdul Qudoos", + "Ulfah ", + "Abul-Hassan", + "Watheq", + "Shahrukh", + "Maizah ", + "Zafirah ", + "Rukanah", + "Zarar", + "Khidrah ", + "Nadirah", + "Sahlah", + "Intaj", + "Barrah ", + "Halah ", + "Shurooq ", + "Ahd ", + "Mukhlis", + "Ataubaq", + "Ghauth", + "Iyaas", + "Abdul-Nur", + "Basil", + "Muzaffar", + "Sulayk", + "Tasneen", + "Taysir", + "Ubadah", + "Mayeda ", + "Abdul Batin", + "Hubaab", + "Haleem", + "Naqi", + " Badia ", + "Mahjabeen ", + "Huzayl", + "Jalal al Din", + "Samaa ", + "Mustakim", + " Seif", + "Hadiyyah ", + "Zara ", + "Abdul-Quddus", + "Lujain", + "Ashaath", + "Ranya ", + "Abdul-Hafeedh", + "Adli", + "Sad", + " Muhanned", + " Hana ", + " Huwaydah ", + "Sakhrah", + "Soraya ", + "Lu Luah ", + "Hamamah ", + "Huzaifah", + " Amal", + "Maha ", + "Kanz ", + "Amber ", + "Ruqayya ", + "Abdul Razzaq", + "Hana", + "Ramin", + "Nasim ", + " Sameera ", + " Joozhar", + "Faraza ", + "Saburah", + "Marjanah ", + "Shamal", + "Bahiyyah ", + "Nihad ", + "Nabilah", + "Sheyla ", + "Saadiya ", + "Shihab", + "Siraj", + "Urwah", + "Sawwaf", + "Ibtihaj ", + "Muskan ", + "Raidah", + "Anwara ", + "Muayyad", + "Ummayyah ", + "Musaid", + "Saful Islam", + "Rayn", + "Rehana ", + "Mahfuzah ", + "Fakeeh", + "Wakil", + " Masouda ", + "Jari", + "Shumayl", + "Aaidah ", + "Haziqah ", + "Khayaam", + "Amam", + "Samih", + "Muneeb", + "Inaya ", + "Masrur", + "Fariah ", + "Jadwa ", + "Muqbalah ", + "Qabeel", + "Kuwaysah ", + " Khaldoon", + " Khaled", + "Ashmath", + " Adil", + "Jarood", + "Muadh", + "Tobias", + " Reema ", + "Urshia ", + "Aadil", + "Hilmi", + "Aasif", + " Fahad", + "Fateen", + "Diya", + " Areej ", + "Abdul-Dhahir", + "Fakhir", + "Huriyah", + "Safiyyah", + "Tharwat", + "Marwa ", + "Adeeb", + "Mounira ", + " Budayl", + "Dani", + "Yasmina ", + "Wasay", + "Rahilah ", + "Zehna ", + "Maymun", + "Aatif", + "Thaqib", + "Maliha ", + "Hilal", + "Qaniah ", + "Ain alsaba ", + "Reyhana ", + "Shayma ", + " Noorah ", + "Huma ", + "Mubaraq", + "Nazli ", + "Zoufishan ", + "Zebadiyah", + "Haroon", + "Shezan ", + "Safi", + "Basheera ", + "Sayyar", + "Shamil", + "Midhaa ", + "Muawiyah", + "Saheim", + "Qaraah ", + "Raifah ", + "Qaymayriyah ", + "Shakirah ", + "Aatiqah ", + "Faisal", + "Batul", + " Ghusoon ", + "Tazeem", + "Rauf", + "Isma ", + "Khatera ", + "Adeela ", + "Budur ", + "Sultan", + "Mimar", + " Udayl", + "Zakwan", + "Uday", + "Rasha ", + "Habibah ", + "Waheed", + "Jawahir ", + "Humair", + "Shatha ", + "Tara ", + "Zarmina ", + "Nadra ", + "Nusrah ", + "Miyaz", + "Muttee", + "Abdus Salaam", + " Bahiya", + "Abdul Mannan", + "Mujibur", + "Affan", + "Eman ", + "Baahir", + "Yusr", + "Jaiyana ", + "Kharqa ", + "Monera ", + "Aashif", + "Ghali", + "Basimah", + "Najihah ", + "Abdul-Qaadir", + "Muntaha ", + "Naimah ", + "Nazeerah ", + "Mansoor", + "Farhat ", + "Madhat ", + "Shaaf", + "Nyla ", + "Banujah ", + "Labeeb", + "Safun ", + "Wareesha ", + "Taheem", + "Yaqoot", + " Haleema ", + "Najeed", + "Mariya ", + "Mounir", + "Mahbubah ", + "Laqeet", + "Rashad", + "Sabriyah ", + "Shihab al Din", + "Nashat", + "Ramia ", + "Muqtasid", + "Rukhsar ", + " Mais ", + "Badr al Din", + "Sharafat", + "Tamam", + "Nayyirah ", + "Barr", + "Abdul Baith", + "Awwab", + "Ahmad", + "Iyad", + " Aneesa ", + "Arjumand ", + "Shah", + "Abdul Fattah", + "Jul", + "Nasihah ", + "Hamdi", + "Abdul Sabur", + "Bushr", + "Izdihar ", + "Khairi", + "Qadeer", + "Jehan ", + "Leila ", + "Izdihar", + "Nafisah ", + "Zuharah ", + "Kausar ", + "Asadel", + " Azim", + "Asilah ", + "Faeq", + "Areebah ", + "Liyana ", + "Najair", + "Jud ", + "Dema ", + "Talah", + "Haytham", + "Zubaidah ", + " Kadir", + " Aziza", + "Shalimar ", + "Tabinda ", + "Uthman", + "Rafah", + "Safeerah ", + "Abdul Munim", + "Iqraam", + "Hasna ", + "Nashema ", + "Samirah ", + "Rayhanah ", + "Bashirah ", + "Rumaithah", + "Hafs", + "Abdul Rahman", + "Bisharah ", + "Banan ", + "Bandar", + "Lahiah", + "Ghaliyah", + "Jumaynah ", + "Anah ", + " Maysoon ", + "Nazirah", + "Nimat ", + " Baseema ", + "Maymunah ", + "Misba ", + "Suhail", + "Musnah ", + "Malika ", + "Ahad", + "Afif", + " Zinat ", + "Zarrar", + "Badri", + "Rafa", + "Shamila ", + "Athmah ", + "Sharmeen ", + "Shajeeah ", + "Sharifah ", + "Ibthaj ", + "Qamar ", + "Firas", + "Faraz", + "Humam", + "Batal", + "Wafiza ", + "Abdul Hakeem", + "Abdul-Jaleel", + "Kaysan", + "Tameem", + "Shazmah ", + "Mustajab", + "Hikmah", + "Shallal", + "Rahim", + "Tahsin", + "Nudrat ", + "Jana ", + "Shahada ", + "Samrah ", + "Zuha", + "Taban", + "Kashish ", + "Jalal", + "Rahaf ", + "Aaqib", + "Sadeem", + "Qabool ", + "Sumanah ", + "Arzo ", + "Hindah ", + "Rumana ", + "Hafsah ", + "Fara ", + "Sahil", + "Anmar ", + "Riyasat", + "Khasib", + "Ayan ", + "Nabihah", + "Sarwath ", + "Kasim", + "Muttaqi", + "Aasia ", + " Makaarim ", + "Shahnaz ", + "Nimra ", + "Abdul-Warith", + "Thoraya ", + "Adeeba ", + "Midhah ", + "Aashir", + "Babar", + "Jessenia ", + "Zairah ", + "Abdul Muizz", + "Nunah ", + "Saffanah ", + "Mursal", + "Kazi", + "Abdur-Raheem", + "Dabbah", + "Mamoon", + "Gamal", + "Jamal", + "Abdul Hasib", + "Ghazalah ", + "Hudad", + "Numa ", + "Mishaal", + " Mahmoud", + "Safiy al Din", + "Fakhra ", + "Rehemat ", + "Murad", + "Jasmir", + "Layyah ", + "Shazia ", + "Nusrat ", + "Talal", + " Nazeeha ", + "Rubiya ", + "Musn ", + "Fatin", + "Wahhab", + "Sayyid", + "Madiha ", + "Muqbil", + "Minal ", + "Hamood", + "Ghadah", + "Feiyaz ", + " Husayn", + "Ruwayfi", + "Hadeel ", + "Dujanah ", + "Ubah ", + " Ammar", + "Mueen", + "Usamah", + "Zuhera ", + "Zaib ", + "Abdul-Aalee", + "Huzayfah", + "Imthithal ", + "Samah ", + "Inan ", + "Juwairiyah", + "Irfan", + "Khansa ", + "Sumaiyah", + "Farizah ", + "Nadim", + "Ghayda", + "Nazuk ", + " Yumna ", + "Azfer", + "Amelia ", + "Akilah ", + "Azzah ", + "Nur al Huda ", + "Adifaah ", + "Firdaws", + "Nahida ", + "Iftikhar ", + "Raniyah", + "Rafee", + "Muizza ", + "Isa", + "Annam ", + "Suhailah", + "Faizaan", + "Abdul Rashid", + "Misbah", + "Gulab", + " Sabeeh", + "Maimoona", + "Rameesha ", + "Hamim", + "Aamira ", + "Sawsan ", + "Zakiyah ", + "Aqeel", + "Mehboob", + "Jariyah", + "Mujtaba", + "Musa", + "Ablah ", + "Arman", + "Basem", + "Aiza ", + "Adila ", + "Nelofar ", + "Jaseena ", + "Nasha ", + " Thurayya ", + "Fawad", + "Rajab", + "Nashitah ", + "Suha ", + "Ilan", + "Mona ", + "Abdul Muzanni", + "Jumaana ", + "Nasheelah ", + "Masud", + "Moazzam", + "Laiq", + "Rihana ", + "Zorah ", + "Shazeb", + "Shairah ", + "Munawwar ", + "Shiya ", + "Unays", + "Anum ", + "Shaqeeq", + "Tariq", + "Abdul Azeez", + "Najah ", + "Ayham", + "Ramzi", + "Saaliha ", + "Majdi", + "Afham", + " Rumaythah ", + "Naseer", + "Qamayr ", + "Dilawar", + "Abisali", + "Shadi", + "Zakar", + "Salifah ", + " Mishal", + "Abqurah ", + "Baha ", + "Hur ", + "Almas ", + "Zeeshan", + " Samaah ", + "Ghassan", + "Sadeed", + "Wazir", + "Ghufran ", + "Adel", + "Masoud", + "Mohga ", + "Agharr", + " Atika ", + " Rudaynah ", + "Shukri", + "Layali ", + "Mahum ", + "Zaroon", + "Qadi", + "Eshan", + "Rasool", + "Mehvish ", + "Azab", + "Malayeka ", + "Hudhafah", + "Arif", + "Munaf", + "Zuhair", + "Itidal ", + "Thurayya ", + "Farhah ", + "Ata al Rahman", + "Taqiyah ", + "Nasir", + "Nidda ", + "Iftikar ", + " Taqwaa ", + "Farooq", + "Jala", + "Abdul Hamid", + "Subhiyah ", + "Ada ", + "Hajar ", + "Sundus ", + " Anwaar ", + "Inayah", + "Rahil", + "Alman", + "Muhriz", + "Dhakiy", + "Hadeeqa ", + "Fawzah", + "Khair al Din", + "Anisah ", + "Asbagh", + "Qarasafahl ", + " Naima ", + "Hadad", + "Wildan", + "Itimad ", + "Adeeva ", + "Abdul Qahaar", + "Naseerah ", + "Nadimah ", + "Dhakir", + "Qutaylah ", + "Arub", + "Wahuj ", + "Musab", + "Heela ", + "Umaiza ", + "Noor Jehan ", + "Salaahddinn", + " Jumuah", + "Falaq ", + "Sadah ", + "Azzah", + "Kashifah ", + "Abdul Muid", + "Jal", + "Saba ", + "Fath", + "Imtihal ", + "Thaminah ", + "Raheemah ", + "Nur Firdaus", + "Wadi", + "Mashoodah ", + " Ridha", + "Naweed ", + "Nailah ", + "Abdul Muhyee", + "Shayaan", + "Sofian", + "Yumn ", + "Inaam", + "Asheeyana ", + "Shahlah ", + "Dinar", + "Buhaysah ", + " Ismat ", + "Yazan", + "Abdullah", + "Issar", + " Hayat ", + "Lutfiyah ", + " Ragheb", + "Iyaad", + "Nasira ", + "Warqa", + "Ahnaf", + "Anas", + "Nada ", + "Samarah ", + "Sahm", + "Hazimah ", + " Wisaal ", + "Waqaar", + "Shahin", + "Abdul Mutaal", + " Hayfa ", + " Baha", + "Abdur-Rauf", + "Shahzaib", + "Rahmah ", + "Ranim", + "Dawoud", + "Muqadaas ", + "Shams al Din", + "Mubashir", + "Bareerah ", + "Mawsil", + "Rasmi", + "Nesrin ", + "Mazin", + "Gharam ", + "Shaharyar", + "Nayyab ", + "Asra ", + " Yusuf", + " Kasim", + "Sagheer", + "Fadl Allah", + "Wajid", + " Muhayr", + "Naadir", + " Ubaab ", + "Tahira ", + "Abbud", + "Emran", + "Sehrish ", + " Asim", + "Luay", + "Imaad", + "Hubba ", + "Abdul Raheem", + "Azraqi", + "Kifah ", + "Udail", + "Basaaria ", + "Abdul Hannan", + "Zakariyya", + "Sharaheel", + " Huriyyah", + "Muhibbah ", + "Marid", + "Hadi", + "Luqman", + "Jamilah ", + "Shihaam ", + "Halima ", + "Mirah ", + "Riyad", + "Lubabah", + "Lana ", + "Naflah ", + "Arzu ", + "Rand ", + "Suraya ", + "Thufailah ", + " Majida ", + "Abdul Qaadir", + "Akeem", + "Tamkeen", + "Arij ", + "Najibah", + "Sajidah ", + "Waseefah ", + "Aighar ", + "Suhair", + "Zubayr", + "Samiyah ", + "Baasim", + "Yuhannis", + "Aziz ", + "Judamah ", + "Abrash", + " Hudhayfah", + "Nissa ", + "Sarra ", + "Muazzaz ", + "Hanbal", + "Zohra ", + "Abdul Muhaimin", + "Muhibb", + "Amala ", + "Munjid", + "Sumayrah ", + "Nuraz", + "Hayfa ", + "Afaf ", + "Ayyash", + "Shamoodah ", + "Rawhiyah ", + "Ramlah ", + "Iqtidar", + "Rabiyah ", + "Furozh", + "Kahil", + "Fareess ", + "Abdul Alim", + "Najya ", + "Turhan", + " Saabira ", + "Jahmyyllah ", + "Zinah", + "Azzam", + "Naqid", + "Ghazal ", + "Zakirah ", + "Maysan ", + "Aabish ", + "Zaheerah ", + "Abid", + "Mishael ", + "Zayd", + "Shahidah ", + " Juhaynah ", + "Alia ", + "Mahrosh ", + "Abdul-Muizz", + "Wajih", + "Mashhud", + "Tahseen", + "Owais", + "Fateenah", + "Jaza ", + "Samirah", + "Hammad", + "Sakeenah ", + "Sadaqat", + "Sawa", + "Musharraf", + "Motasim", + "Yara ", + "Mufeed", + "Zulfah ", + "Jasim.", + "Sabirah", + "Jabeen ", + " Adeela ", + "Abdul Khaliq", + "Bassam", + "Faizah ", + "Ikram", + "Asif", + "Jawl ", + "Kawakib ", + "Sughra ", + "Khatoon ", + "Rushdi", + "Umm Kulthum ", + "Shahzad", + "Fariza ", + "Ghusoon ", + "Lamah ", + "Qudsiyah ", + " Wafaa ", + " Yasser", + "Jahiz", + "Naseem", + "Tajammal", + "Badiyah ", + "Badra ", + "Layth", + "Shiraz", + "Shehla ", + "Zaara ", + "Jummal", + "Daneen ", + " Inayat ", + "Lut", + "Ghazzal", + "Sheila ", + "Wardah ", + "Rabah", + "Rabbani", + "Abdul-Qahhar", + "Hafiz", + "Bayhas", + "Afeerah ", + "Javier", + "Khubayb", + "Basim", + "Daniyah ", + " Qais", + "Zohair", + " Nabeel", + "Sinan", + "Abdul Rabb", + "Usayd", + "Hawwa ", + "Mahdiyah ", + "Mustaqeem", + "Ezzah ", + "Hanifah", + "Ihtisham", + "Sabeeyah ", + "Ablah", + "Neelam ", + "Tahiyat ", + "Rasil", + "Sarina ", + " Umair", + "Munazzah ", + " Nibaal ", + "Yasirah ", + "Arsal", + "Zamil", + "Mumtaz", + "Marzuq", + "Shayan", + "Kashif", + "Ayana ", + "Samman", + "Mersiha ", + "Samar ", + "Mustaneer", + "Khayriyyah ", + " Widaad ", + "Boulos", + "Darwish", + " Reem ", + "Samir", + "Zaman", + "Lina ", + "Shafiah ", + "Bulhut", + "Shifa ", + "Muminah ", + "Mujaddid", + "Salar", + "Khateeb", + "Shareekah ", + "Wafeeqah ", + "Rafal ", + "Abdul Ghaffar", + " Fuad", + "Qaim", + "Hala ", + "Summayyah ", + "Jabbar", + "Jilan ", + "Wakalat", + "Zayb ", + "Dawud", + "Lamiah ", + "Adawiyah ", + "Samiun ", + "Sorfina ", + "Mastura ", + "Shahid", + " Katib", + "Sawdah ", + "Muharrem", + "Zoeya ", + "Mukhlisah ", + "Khusbakht ", + "Mobeen", + " Salsabeel ", + "Aaeesha ", + "Abir ", + "Mahbasah ", + "Maqboolah ", + "Jawdah", + "Sahab", + "Afeef", + "Subhah ", + " Wisaam ", + "Nabhan", + "Zahirah ", + "Jamil", + "Kaleemah ", + "Naureen ", + "Shazad", + "Manar", + "Kazim", + "Reham ", + "Abdul Mubdee", + "Kiswar ", + "Abdul Qayyum", + "Sulaiman", + " Gamali", + "Adara ", + "Huda", + " Suhaym", + "Marzuqah ", + "Mustatab", + "Nighat ", + "Buhayyah ", + "Jarir", + "Humayrah ", + "Binish ", + "Jalil", + "Abdul Jalil", + "Tanisha ", + "Ashraf", + "Kamal", + "Abdur-Rahman", + "Shurahbeel", + " Buhaisah ", + "Nazeefah ", + "Shuraym", + "Rehan", + "Yushua", + "Amjad ", + "Hamra ", + "Firoz", + "Mansurah ", + "Omar", + "Husn ", + "Nafeesa ", + "Barika ", + "Ward", + "Latifah ", + "Amana ", + "Hurrah", + "Minaal ", + "Motaz", + "Intisar", + "Wasimah ", + "Imad", + "Sheraz", + "Wasif", + "Izzat", + "Razan", + "Afsheen ", + "Anbarin ", + "Andalib ", + " Hooda ", + "Saidah ", + "Usaim", + "Muhannad", + "Zehra ", + "Faris", + "Awn", + "Batrisyia ", + "Zaynab ", + "Amid", + "Riaz", + "Mawahib ", + "Rameez", + "Saud", + "Yasar", + " Yoonus", + "Hessa ", + " Rabeea ", + "Nathifa ", + "Saqib", + "Anjam", + "Rahmaa ", + "Ashwaq ", + " Fareed", + " Wordah ", + "Sumaytah ", + "Inayah ", + "Abal ", + "Khayrah ", + "Rahman", + "Baysan ", + "Raghid", + "Alraaz ", + "Hashid", + "Amra ", + "Mubarak", + "Murtaza", + "Roshini ", + "Dawlah", + "Kaiser", + " Zuhayr", + "Fathiyah ", + "Azraq", + "Laaibah ", + "Rawhah ", + "Baligh", + "Wid ", + "Sadun", + "Aalim", + "Nadhir", + "Fatin ", + "Shafaat", + "Habibah", + "Shukriyah ", + "Swiyyah ", + "Abdul Hadi", + "Shazana ", + "Zubaydah ", + "Fariq", + "Ana ", + "Dahab ", + "Ala al Din", + "Fatimah", + "Shajee", + "Shafee", + "Ahlam ", + "Reshma ", + "Yusra", + "Aws", + "Basimah ", + "Madihah ", + "Maruf", + "Rafidah ", + "Abdur-Razzaq", + "Nawal ", + "Kadeer", + "Butrus", + "Hanan ", + "Aydin", + "Nihal ", + "Salihah ", + "Shurafa ", + "Fawziyah ", + "Tuba", + " Zuhaa ", + "Abdul-Kareem", + "Ammaar", + "Janan ", + "Saif", + "Ammarah ", + "Lutfi", + "Hasib", + "Siham", + "Abdul Raafi", + "Abdul Warith", + "Aneeq", + "Ehan", + "Basbas ", + "Abbas", + "Baraah ", + "Abdul Rauf", + " Hayaam ", + "Khaleel", + "Daliya ", + "Yaminah ", + "Hidiyah ", + " Asiyah ", + "Ahdia ", + "Walidah ", + "Fazal", + "Khayri", + "Muwaffaq", + "Aamirah", + "Nuaim", + "Fathiya ", + "Juhaym", + "Yumnah", + "Ilyas", + "Shahadat", + "Intisar ", + " Naeema ", + "Makin", + "Lablab", + " Hooriya ", + "Shaybah", + "Sadiah ", + "Latif", + "Wahib", + "Mutazah ", + "Raya ", + "Sumnah ", + "Narmin ", + " Sumayra ", + "Tibah ", + "Mubassir", + " Asima ", + "Imtithal ", + "Raif", + "Abdul-Baaqi", + "Zoharin ", + "Abdul Hafeez", + "Mahad", + "Faeezah ", + "Khuraymah", + "Rafi", + "Ata Allah", + "Safiyy", + "Bashirah", + " Inaam ", + "Shuaa", + "Sairish ", + "Khaleed", + "Arub ", + "Tammam", + "Nora ", + "Mawiyah ", + " Rafat ", + "Abdur Razzaq", + " Murtadi", + "Husniya ", + " Houd", + "Sairah ", + "Mehrish ", + "Bilal", + "Shabnam ", + "Shiza ", + "Naairah ", + "Abdul Muntaqim", + "Abdul Karim", + "Jawdan", + "Shayla ", + "Hiyam ", + "Minnah ", + "Atikah", + "Tasheen ", + "Zareena ", + "Maysarah", + "Hayder", + "Adham", + "Aalia ", + " Maymunah ", + "Abdul-Hameed", + "Maram", + "Saood", + "Fatim ", + "Shareek", + "Habiba ", + "Al-Adur al-Karimah ", + "Abdus-Shakur", + "Barraq", + "Fuad", + "Hoor ", + "Navil ", + "Amara ", + "Nur", + "Shabab", + "Aaqilah ", + "Ghania ", + " Tuqaa ", + "Rudainah", + "Akhfash", + "Aqeil", + "Mutayyib", + "Qadim", + "Alya ", + "Nuzhat ", + "Badi", + "Ashar", + "Ghizlan ", + "Hadiyah ", + "Mumayyaz ", + "Shehryaar", + "Baseema ", + "Asma", + " Asma", + "Fudayl ", + "Maryum ", + " Hameeda ", + "Mufidah", + "Sabr ", + "Miftah", + "Sharmeela ", + "Faridah", + "Subbiha ", + "Ishtiyaq", + "Zayan", + "Raji", + "Hosaam", + " Baheera ", + "Buhthah ", + "Hami", + "Mehreen ", + " Lubaaba ", + "Firdowsa ", + "Aaqil", + "Horia ", + " Muhja ", + " Farooq", + " Adila", + "Anida ", + "Amany ", + "Mahfuz", + "Jibril", + "Rida ", + "Taybah ", + "Arfa ", + " Radhiya ", + "Aisha ", + "Saimah ", + "Adil", + "Mutahhir", + "Muhsinah ", + "Khadijah ", + "Afzal", + "Suwaydah ", + "Tahera ", + "Ubab", + "Zartaj ", + "Abdul Ali", + "Balqees ", + "Maram ", + "Rizwana ", + "Hajjah ", + "Shihad", + "Ilhan ", + "Azmat", + "Nabila ", + "Abdul-Wadood", + "Humayun", + "Asghar", + "Saad", + " Suhayl", + "Jehaan ", + " Wafeeq", + "Almahdi", + "Inas ", + "Juzar", + " Sameer", + " Haadiya ", + "Hooriya ", + "Selina ", + "Umaymah ", + "Musaddiqah ", + " Khayri", + "Jawna ", + "Nurjenna ", + "Najid", + "Arham", + "Shanum ", + "Sanjeedah ", + "Layan ", + "Aatikah ", + "Mubashirah ", + "Ghutayf", + "Ishraq ", + "Ruksha ", + "Wasil", + "Muzaynah ", + "Husni", + "Simah ", + "Shafaq ", + "Abdul-Khaliq", + "Jasmin ", + "Zubi ", + "Abd Al-Ala", + "Ajradah ", + "Abdul Muhsin", + "Daleela ", + "Karim", + "Hadee", + "Najam", + "Hamd", + "Rashad ", + "Bahir", + "Ridwan", + "Gohar", + "Osama", + "Fadilah", + "Huwaidah", + " Waleed", + "Radeyah ", + "Dhakirah ", + "Natasha ", + "Qareebah ", + "Isar ", + "Shehroze", + "Fadila ", + " Mawiya ", + "Nashwa ", + "Aza", + " Raaida ", + "Salikah ", + "Istabraq ", + "Nawwal ", + " Nazeem", + "Najiyah ", + "Souhayla ", + "Sehr ", + "Aamir", + "Naushaba ", + "Khayyat", + "Abdul Mujib", + "Shadmani ", + "Narjis ", + "Quadriyyah ", + "Lamisah ", + "Shahina ", + "Marwan", + "Lajlaj", + "Ghuzayyah ", + "Hanin ", + "Doaa ", + "Medina ", + "Fajr ", + "Suhaymah ", + "Suhayr ", + "Faiqah ", + "Abyan", + "Taim Allah", + "Majidah", + "Saibah ", + "Masun", + "Farrukh", + "Saaleha ", + "Sawlat", + "Laith", + "Zayaan ", + "Nazih", + "Aamaal ", + "Zumurrud ", + "Wijdan ", + "Rabar", + "Wasifah ", + "Nazimah ", + "Basilah ", + "Qailah ", + "Naseef", + "Ameer", + "Badi al Zaman", + "Sabuhi ", + "Anis", + " Sireen ", + "Wakeelah ", + " Jabr", + "Arij", + "Hannad", + " Ikraam ", + "Sameer", + "Reema ", + "Hani", + "Nurah ", + "Abdul Malik", + "Atifah", + "Abaan", + " Aliyyah", + "Hasnah", + "Nidaa ", + "Sarrinah ", + "Nuriyah ", + "Nazakat", + "Hudhaifah", + "Abdul Mateen", + "Zahidah ", + "Hutun ", + "Atia ", + "Nyasia ", + "Arsh", + "Sabeeh", + "Shahzor", + "Wafi", + "Muna", + " Lateefa ", + "Abdul Nasser", + "Barakah", + "Ahwas", + "Ithar ", + "Hena ", + "Pakeezah ", + "Baber", + "Arisha ", + " Ameer", + "Shaista ", + "Elma ", + "Rabiah", + "Sabur", + "Hubayshah ", + "Rizq", + "Jihan ", + "Abeera ", + "Ruaa ", + "Nadia ", + "Asifa ", + "Sadiyah ", + "Shad", + "Qusay", + "Asriyah ", + "Abidah", + "Malikah ", + "Jeelan", + "Jubair", + "Fathima ", + "Shamshad", + "Tharya ", + "Irem ", + "Fadil", + "Muhyi al Din", + "Raja", + "Yawar", + "Fakhriyah ", + "Deeba ", + "Ilham", + " Maysaa ", + "Sanam ", + "Maya ", + "Nudar", + "Mayyadah ", + "Safoorah ", + "Atif", + "Ghaith", + " Salih", + "Nazihah", + "Adan", + "Tajudinn", + " Batool ", + "Sabirah ", + "Sadit", + "Sharif", + "Istilah ", + "Mahjub", + "Abdul Haqq", + "Akif", + " Musheera ", + "Bashshar", + "Behzad", + "Khursheed", + "Abdul Mani", + "Shamsideen", + "Muhtadi", + "Thamar", + "Fakihah ", + "Husna ", + "Kanwal ", + "Noor-Al-Haya ", + "Fawz ", + "Hujayrah ", + "Nazeer", + "Waiz", + "Dunia ", + "Sabihah ", + "Aiman", + "Antarah", + "Dhul Fiqar", + "Wahban", + "Haikal", + " Abeer ", + " Fakhry", + "Ghunayn", + " Main", + "Amr", + "Ban ", + "Raeesah ", + "Hamid", + "Mukhtar", + "Alhena ", + "Farkhandah ", + "Jannah ", + "Ayshah ", + "Aram ", + "Abdul Basir", + "Muslim", + "Suheera ", + "Raidah ", + "Chandni ", + "Nazeef", + "Farhanah ", + "Thuwaybah ", + "Najaf ", + "Halah", + "Noorali", + "Mufiah ", + "Shadhiyah ", + "Khulaybah ", + "Anees", + " Maraam ", + "Ferran", + "Maisah", + "Aseed", + "Mualla", + "Siyana ", + "Sanaubar ", + "Sulayman", + " Najeeb", + "Dean", + "Fida ", + "Sayid", + " Firdoos ", + "Shibli", + "Mada ", + "Nasmah ", + "Samah", + "Malak ", + "Shaukat", + "Sharaf", + "Samawah ", + "Iraj ", + "Zahrah ", + "Khafid", + "Abdul Shakur", + "Sahl", + "Asima ", + "Aamanee ", + " Azza ", + "Adam", + "Tahirah ", + "Ateeb", + "Aijaz", + "Yakootah ", + "Shamim", + "Khulus", + "Bashair ", + "Nithar", + "Yaqub", + "Firyal ", + " Sukaynah ", + "Nazneen ", + "Suhayl", + "Kalila ", + "Wafiq", + "Adiy", + "Nain ", + " Murtadhy", + "Rafeeqah ", + "Ujala ", + "Abdul-Mumin", + "Inayat", + " Haniya ", + "Muin", + "Ibtisam ", + " Ilhaam ", + "Iyas", + "Nishaaj", + "Sahar ", + "Zariya ", + "Zakir", + "Hatib", + "Salif", + "Zafir", + " Isam", + "Yusri", + "Rua ", + "Atyaf ", + "Nuryn ", + "Hamas", + "Atifa ", + "Maria ", + "Afraz", + "Sufyan", + "Abdur-Rasheed", + "Maysoon ", + "Cantara ", + "Saadah", + "Sara ", + "Najwa ", + "Masood", + "Reja ", + "Aidah ", + " Nadeem", + "Sagheerah ", + "Zufar", + "Diyanah ", + "Romana ", + "Basmah", + "Darim", + "Qays", + "Fahd", + "Umnia ", + "Zakariya", + "Masumah ", + "Qismah ", + "Falih", + "Hujayyah", + "Intessar ", + " Fawziya", + "Rufaidah", + "Khalifah", + "Uqbah", + "Aila ", + "Afaaq", + "Muhanna", + " Sulayman", + " Buthayna ", + "Yaman", + "Kaamil", + "Dirar", + "Jaan", + "Nayif", + "Bashir", + "Anaum ", + "Haddad", + "Thayer", + "Muhdee", + "Adnan", + "Khayr", + "Aakifah ", + "Fudail", + "Salt", + "Khulud ", + "Jibran", + "Takiyah ", + "Yafiah ", + "Hajjaj", + "Bashaar", + "Abda ", + "Ibtihaj", + "Nusaibah", + "Wahab", + "Sharmin ", + "Isra ", + " Baraka ", + "Aduz Zahir", + "Jawhar", + "Suwayd", + "Kanval ", + "Raghidah ", + "Saffiya ", + "Amjad", + "Suud", + "Naseemah ", + " Sawdah ", + "Munzir", + "Abdul Sattar", + "Natiq", + "Rakhshan", + "Abu al Khayr", + "Durar ", + "Wajdi", + " Abida ", + "Abir", + "Badriyah ", + "Sajid", + "Nabeeha ", + "Raghibah ", + "Rajiyah ", + "Muhib", + "Munis", + "Farid", + "Maisah ", + "Shahed ", + "Amaya ", + "Zoha ", + "Jalees", + "Zuhrah ", + "Aishah", + "Faakhir", + "Umniyah ", + "Sudi ", + "Nusrah", + "Abdul Qadeer", + "Razeen", + "Taymur", + "Uzayr", + "Afsa ", + "Azizah", + " Badriyyah", + "Yasir", + "Fathi", + " Razaan ", + "Yasna ", + "Ruqaya ", + "Ikhlas ", + "Lunah ", + "Haajar ", + "Mahreen ", + "Nasib", + "Rana ", + "Hafthah ", + "Nazahah", + "Zawiya ", + "Raitah ", + "Hawadah ", + "Zaim", + "Umar", + "Aarifah ", + "Bahijah ", + "Salimah ", + "Nasheed ", + "Nagina ", + "Zoya ", + "Rayya", + "Silah", + "Abdur-Raqeeb", + "Shams ", + "Sarim", + "Aala ", + "Sarosh", + "Ajib", + "Aroob ", + "Varisha ", + "Fakhirah ", + "Nuhaa ", + "Muhammad", + "Khayriyah ", + "Ihab", + "Muna ", + " Zahraa ", + "Abdul-Aleem", + "Abdul Jaleel", + "Nasri", + "Qasim", + "Quraybah ", + " Maryam ", + "Tehzeeb ", + "Siraj al Din", + "Muhab", + "Jabirah ", + " Ruwayd", + "Adeel", + "Abdul Wasi", + "Rayna ", + " Asmaa ", + "Wasilah ", + "Afsana ", + "Munira ", + "Kaneez ", + " Khaleel", + "Wajahat", + "Hatim", + "Aimal ", + "Farida ", + "Abdul Hakim", + "Maahnoor ", + "Mateenah ", + " Rawdha ", + "Shadha", + "Hafizah ", + " Fareeda ", + "Zalfa ", + "Durriyah ", + "Azaan", + "Radi", + "Abdul Muqsit", + "Abdus Subbooh", + "Burayd", + "Naaz ", + "Shamis ", + "Munerah ", + "Hijab ", + "Daghfal", + "Amaan", + "Najib", + "Mahja", + "Shafia ", + "Abdul", + "Nibras ", + "Mehek ", + "El-Amin", + "Athir", + "Fauzia ", + "Mahwish ", + "Nazish ", + "Muballigh", + "Raima ", + "Nargis ", + "Hurayth", + "Sawad", + "Rushd ", + "Abdul Mughni", + "Nooh", + "Nidal", + " Shareef", + "Fahmida ", + "Adn ", + "Samiya ", + "Buthaynah ", + "Rohaan ", + "Nasuh", + "Abdul Khabir", + "Shahir", + "Mad", + "Aneeqa ", + "Nahlah", + "Rukhsana ", + "Afya ", + "Mahnoor ", + "Aneezah ", + "Khuwaylah ", + "Ubaidah", + "Waliy Allah", + "Nuwwarrah ", + "Mehrunisa ", + "Umarah", + "Ilifat", + "Kawthar ", + " Nusaybah ", + "Akleema ", + "Kalbi", + "Mufti", + "Maqil", + "Azhar", + "Jahangir", + "Saadia ", + "Nafisah", + "Zameer", + "Nimah", + "Ayser", + "Subaha ", + "Abdul-Majid", + " Juwayriyah ", + " Thuwaybah ", + "Falak ", + "Aidah", + "Misha ", + "Ashim", + "Salim", + "Wadha", + " Fahada ", + "Sarfaraz", + " Bilqees ", + "Sunbul ", + "Nasreen ", + "Husniyah ", + " Jameel", + "Wahhaj", + "Uthal", + "Shazfa ", + "Sirin", + "Rawahah", + "Abdul-Mughni", + "Sadid", + "Kaliq", + "Mueez", + "Waail", + "Aadila ", + "Akram", + "Abdul Halim", + "Walid", + "Raghad ", + "Kadshah ", + "Afiyah ", + "Tuba ", + "Hesam", + "Fahdah", + "Rifaah", + "Amani ", + "Sharifah", + "Alhasan", + "Ghusun", + "Hammam", + "Niyaf ", + "Amsah ", + "Suhaimah", + "Shams-Ul-Haq", + "Labib", + "Wafiqah", + "Abdul Haq", + "Basoos ", + " Moosa", + "Saeedah ", + "Qaseem", + "Chanda ", + "Hifza ", + "Isir ", + "Alika ", + "Muslih", + "Raghib", + "Hayam ", + "Madihah", + "Majidah ", + "Nuwairah", + "Murshid", + "Sadad ", + "Hassan", + "Aresha ", + "Mumina ", + "Noureen ", + "Salsal", + "Khushtar", + " Zayd", + "Altaf ", + "Itab ", + "Ratib", + "Shadiyah ", + "Hukaymah ", + " Suraa ", + "Fatihah ", + "Zaida ", + "Akia ", + "Shabib.", + "Rubi ", + "Dahma ", + "Hakimah ", + "Maher", + "Bunanah ", + "Lubabah ", + "Dawid", + "Busrah ", + "Hajib", + "Nawfal", + "Rabab ", + "Thaman", + " Sanaa ", + " Sakeena ", + "Karam", + "Hussain", + "Rajih", + "Asad", + "Abdul Majeed", + "Arshaq", + "Aslam", + "Shaqeeqah ", + " Yazeed", + "Abdul Ahad", + "Sati", + "Sarwar", + "Sheenaz ", + "Lubab ", + "Alhusain", + "Umayyah", + " Naheeda ", + "Maysun", + "Rabit", + "Jaul", + "Ula ", + " Fateen", + "Kulthum", + "Tazkia ", + "Haroun", + "Faizan", + " Bassam", + "Juwain", + "Nusayb", + "Raza", + "Ashadieeyah ", + "Raiqah ", + "Salaam", + "Abdul Afuw", + "Sundas ", + "Abdus-Sabour", + "Mashkoor", + "Rafia ", + "Taghrid ", + "Seif", + "Bishr", + " Eisa", + "Abdul Hakam", + "Abdul Muqeet", + "Amer", + " Qutaibah", + "Aroush ", + "Munif", + "Hafa ", + "Khawlah ", + "Nevaeh ", + "Khuzamah ", + "Iman ", + "Insha ", + "Fujai", + "Razaanah ", + "Shadan ", + "Saja ", + "Rayhan", + "Buhaysah", + "Maysam ", + "Subayah ", + "Qabilah ", + "Shamsia ", + "Abasah ", + "Ubaydullah", + "Abdul-Hadi", + "Wiam ", + "Ghannam", + "Israail", + "Thashin ", + "Ramadan", + " Mamduh", + "Tahawwur", + "Zain", + "Abra ", + "Siddiqah ", + "Hasan", + "Qanit", + "Abdul Naseer", + "Daamin", + " Mayyada ", + "Abdul Kabir", + " Nimaat ", + "Omera ", + " Mufeeda ", + "Abdul Basit", + " Azhaar ", + "Abdul-Haqq", + "Mutazz", + "Dhuka ", + "Qutaybah", + "Nurdeen", + "Absi", + "Aamil", + "Wabisa ", + "Mahvish ", + "Murjanah ", + "Hanash", + "Arfan", + "Zahabiya ", + "Abdus Sabur", + "Ifra ", + "Imad al Din", + "Razin", + "Ziaud", + "Amtullah ", + "Janan", + "Zarqa ", + "Burdah ", + "Balsam ", + " Yusef", + "Umm Kalthum ", + "Man", + "Salih", + "Aleemah ", + "Akhlaq", + "Henna ", + " Khuzaymah", + "Rawiah", + "Shafana ", + "Nabihah ", + "Labibah ", + "Hamdhy", + "Taseen", + " Shadhaa ", + "Sanika ", + "Rawah ", + "Asmara ", + " Fadheela ", + "Naqeeb", + "Sarish ", + "Sikandar", + "Ghalib", + "Heyam ", + "Rukan ", + " Buthainah", + "Bahira ", + "Saleem", + "Raihan", + "Nija ", + "Senada ", + "Zanubiya ", + "Rona ", + "Uwayam", + "Yasmine ", + "Saif al Din", + "Shuneal", + "Jahanzeb", + "Dizhwar", + "Uhban", + "Thuraiya", + "Niyaz", + "Sanari ", + "Thaqaf", + " Nooh", + " Alia", + "Zamrud ", + "Qaysar ", + "Raheesh", + "Sarmad", + "Aaliyah ", + "Mahibah ", + "Sfiyah ", + "Ijli", + "Awa ", + "Sabaa ", + " Issam", + "Shan", + "Shawq ", + "Anika ", + "Kurayb", + "Shehzadi ", + "Aafiya", + "Tharwah ", + "Abdul Wadud", + "Fayyad", + " Lina", + "Abdul Muhsi", + "Maab ", + "Fadeelah ", + "Durrah ", + "Ala", + "Ramziyah ", + "May ", + "Abdul Baari", + "Fatih", + "Abeerah ", + "Hamdiyah ", + "Nahid ", + "Sobia ", + "Afreen ", + "Uzma ", + "Shayma", + "Majid", + "Naman", + "Bushra ", + "Riffat ", + "Zameena ", + "Bashar", + "Jumah", + "Wurud ", + "Alima ", + "Thabit", + "Shanika ", + "Suda ", + "Tajammul", + "Isad ", + "Nakhat ", + "Bazam", + " Alia ", + "Wisal", + "Abrar ", + "Dhakiyah ", + "Wail", + "Lazim ", + "Kehkashan ", + "Hayrah ", + "Manal ", + "Lamees ", + "Kaukab ", + "Jemimah ", + "Najmah ", + "Miqdad", + "Nadir", + "Sanawbar", + "Asrar ", + "Saqr", + " Janaan ", + "Inam ", + " Nafeesa ", + "Abdul Aleem", + "Hazim", + "Simrah ", + "Ghasaan", + " Hawwa ", + "Altair", + "Faryat ", + "Hafid", + "Ihtiram", + "Nail", + "Shagufta", + "Sitarah ", + "Tafida ", + " Ayishah ", + "Bahiya ", + "Zaina ", + "Nayab", + "Faqirah ", + " Khairy", + "Buqayrah ", + "Zafirah", + "Ayesha ", + "Ramsha ", + "Intikhab", + "Maaz", + "Saqer", + "Majd al Din", + "Tanim", + " Aisha", + "Firdous ", + " Jubayr", + "Shua ", + "Rafiqah ", + "Munisa ", + "Mounia ", + "Nilofar ", + "Zaid ", + "Roshan", + "Muhtashim", + "Farasat", + "Fakhr al Din", + "Sirah ", + "Jahida ", + "Qadriyyah ", + "Ismail", + "Muti", + " Bahiyaa ", + "Humera ", + "Waseemah ", + "Neha ", + "Ihtsham", + "Abdul Wakil", + "Muta", + "Abdul Sami", + "Zaki", + "Abdul Zahir", + " Bahiyy al Din", + "Miskeen", + "Abdus Shafi", + "Hajna ", + "Idhar ", + "Ghazalan", + "Khalidah", + "Nasiha ", + "Sumaiya ", + "Nijah ", + "Mashal", + "Basharat", + "Imran", + "Mabad", + "Masarrat", + "Nadiyah ", + "Makhdoom", + "Malmal ", + "Faysal", + " Wafeeqa ", + "Tawfeeq", + "Sibal", + "Abdul Barr", + "Mushirah", + "Abdus-Sameei", + "Zahara ", + "Rahimah ", + "Saim", + "Judi ", + "Sadoof ", + "Dilshad Khatoon ", + "Husam al Din", + "Bahij", + "Laraib ", + "Aalam", + " Kadin", + "Abdul Shahid", + "Safiyyah ", + "Yalqoot ", + "Fahyim", + "Shadeed", + "Ubayy", + "Abdul Nur", + "Farhana ", + "Nabijah ", + "Warsan ", + "Shabb", + "Layla ", + "Ghulam", + "Ishrat", + "Daanish", + "Aladdin", + "Abdul-Adheem", + "Namir", + "Shurayh", + "Fakhtah ", + "Aaminah ", + "Rima", + "Sura", + "Khaleeq", + " Amala ", + "Nuwwar ", + "Saiqa ", + "Abdul Quddus", + "Lujaina ", + "Binesh ", + "Haris", + "Afeefa ", + "Mahneerah ", + "Izaan", + "Kharijah", + "Shehzaad", + "Mekka", + "Mahmud", + "Thara", + "Zohura ", + "Yathrib", + "Mustafeed", + "Nafasat", + " Bahira", + "Lama ", + "Taj", + "Saihah ", + "Qaylah ", + "Shafiqah ", + "Itaf ", + "Nouf ", + " Kedar", + " Rumaylah ", + "Kinza", + "Ayyub", + "Haji", + "Jamilah", + "Ruqayyah ", + "Altaf", + "Nizar", + "Sanaullah", + "Saafir", + "Yasin", + " Tayma ", + "Yasmeenah ", + "Aqeelah ", + "Nujud", + "Simak", + "Nadr", + "Sair", + "Waliy al Din", + "Safwan", + " Madeeha ", + "Abdul Awwal", + "Rawh", + "Mufakkir", + "Ata", + "Junah ", + "Suhaylah ", + "Mohaddisa ", + "Aazim", + "Amro", + " Suhaylah ", + "Umm-e-kulsum ", + "Salimah", + "Qutuz", + "Nuaymah ", + " Radhwaa ", + "Sameea ", + "Amilah ", + "Abdul Raqib", + "Bilqis ", + "Hubab ", + "Juhanah ", + "Tasawwar", + "Farees", + "Tawoos", + "Madeeha ", + "Afshan ", + "Artah", + "Ulfat", + "Murtadaa", + " Ibtihaaj ", + "Randa ", + "Rayya ", + " Thamir", + "Aleeza ", + "Khoury", + "Qasoomah ", + "Muhajir", + "Nosheen ", + "Zarif", + "Sabir", + "Jenna ", + "Nausheen ", + "Nasrullah ", + "Dua ", + "Somaya ", + "Atiq", + "Wajd ", + "Ghadir ", + "Anan ", + " Naif", + "Umran", + "Athilah ", + "Alma ", + "Yarah ", + "Tazim ", + "Farzana ", + "Shaheem", + "Kafeel", + "Daria ", + "Ibadah ", + "Mishel ", + "Nasr", + "Khush Bakht", + "Binyamin ", + "Iffat ", + "Rabiya ", + "Rihab ", + " Nahla ", + "Ahmar", + " Aliyy", + "Hawra ", + "Ghayoor", + "Rija ", + "Raashid", + " Saleema ", + "Tarif", + "Durdanah ", + "Najat ", + " Ablaa ", + "Sumbul ", + "Waliyah ", + " Fazia ", + "Humra ", + "Salmaa ", + "Sab", + "Ijaz ", + "Shareef", + "Nelam ", + " Suhayr ", + "Marghoob", + "Daniyal", + "Jahanara ", + "Shafi", + "Danish", + "Zareenah ", + "Ambar ", + "Abthi", + " Nuhayd", + "Aliyah", + "Haniah ", + "Raonar", + " Imad", + "Fayek", + "Abdus", + "Shameemah ", + "Haaziq", + "Karif", + " Suoud", + "Riham ", + " Aziz", + "Huthayfa", + "Khalil al Allah", + " Izdihaar ", + " Khalida ", + "Khunays", + "Tasadduq", + "Zaighum", + "Adab ", + "Shireen ", + "Afifa ", + " Ataa", + "Alimah ", + "Neeshad ", + "Rasmiyah ", + "Sabri", + "Sana ", + "Abdul Aalee", + "Daud", + "Yameen", + "Shadin", + "Rim", + "Kyda ", + "Khalam", + " Sabeer", + "Muheet", + "Rimsha ", + "Javairea ", + " Lamees ", + "Junaid", + "Salik", + "Aini ", + "Az-zahra ", + "Nabeel", + " Abd al", + " Kaseeb", + "Dimah ", + "Zeenat ", + "Nuh", + "Awad", + "Nahla ", + "Naeemah ", + "Subuhi ", + "Hisham", + "Haider", + "Rafif ", + "Juwariyah ", + "Hayah", + "Namar ", + "Abdul Wajid", + "Shameem", + "Mayyadah", + "Marah ", + " Nadira ", + "Hibbaan", + "Munir", + "Aarif", + "Zaheer", + "Eliza ", + "Ameenah ", + "Sidrah ", + "Shoaib", + "Aatifa ", + "Fawziyyah", + "Tameez", + "Shahnawaz", + "Waleed", + "Sharique", + "Badiah", + "Fiza ", + "Ayat ", + "Zameelah ", + "Arshad", + "Jundub", + " Lamya ", + "Amal ", + "Musad", + "Azadeh ", + "Izma ", + "Hurairah", + " Isa", + "Tameemah ", + "Mughith", + "Salwa ", + " Baraaa ", + "Aamilah ", + "Maleehah ", + "Khalaf", + "Lubena ", + " Maisa ", + "Rashidah", + "Wad ", + "Mistah", + "Sufia ", + "Beena ", + "Yahya", + "Amir", + "Hulyah ", + "Shafin", + " Aamal", + "Ruhina ", + "Buthaynah", + "Khadijah", + "Mohammed", + "Safeenah", + "Taj al Din", + "Halim", + "Sohail", + "Afrah ", + "Miskeenah ", + "Batinah ", + "Shukrah ", + "Idris", + " Abla", + " Nabih", + " Humayrah ", + "Feerozah ", + " Khulood ", + "Hazirah ", + "Shabana ", + "Mikail", + " Omar", + "Haboos ", + "Akhas", + " Kareef", + "Arbaaz", + " Basma ", + "Wahb", + "Suraqah", + "Falaknaz ", + "Mehrnaz ", + "Abdul Badi", + "Abdul Nasir", + "Kajji", + "Ara ", + "Masum", + "Tooba", + "Malakah ", + "Khaldun", + "Abyad", + " Lujayn ", + "Jad Allah", + "Mahd", + " Zaynab ", + "Abdul Haleem", + "Shahzaadee ", + " Muneer", + "Shaban", + "Wahid", + "Qadriyah ", + "Rashida ", + "Sarfraz", + "Sana", + "Erina ", + "Hind ", + "Yusriyah ", + " Walaa ", + "Anam ", + "Fayzan", + "Khuzaimah", + "Nida ", + "Abrad", + "Maali ", + "Ubaid", + " Kulthoom ", + "Adib", + "Rumaisa ", + "Fayaaz", + "Muthanna", + "Humza", + "Ismah", + "Mubin ", + "Noor", + "Khadim", + "Duha", + "Abdul Ghani", + "Kamil", + "Naheed ", + "Razan ", + "Naeem", + "Ajwa ", + "Insaf ", + "Mayameen ", + "Badr", + "Ghaliyah ", + " Ameera ", + "Ghaneemah ", + "Aniya", + "Nadidah", + "Qisaf ", + "Aqsa ", + "Jareer", + "Naseeka ", + "Keyaan", + "Quddusiyyah ", + "Shamel", + "Hanif", + "Afra ", + "Nazia ", + "Busr ", + "Afra", + "Aara ", + "Safaa ", + "Hamza", + "Wasna ", + "Seerat ", + "Saiful Azman", + "Yelda ", + "Humairah", + "Rabia ", + "Tamanna", + "Jawad", + " Benyamin", + "Jihad", + "Ghadah ", + " Dawud", + " Azeeza ", + "Muntazir", + "Mufaddal", + "Umayrah ", + " Mufeed", + "Awf", + " Nuaym", + "Bahiyah", + "Sariyah", + "Taimur", + "Aalimah ", + "Sarab", + "Batool ", + "Widad", + "Aanisah ", + "Azeemah ", + " Jameela ", + "Kulus ", + "Manal", + "Maladh ", + "Zinah ", + "Abdul Azim", + "Basmah ", + "Khalidah ", + "Rani", + "Isam", + "Zuhoor", + "Asalah ", + "Laiba ", + "Athir ", + "Karimah", + "Abdul Majid", + "Rahmat", + "Habib", + " Habeeba ", + "Murabbi", + "Miraj", + "Nadwah", + "Surayj", + "Asil ", + "Abdul Hayy", + "Khurram", + "Fida", + "Jawa ", + "Akil", + "Jad", + " Harun", + "Zuehb", + "Mussah ", + "Atiyah", + "Najdah ", + " Nusrat", + "Yamamah ", + "Zinneerah ", + "Kaleem", + "Ameera ", + "Firdaws ", + "Kateb", + " Souad ", + "Nahleejah ", + "Rayann ", + "Wisal ", + " Ghaaliya ", + "Wahabah ", + "Abdul Aziz" + ], + +"Hindu":["Neni", "Shiva", "Kumkum", "Pramjot", "Annu", "Leela","Golu", "Sarvesh", "Rukmani", "Nandu", "Rajeev", "Sabhana", "Harishankar", "Usha", "Araddhna", "Badri", "Jang", "Rajneesh", "Jeenat", "Mohan", "Divaraj", "Durgash", "Sakshi", "Kushal", "Himani", "Saveta", "Shabanagudiya", "Durgesh", "Mumtazbabi", "Rustam", "Yognder", "Anshul", "Rijakpal","Anjali", "Tarjan", "Soni", "Ankush", "Riya", "Shalu", "Yash", "Pooran", "Kunalkannu", "Lalideepa", "Rajuchhotu", "Baksi", "Jasoda", "Birju", "Karinakavita", "Purnima", "Sharat", "Sana", "Ranu", "Naresh", "Naveen", "Vinod", "Rijul", "Piyush","Nabav", "Nirmal", "Karishma", "Rashab", "Surjeet", "Ishika", "Avdhesh", "Rama", "Dipti", "Minakxi", "Andhav", "Padma", "Hemant", "Bhanu", "Mamta", "Sahiba", "Ramdin", "Mira", "Dharam", "Chander", "Ashu", "Radheyshyam", "Akshit", "Pancham", "Sabbo", "Indra", "Sarita", "Shivam", "Tavinder", "Chahat", "Apsana", "Kamla", "Rekhai", "Bhola", "Ramsem", "Ramkishan", "Mudrika", "Shardanand", "Vimla", "Grace", "Aashiya", "Vikashmungeri", "Harprasad", "Sidharath", "Silender", "Brijmohan", "Shehnaz", "Nirmla", "Shubham", "Sahil", "Rohit", "Sevakpitambar", "Rajveer", "Anu", "Chain", "Anshu", "Jamrujaha", "Sonali", "Molu", "Subhash", "Pinkooguddu", "Mudsay", "Captain", "Mahabir", "Devraj", "Priya", "Ghansyam", "Harsh", "Neelam", "Abhijeet", "Bodh", "Suman", "Sudha", "Jag", "Tina", "Vidhi", "Kangana", "Kritikakittu", "Rishi", "Rashid", "Satish", "Lakshya", "Akhilesh", "Parerna", "Beeru", "Narender", "Tarif", "Aamod", "Rajenderkaku", "Radha", "Nadim", "Chaya", "Kishan", "Kranti", "Neha", "Huma", "Samaiali", "Devender", "Henkhochon", "Amil", "Chirag", "Akash", "Madhu", "Aanamika", "Parth", "Sobit", "Lakshman", "Gutam", "Punit", "Aditya", "Jai", "Jaipal", "Laxmikant", "Sarain", "Champa", "Hina", "Shankar", "Basnti", "Brij", "Manoj", "Bhatri", "Nimla", "Sunny", "Gautam", "Sikandar", "Savan", "Benjir", "Sambhu", "Manju", "Nagina", "Raghubir", "Harpal", "Imamudeen", "Sazi", "Manishmukesh", "Khushbu", "Anjalibabli", "Ankita", "Govind", "Leelawati", "Rosy", "Parminder", "Dilip", "Sujen", "Shrishti", "Mala", "Pinki", "Shabanm", "Kausal", "Khokan", "Nitu", "Harish", "Dev", "Ketan", "Chumki", "Rakesh", "Aryan", "Roshni", "Vimal", "Khusboo", "Jay", "Amar", "Nikita", "Deeya", "Rajni", "Aarti", "Kiran", "Seemasimran", "Shelender", "Kailash", "Yashoda", "Dinesh", "Maya", "Tarun", "Sweety", "Pritam", "Bir", "Doly", "Subin", "Nekki", "Deepti", "Mamuni", "Bimlesh", "Krishan", "Sunaina", "Keshar", "Vibhuti", "Tikku", "Bhagwati", "Deep", "Shallu", "Jorj", "Nidhi", "Madhuanita", "Devinder", "Vansu", "Susila", "Gourav", "Varsa", "Damanjeet", "Sanny", "Payal", "Dharmbir", "Gappu", "Chottu", "Vakil", "Pushpendra", "Montu", "Ravinderbacchi", "Babli", "Mohabbat", "Soniya", "Rajkumar", "Chhotelal", "Preety", "Abhinav", "Rani", "Sahar", "Pardeep", "Shakti", "Sahin", "Abhishekh", "Subham", "Murli", "Anubhav", "Rupesh", "Deva", "Kripya", "Mayank", "Aasishkumar", "Kinya", "Sumitra", "Khimanand", "Tejvir", "Radheshyam", "Bhag", "Jagdish", "Priynka", "Vikram", "Ikramuddin", "Bigan", "Mahender", "Pramod", "Laxmi", "Durga", "Chand", "Sajan", "Mehraj", "Virender", "Tarachandpappu", "Amardeep", "Sona", "Lal", "Ranveer", "Phoolwatiphoolo", "Alok", "Devki", "Ankit", "Sarad", "Rajia", "Manpreet", "Ramanrancho", "Haider", "Ayush", "Saneha", "Partibha", "Gulnanj", "Guman", "Shankarlalsukharam", "Jony", "Sukhdev", "Kanhaiya", "Mazida", "Pandit", "Veer", "Sachin", "Juneb", "Rohan", "Meghana", "Sohni", "Kavita", "Murari", "Satyadev", "Gurdeep", "Rajbir", "Komal", "Vicky", "Nanagram", "Aasto", "Azad", "Lakhan", "Punam", "Bharkah", "Ranita", "Vikas", "Minakchi", "Bishun", "Brahamprakashmeer", "Pintu", "Neetu", "Pavitra", "Neeraj", "Kulli", "Seema", "Laxman", "Sanjeev", "Supriyal", "Vijay", "Arun", "Bhushan", "Harneet", "Laxmikumari", "Tripti", "Vikash", "Avinash", "Omparkash", "Ranjeeta", "Janesh", "Subodh", "Sheetal", "Adersen", "Shanti","Himanshiroshani", "Anil", "Sashi", "Surendra", "Jankisoni", "Sagar", "Parwati", "Somdath", "Kusuma", "Santlalgolu", "Krishnamanisha", "Chandni", "Parul", "Satnosh", "Mohithimanshu", "Banwari", "Yameen", "Sushma", "Minakshi", "Mukul", "Chetanya", "Uma", "Sameer", "Malkeet", "Noojo", "Sukhbir", "Sohnal", "Prem", "Sarbjeetronak", "Kamlesh", "Lilu", "Madan", "Deepu", "Ajit", "Mahesh", "Dilawar", "Kunal", "Roshan", "Bharat", "Pradeep", "Midda", "Parvesh", "Mahavir", "Son", "Balraj", "Archana", "Mubarik", "Uday", "Muntiyaj", "Shilpa", "Jatinsonu", "Ruksana", "Kajol", "Krisana", "Arti", "Vipin", "Hare", "Anjli", "Chama", "Hemlata", "Reshma", "Vibha", "Niranjan", "Omprkash", "Sangeeta", "Parniti", "Dharmshila", "Nithyanandham","Diksha", "Muskan", "Roshani", "Abhishek", "Ravish", "Mantu", "Pulkit", "Raghunandan", "Vandana", "Asharam", "Arindra", "Ranjita", "Priyansi", "Chanderpal", "Gyatri", "Hari", "Surender", "Rishu", "Praful", "Renu", "Aakanksha", "Reema", "Chotti", "Priyanandani", "Niraj", "Udham", "Krishna", "Chhabi", "Chetan", "Anupama", "Koshal", "Dheerajmontu", "Sony", "Reena", "Shiwani", "Mushir", "Om", "Kanika", "Souravsumit", "Vude", "Spana", "Naveena","Rimmi", "Doodhnath", "Milap", "Pallavi", "Najar", "Tapas", "Monika", "Gayatri", "Phoolmani", "Rekhaboby", "Bittu", "Neeru", "Narayan", "Ridhima", "Radhika", "Chandan", "Harbirsingh", "Himanshu", "Sandhya", "Sareen", "Anju", "Paramjeet", "Amrit", "Parmod", "Kanta", "Asha", "Ramkaran", "Raju", "Gudya", "Disha", "Ramjan", "Liyakat", "Virjiniya", "Buity", "Charu", "Mangla", "Saurabh", "Shiv", "Suraj", "Ashshwer", "Yogesh", "Arsh","Sapna", "Janki", "Amit", "Vinit", "Pramood", "Hoor", "Masoom", "Khushi", "Vandnakrishma", "Prince", "Pappy", "Madam", "Swati", "Chango", "Khusbhu", "Savita", "Bhupender", "Yogita", "Bharti","Vashudev", "Ajay", "Goldy", "Madhuri", "Harender", "Anuradha", "Atul", "Samir", "Gopal", "Menadevi","Sonu", "Anuj", "Sorabh", "Saraswati", "Hardeephunny", "Sarojini", "Armaansuvalin","Kanti", "Sardar", "Bilke", "Gyan", "Gulshan", "Rubby", "Shayra", "Vipulander", "Ramesh", "Karan", "Pooja", "Rimpy", "Palaksimran", "Babalu", "Bimla", "Girishi", "Manojkumar", "Pankaj", "Inderpal", "Sitara", "Rubbi", "Avinsh", "Lala", "Shishram", "Lavtar", "Puran", "Rajender", "Sushant", "Megha", "Tekchand", "Jaya", "Devi", "Monu", "Nandkishore", "Badshya", "Hari", "Anand", "Phirdos", "Chhotu", "Neelu", "Nasimareshma", "Santosh", "Sohan", "Charan", "Mangat", "Inderjeet", "Kiswar", "Iswar", "Mercy", "Nahar", "Varsha", "Rahina", "Preeti", "Khushboo", "Ishtkar", "Lalan", "Shasi", "Kamal", "Gayatrirani", "Munna", "Ankushshera","Kummamta", "Dollyrekha", "Sparsh", "Sangeet", "Deepak", "Mohammad", "Sheru", "Lalita", "Noor", "Isha", "Shivani", "Parbhat", "Versha", "Nagma", "Jockyipai", "Rajkumari", "Geeta", "Pappumahender", "Nilam", "Divya", "Manisha", "Shenaz", "Jassi", "Deelip", "Jeeya", "Arjun", "Ajayajju", "Rashika", "Maansingh", "Rajiv", "Akhil", "Vishvash", "Sabnam", "Vipol", "Rinku", "Vishalmoni", "Babita", "Sunita", "Shyama", "Shekher", "Poonam", "Jyoti", "Somender", "Renurinki", "Ramwati", "Ilema", "Satender", "Arunvicky", "Sanjit", "Kartikkaku", "Satyenderkalu", "Sureshtinku", "Nisha", "Rubina", "Momin", "Ranbir", "Manish", "Varun", "Kamli", "Fitrat", "Kanchan", "Mukhtyar", "Arvind", "Shashikajal", "Krishka", "Ram", "Dipendra", "Bulbuldevi", "Rajan", "Ashishaashu", "Suresh", "Rangeeta", "Kanheya", "Khushbu", "Ahsaminjuhi", "Gajender", "Rinukanwr", "Neelima", "Meenu", "Rahul", "Ranjana", "Birjesh", "Nandni", "Rakhi", "Tammanne", "Satpal", "Bhavesh", "Vipiv", "Sanjay", "Khadak", "Jitender", "Vinay", "Sivani", "Akansha", "Heena", "Matuldevi", "Saanu", "Heenazamil", "Roshini", "Abhi", "Jaswant", "Shikha", "Shashank", "Anupam", "Abhay", "Parnav", "Manorma", "Arman", "Raja", "Lalit", "Tara", "Samreen", "Meena", "Anita", "Tapsam", "Yuvraj", "Uttam", "Ramvati", "Bhawana", "Nitin", "Nootan", "Jyoty", "Resham", "Sarojani", "Subhdra", "Mohit", "Puneet", "Ravindra", "Aruna", "Anoop", "Sawan", "Palak", "Manjeet", "Bindiya", "Kaushaliya", "Sunali", "Gulafsa", "Alka", "Gaurav", "Sumit", "Laxami", "Ravi", "Dharmender", "Khuma", "Sugantisonali", "Ritu", "Kripal", "Priti", "Ziyabul", "Ekta", "Nanhu", "Gunjan", "Puja", "Aakash", "Firakat", "Durganand", "Tausin", "Naval", "Rita", "Gorav", "Ruby", "Dimpal", "Preetam", "Rada", "Mansi", "Sugodh", "Ashutoshdeepak", "Shukla", "Mayur", "Namarta", "Pawan", "Nand", "Sita", "Inder", "Kureja", "Kamre", "Saroj", "Babloo", "Bhrat", "Munni", "Raj", "Sarthak", "Sefalisweta", "Sumnesh", "Gytrigarg", "Hemani", "Vishal", "Archna", "Narbada", "Ramvilash", "Dhansinghpuri", "Deepali", "Badrunisha", "Abhimanyu","Mannimanish", "Dheeraj", "Meera", "Pavan", "Kamni","Chanchal", "Shyam", "Lokesh", "Phulkana", "Vandhna", "Amarjeet", "Munender", "Rekha", "Babansuresh", "Ramsurat", "Rampati", "Astha", "Dhanwantidevi", "Fooljhnah", "Nikhleshwar", "Priyanka", "Aman", "Mohini", "Lakhi", "Gul", "Sitaram", "Rubi", "Kiranvina", "Sonia", "Tamsa", "Rima", "Prakul", "Raman", "Vivek", "Santna", "Sone", "Ishant", "Sagartakla", "Kali", "Deepika", "Priyaki", "Versa", "Hukum", "Bobby", "Jeta", "Pushpa", "Som", "Chandesh", "Nikhil", "Bablu", "Akshay", "Karunakar", "Axat", "Ashok", "Garima", "Tanuja", "Ranju", "Guddi", "Gungun", "Milan", "Sunil", "Rajmani", "Kirti","Akkash", "Prema", "Shana", "Nanku", "Nanak", "Patikmonu", "Harman", "Munbura", "Gurmit", "Shathi", "Sama", "Himanshi", "Barjraj", "Kalyani", "Kabir", "Sandhaya", "Nayana", "Ratikant", "Ruchi", "Nishachinu", "Poornima", "Dalip", "Birender", "Sunaki", "Sandeep", "Ravinder","Parash", "Simran", "Nainshi", "Aashik", "Angreg", "Mannu","Prateek", "Himansi", "Kalawati", "Kumari", "Biwa", "Gurdarshan", "Hemraj", "Kuldeep", "Yashika", "Savita,", "Guddu", "Raghuveer", "Deepa", "Sunder", "Ritik", "Moti", "Ishwar", "Batloon", "Jitendra", "Mukesh", "Amarapal", "Kajal", "Rishab", "Ravirinkku", "Ashsish", "Ramaiya", "Rinki", "Rajesh", "Ombir", "Rupa", "Sneha", "Kusum", "Subhadra", "Ashish", "Shabana", "Munnaravi", "Shakshi", "Sonam", "Vaishali", "Reeta", "Subhamvikash", "Sanavvar", "Chotelal","Bhanwar", "Kesnata"], + +"Buddhist": ["Abhaya", "Achara", "Adhiarja", "Adika", "Agung", "Altansarnai", "Altantsetseg", "Amanthi", "Amitaruci", "Ananada", "Anantacaritra", "Anantamati", "Anantavikrama", "Angkasa", "Anh", "Anong", "Anuman", "Anzan", "Aom", "Arban", "Arkar", "Asahi", "Ashwaghosh", "Asnee", "Atid", "Aung", "Avalokitesvara", "Aye", "Bagaskoro", "Bagus", "Baharupa", "Bahuksana", "Baika", "Bakti", "Balavrata", "Bankei", "Banyu", "Banzan", "Bao", "Basho", "Bassui", "Bat Erdene", "Bataar", "Batbayar", "Batjargal", "Batsaikhan", "Batuhan", "Batukhan", "Batzorig", "Bayarmaa", "Beam", "Bensen", "Bhadanta", "Bhadrapala", "Bhismasvaraja", "Bi", "Boddhidharma", "Bodhi", "Bodhidharma", "Bolin", "Bolormaa", "Boon-Mee", "Boon-Nam", "Boonsri", "Brahmadhvaja", "Brahmajetas", "Brhadsphalas", "Bu", "Buddha", "Buddhacaksus", "Buddhamitra", "Buddhanandi", "Budh", "Budhasuta", "Budi", "Bupposo", "Busarakham", "Butsugen", "Butsuju", "Buu", "Cahya", "Caihong", "Cais", "Cakrasmavara", "Candavira", "Candragarbha", "Candrakirti", "Candrasurya", "Canh", "Cao", "Cetan", "Chaghatai", "Chai Son", "Chaisai", "Chaiya", "Chakan", "Chalerm", "Chalermchai", "Chaloem", "Champo", "Chandaka", "Channarong", "Charanpreet", "Charini", "Chenda", "Chenghiz", "Chesa", "Chewa", "Chiko", "Chime", "Chimeg", "Chingis", "Chinshu", "Chinua", "Chit", "Choden", "Chodren", "Chomden", "Chorei", "Chosui", "Chozen", "Chuanchen", "Chugai", "Chuluun", "Chuluunbold", "Chuong", "Cudabhiksuni", "Cuong", "Da Shin", "Dachen", "Daibai", "Daiden", "Daido", "Daiji", "Daikaku", "Daikan", "Daiko", "Dainin", "Daishin", "Daivika", "Dampa", "Danan", "Danasura", "Danyasarathi", "Dasbala", "Dashin", "Dawa", "Dayakurca", "Decha", "Dechen", "Dedan", "Denkatsu", "Denpa", "Denpo", "Devasrigarbha", "Devatideva", "Dhanayus", "Dhanibuddha", "Dhanuraja", "Dharmadhara", "Dharmadhatu", "Dharmakara", "Dhiman", "Dhitika", "Diki", "Dipankara", "Divijata", "Dohna", "Dojin", "Dokai", "Dolkar", "Doryu", "Doyu", "Drdahana", "Drdhahanus", "Drtaka", "Druk", "Druki", "Duangkamol", "Duanphen", "Dundhabisvara", "Durdharsakumara", "Dzhambul", "Eido", "Eila", "Eindra", "Ekai Jinko", "Ekaijinko", "Enkhjargal", "Enkhtuya", "Enmei", "Erden", "Erdenechimeg", "Erhi", "Eshin", "Etsudo", "Fa", "Fai", "Feng", "Fu", "Fuji", "Fumihiro", "Fumiko", "Gan", "Ganbaatar", "Ganbold", "Ganendra", "Gang", "Gansukh", "Gantulga", "Ganzorig", "Garma", "Gawa", "Genghis", "Genji", "Genjin", "Genjo", "Genkai", "Genkaku", "Genkei", "Genki", "Genko", "Genno", "Gensho", "Gerel", "Getsuren", "Gewa", "Goldeheve", "Gomin", "Gunaketu", "Gurtej", "Gurtek", "Hakaku", "Hakue", "Hanumanta", "Hanumanth", "Harsula", "Hayma", "Haymar", "Heljo", "Hella", "Hema", "Hiten", "Hla", "Hlaing", "Hodo", "Hopkins", "Hopkinson", "Hosho", "Htay", "Htet", "Htin", "Htun", "Htut", "Htway", "Indazita", "Indivar", "Indrajalin", "Inzali", "Issan", "Itsuki", "Jahlee", "Jahleel", "Jampa", "Jayasurya", "Jayathi", "Jiao-long", "Jie", "Jiho", "Jikai", "Jimmyl", "Jimuta", "Jin", "Jiyu", "Jochi", "Justeene", "Justen", "Kamnan", "Kan", "Kannika", "Kanok", "Kanokwan", "Kanshin", "Karambir", "Karamia", "Karawek", "Karma", "Karnchana", "Kasemchai", "Keisho", "Kesang", "Khemkhaeng", "Khenbish", "Khin", "Khine", "Khongordzol", "Khulan", "Khun Mae", "Khunbish", "Kittibun", "Kittichat", "Kla", "Klaew Kla", "Kob Sook", "Kobutsu", "Koge", "Kohsoom", "Koju", "Kokan", "Kokoro", "Kongkea", "Kraisee", "Kriang Krai", "Kulap", "Kumbikhanna", "Kwang", "Kyaw", "Kyi", "Kyine", "Kywe", "Lamon", "Lawan", "Leakhena", "Lek", "Lhamu", "Li Jie", "Li Jing", "Li Jun", "Li Na", "Li Wei", "Li Xiu", "Liu Wei", "Lkhagvas\u00fcren", "Loday", "Longwei", "Lwin", "Madee", "Malee", "Malivalaya", "Manjusri", "Marlar", "Maung", "Mayuree", "Medekhgui", "Mee Noi", "Mima", "Minato", "Mongolekhorniiugluu", "Monkh Erdene", "Monkhbat", "Munish", "Munkhtsetseg", "Muunokhoi", "Myaing", "Myat", "Myia", "Myine", "Myint", "Myitzu", "Myo", "Naing", "Nandar", "Narangerel", "Narantsetseg", "Natcha", "Nekhii", "Nilar", "Nima", "Nin", "Nugai", "Nyan", "Nyein", "Nyunt", "Och", "Od", "Odgerel", "Odtsetseg", "Odval", "Ogtbish", "Ohma", "Ohnmar", "Oktai", "Opame", "Orochi", "Otgonbayar", "Oyunchimeg", "Oyuunchimeg", "Padmayani", "Paitoon", "Pakpao", "Pali", "Pasang", "Patakin", "Pema", "Pemala", "Penden", "Pensri", "Phaibun", "Phairoh", "Phassakorn", "Phawta", "Phichit", "Phitsamai", "Phone", "Phueng", "Phurba", "Phyu", "Pimchan", "Ploy", "Pururavas", "Qacha", "Qara", "Rinzen", "Ritthirong", "Rochana", "Saengdao", "Sakda", "Sakyamuni", "Samorn", "San", "Sandar", "Sandeepe", "Sandeepen", "Sangmu", "Sankalpa", "Sanoh", "Sarangerel", "Sarantsatsral", "Sarasija", "Sarnai", "Shakyasinha", "Shein", "Shenden", "Shway", "Siddhartha", "Sirichai", "Sirikit", "Siriporn", "Socheata", "Soe", "Somchair", "Sonam", "Soo", "Sook", "Sopa", "Sophea", "Sopheak", "Sou", "Sovann", "Sovannah", "Sovay", "Sreyleak", "Sud", "Suda", "Sukhbataar", "Sunako", "Sunstra", "Suong", "Susu", "Syaoran", "Taban", "Tadaaki", "Tae", "Taichi", "Taiga", "Taiki", "Taji", "Taka", "Takahiro", "Takai", "Takako", "Takara", "Takarra", "Takashi", "Takato", "Takaya", "Takeo", "Taki", "Taku", "Takuma", "Tanawat", "Tarkhan", "Taru", "Tasanee", "Tashi", "Tathagat", "Tathagata", "Tatharaj", "Teesta", "Temujin", "Tenpa", "Tenzin", "Tenzin; Tenzing", "Tenzing", "Terbish", "Thagyamin", "Tham", "Thandar", "Thang", "Thanh", "Thant", "Thao", "Thaung", "Thawda", "Thawka", "Theavy", "Thein", "Theingi", "Therein", "Thet", "Thida", "Thien", "Thiha", "Thiri", "Tho", "Thuan", "Thuc", "Thuong", "Thura", "Thuta", "Thuy", "Thuya", "Thuyet", "Thuza", "Thuzar", "Ti", "Tida", "Tien", "Tika", "Tin", "Tohru", "Tokyo", "Tomiche", "Tomiichi", "Tomo", "Tomoe", "Tomohiro", "Tomoko", "Tomorbaatar", "Tomoya", "Tong", "Tonica", "Tora", "Toru", "Toshiko", "Toshiro", "Trieu", "Trigya", "Tsetseg", "Tsetsegmaa", "Tsolmon", "Tsubame", "Tsubasa", "Tsukiya", "Tsumugi", "Tsuru", "Tu", "Tun", "Turgen", "Tuya", "Tuyen", "Tuyet", "Tylanni", "Ulagan", "Upagupta", "Uranchimeg", "Uttiya", "Uuliinyagaantsetseg", "Vipaschit", "Wang Fang", "Wang Jing", "Wang lei", "Wang Li", "Wang Wei", "Wang Xiu", "Wang Yong", "Wendywee", "Wunna", "Yadana", "Yadanar", "Yamato", "Yangchen", "Yangkyi", "Yarzar", "Yaza", "Yeshe", "Yonten", "Youta", "Yul", "Yun", "Yuu", "Yuuma", "Yuuto", "Yuzana", "Zachoeje", "Zar", "Zarni", "Zaw", "Zenji", "Zeya", "Zeyar", "Zhang Li", "Zhang Min", "Zhang Wei", "Zhang Xiu", "Zhang Yong", "A-wut", "Abhaya", "Adhiarja", "Adika", "Agung", "Amitaruci", "Ananada", "Anantacaritra", "Anantamati", "Anantavikrama", "Anh", "Anuman", "Anurak", "Anzan", "Arban", "Arkar", "Asahi", "Ashwaghosh", "Asnee", "Aung", "Avalokitesvara", "Aye", "Bagaskoro", "Bagus", "Baharupa", "Bahuksana", "Baika", "Bakti", "Balavrata", "Bankei", "Banko", "Banyu", "Banzan", "Bao", "Basho", "Bassui", "Bat Erdene", "Bataar", "Batjargal", "Batsaikhan", "Batuhan", "Batukhan", "Batzorig", "Bensen", "Bhadanta", "Bhadrapala", "Bhismasvaraja", "Bhuddisrigarbha", "Boddhidharma", "Bodhidharma", "Bolin", "Boon-Mee", "Boon-Nam", "Brahmadhvaja", "Brahmajetas", "Brhadsphalas", "Bu", "Buddhacaksus", "Buddhamitra", "Buddhanandi", "Budh", "Budhasuta", "Budhh", "Budi", "Bupposo", "Butsugen", "Butsuju", "Buu", "Cahya", "Cais", "Cakrasmavara", "Candavira", "Candragarbha", "Candrakirti", "Candrasurya", "Canh", "Chaghatai", "Chai Son", "Chaisai", "Chaiya", "Chakan", "Chalerm", "Chalermchai", "Chaloem", "Champo", "Chandaka", "Channarong", "Charanpreet", "Chenghiz", "Chiko", "Chimon", "Chingis", "Chinshu", "Chinua", "Chorei", "Chosui", "Chozen", "Chuanchen", "Chugai", "Chuluun", "Chuluunbold", "Chuong", "Cuong", "Da Shin", "Dachen", "Daeshim", "Daibai", "Daiden", "Daido", "Daiji", "Daikaku", "Daikan", "Daiko", "Dainin", "Daishin", "Dampa", "Danan", "Danasura", "Danyasarathi", "Dasbala", "Dashin", "Dayakurca", "Decha", "Dechen", "Dedan", "Denkatsu", "Denpa", "Denpo", "Devasrigarbha", "Devatideva", "Dhanayus", "Dhanibuddha", "Dhanuraja", "Dharmadhara", "Dharmakara", "Dhiman", "Dhitika", "Dipankara", "Divijata", "Dojin", "Dokai", "Doryu", "Doyu", "Drdahana", "Drdhahanus", "Drtaka", "Druki", "Dundhabisvara", "Durdharsakumara", "Dzhambul", "Eido", "Ekai Jinko", "Ekaijinko", "Erden", "Eshin", "Etsudo", "Fa", "Fai", "Feng", "Fu", "Fumihiro", "Gan", "Ganbaatar", "Ganbold", "Ganendra", "Gang", "Gansukh", "Gantulga", "Ganzorig", "Genghis", "Genjin", "Genjo", "Genkaku", "Genkei", "Genki", "Genko", "Genno", "Genpo", "Gensho", "Getsuren", "Gomin", "Gunaketu", "Gurtej", "Gurtek", "Hakaku", "Hakue", "Hanumanta", "Hanumanth", "Harsula", "Hemlal", "Hiten", "Hlaing", "Hodo", "Hopkins", "Hopkinson", "Hosho", "Htay", "Htet", "Htin", "Htun", "Htut", "Htway", "Indazita", "Indivar", "Indrajalin", "Issan", "Itsuki", "Jahlee", "Jahleel", "Jayasurya", "Jiao-long", "Jiho", "Jikai", "Jimmyl", "Jimuta", "Jin", "Jiyu", "Jochi", "Justen", "Kamnan", "Kan", "Kanshin", "Karambir", "Kasemchai", "Keisho", "Khemkhaeng", "Khenbish", "Khin", "Khine", "Khunbish", "Kittichat", "Kla", "Klaew Kla", "Kob Sook", "Kobutsu", "Koge", "Koju", "Kokan", "Koshing", "Kraisee", "Kriang Krai", "Kumbikhanna", "Kywe", "Lamon", "Lek", "Li Jie", "Li Jun", "Li Qiang", "Li Wei", "Lkhagvas\u00fcren", "Loday", "Longwei", "Lwin", "Maung", "Mee Noi", "Minato", "Mongkut", "Mongolekhorniiugluu", "Monkh Erdene", "Monkhbat", "Munish", "Muunokhoi", "Myaing", "Myat", "Myint", "Myo", "Naimanzuunnadintsetseg", "Naing", "Nugai", "Nyan", "Nyein", "Nyunt", "Och", "Od", "Odgerel", "Ogtbish", "Ohnmar", "Oktai", "Orochi", "Otgonbayar", "Padmayani", "Paitoon", "Partha", "Pasang", "Patakin", "Phassakorn", "Phichit", "Phyu", "Pururavas", "Qara", "Ritthirong", "Sakda", "Sakyamuni", "Sandeepe", "Sandeepen", "Sangmu", "Sankalpa", "Sarasija", "Shakyasinha", "Shein", "Shway", "Siddhartha", "Sirichai", "Soe", "Somchair", "Sopheak", "Sou", "Sovay", "Sud", "Sukhbataar", "Susu", "Syaoran", "Taban", "Tadaaki", "Tadashi", "Tae", "Taichi", "Taiga", "Taiki", "Taji", "Takahiro", "Takai", "Takashi", "Takato", "Takaya", "Takeo", "Takuma", "Tanawat", "Tarkhan", "Taru", "Tashi", "Tathagat", "Tathagata", "Tatharaj", "Teesta", "Temujin", "Tenpa", "Tenzin", "Tenzing", "Terbish", "Thagyamin", "Thant", "Thaung", "Thein", "Therein", "Thien", "Thiha", "Thuan", "Thuc", "Thuong", "Thura", "Thuta", "Thuy", "Thuya", "Thuyet", "Thuza", "Tin", "Tohru", "Tokyo", "Tomiche", "Tomiichi", "Tomohiro", "Tomorbaatar", "Tomoya", "Toru", "Toshiro", "Trieu", "Trigya", "Tsukiya", "Tu", "Tun", "Turgen", "Twan", "Ulagan", "Upagupta", "Uttiya", "Vipaschit", "Wang lei", "Wang Wei", "Wang Yong", "Wunna", "Xanadu", "Yamato", "Yarzar", "Yaza", "Yeshe", "Yonten", "Youta", "Yul", "Yuu", "Yuuma", "Yuuto", "Zachoeje", "Zaw", "Zenji", "Zeya", "Zeyar", "Zhang Wei", "Zhang Yong"], + +"Jain": ["Aadinath", "Aagam", "Aakash", "Aalok", "Aanat", "Aanay", "Aatman", "Abhay", "Abhay Kumar", "Abhay Prasad", "Abhayendra", "Abhi", "Abhijeet", "Abhinandan", "Abhishek", "Adinath", "Ajatshatru", "Ajey", "Ajit", "Ajit Kumar", "Ajit Prasad", "Ajitnath", "Akalank", "Akash", "Akshat", "Akshay", "Alok", "Amar", "Amogh", "Amoghvarsh", "Amrish", "Amritchandra", "Amrutchandra", "Anant", "Anant Kumar", "Anant Prasad", "Anantnath", "Anish", "Ankesh", "Ankit", "Ankur", "Anuj", "Anup", "Archit", "Arhadas", "Arhant", "Arhat", "Arhnath", "Arihant", "Arinjay", "Arish", "Atik", "Atish", "Atith", "Ativeer", "Bahubali", "Balbhadra", "Baldev", "Bhaarat", "Bhadrabahu", "Bhadresh", "Bhamandal", "Bharam", "Bharat", "Bharat Kumar", "Bharateshwar", "Bharatraj", "Bhargav", "Bhartendu", "Bhartesh", "Bhaskar", "Bhaumik", "Bhautik", "Bhavesh", "Bhavin", "Bhumi", "Bhupal", "Bhuvanedra Kumar", "Bhuvanendra", "Bhuvanesh", "Bimbisar", "Bindusar", "Bramha", "Bramhendra", "Brijesh", "Chaitan", "Chakrawarti", "Chakrvarti", "Chamundrai", "Chandragupta", "Chandrakant", "Chandranath", "Chandraprabhu", "Chetak", "Chetan", "Chintan", "Chirag", "Chirayu", "Chitrang", "Dakshesh", "Darsh", "Darshan", "Darshil", "Darshit", "Deshbhushan", "Devang", "Devendra", "Devendra Kumar", "Devesh", "Dhanesh", "Dhanpal", "Dharin", "Dharm", "Dharmanath", "Dharmendra", "Dharmesh", "Dharmin", "Dharnendra", "Dharsen", "Dhaval", "Dhimant", "Dhiram", "Dhiren", "Dhvanish", "Digant", "Dipesh", "Dirgh", "Divyesh", "Falgun", "Fenil", "Gajkumar", "Gandhar", "Gaurang", "Gitesh", "Gomtesh", "Goutam", "Gunesh", "Gyanendra", "Hardik", "Harikesh", "Harsh", "Harshit", "Heer", "Hemchandra", "Hemendra", "Hetul", "Ilesh", "Indrabhuti", "Jainam", "Jainesh", "Jaipal", "Jay", "Jaypal", "Jeet", "Jigar", "Jignesh", "Jineshwar", "Jiten", "Jitesh", "Jugal", "Kalyan", "Karan", "Kaustubh", "Krupesh", "Krutarth", "Kulbhushan", "Kulin", "Kumarpal", "Kunthinath", "Kunthu", "Kunthunath", "Kunthusagar", "Lalit", "Litesh", "Mahavir", "Mallesh", "Mallinath", "Manav", "Mandar", "Mangal", "Manthan", "Maulik", "Meet", "Mihir", "Milind", "Mitul", "Mokshit", "Mrugesh", "Mrunal", "Munindra", "Munindra Kumar", "Munisuvrat", "Nabhi", "Nabhikumar", "Nabhinandan", "Nabhiraj", "Nabhiray", "Nagendra", "Nagkumar", "Nakesh", "Namikumar", "Naminath", "Nandivardhan", "Nemdas", "Nemendra", "Nemi", "Nemichand", "Nemichandra", "Nemidas", "Nemikumar", "Neminath", "Nemish", "Nemnath", "Nihir", "Niket", "Nikhil", "Nilesh", "Nimesh", "Nirav", "Nirbhay", "Nirmal", "Nirmal Kumar", "Nirmal Prasad", "Nishal", "Nishant", "Nishith", "Nitesh", "Padmakumar", "Padmanath", "Padmaprabhu", "Padmaraj", "Pallav", "Parag", "Paras", "Paraskumar", "Parshwa", "Parshwakumar", "Parshwanath", "Pathik", "Piyush", "Prabhav", "Pradumna", "Pradyot", "Pragnesh", "Prajesh", "Pranav", "Pranay", "Pranjal", "Prasenjit", "Prashant", "Pratham", "Pratik", "Pritesh", "Purav", "Rachit", "Rahi", "Raj", "Rajendra", "Rajkumar", "Rakshit", "Rashesh", "Ratesh", "Ratnakar", "Ratnesh", "Ravi", "Ravindra", "Riddhesh", "Rishabhdev", "Rishabhkumar", "Rishabhnath", "Rishabhraj", "Ritesh", "Ritul", "Romit", "Ronak", "Rupin", "Sagar", "Saket", "Sakshat", "Samant", "Samantbhadra", "Samarth", "Sambhav", "Sambhavnath", "Samkit", "Sammed", "Samprati", "Samvar", "Samyak", "Sanket", "Sanyat", "Saran", "Sarvesh", "Sashank", "Saurabh", "Shantikumar", "Shantilal", "Shantinath", "Shantiprasad", "Shatichandra", "Sheetalnath", "Sheetalprasad", "Shrenik", "Shreyans", "Shreyansnath", "Shreyas", "Shripal", "Siddhant", "Siddharth", "Sidhesh", "Sitanshu", "Smit", "Subahu", "Subham", "Suchit", "Sudarshan", "Sudesh", "Sudharma", "Suhash", "Sujash", "Aarya", "Aaushi", "Aditi", "Akshya", "Alpa", "Aneri", "Angi", "Angira", "Anisha", "Anjana", "Ankita", "Anshita", "Anuja", "Arati", "Archa", "Arpita", "Arti", "Avani", "Bela", "Bhakti", "Bharati", "Bhavana", "Bhavika", "Bhavisha", "Bhranti", "Bina", "Binal", "Binita", "Bramhi", "Bramhila", "Chaitali", "Chakreshwari", "Champa", "Champa Kumari", "Champapuri", "Chandana", "Chandanbala", "Charmi", "Chelana", "Chetana", "Chhaya", "Chiti", "Darsana", "Darshana", "Darshika", "Daya", "Deshna", "Devanshi", "Devi", "Dhara", "Dharini", "Dhisha", "Dhruti", "Dhvani", "Diksha", "Dipti", "Dishita", "Divya", "Divyaprabha", "Drishti", "Falguni", "Foram", "Gargi", "Garima", "Gatha", "Gautami", "Gira", "Harsha", "Hema", "Hemali", "Hemanshi", "Indrani", "Jahanvi", "Jalpa", "Jayana", "Jigisha", "Jinali", "Jinisha", "Jwala", "Jwalamalini", "Kajal", "Kalika", "Keya", "Khusali", "Khyati", "Komal", "Krupali", "Kruti", "Kshama", "Kushmandini", "Labdhi", "Lajja", "Madhvi", "Maitri", "Mallika", "Mangala", "Manishi", "Manshi", "Margi", "Marudevi", "Meghal", "Miti", "Moksha", "Monal", "Mruga", "Mukti", "Nainshi", "Nami", "Namrata", "Nandita", "Nikita", "Nimisha", "Nirmala", "Nishita", "Nitali", "Nitya", "Padmaja", "Padmavati", "Padmini", "Pava", "Pawapuri", "Pooja", "Prabha", "Prabhavati", "Pradnya", "Pragya", "Pratima", "Pratishta", "Puja", "Purti", "Rajal", "Rajalmati", "Rajimati", "Rajmati", "Rajul", "Rajulmati", "Rajvi", "Rakhi", "Ramya", "Ratnali", "Riddhi", "Rima", "Ritvi", "Riya", "Ruchira", "Rushita", "Sadhana", "Sadhna", "Sakshi", "Samali", "Samata", "Samhita", "Sandhya", "Sanmati", "Sapana", "Saraswati", "Sashi", "Satya", "Saumya", "Shaila", "Shaili", "Shailja", "Shantala", "Shanti", "Sheetal", "Shena", "Shila", "Shilpa", "Shital", "Shivani", "Shraddha", "Shrina", "Shruti", "Shubhali", "Shyama", "Siddhi", "Sonal", "Sonali", "Sreya", "Srusti", "Stuti", "Sumangala", "Sumati", "Sundari", "Suprabha", "Surali", "Sushali", "Suta", "Svati", "Tamanna", "Tapasya", "Tejal", "Toral", "Trishala", "Trishla", "Trushna", "Trushti", "Tulika", "Tulya", "Udita", "Ullupi", "Umangi", "Unnati", "Urja", "Urmil", "Urmila", "Urvi", "Ushma", "Vaidehi", "Vaishali", "Vallabhi", "Vama", "Vandana", "Vapra", "Vatsha", "Vibha", "Vibhuti", "Vidhi", "Vidya", "Vinaya", "Vipra", "Virani", "Vishali", "Vruddhi", "Vrunda", "Vrushti", "Vrutti", "Yama", "Yashashvi", "Yesha", "Zankhana", "Zarna", "Zeel"], + +"Christian": ["THOMAS", "JAMES", "JACK", "DANIEL", "MATTHEW", "RYAN", "JOSHUA", "LUKE", "SAMUEL", "JORDAN", "ADAM", "MICHAEL", "ALEXANDER", "CHRISTOPHER", "BENJAMIN", "JOSEPH", "LIAM", "JAKE", "WILLIAM", "ANDREW", "GEORGE", "LEWIS", "OLIVER", "DAVID", "ROBERT", "JAMIE", "NATHAN", "CONNOR", "JONATHAN", "HARRY", "CALLUM", "AARON", "ASHLEY", "BRADLEY", "JACOB", "KIERAN", "SCOTT", "SAM", "JOHN", "BEN", "MOHAMMED", "NICHOLAS", "KYLE", "CHARLES", "MARK", "SEAN", "EDWARD", "STEPHEN", "RICHARD", "ALEX", "PETER", "DOMINIC", "JOE", "REECE", "LEE", "RHYS", "STEVEN", "ANTHONY", "CHARLIE", "PAUL", "CRAIG", "JASON", "DALE", "ROSS", "CAMERON", "LOUIS", "DEAN", "CONOR", "SHANE", "ELLIOT", "PATRICK", "MAX", "SHAUN", "HENRY", "SIMON", "TIMOTHY", "MITCHELL", "BILLY", "PHILIP", "JOEL", "JOSH", "MARCUS", "DYLAN", "CARL", "ELLIOTT", "BRANDON", "MARTIN", "TOBY", "STUART", "GARETH", "DANNY", "CHRISTIAN", "TOM", "DECLAN", "KARL", "MOHAMMAD", "MATHEW", "JAY", "OWEN", "DARREN", "RICKY", "TONY", "BARRY", "LEON", "TERRY", "GREGORY", "BRIAN", "KEITH", "ANTONY", "JUSTIN", "MARTYN", "LEIGH", "ABDUL", "DAMIEN", "STEWART", "ROBIN", "IAIN", "GAVIN", "TREVOR", "GLEN", "RAYMOND", "MALCOLM", "GARRY", "BRETT", "KENNETH", "ROGER", "GLENN", "TERENCE", "DEREK", "IAN", "KEVIN", "GARY", "ALAN", "NEIL", "NIGEL", "COLIN", "GRAHAM", "ADRIAN", "WAYNE", "JEREMY", "RUSSELL", "JEFFREY", "CLIVE", "PHILLIP", "JULIAN", "GEOFFREY", "ROY", "VINCENT", "GORDON", "DUNCAN", "LESLIE", "RONALD", "DOUGLAS", "FRANCIS", "GRAEME", "GUY", "ERIC", "ALLAN", "GERARD", "GERALD", "HOWARD", "DENNIS", "BRUCE", "DONALD", "BERNARD", "FRANK", "NORMAN", "FREDERICK", "ARTHUR", "LEONARD", "LAWRENCE", "BRYAN", "CLIFFORD", "STANLEY", "VICTOR", "HUGH", "MOHAMED", "ALBERT", "MAURICE", "DENIS", "RODNEY", "BARRIE", "REGINALD", "ERNEST", "ALFRED", "HAROLD", "MELVYN", "WALTER", "EDWIN", "RALPH", "IVAN", "CYRIL", "SIDNEY", "ROYSTON", "HERBERT", "DERRICK", "NEVILLE", "IVOR", "DESMOND", "WILFRED", "SYDNEY", "CECIL", "NOEL", "FRED", "ARNOLD", "ALEC", "REBECCA", "LAUREN", "JESSICA", "CHARLOTTE", "HANNAH", "SOPHIE", "AMY", "EMILY", "LAURA", "EMMA", "CHLOE", "SARAH", "LUCY", "KATIE", "BETHANY", "JADE", "MEGAN", "ALICE", "RACHEL", "SAMANTHA", "DANIELLE", "HOLLY", "ABIGAIL", "OLIVIA", "STEPHANIE", "ELIZABETH", "VICTORIA", "NATASHA", "GEORGIA", "ZOE", "NATALIE", "ELEANOR", "SHANNON", "PAIGE", "GEORGINA", "GEMMA", "NICOLE", "CHELSEA", "KIRSTY", "ALEXANDRA", "MELISSA", "JENNIFER", "HAYLEY", "LOUISE", "KATHERINE", "JODIE", "GRACE", "ANNA", "MOLLY", "AMBER", "JASMINE", "KAYLEIGH", "KELLY", "HARRIET", "ASHLEIGH", "CATHERINE", "LEAH", "NICOLA", "FRANCESCA", "NAOMI", "KATE", "ABBIE", "CLAIRE", "LEANNE", "RACHAEL", "ROSIE", "AIMEE", "ELLIE", "SIAN", "KIMBERLEY", "LYDIA", "HOLLIE", "STACEY", "BETHAN", "AMELIA", "BETH", "KATHRYN", "HEATHER", "LISA", "HELEN", "ELLA", "ROBYN", "CHANTELLE", "ELLEN", "DAISY", "DEMI", "COURTNEY", "GABRIELLE", "YASMIN", "LILY", "RHIANNON", "MARIA", "KERRY", "IMOGEN", "REBEKAH", "JORDAN", "JOANNA", "CAITLIN", "JEMMA", "TONI", "MICHELLE", "JOANNE", "DONNA", "CLARE", "JENNA", "CAROLINE", "AMANDA", "KAREN", "ALISON", "SARA", "CARLY", "RUTH", "FIONA", "ANGELA", "SUZANNE", "KATY", "MARIE", "CHERYL", "MELANIE", "SALLY", "JULIE", "CHARLENE", "TRACEY", "DEBORAH", "LINDSEY", "LINDSAY", "SUSAN", "JANE", "KIM", "CARLA", "CHRISTINE", "DAWN", "TANYA", "JENNY", "ANDREA", "LYNDSEY", "JACQUELINE", "LYNSEY", "MARY", "SHARON", "TRACY", "PAULA", "WENDY", "LORRAINE", "TINA", "ANNE", "JULIA", "GILLIAN", "VANESSA", "ANN", "JAYNE", "DIANE", "SANDRA", "TERESA", "LINDA", "ELAINE", "NICHOLA", "CAROL", "HEIDI", "PATRICIA", "BEVERLEY", "DENISE", "TARA", "CLAIR", "SONIA", "DEBBIE", "LESLEY", "ANITA", "DEBRA", "JANET", "MARGARET", "MANDY", "PAULINE", "LYNN", "YVONNE", "JUDITH", "PAMELA", "CAROLE", "BARBARA", "GAIL", "LYNNE", "JANICE", "JILL", "KATHLEEN", "SHIRLEY", "ANNETTE", "CAROLYN", "VALERIE", "JEANETTE", "KAY", "MAXINE", "FRANCES", "THERESA", "LYNDA", "MAUREEN", "ROSEMARY", "MICHELE", "SHEILA", "JEAN", "MARION", "JOAN", "MARILYN", "JUNE", "MARIAN", "BRENDA", "EILEEN", "HILARY", "SYLVIA", "IRENE", "DOROTHY", "JOSEPHINE", "JOYCE", "HAZEL", "RITA", "GERALDINE", "DIANA", "CHRISTINA", "PENELOPE", "JOY", "DOREEN", "GLYNIS", "VERONICA", "AUDREY", "BERYL", "NORMA", "GLORIA", "MARJORIE", "CYNTHIA", "MAVIS", "MARLENE", "BETTY", "EVELYN", "IRIS", "VERA", "BRIDGET", "LILIAN", "MONICA", "GLENYS", "VIVIENNE", "DAPHNE", "PHYLLIS", "GWENDOLINE", "DORIS", "MURIEL"], + +"Sikh": ["Abhaijeet", "Amanjit", "Amanpreet", "Amardeep", "Anantjeet", "Anokh", "Arinajeet", "Arman", "Arunvir", "Aryan", "Ashreet", "Avaneet", "Baljeet", "Balmeet", "Balpreet", "Bhavdeep", "Bhavmeet", "Birpal", "Bishanpal", "Bishmeet", "Bismeet", "Brahmjot", "Brahmpal", "Brahmvir", "Chanderjit", "Chanderpreet", "Charanpal", "Charnjit", "Chattarpal", "Daler", "Daljeet", "Dhanjeet", "Dhanwant", "Dharam", "Dilbaag", "Dilmeet", "Divyajot", "Fateh", "Gagan", "Guneet", "Gurdas", "Gurman", "Hans", "Harbir", "Harcharanjit", "Hardayal", "Hardeep", "Hargun", "Harjeet", "Harman", "Harnek", "Harprit", "Ikhtiar", "Imrat", "Inderpreet", "Indivar", "Indrajit", "Ishapreet", "Isharjeet", "Ishjeet", "Ishmeet", "Ishpal", "Ishwar", "Ishwinder", "Isminder", "Jaghr", "Jagjeet", "Janeesh", "Japneet", "Jasjeev", "Jasmanvir", "Jasveer", "Jaswant", "Jeet", "Jivan", "Jugraj", "Kanwal", "Karanvir", "Kavneet", "Khushjeet", "Khushpreet", "Khushwant", "Kiranjit", "Kirpal", "Kuldeep", "Lamjot", "Lavanya", "Livtar", "Lokpreet", "Lovejeet", "Lovepreet", "Madhupreet", "Mahajeet", "Mahipal", "Mandeep", "Maneet", "Manpreet", "Manraj", "Mohanpal", "Mohinder", "Naampreet", "Naindeep", "Naitarpal", "Narveer", "Navnihal", "Navpreet", "Navraj", "Neelamjeet", "Ojas", "Ompreet", "Onkarjit", "Onkarpreet", "Paramjeet", "Paramvir", "Pargatjeet", "Prajit", "Praneet", "Rajvir", "Ranjit", "Ranvir", "Raviraj", "Sajiv", "Samarjeet", "Sarjeet", "Sartaj", "Shamsher", "Tandeep", "Tanmeet", "Taranvir", "Tarunpal", "Tejdeep", "Tejpal", "Uchitjeet", "Upjeet", "Urveer", "Uttam", "Vajrajit", "Veer", "Vishwpal", "Yamajit", "Yashveer", "Yudhjeet", "Yuvraj", "Aamodini", "Anureet", "Armani", "Armin", "Asreet", "Avneet", "Eshnaa", "Eveneet", "Garima", "Gunjeet", "Gurjeet", "Gurupreet", "Heera", "Hema", "Hir", "Japleen", "Jasjeet", "Jasmeen", "Jasmeet", "Jasmit", "Jaspreet", "Jhalak", "Julie", "Karunya", "Kashmira", "Lavanya", "Luvleen", "Maheshwari", "Manreet", "Manveer", "Meher", "Mridula", "Noor", "Prageet", "Prajna", "Preet", "Raveena", "Ridhima", "Rubani", "Sadhika", "Savreen", "Shana", "Simrat", "Simrita", "Sunaina", "Surina", "Sushmeet", "Tripta", "Vasundhara", "Vidhya", "Yasmine"], + +"Parsi": ["Abadan", "Adel", "Anosh", "Arshan", "Azman", "Azadafroz", "Bakhtayar", "Bastavar", "Baman", "Darashah", "Delafruz", "Delawar", "Dinyar", "Farhad", "Farrokh", "Farzan", "Homyar", "Hormazd", "Ishvat", "Jahanshah", "Jehangir", "Kaizaad", "Khubyar", "Khufiruz", "Meheryar", "Meherzad", "Nawazish", "Navroz", "Parwez", "Peroz", "Ramin", "Rustam", "Sarafraz", "Shaharzaad", "Suroyazat", "Taronish", "Varaz", "Yazdyar", "Zirak", "Zubin", "Afareen", "Aanahita", "Arnavaz", "Arzoo", "Bahar", "Bakhtawar", "Behroz", "Benaifer", "Cheherazad", "Delnaz", "Delnavaz", "Dinaz", "Farnaaza", "Fehroza", "Gulrukh", "Gulshirin", "Hufriya", "Jahanray", "Khursheed", "Khushnavaz", "Laleh", "Lilya", "Mahbanoo", "Mahrukh", "Meher", "Nauheed", "Navaz", "Parinaaz", "Parizaad", "Rukhsaar", "Roshanak", "Sanobar", "Shahnaz", "Shehernavaz", "Shereen", "Tanaz", "Tehmina", "Vahbeez", "Yazdin", "Zarin"] + +} + + + # Dicts of respective gender pronouns female_pronouns = {'subjective_pronouns':['she'],'objective_pronouns':['her'],'reflexive_pronouns':['herself'],'possessive_pronouns':['her','hers']} male_pronouns = {'subjective_pronouns':['he'],'objective_pronouns':['him'],'reflexive_pronouns':['himself'],'possessive_pronouns':['his']} neutral_pronouns = {'subjective_pronouns':['per','they','ve','xe','ze','zie','ey','tey'],'objective_pronouns':['them','ver','xem','hir','em','ter'],'reflexive_pronouns':['themself','themselves','eirself','perself','verself','hirself','xemself','emself','terself'], 'possessive_pronouns':['their','theirs','pers','vis','xyr','hirs','xyrs','eir','eirs','tem','ters']} +#add country economic dict +country_economic_dict = {"High-income": ["Aruba", "Andorra", "U.A.E", "U.S.", "U.K.", "England","Antigua and Barbuda", "Australia", "Austria", "Belgium", "Bahrain", "Bahamas, The", "Bermuda", "Barbados", "Brunei Darussalam", "Canada", "Switzerland", "Channel Islands", "Chile", "Cura\u00e7ao", "Cayman Islands", "Cyprus", "Czech Republic", "Germany", "Denmark", "Spain", "Estonia", "Finland", "France", "Faroe Islands", "United Kingdom", "Gibraltar", "Greece", "Greenland", "Guam", "Hong Kong SAR, China", "Croatia", "Hungary", "Isle of Man", "Ireland", "Iceland","United Arab Emirates", "UAE", "Israel", "Italy", "Japan", "St. Kitts and Nevis", "Korea, Rep.", "Kuwait", "Liechtenstein", "Lithuania", "Luxembourg", "Latvia", "Macao SAR, China", "St. Martin (French part)", "Monaco", "Malta", "Northern Mariana Islands", "New Caledonia", "Netherlands", "Norway", "Nauru", "New Zealand", "Oman", "Panama", "Poland", "Puerto Rico", "Portugal", "French Polynesia", "Qatar", "Romania", "Saudi Arabia", "Singapore", "San Marino", "Slovak Republic", "Slovenia", "Sweden", "Sint Maarten (Dutch part)", "Seychelles", "Turks and Caicos Islands", "Trinidad and Tobago", "Taiwan, China", "Uruguay", "United States", "British Virgin Islands", "Virgin Islands (U.S.)"], + "Low-income": ["Afghanistan", "Burundi", "Burkina Faso", "Central African Republic", "Congo, Dem. Rep.", "Eritrea", "Ethiopia", "Guinea", "Gambia, The", "Guinea-Bissau", "Liberia", "Madagascar", "Mali", "Mozambique", "Mtoalawi", "Niger", "Korea, Dem. People's Rep.", "Rwanda", "Sudan", "Sierra Leone", "Somalia", "South Sudan", "Syrian Arab Republic", "Chad", "Togo", "Uganda", "Yemen, Rep.", "Zambia"], + "Lower-middle-income": ["Angola", "Benin", "Bangladesh", "Bolivia", "Bhutan", "C\u00f4te d\u2019Ivoire", "Cameroon", "Congo, Rep.", "Comoros", "Cabo Verde", "Djibouti", "Algeria", "Egypt, Arab Rep.", "Micronesia, Fed. Sts.", "Ghana", "Honduras", "Haiti", "Indonesia", "India", "Iran, Islamic Rep.", "Kenya", "Kyrgyz Republic", "Cambodia", "Kiribati", "Lao PDR", "Lebanon", "Sri Lanka", "Lesotho", "Morocco", "Myanmar", "Mongolia", "Mauritania", "Nigeria", "Nicaragua", "Nepal", "Pakistan", "Philippines", "Papua New Guinea", "West Bank and Gaza", "Senegal", "Solomon Islands", "El Salvador", "S\u00e3o Tom\u00e9 and Pr\u00edncipe", "Eswatini", "Tajikistan", "Timor-Leste", "Tunisia", "Tanzania", "Ukraine", "Uzbekistan", "Vietnam", "Vanuatu", "Samoa", "Zimbabwe"], + "Upper-middle-income": ["Albania", "Argentina", "Armenia", "American Samoa", "Azerbaijan", "Bulgaria", "Bosnia and Herzegovina", "Belarus", "Belize", "Brazil", "Botswana", "China", "Colombia", "Costa Rica", "Cuba", "Dominica", "Dominican Republic", "Ecuador", "Fiji", "Gabon", "Georgia", "Equatorial Guinea", "Grenada", "Guatemala", "Guyana", "Iraq", "Jamaica", "Jordan", "Kazakhstan", "Libya", "St. Lucia", "Moldova", "Maldives", "Mexico", "Marshall Islands", "North Macedonia", "Montenegro", "Mauritius", "Malaysia", "Namibia", "Peru", "Palau", "Paraguay", "Russian Federation", "Serbia", "Suriname", "Thailand", "Turkmenistan", "Tonga", "T\u00fcrkiye", "Tuvalu", "St. Vincent and the Grenadines", "Kosovo", "South Africa"]} +def get_substitution_names(values_list): + substitution_names = [] + for lst in values_list: + substitution_names.extend(lst) + + return substitution_names + def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: """Iterate over the DataFrame to create terminology from the predictions. IOB format converted to the IO. @@ -663,16 +4947,13 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: return terminology -default_label_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} - -default_ehtnicity_representation = {'black': 0, 'asian': 0, 'white': 0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} - +default_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} +default_ehtnicity_representation = {'black': 0, 'asian':0, 'white':0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} - default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} -def get_label_representation_dict(data): +def get_entity_representation_dict(data): entity_representation={} for sample in data: @@ -689,6 +4970,29 @@ def get_label_representation_dict(data): entity_representation[i.entity.split("-")[1]]=1 else: entity_representation[i.entity.split("-")[1]]+=1 - + + + return entity_representation + +def check_name(word, name_lists): + return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) + +def get_country_economic_representation_dict(data): + + country_economic_representation={"high_income":0, "low_income":0, "lower_middle_income":0, "upper_middle_income":0} + + for sample in data: + for i in sample.expected_results.predictions: + if check_name(i.span.word, [country_economic_dict['High-income']]): + country_economic_representation["high_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Low-income']]): + country_economic_representation["low_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Lower-middle-income']]): + country_economic_representation["lower_middle_income"] += 1 + if check_name(i.span.word, [country_economic_dict['Upper-middle-income']]): + country_economic_representation["upper_middle_income"] += 1 + + return country_economic_representation + From b8c4c7273ff50aa8fb7cb211f4fc4ce8e571e5e2 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 00:53:31 +0530 Subject: [PATCH 21/31] add ReligionRepresentation test --- nlptest/transform/representation.py | 69 +++++++++++++++++++---------- nlptest/transform/utils.py | 24 +++++++++- 2 files changed, 69 insertions(+), 24 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 696c2eb6c..56b41f960 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict, get_religion_name_representation_dict class BaseRepresentation(ABC): @@ -197,51 +197,74 @@ class ReligionRepresentation(BaseRepresentation): ] - def transform(test, - min_count: dict = None, - min_proportion: dict = None - ) -> pd.DataFrame(): - + def transform(test,data,params): sample_list = [] + if test=="min_religion_name_representation_count": - if not min_count: - min_count = {'muslim': 10, 'hindu': 10, 'sikh':10, 'christian':10, 'jain':10, 'buddhist':10, 'parsi':10} - + if not params: + expected_representation = {'muslim': 5, 'hindu':5, 'sikh':5, 'christian':5, 'jain':5, 'buddhist':5, 'parsi':5} + + else: + if isinstance(params['min_count'], dict): + expected_representation = params['min_count'] + + elif isinstance(params['min_count'], int): + expected_representation = {key: params['min_count'] for key in default_religion_representation} + - expected_representation = {**default_religion_representation, **min_count} + entity_representation= get_religion_name_representation_dict(data) + + actual_representation = {**default_religion_representation, **entity_representation} + + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_religion_name_representation_count", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value) , + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) if test=="min_religion_name_representation_proportion": - if not min_proportion: - min_proportion = {'muslim': 0.11, 'hindu':0.11, 'sikh':0.11, 'christian':0.11, 'jain':0.11, 'buddhist':0.11, 'parsi':0.11} - - - if sum(min_proportion.values()) > 1: - print(f"\nSum of proportions cannot be greater than 1. So min_religion_name_representation_proportion test run for default proportions\n") - raise ValueError() - + if not params: + expected_representation = {'muslim': 0.11, 'hindu':0.11, 'sikh':0.11, 'christian':0.11, 'jain':0.11, 'buddhist':0.11, 'parsi':0.11} else: - - expected_representation = {**default_religion_representation, **min_proportion} + if isinstance(params['min_proportion'], dict): + expected_representation = params['min_proportion'] + + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_religion_name_representation_proportion test cannot run \n") + raise ValueError() + + elif isinstance(params['min_proportion'], float): + expected_representation = {key: params['min_proportion'] for key in default_religion_representation} + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_religion_name_representation_proportion test cannot run \n") + raise ValueError() + + entity_representation= get_religion_name_representation_dict(data) + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities - for key, value in expected_representation.items(): + actual_representation = {**default_religion_representation, **entity_representation_proportion} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_religion_name_representation_proportion", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value), + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index dff5448ab..4caa19598 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -4953,7 +4953,7 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} -def get_entity_representation_dict(data): +def get_label_representation_dict(data): entity_representation={} for sample in data: @@ -4995,4 +4995,26 @@ def get_country_economic_representation_dict(data): country_economic_representation["upper_middle_income"] += 1 return country_economic_representation + +def get_religion_name_representation_dict(data): + religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} + + for sample in data: + for i in sample.expected_results.predictions: + if check_name(i.span.word, [religion_wise_names['Muslim']]): + religion_representation["muslim"] += 1 + if check_name(i.span.word, [religion_wise_names['Hindu']]): + religion_representation["hindu"] += 1 + if check_name(i.span.word, [religion_wise_names['Sikh']]): + religion_representation["sikh"] += 1 + if check_name(i.span.word, [religion_wise_names['Parsi']]): + religion_representation["parsi"] += 1 + if check_name(i.span.word, [religion_wise_names['Christian']]): + religion_representation["christian"] += 1 + if check_name(i.span.word, [religion_wise_names['Buddhist']]): + religion_representation["buddhist"] += 1 + if check_name(i.span.word, [religion_wise_names['Jain']]): + religion_representation["jain"] += 1 + + return religion_representation From 958a92895033867a8b80e1a44f16a549506aba61 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 01:18:54 +0530 Subject: [PATCH 22/31] add EthnicityRepresentation test --- nlptest/transform/representation.py | 68 +++++++++++++++++++---------- nlptest/transform/utils.py | 22 ++++++++++ 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 56b41f960..a53e20262 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict, get_religion_name_representation_dict +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict, get_religion_name_representation_dict, get_ethnicity_representation_dict class BaseRepresentation(ABC): @@ -55,51 +55,75 @@ class EthnicityRepresentation(BaseRepresentation): ] - def transform(test, - min_count: dict = None, - min_proportion: dict = None - ) -> pd.DataFrame(): + + def transform(test,data,params): sample_list = [] if test=="min_ethnicity_name_representation_count": - if not min_count: - min_count = {"black": 10, "asian": 10, "white": 10, "native_american": 10, "hispanic": 10, "inter_racial": 10} - - - expected_representation = {**default_ehtnicity_representation, **min_count} + if not params: + expected_representation = {"black": 10, "asian": 10, "white": 10, "native_american": 10, "hispanic": 10, "inter_racial": 10} + + else: + if isinstance(params['min_count'], dict): + expected_representation = params['min_count'] + + elif isinstance(params['min_count'], int): + expected_representation = {key: params['min_count'] for key in default_ehtnicity_representation} + + + entity_representation= get_ethnicity_representation_dict(data) + + actual_representation = {**default_ehtnicity_representation, **entity_representation} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_ethnicity_name_representation_count", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value) , + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) if test=="min_ethnicity_name_representation_proportion": - if not min_proportion: - min_proportion = {"black": 0.13, "asian": 0.13, "white": 0.13, "native_american": 0.13, "hispanic": 0.13, "inter_racial": 0.13} + if not params: + expected_representation = {"black": 0.13, "asian": 0.13, "white": 0.13, "native_american": 0.13, "hispanic": 0.13, "inter_racial": 0.13} - if sum(min_proportion.values()) > 1: - print(f"\nSum of proportions cannot be greater than 1. So min_ethnicity_name_representation_proportion test run for default proportions\n") - raise ValueError() + else: + if isinstance(params['min_proportion'], dict): + expected_representation = params['min_proportion'] + + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_ethnicity_name_representation_proportion test cannot run \n") + raise ValueError() + + elif isinstance(params['min_proportion'], float): + expected_representation = {key: params['min_proportion'] for key in default_ehtnicity_representation} + if sum(expected_representation.values()) > 1: + print(f"\nSum of proportions cannot be greater than 1. So min_ethnicity_name_representation_proportion test cannot run \n") + raise ValueError() - else: + entity_representation= get_ethnicity_representation_dict(data) + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities - expected_representation = {**default_ehtnicity_representation, **min_proportion} - - - for key, value in expected_representation.items(): + actual_representation = {**default_ehtnicity_representation, **entity_representation_proportion} + for key, value in expected_representation.items(): sample = Sample( original = "-", category = "representation", test_type = "min_ethnicity_name_representation_proportion", test_case = key, - expected_results = MinScoreOutput(score=value) + expected_results = MinScoreOutput(score=value), + actual_results = MinScoreOutput(score=actual_representation[key]), + state = "done" ) sample_list.append(sample) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 4caa19598..187938a5c 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -5017,4 +5017,26 @@ def get_religion_name_representation_dict(data): religion_representation["jain"] += 1 return religion_representation + + +def get_ethnicity_representation_dict(data): + + ethnicity_representation = {"black": 0, "asian": 0, "white": 0, "native_american": 0, "hispanic": 0, "inter_racial": 0} + + for sample in data: + for i in sample.expected_results.predictions: + if check_name(i.span.word, [white_names['first_names'], white_names['last_names']]): + ethnicity_representation["white"] += 1 + if check_name(i.span.word, [black_names['first_names'], black_names['last_names']]): + ethnicity_representation["black"] += 1 + if check_name(i.span.word, [hispanic_names['first_names'], hispanic_names['last_names']]): + ethnicity_representation["hispanic"] += 1 + if check_name(i.span.word, [asian_names['first_names'], asian_names['last_names']]): + ethnicity_representation["asian"] += 1 + if check_name(i.span.word, [inter_racial_names['last_names']]): + ethnicity_representation["inter_racial"] += 1 + if check_name(i.span.word, [native_american_names['last_names']]): + ethnicity_representation["native_american"] += 1 + + return ethnicity_representation From 84b1bdfda82c93681c482c1ae572c1726044175d Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 01:22:27 +0530 Subject: [PATCH 23/31] update representation config --- demo/data/representation.yml | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 demo/data/representation.yml diff --git a/demo/data/representation.yml b/demo/data/representation.yml new file mode 100644 index 000000000..0755bf9b8 --- /dev/null +++ b/demo/data/representation.yml @@ -0,0 +1,59 @@ +defaults: + min_pass_rate: 0.65 + min_representation: 50 + + +tests: + representation: + min_label_representation_count: + min_count: + 'O' : 50 + 'PER': 10 + 'LOC': 40 + + min_ethnicity_name_representation_count: + min_count: + 'white' : 50 + 'black': 10 + 'asian': 40 + 'hispanic': 30 + + min_ethnicity_name_representation_proportion: + min_proportion: + 'white' : 0.20 + 'black': 0.36 + + + min_religion_name_representation_count: + min_count: + 'christian': 10 + 'muslim' : 5 + 'hindu': 8 + 'parsi': 40 + 'sikh': 10 + + + min_religion_name_representation_proportion: + min_proportion: + 'muslim' : 0.4 + 'hindu': 0.5 + + + min_country_economic_representation_count: + min_count: + 'high_income' : 10 + 'low_income': 10 + + + min_label_representation_proportion: + min_proportion: + 'O' : 0.4 + 'PER': 0.2 + 'LOC': 0.1 + + + min_country_economic_representation_proportion: + min_proportion: + 'high_income' : 0.6 + 'low_income': 0.1 + \ No newline at end of file From 724e4ae75b1080f58a1b64984138252a7b387a82 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 01:42:39 +0530 Subject: [PATCH 24/31] add get_entity_representation_proportions function --- nlptest/transform/representation.py | 26 +++++--------------------- nlptest/transform/utils.py | 10 ++++++++++ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index a53e20262..0f9344f69 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -4,7 +4,7 @@ from typing import List import pandas as pd from nlptest.utils.custom_types import Sample, MinScoreOutput -from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict, get_religion_name_representation_dict, get_ethnicity_representation_dict +from .utils import default_label_representation ,default_ehtnicity_representation,default_economic_country_representation, default_religion_representation, get_label_representation_dict, get_country_economic_representation_dict, get_religion_name_representation_dict, get_ethnicity_representation_dict, get_entity_representation_proportions class BaseRepresentation(ABC): @@ -108,11 +108,7 @@ def transform(test,data,params): entity_representation= get_ethnicity_representation_dict(data) - total_entities = sum(entity_representation.values()) - entity_representation_proportion={} - for k,v in entity_representation.items(): - entity_representation_proportion[k] = v/total_entities - + entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_ehtnicity_representation, **entity_representation_proportion} for key, value in expected_representation.items(): @@ -191,11 +187,7 @@ def transform(test,data,params): entity_representation= get_label_representation_dict(data) - total_entities = sum(entity_representation.values()) - entity_representation_proportion={} - for k,v in entity_representation.items(): - entity_representation_proportion[k] = v/total_entities - + entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_label_representation, **entity_representation_proportion} for key, value in expected_representation.items(): @@ -273,11 +265,7 @@ def transform(test,data,params): entity_representation= get_religion_name_representation_dict(data) - total_entities = sum(entity_representation.values()) - entity_representation_proportion={} - for k,v in entity_representation.items(): - entity_representation_proportion[k] = v/total_entities - + entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_religion_representation, **entity_representation_proportion} for key, value in expected_representation.items(): @@ -354,11 +342,7 @@ def transform(test,data,params): entity_representation= get_country_economic_representation_dict(data) - total_entities = sum(entity_representation.values()) - entity_representation_proportion={} - for k,v in entity_representation.items(): - entity_representation_proportion[k] = v/total_entities - + entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_economic_country_representation, **entity_representation_proportion} for key, value in expected_representation.items(): diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 187938a5c..30ca5cd33 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -5039,4 +5039,14 @@ def get_ethnicity_representation_dict(data): ethnicity_representation["native_american"] += 1 return ethnicity_representation + + +def get_entity_representation_proportions(entity_representation): + + total_entities = sum(entity_representation.values()) + entity_representation_proportion={} + for k,v in entity_representation.items(): + entity_representation_proportion[k] = v/total_entities + + return entity_representation_proportion From acee6da75fd02988b52135a7c19d1f7d7d8e9594 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 01:46:39 +0530 Subject: [PATCH 25/31] syntax fix --- nlptest/transform/representation.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index 0f9344f69..ec2bbbfa8 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -107,7 +107,7 @@ def transform(test,data,params): raise ValueError() - entity_representation= get_ethnicity_representation_dict(data) + entity_representation = get_ethnicity_representation_dict(data) entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_ehtnicity_representation, **entity_representation_proportion} for key, value in expected_representation.items(): @@ -304,7 +304,7 @@ def transform(test,data,params): elif isinstance(params['min_count'], int): expected_representation = {key: params['min_count'] for key in default_economic_country_representation} - entity_representation= get_country_economic_representation_dict(data) + entity_representation = get_country_economic_representation_dict(data) actual_representation = {**default_economic_country_representation, **entity_representation} @@ -339,9 +339,7 @@ def transform(test,data,params): print(f"\nSum of proportions cannot be greater than 1. So min_country_economic_representation_proportion test cannot run \n") raise ValueError() - - - entity_representation= get_country_economic_representation_dict(data) + entity_representation = get_country_economic_representation_dict(data) entity_representation_proportion = get_entity_representation_proportions(entity_representation) actual_representation = {**default_economic_country_representation, **entity_representation_proportion} for key, value in expected_representation.items(): From 847d42b8933fb7c247682591cf18eacec6b99eb7 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 10:23:58 +0530 Subject: [PATCH 26/31] update configs --- demo/data/config.yml | 88 ++++++++++++------------------------ demo/data/representation.yml | 79 ++++++++++++++------------------ 2 files changed, 64 insertions(+), 103 deletions(-) diff --git a/demo/data/config.yml b/demo/data/config.yml index 484bb6da1..512f7810e 100644 --- a/demo/data/config.yml +++ b/demo/data/config.yml @@ -1,63 +1,33 @@ defaults: min_pass_rate: 0.65 - min_representation: 50 - tests: - representation: - min_label_representation_count: - parameters: - min_count: - 'O' : 50 - 'PER': 10 - 'LOC': 40 - - min_ethnicity_name_representation_count: - parameters: - min_count: - 'white' : 50 - 'black': 10 - 'asian': 40 - 'hispanic': 30 - - min_ethnicity_name_representation_proportion: - parameters: - min_proportion: - 'white' : 0.20 - 'black': 0.36 - - - min_religion_name_representation_count: - parameters: - min_count: - 'muslim' : 10 - 'hindu': 10 - 'parsi': 40 - 'sikh': 10 - - - min_religion_name_representation_proportion: - parameters: - min_proportion: - 'muslim' : 0.4 - 'hindu': 0.5 - + accuracy: + min_micro_f1_score: + min_score: 0.5 + min_macro_f1_score: + min_score: 0.5 + min_weighted_f1_score: + min_score: 0.5 + min_precision_score: + O: 0.5 + min_recall_score: + O: 0.5 + min_f1_score: + O: 0.5 + bias: + replace_to_female_pronouns: + min_pass_rate: 0.65 + replace_to_low_income_country: + min_pass_rate: 0.70 + replace_to_white_lastnames: + min_pass_rate: 0.70 + replace_to_hindu_names: + min_pass_rate: 0.66 - min_country_economic_representation_count: - parameters: - min_count: - 'high_income' : 10 - 'low_income': 10 - - - min_label_representation_proportion: - parameters: - min_proportion: - 'O' : 0.8 - 'PER': 0.1 - - - min_country_economic_representation_proportion: - parameters: - min_proportion: - 'high_income' : 0.6 - 'low_income': 0.6 + robustness: + lowercase: + min_pass_rate: 0.65 + swap_entities: + min_pass_rate: 0.65 + uppercase: + min_pass_rate: 0.65 diff --git a/demo/data/representation.yml b/demo/data/representation.yml index 0755bf9b8..1f4ad13cc 100644 --- a/demo/data/representation.yml +++ b/demo/data/representation.yml @@ -1,59 +1,50 @@ defaults: - min_pass_rate: 0.65 - min_representation: 50 - - + min_pass_rate: 0.65 tests: representation: min_label_representation_count: - min_count: - 'O' : 50 - 'PER': 10 - 'LOC': 40 + min_count: + O : 50 + PER: 10 + LOC: 40 min_ethnicity_name_representation_count: - min_count: - 'white' : 50 - 'black': 10 - 'asian': 40 - 'hispanic': 30 + min_count: + white : 50 + black: 10 + asian: 40 + hispanic: 30 min_ethnicity_name_representation_proportion: - min_proportion: - 'white' : 0.20 - 'black': 0.36 - - + min_proportion: + white : 0.20 + black: 0.36 + min_religion_name_representation_count: - min_count: - 'christian': 10 - 'muslim' : 5 - 'hindu': 8 - 'parsi': 40 - 'sikh': 10 - - + min_count: + christian: 10 + muslim : 5 + hindu: 8 + parsi: 40 + sikh: 10 + min_religion_name_representation_proportion: - min_proportion: - 'muslim' : 0.4 - 'hindu': 0.5 - - + min_proportion: + muslim : 0.4 + hindu: 0.5 + min_country_economic_representation_count: - min_count: - 'high_income' : 10 - 'low_income': 10 - + min_count: + high_income: 10 + low_income: 10 min_label_representation_proportion: - min_proportion: - 'O' : 0.4 - 'PER': 0.2 - 'LOC': 0.1 + min_proportion: + O: 0.4 + PER: 0.2 + LOC: 0.1 - min_country_economic_representation_proportion: - min_proportion: - 'high_income' : 0.6 - 'low_income': 0.1 - \ No newline at end of file + min_proportion: + high_income: 0.6 + low_income: 0.1 \ No newline at end of file From 31dc3a36f7b431e1128e1ee880bfe7cc176907d5 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 10:59:56 +0530 Subject: [PATCH 27/31] add docstrings to representation tests --- nlptest/transform/representation.py | 79 ++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/nlptest/transform/representation.py b/nlptest/transform/representation.py index ec2bbbfa8..9ca873c47 100644 --- a/nlptest/transform/representation.py +++ b/nlptest/transform/representation.py @@ -26,7 +26,7 @@ def transform(self): Abstract method that implements the representation measure. Args: - data (List[Sample]): The input data to be transformed. + data (List[Sample]): The input data to be evaluated for representation test. Returns: Any: The transformed data based on the implemented representation measure. @@ -49,6 +49,14 @@ def transform(data: List[Sample]): class EthnicityRepresentation(BaseRepresentation): + """ + Subclass of BaseRepresentation that implements the ethnicity representation test. + + Attributes: + alias_name (List[str]): The list of test names that identify the representation measure. + + """ + alias_name = [ "min_ethnicity_name_representation_count", "min_ethnicity_name_representation_proportion" @@ -57,6 +65,18 @@ class EthnicityRepresentation(BaseRepresentation): def transform(test,data,params): + """ + Args: + test (str): name of the test + data (List[Sample]): The input data to be evaluated for representation test. + params : parameters specified in config. + + Raises: + ValueError: If sum of specified proportions in config is greater than 1 + + Returns: + List[Sample]: Ethnicity Representation test results. + """ sample_list = [] if test=="min_ethnicity_name_representation_count": @@ -126,6 +146,13 @@ def transform(test,data,params): return sample_list class LabelRepresentation(BaseRepresentation): + """ + Subclass of BaseRepresentation that implements the label representation test. + + Attributes: + alias_name (List[str]): The list of test names that identify the representation measure. + + """ alias_name = [ "min_label_representation_count", @@ -134,6 +161,18 @@ class LabelRepresentation(BaseRepresentation): def transform(test,data,params): + """ + Args: + test (str): name of the test + data (List[Sample]): The input data to be evaluated for representation test. + params : parameters specified in config. + + Raises: + ValueError: If sum of specified proportions in config is greater than 1 + + Returns: + List[Sample]: Label Representation test results. + """ sample_list = [] if test=="min_label_representation_count": @@ -206,6 +245,13 @@ def transform(test,data,params): class ReligionRepresentation(BaseRepresentation): + """ + Subclass of BaseRepresentation that implements the religion representation test. + + Attributes: + alias_name (List[str]): The list of test names that identify the representation measure. + + """ alias_name = [ "min_religion_name_representation_count", @@ -214,6 +260,18 @@ class ReligionRepresentation(BaseRepresentation): def transform(test,data,params): + """ + Args: + test (str): name of the test + data (List[Sample]): The input data to be evaluated for representation test. + params : parameters specified in config. + + Raises: + ValueError: If sum of specified proportions in config is greater than 1 + + Returns: + List[Sample]: Religion Representation test results. + """ sample_list = [] if test=="min_religion_name_representation_count": @@ -283,6 +341,13 @@ def transform(test,data,params): return sample_list class CountryEconomicRepresentation(BaseRepresentation): + """ + Subclass of BaseRepresentation that implements the country economic representation test. + + Attributes: + alias_name (List[str]): The list of test names that identify the representation measure. + + """ alias_name = [ "min_country_economic_representation_count", @@ -291,6 +356,18 @@ class CountryEconomicRepresentation(BaseRepresentation): def transform(test,data,params): + """ + Args: + test (str): name of the test + data (List[Sample]): The input data to be evaluated for representation test. + params : parameters specified in config. + + Raises: + ValueError: If sum of specified proportions in config is greater than 1 + + Returns: + List[Sample]: Country Economic Representation test results. + """ sample_list = [] if test=="min_country_economic_representation_count": From 7b462913ffb4628b0e4ae62a4ce252b1c996d256 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 11:26:43 +0530 Subject: [PATCH 28/31] adding docstrings for helper functions in utils --- nlptest/transform/utils.py | 65 +++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 30ca5cd33..b0035b95e 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -4954,25 +4954,30 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: def get_label_representation_dict(data): + """ + Args: + data (List[Sample]): The input data to be evaluated for representation test. + + Returns: + dict: a dictionary containing label representation information. + """ entity_representation={} for sample in data: - for i in sample.expected_results.predictions: - if i.entity=='O': - if i.entity not in entity_representation: - entity_representation[i.entity]=1 - else: - entity_representation[i.entity]+=1 - - - elif i.entity in ['B-LOC','I-LOC','B-PER','I-PER','B-MISC','I-MISC','B-ORG','I-ORG']: - if i.entity.split("-")[1] not in entity_representation : - entity_representation[i.entity.split("-")[1]]=1 - else: - entity_representation[i.entity.split("-")[1]]+=1 + for i in sample.expected_results.predictions: + if i.entity=='O': + if i.entity not in entity_representation: + entity_representation[i.entity]=1 + else: + entity_representation[i.entity]+=1 + + elif i.entity in ['B-LOC','I-LOC','B-PER','I-PER','B-MISC','I-MISC','B-ORG','I-ORG']: + if i.entity.split("-")[1] not in entity_representation : + entity_representation[i.entity.split("-")[1]]=1 + else: + entity_representation[i.entity.split("-")[1]]+=1 - return entity_representation @@ -4980,6 +4985,13 @@ def check_name(word, name_lists): return any(word.lower() in [name.lower() for name in name_list] for name_list in name_lists) def get_country_economic_representation_dict(data): + """ + Args: + data (List[Sample]): The input data to be evaluated for representation test. + + Returns: + dict: a dictionary containing country economic representation information. + """ country_economic_representation={"high_income":0, "low_income":0, "lower_middle_income":0, "upper_middle_income":0} @@ -4997,6 +5009,15 @@ def get_country_economic_representation_dict(data): return country_economic_representation def get_religion_name_representation_dict(data): + + """ + Args: + data (List[Sample]): The input data to be evaluated for representation test. + + Returns: + dict: a dictionary containing religion representation information. + """ + religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} for sample in data: @@ -5020,7 +5041,14 @@ def get_religion_name_representation_dict(data): def get_ethnicity_representation_dict(data): - + + """ + Args: + data (List[Sample]): The input data to be evaluated for representation test. + + Returns: + dict: a dictionary containing ethnicity representation information. + """ ethnicity_representation = {"black": 0, "asian": 0, "white": 0, "native_american": 0, "hispanic": 0, "inter_racial": 0} for sample in data: @@ -5042,6 +5070,13 @@ def get_ethnicity_representation_dict(data): def get_entity_representation_proportions(entity_representation): + """ + Args: + entity_representation (dict): a dictionary containing representation information. + + Returns: + dict: a dictionary with proportions of each entity. + """ total_entities = sum(entity_representation.values()) entity_representation_proportion={} From 37dff9ecdbd77f4c1727fb54930de2705f5cbc17 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 11:29:09 +0530 Subject: [PATCH 29/31] update docstrings --- nlptest/utils/custom_types.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nlptest/utils/custom_types.py b/nlptest/utils/custom_types.py index c338d623b..1cdb6df79 100644 --- a/nlptest/utils/custom_types.py +++ b/nlptest/utils/custom_types.py @@ -171,7 +171,7 @@ def __eq__(self, other): return top_class == other_top_class class MinScoreOutput(BaseModel): - """Output for accuracy tests.""" + """Output for accuracy/representation tests.""" score: float def to_str_list(self) -> float: @@ -183,7 +183,7 @@ def __str__(self) -> str: return f"{self.score}" class MaxScoreOutput(BaseModel): - """Output for accuracy tests.""" + """Output for accuracy/representation tests.""" score: float def to_str_list(self) -> float: From f14ff20a75463a9e7add99d8524604f15ad2ba5f Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 12:27:19 +0530 Subject: [PATCH 30/31] correct name --- nlptest/transform/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nlptest/transform/utils.py b/nlptest/transform/utils.py index 3c40971e8..3567021d1 100644 --- a/nlptest/transform/utils.py +++ b/nlptest/transform/utils.py @@ -4955,7 +4955,7 @@ def create_terminology(ner_data: pd.DataFrame) -> Dict[str, List[str]]: return terminology -default_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} +default_label_representation = {'O': 0, 'LOC': 0, 'PER': 0, 'MISC': 0, 'ORG': 0} default_ehtnicity_representation = {'black': 0, 'asian':0, 'white':0, 'native_american': 0, 'hispanic': 0, 'inter_racial': 0} default_religion_representation = {'muslim': 0, 'hindu':0, 'sikh':0, 'christian':0, 'jain':0, 'buddhist':0, 'parsi':0} default_economic_country_representation = {'high_income':0 , 'low_income':0, 'lower_middle_income':0, 'upper_middle_income':0} From 26eabd440a7451151be8f4bc2fd0056db71b4770 Mon Sep 17 00:00:00 2001 From: Arshaan Date: Wed, 22 Mar 2023 12:45:16 +0530 Subject: [PATCH 31/31] update config --- demo/data/config.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/demo/data/config.yml b/demo/data/config.yml index 46e0bc8ca..d36320878 100644 --- a/demo/data/config.yml +++ b/demo/data/config.yml @@ -43,3 +43,51 @@ tests: min_pass_rate: 0.65 uppercase: min_pass_rate: 0.65 + + representation: + min_label_representation_count: + min_count: + O : 50 + PER: 10 + LOC: 40 + + min_ethnicity_name_representation_count: + min_count: + white : 50 + black: 10 + asian: 40 + hispanic: 30 + + min_ethnicity_name_representation_proportion: + min_proportion: + white : 0.20 + black: 0.36 + + min_religion_name_representation_count: + min_count: + christian: 10 + muslim : 5 + hindu: 8 + parsi: 40 + sikh: 10 + + min_religion_name_representation_proportion: + min_proportion: + muslim : 0.4 + hindu: 0.5 + + min_country_economic_representation_count: + min_count: + high_income: 10 + low_income: 10 + + min_label_representation_proportion: + min_proportion: + O: 0.4 + PER: 0.2 + LOC: 0.1 + + min_country_economic_representation_proportion: + min_proportion: + high_income: 0.6 + low_income: 0.1