aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/plugin/villagers
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2022-08-29 16:04:28 +0200
committerGitHub <noreply@github.com>2022-08-29 16:04:28 +0200
commit7d1f51a8937e0a86486267437d444696e81e8aa0 (patch)
treea5b145e7271998f7b4b968a2212ed487e54a92b5 /src/main/java/gtPlusPlus/plugin/villagers
parent5267969156d30b4bb5f4cb2279ebb49db6bd40e2 (diff)
downloadGT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.gz
GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.bz2
GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.zip
Buildscript + Spotless (#318)
* Convert AES.java to readable class * Buildscript * Spotless
Diffstat (limited to 'src/main/java/gtPlusPlus/plugin/villagers')
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java198
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/NameLists.java10748
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java70
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java64
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java30
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java45
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java1051
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java1024
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java42
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java98
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java462
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java276
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java30
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java11
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java30
-rw-r--r--src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java64
16 files changed, 11544 insertions, 2699 deletions
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java b/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java
index 09e4c4865f..3eba3333b4 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java
@@ -2,129 +2,135 @@ package gtPlusPlus.plugin.villagers;
import static gtPlusPlus.plugin.villagers.VillagerUtils.mVillagerMap;
-import java.util.HashMap;
-
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
import gtPlusPlus.api.interfaces.IPlugin;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Pair;
-import gtPlusPlus.core.block.ModBlocks;
-import gtPlusPlus.core.entity.EntityPrimedMiningExplosive;
-import gtPlusPlus.core.entity.monster.EntityGiantChickenBase;
-import gtPlusPlus.core.entity.monster.EntitySickBlaze;
-import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.plugin.manager.Core_Manager;
-import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner;
import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager;
import gtPlusPlus.plugin.villagers.entity.EntityNativeAustralian;
import gtPlusPlus.plugin.villagers.trade.TradeHandlerAboriginal;
import gtPlusPlus.plugin.villagers.trade.TradeHandlerBanker;
import gtPlusPlus.plugin.villagers.trade.TradeHandlerTechnician;
import gtPlusPlus.plugin.villagers.trade.TradeHandlerTrader;
+import java.util.HashMap;
import net.minecraft.util.ResourceLocation;
public class Core_VillagerAdditions implements IPlugin {
- public final static Core_VillagerAdditions mInstance;
- private static boolean shouldLoad = false;
+ public static final Core_VillagerAdditions mInstance;
+ private static boolean shouldLoad = false;
+
+ public static final HashMap<Integer, ResourceLocation> mVillagerSkins = new HashMap<Integer, ResourceLocation>();
+ public static final AutoMap<Pair<Integer, IVillageTradeHandler>> mVillagerTrades =
+ new AutoMap<Pair<Integer, IVillageTradeHandler>>();
- public static final HashMap<Integer, ResourceLocation> mVillagerSkins = new HashMap<Integer, ResourceLocation>();
- public static final AutoMap<Pair<Integer, IVillageTradeHandler>> mVillagerTrades = new AutoMap<Pair<Integer, IVillageTradeHandler>>();
+ static {
+ mInstance = new Core_VillagerAdditions();
+ Core_Manager.registerPlugin(mInstance);
+ mInstance.log("Preparing " + mInstance.getPluginName() + " for use.");
+ }
- static {
- mInstance = new Core_VillagerAdditions();
- Core_Manager.registerPlugin(mInstance);
- mInstance.log("Preparing "+mInstance.getPluginName()+" for use.");
- }
+ @Override
+ public boolean preInit() {
+ if (
+ /*CORE.ConfigSwitches.enableSulfuricAcidFix || */ CORE.DEVENV) {
+ shouldLoad = true;
+ }
+ if (shouldLoad) {
+ // Register Custom Villager Entity
+ EntityRegistry.registerGlobalEntityID(
+ EntityBaseVillager.class,
+ "WiseVillager",
+ EntityRegistry.findGlobalUniqueEntityId(),
+ Utils.rgbtoHexValue(180, 120, 120),
+ Utils.rgbtoHexValue(0, 0, 0));
+ EntityRegistry.registerGlobalEntityID(
+ EntityNativeAustralian.class,
+ "Aboriginal",
+ EntityRegistry.findGlobalUniqueEntityId(),
+ Utils.rgbtoHexValue(50, 50, 50),
+ Utils.rgbtoHexValue(25, 25, 25));
+ VillagerUtils.registerNewVillager(0, "Banker", "Banker", "Banker", "banker", new TradeHandlerBanker());
+ VillagerUtils.registerNewVillager(
+ 1, "Technician", "Technician", "Technician", "technician", new TradeHandlerTechnician());
+ VillagerUtils.registerNewVillager(2, "Trader", "Trader", "Trader", "trader", new TradeHandlerTrader());
+ VillagerUtils.registerNewVillager(
+ 3, "Aboriginal", "Aboriginal", "Aboriginal", "aboriginal", new TradeHandlerAboriginal());
- @Override
- public boolean preInit() {
- if (/*CORE.ConfigSwitches.enableSulfuricAcidFix || */CORE.DEVENV) {
- shouldLoad = true;
- }
- if (shouldLoad) {
- //Register Custom Villager Entity
- EntityRegistry.registerGlobalEntityID(EntityBaseVillager.class, "WiseVillager", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(180, 120, 120), Utils.rgbtoHexValue(0, 0, 0));
- EntityRegistry.registerGlobalEntityID(EntityNativeAustralian.class, "Aboriginal", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(50, 50, 50), Utils.rgbtoHexValue(25, 25, 25));
- VillagerUtils.registerNewVillager(0, "Banker", "Banker", "Banker", "banker", new TradeHandlerBanker());
- VillagerUtils.registerNewVillager(1, "Technician", "Technician", "Technician", "technician", new TradeHandlerTechnician());
- VillagerUtils.registerNewVillager(2, "Trader", "Trader", "Trader", "trader", new TradeHandlerTrader());
- VillagerUtils.registerNewVillager(3, "Aboriginal", "Aboriginal", "Aboriginal", "aboriginal", new TradeHandlerAboriginal());
-
- if (mVillagerMap.size() > 0) {
- for (VillagerObject g : mVillagerMap.values()) {
- if (g != null && g.mID >= 0) {
- VillagerRegistry.instance().registerVillagerId(7735+g.mID);
- log("Registered a Custom Villager with ID of "+g.mID+".");
- //Utils.createNewMobSpawner(10+g.mID, EntityBaseVillager.class);
- if (mVillagerSkins.get(g.mID) != null) {
- VillagerRegistry.instance().registerVillagerSkin(7735+g.mID, mVillagerSkins.get(g.mID));
- log("Registered a Custom Skin for Villager with ID of "+g.mID+".");
- }
- }
- }
- }
-
- //Register all Villager ID's and their Custom Trades.
- if (mVillagerTrades.size() > 0) {
- for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) {
- if (g != null && g.getKey() != null) {
- if (g.getValue() != null) {
- VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue());
- log("Registered a Custom Trade for Villager with ID of "+g.getKey()+".");
- }
- }
- }
- }
- return true;
- }
- return false;
- }
+ if (mVillagerMap.size() > 0) {
+ for (VillagerObject g : mVillagerMap.values()) {
+ if (g != null && g.mID >= 0) {
+ VillagerRegistry.instance().registerVillagerId(7735 + g.mID);
+ log("Registered a Custom Villager with ID of " + g.mID + ".");
+ // Utils.createNewMobSpawner(10+g.mID, EntityBaseVillager.class);
+ if (mVillagerSkins.get(g.mID) != null) {
+ VillagerRegistry.instance().registerVillagerSkin(7735 + g.mID, mVillagerSkins.get(g.mID));
+ log("Registered a Custom Skin for Villager with ID of " + g.mID + ".");
+ }
+ }
+ }
+ }
- @Override
- public boolean init() {
- if (shouldLoad) {
- return true;
- }
- return false;
- }
+ // Register all Villager ID's and their Custom Trades.
+ if (mVillagerTrades.size() > 0) {
+ for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) {
+ if (g != null && g.getKey() != null) {
+ if (g.getValue() != null) {
+ VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue());
+ log("Registered a Custom Trade for Villager with ID of " + g.getKey() + ".");
+ }
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
- @Override
- public boolean postInit() {
- if (shouldLoad) {
- return true;
- }
- return false;
- }
+ @Override
+ public boolean init() {
+ if (shouldLoad) {
+ return true;
+ }
+ return false;
+ }
- @Override
- public boolean serverStart() {
- if (shouldLoad) {
- return true;
- }
- return false;
- }
+ @Override
+ public boolean postInit() {
+ if (shouldLoad) {
+ return true;
+ }
+ return false;
+ }
- @Override
- public boolean serverStop() {
- if (shouldLoad) {
- return true;
- }
- return false;
- }
+ @Override
+ public boolean serverStart() {
+ if (shouldLoad) {
+ return true;
+ }
+ return false;
+ }
- @Override
- public String getPluginName() {
- return "GT++ Enhanced Villagers";
- }
+ @Override
+ public boolean serverStop() {
+ if (shouldLoad) {
+ return true;
+ }
+ return false;
+ }
- @Override
- public String getPluginAbbreviation() {
- return "Bank";
- }
+ @Override
+ public String getPluginName() {
+ return "GT++ Enhanced Villagers";
+ }
+ @Override
+ public String getPluginAbbreviation() {
+ return "Bank";
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java b/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java
index e9cd254503..3c5eccbcc2 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/NameLists.java
@@ -1,994 +1,9782 @@
package gtPlusPlus.plugin.villagers;
-import org.apache.commons.lang3.StringUtils;
-
import gtPlusPlus.core.util.math.MathUtils;
+import org.apache.commons.lang3.StringUtils;
public class NameLists {
- public static final String[] mFirstNames;
- public static final String[] mLastNames;
- public static final String[] mScottishFirstNames;
-
- static {
- mFirstNames = generateFirstNames();
- mLastNames = generateLastNames();
- mScottishFirstNames = generateScottishFirstNames();
- }
+ public static final String[] mFirstNames;
+ public static final String[] mLastNames;
+ public static final String[] mScottishFirstNames;
+
+ static {
+ mFirstNames = generateFirstNames();
+ mLastNames = generateLastNames();
+ mScottishFirstNames = generateScottishFirstNames();
+ }
+ private static final String[] generateScottishFirstNames() {
+ return new String[] {
+ "Aadam",
+ "Aadit",
+ "Aahron",
+ "Aaran",
+ "Aaren",
+ "Aarez",
+ "Aarman",
+ "Aaron",
+ "Aaron-James",
+ "Aarron",
+ "Aaryan",
+ "Aaryn",
+ "Aayan",
+ "Aazaan",
+ "Abaan",
+ "Abbas",
+ "Abdallah",
+ "Abdalroof",
+ "Abdihakim",
+ "Abdirahman",
+ "Abdisalam",
+ "Abdul",
+ "Abdul-Aziz",
+ "Abdulbasir",
+ "Abdulkadir",
+ "Abdulkarem",
+ "Abdulkhader",
+ "Abdullah",
+ "Abdul-Majeed",
+ "Abdulmalik",
+ "Abdul-Rehman",
+ "Abdur",
+ "Abdurraheem",
+ "Abdur-Rahman",
+ "Abdur-Rehmaan",
+ "Abel",
+ "Abhinav",
+ "Abhisumant",
+ "Abid",
+ "Abir",
+ "Abraham",
+ "Abu",
+ "Abubakar",
+ "Ace",
+ "Adain",
+ "Adam",
+ "Adam-James",
+ "Addison",
+ "Addisson",
+ "Adegbola",
+ "Adegbolahan",
+ "Aden",
+ "Adenn",
+ "Adie",
+ "Adil",
+ "Aditya",
+ "Adnan",
+ "Adrian",
+ "Adrien",
+ "Aedan",
+ "Aedin",
+ "Aedyn",
+ "Aeron",
+ "Afonso",
+ "Ahmad",
+ "Ahmed",
+ "Ahmed-Aziz",
+ "Ahoua",
+ "Ahtasham",
+ "Aiadan",
+ "Aidan",
+ "Aiden",
+ "Aiden-Jack",
+ "Aiden-Vee",
+ "Aidian",
+ "Aidy",
+ "Ailin",
+ "Aiman",
+ "Ainsley",
+ "Ainslie",
+ "Airen",
+ "Airidas",
+ "Airlie",
+ "AJ",
+ "Ajay",
+ "A-Jay",
+ "Ajayraj",
+ "Akan",
+ "Akram",
+ "Al",
+ "Ala'",
+ "Alan",
+ "Alanas",
+ "Alasdair",
+ "Alastair",
+ "Alber",
+ "Albert",
+ "Albie",
+ "Aldred",
+ "Alec",
+ "Aled",
+ "Aleem",
+ "Aleksandar",
+ "Aleksander",
+ "Aleksandr",
+ "Aleksandrs",
+ "Alekzander",
+ "Alessandro",
+ "Alessio",
+ "Alex",
+ "Alexander",
+ "Alexei",
+ "Alexx",
+ "Alexzander",
+ "Alf",
+ "Alfee",
+ "Alfie",
+ "Alfred",
+ "Alfy",
+ "Alhaji",
+ "Al-Hassan",
+ "Ali",
+ "Aliekber",
+ "Alieu",
+ "Alihaider",
+ "Alisdair",
+ "Alishan",
+ "Alistair",
+ "Alistar",
+ "Alister",
+ "Aliyaan",
+ "Allan",
+ "Allan-Laiton",
+ "Allen",
+ "Allesandro",
+ "Allister",
+ "Ally",
+ "Alphonse",
+ "Altyiab",
+ "Alum",
+ "Alvern",
+ "Alvin",
+ "Alyas",
+ "Amaan",
+ "Aman",
+ "Amani",
+ "Ambanimoh",
+ "Ameer",
+ "Amgad",
+ "Ami",
+ "Amin",
+ "Amir",
+ "Ammaar",
+ "Ammar",
+ "Ammer",
+ "Amolpreet",
+ "Amos",
+ "Amrinder",
+ "Amrit",
+ "Amro",
+ "Anay",
+ "Andrea",
+ "Andreas",
+ "Andrei",
+ "Andrejs",
+ "Andrew",
+ "Andy",
+ "Anees",
+ "Anesu",
+ "Angel",
+ "Angelo",
+ "Angus",
+ "Anir",
+ "Anis",
+ "Anish",
+ "Anmolpreet",
+ "Annan",
+ "Anndra",
+ "Anselm",
+ "Anthony",
+ "Anthony-John",
+ "Antoine",
+ "Anton",
+ "Antoni",
+ "Antonio",
+ "Antony",
+ "Antonyo",
+ "Anubhav",
+ "Aodhan",
+ "Aon",
+ "Aonghus",
+ "Apisai",
+ "Arafat",
+ "Aran",
+ "Arandeep",
+ "Arann",
+ "Aray",
+ "Arayan",
+ "Archibald",
+ "Archie",
+ "Arda",
+ "Ardal",
+ "Ardeshir",
+ "Areeb",
+ "Areez",
+ "Aref",
+ "Arfin",
+ "Argyle",
+ "Argyll",
+ "Ari",
+ "Aria",
+ "Arian",
+ "Arihant",
+ "Aristomenis",
+ "Aristotelis",
+ "Arjuna",
+ "Arlo",
+ "Armaan",
+ "Arman",
+ "Armen",
+ "Arnab",
+ "Arnav",
+ "Arnold",
+ "Aron",
+ "Aronas",
+ "Arran",
+ "Arrham",
+ "Arron",
+ "Arryn",
+ "Arsalan",
+ "Artem",
+ "Arthur",
+ "Artur",
+ "Arturo",
+ "Arun",
+ "Arunas",
+ "Arved",
+ "Arya",
+ "Aryan",
+ "Aryankhan",
+ "Aryian",
+ "Aryn",
+ "Asa",
+ "Asfhan",
+ "Ash",
+ "Ashlee-jay",
+ "Ashley",
+ "Ashton",
+ "Ashton-Lloyd",
+ "Ashtyn",
+ "Ashwin",
+ "Asif",
+ "Asim",
+ "Aslam",
+ "Asrar",
+ "Ata",
+ "Atal",
+ "Atapattu",
+ "Ateeq",
+ "Athol",
+ "Athon",
+ "Athos-Carlos",
+ "Atli",
+ "Atom",
+ "Attila",
+ "Aulay",
+ "Aun",
+ "Austen",
+ "Austin",
+ "Avani",
+ "Averon",
+ "Avi",
+ "Avinash",
+ "Avraham",
+ "Awais",
+ "Awwal",
+ "Axel",
+ "Ayaan",
+ "Ayan",
+ "Aydan",
+ "Ayden",
+ "Aydin",
+ "Aydon",
+ "Ayman",
+ "Ayomide",
+ "Ayren",
+ "Ayrton",
+ "Aytug",
+ "Ayub",
+ "Ayyub",
+ "Azaan",
+ "Azedine",
+ "Azeem",
+ "Azim",
+ "Aziz",
+ "Azlan",
+ "Azzam",
+ "Azzedine",
+ "Babatunmise",
+ "Babur",
+ "Bader",
+ "Badr",
+ "Badsha",
+ "Bailee",
+ "Bailey",
+ "Bailie",
+ "Bailley",
+ "Baillie",
+ "Baley",
+ "Balian",
+ "Banan",
+ "Barath",
+ "Barkley",
+ "Barney",
+ "Baron",
+ "Barrie",
+ "Barry",
+ "Bartlomiej",
+ "Bartosz",
+ "Basher",
+ "Basile",
+ "Baxter",
+ "Baye",
+ "Bayley",
+ "Beau",
+ "Beinn",
+ "Bekim",
+ "Believe",
+ "Ben",
+ "Bendeguz",
+ "Benedict",
+ "Benjamin",
+ "Benjamyn",
+ "Benji",
+ "Benn",
+ "Bennett",
+ "Benny",
+ "Benoit",
+ "Bentley",
+ "Berkay",
+ "Bernard",
+ "Bertie",
+ "Bevin",
+ "Bezalel",
+ "Bhaaldeen",
+ "Bharath",
+ "Bilal",
+ "Bill",
+ "Billy",
+ "Binod",
+ "Bjorn",
+ "Blaike",
+ "Blaine",
+ "Blair",
+ "Blaire",
+ "Blake",
+ "Blazej",
+ "Blazey",
+ "Blessing",
+ "Blue",
+ "Blyth",
+ "Bo",
+ "Boab",
+ "Bob",
+ "Bobby",
+ "Bobby-Lee",
+ "Bodhan",
+ "Boedyn",
+ "Bogdan",
+ "Bohbi",
+ "Bony",
+ "Bowen",
+ "Bowie",
+ "Boyd",
+ "Bracken",
+ "Brad",
+ "Bradan",
+ "Braden",
+ "Bradley",
+ "Bradlie",
+ "Bradly",
+ "Brady",
+ "Bradyn",
+ "Braeden",
+ "Braiden",
+ "Brajan",
+ "Brandan",
+ "Branden",
+ "Brandon",
+ "Brandonlee",
+ "Brandon-Lee",
+ "Brandyn",
+ "Brannan",
+ "Brayden",
+ "Braydon",
+ "Braydyn",
+ "Breandan",
+ "Brehme",
+ "Brendan",
+ "Brendon",
+ "Brendyn",
+ "Breogan",
+ "Bret",
+ "Brett",
+ "Briaddon",
+ "Brian",
+ "Brodi",
+ "Brodie",
+ "Brody",
+ "Brogan",
+ "Broghan",
+ "Brooke",
+ "Brooklin",
+ "Brooklyn",
+ "Bruce",
+ "Bruin",
+ "Bruno",
+ "Brunon",
+ "Bryan",
+ "Bryce",
+ "Bryden",
+ "Brydon",
+ "Brydon-Craig",
+ "Bryn",
+ "Brynmor",
+ "Bryson",
+ "Buddy",
+ "Bully",
+ "Burak",
+ "Burhan",
+ "Butali",
+ "Butchi",
+ "Byron",
+ "Cabhan",
+ "Cadan",
+ "Cade",
+ "Caden",
+ "Cadon",
+ "Cadyn",
+ "Caedan",
+ "Caedyn",
+ "Cael",
+ "Caelan",
+ "Caelen",
+ "Caethan",
+ "Cahl",
+ "Cahlum",
+ "Cai",
+ "Caidan",
+ "Caiden",
+ "Caiden-Paul",
+ "Caidyn",
+ "Caie",
+ "Cailaen",
+ "Cailean",
+ "Caileb-John",
+ "Cailin",
+ "Cain",
+ "Caine",
+ "Cairn",
+ "Cal",
+ "Calan",
+ "Calder",
+ "Cale",
+ "Calean",
+ "Caleb",
+ "Calen",
+ "Caley",
+ "Calib",
+ "Calin",
+ "Callahan",
+ "Callan",
+ "Callan-Adam",
+ "Calley",
+ "Callie",
+ "Callin",
+ "Callum",
+ "Callun",
+ "Callyn",
+ "Calum",
+ "Calum-James",
+ "Calvin",
+ "Cambell",
+ "Camerin",
+ "Cameron",
+ "Campbel",
+ "Campbell",
+ "Camron",
+ "Caolain",
+ "Caolan",
+ "Carl",
+ "Carlo",
+ "Carlos",
+ "Carrich",
+ "Carrick",
+ "Carson",
+ "Carter",
+ "Carwyn",
+ "Casey",
+ "Casper",
+ "Cassy",
+ "Cathal",
+ "Cator",
+ "Cavan",
+ "Cayden",
+ "Cayden-Robert",
+ "Cayden-Tiamo",
+ "Ceejay",
+ "Ceilan",
+ "Ceiran",
+ "Ceirin",
+ "Ceiron",
+ "Cejay",
+ "Celik",
+ "Cephas",
+ "Cesar",
+ "Cesare",
+ "Chad",
+ "Chaitanya",
+ "Chang-Ha",
+ "Charles",
+ "Charley",
+ "Charlie",
+ "Charly",
+ "Chase",
+ "Che",
+ "Chester",
+ "Chevy",
+ "Chi",
+ "Chibudom",
+ "Chidera",
+ "Chimsom",
+ "Chin",
+ "Chintu",
+ "Chiqal",
+ "Chiron",
+ "Chris",
+ "Chris-Daniel",
+ "Chrismedi",
+ "Christian",
+ "Christie",
+ "Christoph",
+ "Christopher",
+ "Christopher-Lee",
+ "Christy",
+ "Chu",
+ "Chukwuemeka",
+ "Cian",
+ "Ciann",
+ "Ciar",
+ "Ciaran",
+ "Ciarian",
+ "Cieran",
+ "Cillian",
+ "Cillin",
+ "Cinar",
+ "CJ",
+ "C-Jay",
+ "Clark",
+ "Clarke",
+ "Clayton",
+ "Clement",
+ "Clifford",
+ "Clyde",
+ "Cobain",
+ "Coban",
+ "Coben",
+ "Cobi",
+ "Cobie",
+ "Coby",
+ "Codey",
+ "Codi",
+ "Codie",
+ "Cody",
+ "Cody-Lee",
+ "Coel",
+ "Cohan",
+ "Cohen",
+ "Colby",
+ "Cole",
+ "Colin",
+ "Coll",
+ "Colm",
+ "Colt",
+ "Colton",
+ "Colum",
+ "Colvin",
+ "Comghan",
+ "Conal",
+ "Conall",
+ "Conan",
+ "Conar",
+ "Conghaile",
+ "Conlan",
+ "Conley",
+ "Conli",
+ "Conlin",
+ "Conlly",
+ "Conlon",
+ "Conlyn",
+ "Connal",
+ "Connall",
+ "Connan",
+ "Connar",
+ "Connel",
+ "Connell",
+ "Conner",
+ "Connolly",
+ "Connor",
+ "Connor-David",
+ "Conor",
+ "Conrad",
+ "Cooper",
+ "Copeland",
+ "Coray",
+ "Corben",
+ "Corbin",
+ "Corey",
+ "Corey-James",
+ "Corey-Jay",
+ "Cori",
+ "Corie",
+ "Corin",
+ "Cormac",
+ "Cormack",
+ "Cormak",
+ "Corran",
+ "Corrie",
+ "Cory",
+ "Cosmo",
+ "Coupar",
+ "Craig",
+ "Craig-James",
+ "Crawford",
+ "Creag",
+ "Crispin",
+ "Cristian",
+ "Crombie",
+ "Cruiz",
+ "Cruz",
+ "Cuillin",
+ "Cullen",
+ "Cullin",
+ "Curtis",
+ "Cyrus",
+ "Daanyaal",
+ "Daegan",
+ "Daegyu",
+ "Dafydd",
+ "Dagon",
+ "Dailey",
+ "Daimhin",
+ "Daithi",
+ "Dakota",
+ "Daksh",
+ "Dale",
+ "Dalong",
+ "Dalton",
+ "Damian",
+ "Damien",
+ "Damon",
+ "Dan",
+ "Danar",
+ "Dane",
+ "Danial",
+ "Daniel",
+ "Daniele",
+ "Daniel-James",
+ "Daniels",
+ "Daniil",
+ "Danish",
+ "Daniyal",
+ "Danniel",
+ "Danny",
+ "Dante",
+ "Danyal",
+ "Danyil",
+ "Danys",
+ "Daood",
+ "Dara",
+ "Darach",
+ "Daragh",
+ "Darcy",
+ "D'arcy",
+ "Dareh",
+ "Daren",
+ "Darien",
+ "Darius",
+ "Darl",
+ "Darn",
+ "Darrach",
+ "Darragh",
+ "Darrel",
+ "Darrell",
+ "Darren",
+ "Darrie",
+ "Darrius",
+ "Darroch",
+ "Darryl",
+ "Darryn",
+ "Darwyn",
+ "Daryl",
+ "Daryn",
+ "Daud",
+ "Daumantas",
+ "Davi",
+ "David",
+ "David-Jay",
+ "David-Lee",
+ "Davie",
+ "Davis",
+ "Davy",
+ "Dawid",
+ "Dawson",
+ "Dawud",
+ "Dayem",
+ "Daymian",
+ "Deacon",
+ "Deagan",
+ "Dean",
+ "Deano",
+ "Decklan",
+ "Declain",
+ "Declan",
+ "Declyan",
+ "Declyn",
+ "Dedeniseoluwa",
+ "Deecan",
+ "Deegan",
+ "Deelan",
+ "Deklain-Jaimes",
+ "Del",
+ "Demetrius",
+ "Denis",
+ "Deniss",
+ "Dennan",
+ "Dennin",
+ "Dennis",
+ "Denny",
+ "Dennys",
+ "Denon",
+ "Denton",
+ "Denver",
+ "Denzel",
+ "Deon",
+ "Derek",
+ "Derick",
+ "Derin",
+ "Dermot",
+ "Derren",
+ "Derrie",
+ "Derrin",
+ "Derron",
+ "Derry",
+ "Derryn",
+ "Deryn",
+ "Deshawn",
+ "Desmond",
+ "Dev",
+ "Devan",
+ "Devin",
+ "Devlin",
+ "Devlyn",
+ "Devon",
+ "Devrin",
+ "Devyn",
+ "Dex",
+ "Dexter",
+ "Dhani",
+ "Dharam",
+ "Dhavid",
+ "Dhyia",
+ "Diarmaid",
+ "Diarmid",
+ "Diarmuid",
+ "Didier",
+ "Diego",
+ "Diesel",
+ "Diesil",
+ "Digby",
+ "Dilan",
+ "Dilano",
+ "Dillan",
+ "Dillon",
+ "Dilraj",
+ "Dimitri",
+ "Dinaras",
+ "Dion",
+ "Dissanayake",
+ "Dmitri",
+ "Doire",
+ "Dolan",
+ "Domanic",
+ "Domenico",
+ "Domhnall",
+ "Dominic",
+ "Dominick",
+ "Dominik",
+ "Donald",
+ "Donnacha",
+ "Donnie",
+ "Dorian",
+ "Dougal",
+ "Douglas",
+ "Dougray",
+ "Drakeo",
+ "Dre",
+ "Dregan",
+ "Drew",
+ "Dugald",
+ "Duncan",
+ "Duriel",
+ "Dustin",
+ "Dylan",
+ "Dylan-Jack",
+ "Dylan-James",
+ "Dylan-John",
+ "Dylan-Patrick",
+ "Dylin",
+ "Dyllan",
+ "Dyllan-James",
+ "Dyllon",
+ "Eadie",
+ "Eagann",
+ "Eamon",
+ "Eamonn",
+ "Eason",
+ "Eassan",
+ "Easton",
+ "Ebow",
+ "Ed",
+ "Eddie",
+ "Eden",
+ "Ediomi",
+ "Edison",
+ "Eduardo",
+ "Eduards",
+ "Edward",
+ "Edwin",
+ "Edwyn",
+ "Eesa",
+ "Efan",
+ "Efe",
+ "Ege",
+ "Ehsan",
+ "Ehsen",
+ "Eiddon",
+ "Eidhan",
+ "Eihli",
+ "Eimantas",
+ "Eisa",
+ "Eli",
+ "Elias",
+ "Elijah",
+ "Eliot",
+ "Elisau",
+ "Eljay",
+ "Eljon",
+ "Elliot",
+ "Elliott",
+ "Ellis",
+ "Ellisandro",
+ "Elshan",
+ "Elvin",
+ "Elyan",
+ "Emanuel",
+ "Emerson",
+ "Emil",
+ "Emile",
+ "Emir",
+ "Emlyn",
+ "Emmanuel",
+ "Emmet",
+ "Eng",
+ "Eniola",
+ "Enis",
+ "Ennis",
+ "Enrico",
+ "Enrique",
+ "Enzo",
+ "Eoghain",
+ "Eoghan",
+ "Eoin",
+ "Eonan",
+ "Erdehan",
+ "Eren",
+ "Erencem",
+ "Eric",
+ "Ericlee",
+ "Erik",
+ "Eriz",
+ "Ernie-Jacks",
+ "Eroni",
+ "Eryk",
+ "Eshan",
+ "Essa",
+ "Esteban",
+ "Ethan",
+ "Etienne",
+ "Etinosa",
+ "Euan",
+ "Eugene",
+ "Evan",
+ "Evann",
+ "Ewan",
+ "Ewen",
+ "Ewing",
+ "Exodi",
+ "Ezekiel",
+ "Ezra",
+ "Fabian",
+ "Fahad",
+ "Faheem",
+ "Faisal",
+ "Faizaan",
+ "Famara",
+ "Fares",
+ "Farhaan",
+ "Farhan",
+ "Farren",
+ "Farzad",
+ "Fauzaan",
+ "Favour",
+ "Fawaz",
+ "Fawkes",
+ "Faysal",
+ "Fearghus",
+ "Feden",
+ "Felix",
+ "Fergal",
+ "Fergie",
+ "Fergus",
+ "Ferre",
+ "Fezaan",
+ "Fiachra",
+ "Fikret",
+ "Filip",
+ "Filippo",
+ "Finan",
+ "Findlay",
+ "Findlay-James",
+ "Findlie",
+ "Finlay",
+ "Finley",
+ "Finn",
+ "Finnan",
+ "Finnean",
+ "Finnen",
+ "Finnlay",
+ "Finnley",
+ "Fintan",
+ "Fionn",
+ "Firaaz",
+ "Fletcher",
+ "Flint",
+ "Florin",
+ "Flyn",
+ "Flynn",
+ "Fodeba",
+ "Folarinwa",
+ "Forbes",
+ "Forgan",
+ "Forrest",
+ "Fox",
+ "Francesco",
+ "Francis",
+ "Francisco",
+ "Franciszek",
+ "Franco",
+ "Frank",
+ "Frankie",
+ "Franklin",
+ "Franko",
+ "Fraser",
+ "Frazer",
+ "Fred",
+ "Freddie",
+ "Frederick",
+ "Fruin",
+ "Fyfe",
+ "Fyn",
+ "Fynlay",
+ "Fynn",
+ "Gabriel",
+ "Gallagher",
+ "Gareth",
+ "Garren",
+ "Garrett",
+ "Garry",
+ "Gary",
+ "Gavin",
+ "Gavin-Lee",
+ "Gene",
+ "Geoff",
+ "Geoffrey",
+ "Geomer",
+ "Geordan",
+ "Geordie",
+ "George",
+ "Georgia",
+ "Georgy",
+ "Gerard",
+ "Ghyll",
+ "Giacomo",
+ "Gian",
+ "Giancarlo",
+ "Gianluca",
+ "Gianmarco",
+ "Gideon",
+ "Gil",
+ "Gio",
+ "Girijan",
+ "Girius",
+ "Gjan",
+ "Glascott",
+ "Glen",
+ "Glenn",
+ "Gordon",
+ "Grady",
+ "Graeme",
+ "Graham",
+ "Grahame",
+ "Grant",
+ "Grayson",
+ "Greg",
+ "Gregor",
+ "Gregory",
+ "Greig",
+ "Griffin",
+ "Griffyn",
+ "Grzegorz",
+ "Guang",
+ "Guerin",
+ "Guillaume",
+ "Gurardass",
+ "Gurdeep",
+ "Gursees",
+ "Gurthar",
+ "Gurveer",
+ "Gurwinder",
+ "Gus",
+ "Gustav",
+ "Guthrie",
+ "Guy",
+ "Gytis",
+ "Habeeb",
+ "Hadji",
+ "Hadyn",
+ "Hagun",
+ "Haiden",
+ "Haider",
+ "Hamad",
+ "Hamid",
+ "Hamish",
+ "Hamza",
+ "Hamzah",
+ "Han",
+ "Hansen",
+ "Hao",
+ "Hareem",
+ "Hari",
+ "Harikrishna",
+ "Haris",
+ "Harish",
+ "Harjeevan",
+ "Harjyot",
+ "Harlee",
+ "Harleigh",
+ "Harley",
+ "Harman",
+ "Harnek",
+ "Harold",
+ "Haroon",
+ "Harper",
+ "Harri",
+ "Harrington",
+ "Harris",
+ "Harrison",
+ "Harry",
+ "Harvey",
+ "Harvie",
+ "Harvinder",
+ "Hasan",
+ "Haseeb",
+ "Hashem",
+ "Hashim",
+ "Hassan",
+ "Hassanali",
+ "Hately",
+ "Havila",
+ "Hayden",
+ "Haydn",
+ "Haydon",
+ "Haydyn",
+ "Hcen",
+ "Hector",
+ "Heddle",
+ "Heidar",
+ "Heini",
+ "Hendri",
+ "Henri",
+ "Henry",
+ "Herbert",
+ "Heyden",
+ "Hiro",
+ "Hirvaansh",
+ "Hishaam",
+ "Hogan",
+ "Honey",
+ "Hong",
+ "Hope",
+ "Hopkin",
+ "Hosea",
+ "Howard",
+ "Howie",
+ "Hristomir",
+ "Hubert",
+ "Hugh",
+ "Hugo",
+ "Humza",
+ "Hunter",
+ "Husnain",
+ "Hussain",
+ "Hussan",
+ "Hussnain",
+ "Hussnan",
+ "Hyden",
+ "I",
+ "Iagan",
+ "Iain",
+ "Ian",
+ "Ibraheem",
+ "Ibrahim",
+ "Idahosa",
+ "Idrees",
+ "Idris",
+ "Iestyn",
+ "Ieuan",
+ "Igor",
+ "Ihtisham",
+ "Ijay",
+ "Ikechukwu",
+ "Ikemsinachukwu",
+ "Ilyaas",
+ "Ilyas",
+ "Iman",
+ "Immanuel",
+ "Inan",
+ "Indy",
+ "Ines",
+ "Innes",
+ "Ioannis",
+ "Ireayomide",
+ "Ireoluwa",
+ "Irvin",
+ "Irvine",
+ "Isa",
+ "Isaa",
+ "Isaac",
+ "Isaiah",
+ "Isak",
+ "Isher",
+ "Ishwar",
+ "Isimeli",
+ "Isira",
+ "Ismaeel",
+ "Ismail",
+ "Israel",
+ "Issiaka",
+ "Ivan",
+ "Ivar",
+ "Izaak",
+ "J",
+ "Jaay",
+ "Jac",
+ "Jace",
+ "Jack",
+ "Jacki",
+ "Jackie",
+ "Jack-James",
+ "Jackson",
+ "Jacky",
+ "Jacob",
+ "Jacques",
+ "Jad",
+ "Jaden",
+ "Jadon",
+ "Jadyn",
+ "Jae",
+ "Jagat",
+ "Jago",
+ "Jaheim",
+ "Jahid",
+ "Jahy",
+ "Jai",
+ "Jaida",
+ "Jaiden",
+ "Jaidyn",
+ "Jaii",
+ "Jaime",
+ "Jai-Rajaram",
+ "Jaise",
+ "Jak",
+ "Jake",
+ "Jakey",
+ "Jakob",
+ "Jaksyn",
+ "Jakub",
+ "Jamaal",
+ "Jamal",
+ "Jameel",
+ "Jameil",
+ "James",
+ "James-Paul",
+ "Jamey",
+ "Jamie",
+ "Jan",
+ "Jaosha",
+ "Jardine",
+ "Jared",
+ "Jarell",
+ "Jarl",
+ "Jarno",
+ "Jarred",
+ "Jarvi",
+ "Jasey-Jay",
+ "Jasim",
+ "Jaskaran",
+ "Jason",
+ "Jasper",
+ "Jaxon",
+ "Jaxson",
+ "Jay",
+ "Jaydan",
+ "Jayden",
+ "Jayden-James",
+ "Jayden-Lee",
+ "Jayden-Paul",
+ "Jayden-Thomas",
+ "Jaydn",
+ "Jaydon",
+ "Jaydyn",
+ "Jayhan",
+ "Jay-Jay",
+ "Jayke",
+ "Jaymie",
+ "Jayse",
+ "Jayson",
+ "Jaz",
+ "Jazeb",
+ "Jazib",
+ "Jazz",
+ "Jean",
+ "Jean-Lewis",
+ "Jean-Pierre",
+ "Jebadiah",
+ "Jed",
+ "Jedd",
+ "Jedidiah",
+ "Jeemie",
+ "Jeevan",
+ "Jeffrey",
+ "Jensen",
+ "Jenson",
+ "Jensyn",
+ "Jeremy",
+ "Jerome",
+ "Jeronimo",
+ "Jerrick",
+ "Jerry",
+ "Jesse",
+ "Jesuseun",
+ "Jeswin",
+ "Jevan",
+ "Jeyun",
+ "Jez",
+ "Jia",
+ "Jian",
+ "Jiao",
+ "Jimmy",
+ "Jincheng",
+ "JJ",
+ "Joaquin",
+ "Joash",
+ "Jock",
+ "Jody",
+ "Joe",
+ "Joeddy",
+ "Joel",
+ "Joey",
+ "Joey-Jack",
+ "Johann",
+ "Johannes",
+ "Johansson",
+ "John",
+ "Johnathan",
+ "Johndean",
+ "Johnjay",
+ "John-Michael",
+ "Johnnie",
+ "Johnny",
+ "Johnpaul",
+ "John-Paul",
+ "John-Scott",
+ "Johnson",
+ "Jole",
+ "Jomuel",
+ "Jon",
+ "Jonah",
+ "Jonatan",
+ "Jonathan",
+ "Jonathon",
+ "Jonny",
+ "Jonothan",
+ "Jon-Paul",
+ "Jonson",
+ "Joojo",
+ "Jordan",
+ "Jordi",
+ "Jordon",
+ "Jordy",
+ "Jordyn",
+ "Jorge",
+ "Joris",
+ "Jorryn",
+ "Josan",
+ "Josef",
+ "Joseph",
+ "Josese",
+ "Josh",
+ "Joshiah",
+ "Joshua",
+ "Josiah",
+ "Joss",
+ "Jostelle",
+ "Joynul",
+ "Juan",
+ "Jubin",
+ "Judah",
+ "Jude",
+ "Jules",
+ "Julian",
+ "Julien",
+ "Jun",
+ "Junior",
+ "Jura",
+ "Justan",
+ "Justin",
+ "Justinas",
+ "Kaan",
+ "Kabeer",
+ "Kabir",
+ "Kacey",
+ "Kacper",
+ "Kade",
+ "Kaden",
+ "Kadin",
+ "Kadyn",
+ "Kaeden",
+ "Kael",
+ "Kaelan",
+ "Kaelin",
+ "Kaelum",
+ "Kai",
+ "Kaid",
+ "Kaidan",
+ "Kaiden",
+ "Kaidinn",
+ "Kaidyn",
+ "Kaileb",
+ "Kailin",
+ "Kain",
+ "Kaine",
+ "Kainin",
+ "Kainui",
+ "Kairn",
+ "Kaison",
+ "Kaiwen",
+ "Kajally",
+ "Kajetan",
+ "Kalani",
+ "Kale",
+ "Kaleb",
+ "Kaleem",
+ "Kal-el",
+ "Kalen",
+ "Kalin",
+ "Kallan",
+ "Kallin",
+ "Kalum",
+ "Kalvin",
+ "Kalvyn",
+ "Kameron",
+ "Kames",
+ "Kamil",
+ "Kamran",
+ "Kamron",
+ "Kane",
+ "Karam",
+ "Karamvir",
+ "Karandeep",
+ "Kareem",
+ "Karim",
+ "Karimas",
+ "Karl",
+ "Karol",
+ "Karson",
+ "Karsyn",
+ "Karthikeya",
+ "Kasey",
+ "Kash",
+ "Kashif",
+ "Kasim",
+ "Kasper",
+ "Kasra",
+ "Kavin",
+ "Kayam",
+ "Kaydan",
+ "Kayden",
+ "Kaydin",
+ "Kaydn",
+ "Kaydyn",
+ "Kaydyne",
+ "Kayleb",
+ "Kaylem",
+ "Kaylum",
+ "Kayne",
+ "Kaywan",
+ "Kealan",
+ "Kealon",
+ "Kean",
+ "Keane",
+ "Kearney",
+ "Keatin",
+ "Keaton",
+ "Keavan",
+ "Keayn",
+ "Kedrick",
+ "Keegan",
+ "Keelan",
+ "Keelin",
+ "Keeman",
+ "Keenan",
+ "Keenan-Lee",
+ "Keeton",
+ "Kehinde",
+ "Keigan",
+ "Keilan",
+ "Keir",
+ "Keiran",
+ "Keiren",
+ "Keiron",
+ "Keiryn",
+ "Keison",
+ "Keith",
+ "Keivlin",
+ "Kelam",
+ "Kelan",
+ "Kellan",
+ "Kellen",
+ "Kelso",
+ "Kelum",
+ "Kelvan",
+ "Kelvin",
+ "Ken",
+ "Kenan",
+ "Kendall",
+ "Kendyn",
+ "Kenlin",
+ "Kenneth",
+ "Kensey",
+ "Kenton",
+ "Kenyon",
+ "Kenzeigh",
+ "Kenzi",
+ "Kenzie",
+ "Kenzo",
+ "Kenzy",
+ "Keo",
+ "Ker",
+ "Kern",
+ "Kerr",
+ "Kevan",
+ "Kevin",
+ "Kevyn",
+ "Kez",
+ "Khai",
+ "Khalan",
+ "Khaleel",
+ "Khaya",
+ "Khevien",
+ "Khizar",
+ "Khizer",
+ "Kia",
+ "Kian",
+ "Kian-James",
+ "Kiaran",
+ "Kiarash",
+ "Kie",
+ "Kiefer",
+ "Kiegan",
+ "Kienan",
+ "Kier",
+ "Kieran",
+ "Kieran-Scott",
+ "Kieren",
+ "Kierin",
+ "Kiern",
+ "Kieron",
+ "Kieryn",
+ "Kile",
+ "Killian",
+ "Kimi",
+ "Kingston",
+ "Kinneil",
+ "Kinnon",
+ "Kinsey",
+ "Kiran",
+ "Kirk",
+ "Kirwin",
+ "Kit",
+ "Kiya",
+ "Kiyonari",
+ "Kjae",
+ "Klein",
+ "Klevis",
+ "Kobe",
+ "Kobi",
+ "Koby",
+ "Koddi",
+ "Koden",
+ "Kodi",
+ "Kodie",
+ "Kody",
+ "Kofi",
+ "Kogan",
+ "Kohen",
+ "Kole",
+ "Konan",
+ "Konar",
+ "Konnor",
+ "Konrad",
+ "Koray",
+ "Korben",
+ "Korbyn",
+ "Korey",
+ "Kori",
+ "Korrin",
+ "Kory",
+ "Koushik",
+ "Kris",
+ "Krish",
+ "Krishan",
+ "Kriss",
+ "Kristian",
+ "Kristin",
+ "Kristofer",
+ "Kristoffer",
+ "Kristopher",
+ "Kruz",
+ "Krzysiek",
+ "Krzysztof",
+ "Ksawery",
+ "Ksawier",
+ "Kuba",
+ "Kurt",
+ "Kurtis",
+ "Kurtis-Jae",
+ "Kyaan",
+ "Kyan",
+ "Kyde",
+ "Kyden",
+ "Kye",
+ "Kyel",
+ "Kyhran",
+ "Kyie",
+ "Kylan",
+ "Kylar",
+ "Kyle",
+ "Kyle-Derek",
+ "Kylian",
+ "Kym",
+ "Kynan",
+ "Kyral",
+ "Kyran",
+ "Kyren",
+ "Kyrillos",
+ "Kyro",
+ "Kyron",
+ "Kyrran",
+ "Lachlainn",
+ "Lachlan",
+ "Lachlann",
+ "Lael",
+ "Lagan",
+ "Laird",
+ "Laison",
+ "Lakshya",
+ "Lance",
+ "Lancelot",
+ "Landon",
+ "Lang",
+ "Lasse",
+ "Latif",
+ "Lauchlan",
+ "Lauchlin",
+ "Laughlan",
+ "Lauren",
+ "Laurence",
+ "Laurie",
+ "Lawlyn",
+ "Lawrence",
+ "Lawrie",
+ "Lawson",
+ "Layne",
+ "Layton",
+ "Lee",
+ "Leigh",
+ "Leigham",
+ "Leighton",
+ "Leilan",
+ "Leiten",
+ "Leithen",
+ "Leland",
+ "Lenin",
+ "Lennan",
+ "Lennen",
+ "Lennex",
+ "Lennon",
+ "Lennox",
+ "Lenny",
+ "Leno",
+ "Lenon",
+ "Lenyn",
+ "Leo",
+ "Leon",
+ "Leonard",
+ "Leonardas",
+ "Leonardo",
+ "Lepeng",
+ "Leroy",
+ "Leven",
+ "Levi",
+ "Levon",
+ "Levy",
+ "Lewie",
+ "Lewin",
+ "Lewis",
+ "Lex",
+ "Leydon",
+ "Leyland",
+ "Leylann",
+ "Leyton",
+ "Liall",
+ "Liam",
+ "Liam-Stephen",
+ "Limo",
+ "Lincoln",
+ "Lincoln-John",
+ "Lincon",
+ "Linden",
+ "Linton",
+ "Lionel",
+ "Lisandro",
+ "Litrell",
+ "Liyonela-Elam",
+ "LLeyton",
+ "Lliam",
+ "Lloyd",
+ "Lloyde",
+ "Loche",
+ "Lochlan",
+ "Lochlann",
+ "Lochlan-Oliver",
+ "Lock",
+ "Lockey",
+ "Logan",
+ "Logann",
+ "Logan-Rhys",
+ "Loghan",
+ "Lokesh",
+ "Loki",
+ "Lomond",
+ "Lorcan",
+ "Lorenz",
+ "Lorenzo",
+ "Lorne",
+ "Loudon",
+ "Loui",
+ "Louie",
+ "Louis",
+ "Loukas",
+ "Lovell",
+ "Luc",
+ "Luca",
+ "Lucais",
+ "Lucas",
+ "Lucca",
+ "Lucian",
+ "Luciano",
+ "Lucien",
+ "Lucus",
+ "Luic",
+ "Luis",
+ "Luk",
+ "Luka",
+ "Lukas",
+ "Lukasz",
+ "Luke",
+ "Lukmaan",
+ "Luqman",
+ "Lyall",
+ "Lyle",
+ "Lyndsay",
+ "Lysander",
+ "Maanav",
+ "Maaz",
+ "Mac",
+ "Macallum",
+ "Macaulay",
+ "Macauley",
+ "Macaully",
+ "Machlan",
+ "Maciej",
+ "Mack",
+ "Mackenzie",
+ "Mackenzy",
+ "Mackie",
+ "Macsen",
+ "Macy",
+ "Madaki",
+ "Maddison",
+ "Maddox",
+ "Madison",
+ "Madison-Jake",
+ "Madox",
+ "Mael",
+ "Magnus",
+ "Mahan",
+ "Mahdi",
+ "Mahmoud",
+ "Maias",
+ "Maison",
+ "Maisum",
+ "Maitlind",
+ "Majid",
+ "Makensie",
+ "Makenzie",
+ "Makin",
+ "Maksim",
+ "Maksymilian",
+ "Malachai",
+ "Malachi",
+ "Malachy",
+ "Malakai",
+ "Malakhy",
+ "Malcolm",
+ "Malik",
+ "Malikye",
+ "Malo",
+ "Ma'moon",
+ "Manas",
+ "Maneet",
+ "Manmohan",
+ "Manolo",
+ "Manson",
+ "Mantej",
+ "Manuel",
+ "Manus",
+ "Marc",
+ "Marc-Anthony",
+ "Marcel",
+ "Marcello",
+ "Marcin",
+ "Marco",
+ "Marcos",
+ "Marcous",
+ "Marcquis",
+ "Marcus",
+ "Mario",
+ "Marios",
+ "Marius",
+ "Mark",
+ "Marko",
+ "Markus",
+ "Marley",
+ "Marlin",
+ "Marlon",
+ "Maros",
+ "Marshall",
+ "Martin",
+ "Marty",
+ "Martyn",
+ "Marvellous",
+ "Marvin",
+ "Marwan",
+ "Maryk",
+ "Marzuq",
+ "Mashhood",
+ "Mason",
+ "Mason-Jay",
+ "Masood",
+ "Masson",
+ "Matas",
+ "Matej",
+ "Mateusz",
+ "Mathew",
+ "Mathias",
+ "Mathu",
+ "Mathuyan",
+ "Mati",
+ "Matt",
+ "Matteo",
+ "Matthew",
+ "Matthew-William",
+ "Matthias",
+ "Max",
+ "Maxim",
+ "Maximilian",
+ "Maximillian",
+ "Maximus",
+ "Maxwell",
+ "Maxx",
+ "Mayeul",
+ "Mayson",
+ "Mazin",
+ "Mcbride",
+ "McCaulley",
+ "McKade",
+ "McKauley",
+ "McKay",
+ "McKenzie",
+ "McLay",
+ "Meftah",
+ "Mehmet",
+ "Mehraz",
+ "Meko",
+ "Melville",
+ "Meshach",
+ "Meyzhward",
+ "Micah",
+ "Michael",
+ "Michael-Alexander",
+ "Michael-James",
+ "Michal",
+ "Michat",
+ "Micheal",
+ "Michee",
+ "Mickey",
+ "Miguel",
+ "Mika",
+ "Mikael",
+ "Mi'kael",
+ "Mikee",
+ "Mikey",
+ "Mikhail",
+ "Mikolaj",
+ "Miles",
+ "Millar",
+ "Miller",
+ "Milo",
+ "Milos",
+ "Milosz",
+ "Mir",
+ "Mirza",
+ "Mitch",
+ "Mitchel",
+ "Mitchell",
+ "Moad",
+ "Moayd",
+ "Mobeen",
+ "Modoulamin",
+ "Modu",
+ "Mohamad",
+ "Mohamed",
+ "Mohammad",
+ "Mohammad-Bilal",
+ "Mohammed",
+ "Mohanad",
+ "Mohd",
+ "Momin",
+ "Momooreoluwa",
+ "Montague",
+ "Montgomery",
+ "Monty",
+ "Moore",
+ "Moosa",
+ "Moray",
+ "Morgan",
+ "Morgyn",
+ "Morris",
+ "Morton",
+ "Moshy",
+ "Motade",
+ "Moyes",
+ "Msughter",
+ "Mueez",
+ "Muhamadjavad",
+ "Muhammad",
+ "Muhammed",
+ "Muhsin",
+ "Muir",
+ "Munachi",
+ "Muneeb",
+ "Mungo",
+ "Munir",
+ "Munmair",
+ "Munro",
+ "Murdo",
+ "Murray",
+ "Murrough",
+ "Murry",
+ "Musa",
+ "Musse",
+ "Mustafa",
+ "Mustapha",
+ "Muzammil",
+ "Muzzammil",
+ "Mykie",
+ "Myles",
+ "Mylo",
+ "Nabeel",
+ "Nadeem",
+ "Nader",
+ "Nagib",
+ "Naif",
+ "Nairn",
+ "Narvic",
+ "Nash",
+ "Nasser",
+ "Nassir",
+ "Natan",
+ "Nate",
+ "Nathan",
+ "Nathanael",
+ "Nathanial",
+ "Nathaniel",
+ "Nathan-Rae",
+ "Nawfal",
+ "Nayan",
+ "Neco",
+ "Neil",
+ "Nelson",
+ "Neo",
+ "Neshawn",
+ "Nevan",
+ "Nevin",
+ "Ngonidzashe",
+ "Nial",
+ "Niall",
+ "Nicholas",
+ "Nick",
+ "Nickhill",
+ "Nicki",
+ "Nickson",
+ "Nicky",
+ "Nico",
+ "Nicodemus",
+ "Nicol",
+ "Nicolae",
+ "Nicolas",
+ "Nidhish",
+ "Nihaal",
+ "Nihal",
+ "Nikash",
+ "Nikhil",
+ "Niki",
+ "Nikita",
+ "Nikodem",
+ "Nikolai",
+ "Nikos",
+ "Nilav",
+ "Niraj",
+ "Niro",
+ "Niven",
+ "Noah",
+ "Noel",
+ "Nolan",
+ "Noor",
+ "Norman",
+ "Norrie",
+ "Nuada",
+ "Nyah",
+ "Oakley",
+ "Oban",
+ "Obieluem",
+ "Obosa",
+ "Odhran",
+ "Odin",
+ "Odynn",
+ "Ogheneochuko",
+ "Ogheneruno",
+ "Ohran",
+ "Oilibhear",
+ "Oisin",
+ "Ojima-Ojo",
+ "Okeoghene",
+ "Olaf",
+ "Ola-Oluwa",
+ "Olaoluwapolorimi",
+ "Ole",
+ "Olie",
+ "Oliver",
+ "Olivier",
+ "Oliwier",
+ "Ollie",
+ "Olurotimi",
+ "Oluwadamilare",
+ "Oluwadamiloju",
+ "Oluwafemi",
+ "Oluwafikunayomi",
+ "Oluwalayomi",
+ "Oluwatobiloba",
+ "Oluwatoni",
+ "Omar",
+ "Omri",
+ "Oran",
+ "Orin",
+ "Orlando",
+ "Orley",
+ "Orran",
+ "Orrick",
+ "Orrin",
+ "Orson",
+ "Oryn",
+ "Oscar",
+ "Osesenagha",
+ "Oskar",
+ "Ossian",
+ "Oswald",
+ "Otto",
+ "Owain",
+ "Owais",
+ "Owen",
+ "Owyn",
+ "Oz",
+ "Ozzy",
+ "Pablo",
+ "Pacey",
+ "Padraig",
+ "Paolo",
+ "Pardeepraj",
+ "Parkash",
+ "Parker",
+ "Pascoe",
+ "Pasquale",
+ "Patrick",
+ "Patrick-John",
+ "Patrikas",
+ "Patryk",
+ "Paul",
+ "Pavit",
+ "Pawel",
+ "Pawlo",
+ "Pearce",
+ "Pearse",
+ "Pearsen",
+ "Pedram",
+ "Pedro",
+ "Peirce",
+ "Peiyan",
+ "Pele",
+ "Peni",
+ "Peregrine",
+ "Peter",
+ "Phani",
+ "Philip",
+ "Philippos",
+ "Phinehas",
+ "Phoenix",
+ "Phoevos",
+ "Pierce",
+ "Pierre-Antoine",
+ "Pieter",
+ "Pietro",
+ "Piotr",
+ "Porter",
+ "Prabhjoit",
+ "Prabodhan",
+ "Praise",
+ "Pranav",
+ "Pravin",
+ "Precious",
+ "Prentice",
+ "Presley",
+ "Preston",
+ "Preston-Jay",
+ "Prinay",
+ "Prince",
+ "Prithvi",
+ "Promise",
+ "Puneetpaul",
+ "Pushkar",
+ "Qasim",
+ "Qirui",
+ "Quinlan",
+ "Quinn",
+ "Radmiras",
+ "Raees",
+ "Raegan",
+ "Rafael",
+ "Rafal",
+ "Rafferty",
+ "Rafi",
+ "Raheem",
+ "Rahil",
+ "Rahim",
+ "Rahman",
+ "Raith",
+ "Raithin",
+ "Raja",
+ "Rajab-Ali",
+ "Rajan",
+ "Ralfs",
+ "Ralph",
+ "Ramanas",
+ "Ramit",
+ "Ramone",
+ "Ramsay",
+ "Ramsey",
+ "Rana",
+ "Ranolph",
+ "Raphael",
+ "Rasmus",
+ "Rasul",
+ "Raul",
+ "Raunaq",
+ "Ravin",
+ "Ray",
+ "Rayaan",
+ "Rayan",
+ "Rayane",
+ "Rayden",
+ "Rayhan",
+ "Raymond",
+ "Rayne",
+ "Rayyan",
+ "Raza",
+ "Reace",
+ "Reagan",
+ "Reean",
+ "Reece",
+ "Reed",
+ "Reegan",
+ "Rees",
+ "Reese",
+ "Reeve",
+ "Regan",
+ "Regean",
+ "Reggie",
+ "Rehaan",
+ "Rehan",
+ "Reice",
+ "Reid",
+ "Reigan",
+ "Reilly",
+ "Reily",
+ "Reis",
+ "Reiss",
+ "Remigiusz",
+ "Remo",
+ "Remy",
+ "Ren",
+ "Renars",
+ "Reng",
+ "Rennie",
+ "Reno",
+ "Reo",
+ "Reuben",
+ "Rexford",
+ "Reynold",
+ "Rhein",
+ "Rheo",
+ "Rhett",
+ "Rheyden",
+ "Rhian",
+ "Rhoan",
+ "Rholmark",
+ "Rhoridh",
+ "Rhuairidh",
+ "Rhuan",
+ "Rhuaridh",
+ "Rhudi",
+ "Rhy",
+ "Rhyan",
+ "Rhyley",
+ "Rhyon",
+ "Rhys",
+ "Rhys-Bernard",
+ "Rhyse",
+ "Riach",
+ "Rian",
+ "Ricards",
+ "Riccardo",
+ "Ricco",
+ "Rice",
+ "Richard",
+ "Richey",
+ "Richie",
+ "Ricky",
+ "Rico",
+ "Ridley",
+ "Ridwan",
+ "Rihab",
+ "Rihan",
+ "Rihards",
+ "Rihonn",
+ "Rikki",
+ "Riley",
+ "Rio",
+ "Rioden",
+ "Rishi",
+ "Ritchie",
+ "Rivan",
+ "Riyadh",
+ "Riyaj",
+ "Roan",
+ "Roark",
+ "Roary",
+ "Rob",
+ "Robbi",
+ "Robbie",
+ "Robbie-lee",
+ "Robby",
+ "Robert",
+ "Robert-Gordon",
+ "Robertjohn",
+ "Robi",
+ "Robin",
+ "Rocco",
+ "Roddy",
+ "Roderick",
+ "Rodrigo",
+ "Roen",
+ "Rogan",
+ "Roger",
+ "Rohaan",
+ "Rohan",
+ "Rohin",
+ "Rohit",
+ "Rokas",
+ "Roman",
+ "Ronald",
+ "Ronan",
+ "Ronan-Benedict",
+ "Ronin",
+ "Ronnie",
+ "Rooke",
+ "Roray",
+ "Rori",
+ "Rorie",
+ "Rory",
+ "Roshan",
+ "Ross",
+ "Ross-Andrew",
+ "Rossi",
+ "Rowan",
+ "Rowen",
+ "Roy",
+ "Ruadhan",
+ "Ruaidhri",
+ "Ruairi",
+ "Ruairidh",
+ "Ruan",
+ "Ruaraidh",
+ "Ruari",
+ "Ruaridh",
+ "Ruben",
+ "Rubhan",
+ "Rubin",
+ "Rubyn",
+ "Rudi",
+ "Rudy",
+ "Rufus",
+ "Rui",
+ "Ruo",
+ "Rupert",
+ "Ruslan",
+ "Russel",
+ "Russell",
+ "Ryaan",
+ "Ryan",
+ "Ryan-Lee",
+ "Ryden",
+ "Ryder",
+ "Ryese",
+ "Ryhs",
+ "Rylan",
+ "Rylay",
+ "Rylee",
+ "Ryleigh",
+ "Ryley",
+ "Rylie",
+ "Ryo",
+ "Ryszard",
+ "Saad",
+ "Sabeen",
+ "Sachkirat",
+ "Saffi",
+ "Saghun",
+ "Sahaib",
+ "Sahbian",
+ "Sahil",
+ "Saif",
+ "Saifaddine",
+ "Saim",
+ "Sajid",
+ "Sajjad",
+ "Salahudin",
+ "Salman",
+ "Salter",
+ "Salvador",
+ "Sam",
+ "Saman",
+ "Samar",
+ "Samarjit",
+ "Samatar",
+ "Sambrid",
+ "Sameer",
+ "Sami",
+ "Samir",
+ "Sami-Ullah",
+ "Samual",
+ "Samuel",
+ "Samuela",
+ "Samy",
+ "Sanaullah",
+ "Sandro",
+ "Sandy",
+ "Sanfur",
+ "Sanjay",
+ "Santiago",
+ "Santino",
+ "Satveer",
+ "Saul",
+ "Saunders",
+ "Savin",
+ "Sayad",
+ "Sayeed",
+ "Sayf",
+ "Scot",
+ "Scott",
+ "Scott-Alexander",
+ "Seaan",
+ "Seamas",
+ "Seamus",
+ "Sean",
+ "Seane",
+ "Sean-James",
+ "Sean-Paul",
+ "Sean-Ray",
+ "Seb",
+ "Sebastian",
+ "Sebastien",
+ "Selasi",
+ "Seonaidh",
+ "Sephiroth",
+ "Sergei",
+ "Sergio",
+ "Seth",
+ "Sethu",
+ "Seumas",
+ "Shaarvin",
+ "Shadow",
+ "Shae",
+ "Shahmir",
+ "Shai",
+ "Shane",
+ "Shannon",
+ "Sharland",
+ "Sharoz",
+ "Shaughn",
+ "Shaun",
+ "Shaunpaul",
+ "Shaun-Paul",
+ "Shaun-Thomas",
+ "Shaurya",
+ "Shaw",
+ "Shawn",
+ "Shawnpaul",
+ "Shay",
+ "Shayaan",
+ "Shayan",
+ "Shaye",
+ "Shayne",
+ "Shazil",
+ "Shea",
+ "Sheafan",
+ "Sheigh",
+ "Shenuk",
+ "Sher",
+ "Shergo",
+ "Sheriff",
+ "Sherwyn",
+ "Shiloh",
+ "Shiraz",
+ "Shreeram",
+ "Shreyas",
+ "Shyam",
+ "Siddhant",
+ "Siddharth",
+ "Sidharth",
+ "Sidney",
+ "Siergiej",
+ "Silas",
+ "Simon",
+ "Sinai",
+ "Skye",
+ "Sofian",
+ "Sohaib",
+ "Sohail",
+ "Soham",
+ "Sohan",
+ "Sol",
+ "Solomon",
+ "Sonneey",
+ "Sonni",
+ "Sonny",
+ "Sorley",
+ "Soul",
+ "Spencer",
+ "Spondon",
+ "Stanislaw",
+ "Stanley",
+ "Stefan",
+ "Stefano",
+ "Stefin",
+ "Stephen",
+ "Stephenjunior",
+ "Steve",
+ "Steven",
+ "Steven-lee",
+ "Stevie",
+ "Stewart",
+ "Stewarty",
+ "Strachan",
+ "Struan",
+ "Stuart",
+ "Su",
+ "Subhaan",
+ "Sudais",
+ "Suheyb",
+ "Suilven",
+ "Sukhi",
+ "Sukhpal",
+ "Sukhvir",
+ "Sulayman",
+ "Sullivan",
+ "Sultan",
+ "Sung",
+ "Sunny",
+ "Suraj",
+ "Surien",
+ "Sweyn",
+ "Syed",
+ "Sylvain",
+ "Symon",
+ "Szymon",
+ "Tadd",
+ "Taddy",
+ "Tadhg",
+ "Taegan",
+ "Taegen",
+ "Tai",
+ "Tait",
+ "Taiwo",
+ "Talha",
+ "Taliesin",
+ "Talon",
+ "Talorcan",
+ "Tamar",
+ "Tamiem",
+ "Tammam",
+ "Tanay",
+ "Tane",
+ "Tanner",
+ "Tanvir",
+ "Tanzeel",
+ "Taonga",
+ "Tarik",
+ "Tariq-Jay",
+ "Tate",
+ "Taylan",
+ "Taylar",
+ "Tayler",
+ "Taylor",
+ "Taylor-Jay",
+ "Taylor-Lee",
+ "Tayo",
+ "Tayyab",
+ "Tayye",
+ "Tayyib",
+ "Teagan",
+ "Tee",
+ "Teejay",
+ "Tee-jay",
+ "Tegan",
+ "Teighen",
+ "Teiyib",
+ "Te-Jay",
+ "Temba",
+ "Teo",
+ "Teodor",
+ "Teos",
+ "Terry",
+ "Teydren",
+ "Theo",
+ "Theodore",
+ "Thiago",
+ "Thierry",
+ "Thom",
+ "Thomas",
+ "Thomas-Jay",
+ "Thomson",
+ "Thorben",
+ "Thorfinn",
+ "Thrinei",
+ "Thumbiko",
+ "Tiago",
+ "Tian",
+ "Tiarnan",
+ "Tibet",
+ "Tieran",
+ "Tiernan",
+ "Timothy",
+ "Timucin",
+ "Tiree",
+ "Tisloh",
+ "Titi",
+ "Titus",
+ "Tiylar",
+ "TJ",
+ "Tjay",
+ "T'jay",
+ "T-Jay",
+ "Tobey",
+ "Tobi",
+ "Tobias",
+ "Tobie",
+ "Toby",
+ "Todd",
+ "Tokinaga",
+ "Toluwalase",
+ "Tom",
+ "Tomas",
+ "Tomasz",
+ "Tommi-Lee",
+ "Tommy",
+ "Tomson",
+ "Tony",
+ "Torin",
+ "Torquil",
+ "Torran",
+ "Torrin",
+ "Torsten",
+ "Trafford",
+ "Trai",
+ "Travis",
+ "Tre",
+ "Trent",
+ "Trey",
+ "Tristain",
+ "Tristan",
+ "Troy",
+ "Tubagus",
+ "Turki",
+ "Turner",
+ "Ty",
+ "Ty-Alexander",
+ "Tye",
+ "Tyelor",
+ "Tylar",
+ "Tyler",
+ "Tyler-James",
+ "Tyler-Jay",
+ "Tyllor",
+ "Tylor",
+ "Tymom",
+ "Tymon",
+ "Tymoteusz",
+ "Tyra",
+ "Tyree",
+ "Tyrnan",
+ "Tyrone",
+ "Tyson",
+ "Ubaid",
+ "Ubayd",
+ "Uchenna",
+ "Uilleam",
+ "Umair",
+ "Umar",
+ "Umer",
+ "Umut",
+ "Urban",
+ "Uri",
+ "Usman",
+ "Uzair",
+ "Uzayr",
+ "Valen",
+ "Valentin",
+ "Valentino",
+ "Valery",
+ "Valo",
+ "Vasyl",
+ "Vedantsinh",
+ "Veeran",
+ "Victor",
+ "Victory",
+ "Vinay",
+ "Vince",
+ "Vincent",
+ "Vincenzo",
+ "Vinh",
+ "Vinnie",
+ "Vithujan",
+ "Vladimir",
+ "Vladislav",
+ "Vrishin",
+ "Vuyolwethu",
+ "Wabuya",
+ "Wai",
+ "Walid",
+ "Wallace",
+ "Walter",
+ "Waqaas",
+ "Warkhas",
+ "Warren",
+ "Warrick",
+ "Wasif",
+ "Wayde",
+ "Wayne",
+ "Wei",
+ "Wen",
+ "Wesley",
+ "Wesley-Scott",
+ "Wiktor",
+ "Wilkie",
+ "Will",
+ "William",
+ "William-John",
+ "Willum",
+ "Wilson",
+ "Windsor",
+ "Wojciech",
+ "Woyenbrakemi",
+ "Wyatt",
+ "Wylie",
+ "Wynn",
+ "Xabier",
+ "Xander",
+ "Xavier",
+ "Xiao",
+ "Xida",
+ "Xin",
+ "Xue",
+ "Yadgor",
+ "Yago",
+ "Yahya",
+ "Yakup",
+ "Yang",
+ "Yanick",
+ "Yann",
+ "Yannick",
+ "Yaseen",
+ "Yasin",
+ "Yasir",
+ "Yassin",
+ "Yoji",
+ "Yong",
+ "Yoolgeun",
+ "Yorgos",
+ "Youcef",
+ "Yousif",
+ "Youssef",
+ "Yu",
+ "Yuanyu",
+ "Yuri",
+ "Yusef",
+ "Yusuf",
+ "Yves",
+ "Zaaine",
+ "Zaak",
+ "Zac",
+ "Zach",
+ "Zachariah",
+ "Zacharias",
+ "Zacharie",
+ "Zacharius",
+ "Zachariya",
+ "Zachary",
+ "Zachary-Marc",
+ "Zachery",
+ "Zack",
+ "Zackary",
+ "Zaid",
+ "Zain",
+ "Zaine",
+ "Zaineddine",
+ "Zainedin",
+ "Zak",
+ "Zakaria",
+ "Zakariya",
+ "Zakary",
+ "Zaki",
+ "Zakir",
+ "Zakk",
+ "Zamaar",
+ "Zander",
+ "Zane",
+ "Zarran",
+ "Zayd",
+ "Zayn",
+ "Zayne",
+ "Ze",
+ "Zechariah",
+ "Zeek",
+ "Zeeshan",
+ "Zeid",
+ "Zein",
+ "Zen",
+ "Zendel",
+ "Zenith",
+ "Zennon",
+ "Zeph",
+ "Zerah",
+ "Zhen",
+ "Zhi",
+ "Zhong",
+ "Zhuo",
+ "Zi",
+ "Zidane",
+ "Zijie",
+ "Zinedine",
+ "Zion",
+ "Zishan",
+ "Ziya",
+ "Ziyaan",
+ "Zohaib",
+ "Zohair",
+ "Zoubaeir",
+ "Zubair",
+ "Zubayr",
+ "Zuriel",
+ "Jaime",
+ "Jayden",
+ "Josie",
+ "Juliet",
+ "Karys",
+ "Kathleen",
+ "Kendra",
+ "Keri",
+ "Keris",
+ "Kirstin",
+ "Klaudia",
+ "Luisa",
+ "Lydia",
+ "Maeve",
+ "Marnie",
+ "Miah",
+ "Mirrin",
+ "Nancy",
+ "Nia",
+ "Nikki",
+ "Oliwia",
+ "Paris",
+ "Piper",
+ "Pippa",
+ "Polly",
+ "Rhona",
+ "Safa",
+ "Saira",
+ "Sarah-Louise",
+ "Shona",
+ "Sorcha",
+ "Stacey",
+ "Tessa",
+ "Tiffany",
+ "Verity",
+ "Zarah",
+ "Zoya",
+ "Alexandria",
+ "Alina",
+ "Alison",
+ "Angela",
+ "Arianna",
+ "Chanel",
+ "Chelsey",
+ "Coral",
+ "Corinne",
+ "Danni",
+ "Darci",
+ "Dionne",
+ "Eliza",
+ "Elsie",
+ "Fatima",
+ "Freyja",
+ "Holli",
+ "Jane",
+ "Joanne",
+ "Karina",
+ "Katrina",
+ "Kaylah",
+ "Kaylee",
+ "Lori",
+ "Mila",
+ "Nikita",
+ "Penny",
+ "Sylvie",
+ "Tammy",
+ "Alexa",
+ "Brooklyn",
+ "Caragh",
+ "Codie",
+ "Constance",
+ "Dana",
+ "Demi-Lee",
+ "Emilie",
+ "Esther",
+ "Frankie",
+ "Isabelle",
+ "Jamie-Leigh",
+ "Jessie",
+ "Josephine",
+ "Kady",
+ "Kaila",
+ "Kerri",
+ "Kirstie",
+ "Lyla",
+ "Macey",
+ "Maisy",
+ "Margaret",
+ "Marie",
+ "Maryam",
+ "Mercedes",
+ "Mischa",
+ "Rosa",
+ "Serena",
+ "Sian",
+ "Tamzin",
+ "Vanessa",
+ "Violet",
+ "Yasmine",
+ "Aisha",
+ "Aleisha",
+ "Ana",
+ "Daniella",
+ "Elsa",
+ "Jodi",
+ "Karly",
+ "Leigha",
+ "Lila",
+ "Melanie",
+ "Miriam",
+ "Regan",
+ "Sally",
+ "Saskia",
+ "Simone",
+ "Tess",
+ "Thea",
+ "Zainab",
+ "Arwen",
+ "Bonnie",
+ "Eloise",
+ "Emma-Louise",
+ "Halle",
+ "Hana",
+ "Honey",
+ "Jamie-Lee",
+ "Karla",
+ "Leia",
+ "Leila",
+ "Madeline",
+ "Neave",
+ "Orlaith",
+ "Rhea",
+ "Sarah-Jane",
+ "Tara",
+ "Adele",
+ "Alannah",
+ "Alesha",
+ "Annabelle",
+ "Ayla",
+ "Becca",
+ "Darcie",
+ "Ebony",
+ "Erica",
+ "Georgie",
+ "Hanna",
+ "Julie",
+ "Kadie",
+ "Kelly",
+ "Kiara",
+ "Lillie",
+ "Mariam",
+ "Mikayla",
+ "Monica",
+ "Roisin",
+ "Savannah",
+ "Sky",
+ "Zahra",
+ "Alanna",
+ "Caoimhe",
+ "Chanelle",
+ "Elisha",
+ "Emilia",
+ "Iris",
+ "Kacie",
+ "Lia",
+ "Maja",
+ "Mary",
+ "Michelle",
+ "Tyler",
+ "Willow",
+ "Yasmin",
+ "Becky",
+ "Billie",
+ "Clara",
+ "Claudia",
+ "Cody",
+ "Elena",
+ "Eryn",
+ "Georgina",
+ "Kayley",
+ "Kimberley",
+ "Kira",
+ "Laila",
+ "Lauryn",
+ "Murron",
+ "Natalia",
+ "Ruth",
+ "Siobhan",
+ "Tiana",
+ "Bethan",
+ "Brodie",
+ "Cameron",
+ "Cassie",
+ "Harriet",
+ "Helen",
+ "Kathryn",
+ "Kyra",
+ "Mairi",
+ "Mckenzie",
+ "Tilly",
+ "Zuzanna",
+ "April",
+ "Christina",
+ "Claire",
+ "Darcey",
+ "Fern",
+ "Fiona",
+ "Joanna",
+ "Lucia",
+ "Charli",
+ "Jamie",
+ "Karis",
+ "Mackenzie",
+ "Marissa",
+ "Rihanna",
+ "Teagan",
+ "Tiegan",
+ "Kaitlin",
+ "Keeley",
+ "Leigh",
+ "Nadia",
+ "Alix",
+ "Callie",
+ "Carrie",
+ "Eden",
+ "Esme",
+ "Hazel",
+ "Miya",
+ "Nieve",
+ "Sadie",
+ "Sasha",
+ "Sinead",
+ "Stella",
+ "Ashleigh",
+ "Jade",
+ "Jemma",
+ "Michaela",
+ "Alexis",
+ "Aoife",
+ "Francesca",
+ "Lisa",
+ "Matilda",
+ "Annabel",
+ "Carmen",
+ "Eleanor",
+ "Faye",
+ "Kaci",
+ "Kasey",
+ "Kerry",
+ "Louisa",
+ "Macy",
+ "Mhairi",
+ "Rebekah",
+ "Teigan",
+ "Amie",
+ "Brogan",
+ "Catriona",
+ "Scarlett",
+ "Connie",
+ "Katelyn",
+ "Kenzie",
+ "Lexi",
+ "Nicola",
+ "Sienna",
+ "Abbi",
+ "Angel",
+ "Martha",
+ "Anya",
+ "Toni",
+ "Chantelle",
+ "Gabriella",
+ "Lexie",
+ "Abbey",
+ "Bailey",
+ "Isobel",
+ "Kelsie",
+ "Maia",
+ "Nina",
+ "Darcy",
+ "Lacey",
+ "Lana",
+ "Sofia",
+ "Stephanie",
+ "Ellen",
+ "Alicia",
+ "Gabrielle",
+ "Heidi",
+ "Jorja",
+ "Kyla",
+ "Rhiannon",
+ "Tegan",
+ "Maddison",
+ "Madeleine",
+ "Morven",
+ "Rowan",
+ "Lucie",
+ "Milly",
+ "Annie",
+ "Ashley",
+ "Ellis",
+ "Hope",
+ "Mirren",
+ "Rose",
+ "Alexandra",
+ "Jodie",
+ "Kacey",
+ "Phoebe",
+ "Tia",
+ "Ailsa",
+ "Alana",
+ "Kirsten",
+ "Charlie",
+ "Katy",
+ "Lilly",
+ "Alyssa",
+ "Maria",
+ "Naomi",
+ "Alisha",
+ "Danielle",
+ "Lola",
+ "Ciara",
+ "Elle",
+ "Faith",
+ "Natasha",
+ "Katherine",
+ "Lois",
+ "Mollie",
+ "Carla",
+ "Catherine",
+ "Cerys",
+ "Maisie",
+ "Victoria",
+ "Amelie",
+ "Demi",
+ "Gracie",
+ "Carys",
+ "Isabella",
+ "Leona",
+ "Alex",
+ "Hollie",
+ "Sara",
+ "Caitlyn",
+ "Kiera",
+ "Lara",
+ "Kate",
+ "Louise",
+ "Libby",
+ "Rhianna",
+ "Rosie",
+ "Alice",
+ "Julia",
+ "Maya",
+ "Natalie",
+ "Chelsea",
+ "Layla",
+ "Samantha",
+ "Heather",
+ "Kirsty",
+ "Rachael",
+ "Charley",
+ "Imogen",
+ "Elise",
+ "Hayley",
+ "Kelsey",
+ "Kara",
+ "Orla",
+ "Abi",
+ "Gemma",
+ "Laura",
+ "Mya",
+ "Bethany",
+ "Jasmine",
+ "Melissa",
+ "Poppy",
+ "Casey",
+ "Elizabeth",
+ "Kaitlyn",
+ "Carly",
+ "Abby",
+ "Neve",
+ "Courtney",
+ "Jennifer",
+ "Sophia",
+ "Shannon",
+ "Georgia",
+ "Amber",
+ "Robyn",
+ "Beth",
+ "Zara",
+ "Amelia",
+ "Taylor",
+ "Daisy",
+ "Paige",
+ "Kayleigh",
+ "Summer",
+ "Madison",
+ "Jenna",
+ "Morgan",
+ "Evie",
+ "Nicole",
+ "Ella",
+ "Cara",
+ "Iona",
+ "Eve",
+ "Zoe",
+ "Kayla",
+ "Molly",
+ "Abigail",
+ "Charlotte",
+ "Millie",
+ "Holly",
+ "Leah",
+ "Keira",
+ "Lily",
+ "Freya",
+ "Caitlin",
+ "Lauren",
+ "Rachel",
+ "Anna",
+ "Sarah",
+ "Ruby",
+ "Aimee",
+ "Mia",
+ "Skye",
+ "Abbie",
+ "Eva",
+ "Eilidh",
+ "Niamh",
+ "Megan",
+ "Brooke",
+ "Isla",
+ "Rebecca",
+ "Ava",
+ "Grace",
+ "Jessica",
+ "Hannah",
+ "Olivia",
+ "Chloe",
+ "Emily",
+ "Amy",
+ "Ellie",
+ "Erin",
+ "Katie",
+ "Lucy",
+ "Emma",
+ "Sophie"
+ };
+ }
- private static final String[] generateScottishFirstNames() {
- return new String[] { "Aadam", "Aadit", "Aahron", "Aaran", "Aaren",
- "Aarez", "Aarman", "Aaron", "Aaron-James", "Aarron", "Aaryan", "Aaryn", "Aayan", "Aazaan", "Abaan", "Abbas",
- "Abdallah", "Abdalroof", "Abdihakim", "Abdirahman", "Abdisalam", "Abdul", "Abdul-Aziz", "Abdulbasir",
- "Abdulkadir", "Abdulkarem", "Abdulkhader", "Abdullah", "Abdul-Majeed", "Abdulmalik", "Abdul-Rehman",
- "Abdur", "Abdurraheem", "Abdur-Rahman", "Abdur-Rehmaan", "Abel", "Abhinav", "Abhisumant", "Abid", "Abir",
- "Abraham", "Abu", "Abubakar", "Ace", "Adain", "Adam", "Adam-James", "Addison", "Addisson", "Adegbola",
- "Adegbolahan", "Aden", "Adenn", "Adie", "Adil", "Aditya", "Adnan", "Adrian", "Adrien", "Aedan", "Aedin",
- "Aedyn", "Aeron", "Afonso", "Ahmad", "Ahmed", "Ahmed-Aziz", "Ahoua", "Ahtasham", "Aiadan", "Aidan", "Aiden",
- "Aiden-Jack", "Aiden-Vee", "Aidian", "Aidy", "Ailin", "Aiman", "Ainsley", "Ainslie", "Airen", "Airidas",
- "Airlie", "AJ", "Ajay", "A-Jay", "Ajayraj", "Akan", "Akram", "Al", "Ala'", "Alan", "Alanas", "Alasdair",
- "Alastair", "Alber", "Albert", "Albie", "Aldred", "Alec", "Aled", "Aleem", "Aleksandar", "Aleksander",
- "Aleksandr", "Aleksandrs", "Alekzander", "Alessandro", "Alessio", "Alex", "Alexander", "Alexei", "Alexx",
- "Alexzander", "Alf", "Alfee", "Alfie", "Alfred", "Alfy", "Alhaji", "Al-Hassan", "Ali", "Aliekber", "Alieu",
- "Alihaider", "Alisdair", "Alishan", "Alistair", "Alistar", "Alister", "Aliyaan", "Allan", "Allan-Laiton",
- "Allen", "Allesandro", "Allister", "Ally", "Alphonse", "Altyiab", "Alum", "Alvern", "Alvin", "Alyas",
- "Amaan", "Aman", "Amani", "Ambanimoh", "Ameer", "Amgad", "Ami", "Amin", "Amir", "Ammaar", "Ammar", "Ammer",
- "Amolpreet", "Amos", "Amrinder", "Amrit", "Amro", "Anay", "Andrea", "Andreas", "Andrei", "Andrejs",
- "Andrew", "Andy", "Anees", "Anesu", "Angel", "Angelo", "Angus", "Anir", "Anis", "Anish", "Anmolpreet",
- "Annan", "Anndra", "Anselm", "Anthony", "Anthony-John", "Antoine", "Anton", "Antoni", "Antonio", "Antony",
- "Antonyo", "Anubhav", "Aodhan", "Aon", "Aonghus", "Apisai", "Arafat", "Aran", "Arandeep", "Arann", "Aray",
- "Arayan", "Archibald", "Archie", "Arda", "Ardal", "Ardeshir", "Areeb", "Areez", "Aref", "Arfin", "Argyle",
- "Argyll", "Ari", "Aria", "Arian", "Arihant", "Aristomenis", "Aristotelis", "Arjuna", "Arlo", "Armaan",
- "Arman", "Armen", "Arnab", "Arnav", "Arnold", "Aron", "Aronas", "Arran", "Arrham", "Arron", "Arryn",
- "Arsalan", "Artem", "Arthur", "Artur", "Arturo", "Arun", "Arunas", "Arved", "Arya", "Aryan", "Aryankhan",
- "Aryian", "Aryn", "Asa", "Asfhan", "Ash", "Ashlee-jay", "Ashley", "Ashton", "Ashton-Lloyd", "Ashtyn",
- "Ashwin", "Asif", "Asim", "Aslam", "Asrar", "Ata", "Atal", "Atapattu", "Ateeq", "Athol", "Athon",
- "Athos-Carlos", "Atli", "Atom", "Attila", "Aulay", "Aun", "Austen", "Austin", "Avani", "Averon", "Avi",
- "Avinash", "Avraham", "Awais", "Awwal", "Axel", "Ayaan", "Ayan", "Aydan", "Ayden", "Aydin", "Aydon",
- "Ayman", "Ayomide", "Ayren", "Ayrton", "Aytug", "Ayub", "Ayyub", "Azaan", "Azedine", "Azeem", "Azim",
- "Aziz", "Azlan", "Azzam", "Azzedine", "Babatunmise", "Babur", "Bader", "Badr", "Badsha", "Bailee", "Bailey",
- "Bailie", "Bailley", "Baillie", "Baley", "Balian", "Banan", "Barath", "Barkley", "Barney", "Baron",
- "Barrie", "Barry", "Bartlomiej", "Bartosz", "Basher", "Basile", "Baxter", "Baye", "Bayley", "Beau", "Beinn",
- "Bekim", "Believe", "Ben", "Bendeguz", "Benedict", "Benjamin", "Benjamyn", "Benji", "Benn", "Bennett",
- "Benny", "Benoit", "Bentley", "Berkay", "Bernard", "Bertie", "Bevin", "Bezalel", "Bhaaldeen", "Bharath",
- "Bilal", "Bill", "Billy", "Binod", "Bjorn", "Blaike", "Blaine", "Blair", "Blaire", "Blake", "Blazej",
- "Blazey", "Blessing", "Blue", "Blyth", "Bo", "Boab", "Bob", "Bobby", "Bobby-Lee", "Bodhan", "Boedyn",
- "Bogdan", "Bohbi", "Bony", "Bowen", "Bowie", "Boyd", "Bracken", "Brad", "Bradan", "Braden", "Bradley",
- "Bradlie", "Bradly", "Brady", "Bradyn", "Braeden", "Braiden", "Brajan", "Brandan", "Branden", "Brandon",
- "Brandonlee", "Brandon-Lee", "Brandyn", "Brannan", "Brayden", "Braydon", "Braydyn", "Breandan", "Brehme",
- "Brendan", "Brendon", "Brendyn", "Breogan", "Bret", "Brett", "Briaddon", "Brian", "Brodi", "Brodie",
- "Brody", "Brogan", "Broghan", "Brooke", "Brooklin", "Brooklyn", "Bruce", "Bruin", "Bruno", "Brunon",
- "Bryan", "Bryce", "Bryden", "Brydon", "Brydon-Craig", "Bryn", "Brynmor", "Bryson", "Buddy", "Bully",
- "Burak", "Burhan", "Butali", "Butchi", "Byron", "Cabhan", "Cadan", "Cade", "Caden", "Cadon", "Cadyn",
- "Caedan", "Caedyn", "Cael", "Caelan", "Caelen", "Caethan", "Cahl", "Cahlum", "Cai", "Caidan", "Caiden",
- "Caiden-Paul", "Caidyn", "Caie", "Cailaen", "Cailean", "Caileb-John", "Cailin", "Cain", "Caine", "Cairn",
- "Cal", "Calan", "Calder", "Cale", "Calean", "Caleb", "Calen", "Caley", "Calib", "Calin", "Callahan",
- "Callan", "Callan-Adam", "Calley", "Callie", "Callin", "Callum", "Callun", "Callyn", "Calum", "Calum-James",
- "Calvin", "Cambell", "Camerin", "Cameron", "Campbel", "Campbell", "Camron", "Caolain", "Caolan", "Carl",
- "Carlo", "Carlos", "Carrich", "Carrick", "Carson", "Carter", "Carwyn", "Casey", "Casper", "Cassy", "Cathal",
- "Cator", "Cavan", "Cayden", "Cayden-Robert", "Cayden-Tiamo", "Ceejay", "Ceilan", "Ceiran", "Ceirin",
- "Ceiron", "Cejay", "Celik", "Cephas", "Cesar", "Cesare", "Chad", "Chaitanya", "Chang-Ha", "Charles",
- "Charley", "Charlie", "Charly", "Chase", "Che", "Chester", "Chevy", "Chi", "Chibudom", "Chidera", "Chimsom",
- "Chin", "Chintu", "Chiqal", "Chiron", "Chris", "Chris-Daniel", "Chrismedi", "Christian", "Christie",
- "Christoph", "Christopher", "Christopher-Lee", "Christy", "Chu", "Chukwuemeka", "Cian", "Ciann", "Ciar",
- "Ciaran", "Ciarian", "Cieran", "Cillian", "Cillin", "Cinar", "CJ", "C-Jay", "Clark", "Clarke", "Clayton",
- "Clement", "Clifford", "Clyde", "Cobain", "Coban", "Coben", "Cobi", "Cobie", "Coby", "Codey", "Codi",
- "Codie", "Cody", "Cody-Lee", "Coel", "Cohan", "Cohen", "Colby", "Cole", "Colin", "Coll", "Colm", "Colt",
- "Colton", "Colum", "Colvin", "Comghan", "Conal", "Conall", "Conan", "Conar", "Conghaile", "Conlan",
- "Conley", "Conli", "Conlin", "Conlly", "Conlon", "Conlyn", "Connal", "Connall", "Connan", "Connar",
- "Connel", "Connell", "Conner", "Connolly", "Connor", "Connor-David", "Conor", "Conrad", "Cooper",
- "Copeland", "Coray", "Corben", "Corbin", "Corey", "Corey-James", "Corey-Jay", "Cori", "Corie", "Corin",
- "Cormac", "Cormack", "Cormak", "Corran", "Corrie", "Cory", "Cosmo", "Coupar", "Craig", "Craig-James",
- "Crawford", "Creag", "Crispin", "Cristian", "Crombie", "Cruiz", "Cruz", "Cuillin", "Cullen", "Cullin",
- "Curtis", "Cyrus", "Daanyaal", "Daegan", "Daegyu", "Dafydd", "Dagon", "Dailey", "Daimhin", "Daithi",
- "Dakota", "Daksh", "Dale", "Dalong", "Dalton", "Damian", "Damien", "Damon", "Dan", "Danar", "Dane",
- "Danial", "Daniel", "Daniele", "Daniel-James", "Daniels", "Daniil", "Danish", "Daniyal", "Danniel", "Danny",
- "Dante", "Danyal", "Danyil", "Danys", "Daood", "Dara", "Darach", "Daragh", "Darcy", "D'arcy", "Dareh",
- "Daren", "Darien", "Darius", "Darl", "Darn", "Darrach", "Darragh", "Darrel", "Darrell", "Darren", "Darrie",
- "Darrius", "Darroch", "Darryl", "Darryn", "Darwyn", "Daryl", "Daryn", "Daud", "Daumantas", "Davi", "David",
- "David-Jay", "David-Lee", "Davie", "Davis", "Davy", "Dawid", "Dawson", "Dawud", "Dayem", "Daymian",
- "Deacon", "Deagan", "Dean", "Deano", "Decklan", "Declain", "Declan", "Declyan", "Declyn", "Dedeniseoluwa",
- "Deecan", "Deegan", "Deelan", "Deklain-Jaimes", "Del", "Demetrius", "Denis", "Deniss", "Dennan", "Dennin",
- "Dennis", "Denny", "Dennys", "Denon", "Denton", "Denver", "Denzel", "Deon", "Derek", "Derick", "Derin",
- "Dermot", "Derren", "Derrie", "Derrin", "Derron", "Derry", "Derryn", "Deryn", "Deshawn", "Desmond", "Dev",
- "Devan", "Devin", "Devlin", "Devlyn", "Devon", "Devrin", "Devyn", "Dex", "Dexter", "Dhani", "Dharam",
- "Dhavid", "Dhyia", "Diarmaid", "Diarmid", "Diarmuid", "Didier", "Diego", "Diesel", "Diesil", "Digby",
- "Dilan", "Dilano", "Dillan", "Dillon", "Dilraj", "Dimitri", "Dinaras", "Dion", "Dissanayake", "Dmitri",
- "Doire", "Dolan", "Domanic", "Domenico", "Domhnall", "Dominic", "Dominick", "Dominik", "Donald", "Donnacha",
- "Donnie", "Dorian", "Dougal", "Douglas", "Dougray", "Drakeo", "Dre", "Dregan", "Drew", "Dugald", "Duncan",
- "Duriel", "Dustin", "Dylan", "Dylan-Jack", "Dylan-James", "Dylan-John", "Dylan-Patrick", "Dylin", "Dyllan",
- "Dyllan-James", "Dyllon", "Eadie", "Eagann", "Eamon", "Eamonn", "Eason", "Eassan", "Easton", "Ebow", "Ed",
- "Eddie", "Eden", "Ediomi", "Edison", "Eduardo", "Eduards", "Edward", "Edwin", "Edwyn", "Eesa", "Efan",
- "Efe", "Ege", "Ehsan", "Ehsen", "Eiddon", "Eidhan", "Eihli", "Eimantas", "Eisa", "Eli", "Elias", "Elijah",
- "Eliot", "Elisau", "Eljay", "Eljon", "Elliot", "Elliott", "Ellis", "Ellisandro", "Elshan", "Elvin", "Elyan",
- "Emanuel", "Emerson", "Emil", "Emile", "Emir", "Emlyn", "Emmanuel", "Emmet", "Eng", "Eniola", "Enis",
- "Ennis", "Enrico", "Enrique", "Enzo", "Eoghain", "Eoghan", "Eoin", "Eonan", "Erdehan", "Eren", "Erencem",
- "Eric", "Ericlee", "Erik", "Eriz", "Ernie-Jacks", "Eroni", "Eryk", "Eshan", "Essa", "Esteban", "Ethan",
- "Etienne", "Etinosa", "Euan", "Eugene", "Evan", "Evann", "Ewan", "Ewen", "Ewing", "Exodi", "Ezekiel",
- "Ezra", "Fabian", "Fahad", "Faheem", "Faisal", "Faizaan", "Famara", "Fares", "Farhaan", "Farhan", "Farren",
- "Farzad", "Fauzaan", "Favour", "Fawaz", "Fawkes", "Faysal", "Fearghus", "Feden", "Felix", "Fergal",
- "Fergie", "Fergus", "Ferre", "Fezaan", "Fiachra", "Fikret", "Filip", "Filippo", "Finan", "Findlay",
- "Findlay-James", "Findlie", "Finlay", "Finley", "Finn", "Finnan", "Finnean", "Finnen", "Finnlay", "Finnley",
- "Fintan", "Fionn", "Firaaz", "Fletcher", "Flint", "Florin", "Flyn", "Flynn", "Fodeba", "Folarinwa",
- "Forbes", "Forgan", "Forrest", "Fox", "Francesco", "Francis", "Francisco", "Franciszek", "Franco", "Frank",
- "Frankie", "Franklin", "Franko", "Fraser", "Frazer", "Fred", "Freddie", "Frederick", "Fruin", "Fyfe", "Fyn",
- "Fynlay", "Fynn", "Gabriel", "Gallagher", "Gareth", "Garren", "Garrett", "Garry", "Gary", "Gavin",
- "Gavin-Lee", "Gene", "Geoff", "Geoffrey", "Geomer", "Geordan", "Geordie", "George", "Georgia", "Georgy",
- "Gerard", "Ghyll", "Giacomo", "Gian", "Giancarlo", "Gianluca", "Gianmarco", "Gideon", "Gil", "Gio",
- "Girijan", "Girius", "Gjan", "Glascott", "Glen", "Glenn", "Gordon", "Grady", "Graeme", "Graham", "Grahame",
- "Grant", "Grayson", "Greg", "Gregor", "Gregory", "Greig", "Griffin", "Griffyn", "Grzegorz", "Guang",
- "Guerin", "Guillaume", "Gurardass", "Gurdeep", "Gursees", "Gurthar", "Gurveer", "Gurwinder", "Gus",
- "Gustav", "Guthrie", "Guy", "Gytis", "Habeeb", "Hadji", "Hadyn", "Hagun", "Haiden", "Haider", "Hamad",
- "Hamid", "Hamish", "Hamza", "Hamzah", "Han", "Hansen", "Hao", "Hareem", "Hari", "Harikrishna", "Haris",
- "Harish", "Harjeevan", "Harjyot", "Harlee", "Harleigh", "Harley", "Harman", "Harnek", "Harold", "Haroon",
- "Harper", "Harri", "Harrington", "Harris", "Harrison", "Harry", "Harvey", "Harvie", "Harvinder", "Hasan",
- "Haseeb", "Hashem", "Hashim", "Hassan", "Hassanali", "Hately", "Havila", "Hayden", "Haydn", "Haydon",
- "Haydyn", "Hcen", "Hector", "Heddle", "Heidar", "Heini", "Hendri", "Henri", "Henry", "Herbert", "Heyden",
- "Hiro", "Hirvaansh", "Hishaam", "Hogan", "Honey", "Hong", "Hope", "Hopkin", "Hosea", "Howard", "Howie",
- "Hristomir", "Hubert", "Hugh", "Hugo", "Humza", "Hunter", "Husnain", "Hussain", "Hussan", "Hussnain",
- "Hussnan", "Hyden", "I", "Iagan", "Iain", "Ian", "Ibraheem", "Ibrahim", "Idahosa", "Idrees", "Idris",
- "Iestyn", "Ieuan", "Igor", "Ihtisham", "Ijay", "Ikechukwu", "Ikemsinachukwu", "Ilyaas", "Ilyas", "Iman",
- "Immanuel", "Inan", "Indy", "Ines", "Innes", "Ioannis", "Ireayomide", "Ireoluwa", "Irvin", "Irvine", "Isa",
- "Isaa", "Isaac", "Isaiah", "Isak", "Isher", "Ishwar", "Isimeli", "Isira", "Ismaeel", "Ismail", "Israel",
- "Issiaka", "Ivan", "Ivar", "Izaak", "J", "Jaay", "Jac", "Jace", "Jack", "Jacki", "Jackie", "Jack-James",
- "Jackson", "Jacky", "Jacob", "Jacques", "Jad", "Jaden", "Jadon", "Jadyn", "Jae", "Jagat", "Jago", "Jaheim",
- "Jahid", "Jahy", "Jai", "Jaida", "Jaiden", "Jaidyn", "Jaii", "Jaime", "Jai-Rajaram", "Jaise", "Jak", "Jake",
- "Jakey", "Jakob", "Jaksyn", "Jakub", "Jamaal", "Jamal", "Jameel", "Jameil", "James", "James-Paul", "Jamey",
- "Jamie", "Jan", "Jaosha", "Jardine", "Jared", "Jarell", "Jarl", "Jarno", "Jarred", "Jarvi", "Jasey-Jay",
- "Jasim", "Jaskaran", "Jason", "Jasper", "Jaxon", "Jaxson", "Jay", "Jaydan", "Jayden", "Jayden-James",
- "Jayden-Lee", "Jayden-Paul", "Jayden-Thomas", "Jaydn", "Jaydon", "Jaydyn", "Jayhan", "Jay-Jay", "Jayke",
- "Jaymie", "Jayse", "Jayson", "Jaz", "Jazeb", "Jazib", "Jazz", "Jean", "Jean-Lewis", "Jean-Pierre",
- "Jebadiah", "Jed", "Jedd", "Jedidiah", "Jeemie", "Jeevan", "Jeffrey", "Jensen", "Jenson", "Jensyn",
- "Jeremy", "Jerome", "Jeronimo", "Jerrick", "Jerry", "Jesse", "Jesuseun", "Jeswin", "Jevan", "Jeyun", "Jez",
- "Jia", "Jian", "Jiao", "Jimmy", "Jincheng", "JJ", "Joaquin", "Joash", "Jock", "Jody", "Joe", "Joeddy",
- "Joel", "Joey", "Joey-Jack", "Johann", "Johannes", "Johansson", "John", "Johnathan", "Johndean", "Johnjay",
- "John-Michael", "Johnnie", "Johnny", "Johnpaul", "John-Paul", "John-Scott", "Johnson", "Jole", "Jomuel",
- "Jon", "Jonah", "Jonatan", "Jonathan", "Jonathon", "Jonny", "Jonothan", "Jon-Paul", "Jonson", "Joojo",
- "Jordan", "Jordi", "Jordon", "Jordy", "Jordyn", "Jorge", "Joris", "Jorryn", "Josan", "Josef", "Joseph",
- "Josese", "Josh", "Joshiah", "Joshua", "Josiah", "Joss", "Jostelle", "Joynul", "Juan", "Jubin", "Judah",
- "Jude", "Jules", "Julian", "Julien", "Jun", "Junior", "Jura", "Justan", "Justin", "Justinas", "Kaan",
- "Kabeer", "Kabir", "Kacey", "Kacper", "Kade", "Kaden", "Kadin", "Kadyn", "Kaeden", "Kael", "Kaelan",
- "Kaelin", "Kaelum", "Kai", "Kaid", "Kaidan", "Kaiden", "Kaidinn", "Kaidyn", "Kaileb", "Kailin", "Kain",
- "Kaine", "Kainin", "Kainui", "Kairn", "Kaison", "Kaiwen", "Kajally", "Kajetan", "Kalani", "Kale", "Kaleb",
- "Kaleem", "Kal-el", "Kalen", "Kalin", "Kallan", "Kallin", "Kalum", "Kalvin", "Kalvyn", "Kameron", "Kames",
- "Kamil", "Kamran", "Kamron", "Kane", "Karam", "Karamvir", "Karandeep", "Kareem", "Karim", "Karimas", "Karl",
- "Karol", "Karson", "Karsyn", "Karthikeya", "Kasey", "Kash", "Kashif", "Kasim", "Kasper", "Kasra", "Kavin",
- "Kayam", "Kaydan", "Kayden", "Kaydin", "Kaydn", "Kaydyn", "Kaydyne", "Kayleb", "Kaylem", "Kaylum", "Kayne",
- "Kaywan", "Kealan", "Kealon", "Kean", "Keane", "Kearney", "Keatin", "Keaton", "Keavan", "Keayn", "Kedrick",
- "Keegan", "Keelan", "Keelin", "Keeman", "Keenan", "Keenan-Lee", "Keeton", "Kehinde", "Keigan", "Keilan",
- "Keir", "Keiran", "Keiren", "Keiron", "Keiryn", "Keison", "Keith", "Keivlin", "Kelam", "Kelan", "Kellan",
- "Kellen", "Kelso", "Kelum", "Kelvan", "Kelvin", "Ken", "Kenan", "Kendall", "Kendyn", "Kenlin", "Kenneth",
- "Kensey", "Kenton", "Kenyon", "Kenzeigh", "Kenzi", "Kenzie", "Kenzo", "Kenzy", "Keo", "Ker", "Kern", "Kerr",
- "Kevan", "Kevin", "Kevyn", "Kez", "Khai", "Khalan", "Khaleel", "Khaya", "Khevien", "Khizar", "Khizer",
- "Kia", "Kian", "Kian-James", "Kiaran", "Kiarash", "Kie", "Kiefer", "Kiegan", "Kienan", "Kier", "Kieran",
- "Kieran-Scott", "Kieren", "Kierin", "Kiern", "Kieron", "Kieryn", "Kile", "Killian", "Kimi", "Kingston",
- "Kinneil", "Kinnon", "Kinsey", "Kiran", "Kirk", "Kirwin", "Kit", "Kiya", "Kiyonari", "Kjae", "Klein",
- "Klevis", "Kobe", "Kobi", "Koby", "Koddi", "Koden", "Kodi", "Kodie", "Kody", "Kofi", "Kogan", "Kohen",
- "Kole", "Konan", "Konar", "Konnor", "Konrad", "Koray", "Korben", "Korbyn", "Korey", "Kori", "Korrin",
- "Kory", "Koushik", "Kris", "Krish", "Krishan", "Kriss", "Kristian", "Kristin", "Kristofer", "Kristoffer",
- "Kristopher", "Kruz", "Krzysiek", "Krzysztof", "Ksawery", "Ksawier", "Kuba", "Kurt", "Kurtis", "Kurtis-Jae",
- "Kyaan", "Kyan", "Kyde", "Kyden", "Kye", "Kyel", "Kyhran", "Kyie", "Kylan", "Kylar", "Kyle", "Kyle-Derek",
- "Kylian", "Kym", "Kynan", "Kyral", "Kyran", "Kyren", "Kyrillos", "Kyro", "Kyron", "Kyrran", "Lachlainn",
- "Lachlan", "Lachlann", "Lael", "Lagan", "Laird", "Laison", "Lakshya", "Lance", "Lancelot", "Landon", "Lang",
- "Lasse", "Latif", "Lauchlan", "Lauchlin", "Laughlan", "Lauren", "Laurence", "Laurie", "Lawlyn", "Lawrence",
- "Lawrie", "Lawson", "Layne", "Layton", "Lee", "Leigh", "Leigham", "Leighton", "Leilan", "Leiten", "Leithen",
- "Leland", "Lenin", "Lennan", "Lennen", "Lennex", "Lennon", "Lennox", "Lenny", "Leno", "Lenon", "Lenyn",
- "Leo", "Leon", "Leonard", "Leonardas", "Leonardo", "Lepeng", "Leroy", "Leven", "Levi", "Levon", "Levy",
- "Lewie", "Lewin", "Lewis", "Lex", "Leydon", "Leyland", "Leylann", "Leyton", "Liall", "Liam", "Liam-Stephen",
- "Limo", "Lincoln", "Lincoln-John", "Lincon", "Linden", "Linton", "Lionel", "Lisandro", "Litrell",
- "Liyonela-Elam", "LLeyton", "Lliam", "Lloyd", "Lloyde", "Loche", "Lochlan", "Lochlann", "Lochlan-Oliver",
- "Lock", "Lockey", "Logan", "Logann", "Logan-Rhys", "Loghan", "Lokesh", "Loki", "Lomond", "Lorcan", "Lorenz",
- "Lorenzo", "Lorne", "Loudon", "Loui", "Louie", "Louis", "Loukas", "Lovell", "Luc", "Luca", "Lucais",
- "Lucas", "Lucca", "Lucian", "Luciano", "Lucien", "Lucus", "Luic", "Luis", "Luk", "Luka", "Lukas", "Lukasz",
- "Luke", "Lukmaan", "Luqman", "Lyall", "Lyle", "Lyndsay", "Lysander", "Maanav", "Maaz", "Mac", "Macallum",
- "Macaulay", "Macauley", "Macaully", "Machlan", "Maciej", "Mack", "Mackenzie", "Mackenzy", "Mackie",
- "Macsen", "Macy", "Madaki", "Maddison", "Maddox", "Madison", "Madison-Jake", "Madox", "Mael", "Magnus",
- "Mahan", "Mahdi", "Mahmoud", "Maias", "Maison", "Maisum", "Maitlind", "Majid", "Makensie", "Makenzie",
- "Makin", "Maksim", "Maksymilian", "Malachai", "Malachi", "Malachy", "Malakai", "Malakhy", "Malcolm",
- "Malik", "Malikye", "Malo", "Ma'moon", "Manas", "Maneet", "Manmohan", "Manolo", "Manson", "Mantej",
- "Manuel", "Manus", "Marc", "Marc-Anthony", "Marcel", "Marcello", "Marcin", "Marco", "Marcos", "Marcous",
- "Marcquis", "Marcus", "Mario", "Marios", "Marius", "Mark", "Marko", "Markus", "Marley", "Marlin", "Marlon",
- "Maros", "Marshall", "Martin", "Marty", "Martyn", "Marvellous", "Marvin", "Marwan", "Maryk", "Marzuq",
- "Mashhood", "Mason", "Mason-Jay", "Masood", "Masson", "Matas", "Matej", "Mateusz", "Mathew", "Mathias",
- "Mathu", "Mathuyan", "Mati", "Matt", "Matteo", "Matthew", "Matthew-William", "Matthias", "Max", "Maxim",
- "Maximilian", "Maximillian", "Maximus", "Maxwell", "Maxx", "Mayeul", "Mayson", "Mazin", "Mcbride",
- "McCaulley", "McKade", "McKauley", "McKay", "McKenzie", "McLay", "Meftah", "Mehmet", "Mehraz", "Meko",
- "Melville", "Meshach", "Meyzhward", "Micah", "Michael", "Michael-Alexander", "Michael-James", "Michal",
- "Michat", "Micheal", "Michee", "Mickey", "Miguel", "Mika", "Mikael", "Mi'kael", "Mikee", "Mikey", "Mikhail",
- "Mikolaj", "Miles", "Millar", "Miller", "Milo", "Milos", "Milosz", "Mir", "Mirza", "Mitch", "Mitchel",
- "Mitchell", "Moad", "Moayd", "Mobeen", "Modoulamin", "Modu", "Mohamad", "Mohamed", "Mohammad",
- "Mohammad-Bilal", "Mohammed", "Mohanad", "Mohd", "Momin", "Momooreoluwa", "Montague", "Montgomery", "Monty",
- "Moore", "Moosa", "Moray", "Morgan", "Morgyn", "Morris", "Morton", "Moshy", "Motade", "Moyes", "Msughter",
- "Mueez", "Muhamadjavad", "Muhammad", "Muhammed", "Muhsin", "Muir", "Munachi", "Muneeb", "Mungo", "Munir",
- "Munmair", "Munro", "Murdo", "Murray", "Murrough", "Murry", "Musa", "Musse", "Mustafa", "Mustapha",
- "Muzammil", "Muzzammil", "Mykie", "Myles", "Mylo", "Nabeel", "Nadeem", "Nader", "Nagib", "Naif", "Nairn",
- "Narvic", "Nash", "Nasser", "Nassir", "Natan", "Nate", "Nathan", "Nathanael", "Nathanial", "Nathaniel",
- "Nathan-Rae", "Nawfal", "Nayan", "Neco", "Neil", "Nelson", "Neo", "Neshawn", "Nevan", "Nevin",
- "Ngonidzashe", "Nial", "Niall", "Nicholas", "Nick", "Nickhill", "Nicki", "Nickson", "Nicky", "Nico",
- "Nicodemus", "Nicol", "Nicolae", "Nicolas", "Nidhish", "Nihaal", "Nihal", "Nikash", "Nikhil", "Niki",
- "Nikita", "Nikodem", "Nikolai", "Nikos", "Nilav", "Niraj", "Niro", "Niven", "Noah", "Noel", "Nolan", "Noor",
- "Norman", "Norrie", "Nuada", "Nyah", "Oakley", "Oban", "Obieluem", "Obosa", "Odhran", "Odin", "Odynn",
- "Ogheneochuko", "Ogheneruno", "Ohran", "Oilibhear", "Oisin", "Ojima-Ojo", "Okeoghene", "Olaf", "Ola-Oluwa",
- "Olaoluwapolorimi", "Ole", "Olie", "Oliver", "Olivier", "Oliwier", "Ollie", "Olurotimi", "Oluwadamilare",
- "Oluwadamiloju", "Oluwafemi", "Oluwafikunayomi", "Oluwalayomi", "Oluwatobiloba", "Oluwatoni", "Omar",
- "Omri", "Oran", "Orin", "Orlando", "Orley", "Orran", "Orrick", "Orrin", "Orson", "Oryn", "Oscar",
- "Osesenagha", "Oskar", "Ossian", "Oswald", "Otto", "Owain", "Owais", "Owen", "Owyn", "Oz", "Ozzy", "Pablo",
- "Pacey", "Padraig", "Paolo", "Pardeepraj", "Parkash", "Parker", "Pascoe", "Pasquale", "Patrick",
- "Patrick-John", "Patrikas", "Patryk", "Paul", "Pavit", "Pawel", "Pawlo", "Pearce", "Pearse", "Pearsen",
- "Pedram", "Pedro", "Peirce", "Peiyan", "Pele", "Peni", "Peregrine", "Peter", "Phani", "Philip", "Philippos",
- "Phinehas", "Phoenix", "Phoevos", "Pierce", "Pierre-Antoine", "Pieter", "Pietro", "Piotr", "Porter",
- "Prabhjoit", "Prabodhan", "Praise", "Pranav", "Pravin", "Precious", "Prentice", "Presley", "Preston",
- "Preston-Jay", "Prinay", "Prince", "Prithvi", "Promise", "Puneetpaul", "Pushkar", "Qasim", "Qirui",
- "Quinlan", "Quinn", "Radmiras", "Raees", "Raegan", "Rafael", "Rafal", "Rafferty", "Rafi", "Raheem", "Rahil",
- "Rahim", "Rahman", "Raith", "Raithin", "Raja", "Rajab-Ali", "Rajan", "Ralfs", "Ralph", "Ramanas", "Ramit",
- "Ramone", "Ramsay", "Ramsey", "Rana", "Ranolph", "Raphael", "Rasmus", "Rasul", "Raul", "Raunaq", "Ravin",
- "Ray", "Rayaan", "Rayan", "Rayane", "Rayden", "Rayhan", "Raymond", "Rayne", "Rayyan", "Raza", "Reace",
- "Reagan", "Reean", "Reece", "Reed", "Reegan", "Rees", "Reese", "Reeve", "Regan", "Regean", "Reggie",
- "Rehaan", "Rehan", "Reice", "Reid", "Reigan", "Reilly", "Reily", "Reis", "Reiss", "Remigiusz", "Remo",
- "Remy", "Ren", "Renars", "Reng", "Rennie", "Reno", "Reo", "Reuben", "Rexford", "Reynold", "Rhein", "Rheo",
- "Rhett", "Rheyden", "Rhian", "Rhoan", "Rholmark", "Rhoridh", "Rhuairidh", "Rhuan", "Rhuaridh", "Rhudi",
- "Rhy", "Rhyan", "Rhyley", "Rhyon", "Rhys", "Rhys-Bernard", "Rhyse", "Riach", "Rian", "Ricards", "Riccardo",
- "Ricco", "Rice", "Richard", "Richey", "Richie", "Ricky", "Rico", "Ridley", "Ridwan", "Rihab", "Rihan",
- "Rihards", "Rihonn", "Rikki", "Riley", "Rio", "Rioden", "Rishi", "Ritchie", "Rivan", "Riyadh", "Riyaj",
- "Roan", "Roark", "Roary", "Rob", "Robbi", "Robbie", "Robbie-lee", "Robby", "Robert", "Robert-Gordon",
- "Robertjohn", "Robi", "Robin", "Rocco", "Roddy", "Roderick", "Rodrigo", "Roen", "Rogan", "Roger", "Rohaan",
- "Rohan", "Rohin", "Rohit", "Rokas", "Roman", "Ronald", "Ronan", "Ronan-Benedict", "Ronin", "Ronnie",
- "Rooke", "Roray", "Rori", "Rorie", "Rory", "Roshan", "Ross", "Ross-Andrew", "Rossi", "Rowan", "Rowen",
- "Roy", "Ruadhan", "Ruaidhri", "Ruairi", "Ruairidh", "Ruan", "Ruaraidh", "Ruari", "Ruaridh", "Ruben",
- "Rubhan", "Rubin", "Rubyn", "Rudi", "Rudy", "Rufus", "Rui", "Ruo", "Rupert", "Ruslan", "Russel", "Russell",
- "Ryaan", "Ryan", "Ryan-Lee", "Ryden", "Ryder", "Ryese", "Ryhs", "Rylan", "Rylay", "Rylee", "Ryleigh",
- "Ryley", "Rylie", "Ryo", "Ryszard", "Saad", "Sabeen", "Sachkirat", "Saffi", "Saghun", "Sahaib", "Sahbian",
- "Sahil", "Saif", "Saifaddine", "Saim", "Sajid", "Sajjad", "Salahudin", "Salman", "Salter", "Salvador",
- "Sam", "Saman", "Samar", "Samarjit", "Samatar", "Sambrid", "Sameer", "Sami", "Samir", "Sami-Ullah",
- "Samual", "Samuel", "Samuela", "Samy", "Sanaullah", "Sandro", "Sandy", "Sanfur", "Sanjay", "Santiago",
- "Santino", "Satveer", "Saul", "Saunders", "Savin", "Sayad", "Sayeed", "Sayf", "Scot", "Scott",
- "Scott-Alexander", "Seaan", "Seamas", "Seamus", "Sean", "Seane", "Sean-James", "Sean-Paul", "Sean-Ray",
- "Seb", "Sebastian", "Sebastien", "Selasi", "Seonaidh", "Sephiroth", "Sergei", "Sergio", "Seth", "Sethu",
- "Seumas", "Shaarvin", "Shadow", "Shae", "Shahmir", "Shai", "Shane", "Shannon", "Sharland", "Sharoz",
- "Shaughn", "Shaun", "Shaunpaul", "Shaun-Paul", "Shaun-Thomas", "Shaurya", "Shaw", "Shawn", "Shawnpaul",
- "Shay", "Shayaan", "Shayan", "Shaye", "Shayne", "Shazil", "Shea", "Sheafan", "Sheigh", "Shenuk", "Sher",
- "Shergo", "Sheriff", "Sherwyn", "Shiloh", "Shiraz", "Shreeram", "Shreyas", "Shyam", "Siddhant", "Siddharth",
- "Sidharth", "Sidney", "Siergiej", "Silas", "Simon", "Sinai", "Skye", "Sofian", "Sohaib", "Sohail", "Soham",
- "Sohan", "Sol", "Solomon", "Sonneey", "Sonni", "Sonny", "Sorley", "Soul", "Spencer", "Spondon", "Stanislaw",
- "Stanley", "Stefan", "Stefano", "Stefin", "Stephen", "Stephenjunior", "Steve", "Steven", "Steven-lee",
- "Stevie", "Stewart", "Stewarty", "Strachan", "Struan", "Stuart", "Su", "Subhaan", "Sudais", "Suheyb",
- "Suilven", "Sukhi", "Sukhpal", "Sukhvir", "Sulayman", "Sullivan", "Sultan", "Sung", "Sunny", "Suraj",
- "Surien", "Sweyn", "Syed", "Sylvain", "Symon", "Szymon", "Tadd", "Taddy", "Tadhg", "Taegan", "Taegen",
- "Tai", "Tait", "Taiwo", "Talha", "Taliesin", "Talon", "Talorcan", "Tamar", "Tamiem", "Tammam", "Tanay",
- "Tane", "Tanner", "Tanvir", "Tanzeel", "Taonga", "Tarik", "Tariq-Jay", "Tate", "Taylan", "Taylar", "Tayler",
- "Taylor", "Taylor-Jay", "Taylor-Lee", "Tayo", "Tayyab", "Tayye", "Tayyib", "Teagan", "Tee", "Teejay",
- "Tee-jay", "Tegan", "Teighen", "Teiyib", "Te-Jay", "Temba", "Teo", "Teodor", "Teos", "Terry", "Teydren",
- "Theo", "Theodore", "Thiago", "Thierry", "Thom", "Thomas", "Thomas-Jay", "Thomson", "Thorben", "Thorfinn",
- "Thrinei", "Thumbiko", "Tiago", "Tian", "Tiarnan", "Tibet", "Tieran", "Tiernan", "Timothy", "Timucin",
- "Tiree", "Tisloh", "Titi", "Titus", "Tiylar", "TJ", "Tjay", "T'jay", "T-Jay", "Tobey", "Tobi", "Tobias",
- "Tobie", "Toby", "Todd", "Tokinaga", "Toluwalase", "Tom", "Tomas", "Tomasz", "Tommi-Lee", "Tommy", "Tomson",
- "Tony", "Torin", "Torquil", "Torran", "Torrin", "Torsten", "Trafford", "Trai", "Travis", "Tre", "Trent",
- "Trey", "Tristain", "Tristan", "Troy", "Tubagus", "Turki", "Turner", "Ty", "Ty-Alexander", "Tye", "Tyelor",
- "Tylar", "Tyler", "Tyler-James", "Tyler-Jay", "Tyllor", "Tylor", "Tymom", "Tymon", "Tymoteusz", "Tyra",
- "Tyree", "Tyrnan", "Tyrone", "Tyson", "Ubaid", "Ubayd", "Uchenna", "Uilleam", "Umair", "Umar", "Umer",
- "Umut", "Urban", "Uri", "Usman", "Uzair", "Uzayr", "Valen", "Valentin", "Valentino", "Valery", "Valo",
- "Vasyl", "Vedantsinh", "Veeran", "Victor", "Victory", "Vinay", "Vince", "Vincent", "Vincenzo", "Vinh",
- "Vinnie", "Vithujan", "Vladimir", "Vladislav", "Vrishin", "Vuyolwethu", "Wabuya", "Wai", "Walid", "Wallace",
- "Walter", "Waqaas", "Warkhas", "Warren", "Warrick", "Wasif", "Wayde", "Wayne", "Wei", "Wen", "Wesley",
- "Wesley-Scott", "Wiktor", "Wilkie", "Will", "William", "William-John", "Willum", "Wilson", "Windsor",
- "Wojciech", "Woyenbrakemi", "Wyatt", "Wylie", "Wynn", "Xabier", "Xander", "Xavier", "Xiao", "Xida", "Xin",
- "Xue", "Yadgor", "Yago", "Yahya", "Yakup", "Yang", "Yanick", "Yann", "Yannick", "Yaseen", "Yasin", "Yasir",
- "Yassin", "Yoji", "Yong", "Yoolgeun", "Yorgos", "Youcef", "Yousif", "Youssef", "Yu", "Yuanyu", "Yuri",
- "Yusef", "Yusuf", "Yves", "Zaaine", "Zaak", "Zac", "Zach", "Zachariah", "Zacharias", "Zacharie",
- "Zacharius", "Zachariya", "Zachary", "Zachary-Marc", "Zachery", "Zack", "Zackary", "Zaid", "Zain", "Zaine",
- "Zaineddine", "Zainedin", "Zak", "Zakaria", "Zakariya", "Zakary", "Zaki", "Zakir", "Zakk", "Zamaar",
- "Zander", "Zane", "Zarran", "Zayd", "Zayn", "Zayne", "Ze", "Zechariah", "Zeek", "Zeeshan", "Zeid", "Zein",
- "Zen", "Zendel", "Zenith", "Zennon", "Zeph", "Zerah", "Zhen", "Zhi", "Zhong", "Zhuo", "Zi", "Zidane",
- "Zijie", "Zinedine", "Zion", "Zishan", "Ziya", "Ziyaan", "Zohaib", "Zohair", "Zoubaeir", "Zubair", "Zubayr",
- "Zuriel", "Jaime", "Jayden", "Josie", "Juliet", "Karys", "Kathleen", "Kendra", "Keri", "Keris", "Kirstin",
- "Klaudia", "Luisa", "Lydia", "Maeve", "Marnie", "Miah", "Mirrin", "Nancy", "Nia", "Nikki", "Oliwia",
- "Paris", "Piper", "Pippa", "Polly", "Rhona", "Safa", "Saira", "Sarah-Louise", "Shona", "Sorcha", "Stacey",
- "Tessa", "Tiffany", "Verity", "Zarah", "Zoya", "Alexandria", "Alina", "Alison", "Angela", "Arianna",
- "Chanel", "Chelsey", "Coral", "Corinne", "Danni", "Darci", "Dionne", "Eliza", "Elsie", "Fatima", "Freyja",
- "Holli", "Jane", "Joanne", "Karina", "Katrina", "Kaylah", "Kaylee", "Lori", "Mila", "Nikita", "Penny",
- "Sylvie", "Tammy", "Alexa", "Brooklyn", "Caragh", "Codie", "Constance", "Dana", "Demi-Lee", "Emilie",
- "Esther", "Frankie", "Isabelle", "Jamie-Leigh", "Jessie", "Josephine", "Kady", "Kaila", "Kerri", "Kirstie",
- "Lyla", "Macey", "Maisy", "Margaret", "Marie", "Maryam", "Mercedes", "Mischa", "Rosa", "Serena", "Sian",
- "Tamzin", "Vanessa", "Violet", "Yasmine", "Aisha", "Aleisha", "Ana", "Daniella", "Elsa", "Jodi", "Karly",
- "Leigha", "Lila", "Melanie", "Miriam", "Regan", "Sally", "Saskia", "Simone", "Tess", "Thea", "Zainab",
- "Arwen", "Bonnie", "Eloise", "Emma-Louise", "Halle", "Hana", "Honey", "Jamie-Lee", "Karla", "Leia", "Leila",
- "Madeline", "Neave", "Orlaith", "Rhea", "Sarah-Jane", "Tara", "Adele", "Alannah", "Alesha", "Annabelle",
- "Ayla", "Becca", "Darcie", "Ebony", "Erica", "Georgie", "Hanna", "Julie", "Kadie", "Kelly", "Kiara",
- "Lillie", "Mariam", "Mikayla", "Monica", "Roisin", "Savannah", "Sky", "Zahra", "Alanna", "Caoimhe",
- "Chanelle", "Elisha", "Emilia", "Iris", "Kacie", "Lia", "Maja", "Mary", "Michelle", "Tyler", "Willow",
- "Yasmin", "Becky", "Billie", "Clara", "Claudia", "Cody", "Elena", "Eryn", "Georgina", "Kayley", "Kimberley",
- "Kira", "Laila", "Lauryn", "Murron", "Natalia", "Ruth", "Siobhan", "Tiana", "Bethan", "Brodie", "Cameron",
- "Cassie", "Harriet", "Helen", "Kathryn", "Kyra", "Mairi", "Mckenzie", "Tilly", "Zuzanna", "April",
- "Christina", "Claire", "Darcey", "Fern", "Fiona", "Joanna", "Lucia", "Charli", "Jamie", "Karis",
- "Mackenzie", "Marissa", "Rihanna", "Teagan", "Tiegan", "Kaitlin", "Keeley", "Leigh", "Nadia", "Alix",
- "Callie", "Carrie", "Eden", "Esme", "Hazel", "Miya", "Nieve", "Sadie", "Sasha", "Sinead", "Stella",
- "Ashleigh", "Jade", "Jemma", "Michaela", "Alexis", "Aoife", "Francesca", "Lisa", "Matilda", "Annabel",
- "Carmen", "Eleanor", "Faye", "Kaci", "Kasey", "Kerry", "Louisa", "Macy", "Mhairi", "Rebekah", "Teigan",
- "Amie", "Brogan", "Catriona", "Scarlett", "Connie", "Katelyn", "Kenzie", "Lexi", "Nicola", "Sienna", "Abbi",
- "Angel", "Martha", "Anya", "Toni", "Chantelle", "Gabriella", "Lexie", "Abbey", "Bailey", "Isobel", "Kelsie",
- "Maia", "Nina", "Darcy", "Lacey", "Lana", "Sofia", "Stephanie", "Ellen", "Alicia", "Gabrielle", "Heidi",
- "Jorja", "Kyla", "Rhiannon", "Tegan", "Maddison", "Madeleine", "Morven", "Rowan", "Lucie", "Milly", "Annie",
- "Ashley", "Ellis", "Hope", "Mirren", "Rose", "Alexandra", "Jodie", "Kacey", "Phoebe", "Tia", "Ailsa",
- "Alana", "Kirsten", "Charlie", "Katy", "Lilly", "Alyssa", "Maria", "Naomi", "Alisha", "Danielle", "Lola",
- "Ciara", "Elle", "Faith", "Natasha", "Katherine", "Lois", "Mollie", "Carla", "Catherine", "Cerys", "Maisie",
- "Victoria", "Amelie", "Demi", "Gracie", "Carys", "Isabella", "Leona", "Alex", "Hollie", "Sara", "Caitlyn",
- "Kiera", "Lara", "Kate", "Louise", "Libby", "Rhianna", "Rosie", "Alice", "Julia", "Maya", "Natalie",
- "Chelsea", "Layla", "Samantha", "Heather", "Kirsty", "Rachael", "Charley", "Imogen", "Elise", "Hayley",
- "Kelsey", "Kara", "Orla", "Abi", "Gemma", "Laura", "Mya", "Bethany", "Jasmine", "Melissa", "Poppy", "Casey",
- "Elizabeth", "Kaitlyn", "Carly", "Abby", "Neve", "Courtney", "Jennifer", "Sophia", "Shannon", "Georgia",
- "Amber", "Robyn", "Beth", "Zara", "Amelia", "Taylor", "Daisy", "Paige", "Kayleigh", "Summer", "Madison",
- "Jenna", "Morgan", "Evie", "Nicole", "Ella", "Cara", "Iona", "Eve", "Zoe", "Kayla", "Molly", "Abigail",
- "Charlotte", "Millie", "Holly", "Leah", "Keira", "Lily", "Freya", "Caitlin", "Lauren", "Rachel", "Anna",
- "Sarah", "Ruby", "Aimee", "Mia", "Skye", "Abbie", "Eva", "Eilidh", "Niamh", "Megan", "Brooke", "Isla",
- "Rebecca", "Ava", "Grace", "Jessica", "Hannah", "Olivia", "Chloe", "Emily", "Amy", "Ellie", "Erin", "Katie",
- "Lucy", "Emma", "Sophie" };
- }
+ private static final String[] generateFirstNames() {
+ return new String[] {
+ "AARON",
+ "ABBIE",
+ "ABBY",
+ "ABEL",
+ "ABIGAIL",
+ "ABRAHAM",
+ "ADA",
+ "ADAM",
+ "ADAN",
+ "ADDIE",
+ "ADELA",
+ "ADELAIDE",
+ "ADELE",
+ "ADELINE",
+ "ADOLFO",
+ "ADOLPH",
+ "ADRIAN",
+ "ADRIANA",
+ "ADRIENNE",
+ "AGNES",
+ "AGUSTIN",
+ "AIDA",
+ "AILEEN",
+ "AIMEE",
+ "AISHA",
+ "AL",
+ "ALAN",
+ "ALANA",
+ "ALBA",
+ "ALBERT",
+ "ALBERTA",
+ "ALBERTO",
+ "ALEJANDRA",
+ "ALEJANDRO",
+ "ALEX",
+ "ALEXANDER",
+ "ALEXANDRA",
+ "ALEXANDRIA",
+ "ALEXIS",
+ "ALFONSO",
+ "ALFRED",
+ "ALFREDA",
+ "ALFREDO",
+ "ALI",
+ "ALICE",
+ "ALICIA",
+ "ALINE",
+ "ALISA",
+ "ALISHA",
+ "ALISON",
+ "ALISSA",
+ "ALLAN",
+ "ALLEN",
+ "ALLENE",
+ "ALLIE",
+ "ALLISON",
+ "ALLYSON",
+ "ALMA",
+ "ALONZO",
+ "ALPHONSO",
+ "ALTA",
+ "ALTHEA",
+ "ALTON",
+ "ALVARO",
+ "ALVIN",
+ "ALYCE",
+ "ALYSON",
+ "ALYSSA",
+ "AMALIA",
+ "AMANDA",
+ "AMBER",
+ "AMELIA",
+ "AMIE",
+ "AMOS",
+ "AMPARO",
+ "AMY",
+ "ANA",
+ "ANASTASIA",
+ "ANDRE",
+ "ANDREA",
+ "ANDRES",
+ "ANDREW",
+ "ANDY",
+ "ANGEL",
+ "ANGELA",
+ "ANGELIA",
+ "ANGELICA",
+ "ANGELINA",
+ "ANGELINE",
+ "ANGELIQUE",
+ "ANGELITA",
+ "ANGELO",
+ "ANGIE",
+ "ANITA",
+ "ANN",
+ "ANNA",
+ "ANNABELLE",
+ "ANNE",
+ "ANNETTE",
+ "ANNIE",
+ "ANNMARIE",
+ "ANTHONY",
+ "ANTIONETTE",
+ "ANTOINE",
+ "ANTOINETTE",
+ "ANTON",
+ "ANTONIA",
+ "ANTONIO",
+ "ANTONY",
+ "APRIL",
+ "ARACELI",
+ "ARCHIE",
+ "ARLENE",
+ "ARLINE",
+ "ARMAND",
+ "ARMANDO",
+ "ARNOLD",
+ "ARRON",
+ "ART",
+ "ARTHUR",
+ "ARTURO",
+ "ASHLEE",
+ "ASHLEIGH",
+ "ASHLEY",
+ "AUBREY",
+ "AUDRA",
+ "AUDREY",
+ "AUGUST",
+ "AUGUSTA",
+ "AURELIA",
+ "AURELIO",
+ "AURORA",
+ "AUSTIN",
+ "AUTUMN",
+ "AVA",
+ "AVERY",
+ "AVIS",
+ "BARBARA",
+ "BARBRA",
+ "BARNEY",
+ "BARRY",
+ "BART",
+ "BASIL",
+ "BEATRICE",
+ "BEATRIZ",
+ "BEAU",
+ "BECKY",
+ "BELINDA",
+ "BEN",
+ "BENITA",
+ "BENITO",
+ "BENJAMIN",
+ "BENNETT",
+ "BENNIE",
+ "BENNY",
+ "BERNADETTE",
+ "BERNADINE",
+ "BERNARD",
+ "BERNARDO",
+ "BERNICE",
+ "BERNIE",
+ "BERT",
+ "BERTA",
+ "BERTHA",
+ "BERTIE",
+ "BERYL",
+ "BESSIE",
+ "BETH",
+ "BETHANY",
+ "BETSY",
+ "BETTE",
+ "BETTIE",
+ "BETTY",
+ "BETTYE",
+ "BEULAH",
+ "BEVERLEY",
+ "BEVERLY",
+ "BIANCA",
+ "BILL",
+ "BILLIE",
+ "BILLY",
+ "BLAINE",
+ "BLAIR",
+ "BLAKE",
+ "BLANCA",
+ "BLANCHE",
+ "BOB",
+ "BOBBI",
+ "BOBBIE",
+ "BOBBY",
+ "BONITA",
+ "BONNIE",
+ "BOOKER",
+ "BOYD",
+ "BRAD",
+ "BRADFORD",
+ "BRADLEY",
+ "BRADY",
+ "BRAIN",
+ "BRANDEN",
+ "BRANDI",
+ "BRANDIE",
+ "BRANDON",
+ "BRANDY",
+ "BRENDA",
+ "BRENDAN",
+ "BRENT",
+ "BRET",
+ "BRETT",
+ "BRIAN",
+ "BRIANA",
+ "BRIANNA",
+ "BRIDGET",
+ "BRIDGETT",
+ "BRIDGETTE",
+ "BRIGITTE",
+ "BRITNEY",
+ "BRITTANY",
+ "BRITTNEY",
+ "BROCK",
+ "BROOKE",
+ "BRUCE",
+ "BRUNO",
+ "BRYAN",
+ "BRYANT",
+ "BRYCE",
+ "BRYON",
+ "BUDDY",
+ "BUFORD",
+ "BURTON",
+ "BYRON",
+ "CAITLIN",
+ "CALEB",
+ "CALLIE",
+ "CALVIN",
+ "CAMERON",
+ "CAMILLA",
+ "CAMILLE",
+ "CANDACE",
+ "CANDICE",
+ "CANDY",
+ "CARA",
+ "CAREY",
+ "CARISSA",
+ "CARL",
+ "CARLA",
+ "CARLENE",
+ "CARLO",
+ "CARLOS",
+ "CARLTON",
+ "CARLY",
+ "CARMELA",
+ "CARMELLA",
+ "CARMELO",
+ "CARMEN",
+ "CAROL",
+ "CAROLE",
+ "CAROLINA",
+ "CAROLINE",
+ "CAROLYN",
+ "CARRIE",
+ "CARROLL",
+ "CARSON",
+ "CARTER",
+ "CARY",
+ "CARYN",
+ "CASANDRA",
+ "CASEY",
+ "CASSANDRA",
+ "CASSIE",
+ "CATALINA",
+ "CATHERINE",
+ "CATHLEEN",
+ "CATHRYN",
+ "CATHY",
+ "CECELIA",
+ "CECIL",
+ "CECILE",
+ "CECILIA",
+ "CEDRIC",
+ "CELESTE",
+ "CELIA",
+ "CELINA",
+ "CESAR",
+ "CHAD",
+ "CHANDRA",
+ "CHARITY",
+ "CHARLENE",
+ "CHARLES",
+ "CHARLEY",
+ "CHARLIE",
+ "CHARLOTTE",
+ "CHARMAINE",
+ "CHASE",
+ "CHASITY",
+ "CHELSEA",
+ "CHELSEY",
+ "CHERI",
+ "CHERIE",
+ "CHERRY",
+ "CHERYL",
+ "CHESTER",
+ "CHRIS",
+ "CHRISTA",
+ "CHRISTI",
+ "CHRISTIAN",
+ "CHRISTIE",
+ "CHRISTINA",
+ "CHRISTINE",
+ "CHRISTOPHER",
+ "CHRISTY",
+ "CHRYSTAL",
+ "CHUCK",
+ "CINDY",
+ "CLAIR",
+ "CLAIRE",
+ "CLARA",
+ "CLARE",
+ "CLARENCE",
+ "CLARICE",
+ "CLARISSA",
+ "CLARK",
+ "CLAUDE",
+ "CLAUDETTE",
+ "CLAUDIA",
+ "CLAUDINE",
+ "CLAY",
+ "CLAYTON",
+ "CLEMENT",
+ "CLEO",
+ "CLEVELAND",
+ "CLIFF",
+ "CLIFFORD",
+ "CLIFTON",
+ "CLINT",
+ "CLINTON",
+ "CLYDE",
+ "CODY",
+ "COLBY",
+ "COLE",
+ "COLEEN",
+ "COLETTE",
+ "COLIN",
+ "COLLEEN",
+ "COLLIN",
+ "CONCEPCION",
+ "CONCETTA",
+ "CONNIE",
+ "CONRAD",
+ "CONSTANCE",
+ "CONSUELO",
+ "CORA",
+ "COREY",
+ "CORINA",
+ "CORINE",
+ "CORINNE",
+ "CORNELIA",
+ "CORNELIUS",
+ "CORNELL",
+ "CORRINE",
+ "CORTNEY",
+ "CORY",
+ "COURTNEY",
+ "COY",
+ "CRAIG",
+ "CRISTINA",
+ "CRUZ",
+ "CRYSTAL",
+ "CURT",
+ "CURTIS",
+ "CYNTHIA",
+ "DAISY",
+ "DALE",
+ "DALLAS",
+ "DALTON",
+ "DAMIAN",
+ "DAMIEN",
+ "DAMON",
+ "DAN",
+ "DANA",
+ "DANE",
+ "DANIAL",
+ "DANIEL",
+ "DANIELLE",
+ "DANNY",
+ "DANTE",
+ "DAPHNE",
+ "DARCY",
+ "DAREN",
+ "DARIN",
+ "DARIUS",
+ "DARLA",
+ "DARLENE",
+ "DARNELL",
+ "DARREL",
+ "DARRELL",
+ "DARREN",
+ "DARRIN",
+ "DARRYL",
+ "DARWIN",
+ "DARYL",
+ "DAVE",
+ "DAVID",
+ "DAVIS",
+ "DAWN",
+ "DAYNA",
+ "DEAN",
+ "DEANA",
+ "DEANN",
+ "DEANNA",
+ "DEANNE",
+ "DEBBIE",
+ "DEBORA",
+ "DEBORAH",
+ "DEBRA",
+ "DEE",
+ "DEENA",
+ "DEIDRA",
+ "DEIDRE",
+ "DEIRDRE",
+ "DELBERT",
+ "DELIA",
+ "DELLA",
+ "DELMAR",
+ "DELORES",
+ "DELORIS",
+ "DEMETRIUS",
+ "DENA",
+ "DENICE",
+ "DENIS",
+ "DENISE",
+ "DENNIS",
+ "DENNY",
+ "DENVER",
+ "DEREK",
+ "DERICK",
+ "DERRICK",
+ "DESIREE",
+ "DESMOND",
+ "DESSIE",
+ "DEVIN",
+ "DEVON",
+ "DEWAYNE",
+ "DEWEY",
+ "DEXTER",
+ "DIANA",
+ "DIANE",
+ "DIANN",
+ "DIANNA",
+ "DIANNE",
+ "DICK",
+ "DIEGO",
+ "DINA",
+ "DION",
+ "DIONNE",
+ "DIRK",
+ "DIXIE",
+ "DOLLIE",
+ "DOLLY",
+ "DOLORES",
+ "DOMINGO",
+ "DOMINIC",
+ "DOMINICK",
+ "DOMINIQUE",
+ "DON",
+ "DONA",
+ "DONALD",
+ "DONNA",
+ "DONNELL",
+ "DONNIE",
+ "DONNY",
+ "DONOVAN",
+ "DORA",
+ "DOREEN",
+ "DORETHA",
+ "DORIS",
+ "DOROTHEA",
+ "DOROTHY",
+ "DORTHY",
+ "DOUG",
+ "DOUGLAS",
+ "DOYLE",
+ "DREW",
+ "DUANE",
+ "DUDLEY",
+ "DUSTIN",
+ "DWAYNE",
+ "DWIGHT",
+ "DYLAN",
+ "EARL",
+ "EARLENE",
+ "EARLINE",
+ "EARNEST",
+ "EARNESTINE",
+ "EBONY",
+ "ED",
+ "EDDIE",
+ "EDDY",
+ "EDGAR",
+ "EDITH",
+ "EDMOND",
+ "EDMUND",
+ "EDNA",
+ "EDUARDO",
+ "EDWARD",
+ "EDWARDO",
+ "EDWIN",
+ "EDWINA",
+ "EDYTHE",
+ "EFFIE",
+ "EFRAIN",
+ "EILEEN",
+ "ELAINE",
+ "ELBA",
+ "ELBERT",
+ "ELDA",
+ "ELDON",
+ "ELEANOR",
+ "ELENA",
+ "ELI",
+ "ELIAS",
+ "ELIJAH",
+ "ELINOR",
+ "ELISA",
+ "ELISABETH",
+ "ELISE",
+ "ELISHA",
+ "ELIZA",
+ "ELIZABETH",
+ "ELLA",
+ "ELLEN",
+ "ELLIOT",
+ "ELLIOTT",
+ "ELLIS",
+ "ELMA",
+ "ELMER",
+ "ELNORA",
+ "ELOISE",
+ "ELSA",
+ "ELSIE",
+ "ELTON",
+ "ELVA",
+ "ELVIA",
+ "ELVIN",
+ "ELVIRA",
+ "ELVIS",
+ "ELWOOD",
+ "EMANUEL",
+ "EMERSON",
+ "EMERY",
+ "EMIL",
+ "EMILIA",
+ "EMILIE",
+ "EMILIO",
+ "EMILY",
+ "EMMA",
+ "EMMANUEL",
+ "EMMETT",
+ "EMORY",
+ "ENID",
+ "ENRIQUE",
+ "ERIC",
+ "ERICA",
+ "ERICK",
+ "ERICKA",
+ "ERIK",
+ "ERIKA",
+ "ERIN",
+ "ERMA",
+ "ERNA",
+ "ERNEST",
+ "ERNESTINE",
+ "ERNESTO",
+ "ERNIE",
+ "ERROL",
+ "ERVIN",
+ "ERWIN",
+ "ESMERALDA",
+ "ESPERANZA",
+ "ESSIE",
+ "ESTEBAN",
+ "ESTELA",
+ "ESTELLA",
+ "ESTELLE",
+ "ESTER",
+ "ESTHER",
+ "ETHAN",
+ "ETHEL",
+ "ETTA",
+ "EUGENE",
+ "EUGENIA",
+ "EULA",
+ "EUNICE",
+ "EVA",
+ "EVAN",
+ "EVANGELINA",
+ "EVANGELINE",
+ "EVE",
+ "EVELYN",
+ "EVERETT",
+ "FABIAN",
+ "FAITH",
+ "FANNIE",
+ "FANNY",
+ "FAY",
+ "FAYE",
+ "FEDERICO",
+ "FELECIA",
+ "FELICIA",
+ "FELIPE",
+ "FELIX",
+ "FERN",
+ "FERNANDO",
+ "FIDEL",
+ "FLETCHER",
+ "FLORA",
+ "FLORENCE",
+ "FLORINE",
+ "FLOSSIE",
+ "FLOYD",
+ "FORREST",
+ "FRAN",
+ "FRANCES",
+ "FRANCESCA",
+ "FRANCINE",
+ "FRANCIS",
+ "FRANCISCA",
+ "FRANCISCO",
+ "FRANK",
+ "FRANKIE",
+ "FRANKLIN",
+ "FRED",
+ "FREDA",
+ "FREDDIE",
+ "FREDDY",
+ "FREDERIC",
+ "FREDERICK",
+ "FREDRICK",
+ "FREIDA",
+ "FRIEDA",
+ "GABRIEL",
+ "GABRIELA",
+ "GABRIELLE",
+ "GAIL",
+ "GALE",
+ "GALEN",
+ "GARLAND",
+ "GARRETT",
+ "GARRY",
+ "GARY",
+ "GAVIN",
+ "GAY",
+ "GAYLA",
+ "GAYLE",
+ "GENA",
+ "GENARO",
+ "GENE",
+ "GENEVA",
+ "GENEVIEVE",
+ "GEOFFREY",
+ "GEORGE",
+ "GEORGETTE",
+ "GEORGIA",
+ "GEORGINA",
+ "GERALD",
+ "GERALDINE",
+ "GERARD",
+ "GERARDO",
+ "GERI",
+ "GERMAINE",
+ "GERMAN",
+ "GERRY",
+ "GERTRUDE",
+ "GILBERT",
+ "GILBERTO",
+ "GILDA",
+ "GINA",
+ "GINGER",
+ "GLADYS",
+ "GLEN",
+ "GLENDA",
+ "GLENN",
+ "GLENNA",
+ "GLORIA",
+ "GOLDIE",
+ "GONZALO",
+ "GORDON",
+ "GRACE",
+ "GRACIE",
+ "GRACIELA",
+ "GRADY",
+ "GRAHAM",
+ "GRANT",
+ "GREG",
+ "GREGG",
+ "GREGORIO",
+ "GREGORY",
+ "GRETA",
+ "GRETCHEN",
+ "GROVER",
+ "GUADALUPE",
+ "GUILLERMO",
+ "GUS",
+ "GUSSIE",
+ "GUSTAVO",
+ "GUY",
+ "GWEN",
+ "GWENDOLYN",
+ "HAL",
+ "HALEY",
+ "HALLIE",
+ "HANNAH",
+ "HANS",
+ "HARLAN",
+ "HARLEY",
+ "HAROLD",
+ "HARRIET",
+ "HARRIETT",
+ "HARRIS",
+ "HARRISON",
+ "HARRY",
+ "HARVEY",
+ "HATTIE",
+ "HAZEL",
+ "HEATH",
+ "HEATHER",
+ "HECTOR",
+ "HEIDI",
+ "HELEN",
+ "HELENA",
+ "HELENE",
+ "HELGA",
+ "HENRIETTA",
+ "HENRY",
+ "HERBERT",
+ "HERIBERTO",
+ "HERMAN",
+ "HERMINIA",
+ "HESTER",
+ "HILARY",
+ "HILDA",
+ "HILLARY",
+ "HIRAM",
+ "HOLLIE",
+ "HOLLIS",
+ "HOLLY",
+ "HOMER",
+ "HOPE",
+ "HORACE",
+ "HOUSTON",
+ "HOWARD",
+ "HUBERT",
+ "HUGH",
+ "HUGO",
+ "HUMBERTO",
+ "HUNG",
+ "HUNTER",
+ "IAN",
+ "IDA",
+ "IGNACIO",
+ "ILA",
+ "ILENE",
+ "IMELDA",
+ "IMOGENE",
+ "INA",
+ "INES",
+ "INEZ",
+ "INGRID",
+ "IRA",
+ "IRENE",
+ "IRIS",
+ "IRMA",
+ "IRVIN",
+ "IRVING",
+ "IRWIN",
+ "ISAAC",
+ "ISABEL",
+ "ISABELLA",
+ "ISABELLE",
+ "ISAIAH",
+ "ISIDRO",
+ "ISMAEL",
+ "ISRAEL",
+ "ISSAC",
+ "IVA",
+ "IVAN",
+ "IVY",
+ "JACK",
+ "JACKIE",
+ "JACKLYN",
+ "JACKSON",
+ "JACLYN",
+ "JACOB",
+ "JACQUELINE",
+ "JACQUELYN",
+ "JACQUES",
+ "JADE",
+ "JAIME",
+ "JAKE",
+ "JAMAL",
+ "JAME",
+ "JAMES",
+ "JAMI",
+ "JAMIE",
+ "JAN",
+ "JANA",
+ "JANE",
+ "JANELL",
+ "JANELLE",
+ "JANET",
+ "JANETTE",
+ "JANICE",
+ "JANIE",
+ "JANINE",
+ "JANIS",
+ "JANNA",
+ "JANNIE",
+ "JARED",
+ "JARROD",
+ "JARVIS",
+ "JASMIN",
+ "JASMINE",
+ "JASON",
+ "JASPER",
+ "JAVIER",
+ "JAY",
+ "JAYNE",
+ "JAYSON",
+ "JEAN",
+ "JEANETTE",
+ "JEANIE",
+ "JEANINE",
+ "JEANNE",
+ "JEANNETTE",
+ "JEANNIE",
+ "JEANNINE",
+ "JEFF",
+ "JEFFERSON",
+ "JEFFERY",
+ "JEFFREY",
+ "JEFFRY",
+ "JENIFER",
+ "JENNA",
+ "JENNIE",
+ "JENNIFER",
+ "JENNY",
+ "JERALD",
+ "JEREMIAH",
+ "JEREMY",
+ "JERI",
+ "JERMAINE",
+ "JEROME",
+ "JERRI",
+ "JERRY",
+ "JESS",
+ "JESSE",
+ "JESSICA",
+ "JESSIE",
+ "JESUS",
+ "JEWEL",
+ "JEWELL",
+ "JILL",
+ "JILLIAN",
+ "JIM",
+ "JIMMIE",
+ "JIMMY",
+ "JO",
+ "JOAN",
+ "JOANN",
+ "JOANNA",
+ "JOANNE",
+ "JOAQUIN",
+ "JOCELYN",
+ "JODI",
+ "JODIE",
+ "JODY",
+ "JOE",
+ "JOEL",
+ "JOESPH",
+ "JOEY",
+ "JOHANNA",
+ "JOHN",
+ "JOHNATHAN",
+ "JOHNATHON",
+ "JOHNNIE",
+ "JOHNNY",
+ "JOLENE",
+ "JON",
+ "JONATHAN",
+ "JONATHON",
+ "JONI",
+ "JORDAN",
+ "JORGE",
+ "JOSE",
+ "JOSEFA",
+ "JOSEFINA",
+ "JOSEPH",
+ "JOSEPHINE",
+ "JOSH",
+ "JOSHUA",
+ "JOSIE",
+ "JOSUE",
+ "JOY",
+ "JOYCE",
+ "JUAN",
+ "JUANA",
+ "JUANITA",
+ "JUDI",
+ "JUDITH",
+ "JUDY",
+ "JULIA",
+ "JULIAN",
+ "JULIANA",
+ "JULIANNE",
+ "JULIE",
+ "JULIET",
+ "JULIETTE",
+ "JULIO",
+ "JULIUS",
+ "JUNE",
+ "JUNIOR",
+ "JUSTIN",
+ "JUSTINA",
+ "JUSTINE",
+ "KAITLIN",
+ "KAITLYN",
+ "KARA",
+ "KAREN",
+ "KARI",
+ "KARIN",
+ "KARINA",
+ "KARL",
+ "KARLA",
+ "KARYN",
+ "KASEY",
+ "KATE",
+ "KATELYN",
+ "KATHARINE",
+ "KATHERINE",
+ "KATHERYN",
+ "KATHI",
+ "KATHIE",
+ "KATHLEEN",
+ "KATHRINE",
+ "KATHRYN",
+ "KATHY",
+ "KATIE",
+ "KATINA",
+ "KATRINA",
+ "KATY",
+ "KAY",
+ "KAYE",
+ "KAYLA",
+ "KEISHA",
+ "KEITH",
+ "KELLEY",
+ "KELLI",
+ "KELLIE",
+ "KELLY",
+ "KELSEY",
+ "KELVIN",
+ "KEN",
+ "KENDALL",
+ "KENDRA",
+ "KENDRICK",
+ "KENNETH",
+ "KENNY",
+ "KENT",
+ "KENYA",
+ "KERI",
+ "KERMIT",
+ "KERRI",
+ "KERRY",
+ "KEVIN",
+ "KIM",
+ "KIMBERLEE",
+ "KIMBERLEY",
+ "KIMBERLY",
+ "KIRBY",
+ "KIRK",
+ "KIRSTEN",
+ "KITTY",
+ "KRIS",
+ "KRISTA",
+ "KRISTEN",
+ "KRISTI",
+ "KRISTIE",
+ "KRISTIN",
+ "KRISTINA",
+ "KRISTINE",
+ "KRISTOPHER",
+ "KRISTY",
+ "KRYSTAL",
+ "KURT",
+ "KURTIS",
+ "KYLE",
+ "LACEY",
+ "LACY",
+ "LADONNA",
+ "LAKEISHA",
+ "LAKESHA",
+ "LAKISHA",
+ "LAMAR",
+ "LAMONT",
+ "LANA",
+ "LANCE",
+ "LANDON",
+ "LANE",
+ "LARA",
+ "LARRY",
+ "LASHONDA",
+ "LATANYA",
+ "LATASHA",
+ "LATISHA",
+ "LATONYA",
+ "LATOYA",
+ "LAURA",
+ "LAUREL",
+ "LAUREN",
+ "LAURENCE",
+ "LAURI",
+ "LAURIE",
+ "LAVERNE",
+ "LAVONNE",
+ "LAWANDA",
+ "LAWRENCE",
+ "LEA",
+ "LEAH",
+ "LEANN",
+ "LEANNA",
+ "LEANNE",
+ "LEE",
+ "LEEANN",
+ "LEIGH",
+ "LEILA",
+ "LELA",
+ "LELAND",
+ "LELIA",
+ "LENA",
+ "LENORA",
+ "LENORE",
+ "LEO",
+ "LEOLA",
+ "LEON",
+ "LEONA",
+ "LEONARD",
+ "LEONARDO",
+ "LEONEL",
+ "LEONOR",
+ "LEROY",
+ "LESA",
+ "LESLEY",
+ "LESLIE",
+ "LESSIE",
+ "LESTER",
+ "LETA",
+ "LETHA",
+ "LETICIA",
+ "LETITIA",
+ "LEVI",
+ "LEWIS",
+ "LIBBY",
+ "LIDIA",
+ "LILA",
+ "LILIA",
+ "LILIAN",
+ "LILIANA",
+ "LILLIAN",
+ "LILLIE",
+ "LILLY",
+ "LILY",
+ "LINA",
+ "LINCOLN",
+ "LINDA",
+ "LINDSAY",
+ "LINDSEY",
+ "LINWOOD",
+ "LIONEL",
+ "LISA",
+ "LIZ",
+ "LIZA",
+ "LIZZIE",
+ "LLOYD",
+ "LOGAN",
+ "LOIS",
+ "LOLA",
+ "LOLITA",
+ "LONNIE",
+ "LORA",
+ "LORAINE",
+ "LOREN",
+ "LORENA",
+ "LORENE",
+ "LORENZO",
+ "LORETTA",
+ "LORI",
+ "LORIE",
+ "LORNA",
+ "LORRAINE",
+ "LORRIE",
+ "LOTTIE",
+ "LOU",
+ "LOUELLA",
+ "LOUIE",
+ "LOUIS",
+ "LOUISA",
+ "LOUISE",
+ "LOURDES",
+ "LOWELL",
+ "LOYD",
+ "LUANN",
+ "LUCAS",
+ "LUCIA",
+ "LUCILE",
+ "LUCILLE",
+ "LUCINDA",
+ "LUCY",
+ "LUELLA",
+ "LUIS",
+ "LUISA",
+ "LUKE",
+ "LULA",
+ "LUPE",
+ "LUTHER",
+ "LUZ",
+ "LYDIA",
+ "LYLE",
+ "LYNDA",
+ "LYNETTE",
+ "LYNN",
+ "LYNNE",
+ "LYNNETTE",
+ "MA",
+ "MABEL",
+ "MABLE",
+ "MACK",
+ "MADELEINE",
+ "MADELINE",
+ "MADELYN",
+ "MADGE",
+ "MAE",
+ "MAGDALENA",
+ "MAGGIE",
+ "MAI",
+ "MALCOLM",
+ "MALINDA",
+ "MALLORY",
+ "MAMIE",
+ "MANDY",
+ "MANUEL",
+ "MANUELA",
+ "MARA",
+ "MARC",
+ "MARCEL",
+ "MARCELINO",
+ "MARCELLA",
+ "MARCI",
+ "MARCIA",
+ "MARCIE",
+ "MARCO",
+ "MARCOS",
+ "MARCUS",
+ "MARCY",
+ "MARGARET",
+ "MARGARITA",
+ "MARGERY",
+ "MARGIE",
+ "MARGO",
+ "MARGOT",
+ "MARGRET",
+ "MARGUERITE",
+ "MARI",
+ "MARIA",
+ "MARIAN",
+ "MARIANA",
+ "MARIANNE",
+ "MARIANO",
+ "MARIBEL",
+ "MARICELA",
+ "MARIE",
+ "MARIETTA",
+ "MARILYN",
+ "MARINA",
+ "MARIO",
+ "MARION",
+ "MARISA",
+ "MARISOL",
+ "MARISSA",
+ "MARITZA",
+ "MARJORIE",
+ "MARK",
+ "MARLA",
+ "MARLENE",
+ "MARLIN",
+ "MARLON",
+ "MARQUITA",
+ "MARSHA",
+ "MARSHALL",
+ "MARTA",
+ "MARTHA",
+ "MARTIN",
+ "MARTINA",
+ "MARTY",
+ "MARVA",
+ "MARVIN",
+ "MARY",
+ "MARYANN",
+ "MARYANNE",
+ "MARYELLEN",
+ "MARYLOU",
+ "MASON",
+ "MATHEW",
+ "MATILDA",
+ "MATT",
+ "MATTHEW",
+ "MATTIE",
+ "MAUDE",
+ "MAURA",
+ "MAUREEN",
+ "MAURICE",
+ "MAURICIO",
+ "MAVIS",
+ "MAX",
+ "MAXINE",
+ "MAXWELL",
+ "MAY",
+ "MAYNARD",
+ "MAYRA",
+ "MEAGAN",
+ "MEGAN",
+ "MEGHAN",
+ "MELANIE",
+ "MELBA",
+ "MELINDA",
+ "MELISA",
+ "MELISSA",
+ "MELLISA",
+ "MELODY",
+ "MELVA",
+ "MELVIN",
+ "MERCEDES",
+ "MEREDITH",
+ "MERLE",
+ "MERLIN",
+ "MERRILL",
+ "MIA",
+ "MICAH",
+ "MICHAEL",
+ "MICHAELA",
+ "MICHEAL",
+ "MICHEL",
+ "MICHELE",
+ "MICHELL",
+ "MICHELLE",
+ "MICKEY",
+ "MIGUEL",
+ "MIKE",
+ "MILAGROS",
+ "MILDRED",
+ "MILES",
+ "MILLARD",
+ "MILLICENT",
+ "MILLIE",
+ "MILTON",
+ "MINA",
+ "MINDY",
+ "MINERVA",
+ "MINNIE",
+ "MIRANDA",
+ "MIRIAM",
+ "MISTY",
+ "MITCHELL",
+ "MITZI",
+ "MOHAMMAD",
+ "MOISES",
+ "MOLLIE",
+ "MOLLY",
+ "MONA",
+ "MONICA",
+ "MONIKA",
+ "MONIQUE",
+ "MONROE",
+ "MONTE",
+ "MONTY",
+ "MORGAN",
+ "MORRIS",
+ "MOSES",
+ "MURIEL",
+ "MURRAY",
+ "MYRA",
+ "MYRNA",
+ "MYRON",
+ "MYRTLE",
+ "NADIA",
+ "NADINE",
+ "NAN",
+ "NANCY",
+ "NANETTE",
+ "NANNIE",
+ "NAOMI",
+ "NATALIA",
+ "NATALIE",
+ "NATASHA",
+ "NATHAN",
+ "NATHANIEL",
+ "NEAL",
+ "NED",
+ "NEIL",
+ "NELDA",
+ "NELL",
+ "NELLIE",
+ "NELLY",
+ "NELSON",
+ "NESTOR",
+ "NETTIE",
+ "NEVA",
+ "NICHOLAS",
+ "NICHOLE",
+ "NICK",
+ "NICKOLAS",
+ "NICOLAS",
+ "NICOLE",
+ "NIKKI",
+ "NINA",
+ "NITA",
+ "NOAH",
+ "NOE",
+ "NOEL",
+ "NOELLE",
+ "NOEMI",
+ "NOLA",
+ "NOLAN",
+ "NONA",
+ "NORA",
+ "NORBERT",
+ "NOREEN",
+ "NORMA",
+ "NORMAN",
+ "NORRIS",
+ "NUMBERS",
+ "OCTAVIA",
+ "OCTAVIO",
+ "ODELL",
+ "ODESSA",
+ "OFELIA",
+ "OLA",
+ "OLGA",
+ "OLIVE",
+ "OLIVER",
+ "OLIVIA",
+ "OLLIE",
+ "OMAR",
+ "OPAL",
+ "OPHELIA",
+ "ORA",
+ "ORLANDO",
+ "ORVILLE",
+ "OSCAR",
+ "OTIS",
+ "OTTO",
+ "OWEN",
+ "PABLO",
+ "PAIGE",
+ "PAM",
+ "PAMALA",
+ "PAMELA",
+ "PANSY",
+ "PASQUALE",
+ "PAT",
+ "PATRICA",
+ "PATRICE",
+ "PATRICIA",
+ "PATRICK",
+ "PATSY",
+ "PATTI",
+ "PATTY",
+ "PAUL",
+ "PAULA",
+ "PAULETTE",
+ "PAULINE",
+ "PEARL",
+ "PEARLIE",
+ "PEDRO",
+ "PEGGY",
+ "PENELOPE",
+ "PENNY",
+ "PERCY",
+ "PERRY",
+ "PETE",
+ "PETER",
+ "PETRA",
+ "PHIL",
+ "PHILIP",
+ "PHILLIP",
+ "PHOEBE",
+ "PHYLLIS",
+ "PIERRE",
+ "POLLY",
+ "PRESTON",
+ "PRISCILLA",
+ "QUEEN",
+ "QUENTIN",
+ "QUINCY",
+ "QUINTON",
+ "RACHAEL",
+ "RACHEL",
+ "RACHELLE",
+ "RAE",
+ "RAFAEL",
+ "RALPH",
+ "RAMIRO",
+ "RAMON",
+ "RAMONA",
+ "RANDAL",
+ "RANDALL",
+ "RANDI",
+ "RANDOLPH",
+ "RANDY",
+ "RAPHAEL",
+ "RAQUEL",
+ "RAUL",
+ "RAY",
+ "RAYMOND",
+ "RAYMUNDO",
+ "REBA",
+ "REBECCA",
+ "REBEKAH",
+ "REED",
+ "REGGIE",
+ "REGINA",
+ "REGINALD",
+ "RENA",
+ "RENAE",
+ "RENE",
+ "RENEE",
+ "REUBEN",
+ "REVA",
+ "REX",
+ "REYNA",
+ "REYNALDO",
+ "RHEA",
+ "RHODA",
+ "RHONDA",
+ "RICARDO",
+ "RICHARD",
+ "RICK",
+ "RICKEY",
+ "RICKIE",
+ "RICKY",
+ "RIGOBERTO",
+ "RILEY",
+ "RITA",
+ "ROB",
+ "ROBBIE",
+ "ROBBY",
+ "ROBERT",
+ "ROBERTA",
+ "ROBERTO",
+ "ROBIN",
+ "ROBYN",
+ "ROCCO",
+ "ROCHELLE",
+ "ROCIO",
+ "ROCKY",
+ "ROD",
+ "RODERICK",
+ "RODGER",
+ "RODNEY",
+ "RODOLFO",
+ "RODRIGO",
+ "ROGELIO",
+ "ROGER",
+ "ROLAND",
+ "ROLANDO",
+ "ROMAN",
+ "ROMEO",
+ "RON",
+ "RONALD",
+ "RONDA",
+ "RONNIE",
+ "ROOSEVELT",
+ "RORY",
+ "ROSA",
+ "ROSALIA",
+ "ROSALIE",
+ "ROSALIND",
+ "ROSALINDA",
+ "ROSALYN",
+ "ROSANNA",
+ "ROSANNE",
+ "ROSARIO",
+ "ROSCOE",
+ "ROSE",
+ "ROSEANN",
+ "ROSELLA",
+ "ROSEMARIE",
+ "ROSEMARY",
+ "ROSETTA",
+ "ROSIE",
+ "ROSLYN",
+ "ROSS",
+ "ROWENA",
+ "ROXANNE",
+ "ROXIE",
+ "ROY",
+ "ROYCE",
+ "RUBEN",
+ "RUBY",
+ "RUDOLPH",
+ "RUDY",
+ "RUFUS",
+ "RUSSEL",
+ "RUSSELL",
+ "RUSTY",
+ "RUTH",
+ "RUTHIE",
+ "RYAN",
+ "SABRINA",
+ "SADIE",
+ "SALLIE",
+ "SALLY",
+ "SALVADOR",
+ "SALVATORE",
+ "SAM",
+ "SAMANTHA",
+ "SAMMIE",
+ "SAMMY",
+ "SAMUEL",
+ "SANDRA",
+ "SANDY",
+ "SANFORD",
+ "SANTIAGO",
+ "SANTOS",
+ "SARA",
+ "SARAH",
+ "SASHA",
+ "SAUL",
+ "SAUNDRA",
+ "SAVANNAH",
+ "SCOT",
+ "SCOTT",
+ "SCOTTY",
+ "SEAN",
+ "SEBASTIAN",
+ "SELENA",
+ "SELINA",
+ "SELMA",
+ "SERENA",
+ "SERGIO",
+ "SETH",
+ "SHANA",
+ "SHANE",
+ "SHANNA",
+ "SHANNON",
+ "SHARI",
+ "SHARLENE",
+ "SHARON",
+ "SHARRON",
+ "SHAUN",
+ "SHAUNA",
+ "SHAWN",
+ "SHAWNA",
+ "SHEENA",
+ "SHEILA",
+ "SHELBY",
+ "SHELDON",
+ "SHELIA",
+ "SHELLEY",
+ "SHELLY",
+ "SHELTON",
+ "SHEREE",
+ "SHERI",
+ "SHERMAN",
+ "SHERRI",
+ "SHERRIE",
+ "SHERRY",
+ "SHERYL",
+ "SHIRLEY",
+ "SIDNEY",
+ "SIERRA",
+ "SILAS",
+ "SILVIA",
+ "SIMON",
+ "SIMONE",
+ "SOCORRO",
+ "SOFIA",
+ "SOLOMON",
+ "SON",
+ "SONDRA",
+ "SONIA",
+ "SONJA",
+ "SONNY",
+ "SONYA",
+ "SOPHIA",
+ "SOPHIE",
+ "SPENCER",
+ "STACEY",
+ "STACI",
+ "STACIE",
+ "STACY",
+ "STAN",
+ "STANLEY",
+ "STEFAN",
+ "STEFANIE",
+ "STELLA",
+ "STEPHAN",
+ "STEPHANIE",
+ "STEPHEN",
+ "STERLING",
+ "STEVE",
+ "STEVEN",
+ "STEWART",
+ "STUART",
+ "SUE",
+ "SUMMER",
+ "SUSAN",
+ "SUSANA",
+ "SUSANNA",
+ "SUSANNE",
+ "SUSIE",
+ "SUZANNE",
+ "SUZETTE",
+ "SYBIL",
+ "SYDNEY",
+ "SYLVESTER",
+ "SYLVIA",
+ "TABATHA",
+ "TABITHA",
+ "TAMARA",
+ "TAMEKA",
+ "TAMERA",
+ "TAMI",
+ "TAMIKA",
+ "TAMMI",
+ "TAMMIE",
+ "TAMMY",
+ "TAMRA",
+ "TANIA",
+ "TANISHA",
+ "TANYA",
+ "TARA",
+ "TASHA",
+ "TAYLOR",
+ "TED",
+ "TEDDY",
+ "TERENCE",
+ "TERESA",
+ "TERI",
+ "TERRA",
+ "TERRANCE",
+ "TERRELL",
+ "TERRENCE",
+ "TERRI",
+ "TERRIE",
+ "TERRY",
+ "TESSA",
+ "THADDEUS",
+ "THELMA",
+ "THEODORE",
+ "THERESA",
+ "THERESE",
+ "THERON",
+ "THOMAS",
+ "THURMAN",
+ "TIA",
+ "TIFFANY",
+ "TIM",
+ "TIMMY",
+ "TIMOTHY",
+ "TINA",
+ "TISHA",
+ "TOBY",
+ "TODD",
+ "TOM",
+ "TOMAS",
+ "TOMMIE",
+ "TOMMY",
+ "TONI",
+ "TONIA",
+ "TONY",
+ "TONYA",
+ "TORI",
+ "TRACEY",
+ "TRACI",
+ "TRACIE",
+ "TRACY",
+ "TRAVIS",
+ "TRENT",
+ "TRENTON",
+ "TREVOR",
+ "TRICIA",
+ "TRINA",
+ "TRISHA",
+ "TRISTAN",
+ "TROY",
+ "TRUDY",
+ "TRUMAN",
+ "TWILA",
+ "TY",
+ "TYLER",
+ "TYRONE",
+ "TYSON",
+ "ULYSSES",
+ "URSULA",
+ "VALARIE",
+ "VALERIA",
+ "VALERIE",
+ "VAN",
+ "VANCE",
+ "VANESSA",
+ "VAUGHN",
+ "VELMA",
+ "VERA",
+ "VERN",
+ "VERNA",
+ "VERNON",
+ "VERONICA",
+ "VICENTE",
+ "VICKI",
+ "VICKIE",
+ "VICKY",
+ "VICTOR",
+ "VICTORIA",
+ "VILMA",
+ "VINCE",
+ "VINCENT",
+ "VIOLA",
+ "VIOLET",
+ "VIRGIE",
+ "VIRGIL",
+ "VIRGINIA",
+ "VITO",
+ "VIVIAN",
+ "VONDA",
+ "WADE",
+ "WALLACE",
+ "WALTER",
+ "WANDA",
+ "WARD",
+ "WARREN",
+ "WAYNE",
+ "WELDON",
+ "WENDELL",
+ "WENDI",
+ "WENDY",
+ "WESLEY",
+ "WHITNEY",
+ "WILBERT",
+ "WILBUR",
+ "WILDA",
+ "WILEY",
+ "WILFORD",
+ "WILFRED",
+ "WILFREDO",
+ "WILL",
+ "WILLA",
+ "WILLARD",
+ "WILLIAM",
+ "WILLIAMS",
+ "WILLIE",
+ "WILLIS",
+ "WILMA",
+ "WILMER",
+ "WILSON",
+ "WINFRED",
+ "WINIFRED",
+ "WINNIE",
+ "WINSTON",
+ "WM",
+ "WOODROW",
+ "XAVIER",
+ "YESENIA",
+ "YOLANDA",
+ "YOUNG",
+ "YVETTE",
+ "YVONNE",
+ "ZACHARY",
+ "ZACHERY",
+ "ZELDA",
+ "ZELMA"
+ };
+ }
- private static final String[] generateFirstNames() {
- return new String[] { "AARON", "ABBIE", "ABBY", "ABEL", "ABIGAIL", "ABRAHAM",
- "ADA", "ADAM", "ADAN", "ADDIE", "ADELA", "ADELAIDE", "ADELE", "ADELINE", "ADOLFO", "ADOLPH", "ADRIAN",
- "ADRIANA", "ADRIENNE", "AGNES", "AGUSTIN", "AIDA", "AILEEN", "AIMEE", "AISHA", "AL", "ALAN", "ALANA",
- "ALBA", "ALBERT", "ALBERTA", "ALBERTO", "ALEJANDRA", "ALEJANDRO", "ALEX", "ALEXANDER", "ALEXANDRA",
- "ALEXANDRIA", "ALEXIS", "ALFONSO", "ALFRED", "ALFREDA", "ALFREDO", "ALI", "ALICE", "ALICIA", "ALINE",
- "ALISA", "ALISHA", "ALISON", "ALISSA", "ALLAN", "ALLEN", "ALLENE", "ALLIE", "ALLISON", "ALLYSON", "ALMA",
- "ALONZO", "ALPHONSO", "ALTA", "ALTHEA", "ALTON", "ALVARO", "ALVIN", "ALYCE", "ALYSON", "ALYSSA", "AMALIA",
- "AMANDA", "AMBER", "AMELIA", "AMIE", "AMOS", "AMPARO", "AMY", "ANA", "ANASTASIA", "ANDRE", "ANDREA",
- "ANDRES", "ANDREW", "ANDY", "ANGEL", "ANGELA", "ANGELIA", "ANGELICA", "ANGELINA", "ANGELINE", "ANGELIQUE",
- "ANGELITA", "ANGELO", "ANGIE", "ANITA", "ANN", "ANNA", "ANNABELLE", "ANNE", "ANNETTE", "ANNIE", "ANNMARIE",
- "ANTHONY", "ANTIONETTE", "ANTOINE", "ANTOINETTE", "ANTON", "ANTONIA", "ANTONIO", "ANTONY", "APRIL",
- "ARACELI", "ARCHIE", "ARLENE", "ARLINE", "ARMAND", "ARMANDO", "ARNOLD", "ARRON", "ART", "ARTHUR", "ARTURO",
- "ASHLEE", "ASHLEIGH", "ASHLEY", "AUBREY", "AUDRA", "AUDREY", "AUGUST", "AUGUSTA", "AURELIA", "AURELIO",
- "AURORA", "AUSTIN", "AUTUMN", "AVA", "AVERY", "AVIS", "BARBARA", "BARBRA", "BARNEY", "BARRY", "BART",
- "BASIL", "BEATRICE", "BEATRIZ", "BEAU", "BECKY", "BELINDA", "BEN", "BENITA", "BENITO", "BENJAMIN",
- "BENNETT", "BENNIE", "BENNY", "BERNADETTE", "BERNADINE", "BERNARD", "BERNARDO", "BERNICE", "BERNIE", "BERT",
- "BERTA", "BERTHA", "BERTIE", "BERYL", "BESSIE", "BETH", "BETHANY", "BETSY", "BETTE", "BETTIE", "BETTY",
- "BETTYE", "BEULAH", "BEVERLEY", "BEVERLY", "BIANCA", "BILL", "BILLIE", "BILLY", "BLAINE", "BLAIR", "BLAKE",
- "BLANCA", "BLANCHE", "BOB", "BOBBI", "BOBBIE", "BOBBY", "BONITA", "BONNIE", "BOOKER", "BOYD", "BRAD",
- "BRADFORD", "BRADLEY", "BRADY", "BRAIN", "BRANDEN", "BRANDI", "BRANDIE", "BRANDON", "BRANDY", "BRENDA",
- "BRENDAN", "BRENT", "BRET", "BRETT", "BRIAN", "BRIANA", "BRIANNA", "BRIDGET", "BRIDGETT", "BRIDGETTE",
- "BRIGITTE", "BRITNEY", "BRITTANY", "BRITTNEY", "BROCK", "BROOKE", "BRUCE", "BRUNO", "BRYAN", "BRYANT",
- "BRYCE", "BRYON", "BUDDY", "BUFORD", "BURTON", "BYRON", "CAITLIN", "CALEB", "CALLIE", "CALVIN", "CAMERON",
- "CAMILLA", "CAMILLE", "CANDACE", "CANDICE", "CANDY", "CARA", "CAREY", "CARISSA", "CARL", "CARLA", "CARLENE",
- "CARLO", "CARLOS", "CARLTON", "CARLY", "CARMELA", "CARMELLA", "CARMELO", "CARMEN", "CAROL", "CAROLE",
- "CAROLINA", "CAROLINE", "CAROLYN", "CARRIE", "CARROLL", "CARSON", "CARTER", "CARY", "CARYN", "CASANDRA",
- "CASEY", "CASSANDRA", "CASSIE", "CATALINA", "CATHERINE", "CATHLEEN", "CATHRYN", "CATHY", "CECELIA", "CECIL",
- "CECILE", "CECILIA", "CEDRIC", "CELESTE", "CELIA", "CELINA", "CESAR", "CHAD", "CHANDRA", "CHARITY",
- "CHARLENE", "CHARLES", "CHARLEY", "CHARLIE", "CHARLOTTE", "CHARMAINE", "CHASE", "CHASITY", "CHELSEA",
- "CHELSEY", "CHERI", "CHERIE", "CHERRY", "CHERYL", "CHESTER", "CHRIS", "CHRISTA", "CHRISTI", "CHRISTIAN",
- "CHRISTIE", "CHRISTINA", "CHRISTINE", "CHRISTOPHER", "CHRISTY", "CHRYSTAL", "CHUCK", "CINDY", "CLAIR",
- "CLAIRE", "CLARA", "CLARE", "CLARENCE", "CLARICE", "CLARISSA", "CLARK", "CLAUDE", "CLAUDETTE", "CLAUDIA",
- "CLAUDINE", "CLAY", "CLAYTON", "CLEMENT", "CLEO", "CLEVELAND", "CLIFF", "CLIFFORD", "CLIFTON", "CLINT",
- "CLINTON", "CLYDE", "CODY", "COLBY", "COLE", "COLEEN", "COLETTE", "COLIN", "COLLEEN", "COLLIN",
- "CONCEPCION", "CONCETTA", "CONNIE", "CONRAD", "CONSTANCE", "CONSUELO", "CORA", "COREY", "CORINA", "CORINE",
- "CORINNE", "CORNELIA", "CORNELIUS", "CORNELL", "CORRINE", "CORTNEY", "CORY", "COURTNEY", "COY", "CRAIG",
- "CRISTINA", "CRUZ", "CRYSTAL", "CURT", "CURTIS", "CYNTHIA", "DAISY", "DALE", "DALLAS", "DALTON", "DAMIAN",
- "DAMIEN", "DAMON", "DAN", "DANA", "DANE", "DANIAL", "DANIEL", "DANIELLE", "DANNY", "DANTE", "DAPHNE",
- "DARCY", "DAREN", "DARIN", "DARIUS", "DARLA", "DARLENE", "DARNELL", "DARREL", "DARRELL", "DARREN", "DARRIN",
- "DARRYL", "DARWIN", "DARYL", "DAVE", "DAVID", "DAVIS", "DAWN", "DAYNA", "DEAN", "DEANA", "DEANN", "DEANNA",
- "DEANNE", "DEBBIE", "DEBORA", "DEBORAH", "DEBRA", "DEE", "DEENA", "DEIDRA", "DEIDRE", "DEIRDRE", "DELBERT",
- "DELIA", "DELLA", "DELMAR", "DELORES", "DELORIS", "DEMETRIUS", "DENA", "DENICE", "DENIS", "DENISE",
- "DENNIS", "DENNY", "DENVER", "DEREK", "DERICK", "DERRICK", "DESIREE", "DESMOND", "DESSIE", "DEVIN", "DEVON",
- "DEWAYNE", "DEWEY", "DEXTER", "DIANA", "DIANE", "DIANN", "DIANNA", "DIANNE", "DICK", "DIEGO", "DINA",
- "DION", "DIONNE", "DIRK", "DIXIE", "DOLLIE", "DOLLY", "DOLORES", "DOMINGO", "DOMINIC", "DOMINICK",
- "DOMINIQUE", "DON", "DONA", "DONALD", "DONNA", "DONNELL", "DONNIE", "DONNY", "DONOVAN", "DORA", "DOREEN",
- "DORETHA", "DORIS", "DOROTHEA", "DOROTHY", "DORTHY", "DOUG", "DOUGLAS", "DOYLE", "DREW", "DUANE", "DUDLEY",
- "DUSTIN", "DWAYNE", "DWIGHT", "DYLAN", "EARL", "EARLENE", "EARLINE", "EARNEST", "EARNESTINE", "EBONY", "ED",
- "EDDIE", "EDDY", "EDGAR", "EDITH", "EDMOND", "EDMUND", "EDNA", "EDUARDO", "EDWARD", "EDWARDO", "EDWIN",
- "EDWINA", "EDYTHE", "EFFIE", "EFRAIN", "EILEEN", "ELAINE", "ELBA", "ELBERT", "ELDA", "ELDON", "ELEANOR",
- "ELENA", "ELI", "ELIAS", "ELIJAH", "ELINOR", "ELISA", "ELISABETH", "ELISE", "ELISHA", "ELIZA", "ELIZABETH",
- "ELLA", "ELLEN", "ELLIOT", "ELLIOTT", "ELLIS", "ELMA", "ELMER", "ELNORA", "ELOISE", "ELSA", "ELSIE",
- "ELTON", "ELVA", "ELVIA", "ELVIN", "ELVIRA", "ELVIS", "ELWOOD", "EMANUEL", "EMERSON", "EMERY", "EMIL",
- "EMILIA", "EMILIE", "EMILIO", "EMILY", "EMMA", "EMMANUEL", "EMMETT", "EMORY", "ENID", "ENRIQUE", "ERIC",
- "ERICA", "ERICK", "ERICKA", "ERIK", "ERIKA", "ERIN", "ERMA", "ERNA", "ERNEST", "ERNESTINE", "ERNESTO",
- "ERNIE", "ERROL", "ERVIN", "ERWIN", "ESMERALDA", "ESPERANZA", "ESSIE", "ESTEBAN", "ESTELA", "ESTELLA",
- "ESTELLE", "ESTER", "ESTHER", "ETHAN", "ETHEL", "ETTA", "EUGENE", "EUGENIA", "EULA", "EUNICE", "EVA",
- "EVAN", "EVANGELINA", "EVANGELINE", "EVE", "EVELYN", "EVERETT", "FABIAN", "FAITH", "FANNIE", "FANNY", "FAY",
- "FAYE", "FEDERICO", "FELECIA", "FELICIA", "FELIPE", "FELIX", "FERN", "FERNANDO", "FIDEL", "FLETCHER",
- "FLORA", "FLORENCE", "FLORINE", "FLOSSIE", "FLOYD", "FORREST", "FRAN", "FRANCES", "FRANCESCA", "FRANCINE",
- "FRANCIS", "FRANCISCA", "FRANCISCO", "FRANK", "FRANKIE", "FRANKLIN", "FRED", "FREDA", "FREDDIE", "FREDDY",
- "FREDERIC", "FREDERICK", "FREDRICK", "FREIDA", "FRIEDA", "GABRIEL", "GABRIELA", "GABRIELLE", "GAIL", "GALE",
- "GALEN", "GARLAND", "GARRETT", "GARRY", "GARY", "GAVIN", "GAY", "GAYLA", "GAYLE", "GENA", "GENARO", "GENE",
- "GENEVA", "GENEVIEVE", "GEOFFREY", "GEORGE", "GEORGETTE", "GEORGIA", "GEORGINA", "GERALD", "GERALDINE",
- "GERARD", "GERARDO", "GERI", "GERMAINE", "GERMAN", "GERRY", "GERTRUDE", "GILBERT", "GILBERTO", "GILDA",
- "GINA", "GINGER", "GLADYS", "GLEN", "GLENDA", "GLENN", "GLENNA", "GLORIA", "GOLDIE", "GONZALO", "GORDON",
- "GRACE", "GRACIE", "GRACIELA", "GRADY", "GRAHAM", "GRANT", "GREG", "GREGG", "GREGORIO", "GREGORY", "GRETA",
- "GRETCHEN", "GROVER", "GUADALUPE", "GUILLERMO", "GUS", "GUSSIE", "GUSTAVO", "GUY", "GWEN", "GWENDOLYN",
- "HAL", "HALEY", "HALLIE", "HANNAH", "HANS", "HARLAN", "HARLEY", "HAROLD", "HARRIET", "HARRIETT", "HARRIS",
- "HARRISON", "HARRY", "HARVEY", "HATTIE", "HAZEL", "HEATH", "HEATHER", "HECTOR", "HEIDI", "HELEN", "HELENA",
- "HELENE", "HELGA", "HENRIETTA", "HENRY", "HERBERT", "HERIBERTO", "HERMAN", "HERMINIA", "HESTER", "HILARY",
- "HILDA", "HILLARY", "HIRAM", "HOLLIE", "HOLLIS", "HOLLY", "HOMER", "HOPE", "HORACE", "HOUSTON", "HOWARD",
- "HUBERT", "HUGH", "HUGO", "HUMBERTO", "HUNG", "HUNTER", "IAN", "IDA", "IGNACIO", "ILA", "ILENE", "IMELDA",
- "IMOGENE", "INA", "INES", "INEZ", "INGRID", "IRA", "IRENE", "IRIS", "IRMA", "IRVIN", "IRVING", "IRWIN",
- "ISAAC", "ISABEL", "ISABELLA", "ISABELLE", "ISAIAH", "ISIDRO", "ISMAEL", "ISRAEL", "ISSAC", "IVA", "IVAN",
- "IVY", "JACK", "JACKIE", "JACKLYN", "JACKSON", "JACLYN", "JACOB", "JACQUELINE", "JACQUELYN", "JACQUES",
- "JADE", "JAIME", "JAKE", "JAMAL", "JAME", "JAMES", "JAMI", "JAMIE", "JAN", "JANA", "JANE", "JANELL",
- "JANELLE", "JANET", "JANETTE", "JANICE", "JANIE", "JANINE", "JANIS", "JANNA", "JANNIE", "JARED", "JARROD",
- "JARVIS", "JASMIN", "JASMINE", "JASON", "JASPER", "JAVIER", "JAY", "JAYNE", "JAYSON", "JEAN", "JEANETTE",
- "JEANIE", "JEANINE", "JEANNE", "JEANNETTE", "JEANNIE", "JEANNINE", "JEFF", "JEFFERSON", "JEFFERY",
- "JEFFREY", "JEFFRY", "JENIFER", "JENNA", "JENNIE", "JENNIFER", "JENNY", "JERALD", "JEREMIAH", "JEREMY",
- "JERI", "JERMAINE", "JEROME", "JERRI", "JERRY", "JESS", "JESSE", "JESSICA", "JESSIE", "JESUS", "JEWEL",
- "JEWELL", "JILL", "JILLIAN", "JIM", "JIMMIE", "JIMMY", "JO", "JOAN", "JOANN", "JOANNA", "JOANNE", "JOAQUIN",
- "JOCELYN", "JODI", "JODIE", "JODY", "JOE", "JOEL", "JOESPH", "JOEY", "JOHANNA", "JOHN", "JOHNATHAN",
- "JOHNATHON", "JOHNNIE", "JOHNNY", "JOLENE", "JON", "JONATHAN", "JONATHON", "JONI", "JORDAN", "JORGE",
- "JOSE", "JOSEFA", "JOSEFINA", "JOSEPH", "JOSEPHINE", "JOSH", "JOSHUA", "JOSIE", "JOSUE", "JOY", "JOYCE",
- "JUAN", "JUANA", "JUANITA", "JUDI", "JUDITH", "JUDY", "JULIA", "JULIAN", "JULIANA", "JULIANNE", "JULIE",
- "JULIET", "JULIETTE", "JULIO", "JULIUS", "JUNE", "JUNIOR", "JUSTIN", "JUSTINA", "JUSTINE", "KAITLIN",
- "KAITLYN", "KARA", "KAREN", "KARI", "KARIN", "KARINA", "KARL", "KARLA", "KARYN", "KASEY", "KATE", "KATELYN",
- "KATHARINE", "KATHERINE", "KATHERYN", "KATHI", "KATHIE", "KATHLEEN", "KATHRINE", "KATHRYN", "KATHY",
- "KATIE", "KATINA", "KATRINA", "KATY", "KAY", "KAYE", "KAYLA", "KEISHA", "KEITH", "KELLEY", "KELLI",
- "KELLIE", "KELLY", "KELSEY", "KELVIN", "KEN", "KENDALL", "KENDRA", "KENDRICK", "KENNETH", "KENNY", "KENT",
- "KENYA", "KERI", "KERMIT", "KERRI", "KERRY", "KEVIN", "KIM", "KIMBERLEE", "KIMBERLEY", "KIMBERLY", "KIRBY",
- "KIRK", "KIRSTEN", "KITTY", "KRIS", "KRISTA", "KRISTEN", "KRISTI", "KRISTIE", "KRISTIN", "KRISTINA",
- "KRISTINE", "KRISTOPHER", "KRISTY", "KRYSTAL", "KURT", "KURTIS", "KYLE", "LACEY", "LACY", "LADONNA",
- "LAKEISHA", "LAKESHA", "LAKISHA", "LAMAR", "LAMONT", "LANA", "LANCE", "LANDON", "LANE", "LARA", "LARRY",
- "LASHONDA", "LATANYA", "LATASHA", "LATISHA", "LATONYA", "LATOYA", "LAURA", "LAUREL", "LAUREN", "LAURENCE",
- "LAURI", "LAURIE", "LAVERNE", "LAVONNE", "LAWANDA", "LAWRENCE", "LEA", "LEAH", "LEANN", "LEANNA", "LEANNE",
- "LEE", "LEEANN", "LEIGH", "LEILA", "LELA", "LELAND", "LELIA", "LENA", "LENORA", "LENORE", "LEO", "LEOLA",
- "LEON", "LEONA", "LEONARD", "LEONARDO", "LEONEL", "LEONOR", "LEROY", "LESA", "LESLEY", "LESLIE", "LESSIE",
- "LESTER", "LETA", "LETHA", "LETICIA", "LETITIA", "LEVI", "LEWIS", "LIBBY", "LIDIA", "LILA", "LILIA",
- "LILIAN", "LILIANA", "LILLIAN", "LILLIE", "LILLY", "LILY", "LINA", "LINCOLN", "LINDA", "LINDSAY", "LINDSEY",
- "LINWOOD", "LIONEL", "LISA", "LIZ", "LIZA", "LIZZIE", "LLOYD", "LOGAN", "LOIS", "LOLA", "LOLITA", "LONNIE",
- "LORA", "LORAINE", "LOREN", "LORENA", "LORENE", "LORENZO", "LORETTA", "LORI", "LORIE", "LORNA", "LORRAINE",
- "LORRIE", "LOTTIE", "LOU", "LOUELLA", "LOUIE", "LOUIS", "LOUISA", "LOUISE", "LOURDES", "LOWELL", "LOYD",
- "LUANN", "LUCAS", "LUCIA", "LUCILE", "LUCILLE", "LUCINDA", "LUCY", "LUELLA", "LUIS", "LUISA", "LUKE",
- "LULA", "LUPE", "LUTHER", "LUZ", "LYDIA", "LYLE", "LYNDA", "LYNETTE", "LYNN", "LYNNE", "LYNNETTE", "MA",
- "MABEL", "MABLE", "MACK", "MADELEINE", "MADELINE", "MADELYN", "MADGE", "MAE", "MAGDALENA", "MAGGIE", "MAI",
- "MALCOLM", "MALINDA", "MALLORY", "MAMIE", "MANDY", "MANUEL", "MANUELA", "MARA", "MARC", "MARCEL",
- "MARCELINO", "MARCELLA", "MARCI", "MARCIA", "MARCIE", "MARCO", "MARCOS", "MARCUS", "MARCY", "MARGARET",
- "MARGARITA", "MARGERY", "MARGIE", "MARGO", "MARGOT", "MARGRET", "MARGUERITE", "MARI", "MARIA", "MARIAN",
- "MARIANA", "MARIANNE", "MARIANO", "MARIBEL", "MARICELA", "MARIE", "MARIETTA", "MARILYN", "MARINA", "MARIO",
- "MARION", "MARISA", "MARISOL", "MARISSA", "MARITZA", "MARJORIE", "MARK", "MARLA", "MARLENE", "MARLIN",
- "MARLON", "MARQUITA", "MARSHA", "MARSHALL", "MARTA", "MARTHA", "MARTIN", "MARTINA", "MARTY", "MARVA",
- "MARVIN", "MARY", "MARYANN", "MARYANNE", "MARYELLEN", "MARYLOU", "MASON", "MATHEW", "MATILDA", "MATT",
- "MATTHEW", "MATTIE", "MAUDE", "MAURA", "MAUREEN", "MAURICE", "MAURICIO", "MAVIS", "MAX", "MAXINE",
- "MAXWELL", "MAY", "MAYNARD", "MAYRA", "MEAGAN", "MEGAN", "MEGHAN", "MELANIE", "MELBA", "MELINDA", "MELISA",
- "MELISSA", "MELLISA", "MELODY", "MELVA", "MELVIN", "MERCEDES", "MEREDITH", "MERLE", "MERLIN", "MERRILL",
- "MIA", "MICAH", "MICHAEL", "MICHAELA", "MICHEAL", "MICHEL", "MICHELE", "MICHELL", "MICHELLE", "MICKEY",
- "MIGUEL", "MIKE", "MILAGROS", "MILDRED", "MILES", "MILLARD", "MILLICENT", "MILLIE", "MILTON", "MINA",
- "MINDY", "MINERVA", "MINNIE", "MIRANDA", "MIRIAM", "MISTY", "MITCHELL", "MITZI", "MOHAMMAD", "MOISES",
- "MOLLIE", "MOLLY", "MONA", "MONICA", "MONIKA", "MONIQUE", "MONROE", "MONTE", "MONTY", "MORGAN", "MORRIS",
- "MOSES", "MURIEL", "MURRAY", "MYRA", "MYRNA", "MYRON", "MYRTLE", "NADIA", "NADINE", "NAN", "NANCY",
- "NANETTE", "NANNIE", "NAOMI", "NATALIA", "NATALIE", "NATASHA", "NATHAN", "NATHANIEL", "NEAL", "NED", "NEIL",
- "NELDA", "NELL", "NELLIE", "NELLY", "NELSON", "NESTOR", "NETTIE", "NEVA", "NICHOLAS", "NICHOLE", "NICK",
- "NICKOLAS", "NICOLAS", "NICOLE", "NIKKI", "NINA", "NITA", "NOAH", "NOE", "NOEL", "NOELLE", "NOEMI", "NOLA",
- "NOLAN", "NONA", "NORA", "NORBERT", "NOREEN", "NORMA", "NORMAN", "NORRIS", "NUMBERS", "OCTAVIA", "OCTAVIO",
- "ODELL", "ODESSA", "OFELIA", "OLA", "OLGA", "OLIVE", "OLIVER", "OLIVIA", "OLLIE", "OMAR", "OPAL", "OPHELIA",
- "ORA", "ORLANDO", "ORVILLE", "OSCAR", "OTIS", "OTTO", "OWEN", "PABLO", "PAIGE", "PAM", "PAMALA", "PAMELA",
- "PANSY", "PASQUALE", "PAT", "PATRICA", "PATRICE", "PATRICIA", "PATRICK", "PATSY", "PATTI", "PATTY", "PAUL",
- "PAULA", "PAULETTE", "PAULINE", "PEARL", "PEARLIE", "PEDRO", "PEGGY", "PENELOPE", "PENNY", "PERCY", "PERRY",
- "PETE", "PETER", "PETRA", "PHIL", "PHILIP", "PHILLIP", "PHOEBE", "PHYLLIS", "PIERRE", "POLLY", "PRESTON",
- "PRISCILLA", "QUEEN", "QUENTIN", "QUINCY", "QUINTON", "RACHAEL", "RACHEL", "RACHELLE", "RAE", "RAFAEL",
- "RALPH", "RAMIRO", "RAMON", "RAMONA", "RANDAL", "RANDALL", "RANDI", "RANDOLPH", "RANDY", "RAPHAEL",
- "RAQUEL", "RAUL", "RAY", "RAYMOND", "RAYMUNDO", "REBA", "REBECCA", "REBEKAH", "REED", "REGGIE", "REGINA",
- "REGINALD", "RENA", "RENAE", "RENE", "RENEE", "REUBEN", "REVA", "REX", "REYNA", "REYNALDO", "RHEA", "RHODA",
- "RHONDA", "RICARDO", "RICHARD", "RICK", "RICKEY", "RICKIE", "RICKY", "RIGOBERTO", "RILEY", "RITA", "ROB",
- "ROBBIE", "ROBBY", "ROBERT", "ROBERTA", "ROBERTO", "ROBIN", "ROBYN", "ROCCO", "ROCHELLE", "ROCIO", "ROCKY",
- "ROD", "RODERICK", "RODGER", "RODNEY", "RODOLFO", "RODRIGO", "ROGELIO", "ROGER", "ROLAND", "ROLANDO",
- "ROMAN", "ROMEO", "RON", "RONALD", "RONDA", "RONNIE", "ROOSEVELT", "RORY", "ROSA", "ROSALIA", "ROSALIE",
- "ROSALIND", "ROSALINDA", "ROSALYN", "ROSANNA", "ROSANNE", "ROSARIO", "ROSCOE", "ROSE", "ROSEANN", "ROSELLA",
- "ROSEMARIE", "ROSEMARY", "ROSETTA", "ROSIE", "ROSLYN", "ROSS", "ROWENA", "ROXANNE", "ROXIE", "ROY", "ROYCE",
- "RUBEN", "RUBY", "RUDOLPH", "RUDY", "RUFUS", "RUSSEL", "RUSSELL", "RUSTY", "RUTH", "RUTHIE", "RYAN",
- "SABRINA", "SADIE", "SALLIE", "SALLY", "SALVADOR", "SALVATORE", "SAM", "SAMANTHA", "SAMMIE", "SAMMY",
- "SAMUEL", "SANDRA", "SANDY", "SANFORD", "SANTIAGO", "SANTOS", "SARA", "SARAH", "SASHA", "SAUL", "SAUNDRA",
- "SAVANNAH", "SCOT", "SCOTT", "SCOTTY", "SEAN", "SEBASTIAN", "SELENA", "SELINA", "SELMA", "SERENA", "SERGIO",
- "SETH", "SHANA", "SHANE", "SHANNA", "SHANNON", "SHARI", "SHARLENE", "SHARON", "SHARRON", "SHAUN", "SHAUNA",
- "SHAWN", "SHAWNA", "SHEENA", "SHEILA", "SHELBY", "SHELDON", "SHELIA", "SHELLEY", "SHELLY", "SHELTON",
- "SHEREE", "SHERI", "SHERMAN", "SHERRI", "SHERRIE", "SHERRY", "SHERYL", "SHIRLEY", "SIDNEY", "SIERRA",
- "SILAS", "SILVIA", "SIMON", "SIMONE", "SOCORRO", "SOFIA", "SOLOMON", "SON", "SONDRA", "SONIA", "SONJA",
- "SONNY", "SONYA", "SOPHIA", "SOPHIE", "SPENCER", "STACEY", "STACI", "STACIE", "STACY", "STAN", "STANLEY",
- "STEFAN", "STEFANIE", "STELLA", "STEPHAN", "STEPHANIE", "STEPHEN", "STERLING", "STEVE", "STEVEN", "STEWART",
- "STUART", "SUE", "SUMMER", "SUSAN", "SUSANA", "SUSANNA", "SUSANNE", "SUSIE", "SUZANNE", "SUZETTE", "SYBIL",
- "SYDNEY", "SYLVESTER", "SYLVIA", "TABATHA", "TABITHA", "TAMARA", "TAMEKA", "TAMERA", "TAMI", "TAMIKA",
- "TAMMI", "TAMMIE", "TAMMY", "TAMRA", "TANIA", "TANISHA", "TANYA", "TARA", "TASHA", "TAYLOR", "TED", "TEDDY",
- "TERENCE", "TERESA", "TERI", "TERRA", "TERRANCE", "TERRELL", "TERRENCE", "TERRI", "TERRIE", "TERRY",
- "TESSA", "THADDEUS", "THELMA", "THEODORE", "THERESA", "THERESE", "THERON", "THOMAS", "THURMAN", "TIA",
- "TIFFANY", "TIM", "TIMMY", "TIMOTHY", "TINA", "TISHA", "TOBY", "TODD", "TOM", "TOMAS", "TOMMIE", "TOMMY",
- "TONI", "TONIA", "TONY", "TONYA", "TORI", "TRACEY", "TRACI", "TRACIE", "TRACY", "TRAVIS", "TRENT",
- "TRENTON", "TREVOR", "TRICIA", "TRINA", "TRISHA", "TRISTAN", "TROY", "TRUDY", "TRUMAN", "TWILA", "TY",
- "TYLER", "TYRONE", "TYSON", "ULYSSES", "URSULA", "VALARIE", "VALERIA", "VALERIE", "VAN", "VANCE", "VANESSA",
- "VAUGHN", "VELMA", "VERA", "VERN", "VERNA", "VERNON", "VERONICA", "VICENTE", "VICKI", "VICKIE", "VICKY",
- "VICTOR", "VICTORIA", "VILMA", "VINCE", "VINCENT", "VIOLA", "VIOLET", "VIRGIE", "VIRGIL", "VIRGINIA",
- "VITO", "VIVIAN", "VONDA", "WADE", "WALLACE", "WALTER", "WANDA", "WARD", "WARREN", "WAYNE", "WELDON",
- "WENDELL", "WENDI", "WENDY", "WESLEY", "WHITNEY", "WILBERT", "WILBUR", "WILDA", "WILEY", "WILFORD",
- "WILFRED", "WILFREDO", "WILL", "WILLA", "WILLARD", "WILLIAM", "WILLIAMS", "WILLIE", "WILLIS", "WILMA",
- "WILMER", "WILSON", "WINFRED", "WINIFRED", "WINNIE", "WINSTON", "WM", "WOODROW", "XAVIER", "YESENIA",
- "YOLANDA", "YOUNG", "YVETTE", "YVONNE", "ZACHARY", "ZACHERY", "ZELDA", "ZELMA" };
- }
+ private static final String[] generateLastNames() {
+ return new String[] {
+ "AARON",
+ "ABBOTT",
+ "ABEL",
+ "ABELL",
+ "ABERNATHY",
+ "ABNER",
+ "ABNEY",
+ "ABRAHAM",
+ "ABRAMS",
+ "ABREU",
+ "ACEVEDO",
+ "ACKER",
+ "ACKERMAN",
+ "ACKLEY",
+ "ACOSTA",
+ "ACUNA",
+ "ADAIR",
+ "ADAM",
+ "ADAME",
+ "ADAMS",
+ "ADAMSON",
+ "ADCOCK",
+ "ADDISON",
+ "ADKINS",
+ "ADLER",
+ "AGEE",
+ "AGNEW",
+ "AGUAYO",
+ "AGUIAR",
+ "AGUILAR",
+ "AGUILERA",
+ "AGUIRRE",
+ "AHERN",
+ "AHMAD",
+ "AHMED",
+ "AHRENS",
+ "AIELLO",
+ "AIKEN",
+ "AINSWORTH",
+ "AKERS",
+ "AKIN",
+ "AKINS",
+ "ALANIZ",
+ "ALARCON",
+ "ALBA",
+ "ALBERS",
+ "ALBERT",
+ "ALBERTSON",
+ "ALBRECHT",
+ "ALBRIGHT",
+ "ALCALA",
+ "ALCORN",
+ "ALDERMAN",
+ "ALDRICH",
+ "ALDRIDGE",
+ "ALEMAN",
+ "ALEXANDER",
+ "ALFARO",
+ "ALFONSO",
+ "ALFORD",
+ "ALFRED",
+ "ALGER",
+ "ALI",
+ "ALICEA",
+ "ALLAN",
+ "ALLARD",
+ "ALLEN",
+ "ALLEY",
+ "ALLISON",
+ "ALLMAN",
+ "ALLRED",
+ "ALMANZA",
+ "ALMEIDA",
+ "ALMOND",
+ "ALONSO",
+ "ALONZO",
+ "ALSTON",
+ "ALTMAN",
+ "ALVARADO",
+ "ALVAREZ",
+ "ALVES",
+ "AMADOR",
+ "AMARAL",
+ "AMATO",
+ "AMAYA",
+ "AMBROSE",
+ "AMES",
+ "AMMONS",
+ "AMOS",
+ "AMUNDSON",
+ "ANAYA",
+ "ANDERS",
+ "ANDERSEN",
+ "ANDERSON",
+ "ANDRADE",
+ "ANDRE",
+ "ANDRES",
+ "ANDREW",
+ "ANDREWS",
+ "ANDRUS",
+ "ANGEL",
+ "ANGELO",
+ "ANGLIN",
+ "ANGULO",
+ "ANTHONY",
+ "ANTOINE",
+ "ANTONIO",
+ "APODACA",
+ "APONTE",
+ "APPEL",
+ "APPLE",
+ "APPLEGATE",
+ "APPLETON",
+ "AQUINO",
+ "ARAGON",
+ "ARANDA",
+ "ARAUJO",
+ "ARCE",
+ "ARCHER",
+ "ARCHIBALD",
+ "ARCHIE",
+ "ARCHULETA",
+ "ARELLANO",
+ "AREVALO",
+ "ARIAS",
+ "ARMENTA",
+ "ARMIJO",
+ "ARMSTEAD",
+ "ARMSTRONG",
+ "ARNDT",
+ "ARNETT",
+ "ARNOLD",
+ "ARREDONDO",
+ "ARREOLA",
+ "ARRIAGA",
+ "ARRINGTON",
+ "ARROYO",
+ "ARSENAULT",
+ "ARTEAGA",
+ "ARTHUR",
+ "ARTIS",
+ "ASBURY",
+ "ASH",
+ "ASHBY",
+ "ASHCRAFT",
+ "ASHE",
+ "ASHER",
+ "ASHFORD",
+ "ASHLEY",
+ "ASHMORE",
+ "ASHTON",
+ "ASHWORTH",
+ "ASKEW",
+ "ATCHISON",
+ "ATHERTON",
+ "ATKINS",
+ "ATKINSON",
+ "ATWELL",
+ "ATWOOD",
+ "AUGUST",
+ "AUGUSTINE",
+ "AULT",
+ "AUSTIN",
+ "AUTRY",
+ "AVALOS",
+ "AVERY",
+ "AVILA",
+ "AVILES",
+ "AYALA",
+ "AYERS",
+ "AYRES",
+ "BABB",
+ "BABCOCK",
+ "BABIN",
+ "BACA",
+ "BACH",
+ "BACHMAN",
+ "BACK",
+ "BACON",
+ "BADER",
+ "BADGER",
+ "BADILLO",
+ "BAER",
+ "BAEZ",
+ "BAGGETT",
+ "BAGLEY",
+ "BAGWELL",
+ "BAILEY",
+ "BAIN",
+ "BAINES",
+ "BAIR",
+ "BAIRD",
+ "BAKER",
+ "BALDERAS",
+ "BALDWIN",
+ "BALES",
+ "BALL",
+ "BALLARD",
+ "BANDA",
+ "BANDY",
+ "BANKS",
+ "BANKSTON",
+ "BANNISTER",
+ "BANUELOS",
+ "BAPTISTE",
+ "BARAJAS",
+ "BARBA",
+ "BARBEE",
+ "BARBER",
+ "BARBOSA",
+ "BARBOUR",
+ "BARCLAY",
+ "BARDEN",
+ "BARELA",
+ "BARFIELD",
+ "BARGER",
+ "BARHAM",
+ "BARKER",
+ "BARKLEY",
+ "BARKSDALE",
+ "BARLOW",
+ "BARNARD",
+ "BARNES",
+ "BARNETT",
+ "BARNETTE",
+ "BARNEY",
+ "BARNHART",
+ "BARNHILL",
+ "BARON",
+ "BARONE",
+ "BARR",
+ "BARRAZA",
+ "BARRERA",
+ "BARRETO",
+ "BARRETT",
+ "BARRIENTOS",
+ "BARRIOS",
+ "BARRON",
+ "BARROW",
+ "BARROWS",
+ "BARRY",
+ "BARTELS",
+ "BARTH",
+ "BARTHOLOMEW",
+ "BARTLETT",
+ "BARTLEY",
+ "BARTON",
+ "BASHAM",
+ "BASKIN",
+ "BASS",
+ "BASSETT",
+ "BATCHELOR",
+ "BATEMAN",
+ "BATES",
+ "BATISTA",
+ "BATISTE",
+ "BATSON",
+ "BATTAGLIA",
+ "BATTEN",
+ "BATTLE",
+ "BATTLES",
+ "BATTS",
+ "BAUER",
+ "BAUGH",
+ "BAUGHMAN",
+ "BAUM",
+ "BAUMAN",
+ "BAUMANN",
+ "BAUMGARDNER",
+ "BAUMGARTNER",
+ "BAUTISTA",
+ "BAXLEY",
+ "BAXTER",
+ "BAYER",
+ "BAYLOR",
+ "BAYNE",
+ "BAYS",
+ "BEACH",
+ "BEAL",
+ "BEALE",
+ "BEALL",
+ "BEALS",
+ "BEAM",
+ "BEAMON",
+ "BEAN",
+ "BEANE",
+ "BEAR",
+ "BEARD",
+ "BEARDEN",
+ "BEASLEY",
+ "BEATTIE",
+ "BEATTY",
+ "BEATY",
+ "BEAUCHAMP",
+ "BEAUDOIN",
+ "BEAULIEU",
+ "BEAUREGARD",
+ "BEAVER",
+ "BEAVERS",
+ "BECERRA",
+ "BECK",
+ "BECKER",
+ "BECKETT",
+ "BECKHAM",
+ "BECKMAN",
+ "BECKWITH",
+ "BECNEL",
+ "BEDARD",
+ "BEDFORD",
+ "BEEBE",
+ "BEELER",
+ "BEERS",
+ "BEESON",
+ "BEGAY",
+ "BEGLEY",
+ "BEHRENS",
+ "BELANGER",
+ "BELCHER",
+ "BELL",
+ "BELLAMY",
+ "BELLO",
+ "BELT",
+ "BELTON",
+ "BELTRAN",
+ "BENAVIDES",
+ "BENAVIDEZ",
+ "BENDER",
+ "BENEDICT",
+ "BENEFIELD",
+ "BENITEZ",
+ "BENJAMIN",
+ "BENNER",
+ "BENNETT",
+ "BENOIT",
+ "BENSON",
+ "BENTLEY",
+ "BENTON",
+ "BERG",
+ "BERGER",
+ "BERGERON",
+ "BERGMAN",
+ "BERGSTROM",
+ "BERLIN",
+ "BERMAN",
+ "BERMUDEZ",
+ "BERNAL",
+ "BERNARD",
+ "BERNHARDT",
+ "BERNIER",
+ "BERNSTEIN",
+ "BERRIOS",
+ "BERRY",
+ "BERRYMAN",
+ "BERTRAM",
+ "BERTRAND",
+ "BERUBE",
+ "BESS",
+ "BEST",
+ "BETANCOURT",
+ "BETHEA",
+ "BETHEL",
+ "BETTS",
+ "BETZ",
+ "BEVERLY",
+ "BEVINS",
+ "BEYER",
+ "BIBLE",
+ "BICKFORD",
+ "BIDDLE",
+ "BIGELOW",
+ "BIGGS",
+ "BILLINGS",
+ "BILLINGSLEY",
+ "BILLIOT",
+ "BILLS",
+ "BILLUPS",
+ "BILODEAU",
+ "BINDER",
+ "BINGHAM",
+ "BINKLEY",
+ "BIRCH",
+ "BIRD",
+ "BISHOP",
+ "BISSON",
+ "BITTNER",
+ "BIVENS",
+ "BIVINS",
+ "BLACK",
+ "BLACKBURN",
+ "BLACKMAN",
+ "BLACKMON",
+ "BLACKWELL",
+ "BLACKWOOD",
+ "BLAINE",
+ "BLAIR",
+ "BLAIS",
+ "BLAKE",
+ "BLAKELY",
+ "BLALOCK",
+ "BLANCHARD",
+ "BLANCHETTE",
+ "BLANCO",
+ "BLAND",
+ "BLANK",
+ "BLANKENSHIP",
+ "BLANTON",
+ "BLAYLOCK",
+ "BLEDSOE",
+ "BLEVINS",
+ "BLISS",
+ "BLOCK",
+ "BLOCKER",
+ "BLODGETT",
+ "BLOOM",
+ "BLOUNT",
+ "BLUE",
+ "BLUM",
+ "BLUNT",
+ "BLYTHE",
+ "BOATRIGHT",
+ "BOATWRIGHT",
+ "BOBBITT",
+ "BOBO",
+ "BOCK",
+ "BOEHM",
+ "BOETTCHER",
+ "BOGAN",
+ "BOGGS",
+ "BOHANNON",
+ "BOHN",
+ "BOISVERT",
+ "BOLAND",
+ "BOLDEN",
+ "BOLDUC",
+ "BOLEN",
+ "BOLES",
+ "BOLIN",
+ "BOLING",
+ "BOLLING",
+ "BOLLINGER",
+ "BOLT",
+ "BOLTON",
+ "BOND",
+ "BONDS",
+ "BONE",
+ "BONILLA",
+ "BONNER",
+ "BOOKER",
+ "BOONE",
+ "BOOTH",
+ "BOOTHE",
+ "BORDELON",
+ "BORDEN",
+ "BORDERS",
+ "BOREN",
+ "BORGES",
+ "BORREGO",
+ "BOSS",
+ "BOSTIC",
+ "BOSTICK",
+ "BOSTON",
+ "BOSWELL",
+ "BOTTOMS",
+ "BOUCHARD",
+ "BOUCHER",
+ "BOUDREAU",
+ "BOUDREAUX",
+ "BOUNDS",
+ "BOURGEOIS",
+ "BOURNE",
+ "BOURQUE",
+ "BOWDEN",
+ "BOWEN",
+ "BOWENS",
+ "BOWER",
+ "BOWERS",
+ "BOWIE",
+ "BOWLES",
+ "BOWLIN",
+ "BOWLING",
+ "BOWMAN",
+ "BOWSER",
+ "BOX",
+ "BOYCE",
+ "BOYD",
+ "BOYER",
+ "BOYKIN",
+ "BOYLE",
+ "BOYLES",
+ "BOYNTON",
+ "BOZEMAN",
+ "BRACKEN",
+ "BRACKETT",
+ "BRADBURY",
+ "BRADEN",
+ "BRADFORD",
+ "BRADLEY",
+ "BRADSHAW",
+ "BRADY",
+ "BRAGG",
+ "BRANCH",
+ "BRAND",
+ "BRANDENBURG",
+ "BRANDON",
+ "BRANDT",
+ "BRANHAM",
+ "BRANNON",
+ "BRANSON",
+ "BRANT",
+ "BRANTLEY",
+ "BRASWELL",
+ "BRATCHER",
+ "BRATTON",
+ "BRAUN",
+ "BRAVO",
+ "BRAXTON",
+ "BRAY",
+ "BRAZIL",
+ "BREAUX",
+ "BREEDEN",
+ "BREEDLOVE",
+ "BREEN",
+ "BRENNAN",
+ "BRENNER",
+ "BRENT",
+ "BREWER",
+ "BREWSTER",
+ "BRICE",
+ "BRIDGES",
+ "BRIGGS",
+ "BRIGHT",
+ "BRILEY",
+ "BRILL",
+ "BRIM",
+ "BRINK",
+ "BRINKLEY",
+ "BRINKMAN",
+ "BRINSON",
+ "BRIONES",
+ "BRISCOE",
+ "BRISENO",
+ "BRITO",
+ "BRITT",
+ "BRITTAIN",
+ "BRITTON",
+ "BROADNAX",
+ "BROADWAY",
+ "BROCK",
+ "BROCKMAN",
+ "BRODERICK",
+ "BRODY",
+ "BROGAN",
+ "BRONSON",
+ "BROOKINS",
+ "BROOKS",
+ "BROOME",
+ "BROTHERS",
+ "BROUGHTON",
+ "BROUSSARD",
+ "BROWDER",
+ "BROWER",
+ "BROWN",
+ "BROWNE",
+ "BROWNELL",
+ "BROWNING",
+ "BROWNLEE",
+ "BROYLES",
+ "BRUBAKER",
+ "BRUCE",
+ "BRUMFIELD",
+ "BRUNER",
+ "BRUNNER",
+ "BRUNO",
+ "BRUNS",
+ "BRUNSON",
+ "BRUTON",
+ "BRYAN",
+ "BRYANT",
+ "BRYSON",
+ "BUCHANAN",
+ "BUCHER",
+ "BUCK",
+ "BUCKINGHAM",
+ "BUCKLEY",
+ "BUCKNER",
+ "BUENO",
+ "BUFFINGTON",
+ "BUFORD",
+ "BUI",
+ "BULL",
+ "BULLARD",
+ "BULLOCK",
+ "BUMGARNER",
+ "BUNCH",
+ "BUNDY",
+ "BUNKER",
+ "BUNN",
+ "BUNNELL",
+ "BUNTING",
+ "BURCH",
+ "BURCHETT",
+ "BURCHFIELD",
+ "BURDEN",
+ "BURDETTE",
+ "BURDICK",
+ "BURGE",
+ "BURGER",
+ "BURGESS",
+ "BURGOS",
+ "BURK",
+ "BURKE",
+ "BURKETT",
+ "BURKHART",
+ "BURKHOLDER",
+ "BURKS",
+ "BURLESON",
+ "BURLEY",
+ "BURNETT",
+ "BURNETTE",
+ "BURNEY",
+ "BURNHAM",
+ "BURNS",
+ "BURNSIDE",
+ "BURR",
+ "BURRELL",
+ "BURRIS",
+ "BURROUGHS",
+ "BURROW",
+ "BURROWS",
+ "BURT",
+ "BURTON",
+ "BUSBY",
+ "BUSCH",
+ "BUSH",
+ "BUSS",
+ "BUSSEY",
+ "BUSTAMANTE",
+ "BUSTOS",
+ "BUTCHER",
+ "BUTLER",
+ "BUTTERFIELD",
+ "BUTTON",
+ "BUTTS",
+ "BUXTON",
+ "BYARS",
+ "BYERS",
+ "BYNUM",
+ "BYRD",
+ "BYRNE",
+ "BYRNES",
+ "CABALLERO",
+ "CABAN",
+ "CABLE",
+ "CABRAL",
+ "CABRERA",
+ "CADE",
+ "CADY",
+ "CAGLE",
+ "CAHILL",
+ "CAIN",
+ "CALABRESE",
+ "CALDERON",
+ "CALDWELL",
+ "CALHOUN",
+ "CALKINS",
+ "CALL",
+ "CALLAGHAN",
+ "CALLAHAN",
+ "CALLAWAY",
+ "CALLENDER",
+ "CALLOWAY",
+ "CALVERT",
+ "CALVIN",
+ "CAMACHO",
+ "CAMARILLO",
+ "CAMBELL",
+ "CAMERON",
+ "CAMP",
+ "CAMPBELL",
+ "CAMPOS",
+ "CANADA",
+ "CANADY",
+ "CANALES",
+ "CANDELARIA",
+ "CANFIELD",
+ "CANNON",
+ "CANO",
+ "CANTRELL",
+ "CANTU",
+ "CANTWELL",
+ "CANTY",
+ "CAPPS",
+ "CARABALLO",
+ "CARAWAY",
+ "CARBAJAL",
+ "CARBONE",
+ "CARD",
+ "CARDEN",
+ "CARDENAS",
+ "CARDER",
+ "CARDONA",
+ "CARDOZA",
+ "CARDWELL",
+ "CAREY",
+ "CARL",
+ "CARLIN",
+ "CARLISLE",
+ "CARLOS",
+ "CARLSON",
+ "CARLTON",
+ "CARMAN",
+ "CARMICHAEL",
+ "CARMONA",
+ "CARNAHAN",
+ "CARNES",
+ "CARNEY",
+ "CARO",
+ "CARON",
+ "CARPENTER",
+ "CARR",
+ "CARRANZA",
+ "CARRASCO",
+ "CARRERA",
+ "CARRICO",
+ "CARRIER",
+ "CARRILLO",
+ "CARRINGTON",
+ "CARRION",
+ "CARROLL",
+ "CARSON",
+ "CARSWELL",
+ "CARTER",
+ "CARTWRIGHT",
+ "CARUSO",
+ "CARVALHO",
+ "CARVER",
+ "CARY",
+ "CASAS",
+ "CASE",
+ "CASEY",
+ "CASH",
+ "CASILLAS",
+ "CASKEY",
+ "CASON",
+ "CASPER",
+ "CASS",
+ "CASSELL",
+ "CASSIDY",
+ "CASTANEDA",
+ "CASTEEL",
+ "CASTELLANO",
+ "CASTELLANOS",
+ "CASTILLO",
+ "CASTLE",
+ "CASTLEBERRY",
+ "CASTRO",
+ "CASWELL",
+ "CATALANO",
+ "CATES",
+ "CATHEY",
+ "CATO",
+ "CATRON",
+ "CAUDILL",
+ "CAUDLE",
+ "CAUSEY",
+ "CAVANAUGH",
+ "CAVAZOS",
+ "CAVE",
+ "CECIL",
+ "CENTENO",
+ "CERDA",
+ "CERVANTES",
+ "CHACON",
+ "CHADWICK",
+ "CHAFFIN",
+ "CHALMERS",
+ "CHAMBERLAIN",
+ "CHAMBERLIN",
+ "CHAMBERS",
+ "CHAMBLISS",
+ "CHAMPAGNE",
+ "CHAMPION",
+ "CHAN",
+ "CHANCE",
+ "CHANDLER",
+ "CHANEY",
+ "CHANG",
+ "CHAPA",
+ "CHAPIN",
+ "CHAPMAN",
+ "CHAPPELL",
+ "CHARLES",
+ "CHARLTON",
+ "CHASE",
+ "CHASTAIN",
+ "CHATMAN",
+ "CHAU",
+ "CHAVARRIA",
+ "CHAVES",
+ "CHAVEZ",
+ "CHAVIS",
+ "CHEATHAM",
+ "CHEEK",
+ "CHEN",
+ "CHENEY",
+ "CHENG",
+ "CHERRY",
+ "CHESSER",
+ "CHESTER",
+ "CHESTNUT",
+ "CHEUNG",
+ "CHEW",
+ "CHILD",
+ "CHILDERS",
+ "CHILDRESS",
+ "CHILDS",
+ "CHILTON",
+ "CHIN",
+ "CHISHOLM",
+ "CHISM",
+ "CHISOLM",
+ "CHITWOOD",
+ "CHO",
+ "CHOATE",
+ "CHOI",
+ "CHONG",
+ "CHOW",
+ "CHRISTENSEN",
+ "CHRISTENSON",
+ "CHRISTIAN",
+ "CHRISTIANSEN",
+ "CHRISTIANSON",
+ "CHRISTIE",
+ "CHRISTMAN",
+ "CHRISTMAS",
+ "CHRISTOPHER",
+ "CHRISTY",
+ "CHU",
+ "CHUN",
+ "CHUNG",
+ "CHURCH",
+ "CHURCHILL",
+ "CINTRON",
+ "CISNEROS",
+ "CLANCY",
+ "CLANTON",
+ "CLAPP",
+ "CLARK",
+ "CLARKE",
+ "CLARKSON",
+ "CLARY",
+ "CLAUSEN",
+ "CLAWSON",
+ "CLAY",
+ "CLAYTON",
+ "CLEARY",
+ "CLEGG",
+ "CLEM",
+ "CLEMENS",
+ "CLEMENT",
+ "CLEMENTS",
+ "CLEMMONS",
+ "CLEMONS",
+ "CLEVELAND",
+ "CLEVENGER",
+ "CLICK",
+ "CLIFFORD",
+ "CLIFTON",
+ "CLINE",
+ "CLINTON",
+ "CLOSE",
+ "CLOUD",
+ "CLOUGH",
+ "CLOUTIER",
+ "COATES",
+ "COATS",
+ "COBB",
+ "COBBS",
+ "COBLE",
+ "COBURN",
+ "COCHRAN",
+ "COCHRANE",
+ "COCKRELL",
+ "CODY",
+ "COE",
+ "COFFEY",
+ "COFFIN",
+ "COFFMAN",
+ "COGGINS",
+ "COHEN",
+ "COHN",
+ "COKER",
+ "COLBERT",
+ "COLBURN",
+ "COLBY",
+ "COLE",
+ "COLEMAN",
+ "COLES",
+ "COLEY",
+ "COLLADO",
+ "COLLAZO",
+ "COLLEY",
+ "COLLIER",
+ "COLLINS",
+ "COLON",
+ "COLSON",
+ "COLVIN",
+ "COLWELL",
+ "COMBS",
+ "COMEAUX",
+ "COMER",
+ "COMPTON",
+ "COMSTOCK",
+ "CONAWAY",
+ "CONCEPCION",
+ "CONDON",
+ "CONE",
+ "CONGER",
+ "CONKLIN",
+ "CONLEY",
+ "CONN",
+ "CONNELL",
+ "CONNELLY",
+ "CONNER",
+ "CONNERS",
+ "CONNOLLY",
+ "CONNOR",
+ "CONNORS",
+ "CONOVER",
+ "CONRAD",
+ "CONROY",
+ "CONTE",
+ "CONTI",
+ "CONTRERAS",
+ "CONWAY",
+ "CONYERS",
+ "COOK",
+ "COOKE",
+ "COOKS",
+ "COOKSEY",
+ "COOLEY",
+ "COOMBS",
+ "COON",
+ "COONEY",
+ "COONS",
+ "COOPER",
+ "COPE",
+ "COPELAND",
+ "COPLEY",
+ "COPPOLA",
+ "CORBETT",
+ "CORBIN",
+ "CORBITT",
+ "CORCORAN",
+ "CORDELL",
+ "CORDERO",
+ "CORDOVA",
+ "COREY",
+ "CORLEY",
+ "CORMIER",
+ "CORNELIUS",
+ "CORNELL",
+ "CORNETT",
+ "CORNISH",
+ "CORNWELL",
+ "CORONA",
+ "CORONADO",
+ "CORRAL",
+ "CORREA",
+ "CORREIA",
+ "CORRIGAN",
+ "CORTES",
+ "CORTEZ",
+ "CORWIN",
+ "COSBY",
+ "COSGROVE",
+ "COSTA",
+ "COSTELLO",
+ "COTA",
+ "COTE",
+ "COTHRAN",
+ "COTTER",
+ "COTTON",
+ "COTTRELL",
+ "COUCH",
+ "COUGHLIN",
+ "COULTER",
+ "COUNCIL",
+ "COUNTS",
+ "COURTNEY",
+ "COUSINS",
+ "COUTURE",
+ "COVERT",
+ "COVEY",
+ "COVINGTON",
+ "COWAN",
+ "COWARD",
+ "COWART",
+ "COWELL",
+ "COWLES",
+ "COWLEY",
+ "COX",
+ "COY",
+ "COYLE",
+ "COYNE",
+ "CRABTREE",
+ "CRADDOCK",
+ "CRAFT",
+ "CRAIG",
+ "CRAIN",
+ "CRAMER",
+ "CRANDALL",
+ "CRANE",
+ "CRANFORD",
+ "CRAVEN",
+ "CRAWFORD",
+ "CRAWLEY",
+ "CRAYTON",
+ "CREAMER",
+ "CREECH",
+ "CREEL",
+ "CREIGHTON",
+ "CRENSHAW",
+ "CRESPO",
+ "CREWS",
+ "CRIDER",
+ "CRISP",
+ "CRIST",
+ "CRISWELL",
+ "CRITTENDEN",
+ "CROCKER",
+ "CROCKETT",
+ "CROFT",
+ "CROMER",
+ "CROMWELL",
+ "CRONIN",
+ "CROOK",
+ "CROOKS",
+ "CROSBY",
+ "CROSS",
+ "CROTEAU",
+ "CROUCH",
+ "CROUSE",
+ "CROW",
+ "CROWDER",
+ "CROWE",
+ "CROWELL",
+ "CROWLEY",
+ "CRUM",
+ "CRUMP",
+ "CRUSE",
+ "CRUTCHER",
+ "CRUTCHFIELD",
+ "CRUZ",
+ "CUELLAR",
+ "CUEVAS",
+ "CULBERTSON",
+ "CULLEN",
+ "CULP",
+ "CULPEPPER",
+ "CULVER",
+ "CUMMINGS",
+ "CUMMINS",
+ "CUNNINGHAM",
+ "CUPP",
+ "CURLEY",
+ "CURRAN",
+ "CURRIE",
+ "CURRIER",
+ "CURRY",
+ "CURTIN",
+ "CURTIS",
+ "CUSHMAN",
+ "CUSTER",
+ "CUTLER",
+ "CYR",
+ "DABNEY",
+ "DAHL",
+ "DAIGLE",
+ "DAILEY",
+ "DAILY",
+ "DALE",
+ "DALEY",
+ "DALLAS",
+ "DALTON",
+ "DALY",
+ "DAMICO",
+ "DAMON",
+ "DAMRON",
+ "DANCY",
+ "DANG",
+ "DANGELO",
+ "DANIEL",
+ "DANIELS",
+ "DANIELSON",
+ "DANNER",
+ "DARBY",
+ "DARDEN",
+ "DARLING",
+ "DARNELL",
+ "DASILVA",
+ "DAUGHERTY",
+ "DAUGHTRY",
+ "DAVENPORT",
+ "DAVID",
+ "DAVIDSON",
+ "DAVIES",
+ "DAVILA",
+ "DAVIS",
+ "DAVISON",
+ "DAWKINS",
+ "DAWSON",
+ "DAY",
+ "DAYTON",
+ "DEAL",
+ "DEAN",
+ "DEATON",
+ "DEBERRY",
+ "DECKER",
+ "DEES",
+ "DEHART",
+ "DEJESUS",
+ "DELACRUZ",
+ "DELAGARZA",
+ "DELANEY",
+ "DELAROSA",
+ "DELATORRE",
+ "DELEON",
+ "DELGADILLO",
+ "DELGADO",
+ "DELL",
+ "DELLINGER",
+ "DELOACH",
+ "DELONG",
+ "DELOSSANTOS",
+ "DELUCA",
+ "DELVALLE",
+ "DEMARCO",
+ "DEMERS",
+ "DEMPSEY",
+ "DENHAM",
+ "DENNEY",
+ "DENNING",
+ "DENNIS",
+ "DENNISON",
+ "DENNY",
+ "DENSON",
+ "DENT",
+ "DENTON",
+ "DEROSA",
+ "DERR",
+ "DERRICK",
+ "DESANTIS",
+ "DESIMONE",
+ "DEVINE",
+ "DEVITO",
+ "DEVLIN",
+ "DEVORE",
+ "DEVRIES",
+ "DEW",
+ "DEWEY",
+ "DEWITT",
+ "DEXTER",
+ "DIAL",
+ "DIAMOND",
+ "DIAS",
+ "DIAZ",
+ "DICK",
+ "DICKENS",
+ "DICKERSON",
+ "DICKEY",
+ "DICKINSON",
+ "DICKSON",
+ "DIEHL",
+ "DIETRICH",
+ "DIETZ",
+ "DIGGS",
+ "DILL",
+ "DILLARD",
+ "DILLON",
+ "DINKINS",
+ "DION",
+ "DIX",
+ "DIXON",
+ "DO",
+ "DOAN",
+ "DOBBINS",
+ "DOBBS",
+ "DOBSON",
+ "DOCKERY",
+ "DODD",
+ "DODDS",
+ "DODGE",
+ "DODSON",
+ "DOE",
+ "DOHERTY",
+ "DOLAN",
+ "DOLL",
+ "DOLLAR",
+ "DOMINGO",
+ "DOMINGUEZ",
+ "DOMINQUEZ",
+ "DONAHUE",
+ "DONALD",
+ "DONALDSON",
+ "DONATO",
+ "DONNELL",
+ "DONNELLY",
+ "DONOHUE",
+ "DONOVAN",
+ "DOOLEY",
+ "DOOLITTLE",
+ "DORAN",
+ "DORMAN",
+ "DORN",
+ "DORRIS",
+ "DORSEY",
+ "DORTCH",
+ "DOSS",
+ "DOTSON",
+ "DOTY",
+ "DOUCETTE",
+ "DOUGHERTY",
+ "DOUGHTY",
+ "DOUGLAS",
+ "DOUGLASS",
+ "DOVE",
+ "DOVER",
+ "DOW",
+ "DOWD",
+ "DOWDY",
+ "DOWELL",
+ "DOWLING",
+ "DOWNEY",
+ "DOWNING",
+ "DOWNS",
+ "DOYLE",
+ "DOZIER",
+ "DRAKE",
+ "DRAPER",
+ "DRAYTON",
+ "DREW",
+ "DRISCOLL",
+ "DRIVER",
+ "DRUMMOND",
+ "DRURY",
+ "DUARTE",
+ "DUBE",
+ "DUBOIS",
+ "DUBOSE",
+ "DUCKETT",
+ "DUCKWORTH",
+ "DUDLEY",
+ "DUFF",
+ "DUFFY",
+ "DUGAN",
+ "DUGAS",
+ "DUGGAN",
+ "DUGGER",
+ "DUKE",
+ "DUKES",
+ "DUMAS",
+ "DUMONT",
+ "DUNAWAY",
+ "DUNBAR",
+ "DUNCAN",
+ "DUNHAM",
+ "DUNLAP",
+ "DUNN",
+ "DUNNE",
+ "DUNNING",
+ "DUONG",
+ "DUPONT",
+ "DUPRE",
+ "DUPREE",
+ "DUPUIS",
+ "DURAN",
+ "DURAND",
+ "DURANT",
+ "DURBIN",
+ "DURDEN",
+ "DURHAM",
+ "DURKIN",
+ "DURR",
+ "DUTTON",
+ "DUVAL",
+ "DUVALL",
+ "DWYER",
+ "DYE",
+ "DYER",
+ "DYKES",
+ "DYSON",
+ "EAGLE",
+ "EARL",
+ "EARLE",
+ "EARLEY",
+ "EARLS",
+ "EARLY",
+ "EARNEST",
+ "EASLEY",
+ "EASON",
+ "EAST",
+ "EASTER",
+ "EASTERLING",
+ "EASTMAN",
+ "EASTON",
+ "EATON",
+ "EAVES",
+ "EBERT",
+ "ECHEVARRIA",
+ "ECHOLS",
+ "ECKERT",
+ "EDDY",
+ "EDGAR",
+ "EDGE",
+ "EDMOND",
+ "EDMONDS",
+ "EDMONDSON",
+ "EDWARD",
+ "EDWARDS",
+ "EGAN",
+ "EGGLESTON",
+ "ELAM",
+ "ELDER",
+ "ELDRIDGE",
+ "ELIAS",
+ "ELIZONDO",
+ "ELKINS",
+ "ELLER",
+ "ELLINGTON",
+ "ELLIOT",
+ "ELLIOTT",
+ "ELLIS",
+ "ELLISON",
+ "ELLSWORTH",
+ "ELMORE",
+ "ELROD",
+ "ELSTON",
+ "ELY",
+ "EMANUEL",
+ "EMBRY",
+ "EMERSON",
+ "EMERY",
+ "EMMONS",
+ "ENG",
+ "ENGEL",
+ "ENGLAND",
+ "ENGLE",
+ "ENGLISH",
+ "ENNIS",
+ "ENOS",
+ "ENRIGHT",
+ "ENRIQUEZ",
+ "EPPERSON",
+ "EPPS",
+ "EPSTEIN",
+ "ERDMANN",
+ "ERICKSON",
+ "ERNST",
+ "ERVIN",
+ "ERWIN",
+ "ESCALANTE",
+ "ESCAMILLA",
+ "ESCOBAR",
+ "ESCOBEDO",
+ "ESPARZA",
+ "ESPINAL",
+ "ESPINO",
+ "ESPINOSA",
+ "ESPINOZA",
+ "ESPOSITO",
+ "ESQUIVEL",
+ "ESTEP",
+ "ESTES",
+ "ESTRADA",
+ "ESTRELLA",
+ "ETHERIDGE",
+ "ETHRIDGE",
+ "EUBANKS",
+ "EVANS",
+ "EVERETT",
+ "EVERHART",
+ "EVERS",
+ "EVERSON",
+ "EWING",
+ "EZELL",
+ "FABER",
+ "FABIAN",
+ "FAGAN",
+ "FAHEY",
+ "FAIN",
+ "FAIR",
+ "FAIRBANKS",
+ "FAIRCHILD",
+ "FAIRLEY",
+ "FAISON",
+ "FAJARDO",
+ "FALCON",
+ "FALK",
+ "FALLON",
+ "FALLS",
+ "FANNING",
+ "FARIAS",
+ "FARLEY",
+ "FARMER",
+ "FARNSWORTH",
+ "FARR",
+ "FARRAR",
+ "FARRELL",
+ "FARRINGTON",
+ "FARRIS",
+ "FARROW",
+ "FAULK",
+ "FAULKNER",
+ "FAUST",
+ "FAY",
+ "FEENEY",
+ "FELDER",
+ "FELDMAN",
+ "FELICIANO",
+ "FELIX",
+ "FELLOWS",
+ "FELTON",
+ "FELTS",
+ "FENNELL",
+ "FENNER",
+ "FENTON",
+ "FERGUSON",
+ "FERNANDES",
+ "FERNANDEZ",
+ "FERRARA",
+ "FERRARI",
+ "FERRARO",
+ "FERREIRA",
+ "FERRELL",
+ "FERRER",
+ "FERRIS",
+ "FERRY",
+ "FIELD",
+ "FIELDER",
+ "FIELDS",
+ "FIERRO",
+ "FIFE",
+ "FIGUEROA",
+ "FINCH",
+ "FINCHER",
+ "FINDLEY",
+ "FINE",
+ "FINK",
+ "FINLEY",
+ "FINN",
+ "FINNEGAN",
+ "FINNEY",
+ "FIORE",
+ "FISCHER",
+ "FISH",
+ "FISHER",
+ "FISHMAN",
+ "FISK",
+ "FITCH",
+ "FITE",
+ "FITTS",
+ "FITZGERALD",
+ "FITZPATRICK",
+ "FITZSIMMONS",
+ "FLAGG",
+ "FLAHERTY",
+ "FLANAGAN",
+ "FLANDERS",
+ "FLANIGAN",
+ "FLANNERY",
+ "FLECK",
+ "FLEMING",
+ "FLEMMING",
+ "FLETCHER",
+ "FLINT",
+ "FLOOD",
+ "FLORA",
+ "FLORENCE",
+ "FLORES",
+ "FLOREZ",
+ "FLOURNOY",
+ "FLOWERS",
+ "FLOYD",
+ "FLYNN",
+ "FOGARTY",
+ "FOGG",
+ "FOGLE",
+ "FOLEY",
+ "FOLSE",
+ "FOLSOM",
+ "FOLTZ",
+ "FONG",
+ "FONSECA",
+ "FONTAINE",
+ "FONTENOT",
+ "FOOTE",
+ "FORBES",
+ "FORD",
+ "FOREMAN",
+ "FOREST",
+ "FORET",
+ "FORMAN",
+ "FORNEY",
+ "FORREST",
+ "FORRESTER",
+ "FORSTER",
+ "FORSYTH",
+ "FORSYTHE",
+ "FORT",
+ "FORTE",
+ "FORTENBERRY",
+ "FORTIER",
+ "FORTIN",
+ "FORTNER",
+ "FORTUNE",
+ "FOSS",
+ "FOSTER",
+ "FOUNTAIN",
+ "FOURNIER",
+ "FOUST",
+ "FOWLER",
+ "FOX",
+ "FOY",
+ "FRALEY",
+ "FRAME",
+ "FRANCE",
+ "FRANCIS",
+ "FRANCISCO",
+ "FRANCO",
+ "FRANCOIS",
+ "FRANK",
+ "FRANKLIN",
+ "FRANKS",
+ "FRANTZ",
+ "FRANZ",
+ "FRASER",
+ "FRASIER",
+ "FRAZER",
+ "FRAZIER",
+ "FREDERICK",
+ "FREDERICKS",
+ "FREDRICK",
+ "FREDRICKSON",
+ "FREE",
+ "FREED",
+ "FREEDMAN",
+ "FREEMAN",
+ "FREESE",
+ "FREITAS",
+ "FRENCH",
+ "FREUND",
+ "FREY",
+ "FRIAS",
+ "FRICK",
+ "FRIEDMAN",
+ "FRIEND",
+ "FRIERSON",
+ "FRIES",
+ "FRITZ",
+ "FRIZZELL",
+ "FROST",
+ "FRY",
+ "FRYE",
+ "FRYER",
+ "FUCHS",
+ "FUENTES",
+ "FUGATE",
+ "FULCHER",
+ "FULLER",
+ "FULLERTON",
+ "FULMER",
+ "FULTON",
+ "FULTZ",
+ "FUNDERBURK",
+ "FUNK",
+ "FUQUA",
+ "FURMAN",
+ "FURR",
+ "FUSCO",
+ "GABLE",
+ "GABRIEL",
+ "GADDIS",
+ "GADDY",
+ "GAFFNEY",
+ "GAGE",
+ "GAGNE",
+ "GAGNON",
+ "GAINES",
+ "GAINEY",
+ "GAITHER",
+ "GALARZA",
+ "GALBRAITH",
+ "GALE",
+ "GALINDO",
+ "GALLAGHER",
+ "GALLANT",
+ "GALLARDO",
+ "GALLEGOS",
+ "GALLO",
+ "GALLOWAY",
+ "GALVAN",
+ "GALVEZ",
+ "GALVIN",
+ "GAMBLE",
+ "GAMBOA",
+ "GAMEZ",
+ "GANDY",
+ "GANN",
+ "GANNON",
+ "GANT",
+ "GANTT",
+ "GARAY",
+ "GARBER",
+ "GARCIA",
+ "GARDINER",
+ "GARDNER",
+ "GARLAND",
+ "GARMON",
+ "GARNER",
+ "GARNETT",
+ "GARRETT",
+ "GARRIS",
+ "GARRISON",
+ "GARVEY",
+ "GARVIN",
+ "GARY",
+ "GARZA",
+ "GASKIN",
+ "GASKINS",
+ "GASS",
+ "GASTON",
+ "GATES",
+ "GATEWOOD",
+ "GATLIN",
+ "GAULT",
+ "GAUTHIER",
+ "GAVIN",
+ "GAY",
+ "GAYLORD",
+ "GEARY",
+ "GEE",
+ "GEER",
+ "GEIGER",
+ "GENTILE",
+ "GENTRY",
+ "GEORGE",
+ "GERALD",
+ "GERARD",
+ "GERBER",
+ "GERMAN",
+ "GETZ",
+ "GIBBONS",
+ "GIBBS",
+ "GIBSON",
+ "GIFFORD",
+ "GIL",
+ "GILBERT",
+ "GILBERTSON",
+ "GILBREATH",
+ "GILCHRIST",
+ "GILES",
+ "GILL",
+ "GILLEN",
+ "GILLESPIE",
+ "GILLETTE",
+ "GILLEY",
+ "GILLIAM",
+ "GILLILAND",
+ "GILLIS",
+ "GILMAN",
+ "GILMER",
+ "GILMORE",
+ "GILSON",
+ "GINN",
+ "GIORDANO",
+ "GIPSON",
+ "GIRARD",
+ "GIRON",
+ "GIROUX",
+ "GIST",
+ "GIVENS",
+ "GLADDEN",
+ "GLADNEY",
+ "GLASER",
+ "GLASGOW",
+ "GLASS",
+ "GLAZE",
+ "GLEASON",
+ "GLENN",
+ "GLOVER",
+ "GLYNN",
+ "GOAD",
+ "GOBLE",
+ "GODDARD",
+ "GODFREY",
+ "GODINEZ",
+ "GODWIN",
+ "GOEBEL",
+ "GOETZ",
+ "GOFF",
+ "GOFORTH",
+ "GOINS",
+ "GOLD",
+ "GOLDBERG",
+ "GOLDEN",
+ "GOLDMAN",
+ "GOLDSMITH",
+ "GOLDSTEIN",
+ "GOMES",
+ "GOMEZ",
+ "GONSALVES",
+ "GONZALES",
+ "GONZALEZ",
+ "GOOCH",
+ "GOOD",
+ "GOODE",
+ "GOODEN",
+ "GOODIN",
+ "GOODING",
+ "GOODMAN",
+ "GOODRICH",
+ "GOODSON",
+ "GOODWIN",
+ "GOOLSBY",
+ "GORDON",
+ "GORE",
+ "GORHAM",
+ "GORMAN",
+ "GOSS",
+ "GOSSETT",
+ "GOUGH",
+ "GOULD",
+ "GOULET",
+ "GRACE",
+ "GRACIA",
+ "GRADY",
+ "GRAF",
+ "GRAFF",
+ "GRAGG",
+ "GRAHAM",
+ "GRANADOS",
+ "GRANGER",
+ "GRANT",
+ "GRANTHAM",
+ "GRAVES",
+ "GRAY",
+ "GRAYSON",
+ "GREATHOUSE",
+ "GRECO",
+ "GREEN",
+ "GREENBERG",
+ "GREENE",
+ "GREENFIELD",
+ "GREENLEE",
+ "GREENWOOD",
+ "GREER",
+ "GREGG",
+ "GREGORY",
+ "GREINER",
+ "GRENIER",
+ "GRESHAM",
+ "GREY",
+ "GRICE",
+ "GRIDER",
+ "GRIER",
+ "GRIFFIN",
+ "GRIFFIS",
+ "GRIFFITH",
+ "GRIFFITHS",
+ "GRIGGS",
+ "GRIGSBY",
+ "GRIMES",
+ "GRIMM",
+ "GRISHAM",
+ "GRISSOM",
+ "GRISWOLD",
+ "GROCE",
+ "GROGAN",
+ "GROOMS",
+ "GROSS",
+ "GROSSMAN",
+ "GROVE",
+ "GROVER",
+ "GROVES",
+ "GRUBB",
+ "GRUBBS",
+ "GRUBER",
+ "GUAJARDO",
+ "GUENTHER",
+ "GUERIN",
+ "GUERRA",
+ "GUERRERO",
+ "GUESS",
+ "GUEST",
+ "GUEVARA",
+ "GUFFEY",
+ "GUIDRY",
+ "GUILLEN",
+ "GUILLORY",
+ "GUINN",
+ "GULLEY",
+ "GUNDERSON",
+ "GUNN",
+ "GUNTER",
+ "GUNTHER",
+ "GURLEY",
+ "GUSTAFSON",
+ "GUTHRIE",
+ "GUTIERREZ",
+ "GUY",
+ "GUYTON",
+ "GUZMAN",
+ "HA",
+ "HAAG",
+ "HAAS",
+ "HAASE",
+ "HACKER",
+ "HACKETT",
+ "HACKNEY",
+ "HADDEN",
+ "HADLEY",
+ "HAGAN",
+ "HAGEN",
+ "HAGER",
+ "HAGGARD",
+ "HAGGERTY",
+ "HAHN",
+ "HAIGHT",
+ "HAILEY",
+ "HAINES",
+ "HAIR",
+ "HAIRSTON",
+ "HALCOMB",
+ "HALE",
+ "HALES",
+ "HALEY",
+ "HALL",
+ "HALLER",
+ "HALLMAN",
+ "HALSEY",
+ "HALSTEAD",
+ "HALVERSON",
+ "HAM",
+ "HAMBLIN",
+ "HAMBY",
+ "HAMEL",
+ "HAMER",
+ "HAMILTON",
+ "HAMLIN",
+ "HAMM",
+ "HAMMER",
+ "HAMMETT",
+ "HAMMOND",
+ "HAMMONDS",
+ "HAMMONS",
+ "HAMPTON",
+ "HAMRICK",
+ "HAN",
+ "HANCOCK",
+ "HAND",
+ "HANDLEY",
+ "HANDY",
+ "HANES",
+ "HANEY",
+ "HANKINS",
+ "HANKS",
+ "HANLEY",
+ "HANLON",
+ "HANNA",
+ "HANNAH",
+ "HANNAN",
+ "HANNON",
+ "HANSEN",
+ "HANSON",
+ "HARBIN",
+ "HARDAWAY",
+ "HARDEE",
+ "HARDEN",
+ "HARDER",
+ "HARDESTY",
+ "HARDIN",
+ "HARDING",
+ "HARDISON",
+ "HARDMAN",
+ "HARDWICK",
+ "HARDY",
+ "HARE",
+ "HARGIS",
+ "HARGRAVE",
+ "HARGROVE",
+ "HARKINS",
+ "HARLAN",
+ "HARLEY",
+ "HARLOW",
+ "HARMAN",
+ "HARMON",
+ "HARMS",
+ "HARNESS",
+ "HARP",
+ "HARPER",
+ "HARR",
+ "HARRELL",
+ "HARRINGTON",
+ "HARRIS",
+ "HARRISON",
+ "HARRY",
+ "HART",
+ "HARTER",
+ "HARTLEY",
+ "HARTMAN",
+ "HARTMANN",
+ "HARTWELL",
+ "HARVEY",
+ "HARWELL",
+ "HARWOOD",
+ "HASKELL",
+ "HASKINS",
+ "HASS",
+ "HASSELL",
+ "HASTINGS",
+ "HATCH",
+ "HATCHER",
+ "HATCHETT",
+ "HATFIELD",
+ "HATHAWAY",
+ "HATLEY",
+ "HATTON",
+ "HAUGEN",
+ "HAUSER",
+ "HAVENS",
+ "HAWES",
+ "HAWK",
+ "HAWKINS",
+ "HAWKS",
+ "HAWLEY",
+ "HAWTHORNE",
+ "HAY",
+ "HAYDEN",
+ "HAYES",
+ "HAYNES",
+ "HAYS",
+ "HAYWARD",
+ "HAYWOOD",
+ "HAZEL",
+ "HEAD",
+ "HEADLEY",
+ "HEADRICK",
+ "HEALEY",
+ "HEALY",
+ "HEARD",
+ "HEARN",
+ "HEATH",
+ "HEATON",
+ "HEBERT",
+ "HECK",
+ "HECKMAN",
+ "HEDGES",
+ "HEDRICK",
+ "HEFFNER",
+ "HEFLIN",
+ "HEFNER",
+ "HEIM",
+ "HEIN",
+ "HEINRICH",
+ "HEINZ",
+ "HELD",
+ "HELLER",
+ "HELM",
+ "HELMS",
+ "HELTON",
+ "HEMBREE",
+ "HEMPHILL",
+ "HENDERSON",
+ "HENDON",
+ "HENDRICK",
+ "HENDRICKS",
+ "HENDRICKSON",
+ "HENDRIX",
+ "HENKE",
+ "HENLEY",
+ "HENNESSEY",
+ "HENNING",
+ "HENRY",
+ "HENSLEY",
+ "HENSON",
+ "HER",
+ "HERBERT",
+ "HEREDIA",
+ "HERMAN",
+ "HERMANN",
+ "HERNANDEZ",
+ "HERNDON",
+ "HERR",
+ "HERRERA",
+ "HERRICK",
+ "HERRIN",
+ "HERRING",
+ "HERRINGTON",
+ "HERRMANN",
+ "HERRON",
+ "HERSHBERGER",
+ "HERZOG",
+ "HESS",
+ "HESTER",
+ "HEWITT",
+ "HEYWARD",
+ "HIATT",
+ "HIBBARD",
+ "HICKEY",
+ "HICKMAN",
+ "HICKS",
+ "HICKSON",
+ "HIDALGO",
+ "HIGDON",
+ "HIGGINBOTHAM",
+ "HIGGINS",
+ "HIGGS",
+ "HIGH",
+ "HIGHTOWER",
+ "HILDEBRAND",
+ "HILDRETH",
+ "HILL",
+ "HILLARD",
+ "HILLER",
+ "HILLIARD",
+ "HILLMAN",
+ "HILLS",
+ "HILTON",
+ "HIMES",
+ "HINDMAN",
+ "HINDS",
+ "HINES",
+ "HINKLE",
+ "HINOJOSA",
+ "HINSON",
+ "HINTON",
+ "HIRSCH",
+ "HITCHCOCK",
+ "HITE",
+ "HITT",
+ "HO",
+ "HOANG",
+ "HOBBS",
+ "HOBSON",
+ "HODGE",
+ "HODGES",
+ "HODGSON",
+ "HOFF",
+ "HOFFMAN",
+ "HOFFMANN",
+ "HOGAN",
+ "HOGG",
+ "HOGUE",
+ "HOKE",
+ "HOLBROOK",
+ "HOLCOMB",
+ "HOLCOMBE",
+ "HOLDEN",
+ "HOLDER",
+ "HOLGUIN",
+ "HOLIDAY",
+ "HOLLAND",
+ "HOLLENBECK",
+ "HOLLEY",
+ "HOLLIDAY",
+ "HOLLINGSWORTH",
+ "HOLLINS",
+ "HOLLIS",
+ "HOLLOMAN",
+ "HOLLOWAY",
+ "HOLLY",
+ "HOLM",
+ "HOLMAN",
+ "HOLMES",
+ "HOLT",
+ "HOLTON",
+ "HOLTZ",
+ "HOMAN",
+ "HOMER",
+ "HONEYCUTT",
+ "HONG",
+ "HOOD",
+ "HOOK",
+ "HOOKER",
+ "HOOKS",
+ "HOOPER",
+ "HOOVER",
+ "HOPE",
+ "HOPKINS",
+ "HOPPE",
+ "HOPPER",
+ "HOPSON",
+ "HORAN",
+ "HORN",
+ "HORNE",
+ "HORNER",
+ "HORNSBY",
+ "HOROWITZ",
+ "HORSLEY",
+ "HORTON",
+ "HORVATH",
+ "HOSKINS",
+ "HOSTETLER",
+ "HOUCK",
+ "HOUGH",
+ "HOUGHTON",
+ "HOULE",
+ "HOUSE",
+ "HOUSER",
+ "HOUSTON",
+ "HOWARD",
+ "HOWE",
+ "HOWELL",
+ "HOWERTON",
+ "HOWES",
+ "HOWLAND",
+ "HOY",
+ "HOYLE",
+ "HOYT",
+ "HSU",
+ "HUANG",
+ "HUBBARD",
+ "HUBER",
+ "HUBERT",
+ "HUDDLESTON",
+ "HUDGENS",
+ "HUDGINS",
+ "HUDSON",
+ "HUERTA",
+ "HUEY",
+ "HUFF",
+ "HUFFMAN",
+ "HUGGINS",
+ "HUGHES",
+ "HUGHEY",
+ "HULL",
+ "HULSEY",
+ "HUMES",
+ "HUMMEL",
+ "HUMPHREY",
+ "HUMPHREYS",
+ "HUMPHRIES",
+ "HUNDLEY",
+ "HUNT",
+ "HUNTER",
+ "HUNTINGTON",
+ "HUNTLEY",
+ "HURD",
+ "HURLEY",
+ "HURST",
+ "HURT",
+ "HURTADO",
+ "HUSKEY",
+ "HUSSEY",
+ "HUSTON",
+ "HUTCHENS",
+ "HUTCHERSON",
+ "HUTCHESON",
+ "HUTCHINGS",
+ "HUTCHINS",
+ "HUTCHINSON",
+ "HUTCHISON",
+ "HUTSON",
+ "HUTTO",
+ "HUTTON",
+ "HUYNH",
+ "HWANG",
+ "HYATT",
+ "HYDE",
+ "HYLAND",
+ "HYLTON",
+ "HYMAN",
+ "HYNES",
+ "IBARRA",
+ "INGLE",
+ "INGRAHAM",
+ "INGRAM",
+ "INMAN",
+ "IRBY",
+ "IRELAND",
+ "IRISH",
+ "IRIZARRY",
+ "IRONS",
+ "IRVIN",
+ "IRVINE",
+ "IRVING",
+ "IRWIN",
+ "ISAAC",
+ "ISAACS",
+ "ISAACSON",
+ "ISBELL",
+ "ISOM",
+ "ISON",
+ "ISRAEL",
+ "IVERSON",
+ "IVES",
+ "IVEY",
+ "IVORY",
+ "IVY",
+ "JACK",
+ "JACKMAN",
+ "JACKS",
+ "JACKSON",
+ "JACOB",
+ "JACOBS",
+ "JACOBSEN",
+ "JACOBSON",
+ "JACOBY",
+ "JACQUES",
+ "JAEGER",
+ "JAMES",
+ "JAMESON",
+ "JAMISON",
+ "JANES",
+ "JANKOWSKI",
+ "JANSEN",
+ "JANSSEN",
+ "JARAMILLO",
+ "JARRELL",
+ "JARRETT",
+ "JARVIS",
+ "JASPER",
+ "JAY",
+ "JAYNES",
+ "JEAN",
+ "JEFFERIES",
+ "JEFFERS",
+ "JEFFERSON",
+ "JEFFERY",
+ "JEFFREY",
+ "JEFFRIES",
+ "JENKINS",
+ "JENNINGS",
+ "JENSEN",
+ "JENSON",
+ "JERNIGAN",
+ "JESSUP",
+ "JETER",
+ "JETT",
+ "JEWELL",
+ "JEWETT",
+ "JIMENEZ",
+ "JOBE",
+ "JOE",
+ "JOHANSEN",
+ "JOHN",
+ "JOHNS",
+ "JOHNSON",
+ "JOHNSTON",
+ "JOINER",
+ "JOLLEY",
+ "JOLLY",
+ "JONES",
+ "JORDAN",
+ "JORDON",
+ "JORGENSEN",
+ "JORGENSON",
+ "JOSE",
+ "JOSEPH",
+ "JOY",
+ "JOYCE",
+ "JOYNER",
+ "JUAREZ",
+ "JUDD",
+ "JUDE",
+ "JUDGE",
+ "JUDKINS",
+ "JULIAN",
+ "JUNG",
+ "JUSTICE",
+ "JUSTUS",
+ "KAHN",
+ "KAISER",
+ "KAMINSKI",
+ "KANE",
+ "KANG",
+ "KAPLAN",
+ "KARR",
+ "KASPER",
+ "KATZ",
+ "KAUFFMAN",
+ "KAUFMAN",
+ "KAY",
+ "KAYE",
+ "KEANE",
+ "KEARNEY",
+ "KEARNS",
+ "KEATING",
+ "KEATON",
+ "KECK",
+ "KEE",
+ "KEEFE",
+ "KEEFER",
+ "KEEGAN",
+ "KEEL",
+ "KEELER",
+ "KEELING",
+ "KEEN",
+ "KEENAN",
+ "KEENE",
+ "KEENER",
+ "KEENEY",
+ "KEETON",
+ "KEITH",
+ "KELLEHER",
+ "KELLER",
+ "KELLEY",
+ "KELLOGG",
+ "KELLUM",
+ "KELLY",
+ "KELSEY",
+ "KELSO",
+ "KEMP",
+ "KEMPER",
+ "KENDALL",
+ "KENDRICK",
+ "KENNEDY",
+ "KENNEY",
+ "KENNY",
+ "KENT",
+ "KENYON",
+ "KERN",
+ "KERNS",
+ "KERR",
+ "KESSLER",
+ "KETCHUM",
+ "KEY",
+ "KEYES",
+ "KEYS",
+ "KEYSER",
+ "KHAN",
+ "KIDD",
+ "KIDWELL",
+ "KIEFER",
+ "KILGORE",
+ "KILLIAN",
+ "KILPATRICK",
+ "KIM",
+ "KIMBALL",
+ "KIMBLE",
+ "KIMBRELL",
+ "KIMBROUGH",
+ "KIMMEL",
+ "KINARD",
+ "KINCAID",
+ "KINDER",
+ "KING",
+ "KINGSLEY",
+ "KINNEY",
+ "KINSEY",
+ "KIRBY",
+ "KIRCHNER",
+ "KIRK",
+ "KIRKLAND",
+ "KIRKPATRICK",
+ "KIRKWOOD",
+ "KISER",
+ "KISH",
+ "KITCHEN",
+ "KITCHENS",
+ "KLEIN",
+ "KLINE",
+ "KLINGER",
+ "KNAPP",
+ "KNIGHT",
+ "KNOLL",
+ "KNOTT",
+ "KNOTTS",
+ "KNOWLES",
+ "KNOWLTON",
+ "KNOX",
+ "KNUDSEN",
+ "KNUDSON",
+ "KNUTSON",
+ "KOCH",
+ "KOEHLER",
+ "KOENIG",
+ "KOHL",
+ "KOHLER",
+ "KOHN",
+ "KOLB",
+ "KONG",
+ "KOONCE",
+ "KOONTZ",
+ "KOPP",
+ "KOVACH",
+ "KOWALSKI",
+ "KOZAK",
+ "KOZLOWSKI",
+ "KRAFT",
+ "KRAMER",
+ "KRAUS",
+ "KRAUSE",
+ "KRAUSS",
+ "KREBS",
+ "KRIEGER",
+ "KROLL",
+ "KRUEGER",
+ "KRUG",
+ "KRUGER",
+ "KRUSE",
+ "KUHN",
+ "KUNKEL",
+ "KUNTZ",
+ "KUNZ",
+ "KURTZ",
+ "KUYKENDALL",
+ "KYLE",
+ "LABBE",
+ "LABELLE",
+ "LACEY",
+ "LACHANCE",
+ "LACKEY",
+ "LACROIX",
+ "LACY",
+ "LADD",
+ "LADNER",
+ "LAFFERTY",
+ "LAFLAMME",
+ "LAFLEUR",
+ "LAI",
+ "LAIRD",
+ "LAKE",
+ "LAM",
+ "LAMAR",
+ "LAMB",
+ "LAMBERT",
+ "LAMM",
+ "LANCASTER",
+ "LANCE",
+ "LAND",
+ "LANDERS",
+ "LANDIS",
+ "LANDON",
+ "LANDRUM",
+ "LANDRY",
+ "LANE",
+ "LANEY",
+ "LANG",
+ "LANGDON",
+ "LANGE",
+ "LANGER",
+ "LANGFORD",
+ "LANGLEY",
+ "LANGLOIS",
+ "LANGSTON",
+ "LANHAM",
+ "LANIER",
+ "LANKFORD",
+ "LANNING",
+ "LANTZ",
+ "LAPLANTE",
+ "LAPOINTE",
+ "LAPORTE",
+ "LARA",
+ "LARGE",
+ "LARKIN",
+ "LAROCHE",
+ "LAROSE",
+ "LARRY",
+ "LARSEN",
+ "LARSON",
+ "LARUE",
+ "LASH",
+ "LASHLEY",
+ "LASSITER",
+ "LASTER",
+ "LATHAM",
+ "LATIMER",
+ "LATTIMORE",
+ "LAU",
+ "LAUER",
+ "LAUGHLIN",
+ "LAVENDER",
+ "LAVIGNE",
+ "LAVOIE",
+ "LAW",
+ "LAWHORN",
+ "LAWLER",
+ "LAWLESS",
+ "LAWRENCE",
+ "LAWS",
+ "LAWSON",
+ "LAWTON",
+ "LAY",
+ "LAYMAN",
+ "LAYNE",
+ "LAYTON",
+ "LE",
+ "LEA",
+ "LEACH",
+ "LEAHY",
+ "LEAK",
+ "LEAKE",
+ "LEAL",
+ "LEAR",
+ "LEARY",
+ "LEAVITT",
+ "LEBLANC",
+ "LEBRON",
+ "LECLAIR",
+ "LEDBETTER",
+ "LEDESMA",
+ "LEDFORD",
+ "LEDOUX",
+ "LEE",
+ "LEEPER",
+ "LEES",
+ "LEFEBVRE",
+ "LEGER",
+ "LEGG",
+ "LEGGETT",
+ "LEHMAN",
+ "LEHMANN",
+ "LEIGH",
+ "LEIGHTON",
+ "LEMASTER",
+ "LEMAY",
+ "LEMIEUX",
+ "LEMKE",
+ "LEMMON",
+ "LEMON",
+ "LEMONS",
+ "LEMUS",
+ "LENNON",
+ "LENTZ",
+ "LENZ",
+ "LEON",
+ "LEONARD",
+ "LEONE",
+ "LERMA",
+ "LERNER",
+ "LEROY",
+ "LESLIE",
+ "LESSARD",
+ "LESTER",
+ "LEUNG",
+ "LEVESQUE",
+ "LEVI",
+ "LEVIN",
+ "LEVINE",
+ "LEVY",
+ "LEW",
+ "LEWANDOWSKI",
+ "LEWIS",
+ "LEYVA",
+ "LI",
+ "LIBBY",
+ "LIDDELL",
+ "LIEBERMAN",
+ "LIGHT",
+ "LIGHTFOOT",
+ "LIGHTNER",
+ "LIGON",
+ "LILES",
+ "LILLEY",
+ "LILLY",
+ "LIM",
+ "LIMA",
+ "LIMON",
+ "LIN",
+ "LINARES",
+ "LINCOLN",
+ "LIND",
+ "LINDBERG",
+ "LINDER",
+ "LINDGREN",
+ "LINDLEY",
+ "LINDQUIST",
+ "LINDSAY",
+ "LINDSEY",
+ "LINDSTROM",
+ "LINK",
+ "LINKOUS",
+ "LINN",
+ "LINTON",
+ "LINVILLE",
+ "LIPSCOMB",
+ "LIRA",
+ "LISTER",
+ "LITTLE",
+ "LITTLEFIELD",
+ "LITTLEJOHN",
+ "LITTLETON",
+ "LIU",
+ "LIVELY",
+ "LIVINGSTON",
+ "LLOYD",
+ "LO",
+ "LOCKE",
+ "LOCKETT",
+ "LOCKHART",
+ "LOCKLEAR",
+ "LOCKWOOD",
+ "LOERA",
+ "LOFTIN",
+ "LOFTIS",
+ "LOFTON",
+ "LOGAN",
+ "LOGSDON",
+ "LOGUE",
+ "LOMAX",
+ "LOMBARD",
+ "LOMBARDI",
+ "LOMBARDO",
+ "LONDON",
+ "LONG",
+ "LONGO",
+ "LONGORIA",
+ "LOOMIS",
+ "LOONEY",
+ "LOPER",
+ "LOPES",
+ "LOPEZ",
+ "LORD",
+ "LORENZ",
+ "LORENZO",
+ "LOTT",
+ "LOUIS",
+ "LOVE",
+ "LOVEJOY",
+ "LOVELACE",
+ "LOVELESS",
+ "LOVELL",
+ "LOVETT",
+ "LOVING",
+ "LOW",
+ "LOWE",
+ "LOWELL",
+ "LOWERY",
+ "LOWMAN",
+ "LOWRY",
+ "LOY",
+ "LOYA",
+ "LOYD",
+ "LOZANO",
+ "LU",
+ "LUCAS",
+ "LUCE",
+ "LUCERO",
+ "LUCIANO",
+ "LUCKETT",
+ "LUDWIG",
+ "LUGO",
+ "LUIS",
+ "LUJAN",
+ "LUKE",
+ "LUMPKIN",
+ "LUNA",
+ "LUND",
+ "LUNDBERG",
+ "LUNDY",
+ "LUNSFORD",
+ "LUONG",
+ "LUSK",
+ "LUSTER",
+ "LUTHER",
+ "LUTTRELL",
+ "LUTZ",
+ "LY",
+ "LYLE",
+ "LYLES",
+ "LYMAN",
+ "LYNCH",
+ "LYNN",
+ "LYON",
+ "LYONS",
+ "LYTLE",
+ "MA",
+ "MAAS",
+ "MABE",
+ "MABRY",
+ "MACDONALD",
+ "MACE",
+ "MACHADO",
+ "MACIAS",
+ "MACK",
+ "MACKAY",
+ "MACKENZIE",
+ "MACKEY",
+ "MACKIE",
+ "MACKLIN",
+ "MACLEAN",
+ "MACLEOD",
+ "MACON",
+ "MADDEN",
+ "MADDOX",
+ "MADERA",
+ "MADISON",
+ "MADRID",
+ "MADRIGAL",
+ "MADSEN",
+ "MAES",
+ "MAESTAS",
+ "MAGANA",
+ "MAGEE",
+ "MAGGARD",
+ "MAGNUSON",
+ "MAGUIRE",
+ "MAHAFFEY",
+ "MAHAN",
+ "MAHER",
+ "MAHON",
+ "MAHONEY",
+ "MAIER",
+ "MAIN",
+ "MAJOR",
+ "MAJORS",
+ "MAKI",
+ "MALCOLM",
+ "MALDONADO",
+ "MALLEY",
+ "MALLORY",
+ "MALLOY",
+ "MALONE",
+ "MALONEY",
+ "MANCINI",
+ "MANCUSO",
+ "MANESS",
+ "MANGUM",
+ "MANLEY",
+ "MANN",
+ "MANNING",
+ "MANNS",
+ "MANSFIELD",
+ "MANSON",
+ "MANUEL",
+ "MANZO",
+ "MAPLE",
+ "MAPLES",
+ "MARBLE",
+ "MARCH",
+ "MARCHAND",
+ "MARCOTTE",
+ "MARCUM",
+ "MARCUS",
+ "MARES",
+ "MARIN",
+ "MARINO",
+ "MARION",
+ "MARK",
+ "MARKHAM",
+ "MARKLEY",
+ "MARKS",
+ "MARLER",
+ "MARLOW",
+ "MARLOWE",
+ "MARQUEZ",
+ "MARQUIS",
+ "MARR",
+ "MARRERO",
+ "MARROQUIN",
+ "MARSH",
+ "MARSHALL",
+ "MARTEL",
+ "MARTELL",
+ "MARTENS",
+ "MARTIN",
+ "MARTINDALE",
+ "MARTINEZ",
+ "MARTINO",
+ "MARTINS",
+ "MARTINSON",
+ "MARTZ",
+ "MARVIN",
+ "MARX",
+ "MASON",
+ "MASSEY",
+ "MASSIE",
+ "MAST",
+ "MASTERS",
+ "MASTERSON",
+ "MATA",
+ "MATHENY",
+ "MATHESON",
+ "MATHEWS",
+ "MATHIAS",
+ "MATHIS",
+ "MATLOCK",
+ "MATNEY",
+ "MATOS",
+ "MATSON",
+ "MATTESON",
+ "MATTHEW",
+ "MATTHEWS",
+ "MATTINGLY",
+ "MATTISON",
+ "MATTOS",
+ "MATTOX",
+ "MATTSON",
+ "MAULDIN",
+ "MAUPIN",
+ "MAURER",
+ "MAURO",
+ "MAXEY",
+ "MAXFIELD",
+ "MAXWELL",
+ "MAY",
+ "MAYBERRY",
+ "MAYER",
+ "MAYERS",
+ "MAYES",
+ "MAYFIELD",
+ "MAYHEW",
+ "MAYNARD",
+ "MAYO",
+ "MAYS",
+ "MAZZA",
+ "MCADAMS",
+ "MCAFEE",
+ "MCALISTER",
+ "MCALLISTER",
+ "MCARTHUR",
+ "MCBEE",
+ "MCBRIDE",
+ "MCCABE",
+ "MCCAFFREY",
+ "MCCAIN",
+ "MCCALL",
+ "MCCALLISTER",
+ "MCCALLUM",
+ "MCCANN",
+ "MCCANTS",
+ "MCCARTER",
+ "MCCARTHY",
+ "MCCARTNEY",
+ "MCCARTY",
+ "MCCASKILL",
+ "MCCAULEY",
+ "MCCLAIN",
+ "MCCLANAHAN",
+ "MCCLARY",
+ "MCCLEARY",
+ "MCCLELLAN",
+ "MCCLELLAND",
+ "MCCLENDON",
+ "MCCLINTOCK",
+ "MCCLINTON",
+ "MCCLOSKEY",
+ "MCCLOUD",
+ "MCCLUNG",
+ "MCCLURE",
+ "MCCOLLUM",
+ "MCCOMBS",
+ "MCCONNELL",
+ "MCCOOL",
+ "MCCORD",
+ "MCCORKLE",
+ "MCCORMACK",
+ "MCCORMICK",
+ "MCCOY",
+ "MCCRACKEN",
+ "MCCRARY",
+ "MCCRAY",
+ "MCCREARY",
+ "MCCUE",
+ "MCCULLOCH",
+ "MCCULLOUGH",
+ "MCCUNE",
+ "MCCURDY",
+ "MCCURRY",
+ "MCCUTCHEON",
+ "MCDADE",
+ "MCDANIEL",
+ "MCDANIELS",
+ "MCDERMOTT",
+ "MCDONALD",
+ "MCDONNELL",
+ "MCDONOUGH",
+ "MCDOUGAL",
+ "MCDOUGALL",
+ "MCDOWELL",
+ "MCDUFFIE",
+ "MCELROY",
+ "MCEWEN",
+ "MCFADDEN",
+ "MCFALL",
+ "MCFARLAND",
+ "MCFARLANE",
+ "MCGEE",
+ "MCGEHEE",
+ "MCGHEE",
+ "MCGILL",
+ "MCGINNIS",
+ "MCGOVERN",
+ "MCGOWAN",
+ "MCGRATH",
+ "MCGRAW",
+ "MCGREGOR",
+ "MCGREW",
+ "MCGRIFF",
+ "MCGUIRE",
+ "MCHENRY",
+ "MCHUGH",
+ "MCINNIS",
+ "MCINTIRE",
+ "MCINTOSH",
+ "MCINTYRE",
+ "MCKAY",
+ "MCKEE",
+ "MCKEEVER",
+ "MCKENNA",
+ "MCKENNEY",
+ "MCKENZIE",
+ "MCKEON",
+ "MCKEOWN",
+ "MCKINLEY",
+ "MCKINNEY",
+ "MCKINNON",
+ "MCKNIGHT",
+ "MCLAIN",
+ "MCLAUGHLIN",
+ "MCLAURIN",
+ "MCLEAN",
+ "MCLEMORE",
+ "MCLENDON",
+ "MCLEOD",
+ "MCMAHAN",
+ "MCMAHON",
+ "MCMANUS",
+ "MCMASTER",
+ "MCMILLAN",
+ "MCMILLEN",
+ "MCMILLIAN",
+ "MCMULLEN",
+ "MCMURRAY",
+ "MCNABB",
+ "MCNAIR",
+ "MCNALLY",
+ "MCNAMARA",
+ "MCNEAL",
+ "MCNEELY",
+ "MCNEIL",
+ "MCNEILL",
+ "MCNULTY",
+ "MCNUTT",
+ "MCPHERSON",
+ "MCQUEEN",
+ "MCRAE",
+ "MCREYNOLDS",
+ "MCSWAIN",
+ "MCVAY",
+ "MCVEY",
+ "MCWHORTER",
+ "MCWILLIAMS",
+ "MEACHAM",
+ "MEAD",
+ "MEADE",
+ "MEADOR",
+ "MEADOWS",
+ "MEANS",
+ "MEARS",
+ "MEDEIROS",
+ "MEDINA",
+ "MEDLEY",
+ "MEDLIN",
+ "MEDLOCK",
+ "MEDRANO",
+ "MEEHAN",
+ "MEEK",
+ "MEEKER",
+ "MEEKS",
+ "MEIER",
+ "MEJIA",
+ "MELANCON",
+ "MELENDEZ",
+ "MELLO",
+ "MELTON",
+ "MELVIN",
+ "MENA",
+ "MENARD",
+ "MENDENHALL",
+ "MENDEZ",
+ "MENDOZA",
+ "MENENDEZ",
+ "MERCADO",
+ "MERCER",
+ "MERCHANT",
+ "MERCIER",
+ "MEREDITH",
+ "MERRELL",
+ "MERRICK",
+ "MERRILL",
+ "MERRIMAN",
+ "MERRITT",
+ "MESA",
+ "MESSENGER",
+ "MESSER",
+ "MESSINA",
+ "METCALF",
+ "METZ",
+ "METZGER",
+ "METZLER",
+ "MEYER",
+ "MEYERS",
+ "MEZA",
+ "MICHAEL",
+ "MICHAELS",
+ "MICHAUD",
+ "MICHEL",
+ "MICKENS",
+ "MIDDLETON",
+ "MILAM",
+ "MILBURN",
+ "MILES",
+ "MILLARD",
+ "MILLER",
+ "MILLIGAN",
+ "MILLIKEN",
+ "MILLS",
+ "MILNE",
+ "MILNER",
+ "MILTON",
+ "MIMS",
+ "MINER",
+ "MINNICK",
+ "MINOR",
+ "MINTER",
+ "MINTON",
+ "MINTZ",
+ "MIRANDA",
+ "MIRELES",
+ "MITCHELL",
+ "MIXON",
+ "MIZE",
+ "MOBLEY",
+ "MOCK",
+ "MOE",
+ "MOELLER",
+ "MOEN",
+ "MOFFETT",
+ "MOFFITT",
+ "MOHR",
+ "MOJICA",
+ "MOLINA",
+ "MOLL",
+ "MONACO",
+ "MONAGHAN",
+ "MONAHAN",
+ "MONEY",
+ "MONIZ",
+ "MONK",
+ "MONROE",
+ "MONSON",
+ "MONTAGUE",
+ "MONTALVO",
+ "MONTANEZ",
+ "MONTANO",
+ "MONTEMAYOR",
+ "MONTERO",
+ "MONTES",
+ "MONTEZ",
+ "MONTGOMERY",
+ "MONTOYA",
+ "MOODY",
+ "MOON",
+ "MOONEY",
+ "MOORE",
+ "MOORMAN",
+ "MORA",
+ "MORALES",
+ "MORAN",
+ "MOREAU",
+ "MOREHEAD",
+ "MORELAND",
+ "MORENO",
+ "MOREY",
+ "MORGAN",
+ "MORIARTY",
+ "MORIN",
+ "MORLEY",
+ "MORRELL",
+ "MORRILL",
+ "MORRIS",
+ "MORRISON",
+ "MORRISSEY",
+ "MORROW",
+ "MORSE",
+ "MORTENSEN",
+ "MORTON",
+ "MOSBY",
+ "MOSELEY",
+ "MOSER",
+ "MOSES",
+ "MOSHER",
+ "MOSIER",
+ "MOSLEY",
+ "MOSS",
+ "MOTLEY",
+ "MOTT",
+ "MOULTON",
+ "MOULTRIE",
+ "MOUNT",
+ "MOWERY",
+ "MOYA",
+ "MOYE",
+ "MOYER",
+ "MUELLER",
+ "MUHAMMAD",
+ "MUIR",
+ "MULKEY",
+ "MULL",
+ "MULLEN",
+ "MULLER",
+ "MULLIGAN",
+ "MULLIN",
+ "MULLINS",
+ "MULLIS",
+ "MUNCY",
+ "MUNDY",
+ "MUNIZ",
+ "MUNN",
+ "MUNOZ",
+ "MUNSON",
+ "MURDOCK",
+ "MURILLO",
+ "MURPHY",
+ "MURRAY",
+ "MURRELL",
+ "MURRY",
+ "MUSE",
+ "MUSGROVE",
+ "MUSSER",
+ "MYERS",
+ "MYLES",
+ "MYRICK",
+ "NABORS",
+ "NADEAU",
+ "NAGEL",
+ "NAGLE",
+ "NAGY",
+ "NAJERA",
+ "NAKAMURA",
+ "NALL",
+ "NANCE",
+ "NAPIER",
+ "NAQUIN",
+ "NARANJO",
+ "NARVAEZ",
+ "NASH",
+ "NATHAN",
+ "NATION",
+ "NAVA",
+ "NAVARRETE",
+ "NAVARRO",
+ "NAYLOR",
+ "NEAL",
+ "NEALY",
+ "NEEDHAM",
+ "NEEL",
+ "NEELEY",
+ "NEELY",
+ "NEFF",
+ "NEGRETE",
+ "NEGRON",
+ "NEIL",
+ "NEILL",
+ "NELMS",
+ "NELSON",
+ "NESBITT",
+ "NESMITH",
+ "NESS",
+ "NESTOR",
+ "NETTLES",
+ "NEUMAN",
+ "NEUMANN",
+ "NEVAREZ",
+ "NEVILLE",
+ "NEW",
+ "NEWBERRY",
+ "NEWBY",
+ "NEWCOMB",
+ "NEWELL",
+ "NEWKIRK",
+ "NEWMAN",
+ "NEWSOM",
+ "NEWSOME",
+ "NEWTON",
+ "NG",
+ "NGO",
+ "NGUYEN",
+ "NICHOLAS",
+ "NICHOLS",
+ "NICHOLSON",
+ "NICKEL",
+ "NICKERSON",
+ "NIELSEN",
+ "NIELSON",
+ "NIETO",
+ "NIEVES",
+ "NILES",
+ "NIX",
+ "NIXON",
+ "NOBLE",
+ "NOBLES",
+ "NOE",
+ "NOEL",
+ "NOLAN",
+ "NOLAND",
+ "NOLEN",
+ "NOLL",
+ "NOONAN",
+ "NORFLEET",
+ "NORIEGA",
+ "NORMAN",
+ "NORRIS",
+ "NORTH",
+ "NORTON",
+ "NORWOOD",
+ "NOVAK",
+ "NOVOTNY",
+ "NOWAK",
+ "NOWLIN",
+ "NOYES",
+ "NUGENT",
+ "NULL",
+ "NUMBERS",
+ "NUNES",
+ "NUNEZ",
+ "NUNLEY",
+ "NUNN",
+ "NUTT",
+ "NUTTER",
+ "NYE",
+ "OAKES",
+ "OAKLEY",
+ "OAKS",
+ "OATES",
+ "OBRIEN",
+ "OBRYAN",
+ "OCAMPO",
+ "OCASIO",
+ "OCHOA",
+ "OCHS",
+ "OCONNELL",
+ "OCONNER",
+ "OCONNOR",
+ "ODELL",
+ "ODEN",
+ "ODOM",
+ "ODONNELL",
+ "ODUM",
+ "OGDEN",
+ "OGLE",
+ "OGLESBY",
+ "OH",
+ "OHARA",
+ "OJEDA",
+ "OKEEFE",
+ "OLDHAM",
+ "OLDS",
+ "OLEARY",
+ "OLIPHANT",
+ "OLIVA",
+ "OLIVARES",
+ "OLIVAREZ",
+ "OLIVAS",
+ "OLIVE",
+ "OLIVEIRA",
+ "OLIVER",
+ "OLIVO",
+ "OLMSTEAD",
+ "OLSEN",
+ "OLSON",
+ "OLVERA",
+ "OMALLEY",
+ "ONEAL",
+ "ONEIL",
+ "ONEILL",
+ "ONTIVEROS",
+ "ORDONEZ",
+ "OREILLY",
+ "ORELLANA",
+ "ORLANDO",
+ "ORNELAS",
+ "OROSCO",
+ "OROURKE",
+ "OROZCO",
+ "ORR",
+ "ORTA",
+ "ORTEGA",
+ "ORTIZ",
+ "OSBORN",
+ "OSBORNE",
+ "OSBURN",
+ "OSGOOD",
+ "OSHEA",
+ "OSORIO",
+ "OSTEEN",
+ "OSTRANDER",
+ "OSULLIVAN",
+ "OSWALD",
+ "OSWALT",
+ "OTERO",
+ "OTIS",
+ "OTOOLE",
+ "OTT",
+ "OTTO",
+ "OUELLETTE",
+ "OUTLAW",
+ "OVERBY",
+ "OVERSTREET",
+ "OVERTON",
+ "OWEN",
+ "OWENS",
+ "PACE",
+ "PACHECO",
+ "PACK",
+ "PACKARD",
+ "PACKER",
+ "PADGETT",
+ "PADILLA",
+ "PAGAN",
+ "PAGE",
+ "PAIGE",
+ "PAINE",
+ "PAINTER",
+ "PAK",
+ "PALACIOS",
+ "PALMA",
+ "PALMER",
+ "PALUMBO",
+ "PANNELL",
+ "PANTOJA",
+ "PAPE",
+ "PAPPAS",
+ "PAQUETTE",
+ "PARADIS",
+ "PARDO",
+ "PAREDES",
+ "PARENT",
+ "PARHAM",
+ "PARIS",
+ "PARISH",
+ "PARK",
+ "PARKER",
+ "PARKINSON",
+ "PARKS",
+ "PARNELL",
+ "PARR",
+ "PARRA",
+ "PARRIS",
+ "PARRISH",
+ "PARROTT",
+ "PARRY",
+ "PARSON",
+ "PARSONS",
+ "PARTIN",
+ "PARTRIDGE",
+ "PASSMORE",
+ "PATE",
+ "PATEL",
+ "PATERSON",
+ "PATINO",
+ "PATRICK",
+ "PATTEN",
+ "PATTERSON",
+ "PATTON",
+ "PAUL",
+ "PAULEY",
+ "PAULSEN",
+ "PAULSON",
+ "PAXTON",
+ "PAYNE",
+ "PAYTON",
+ "PAZ",
+ "PEACE",
+ "PEACHEY",
+ "PEACOCK",
+ "PEAK",
+ "PEARCE",
+ "PEARSON",
+ "PEASE",
+ "PECK",
+ "PEDERSEN",
+ "PEDERSON",
+ "PEEBLES",
+ "PEEK",
+ "PEEL",
+ "PEELER",
+ "PEEPLES",
+ "PELLETIER",
+ "PELTIER",
+ "PEMBERTON",
+ "PENA",
+ "PENCE",
+ "PENDER",
+ "PENDERGRASS",
+ "PENDLETON",
+ "PENN",
+ "PENNELL",
+ "PENNINGTON",
+ "PENNY",
+ "PEOPLES",
+ "PEPPER",
+ "PERALES",
+ "PERALTA",
+ "PERDUE",
+ "PEREA",
+ "PEREIRA",
+ "PEREZ",
+ "PERKINS",
+ "PERREAULT",
+ "PERRIN",
+ "PERRON",
+ "PERRY",
+ "PERRYMAN",
+ "PERSON",
+ "PETER",
+ "PETERMAN",
+ "PETERS",
+ "PETERSEN",
+ "PETERSON",
+ "PETIT",
+ "PETRIE",
+ "PETTIGREW",
+ "PETTIS",
+ "PETTIT",
+ "PETTWAY",
+ "PETTY",
+ "PEYTON",
+ "PFEIFER",
+ "PFEIFFER",
+ "PHAM",
+ "PHAN",
+ "PHELAN",
+ "PHELPS",
+ "PHIFER",
+ "PHILLIPS",
+ "PHIPPS",
+ "PICARD",
+ "PICKARD",
+ "PICKENS",
+ "PICKERING",
+ "PICKETT",
+ "PIERCE",
+ "PIERRE",
+ "PIERSON",
+ "PIKE",
+ "PILCHER",
+ "PIMENTEL",
+ "PINA",
+ "PINCKNEY",
+ "PINEDA",
+ "PINKERTON",
+ "PINKSTON",
+ "PINO",
+ "PINSON",
+ "PINTO",
+ "PIPER",
+ "PIPKIN",
+ "PIPPIN",
+ "PITMAN",
+ "PITRE",
+ "PITT",
+ "PITTMAN",
+ "PITTS",
+ "PLACE",
+ "PLANTE",
+ "PLATT",
+ "PLEASANT",
+ "PLUMMER",
+ "PLUNKETT",
+ "POE",
+ "POGUE",
+ "POINDEXTER",
+ "POINTER",
+ "POIRIER",
+ "POLANCO",
+ "POLAND",
+ "POLING",
+ "POLK",
+ "POLLACK",
+ "POLLARD",
+ "POLLOCK",
+ "POMEROY",
+ "PONCE",
+ "POND",
+ "PONDER",
+ "POOL",
+ "POOLE",
+ "POORE",
+ "POPE",
+ "POPP",
+ "PORTER",
+ "PORTERFIELD",
+ "PORTILLO",
+ "POSEY",
+ "POST",
+ "POSTON",
+ "POTTER",
+ "POTTS",
+ "POULIN",
+ "POUNDS",
+ "POWELL",
+ "POWER",
+ "POWERS",
+ "PRADO",
+ "PRATER",
+ "PRATHER",
+ "PRATT",
+ "PRENTICE",
+ "PRESCOTT",
+ "PRESLEY",
+ "PRESSLEY",
+ "PRESTON",
+ "PREWITT",
+ "PRICE",
+ "PRICHARD",
+ "PRIDE",
+ "PRIDGEN",
+ "PRIEST",
+ "PRIETO",
+ "PRINCE",
+ "PRINGLE",
+ "PRITCHARD",
+ "PRITCHETT",
+ "PROCTOR",
+ "PROFFITT",
+ "PROSSER",
+ "PROVOST",
+ "PRUETT",
+ "PRUITT",
+ "PRYOR",
+ "PUCKETT",
+ "PUENTE",
+ "PUGH",
+ "PULIDO",
+ "PULLEN",
+ "PULLEY",
+ "PULLIAM",
+ "PURCELL",
+ "PURDY",
+ "PURNELL",
+ "PURVIS",
+ "PUTMAN",
+ "PUTNAM",
+ "PYLE",
+ "QUALLS",
+ "QUARLES",
+ "QUEEN",
+ "QUEZADA",
+ "QUICK",
+ "QUIGLEY",
+ "QUILLEN",
+ "QUINLAN",
+ "QUINN",
+ "QUINONES",
+ "QUINONEZ",
+ "QUINTANA",
+ "QUINTANILLA",
+ "QUINTERO",
+ "QUIROZ",
+ "RADER",
+ "RADFORD",
+ "RAFFERTY",
+ "RAGAN",
+ "RAGLAND",
+ "RAGSDALE",
+ "RAINES",
+ "RAINEY",
+ "RAINS",
+ "RALEY",
+ "RALPH",
+ "RALSTON",
+ "RAMEY",
+ "RAMIREZ",
+ "RAMON",
+ "RAMOS",
+ "RAMSAY",
+ "RAMSEY",
+ "RAND",
+ "RANDALL",
+ "RANDLE",
+ "RANDOLPH",
+ "RANEY",
+ "RANGEL",
+ "RANKIN",
+ "RANSOM",
+ "RAPP",
+ "RASH",
+ "RASMUSSEN",
+ "RATCLIFF",
+ "RATLIFF",
+ "RAU",
+ "RAUCH",
+ "RAWLINGS",
+ "RAWLINS",
+ "RAWLS",
+ "RAY",
+ "RAYBURN",
+ "RAYFORD",
+ "RAYMOND",
+ "RAYNOR",
+ "RAZO",
+ "REA",
+ "READ",
+ "REAGAN",
+ "REARDON",
+ "REAVES",
+ "RECTOR",
+ "REDD",
+ "REDDEN",
+ "REDDICK",
+ "REDDING",
+ "REDDY",
+ "REDMAN",
+ "REDMON",
+ "REDMOND",
+ "REECE",
+ "REED",
+ "REEDER",
+ "REEDY",
+ "REES",
+ "REESE",
+ "REEVES",
+ "REGALADO",
+ "REGAN",
+ "REGISTER",
+ "REICH",
+ "REICHERT",
+ "REID",
+ "REILLY",
+ "REINHARDT",
+ "REINHART",
+ "REIS",
+ "REITER",
+ "RENDON",
+ "RENFRO",
+ "RENNER",
+ "RENO",
+ "RENTERIA",
+ "REUTER",
+ "REY",
+ "REYES",
+ "REYNA",
+ "REYNOLDS",
+ "REYNOSO",
+ "RHEA",
+ "RHOADES",
+ "RHOADS",
+ "RHODEN",
+ "RHODES",
+ "RICCI",
+ "RICE",
+ "RICH",
+ "RICHARD",
+ "RICHARDS",
+ "RICHARDSON",
+ "RICHEY",
+ "RICHIE",
+ "RICHMOND",
+ "RICHTER",
+ "RICKARD",
+ "RICKER",
+ "RICKETTS",
+ "RICKMAN",
+ "RICKS",
+ "RICO",
+ "RIDDELL",
+ "RIDDICK",
+ "RIDDLE",
+ "RIDENOUR",
+ "RIDER",
+ "RIDGEWAY",
+ "RIDLEY",
+ "RIFE",
+ "RIGBY",
+ "RIGGINS",
+ "RIGGS",
+ "RIGSBY",
+ "RILEY",
+ "RINALDI",
+ "RINEHART",
+ "RING",
+ "RIOS",
+ "RIPLEY",
+ "RITCHEY",
+ "RITCHIE",
+ "RITTER",
+ "RIVAS",
+ "RIVERA",
+ "RIVERS",
+ "RIZZO",
+ "ROACH",
+ "ROARK",
+ "ROBB",
+ "ROBBINS",
+ "ROBERGE",
+ "ROBERSON",
+ "ROBERT",
+ "ROBERTS",
+ "ROBERTSON",
+ "ROBEY",
+ "ROBINETTE",
+ "ROBINS",
+ "ROBINSON",
+ "ROBISON",
+ "ROBLES",
+ "ROBSON",
+ "ROBY",
+ "ROCHA",
+ "ROCHE",
+ "ROCK",
+ "ROCKWELL",
+ "RODEN",
+ "RODERICK",
+ "RODGERS",
+ "RODRIGUE",
+ "RODRIGUES",
+ "RODRIGUEZ",
+ "RODRIQUEZ",
+ "ROE",
+ "ROGER",
+ "ROGERS",
+ "ROHR",
+ "ROJAS",
+ "ROLAND",
+ "ROLDAN",
+ "ROLLER",
+ "ROLLINS",
+ "ROMAN",
+ "ROMANO",
+ "ROMEO",
+ "ROMERO",
+ "ROMO",
+ "RONEY",
+ "ROONEY",
+ "ROOT",
+ "ROPER",
+ "ROQUE",
+ "ROSA",
+ "ROSADO",
+ "ROSALES",
+ "ROSARIO",
+ "ROSAS",
+ "ROSE",
+ "ROSEN",
+ "ROSENBAUM",
+ "ROSENBERG",
+ "ROSENTHAL",
+ "ROSS",
+ "ROSSER",
+ "ROSSI",
+ "ROTH",
+ "ROUNDS",
+ "ROUNDTREE",
+ "ROUNTREE",
+ "ROUSE",
+ "ROUSH",
+ "ROUSSEAU",
+ "ROUSSEL",
+ "ROWAN",
+ "ROWE",
+ "ROWELL",
+ "ROWLAND",
+ "ROWLEY",
+ "ROY",
+ "ROYAL",
+ "ROYBAL",
+ "ROYER",
+ "ROYSTER",
+ "RUBIN",
+ "RUBIO",
+ "RUBY",
+ "RUCKER",
+ "RUDD",
+ "RUDOLPH",
+ "RUFF",
+ "RUFFIN",
+ "RUIZ",
+ "RUNYAN",
+ "RUNYON",
+ "RUPERT",
+ "RUPP",
+ "RUSH",
+ "RUSHING",
+ "RUSS",
+ "RUSSELL",
+ "RUSSO",
+ "RUST",
+ "RUTH",
+ "RUTHERFORD",
+ "RUTLEDGE",
+ "RYAN",
+ "RYDER",
+ "SAAVEDRA",
+ "SABO",
+ "SACCO",
+ "SADLER",
+ "SAENZ",
+ "SAGE",
+ "SAGER",
+ "SALAS",
+ "SALAZAR",
+ "SALCEDO",
+ "SALCIDO",
+ "SALDANA",
+ "SALDIVAR",
+ "SALERNO",
+ "SALES",
+ "SALGADO",
+ "SALINAS",
+ "SALISBURY",
+ "SALLEE",
+ "SALLEY",
+ "SALMON",
+ "SALTER",
+ "SAM",
+ "SAMMONS",
+ "SAMPLE",
+ "SAMPLES",
+ "SAMPSON",
+ "SAMS",
+ "SAMSON",
+ "SAMUEL",
+ "SAMUELS",
+ "SANBORN",
+ "SANCHES",
+ "SANCHEZ",
+ "SANDBERG",
+ "SANDER",
+ "SANDERS",
+ "SANDERSON",
+ "SANDLIN",
+ "SANDOVAL",
+ "SANDS",
+ "SANFORD",
+ "SANTANA",
+ "SANTIAGO",
+ "SANTOS",
+ "SAPP",
+ "SARGENT",
+ "SASSER",
+ "SATTERFIELD",
+ "SAUCEDO",
+ "SAUCIER",
+ "SAUER",
+ "SAULS",
+ "SAUNDERS",
+ "SAVAGE",
+ "SAVOY",
+ "SAWYER",
+ "SAWYERS",
+ "SAXON",
+ "SAXTON",
+ "SAYERS",
+ "SAYLOR",
+ "SAYRE",
+ "SCALES",
+ "SCANLON",
+ "SCARBOROUGH",
+ "SCARBROUGH",
+ "SCHAEFER",
+ "SCHAEFFER",
+ "SCHAFER",
+ "SCHAFFER",
+ "SCHELL",
+ "SCHERER",
+ "SCHILLER",
+ "SCHILLING",
+ "SCHINDLER",
+ "SCHMID",
+ "SCHMIDT",
+ "SCHMITT",
+ "SCHMITZ",
+ "SCHNEIDER",
+ "SCHOFIELD",
+ "SCHOLL",
+ "SCHOONOVER",
+ "SCHOTT",
+ "SCHRADER",
+ "SCHREIBER",
+ "SCHREINER",
+ "SCHROEDER",
+ "SCHUBERT",
+ "SCHULER",
+ "SCHULTE",
+ "SCHULTZ",
+ "SCHULZ",
+ "SCHULZE",
+ "SCHUMACHER",
+ "SCHUSTER",
+ "SCHWAB",
+ "SCHWARTZ",
+ "SCHWARZ",
+ "SCHWEITZER",
+ "SCOGGINS",
+ "SCOTT",
+ "SCRIBNER",
+ "SCROGGINS",
+ "SCRUGGS",
+ "SCULLY",
+ "SEAL",
+ "SEALS",
+ "SEAMAN",
+ "SEARCY",
+ "SEARS",
+ "SEATON",
+ "SEAY",
+ "SEE",
+ "SEELEY",
+ "SEGURA",
+ "SEIBERT",
+ "SEIDEL",
+ "SEIFERT",
+ "SEILER",
+ "SEITZ",
+ "SELBY",
+ "SELF",
+ "SELL",
+ "SELLERS",
+ "SELLS",
+ "SENA",
+ "SEPULVEDA",
+ "SERNA",
+ "SERRANO",
+ "SESSIONS",
+ "SETTLE",
+ "SETTLES",
+ "SEVERSON",
+ "SEWARD",
+ "SEWELL",
+ "SEXTON",
+ "SEYMORE",
+ "SEYMOUR",
+ "SHACKELFORD",
+ "SHADE",
+ "SHAFER",
+ "SHAFFER",
+ "SHAH",
+ "SHANK",
+ "SHANKS",
+ "SHANNON",
+ "SHAPIRO",
+ "SHARKEY",
+ "SHARP",
+ "SHARPE",
+ "SHAVER",
+ "SHAW",
+ "SHAY",
+ "SHEA",
+ "SHEARER",
+ "SHEEHAN",
+ "SHEETS",
+ "SHEFFIELD",
+ "SHELBY",
+ "SHELDON",
+ "SHELL",
+ "SHELLEY",
+ "SHELLY",
+ "SHELTON",
+ "SHEPARD",
+ "SHEPHARD",
+ "SHEPHERD",
+ "SHEPPARD",
+ "SHERIDAN",
+ "SHERMAN",
+ "SHERRILL",
+ "SHERROD",
+ "SHERRY",
+ "SHERWOOD",
+ "SHIELDS",
+ "SHIFFLETT",
+ "SHIN",
+ "SHINN",
+ "SHIPLEY",
+ "SHIPMAN",
+ "SHIPP",
+ "SHIRLEY",
+ "SHIVELY",
+ "SHIVERS",
+ "SHOCKLEY",
+ "SHOEMAKER",
+ "SHOOK",
+ "SHORE",
+ "SHORES",
+ "SHORT",
+ "SHORTER",
+ "SHRADER",
+ "SHULER",
+ "SHULL",
+ "SHULTZ",
+ "SHUMAKER",
+ "SHUMAN",
+ "SHUMATE",
+ "SIBLEY",
+ "SIDES",
+ "SIEGEL",
+ "SIERRA",
+ "SIGLER",
+ "SIKES",
+ "SILER",
+ "SILLS",
+ "SILVA",
+ "SILVER",
+ "SILVERMAN",
+ "SILVERS",
+ "SILVIA",
+ "SIMMONS",
+ "SIMMS",
+ "SIMON",
+ "SIMONE",
+ "SIMONS",
+ "SIMONSON",
+ "SIMPKINS",
+ "SIMPSON",
+ "SIMS",
+ "SINCLAIR",
+ "SINGER",
+ "SINGH",
+ "SINGLETARY",
+ "SINGLETON",
+ "SIPES",
+ "SISCO",
+ "SISK",
+ "SISSON",
+ "SIZEMORE",
+ "SKAGGS",
+ "SKELTON",
+ "SKIDMORE",
+ "SKINNER",
+ "SKIPPER",
+ "SLACK",
+ "SLADE",
+ "SLAGLE",
+ "SLATER",
+ "SLATON",
+ "SLATTERY",
+ "SLAUGHTER",
+ "SLAYTON",
+ "SLEDGE",
+ "SLOAN",
+ "SLOCUM",
+ "SLONE",
+ "SMALL",
+ "SMALLEY",
+ "SMALLS",
+ "SMALLWOOD",
+ "SMART",
+ "SMILEY",
+ "SMITH",
+ "SMITHSON",
+ "SMOOT",
+ "SMOTHERS",
+ "SMYTH",
+ "SNEAD",
+ "SNEED",
+ "SNELL",
+ "SNIDER",
+ "SNIPES",
+ "SNODGRASS",
+ "SNOW",
+ "SNOWDEN",
+ "SNYDER",
+ "SOARES",
+ "SOLANO",
+ "SOLIS",
+ "SOLIZ",
+ "SOLOMON",
+ "SOMERS",
+ "SOMERVILLE",
+ "SOMMER",
+ "SOMMERS",
+ "SONG",
+ "SORENSEN",
+ "SORENSON",
+ "SORIA",
+ "SORIANO",
+ "SORRELL",
+ "SOSA",
+ "SOTELO",
+ "SOTO",
+ "SOUSA",
+ "SOUTH",
+ "SOUTHARD",
+ "SOUTHERLAND",
+ "SOUTHERN",
+ "SOUZA",
+ "SOWELL",
+ "SOWERS",
+ "SPAIN",
+ "SPALDING",
+ "SPANGLER",
+ "SPANN",
+ "SPARKMAN",
+ "SPARKS",
+ "SPARROW",
+ "SPAULDING",
+ "SPEAR",
+ "SPEARMAN",
+ "SPEARS",
+ "SPEED",
+ "SPEER",
+ "SPEIGHT",
+ "SPELLMAN",
+ "SPENCE",
+ "SPENCER",
+ "SPERRY",
+ "SPICER",
+ "SPILLMAN",
+ "SPINKS",
+ "SPIVEY",
+ "SPOONER",
+ "SPRADLIN",
+ "SPRAGUE",
+ "SPRIGGS",
+ "SPRING",
+ "SPRINGER",
+ "SPROUSE",
+ "SPRUILL",
+ "SPURGEON",
+ "SPURLOCK",
+ "SQUIRES",
+ "STACEY",
+ "STACK",
+ "STACKHOUSE",
+ "STACY",
+ "STAFFORD",
+ "STAGGS",
+ "STAHL",
+ "STALEY",
+ "STALLINGS",
+ "STALLWORTH",
+ "STAMM",
+ "STAMPER",
+ "STAMPS",
+ "STANFIELD",
+ "STANFORD",
+ "STANLEY",
+ "STANTON",
+ "STAPLES",
+ "STAPLETON",
+ "STARK",
+ "STARKEY",
+ "STARKS",
+ "STARLING",
+ "STARNES",
+ "STARR",
+ "STATEN",
+ "STATON",
+ "STAUFFER",
+ "STCLAIR",
+ "STEADMAN",
+ "STEARNS",
+ "STEED",
+ "STEEL",
+ "STEELE",
+ "STEEN",
+ "STEFFEN",
+ "STEGALL",
+ "STEIN",
+ "STEINBERG",
+ "STEINER",
+ "STEPHEN",
+ "STEPHENS",
+ "STEPHENSON",
+ "STEPP",
+ "STERLING",
+ "STERN",
+ "STEVENS",
+ "STEVENSON",
+ "STEWARD",
+ "STEWART",
+ "STIDHAM",
+ "STILES",
+ "STILL",
+ "STILLMAN",
+ "STILLWELL",
+ "STILTNER",
+ "STINE",
+ "STINNETT",
+ "STINSON",
+ "STITT",
+ "STJOHN",
+ "STOCK",
+ "STOCKTON",
+ "STODDARD",
+ "STOKER",
+ "STOKES",
+ "STOLL",
+ "STONE",
+ "STONER",
+ "STOREY",
+ "STORY",
+ "STOTT",
+ "STOUT",
+ "STOVALL",
+ "STOVER",
+ "STOWE",
+ "STPIERRE",
+ "STRAIN",
+ "STRAND",
+ "STRANGE",
+ "STRATTON",
+ "STRAUB",
+ "STRAUSS",
+ "STREET",
+ "STREETER",
+ "STRICKLAND",
+ "STRINGER",
+ "STRONG",
+ "STROTHER",
+ "STROUD",
+ "STROUP",
+ "STRUNK",
+ "STUART",
+ "STUBBLEFIELD",
+ "STUBBS",
+ "STUCKEY",
+ "STULL",
+ "STUMP",
+ "STURDIVANT",
+ "STURGEON",
+ "STURGILL",
+ "STURGIS",
+ "STURM",
+ "STYLES",
+ "SUAREZ",
+ "SUGGS",
+ "SULLIVAN",
+ "SUMMERLIN",
+ "SUMMERS",
+ "SUMNER",
+ "SUMPTER",
+ "SUN",
+ "SUTHERLAND",
+ "SUTTER",
+ "SUTTON",
+ "SWAFFORD",
+ "SWAIN",
+ "SWAN",
+ "SWANK",
+ "SWANN",
+ "SWANSON",
+ "SWARTZ",
+ "SWEARINGEN",
+ "SWEAT",
+ "SWEENEY",
+ "SWEET",
+ "SWENSON",
+ "SWIFT",
+ "SWISHER",
+ "SWITZER",
+ "SWOPE",
+ "SYKES",
+ "SYLVESTER",
+ "TABER",
+ "TABOR",
+ "TACKETT",
+ "TAFT",
+ "TAGGART",
+ "TALBERT",
+ "TALBOT",
+ "TALBOTT",
+ "TALLENT",
+ "TALLEY",
+ "TAM",
+ "TAMAYO",
+ "TAN",
+ "TANAKA",
+ "TANG",
+ "TANNER",
+ "TAPIA",
+ "TAPP",
+ "TARVER",
+ "TATE",
+ "TATUM",
+ "TAVARES",
+ "TAYLOR",
+ "TEAGUE",
+ "TEAL",
+ "TEEL",
+ "TEETER",
+ "TEJADA",
+ "TEJEDA",
+ "TELLEZ",
+ "TEMPLE",
+ "TEMPLETON",
+ "TENNANT",
+ "TENNEY",
+ "TERRELL",
+ "TERRILL",
+ "TERRY",
+ "THACKER",
+ "THAMES",
+ "THAO",
+ "THARP",
+ "THATCHER",
+ "THAYER",
+ "THERIAULT",
+ "THERIOT",
+ "THIBODEAU",
+ "THIBODEAUX",
+ "THIEL",
+ "THIGPEN",
+ "THOMAS",
+ "THOMASON",
+ "THOMPSON",
+ "THOMSEN",
+ "THOMSON",
+ "THORN",
+ "THORNBURG",
+ "THORNE",
+ "THORNHILL",
+ "THORNTON",
+ "THORP",
+ "THORPE",
+ "THORTON",
+ "THRASH",
+ "THRASHER",
+ "THURMAN",
+ "THURSTON",
+ "TIBBETTS",
+ "TIBBS",
+ "TICE",
+ "TIDWELL",
+ "TIERNEY",
+ "TIJERINA",
+ "TILLER",
+ "TILLERY",
+ "TILLEY",
+ "TILLMAN",
+ "TILTON",
+ "TIMM",
+ "TIMMONS",
+ "TINKER",
+ "TINSLEY",
+ "TIPTON",
+ "TIRADO",
+ "TISDALE",
+ "TITUS",
+ "TOBIAS",
+ "TOBIN",
+ "TODD",
+ "TOLBERT",
+ "TOLEDO",
+ "TOLER",
+ "TOLIVER",
+ "TOLLIVER",
+ "TOM",
+ "TOMLIN",
+ "TOMLINSON",
+ "TOMPKINS",
+ "TONEY",
+ "TONG",
+ "TORO",
+ "TORRENCE",
+ "TORRES",
+ "TORREZ",
+ "TOTH",
+ "TOTTEN",
+ "TOVAR",
+ "TOWNES",
+ "TOWNS",
+ "TOWNSEND",
+ "TRACY",
+ "TRAHAN",
+ "TRAMMELL",
+ "TRAN",
+ "TRAPP",
+ "TRASK",
+ "TRAVERS",
+ "TRAVIS",
+ "TRAYLOR",
+ "TREADWAY",
+ "TREADWELL",
+ "TREJO",
+ "TREMBLAY",
+ "TRENT",
+ "TREVINO",
+ "TRIBBLE",
+ "TRICE",
+ "TRIMBLE",
+ "TRINIDAD",
+ "TRIPLETT",
+ "TRIPP",
+ "TROTTER",
+ "TROUT",
+ "TROUTMAN",
+ "TROY",
+ "TRUDEAU",
+ "TRUE",
+ "TRUITT",
+ "TRUJILLO",
+ "TRUONG",
+ "TUBBS",
+ "TUCK",
+ "TUCKER",
+ "TUGGLE",
+ "TURK",
+ "TURLEY",
+ "TURMAN",
+ "TURNBULL",
+ "TURNER",
+ "TURNEY",
+ "TURPIN",
+ "TUTTLE",
+ "TYLER",
+ "TYNER",
+ "TYREE",
+ "TYSON",
+ "ULRICH",
+ "UNDERHILL",
+ "UNDERWOOD",
+ "UNGER",
+ "UPCHURCH",
+ "UPSHAW",
+ "UPTON",
+ "URBAN",
+ "URBINA",
+ "URIBE",
+ "USHER",
+ "UTLEY",
+ "VAIL",
+ "VALADEZ",
+ "VALDES",
+ "VALDEZ",
+ "VALENCIA",
+ "VALENTI",
+ "VALENTIN",
+ "VALENTINE",
+ "VALENZUELA",
+ "VALERIO",
+ "VALLE",
+ "VALLEJO",
+ "VALLES",
+ "VAN",
+ "VANBUREN",
+ "VANCE",
+ "VANDIVER",
+ "VANDYKE",
+ "VANG",
+ "VANHOOSE",
+ "VANHORN",
+ "VANMETER",
+ "VANN",
+ "VANOVER",
+ "VANWINKLE",
+ "VARELA",
+ "VARGAS",
+ "VARNER",
+ "VARNEY",
+ "VASQUEZ",
+ "VAUGHAN",
+ "VAUGHN",
+ "VAUGHT",
+ "VAZQUEZ",
+ "VEAL",
+ "VEGA",
+ "VELA",
+ "VELASCO",
+ "VELASQUEZ",
+ "VELAZQUEZ",
+ "VELEZ",
+ "VENABLE",
+ "VENEGAS",
+ "VENTURA",
+ "VERA",
+ "VERDIN",
+ "VERGARA",
+ "VERNON",
+ "VEST",
+ "VETTER",
+ "VICK",
+ "VICKERS",
+ "VICKERY",
+ "VICTOR",
+ "VIDAL",
+ "VIEIRA",
+ "VIERA",
+ "VIGIL",
+ "VILLA",
+ "VILLALOBOS",
+ "VILLANUEVA",
+ "VILLAREAL",
+ "VILLARREAL",
+ "VILLASENOR",
+ "VILLEGAS",
+ "VINCENT",
+ "VINES",
+ "VINSON",
+ "VITALE",
+ "VO",
+ "VOGEL",
+ "VOGT",
+ "VOSS",
+ "VU",
+ "VUE",
+ "WADDELL",
+ "WADE",
+ "WADSWORTH",
+ "WAGGONER",
+ "WAGNER",
+ "WAGONER",
+ "WAHL",
+ "WAITE",
+ "WAKEFIELD",
+ "WALDEN",
+ "WALDRON",
+ "WALDROP",
+ "WALKER",
+ "WALL",
+ "WALLACE",
+ "WALLEN",
+ "WALLER",
+ "WALLING",
+ "WALLIS",
+ "WALLS",
+ "WALSH",
+ "WALSTON",
+ "WALTER",
+ "WALTERS",
+ "WALTON",
+ "WAMPLER",
+ "WANG",
+ "WARD",
+ "WARDEN",
+ "WARE",
+ "WARFIELD",
+ "WARNER",
+ "WARREN",
+ "WASHBURN",
+ "WASHINGTON",
+ "WASSON",
+ "WATERMAN",
+ "WATERS",
+ "WATKINS",
+ "WATSON",
+ "WATT",
+ "WATTERS",
+ "WATTS",
+ "WAUGH",
+ "WAY",
+ "WAYNE",
+ "WEATHERFORD",
+ "WEATHERLY",
+ "WEATHERS",
+ "WEAVER",
+ "WEBB",
+ "WEBBER",
+ "WEBER",
+ "WEBSTER",
+ "WEDDLE",
+ "WEED",
+ "WEEKS",
+ "WEEMS",
+ "WEINBERG",
+ "WEINER",
+ "WEINSTEIN",
+ "WEIR",
+ "WEIS",
+ "WEISS",
+ "WELCH",
+ "WELDON",
+ "WELKER",
+ "WELLER",
+ "WELLMAN",
+ "WELLS",
+ "WELSH",
+ "WENDT",
+ "WENGER",
+ "WENTWORTH",
+ "WENTZ",
+ "WENZEL",
+ "WERNER",
+ "WERTZ",
+ "WESLEY",
+ "WEST",
+ "WESTBROOK",
+ "WESTER",
+ "WESTFALL",
+ "WESTMORELAND",
+ "WESTON",
+ "WETZEL",
+ "WHALEN",
+ "WHALEY",
+ "WHARTON",
+ "WHATLEY",
+ "WHEAT",
+ "WHEATLEY",
+ "WHEATON",
+ "WHEELER",
+ "WHELAN",
+ "WHIPPLE",
+ "WHITAKER",
+ "WHITCOMB",
+ "WHITE",
+ "WHITED",
+ "WHITEHEAD",
+ "WHITEHURST",
+ "WHITEMAN",
+ "WHITESIDE",
+ "WHITFIELD",
+ "WHITING",
+ "WHITLEY",
+ "WHITLOCK",
+ "WHITLOW",
+ "WHITMAN",
+ "WHITMIRE",
+ "WHITMORE",
+ "WHITNEY",
+ "WHITSON",
+ "WHITT",
+ "WHITTAKER",
+ "WHITTEN",
+ "WHITTINGTON",
+ "WHITTLE",
+ "WHITWORTH",
+ "WHYTE",
+ "WICK",
+ "WICKER",
+ "WICKHAM",
+ "WICKS",
+ "WIESE",
+ "WIGGINS",
+ "WILBANKS",
+ "WILBER",
+ "WILBUR",
+ "WILBURN",
+ "WILCOX",
+ "WILD",
+ "WILDE",
+ "WILDER",
+ "WILES",
+ "WILEY",
+ "WILHELM",
+ "WILHITE",
+ "WILKE",
+ "WILKERSON",
+ "WILKES",
+ "WILKINS",
+ "WILKINSON",
+ "WILKS",
+ "WILL",
+ "WILLARD",
+ "WILLETT",
+ "WILLEY",
+ "WILLIAM",
+ "WILLIAMS",
+ "WILLIAMSON",
+ "WILLIFORD",
+ "WILLINGHAM",
+ "WILLIS",
+ "WILLOUGHBY",
+ "WILLS",
+ "WILLSON",
+ "WILMOTH",
+ "WILSON",
+ "WILT",
+ "WIMBERLY",
+ "WINCHESTER",
+ "WINDHAM",
+ "WINFIELD",
+ "WINFREY",
+ "WING",
+ "WINGATE",
+ "WINGFIELD",
+ "WINKLER",
+ "WINN",
+ "WINSLOW",
+ "WINSTEAD",
+ "WINSTON",
+ "WINTER",
+ "WINTERS",
+ "WIRTH",
+ "WISE",
+ "WISEMAN",
+ "WISNIEWSKI",
+ "WITCHER",
+ "WITHERS",
+ "WITHERSPOON",
+ "WITHROW",
+ "WITT",
+ "WITTE",
+ "WOFFORD",
+ "WOLF",
+ "WOLFE",
+ "WOLFF",
+ "WOLFORD",
+ "WOMACK",
+ "WONG",
+ "WOO",
+ "WOOD",
+ "WOODALL",
+ "WOODARD",
+ "WOODBURY",
+ "WOODCOCK",
+ "WOODEN",
+ "WOODLEY",
+ "WOODRUFF",
+ "WOODS",
+ "WOODSON",
+ "WOODWARD",
+ "WOODWORTH",
+ "WOODY",
+ "WOOLDRIDGE",
+ "WOOLEY",
+ "WOOTEN",
+ "WORD",
+ "WORDEN",
+ "WORKMAN",
+ "WORLEY",
+ "WORRELL",
+ "WORSHAM",
+ "WORTH",
+ "WORTHAM",
+ "WORTHINGTON",
+ "WORTHY",
+ "WRAY",
+ "WREN",
+ "WRIGHT",
+ "WU",
+ "WYANT",
+ "WYATT",
+ "WYLIE",
+ "WYMAN",
+ "WYNN",
+ "WYNNE",
+ "XIONG",
+ "YAMAMOTO",
+ "YANCEY",
+ "YANEZ",
+ "YANG",
+ "YARBROUGH",
+ "YATES",
+ "YAZZIE",
+ "YBARRA",
+ "YEAGER",
+ "YEE",
+ "YI",
+ "YOCUM",
+ "YODER",
+ "YOO",
+ "YOON",
+ "YORK",
+ "YOST",
+ "YOUNG",
+ "YOUNGBLOOD",
+ "YOUNGER",
+ "YOUNT",
+ "YU",
+ "ZAMBRANO",
+ "ZAMORA",
+ "ZAPATA",
+ "ZARAGOZA",
+ "ZARATE",
+ "ZAVALA",
+ "ZEIGLER",
+ "ZELLER",
+ "ZEPEDA",
+ "ZHANG",
+ "ZIEGLER",
+ "ZIELINSKI",
+ "ZIMMER",
+ "ZIMMERMAN",
+ "ZINK",
+ "ZOOK",
+ "ZUNIGA"
+ };
+ }
- private static final String[] generateLastNames() {
- return new String[] { "AARON", "ABBOTT", "ABEL", "ABELL", "ABERNATHY", "ABNER",
- "ABNEY", "ABRAHAM", "ABRAMS", "ABREU", "ACEVEDO", "ACKER", "ACKERMAN", "ACKLEY", "ACOSTA", "ACUNA", "ADAIR",
- "ADAM", "ADAME", "ADAMS", "ADAMSON", "ADCOCK", "ADDISON", "ADKINS", "ADLER", "AGEE", "AGNEW", "AGUAYO",
- "AGUIAR", "AGUILAR", "AGUILERA", "AGUIRRE", "AHERN", "AHMAD", "AHMED", "AHRENS", "AIELLO", "AIKEN",
- "AINSWORTH", "AKERS", "AKIN", "AKINS", "ALANIZ", "ALARCON", "ALBA", "ALBERS", "ALBERT", "ALBERTSON",
- "ALBRECHT", "ALBRIGHT", "ALCALA", "ALCORN", "ALDERMAN", "ALDRICH", "ALDRIDGE", "ALEMAN", "ALEXANDER",
- "ALFARO", "ALFONSO", "ALFORD", "ALFRED", "ALGER", "ALI", "ALICEA", "ALLAN", "ALLARD", "ALLEN", "ALLEY",
- "ALLISON", "ALLMAN", "ALLRED", "ALMANZA", "ALMEIDA", "ALMOND", "ALONSO", "ALONZO", "ALSTON", "ALTMAN",
- "ALVARADO", "ALVAREZ", "ALVES", "AMADOR", "AMARAL", "AMATO", "AMAYA", "AMBROSE", "AMES", "AMMONS", "AMOS",
- "AMUNDSON", "ANAYA", "ANDERS", "ANDERSEN", "ANDERSON", "ANDRADE", "ANDRE", "ANDRES", "ANDREW", "ANDREWS",
- "ANDRUS", "ANGEL", "ANGELO", "ANGLIN", "ANGULO", "ANTHONY", "ANTOINE", "ANTONIO", "APODACA", "APONTE",
- "APPEL", "APPLE", "APPLEGATE", "APPLETON", "AQUINO", "ARAGON", "ARANDA", "ARAUJO", "ARCE", "ARCHER",
- "ARCHIBALD", "ARCHIE", "ARCHULETA", "ARELLANO", "AREVALO", "ARIAS", "ARMENTA", "ARMIJO", "ARMSTEAD",
- "ARMSTRONG", "ARNDT", "ARNETT", "ARNOLD", "ARREDONDO", "ARREOLA", "ARRIAGA", "ARRINGTON", "ARROYO",
- "ARSENAULT", "ARTEAGA", "ARTHUR", "ARTIS", "ASBURY", "ASH", "ASHBY", "ASHCRAFT", "ASHE", "ASHER", "ASHFORD",
- "ASHLEY", "ASHMORE", "ASHTON", "ASHWORTH", "ASKEW", "ATCHISON", "ATHERTON", "ATKINS", "ATKINSON", "ATWELL",
- "ATWOOD", "AUGUST", "AUGUSTINE", "AULT", "AUSTIN", "AUTRY", "AVALOS", "AVERY", "AVILA", "AVILES", "AYALA",
- "AYERS", "AYRES", "BABB", "BABCOCK", "BABIN", "BACA", "BACH", "BACHMAN", "BACK", "BACON", "BADER", "BADGER",
- "BADILLO", "BAER", "BAEZ", "BAGGETT", "BAGLEY", "BAGWELL", "BAILEY", "BAIN", "BAINES", "BAIR", "BAIRD",
- "BAKER", "BALDERAS", "BALDWIN", "BALES", "BALL", "BALLARD", "BANDA", "BANDY", "BANKS", "BANKSTON",
- "BANNISTER", "BANUELOS", "BAPTISTE", "BARAJAS", "BARBA", "BARBEE", "BARBER", "BARBOSA", "BARBOUR",
- "BARCLAY", "BARDEN", "BARELA", "BARFIELD", "BARGER", "BARHAM", "BARKER", "BARKLEY", "BARKSDALE", "BARLOW",
- "BARNARD", "BARNES", "BARNETT", "BARNETTE", "BARNEY", "BARNHART", "BARNHILL", "BARON", "BARONE", "BARR",
- "BARRAZA", "BARRERA", "BARRETO", "BARRETT", "BARRIENTOS", "BARRIOS", "BARRON", "BARROW", "BARROWS", "BARRY",
- "BARTELS", "BARTH", "BARTHOLOMEW", "BARTLETT", "BARTLEY", "BARTON", "BASHAM", "BASKIN", "BASS", "BASSETT",
- "BATCHELOR", "BATEMAN", "BATES", "BATISTA", "BATISTE", "BATSON", "BATTAGLIA", "BATTEN", "BATTLE", "BATTLES",
- "BATTS", "BAUER", "BAUGH", "BAUGHMAN", "BAUM", "BAUMAN", "BAUMANN", "BAUMGARDNER", "BAUMGARTNER",
- "BAUTISTA", "BAXLEY", "BAXTER", "BAYER", "BAYLOR", "BAYNE", "BAYS", "BEACH", "BEAL", "BEALE", "BEALL",
- "BEALS", "BEAM", "BEAMON", "BEAN", "BEANE", "BEAR", "BEARD", "BEARDEN", "BEASLEY", "BEATTIE", "BEATTY",
- "BEATY", "BEAUCHAMP", "BEAUDOIN", "BEAULIEU", "BEAUREGARD", "BEAVER", "BEAVERS", "BECERRA", "BECK",
- "BECKER", "BECKETT", "BECKHAM", "BECKMAN", "BECKWITH", "BECNEL", "BEDARD", "BEDFORD", "BEEBE", "BEELER",
- "BEERS", "BEESON", "BEGAY", "BEGLEY", "BEHRENS", "BELANGER", "BELCHER", "BELL", "BELLAMY", "BELLO", "BELT",
- "BELTON", "BELTRAN", "BENAVIDES", "BENAVIDEZ", "BENDER", "BENEDICT", "BENEFIELD", "BENITEZ", "BENJAMIN",
- "BENNER", "BENNETT", "BENOIT", "BENSON", "BENTLEY", "BENTON", "BERG", "BERGER", "BERGERON", "BERGMAN",
- "BERGSTROM", "BERLIN", "BERMAN", "BERMUDEZ", "BERNAL", "BERNARD", "BERNHARDT", "BERNIER", "BERNSTEIN",
- "BERRIOS", "BERRY", "BERRYMAN", "BERTRAM", "BERTRAND", "BERUBE", "BESS", "BEST", "BETANCOURT", "BETHEA",
- "BETHEL", "BETTS", "BETZ", "BEVERLY", "BEVINS", "BEYER", "BIBLE", "BICKFORD", "BIDDLE", "BIGELOW", "BIGGS",
- "BILLINGS", "BILLINGSLEY", "BILLIOT", "BILLS", "BILLUPS", "BILODEAU", "BINDER", "BINGHAM", "BINKLEY",
- "BIRCH", "BIRD", "BISHOP", "BISSON", "BITTNER", "BIVENS", "BIVINS", "BLACK", "BLACKBURN", "BLACKMAN",
- "BLACKMON", "BLACKWELL", "BLACKWOOD", "BLAINE", "BLAIR", "BLAIS", "BLAKE", "BLAKELY", "BLALOCK",
- "BLANCHARD", "BLANCHETTE", "BLANCO", "BLAND", "BLANK", "BLANKENSHIP", "BLANTON", "BLAYLOCK", "BLEDSOE",
- "BLEVINS", "BLISS", "BLOCK", "BLOCKER", "BLODGETT", "BLOOM", "BLOUNT", "BLUE", "BLUM", "BLUNT", "BLYTHE",
- "BOATRIGHT", "BOATWRIGHT", "BOBBITT", "BOBO", "BOCK", "BOEHM", "BOETTCHER", "BOGAN", "BOGGS", "BOHANNON",
- "BOHN", "BOISVERT", "BOLAND", "BOLDEN", "BOLDUC", "BOLEN", "BOLES", "BOLIN", "BOLING", "BOLLING",
- "BOLLINGER", "BOLT", "BOLTON", "BOND", "BONDS", "BONE", "BONILLA", "BONNER", "BOOKER", "BOONE", "BOOTH",
- "BOOTHE", "BORDELON", "BORDEN", "BORDERS", "BOREN", "BORGES", "BORREGO", "BOSS", "BOSTIC", "BOSTICK",
- "BOSTON", "BOSWELL", "BOTTOMS", "BOUCHARD", "BOUCHER", "BOUDREAU", "BOUDREAUX", "BOUNDS", "BOURGEOIS",
- "BOURNE", "BOURQUE", "BOWDEN", "BOWEN", "BOWENS", "BOWER", "BOWERS", "BOWIE", "BOWLES", "BOWLIN", "BOWLING",
- "BOWMAN", "BOWSER", "BOX", "BOYCE", "BOYD", "BOYER", "BOYKIN", "BOYLE", "BOYLES", "BOYNTON", "BOZEMAN",
- "BRACKEN", "BRACKETT", "BRADBURY", "BRADEN", "BRADFORD", "BRADLEY", "BRADSHAW", "BRADY", "BRAGG", "BRANCH",
- "BRAND", "BRANDENBURG", "BRANDON", "BRANDT", "BRANHAM", "BRANNON", "BRANSON", "BRANT", "BRANTLEY",
- "BRASWELL", "BRATCHER", "BRATTON", "BRAUN", "BRAVO", "BRAXTON", "BRAY", "BRAZIL", "BREAUX", "BREEDEN",
- "BREEDLOVE", "BREEN", "BRENNAN", "BRENNER", "BRENT", "BREWER", "BREWSTER", "BRICE", "BRIDGES", "BRIGGS",
- "BRIGHT", "BRILEY", "BRILL", "BRIM", "BRINK", "BRINKLEY", "BRINKMAN", "BRINSON", "BRIONES", "BRISCOE",
- "BRISENO", "BRITO", "BRITT", "BRITTAIN", "BRITTON", "BROADNAX", "BROADWAY", "BROCK", "BROCKMAN",
- "BRODERICK", "BRODY", "BROGAN", "BRONSON", "BROOKINS", "BROOKS", "BROOME", "BROTHERS", "BROUGHTON",
- "BROUSSARD", "BROWDER", "BROWER", "BROWN", "BROWNE", "BROWNELL", "BROWNING", "BROWNLEE", "BROYLES",
- "BRUBAKER", "BRUCE", "BRUMFIELD", "BRUNER", "BRUNNER", "BRUNO", "BRUNS", "BRUNSON", "BRUTON", "BRYAN",
- "BRYANT", "BRYSON", "BUCHANAN", "BUCHER", "BUCK", "BUCKINGHAM", "BUCKLEY", "BUCKNER", "BUENO", "BUFFINGTON",
- "BUFORD", "BUI", "BULL", "BULLARD", "BULLOCK", "BUMGARNER", "BUNCH", "BUNDY", "BUNKER", "BUNN", "BUNNELL",
- "BUNTING", "BURCH", "BURCHETT", "BURCHFIELD", "BURDEN", "BURDETTE", "BURDICK", "BURGE", "BURGER", "BURGESS",
- "BURGOS", "BURK", "BURKE", "BURKETT", "BURKHART", "BURKHOLDER", "BURKS", "BURLESON", "BURLEY", "BURNETT",
- "BURNETTE", "BURNEY", "BURNHAM", "BURNS", "BURNSIDE", "BURR", "BURRELL", "BURRIS", "BURROUGHS", "BURROW",
- "BURROWS", "BURT", "BURTON", "BUSBY", "BUSCH", "BUSH", "BUSS", "BUSSEY", "BUSTAMANTE", "BUSTOS", "BUTCHER",
- "BUTLER", "BUTTERFIELD", "BUTTON", "BUTTS", "BUXTON", "BYARS", "BYERS", "BYNUM", "BYRD", "BYRNE", "BYRNES",
- "CABALLERO", "CABAN", "CABLE", "CABRAL", "CABRERA", "CADE", "CADY", "CAGLE", "CAHILL", "CAIN", "CALABRESE",
- "CALDERON", "CALDWELL", "CALHOUN", "CALKINS", "CALL", "CALLAGHAN", "CALLAHAN", "CALLAWAY", "CALLENDER",
- "CALLOWAY", "CALVERT", "CALVIN", "CAMACHO", "CAMARILLO", "CAMBELL", "CAMERON", "CAMP", "CAMPBELL", "CAMPOS",
- "CANADA", "CANADY", "CANALES", "CANDELARIA", "CANFIELD", "CANNON", "CANO", "CANTRELL", "CANTU", "CANTWELL",
- "CANTY", "CAPPS", "CARABALLO", "CARAWAY", "CARBAJAL", "CARBONE", "CARD", "CARDEN", "CARDENAS", "CARDER",
- "CARDONA", "CARDOZA", "CARDWELL", "CAREY", "CARL", "CARLIN", "CARLISLE", "CARLOS", "CARLSON", "CARLTON",
- "CARMAN", "CARMICHAEL", "CARMONA", "CARNAHAN", "CARNES", "CARNEY", "CARO", "CARON", "CARPENTER", "CARR",
- "CARRANZA", "CARRASCO", "CARRERA", "CARRICO", "CARRIER", "CARRILLO", "CARRINGTON", "CARRION", "CARROLL",
- "CARSON", "CARSWELL", "CARTER", "CARTWRIGHT", "CARUSO", "CARVALHO", "CARVER", "CARY", "CASAS", "CASE",
- "CASEY", "CASH", "CASILLAS", "CASKEY", "CASON", "CASPER", "CASS", "CASSELL", "CASSIDY", "CASTANEDA",
- "CASTEEL", "CASTELLANO", "CASTELLANOS", "CASTILLO", "CASTLE", "CASTLEBERRY", "CASTRO", "CASWELL",
- "CATALANO", "CATES", "CATHEY", "CATO", "CATRON", "CAUDILL", "CAUDLE", "CAUSEY", "CAVANAUGH", "CAVAZOS",
- "CAVE", "CECIL", "CENTENO", "CERDA", "CERVANTES", "CHACON", "CHADWICK", "CHAFFIN", "CHALMERS",
- "CHAMBERLAIN", "CHAMBERLIN", "CHAMBERS", "CHAMBLISS", "CHAMPAGNE", "CHAMPION", "CHAN", "CHANCE", "CHANDLER",
- "CHANEY", "CHANG", "CHAPA", "CHAPIN", "CHAPMAN", "CHAPPELL", "CHARLES", "CHARLTON", "CHASE", "CHASTAIN",
- "CHATMAN", "CHAU", "CHAVARRIA", "CHAVES", "CHAVEZ", "CHAVIS", "CHEATHAM", "CHEEK", "CHEN", "CHENEY",
- "CHENG", "CHERRY", "CHESSER", "CHESTER", "CHESTNUT", "CHEUNG", "CHEW", "CHILD", "CHILDERS", "CHILDRESS",
- "CHILDS", "CHILTON", "CHIN", "CHISHOLM", "CHISM", "CHISOLM", "CHITWOOD", "CHO", "CHOATE", "CHOI", "CHONG",
- "CHOW", "CHRISTENSEN", "CHRISTENSON", "CHRISTIAN", "CHRISTIANSEN", "CHRISTIANSON", "CHRISTIE", "CHRISTMAN",
- "CHRISTMAS", "CHRISTOPHER", "CHRISTY", "CHU", "CHUN", "CHUNG", "CHURCH", "CHURCHILL", "CINTRON", "CISNEROS",
- "CLANCY", "CLANTON", "CLAPP", "CLARK", "CLARKE", "CLARKSON", "CLARY", "CLAUSEN", "CLAWSON", "CLAY",
- "CLAYTON", "CLEARY", "CLEGG", "CLEM", "CLEMENS", "CLEMENT", "CLEMENTS", "CLEMMONS", "CLEMONS", "CLEVELAND",
- "CLEVENGER", "CLICK", "CLIFFORD", "CLIFTON", "CLINE", "CLINTON", "CLOSE", "CLOUD", "CLOUGH", "CLOUTIER",
- "COATES", "COATS", "COBB", "COBBS", "COBLE", "COBURN", "COCHRAN", "COCHRANE", "COCKRELL", "CODY", "COE",
- "COFFEY", "COFFIN", "COFFMAN", "COGGINS", "COHEN", "COHN", "COKER", "COLBERT", "COLBURN", "COLBY", "COLE",
- "COLEMAN", "COLES", "COLEY", "COLLADO", "COLLAZO", "COLLEY", "COLLIER", "COLLINS", "COLON", "COLSON",
- "COLVIN", "COLWELL", "COMBS", "COMEAUX", "COMER", "COMPTON", "COMSTOCK", "CONAWAY", "CONCEPCION", "CONDON",
- "CONE", "CONGER", "CONKLIN", "CONLEY", "CONN", "CONNELL", "CONNELLY", "CONNER", "CONNERS", "CONNOLLY",
- "CONNOR", "CONNORS", "CONOVER", "CONRAD", "CONROY", "CONTE", "CONTI", "CONTRERAS", "CONWAY", "CONYERS",
- "COOK", "COOKE", "COOKS", "COOKSEY", "COOLEY", "COOMBS", "COON", "COONEY", "COONS", "COOPER", "COPE",
- "COPELAND", "COPLEY", "COPPOLA", "CORBETT", "CORBIN", "CORBITT", "CORCORAN", "CORDELL", "CORDERO",
- "CORDOVA", "COREY", "CORLEY", "CORMIER", "CORNELIUS", "CORNELL", "CORNETT", "CORNISH", "CORNWELL", "CORONA",
- "CORONADO", "CORRAL", "CORREA", "CORREIA", "CORRIGAN", "CORTES", "CORTEZ", "CORWIN", "COSBY", "COSGROVE",
- "COSTA", "COSTELLO", "COTA", "COTE", "COTHRAN", "COTTER", "COTTON", "COTTRELL", "COUCH", "COUGHLIN",
- "COULTER", "COUNCIL", "COUNTS", "COURTNEY", "COUSINS", "COUTURE", "COVERT", "COVEY", "COVINGTON", "COWAN",
- "COWARD", "COWART", "COWELL", "COWLES", "COWLEY", "COX", "COY", "COYLE", "COYNE", "CRABTREE", "CRADDOCK",
- "CRAFT", "CRAIG", "CRAIN", "CRAMER", "CRANDALL", "CRANE", "CRANFORD", "CRAVEN", "CRAWFORD", "CRAWLEY",
- "CRAYTON", "CREAMER", "CREECH", "CREEL", "CREIGHTON", "CRENSHAW", "CRESPO", "CREWS", "CRIDER", "CRISP",
- "CRIST", "CRISWELL", "CRITTENDEN", "CROCKER", "CROCKETT", "CROFT", "CROMER", "CROMWELL", "CRONIN", "CROOK",
- "CROOKS", "CROSBY", "CROSS", "CROTEAU", "CROUCH", "CROUSE", "CROW", "CROWDER", "CROWE", "CROWELL",
- "CROWLEY", "CRUM", "CRUMP", "CRUSE", "CRUTCHER", "CRUTCHFIELD", "CRUZ", "CUELLAR", "CUEVAS", "CULBERTSON",
- "CULLEN", "CULP", "CULPEPPER", "CULVER", "CUMMINGS", "CUMMINS", "CUNNINGHAM", "CUPP", "CURLEY", "CURRAN",
- "CURRIE", "CURRIER", "CURRY", "CURTIN", "CURTIS", "CUSHMAN", "CUSTER", "CUTLER", "CYR", "DABNEY", "DAHL",
- "DAIGLE", "DAILEY", "DAILY", "DALE", "DALEY", "DALLAS", "DALTON", "DALY", "DAMICO", "DAMON", "DAMRON",
- "DANCY", "DANG", "DANGELO", "DANIEL", "DANIELS", "DANIELSON", "DANNER", "DARBY", "DARDEN", "DARLING",
- "DARNELL", "DASILVA", "DAUGHERTY", "DAUGHTRY", "DAVENPORT", "DAVID", "DAVIDSON", "DAVIES", "DAVILA",
- "DAVIS", "DAVISON", "DAWKINS", "DAWSON", "DAY", "DAYTON", "DEAL", "DEAN", "DEATON", "DEBERRY", "DECKER",
- "DEES", "DEHART", "DEJESUS", "DELACRUZ", "DELAGARZA", "DELANEY", "DELAROSA", "DELATORRE", "DELEON",
- "DELGADILLO", "DELGADO", "DELL", "DELLINGER", "DELOACH", "DELONG", "DELOSSANTOS", "DELUCA", "DELVALLE",
- "DEMARCO", "DEMERS", "DEMPSEY", "DENHAM", "DENNEY", "DENNING", "DENNIS", "DENNISON", "DENNY", "DENSON",
- "DENT", "DENTON", "DEROSA", "DERR", "DERRICK", "DESANTIS", "DESIMONE", "DEVINE", "DEVITO", "DEVLIN",
- "DEVORE", "DEVRIES", "DEW", "DEWEY", "DEWITT", "DEXTER", "DIAL", "DIAMOND", "DIAS", "DIAZ", "DICK",
- "DICKENS", "DICKERSON", "DICKEY", "DICKINSON", "DICKSON", "DIEHL", "DIETRICH", "DIETZ", "DIGGS", "DILL",
- "DILLARD", "DILLON", "DINKINS", "DION", "DIX", "DIXON", "DO", "DOAN", "DOBBINS", "DOBBS", "DOBSON",
- "DOCKERY", "DODD", "DODDS", "DODGE", "DODSON", "DOE", "DOHERTY", "DOLAN", "DOLL", "DOLLAR", "DOMINGO",
- "DOMINGUEZ", "DOMINQUEZ", "DONAHUE", "DONALD", "DONALDSON", "DONATO", "DONNELL", "DONNELLY", "DONOHUE",
- "DONOVAN", "DOOLEY", "DOOLITTLE", "DORAN", "DORMAN", "DORN", "DORRIS", "DORSEY", "DORTCH", "DOSS", "DOTSON",
- "DOTY", "DOUCETTE", "DOUGHERTY", "DOUGHTY", "DOUGLAS", "DOUGLASS", "DOVE", "DOVER", "DOW", "DOWD", "DOWDY",
- "DOWELL", "DOWLING", "DOWNEY", "DOWNING", "DOWNS", "DOYLE", "DOZIER", "DRAKE", "DRAPER", "DRAYTON", "DREW",
- "DRISCOLL", "DRIVER", "DRUMMOND", "DRURY", "DUARTE", "DUBE", "DUBOIS", "DUBOSE", "DUCKETT", "DUCKWORTH",
- "DUDLEY", "DUFF", "DUFFY", "DUGAN", "DUGAS", "DUGGAN", "DUGGER", "DUKE", "DUKES", "DUMAS", "DUMONT",
- "DUNAWAY", "DUNBAR", "DUNCAN", "DUNHAM", "DUNLAP", "DUNN", "DUNNE", "DUNNING", "DUONG", "DUPONT", "DUPRE",
- "DUPREE", "DUPUIS", "DURAN", "DURAND", "DURANT", "DURBIN", "DURDEN", "DURHAM", "DURKIN", "DURR", "DUTTON",
- "DUVAL", "DUVALL", "DWYER", "DYE", "DYER", "DYKES", "DYSON", "EAGLE", "EARL", "EARLE", "EARLEY", "EARLS",
- "EARLY", "EARNEST", "EASLEY", "EASON", "EAST", "EASTER", "EASTERLING", "EASTMAN", "EASTON", "EATON",
- "EAVES", "EBERT", "ECHEVARRIA", "ECHOLS", "ECKERT", "EDDY", "EDGAR", "EDGE", "EDMOND", "EDMONDS",
- "EDMONDSON", "EDWARD", "EDWARDS", "EGAN", "EGGLESTON", "ELAM", "ELDER", "ELDRIDGE", "ELIAS", "ELIZONDO",
- "ELKINS", "ELLER", "ELLINGTON", "ELLIOT", "ELLIOTT", "ELLIS", "ELLISON", "ELLSWORTH", "ELMORE", "ELROD",
- "ELSTON", "ELY", "EMANUEL", "EMBRY", "EMERSON", "EMERY", "EMMONS", "ENG", "ENGEL", "ENGLAND", "ENGLE",
- "ENGLISH", "ENNIS", "ENOS", "ENRIGHT", "ENRIQUEZ", "EPPERSON", "EPPS", "EPSTEIN", "ERDMANN", "ERICKSON",
- "ERNST", "ERVIN", "ERWIN", "ESCALANTE", "ESCAMILLA", "ESCOBAR", "ESCOBEDO", "ESPARZA", "ESPINAL", "ESPINO",
- "ESPINOSA", "ESPINOZA", "ESPOSITO", "ESQUIVEL", "ESTEP", "ESTES", "ESTRADA", "ESTRELLA", "ETHERIDGE",
- "ETHRIDGE", "EUBANKS", "EVANS", "EVERETT", "EVERHART", "EVERS", "EVERSON", "EWING", "EZELL", "FABER",
- "FABIAN", "FAGAN", "FAHEY", "FAIN", "FAIR", "FAIRBANKS", "FAIRCHILD", "FAIRLEY", "FAISON", "FAJARDO",
- "FALCON", "FALK", "FALLON", "FALLS", "FANNING", "FARIAS", "FARLEY", "FARMER", "FARNSWORTH", "FARR",
- "FARRAR", "FARRELL", "FARRINGTON", "FARRIS", "FARROW", "FAULK", "FAULKNER", "FAUST", "FAY", "FEENEY",
- "FELDER", "FELDMAN", "FELICIANO", "FELIX", "FELLOWS", "FELTON", "FELTS", "FENNELL", "FENNER", "FENTON",
- "FERGUSON", "FERNANDES", "FERNANDEZ", "FERRARA", "FERRARI", "FERRARO", "FERREIRA", "FERRELL", "FERRER",
- "FERRIS", "FERRY", "FIELD", "FIELDER", "FIELDS", "FIERRO", "FIFE", "FIGUEROA", "FINCH", "FINCHER",
- "FINDLEY", "FINE", "FINK", "FINLEY", "FINN", "FINNEGAN", "FINNEY", "FIORE", "FISCHER", "FISH", "FISHER",
- "FISHMAN", "FISK", "FITCH", "FITE", "FITTS", "FITZGERALD", "FITZPATRICK", "FITZSIMMONS", "FLAGG",
- "FLAHERTY", "FLANAGAN", "FLANDERS", "FLANIGAN", "FLANNERY", "FLECK", "FLEMING", "FLEMMING", "FLETCHER",
- "FLINT", "FLOOD", "FLORA", "FLORENCE", "FLORES", "FLOREZ", "FLOURNOY", "FLOWERS", "FLOYD", "FLYNN",
- "FOGARTY", "FOGG", "FOGLE", "FOLEY", "FOLSE", "FOLSOM", "FOLTZ", "FONG", "FONSECA", "FONTAINE", "FONTENOT",
- "FOOTE", "FORBES", "FORD", "FOREMAN", "FOREST", "FORET", "FORMAN", "FORNEY", "FORREST", "FORRESTER",
- "FORSTER", "FORSYTH", "FORSYTHE", "FORT", "FORTE", "FORTENBERRY", "FORTIER", "FORTIN", "FORTNER", "FORTUNE",
- "FOSS", "FOSTER", "FOUNTAIN", "FOURNIER", "FOUST", "FOWLER", "FOX", "FOY", "FRALEY", "FRAME", "FRANCE",
- "FRANCIS", "FRANCISCO", "FRANCO", "FRANCOIS", "FRANK", "FRANKLIN", "FRANKS", "FRANTZ", "FRANZ", "FRASER",
- "FRASIER", "FRAZER", "FRAZIER", "FREDERICK", "FREDERICKS", "FREDRICK", "FREDRICKSON", "FREE", "FREED",
- "FREEDMAN", "FREEMAN", "FREESE", "FREITAS", "FRENCH", "FREUND", "FREY", "FRIAS", "FRICK", "FRIEDMAN",
- "FRIEND", "FRIERSON", "FRIES", "FRITZ", "FRIZZELL", "FROST", "FRY", "FRYE", "FRYER", "FUCHS", "FUENTES",
- "FUGATE", "FULCHER", "FULLER", "FULLERTON", "FULMER", "FULTON", "FULTZ", "FUNDERBURK", "FUNK", "FUQUA",
- "FURMAN", "FURR", "FUSCO", "GABLE", "GABRIEL", "GADDIS", "GADDY", "GAFFNEY", "GAGE", "GAGNE", "GAGNON",
- "GAINES", "GAINEY", "GAITHER", "GALARZA", "GALBRAITH", "GALE", "GALINDO", "GALLAGHER", "GALLANT",
- "GALLARDO", "GALLEGOS", "GALLO", "GALLOWAY", "GALVAN", "GALVEZ", "GALVIN", "GAMBLE", "GAMBOA", "GAMEZ",
- "GANDY", "GANN", "GANNON", "GANT", "GANTT", "GARAY", "GARBER", "GARCIA", "GARDINER", "GARDNER", "GARLAND",
- "GARMON", "GARNER", "GARNETT", "GARRETT", "GARRIS", "GARRISON", "GARVEY", "GARVIN", "GARY", "GARZA",
- "GASKIN", "GASKINS", "GASS", "GASTON", "GATES", "GATEWOOD", "GATLIN", "GAULT", "GAUTHIER", "GAVIN", "GAY",
- "GAYLORD", "GEARY", "GEE", "GEER", "GEIGER", "GENTILE", "GENTRY", "GEORGE", "GERALD", "GERARD", "GERBER",
- "GERMAN", "GETZ", "GIBBONS", "GIBBS", "GIBSON", "GIFFORD", "GIL", "GILBERT", "GILBERTSON", "GILBREATH",
- "GILCHRIST", "GILES", "GILL", "GILLEN", "GILLESPIE", "GILLETTE", "GILLEY", "GILLIAM", "GILLILAND", "GILLIS",
- "GILMAN", "GILMER", "GILMORE", "GILSON", "GINN", "GIORDANO", "GIPSON", "GIRARD", "GIRON", "GIROUX", "GIST",
- "GIVENS", "GLADDEN", "GLADNEY", "GLASER", "GLASGOW", "GLASS", "GLAZE", "GLEASON", "GLENN", "GLOVER",
- "GLYNN", "GOAD", "GOBLE", "GODDARD", "GODFREY", "GODINEZ", "GODWIN", "GOEBEL", "GOETZ", "GOFF", "GOFORTH",
- "GOINS", "GOLD", "GOLDBERG", "GOLDEN", "GOLDMAN", "GOLDSMITH", "GOLDSTEIN", "GOMES", "GOMEZ", "GONSALVES",
- "GONZALES", "GONZALEZ", "GOOCH", "GOOD", "GOODE", "GOODEN", "GOODIN", "GOODING", "GOODMAN", "GOODRICH",
- "GOODSON", "GOODWIN", "GOOLSBY", "GORDON", "GORE", "GORHAM", "GORMAN", "GOSS", "GOSSETT", "GOUGH", "GOULD",
- "GOULET", "GRACE", "GRACIA", "GRADY", "GRAF", "GRAFF", "GRAGG", "GRAHAM", "GRANADOS", "GRANGER", "GRANT",
- "GRANTHAM", "GRAVES", "GRAY", "GRAYSON", "GREATHOUSE", "GRECO", "GREEN", "GREENBERG", "GREENE",
- "GREENFIELD", "GREENLEE", "GREENWOOD", "GREER", "GREGG", "GREGORY", "GREINER", "GRENIER", "GRESHAM", "GREY",
- "GRICE", "GRIDER", "GRIER", "GRIFFIN", "GRIFFIS", "GRIFFITH", "GRIFFITHS", "GRIGGS", "GRIGSBY", "GRIMES",
- "GRIMM", "GRISHAM", "GRISSOM", "GRISWOLD", "GROCE", "GROGAN", "GROOMS", "GROSS", "GROSSMAN", "GROVE",
- "GROVER", "GROVES", "GRUBB", "GRUBBS", "GRUBER", "GUAJARDO", "GUENTHER", "GUERIN", "GUERRA", "GUERRERO",
- "GUESS", "GUEST", "GUEVARA", "GUFFEY", "GUIDRY", "GUILLEN", "GUILLORY", "GUINN", "GULLEY", "GUNDERSON",
- "GUNN", "GUNTER", "GUNTHER", "GURLEY", "GUSTAFSON", "GUTHRIE", "GUTIERREZ", "GUY", "GUYTON", "GUZMAN", "HA",
- "HAAG", "HAAS", "HAASE", "HACKER", "HACKETT", "HACKNEY", "HADDEN", "HADLEY", "HAGAN", "HAGEN", "HAGER",
- "HAGGARD", "HAGGERTY", "HAHN", "HAIGHT", "HAILEY", "HAINES", "HAIR", "HAIRSTON", "HALCOMB", "HALE", "HALES",
- "HALEY", "HALL", "HALLER", "HALLMAN", "HALSEY", "HALSTEAD", "HALVERSON", "HAM", "HAMBLIN", "HAMBY", "HAMEL",
- "HAMER", "HAMILTON", "HAMLIN", "HAMM", "HAMMER", "HAMMETT", "HAMMOND", "HAMMONDS", "HAMMONS", "HAMPTON",
- "HAMRICK", "HAN", "HANCOCK", "HAND", "HANDLEY", "HANDY", "HANES", "HANEY", "HANKINS", "HANKS", "HANLEY",
- "HANLON", "HANNA", "HANNAH", "HANNAN", "HANNON", "HANSEN", "HANSON", "HARBIN", "HARDAWAY", "HARDEE",
- "HARDEN", "HARDER", "HARDESTY", "HARDIN", "HARDING", "HARDISON", "HARDMAN", "HARDWICK", "HARDY", "HARE",
- "HARGIS", "HARGRAVE", "HARGROVE", "HARKINS", "HARLAN", "HARLEY", "HARLOW", "HARMAN", "HARMON", "HARMS",
- "HARNESS", "HARP", "HARPER", "HARR", "HARRELL", "HARRINGTON", "HARRIS", "HARRISON", "HARRY", "HART",
- "HARTER", "HARTLEY", "HARTMAN", "HARTMANN", "HARTWELL", "HARVEY", "HARWELL", "HARWOOD", "HASKELL",
- "HASKINS", "HASS", "HASSELL", "HASTINGS", "HATCH", "HATCHER", "HATCHETT", "HATFIELD", "HATHAWAY", "HATLEY",
- "HATTON", "HAUGEN", "HAUSER", "HAVENS", "HAWES", "HAWK", "HAWKINS", "HAWKS", "HAWLEY", "HAWTHORNE", "HAY",
- "HAYDEN", "HAYES", "HAYNES", "HAYS", "HAYWARD", "HAYWOOD", "HAZEL", "HEAD", "HEADLEY", "HEADRICK", "HEALEY",
- "HEALY", "HEARD", "HEARN", "HEATH", "HEATON", "HEBERT", "HECK", "HECKMAN", "HEDGES", "HEDRICK", "HEFFNER",
- "HEFLIN", "HEFNER", "HEIM", "HEIN", "HEINRICH", "HEINZ", "HELD", "HELLER", "HELM", "HELMS", "HELTON",
- "HEMBREE", "HEMPHILL", "HENDERSON", "HENDON", "HENDRICK", "HENDRICKS", "HENDRICKSON", "HENDRIX", "HENKE",
- "HENLEY", "HENNESSEY", "HENNING", "HENRY", "HENSLEY", "HENSON", "HER", "HERBERT", "HEREDIA", "HERMAN",
- "HERMANN", "HERNANDEZ", "HERNDON", "HERR", "HERRERA", "HERRICK", "HERRIN", "HERRING", "HERRINGTON",
- "HERRMANN", "HERRON", "HERSHBERGER", "HERZOG", "HESS", "HESTER", "HEWITT", "HEYWARD", "HIATT", "HIBBARD",
- "HICKEY", "HICKMAN", "HICKS", "HICKSON", "HIDALGO", "HIGDON", "HIGGINBOTHAM", "HIGGINS", "HIGGS", "HIGH",
- "HIGHTOWER", "HILDEBRAND", "HILDRETH", "HILL", "HILLARD", "HILLER", "HILLIARD", "HILLMAN", "HILLS",
- "HILTON", "HIMES", "HINDMAN", "HINDS", "HINES", "HINKLE", "HINOJOSA", "HINSON", "HINTON", "HIRSCH",
- "HITCHCOCK", "HITE", "HITT", "HO", "HOANG", "HOBBS", "HOBSON", "HODGE", "HODGES", "HODGSON", "HOFF",
- "HOFFMAN", "HOFFMANN", "HOGAN", "HOGG", "HOGUE", "HOKE", "HOLBROOK", "HOLCOMB", "HOLCOMBE", "HOLDEN",
- "HOLDER", "HOLGUIN", "HOLIDAY", "HOLLAND", "HOLLENBECK", "HOLLEY", "HOLLIDAY", "HOLLINGSWORTH", "HOLLINS",
- "HOLLIS", "HOLLOMAN", "HOLLOWAY", "HOLLY", "HOLM", "HOLMAN", "HOLMES", "HOLT", "HOLTON", "HOLTZ", "HOMAN",
- "HOMER", "HONEYCUTT", "HONG", "HOOD", "HOOK", "HOOKER", "HOOKS", "HOOPER", "HOOVER", "HOPE", "HOPKINS",
- "HOPPE", "HOPPER", "HOPSON", "HORAN", "HORN", "HORNE", "HORNER", "HORNSBY", "HOROWITZ", "HORSLEY", "HORTON",
- "HORVATH", "HOSKINS", "HOSTETLER", "HOUCK", "HOUGH", "HOUGHTON", "HOULE", "HOUSE", "HOUSER", "HOUSTON",
- "HOWARD", "HOWE", "HOWELL", "HOWERTON", "HOWES", "HOWLAND", "HOY", "HOYLE", "HOYT", "HSU", "HUANG",
- "HUBBARD", "HUBER", "HUBERT", "HUDDLESTON", "HUDGENS", "HUDGINS", "HUDSON", "HUERTA", "HUEY", "HUFF",
- "HUFFMAN", "HUGGINS", "HUGHES", "HUGHEY", "HULL", "HULSEY", "HUMES", "HUMMEL", "HUMPHREY", "HUMPHREYS",
- "HUMPHRIES", "HUNDLEY", "HUNT", "HUNTER", "HUNTINGTON", "HUNTLEY", "HURD", "HURLEY", "HURST", "HURT",
- "HURTADO", "HUSKEY", "HUSSEY", "HUSTON", "HUTCHENS", "HUTCHERSON", "HUTCHESON", "HUTCHINGS", "HUTCHINS",
- "HUTCHINSON", "HUTCHISON", "HUTSON", "HUTTO", "HUTTON", "HUYNH", "HWANG", "HYATT", "HYDE", "HYLAND",
- "HYLTON", "HYMAN", "HYNES", "IBARRA", "INGLE", "INGRAHAM", "INGRAM", "INMAN", "IRBY", "IRELAND", "IRISH",
- "IRIZARRY", "IRONS", "IRVIN", "IRVINE", "IRVING", "IRWIN", "ISAAC", "ISAACS", "ISAACSON", "ISBELL", "ISOM",
- "ISON", "ISRAEL", "IVERSON", "IVES", "IVEY", "IVORY", "IVY", "JACK", "JACKMAN", "JACKS", "JACKSON", "JACOB",
- "JACOBS", "JACOBSEN", "JACOBSON", "JACOBY", "JACQUES", "JAEGER", "JAMES", "JAMESON", "JAMISON", "JANES",
- "JANKOWSKI", "JANSEN", "JANSSEN", "JARAMILLO", "JARRELL", "JARRETT", "JARVIS", "JASPER", "JAY", "JAYNES",
- "JEAN", "JEFFERIES", "JEFFERS", "JEFFERSON", "JEFFERY", "JEFFREY", "JEFFRIES", "JENKINS", "JENNINGS",
- "JENSEN", "JENSON", "JERNIGAN", "JESSUP", "JETER", "JETT", "JEWELL", "JEWETT", "JIMENEZ", "JOBE", "JOE",
- "JOHANSEN", "JOHN", "JOHNS", "JOHNSON", "JOHNSTON", "JOINER", "JOLLEY", "JOLLY", "JONES", "JORDAN",
- "JORDON", "JORGENSEN", "JORGENSON", "JOSE", "JOSEPH", "JOY", "JOYCE", "JOYNER", "JUAREZ", "JUDD", "JUDE",
- "JUDGE", "JUDKINS", "JULIAN", "JUNG", "JUSTICE", "JUSTUS", "KAHN", "KAISER", "KAMINSKI", "KANE", "KANG",
- "KAPLAN", "KARR", "KASPER", "KATZ", "KAUFFMAN", "KAUFMAN", "KAY", "KAYE", "KEANE", "KEARNEY", "KEARNS",
- "KEATING", "KEATON", "KECK", "KEE", "KEEFE", "KEEFER", "KEEGAN", "KEEL", "KEELER", "KEELING", "KEEN",
- "KEENAN", "KEENE", "KEENER", "KEENEY", "KEETON", "KEITH", "KELLEHER", "KELLER", "KELLEY", "KELLOGG",
- "KELLUM", "KELLY", "KELSEY", "KELSO", "KEMP", "KEMPER", "KENDALL", "KENDRICK", "KENNEDY", "KENNEY", "KENNY",
- "KENT", "KENYON", "KERN", "KERNS", "KERR", "KESSLER", "KETCHUM", "KEY", "KEYES", "KEYS", "KEYSER", "KHAN",
- "KIDD", "KIDWELL", "KIEFER", "KILGORE", "KILLIAN", "KILPATRICK", "KIM", "KIMBALL", "KIMBLE", "KIMBRELL",
- "KIMBROUGH", "KIMMEL", "KINARD", "KINCAID", "KINDER", "KING", "KINGSLEY", "KINNEY", "KINSEY", "KIRBY",
- "KIRCHNER", "KIRK", "KIRKLAND", "KIRKPATRICK", "KIRKWOOD", "KISER", "KISH", "KITCHEN", "KITCHENS", "KLEIN",
- "KLINE", "KLINGER", "KNAPP", "KNIGHT", "KNOLL", "KNOTT", "KNOTTS", "KNOWLES", "KNOWLTON", "KNOX", "KNUDSEN",
- "KNUDSON", "KNUTSON", "KOCH", "KOEHLER", "KOENIG", "KOHL", "KOHLER", "KOHN", "KOLB", "KONG", "KOONCE",
- "KOONTZ", "KOPP", "KOVACH", "KOWALSKI", "KOZAK", "KOZLOWSKI", "KRAFT", "KRAMER", "KRAUS", "KRAUSE",
- "KRAUSS", "KREBS", "KRIEGER", "KROLL", "KRUEGER", "KRUG", "KRUGER", "KRUSE", "KUHN", "KUNKEL", "KUNTZ",
- "KUNZ", "KURTZ", "KUYKENDALL", "KYLE", "LABBE", "LABELLE", "LACEY", "LACHANCE", "LACKEY", "LACROIX", "LACY",
- "LADD", "LADNER", "LAFFERTY", "LAFLAMME", "LAFLEUR", "LAI", "LAIRD", "LAKE", "LAM", "LAMAR", "LAMB",
- "LAMBERT", "LAMM", "LANCASTER", "LANCE", "LAND", "LANDERS", "LANDIS", "LANDON", "LANDRUM", "LANDRY", "LANE",
- "LANEY", "LANG", "LANGDON", "LANGE", "LANGER", "LANGFORD", "LANGLEY", "LANGLOIS", "LANGSTON", "LANHAM",
- "LANIER", "LANKFORD", "LANNING", "LANTZ", "LAPLANTE", "LAPOINTE", "LAPORTE", "LARA", "LARGE", "LARKIN",
- "LAROCHE", "LAROSE", "LARRY", "LARSEN", "LARSON", "LARUE", "LASH", "LASHLEY", "LASSITER", "LASTER",
- "LATHAM", "LATIMER", "LATTIMORE", "LAU", "LAUER", "LAUGHLIN", "LAVENDER", "LAVIGNE", "LAVOIE", "LAW",
- "LAWHORN", "LAWLER", "LAWLESS", "LAWRENCE", "LAWS", "LAWSON", "LAWTON", "LAY", "LAYMAN", "LAYNE", "LAYTON",
- "LE", "LEA", "LEACH", "LEAHY", "LEAK", "LEAKE", "LEAL", "LEAR", "LEARY", "LEAVITT", "LEBLANC", "LEBRON",
- "LECLAIR", "LEDBETTER", "LEDESMA", "LEDFORD", "LEDOUX", "LEE", "LEEPER", "LEES", "LEFEBVRE", "LEGER",
- "LEGG", "LEGGETT", "LEHMAN", "LEHMANN", "LEIGH", "LEIGHTON", "LEMASTER", "LEMAY", "LEMIEUX", "LEMKE",
- "LEMMON", "LEMON", "LEMONS", "LEMUS", "LENNON", "LENTZ", "LENZ", "LEON", "LEONARD", "LEONE", "LERMA",
- "LERNER", "LEROY", "LESLIE", "LESSARD", "LESTER", "LEUNG", "LEVESQUE", "LEVI", "LEVIN", "LEVINE", "LEVY",
- "LEW", "LEWANDOWSKI", "LEWIS", "LEYVA", "LI", "LIBBY", "LIDDELL", "LIEBERMAN", "LIGHT", "LIGHTFOOT",
- "LIGHTNER", "LIGON", "LILES", "LILLEY", "LILLY", "LIM", "LIMA", "LIMON", "LIN", "LINARES", "LINCOLN",
- "LIND", "LINDBERG", "LINDER", "LINDGREN", "LINDLEY", "LINDQUIST", "LINDSAY", "LINDSEY", "LINDSTROM", "LINK",
- "LINKOUS", "LINN", "LINTON", "LINVILLE", "LIPSCOMB", "LIRA", "LISTER", "LITTLE", "LITTLEFIELD",
- "LITTLEJOHN", "LITTLETON", "LIU", "LIVELY", "LIVINGSTON", "LLOYD", "LO", "LOCKE", "LOCKETT", "LOCKHART",
- "LOCKLEAR", "LOCKWOOD", "LOERA", "LOFTIN", "LOFTIS", "LOFTON", "LOGAN", "LOGSDON", "LOGUE", "LOMAX",
- "LOMBARD", "LOMBARDI", "LOMBARDO", "LONDON", "LONG", "LONGO", "LONGORIA", "LOOMIS", "LOONEY", "LOPER",
- "LOPES", "LOPEZ", "LORD", "LORENZ", "LORENZO", "LOTT", "LOUIS", "LOVE", "LOVEJOY", "LOVELACE", "LOVELESS",
- "LOVELL", "LOVETT", "LOVING", "LOW", "LOWE", "LOWELL", "LOWERY", "LOWMAN", "LOWRY", "LOY", "LOYA", "LOYD",
- "LOZANO", "LU", "LUCAS", "LUCE", "LUCERO", "LUCIANO", "LUCKETT", "LUDWIG", "LUGO", "LUIS", "LUJAN", "LUKE",
- "LUMPKIN", "LUNA", "LUND", "LUNDBERG", "LUNDY", "LUNSFORD", "LUONG", "LUSK", "LUSTER", "LUTHER", "LUTTRELL",
- "LUTZ", "LY", "LYLE", "LYLES", "LYMAN", "LYNCH", "LYNN", "LYON", "LYONS", "LYTLE", "MA", "MAAS", "MABE",
- "MABRY", "MACDONALD", "MACE", "MACHADO", "MACIAS", "MACK", "MACKAY", "MACKENZIE", "MACKEY", "MACKIE",
- "MACKLIN", "MACLEAN", "MACLEOD", "MACON", "MADDEN", "MADDOX", "MADERA", "MADISON", "MADRID", "MADRIGAL",
- "MADSEN", "MAES", "MAESTAS", "MAGANA", "MAGEE", "MAGGARD", "MAGNUSON", "MAGUIRE", "MAHAFFEY", "MAHAN",
- "MAHER", "MAHON", "MAHONEY", "MAIER", "MAIN", "MAJOR", "MAJORS", "MAKI", "MALCOLM", "MALDONADO", "MALLEY",
- "MALLORY", "MALLOY", "MALONE", "MALONEY", "MANCINI", "MANCUSO", "MANESS", "MANGUM", "MANLEY", "MANN",
- "MANNING", "MANNS", "MANSFIELD", "MANSON", "MANUEL", "MANZO", "MAPLE", "MAPLES", "MARBLE", "MARCH",
- "MARCHAND", "MARCOTTE", "MARCUM", "MARCUS", "MARES", "MARIN", "MARINO", "MARION", "MARK", "MARKHAM",
- "MARKLEY", "MARKS", "MARLER", "MARLOW", "MARLOWE", "MARQUEZ", "MARQUIS", "MARR", "MARRERO", "MARROQUIN",
- "MARSH", "MARSHALL", "MARTEL", "MARTELL", "MARTENS", "MARTIN", "MARTINDALE", "MARTINEZ", "MARTINO",
- "MARTINS", "MARTINSON", "MARTZ", "MARVIN", "MARX", "MASON", "MASSEY", "MASSIE", "MAST", "MASTERS",
- "MASTERSON", "MATA", "MATHENY", "MATHESON", "MATHEWS", "MATHIAS", "MATHIS", "MATLOCK", "MATNEY", "MATOS",
- "MATSON", "MATTESON", "MATTHEW", "MATTHEWS", "MATTINGLY", "MATTISON", "MATTOS", "MATTOX", "MATTSON",
- "MAULDIN", "MAUPIN", "MAURER", "MAURO", "MAXEY", "MAXFIELD", "MAXWELL", "MAY", "MAYBERRY", "MAYER",
- "MAYERS", "MAYES", "MAYFIELD", "MAYHEW", "MAYNARD", "MAYO", "MAYS", "MAZZA", "MCADAMS", "MCAFEE",
- "MCALISTER", "MCALLISTER", "MCARTHUR", "MCBEE", "MCBRIDE", "MCCABE", "MCCAFFREY", "MCCAIN", "MCCALL",
- "MCCALLISTER", "MCCALLUM", "MCCANN", "MCCANTS", "MCCARTER", "MCCARTHY", "MCCARTNEY", "MCCARTY", "MCCASKILL",
- "MCCAULEY", "MCCLAIN", "MCCLANAHAN", "MCCLARY", "MCCLEARY", "MCCLELLAN", "MCCLELLAND", "MCCLENDON",
- "MCCLINTOCK", "MCCLINTON", "MCCLOSKEY", "MCCLOUD", "MCCLUNG", "MCCLURE", "MCCOLLUM", "MCCOMBS", "MCCONNELL",
- "MCCOOL", "MCCORD", "MCCORKLE", "MCCORMACK", "MCCORMICK", "MCCOY", "MCCRACKEN", "MCCRARY", "MCCRAY",
- "MCCREARY", "MCCUE", "MCCULLOCH", "MCCULLOUGH", "MCCUNE", "MCCURDY", "MCCURRY", "MCCUTCHEON", "MCDADE",
- "MCDANIEL", "MCDANIELS", "MCDERMOTT", "MCDONALD", "MCDONNELL", "MCDONOUGH", "MCDOUGAL", "MCDOUGALL",
- "MCDOWELL", "MCDUFFIE", "MCELROY", "MCEWEN", "MCFADDEN", "MCFALL", "MCFARLAND", "MCFARLANE", "MCGEE",
- "MCGEHEE", "MCGHEE", "MCGILL", "MCGINNIS", "MCGOVERN", "MCGOWAN", "MCGRATH", "MCGRAW", "MCGREGOR", "MCGREW",
- "MCGRIFF", "MCGUIRE", "MCHENRY", "MCHUGH", "MCINNIS", "MCINTIRE", "MCINTOSH", "MCINTYRE", "MCKAY", "MCKEE",
- "MCKEEVER", "MCKENNA", "MCKENNEY", "MCKENZIE", "MCKEON", "MCKEOWN", "MCKINLEY", "MCKINNEY", "MCKINNON",
- "MCKNIGHT", "MCLAIN", "MCLAUGHLIN", "MCLAURIN", "MCLEAN", "MCLEMORE", "MCLENDON", "MCLEOD", "MCMAHAN",
- "MCMAHON", "MCMANUS", "MCMASTER", "MCMILLAN", "MCMILLEN", "MCMILLIAN", "MCMULLEN", "MCMURRAY", "MCNABB",
- "MCNAIR", "MCNALLY", "MCNAMARA", "MCNEAL", "MCNEELY", "MCNEIL", "MCNEILL", "MCNULTY", "MCNUTT", "MCPHERSON",
- "MCQUEEN", "MCRAE", "MCREYNOLDS", "MCSWAIN", "MCVAY", "MCVEY", "MCWHORTER", "MCWILLIAMS", "MEACHAM", "MEAD",
- "MEADE", "MEADOR", "MEADOWS", "MEANS", "MEARS", "MEDEIROS", "MEDINA", "MEDLEY", "MEDLIN", "MEDLOCK",
- "MEDRANO", "MEEHAN", "MEEK", "MEEKER", "MEEKS", "MEIER", "MEJIA", "MELANCON", "MELENDEZ", "MELLO", "MELTON",
- "MELVIN", "MENA", "MENARD", "MENDENHALL", "MENDEZ", "MENDOZA", "MENENDEZ", "MERCADO", "MERCER", "MERCHANT",
- "MERCIER", "MEREDITH", "MERRELL", "MERRICK", "MERRILL", "MERRIMAN", "MERRITT", "MESA", "MESSENGER",
- "MESSER", "MESSINA", "METCALF", "METZ", "METZGER", "METZLER", "MEYER", "MEYERS", "MEZA", "MICHAEL",
- "MICHAELS", "MICHAUD", "MICHEL", "MICKENS", "MIDDLETON", "MILAM", "MILBURN", "MILES", "MILLARD", "MILLER",
- "MILLIGAN", "MILLIKEN", "MILLS", "MILNE", "MILNER", "MILTON", "MIMS", "MINER", "MINNICK", "MINOR", "MINTER",
- "MINTON", "MINTZ", "MIRANDA", "MIRELES", "MITCHELL", "MIXON", "MIZE", "MOBLEY", "MOCK", "MOE", "MOELLER",
- "MOEN", "MOFFETT", "MOFFITT", "MOHR", "MOJICA", "MOLINA", "MOLL", "MONACO", "MONAGHAN", "MONAHAN", "MONEY",
- "MONIZ", "MONK", "MONROE", "MONSON", "MONTAGUE", "MONTALVO", "MONTANEZ", "MONTANO", "MONTEMAYOR", "MONTERO",
- "MONTES", "MONTEZ", "MONTGOMERY", "MONTOYA", "MOODY", "MOON", "MOONEY", "MOORE", "MOORMAN", "MORA",
- "MORALES", "MORAN", "MOREAU", "MOREHEAD", "MORELAND", "MORENO", "MOREY", "MORGAN", "MORIARTY", "MORIN",
- "MORLEY", "MORRELL", "MORRILL", "MORRIS", "MORRISON", "MORRISSEY", "MORROW", "MORSE", "MORTENSEN", "MORTON",
- "MOSBY", "MOSELEY", "MOSER", "MOSES", "MOSHER", "MOSIER", "MOSLEY", "MOSS", "MOTLEY", "MOTT", "MOULTON",
- "MOULTRIE", "MOUNT", "MOWERY", "MOYA", "MOYE", "MOYER", "MUELLER", "MUHAMMAD", "MUIR", "MULKEY", "MULL",
- "MULLEN", "MULLER", "MULLIGAN", "MULLIN", "MULLINS", "MULLIS", "MUNCY", "MUNDY", "MUNIZ", "MUNN", "MUNOZ",
- "MUNSON", "MURDOCK", "MURILLO", "MURPHY", "MURRAY", "MURRELL", "MURRY", "MUSE", "MUSGROVE", "MUSSER",
- "MYERS", "MYLES", "MYRICK", "NABORS", "NADEAU", "NAGEL", "NAGLE", "NAGY", "NAJERA", "NAKAMURA", "NALL",
- "NANCE", "NAPIER", "NAQUIN", "NARANJO", "NARVAEZ", "NASH", "NATHAN", "NATION", "NAVA", "NAVARRETE",
- "NAVARRO", "NAYLOR", "NEAL", "NEALY", "NEEDHAM", "NEEL", "NEELEY", "NEELY", "NEFF", "NEGRETE", "NEGRON",
- "NEIL", "NEILL", "NELMS", "NELSON", "NESBITT", "NESMITH", "NESS", "NESTOR", "NETTLES", "NEUMAN", "NEUMANN",
- "NEVAREZ", "NEVILLE", "NEW", "NEWBERRY", "NEWBY", "NEWCOMB", "NEWELL", "NEWKIRK", "NEWMAN", "NEWSOM",
- "NEWSOME", "NEWTON", "NG", "NGO", "NGUYEN", "NICHOLAS", "NICHOLS", "NICHOLSON", "NICKEL", "NICKERSON",
- "NIELSEN", "NIELSON", "NIETO", "NIEVES", "NILES", "NIX", "NIXON", "NOBLE", "NOBLES", "NOE", "NOEL", "NOLAN",
- "NOLAND", "NOLEN", "NOLL", "NOONAN", "NORFLEET", "NORIEGA", "NORMAN", "NORRIS", "NORTH", "NORTON",
- "NORWOOD", "NOVAK", "NOVOTNY", "NOWAK", "NOWLIN", "NOYES", "NUGENT", "NULL", "NUMBERS", "NUNES", "NUNEZ",
- "NUNLEY", "NUNN", "NUTT", "NUTTER", "NYE", "OAKES", "OAKLEY", "OAKS", "OATES", "OBRIEN", "OBRYAN", "OCAMPO",
- "OCASIO", "OCHOA", "OCHS", "OCONNELL", "OCONNER", "OCONNOR", "ODELL", "ODEN", "ODOM", "ODONNELL", "ODUM",
- "OGDEN", "OGLE", "OGLESBY", "OH", "OHARA", "OJEDA", "OKEEFE", "OLDHAM", "OLDS", "OLEARY", "OLIPHANT",
- "OLIVA", "OLIVARES", "OLIVAREZ", "OLIVAS", "OLIVE", "OLIVEIRA", "OLIVER", "OLIVO", "OLMSTEAD", "OLSEN",
- "OLSON", "OLVERA", "OMALLEY", "ONEAL", "ONEIL", "ONEILL", "ONTIVEROS", "ORDONEZ", "OREILLY", "ORELLANA",
- "ORLANDO", "ORNELAS", "OROSCO", "OROURKE", "OROZCO", "ORR", "ORTA", "ORTEGA", "ORTIZ", "OSBORN", "OSBORNE",
- "OSBURN", "OSGOOD", "OSHEA", "OSORIO", "OSTEEN", "OSTRANDER", "OSULLIVAN", "OSWALD", "OSWALT", "OTERO",
- "OTIS", "OTOOLE", "OTT", "OTTO", "OUELLETTE", "OUTLAW", "OVERBY", "OVERSTREET", "OVERTON", "OWEN", "OWENS",
- "PACE", "PACHECO", "PACK", "PACKARD", "PACKER", "PADGETT", "PADILLA", "PAGAN", "PAGE", "PAIGE", "PAINE",
- "PAINTER", "PAK", "PALACIOS", "PALMA", "PALMER", "PALUMBO", "PANNELL", "PANTOJA", "PAPE", "PAPPAS",
- "PAQUETTE", "PARADIS", "PARDO", "PAREDES", "PARENT", "PARHAM", "PARIS", "PARISH", "PARK", "PARKER",
- "PARKINSON", "PARKS", "PARNELL", "PARR", "PARRA", "PARRIS", "PARRISH", "PARROTT", "PARRY", "PARSON",
- "PARSONS", "PARTIN", "PARTRIDGE", "PASSMORE", "PATE", "PATEL", "PATERSON", "PATINO", "PATRICK", "PATTEN",
- "PATTERSON", "PATTON", "PAUL", "PAULEY", "PAULSEN", "PAULSON", "PAXTON", "PAYNE", "PAYTON", "PAZ", "PEACE",
- "PEACHEY", "PEACOCK", "PEAK", "PEARCE", "PEARSON", "PEASE", "PECK", "PEDERSEN", "PEDERSON", "PEEBLES",
- "PEEK", "PEEL", "PEELER", "PEEPLES", "PELLETIER", "PELTIER", "PEMBERTON", "PENA", "PENCE", "PENDER",
- "PENDERGRASS", "PENDLETON", "PENN", "PENNELL", "PENNINGTON", "PENNY", "PEOPLES", "PEPPER", "PERALES",
- "PERALTA", "PERDUE", "PEREA", "PEREIRA", "PEREZ", "PERKINS", "PERREAULT", "PERRIN", "PERRON", "PERRY",
- "PERRYMAN", "PERSON", "PETER", "PETERMAN", "PETERS", "PETERSEN", "PETERSON", "PETIT", "PETRIE", "PETTIGREW",
- "PETTIS", "PETTIT", "PETTWAY", "PETTY", "PEYTON", "PFEIFER", "PFEIFFER", "PHAM", "PHAN", "PHELAN", "PHELPS",
- "PHIFER", "PHILLIPS", "PHIPPS", "PICARD", "PICKARD", "PICKENS", "PICKERING", "PICKETT", "PIERCE", "PIERRE",
- "PIERSON", "PIKE", "PILCHER", "PIMENTEL", "PINA", "PINCKNEY", "PINEDA", "PINKERTON", "PINKSTON", "PINO",
- "PINSON", "PINTO", "PIPER", "PIPKIN", "PIPPIN", "PITMAN", "PITRE", "PITT", "PITTMAN", "PITTS", "PLACE",
- "PLANTE", "PLATT", "PLEASANT", "PLUMMER", "PLUNKETT", "POE", "POGUE", "POINDEXTER", "POINTER", "POIRIER",
- "POLANCO", "POLAND", "POLING", "POLK", "POLLACK", "POLLARD", "POLLOCK", "POMEROY", "PONCE", "POND",
- "PONDER", "POOL", "POOLE", "POORE", "POPE", "POPP", "PORTER", "PORTERFIELD", "PORTILLO", "POSEY", "POST",
- "POSTON", "POTTER", "POTTS", "POULIN", "POUNDS", "POWELL", "POWER", "POWERS", "PRADO", "PRATER", "PRATHER",
- "PRATT", "PRENTICE", "PRESCOTT", "PRESLEY", "PRESSLEY", "PRESTON", "PREWITT", "PRICE", "PRICHARD", "PRIDE",
- "PRIDGEN", "PRIEST", "PRIETO", "PRINCE", "PRINGLE", "PRITCHARD", "PRITCHETT", "PROCTOR", "PROFFITT",
- "PROSSER", "PROVOST", "PRUETT", "PRUITT", "PRYOR", "PUCKETT", "PUENTE", "PUGH", "PULIDO", "PULLEN",
- "PULLEY", "PULLIAM", "PURCELL", "PURDY", "PURNELL", "PURVIS", "PUTMAN", "PUTNAM", "PYLE", "QUALLS",
- "QUARLES", "QUEEN", "QUEZADA", "QUICK", "QUIGLEY", "QUILLEN", "QUINLAN", "QUINN", "QUINONES", "QUINONEZ",
- "QUINTANA", "QUINTANILLA", "QUINTERO", "QUIROZ", "RADER", "RADFORD", "RAFFERTY", "RAGAN", "RAGLAND",
- "RAGSDALE", "RAINES", "RAINEY", "RAINS", "RALEY", "RALPH", "RALSTON", "RAMEY", "RAMIREZ", "RAMON", "RAMOS",
- "RAMSAY", "RAMSEY", "RAND", "RANDALL", "RANDLE", "RANDOLPH", "RANEY", "RANGEL", "RANKIN", "RANSOM", "RAPP",
- "RASH", "RASMUSSEN", "RATCLIFF", "RATLIFF", "RAU", "RAUCH", "RAWLINGS", "RAWLINS", "RAWLS", "RAY",
- "RAYBURN", "RAYFORD", "RAYMOND", "RAYNOR", "RAZO", "REA", "READ", "REAGAN", "REARDON", "REAVES", "RECTOR",
- "REDD", "REDDEN", "REDDICK", "REDDING", "REDDY", "REDMAN", "REDMON", "REDMOND", "REECE", "REED", "REEDER",
- "REEDY", "REES", "REESE", "REEVES", "REGALADO", "REGAN", "REGISTER", "REICH", "REICHERT", "REID", "REILLY",
- "REINHARDT", "REINHART", "REIS", "REITER", "RENDON", "RENFRO", "RENNER", "RENO", "RENTERIA", "REUTER",
- "REY", "REYES", "REYNA", "REYNOLDS", "REYNOSO", "RHEA", "RHOADES", "RHOADS", "RHODEN", "RHODES", "RICCI",
- "RICE", "RICH", "RICHARD", "RICHARDS", "RICHARDSON", "RICHEY", "RICHIE", "RICHMOND", "RICHTER", "RICKARD",
- "RICKER", "RICKETTS", "RICKMAN", "RICKS", "RICO", "RIDDELL", "RIDDICK", "RIDDLE", "RIDENOUR", "RIDER",
- "RIDGEWAY", "RIDLEY", "RIFE", "RIGBY", "RIGGINS", "RIGGS", "RIGSBY", "RILEY", "RINALDI", "RINEHART", "RING",
- "RIOS", "RIPLEY", "RITCHEY", "RITCHIE", "RITTER", "RIVAS", "RIVERA", "RIVERS", "RIZZO", "ROACH", "ROARK",
- "ROBB", "ROBBINS", "ROBERGE", "ROBERSON", "ROBERT", "ROBERTS", "ROBERTSON", "ROBEY", "ROBINETTE", "ROBINS",
- "ROBINSON", "ROBISON", "ROBLES", "ROBSON", "ROBY", "ROCHA", "ROCHE", "ROCK", "ROCKWELL", "RODEN",
- "RODERICK", "RODGERS", "RODRIGUE", "RODRIGUES", "RODRIGUEZ", "RODRIQUEZ", "ROE", "ROGER", "ROGERS", "ROHR",
- "ROJAS", "ROLAND", "ROLDAN", "ROLLER", "ROLLINS", "ROMAN", "ROMANO", "ROMEO", "ROMERO", "ROMO", "RONEY",
- "ROONEY", "ROOT", "ROPER", "ROQUE", "ROSA", "ROSADO", "ROSALES", "ROSARIO", "ROSAS", "ROSE", "ROSEN",
- "ROSENBAUM", "ROSENBERG", "ROSENTHAL", "ROSS", "ROSSER", "ROSSI", "ROTH", "ROUNDS", "ROUNDTREE", "ROUNTREE",
- "ROUSE", "ROUSH", "ROUSSEAU", "ROUSSEL", "ROWAN", "ROWE", "ROWELL", "ROWLAND", "ROWLEY", "ROY", "ROYAL",
- "ROYBAL", "ROYER", "ROYSTER", "RUBIN", "RUBIO", "RUBY", "RUCKER", "RUDD", "RUDOLPH", "RUFF", "RUFFIN",
- "RUIZ", "RUNYAN", "RUNYON", "RUPERT", "RUPP", "RUSH", "RUSHING", "RUSS", "RUSSELL", "RUSSO", "RUST", "RUTH",
- "RUTHERFORD", "RUTLEDGE", "RYAN", "RYDER", "SAAVEDRA", "SABO", "SACCO", "SADLER", "SAENZ", "SAGE", "SAGER",
- "SALAS", "SALAZAR", "SALCEDO", "SALCIDO", "SALDANA", "SALDIVAR", "SALERNO", "SALES", "SALGADO", "SALINAS",
- "SALISBURY", "SALLEE", "SALLEY", "SALMON", "SALTER", "SAM", "SAMMONS", "SAMPLE", "SAMPLES", "SAMPSON",
- "SAMS", "SAMSON", "SAMUEL", "SAMUELS", "SANBORN", "SANCHES", "SANCHEZ", "SANDBERG", "SANDER", "SANDERS",
- "SANDERSON", "SANDLIN", "SANDOVAL", "SANDS", "SANFORD", "SANTANA", "SANTIAGO", "SANTOS", "SAPP", "SARGENT",
- "SASSER", "SATTERFIELD", "SAUCEDO", "SAUCIER", "SAUER", "SAULS", "SAUNDERS", "SAVAGE", "SAVOY", "SAWYER",
- "SAWYERS", "SAXON", "SAXTON", "SAYERS", "SAYLOR", "SAYRE", "SCALES", "SCANLON", "SCARBOROUGH", "SCARBROUGH",
- "SCHAEFER", "SCHAEFFER", "SCHAFER", "SCHAFFER", "SCHELL", "SCHERER", "SCHILLER", "SCHILLING", "SCHINDLER",
- "SCHMID", "SCHMIDT", "SCHMITT", "SCHMITZ", "SCHNEIDER", "SCHOFIELD", "SCHOLL", "SCHOONOVER", "SCHOTT",
- "SCHRADER", "SCHREIBER", "SCHREINER", "SCHROEDER", "SCHUBERT", "SCHULER", "SCHULTE", "SCHULTZ", "SCHULZ",
- "SCHULZE", "SCHUMACHER", "SCHUSTER", "SCHWAB", "SCHWARTZ", "SCHWARZ", "SCHWEITZER", "SCOGGINS", "SCOTT",
- "SCRIBNER", "SCROGGINS", "SCRUGGS", "SCULLY", "SEAL", "SEALS", "SEAMAN", "SEARCY", "SEARS", "SEATON",
- "SEAY", "SEE", "SEELEY", "SEGURA", "SEIBERT", "SEIDEL", "SEIFERT", "SEILER", "SEITZ", "SELBY", "SELF",
- "SELL", "SELLERS", "SELLS", "SENA", "SEPULVEDA", "SERNA", "SERRANO", "SESSIONS", "SETTLE", "SETTLES",
- "SEVERSON", "SEWARD", "SEWELL", "SEXTON", "SEYMORE", "SEYMOUR", "SHACKELFORD", "SHADE", "SHAFER", "SHAFFER",
- "SHAH", "SHANK", "SHANKS", "SHANNON", "SHAPIRO", "SHARKEY", "SHARP", "SHARPE", "SHAVER", "SHAW", "SHAY",
- "SHEA", "SHEARER", "SHEEHAN", "SHEETS", "SHEFFIELD", "SHELBY", "SHELDON", "SHELL", "SHELLEY", "SHELLY",
- "SHELTON", "SHEPARD", "SHEPHARD", "SHEPHERD", "SHEPPARD", "SHERIDAN", "SHERMAN", "SHERRILL", "SHERROD",
- "SHERRY", "SHERWOOD", "SHIELDS", "SHIFFLETT", "SHIN", "SHINN", "SHIPLEY", "SHIPMAN", "SHIPP", "SHIRLEY",
- "SHIVELY", "SHIVERS", "SHOCKLEY", "SHOEMAKER", "SHOOK", "SHORE", "SHORES", "SHORT", "SHORTER", "SHRADER",
- "SHULER", "SHULL", "SHULTZ", "SHUMAKER", "SHUMAN", "SHUMATE", "SIBLEY", "SIDES", "SIEGEL", "SIERRA",
- "SIGLER", "SIKES", "SILER", "SILLS", "SILVA", "SILVER", "SILVERMAN", "SILVERS", "SILVIA", "SIMMONS",
- "SIMMS", "SIMON", "SIMONE", "SIMONS", "SIMONSON", "SIMPKINS", "SIMPSON", "SIMS", "SINCLAIR", "SINGER",
- "SINGH", "SINGLETARY", "SINGLETON", "SIPES", "SISCO", "SISK", "SISSON", "SIZEMORE", "SKAGGS", "SKELTON",
- "SKIDMORE", "SKINNER", "SKIPPER", "SLACK", "SLADE", "SLAGLE", "SLATER", "SLATON", "SLATTERY", "SLAUGHTER",
- "SLAYTON", "SLEDGE", "SLOAN", "SLOCUM", "SLONE", "SMALL", "SMALLEY", "SMALLS", "SMALLWOOD", "SMART",
- "SMILEY", "SMITH", "SMITHSON", "SMOOT", "SMOTHERS", "SMYTH", "SNEAD", "SNEED", "SNELL", "SNIDER", "SNIPES",
- "SNODGRASS", "SNOW", "SNOWDEN", "SNYDER", "SOARES", "SOLANO", "SOLIS", "SOLIZ", "SOLOMON", "SOMERS",
- "SOMERVILLE", "SOMMER", "SOMMERS", "SONG", "SORENSEN", "SORENSON", "SORIA", "SORIANO", "SORRELL", "SOSA",
- "SOTELO", "SOTO", "SOUSA", "SOUTH", "SOUTHARD", "SOUTHERLAND", "SOUTHERN", "SOUZA", "SOWELL", "SOWERS",
- "SPAIN", "SPALDING", "SPANGLER", "SPANN", "SPARKMAN", "SPARKS", "SPARROW", "SPAULDING", "SPEAR", "SPEARMAN",
- "SPEARS", "SPEED", "SPEER", "SPEIGHT", "SPELLMAN", "SPENCE", "SPENCER", "SPERRY", "SPICER", "SPILLMAN",
- "SPINKS", "SPIVEY", "SPOONER", "SPRADLIN", "SPRAGUE", "SPRIGGS", "SPRING", "SPRINGER", "SPROUSE", "SPRUILL",
- "SPURGEON", "SPURLOCK", "SQUIRES", "STACEY", "STACK", "STACKHOUSE", "STACY", "STAFFORD", "STAGGS", "STAHL",
- "STALEY", "STALLINGS", "STALLWORTH", "STAMM", "STAMPER", "STAMPS", "STANFIELD", "STANFORD", "STANLEY",
- "STANTON", "STAPLES", "STAPLETON", "STARK", "STARKEY", "STARKS", "STARLING", "STARNES", "STARR", "STATEN",
- "STATON", "STAUFFER", "STCLAIR", "STEADMAN", "STEARNS", "STEED", "STEEL", "STEELE", "STEEN", "STEFFEN",
- "STEGALL", "STEIN", "STEINBERG", "STEINER", "STEPHEN", "STEPHENS", "STEPHENSON", "STEPP", "STERLING",
- "STERN", "STEVENS", "STEVENSON", "STEWARD", "STEWART", "STIDHAM", "STILES", "STILL", "STILLMAN",
- "STILLWELL", "STILTNER", "STINE", "STINNETT", "STINSON", "STITT", "STJOHN", "STOCK", "STOCKTON", "STODDARD",
- "STOKER", "STOKES", "STOLL", "STONE", "STONER", "STOREY", "STORY", "STOTT", "STOUT", "STOVALL", "STOVER",
- "STOWE", "STPIERRE", "STRAIN", "STRAND", "STRANGE", "STRATTON", "STRAUB", "STRAUSS", "STREET", "STREETER",
- "STRICKLAND", "STRINGER", "STRONG", "STROTHER", "STROUD", "STROUP", "STRUNK", "STUART", "STUBBLEFIELD",
- "STUBBS", "STUCKEY", "STULL", "STUMP", "STURDIVANT", "STURGEON", "STURGILL", "STURGIS", "STURM", "STYLES",
- "SUAREZ", "SUGGS", "SULLIVAN", "SUMMERLIN", "SUMMERS", "SUMNER", "SUMPTER", "SUN", "SUTHERLAND", "SUTTER",
- "SUTTON", "SWAFFORD", "SWAIN", "SWAN", "SWANK", "SWANN", "SWANSON", "SWARTZ", "SWEARINGEN", "SWEAT",
- "SWEENEY", "SWEET", "SWENSON", "SWIFT", "SWISHER", "SWITZER", "SWOPE", "SYKES", "SYLVESTER", "TABER",
- "TABOR", "TACKETT", "TAFT", "TAGGART", "TALBERT", "TALBOT", "TALBOTT", "TALLENT", "TALLEY", "TAM", "TAMAYO",
- "TAN", "TANAKA", "TANG", "TANNER", "TAPIA", "TAPP", "TARVER", "TATE", "TATUM", "TAVARES", "TAYLOR",
- "TEAGUE", "TEAL", "TEEL", "TEETER", "TEJADA", "TEJEDA", "TELLEZ", "TEMPLE", "TEMPLETON", "TENNANT",
- "TENNEY", "TERRELL", "TERRILL", "TERRY", "THACKER", "THAMES", "THAO", "THARP", "THATCHER", "THAYER",
- "THERIAULT", "THERIOT", "THIBODEAU", "THIBODEAUX", "THIEL", "THIGPEN", "THOMAS", "THOMASON", "THOMPSON",
- "THOMSEN", "THOMSON", "THORN", "THORNBURG", "THORNE", "THORNHILL", "THORNTON", "THORP", "THORPE", "THORTON",
- "THRASH", "THRASHER", "THURMAN", "THURSTON", "TIBBETTS", "TIBBS", "TICE", "TIDWELL", "TIERNEY", "TIJERINA",
- "TILLER", "TILLERY", "TILLEY", "TILLMAN", "TILTON", "TIMM", "TIMMONS", "TINKER", "TINSLEY", "TIPTON",
- "TIRADO", "TISDALE", "TITUS", "TOBIAS", "TOBIN", "TODD", "TOLBERT", "TOLEDO", "TOLER", "TOLIVER",
- "TOLLIVER", "TOM", "TOMLIN", "TOMLINSON", "TOMPKINS", "TONEY", "TONG", "TORO", "TORRENCE", "TORRES",
- "TORREZ", "TOTH", "TOTTEN", "TOVAR", "TOWNES", "TOWNS", "TOWNSEND", "TRACY", "TRAHAN", "TRAMMELL", "TRAN",
- "TRAPP", "TRASK", "TRAVERS", "TRAVIS", "TRAYLOR", "TREADWAY", "TREADWELL", "TREJO", "TREMBLAY", "TRENT",
- "TREVINO", "TRIBBLE", "TRICE", "TRIMBLE", "TRINIDAD", "TRIPLETT", "TRIPP", "TROTTER", "TROUT", "TROUTMAN",
- "TROY", "TRUDEAU", "TRUE", "TRUITT", "TRUJILLO", "TRUONG", "TUBBS", "TUCK", "TUCKER", "TUGGLE", "TURK",
- "TURLEY", "TURMAN", "TURNBULL", "TURNER", "TURNEY", "TURPIN", "TUTTLE", "TYLER", "TYNER", "TYREE", "TYSON",
- "ULRICH", "UNDERHILL", "UNDERWOOD", "UNGER", "UPCHURCH", "UPSHAW", "UPTON", "URBAN", "URBINA", "URIBE",
- "USHER", "UTLEY", "VAIL", "VALADEZ", "VALDES", "VALDEZ", "VALENCIA", "VALENTI", "VALENTIN", "VALENTINE",
- "VALENZUELA", "VALERIO", "VALLE", "VALLEJO", "VALLES", "VAN", "VANBUREN", "VANCE", "VANDIVER", "VANDYKE",
- "VANG", "VANHOOSE", "VANHORN", "VANMETER", "VANN", "VANOVER", "VANWINKLE", "VARELA", "VARGAS", "VARNER",
- "VARNEY", "VASQUEZ", "VAUGHAN", "VAUGHN", "VAUGHT", "VAZQUEZ", "VEAL", "VEGA", "VELA", "VELASCO",
- "VELASQUEZ", "VELAZQUEZ", "VELEZ", "VENABLE", "VENEGAS", "VENTURA", "VERA", "VERDIN", "VERGARA", "VERNON",
- "VEST", "VETTER", "VICK", "VICKERS", "VICKERY", "VICTOR", "VIDAL", "VIEIRA", "VIERA", "VIGIL", "VILLA",
- "VILLALOBOS", "VILLANUEVA", "VILLAREAL", "VILLARREAL", "VILLASENOR", "VILLEGAS", "VINCENT", "VINES",
- "VINSON", "VITALE", "VO", "VOGEL", "VOGT", "VOSS", "VU", "VUE", "WADDELL", "WADE", "WADSWORTH", "WAGGONER",
- "WAGNER", "WAGONER", "WAHL", "WAITE", "WAKEFIELD", "WALDEN", "WALDRON", "WALDROP", "WALKER", "WALL",
- "WALLACE", "WALLEN", "WALLER", "WALLING", "WALLIS", "WALLS", "WALSH", "WALSTON", "WALTER", "WALTERS",
- "WALTON", "WAMPLER", "WANG", "WARD", "WARDEN", "WARE", "WARFIELD", "WARNER", "WARREN", "WASHBURN",
- "WASHINGTON", "WASSON", "WATERMAN", "WATERS", "WATKINS", "WATSON", "WATT", "WATTERS", "WATTS", "WAUGH",
- "WAY", "WAYNE", "WEATHERFORD", "WEATHERLY", "WEATHERS", "WEAVER", "WEBB", "WEBBER", "WEBER", "WEBSTER",
- "WEDDLE", "WEED", "WEEKS", "WEEMS", "WEINBERG", "WEINER", "WEINSTEIN", "WEIR", "WEIS", "WEISS", "WELCH",
- "WELDON", "WELKER", "WELLER", "WELLMAN", "WELLS", "WELSH", "WENDT", "WENGER", "WENTWORTH", "WENTZ",
- "WENZEL", "WERNER", "WERTZ", "WESLEY", "WEST", "WESTBROOK", "WESTER", "WESTFALL", "WESTMORELAND", "WESTON",
- "WETZEL", "WHALEN", "WHALEY", "WHARTON", "WHATLEY", "WHEAT", "WHEATLEY", "WHEATON", "WHEELER", "WHELAN",
- "WHIPPLE", "WHITAKER", "WHITCOMB", "WHITE", "WHITED", "WHITEHEAD", "WHITEHURST", "WHITEMAN", "WHITESIDE",
- "WHITFIELD", "WHITING", "WHITLEY", "WHITLOCK", "WHITLOW", "WHITMAN", "WHITMIRE", "WHITMORE", "WHITNEY",
- "WHITSON", "WHITT", "WHITTAKER", "WHITTEN", "WHITTINGTON", "WHITTLE", "WHITWORTH", "WHYTE", "WICK",
- "WICKER", "WICKHAM", "WICKS", "WIESE", "WIGGINS", "WILBANKS", "WILBER", "WILBUR", "WILBURN", "WILCOX",
- "WILD", "WILDE", "WILDER", "WILES", "WILEY", "WILHELM", "WILHITE", "WILKE", "WILKERSON", "WILKES",
- "WILKINS", "WILKINSON", "WILKS", "WILL", "WILLARD", "WILLETT", "WILLEY", "WILLIAM", "WILLIAMS",
- "WILLIAMSON", "WILLIFORD", "WILLINGHAM", "WILLIS", "WILLOUGHBY", "WILLS", "WILLSON", "WILMOTH", "WILSON",
- "WILT", "WIMBERLY", "WINCHESTER", "WINDHAM", "WINFIELD", "WINFREY", "WING", "WINGATE", "WINGFIELD",
- "WINKLER", "WINN", "WINSLOW", "WINSTEAD", "WINSTON", "WINTER", "WINTERS", "WIRTH", "WISE", "WISEMAN",
- "WISNIEWSKI", "WITCHER", "WITHERS", "WITHERSPOON", "WITHROW", "WITT", "WITTE", "WOFFORD", "WOLF", "WOLFE",
- "WOLFF", "WOLFORD", "WOMACK", "WONG", "WOO", "WOOD", "WOODALL", "WOODARD", "WOODBURY", "WOODCOCK", "WOODEN",
- "WOODLEY", "WOODRUFF", "WOODS", "WOODSON", "WOODWARD", "WOODWORTH", "WOODY", "WOOLDRIDGE", "WOOLEY",
- "WOOTEN", "WORD", "WORDEN", "WORKMAN", "WORLEY", "WORRELL", "WORSHAM", "WORTH", "WORTHAM", "WORTHINGTON",
- "WORTHY", "WRAY", "WREN", "WRIGHT", "WU", "WYANT", "WYATT", "WYLIE", "WYMAN", "WYNN", "WYNNE", "XIONG",
- "YAMAMOTO", "YANCEY", "YANEZ", "YANG", "YARBROUGH", "YATES", "YAZZIE", "YBARRA", "YEAGER", "YEE", "YI",
- "YOCUM", "YODER", "YOO", "YOON", "YORK", "YOST", "YOUNG", "YOUNGBLOOD", "YOUNGER", "YOUNT", "YU",
- "ZAMBRANO", "ZAMORA", "ZAPATA", "ZARAGOZA", "ZARATE", "ZAVALA", "ZEIGLER", "ZELLER", "ZEPEDA", "ZHANG",
- "ZIEGLER", "ZIELINSKI", "ZIMMER", "ZIMMERMAN", "ZINK", "ZOOK", "ZUNIGA" };
- }
+ public static String generateRandomName() {
+ String first, last;
- public static String generateRandomName() {
- String first, last;
-
- boolean isScottish = (MathUtils.randInt(0, 10) >= 9);
-
- if (isScottish) {
- first = mScottishFirstNames[MathUtils.randInt(0, mScottishFirstNames.length - 1)].toLowerCase();
- }
- else {
- first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase();
- }
-
- last = mLastNames[MathUtils.randInt(0, mLastNames.length - 1)].toLowerCase();
- if (first.equalsIgnoreCase(last)) {
- while (first.equalsIgnoreCase(last))
- first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase();
- }
- first = StringUtils.capitalize(first);
- last = StringUtils.capitalize(last);
- return first + " " + last;
+ boolean isScottish = (MathUtils.randInt(0, 10) >= 9);
- }
+ if (isScottish) {
+ first = mScottishFirstNames[MathUtils.randInt(0, mScottishFirstNames.length - 1)].toLowerCase();
+ } else {
+ first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase();
+ }
+ last = mLastNames[MathUtils.randInt(0, mLastNames.length - 1)].toLowerCase();
+ if (first.equalsIgnoreCase(last)) {
+ while (first.equalsIgnoreCase(last))
+ first = mFirstNames[MathUtils.randInt(0, mFirstNames.length - 1)].toLowerCase();
+ }
+ first = StringUtils.capitalize(first);
+ last = StringUtils.capitalize(last);
+ return first + " " + last;
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java
index b515f0979e..160b384150 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerEventHandler.java
@@ -2,46 +2,40 @@ package gtPlusPlus.plugin.villagers;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.passive.EntityVillager;
-import net.minecraft.world.World;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
public class VillagerEventHandler {
- private final static VillagerEventHandler mInstance;
-
- static {
- mInstance = new VillagerEventHandler();
- Utils.registerEvent(mInstance);
- }
-
- @SubscribeEvent
- public void onEntityJoinWorld(EntityJoinWorldEvent event){
-
-
- /*try {
- if (event.entity != null && event.entity instanceof EntityLivingBase && event.entity instanceof EntityVillager){
- EntityVillager entity = (EntityVillager) event.entity;
- World world = entity.worldObj;
- int profession = entity.getProfession();
- if (world != null && (profession >= 7735 && profession <= 7737)){
- EntityBaseVillager mNew = new EntityBaseVillager(world, profession);
- mNew.copyLocationAndAnglesFrom(entity);
- if (mNew != null) {
- world.removeEntity(entity);
- world.spawnEntityInWorld(mNew);
- }
- }
-
- }
- }
- catch (Throwable t) {
- t.printStackTrace();
- return;
- }*/
-
- }
-
+ private static final VillagerEventHandler mInstance;
+
+ static {
+ mInstance = new VillagerEventHandler();
+ Utils.registerEvent(mInstance);
+ }
+
+ @SubscribeEvent
+ public void onEntityJoinWorld(EntityJoinWorldEvent event) {
+
+ /*try {
+ if (event.entity != null && event.entity instanceof EntityLivingBase && event.entity instanceof EntityVillager){
+ EntityVillager entity = (EntityVillager) event.entity;
+ World world = entity.worldObj;
+ int profession = entity.getProfession();
+ if (world != null && (profession >= 7735 && profession <= 7737)){
+ EntityBaseVillager mNew = new EntityBaseVillager(world, profession);
+ mNew.copyLocationAndAnglesFrom(entity);
+ if (mNew != null) {
+ world.removeEntity(entity);
+ world.spawnEntityInWorld(mNew);
+ }
+ }
+
+ }
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ return;
+ }*/
+
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java
index a5587a1b52..ad49741726 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerObject.java
@@ -7,34 +7,38 @@ import net.minecraft.util.ResourceLocation;
public class VillagerObject {
- public final int mID;
- public final String mName;
- public final IVillageTradeHandler mCustomTrade;
-
-
- public VillagerObject(int aID, String aName, Object aProfession, Object aCareer, Object aSkin, IVillageTradeHandler aCustomTrade) {
-
- mID = aID;
- mName = aName;
- mCustomTrade = aCustomTrade;
-
- //Register Custom Trade to Registry.
- if (aCustomTrade != null) {
- Core_VillagerAdditions.mVillagerTrades.put(new Pair<Integer, IVillageTradeHandler>(7735+aID, aCustomTrade));
- }
- //Register Skin to Registry.
- if (aSkin != null) {
-
- if (aSkin instanceof String) {
- String s = (String) aSkin;
- aSkin = new ResourceLocation(CORE.MODID+":"+"textures/entity/villager/"+s+".png");
- }
- if (aSkin instanceof ResourceLocation) {
- Core_VillagerAdditions.mVillagerSkins.put(aID, (ResourceLocation) aSkin);
- }
-
- }
- VillagerUtils.registerNewVillager(aID, this);
- }
-
+ public final int mID;
+ public final String mName;
+ public final IVillageTradeHandler mCustomTrade;
+
+ public VillagerObject(
+ int aID,
+ String aName,
+ Object aProfession,
+ Object aCareer,
+ Object aSkin,
+ IVillageTradeHandler aCustomTrade) {
+
+ mID = aID;
+ mName = aName;
+ mCustomTrade = aCustomTrade;
+
+ // Register Custom Trade to Registry.
+ if (aCustomTrade != null) {
+ Core_VillagerAdditions.mVillagerTrades.put(
+ new Pair<Integer, IVillageTradeHandler>(7735 + aID, aCustomTrade));
+ }
+ // Register Skin to Registry.
+ if (aSkin != null) {
+
+ if (aSkin instanceof String) {
+ String s = (String) aSkin;
+ aSkin = new ResourceLocation(CORE.MODID + ":" + "textures/entity/villager/" + s + ".png");
+ }
+ if (aSkin instanceof ResourceLocation) {
+ Core_VillagerAdditions.mVillagerSkins.put(aID, (ResourceLocation) aSkin);
+ }
+ }
+ VillagerUtils.registerNewVillager(aID, this);
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java b/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java
index f252ad068d..abdb16721c 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/VillagerUtils.java
@@ -1,23 +1,23 @@
package gtPlusPlus.plugin.villagers;
-import java.util.HashMap;
-
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
+import java.util.HashMap;
public class VillagerUtils {
- public static final HashMap<Integer, VillagerObject> mVillagerMap = new HashMap<Integer, VillagerObject>();
-
- public static void registerNewVillager(int aID, String aName, Object aProfession, Object aCareer, Object aSkin, IVillageTradeHandler aCustomTrade) {
- registerNewVillager(aID, new VillagerObject(aID, aName, aProfession, aCareer, aSkin, aCustomTrade));
- }
-
- public static void registerNewVillager(int aID, VillagerObject aVillager) {
- mVillagerMap.put(aID, aVillager);
- }
+ public static final HashMap<Integer, VillagerObject> mVillagerMap = new HashMap<Integer, VillagerObject>();
+
+ public static void registerNewVillager(
+ int aID,
+ String aName,
+ Object aProfession,
+ Object aCareer,
+ Object aSkin,
+ IVillageTradeHandler aCustomTrade) {
+ registerNewVillager(aID, new VillagerObject(aID, aName, aProfession, aCareer, aSkin, aCustomTrade));
+ }
-
-
-
-
+ public static void registerNewVillager(int aID, VillagerObject aVillager) {
+ mVillagerMap.put(aID, aVillager);
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java b/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java
index 916f360012..82650fbd70 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java
@@ -2,14 +2,13 @@ package gtPlusPlus.plugin.villagers.block;
import static gtPlusPlus.core.lib.CORE.RANDOM;
-import java.util.List;
-
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gtPlusPlus.core.item.base.itemblock.ItemBlockSpawner;
import gtPlusPlus.plugin.villagers.Core_VillagerAdditions;
import gtPlusPlus.plugin.villagers.tile.TileEntityGenericSpawner;
+import java.util.List;
import net.minecraft.block.BlockMobSpawner;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -19,42 +18,38 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockGenericSpawner extends BlockMobSpawner {
-
- public BlockGenericSpawner() {
- this.disableStats();
- this.setHardness(5.0F);
- this.setStepSound(soundTypeMetal);
- this.setBlockName("blockMobSpawnerEx");
- this.setBlockTextureName("mob_spawner");
- this.setResistance(2000.0F);
- GameRegistry.registerBlock(this, ItemBlockSpawner.class, "blockMobSpawnerEx");
- Core_VillagerAdditions.mInstance.log("Registered Custom Spawner Block.");
- }
-
- /**
+
+ public BlockGenericSpawner() {
+ this.disableStats();
+ this.setHardness(5.0F);
+ this.setStepSound(soundTypeMetal);
+ this.setBlockName("blockMobSpawnerEx");
+ this.setBlockTextureName("mob_spawner");
+ this.setResistance(2000.0F);
+ GameRegistry.registerBlock(this, ItemBlockSpawner.class, "blockMobSpawnerEx");
+ Core_VillagerAdditions.mInstance.log("Registered Custom Spawner Block.");
+ }
+
+ /**
* Returns a new instance of a block's tile entity class. Called on placing the block.
*/
@Override
- public TileEntity createNewTileEntity(World world, int meta)
- {
+ public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityGenericSpawner(meta);
}
-
+
@Override
- public int getExpDrop(IBlockAccess world, int metadata, int fortune){
+ public int getExpDrop(IBlockAccess world, int metadata, int fortune) {
return 15 + RANDOM.nextInt(15) + RANDOM.nextInt(15);
}
-
+
/**
* returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks)
*/
@SideOnly(Side.CLIENT)
- public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_)
- {
- for (int i = 0; i < Math.max(1,TileEntityGenericSpawner.mSpawners.size()); ++i)
- {
+ public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_) {
+ for (int i = 0; i < Math.max(1, TileEntityGenericSpawner.mSpawners.size()); ++i) {
p_149666_3_.add(new ItemStack(p_149666_1_, 1, i));
}
}
-
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java
index c29aadb16b..655d1c567c 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java
@@ -1,15 +1,14 @@
package gtPlusPlus.plugin.villagers.entity;
-import java.lang.reflect.Field;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Random;
-
import cpw.mods.fml.common.registry.VillagerRegistry;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.plugin.villagers.NameLists;
+import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Random;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentData;
import net.minecraft.enchantment.EnchantmentHelper;
@@ -30,509 +29,541 @@ import net.minecraft.world.World;
public class EntityBaseVillager extends EntityVillager {
- // public static final VillagerProfession mProfession;
-
- /*
- *
- * Your problem is that you are extending EntityVillager, but buyingList and
- * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot
- * use or override them without Reflection or ASM.
- *
- * What you can do, however, is override getRecipes to return your own list, but
- * because you override EntityVillager, your mob is still using the villager's
- * buyingList (which is NULL) when useRecipe or any other villager method is
- * called. You either have to override every method from EntityVillager which
- * interacts with buyingList and make it use your own list, or you need to not
- * extend EntityVillager and just implement IMerchant instead.
- */
-
- private final int mRoleID;
-
- public EntityBaseVillager(World aWorld){
- this(aWorld, 0);
- }
-
- public EntityBaseVillager(World aWorld, int aID) {
- super(aWorld, aID);
- mRoleID = aID;
- }
-
- @Override
- public void writeEntityToNBT(NBTTagCompound aNBT) {
- if (this.hasCustomNameTag()) {
- if (!aNBT.hasKey("aCustomName")) {
- aNBT.setString("aCustomName", this.getCommandSenderName());
- }
- }
- super.writeEntityToNBT(aNBT);
- }
-
- @Override
- public void readEntityFromNBT(NBTTagCompound aNBT) {
- if (aNBT.hasKey("aCustomName")) {
- if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) {
- this.setCustomNameTag(aNBT.getString("aCustomName"));
- }
- }
- super.readEntityFromNBT(aNBT);
- }
-
- @Override
- public void writeToNBT(NBTTagCompound aNBT) {
- // TODO Auto-generated method stub
- super.writeToNBT(aNBT);
- }
-
- @Override
- public void readFromNBT(NBTTagCompound aNBT) {
- // TODO Auto-generated method stub
- super.readFromNBT(aNBT);
- }
-
- @Override
- protected boolean canDespawn() {
- return !this.hasCustomNameTag();
- }
-
- @Override
- public void setProfession(int p_70938_1_) {
- super.setProfession(p_70938_1_);
- }
-
- @Override
- public int getProfession() {
- int prof = super.getProfession();
- //Logger.INFO(""+mRoleID);
- return prof < 7735 ? 7738 : prof;
- }
-
- @Override
- public void useRecipe(MerchantRecipe p_70933_1_) {
- super.useRecipe(p_70933_1_);
- }
-
- @Override
- public void setRecipes(MerchantRecipeList p_70930_1_) {
- super.setRecipes(p_70930_1_);
- }
-
- public boolean shouldAlwaysSprint() {
- return false;
- };
-
- @Override
- public void onLivingUpdate() {
-
- // Set Custom Name
- if (!this.hasCustomNameTag()) {
- this.setCustomNameTag(NameLists.generateRandomName());
- }
-
- super.onLivingUpdate();
-
- // Make these guys always sprint
- if (shouldAlwaysSprint()) {
- if (!this.isSprinting()) {
- this.setSprinting(true);
- }
- }
- else {
- if (this.isSprinting()) {
- this.setSprinting(false);
- }
- }
-
- }
-
- @Override
- public Entity getEntityToAttack() {
- return super.getEntityToAttack();
- }
-
- @Override
- public boolean getAlwaysRenderNameTag() {
- return hasCustomNameTag();
- }
-
- @Override
- public Random getRNG() {
- return CORE.RANDOM;
- }
-
- @Override
- public void setSprinting(boolean bool) {
- super.setSprinting(bool);
- }
-
- /**
- * Custom Shit
- */
-
- protected float getField_82191_bN() {
- Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN");
- try {
- return v82191 != null ? v82191.getFloat(this) : 0f;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return 0f;
- }
- }
-
- protected void setField_82191_bN(float f) {
- try {
- ReflectionUtils.setField(this, "field_82191_bN", f);
- } catch (IllegalArgumentException e) {
- }
- }
-
- protected boolean getNeedsInitilization() {
- Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization");
- try {
- return v82191 != null ? v82191.getBoolean(this) : false;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return false;
- }
- }
-
- protected void setNeedsInitilization(boolean f) {
- try {
- ReflectionUtils.setField(this, "needsInitilization", f);
- } catch (IllegalArgumentException e) {
- }
- }
-
- protected MerchantRecipeList getBuyingList() {
- Field v82191;
- MerchantRecipeList o = null;
- v82191 = ReflectionUtils.getField(getClass(), "buyingList");
- try {
- if (v82191 != null)
- o = (MerchantRecipeList) v82191.get(this);
- Logger.WARNING("Is BuyingList Valid? " + (v82191 != null));
- return v82191 != null ? o : null;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- e.printStackTrace();
- return null;
- }
-
- }
-
- protected void setBuyingList(MerchantRecipeList f) {
- try {
- Logger.WARNING("set BuyingList? "+(ReflectionUtils.setField(this, "buyingList", f)));
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-
- protected Village getVillageObject() {
- Field v82191 = ReflectionUtils.getField(getClass(), "villageObj");
- try {
- return v82191 != null ? (Village) v82191.get(this) : null;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return null;
- }
- }
-
- protected String getLastBuyingPlayer() {
- Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer");
- try {
- return v82191 != null ? (String) v82191.get(this) : "";
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return "";
- }
- }
-
- public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) {
- if (getBuyingList() == null) {
- this.addDefaultEquipmentAndRecipies(1);
- }
- return getBuyingList();
- }
-
- /**
- * Adjusts the probability of obtaining a given recipe being offered by a
- * villager
- */
- private float adjustProbability(float p_82188_1_) {
- float f1 = p_82188_1_ + getField_82191_bN();
- return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1;
- }
-
- /**
- * based on the villagers profession add items, equipment, and recipies adds
- * par1 random items to the list of things that the villager wants to buy. (at
- * most 1 of each wanted type is added)
- */
- private void addDefaultEquipmentAndRecipies(int p_70950_1_) {
- if (this.getBuyingList() != null) {
- setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F);
- } else {
- setField_82191_bN(0.0F);
- }
-
- MerchantRecipeList merchantrecipelist;
- merchantrecipelist = new MerchantRecipeList();
- VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand);
- int k;
- label50:
-
- switch (this.getProfession()) {
- case 0:
- addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F));
- addPurchaseRecipe(merchantrecipelist, Item.getItemFromBlock(Blocks.wool), this.rand,
- this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F));
- addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F));
- addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F));
-
- if (this.rand.nextFloat() < this.adjustProbability(0.5F)) {
- merchantrecipelist.add(new MerchantRecipe(new ItemStack(Blocks.gravel, 10),
- new ItemStack(Items.emerald), new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0)));
- }
-
- break;
- case 1:
- addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F));
- addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F));
- addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.bookshelf), this.rand,
- this.adjustProbability(0.8F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glass), this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F));
-
- if (this.rand.nextFloat() < this.adjustProbability(0.07F)) {
- Enchantment enchantment = Enchantment.enchantmentsBookList[this.rand
- .nextInt(Enchantment.enchantmentsBookList.length)];
- int i1 = MathHelper.getRandomIntegerInRange(this.rand, enchantment.getMinLevel(),
- enchantment.getMaxLevel());
- ItemStack itemstack = Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1));
- k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1;
- merchantrecipelist
- .add(new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack));
- }
-
- break;
- case 2:
- addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glowstone), this.rand,
- this.adjustProbability(0.3F));
- Item[] aitem = new Item[] { Items.iron_sword, Items.diamond_sword, Items.iron_chestplate,
- Items.diamond_chestplate, Items.iron_axe, Items.diamond_axe, Items.iron_pickaxe,
- Items.diamond_pickaxe };
- Item[] aitem1 = aitem;
- int j = aitem.length;
- k = 0;
-
- while (true) {
- if (k >= j) {
- break label50;
- }
-
- Item item = aitem1[k];
-
- if (this.rand.nextFloat() < this.adjustProbability(0.05F)) {
- merchantrecipelist.add(new MerchantRecipe(new ItemStack(item, 1, 0),
- new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0),
- EnchantmentHelper.addRandomEnchantment(this.rand, new ItemStack(item, 1, 0),
- 5 + this.rand.nextInt(15))));
- }
-
- ++k;
- }
- case 3:
- addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
- addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F));
- break;
- case 4:
- addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
- addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F));
- }
-
- if (merchantrecipelist.isEmpty()) {
- addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F);
- }
-
- Collections.shuffle(merchantrecipelist);
-
- if (this.getBuyingList() == null) {
- this.setBuyingList(new MerchantRecipeList());
- }
-
- for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) {
- try {
- this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l));
- }
- catch (Throwable t) {
- Logger.INFO("Villager with ID "+this.entityUniqueID.toString()+" at | X: "+this.posX+" Y: "+this.posY+" Z: "+this.posZ+" may have corrupt trades, it is advised to remove/kill it.");
- }
- }
-
- try {
- if (this.getBuyingList() != null) {
- for (Object g : this.getBuyingList()) {
- if (g != null) {
- if (g instanceof MerchantRecipe) {
- MerchantRecipe m = (MerchantRecipe) g;
- ItemStack selling = m.getItemToSell();
- ItemStack[] buying = new ItemStack[] {m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null};
- if (selling == null) {
- Logger.WARNING("Villager is Selling an invalid item");
- }
- else if (buying[0] == null && buying[1] == null) {
- Logger.WARNING("Villager is buying two invalid items");
- }
- else {
- Logger.WARNING("Villager is Selling x"+selling.stackSize+selling.getDisplayName()+" for x"+buying[0].stackSize+" "+buying[0].getDisplayName()+buying[1] != null ? " and for x"+buying[1].stackSize+" "+buying[1].getDisplayName() : "");
- }
- }
- else
- Logger.WARNING("Found: "+g.getClass().getName());
- }
- }
- }
- else {
-
- }
- }
- catch (Throwable t) {
-
- }
-
- }
-
- /**
- * main AI tick function, replaces updateEntityActionState
- */
- @Override
- protected void updateAITick() {
- if (!this.isTrading()) {
- if (this.getNeedsInitilization()) {
- if (this.getBuyingList().size() > 1) {
- Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator();
-
- while (iterator.hasNext()) {
- MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next();
-
- if (merchantrecipe.isRecipeDisabled()) {
- merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2);
- }
- }
- }
-
- this.addDefaultEquipmentAndRecipies(1);
- this.setNeedsInitilization(false);
-
- if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) {
- this.worldObj.setEntityState(this, (byte) 14);
- this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1);
- }
- }
- }
- super.updateAITick();
- }
-
- public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- int i = getLootAmount_BlacksmithSellingList(aItem, aRand);
- ItemStack itemstack;
- ItemStack itemstack1;
-
- if (i < 0) {
- itemstack = new ItemStack(Items.emerald, 1, 0);
- itemstack1 = new ItemStack(aItem, -i, 0);
- } else {
- itemstack = new ItemStack(Items.emerald, i, 0);
- itemstack1 = new ItemStack(aItem, 1, 0);
- }
-
- aRecipeList.add(new MerchantRecipe(itemstack, itemstack1));
- }
- }
-
- public static void addCustomTrade(MerchantRecipeList aRecipeList, ItemStack aItem1, ItemStack aItem2, ItemStack aItem3, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3));
- }
- }
-
- private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) {
- Tuple tuple = (Tuple) blacksmithSellingList.get(aItem);
- return tuple == null ? 1
- : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
- ? ((Integer) tuple.getFirst()).intValue()
- : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt(
- ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue()));
- }
-
- public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald));
- }
- }
-
- private static ItemStack getSimpleLootStack(Item aItem, Random aRand) {
- return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0);
- }
-
- public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald));
- }
- }
-
- private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) {
- return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta);
- }
-
- private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) {
- Tuple tuple = (Tuple) villagersSellingList.get(aItem);
- return tuple == null ? 1
- : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
- ? ((Integer) tuple.getFirst()).intValue()
- : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt(
- ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue()));
- }
-
+ // public static final VillagerProfession mProfession;
+
+ /*
+ *
+ * Your problem is that you are extending EntityVillager, but buyingList and
+ * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot
+ * use or override them without Reflection or ASM.
+ *
+ * What you can do, however, is override getRecipes to return your own list, but
+ * because you override EntityVillager, your mob is still using the villager's
+ * buyingList (which is NULL) when useRecipe or any other villager method is
+ * called. You either have to override every method from EntityVillager which
+ * interacts with buyingList and make it use your own list, or you need to not
+ * extend EntityVillager and just implement IMerchant instead.
+ */
+
+ private final int mRoleID;
+
+ public EntityBaseVillager(World aWorld) {
+ this(aWorld, 0);
+ }
+
+ public EntityBaseVillager(World aWorld, int aID) {
+ super(aWorld, aID);
+ mRoleID = aID;
+ }
+
+ @Override
+ public void writeEntityToNBT(NBTTagCompound aNBT) {
+ if (this.hasCustomNameTag()) {
+ if (!aNBT.hasKey("aCustomName")) {
+ aNBT.setString("aCustomName", this.getCommandSenderName());
+ }
+ }
+ super.writeEntityToNBT(aNBT);
+ }
+
+ @Override
+ public void readEntityFromNBT(NBTTagCompound aNBT) {
+ if (aNBT.hasKey("aCustomName")) {
+ if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) {
+ this.setCustomNameTag(aNBT.getString("aCustomName"));
+ }
+ }
+ super.readEntityFromNBT(aNBT);
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound aNBT) {
+ // TODO Auto-generated method stub
+ super.writeToNBT(aNBT);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound aNBT) {
+ // TODO Auto-generated method stub
+ super.readFromNBT(aNBT);
+ }
+
+ @Override
+ protected boolean canDespawn() {
+ return !this.hasCustomNameTag();
+ }
+
+ @Override
+ public void setProfession(int p_70938_1_) {
+ super.setProfession(p_70938_1_);
+ }
+
+ @Override
+ public int getProfession() {
+ int prof = super.getProfession();
+ // Logger.INFO(""+mRoleID);
+ return prof < 7735 ? 7738 : prof;
+ }
+
+ @Override
+ public void useRecipe(MerchantRecipe p_70933_1_) {
+ super.useRecipe(p_70933_1_);
+ }
+
+ @Override
+ public void setRecipes(MerchantRecipeList p_70930_1_) {
+ super.setRecipes(p_70930_1_);
+ }
+
+ public boolean shouldAlwaysSprint() {
+ return false;
+ }
+ ;
+
+ @Override
+ public void onLivingUpdate() {
+
+ // Set Custom Name
+ if (!this.hasCustomNameTag()) {
+ this.setCustomNameTag(NameLists.generateRandomName());
+ }
+
+ super.onLivingUpdate();
+
+ // Make these guys always sprint
+ if (shouldAlwaysSprint()) {
+ if (!this.isSprinting()) {
+ this.setSprinting(true);
+ }
+ } else {
+ if (this.isSprinting()) {
+ this.setSprinting(false);
+ }
+ }
+ }
+
+ @Override
+ public Entity getEntityToAttack() {
+ return super.getEntityToAttack();
+ }
+
+ @Override
+ public boolean getAlwaysRenderNameTag() {
+ return hasCustomNameTag();
+ }
+
+ @Override
+ public Random getRNG() {
+ return CORE.RANDOM;
+ }
+
+ @Override
+ public void setSprinting(boolean bool) {
+ super.setSprinting(bool);
+ }
+
+ /**
+ * Custom Shit
+ */
+ protected float getField_82191_bN() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN");
+ try {
+ return v82191 != null ? v82191.getFloat(this) : 0f;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return 0f;
+ }
+ }
+
+ protected void setField_82191_bN(float f) {
+ try {
+ ReflectionUtils.setField(this, "field_82191_bN", f);
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ protected boolean getNeedsInitilization() {
+ Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization");
+ try {
+ return v82191 != null ? v82191.getBoolean(this) : false;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return false;
+ }
+ }
+
+ protected void setNeedsInitilization(boolean f) {
+ try {
+ ReflectionUtils.setField(this, "needsInitilization", f);
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ protected MerchantRecipeList getBuyingList() {
+ Field v82191;
+ MerchantRecipeList o = null;
+ v82191 = ReflectionUtils.getField(getClass(), "buyingList");
+ try {
+ if (v82191 != null) o = (MerchantRecipeList) v82191.get(this);
+ Logger.WARNING("Is BuyingList Valid? " + (v82191 != null));
+ return v82191 != null ? o : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ protected void setBuyingList(MerchantRecipeList f) {
+ try {
+ Logger.WARNING("set BuyingList? " + (ReflectionUtils.setField(this, "buyingList", f)));
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected Village getVillageObject() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "villageObj");
+ try {
+ return v82191 != null ? (Village) v82191.get(this) : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ }
+
+ protected String getLastBuyingPlayer() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer");
+ try {
+ return v82191 != null ? (String) v82191.get(this) : "";
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return "";
+ }
+ }
+
+ public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) {
+ if (getBuyingList() == null) {
+ this.addDefaultEquipmentAndRecipies(1);
+ }
+ return getBuyingList();
+ }
+
+ /**
+ * Adjusts the probability of obtaining a given recipe being offered by a
+ * villager
+ */
+ private float adjustProbability(float p_82188_1_) {
+ float f1 = p_82188_1_ + getField_82191_bN();
+ return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1;
+ }
+
+ /**
+ * based on the villagers profession add items, equipment, and recipies adds
+ * par1 random items to the list of things that the villager wants to buy. (at
+ * most 1 of each wanted type is added)
+ */
+ private void addDefaultEquipmentAndRecipies(int p_70950_1_) {
+ if (this.getBuyingList() != null) {
+ setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F);
+ } else {
+ setField_82191_bN(0.0F);
+ }
+
+ MerchantRecipeList merchantrecipelist;
+ merchantrecipelist = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand);
+ int k;
+ label50:
+ switch (this.getProfession()) {
+ case 0:
+ addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F));
+ addPurchaseRecipe(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.wool),
+ this.rand,
+ this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F));
+ addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F));
+ addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F));
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.5F)) {
+ merchantrecipelist.add(new MerchantRecipe(
+ new ItemStack(Blocks.gravel, 10),
+ new ItemStack(Items.emerald),
+ new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0)));
+ }
+
+ break;
+ case 1:
+ addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F));
+ addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F));
+ addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.bookshelf),
+ this.rand,
+ this.adjustProbability(0.8F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.glass),
+ this.rand,
+ this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F));
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.07F)) {
+ Enchantment enchantment = Enchantment.enchantmentsBookList[
+ this.rand.nextInt(Enchantment.enchantmentsBookList.length)];
+ int i1 = MathHelper.getRandomIntegerInRange(
+ this.rand, enchantment.getMinLevel(), enchantment.getMaxLevel());
+ ItemStack itemstack =
+ Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1));
+ k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1;
+ merchantrecipelist.add(
+ new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack));
+ }
+
+ break;
+ case 2:
+ addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.glowstone),
+ this.rand,
+ this.adjustProbability(0.3F));
+ Item[] aitem = new Item[] {
+ Items.iron_sword,
+ Items.diamond_sword,
+ Items.iron_chestplate,
+ Items.diamond_chestplate,
+ Items.iron_axe,
+ Items.diamond_axe,
+ Items.iron_pickaxe,
+ Items.diamond_pickaxe
+ };
+ Item[] aitem1 = aitem;
+ int j = aitem.length;
+ k = 0;
+
+ while (true) {
+ if (k >= j) {
+ break label50;
+ }
+
+ Item item = aitem1[k];
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.05F)) {
+ merchantrecipelist.add(new MerchantRecipe(
+ new ItemStack(item, 1, 0),
+ new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0),
+ EnchantmentHelper.addRandomEnchantment(
+ this.rand, new ItemStack(item, 1, 0), 5 + this.rand.nextInt(15))));
+ }
+
+ ++k;
+ }
+ case 3:
+ addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(
+ merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F));
+ break;
+ case 4:
+ addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F));
+ }
+
+ if (merchantrecipelist.isEmpty()) {
+ addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F);
+ }
+
+ Collections.shuffle(merchantrecipelist);
+
+ if (this.getBuyingList() == null) {
+ this.setBuyingList(new MerchantRecipeList());
+ }
+
+ for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) {
+ try {
+ this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l));
+ } catch (Throwable t) {
+ Logger.INFO("Villager with ID " + this.entityUniqueID.toString() + " at | X: " + this.posX + " Y: "
+ + this.posY + " Z: " + this.posZ
+ + " may have corrupt trades, it is advised to remove/kill it.");
+ }
+ }
+
+ try {
+ if (this.getBuyingList() != null) {
+ for (Object g : this.getBuyingList()) {
+ if (g != null) {
+ if (g instanceof MerchantRecipe) {
+ MerchantRecipe m = (MerchantRecipe) g;
+ ItemStack selling = m.getItemToSell();
+ ItemStack[] buying = new ItemStack[] {
+ m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null
+ };
+ if (selling == null) {
+ Logger.WARNING("Villager is Selling an invalid item");
+ } else if (buying[0] == null && buying[1] == null) {
+ Logger.WARNING("Villager is buying two invalid items");
+ } else {
+ Logger.WARNING(
+ "Villager is Selling x" + selling.stackSize + selling.getDisplayName()
+ + " for x" + buying[0].stackSize + " "
+ + buying[0].getDisplayName() + buying[1]
+ != null
+ ? " and for x" + buying[1].stackSize + " " + buying[1].getDisplayName()
+ : "");
+ }
+ } else Logger.WARNING("Found: " + g.getClass().getName());
+ }
+ }
+ } else {
+
+ }
+ } catch (Throwable t) {
+
+ }
+ }
+
+ /**
+ * main AI tick function, replaces updateEntityActionState
+ */
+ @Override
+ protected void updateAITick() {
+ if (!this.isTrading()) {
+ if (this.getNeedsInitilization()) {
+ if (this.getBuyingList().size() > 1) {
+ Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator();
+
+ while (iterator.hasNext()) {
+ MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next();
+
+ if (merchantrecipe.isRecipeDisabled()) {
+ merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2);
+ }
+ }
+ }
+
+ this.addDefaultEquipmentAndRecipies(1);
+ this.setNeedsInitilization(false);
+
+ if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) {
+ this.worldObj.setEntityState(this, (byte) 14);
+ this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1);
+ }
+ }
+ }
+ super.updateAITick();
+ }
+
+ public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ int i = getLootAmount_BlacksmithSellingList(aItem, aRand);
+ ItemStack itemstack;
+ ItemStack itemstack1;
+
+ if (i < 0) {
+ itemstack = new ItemStack(Items.emerald, 1, 0);
+ itemstack1 = new ItemStack(aItem, -i, 0);
+ } else {
+ itemstack = new ItemStack(Items.emerald, i, 0);
+ itemstack1 = new ItemStack(aItem, 1, 0);
+ }
+
+ aRecipeList.add(new MerchantRecipe(itemstack, itemstack1));
+ }
+ }
+
+ public static void addCustomTrade(
+ MerchantRecipeList aRecipeList,
+ ItemStack aItem1,
+ ItemStack aItem2,
+ ItemStack aItem3,
+ Random aRand,
+ float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3));
+ }
+ }
+
+ private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) {
+ Tuple tuple = (Tuple) blacksmithSellingList.get(aItem);
+ return tuple == null
+ ? 1
+ : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
+ ? ((Integer) tuple.getFirst()).intValue()
+ : ((Integer) tuple.getFirst()).intValue()
+ + aRand.nextInt(((Integer) tuple.getSecond()).intValue()
+ - ((Integer) tuple.getFirst()).intValue()));
+ }
+
+ public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald));
+ }
+ }
+
+ private static ItemStack getSimpleLootStack(Item aItem, Random aRand) {
+ return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0);
+ }
+
+ public static void addPurchaseRecipe(
+ MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald));
+ }
+ }
+
+ private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) {
+ return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta);
+ }
+
+ private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) {
+ Tuple tuple = (Tuple) villagersSellingList.get(aItem);
+ return tuple == null
+ ? 1
+ : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
+ ? ((Integer) tuple.getFirst()).intValue()
+ : ((Integer) tuple.getFirst()).intValue()
+ + aRand.nextInt(((Integer) tuple.getSecond()).intValue()
+ - ((Integer) tuple.getFirst()).intValue()));
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java
index 4f9e2954a4..000d98af0d 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/EntityNativeAustralian.java
@@ -1,15 +1,13 @@
package gtPlusPlus.plugin.villagers.entity;
-import java.lang.reflect.Field;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Random;
-
import cpw.mods.fml.common.registry.VillagerRegistry;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
-import gtPlusPlus.plugin.villagers.NameLists;
+import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Random;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentData;
import net.minecraft.enchantment.EnchantmentHelper;
@@ -32,494 +30,528 @@ import net.minecraft.world.World;
public class EntityNativeAustralian extends EntityVillager {
- // public static final VillagerProfession mProfession;
-
- /*
- *
- * Your problem is that you are extending EntityVillager, but buyingList and
- * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot
- * use or override them without Reflection or ASM.
- *
- * What you can do, however, is override getRecipes to return your own list, but
- * because you override EntityVillager, your mob is still using the villager's
- * buyingList (which is NULL) when useRecipe or any other villager method is
- * called. You either have to override every method from EntityVillager which
- * interacts with buyingList and make it use your own list, or you need to not
- * extend EntityVillager and just implement IMerchant instead.
- */
-
- private final int mRoleID;
-
- public EntityNativeAustralian(World aWorld) {
- super(aWorld, 7738);
- mRoleID = 7738;
- }
-
- public EntityVillager createChild(EntityAgeable p_90011_1_){
- EntityNativeAustralian entityvillager = new EntityNativeAustralian(this.worldObj);
- entityvillager.onSpawnWithEgg((IEntityLivingData)null);
- return entityvillager;
- }
-
- public boolean allowLeashing()
- {
- return true;
- }
-
- @Override
- public void writeEntityToNBT(NBTTagCompound aNBT) {
- if (this.hasCustomNameTag()) {
- if (!aNBT.hasKey("aCustomName")) {
- aNBT.setString("aCustomName", this.getCommandSenderName());
- }
- }
- super.writeEntityToNBT(aNBT);
- }
-
- @Override
- public void readEntityFromNBT(NBTTagCompound aNBT) {
- if (aNBT.hasKey("aCustomName")) {
- if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) {
- this.setCustomNameTag(aNBT.getString("aCustomName"));
- }
- }
- super.readEntityFromNBT(aNBT);
- }
-
- @Override
- public void writeToNBT(NBTTagCompound aNBT) {
- // TODO Auto-generated method stub
- super.writeToNBT(aNBT);
- }
-
- @Override
- public void readFromNBT(NBTTagCompound aNBT) {
- // TODO Auto-generated method stub
- super.readFromNBT(aNBT);
- }
-
- @Override
- protected boolean canDespawn() {
- return !false;
- }
-
- @Override
- public void setProfession(int p_70938_1_) {
- super.setProfession(7738);
- }
-
- @Override
- public int getProfession() {
- return mRoleID;
- }
-
- @Override
- public void useRecipe(MerchantRecipe p_70933_1_) {
- super.useRecipe(p_70933_1_);
- }
-
- @Override
- public void setRecipes(MerchantRecipeList p_70930_1_) {
- super.setRecipes(p_70930_1_);
- }
-
- public boolean shouldAlwaysSprint() {
- return false;
- };
-
- @Override
- public void onLivingUpdate() {
- super.onLivingUpdate();
- }
-
- @Override
- public Entity getEntityToAttack() {
- return super.getEntityToAttack();
- }
-
- @Override
- public boolean getAlwaysRenderNameTag() {
- return hasCustomNameTag();
- }
-
- @Override
- public Random getRNG() {
- return CORE.RANDOM;
- }
-
- @Override
- public void setSprinting(boolean bool) {
- super.setSprinting(bool);
- }
-
- /**
- * Custom Shit
- */
-
- protected float getField_82191_bN() {
- Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN");
- try {
- return v82191 != null ? v82191.getFloat(this) : 0f;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return 0f;
- }
- }
-
- protected void setField_82191_bN(float f) {
- try {
- ReflectionUtils.setField(this, "field_82191_bN", f);
- } catch (IllegalArgumentException e) {
- }
- }
-
- protected boolean getNeedsInitilization() {
- Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization");
- try {
- return v82191 != null ? v82191.getBoolean(this) : false;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return false;
- }
- }
-
- protected void setNeedsInitilization(boolean f) {
- try {
- ReflectionUtils.setField(this, "needsInitilization", f);
- } catch (IllegalArgumentException e) {
- }
- }
-
- protected MerchantRecipeList getBuyingList() {
- Field v82191;
- MerchantRecipeList o = null;
- v82191 = ReflectionUtils.getField(getClass(), "buyingList");
- try {
- if (v82191 != null)
- o = (MerchantRecipeList) v82191.get(this);
- Logger.WARNING("Is BuyingList Valid? " + (v82191 != null));
- return v82191 != null ? o : null;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- protected void setBuyingList(MerchantRecipeList f) {
- try {
- Logger.WARNING("set BuyingList? "+(ReflectionUtils.setField(this, "buyingList", f)));
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
-
- protected Village getVillageObject() {
- Field v82191 = ReflectionUtils.getField(getClass(), "villageObj");
- try {
- return v82191 != null ? (Village) v82191.get(this) : null;
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return null;
- }
- }
-
- protected String getLastBuyingPlayer() {
- Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer");
- try {
- return v82191 != null ? (String) v82191.get(this) : "";
- } catch (IllegalArgumentException | IllegalAccessException e) {
- return "";
- }
- }
-
- public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) {
- if (getBuyingList() == null) {
- this.addDefaultEquipmentAndRecipies(1);
- }
- return getBuyingList();
- }
-
- /**
- * Adjusts the probability of obtaining a given recipe being offered by a
- * villager
- */
- private float adjustProbability(float p_82188_1_) {
- float f1 = p_82188_1_ + getField_82191_bN();
- return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1;
- }
-
- /**
- * based on the villagers profession add items, equipment, and recipies adds
- * par1 random items to the list of things that the villager wants to buy. (at
- * most 1 of each wanted type is added)
- */
- private void addDefaultEquipmentAndRecipies(int p_70950_1_) {
- if (this.getBuyingList() != null) {
- setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F);
- } else {
- setField_82191_bN(0.0F);
- }
-
- MerchantRecipeList merchantrecipelist;
- merchantrecipelist = new MerchantRecipeList();
- VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand);
- int k;
- label50:
-
- switch (this.getProfession()) {
- case 0:
- addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F));
- addPurchaseRecipe(merchantrecipelist, Item.getItemFromBlock(Blocks.wool), this.rand,
- this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F));
- addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F));
- addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F));
-
- if (this.rand.nextFloat() < this.adjustProbability(0.5F)) {
- merchantrecipelist.add(new MerchantRecipe(new ItemStack(Blocks.gravel, 10),
- new ItemStack(Items.emerald), new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0)));
- }
-
- break;
- case 1:
- addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F));
- addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F));
- addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.bookshelf), this.rand,
- this.adjustProbability(0.8F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glass), this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F));
-
- if (this.rand.nextFloat() < this.adjustProbability(0.07F)) {
- Enchantment enchantment = Enchantment.enchantmentsBookList[this.rand
- .nextInt(Enchantment.enchantmentsBookList.length)];
- int i1 = MathHelper.getRandomIntegerInRange(this.rand, enchantment.getMinLevel(),
- enchantment.getMaxLevel());
- ItemStack itemstack = Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1));
- k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1;
- merchantrecipelist
- .add(new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack));
- }
-
- break;
- case 2:
- addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F));
- addEmeraldTrade(merchantrecipelist, Item.getItemFromBlock(Blocks.glowstone), this.rand,
- this.adjustProbability(0.3F));
- Item[] aitem = new Item[] { Items.iron_sword, Items.diamond_sword, Items.iron_chestplate,
- Items.diamond_chestplate, Items.iron_axe, Items.diamond_axe, Items.iron_pickaxe,
- Items.diamond_pickaxe };
- Item[] aitem1 = aitem;
- int j = aitem.length;
- k = 0;
-
- while (true) {
- if (k >= j) {
- break label50;
- }
-
- Item item = aitem1[k];
-
- if (this.rand.nextFloat() < this.adjustProbability(0.05F)) {
- merchantrecipelist.add(new MerchantRecipe(new ItemStack(item, 1, 0),
- new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0),
- EnchantmentHelper.addRandomEnchantment(this.rand, new ItemStack(item, 1, 0),
- 5 + this.rand.nextInt(15))));
- }
-
- ++k;
- }
- case 3:
- addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
- addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F));
- break;
- case 4:
- addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
- addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F));
- addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F));
- addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F));
- addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F));
- addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F));
- }
-
- if (merchantrecipelist.isEmpty()) {
- addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F);
- }
-
- Collections.shuffle(merchantrecipelist);
-
- if (this.getBuyingList() == null) {
- this.setBuyingList(new MerchantRecipeList());
- }
-
- for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) {
- try {
- this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l));
- }
- catch (Throwable t) {
- Logger.INFO("Villager with ID "+this.entityUniqueID.toString()+" at | X: "+this.posX+" Y: "+this.posY+" Z: "+this.posZ+" may have corrupt trades, it is advised to remove/kill it.");
- }
- }
-
- try {
- if (this.getBuyingList() != null) {
- for (Object g : this.getBuyingList()) {
- if (g != null) {
- if (g instanceof MerchantRecipe) {
- MerchantRecipe m = (MerchantRecipe) g;
- ItemStack selling = m.getItemToSell();
- ItemStack[] buying = new ItemStack[] {m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null};
- if (selling == null) {
- Logger.WARNING("Villager is Selling an invalid item");
- }
- else if (buying[0] == null && buying[1] == null) {
- Logger.WARNING("Villager is buying two invalid items");
- }
- else {
- Logger.WARNING("Villager is Selling x"+selling.stackSize+selling.getDisplayName()+" for x"+buying[0].stackSize+" "+buying[0].getDisplayName()+buying[1] != null ? " and for x"+buying[1].stackSize+" "+buying[1].getDisplayName() : "");
- }
- }
- else
- Logger.WARNING("Found: "+g.getClass().getName());
- }
- }
- }
- else {
-
- }
- }
- catch (Throwable t) {
-
- }
-
- }
-
- /**
- * main AI tick function, replaces updateEntityActionState
- */
- @Override
- protected void updateAITick() {
- if (!this.isTrading()) {
- if (this.getNeedsInitilization()) {
- if (this.getBuyingList().size() > 1) {
- Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator();
-
- while (iterator.hasNext()) {
- MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next();
-
- if (merchantrecipe.isRecipeDisabled()) {
- merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2);
- }
- }
- }
-
- this.addDefaultEquipmentAndRecipies(1);
- this.setNeedsInitilization(false);
-
- if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) {
- this.worldObj.setEntityState(this, (byte) 14);
- this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1);
- }
- }
- }
- super.updateAITick();
- }
-
- public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- int i = getLootAmount_BlacksmithSellingList(aItem, aRand);
- ItemStack itemstack;
- ItemStack itemstack1;
-
- if (i < 0) {
- itemstack = new ItemStack(Items.emerald, 1, 0);
- itemstack1 = new ItemStack(aItem, -i, 0);
- } else {
- itemstack = new ItemStack(Items.emerald, i, 0);
- itemstack1 = new ItemStack(aItem, 1, 0);
- }
-
- aRecipeList.add(new MerchantRecipe(itemstack, itemstack1));
- }
- }
-
- public static void addCustomTrade(MerchantRecipeList aRecipeList, ItemStack aItem1, ItemStack aItem2, ItemStack aItem3, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3));
- }
- }
-
- private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) {
- Tuple tuple = (Tuple) blacksmithSellingList.get(aItem);
- return tuple == null ? 1
- : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
- ? ((Integer) tuple.getFirst()).intValue()
- : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt(
- ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue()));
- }
-
- public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald));
- }
- }
-
- private static ItemStack getSimpleLootStack(Item aItem, Random aRand) {
- return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0);
- }
-
- public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) {
- if (aRand.nextFloat() < aChance) {
- aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald));
- }
- }
-
- private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) {
- return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta);
- }
-
- private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) {
- Tuple tuple = (Tuple) villagersSellingList.get(aItem);
- return tuple == null ? 1
- : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
- ? ((Integer) tuple.getFirst()).intValue()
- : ((Integer) tuple.getFirst()).intValue() + aRand.nextInt(
- ((Integer) tuple.getSecond()).intValue() - ((Integer) tuple.getFirst()).intValue()));
- }
-
+ // public static final VillagerProfession mProfession;
+
+ /*
+ *
+ * Your problem is that you are extending EntityVillager, but buyingList and
+ * addDefaultEquipment are both PRIVATE members of EntityVillager - you cannot
+ * use or override them without Reflection or ASM.
+ *
+ * What you can do, however, is override getRecipes to return your own list, but
+ * because you override EntityVillager, your mob is still using the villager's
+ * buyingList (which is NULL) when useRecipe or any other villager method is
+ * called. You either have to override every method from EntityVillager which
+ * interacts with buyingList and make it use your own list, or you need to not
+ * extend EntityVillager and just implement IMerchant instead.
+ */
+
+ private final int mRoleID;
+
+ public EntityNativeAustralian(World aWorld) {
+ super(aWorld, 7738);
+ mRoleID = 7738;
+ }
+
+ public EntityVillager createChild(EntityAgeable p_90011_1_) {
+ EntityNativeAustralian entityvillager = new EntityNativeAustralian(this.worldObj);
+ entityvillager.onSpawnWithEgg((IEntityLivingData) null);
+ return entityvillager;
+ }
+
+ public boolean allowLeashing() {
+ return true;
+ }
+
+ @Override
+ public void writeEntityToNBT(NBTTagCompound aNBT) {
+ if (this.hasCustomNameTag()) {
+ if (!aNBT.hasKey("aCustomName")) {
+ aNBT.setString("aCustomName", this.getCommandSenderName());
+ }
+ }
+ super.writeEntityToNBT(aNBT);
+ }
+
+ @Override
+ public void readEntityFromNBT(NBTTagCompound aNBT) {
+ if (aNBT.hasKey("aCustomName")) {
+ if (!this.getCustomNameTag().equals(aNBT.getString("aCustomName"))) {
+ this.setCustomNameTag(aNBT.getString("aCustomName"));
+ }
+ }
+ super.readEntityFromNBT(aNBT);
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound aNBT) {
+ // TODO Auto-generated method stub
+ super.writeToNBT(aNBT);
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound aNBT) {
+ // TODO Auto-generated method stub
+ super.readFromNBT(aNBT);
+ }
+
+ @Override
+ protected boolean canDespawn() {
+ return !false;
+ }
+
+ @Override
+ public void setProfession(int p_70938_1_) {
+ super.setProfession(7738);
+ }
+
+ @Override
+ public int getProfession() {
+ return mRoleID;
+ }
+
+ @Override
+ public void useRecipe(MerchantRecipe p_70933_1_) {
+ super.useRecipe(p_70933_1_);
+ }
+
+ @Override
+ public void setRecipes(MerchantRecipeList p_70930_1_) {
+ super.setRecipes(p_70930_1_);
+ }
+
+ public boolean shouldAlwaysSprint() {
+ return false;
+ }
+ ;
+
+ @Override
+ public void onLivingUpdate() {
+ super.onLivingUpdate();
+ }
+
+ @Override
+ public Entity getEntityToAttack() {
+ return super.getEntityToAttack();
+ }
+
+ @Override
+ public boolean getAlwaysRenderNameTag() {
+ return hasCustomNameTag();
+ }
+
+ @Override
+ public Random getRNG() {
+ return CORE.RANDOM;
+ }
+
+ @Override
+ public void setSprinting(boolean bool) {
+ super.setSprinting(bool);
+ }
+
+ /**
+ * Custom Shit
+ */
+ protected float getField_82191_bN() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "field_82191_bN");
+ try {
+ return v82191 != null ? v82191.getFloat(this) : 0f;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return 0f;
+ }
+ }
+
+ protected void setField_82191_bN(float f) {
+ try {
+ ReflectionUtils.setField(this, "field_82191_bN", f);
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ protected boolean getNeedsInitilization() {
+ Field v82191 = ReflectionUtils.getField(EntityVillager.class, "needsInitilization");
+ try {
+ return v82191 != null ? v82191.getBoolean(this) : false;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return false;
+ }
+ }
+
+ protected void setNeedsInitilization(boolean f) {
+ try {
+ ReflectionUtils.setField(this, "needsInitilization", f);
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ protected MerchantRecipeList getBuyingList() {
+ Field v82191;
+ MerchantRecipeList o = null;
+ v82191 = ReflectionUtils.getField(getClass(), "buyingList");
+ try {
+ if (v82191 != null) o = (MerchantRecipeList) v82191.get(this);
+ Logger.WARNING("Is BuyingList Valid? " + (v82191 != null));
+ return v82191 != null ? o : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ protected void setBuyingList(MerchantRecipeList f) {
+ try {
+ Logger.WARNING("set BuyingList? " + (ReflectionUtils.setField(this, "buyingList", f)));
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+
+ protected Village getVillageObject() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "villageObj");
+ try {
+ return v82191 != null ? (Village) v82191.get(this) : null;
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ }
+
+ protected String getLastBuyingPlayer() {
+ Field v82191 = ReflectionUtils.getField(getClass(), "lastBuyingPlayer");
+ try {
+ return v82191 != null ? (String) v82191.get(this) : "";
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return "";
+ }
+ }
+
+ public MerchantRecipeList getRecipes(EntityPlayer p_70934_1_) {
+ if (getBuyingList() == null) {
+ this.addDefaultEquipmentAndRecipies(1);
+ }
+ return getBuyingList();
+ }
+
+ /**
+ * Adjusts the probability of obtaining a given recipe being offered by a
+ * villager
+ */
+ private float adjustProbability(float p_82188_1_) {
+ float f1 = p_82188_1_ + getField_82191_bN();
+ return f1 > 0.9F ? 0.9F - (f1 - 0.9F) : f1;
+ }
+
+ /**
+ * based on the villagers profession add items, equipment, and recipies adds
+ * par1 random items to the list of things that the villager wants to buy. (at
+ * most 1 of each wanted type is added)
+ */
+ private void addDefaultEquipmentAndRecipies(int p_70950_1_) {
+ if (this.getBuyingList() != null) {
+ setField_82191_bN(MathHelper.sqrt_float((float) this.getBuyingList().size()) * 0.2F);
+ } else {
+ setField_82191_bN(0.0F);
+ }
+
+ MerchantRecipeList merchantrecipelist;
+ merchantrecipelist = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.getProfession(), this.rand);
+ int k;
+ label50:
+ switch (this.getProfession()) {
+ case 0:
+ addPurchaseRecipe(merchantrecipelist, Items.wheat, this.rand, this.adjustProbability(0.9F));
+ addPurchaseRecipe(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.wool),
+ this.rand,
+ this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.chicken, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.cooked_fished, this.rand, this.adjustProbability(0.4F));
+ addEmeraldTrade(merchantrecipelist, Items.bread, this.rand, this.adjustProbability(0.9F));
+ addEmeraldTrade(merchantrecipelist, Items.melon, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.apple, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cookie, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.shears, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.flint_and_steel, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_chicken, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.arrow, this.rand, this.adjustProbability(0.5F));
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.5F)) {
+ merchantrecipelist.add(new MerchantRecipe(
+ new ItemStack(Blocks.gravel, 10),
+ new ItemStack(Items.emerald),
+ new ItemStack(Items.flint, 4 + this.rand.nextInt(2), 0)));
+ }
+
+ break;
+ case 1:
+ addPurchaseRecipe(merchantrecipelist, Items.paper, this.rand, this.adjustProbability(0.8F));
+ addPurchaseRecipe(merchantrecipelist, Items.book, this.rand, this.adjustProbability(0.8F));
+ addPurchaseRecipe(merchantrecipelist, Items.written_book, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.bookshelf),
+ this.rand,
+ this.adjustProbability(0.8F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.glass),
+ this.rand,
+ this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.compass, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.clock, this.rand, this.adjustProbability(0.2F));
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.07F)) {
+ Enchantment enchantment = Enchantment.enchantmentsBookList[
+ this.rand.nextInt(Enchantment.enchantmentsBookList.length)];
+ int i1 = MathHelper.getRandomIntegerInRange(
+ this.rand, enchantment.getMinLevel(), enchantment.getMaxLevel());
+ ItemStack itemstack =
+ Items.enchanted_book.getEnchantedItemStack(new EnchantmentData(enchantment, i1));
+ k = 2 + this.rand.nextInt(5 + i1 * 10) + 3 * i1;
+ merchantrecipelist.add(
+ new MerchantRecipe(new ItemStack(Items.book), new ItemStack(Items.emerald, k), itemstack));
+ }
+
+ break;
+ case 2:
+ addEmeraldTrade(merchantrecipelist, Items.ender_eye, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.experience_bottle, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.redstone, this.rand, this.adjustProbability(0.4F));
+ addEmeraldTrade(
+ merchantrecipelist,
+ Item.getItemFromBlock(Blocks.glowstone),
+ this.rand,
+ this.adjustProbability(0.3F));
+ Item[] aitem = new Item[] {
+ Items.iron_sword,
+ Items.diamond_sword,
+ Items.iron_chestplate,
+ Items.diamond_chestplate,
+ Items.iron_axe,
+ Items.diamond_axe,
+ Items.iron_pickaxe,
+ Items.diamond_pickaxe
+ };
+ Item[] aitem1 = aitem;
+ int j = aitem.length;
+ k = 0;
+
+ while (true) {
+ if (k >= j) {
+ break label50;
+ }
+
+ Item item = aitem1[k];
+
+ if (this.rand.nextFloat() < this.adjustProbability(0.05F)) {
+ merchantrecipelist.add(new MerchantRecipe(
+ new ItemStack(item, 1, 0),
+ new ItemStack(Items.emerald, 2 + this.rand.nextInt(3), 0),
+ EnchantmentHelper.addRandomEnchantment(
+ this.rand, new ItemStack(item, 1, 0), 5 + this.rand.nextInt(15))));
+ }
+
+ ++k;
+ }
+ case 3:
+ addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ addPurchaseRecipe(merchantrecipelist, Items.iron_ingot, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.diamond, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_sword, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_sword, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_axe, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_axe, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_pickaxe, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_pickaxe, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_shovel, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_shovel, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_hoe, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_hoe, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_boots, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_boots, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_helmet, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_helmet, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_chestplate, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_chestplate, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.iron_leggings, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.diamond_leggings, this.rand, this.adjustProbability(0.2F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_boots, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_helmet, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(
+ merchantrecipelist, Items.chainmail_chestplate, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.chainmail_leggings, this.rand, this.adjustProbability(0.1F));
+ break;
+ case 4:
+ addPurchaseRecipe(merchantrecipelist, Items.coal, this.rand, this.adjustProbability(0.7F));
+ addPurchaseRecipe(merchantrecipelist, Items.porkchop, this.rand, this.adjustProbability(0.5F));
+ addPurchaseRecipe(merchantrecipelist, Items.beef, this.rand, this.adjustProbability(0.5F));
+ addEmeraldTrade(merchantrecipelist, Items.saddle, this.rand, this.adjustProbability(0.1F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_chestplate, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_boots, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_helmet, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.leather_leggings, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_porkchop, this.rand, this.adjustProbability(0.3F));
+ addEmeraldTrade(merchantrecipelist, Items.cooked_beef, this.rand, this.adjustProbability(0.3F));
+ }
+
+ if (merchantrecipelist.isEmpty()) {
+ addPurchaseRecipe(merchantrecipelist, Items.gold_ingot, this.rand, 1.0F);
+ }
+
+ Collections.shuffle(merchantrecipelist);
+
+ if (this.getBuyingList() == null) {
+ this.setBuyingList(new MerchantRecipeList());
+ }
+
+ for (int l = 0; l < p_70950_1_ && l < merchantrecipelist.size(); ++l) {
+ try {
+ this.getBuyingList().addToListWithCheck((MerchantRecipe) merchantrecipelist.get(l));
+ } catch (Throwable t) {
+ Logger.INFO("Villager with ID " + this.entityUniqueID.toString() + " at | X: " + this.posX + " Y: "
+ + this.posY + " Z: " + this.posZ
+ + " may have corrupt trades, it is advised to remove/kill it.");
+ }
+ }
+
+ try {
+ if (this.getBuyingList() != null) {
+ for (Object g : this.getBuyingList()) {
+ if (g != null) {
+ if (g instanceof MerchantRecipe) {
+ MerchantRecipe m = (MerchantRecipe) g;
+ ItemStack selling = m.getItemToSell();
+ ItemStack[] buying = new ItemStack[] {
+ m.getItemToBuy(), m.getSecondItemToBuy() != null ? m.getSecondItemToBuy() : null
+ };
+ if (selling == null) {
+ Logger.WARNING("Villager is Selling an invalid item");
+ } else if (buying[0] == null && buying[1] == null) {
+ Logger.WARNING("Villager is buying two invalid items");
+ } else {
+ Logger.WARNING(
+ "Villager is Selling x" + selling.stackSize + selling.getDisplayName()
+ + " for x" + buying[0].stackSize + " "
+ + buying[0].getDisplayName() + buying[1]
+ != null
+ ? " and for x" + buying[1].stackSize + " " + buying[1].getDisplayName()
+ : "");
+ }
+ } else Logger.WARNING("Found: " + g.getClass().getName());
+ }
+ }
+ } else {
+
+ }
+ } catch (Throwable t) {
+
+ }
+ }
+
+ /**
+ * main AI tick function, replaces updateEntityActionState
+ */
+ @Override
+ protected void updateAITick() {
+ if (!this.isTrading()) {
+ if (this.getNeedsInitilization()) {
+ if (this.getBuyingList().size() > 1) {
+ Iterator<MerchantRecipe> iterator = this.getBuyingList().iterator();
+
+ while (iterator.hasNext()) {
+ MerchantRecipe merchantrecipe = (MerchantRecipe) iterator.next();
+
+ if (merchantrecipe.isRecipeDisabled()) {
+ merchantrecipe.func_82783_a(this.rand.nextInt(6) + this.rand.nextInt(6) + 2);
+ }
+ }
+ }
+
+ this.addDefaultEquipmentAndRecipies(1);
+ this.setNeedsInitilization(false);
+
+ if (this.getVillageObject() != null && this.getLastBuyingPlayer() != null) {
+ this.worldObj.setEntityState(this, (byte) 14);
+ this.getVillageObject().setReputationForPlayer(this.getLastBuyingPlayer(), 1);
+ }
+ }
+ }
+ super.updateAITick();
+ }
+
+ public static void addEmeraldTrade(MerchantRecipeList aRecipeList, Item aItem, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ int i = getLootAmount_BlacksmithSellingList(aItem, aRand);
+ ItemStack itemstack;
+ ItemStack itemstack1;
+
+ if (i < 0) {
+ itemstack = new ItemStack(Items.emerald, 1, 0);
+ itemstack1 = new ItemStack(aItem, -i, 0);
+ } else {
+ itemstack = new ItemStack(Items.emerald, i, 0);
+ itemstack1 = new ItemStack(aItem, 1, 0);
+ }
+
+ aRecipeList.add(new MerchantRecipe(itemstack, itemstack1));
+ }
+ }
+
+ public static void addCustomTrade(
+ MerchantRecipeList aRecipeList,
+ ItemStack aItem1,
+ ItemStack aItem2,
+ ItemStack aItem3,
+ Random aRand,
+ float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aRecipeList.add(new MerchantRecipe(aItem1, aItem2, aItem3));
+ }
+ }
+
+ private static int getLootAmount_BlacksmithSellingList(Item aItem, Random aRand) {
+ Tuple tuple = (Tuple) blacksmithSellingList.get(aItem);
+ return tuple == null
+ ? 1
+ : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
+ ? ((Integer) tuple.getFirst()).intValue()
+ : ((Integer) tuple.getFirst()).intValue()
+ + aRand.nextInt(((Integer) tuple.getSecond()).intValue()
+ - ((Integer) tuple.getFirst()).intValue()));
+ }
+
+ public static void addPurchaseRecipe(MerchantRecipeList aTradeList, Item aItem, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aTradeList.add(new MerchantRecipe(getSimpleLootStack(aItem, aRand), Items.emerald));
+ }
+ }
+
+ private static ItemStack getSimpleLootStack(Item aItem, Random aRand) {
+ return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), 0);
+ }
+
+ public static void addPurchaseRecipe(
+ MerchantRecipeList aTradeList, Item aItem, int aMeta, Random aRand, float aChance) {
+ if (aRand.nextFloat() < aChance) {
+ aTradeList.add(new MerchantRecipe(getComplexLootStack(aItem, aMeta, aRand), Items.emerald));
+ }
+ }
+
+ private static ItemStack getComplexLootStack(Item aItem, int aMeta, Random aRand) {
+ return new ItemStack(aItem, getLootAmount_VillagerSellingList(aItem, aRand), aMeta);
+ }
+
+ private static int getLootAmount_VillagerSellingList(Item aItem, Random aRand) {
+ Tuple tuple = (Tuple) villagersSellingList.get(aItem);
+ return tuple == null
+ ? 1
+ : (((Integer) tuple.getFirst()).intValue() >= ((Integer) tuple.getSecond()).intValue()
+ ? ((Integer) tuple.getFirst()).intValue()
+ : ((Integer) tuple.getFirst()).intValue()
+ + aRand.nextInt(((Integer) tuple.getSecond()).intValue()
+ - ((Integer) tuple.getFirst()).intValue()));
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java b/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java
index 61db98e803..6ff46380b8 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/entity/trade/BaseVillagerTrade.java
@@ -1,32 +1,30 @@
package gtPlusPlus.plugin.villagers.entity.trade;
-import java.util.Random;
-
import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
+import java.util.Random;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.village.MerchantRecipeList;
public abstract class BaseVillagerTrade implements IVillageTradeHandler {
+ /*
+ Recently in my mod I started working on a new villager and after doing so I could not figure out to assign new trades to this villager.
+ Registering the villager
+ VillagerRegistry.instance().registerVillageTradeHandler(i, new TradeHandler());}
+ VillagerRegistry.instance().registerVillagerId(8);
+ VillagerRegistry.instance().registerVillagerSkin(8, new ResourceLocation("chow", "textures/dealer.png"));
+ VillagerRegistry.instance().getRegisteredVillagers();
+ In my trade handler for vanilla villagers it goes off case 0 for instance being the farmer. I thought that it being case 8 would represent the id 8 for the custom villager but it still doesn't work. Could anyone help me out with this please?
+ *
+ *
+ First, you'll need to make a new class that extends IVillageTradeHandler.
+ In the constructor, add ItemStacks of the items you want it to trade to an ArrayList,
+ then in the manipulateTradesForVillager method, have it make sure the villager is yours by using villager.getProfession()
+ and your villager ID, then in a for loop use recipeList.addToListWithCheck to add new instances of MerchantRecipe to your villager's trade list.
+ Then, in your mod's main class, register the trade handler with VillageRegistry.instance().registerVillagerTradeHandler(villagerId, instanceOfTradeHandler);
+ */
- /*
- Recently in my mod I started working on a new villager and after doing so I could not figure out to assign new trades to this villager.
- Registering the villager
- VillagerRegistry.instance().registerVillageTradeHandler(i, new TradeHandler());}
- VillagerRegistry.instance().registerVillagerId(8);
- VillagerRegistry.instance().registerVillagerSkin(8, new ResourceLocation("chow", "textures/dealer.png"));
- VillagerRegistry.instance().getRegisteredVillagers();
- In my trade handler for vanilla villagers it goes off case 0 for instance being the farmer. I thought that it being case 8 would represent the id 8 for the custom villager but it still doesn't work. Could anyone help me out with this please?
- *
- *
- First, you'll need to make a new class that extends IVillageTradeHandler.
- In the constructor, add ItemStacks of the items you want it to trade to an ArrayList,
- then in the manipulateTradesForVillager method, have it make sure the villager is yours by using villager.getProfession()
- and your villager ID, then in a for loop use recipeList.addToListWithCheck to add new instances of MerchantRecipe to your villager's trade list.
- Then, in your mod's main class, register the trade handler with VillageRegistry.instance().registerVillagerTradeHandler(villagerId, instanceOfTradeHandler);
- */
-
- @Override
- public abstract void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random);
-
+ @Override
+ public abstract void manipulateTradesForVillager(
+ EntityVillager villager, MerchantRecipeList recipeList, Random random);
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java b/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java
index 28416793f5..a1ada6c7d5 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/tile/MobSpawnerCustomLogic.java
@@ -5,65 +5,65 @@ import cpw.mods.fml.common.registry.EntityRegistry.EntityRegistration;
import gtPlusPlus.core.block.ModBlocks;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.MobSpawnerBaseLogic;
-import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class MobSpawnerCustomLogic extends MobSpawnerBaseLogic {
- private TileEntityGenericSpawner mTile;
+ private TileEntityGenericSpawner mTile;
- public MobSpawnerCustomLogic(TileEntityGenericSpawner tile) {
- if (tile != null) {
- mTile = tile;
- }
-
- if (TileEntityGenericSpawner.mSpawners.get(mTile.getID()) != null) {
- Class<Entity> c = TileEntityGenericSpawner.mSpawners.get(mTile.getID());
- EntityRegistration x = EntityRegistry.instance().lookupModSpawn(c, false);
- if (x != null) {
- this.setEntityName(x.getEntityName());
- }
- }
-
- }
+ public MobSpawnerCustomLogic(TileEntityGenericSpawner tile) {
+ if (tile != null) {
+ mTile = tile;
+ }
- @Override
- public void func_98267_a(int eventID) {
- if (mTile != null) mTile.getWorldObj().addBlockEvent(mTile.xCoord, mTile.yCoord, mTile.zCoord, ModBlocks.blockCustomMobSpawner, eventID, 0);
- }
+ if (TileEntityGenericSpawner.mSpawners.get(mTile.getID()) != null) {
+ Class<Entity> c = TileEntityGenericSpawner.mSpawners.get(mTile.getID());
+ EntityRegistration x = EntityRegistry.instance().lookupModSpawn(c, false);
+ if (x != null) {
+ this.setEntityName(x.getEntityName());
+ }
+ }
+ }
- @Override
- public World getSpawnerWorld() {
- if (mTile != null) return mTile.getWorldObj();
- return null;
- }
+ @Override
+ public void func_98267_a(int eventID) {
+ if (mTile != null)
+ mTile.getWorldObj()
+ .addBlockEvent(
+ mTile.xCoord, mTile.yCoord, mTile.zCoord, ModBlocks.blockCustomMobSpawner, eventID, 0);
+ }
- @Override
- public int getSpawnerX() {
- if (mTile != null) return mTile.xCoord;
- return 0;
- }
+ @Override
+ public World getSpawnerWorld() {
+ if (mTile != null) return mTile.getWorldObj();
+ return null;
+ }
- @Override
- public int getSpawnerY() {
- if (mTile != null) return mTile.yCoord;
- return 0;
- }
+ @Override
+ public int getSpawnerX() {
+ if (mTile != null) return mTile.xCoord;
+ return 0;
+ }
- @Override
- public int getSpawnerZ() {
- if (mTile != null) return mTile.zCoord;
- return 0;
- }
+ @Override
+ public int getSpawnerY() {
+ if (mTile != null) return mTile.yCoord;
+ return 0;
+ }
- @Override
- public void setRandomEntity(MobSpawnerBaseLogic.WeightedRandomMinecart p_98277_1_) {
- super.setRandomEntity(p_98277_1_);
- if (mTile != null) {
- if (this.getSpawnerWorld() != null) {
- this.getSpawnerWorld().markBlockForUpdate(mTile.xCoord, mTile.yCoord, mTile.zCoord);
- }
- }
- }
+ @Override
+ public int getSpawnerZ() {
+ if (mTile != null) return mTile.zCoord;
+ return 0;
+ }
+ @Override
+ public void setRandomEntity(MobSpawnerBaseLogic.WeightedRandomMinecart p_98277_1_) {
+ super.setRandomEntity(p_98277_1_);
+ if (mTile != null) {
+ if (this.getSpawnerWorld() != null) {
+ this.getSpawnerWorld().markBlockForUpdate(mTile.xCoord, mTile.yCoord, mTile.zCoord);
+ }
+ }
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java b/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java
index 45b8c9941b..df4e58124a 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java
@@ -1,11 +1,10 @@
package gtPlusPlus.plugin.villagers.tile;
-import java.util.HashMap;
-import java.util.Map;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import java.util.HashMap;
+import java.util.Map;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.MobSpawnerBaseLogic;
@@ -14,232 +13,233 @@ import net.minecraft.tileentity.TileEntityMobSpawner;
public class TileEntityGenericSpawner extends TileEntityMobSpawner {
- /*
- * Static Variables
- */
-
- /** A HashMap storing string names of classes mapping to the actual java.lang.Class type. */
- private static Map<?, ?> nameToClassMap_Ex = new HashMap<Object, Object>();
- /** A HashMap storing the classes and mapping to the string names (reverse of nameToClassMap). */
- private static Map<?, ?> classToNameMap_Ex = new HashMap<Object, Object>();
-
- /**
- * The Mob Spawner Map
- */
- public static HashMap<Integer, Class<Entity>> mSpawners = new HashMap<Integer, Class<Entity>>();
-
- /**
- * Registers a New Mob Spawner Type
- *
- * @param aID
- * - the Spawner type ID
- * @param aEntity
- * - the Entity which you'd like to spawn
- */
- public static boolean registerNewMobSpawner(int aID, Class<Entity> aEntity) {
- int registered = mSpawners.size();
- Logger.INFO("Currently "+registered+" spawners are registered.");
- if (!mSpawners.containsKey(aID) && !mSpawners.containsValue(aEntity)) {
- mSpawners.put(aID, aEntity);
- }
- return mSpawners.size() > registered;
- }
-
- /*
- * Instance Variables
- */
-
- /**
- * The {@link Entity} type which spawns.
- */
- protected int mID;
- private final Class mSpawnType;
- private MobSpawnerCustomLogic spawnerLogic;
-
- /*
- * Constructors
- */
-
- /**
- * Constructs a new Spawner, based on an existing type registered.
- *
- * @param aID
- * - The ID in the {@link mSpawners} map.
- */
- public TileEntityGenericSpawner(int aID) {
- mID = aID;
- if (mSpawners.get(aID) != null) {
- mSpawnType = mSpawners.get(aID);
- } else {
- mSpawnType = null;
- }
-
- // Last thing to Init
- generateLogicObject();
- }
-
- /**
- * Constructs a new Spawner, then registers it.
- *
- * @param aID
- * - The ID to be used in the {@link mSpawners} map.
- * @param aEntity
- * - The {@link Entity} type which will be spawned.
- */
- public TileEntityGenericSpawner(int aID, Entity aEntity) {
- mID = aID;
- if (aEntity != null) {
- mSpawnType = aEntity.getClass();
- if (mSpawners.containsKey(aID)) {
- registerNewMobSpawner(aID, mSpawnType);
- }
- } else {
- mSpawnType = null;
- }
-
- // Last thing to Init
- generateLogicObject();
- }
-
- public final MobSpawnerCustomLogic getLogic() {
- if (spawnerLogic == null || spawnerLogic.getSpawnerWorld() == null) {
- generateLogicObject();
- }
- return spawnerLogic;
- }
-
- private final void generateLogicObject() {
- spawnerLogic = new MobSpawnerCustomLogic(this);
- }
-
- public int getID() {
- return this.mID;
- }
-
- @Override
- public void readFromNBT(NBTTagCompound p_145839_1_) {
- if (hasInternalFieldBeenSet()) {
- this.getLogic().readFromNBT(p_145839_1_);
- this.xCoord = p_145839_1_.getInteger("x");
- this.yCoord = p_145839_1_.getInteger("y");
- this.zCoord = p_145839_1_.getInteger("z");
- this.mID = p_145839_1_.getInteger("mID");
- }
- }
-
- @Override
- public void writeToNBT(NBTTagCompound p_145841_1_) {
- if (hasInternalFieldBeenSet()) {
- String s = (String) classToNameMap_Ex.get(this.getClass());
- if (s == null){
- for (Object g : classToNameMap_Ex.values()) {
- if (g instanceof String) {
- Logger.INFO("Found Translation for "+((Class) nameToClassMap_Ex.get(g)).getName()+": "+g);
- }
- }
-
- //throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!");
- s = mSpawners.containsKey(this.mID) ? mSpawners.get(this.mID).getSimpleName() : "bad.class.name";
- p_145841_1_.setString("id", s);
- Logger.WARNING(this.getClass() + " is missing a mapping! This is a bug! Used key: "+s);
- p_145841_1_.setInteger("x", this.xCoord);
- p_145841_1_.setInteger("y", this.yCoord);
- p_145841_1_.setInteger("z", this.zCoord);
- p_145841_1_.setInteger("mID", this.mID);
- }
- else {
- Logger.INFO(this.getClass() + " is not missing a mapping! Used key: "+s);
- p_145841_1_.setString("id", s);
- p_145841_1_.setInteger("x", this.xCoord);
- p_145841_1_.setInteger("y", this.yCoord);
- p_145841_1_.setInteger("z", this.zCoord);
- p_145841_1_.setInteger("mID", this.mID);
- }
- this.getLogic().writeToNBT(p_145841_1_);
- }
- }
-
- @Override
- public void updateEntity() {
- if (Utils.isServer()) {
- mTicks++;
- if (hasInternalFieldBeenSet()) {
- this.getLogic().updateSpawner();
- }
- }
- }
-
- private boolean isReady = false;
- private long mTicks = 0;
-
- private boolean hasInternalFieldBeenSet() {
- if (isReady && mTicks % 200 != 0) {
- return true;
- } else {
-
- if (Utils.isServer()) {
- try {
- Map<?, ?> a1 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "nameToClassMap").get(this);
- Map<?, ?> a2 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "classToNameMap").get(this);
- if (a1 != null) {
- if (nameToClassMap_Ex == null) {
- nameToClassMap_Ex = a1;
- }
- if (nameToClassMap_Ex != null) {
- if (nameToClassMap_Ex.size() != a1.size()) {
- nameToClassMap_Ex = a1;
- }
- }
- }
- if (a2 != null) {
- if (classToNameMap_Ex == null) {
- classToNameMap_Ex = a2;
- }
- if (classToNameMap_Ex != null) {
- if (classToNameMap_Ex.size() != a2.size()) {
- classToNameMap_Ex = a2;
- }
- }
- if (nameToClassMap_Ex != null && classToNameMap_Ex != null) {
- //Logger.INFO("nameToClassMap_Ex has a size of "+nameToClassMap_Ex.size()+".");
- //Logger.INFO("a1 has a size of "+a1.size()+".");
- //Logger.INFO("classToNameMap_Ex has a size of "+classToNameMap_Ex.size()+".");
- //Logger.INFO("a2 has a size of "+a2.size()+".");
- isReady = true;
- return true;
- }
- }
-
- /*Field mInternalLogicField = ReflectionUtils.getField(getClass(), "field_145882_a");
- if (mInternalLogicField != null) {
- MobSpawnerBaseLogic a = (MobSpawnerBaseLogic) mInternalLogicField.get(this);
- if (a != null) {
- ReflectionUtils.setField(this, "field_145882_a", getLogic());
- if (a.equals(getLogic())) {
- isReady = true;
- return true;
- }
- }
- }*/
- } catch (IllegalArgumentException | IllegalAccessException e) {
- }
- }
- return false;
- }
- }
-
- /**
- * Called when a client event is received with the event number and argument,
- * see World.sendClientEvent
- */
- @Override
- public boolean receiveClientEvent(int p_145842_1_, int p_145842_2_) {
- return this.spawnerLogic.setDelayToMin(p_145842_1_) ? true : super.receiveClientEvent(p_145842_1_, p_145842_2_);
- }
-
- @Override
- public MobSpawnerBaseLogic func_145881_a() {
- return this.spawnerLogic;
- }
-
+ /*
+ * Static Variables
+ */
+
+ /** A HashMap storing string names of classes mapping to the actual java.lang.Class type. */
+ private static Map<?, ?> nameToClassMap_Ex = new HashMap<Object, Object>();
+ /** A HashMap storing the classes and mapping to the string names (reverse of nameToClassMap). */
+ private static Map<?, ?> classToNameMap_Ex = new HashMap<Object, Object>();
+
+ /**
+ * The Mob Spawner Map
+ */
+ public static HashMap<Integer, Class<Entity>> mSpawners = new HashMap<Integer, Class<Entity>>();
+
+ /**
+ * Registers a New Mob Spawner Type
+ *
+ * @param aID
+ * - the Spawner type ID
+ * @param aEntity
+ * - the Entity which you'd like to spawn
+ */
+ public static boolean registerNewMobSpawner(int aID, Class<Entity> aEntity) {
+ int registered = mSpawners.size();
+ Logger.INFO("Currently " + registered + " spawners are registered.");
+ if (!mSpawners.containsKey(aID) && !mSpawners.containsValue(aEntity)) {
+ mSpawners.put(aID, aEntity);
+ }
+ return mSpawners.size() > registered;
+ }
+
+ /*
+ * Instance Variables
+ */
+
+ /**
+ * The {@link Entity} type which spawns.
+ */
+ protected int mID;
+
+ private final Class mSpawnType;
+ private MobSpawnerCustomLogic spawnerLogic;
+
+ /*
+ * Constructors
+ */
+
+ /**
+ * Constructs a new Spawner, based on an existing type registered.
+ *
+ * @param aID
+ * - The ID in the {@link mSpawners} map.
+ */
+ public TileEntityGenericSpawner(int aID) {
+ mID = aID;
+ if (mSpawners.get(aID) != null) {
+ mSpawnType = mSpawners.get(aID);
+ } else {
+ mSpawnType = null;
+ }
+
+ // Last thing to Init
+ generateLogicObject();
+ }
+
+ /**
+ * Constructs a new Spawner, then registers it.
+ *
+ * @param aID
+ * - The ID to be used in the {@link mSpawners} map.
+ * @param aEntity
+ * - The {@link Entity} type which will be spawned.
+ */
+ public TileEntityGenericSpawner(int aID, Entity aEntity) {
+ mID = aID;
+ if (aEntity != null) {
+ mSpawnType = aEntity.getClass();
+ if (mSpawners.containsKey(aID)) {
+ registerNewMobSpawner(aID, mSpawnType);
+ }
+ } else {
+ mSpawnType = null;
+ }
+
+ // Last thing to Init
+ generateLogicObject();
+ }
+
+ public final MobSpawnerCustomLogic getLogic() {
+ if (spawnerLogic == null || spawnerLogic.getSpawnerWorld() == null) {
+ generateLogicObject();
+ }
+ return spawnerLogic;
+ }
+
+ private final void generateLogicObject() {
+ spawnerLogic = new MobSpawnerCustomLogic(this);
+ }
+
+ public int getID() {
+ return this.mID;
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound p_145839_1_) {
+ if (hasInternalFieldBeenSet()) {
+ this.getLogic().readFromNBT(p_145839_1_);
+ this.xCoord = p_145839_1_.getInteger("x");
+ this.yCoord = p_145839_1_.getInteger("y");
+ this.zCoord = p_145839_1_.getInteger("z");
+ this.mID = p_145839_1_.getInteger("mID");
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound p_145841_1_) {
+ if (hasInternalFieldBeenSet()) {
+ String s = (String) classToNameMap_Ex.get(this.getClass());
+ if (s == null) {
+ for (Object g : classToNameMap_Ex.values()) {
+ if (g instanceof String) {
+ Logger.INFO("Found Translation for " + ((Class) nameToClassMap_Ex.get(g)).getName() + ": " + g);
+ }
+ }
+
+ // throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!");
+ s = mSpawners.containsKey(this.mID) ? mSpawners.get(this.mID).getSimpleName() : "bad.class.name";
+ p_145841_1_.setString("id", s);
+ Logger.WARNING(this.getClass() + " is missing a mapping! This is a bug! Used key: " + s);
+ p_145841_1_.setInteger("x", this.xCoord);
+ p_145841_1_.setInteger("y", this.yCoord);
+ p_145841_1_.setInteger("z", this.zCoord);
+ p_145841_1_.setInteger("mID", this.mID);
+ } else {
+ Logger.INFO(this.getClass() + " is not missing a mapping! Used key: " + s);
+ p_145841_1_.setString("id", s);
+ p_145841_1_.setInteger("x", this.xCoord);
+ p_145841_1_.setInteger("y", this.yCoord);
+ p_145841_1_.setInteger("z", this.zCoord);
+ p_145841_1_.setInteger("mID", this.mID);
+ }
+ this.getLogic().writeToNBT(p_145841_1_);
+ }
+ }
+
+ @Override
+ public void updateEntity() {
+ if (Utils.isServer()) {
+ mTicks++;
+ if (hasInternalFieldBeenSet()) {
+ this.getLogic().updateSpawner();
+ }
+ }
+ }
+
+ private boolean isReady = false;
+ private long mTicks = 0;
+
+ private boolean hasInternalFieldBeenSet() {
+ if (isReady && mTicks % 200 != 0) {
+ return true;
+ } else {
+
+ if (Utils.isServer()) {
+ try {
+ Map<?, ?> a1 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "nameToClassMap")
+ .get(this);
+ Map<?, ?> a2 = (Map<?, ?>) ReflectionUtils.getField(TileEntity.class, "classToNameMap")
+ .get(this);
+ if (a1 != null) {
+ if (nameToClassMap_Ex == null) {
+ nameToClassMap_Ex = a1;
+ }
+ if (nameToClassMap_Ex != null) {
+ if (nameToClassMap_Ex.size() != a1.size()) {
+ nameToClassMap_Ex = a1;
+ }
+ }
+ }
+ if (a2 != null) {
+ if (classToNameMap_Ex == null) {
+ classToNameMap_Ex = a2;
+ }
+ if (classToNameMap_Ex != null) {
+ if (classToNameMap_Ex.size() != a2.size()) {
+ classToNameMap_Ex = a2;
+ }
+ }
+ if (nameToClassMap_Ex != null && classToNameMap_Ex != null) {
+ // Logger.INFO("nameToClassMap_Ex has a size of "+nameToClassMap_Ex.size()+".");
+ // Logger.INFO("a1 has a size of "+a1.size()+".");
+ // Logger.INFO("classToNameMap_Ex has a size of "+classToNameMap_Ex.size()+".");
+ // Logger.INFO("a2 has a size of "+a2.size()+".");
+ isReady = true;
+ return true;
+ }
+ }
+
+ /*Field mInternalLogicField = ReflectionUtils.getField(getClass(), "field_145882_a");
+ if (mInternalLogicField != null) {
+ MobSpawnerBaseLogic a = (MobSpawnerBaseLogic) mInternalLogicField.get(this);
+ if (a != null) {
+ ReflectionUtils.setField(this, "field_145882_a", getLogic());
+ if (a.equals(getLogic())) {
+ isReady = true;
+ return true;
+ }
+ }
+ }*/
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ }
+ }
+ return false;
+ }
+ }
+
+ /**
+ * Called when a client event is received with the event number and argument,
+ * see World.sendClientEvent
+ */
+ @Override
+ public boolean receiveClientEvent(int p_145842_1_, int p_145842_2_) {
+ return this.spawnerLogic.setDelayToMin(p_145842_1_) ? true : super.receiveClientEvent(p_145842_1_, p_145842_2_);
+ }
+
+ @Override
+ public MobSpawnerBaseLogic func_145881_a() {
+ return this.spawnerLogic;
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java
index 3baca10792..3d087ea053 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerAboriginal.java
@@ -2,14 +2,11 @@ package gtPlusPlus.plugin.villagers.trade;
import static java.util.Collections.shuffle;
-import java.util.Collections;
-import java.util.Random;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
-import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import java.util.Random;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -19,143 +16,148 @@ import net.minecraft.village.MerchantRecipeList;
public class TradeHandlerAboriginal extends TradeHandlerBase {
- private final static AutoMap<ItemStack> mInputs = new AutoMap<ItemStack>();
- private final static AutoMap<ItemStack> mOutputs = new AutoMap<ItemStack>();
- private static boolean initialised = false;
+ private static final AutoMap<ItemStack> mInputs = new AutoMap<ItemStack>();
+ private static final AutoMap<ItemStack> mOutputs = new AutoMap<ItemStack>();
+ private static boolean initialised = false;
- public static void init() {
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.anvil, 1));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.cactus, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.dirt, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.cobblestone, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.pumpkin, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.log, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.obsidian, 8));
- mOutputs.put(ItemUtils.getSimpleStack(Items.wheat, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.gravel, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Blocks.sand, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.apple, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.emerald, 1));
- mOutputs.put(ItemUtils.getSimpleStack(Items.diamond, 1));
- mOutputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.beef, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.bone, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.bread, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.carrot, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.potato, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.chicken, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.fish, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.feather, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.egg, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.leather, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0));
- mOutputs.put(ItemUtils.getSimpleStack(Items.reeds, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.wooden_door));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.log));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.log2));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.planks));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.sapling));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.sandstone));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.nether_brick));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.crafting_table));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.gravel));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.cactus));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.quartz_block));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.stone));
- mInputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone));
- mInputs.put(ItemUtils.getSimpleStack(Items.apple, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.emerald, 1));
- mInputs.put(ItemUtils.getSimpleStack(Items.diamond, 1));
- mInputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.beef, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.bone, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.bread, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.carrot, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.potato, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.chicken, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.fish, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.feather, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.egg, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.leather, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0));
- mInputs.put(ItemUtils.getSimpleStack(Items.reeds, 0));
- initialised = true;
- }
+ public static void init() {
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.anvil, 1));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.cactus, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.dirt, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.cobblestone, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.pumpkin, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.log, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.obsidian, 8));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.wheat, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.gravel, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Blocks.sand, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.apple, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.emerald, 1));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.diamond, 1));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.beef, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.bone, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.bread, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.carrot, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.potato, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.chicken, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.fish, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.feather, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.egg, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.leather, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0));
+ mOutputs.put(ItemUtils.getSimpleStack(Items.reeds, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.wooden_door));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.log));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.log2));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.planks));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.sapling));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.sandstone));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.nether_brick));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.bookshelf));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.crafting_table));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.gravel));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.hardened_clay));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.cactus));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.quartz_block));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.stone));
+ mInputs.put(ItemUtils.getSimpleStack(Blocks.mossy_cobblestone));
+ mInputs.put(ItemUtils.getSimpleStack(Items.apple, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.emerald, 1));
+ mInputs.put(ItemUtils.getSimpleStack(Items.diamond, 1));
+ mInputs.put(ItemUtils.getSimpleStack(Items.baked_potato, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.beef, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.bone, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.bread, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.carrot, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.potato, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.poisonous_potato, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.chicken, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.porkchop, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.cooked_beef, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.cooked_chicken, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.cooked_porkchop, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.fish, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.cooked_fished, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.feather, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.egg, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.gold_nugget, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.leather, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.melon_seeds, 0));
+ mInputs.put(ItemUtils.getSimpleStack(Items.reeds, 0));
+ initialised = true;
+ }
+ public TradeHandlerAboriginal() {
+ Logger.INFO("Created Trade Manager for 'Trader' villager profession type.");
+ }
- public TradeHandlerAboriginal() {
- Logger.INFO("Created Trade Manager for 'Trader' villager profession type.");
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
+ if (!initialised) {
+ init();
+ }
+ if (initialised) {
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
+ shuffle(recipeList);
+ }
+ }
- @SuppressWarnings("unchecked")
- @Override
- public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
- if (!initialised) {
- init();
- }
- if (initialised) {
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- recipeList.add(new MerchantRecipe(getInput(), getInput(), getOutput()));
- shuffle(recipeList);
- }
- }
+ private ItemStack getInput() {
+ ItemStack input = mInputs.get(MathUtils.randInt(0, mInputs.size() - 1));
+ int outputSize = (input.stackSize == 0
+ ? (Math.max(MathUtils.randInt(1, 64), MathUtils.randInt(1, 32)))
+ : input.stackSize);
+ return ItemUtils.getSimpleStack(input, outputSize);
+ }
- private ItemStack getInput() {
- ItemStack input = mInputs.get(MathUtils.randInt(0, mInputs.size()-1));
- int outputSize = (input.stackSize == 0 ? (Math.max(MathUtils.randInt(1, 64), MathUtils.randInt(1, 32))) : input.stackSize);
- return ItemUtils.getSimpleStack(input, outputSize);
- }
-
- final static int MID_BOUND = 24;
- private ItemStack getOutput() {
- ItemStack output = mOutputs.get(MathUtils.randInt(0, mOutputs.size()-1));
- int outputSize = (output.stackSize == 0 ? (Math.min(MathUtils.randInt(MathUtils.randInt(1, MID_BOUND), MathUtils.randInt(MID_BOUND, 32)), MathUtils.randInt(MathUtils.randInt(12, MID_BOUND), MathUtils.randInt(MID_BOUND, 48)))) : output.stackSize);
- return ItemUtils.getSimpleStack(output, outputSize);
- }
+ static final int MID_BOUND = 24;
+ private ItemStack getOutput() {
+ ItemStack output = mOutputs.get(MathUtils.randInt(0, mOutputs.size() - 1));
+ int outputSize = (output.stackSize == 0
+ ? (Math.min(
+ MathUtils.randInt(MathUtils.randInt(1, MID_BOUND), MathUtils.randInt(MID_BOUND, 32)),
+ MathUtils.randInt(MathUtils.randInt(12, MID_BOUND), MathUtils.randInt(MID_BOUND, 48))))
+ : output.stackSize);
+ return ItemUtils.getSimpleStack(output, outputSize);
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java
index 215dc0683b..c42da6895f 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBanker.java
@@ -1,27 +1,23 @@
package gtPlusPlus.plugin.villagers.trade;
-import java.util.Collections;
-import java.util.Random;
-
import gtPlusPlus.core.recipe.common.CI;
+import java.util.Random;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;
public class TradeHandlerBanker extends TradeHandlerBase {
-
- @SuppressWarnings("unchecked")
- @Override
- public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
- //if (villager.getProfession() == 7735) {
- recipeList.add(new MerchantRecipe(CI.electricMotor_LV, CI.electricPiston_LV, CI.robotArm_LV));
- recipeList.add(new MerchantRecipe(CI.electricMotor_MV, CI.electricPiston_MV, CI.robotArm_MV));
- recipeList.add(new MerchantRecipe(CI.electricMotor_HV, CI.electricPiston_HV, CI.robotArm_HV));
- recipeList.add(new MerchantRecipe(CI.electricMotor_EV, CI.electricPiston_EV, CI.robotArm_EV));
- recipeList.add(new MerchantRecipe(CI.electricMotor_IV, CI.electricPiston_IV, CI.robotArm_IV));
- //Collections.shuffle(recipeList);
- //}
- }
-
+ @SuppressWarnings("unchecked")
+ @Override
+ public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
+ // if (villager.getProfession() == 7735) {
+ recipeList.add(new MerchantRecipe(CI.electricMotor_LV, CI.electricPiston_LV, CI.robotArm_LV));
+ recipeList.add(new MerchantRecipe(CI.electricMotor_MV, CI.electricPiston_MV, CI.robotArm_MV));
+ recipeList.add(new MerchantRecipe(CI.electricMotor_HV, CI.electricPiston_HV, CI.robotArm_HV));
+ recipeList.add(new MerchantRecipe(CI.electricMotor_EV, CI.electricPiston_EV, CI.robotArm_EV));
+ recipeList.add(new MerchantRecipe(CI.electricMotor_IV, CI.electricPiston_IV, CI.robotArm_IV));
+ // Collections.shuffle(recipeList);
+ // }
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java
index b726ebefff..1e1e326201 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerBase.java
@@ -10,16 +10,15 @@
******************************************************************************/
package gtPlusPlus.plugin.villagers.trade;
+import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
import java.util.Random;
-
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.village.MerchantRecipeList;
-import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler;
public abstract class TradeHandlerBase implements IVillageTradeHandler {
- @SuppressWarnings("unchecked")
- @Override
- public abstract void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random);
-
+ @SuppressWarnings("unchecked")
+ @Override
+ public abstract void manipulateTradesForVillager(
+ EntityVillager villager, MerchantRecipeList recipeList, Random random);
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java
index 922316b136..bd2acc9bfe 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTechnician.java
@@ -1,27 +1,23 @@
package gtPlusPlus.plugin.villagers.trade;
-import java.util.Collections;
-import java.util.Random;
-
import gtPlusPlus.core.recipe.common.CI;
+import java.util.Random;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;
public class TradeHandlerTechnician extends TradeHandlerBase {
-
- @SuppressWarnings("unchecked")
- @Override
- public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
- //if (villager.getProfession() == 7737) {
- recipeList.add(new MerchantRecipe(CI.machineHull_LV, CI.electricMotor_LV, CI.machineHull_LV));
- recipeList.add(new MerchantRecipe(CI.machineHull_MV, CI.electricMotor_MV, CI.machineHull_MV));
- recipeList.add(new MerchantRecipe(CI.machineHull_HV, CI.electricMotor_HV, CI.machineHull_HV));
- recipeList.add(new MerchantRecipe(CI.machineHull_EV, CI.electricMotor_EV, CI.machineHull_EV));
- recipeList.add(new MerchantRecipe(CI.machineHull_IV, CI.electricMotor_IV, CI.machineHull_IV));
- //Collections.shuffle(recipeList);
- //}
- }
-
+ @SuppressWarnings("unchecked")
+ @Override
+ public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
+ // if (villager.getProfession() == 7737) {
+ recipeList.add(new MerchantRecipe(CI.machineHull_LV, CI.electricMotor_LV, CI.machineHull_LV));
+ recipeList.add(new MerchantRecipe(CI.machineHull_MV, CI.electricMotor_MV, CI.machineHull_MV));
+ recipeList.add(new MerchantRecipe(CI.machineHull_HV, CI.electricMotor_HV, CI.machineHull_HV));
+ recipeList.add(new MerchantRecipe(CI.machineHull_EV, CI.electricMotor_EV, CI.machineHull_EV));
+ recipeList.add(new MerchantRecipe(CI.machineHull_IV, CI.electricMotor_IV, CI.machineHull_IV));
+ // Collections.shuffle(recipeList);
+ // }
+ }
}
diff --git a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java
index 0025c054bd..f866bd7aa6 100644
--- a/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java
+++ b/src/main/java/gtPlusPlus/plugin/villagers/trade/TradeHandlerTrader.java
@@ -1,11 +1,10 @@
package gtPlusPlus.plugin.villagers.trade;
-import java.util.Collections;
-import java.util.Random;
-
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import java.util.Collections;
+import java.util.Random;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
@@ -14,32 +13,37 @@ import net.minecraft.village.MerchantRecipeList;
public class TradeHandlerTrader extends TradeHandlerBase {
- public TradeHandlerTrader() {
- Logger.INFO("Created Trade Manager for 'Trader' villager profession type.");
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
- ItemStack Ore1 = null, Ore2 = null;
- if (Ore1 == null) {
- Ore1 = ELEMENT.getInstance().SILICON.getOre(1);
- }
- if (Ore2 == null) {
- Ore2 = ELEMENT.getInstance().ALUMINIUM.getOre(1);
- }
- if (Ore1 == null) {
- Ore1 = ELEMENT.getInstance().GOLD.getOre(1);
- }
- if (Ore2 == null) {
- Ore2 = ELEMENT.getInstance().LEAD.getOre(1);
- }
- recipeList.add(new MerchantRecipe(ItemUtils.getItemStackOfAmountFromOreDict("logWood", 32), ELEMENT.getInstance().IRON.getOre(1)));
- recipeList.add(new MerchantRecipe(ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 32), ELEMENT.getInstance().COPPER.getOre(1)));
- recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.obsidian, 6), ELEMENT.getInstance().TIN.getOre(1)));
- recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.glowstone, 32), Ore1));
- recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.piston, 32), Ore2));
- Collections.shuffle(recipeList);
- }
+ public TradeHandlerTrader() {
+ Logger.INFO("Created Trade Manager for 'Trader' villager profession type.");
+ }
+ @SuppressWarnings("unchecked")
+ @Override
+ public void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random) {
+ ItemStack Ore1 = null, Ore2 = null;
+ if (Ore1 == null) {
+ Ore1 = ELEMENT.getInstance().SILICON.getOre(1);
+ }
+ if (Ore2 == null) {
+ Ore2 = ELEMENT.getInstance().ALUMINIUM.getOre(1);
+ }
+ if (Ore1 == null) {
+ Ore1 = ELEMENT.getInstance().GOLD.getOre(1);
+ }
+ if (Ore2 == null) {
+ Ore2 = ELEMENT.getInstance().LEAD.getOre(1);
+ }
+ recipeList.add(new MerchantRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("logWood", 32),
+ ELEMENT.getInstance().IRON.getOre(1)));
+ recipeList.add(new MerchantRecipe(
+ ItemUtils.getItemStackOfAmountFromOreDict("dustMeatRaw", 32),
+ ELEMENT.getInstance().COPPER.getOre(1)));
+ recipeList.add(new MerchantRecipe(
+ ItemUtils.getSimpleStack(Blocks.obsidian, 6),
+ ELEMENT.getInstance().TIN.getOre(1)));
+ recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.glowstone, 32), Ore1));
+ recipeList.add(new MerchantRecipe(ItemUtils.getSimpleStack(Blocks.piston, 32), Ore2));
+ Collections.shuffle(recipeList);
+ }
}