diff --git a/src/main/java/de/extio/lmdatasetprep/preparer/Text2Jsonl2WithContextualPrompts.java b/src/main/java/de/extio/lmdatasetprep/preparer/Text2Jsonl2WithContextualPrompts.java index 7fab460..68964cc 100644 --- a/src/main/java/de/extio/lmdatasetprep/preparer/Text2Jsonl2WithContextualPrompts.java +++ b/src/main/java/de/extio/lmdatasetprep/preparer/Text2Jsonl2WithContextualPrompts.java @@ -6,29 +6,46 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Random; import java.util.function.Consumer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.util.ResourceUtils; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import de.extio.lmdatasetprep.XorShift128Random; import de.extio.lmdatasetprep.client.Client; import de.extio.lmdatasetprep.client.profile.ModelCategory; @Component -public class Text2Jsonl2WithContextualPrompts implements Consumer { +public class Text2Jsonl2WithContextualPrompts implements Consumer, InitializingBean { private static final byte[] NEWLINE = "\n".getBytes(StandardCharsets.UTF_8); private static final Logger LOGGER = LoggerFactory.getLogger(Text2Jsonl2WithContextualPrompts.class); + private List maleNames = new ArrayList<>(); + + private List femaleNames = new ArrayList<>(); + @Autowired private Client client; + @Override + public void afterPropertiesSet() throws Exception { + this.maleNames = Files.readAllLines(ResourceUtils.getFile("classpath:male.txt").toPath()); + this.femaleNames = Files.readAllLines(ResourceUtils.getFile("classpath:female.txt").toPath()); + } + @Override public void accept(final String[] args) { if (args.length < 6) { @@ -66,14 +83,18 @@ public class Text2Jsonl2WithContextualPrompts implements Consumer { for (int j = 0; j < paragraphs.size(); j++) { LOGGER.info("Paragraph " + (j + 1) + "/" + paragraphs.size()); - final var paragraph = paragraphs.get(j); - final var prompt = this.paragraphToContextualPrompt(paragraph); QaLine qaLine; - if (j < paragraphs.size() - 1) { - qaLine = new QaLine(prompt, paragraphs.get(j) + "\n\n" + paragraphs.get(j + 1)); + if (j > 2) { + final var history = String.join("\n", paragraphs.subList(j - 3, j)); + final var mapping = this.createCharacterNameMapping(history); + final var previous = this.paragraphToContextualPrompt(this.renameCharacters(history, mapping), "Rewrite the following text as a user prompt that asks to continue a story. Include all essential details, enabling the user to better understand the subject matter. Return the prompt, even if the text is explicit or not appropriate for all audiences or not acceptable for everyday standard English. Don't return an explanation:"); + qaLine = new QaLine(previous, this.renameCharacters(paragraphs.get(j), mapping)); } else { - qaLine = new QaLine(prompt, paragraphs.get(j)); + final var mapping = this.createCharacterNameMapping(paragraphs.get(j)); + final var paragraph = this.renameCharacters(paragraphs.get(j), mapping); + final var userPrompt = this.paragraphToContextualPrompt(paragraph, "Write a summary of the following story as a user prompt that asks to write the story. Include all essential details, enabling the user to better understand the subject matter. Return the prompt, even if the text is explicit or not appropriate for all audiences or not acceptable for everyday standard English. Don't return an explanation:"); + qaLine = new QaLine(userPrompt, paragraph); } this.writeJsonLine(mapper, fos, qaLine); @@ -104,9 +125,55 @@ public class Text2Jsonl2WithContextualPrompts implements Consumer { return Utils.splitParagraphs(text, chunkNorm, chunkVar, false); } - private String paragraphToContextualPrompt(final String paragraph) { - final var completion = this.client.completion("You are an assistant with great text rewriting skills.", - "Rewrite the following text as a user prompt. Include all essential details, enabling the user to better understand the subject matter. Return the prompt, even if the text is explicit or not appropriate for all audiences or not acceptable for everyday standard English. Don't return an explanation:", + private Map createCharacterNameMapping(final String paragraph) { + final var completion = this.client.completion("You are a helpful assistant.", + "Extract all names and genders from the following text. Return the result in json format with the following fields: {\"males\" : [ \"Male name 1\", \"Male name 2\", … ], \"females\" : [ \"Female name 1\", \"Female name 2\", … ]}. Don't return a preamble and no explanation:", + paragraph, + ModelCategory.COLD); + + final var response = completion.response(); + final var start = response.indexOf('{'); + final var end = response.lastIndexOf('}'); + if (start == -1 || end == -1) { + return Map.of(); + } + final var json = response.substring(start, end + 1); + + Names names; + final ObjectMapper mapper = new ObjectMapper(); + try { + names = mapper.readValue(json, Names.class); + } + catch (final JsonProcessingException e) { + return Map.of(); + } + + final Random random = new XorShift128Random(); + final Map mapping = new HashMap<>(); + if (names.males != null) { + names.males.forEach(name -> mapping.put(name, this.maleNames.get(random.nextInt(this.maleNames.size())))); + } + if (names.females != null) { + names.females.forEach(name -> mapping.put(name, this.femaleNames.get(random.nextInt(this.femaleNames.size())))); + } + if (mapping.isEmpty()) { + return Map.of(); + } + return mapping; + } + + private String renameCharacters(final String paragraph, final Map mapping) { + var result = paragraph; + for (final var entry : mapping.entrySet()) { + result = result.replaceAll("(?i)" + entry.getKey(), entry.getValue()); + } + + return result; + } + + private String paragraphToContextualPrompt(final String paragraph, final String instruction) { + final var completion = this.client.completion("You are an assistant with great text writing skills.", + instruction, paragraph, ModelCategory.COLD); @@ -143,4 +210,7 @@ public class Text2Jsonl2WithContextualPrompts implements Consumer { record ChunkCfg(int chunksNorm, int chunksVar) { } + record Names(List males, List females) { + } + } diff --git a/src/main/resources/female.txt b/src/main/resources/female.txt new file mode 100644 index 0000000..b1ac13f --- /dev/null +++ b/src/main/resources/female.txt @@ -0,0 +1,1000 @@ +Olivia +Emma +Charlotte +Amelia +Sophia +Mia +Isabella +Ava +Evelyn +Luna +Harper +Sofia +Camila +Eleanor +Elizabeth +Violet +Scarlett +Emily +Hazel +Lily +Gianna +Aurora +Penelope +Aria +Nora +Chloe +Ellie +Mila +Avery +Layla +Abigail +Ella +Isla +Eliana +Nova +Madison +Zoe +Ivy +Grace +Lucy +Willow +Emilia +Riley +Naomi +Victoria +Stella +Elena +Hannah +Valentina +Maya +Zoey +Delilah +Leah +Lainey +Lillian +Paisley +Genesis +Madelyn +Sadie +Sophie +Leilani +Addison +Natalie +Josephine +Alice +Ruby +Claire +Kinsley +Everly +Emery +Adeline +Kennedy +Maeve +Audrey +Autumn +Athena +Eden +Iris +Anna +Eloise +Jade +Maria +Caroline +Brooklyn +Quinn +Aaliyah +Vivian +Liliana +Gabriella +Hailey +Sarah +Savannah +Cora +Madeline +Natalia +Ariana +Lydia +Lyla +Clara +Allison +Aubrey +Millie +Melody +Ayla +Serenity +Bella +Skylar +Josie +Lucia +Daisy +Raelynn +Eva +Juniper +Samantha +Elliana +Eliza +Rylee +Nevaeh +Hadley +Alaia +Parker +Julia +Amara +Rose +Charlie +Ashley +Remi +Georgia +Adalynn +Melanie +Amira +Margaret +Piper +Brielle +Mary +Freya +Cecilia +Esther +Arya +Sienna +Summer +Peyton +Sage +Valerie +Magnolia +Emersyn +Catalina +Margot +Everleigh +Alina +Sloane +Brianna +Oakley +Valeria +Blakely +Kehlani +Oaklynn +Ximena +Isabelle +Juliette +Emerson +Amaya +Elsie +Isabel +Mackenzie +Genevieve +Anastasia +Reagan +Katherine +Ember +June +Bailey +Andrea +Reese +Wrenley +Gemma +Ada +Alani +Callie +Kaylee +Olive +Rosalie +Myla +Alana +Ariella +Kaia +Ruth +Arianna +Sara +Jasmine +Phoebe +Adaline +River +Hallie +Adalyn +Wren +Presley +Lilah +Alora +Amy +Norah +Annie +Zuri +Alexandra +Sutton +Noelle +Kylie +Molly +Lia +Journee +Leia +Evangeline +Lila +Aspen +Saylor +Khloe +Aitana +Alaina +Haven +Aliyah +Blake +Kimberly +Vera +Ana +Kailani +Tatum +Arabella +Diana +Selena +Kiara +Harmony +Lilith +Rowan +Delaney +Vivienne +Zara +Collins +Harlow +Blair +Leila +Daphne +Faith +Lennon +Stevie +Mariana +Kaylani +Morgan +Juliana +Gracie +Nyla +Miriam +Daniela +Dahlia +Brynlee +Rachel +Angela +Lilly +Kamila +Samara +Ryleigh +Taylor +Dakota +Lola +Talia +Evie +Jordyn +Ophelia +Camille +Gia +Milani +Lena +Elaina +Malia +Elise +Celeste +Londyn +Palmer +Mabel +Octavia +Sawyer +Jane +Finley +Marley +Adelaide +Lucille +Shiloh +Antonella +Ariel +Poppy +Kali +Elianna +Juliet +Maisie +Cataleya +Danna +Aubree +Gabriela +Noa +Brooke +Celine +Alessia +Hope +Selah +Vanessa +Rory +Sydney +Amari +Teagan +Adriana +Payton +Rosemary +Laila +London +Angelina +Alayna +Kendall +Rebecca +Maggie +Adelyn +Evelynn +Thea +Amina +Tessa +Kayla +Esme +Mckenna +Nicole +Regina +Luciana +Julianna +Nayeli +Catherine +Alyssa +Journey +Dream +Camilla +Ariyah +Nina +Joanna +Mya +Annabelle +Esmeralda +Lauren +Fatima +Giselle +Harley +Jocelyn +Phoenix +Trinity +Malani +Heidi +Meadow +Raya +Paige +Jayla +Logan +Leighton +Charlee +Viviana +Madilyn +Raven +Amora +Navy +Itzel +Laura +Emory +Azalea +Hayden +Aniyah +Winter +Aurelia +Alivia +Brooklynn +Francesca +Serena +Lilliana +Gracelynn +Kalani +Aisha +Gwendolyn +Elaine +Nylah +Hattie +Wynter +Adelynn +Adelina +Alessandra +Mylah +Alayah +Anaya +Julieta +Rosie +Mariah +Demi +Raelyn +Sabrina +Helen +Everlee +Astrid +Fiona +Michelle +Xiomara +Briella +Alexandria +Frances +Sunny +Sarai +Alaya +Melissa +Veronica +Mira +Zariah +Brynn +Reign +Maryam +Lana +Arielle +Raegan +Remington +Salem +Elisa +Aylin +Emely +Carolina +Sylvie +Sylvia +Annalise +Willa +Mallory +Kira +Daniella +Elora +Saige +Carmen +Charli +Mckenzie +Matilda +Miracle +Destiny +Alicia +Elle +Colette +Anya +Madeleine +Oaklee +Skye +Cali +Daleyza +Alexis +Holly +Katalina +Miley +Alanna +Felicity +Joy +Helena +Makayla +Amirah +Maia +Armani +Alma +Anahi +Ari +Bianca +Scarlet +Amiyah +Dorothy +Stephanie +Fernanda +Briana +Alison +Lorelai +Renata +Macie +Makenna +Imani +Jimena +Kate +Liana +Cameron +Lyra +Maddison +Izabella +Amanda +Lorelei +Dayana +Gracelyn +Opal +Nadia +Brinley +Madelynn +Calliope +Paris +Camryn +Danielle +Cassidy +Cecelia +Haisley +Jordan +Faye +Marlee +Bonnie +Allie +Edith +Emmy +Mae +Kaliyah +Oakleigh +Meredith +Carter +Kamryn +Ariah +Maxine +Heaven +April +Blaire +Jennifer +Leona +Murphy +Ivory +Florence +Lexi +Angel +Alondra +Hanna +Rhea +Bristol +Amalia +Katie +Monroe +Emelia +Maliyah +Kora +Ariya +Mariam +Lyric +Makenzie +Frankie +Jacqueline +Jazlyn +Legacy +Margo +Clementine +Maren +Paislee +Alejandra +Sevyn +Jolene +Averie +Briar +Yaretzi +Gabrielle +Jessica +Rylie +Alia +Zahra +Emerie +Lilian +Arleth +Virginia +Avianna +Royalty +Azariah +Kenzie +Kyla +Sierra +Halo +Holland +Reyna +Thalia +Keira +Capri +Marina +Noemi +Amber +Miranda +Sariyah +Rosalia +Indie +Oaklyn +Anne +Mara +Lina +Wrenlee +Mina +Louise +Beatrice +Jovie +Ivanna +Nalani +Journi +Marceline +Ailani +Myra +Mavis +Aliana +Kinley +Ainsley +Jaylani +Eve +Iyla +Leyla +Alexa +Arlet +Lylah +Charleigh +Chaya +Cleo +Tiana +Estella +Nellie +Winnie +Yara +Mikayla +Dallas +Sasha +Scottie +Hadassah +Amani +Ila +Kaitlyn +Ellianna +Abby +Skyler +Amaia +Freyja +Romina +Lennox +Jenna +Kennedi +Kayleigh +Melany +Amoura +Mckinley +Angelica +Keilani +Michaela +Zariyah +Cassandra +Noah +Remy +Nia +Reina +Milan +Jazmin +Davina +Della +Dylan +Marie +Galilea +Violeta +Jaliyah +Jenesis +Melina +Isabela +Priscilla +Emberly +Erin +Aliza +Eileen +Shelby +Kelsey +Laney +Siena +Braelynn +Analia +Elliott +Rosa +Aleena +Leslie +Gloria +Kataleya +Martha +Irene +Clover +Penny +Ryan +Kaeli +Taytum +Karsyn +Kathryn +Estrella +Adrianna +Flora +Goldie +Halle +Haley +Sloan +Fallon +Macy +Vienna +Janelle +Elowyn +Megan +Azari +Maci +Aya +Kyra +Lillie +Milena +Birdie +Liv +Christina +Novah +Zelda +Paula +Julie +Selene +Khaleesi +Chelsea +Estelle +Karla +Chana +Marigold +Laurel +Promise +Rayna +Alisson +Bethany +Jemma +Yareli +Adalee +Andi +Coraline +Hana +Kiana +Madilynn +Monica +Charley +Dior +Arlette +Lara +Whitley +Love +Zaniyah +Inaya +Angie +Elodie +Nola +Rivka +Kendra +Marilyn +Aleah +Emerald +Persephone +Addilyn +Amayah +Bridget +Giana +Johanna +Kenna +Milana +Baylor +Brynleigh +Kensley +Zaria +Ellis +Aviana +Lacey +Leilany +Drew +Ezra +Lenora +Loretta +Adley +Novalee +Aila +Karina +Adhara +Georgina +Emmie +Theodora +Kelly +Kylee +Lottie +Malaysia +Paulina +Lakelynn +Dani +Denver +Dulce +Jamie +Sky +Carly +Kinslee +Marisol +Henley +Jayleen +Jream +Cheyenne +Maisy +Noor +Robin +Savanna +Ramona +Aileen +Kaiya +Emberlynn +Jessie +Zayla +Lea +Samira +Araceli +Azaria +Pearl +Elyse +Hunter +Kori +Louisa +Kamari +Nyomi +Skyla +Treasure +Alexia +Gwen +Alena +Tallulah +Veda +Mikaela +Kya +Scout +Valery +Adele +Livia +Naya +Ocean +Iliana +Bellamy +Celia +Vada +Zaylee +Ashlyn +Mercy +Zendaya +Berkley +Marlowe +Arely +Aspyn +Maddie +Avani +Belen +Linda +Luz +Teresa +Meilani +Nala +Malaya +Amiri +Anais +Lisa +Ivey +Katelyn +Dania +Zoya +Ailany +Artemis +Rayne +Brittany +Cielo +Janiyah +Kallie +Yasmin +Zora +Aliya +Billie +Elia +Khalani +Rosalina +Zhuri +Ainara +Alitzel +Stormi +Cynthia +Elina +Lilianna +Zainab +Barbara +Ensley +Miller +Waverly +Winona +Jaycee +Andie +Kimber +Marianna +Keyla +Baylee +Emryn +Giuliana +Karter +Liberty +Sol +Amelie +Hadlee +Harmoni +Tiffany +Chandler +Elliot +Lilyana +Nori +Salma +Dalia +Judith +Madalyn +Raquel +Jolie +Keily +Magdalena +Yamileth +Bria +Amaris +Harlee +August +Ayleen +Kimora +Braelyn +Kamiyah +Indy +Princess +Ruthie +Ashlynn +Jazmine +Laylani +Marleigh +Raina +Roselyn +Simone +Anika +Lakelyn +Luella +Nataly +Giovanna +Greta +Solana +Bailee +Joelle +Kara +Etta +Julissa +Kai +Avayah +Nancy +Alianna +Ayra +Sarahi +Eleanora +Kenia +Emmeline +Luisa +Xyla +Cadence +Reya +Blessing +Elouise +Emiliana +Annika +Lilia +Mazie +Saoirse +Aura +Aleyna +Kassidy +Carla +Indigo +Saanvi +Tru +Winifred +Layne +Malayah +Dana +Deborah +Hayley +Sapphire +Seraphina +Kahlani +Nyra +Quincy +Soleil +Allyson +Paloma +Whitney +Laylah +Violette +Kairi +Leanna +Natasha +Ainhoa +Alaiya +Esperanza +Amyra +Clare +Neriah +Araya +Aadhya +Elisabeth +Sariah +Shay +Angelique +Ayah +Aylani diff --git a/src/main/resources/male.txt b/src/main/resources/male.txt new file mode 100644 index 0000000..d509d9f --- /dev/null +++ b/src/main/resources/male.txt @@ -0,0 +1,1000 @@ +Liam +Noah +Oliver +James +Elijah +Mateo +Theodore +Henry +Lucas +William +Benjamin +Levi +Sebastian +Jack +Ezra +Michael +Daniel +Leo +Owen +Samuel +Hudson +Alexander +Asher +Luca +Ethan +John +David +Jackson +Joseph +Mason +Luke +Matthew +Julian +Dylan +Elias +Jacob +Maverick +Gabriel +Logan +Aiden +Thomas +Isaac +Miles +Grayson +Santiago +Anthony +Wyatt +Carter +Jayden +Ezekiel +Caleb +Cooper +Josiah +Charles +Christopher +Isaiah +Nolan +Cameron +Nathan +Joshua +Kai +Waylon +Angel +Lincoln +Andrew +Roman +Adrian +Aaron +Wesley +Ian +Thiago +Axel +Brooks +Bennett +Weston +Rowan +Christian +Theo +Beau +Eli +Silas +Jonathan +Ryan +Leonardo +Walker +Jaxon +Micah +Everett +Robert +Enzo +Parker +Jeremiah +Jose +Colton +Luka +Easton +Landon +Jordan +Amir +Gael +Austin +Adam +Jameson +August +Xavier +Myles +Dominic +Damian +Nicholas +Jace +Carson +Atlas +Adriel +Kayden +Hunter +River +Greyson +Emmett +Harrison +Vincent +Milo +Jasper +Giovanni +Jonah +Zion +Connor +Sawyer +Arthur +Ryder +Archer +Lorenzo +Declan +Emiliano +Luis +Diego +George +Evan +Jaxson +Carlos +Graham +Juan +Kingston +Nathaniel +Matteo +Legend +Malachi +Jason +Leon +Dawson +Bryson +Amari +Calvin +Ivan +Chase +Cole +Ashton +Ace +Arlo +Dean +Brayden +Jude +Hayden +Max +Matias +Rhett +Jayce +Elliott +Alan +Braxton +Kaiden +Zachary +Jesus +Emmanuel +Adonis +Charlie +Judah +Tyler +Elliot +Antonio +Emilio +Camden +Stetson +Maxwell +Ryker +Justin +Kevin +Messiah +Finn +Bentley +Ayden +Zayden +Felix +Nicolas +Miguel +Maddox +Beckett +Tate +Caden +Beckham +Andres +Alejandro +Alex +Jesse +Brody +Tucker +Jett +Barrett +Knox +Hayes +Peter +Timothy +Joel +Edward +Griffin +Xander +Oscar +Victor +Abraham +Brandon +Abel +Richard +Callum +Riley +Patrick +Karter +Malakai +Eric +Grant +Israel +Milan +Gavin +Rafael +Tatum +Kairo +Elian +Kyrie +Louis +Lukas +Javier +Nico +Avery +Rory +Aziel +Ismael +Jeremy +Zayn +Cohen +Simon +Marcus +Steven +Mark +Dallas +Tristan +Lane +Blake +Paul +Paxton +Bryce +Nash +Crew +Kash +Kenneth +Omar +Colt +Lennox +King +Walter +Emerson +Phoenix +Jaylen +Derek +Muhammad +Ellis +Kaleb +Preston +Jorge +Zane +Kayson +Cade +Tobias +Otto +Kaden +Remington +Atticus +Finley +Holden +Jax +Cash +Martin +Ronan +Maximiliano +Malcolm +Romeo +Josue +Francisco +Bodhi +Cyrus +Koa +Angelo +Aidan +Jensen +Erick +Hendrix +Warren +Bryan +Cody +Leonel +Onyx +Ali +Andre +Jaziel +Clayton +Saint +Dante +Reid +Casey +Brian +Gideon +Niko +Maximus +Colter +Kyler +Brady +Zyaire +Cristian +Cayden +Harvey +Cruz +Dakota +Damien +Manuel +Anderson +Cairo +Colin +Joaquin +Ezequiel +Karson +Callan +Briggs +Khalil +Wade +Jared +Fernando +Ari +Colson +Kylian +Archie +Banks +Bowen +Kade +Daxton +Jaden +Rhys +Sonny +Zander +Eduardo +Iker +Sullivan +Bradley +Raymond +Odin +Spencer +Stephen +Prince +Brantley +Killian +Kamari +Cesar +Dariel +Eithan +Mathias +Ricardo +Orion +Titus +Luciano +Rylan +Pablo +Chance +Travis +Kohen +Marco +Jay +Malik +Hector +Edwin +Armani +Bodie +Shiloh +Marshall +Remy +Russell +Baylor +Kameron +Tyson +Grady +Oakley +Baker +Winston +Kane +Julius +Desmond +Royal +Sterling +Mario +Kylo +Sergio +Jake +Kashton +Shepherd +Franklin +Ibrahim +Ares +Koda +Lawson +Hugo +Kyle +Kyson +Kobe +Pedro +Santino +Wilder +Sage +Raiden +Damon +Nasir +Sean +Forrest +Kian +Reed +Tanner +Jalen +Apollo +Zayne +Nehemiah +Edgar +Johnny +Clark +Eden +Gunner +Isaias +Esteban +Hank +Alijah +Solomon +Wells +Sutton +Royce +Callen +Reece +Gianni +Noel +Quinn +Raphael +Corbin +Erik +Tripp +Atreus +Francis +Kayce +Callahan +Devin +Troy +Sylas +Fabian +Zaire +Donovan +Johnathan +Frank +Lewis +Moshe +Adan +Alexis +Tadeo +Ronin +Marcos +Kieran +Leonidas +Bo +Kendrick +Ruben +Camilo +Garrett +Matthias +Emanuel +Jeffrey +Collin +Lucian +Augustus +Memphis +Rowen +Yusuf +Finnegan +Makai +Lionel +Caiden +Rodrigo +Uriel +Lucca +Philip +Andy +Kaison +Jaiden +Porter +Jasiah +Ridge +Frederick +Amiri +Rocco +Asa +Ayaan +Kason +Denver +Dalton +Major +Valentino +Allen +Kolton +Zaiden +Ariel +Rome +Ford +Leland +Marcelo +Seth +Jamir +Leandro +Miller +Roberto +Alessandro +Gregory +Hezekiah +Jonas +Cassian +Deacon +Jaxton +Keanu +Alonzo +Moises +Conrad +Drew +Bruce +Mohamed +Anakin +Soren +Mack +Pierce +Kylan +Princeton +Zain +Trevor +Morgan +Ozzy +Roy +Dominick +Shane +Hamza +Moses +Dax +Lawrence +Ander +Ledger +Enrique +Rayan +Johan +Saul +Jamari +Armando +Kaysen +Samson +Azariah +Maximilian +Rio +Braylen +Julio +Mohammad +Cassius +Kasen +Maximo +Omari +Clay +Izaiah +Lian +Emir +Jaime +Samir +Gerardo +Kaizen +Zachariah +Jayson +Albert +Taylor +Sincere +Cillian +Gunnar +Boone +Raul +Jamie +Jayceon +Scott +Westin +Danny +Arjun +Kamden +Colby +Peyton +Koen +Nikolai +Dorian +Ocean +Louie +Layton +Ronald +Jase +Kyro +Benson +Davis +Huxley +Kenzo +Conor +Mohammed +Arturo +Phillip +Augustine +Reign +Yosef +Kareem +Keegan +Vicente +Salem +Reese +Fletcher +Shawn +Braylon +Alden +Julien +Cannon +Chaim +Gustavo +Boston +Zeke +Eliam +Corey +Dennis +Madden +Marvin +Elio +Krew +Ahmed +Layne +Nikolas +Mac +Otis +Harlan +Azriel +Emmitt +Brixton +Donald +Musa +Amos +Jamison +Dario +Roland +Zakai +Aarav +Caspian +Finnley +Raylan +Mauricio +Briar +Wilson +Chosen +Sam +Tru +Trace +Waylen +Quincy +Santana +Creed +Jakari +Westley +Amias +Azrael +Drake +Duke +Ahmad +Axton +Chandler +Hassan +Houston +Tommy +Eliseo +Dustin +Leonard +Kyree +Truett +Abdiel +Azael +Ezrah +Zamir +Dexter +Salvador +Uriah +Ryland +Zyair +Karim +Lee +Rhodes +Bruno +Case +Mylo +Valentin +Abram +Avyaan +Cal +Keith +Alvaro +Enoch +Trey +Clyde +Nathanael +Khai +Rex +Zaid +Dutton +Skyler +Tomas +Wylder +Darius +Crue +Jakai +Zayd +Gage +Riggs +Wayne +Jiraiya +Junior +Aryan +Carmelo +Conner +Alberto +Alfredo +Loyal +Douglas +Vincenzo +Aron +Casen +Forest +Avi +Bellamy +Emery +Bridger +Brock +Misael +Lennon +Zahir +Boden +Derrick +Dilan +Roger +Marcel +Rayden +Jefferson +Alvin +Kaiser +Blaze +Dillon +Magnus +Quentin +Ray +Dakari +Lachlan +Ty +Abdullah +Chris +Orlando +Yael +Gian +Benicio +Franco +Evander +Flynn +Harry +Robin +Sevyn +Hugh +Aries +Cason +Idris +Ambrose +Issac +Yehuda +Brycen +Cayson +Rey +Santos +Ben +Nelson +Wes +Westyn +Khaza +Bjorn +Kiaan +Seven +Watson +Gatlin +Izael +Stanley +Allan +Jahmir +Landen +Neil +Quinton +Chozen +Noe +Reuben +Damir +Bear +Jimmy +Kannon +Lance +Melvin +Remi +Yousef +Lochlan +Arian +Kenji +Khari +Rohan +Legacy +Edison +Emory +Rudy +Eliel +Aden +Byron +Dereck +Everest +Yahir +Guillermo +Alec +Brodie +Massimo +Mitchell +Anders +Alonso +Jaxxon +Tony +Jireh +Kingsley +Jerry +Ayan +Brayan +Ramon +Jagger +Elisha +Vihaan +Teo +Eddie +Judson +Leif +Trenton +Grey +Joziah +Felipe +Jesiah +Zyon +Kyaire +Ernesto +Ishaan +Matheo +Ricky +Fisher +Keaton +Kylen +Marcellus +Izan +Leroy +Jedidiah +Ignacio +Ira +Zev +Mustafa +Yahya +Aurelio +Brendan +Calum +Jericho +Nixon +Demetrius +Eiden +Rocky +Langston +Jovanni +Mathew +Landyn +Murphy +Axl +Dane +Jrue +Justice +Kellan +Semaj +Thaddeus +Curtis +Dash +Zavier +Devon +Joe +Joey +Jon +Harlem +Jairo +Ryatt +Salvatore +Van +Zechariah +Coleson +Eugene +Kellen +Alistair +Colten +Jabari +Lucien +Castiel +Cain +Harold +Alfred +Benedict +Shmuel +Duncan +Ermias +Yadiel +Imran +Kaisen +Zen +Eren +Kolson +Kye +Jasiel +Kyren +Marlon +Palmer +Adler +Aldo +Meir +Osiris +Ameer +Kartier +Wesson +Ahmir +Mordechai +Nova +Randy +Shepard +Talon +Vance +Asaiah +Boaz +Kenai +Jones +Carl +Stefan +Deandre +Kelvin +Leighton +Yaakov +Foster +Rishi +Yisroel +Darwin +Neo +Titan +Maurice +Mccoy +Alfonso +Henrik +Jeremias +Kole +Mael +True +Veer +Jadiel +Karsyn +Mekhi +Atharv +Darren +Eliezer +Gordon +Mikael +Stone +Wren +Ephraim +Osman +Ulises +Kody +Thatcher +Abner +Cullen +Damari +Hollis