From 48a120b21f82f71c1e8978a7656c644c1de583c7 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Tue, 8 Mar 2016 12:46:15 +0100 Subject: [PATCH 01/48] Fix curl crash --HG-- branch : develop --- code/nel/src/gui/group_html.cpp | 8 +++++--- code/ryzom/client/src/login_patch.cpp | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp index 7ae9870e5..1b5e36964 100644 --- a/code/nel/src/gui/group_html.cpp +++ b/code/nel/src/gui/group_html.cpp @@ -305,7 +305,7 @@ namespace NLGUI return; } - FILE *fp = nlfopen (tmpdest, "wb"); + FILE *fp = nlfopen(tmpdest, "wb"); if (fp == NULL) { curl_easy_cleanup(curl); @@ -316,7 +316,8 @@ namespace NLGUI curl_easy_setopt(curl, CURLOPT_NOPROGRESS, true); curl_easy_setopt(curl, CURLOPT_URL, finalUrl.c_str()); - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_multi_add_handle(MultiCurl, curl); Curls.push_back(CDataDownload(curl, finalUrl, dest, fp, ImgType, img, "", "", style)); @@ -423,7 +424,8 @@ namespace NLGUI curl_easy_setopt(curl, CURLOPT_NOPROGRESS, true); curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_multi_add_handle(MultiCurl, curl); Curls.push_back(CDataDownload(curl, url, dest, fp, BnpType, NULL, script, md5sum)); diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index 20bfcbed0..baf7044df 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -1414,7 +1414,8 @@ void CPatchManager::downloadFileWithCurl (const string &source, const string &de curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL); throw Exception ("Can't open file '%s' for writing: code=%d %s (error code 37)", dest.c_str (), errno, strerror(errno)); } - curl_easy_setopt(curl, CURLOPT_FILE, fp); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); //CurrentFilesToGet++; From 8dec2fbb543600536c5634d8358d469a3ce8ef8c Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:21:53 +0100 Subject: [PATCH 02/48] Changed: Random names generator updated by Osquallo --HG-- branch : develop --- .../gamedev/interfaces_v3/names_fyros.lua | 4 +- .../gamedev/interfaces_v3/names_matis.lua | 6 +- .../gamedev/interfaces_v3/names_tryker.lua | 4 +- .../gamedev/interfaces_v3/names_zorai.lua | 6 +- .../gamedev/interfaces_v3/out_v2_appear.lua | 84 +++++++++---------- 5 files changed, 52 insertions(+), 52 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua index 239e5b924..d208e62de 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua @@ -1,4 +1,4 @@ -fyrosLastNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" +fyrosFirstNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycacus", "Abycadix", "Abycadon", "Abycados", "Abycaion" , "Abycakos", "Abycala", "Abycalaus", "Abycalion", "Abycallo", "Abycalus", "Abycamus", "Abycan", "Abycanix", "Abycaon", "Abycaps" , "Abycarius", "Abycaron", "Abycaros", "Abycarus", "Abycaseus", "Abycasse", "Abycatheus", "Abycathus", "Abycatis", "Abycaton", "Abycaxius" , "Abycus", "Abydix", "Abydon", "Abydos", "Abygrian", "Abygribus", "Abygricaon", "Abygricus", "Abygridix", "Abygridon", "Abygridos" @@ -286,7 +286,7 @@ fyrosLastNames = {"Abyan", "Abybus", "Abycaan", "Abycabus", "Abycacaon", "Abycac , "Zenathus", "Zenatis", "Zenaton", "Zenaxius", "Zenbus", "Zencaon", "Zencus", "Zendix", "Zendon", "Zendos", "Zenion", "Zenix", "Zenkos", "Zenla", "Zenlaus", "Zenlion", "Zenllo", "Zenlus", "Zenmus", "Zenn", "Zennix", "Zenps", "Zenrius", "Zenron", "Zenros", "Zenrus", "Zenseus", "Zensse", "Zentheus" , "Zenthus", "Zentis", "Zenton", "Zenxius", "Zeperian", "Zeperibus", "Zepericaon", "Zepericus", "Zeperidix", "Zeperidon", "Zeperidos", "Zeperiion", "Zeperikos", "Zeperila", "Zeperilaus", "Zeperilion", "Zeperillo", "Zeperilus", "Zeperimus", "Zeperin", "Zeperinix", "Zeperips", "Zeperirius", "Zeperiron", "Zeperiros", "Zeperirus", "Zeperiseus", "Zeperisse", "Zeperitheus", "Zeperithus", "Zeperitis", "Zeperiton", "Zeperixius", "Zephaan", "Zephabus", "Zephacaon", "Zephacus", "Zephadix", "Zephadon", "Zephados", "Zephaion", "Zephakos", "Zephala", "Zephalaus", "Zephalion", "Zephallo", "Zephalus", "Zephamus", "Zephan", "Zephanix", "Zephaps", "Zepharius", "Zepharon", "Zepharos", "Zepharus", "Zephaseus", "Zephasse", "Zephatheus", "Zephathus", "Zephatis", "Zephaton", "Zephaxius", "Zephoan", "Zephobus", "Zephocaon", "Zephocus", "Zephodix", "Zephodon", "Zephodos", "Zephoion", "Zephokos", "Zephola", "Zepholaus", "Zepholion", "Zephollo", "Zepholus", "Zephomus", "Zephon", "Zephonix", "Zephops", "Zephorius", "Zephoron", "Zephoros", "Zephorus", "Zephoseus", "Zephosse", "Zephotheus", "Zephothus", "Zephotis", "Zephoton", "Zephoxius", "Zephyan", "Zephybus", "Zephycaon", "Zephycus", "Zephydix", "Zephydon", "Zephydos", "Zephyion", "Zephykos", "Zephyla", "Zephylaus", "Zephylion", "Zephyllo", "Zephylus", "Zephymus", "Zephyn", "Zephynix", "Zephyps", "Zephyrius", "Zephyron", "Zephyros", "Zephyrus", "Zephyseus", "Zephysse", "Zephytheus", "Zephythus", "Zephytis", "Zephyton", "Zephyxius", "Zeps", "Zeraan", "Zerabus", "Zeracaon", "Zeracus", "Zeradix", "Zeradon", "Zerados", "Zeraion", "Zerakos", "Zerala", "Zeralaus", "Zeralion", "Zerallo", "Zeralus", "Zeramus", "Zeran", "Zeranix", "Zeraps", "Zerarius", "Zeraron", "Zeraros", "Zerarus", "Zeraseus", "Zerasse", "Zeratheus", "Zerathus", "Zeratis", "Zeraton", "Zeraxius", "Zerian", "Zeribus", "Zericaon", "Zericus", "Zeridix", "Zeridon", "Zeridos", "Zeriion", "Zerikos", "Zerila", "Zerilaus", "Zerilion", "Zerillo", "Zerilus", "Zerimus", "Zerin", "Zerinix", "Zerips", "Zeririus", "Zeriron", "Zeriros", "Zerirus", "Zeriseus", "Zerisse", "Zeritheus", "Zerithus", "Zeritis", "Zeriton", "Zerius", "Zerixius", "Zeron", "Zeros", "Zerus", "Zeryaan", "Zeryabus", "Zeryacaon", "Zeryacus", "Zeryadix", "Zeryadon", "Zeryados", "Zeryaion", "Zeryakos", "Zeryala", "Zeryalaus", "Zeryalion", "Zeryallo", "Zeryalus", "Zeryamus", "Zeryan", "Zeryanix", "Zeryaps", "Zeryarius", "Zeryaron", "Zeryaros", "Zeryarus", "Zeryaseus", "Zeryasse", "Zeryatheus", "Zeryathus", "Zeryatis", "Zeryaton", "Zeryaxius", "Zeseus", "Zesse", "Zessean", "Zessebus", "Zessecaon", "Zessecus", "Zessedix", "Zessedon", "Zessedos", "Zesseion", "Zessekos", "Zessela", "Zesselaus", "Zesselion", "Zessello", "Zesselus", "Zessemus", "Zessen", "Zessenix", "Zesseps", "Zesserius", "Zesseron", "Zesseros", "Zesserus", "Zesseseus", "Zessesse", "Zessetheus", "Zessethus", "Zessetis", "Zesseton", "Zessexius", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"} -fyrosFirstNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" +fyrosLastNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "Abydos", "Abyion", "Abykos", "Abyla", "Abylaus", "Abylion" , "Abyllo", "Abylus", "Abymus", "Abyn", "Abynix", "Abyps", "Abyrius", "Abyron", "Abyros", "Abyrus", "Abyseus", "Abysse", "Abytheus", "Abythus" , "Abytis", "Abyton", "Abyxius", "Aean", "Aebus", "Aecaon", "Aecus", "Aedix", "Aedon", "Aedos", "Aeion", "Aekos", "Aela", "Aelaus", "Aelion" , "Aello", "Aelus", "Aemus", "Aen", "Aenix", "Aeps", "Aerius", "Aeron", "Aeros", "Aerus", "Aeseus", "Aesse", "Aetheus", "Aethus", "Aetis" diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua index 81b6dba29..28d9584f7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua @@ -1,3 +1,3 @@ -matisFirstNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} -matisFemaleLastNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} -matisMaleLastNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisLastNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"} +matisFemaleFirstNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} +matisMaleFirstNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua index b52dfbefc..3d4c535cc 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua @@ -1,3 +1,3 @@ -trykerLastNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} +trykerFirstNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"} -trykerFirstNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file +trykerLastNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"} \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua index cadc728d7..be0d2d2c6 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua @@ -1,5 +1,5 @@ -zoraiLastNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} +zoraiFirstNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo", "Boi", "Bu", "Bua", "Buai", "Bui", "Ca", "Cai", "Ce", "Cei", "Cha", "Chai", "Che", "Chei", "Chi", "Chia", "Chiai", "Chii", "Cho", "Choi", "Chu", "Chua", "Chuai", "Chui", "Ci", "Cia", "Ciai", "Cii", "Co", "Coi", "Cu", "Cua", "Cuai", "Cui", "Da", "Dai", "De", "Dei", "Di", "Dia", "Diai", "Dii", "Do", "Doi", "Du", "Dua", "Duai", "Dui", "Fa", "Fai", "Fe", "Fei", "Fi", "Fia", "Fiai", "Fii", "Fo", "Foi", "Fu", "Fua", "Fuai", "Fui", "Ga", "Gai", "Ge", "Gei", "Gi", "Gia", "Giai", "Gii", "Go", "Goi", "Gu", "Gua", "Guai", "Gui", "Ha", "Hai", "He", "Hei", "Hi", "Hia", "Hiai", "Hii", "Ho", "Hoi", "Hu", "Hua", "Huai", "Hui", "Ja", "Jai", "Je", "Jei", "Ji", "Jia", "Jiai", "Jii", "Jo", "Joi", "Ju", "Jua", "Juai", "Jui", "Ka", "Kai", "Ke", "Kei", "Ki", "Kia", "Kiai", "Kii", "Ko", "Koi", "Ku", "Kua", "Kuai", "Kui", "La", "Lai", "Le", "Lei", "Li", "Lia", "Liai", "Lii", "Lo", "Loi", "Lu", "Lua", "Luai", "Lui", "Ma", "Mai", "Me", "Mei", "Mi", "Mia", "Miai", "Moi", "Mu", "Mua", "Muai", "Mui", "Na", "Nai", "Ne", "Nei", "Ni", "Nia", "Niai", "Nii", "No", "Noi", "Nu", "Nua", "Pa", "Pai", "Pe", "Pei", "Pi", "Pia", "Piai", "Pii", "Po", "Poi", "Pu", "Pua", "Puai", "Pui", "Qa", "Qai", "Qe", "Qei", "Qi", "Qia", "Qiai", "Qii", "Qo", "Qoi", "Qu", "Qua", "Quai", "Qui", "Sa", "Sai", "Se", "Sei", "Sha", "Shai", "She", "Shei", "Shi", "Shia", "Shiai", "Shii", "Sho", "Shoi", "Shu", "Shua", "Shuai", "Shui", "Si", "Sia", "Siai", "Sii", "So", "Soi", "Su", "Sua", "Suai", "Sui", "Ta", "Tai", "Te", "Tei", "Ti", "Tia", "Tiai", "Tii", "To", "Toi", "Tu", "Tua", "Tuai", "Tui", "Va", "Vai", "Ve", "Vei", "Vi", "Via", "Viai", "Vii", "Vo", "Voi", "Vu", "Vua", "Vuai", "Vui", "Wa", "Wai", "We", "Wei", "Wi", "Wia", "Wiai", "Wii", "Wo", "Woi", "Wu", "Wua", "Wuai", "Wui", "Xa", "Xai", "Xe", "Xei", "Xi", "Xia", "Xiai", "Xii", "Xo", "Xoi", "Xu", "Xua", "Xuai", "Xui", "Ya", "Yai", "Ye", "Yei", "Yi", "Yia", "Yiai", "Yii", "Yo", "Yoi", "Yu", "Yua", "Yuai", "Yui", "Za", "Zai", "Ze", "Zei", "Zha", "Zhai", "Zhe", "Zhei", "Zhi", "Zhia", "Zhiai", "Zhii", "Zho", "Zhoi", "Zhu", "Zhua", "Zhuai", "Zhui", "Zi", "Zia", "Ziai", "Zii", "Zo", "Zoi", "Zu", "Zua", "Zuai", "Zui"} -zoraiLastNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} +zoraiFirstNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"} -zoraiFirstNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} +zoraiLastNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"} diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 5045e072f..e74c15469 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -19,80 +19,80 @@ end -- tryker: given name 4500, FirstName 4335 -- Fyros -function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end - - return fyrosLastNames[math.random(nbFyrosLastNames)] -end function outgame:getFyrosFirstName() local nbFyrosFirstNames = 0; for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end return fyrosFirstNames[math.random(nbFyrosFirstNames)] end +function outgame:getFyrosLastName() + local nbFyrosLastNames = 0; + for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + + return fyrosLastNames[math.random(nbFyrosLastNames)] +end -- Matis -function outgame:getMatisLastName(sex) +function outgame:getMatisFirstName(sex) local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); if sex ~= nil then dbNameSex = sex; end - local LastName = "" + local FirstName = "" if tonumber( dbNameSex )== 1 then - local nbMatisMaleLastNames = 0; - for _ in pairs(matisMaleLastNames) do nbMatisMaleLastNames = nbMatisMaleLastNames + 1 end - LastName = matisMaleLastNames[math.random(nbMatisMaleLastNames)]; + local nbMatisMaleFirstNames = 0; + for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; else - local nbMatisFemaleLastNames = 0; - for _ in pairs(matisFemaleLastNames) do nbMatisFemaleLastNames = nbMatisFemaleLastNames + 1 end - LastName = matisFemaleLastNames[math.random(nbMatisFemaleLastNames)]; + local nbMatisFemaleFirstNames = 0; + for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; end - return LastName; + return FirstName; end -function outgame:getMatisFirstName() +function outgame:getMatisLastName() - local nbMatisFirstNames = 0; - for _ in pairs(matisFirstNames) do nbMatisFirstNames = nbMatisFirstNames + 1 end + local nbMatisLastNames = 0; + for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end - return matisFirstNames[math.random(nbMatisFirstNames)] + return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker -function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end - - return trykerLastNames[math.random(nbTrykerLastNames)] -end function outgame:getTrykerFirstName() local nbTrykerFirstNames = 0; for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end return trykerFirstNames[math.random(nbTrykerFirstNames)] end +function outgame:getTrykerLastName() + local nbTrykerLastNames = 0; + for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + + return trykerLastNames[math.random(nbTrykerLastNames)] +end -- Zoraï -function outgame:getZoraiLastName() - local nbLastNamesOne = 0; - for _ in pairs(zoraiLastNamesOne) do nbLastNamesOne = nbLastNamesOne + 1 end - local lastNameOne = zoraiLastNamesOne[math.random(nbLastNamesOne)]; +function outgame:getZoraiFirstName() + local nbFirstNamesOne = 0; + for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; - local nbLastNamesTwo = 0; - for _ in pairs(zoraiLastNamesTwo) do nbLastNamesTwo = nbLastNamesTwo + 1 end - local lastNameTwo = zoraiLastNamesTwo[math.random(nbLastNamesTwo)]; + local nbFirstNamesTwo = 0; + for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; - return lastNameOne .. "-" .. lastNameTwo + return FirstNameOne .. "-" .. FirstNameTwo end -function outgame:getZoraiFirstName() - local nbFirstNames = 0; - for _ in pairs(zoraiFirstNames) do nbFirstNames = nbFirstNames + 1 end +function outgame:getZoraiLastName() + local nbLastNames = 0; + for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end - return zoraiFirstNames[math.random(nbFirstNames)] + return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() @@ -114,25 +114,25 @@ function outgame:procGenerateName() lastName = self:getFyrosLastName() firstName = self:getFyrosFirstName() fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 2 then -- Matis lastName = self:getMatisLastName() firstName = self:getMatisFirstName() fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 3 then -- Tryker lastName = self:getTrykerLastName() firstName = self:getTrykerFirstName() fullnameResult = firstName .. " " .. lastName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 4 then -- Zorai lastName = self:getZoraiLastName() firstName = self:getZoraiFirstName() fullnameResult = firstName .. " " .. lastName - nameResult = lastName + nameResult = firstName elseif tonumber( dbNameRace ) == 5 then -- Maraudeurs -- lastName @@ -170,7 +170,7 @@ function outgame:procGenerateName() end fullnameResult = lastName .. " " .. firstName - nameResult = lastName + nameResult = firstName end uiNameFull.hardtext = fullnameResult; From 41176a7d02c5143b1a1a8fe72c4c660577203952 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:22:09 +0100 Subject: [PATCH 03/48] Fixed: OpenGL ES driver compilation --HG-- branch : develop --- code/nel/src/3d/driver/opengl/driver_opengl.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index e247275ab..8ad9228ef 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -1203,6 +1203,7 @@ sint CDriverGL::getTotalVideoMemory() const { H_AUTO_OGL(CDriverGL_getTotalVideoMemory); +#ifndef USE_OPENGLES if (_Extensions.NVXGPUMemoryInfo) { GLint memoryInKiB = 0; @@ -1306,6 +1307,10 @@ sint CDriverGL::getTotalVideoMemory() const } #endif +#else + // TODO: implement for OpenGL ES +#endif + return -1; } From faae2973ac425288eb61280c0270da657aa82803 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:24:01 +0100 Subject: [PATCH 04/48] Fixed: With new iOS versions (and perhaps OS X), locale can contains country code --HG-- branch : develop --- code/nel/src/misc/i18n.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 427c102da..d049a7ca3 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -306,11 +306,20 @@ std::string CI18N::getSystemLanguageCode () CFRelease(langCF); } - // only keep language code if supported by NeL - if (!lang.empty() && isLanguageCodeSupported(lang)) + if (!lang.empty()) { - s_cachedSystemLanguage = lang; - break; + // fix language code if country is specified + std::string::size_type pos = lang.find('-'); + + if (pos != std::string::npos) + lang = lang.substr(0, pos); + + // only keep language code if supported by NeL + if (isLanguageCodeSupported(lang)) + { + s_cachedSystemLanguage = lang; + break; + } } } From 5c3f5e841c7268504fa8b20ae9bf750ad75bc3d2 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 9 Mar 2016 11:24:17 +0100 Subject: [PATCH 05/48] Changed: Write a warning instead of error --HG-- branch : develop --- code/nel/src/misc/i18n.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index d049a7ca3..2f1bee325 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -293,7 +293,7 @@ std::string CI18N::getSystemLanguageCode () } else { - nlerror("Unable to convert CFStringRef to string"); + nlwarning("Unable to convert CFStringRef to string"); } delete [] tmp; From c8646b26d1349b4d4657a3be63040e99d8c96adf Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 10 Mar 2016 12:08:48 +0100 Subject: [PATCH 06/48] Fix rounding error in _RyzomDay and _RyzomTime calculation --HG-- branch : develop --- code/ryzom/client/src/far_tp.cpp | 4 ++-- code/ryzom/client/src/init_main_loop.cpp | 4 ++-- code/ryzom/client/src/main_loop.cpp | 8 ++++---- .../time_weather_season/time_and_season.cpp | 15 +++++++++++++++ .../time_weather_season/time_and_season.h | 10 +--------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/code/ryzom/client/src/far_tp.cpp b/code/ryzom/client/src/far_tp.cpp index a7a41c628..ba85862b6 100644 --- a/code/ryzom/client/src/far_tp.cpp +++ b/code/ryzom/client/src/far_tp.cpp @@ -1212,10 +1212,10 @@ void CFarTP::sendReady() else { // Set season - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); DayNightCycleHour = (float)RT.getRyzomTime(); CurrSeason = RT.getRyzomSeason(); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); DayNightCycleHour = (float)RT.getRyzomTime(); ManualSeasonValue = RT.getRyzomSeason(); diff --git a/code/ryzom/client/src/init_main_loop.cpp b/code/ryzom/client/src/init_main_loop.cpp index dc9a907b7..15a674c2e 100644 --- a/code/ryzom/client/src/init_main_loop.cpp +++ b/code/ryzom/client/src/init_main_loop.cpp @@ -797,10 +797,10 @@ void initMainLoop() { // setup good day / season before ig are added. - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); updateDayNightCycleHour(); StartupSeason = CurrSeason = RT.getRyzomSeason(); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); updateDayNightCycleHour(); ManualSeasonValue = RT.getRyzomSeason(); diff --git a/code/ryzom/client/src/main_loop.cpp b/code/ryzom/client/src/main_loop.cpp index c0beba4c1..93842ec3f 100644 --- a/code/ryzom/client/src/main_loop.cpp +++ b/code/ryzom/client/src/main_loop.cpp @@ -1340,7 +1340,7 @@ bool mainLoop() if (!ClientCfg.Local) { if(NetMngr.getCurrentServerTick() > LastGameCycle) - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); } else if (ClientCfg.SimulateServerTick) { @@ -1348,7 +1348,7 @@ bool mainLoop() uint numTicks = (uint) floor(SimulatedServerDate * 10); SimulatedServerTick += numTicks; SimulatedServerDate = (float)((double)SimulatedServerDate - (double) numTicks * 0.1); - RT.updateRyzomClock((uint32)SimulatedServerTick, ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock((uint32)SimulatedServerTick); } @@ -2092,14 +2092,14 @@ bool mainLoop() if (Actions.valide ("inc_hour")) { RT.increaseTickOffset( (uint32)(2000 * displayHourDelta) ); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); } // Ctrl-L decrease hour if (Actions.valide ("dec_hour")) { RT.decreaseTickOffset( (uint32)(2000 * displayHourDelta) ); - RT.updateRyzomClock(NetMngr.getCurrentServerTick(), ryzomGetLocalTime() * 0.001); + RT.updateRyzomClock(NetMngr.getCurrentServerTick()); CTimedFXManager::getInstance().setDate(CClientDate(RT.getRyzomDay(), (float) RT.getRyzomTime())); if (IGCallbacks) { diff --git a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp index a24c8a9dd..a71d71be4 100644 --- a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp +++ b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.cpp @@ -83,4 +83,19 @@ namespace WEEKDAY }; // WEEKDAY +void CRyzomTime::updateRyzomClock(uint32 gameCyle) +{ + static const uint32 ticksPerDay = (RYZOM_DAY_IN_HOUR * RYZOM_HOURS_IN_TICKS); + static const float ticksPerHour = (float)RYZOM_HOURS_IN_TICKS; + + uint32 totalTicks = gameCyle + _TickOffset; + uint32 days = totalTicks / ticksPerDay; + uint32 dayCycle = totalTicks - (days * ticksPerDay); + days -= RYZOM_START_SPRING; + float hours = (float)dayCycle / ticksPerHour; + + _RyzomDay = days; + _RyzomTime = hours; +} +/* end of file */ diff --git a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h index 92892fd85..62f144119 100644 --- a/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h +++ b/code/ryzom/common/src/game_share/time_weather_season/time_and_season.h @@ -135,18 +135,11 @@ public: { _RyzomDay = 0; _RyzomTime = 0.f; - _LocalTime = 0.0; _TickOffset = 0; } // Update ryzom clock when tick occurs, local time must be given if localUpdateRyzomClock() and getLocalRyzomTime() is used - void updateRyzomClock( uint32 gameCyle, double localTime = 0 ) - { - float hours = ( gameCyle + _TickOffset ) / float(RYZOM_HOURS_IN_TICKS); - _RyzomDay = ( (uint)hours / RYZOM_DAY_IN_HOUR ) - RYZOM_START_SPRING; - _RyzomTime = (float) fmod( hours, (float)RYZOM_DAY_IN_HOUR ); - _LocalTime = localTime; - } + void updateRyzomClock(uint32 gameCyle); // get ryzom time (synchronized with server) inline float getRyzomTime() const { return _RyzomTime; } @@ -202,7 +195,6 @@ private: uint32 _RyzomDay; float _RyzomTime; - double _LocalTime; uint32 _TickOffset; }; From 4762b33ac0b2c513083529f09afe314ad9e2d335 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Thu, 10 Mar 2016 12:08:48 +0100 Subject: [PATCH 07/48] Fix thunder update --HG-- branch : develop --- code/ryzom/client/src/main_loop_debug.cpp | 3 ++ .../client/src/weather_manager_client.cpp | 30 ++++++++++++------- .../ryzom/client/src/weather_manager_client.h | 2 ++ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/code/ryzom/client/src/main_loop_debug.cpp b/code/ryzom/client/src/main_loop_debug.cpp index cc19ab478..5d2dcf9ac 100644 --- a/code/ryzom/client/src/main_loop_debug.cpp +++ b/code/ryzom/client/src/main_loop_debug.cpp @@ -430,6 +430,9 @@ void displayDebug() TextContext->printfAt(1.f, line, "TEST WEATHER FUNCTION"); line += lineStep; } + // thunder + TextContext->printfAt(1.f, line, "Thunder level : %.02f", WeatherManager.getThunderLevel()); + line += lineStep; // season TextContext->printfAt(1.f, line, "Season : %s", EGSPD::CSeason::toString(CurrSeason).c_str()); line += lineStep; diff --git a/code/ryzom/client/src/weather_manager_client.cpp b/code/ryzom/client/src/weather_manager_client.cpp index 6bff68b49..96f7bebf7 100644 --- a/code/ryzom/client/src/weather_manager_client.cpp +++ b/code/ryzom/client/src/weather_manager_client.cpp @@ -132,7 +132,7 @@ void CWeatherManagerClient::update(uint64 day, float hour, const CWeatherContext // build current weather state EGSPD::CSeason::TSeason season = CRyzomTime::getSeasonByDay((uint32)day); // - manualUpdate(day, hour, wc, weatherValue, season); + manualUpdateImpl(day, hour, wc, weatherValue, season); _LastEvalHour = hour; _LastEvalDay = day; } @@ -147,25 +147,29 @@ void CWeatherManagerClient::update(uint64 day, float hour, const CWeatherContext // build current weather state EGSPD::CSeason::TSeason season = CRyzomTime::getSeasonByDay((uint32)day); // - manualUpdate(day, hour, wc, weatherValue, season, camMat, continent); + manualUpdateImpl(day, hour, wc, weatherValue, season, camMat, continent); _LastEvalHour = hour; _LastEvalDay = day; } - - //================================================================================================ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const CContinent &continent) +{ + manualUpdateImpl(day, hour, wc, weatherValue, season, camMat, continent); + _LastEvalHour = hour; + _LastEvalDay = day; +} + +//================================================================================================ +void CWeatherManagerClient::manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const CContinent &continent) { H_AUTO_USE(RZ_WeatherManagerClient) if (!wc.WF) return; - manualUpdate(day, hour, wc, weatherValue, season); + manualUpdateImpl(day, hour, wc, weatherValue, season); setupFXs(camMat, wc.GR, continent); setupWind(&(wc.WF[season])); float scaledWeatherValue = weatherValue * (wc.WF[season].getNumWeatherSetups() - 1); updateThunder(day, hour, wc, true, scaledWeatherValue, season); - _LastEvalHour = hour; - _LastEvalDay = day; // Sound stuff if (SoundMngr != 0) @@ -250,9 +254,16 @@ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherC } } - //================================================================================================ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season) +{ + manualUpdateImpl(day, hour, wc, weatherValue, season); + _LastEvalHour = hour; + _LastEvalDay = day; +} + +//================================================================================================ +void CWeatherManagerClient::manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season) { H_AUTO_USE(RZ_WeatherManagerClient) if (!wc.WF) return; @@ -269,11 +280,8 @@ void CWeatherManagerClient::manualUpdate(uint64 day, float hour, const CWeatherC // blend client specific part CWeatherStateClient::blend(_CurrWeatherStateClient, safe_cast(floorSetup)->WeatherStateClient, safe_cast(ceilSetup)->WeatherStateClient, blendFactor); } - _LastEvalHour = hour; - _LastEvalDay = day; } - //================================================================================================ void CWeatherManagerClient::setupWind(const CWeatherFunction *wf) { diff --git a/code/ryzom/client/src/weather_manager_client.h b/code/ryzom/client/src/weather_manager_client.h index 543dc2039..97388a7a4 100644 --- a/code/ryzom/client/src/weather_manager_client.h +++ b/code/ryzom/client/src/weather_manager_client.h @@ -105,6 +105,8 @@ protected: // from CWeatherManager virtual void setupLoaded(CWeatherSetup *setup); private: + void manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season); + void manualUpdateImpl(uint64 day, float hour, const CWeatherContext &wc, float weatherValue, EGSPD::CSeason::TSeason season, const NLMISC::CMatrix &camMat, const class CContinent &continent); typedef std::map TPrecipitationMap; // A vector of precipitation pointers typedef std::vector TPrecipitationVect; From e0be334456774903c9e196360ff8b614242758c0 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:44:21 +0100 Subject: [PATCH 08/48] Changed: Create new client.cfg --HG-- branch : develop --- .../tools/client/client_config_qt/config.cpp | 53 ++++++++++++++++--- .../tools/client/client_config_qt/config.h | 10 +++- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/config.cpp b/code/ryzom/tools/client/client_config_qt/config.cpp index 0d41db0cd..15cd4fb9d 100644 --- a/code/ryzom/tools/client/client_config_qt/config.cpp +++ b/code/ryzom/tools/client/client_config_qt/config.cpp @@ -17,6 +17,10 @@ #include "stdpch.h" #include "config.h" +#include "nel/misc/common.h" +#include "nel/misc/i18n.h" +#include "nel/misc/path.h" + CConfig::CConfig() { } @@ -25,17 +29,50 @@ CConfig::~CConfig() { } -bool CConfig::load( const char *fileName ) +bool CConfig::create(const std::string &configFileName, const std::string &defaultFileName) +{ + NLMISC::CFile::createDirectoryTree(NLMISC::CFile::getPath(configFileName)); + + // create the basic .cfg + FILE *fp = NLMISC::nlfopen(configFileName, "w"); + + if (fp == NULL) return false; + + // store full path to default config file + fprintf(fp, "RootConfigFilename = \"%s\";\n", defaultFileName.c_str()); + + // get current locale + std::string lang = NLMISC::CI18N::getSystemLanguageCode(); + + const std::vector &languages = NLMISC::CI18N::getLanguageCodes(); + + // search if current locale is defined in language codes + for(uint i = 0; i < languages.size(); ++i) + { + if (lang == languages[i]) + { + // store the language code in the config file + fprintf(fp, "LanguageCode = \"%s\";\n", lang.c_str()); + break; + } + } + + fclose(fp); + + return true; +} + +bool CConfig::load(const std::string &fileName) { try { - cf.load( fileName ); + cf.load(fileName); - std::string def = getString( "RootConfigFilename" ); - if( def.compare( "" ) != 0 ) - dcf.load( def ); + std::string def = getString("RootConfigFilename"); + if (!def.empty()) + dcf.load(def); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; @@ -51,7 +88,7 @@ bool CConfig::reload() cf.clear(); cf.reparse(); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; @@ -112,7 +149,7 @@ bool CConfig::save() { cf.save(); } - catch( NLMISC::Exception &e ) + catch (const NLMISC::Exception &e) { nlwarning( "%s", e.what() ); return false; diff --git a/code/ryzom/tools/client/client_config_qt/config.h b/code/ryzom/tools/client/client_config_qt/config.h index d9ddb536e..05f82c83a 100644 --- a/code/ryzom/tools/client/client_config_qt/config.h +++ b/code/ryzom/tools/client/client_config_qt/config.h @@ -28,12 +28,20 @@ public: CConfig(); ~CConfig(); + /** + @brief Create a config file. + @param fileName - The config file to create + @param defaultFileName - The default config file to use + @return Returns true on success, returns false on failure. + */ + bool create(const std::string &fileName, const std::string &defaultFileName); + /** @brief Loads a config file. @param fileName - The file to load @return Returns true on success, returns false on failure. */ - bool load( const char *fileName ); + bool load(const std::string &fileName); /** @brief Reloads the contents of the config file From c0958ab0b53c23836005025c368e4d1703023777 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:45:11 +0100 Subject: [PATCH 09/48] Fixed: Determine path of client.cfg and client_default.cfg --HG-- branch : develop --- .../tools/client/client_config_qt/main.cpp | 100 +++++++++++++++++- 1 file changed, 95 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/main.cpp b/code/ryzom/tools/client/client_config_qt/main.cpp index 2ee58d5bd..2967ce4a0 100644 --- a/code/ryzom/tools/client/client_config_qt/main.cpp +++ b/code/ryzom/tools/client/client_config_qt/main.cpp @@ -18,6 +18,7 @@ #include "client_config_dialog.h" #include "system.h" +#include "nel/misc/cmd_args.h" #include @@ -42,21 +43,110 @@ int main(sint32 argc, char **argv) QApplication app(argc, argv); + // parse command-line arguments + NLMISC::CCmdArgs args; + args.setDescription("Ryzom Configuration"); + args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); + + if (!args.parse(argc, argv)) return 1; + QApplication::setWindowIcon(QIcon(":/resources/welcome_icon.png")); QPixmap pixmap(":/resources/splash_screen.png" ); QSplashScreen splash( pixmap ); - splash.show(); - QString locale = QLocale::system().name().left(2); + QLocale locale = QLocale::system(); + // load application translations QTranslator localTranslator; - if (localTranslator.load(QString(":/translations/ryzom_configuration_%1.qm").arg(locale))) + if (localTranslator.load(locale, "ryzom_configuration", "_", ":/translations")) + { + QApplication::installTranslator(&localTranslator); + } + + // load Qt default translations + QTranslator qtTranslator; + if (qtTranslator.load(locale, "qt", "_", ":/translations")) + { + QApplication::installTranslator(&qtTranslator); + } + + // Known cases: + // 1. Steam + // - Linux and Windows: all files in Steam folder + // - OS X: client.cfg in ~/Library/Application Support/Ryzom, client_default.cfg in Steam folder + // 2. Installer + // - Linux: client.cfg in ~/.ryzom// client_default.cfg in ~/.ryzom/ryzom_live/ + // - Windows: client.cfg in Roaming/Ryzom// client_default.cfg in Local/Ryzom/ryzom_live/ + // - OS X: client.cfg in ~/Library/Application Support/Ryzom// client_default.cfg in ~/Library/Application Support/Ryzom/ryzom_live/ + + // default paths + std::string ryzomDir = NLMISC::CPath::standardizePath(NLMISC::CPath::getApplicationDirectory("Ryzom")); + std::string currentDir = args.getStartupPath(); + std::string executableDir = args.getProgramPath(); + + std::string configFilename = "client.cfg"; + std::string configPath; + + // search client.cfg file in config directory (Ryzom Installer) + if (args.haveArg("p")) + { + ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + args.getArg("p").front()); + + // client.cfg is always in profile directory if using -p argument + configPath = ryzomDir + configFilename; + } + else + { +#ifdef NL_OS_MAC + // client.cfg is in ~/Library/Application Support/Ryzom under OS X + configPath = ryzomDir + configFilename; +#else + // client.cfg is in current directory under other platforms + configPath = currentDir + configFilename; +#endif + } + + // if file doesn't exist, create it + if (!NLMISC::CFile::fileExists(configPath)) { - app.installTranslator(&localTranslator); + // we need the full path to client_default.cfg + std::string defaultConfigFilename = "client_default.cfg"; + std::string defaultConfigPath; + +#ifdef NL_OS_MAC + // fix path inside bundle + defaultConfigPath = NLMISC::CPath::makePathAbsolute("../Resources", executableDir, true) + defaultConfigFilename; +#else + // same path as executables + defaultConfigPath = executableDir + defaultConfigFilename; +#endif + + // test if default config exists in determined path + if (!NLMISC::CFile::fileExists(defaultConfigPath)) + { + defaultConfigPath = currentDir + defaultConfigFilename; + + // test if default config exists in current path + if (!NLMISC::CFile::fileExists(defaultConfigPath)) + { + nlwarning("Unable to find %s", defaultConfigFilename.c_str()); + return 1; + } + } + + if (!CSystem::GetInstance().config.create(configPath, defaultConfigPath)) + { + nlwarning("Unable to create %s", configPath.c_str()); + return 1; + } } - CSystem::GetInstance().config.load( "client.cfg" ); + if (!CSystem::GetInstance().config.load(configPath)) + { + nlwarning("Unable to load %s", configPath.c_str()); + return 1; + } CClientConfigDialog d; d.show(); From e4f8bb0e162e24c4d877ea2f02970a0ba8e50d43 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:48:59 +0100 Subject: [PATCH 10/48] Changed: Use MiB for RAM --HG-- branch : develop --- code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp b/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp index fa1e746bd..2acdaa8c5 100644 --- a/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/sys_info_widget.cpp @@ -27,7 +27,7 @@ CSysInfoWidget::CSysInfoWidget( QWidget *parent ) : osLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.osName.c_str())); cpuLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.cpuName.c_str())); - ramLabel->setText(QString(tr("%1 MB").arg(CSystem::GetInstance().sysInfo.totalRAM))); + ramLabel->setText(QString(tr("%1 MiB").arg(CSystem::GetInstance().sysInfo.totalRAM))); gfxcardLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.videoDevice.c_str())); gfxdriverLabel->setText(QString::fromUtf8(CSystem::GetInstance().sysInfo.videoDriverVersion.c_str())); From b9231adb7882d15f9d9568c18f08245849dba061 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 11 Mar 2016 09:50:22 +0100 Subject: [PATCH 11/48] Fixed: ForceDXTC is not to disable compression but force it --HG-- branch : develop --- .../client/client_config_qt/display_settings_advanced_widget.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui b/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui index 053104e2c..6c5fd71e0 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/display_settings_advanced_widget.ui @@ -28,7 +28,7 @@ - Disable texture compression + Force texture compression From 13851e3df5f0a3c1d9f611597aa34cb0a67fc1fc Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:46:13 +0100 Subject: [PATCH 12/48] Fixed: 0x0 is Auto mode --HG-- branch : develop --- .../client_config_qt/display_settings_widget.cpp | 13 ++++++++++++- code/ryzom/tools/client/client_config_qt/system.cpp | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp index ae8b1a590..49e841631 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp @@ -166,7 +166,18 @@ void CDisplaySettingsWidget::updateVideoModes() while(itr != iend) { - videomodeComboBox->addItem(QString("%1x%2 %3 bit @%4").arg(itr->width).arg(itr->height).arg(itr->depth).arg(itr->frequency)); + if (itr->frequency) + { + videomodeComboBox->addItem(QString("%1x%2 %3 bit @%4").arg(itr->width).arg(itr->height).arg(itr->depth).arg(itr->frequency)); + } + else if (itr->width) + { + videomodeComboBox->addItem(QString("%1x%2 %3 bit").arg(itr->width).arg(itr->height).arg(itr->depth)); + } + else + { + videomodeComboBox->addItem(tr("Auto")); + } ++itr; } diff --git a/code/ryzom/tools/client/client_config_qt/system.cpp b/code/ryzom/tools/client/client_config_qt/system.cpp index 8ef5a930b..635800878 100644 --- a/code/ryzom/tools/client/client_config_qt/system.cpp +++ b/code/ryzom/tools/client/client_config_qt/system.cpp @@ -160,6 +160,16 @@ void CSystem::GetVideoModes( std::vector< CVideoMode > &dst, NL3D::IDriver *driv std::vector< NL3D::GfxMode > modes; driver->getModes( modes ); + { + // auto mode + CVideoMode mode; + mode.depth = 0; + mode.width = 0; + mode.height = 0; + mode.frequency = 0; + dst.push_back( mode ); + } + for( std::vector< NL3D::GfxMode >::iterator itr = modes.begin(); itr != modes.end(); ++itr ) { if( ( itr->Width >= 800 ) && ( itr->Height >= 600 ) && ( itr->Depth >= 16 ) ) From 21a84a3ed499cd54c0dbfd336fc3165f94cb27a3 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:47:13 +0100 Subject: [PATCH 13/48] Changed: Declare CCmdArgs outside of main() to be able to use it in other files --HG-- branch : develop --- .../client_config_qt/client_config_dialog.cpp | 4 ++++ .../tools/client/client_config_qt/main.cpp | 17 +++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp index bfa9bbc58..4b3cf0648 100644 --- a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp +++ b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp @@ -31,6 +31,10 @@ #include #include +#include "nel/misc/cmd_args.h" + +extern NLMISC::CCmdArgs Args; + CClientConfigDialog::CClientConfigDialog( QWidget *parent ) : QDialog( parent ) { diff --git a/code/ryzom/tools/client/client_config_qt/main.cpp b/code/ryzom/tools/client/client_config_qt/main.cpp index 2967ce4a0..b99cde6c1 100644 --- a/code/ryzom/tools/client/client_config_qt/main.cpp +++ b/code/ryzom/tools/client/client_config_qt/main.cpp @@ -37,6 +37,8 @@ #endif +NLMISC::CCmdArgs Args; + int main(sint32 argc, char **argv) { NLMISC::CApplicationContext applicationContext; @@ -44,11 +46,10 @@ int main(sint32 argc, char **argv) QApplication app(argc, argv); // parse command-line arguments - NLMISC::CCmdArgs args; - args.setDescription("Ryzom Configuration"); - args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); + Args.setDescription("Ryzom Configuration"); + Args.addArg("p", "profile", "id", "Use this profile to determine what directory to use by default"); - if (!args.parse(argc, argv)) return 1; + if (!Args.parse(argc, argv)) return 1; QApplication::setWindowIcon(QIcon(":/resources/welcome_icon.png")); QPixmap pixmap(":/resources/splash_screen.png" ); @@ -82,16 +83,16 @@ int main(sint32 argc, char **argv) // default paths std::string ryzomDir = NLMISC::CPath::standardizePath(NLMISC::CPath::getApplicationDirectory("Ryzom")); - std::string currentDir = args.getStartupPath(); - std::string executableDir = args.getProgramPath(); + std::string currentDir = Args.getStartupPath(); + std::string executableDir = Args.getProgramPath(); std::string configFilename = "client.cfg"; std::string configPath; // search client.cfg file in config directory (Ryzom Installer) - if (args.haveArg("p")) + if (Args.haveArg("p")) { - ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + args.getArg("p").front()); + ryzomDir = NLMISC::CPath::standardizePath(ryzomDir + Args.getArg("p").front()); // client.cfg is always in profile directory if using -p argument configPath = ryzomDir + configFilename; From 587b63e1d100594586486d2c24e57bbd4aac6a0a Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:48:18 +0100 Subject: [PATCH 14/48] Fixed: Use full path to launch Ryzom client and pass profile argument --HG-- branch : develop --- .../client_config_qt/client_config_dialog.cpp | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp index 4b3cf0648..5f645857d 100644 --- a/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp +++ b/code/ryzom/tools/client/client_config_qt/client_config_dialog.cpp @@ -149,16 +149,29 @@ void CClientConfigDialog::onClickPlay() { bool started = false; + QStringList arguments; + + if (Args.haveArg("p")) + { + arguments << "-p" << QString::fromUtf8(Args.getArg("p").front().c_str()); + } + + QString clientFullPath = QString::fromUtf8(Args.getProgramPath().c_str()); + #ifdef Q_OS_WIN32 - started = QProcess::startDetached( "ryzom_client_r.exe" ); - if( !started ) - QProcess::startDetached( "ryzom_client_d.exe" ); +#ifdef _DEBUG + clientFullPath += "ryzom_client_d.exe"; +#else + clientFullPath += "ryzom_client_r.exe"; +#endif #elif defined(Q_OS_MAC) - started = QProcess::startDetached( "./Ryzom.app" ); + clientFullPath += "Ryzom"; #else - started = QProcess::startDetached( "./ryzom_client" ); + clientFullPath += "ryzom_client"; #endif + started = QProcess::startDetached(clientFullPath, arguments); + onClickOK(); } From 691c8cdbd3f95a3e3dd570ed9a2f2f3fe9e5ac8b Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 12 Mar 2016 14:49:04 +0100 Subject: [PATCH 15/48] Changed: Use QString::number() instead of QString("%1") to convert an int to QString --HG-- branch : develop --- .../client_config_qt/display_settings_widget.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp index 49e841631..7e05f83bd 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.cpp @@ -90,10 +90,10 @@ void CDisplaySettingsWidget::load() windowedRadioButton->setChecked( true ); } - widthLineEdit->setText( QString( "%1" ).arg( mode.width ) ); - heightLineEdit->setText( QString( "%1" ).arg( mode.height ) ); - xpositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionX" ) ) ); - ypositionLineEdit->setText( QString( "%1" ).arg( s.config.getInt( "PositionY" ) ) ); + widthLineEdit->setText(QString::number(mode.width)); + heightLineEdit->setText(QString::number(mode.height)); + xpositionLineEdit->setText(QString::number(s.config.getInt("PositionX"))); + ypositionLineEdit->setText(QString::number(s.config.getInt("PositionY"))); } @@ -194,7 +194,7 @@ uint32 CDisplaySettingsWidget::findVideoModeIndex( CVideoMode *mode ) //| --------------------------------------| //| Auto | OpenGL modes | //| OpenGL | OpenGL modes | - //| Direct3D | Direct3d modes | + //| Direct3D | Direct3D modes | //| --------------------------------------| // // From 7bfb43c25db1fb89fb2bc5d7db0c6789c22df352 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:07:06 +0100 Subject: [PATCH 16/48] Changed: Updated translations for Ryzom Configuration --HG-- branch : develop --- .../client/client_config_qt/CMakeLists.txt | 8 +- .../translations/ryzom_configuration_de.ts | 494 ++++++++++++++++++ .../translations/ryzom_configuration_en.ts | 372 ++++++------- .../translations/ryzom_configuration_es.ts | 484 +++++++++++++++++ .../translations/ryzom_configuration_fr.ts | 208 ++++---- .../translations/ryzom_configuration_hu.ts | 208 ++++---- .../translations/ryzom_configuration_ru.ts | 484 +++++++++++++++++ .../translations/translations.qrc | 3 + 8 files changed, 1890 insertions(+), 371 deletions(-) create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts create mode 100644 code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts diff --git a/code/ryzom/tools/client/client_config_qt/CMakeLists.txt b/code/ryzom/tools/client/client_config_qt/CMakeLists.txt index f0bb295b3..0e85ea97b 100644 --- a/code/ryzom/tools/client/client_config_qt/CMakeLists.txt +++ b/code/ryzom/tools/client/client_config_qt/CMakeLists.txt @@ -27,11 +27,7 @@ SET(CLIENT_CONFIG_UIS sys_info_widget.ui ) -SET(CLIENT_CONFIG_TRANS - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_en.ts - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_fr.ts - ${CMAKE_CURRENT_SOURCE_DIR}/translations/ryzom_configuration_hu.ts -) +FILE(GLOB CLIENT_CONFIG_TRANS translations/*.ts) CONFIGURE_FILE(translations/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY) SET(CLIENT_CONFIG_RCS resources.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc ) @@ -47,6 +43,8 @@ IF(WITH_QT) ADD_DEFINITIONS(${QT_DEFINITIONS}) ELSE() +# uncomment this line if you want to update original translations +# QT5_CREATE_TRANSLATION(CLIENT_CONFIG_QM ${CLIENT_CONFIG_UIS} ${SRC} ${CLIENT_CONFIG_TRANS}) QT5_ADD_TRANSLATION(CLIENT_CONFIG_QM ${CLIENT_CONFIG_TRANS}) QT5_ADD_RESOURCES(CLIENT_CONFIG_RC_SRCS ${CLIENT_CONFIG_RCS}) QT5_WRAP_CPP(CLIENT_CONFIG_MOC_SRC ${CLIENT_CONFIG_HDR}) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts new file mode 100644 index 000000000..1aa06dde2 --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -0,0 +1,494 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + Ryzom Konfiguration + + + + Are you sure you want to quit without saving the configuration? + Bist du sicher, dass du abbrechen willst, ohne die Konfiguration zu sichern? + + + + CDisplaySettingsDetailsWidget + + + Low + Niedrig + + + + Medium + Mittel + + + + Normal + Normal + + + + High + Hoch + + + + Low (32 MB) + Niedrig (32 MB) + + + + Normal (64 MB) + Normal (64 MB) + + + + High (128 MB) + Hoch (128 MB) + + + + CDisplaySettingsWidget + + + Auto + if too long, Auto is sufficient (just ugly, as in German the short form also means "car") + Automatisch + + + + CSoundSettingsWidget + + + %1 tracks + audio-channels? + %1 Tonspuren + + + + CSysInfoWidget + + + %1 MiB + %1 MiB + + + + client_config_dialog + + + Ryzom Configuration + Ryzom-Konfiguration + + + + + General + Allgemein + + + + Category + Kategorie + + + + Display + Anzeige + + + + Display details + Anzeigedetails + + + + Display advanced + Anzeige erweitert + + + + Sound + Sound + + + + System information + System-Information + + + + OpenGL information + OpenGL-Information + + + + Direct3D information + Direct3D-Information + + + + Apply + Anwenden + + + + Default + Standard + + + + Play Ryzom + Ryzom spielen + + + + display_settings_advanced_widget + + + Display advanced + Anzeige erweitert + + + + Modify these settings only if you have trouble launching the game + Modifiziere diese Einstellungen nur dann, wenn du Probleme mit dem Starten des Spiels hast + + + + Force texture compression + Erzwinge Textur-Kompression + + + + Disable vertex shaders + Deaktiviere Vertex-Shader + + + + Disable AGP for vertices + Deaktiviere AGP für Vertexeckpunkte + + + + Disable pixel shaders + Deaktiviere Pixel-Shader + + + + display_settings_details_widget + + + Display details + Anzeigedetails + + + + Landscape + Landschaft + + + + + + + Level of detail + Detailstufe + + + + + + + Low + Niedrig + + + + Characters + Charaktere + + + + FX + Special effects? + FX + + + + Textures + Texturen + + + + display_settings_widget + + + Display + Anzeige + + + + Driver + Treiber + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + + + + Auto + Automatisch + + + + OpenGL + OpenGL + + + + Direct3D + Direct3D + + + + Parameters + Parameter + + + + Specify if Ryzom is to be run in full screen or window mode: + Wähle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: + + + + Full screen + Vollbild + + + + Specify a video mode + Wähle eine Bildschirmauflösung + + + + Windowed + Im Fenster + + + + Width + Breite + + + + Height + Höhe + + + + X position + X-Position + + + + Y position + Y-Position + + + + general_settings_widget + + + Form + form of what? Does it mean a mode? Figure? Category? Phrase? Shape? Format? Configuration? Can't find it in the current configuration program for Ryzom on Steam + Form + + + + Language + Sprache + + + + English + Englisch + + + + French + Französisch + + + + German + Deutsch + + + + Hungarian + Ungarisch + + + + Save config file when quitting the game + Do we need the "file" mentioned? + Speichere Konfigurationsdatei beim Beenden des Spiels + + + + Advanced + is it "extended" or rather "progressed" like "further/better developed"? + Erweitert + + + + Slow down the game ( process low priority ) + Verlangsame das Spiel (niedrige Prozesspriorität) + + + + sound_settings_widget + + + Sound + Sound + + + + Enable sound + Aktiviere Sound + + + + Enable EAX + Aktiviere EAX Klangverarbeitung + + + + Enable FMod + Aktiviere FMod Audiotool + + + + Software sound buffer ( may increase FPS ) + Software Sound Buffer (kann FPS erhöhen) + + + + Sound tracks + is this really about audio channels? + Tonspuren + + + + 8 tracks + 8-track as in 8 audio channels, right? Or does it mean something else? + 8 Spuren + + + + sys_info_d3d_widget + + + Direct3D information + Direct3D-Information + + + + Direct3D + Direct3D + + + + Description + Beschreibung + + + + Driver + Treiber + + + + Driver version + Treiber-Version + + + + sys_info_opengl_widget + + + OpenGL information + OpenGL-Information + + + + OpenGL + OpenGL + + + + Vendor + Hersteller + + + + Renderer + Renderer + + + + Version + Version + + + + Extensions + Erweiterungen + + + + sys_info_widget + + + + System information + System-Information + + + + Operating system + Betriebssystem + + + + CPU + Prozessor + + + + Physical memory + Physikalischer Speicher + + + + Video device + seems to refer to the video card. Or is it something else? + Grafikkarte + + + + Video driver version + Grafiktreiber-Version + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts index 47ae13098..6de6db3cf 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts @@ -1,468 +1,484 @@ - + CClientConfigDialog - + Ryzom configuration - + Ryzom configuration - + Are you sure you want to quit without saving the configuration? - + Are you sure you want to quit without saving the configuration? CDisplaySettingsDetailsWidget - + Low - + Low - + Medium - + Medium - + Normal - + Normal - + High - + High - + Low (32 MB) - + Low (32 MB) - + Normal (64 MB) - + Normal (64 MB) - + High (128 MB) - + High (128 MB) + + + + CDisplaySettingsWidget + + + Auto + Auto CSoundSettingsWidget - + %1 tracks - + %1 tracks + + + + CSysInfoWidget + + + %1 MiB + %1 MiB client_config_dialog - + Ryzom Configuration - + Ryzom Configuration - - + + General - + General - + Category - + Category - + Display - + Display - + Display details - + Display details - + Display advanced - + Display advanced - + Sound - + Sound - + System information - + System information - + OpenGL information - + OpenGL information - + Direct3D information - + Direct3D information - + Apply - + Apply - + Default - + Default - + Play Ryzom - + Play Ryzom display_settings_advanced_widget - + Display advanced - + Display advanced - + Modify these settings only if you have trouble launching the game - + Modify these settings only if you have trouble launching the game - - Disable texture compression - + + Force texture compression + Force texture compression - + Disable vertex shaders - + Disable vertex shaders - + Disable AGP for vertices - + Disable AGP for vertices - + Disable pixel shaders - + Disable pixel shaders display_settings_details_widget - + Display details - + Display details - + Landscape - + Landscape - - - - + + + + Level of detail - + Level of detail - - - - + + + + Low - + Low - + Characters - + Characters - + FX - + FX - + Textures - + Textures display_settings_widget - + Display - + Display - + Driver - + Driver - + Specify if Ryzom is to be run in OpenGL or Direct3D. - + Specify if Ryzom is to be run in OpenGL or Direct3D. - + Auto - + Auto - + OpenGL - + OpenGL - + Direct3D - + Direct3D - + Parameters - + Parameters - + Specify if Ryzom is to be run in full screen or window mode: - + Specify if Ryzom is to be run in full screen or window mode: - + Full screen - + Full screen - + Specify a video mode - + Specify a video mode - + Windowed - + Windowed - + Width - + Width - + Height - + Height - + X position - + X position - + Y position - + Y position general_settings_widget - + Form - + Form - + Language - + Language - + English - + English - + French - + French - + German - + German - + Hungarian - + Hungarian - + Save config file when quitting the game - + Save config file when quitting the game - + Advanced - + Advanced - + Slow down the game ( process low priority ) - + Slow down the game ( process low priority ) sound_settings_widget - + Sound - + Sound - + Enable sound - + Enable sound - + Enable EAX - + Enable EAX - + Enable FMod - + Enable FMod - + Software sound buffer ( may increase FPS ) - + Software sound buffer ( may increase FPS ) - + Sound tracks - + Sound tracks - + 8 tracks - + 8 tracks sys_info_d3d_widget - + Direct3D information - + Direct3D information - + Direct3D - + Direct3D - + Description - + Description - + Driver - + Driver - + Driver version - + Driver version sys_info_opengl_widget - + OpenGL information - + OpenGL information - + OpenGL - + OpenGL - + Vendor - + Vendor - + Renderer - + Renderer - + Version - + Version - + Extensions - + Extensions sys_info_widget - - + + System information - + System information - + Operating system - + Operating system - + CPU - + CPU - + Physical memory - + Physical memory - + Video device - + Video device - + Video driver version - + Video driver version diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts new file mode 100644 index 000000000..e17d6d25f --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -0,0 +1,484 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + Confirguración de Ryzom + + + + Are you sure you want to quit without saving the configuration? + ¿Desea salir del juego sin guardar la configuración? + + + + CDisplaySettingsDetailsWidget + + + Low + Bajo + + + + Medium + Medio + + + + Normal + Normal + + + + High + Alto + + + + Low (32 MB) + Bajo (32 MB) + + + + Normal (64 MB) + Normal (64 MB) + + + + High (128 MB) + Alto (128 MB) + + + + CDisplaySettingsWidget + + + Auto + Automático + + + + CSoundSettingsWidget + + + %1 tracks + %1 pistas + + + + CSysInfoWidget + + + %1 MiB + %1 MiB + + + + client_config_dialog + + + Ryzom Configuration + Configuración de Ryzom + + + + + General + General + + + + Category + Categoría + + + + Display + Monitor + + + + Display details + Detalles de monitor + + + + Display advanced + Monitor avanzado + + + + Sound + Sonido + + + + System information + Información del sistema + + + + OpenGL information + Información OpenGL + + + + Direct3D information + Información Direct3D + + + + Apply + Aplicar + + + + Default + Por defecto + + + + Play Ryzom + Jugar Ryzom + + + + display_settings_advanced_widget + + + Display advanced + Monitor avanzado + + + + Modify these settings only if you have trouble launching the game + Modifique estos ajustes sólo si tiene problemas para iniciar el juego + + + + Force texture compression + Forzar compresión de texturas + + + + Disable vertex shaders + Desactivar vertex shader + + + + Disable AGP for vertices + Desactivar AGP para vértices + + + + Disable pixel shaders + Desactivar sombreador de píxel + + + + display_settings_details_widget + + + Display details + Mostrar detalles + + + + Landscape + Paisaje + + + + + + + Level of detail + Nivel de detalle + + + + + + + Low + Bajo + + + + Characters + Personajes + + + + FX + FX + + + + Textures + Texturas + + + + display_settings_widget + + + Display + Monitor + + + + Driver + Driver + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + + + + Auto + Automático + + + + OpenGL + OpenGL + + + + Direct3D + Direct3D + + + + Parameters + Parámetros + + + + Specify if Ryzom is to be run in full screen or window mode: + Especificar si Ryzom debe ser ejecutado en modo pantalla completa o en modo ventana: + + + + Full screen + Pantalla completa + + + + Specify a video mode + Especificar un modo de video + + + + Windowed + Ventana + + + + Width + Anchura + + + + Height + Altura + + + + X position + Posición X + + + + Y position + Posición Y + + + + general_settings_widget + + + Form + Forma + + + + Language + Idioma + + + + English + Inglés + + + + French + Francés + + + + German + Alemán + + + + Hungarian + Húngaro + + + + Save config file when quitting the game + Guardar archivo config al abandonar el juego + + + + Advanced + Avanzado + + + + Slow down the game ( process low priority ) + Realentizar el juego ( prioridad de procesamiento bajo) + + + + sound_settings_widget + + + Sound + Sonido + + + + Enable sound + Activar sonido + + + + Enable EAX + Activar EAX + + + + Enable FMod + Activar FMod + + + + Software sound buffer ( may increase FPS ) + Buffer de sonido software (puede aumentar los FPS ) + + + + Sound tracks + Pistas de sonido + + + + 8 tracks + 8 pistas + + + + sys_info_d3d_widget + + + Direct3D information + Información Direct3D + + + + Direct3D + Direct3D + + + + Description + Descripcción + + + + Driver + Driver + + + + Driver version + Versión del driver + + + + sys_info_opengl_widget + + + OpenGL information + Información OpenGL + + + + OpenGL + OpenGL + + + + Vendor + Distribuidor + + + + Renderer + Renderizador + + + + Version + Version + + + + Extensions + Extensión + + + + sys_info_widget + + + + System information + Información del sistema + + + + Operating system + Sistema operativo + + + + CPU + CPU + + + + Physical memory + Memoria física + + + + Video device + Dispositivo de video + + + + Video driver version + Versión del driver de video + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts index c79de4087..e03151f34 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts @@ -1,15 +1,15 @@ - + CClientConfigDialog - + Ryzom configuration Configuration de Ryzom - + Are you sure you want to quit without saving the configuration? Êtes-vous sûr de vouloir quitter sans enregistrer la configuration ? @@ -17,114 +17,130 @@ CDisplaySettingsDetailsWidget - + Low Faible - + Medium Moyen - + Normal Normal - + High Elevé - + Low (32 MB) Faible (32 Mo) - + Normal (64 MB) Normal (64 Mo) - + High (128 MB) Elevé (128 Mo) + + CDisplaySettingsWidget + + + Auto + Auto + + CSoundSettingsWidget - + %1 tracks %1 pistes + + CSysInfoWidget + + + %1 MiB + %1 Mio + + client_config_dialog - + Ryzom Configuration Configuration de Ryzom - - + + General Général - + Category Catégorie - + Display Affichage - + Display details Détails d'affichage - + Display advanced Affichage avancé - + Sound Son - + System information Informations systèmes - + OpenGL information Informations OpenGL - + Direct3D information Informations Direct3D - + Apply Appliquer - + Default Défaut - + Play Ryzom Jouer à Ryzom @@ -132,32 +148,36 @@ display_settings_advanced_widget - + Display advanced Affichage avancé - + Modify these settings only if you have trouble launching the game Modifiez ces paramètres uniquement si vous avez des problèmes pour lancer le jeu - Disable texture compression - Désactiver la compression des textures + Désactiver la compression des textures + + + + Force texture compression + Forcer la compression des textures - + Disable vertex shaders Désactiver les vertex shaders - + Disable AGP for vertices Désactiver l'AGP pour les vertices - + Disable pixel shaders Désactiver les pixel shaders @@ -165,43 +185,43 @@ display_settings_details_widget - + Display details Détails d'affichage - + Landscape Paysage - - - - + + + + Level of detail Niveau de détail - - - - + + + + Low Faible - + Characters Personnages - + FX Effets spéciaux - + Textures Textures @@ -209,77 +229,77 @@ display_settings_widget - + Display Affichage - + Driver Pilote - + Specify if Ryzom is to be run in OpenGL or Direct3D. Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. - + Auto Auto - + OpenGL OpenGL - + Direct3D Direct3D - + Parameters Paramètres - + Specify if Ryzom is to be run in full screen or window mode: Spécifier si Ryzom doit être lancé en mode plein écran ou fenêtré : - + Full screen Plein écran - + Specify a video mode Spécifier une résolution - + Windowed Fenêtré - + Width Largeur - + Height Hauteur - + X position Position X - + Y position Position Y @@ -287,47 +307,47 @@ general_settings_widget - + Form Formulaire - + Language Langue - + English Anglais - + French Français - + German Allemand - + Hungarian Hongrois - + Save config file when quitting the game Enregistrer le fichier de configuration quand on quitte le jeu - + Advanced Avancé - + Slow down the game ( process low priority ) Ralentir le jeu (priorité basse du processus) @@ -335,37 +355,37 @@ sound_settings_widget - + Sound Son - + Enable sound Activer le son - + Enable EAX Activer EAX - + Enable FMod Activer FMod - + Software sound buffer ( may increase FPS ) Tampons sonores logiciels (peut accroître la fluidité) - + Sound tracks Pistes audio - + 8 tracks 8 pistes @@ -373,27 +393,27 @@ sys_info_d3d_widget - + Direct3D information Informations Direct3D - + Direct3D Direct3D - + Description Description - + Driver Pilote - + Driver version Version du pilote @@ -401,32 +421,32 @@ sys_info_opengl_widget - + OpenGL information Informations OpenGL - + OpenGL OpenGL - + Vendor Vendeur - + Renderer Moteur de rendu - + Version Version - + Extensions Extensions @@ -434,33 +454,33 @@ sys_info_widget - - + + System information Informations systèmes - + Operating system Système d'exploitation - + CPU Processeur - + Physical memory Mémoire physique - + Video device Carte graphique - + Video driver version Version du driver de la carte graphique diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts index 846fd7640..6506f0fa5 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts @@ -1,15 +1,15 @@ - + CClientConfigDialog - + Ryzom configuration Ryom beállító - + Are you sure you want to quit without saving the configuration? Biztosan ki akar lépni mentés nélkül? @@ -17,49 +17,65 @@ CDisplaySettingsDetailsWidget - + Low Alacsony - + Medium Közepes - + Normal Normális - + High Magas - + Low (32 MB) Alacsony (32 MB) - + Normal (64 MB) Normális (64 MB) - + High (128 MB) Magas (128 MB) + + CDisplaySettingsWidget + + + Auto + Automatikus + + CSoundSettingsWidget - + %1 tracks %1 sáv + + CSysInfoWidget + + + %1 MiB + + + ClientConfigDialog @@ -429,68 +445,68 @@ client_config_dialog - + Ryzom Configuration Ryzom beállító - - + + General Ãltalános - + Category Kategória - + Display Megjelenítés - + Display details Megjelenítés részletek - + Display advanced Megjelenítés haladóknak - + Sound Hang - + System information Rendszer információk - + OpenGL information OpenGL információk - + Direct3D information Direct3D információk - + Apply Alkalmaz - + Default Alapbeállítások - + Play Ryzom Ryom indítása @@ -498,32 +514,36 @@ display_settings_advanced_widget - + Display advanced Megjelenítés haladóknak - + Modify these settings only if you have trouble launching the game Csak akkor változtasson ezeken a beállításokon ha nem tudja elindítani a játékot - Disable texture compression - Textúratömörítés kikapcsolása + Textúratömörítés kikapcsolása + + + + Force texture compression + - + Disable vertex shaders Csúcsárnyalók kikapcsolása - + Disable AGP for vertices AGP kikapcsolása a csúcsok számára - + Disable pixel shaders Képpont árnyalók kikapcsolása @@ -531,43 +551,43 @@ display_settings_details_widget - + Display details Megjelenítés részletek - + Landscape Terep - - - - + + + + Level of detail Részletesség - - - - + + + + Low Alacsony - + Characters Karakterek - + FX FX - + Textures Textúrák @@ -575,77 +595,77 @@ display_settings_widget - + Display Megjelenítés - + Driver Meghajtó - + Specify if Ryzom is to be run in OpenGL or Direct3D. Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. - + Auto Automatikus - + OpenGL - + Direct3D - + Parameters Paraméterek - + Specify if Ryzom is to be run in full screen or window mode: Határozza meg, hogy a Ryzom teljes képernyÅ‘s vagy ablakos üzemmódban fusson: - + Full screen Teljes képernyÅ‘ - + Specify a video mode Határozza meg a megjelenítési módot - + Windowed Ablakos - + Width Szélesség - + Height Magasság - + X position X helyzet - + Y position Y Helyzet @@ -653,47 +673,47 @@ general_settings_widget - + Form - + Language Nyelv - + English Angol - + French Francia - + German Német - + Hungarian Magyar - + Save config file when quitting the game Mentsük a beállításokat kilépéskor - + Advanced Haladó - + Slow down the game ( process low priority ) Játék lassítása ( alacsony prioritású folyamat ) @@ -701,37 +721,37 @@ sound_settings_widget - + Sound Hang - + Enable sound Hang bekapcsolása - + Enable EAX EAX bekapcsolása - + Enable FMod FMod bekapcsolása - + Software sound buffer ( may increase FPS ) Software-es hang tárolás ( növelheti az FPS-t ) - + Sound tracks Hangsávok - + 8 tracks 8 sáv @@ -739,27 +759,27 @@ sys_info_d3d_widget - + Direct3D information Direct3D információk - + Direct3D - + Description Leírás - + Driver Meghajtó - + Driver version Meghajtó verziószám @@ -767,32 +787,32 @@ sys_info_opengl_widget - + OpenGL information OpenGL információk - + OpenGL - + Vendor Szállító - + Renderer MegjelenítÅ‘ - + Version Verziószám - + Extensions Kiegészítések @@ -800,33 +820,33 @@ sys_info_widget - - + + System information Rendszer információk - + Operating system Alaprendszer - + CPU - + Physical memory Fizikai memória - + Video device MegjelenítÅ‘ eszköz - + Video driver version MegjelenítÅ‘ meghajtó verziószám diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts new file mode 100644 index 000000000..e7de55e5a --- /dev/null +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts @@ -0,0 +1,484 @@ + + + + + CClientConfigDialog + + + Ryzom configuration + + + + + Are you sure you want to quit without saving the configuration? + + + + + CDisplaySettingsDetailsWidget + + + Low + + + + + Medium + + + + + Normal + + + + + High + + + + + Low (32 MB) + + + + + Normal (64 MB) + + + + + High (128 MB) + + + + + CDisplaySettingsWidget + + + Auto + + + + + CSoundSettingsWidget + + + %1 tracks + + + + + CSysInfoWidget + + + %1 MiB + + + + + client_config_dialog + + + Ryzom Configuration + + + + + + General + + + + + Category + + + + + Display + + + + + Display details + + + + + Display advanced + + + + + Sound + + + + + System information + + + + + OpenGL information + + + + + Direct3D information + + + + + Apply + + + + + Default + + + + + Play Ryzom + + + + + display_settings_advanced_widget + + + Display advanced + + + + + Modify these settings only if you have trouble launching the game + + + + + Force texture compression + + + + + Disable vertex shaders + + + + + Disable AGP for vertices + + + + + Disable pixel shaders + + + + + display_settings_details_widget + + + Display details + + + + + Landscape + + + + + + + + Level of detail + + + + + + + + Low + + + + + Characters + + + + + FX + + + + + Textures + + + + + display_settings_widget + + + Display + + + + + Driver + + + + + Specify if Ryzom is to be run in OpenGL or Direct3D. + + + + + Auto + + + + + OpenGL + + + + + Direct3D + + + + + Parameters + + + + + Specify if Ryzom is to be run in full screen or window mode: + + + + + Full screen + + + + + Specify a video mode + + + + + Windowed + + + + + Width + + + + + Height + + + + + X position + + + + + Y position + + + + + general_settings_widget + + + Form + + + + + Language + + + + + English + + + + + French + + + + + German + + + + + Hungarian + + + + + Save config file when quitting the game + + + + + Advanced + + + + + Slow down the game ( process low priority ) + + + + + sound_settings_widget + + + Sound + + + + + Enable sound + + + + + Enable EAX + + + + + Enable FMod + + + + + Software sound buffer ( may increase FPS ) + + + + + Sound tracks + + + + + 8 tracks + + + + + sys_info_d3d_widget + + + Direct3D information + + + + + Direct3D + + + + + Description + + + + + Driver + + + + + Driver version + + + + + sys_info_opengl_widget + + + OpenGL information + + + + + OpenGL + + + + + Vendor + + + + + Renderer + + + + + Version + + + + + Extensions + + + + + sys_info_widget + + + + System information + + + + + Operating system + + + + + CPU + + + + + Physical memory + + + + + Video device + + + + + Video driver version + + + + diff --git a/code/ryzom/tools/client/client_config_qt/translations/translations.qrc b/code/ryzom/tools/client/client_config_qt/translations/translations.qrc index 49f9aa0a6..f90755537 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/translations.qrc +++ b/code/ryzom/tools/client/client_config_qt/translations/translations.qrc @@ -1,7 +1,10 @@ + ryzom_configuration_de.qm ryzom_configuration_en.qm + ryzom_configuration_es.qm ryzom_configuration_fr.qm ryzom_configuration_hu.qm + ryzom_configuration_ru.qm From 0be32d3a256ca3c0d6bfb1fa658db2a5740463f5 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:27:28 +0100 Subject: [PATCH 17/48] Fixed: UTF-8 encoding --HG-- branch : develop --- .../translations/ryzom_configuration_de.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index 1aa06dde2..a8f45f6e2 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -172,7 +172,7 @@ Disable AGP for vertices - Deaktiviere AGP für Vertexeckpunkte + Deaktiviere AGP für Vertexeckpunkte @@ -241,7 +241,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D. there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... - Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: @@ -266,7 +266,7 @@ Specify if Ryzom is to be run in full screen or window mode: - Wähle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: + Wähle, ob Ryzom im Vollbildmodus oder Fenstermodus laufen soll: @@ -276,7 +276,7 @@ Specify a video mode - Wähle eine Bildschirmauflösung + Wähle eine Bildschirmauflösung @@ -291,7 +291,7 @@ Height - Höhe + Höhe @@ -325,7 +325,7 @@ French - Französisch + Französisch @@ -352,7 +352,7 @@ Slow down the game ( process low priority ) - Verlangsame das Spiel (niedrige Prozesspriorität) + Verlangsame das Spiel (niedrige Prozesspriorität) @@ -380,7 +380,7 @@ Software sound buffer ( may increase FPS ) - Software Sound Buffer (kann FPS erhöhen) + Software Sound Buffer (kann FPS erhöhen) From 0a16b3b8dd2dd576d2cb96e58021d6cab138f60c Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 21:36:50 +0100 Subject: [PATCH 18/48] Changed: Sligthly changes --HG-- branch : develop --- .../display_settings_widget.ui | 4 +-- .../general_settings_widget.ui | 2 +- .../client_config_qt/sound_settings_widget.ui | 2 +- .../translations/ryzom_configuration_de.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_en.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_es.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_fr.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_hu.ts | 26 +++++++++++++++---- .../translations/ryzom_configuration_ru.ts | 8 +++--- 9 files changed, 113 insertions(+), 33 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui index 2e24b455f..2cf1176e8 100644 --- a/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/display_settings_widget.ui @@ -25,7 +25,7 @@ - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -78,7 +78,7 @@ - Specify a video mode + Specify a video mode: diff --git a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui index 5e7ef9793..722a195d9 100644 --- a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui @@ -97,7 +97,7 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) diff --git a/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui index 7ae6ef699..dc973292a 100644 --- a/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/sound_settings_widget.ui @@ -42,7 +42,7 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index a8f45f6e2..925d12bb0 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -238,10 +238,14 @@ Treiber - Specify if Ryzom is to be run in OpenGL or Direct3D. there's a period (full stop) at the end opposed to the other "specify"-sentece about full screen ending with a colon... - Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -275,8 +279,12 @@ + Specify a video mode: + + + Specify a video mode - Wähle eine Bildschirmauflösung + Wähle eine Bildschirmauflösung @@ -351,8 +359,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Verlangsame das Spiel (niedrige Prozesspriorität) + Verlangsame das Spiel (niedrige Prozesspriorität) @@ -379,8 +391,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Software Sound Buffer (kann FPS erhöhen) + Software Sound Buffer (kann FPS erhöhen) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts index 6de6db3cf..4bf3d8126 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_en.ts @@ -235,9 +235,13 @@ Driver - Specify if Ryzom is to be run in OpenGL or Direct3D. - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -271,8 +275,12 @@ + Specify a video mode: + Specify a video mode: + + Specify a video mode - Specify a video mode + Specify a video mode @@ -344,8 +352,12 @@ + Slow down the game (process low priority) + Slow down the game (process low priority) + + Slow down the game ( process low priority ) - Slow down the game ( process low priority ) + Slow down the game ( process low priority ) @@ -372,8 +384,12 @@ + Software sound buffer (may increase FPS) + Software sound buffer (may increase FPS) + + Software sound buffer ( may increase FPS ) - Software sound buffer ( may increase FPS ) + Software sound buffer ( may increase FPS ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts index e17d6d25f..b7498d3bc 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -235,9 +235,13 @@ Driver - Specify if Ryzom is to be run in OpenGL or Direct3D. - Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -271,8 +275,12 @@ + Specify a video mode: + + + Specify a video mode - Especificar un modo de video + Especificar un modo de video @@ -344,8 +352,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Realentizar el juego ( prioridad de procesamiento bajo) + Realentizar el juego ( prioridad de procesamiento bajo) @@ -372,8 +384,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Buffer de sonido software (puede aumentar los FPS ) + Buffer de sonido software (puede aumentar los FPS ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts index e03151f34..c60460881 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_fr.ts @@ -239,9 +239,13 @@ Pilote - Specify if Ryzom is to be run in OpenGL or Direct3D. - Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. + Spécifier si Ryzom doit utiliser OpenGL ou Direct3D. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + Spécifier si Ryzom doit utiliser OpenGL ou Direct3D : @@ -275,8 +279,12 @@ + Specify a video mode: + Spécifier une résolution : + + Specify a video mode - Spécifier une résolution + Spécifier une résolution @@ -348,9 +356,13 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) Ralentir le jeu (priorité basse du processus) + + Slow down the game ( process low priority ) + Ralentir le jeu (priorité basse du processus) + sound_settings_widget @@ -376,9 +388,13 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) Tampons sonores logiciels (peut accroître la fluidité) + + Software sound buffer ( may increase FPS ) + Tampons sonores logiciels (peut accroître la fluidité) + Sound tracks diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts index 6506f0fa5..6f31fb7b2 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_hu.ts @@ -605,9 +605,13 @@ Meghajtó - Specify if Ryzom is to be run in OpenGL or Direct3D. - Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. + Határozza meg, hogy a Ryzom OpenGL-t vagy Direct3D-t használjon. + + + + Specify if Ryzom is to be run in OpenGL or Direct3D: + @@ -641,8 +645,12 @@ + Specify a video mode: + + + Specify a video mode - Határozza meg a megjelenítési módot + Határozza meg a megjelenítési módot @@ -714,8 +722,12 @@ + Slow down the game (process low priority) + + + Slow down the game ( process low priority ) - Játék lassítása ( alacsony prioritású folyamat ) + Játék lassítása ( alacsony prioritású folyamat ) @@ -742,8 +754,12 @@ + Software sound buffer (may increase FPS) + + + Software sound buffer ( may increase FPS ) - Software-es hang tárolás ( növelheti az FPS-t ) + Software-es hang tárolás ( növelheti az FPS-t ) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts index e7de55e5a..2873880a5 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_ru.ts @@ -236,7 +236,7 @@ - Specify if Ryzom is to be run in OpenGL or Direct3D. + Specify if Ryzom is to be run in OpenGL or Direct3D: @@ -271,7 +271,7 @@ - Specify a video mode + Specify a video mode: @@ -344,7 +344,7 @@ - Slow down the game ( process low priority ) + Slow down the game (process low priority) @@ -372,7 +372,7 @@ - Software sound buffer ( may increase FPS ) + Software sound buffer (may increase FPS) From 7366a1f994f0086a2cb83ee300fc3eef0eb041e2 Mon Sep 17 00:00:00 2001 From: kervala Date: Mon, 14 Mar 2016 23:58:58 +0100 Subject: [PATCH 19/48] Changed: Minor changes (spaces replaced by tabs) --HG-- branch : develop --- .../gamedev/interfaces_v3/out_v2_appear.lua | 142 ++-- .../gamedev/interfaces_v3/out_v2_appear.xml | 703 +++++++++--------- 2 files changed, 425 insertions(+), 420 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index e74c15469..c962a7492 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -20,90 +20,93 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0; - for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end + local nbFyrosFirstNames = 0; + for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end - return fyrosFirstNames[math.random(nbFyrosFirstNames)] + return fyrosFirstNames[math.random(nbFyrosFirstNames)] end + function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + local nbFyrosLastNames = 0; + for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end - return fyrosLastNames[math.random(nbFyrosLastNames)] + return fyrosLastNames[math.random(nbFyrosLastNames)] end -- Matis function outgame:getMatisFirstName(sex) - local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); + -- 1 = male, 2 = female + local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); - if sex ~= nil then - dbNameSex = sex; - end + if sex ~= nil then + dbNameSex = sex; + end - local FirstName = "" - if tonumber( dbNameSex )== 1 then - local nbMatisMaleFirstNames = 0; - for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end - FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; - else - local nbMatisFemaleFirstNames = 0; - for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end - FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; - end + local FirstName = "" + if tonumber(dbNameSex) == 1 then + local nbMatisMaleFirstNames = 0; + for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; + else + local nbMatisFemaleFirstNames = 0; + for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; + end - return FirstName; + return FirstName; end function outgame:getMatisLastName() - local nbMatisLastNames = 0; - for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end + local nbMatisLastNames = 0; + for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end - return matisLastNames[math.random(nbMatisLastNames)] + return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0; - for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end + local nbTrykerFirstNames = 0; + for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end - return trykerFirstNames[math.random(nbTrykerFirstNames)] + return trykerFirstNames[math.random(nbTrykerFirstNames)] end + function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + local nbTrykerLastNames = 0; + for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end - return trykerLastNames[math.random(nbTrykerLastNames)] + return trykerLastNames[math.random(nbTrykerLastNames)] end -- Zoraï function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0; - for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end - local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; + local nbFirstNamesOne = 0; + for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; - local nbFirstNamesTwo = 0; - for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end - local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; + local nbFirstNamesTwo = 0; + for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; - return FirstNameOne .. "-" .. FirstNameTwo + return FirstNameOne .. "-" .. FirstNameTwo end function outgame:getZoraiLastName() - local nbLastNames = 0; - for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end + local nbLastNames = 0; + for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end - return zoraiLastNames[math.random(nbLastNames)] + return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() - local uiNameFull = getUI("ui:outgame:appear_name:name_full"); + local uiNameFull = getUI("ui:outgame:appear_name:name_full"); local uiGenText = getUI("ui:outgame:appear_name:eb"); local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); - local nameResult = ""; - local fullnameResult = ""; + local nameResult = ""; + local fullnameResult = ""; -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. -- fy ma try zo --> @@ -175,31 +178,35 @@ function outgame:procGenerateName() uiNameFull.hardtext = fullnameResult; - nameResult = string.gsub(nameResult, "'", ""); - nameResult = string.gsub(nameResult, " ", ""); - nameResult = string.gsub(nameResult, "-", ""); - nameResult = string.lower( nameResult ); - nameResult = nameResult:gsub("^%l", string.upper); - uiGenText.input_string = nameResult; + uiNameFull.hardtext = fullnameResult; + + nameResult = string.gsub(nameResult, "'", ""); + nameResult = string.gsub(nameResult, " ", ""); + nameResult = string.gsub(nameResult, "-", ""); + nameResult = string.lower( nameResult ); + nameResult = nameResult:gsub("^%l", string.upper); + uiGenText.input_string = nameResult; end + -- Name sex slider update. function outgame:procUpdateNameSexLabel() - local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } + local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex"); - local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); - tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); - tempstr = string.lower( tempstr ); - tempstr = (tempstr:gsub("^%l", string.upper)); + tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); + tempstr = string.lower(tempstr); + tempstr = (tempstr:gsub("^%l", string.upper)); - uiNameSexText.hardtext= tempstr; + uiNameSexText.hardtext = tempstr; end + -- Name race slider update. function outgame:procUpdateNameRaceLabel() - local nameRaceType = { "Fyros", "Matis", "Tryker", "Zoraï", "uiCP_Maraudeur" } + local nameRaceType = { "Fyros", "Matis", "Tryker", "Zoraï", "uiCP_Maraudeur" } local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); @@ -207,15 +214,15 @@ function outgame:procUpdateNameRaceLabel() local uiNameSubRace2Slider = getUI("ui:outgame:appear_name:name_sub_race2_slider"); local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); - -- Show/Hide sex slider - - uiNameGenerate.y = "-50" - if tonumber(dbNameRace) == 2 then - uiNameSexSlider.active = true; - uiNameGenerate.y = "-65" - else - uiNameSexSlider.active = false; - end + -- Show/Hide sex slider + + uiNameGenerate.y = "-50" + if tonumber(dbNameRace) == 2 then + uiNameSexSlider.active = true; + uiNameGenerate.y = "-65" + else + uiNameSexSlider.active = false; + end -- Show/Hide sub race slider if tonumber(dbNameRace) == 5 then @@ -227,8 +234,7 @@ function outgame:procUpdateNameRaceLabel() uiNameSubRace2Slider.active = false; end - - uiNameRaceText.hardtext= tostring(nameRaceType[tonumber(dbNameRace)]); + uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index afe180d79..a6cafbf17 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -49,14 +49,14 @@ - + - + - + @@ -195,15 +195,15 @@ - + - + - + @@ -229,12 +229,12 @@ - + - - + + @@ -242,19 +242,19 @@ - + - + - - - + + + @@ -300,7 +300,7 @@ - + @@ -317,7 +317,7 @@ - + @@ -329,13 +329,13 @@ - + - + @@ -351,9 +351,9 @@ - + - @@ -371,7 +371,7 @@ - @@ -383,13 +383,13 @@ - + - + @@ -409,14 +409,14 @@ - - + + - - + + @@ -612,8 +612,8 @@ - - + + @@ -635,7 +635,7 @@ - + @@ -668,14 +668,14 @@ - + - + - + @@ -722,7 +722,7 @@ - + @@ -730,10 +730,10 @@ - + - + @@ -745,13 +745,13 @@ - + - + @@ -761,19 +761,19 @@ - + - + - + - + - + @@ -804,48 +804,48 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + @@ -853,32 +853,32 @@ - + + value=switch(@0, 2, -151, -304, -457, -610)" /> - - + value=switch(@0, 0, -153, -306, -459, -612)" /> + + - + - + - + - + @@ -918,13 +918,13 @@ - - + + - + @@ -934,55 +934,55 @@ - + - + - + - + - - + + - + - + - + - + - + - - + + - + @@ -1054,16 +1054,16 @@ - - + + - + - + @@ -1074,8 +1074,8 @@ - - + + @@ -1097,18 +1097,18 @@ - + - + - + @@ -1120,7 +1120,7 @@ - + @@ -1188,10 +1188,10 @@ - + - + - + - - + @@ -1244,23 +1244,23 @@ - + - + - + - + - + @@ -1270,32 +1270,31 @@ - + - - - - - - + + + + - @@ -1432,10 +1431,10 @@ - + - + @@ -1443,20 +1442,20 @@ - + - + - - + @@ -1478,23 +1477,23 @@ - + - + - + - + - + @@ -1503,15 +1502,15 @@ - - - + + - - + + @@ -1531,7 +1530,7 @@ - + @@ -1539,14 +1538,14 @@ - - + + - - - - - + + + + + @@ -1564,23 +1563,23 @@ - + - + - + - + - + @@ -1591,23 +1590,23 @@ - + - + - + - + - + @@ -1624,31 +1623,31 @@ - + - + - + - + - + - + - + - + - + @@ -1696,16 +1695,16 @@ - + - - + + - + @@ -1714,12 +1713,12 @@ - + - + @@ -1741,35 +1740,35 @@ - + - - + + - + - - - + - + @@ -1779,10 +1778,10 @@ - + @@ -1792,10 +1791,10 @@ - + @@ -1805,10 +1804,10 @@ - + @@ -1839,7 +1838,7 @@ --> - + @@ -1848,27 +1847,27 @@ - - + + - + - + - + - + - + @@ -1878,189 +1877,189 @@ roty_factor="0.005" roty_limit_min="-30" roty_limit_max="30" dist_factor="0.005" dist_limit_min="1.5" dist_limit_max="2.5" > - + - - - + + + - - - + + + - - + - + - + - + - + - + - - + - + - + - + - + - - + - + - + - + - + - - + - + - + - + - - + - + - + - + - + - + - + - + - + - + + onclick_l="proc" params_l="proc_CP_menu|4" + /> + + - - - + - + - + - + - + - + @@ -2078,48 +2077,48 @@ --> - - + + - + - + - + - + - + - + - - - + + + - + - + @@ -2127,15 +2126,15 @@ - + @@ -2143,7 +2142,7 @@ @@ -2152,16 +2151,16 @@ - + - - + + @@ -2178,22 +2177,22 @@ - - + + - + - + - + - + @@ -2203,8 +2202,8 @@ - - + + @@ -2213,8 +2212,8 @@ - - + + @@ -2239,40 +2238,40 @@ - + - + - + @@ -2295,45 +2294,45 @@ - + - - + + - + - + - + - + - + - - - + + + - + - - + + - + @@ -2343,7 +2342,7 @@ line_maxw="450" multi_line="true" multi_line_space="0"/> - + @@ -2369,8 +2368,8 @@ - - + + @@ -2392,22 +2391,22 @@ - + - + - + - + - - + + - + - + @@ -2415,16 +2414,16 @@ - + - + - + - + @@ -2435,7 +2434,7 @@ color="255 255 255 255" col_pushed="255 255 255 255" col_over="0 0 0 0" onover="play_sound" params_over="name=specie_but_over" onclick_l="proc" params_l="anim_perso"/> - + - --> - + --> + @@ -2460,18 +2459,18 @@ - + - + - + - - + + - + - - + + - + + color="255 255 255 255" global_color="false" /> - - - - + + + + color="0 0 0 255" sizeref="wh" scale="true" global_color="false" /> @@ -2649,7 +2648,7 @@ - + @@ -2706,7 +2705,7 @@ - + @@ -2714,7 +2713,7 @@ - + From efac9c97b14b6db170bbb438497938f3cccac5f8 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:01:29 +0100 Subject: [PATCH 20/48] Changed: Use more explicit variable names --HG-- branch : develop --- .../gamedev/interfaces_v3/out_v2_appear.lua | 41 ++- .../gamedev/interfaces_v3/out_v2_appear.xml | 271 +++++++++--------- 2 files changed, 156 insertions(+), 156 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index c962a7492..76b187a5c 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -101,9 +101,9 @@ end function outgame:procGenerateName() local uiNameFull = getUI("ui:outgame:appear_name:name_full"); local uiGenText = getUI("ui:outgame:appear_name:eb"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); - local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); - local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); local nameResult = ""; local fullnameResult = ""; @@ -210,8 +210,8 @@ function outgame:procUpdateNameRaceLabel() local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); - local uiNameSubRaceSlider = getUI("ui:outgame:appear_name:name_sub_race_slider"); - local uiNameSubRace2Slider = getUI("ui:outgame:appear_name:name_sub_race2_slider"); + local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider"); + local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider"); local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); -- Show/Hide sex slider @@ -224,15 +224,15 @@ function outgame:procUpdateNameRaceLabel() uiNameSexSlider.active = false; end - -- Show/Hide sub race slider - if tonumber(dbNameRace) == 5 then - uiNameSubRaceSlider.active = true; - uiNameSubRace2Slider.active = true; - uiNameGenerate.y = "-105" - else - uiNameSubRaceSlider.active = false; - uiNameSubRace2Slider.active = false; - end + -- Show/Hide sub race slider + if tonumber(dbNameRace) == 5 then + uiNameSubRaceFirstNameSlider.active = true; + uiNameSubRaceLastNameSlider.active = true; + uiNameGenerate.y = "-105" + else + uiNameSubRaceFirstNameSlider.active = false; + uiNameSubRaceLastNameSlider.active = false; + end uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); end @@ -246,16 +246,15 @@ function outgame:procUpdateNameSubRaceLabel() local uiNameSubRaceText = getUI("ui:outgame:appear_name:name_sub_race_slider:name_race"); local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); - - uiNameSubRaceText.hardtext= tostring(nameSubRaceType[tonumber(dbNameSubRace)]); + uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); end -function outgame:procUpdateNameSubRace2Label() - local nameSubRace2Type = { "Fyros", "Matis", "Tryker", "Zoraï" } - local uiNameSubRace2Text = getUI("ui:outgame:appear_name:name_sub_race2_slider:name_race"); - local dbNameSubRace2 = getDbProp("UI:TEMP:NAME_SUB_RACE2"); +function outgame:procUpdateNameSubRaceLastNameLabel() + local nameSubRaceLastNameType = { "Fyros", "Matis", "Tryker", "Zoraï" } + local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race"); + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); - uiNameSubRace2Text.hardtext= tostring(nameSubRace2Type[tonumber(dbNameSubRace2)]); + uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]); end ------------------------------------------------------------------------------------------------------------ diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml index a6cafbf17..831e1966c 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.xml @@ -51,8 +51,8 @@ - - + + @@ -1307,120 +1307,121 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1533,8 +1534,8 @@ - - + + @@ -1649,29 +1650,29 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + From bb67a604e6c6d008093f9c1f032e32334b8c2bbb Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:03:06 +0100 Subject: [PATCH 21/48] Fixed: Wrong first and last names orders and some minor bugs --HG-- branch : develop --- .../gamedev/interfaces_v3/out_v2_appear.lua | 136 ++++++++---------- 1 file changed, 63 insertions(+), 73 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 76b187a5c..1c8a86342 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -108,75 +108,65 @@ function outgame:procGenerateName() local nameResult = ""; local fullnameResult = ""; - -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. - -- fy ma try zo --> - local lastName = "test" - local firstName = "test2" - if tonumber( dbNameRace ) == 1 then - -- Fyros - lastName = self:getFyrosLastName() - firstName = self:getFyrosFirstName() - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - elseif tonumber( dbNameRace ) == 2 then - -- Matis - lastName = self:getMatisLastName() - firstName = self:getMatisFirstName() - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - elseif tonumber( dbNameRace ) == 3 then - -- Tryker - lastName = self:getTrykerLastName() - firstName = self:getTrykerFirstName() - fullnameResult = firstName .. " " .. lastName - nameResult = firstName - elseif tonumber( dbNameRace ) == 4 then - -- Zorai - lastName = self:getZoraiLastName() - firstName = self:getZoraiFirstName() - fullnameResult = firstName .. " " .. lastName - nameResult = firstName - elseif tonumber( dbNameRace ) == 5 then - -- Maraudeurs - -- lastName - if tonumber(dbNameSubRace) == 1 then - -- Fyros - lastName = self:getFyrosLastName() - elseif tonumber( dbNameSubRace ) == 2 then - -- Matis F - lastName = self:getMatisLastName(2) - elseif tonumber( dbNameSubRace ) == 3 then - -- Matis M - lastName = self:getMatisLastName(1) - elseif tonumber( dbNameSubRace ) == 4 then - -- Tryker - lastName = self:getTrykerLastName() - elseif tonumber( dbNameSubRace ) == 5 then - -- Zorai - lastName = self:getZoraiLastName() - end - - -- firstName - if tonumber(dbNameSubRace2) == 1 then - -- Fyros - firstName = self:getFyrosFirstName() - elseif tonumber( dbNameSubRace2 ) == 2 then - -- Matis - firstName = self:getMatisFirstName() - firstName = self:getMatisFirstName() - elseif tonumber( dbNameSubRace2 ) == 3 then - -- Tryker - firstName = self:getTrykerFirstName() - elseif tonumber( dbNameSubRace2 ) == 4 then - -- Zorai - firstName = self:getZoraiFirstName() - end - - fullnameResult = lastName .. " " .. firstName - nameResult = firstName - end - - uiNameFull.hardtext = fullnameResult; + -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. + -- fy ma try zo --> + local firstName = "test2" + local lastName = "test" + if tonumber(dbNameRace) == 1 then + -- Fyros + firstName = self:getFyrosFirstName() + lastName = self:getFyrosLastName() + elseif tonumber(dbNameRace) == 2 then + -- Matis + firstName = self:getMatisFirstName() + lastName = self:getMatisLastName() + elseif tonumber(dbNameRace) == 3 then + -- Tryker + firstName = self:getTrykerFirstName() + lastName = self:getTrykerLastName() + elseif tonumber(dbNameRace) == 4 then + -- Zorai + firstName = self:getZoraiFirstName() + lastName = self:getZoraiLastName() + elseif tonumber(dbNameRace) == 5 then + -- Maraudeurs + + -- firstName + if tonumber(dbNameSubRaceFirstName) == 1 then + -- Fyros + firstName = self:getFyrosFirstName() + elseif tonumber(dbNameSubRaceFirstName) == 2 then + -- Matis M + firstName = self:getMatisFirstName(1) + elseif tonumber(dbNameSubRaceFirstName) == 3 then + -- Matis F + firstName = self:getMatisFirstName(2) + elseif tonumber(dbNameSubRaceFirstName) == 4 then + -- Tryker + firstName = self:getTrykerFirstName() + elseif tonumber(dbNameSubRaceFirstName) == 5 then + -- Zorai + firstName = self:getZoraiFirstName() + end + + -- lastName + if tonumber(dbNameSubRaceLastName) == 1 then + -- Fyros + lastName = self:getFyrosLastName() + elseif tonumber(dbNameSubRaceLastName) == 2 then + -- Matis + lastName = self:getMatisLastName() + elseif tonumber(dbNameSubRaceLastName) == 3 then + -- Tryker + lastName = self:getTrykerLastName() + elseif tonumber(dbNameSubRaceLastName) == 4 then + -- Zorai + lastName = self:getZoraiLastName() + end + end + + fullnameResult = firstName .. " " .. lastName + nameResult = firstName uiNameFull.hardtext = fullnameResult; @@ -241,10 +231,10 @@ end local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper); local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper); -function outgame:procUpdateNameSubRaceLabel() - local nameSubRaceType = { "Fyros", matisF, matisM, "Tryker", "Zoraï" } - local uiNameSubRaceText = getUI("ui:outgame:appear_name:name_sub_race_slider:name_race"); - local dbNameSubRace = getDbProp("UI:TEMP:NAME_SUB_RACE"); +function outgame:procUpdateNameSubRaceFirstNameLabel() + local nameSubRaceFirstNameType = { "Fyros", matisM, matisF, "Tryker", "Zoraï" } + local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race"); + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); end From 61c33024b6f32bbc3e9d26409c7013e65051c115 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 00:06:06 +0100 Subject: [PATCH 22/48] Changed: Updated Configuration translations --HG-- branch : develop --- .../translations/ryzom_configuration_de.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts index 925d12bb0..2efd55ed3 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_de.ts @@ -216,8 +216,7 @@ FX - Special effects? - FX + FX Effekte @@ -245,7 +244,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D: - + Wähle, ob Ryzom in OpenGL oder Direct3D laufen soll: @@ -280,7 +279,7 @@ Specify a video mode: - + Wähle eine Bildschirmauflösung: Specify a video mode @@ -317,8 +316,7 @@ Form - form of what? Does it mean a mode? Figure? Category? Phrase? Shape? Format? Configuration? Can't find it in the current configuration program for Ryzom on Steam - Form + Formblatt @@ -360,7 +358,7 @@ Slow down the game (process low priority) - + Verlangsame Spiel (niedrige Prozesspriorität) Slow down the game ( process low priority ) @@ -392,7 +390,7 @@ Software sound buffer (may increase FPS) - + Software Sound Buffer (kann FPS erhöhen) Software sound buffer ( may increase FPS ) @@ -499,7 +497,7 @@ Video device seems to refer to the video card. Or is it something else? - Grafikkarte + Grafikkarte From 888c21cd975da3fb8098981ea01049f1f26e85bf Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:30:14 +0100 Subject: [PATCH 23/48] Changed: Fix typo --HG-- branch : develop --- code/web/public_php/ams/inc/login.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/web/public_php/ams/inc/login.php b/code/web/public_php/ams/inc/login.php index 753873f38..d813bfd00 100644 --- a/code/web/public_php/ams/inc/login.php +++ b/code/web/public_php/ams/inc/login.php @@ -1,6 +1,6 @@ Date: Tue, 15 Mar 2016 12:30:52 +0100 Subject: [PATCH 24/48] Changed: Updated Configuration translations --HG-- branch : develop --- .../translations/ryzom_configuration_es.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts index b7498d3bc..97dba7b82 100644 --- a/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts +++ b/code/ryzom/tools/client/client_config_qt/translations/ryzom_configuration_es.ts @@ -241,7 +241,7 @@ Specify if Ryzom is to be run in OpenGL or Direct3D: - + Especificar si Ryzom debe ser ejecutado con OpenGL o Direct3D: @@ -276,7 +276,7 @@ Specify a video mode: - + Especificar un modo de video: Specify a video mode @@ -353,7 +353,7 @@ Slow down the game (process low priority) - + Realentizar el juego (prioridad de procesamiento bajo) Slow down the game ( process low priority ) @@ -385,7 +385,7 @@ Software sound buffer (may increase FPS) - + Buffer de sonido software (puede aumentar los FPS) Software sound buffer ( may increase FPS ) From 2dd97967ff15df10cc2804ee3e899216a2a9ceba Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:31:20 +0100 Subject: [PATCH 25/48] Changed: Remove Hungarian because this language is not supported by Ryzom --HG-- branch : develop --- .../tools/client/client_config_qt/general_settings_widget.ui | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui index 722a195d9..20e7a394b 100644 --- a/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui +++ b/code/ryzom/tools/client/client_config_qt/general_settings_widget.ui @@ -43,11 +43,6 @@ German - - - Hungarian - - From c3d3024507f91cce1c2738c626f6b94c3613abdc Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:34:45 +0100 Subject: [PATCH 26/48] Changed: Remived useless semicolons --HG-- branch : develop --- .../gamedev/interfaces_v3/out_v2_appear.lua | 191 +++++++++--------- 1 file changed, 96 insertions(+), 95 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 1c8a86342..95d2f2354 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -3,8 +3,8 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. -if (outgame==nil) then - outgame= {}; +if (outgame == nil) then + outgame = {} end @@ -20,14 +20,14 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0; + local nbFyrosFirstNames = 0 for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end return fyrosFirstNames[math.random(nbFyrosFirstNames)] end function outgame:getFyrosLastName() - local nbFyrosLastNames = 0; + local nbFyrosLastNames = 0 for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end return fyrosLastNames[math.random(nbFyrosLastNames)] @@ -36,29 +36,29 @@ end -- Matis function outgame:getMatisFirstName(sex) -- 1 = male, 2 = female - local dbNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local dbNameSex = getDbProp("UI:TEMP:NAME_SEX") if sex ~= nil then - dbNameSex = sex; + dbNameSex = sex end local FirstName = "" if tonumber(dbNameSex) == 1 then - local nbMatisMaleFirstNames = 0; + local nbMatisMaleFirstNames = 0 for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end - FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]; + FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)] else - local nbMatisFemaleFirstNames = 0; + local nbMatisFemaleFirstNames = 0 for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end - FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]; + FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)] end - return FirstName; + return FirstName end function outgame:getMatisLastName() - local nbMatisLastNames = 0; + local nbMatisLastNames = 0 for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end return matisLastNames[math.random(nbMatisLastNames)] @@ -66,14 +66,14 @@ end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0; + local nbTrykerFirstNames = 0 for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end return trykerFirstNames[math.random(nbTrykerFirstNames)] end function outgame:getTrykerLastName() - local nbTrykerLastNames = 0; + local nbTrykerLastNames = 0 for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end return trykerLastNames[math.random(nbTrykerLastNames)] @@ -81,32 +81,33 @@ end -- Zoraï function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0; + local nbFirstNamesOne = 0 for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end - local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]; + local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)] - local nbFirstNamesTwo = 0; + local nbFirstNamesTwo = 0 for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end - local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]; + local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)] return FirstNameOne .. "-" .. FirstNameTwo end + function outgame:getZoraiLastName() - local nbLastNames = 0; + local nbLastNames = 0 for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end return zoraiLastNames[math.random(nbLastNames)] end function outgame:procGenerateName() - local uiNameFull = getUI("ui:outgame:appear_name:name_full"); - local uiGenText = getUI("ui:outgame:appear_name:eb"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); - local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); - local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); + local uiNameFull = getUI("ui:outgame:appear_name:name_full") + local uiGenText = getUI("ui:outgame:appear_name:eb") + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE") + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME") + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME") - local nameResult = ""; - local fullnameResult = ""; + local nameResult = "" + local fullnameResult = "" -- Look at outgame:procUpdateNameRaceLabel() for the "race" list. -- fy ma try zo --> @@ -168,92 +169,92 @@ function outgame:procGenerateName() fullnameResult = firstName .. " " .. lastName nameResult = firstName - uiNameFull.hardtext = fullnameResult; + uiNameFull.hardtext = fullnameResult - nameResult = string.gsub(nameResult, "'", ""); - nameResult = string.gsub(nameResult, " ", ""); - nameResult = string.gsub(nameResult, "-", ""); - nameResult = string.lower( nameResult ); - nameResult = nameResult:gsub("^%l", string.upper); - uiGenText.input_string = nameResult; + nameResult = string.gsub(nameResult, "'", "") + nameResult = string.gsub(nameResult, " ", "") + nameResult = string.gsub(nameResult, "-", "") + nameResult = string.lower(nameResult) + nameResult = nameResult:gsub("^%l", string.upper) + uiGenText.input_string = nameResult end -- Name sex slider update. function outgame:procUpdateNameSexLabel() local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" } - local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex"); - local uiNameSex = getDbProp("UI:TEMP:NAME_SEX"); + local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex") + local uiNameSex = getDbProp("UI:TEMP:NAME_SEX") - tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])); - tempstr = string.lower(tempstr); - tempstr = (tempstr:gsub("^%l", string.upper)); + tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)])) + tempstr = string.lower(tempstr) + tempstr = (tempstr:gsub("^%l", string.upper)) - uiNameSexText.hardtext = tempstr; + uiNameSexText.hardtext = tempstr end -- Name race slider update. function outgame:procUpdateNameRaceLabel() local nameRaceType = { "Fyros", "Matis", "Tryker", "Zoraï", "uiCP_Maraudeur" } - local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race"); - local dbNameRace = getDbProp("UI:TEMP:NAME_RACE"); + local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race") + local dbNameRace = getDbProp("UI:TEMP:NAME_RACE") - local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider"); + local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider") - local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider"); - local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider"); + local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider") + local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider") - local uiNameGenerate = getUI("ui:outgame:appear_name:generate"); + local uiNameGenerate = getUI("ui:outgame:appear_name:generate") -- Show/Hide sex slider uiNameGenerate.y = "-50" if tonumber(dbNameRace) == 2 then - uiNameSexSlider.active = true; + uiNameSexSlider.active = true uiNameGenerate.y = "-65" else - uiNameSexSlider.active = false; + uiNameSexSlider.active = false end -- Show/Hide sub race slider if tonumber(dbNameRace) == 5 then - uiNameSubRaceFirstNameSlider.active = true; - uiNameSubRaceLastNameSlider.active = true; + uiNameSubRaceFirstNameSlider.active = true + uiNameSubRaceLastNameSlider.active = true uiNameGenerate.y = "-105" else - uiNameSubRaceFirstNameSlider.active = false; - uiNameSubRaceLastNameSlider.active = false; + uiNameSubRaceFirstNameSlider.active = false + uiNameSubRaceLastNameSlider.active = false end - uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]); + uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)]) end -local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper); -local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper); +local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper) +local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper) function outgame:procUpdateNameSubRaceFirstNameLabel() local nameSubRaceFirstNameType = { "Fyros", matisM, matisF, "Tryker", "Zoraï" } - local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race"); - local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME"); + local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race") + local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME") - uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]); + uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)]) end function outgame:procUpdateNameSubRaceLastNameLabel() local nameSubRaceLastNameType = { "Fyros", "Matis", "Tryker", "Zoraï" } - local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race"); - local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME"); + local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race") + local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME") - uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]); + uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)]) end ------------------------------------------------------------------------------------------------------------ -- called to construct icons function outgame:activePackElement(id, icon) - local uiDesc = getUI("ui:outgame:appear:job_options:options:desc"); - uiDesc['ico' .. tostring(id)].active= true; - uiDesc['ico' .. tostring(id)].texture= icon; - uiDesc['ico' .. tostring(id) .. 'txt'].active= true; + local uiDesc = getUI("ui:outgame:appear:job_options:options:desc") + uiDesc['ico' .. tostring(id)].active = true + uiDesc['ico' .. tostring(id)].texture = icon + uiDesc['ico' .. tostring(id) .. 'txt'].active = true end @@ -261,13 +262,13 @@ end -- called to construct pack text function outgame:setPackJobText(id, spec) -- Set Pack content - local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id); - uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec); + local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id) + uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec) -- Set specialization text - local uiResText = getUI("ui:outgame:appear:job_options:options:result:res"); + local uiResText = getUI("ui:outgame:appear:job_options:options:result:res") if(spec==2) then - uiResText.hardtext= "uiCP_Res_" .. id; + uiResText.hardtext= "uiCP_Res_" .. id end end @@ -275,63 +276,63 @@ end -- called to construct pack function outgame:buildActionPack() - local uiDesc = getUI("ui:outgame:appear:job_options:options:desc"); + local uiDesc = getUI("ui:outgame:appear:job_options:options:desc") if (uiDesc==nil) then - return; + return end -- Reset All for i = 1,20 do - uiDesc['ico' .. tostring(i)].active= false; - uiDesc['ico' .. tostring(i) .. 'txt'].active= false; + uiDesc['ico' .. tostring(i)].active = false + uiDesc['ico' .. tostring(i) .. 'txt'].active = false end -- Build Default Combat - self:activePackElement(1, 'f1.tga'); -- Dagger - self:activePackElement(2, 'f2.tga'); -- Accurate Attack + self:activePackElement(1, 'f1.tga') -- Dagger + self:activePackElement(2, 'f2.tga') -- Accurate Attack -- Build Default Magic - self:activePackElement(6, 'm2.tga'); -- Gloves - self:activePackElement(7, 'm1.tga'); -- Acid + self:activePackElement(6, 'm2.tga') -- Gloves + self:activePackElement(7, 'm1.tga') -- Acid -- Build Default Forage - self:activePackElement(11, 'g1.tga'); -- Forage Tool - self:activePackElement(12, 'g2.tga'); -- Basic Extract + self:activePackElement(11, 'g1.tga') -- Forage Tool + self:activePackElement(12, 'g2.tga') -- Basic Extract -- Build Default Craft - self:activePackElement(16, 'c2.tga'); -- Craft Tool - self:activePackElement(17, 'c1.tga'); -- 50 raw mat - self:activePackElement(18, 'c3.tga'); -- Craft Root - self:activePackElement(19, 'c4.tga'); -- Boots Plan + self:activePackElement(16, 'c2.tga') -- Craft Tool + self:activePackElement(17, 'c1.tga') -- 50 raw mat + self:activePackElement(18, 'c3.tga') -- Craft Root + self:activePackElement(19, 'c4.tga') -- Boots Plan -- Build Option if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then - self:activePackElement(3, 'f3.tga'); -- Increase damage + self:activePackElement(3, 'f3.tga') -- Increase damage elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then - self:activePackElement(8, 'm5.tga'); -- Fear + self:activePackElement(8, 'm5.tga') -- Fear elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then - self:activePackElement(13, 'g3.tga'); -- Basic Prospection + self:activePackElement(13, 'g3.tga') -- Basic Prospection elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then - self:activePackElement(20, 'c6.tga'); -- Gloves Plan - self:activePackElement(17, 'c5.tga'); -- Replace 17, with 100x RawMat + self:activePackElement(20, 'c6.tga') -- Gloves Plan + self:activePackElement(17, 'c5.tga') -- Replace 17, with 100x RawMat end -- Reset Text - self:setPackJobText('F', 1); - self:setPackJobText('M', 1); - self:setPackJobText('G', 1); - self:setPackJobText('C', 1); + self:setPackJobText('F', 1) + self:setPackJobText('M', 1) + self:setPackJobText('G', 1) + self:setPackJobText('C', 1) -- Set correct text for specalized version if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then - self:setPackJobText('F', 2); + self:setPackJobText('F', 2) elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then - self:setPackJobText('M', 2); + self:setPackJobText('M', 2) elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then - self:setPackJobText('G', 2); + self:setPackJobText('G', 2) elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then - self:setPackJobText('C', 2); + self:setPackJobText('C', 2) end end From 61934be39a660e89e3d8b22ae2aaa4e5a942291d Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:35:47 +0100 Subject: [PATCH 27/48] =?UTF-8?q?Fixed:=20Fyros=20and=20Matis=20are=20usin?= =?UTF-8?q?g=20first=20name=20first=20while=20Trykers=20and=20Zora=C3=AFs?= =?UTF-8?q?=20are=20using=20last=20name=20first?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : develop --- .../data/gamedev/interfaces_v3/out_v2_appear.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index 95d2f2354..fd3116aee 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -113,22 +113,29 @@ function outgame:procGenerateName() -- fy ma try zo --> local firstName = "test2" local lastName = "test" + + -- Fyros and Matis are using "first name, last name" order + -- Trykers and Zoraïs are using "last name, first name" order if tonumber(dbNameRace) == 1 then -- Fyros firstName = self:getFyrosFirstName() lastName = self:getFyrosLastName() + fullnameResult = firstName .. " " .. lastName elseif tonumber(dbNameRace) == 2 then -- Matis firstName = self:getMatisFirstName() lastName = self:getMatisLastName() + fullnameResult = firstName .. " " .. lastName elseif tonumber(dbNameRace) == 3 then -- Tryker firstName = self:getTrykerFirstName() lastName = self:getTrykerLastName() + fullnameResult = lastName .. " " .. firstName elseif tonumber(dbNameRace) == 4 then -- Zorai firstName = self:getZoraiFirstName() lastName = self:getZoraiLastName() + fullnameResult = lastName .. " " .. firstName elseif tonumber(dbNameRace) == 5 then -- Maraudeurs @@ -164,9 +171,11 @@ function outgame:procGenerateName() -- Zorai lastName = self:getZoraiLastName() end + + fullnameResult = firstName .. " " .. lastName end - fullnameResult = firstName .. " " .. lastName + -- always use first name for character name nameResult = firstName uiNameFull.hardtext = fullnameResult From f1b882c0f38c4ad567c5b49725f8de0b65860212 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 12:36:21 +0100 Subject: [PATCH 28/48] Changed: Removed useless dependencies on DirectX --HG-- branch : develop --- code/nel/src/3d/driver/opengl/CMakeLists.txt | 2 -- code/nel/src/3d/driver/opengles/CMakeLists.txt | 2 -- code/nel/src/misc/CMakeLists.txt | 6 ------ 3 files changed, 10 deletions(-) diff --git a/code/nel/src/3d/driver/opengl/CMakeLists.txt b/code/nel/src/3d/driver/opengl/CMakeLists.txt index edff05d2a..21d790668 100644 --- a/code/nel/src/3d/driver/opengl/CMakeLists.txt +++ b/code/nel/src/3d/driver/opengl/CMakeLists.txt @@ -40,8 +40,6 @@ NL_ADD_LIB_SUFFIX(${NLDRV_OGL_LIB}) NL_ADD_RUNTIME_FLAGS(${NLDRV_OGL_LIB}) IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(${NLDRV_OGL_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) ADD_DEFINITIONS(-DDRIVER_OPENGL_EXPORTS) ENDIF() diff --git a/code/nel/src/3d/driver/opengles/CMakeLists.txt b/code/nel/src/3d/driver/opengles/CMakeLists.txt index e6d10fae5..8cac2dfea 100644 --- a/code/nel/src/3d/driver/opengles/CMakeLists.txt +++ b/code/nel/src/3d/driver/opengles/CMakeLists.txt @@ -38,8 +38,6 @@ NL_ADD_LIB_SUFFIX(${NLDRV_OGLES_LIB}) NL_ADD_RUNTIME_FLAGS(${NLDRV_OGLES_LIB}) IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(${NLDRV_OGLES_LIB} ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY}) ADD_DEFINITIONS(/DDRIVER_OPENGLES_EXPORTS) ENDIF() diff --git a/code/nel/src/misc/CMakeLists.txt b/code/nel/src/misc/CMakeLists.txt index fb6752982..53993161c 100644 --- a/code/nel/src/misc/CMakeLists.txt +++ b/code/nel/src/misc/CMakeLists.txt @@ -201,12 +201,6 @@ ELSE(WITH_STATIC OR WIN32) TARGET_LINK_LIBRARIES(nelmisc ${PNG_LIBRARY}) ENDIF(WITH_STATIC OR WIN32) -# For DirectInput (di_event_emitter) -IF(WIN32) - INCLUDE_DIRECTORIES(BEFORE ${DXSDK_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(nelmisc ${DXSDK_DINPUT_LIBRARY} ${DXSDK_GUID_LIBRARY} winmm dbghelp) -ENDIF(WIN32) - IF(UNIX) TARGET_LINK_LIBRARIES(nelmisc -lc -ldl) IF(NOT APPLE) From d113bb7b1022a33cfc8f0b30950929566281a75f Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 17:44:21 +0100 Subject: [PATCH 29/48] Changed: Search client_default.cfg also in ETC_RYZOM_PREFIX --HG-- branch : develop --- code/ryzom/client/src/client_cfg.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/ryzom/client/src/client_cfg.cpp b/code/ryzom/client/src/client_cfg.cpp index e59dd6886..48e187263 100644 --- a/code/ryzom/client/src/client_cfg.cpp +++ b/code/ryzom/client/src/client_cfg.cpp @@ -2223,6 +2223,7 @@ bool CClientConfig::getDefaultConfigLocation(std::string& p_name) const #endif std::string currentPath = CPath::standardizePath(CPath::getCurrentPath()); + std::string etcPath = CPath::standardizePath(getRyzomEtcPrefix()); // look in the current working directory first if (CFile::isExists(currentPath + defaultConfigFileName)) @@ -2232,13 +2233,14 @@ bool CClientConfig::getDefaultConfigLocation(std::string& p_name) const else if (CFile::isExists(Args.getStartupPath() + defaultConfigFileName)) p_name = Args.getStartupPath() + defaultConfigFileName; - // look in prefix path + // look in application directory else if (CFile::isExists(defaultConfigPath + defaultConfigFileName)) p_name = defaultConfigPath + defaultConfigFileName; - // if some client_default.cfg was found return true - if (p_name.size()) - return true; + // look in etc prefix path + else if (!etcPath.empty() && CFile::isExists(etcPath + defaultConfigFileName)) + p_name = etcPath + defaultConfigFileName; - return false; + // if some client_default.cfg was found return true + return !p_name.empty(); } From 5121cdb7d48546282d7e3bf07f9e6b33c2535998 Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 15 Mar 2016 17:55:58 +0100 Subject: [PATCH 30/48] Changed: Use # in Lua to get the size of an array --HG-- branch : develop --- .../gamedev/interfaces_v3/out_v2_appear.lua | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua index fd3116aee..43727200a 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua @@ -20,15 +20,13 @@ end -- Fyros function outgame:getFyrosFirstName() - local nbFyrosFirstNames = 0 - for _ in pairs(fyrosFirstNames) do nbFyrosFirstNames = nbFyrosFirstNames + 1 end + local nbFyrosFirstNames = #fyrosFirstNames return fyrosFirstNames[math.random(nbFyrosFirstNames)] end function outgame:getFyrosLastName() - local nbFyrosLastNames = 0 - for _ in pairs(fyrosLastNames) do nbFyrosLastNames = nbFyrosLastNames + 1 end + local nbFyrosLastNames = #fyrosLastNames return fyrosLastNames[math.random(nbFyrosLastNames)] end @@ -44,12 +42,10 @@ function outgame:getMatisFirstName(sex) local FirstName = "" if tonumber(dbNameSex) == 1 then - local nbMatisMaleFirstNames = 0 - for _ in pairs(matisMaleFirstNames) do nbMatisMaleFirstNames = nbMatisMaleFirstNames + 1 end + local nbMatisMaleFirstNames = #matisMaleFirstNames FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)] else - local nbMatisFemaleFirstNames = 0 - for _ in pairs(matisFemaleFirstNames) do nbMatisFemaleFirstNames = nbMatisFemaleFirstNames + 1 end + local nbMatisFemaleFirstNames = #matisFemaleFirstNames FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)] end @@ -57,44 +53,37 @@ function outgame:getMatisFirstName(sex) end function outgame:getMatisLastName() - - local nbMatisLastNames = 0 - for _ in pairs(matisLastNames) do nbMatisLastNames = nbMatisLastNames + 1 end + local nbMatisLastNames = #matisLastNames return matisLastNames[math.random(nbMatisLastNames)] end -- Tryker function outgame:getTrykerFirstName() - local nbTrykerFirstNames = 0 - for _ in pairs(trykerFirstNames) do nbTrykerFirstNames = nbTrykerFirstNames + 1 end + local nbTrykerFirstNames = #trykerFirstNames return trykerFirstNames[math.random(nbTrykerFirstNames)] end function outgame:getTrykerLastName() - local nbTrykerLastNames = 0 - for _ in pairs(trykerLastNames) do nbTrykerLastNames = nbTrykerLastNames + 1 end + local nbTrykerLastNames = #trykerLastNames return trykerLastNames[math.random(nbTrykerLastNames)] end -- Zoraï function outgame:getZoraiFirstName() - local nbFirstNamesOne = 0 - for _ in pairs(zoraiFirstNamesOne) do nbFirstNamesOne = nbFirstNamesOne + 1 end + local nbFirstNamesOne = #zoraiFirstNamesOne local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)] - local nbFirstNamesTwo = 0 - for _ in pairs(zoraiFirstNamesTwo) do nbFirstNamesTwo = nbFirstNamesTwo + 1 end + local nbFirstNamesTwo = #zoraiFirstNamesTwo local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)] return FirstNameOne .. "-" .. FirstNameTwo end function outgame:getZoraiLastName() - local nbLastNames = 0 - for _ in pairs(zoraiLastNames) do nbLastNames = nbLastNames + 1 end + local nbLastNames = #zoraiLastNames return zoraiLastNames[math.random(nbLastNames)] end From c39190b38dabb28d6373e8412c8de2b4bc914cdf Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:12:34 +0100 Subject: [PATCH 31/48] Changed: Use same algorithm as before Windows unicodes fixes (try to open the file instead of checking its attributes) --HG-- branch : develop --- code/nel/src/misc/path.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/nel/src/misc/path.cpp b/code/nel/src/misc/path.cpp index b5375e005..b4057e315 100644 --- a/code/nel/src/misc/path.cpp +++ b/code/nel/src/misc/path.cpp @@ -1963,14 +1963,15 @@ bool CFile::createEmptyFile (const std::string& filename) bool CFile::fileExists (const string& filename) { //H_AUTO(FileExists); -#ifdef NL_OS_WINDOWS - DWORD attr = GetFileAttributesW(utf8ToWide(filename)); - // attributes are valid and file is not a directory - if (attr == INVALID_FILE_ATTRIBUTES || (attr & FILE_ATTRIBUTE_DIRECTORY)) return false; - return true; -#else - return access(filename.c_str(), R_OK) != -1; -#endif + FILE *file = nlfopen(filename, "rb"); + + if (file) + { + fclose(file); + return true; + } + + return false; } From 8bc243ffe12925d6eed161d97b492e68326eecab Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:13:07 +0100 Subject: [PATCH 32/48] Changed: Removed some semicolons in Lua when useless --HG-- branch : develop --- .../gamedev/interfaces_v3/bg_downloader.lua | 2 +- .../gamedev/interfaces_v3/bot_chat_v4.lua | 58 +++++++++---------- .../data/gamedev/interfaces_v3/help.lua | 22 +++---- .../ring_access_point_filter.lua | 2 +- .../data/gamedev/interfaces_v3/taskbar.lua | 24 ++++---- .../data/gamedev/interfaces_v3/webig.lua | 2 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua b/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua index c2569b301..161012d9e 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua @@ -32,7 +32,7 @@ end ------------------------------------------------------------------------------------------------------------ function bgdownloader:setIcon(icon) - local bm = self:getProgressGroup():find("bm"); + local bm = self:getProgressGroup():find("bm") if icon == "" then bm.active = false else diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua b/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua index 2b9d8fb3c..f0b3ec913 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (game==nil) then - game= {}; + game = {} end @@ -12,14 +12,14 @@ end -- called to construct guild flags background in the modal window function game:bcCreateGuildInitFlags() - local ui = getUICaller(); + local ui = getUICaller() for i = 0,14 do - local uiBack = getUI(getUIId(ui) .. ':back' .. i); - uiBack.image1.back = i+1; - uiBack.image1.symbol = 0; - uiBack.image1.color1 = runExpr('makeRGB(255,255,255)'); - uiBack.image1.color2 = runExpr('makeRGB(0,0,0)'); + local uiBack = getUI(getUIId(ui) .. ':back' .. i) + uiBack.image1.back = i+1 + uiBack.image1.symbol = 0 + uiBack.image1.color1 = runExpr('makeRGB(255,255,255)') + uiBack.image1.color2 = runExpr('makeRGB(0,0,0)') end end @@ -28,37 +28,37 @@ end -- trap some parts should be deprecated ... try to clean it up function game:bcMissionsUpdate() - local mt = getDbProp('UI:TEMP:MISSION:MISSION_TYPE'); + local mt = getDbProp('UI:TEMP:MISSION:MISSION_TYPE') -- init bot_chat_missions title - local title = 'uiBotChatMissions'; - if (mt == 3) then title = 'uiBotChatZCCharges'; - elseif (mt == 4) then title = 'uiBotChatBuilding'; - elseif (mt == 5) then title = 'uiBotChatRMBuy'; - elseif (mt == 6) then title = 'uiBotChatRMUpgrade'; + local title = 'uiBotChatMissions' + if (mt == 3) then title = 'uiBotChatZCCharges' + elseif (mt == 4) then title = 'uiBotChatBuilding' + elseif (mt == 5) then title = 'uiBotChatRMBuy' + elseif (mt == 6) then title = 'uiBotChatRMUpgrade' end - local ui = getUI('ui:interface:bot_chat_missions'); - ui.title = title; + local ui = getUI('ui:interface:bot_chat_missions') + ui.title = title -- init desc - title = 'uiSelectMission'; - if (mt == 3) then title = 'uiSelectZCCharge'; - elseif (mt == 4) then title = 'uiSelectBuilding'; - elseif (mt == 5) then title = 'uiSelectRMBuy'; - elseif (mt == 6) then title = 'uiSelectRMUpgrade'; + title = 'uiSelectMission' + if (mt == 3) then title = 'uiSelectZCCharge' + elseif (mt == 4) then title = 'uiSelectBuilding' + elseif (mt == 5) then title = 'uiSelectRMBuy' + elseif (mt == 6) then title = 'uiSelectRMUpgrade' end - ui.header_opened.mission_title.hardtext = title; + ui.header_opened.mission_title.hardtext = title - ui.header_opened.zc_duty.active = (mt == 3); - ui.header_opened.xp_guild.active = ((mt == 5) or (mt == 6)); + ui.header_opened.zc_duty.active = (mt == 3) + ui.header_opened.xp_guild.active = ((mt == 5) or (mt == 6)) -- init bot_chat_accept_mission title - title = 'uiAcceptMission'; - if (mt == 3) then title = 'uiAcceptZCCharge'; - elseif (mt == 4) then title = 'uiAcceptBuilding'; - elseif (mt == 5) then title = 'uiAcceptRMBuy'; - elseif (mt == 6) then title = 'uiAcceptRMUpgrade'; + title = 'uiAcceptMission' + if (mt == 3) then title = 'uiAcceptZCCharge' + elseif (mt == 4) then title = 'uiAcceptBuilding' + elseif (mt == 5) then title = 'uiAcceptRMBuy' + elseif (mt == 6) then title = 'uiAcceptRMUpgrade' end - ui = getUI('ui:interface:bot_chat_accept_mission'); + ui = getUI('ui:interface:bot_chat_accept_mission') ui.title = title; end diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/help.lua b/code/ryzom/client/data/gamedev/interfaces_v3/help.lua index 07a7fcd2c..d6c6da720 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/help.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/help.lua @@ -3,36 +3,36 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (help==nil) then - help= {}; + help = {} end ------------------------------------------------------------------------------------------------------------ -- function help:closeCSBrowserHeader() - local ui = getUI('ui:interface:cs_browser'); + local ui = getUI('ui:interface:cs_browser') -- save size - ui_cs_browser_h = ui.h; - ui_cs_browser_w = ui.w; + ui_cs_browser_h = ui.h + ui_cs_browser_w = ui.w -- reduce window size - ui.pop_min_h = 32; - ui.h = 0; - ui.w = 216; + ui.pop_min_h = 32 + ui.h = 0 + ui.w = 216 end ------------------------------------------------------------------------------------------------------------ -- function help:openCSBrowserHeader() - local ui = getUI('ui:interface:cs_browser'); - ui.pop_min_h = 96; + local ui = getUI('ui:interface:cs_browser') + ui.pop_min_h = 96 -- set size from saved values if (ui_cs_browser_h ~= nil) then - ui.h = ui_cs_browser_h; + ui.h = ui_cs_browser_h end if (ui_cs_browser_w ~= nil) then - ui.w = ui_cs_browser_w; + ui.w = ui_cs_browser_w end end \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua b/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua index aa1b7b7cc..44a0451d7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua @@ -109,7 +109,7 @@ function game.RingAccessPointFilter:validate() if config.Local == 1 then ucUrl = ucstring(NicoMagicURL) -- for test in local mode else - ucUrl = getDynString(game.NpcWebPage.UrlTextId); + ucUrl = getDynString(game.NpcWebPage.UrlTextId) end debugInfo(tostring(ucUrl)) local utf8Url = ucUrl:toUtf8() diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua index 7ac4c68dd..9dc6035fb 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/taskbar.lua @@ -2,39 +2,39 @@ ------------------------------------------------------------------------------------------------------------ -- create the game namespace without reseting if already created in an other file. if (game==nil) then - game= {}; + game = {} end ------------------------------------------------------------------------------------------------------------ -- function game:getMilkoTooltipWithKey(prop, tooltip, tooltip_pushed, name, param) - local tt; + local tt -- Check if button is toggled and choose the good tooltip if (prop ~= '' and tooltip_pushed ~= '') then - local db = getDbProp(prop); + local db = getDbProp(prop) if (db == 1) then - tt = tooltip_pushed; + tt = tooltip_pushed else - tt = tooltip; + tt = tooltip end else tt = tooltip; end -- Get key shortcut - local text = i18n.get(tt); - local key = runExpr('getKey(\'' .. name .. '\',\'' .. param .. '\',1)'); + local text = i18n.get(tt) + local key = runExpr('getKey(\'' .. name .. '\',\'' .. param .. '\',1)') if (key ~= nil and key ~= '') then - key = ' @{2F2F}(' .. key .. ')'; - text = concatUCString(text, key); + key = ' @{2F2F}(' .. key .. ')' + text = concatUCString(text, key) end - setContextHelpText(text); + setContextHelpText(text) end function game:taskbarDisableTooltip(ui) - local uiGroup = getUI(ui); - disableContextHelpForControl(uiGroup); + local uiGroup = getUI(ui) + disableContextHelpForControl(uiGroup) end \ No newline at end of file diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua b/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua index 9b88c02f7..516cc62d7 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua +++ b/code/ryzom/client/data/gamedev/interfaces_v3/webig.lua @@ -180,7 +180,7 @@ function webig:doRemoveDbSheetQuantity(sheet_list, ctrl) end end ---assert(nil, "RELOADABLE SCRIPT"); +--assert(nil, "RELOADABLE SCRIPT") From 413dd8eb93271e9530cd119d38b1dc87fbb44e0c Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:13:57 +0100 Subject: [PATCH 33/48] Fixed: We need to restart client from the same startup directory as parent one --HG-- branch : develop --- code/ryzom/client/src/login_patch.cpp | 42 +++++++++++++++------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/code/ryzom/client/src/login_patch.cpp b/code/ryzom/client/src/login_patch.cpp index baf7044df..bbd896ec9 100644 --- a/code/ryzom/client/src/login_patch.cpp +++ b/code/ryzom/client/src/login_patch.cpp @@ -922,21 +922,23 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool contentPrefix += "set RYZOM_CLIENT=\"%1\"\n"; contentPrefix += "set UNPACKPATH=\"%2\"\n"; contentPrefix += "set ROOTPATH=\"%3\"\n"; + contentPrefix += "set STARTUPPATH=\"%4\"\n"; contentPrefix += toString("set UPGRADE_FILE=\"%%ROOTPATH%%\\%s\"\n", UpgradeBatchFilename.c_str()); contentPrefix += "\n"; - contentPrefix += "set LOGIN=%4\n"; - contentPrefix += "set PASSWORD=%5\n"; - contentPrefix += "set SHARDID=%6\n"; + contentPrefix += "set LOGIN=%5\n"; + contentPrefix += "set PASSWORD=%6\n"; + contentPrefix += "set SHARDID=%7\n"; #else contentPrefix += "#!/bin/sh\n"; contentPrefix += "export RYZOM_CLIENT=$1\n"; contentPrefix += "export UNPACKPATH=$2\n"; contentPrefix += "export ROOTPATH=$3\n"; + contentPrefix += "export STARTUPPATH=$4\n"; contentPrefix += toString("export UPGRADE_FILE=$ROOTPATH/%s\n", UpgradeBatchFilename.c_str()); contentPrefix += "\n"; - contentPrefix += "LOGIN=$4\n"; - contentPrefix += "PASSWORD=$5\n"; - contentPrefix += "SHARDID=$6\n"; + contentPrefix += "LOGIN=$5\n"; + contentPrefix += "PASSWORD=$6\n"; + contentPrefix += "SHARDID=$7\n"; #endif contentPrefix += "\n"; @@ -958,7 +960,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool if (wantRyzomRestart) { // client shouldn't be in memory anymore else it couldn't be overwritten - contentSuffix += toString("start \"\" /D \"%%ROOTPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str()); + contentSuffix += toString("start \"\" /D \"%%STARTUPPATH%%\" \"%%RYZOM_CLIENT%%\" %s %%LOGIN%% %%PASSWORD%% %%SHARDID%%\n", additionalParams.c_str()); } #else if (wantRyzomRestart) @@ -976,7 +978,7 @@ void CPatchManager::createBatchFile(CProductDescriptionForClient &descFile, bool if (wantRyzomRestart) { // change to previous client directory - contentSuffix += "cd \"$ROOTPATH\"\n\n"; + contentSuffix += "cd \"$STARTUPPATH\"\n\n"; // launch new client contentSuffix += toString("\"$RYZOM_CLIENT\" %s $LOGIN $PASSWORD $SHARDID\n", additionalParams.c_str()); @@ -1017,30 +1019,32 @@ void CPatchManager::executeBatchFile() std::string batchFilename; -#ifdef NL_OS_WINDOWS - batchFilename = CPath::standardizeDosPath(ClientRootPath); -#else - batchFilename = ClientRootPath; -#endif - - batchFilename += UpdateBatchFilename; - - // make script executable - CFile::setRWAccess(batchFilename); - std::vector arguments; + + std::string startupPath = Args.getStartupPath(); // 3 first parameters are Ryzom client full path, patch directory full path and client root directory full path #ifdef NL_OS_WINDOWS + batchFilename = CPath::standardizeDosPath(ClientRootPath); + arguments.push_back(CPath::standardizeDosPath(RyzomFilename)); arguments.push_back(CPath::standardizeDosPath(ClientPatchPath)); arguments.push_back(CPath::standardizeDosPath(ClientRootPath)); + arguments.push_back(CPath::standardizeDosPath(startupPath)); #else + batchFilename = ClientRootPath; + arguments.push_back(RyzomFilename); arguments.push_back(ClientPatchPath); arguments.push_back(ClientRootPath); + arguments.push_back(startupPath); #endif + batchFilename += UpdateBatchFilename; + + // make script executable + CFile::setRWAccess(batchFilename); + // append login, password and shard if (!LoginLogin.empty()) { From 1356c1d447f6ad31716d7b6e67a039ba4fb837ab Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 16 Mar 2016 19:14:23 +0100 Subject: [PATCH 34/48] Fixed: Renamed ryzom_configuration to ryzom_configuration_qt under Linux --HG-- branch : develop --- code/ryzom/client/unix/upgd_nl.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ryzom/client/unix/upgd_nl.sh b/code/ryzom/client/unix/upgd_nl.sh index 6c44db85b..4a18675ef 100644 --- a/code/ryzom/client/unix/upgd_nl.sh +++ b/code/ryzom/client/unix/upgd_nl.sh @@ -10,6 +10,6 @@ fi chmod +x "$ROOTPATH/ryzom_client" chmod +x "$ROOTPATH/crash_report" chmod +x "$ROOTPATH/ryzom_client_patcher" -chmod +x "$ROOTPATH/ryzom_configuration" +chmod +x "$ROOTPATH/ryzom_configuration_qt" exit 0 From a77fee685b8aa5ccde26e3b8f4b2df2643a6b603 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 15:07:49 +0100 Subject: [PATCH 35/48] Changed: Implement CI18N::setSystemLanguageCode, if we must force it Fixed: CI18N::getSystemLanguageCode under Windows (use 2 different methods) --HG-- branch : develop --- code/nel/include/nel/misc/i18n.h | 4 + code/nel/src/misc/i18n.cpp | 124 +++++++++++++++++++++++++++---- 2 files changed, 114 insertions(+), 14 deletions(-) diff --git a/code/nel/include/nel/misc/i18n.h b/code/nel/include/nel/misc/i18n.h index 1102a8907..5f270a490 100644 --- a/code/nel/include/nel/misc/i18n.h +++ b/code/nel/include/nel/misc/i18n.h @@ -127,6 +127,9 @@ public: /// Returns the code of the language ("fr", "en", ...) defined on system static std::string getSystemLanguageCode (); + /// Define the code of the language ("fr", "en", ...) defined on system + static bool setSystemLanguageCode (const std::string &languageCode); + /// Find a string in the selected language and return his association. static const ucstring &get (const std::string &label); @@ -230,6 +233,7 @@ private: static std::vector _LanguageCodes; static std::vector _LanguageNames; + static std::string _SystemLanguageCode; static bool _LanguagesNamesLoaded; diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index 2f1bee325..fc4cbf341 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -43,6 +43,7 @@ string CI18N::_SelectedLanguageCode; CI18N::ILoadProxy *CI18N::_LoadProxy = 0; vector CI18N::_LanguageCodes; vector CI18N::_LanguageNames; +std::string CI18N::_SystemLanguageCode; bool CI18N::noResolution = false; void CI18N::setLoadProxy(ILoadProxy *loadProxy) @@ -248,10 +249,8 @@ bool CI18N::isLanguageCodeSupported(const std::string &lang) std::string CI18N::getSystemLanguageCode () { - static std::string s_cachedSystemLanguage; - - if (!s_cachedSystemLanguage.empty()) - return s_cachedSystemLanguage; + if (!_SystemLanguageCode.empty()) + return _SystemLanguageCode; #ifdef NL_OS_MAC // under OS X, locale is only defined in console, not in UI @@ -317,7 +316,7 @@ std::string CI18N::getSystemLanguageCode () // only keep language code if supported by NeL if (isLanguageCodeSupported(lang)) { - s_cachedSystemLanguage = lang; + _SystemLanguageCode = lang; break; } } @@ -328,21 +327,118 @@ std::string CI18N::getSystemLanguageCode () } #endif - // use system locale (works under Linux and Windows) - if (s_cachedSystemLanguage.empty()) +#ifdef NL_OS_WINDOWS + // use user locale under Windows (since Vista) + if (_SystemLanguageCode.empty() && false) + { + // GetUserDefaultLocaleName prototype + typedef int (WINAPI* GetUserDefaultLocaleNamePtr)(LPWSTR lpLocaleName, int cchLocaleName); + + // get pointer on GetUserDefaultLocaleName, kernel32.dll is always in memory so no need to call LoadLibrary + GetUserDefaultLocaleNamePtr nlGetUserDefaultLocaleName = (GetUserDefaultLocaleNamePtr)GetProcAddress(GetModuleHandleA("kernel32.dll"), "GetUserDefaultLocaleName"); + + // only use it if found + if (nlGetUserDefaultLocaleName) + { + // get user locale + wchar_t buffer[LOCALE_NAME_MAX_LENGTH]; + sint res = nlGetUserDefaultLocaleName(buffer, LOCALE_NAME_MAX_LENGTH); + + // convert wide string to std::string + std::string lang = wideToUtf8(buffer); + + // only keep 2 first characters + if (lang.size() > 1) + _SystemLanguageCode = lang.substr(0, 2); + } + } +#endif + + // use system locale (works under OS X, Linux and Windows) + if (_SystemLanguageCode.empty()) { - std::string lang = NLMISC::toLower(std::string(setlocale(LC_CTYPE, ""))); + // get default locale + char *locale = setlocale(LC_CTYPE, ""); - // only keep 2 first characters - if (lang.size() > 1) - s_cachedSystemLanguage = lang.substr(0, 2); + if (locale) + { + std::string lang(locale); + +#ifdef NL_OS_WINDOWS + // be sure supported languages are initialized + initLanguages(); + + // locales names are different under Windows, for example: French_France.1252 + for(uint i = 0; i < _LanguageNames.size(); ++i) + { + std::string name = _LanguageNames[i].toUtf8(); + + // so we compare the language name with the supported ones + if (lang.compare(0, name.length(), name) == 0) + { + // found, so use its code + _SystemLanguageCode = _LanguageCodes[i]; + break; + } + } +#else + std::string lang = NLMISC::toLower(lang); + + // only keep 2 first characters + if (lang.size() > 1) + _SystemLanguageCode = lang.substr(0, 2); +#endif + } } // english is default language - if (s_cachedSystemLanguage.empty()) - s_cachedSystemLanguage = "en"; + if (_SystemLanguageCode.empty()) + _SystemLanguageCode = "en"; - return s_cachedSystemLanguage; + return _SystemLanguageCode; +} + +bool CI18N::setSystemLanguageCode (const std::string &languageCode) +{ + // be sure supported languages are initialized + initLanguages(); + + std::string lang = NLMISC::toLower(languageCode); + + // specified language is really a code (2 characters) + if (lang.length() == 2) + { + // check if language code is supported + for(uint i = 0; i < _LanguageCodes.size(); ++i) + { + std::string code = NLMISC::toLower(_LanguageCodes[i]); + + if (lang == code) + { + // found, so use it + _SystemLanguageCode = lang; + return true; + } + } + } + // specified language is something else + else + { + // check if language name is supported + for(uint i = 0; i < _LanguageNames.size(); ++i) + { + std::string name = NLMISC::toLower(_LanguageNames[i].toUtf8()); + + if (name == lang) + { + // found, so use its code + _SystemLanguageCode = _LanguageCodes[i]; + return true; + } + } + } + + return false; } void CI18N::removeCComment(ucstring &commentedString) From 962b43d2bd999c86eec5520e9c0d947242461d07 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 15:09:02 +0100 Subject: [PATCH 36/48] Fixed: Possible crashes if ov_info returns NULL --HG-- branch : develop --- code/nel/src/sound/audio_decoder_vorbis.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/nel/src/sound/audio_decoder_vorbis.cpp b/code/nel/src/sound/audio_decoder_vorbis.cpp index e438d43cc..1c11c32d7 100644 --- a/code/nel/src/sound/audio_decoder_vorbis.cpp +++ b/code/nel/src/sound/audio_decoder_vorbis.cpp @@ -195,13 +195,17 @@ uint32 CAudioDecoderVorbis::getNextBytes(uint8 *buffer, uint32 minimum, uint32 m uint8 CAudioDecoderVorbis::getChannels() { vorbis_info *vi = ov_info(&_OggVorbisFile, -1); - return (uint8)vi->channels; + if (vi) return (uint8)vi->channels; + nlwarning("ov_info returned NULL"); + return 0; } uint CAudioDecoderVorbis::getSamplesPerSec() { vorbis_info *vi = ov_info(&_OggVorbisFile, -1); - return (uint)vi->rate; + if (vi) return (uint)vi->rate; + nlwarning("ov_info returned NULL"); + return 0; } uint8 CAudioDecoderVorbis::getBitsPerSample() From 6e816dfaa2fc2840e3ba9650f4f0dd0d9b74b338 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 18:10:01 +0100 Subject: [PATCH 37/48] Changed: Init log before calling prelogInit() --HG-- branch : develop --- code/ryzom/client/src/client.cpp | 4 ++++ code/ryzom/client/src/init.cpp | 37 +++++++++++++++++++------------- code/ryzom/client/src/init.h | 3 +++ 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index e4a77b3c6..1e140d3cc 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -289,6 +289,10 @@ int main(int argc, char **argv) #else // TODO for Linux : splashscreen + + // initialize log + initLog(); + #endif // initialize patch manager and set the ryzom full path, before it's used diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index 864451718..18c8ba022 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -796,6 +796,28 @@ static bool addRyzomIconBitmap(const std::string &directory, vector &bi } #endif +//--------------------------------------------------- +// initLog : +// Initialize the client.log file +//--------------------------------------------------- +void initLog() +{ + // Add a displayer for Debug Infos. + createDebug(); + + // Client.Log displayer + nlassert( !ErrorLog->getDisplayer("CLIENT.LOG") ); + CFileDisplayer *ClientLogDisplayer = new CFileDisplayer(getLogDirectory() + "client.log", true, "CLIENT.LOG"); + DebugLog->addDisplayer (ClientLogDisplayer); + InfoLog->addDisplayer (ClientLogDisplayer); + WarningLog->addDisplayer (ClientLogDisplayer); + ErrorLog->addDisplayer (ClientLogDisplayer); + AssertLog->addDisplayer (ClientLogDisplayer); + + // Display the client version. + nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); +} + //--------------------------------------------------- // prelogInit : // Initialize the application before login @@ -848,21 +870,6 @@ void prelogInit() // Due to Bug #906, we disable the stl xml allocation // nlverify (xmlMemSetup (XmlFree4NeL, XmlMalloc4NeL, XmlRealloc4NeL, XmlStrdup4NeL) == 0); - // Add a displayer for Debug Infos. - createDebug(); - - // Client.Log displayer - nlassert( !ErrorLog->getDisplayer("CLIENT.LOG") ); - CFileDisplayer *ClientLogDisplayer = new CFileDisplayer(getLogDirectory() + "client.log", true, "CLIENT.LOG"); - DebugLog->addDisplayer (ClientLogDisplayer); - InfoLog->addDisplayer (ClientLogDisplayer); - WarningLog->addDisplayer (ClientLogDisplayer); - ErrorLog->addDisplayer (ClientLogDisplayer); - AssertLog->addDisplayer (ClientLogDisplayer); - - // Display the client version. - nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); - // Init the debug memory initDebugMemory(); diff --git a/code/ryzom/client/src/init.h b/code/ryzom/client/src/init.h index cdcdfb418..f179bf13d 100644 --- a/code/ryzom/client/src/init.h +++ b/code/ryzom/client/src/init.h @@ -27,6 +27,9 @@ namespace NLMISC class IProgressCallback; } +// Initialize the log +void initLog(); + // Initialize the application before login step void prelogInit(); From 94f4e901c94b0e4622a4f4de7efc38568abbce9a Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:06:20 +0100 Subject: [PATCH 38/48] Changed: Fix clang warnings --HG-- branch : develop --- code/nel/include/nel/gui/view_pointer.h | 14 +++++++------- code/ryzom/client/src/entity_cl.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/nel/include/nel/gui/view_pointer.h b/code/nel/include/nel/gui/view_pointer.h index 382135a92..1cc7a4b0c 100644 --- a/code/nel/include/nel/gui/view_pointer.h +++ b/code/nel/include/nel/gui/view_pointer.h @@ -71,13 +71,13 @@ namespace NLGUI private: /// Drawing helpers - virtual bool drawResizer(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawRotate(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawScale(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawColorPicker(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawLink(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawBrowse(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } - virtual bool drawPan(CCtrlBase* pCB, NLMISC::CRGBA col){ return false; } + virtual bool drawResizer(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawRotate(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawScale(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawColorPicker(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawLink(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawBrowse(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } + virtual bool drawPan(CCtrlBase* /* pCB */, NLMISC::CRGBA /* col */) { return false; } virtual bool drawCustom(CCtrlBase* pCB); protected: diff --git a/code/ryzom/client/src/entity_cl.h b/code/ryzom/client/src/entity_cl.h index fb04576bc..328ec1cc7 100644 --- a/code/ryzom/client/src/entity_cl.h +++ b/code/ryzom/client/src/entity_cl.h @@ -86,7 +86,7 @@ namespace NL3D class CEntitySheet; class CEntityCL; -class CAttackInfo; +struct CAttackInfo; class CItemSheet; From d7121b4b7adc1c65220a34b964559057e14dee72 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:07:52 +0100 Subject: [PATCH 39/48] Changed: Don't need to use Windows functions with locale because the bug also occurs under Linux and OS X --HG-- branch : develop --- code/nel/include/nel/misc/i_xml.h | 3 -- code/nel/include/nel/misc/o_xml.h | 3 -- code/nel/src/misc/i_xml.cpp | 63 ++++++------------------------- code/nel/src/misc/o_xml.cpp | 22 ----------- 4 files changed, 12 insertions(+), 79 deletions(-) diff --git a/code/nel/include/nel/misc/i_xml.h b/code/nel/include/nel/misc/i_xml.h index 20ee8a7e0..b078eb7ee 100644 --- a/code/nel/include/nel/misc/i_xml.h +++ b/code/nel/include/nel/misc/i_xml.h @@ -236,9 +236,6 @@ private: // If not NULL, binary mode detected, use this stream in serials IStream *_BinaryStream; - - // System dependant structure for locale - void* _Locale; }; diff --git a/code/nel/include/nel/misc/o_xml.h b/code/nel/include/nel/misc/o_xml.h index 8346a6884..5bafacd60 100644 --- a/code/nel/include/nel/misc/o_xml.h +++ b/code/nel/include/nel/misc/o_xml.h @@ -181,9 +181,6 @@ private: // Error message std::string _ErrorString; - - // System dependant structure for locale - void* _Locale; }; diff --git a/code/nel/src/misc/i_xml.cpp b/code/nel/src/misc/i_xml.cpp index e722f3eee..fbd8f5d9f 100644 --- a/code/nel/src/misc/i_xml.cpp +++ b/code/nel/src/misc/i_xml.cpp @@ -24,11 +24,6 @@ // Include from libxml2 #include -#if defined(NL_OS_WINDOWS) && defined(NL_COMP_VC_VERSION) && NL_COMP_VC_VERSION >= 80 -#define USE_LOCALE_ATOF -#include -#endif - using namespace std; #define NLMISC_READ_BUFFER_SIZE 1024 @@ -46,26 +41,10 @@ const char SEPARATOR = ' '; // *************************************************************************** -#define readnumber(dest,thetype,digits,convfunc) \ +#define readnumber(dest,digits) \ string number_as_string; \ serialSeparatedBufferIn( number_as_string ); \ - dest = (thetype)convfunc( number_as_string.c_str() ); - -#ifdef USE_LOCALE_ATOF - -#define readnumberlocale(dest,thetype,digits,convfunc) \ - string number_as_string; \ - serialSeparatedBufferIn( number_as_string ); \ - dest = (thetype)convfunc( number_as_string.c_str(), (_locale_t)_Locale ); - -#define nl_atof _atof_l - -#else - -#define readnumberlocale(dest,thetype,digits,convfunc) readnumber(dest,thetype,digits,convfunc) -#define nl_atof atof - -#endif + NLMISC::fromString(number_as_string, dest); // *************************************************************************** @@ -91,13 +70,6 @@ CIXml::CIXml () : IStream (true /* Input mode */) _ErrorString = ""; _TryBinaryMode = false; _BinaryStream = NULL; - -#ifdef USE_LOCALE_ATOF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -113,13 +85,6 @@ CIXml::CIXml (bool tryBinaryMode) : IStream (true /* Input mode */) _ErrorString = ""; _TryBinaryMode = tryBinaryMode; _BinaryStream = NULL; - -#ifdef USE_LOCALE_ATOF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -128,10 +93,6 @@ CIXml::~CIXml () { // Release release (); - -#ifdef USE_LOCALE_ATOF - if (_Locale) _free_locale((_locale_t)_Locale); -#endif } // *************************************************************************** @@ -468,7 +429,7 @@ void CIXml::serial(uint8 &b) else { // Read the number - readnumber( b, uint8, 3, atoi ); + readnumber( b, 3 ); } } @@ -482,7 +443,7 @@ void CIXml::serial(sint8 &b) } else { - readnumber( b, sint8, 4, atoi ); + readnumber( b, 4 ); } } @@ -496,7 +457,7 @@ void CIXml::serial(uint16 &b) } else { - readnumber( b, uint16, 5, atoi ); + readnumber( b, 5 ); } } @@ -510,7 +471,7 @@ void CIXml::serial(sint16 &b) } else { - readnumber( b, sint16, 6, atoi ); + readnumber( b, 6 ); } } @@ -529,7 +490,7 @@ void CIXml::serial(uint32 &b) } else { - readnumber( b, uint32, 10, atoui ); + readnumber( b, 10 ); } } @@ -543,7 +504,7 @@ void CIXml::serial(sint32 &b) } else { - readnumber( b, sint32, 11, atoi ); + readnumber( b, 11 ); } } @@ -557,7 +518,7 @@ void CIXml::serial(uint64 &b) } else { - readnumber( b, uint64, 20, atoiInt64 ); + readnumber( b, 20 ); } } @@ -571,7 +532,7 @@ void CIXml::serial(sint64 &b) } else { - readnumber( b, sint64, 20, atoiInt64 ); + readnumber( b, 20 ); } } @@ -585,7 +546,7 @@ void CIXml::serial(float &b) } else { - readnumberlocale( b, float, 128, nl_atof ); + readnumber( b, 128 ); } } @@ -599,7 +560,7 @@ void CIXml::serial(double &b) } else { - readnumberlocale( b, double, 128, nl_atof ); + readnumber( b, 128 ); } } diff --git a/code/nel/src/misc/o_xml.cpp b/code/nel/src/misc/o_xml.cpp index d07362904..6df48ef80 100644 --- a/code/nel/src/misc/o_xml.cpp +++ b/code/nel/src/misc/o_xml.cpp @@ -43,22 +43,11 @@ const char SEPARATOR = ' '; // *************************************************************************** -#ifdef USE_LOCALE_SPRINTF - -#define writenumber(src,format,digits) \ - char number_as_cstring [digits+1]; \ - _sprintf_l( number_as_cstring, format, (_locale_t)_Locale, src ); \ - serialSeparatedBufferOut( number_as_cstring ); - -#else - #define writenumber(src,format,digits) \ char number_as_cstring [digits+1]; \ sprintf( number_as_cstring, format, src ); \ serialSeparatedBufferOut( number_as_cstring ); -#endif - // *************************************************************************** // XML callbacks // *************************************************************************** @@ -149,13 +138,6 @@ COXml::COXml () : IStream (false /* Output mode */) // Push begin _PushBegin = false; - -#ifdef USE_LOCALE_SPRINTF - // create C numeric locale - _Locale = _create_locale(LC_NUMERIC, "C"); -#else - _Locale = NULL; -#endif } // *************************************************************************** @@ -215,10 +197,6 @@ COXml::~COXml () { // Flush document to the internal stream flush (); - -#ifdef USE_LOCALE_SPRINTF - if (_Locale) _free_locale((_locale_t)_Locale); -#endif } // *************************************************************************** From 97647b2264a3e775b51ada5e968e65b25b205640 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:08:43 +0100 Subject: [PATCH 40/48] Fixed: Set numeric locale in CApplicationContext --HG-- branch : develop --- code/nel/src/misc/app_context.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/nel/src/misc/app_context.cpp b/code/nel/src/misc/app_context.cpp index 2383fcda5..5206681f9 100644 --- a/code/nel/src/misc/app_context.cpp +++ b/code/nel/src/misc/app_context.cpp @@ -19,6 +19,8 @@ #include "nel/misc/dynloadlib.h" #include "nel/misc/command.h" +#include + #ifdef DEBUG_NEW #define new DEBUG_NEW #endif @@ -85,6 +87,9 @@ void INelContext::contextReady() _NelContext = this; *(_getInstance()) = this; + // set numeric locale to C to avoid the use of decimal separators different of a dot + char *locale = setlocale(LC_NUMERIC, "C"); + // register any pending thinks // register local instance counter in the global instance counter manager From 05e0500aaf41e278be43c44ea7ef6b25f0b3236f Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:09:26 +0100 Subject: [PATCH 41/48] Changed: Check if LC_NUMERIC is correct before loading or saving config files --HG-- branch : develop --- code/nel/src/misc/config_file/config_file.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/code/nel/src/misc/config_file/config_file.cpp b/code/nel/src/misc/config_file/config_file.cpp index 093992487..bab1c123b 100644 --- a/code/nel/src/misc/config_file/config_file.cpp +++ b/code/nel/src/misc/config_file/config_file.cpp @@ -316,6 +316,13 @@ CConfigFile::~CConfigFile () void CConfigFile::load (const string &fileName, bool lookupPaths ) { + char *locale = setlocale(LC_NUMERIC, NULL); + + if (!locale || strcmp(locale, "C")) + { + nlerror("Numeric locale not defined to C, an external library possibly redefined it!"); + } + if(fileName.empty()) { nlwarning ("CF: Can't load a empty file name configfile"); @@ -597,8 +604,12 @@ bool CConfigFile::exists (const std::string &varName) void CConfigFile::save () const { - // Avoid any problem, Force Locale to default - setlocale(LC_ALL, "C"); + char *locale = setlocale(LC_NUMERIC, NULL); + + if (!locale || strcmp(locale, "C")) + { + nlerror("Numeric locale not defined to C, an external library possibly redefined it!"); + } FILE *fp = nlfopen (getFilename(), "w"); if (fp == NULL) From 40c7c82a2d329d43d73c3647acff3068ed8e3e84 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:09:43 +0100 Subject: [PATCH 42/48] Changed: Removed wrong check --HG-- branch : develop --- code/nel/src/misc/i18n.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index fc4cbf341..e230eab2d 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -329,7 +329,7 @@ std::string CI18N::getSystemLanguageCode () #ifdef NL_OS_WINDOWS // use user locale under Windows (since Vista) - if (_SystemLanguageCode.empty() && false) + if (_SystemLanguageCode.empty()) { // GetUserDefaultLocaleName prototype typedef int (WINAPI* GetUserDefaultLocaleNamePtr)(LPWSTR lpLocaleName, int cchLocaleName); From 4074f095ebe3a1d839f48486470935d845af5eb7 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:10:19 +0100 Subject: [PATCH 43/48] Fixed: Move setrlimit after initializing logs --HG-- branch : develop --- code/ryzom/client/src/client.cpp | 26 +------------------ code/ryzom/client/src/init.cpp | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 25 deletions(-) diff --git a/code/ryzom/client/src/client.cpp b/code/ryzom/client/src/client.cpp index 1e140d3cc..dcce43cc0 100644 --- a/code/ryzom/client/src/client.cpp +++ b/code/ryzom/client/src/client.cpp @@ -30,13 +30,6 @@ #include #endif -#ifdef NL_OS_MAC -#include -#include -#include "nel/misc/dynloadlib.h" -#include "app_bundle_utils.h" -#endif - #include "nel/misc/debug.h" #include "nel/misc/command.h" #include "nel/net/tcp_sock.h" @@ -226,23 +219,6 @@ int main(int argc, char **argv) } #endif // TEST_CRASH_COUNTER -#ifdef NL_OS_MAC - struct rlimit rlp, rlp2, rlp3; - - getrlimit(RLIMIT_NOFILE, &rlp); - - rlp2.rlim_cur = 1024; - rlp2.rlim_max = rlp.rlim_max; - setrlimit(RLIMIT_NOFILE, &rlp2); - - getrlimit(RLIMIT_NOFILE, &rlp3); - nlinfo("rlimit before %d %d\n", rlp.rlim_cur, rlp.rlim_max); - nlinfo("rlimit after %d %d\n", rlp3.rlim_cur, rlp3.rlim_max); - - // add the bundle's plugins path as library search path (for nel drivers) - CLibrary::addLibPath(getAppBundlePath() + "/Contents/PlugIns/nel/"); -#endif - #if defined(NL_OS_WINDOWS) #ifdef TEST_CRASH_COUNTER @@ -289,11 +265,11 @@ int main(int argc, char **argv) #else // TODO for Linux : splashscreen +#endif // initialize log initLog(); -#endif // initialize patch manager and set the ryzom full path, before it's used CPatchManager *pPM = CPatchManager::getInstance(); diff --git a/code/ryzom/client/src/init.cpp b/code/ryzom/client/src/init.cpp index 18c8ba022..a55a09db9 100644 --- a/code/ryzom/client/src/init.cpp +++ b/code/ryzom/client/src/init.cpp @@ -105,6 +105,12 @@ extern HINSTANCE HInstance; extern HWND SlashScreen; #endif // NL_OS_WINDOWS +#ifdef NL_OS_MAC +#include +#include +#include "nel/misc/dynloadlib.h" +#endif + #include "app_bundle_utils.h" #include @@ -816,6 +822,43 @@ void initLog() // Display the client version. nlinfo("RYZOM VERSION : %s", getDebugVersion().c_str()); + +#ifdef NL_OS_MAC + struct rlimit rlp, rlp2, rlp3; + + getrlimit(RLIMIT_NOFILE, &rlp); + + rlim_t value = 1024; + + rlp2.rlim_cur = std::min(value, rlp.rlim_max); + rlp2.rlim_max = rlp.rlim_max; + + if (setrlimit(RLIMIT_NOFILE, &rlp2)) + { + if (errno == EINVAL) + { + nlwarning("Unable to set rlimit with error: the specified limit is invalid"); + } + else if (errno == EPERM) + { + nlwarning("Unable to set rlimit with error: the limit specified would have raised the maximum limit value and the caller is not the super-user"); + } + else + { + nlwarning("Unable to set rlimit with error: unknown error"); + } + } + + getrlimit(RLIMIT_NOFILE, &rlp3); + nlinfo("rlimit before %llu %llu", (uint64)rlp.rlim_cur, (uint64)rlp.rlim_max); + nlinfo("rlimit after %llu %llu", (uint64)rlp3.rlim_cur, (uint64)rlp3.rlim_max); + + // add the bundle's plugins path as library search path (for nel drivers) + if (CFile::isExists(getAppBundlePath() + "/Contents/PlugIns/nel")) + { + CLibrary::addLibPath(getAppBundlePath() + "/Contents/PlugIns/nel/"); + } +#endif } //--------------------------------------------------- From cf20e21f838abf6dd47271fc891892ba28ad93b8 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:11:03 +0100 Subject: [PATCH 44/48] Changed: Use named arguments in uiFilterMenuDynamic translation --HG-- branch : develop --- .../ryzom/client/src/interface_v3/people_interraction.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/ryzom/client/src/interface_v3/people_interraction.cpp b/code/ryzom/client/src/interface_v3/people_interraction.cpp index 62e6c0990..71cb5f7ec 100644 --- a/code/ryzom/client/src/interface_v3/people_interraction.cpp +++ b/code/ryzom/client/src/interface_v3/people_interraction.cpp @@ -2635,7 +2635,13 @@ public: { ucstring title; STRING_MANAGER::CStringManagerClient::instance()->getDynString(textId, title); - pMenu->addLineAtIndex(5 + insertion_index, title+" @{T8}/"+s, "chat_target_selected", "dyn"+s, "dyn"+s); + + // replace dynamic channel name and shortcut + ucstring res = CI18N::get("uiFilterMenuDynamic"); + strFindReplace(res, "%channel", title); + strFindReplace(res, "%shortcut", s); + + pMenu->addLineAtIndex(5 + insertion_index, res, "chat_target_selected", "dyn"+s, "dyn"+s); insertion_index++; } } From f376317f101326c22165248367fee58d45f773e0 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:26:43 +0100 Subject: [PATCH 45/48] Fixed: Compilation --HG-- branch : develop --- code/nel/src/misc/i18n.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/nel/src/misc/i18n.cpp b/code/nel/src/misc/i18n.cpp index e230eab2d..b64116c1c 100644 --- a/code/nel/src/misc/i18n.cpp +++ b/code/nel/src/misc/i18n.cpp @@ -382,11 +382,9 @@ std::string CI18N::getSystemLanguageCode () } } #else - std::string lang = NLMISC::toLower(lang); - // only keep 2 first characters if (lang.size() > 1) - _SystemLanguageCode = lang.substr(0, 2); + _SystemLanguageCode = NLMISC::toLower(lang).substr(0, 2); #endif } } From a7b3532687f2055d30c9500367e9d3ab5f11d786 Mon Sep 17 00:00:00 2001 From: kervala Date: Fri, 18 Mar 2016 22:26:58 +0100 Subject: [PATCH 46/48] Changed: Minor changes --HG-- branch : develop --- code/ryzom/common/src/game_share/mirrored_data_set_inline.h | 2 +- code/ryzom/tools/client/client_patcher/main.cpp | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/ryzom/common/src/game_share/mirrored_data_set_inline.h b/code/ryzom/common/src/game_share/mirrored_data_set_inline.h index 50ab076b7..69607b7dd 100644 --- a/code/ryzom/common/src/game_share/mirrored_data_set_inline.h +++ b/code/ryzom/common/src/game_share/mirrored_data_set_inline.h @@ -205,7 +205,7 @@ inline bool CMirroredDataSet::propIsList( TPropertyIndex propIndex ) const * Display the values of one property for all entities */ template -inline void CMirroredDataSet::displayPropValues( TPropertyIndex propIndex, T* pt, NLMISC::CLog& log ) const +inline void CMirroredDataSet::displayPropValues( TPropertyIndex propIndex, T* /* pt */, NLMISC::CLog& log ) const { // std::stringstream ss; // ss << "Mirror property " << propIndex << ":" << endl; diff --git a/code/ryzom/tools/client/client_patcher/main.cpp b/code/ryzom/tools/client/client_patcher/main.cpp index f03943345..08be87fbe 100644 --- a/code/ryzom/tools/client/client_patcher/main.cpp +++ b/code/ryzom/tools/client/client_patcher/main.cpp @@ -5,8 +5,6 @@ #include "nel/misc/cmd_args.h" -#include - #ifdef NL_OS_WINDOWS #include #endif From e191e1675b0ff4d0910ffaf7de6870303ab15c7f Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 15:34:00 +0100 Subject: [PATCH 47/48] Fixed: Define _DARWIN_UNLIMITED_STREAMS to fix setrlimit under OS X --HG-- branch : develop --- code/CMakeModules/nel.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake index 1d19212c9..3995dcbf8 100644 --- a/code/CMakeModules/nel.cmake +++ b/code/CMakeModules/nel.cmake @@ -871,7 +871,7 @@ MACRO(NL_SETUP_BUILD) ENDIF(ANDROID) IF(APPLE) - ADD_PLATFORM_FLAGS("-gdwarf-2") + ADD_PLATFORM_FLAGS("-gdwarf-2 -D_DARWIN_UNLIMITED_STREAMS") ENDIF(APPLE) # Fix "relocation R_X86_64_32 against.." error on x64 platforms From 0d773e3e79068fb7401582b9de3a6952df3aa453 Mon Sep 17 00:00:00 2001 From: kervala Date: Sat, 19 Mar 2016 16:21:06 +0100 Subject: [PATCH 48/48] Fixed: Use nlfopen in tools and servers --HG-- branch : develop --- code/nel/include/nel/pipeline/tool_logger.h | 5 ++- code/nel/samples/3d/cluster_viewer/main.cpp | 3 +- code/nel/samples/net/service/chat_service.cpp | 2 +- code/nel/samples/net/udp/bench_service.cpp | 7 ++-- code/nel/samples/net/udp/client.cpp | 5 ++- code/nel/tools/3d/file_info/main.cpp | 5 +-- code/nel/tools/3d/lightmap_optimizer/main.cpp | 3 +- .../nel_export/nel_export_lightmap_v2.cpp | 9 +++-- .../3d/shapes_exporter/shapes_exporter.cpp | 5 ++- code/nel/tools/3d/tga_2_dds/tga2dds.cpp | 5 ++- code/nel/tools/3d/zone_welder/zone_welder.cpp | 3 +- code/nel/tools/3d/zviewer/zviewer.cpp | 5 ++- .../tools/georges/georges2csv/georges2csv.cpp | 6 ++- .../tools/misc/data_mirror/data_mirrorDlg.cpp | 30 ++++++++++----- code/nel/tools/misc/disp_sheet_id/main.cpp | 3 +- .../misc/make_sheet_id/make_sheet_id.cpp | 5 ++- code/nel/tools/misc/xml_packer/xml_packer.cpp | 15 ++++---- .../admin_executor_service.cpp | 8 ++-- .../nel_launcher_windows_ext2/patch.cpp | 3 +- .../server/src/admin_modules/aes_module.cpp | 15 ++++---- .../server/src/admin_modules/as_module.cpp | 5 ++- .../server/src/ai_data_service/pacs_scan.cpp | 7 ++-- .../src/ai_service/ai_script_data_manager.cpp | 2 +- .../src/entities_game_service/deposit.cpp | 3 +- .../game_item_manager/game_item.cpp | 3 +- .../game_item_manager/game_item_manager.cpp | 2 +- .../entities_game_service/harvest_source.cpp | 4 +- .../phrase_manager/fg_prospection_phrase.cpp | 4 +- .../player_manager/cdb_synchronised.cpp | 2 +- .../player_manager/player.cpp | 4 +- .../cl_contest_logger.cpp | 2 +- .../rr_repository_reciever.cpp | 2 +- .../src/log_analyser_service/commands.cpp | 2 +- .../src/logger_service/logger_service.cpp | 3 +- .../src/patchman_service/file_manager.cpp | 3 +- .../rr_repository_reciever.cpp | 2 +- .../spt_server_patch_terminal.cpp | 5 ++- .../ryzom/server/src/pd_lib/pd_server_utils.h | 3 +- .../src/pd_support_service/daily_commands.cpp | 3 +- .../pd_support_service/hourly_commands.cpp | 3 +- .../testing_tool_service.cpp | 3 +- .../mission_compiler_feDlg.cpp | 5 ++- .../mission_compiler_lib/mission_compiler.cpp | 3 +- .../tools/leveldesign/mp_generator/main.cpp | 3 +- .../tools/leveldesign/mp_generator/utils.h | 4 +- .../named_items_2_csv/named_items_2_csv.cpp | 12 +++--- .../primitive_id_assignator.cpp | 3 +- .../tools/leveldesign/uni_conv/uni_conv.cpp | 3 +- .../world_editor/world_editor/main_frm.cpp | 3 +- code/ryzom/tools/occ2huff/occ2huff.cpp | 2 +- code/ryzom/tools/pd_parser/templatizer.h | 2 +- .../phrase_generator/phrase_generator.cpp | 37 ++++++++++--------- .../sheet_random_generator.cpp | 5 ++- .../sheet_random_generator/srg_utilities.h | 17 +++++---- code/ryzom/tools/translation_tools/main.cpp | 3 +- code/ryzom/tools/xml_packer/xml_packer.cpp | 13 ++++--- .../mission_compiler/validation_file.cpp | 3 +- .../increment_version/increment_version.cpp | 3 +- .../path_content_diff/path_content_diff.cpp | 3 +- 59 files changed, 193 insertions(+), 140 deletions(-) diff --git a/code/nel/include/nel/pipeline/tool_logger.h b/code/nel/include/nel/pipeline/tool_logger.h index 55b3b2455..714f46d2d 100644 --- a/code/nel/include/nel/pipeline/tool_logger.h +++ b/code/nel/include/nel/pipeline/tool_logger.h @@ -39,6 +39,7 @@ // NeL includes #include #include +#include // Project includes @@ -102,7 +103,7 @@ public: { releaseError(); - m_ErrorLog = fopen(errorLog.c_str(), "wt"); + m_ErrorLog = nlfopen(errorLog, "wt"); fwrite(s_ErrorHeader.c_str(), 1, s_ErrorHeader.length(), m_ErrorLog); fwrite("\n", 1, 1, m_ErrorLog); fflush(m_ErrorLog); @@ -113,7 +114,7 @@ public: { releaseDepend(); - m_DependLog = fopen(dependLog.c_str(), "wt"); + m_DependLog = nlfopen(dependLog, "wt"); fwrite(s_DependHeader.c_str(), 1, s_DependHeader.length(), m_DependLog); fwrite("\n", 1, 1, m_DependLog); // fflush(m_DependLog); diff --git a/code/nel/samples/3d/cluster_viewer/main.cpp b/code/nel/samples/3d/cluster_viewer/main.cpp index d7956adbe..ef05d557e 100644 --- a/code/nel/samples/3d/cluster_viewer/main.cpp +++ b/code/nel/samples/3d/cluster_viewer/main.cpp @@ -23,6 +23,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include "nel/misc/bitmap.h" #include "nel/misc/events.h" @@ -115,7 +116,7 @@ void LoadSceneScript (const char *ScriptName, CScene* pScene, vector &D float posx, posy, posz; float roti, rotj, rotk; - FILE *f = fopen (CPath::lookup(ScriptName).c_str(),"rb"); + FILE *f = nlfopen (CPath::lookup(ScriptName), "rb"); fseek (f, 0, SEEK_END); uint file_size = ftell (f); fseek (f, 0, SEEK_SET); diff --git a/code/nel/samples/net/service/chat_service.cpp b/code/nel/samples/net/service/chat_service.cpp index 36b438e44..c2efc71f4 100644 --- a/code/nel/samples/net/service/chat_service.cpp +++ b/code/nel/samples/net/service/chat_service.cpp @@ -60,7 +60,7 @@ public: nlinfo ("init() was called"); -// fp = fopen (NLMISC::CFile::findNewFile("stat.csv").c_str(), "wt"); +// fp = nlfopen (NLMISC::CFile::findNewFile("stat.csv"), "wt"); } bool update () diff --git a/code/nel/samples/net/udp/bench_service.cpp b/code/nel/samples/net/udp/bench_service.cpp index 4b75a6b93..22f570260 100644 --- a/code/nel/samples/net/udp/bench_service.cpp +++ b/code/nel/samples/net/udp/bench_service.cpp @@ -33,6 +33,7 @@ #endif +#include "nel/misc/common.h" #include "nel/misc/debug.h" #include "nel/misc/mem_stream.h" #include "nel/misc/path.h" @@ -276,11 +277,11 @@ void CClient::updatePong (sint64 pingTime, sint64 pongTime, uint32 pongNumber, u } string fn = StatPathName + ConnectionName + "_" + ha + "_" + getDate() + ".pong"; - FILE *fp = fopen (fn.c_str(), "rt"); + FILE *fp = nlfopen (fn, "rt"); if (fp == NULL) { // new file, add the header - FILE *fp = fopen (fn.c_str(), "wt"); + FILE *fp = nlfopen (fn, "wt"); if (fp != NULL) { fprintf (fp, "#%s\t%s\t%s\t%s\n", "PingTime", "PongTime", "Delta", "PingNumber"); @@ -292,7 +293,7 @@ void CClient::updatePong (sint64 pingTime, sint64 pongTime, uint32 pongNumber, u fclose (fp); } - fp = fopen (fn.c_str(), "at"); + fp = nlfopen (fn, "at"); if (fp == NULL) { nlwarning ("Can't open pong file name '%s'", fn.c_str()); diff --git a/code/nel/samples/net/udp/client.cpp b/code/nel/samples/net/udp/client.cpp index 90de35bb2..0cdb98c53 100644 --- a/code/nel/samples/net/udp/client.cpp +++ b/code/nel/samples/net/udp/client.cpp @@ -21,6 +21,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/debug.h" +#include "nel/misc/common.h" #include "nel/misc/mem_stream.h" #include "nel/misc/time_nl.h" #include "nel/misc/config_file.h" @@ -112,7 +113,7 @@ void exit (const string &reason) void createConfigFile() { - FILE *fp = fopen ("client.cfg", "wt"); + FILE *fp = nlfopen ("client.cfg", "wt"); if (fp == NULL) { InfoLog->displayRawNL ("Can't create client.cfg"); @@ -159,7 +160,7 @@ void checkConnectionName () void loadConfigFile () { - FILE *fp = fopen ("client.cfg", "rt"); + FILE *fp = nlfopen ("client.cfg", "rt"); if (fp == NULL) { createConfigFile(); diff --git a/code/nel/tools/3d/file_info/main.cpp b/code/nel/tools/3d/file_info/main.cpp index b781e43fe..e8c6e072b 100644 --- a/code/nel/tools/3d/file_info/main.cpp +++ b/code/nel/tools/3d/file_info/main.cpp @@ -17,6 +17,7 @@ #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/3d/scene_group.h" #include "nel/3d/zone.h" #include "nel/3d/skeleton_shape.h" @@ -660,9 +661,7 @@ int main(int argc, const char *argv[]) options.insert (argv[i]); // Open log - FILE *logStream; - logStream= fopen(std::string(getLogDirectory() + "file_info.log").c_str(), "wt"); - + FILE *logStream = nlfopen(getLogDirectory() + "file_info.log", "wt"); // parse dir or file ?? const char *fileName= argv[1]; diff --git a/code/nel/tools/3d/lightmap_optimizer/main.cpp b/code/nel/tools/3d/lightmap_optimizer/main.cpp index f7e999799..2e1f0f47c 100644 --- a/code/nel/tools/3d/lightmap_optimizer/main.cpp +++ b/code/nel/tools/3d/lightmap_optimizer/main.cpp @@ -998,7 +998,8 @@ int main(int nNbArg, char **ppArgs) ChDir (sExeDir); // out a text file, with list of - FILE *out= fopen(ppArgs[4], "wt"); + FILE *out = nlfopen(ppArgs[4], "wt"); + if(!out) { outString(string("ERROR: cannot save ")+ppArgs[4]); diff --git a/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp b/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp index b79e4884f..f6cd6b80d 100644 --- a/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp +++ b/code/nel/tools/3d/plugin_max/nel_export/nel_export_lightmap_v2.cpp @@ -8,6 +8,7 @@ #include "nel/misc/time_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/triangle.h" #include "nel/misc/bsphere.h" #include "3d/quad_tree.h" @@ -3121,8 +3122,8 @@ void CNelExport::deleteLM(INode& ZeNode) sprintf( tmp, "%d", i ); sSaveName += tmp; sSaveName += ".tga"; - FILE *file; - if( file = fopen(sSaveName.c_str(),"rb") ) + FILE *file = nlfopen(sSaveName, "rb") + if (file) { fclose( file ); DeleteFile( sSaveName.c_str() ); @@ -3521,8 +3522,8 @@ bool CNelExport::exportScene(std::vector& vectNode) sprintf( tmp, "%d", i ); sSaveName += tmp; sSaveName += ".tga"; - FILE *file; - if( file = fopen(sSaveName.c_str(),"rb") ) + FILE *file = nlfopen(sSaveName, "rb"); + if (file) { fclose( file ); DeleteFile( sSaveName.c_str() ); diff --git a/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp b/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp index 0c4d08c4a..a63fcc969 100644 --- a/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp +++ b/code/nel/tools/3d/shapes_exporter/shapes_exporter.cpp @@ -15,6 +15,7 @@ // along with this program. If not, see . #include +#include #include #include #include @@ -851,7 +852,7 @@ bool ShapesExporter::renderPS(UInstance &entity, const string &output_path, doub { if(step > 0) { - FILE *fp = fopen(string(CPath::standardizePath(output_path)+"nb_steps.txt").c_str(), "w"); + FILE *fp = nlfopen(CPath::standardizePath(output_path)+"nb_steps.txt", "w"); if(fp) { fprintf(fp, "%d", step); fclose(fp); } } nlinfo("PS duration %f after %f with nothing with %d steps, dt %f", duration, startTime, step, deltaTime); @@ -873,7 +874,7 @@ bool ShapesExporter::createThumbnail(const string &filename, const string &path) uint selectedFrame = 0; if(CFile::getExtension(filename) == "ps") { - FILE *fp = fopen(string(CPath::standardizePath(output_path)+"nb_steps.txt").c_str(), "r"); + FILE *fp = nlfopen(CPath::standardizePath(output_path)+"nb_steps.txt", "r"); if(fp) { char str[100]; diff --git a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp index 7f3275694..5e40a4cca 100644 --- a/code/nel/tools/3d/tga_2_dds/tga2dds.cpp +++ b/code/nel/tools/3d/tga_2_dds/tga2dds.cpp @@ -18,6 +18,7 @@ #include #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/bitmap.h" #include "nel/misc/path.h" #include "nel/misc/debug.h" @@ -49,7 +50,7 @@ std::string getOutputFileName(const std::string &inputFileName); uint8 getType(const std::string &sFileNameDest) { uint32 dds; - FILE *f = fopen(sFileNameDest.c_str(),"rb"); + FILE *f = nlfopen(sFileNameDest, "rb"); if(f==NULL) { return NOT_DEFINED; @@ -105,7 +106,7 @@ uint8 getType(const std::string &sFileNameDest) bool sameType(const std::string &sFileNameDest, uint8 &algo, bool wantMipMap) { uint32 dds; - FILE *f = fopen(sFileNameDest.c_str(),"rb"); + FILE *f = nlfopen(sFileNameDest, "rb"); if(f==NULL) { return false; diff --git a/code/nel/tools/3d/zone_welder/zone_welder.cpp b/code/nel/tools/3d/zone_welder/zone_welder.cpp index f30a4b38b..7ca1d822a 100644 --- a/code/nel/tools/3d/zone_welder/zone_welder.cpp +++ b/code/nel/tools/3d/zone_welder/zone_welder.cpp @@ -20,6 +20,7 @@ #include #include "nel/misc/types_nl.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/3d/quad_tree.h" #include "nel/3d/zone.h" #include "nel/3d/landscape.h" @@ -978,7 +979,7 @@ int main(sint argc, char **argv) } #if WELD_LOG - fdbg = fopen("log.txt","wt"); + fdbg = nlfopen("log.txt","wt"); fprintf(fdbg,"Center zone : %s\n",argv[1]); #endif diff --git a/code/nel/tools/3d/zviewer/zviewer.cpp b/code/nel/tools/3d/zviewer/zviewer.cpp index 9d64badb1..c5f4419a4 100644 --- a/code/nel/tools/3d/zviewer/zviewer.cpp +++ b/code/nel/tools/3d/zviewer/zviewer.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -743,7 +744,7 @@ void displayZones() \****************************************************************/ void writeConfigFile(const char * configFileName) { - FILE * f = fopen(configFileName,"wt"); + FILE * f = nlfopen(configFileName, "wt"); if(f==NULL) { @@ -801,7 +802,7 @@ void writeConfigFile(const char * configFileName) \****************************************************************/ void initViewerConfig(const char * configFileName) { - FILE * f = fopen(configFileName,"rt"); + FILE *f = nlfopen(configFileName, "rt"); if(f==NULL) { nlwarning("'%s' not found, default values used", configFileName); diff --git a/code/nel/tools/georges/georges2csv/georges2csv.cpp b/code/nel/tools/georges/georges2csv/georges2csv.cpp index 018a6abff..339479bfe 100644 --- a/code/nel/tools/georges/georges2csv/georges2csv.cpp +++ b/code/nel/tools/georges/georges2csv/georges2csv.cpp @@ -32,6 +32,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" //#include "nel/memory/memory_manager.h" #include "nel/misc/i18n.h" @@ -685,12 +686,13 @@ void convertCsvFile( const string &file, bool generate, const string& sheetType { const uint BUFFER_SIZE = 16*1024; char lineBuffer[BUFFER_SIZE]; - FILE *s; vector fields; vector args; - if ((s = fopen(file.c_str(), "r")) == NULL) + FILE *s = nlfopen(file, "r"); + + if (s == NULL) { fprintf(stderr, "Can't find file %s to convert\n", file.c_str()); return; diff --git a/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp b/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp index 100bd4e9c..340655e36 100644 --- a/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp +++ b/code/nel/tools/misc/data_mirror/data_mirrorDlg.cpp @@ -20,6 +20,7 @@ #include "progress_dialog.h" #include #include "nel/misc/file.h" +#include "nel/misc/common.h" using namespace std; using namespace NLMISC; @@ -468,9 +469,13 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Modified file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp ,"at"); + + if (f) + { + fprintf(f,"Modified file : %s\n", dest.c_str()); + fclose(f); + } } } @@ -503,9 +508,12 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Added file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp, "at"); + if (f) + { + fprintf(f,"Added file : %s\n", dest.c_str()); + fclose(f); + } } } @@ -535,9 +543,13 @@ void CData_mirrorDlg::OnOK() if (!LogDirectory.empty()) { string sTmp = LogDirectory + "data_mirror.txt"; - FILE *f = fopen(sTmp.c_str(),"at"); - fprintf(f,"Removed file : %s\n", dest.c_str()); - fclose(f); + FILE *f = nlfopen(sTmp, "at"); + + if (f) + { + fprintf(f,"Removed file : %s\n", dest.c_str()); + fclose(f); + } } } } diff --git a/code/nel/tools/misc/disp_sheet_id/main.cpp b/code/nel/tools/misc/disp_sheet_id/main.cpp index 7445023ce..c7fe6f782 100644 --- a/code/nel/tools/misc/disp_sheet_id/main.cpp +++ b/code/nel/tools/misc/disp_sheet_id/main.cpp @@ -40,6 +40,7 @@ int _getch() #include "nel/misc/path.h" #include "nel/misc/sheet_id.h" +#include "nel/misc/common.h" #include @@ -86,7 +87,7 @@ int main(int argc, const char *argv[]) sort(sheets.begin(), sheets.end(), Pred); // display. - FILE *out= fopen("sheetid.txt", "wb"); + FILE *out= nlfopen("sheetid.txt", "wb"); if(out) { for(uint i=0;i #include +#include #include #include @@ -567,9 +568,9 @@ int main( int argc, char ** argv ) // dump the list of extensions in a txt file if( dumpExtensions ) { - FILE * extListOutput; string extListFileName = outputPath + "sheet_ext.txt"; - if( !(extListOutput = fopen(extListFileName.c_str(),"w")) ) + FILE *extListOutput = nlfopen(extListFileName, "w"); + if (!extListOutput) { nlwarning("Can't open output file %s",extListFileName.c_str()); return 1; diff --git a/code/nel/tools/misc/xml_packer/xml_packer.cpp b/code/nel/tools/misc/xml_packer/xml_packer.cpp index 2d7695de4..7f7417020 100644 --- a/code/nel/tools/misc/xml_packer/xml_packer.cpp +++ b/code/nel/tools/misc/xml_packer/xml_packer.cpp @@ -17,6 +17,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/app_context.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/misc/algo.h" @@ -228,7 +229,7 @@ int main(int argc, char *argv[]) // read the index file set fileInIndex; char lineBuffer[1024]; - FILE *fp = fopen(indexFileName.c_str(), "rt"); + FILE *fp = nlfopen(indexFileName, "rt"); while (fgets(lineBuffer, 1024, fp)) fileInIndex.insert(CSString(lineBuffer).strip()); @@ -263,8 +264,8 @@ int main(int argc, char *argv[]) if (!validFiles.empty() && needRepack) { // open the pack file - // FILE *fp = fopen(filename.c_str(), "wt"); - FILE *fp = fopen(packFileName.c_str(), "wt"); + // FILE *fp = nlfopen(filename, "wt"); + FILE *fp = nlfopen(packFileName, "wt"); fprintf(fp, "\n"); @@ -275,7 +276,7 @@ int main(int argc, char *argv[]) printf("Adding file '%s'...\n", CFile::getFilename(subFileName).c_str()); fprintf(fp, " \n", CFile::getFilename(subFileName).c_str()); - FILE *subFp = fopen(subFileName.c_str(), "rt"); + FILE *subFp = nlfopen(subFileName, "rt"); nlassert(subFp != NULL); char buffer[MaxLineSize]; char *result; @@ -304,7 +305,7 @@ int main(int argc, char *argv[]) fclose(fp); // write the disposable index file used by pack to check for erased file - fp = fopen(indexFileName.c_str(), "wt"); + fp = nlfopen(indexFileName, "wt"); for (uint i=0; i") char str[1024]; - FILE *fp = fopen(fn.c_str(), "rt"); + FILE *fp = nlfopen(fn, "rt"); if (fp != NULL) { while (true) @@ -1654,7 +1654,7 @@ NLMISC_COMMAND(aesSystem, "Execute a system() call", "") log.displayNL("No stdout"); } - fp = fopen(fne.c_str(), "rt"); + fp = nlfopen(fne, "rt"); if (fp != NULL) { while (true) diff --git a/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp b/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp index a60f129fa..b55c8cdff 100644 --- a/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp +++ b/code/nelns/login_system/nel_launcher_windows_ext2/patch.cpp @@ -27,6 +27,7 @@ #endif #include "nel/misc/debug.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include "nel/misc/thread.h" @@ -586,7 +587,7 @@ private: string dest = filename.substr(0, filename.size ()-4); setRWAccess(dest); if(VerboseLog) nlinfo("Calling fopen('%s','wb')", dest.c_str()); - FILE *fp = fopen (dest.c_str(), "wb"); + FILE *fp = nlfopen (dest, "wb"); if (fp == NULL) { string err = toString("Can't open file '%s' : code=%d %s, (error code 32)", dest.c_str(), errno, strerror(errno)); diff --git a/code/ryzom/server/src/admin_modules/aes_module.cpp b/code/ryzom/server/src/admin_modules/aes_module.cpp index 734dfff64..aee6da68a 100644 --- a/code/ryzom/server/src/admin_modules/aes_module.cpp +++ b/code/ryzom/server/src/admin_modules/aes_module.cpp @@ -19,6 +19,7 @@ #include "nel/misc/singleton.h" #include #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/net/module.h" #include "nel/net/module_builder_parts.h" #include "nel/net/unified_network.h" @@ -297,7 +298,7 @@ namespace ADMIN // read the persistent state file if any string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+AESPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "rt"); + FILE *fp = nlfopen(filename, "rt"); if (fp != NULL) { char buffer[1024]; @@ -567,7 +568,7 @@ namespace ADMIN if (now > _LastNagiosReport+_NagiosReportDelay) { // write the nagios report - FILE *fp = fopen("aes_nagios_report.txt", "wt"); + FILE *fp = nlfopen("aes_nagios_report.txt", "wt"); if (fp != NULL) { // output the current date @@ -632,7 +633,7 @@ namespace ADMIN { /// The persistent service orders need to be saved string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+AESPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "wt"); + FILE *fp = nlfopen(filename, "wt"); if (fp != NULL) { { @@ -801,7 +802,7 @@ namespace ADMIN std::string getOfflineServiceState(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServiceStateFileName(serviceAlias).c_str(),"rt"); + FILE* f= nlfopen(getServiceStateFileName(serviceAlias), "rt"); if (f==NULL) return "STOPPED"; // setup a buffer to hold the text read from the file @@ -825,7 +826,7 @@ namespace ADMIN uint32 getOfflineServicePID(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServicePIDFileName(serviceAlias).c_str(),"rt"); + FILE* f = nlfopen(getServicePIDFileName(serviceAlias), "rt"); if (f==NULL) return 0; // setup a buffer to hold the text read from the file @@ -853,7 +854,7 @@ namespace ADMIN uint32 getServiceStartLoopCounter(const std::string& serviceAlias) { // open the file for reading - FILE* f= fopen(getServiceLoopCounterFileName(serviceAlias).c_str(),"rt"); + FILE* f= nlfopen(getServiceLoopCounterFileName(serviceAlias), "rt"); if (f==NULL) return 0; @@ -936,7 +937,7 @@ namespace ADMIN NLMISC::CFile::createDirectoryTree(path); // open the file for writing - FILE* f= fopen(getServiceLaunchCtrlFileName(serviceAlias, path, deferred).c_str(),"wt"); + FILE* f = nlfopen(getServiceLaunchCtrlFileName(serviceAlias, path, deferred).c_str(),"wt"); if (f==NULL) return false; // write the text to the file diff --git a/code/ryzom/server/src/admin_modules/as_module.cpp b/code/ryzom/server/src/admin_modules/as_module.cpp index 9717da358..da4b85485 100644 --- a/code/ryzom/server/src/admin_modules/as_module.cpp +++ b/code/ryzom/server/src/admin_modules/as_module.cpp @@ -18,6 +18,7 @@ #include "nel/misc/types_nl.h" #include #include "nel/misc/file.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/misc/mutable_container.h" #include "nel/net/service.h" @@ -195,7 +196,7 @@ namespace ADMIN // read the persistent state file if any string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+ASPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "rt"); + FILE *fp = nlfopen(filename, "rt"); if (fp != NULL) { char buffer[1024]; @@ -232,7 +233,7 @@ namespace ADMIN if (_NeedToWriteStateFile) { string filename = CPath::standardizePath(IService::getInstance()->SaveFilesDirectory.toString(), true)+ASPersistentStateFilename; - FILE *fp = fopen(filename.c_str(), "wt"); + FILE *fp = nlfopen(filename, "wt"); if (fp != NULL) { CSString line; diff --git a/code/ryzom/server/src/ai_data_service/pacs_scan.cpp b/code/ryzom/server/src/ai_data_service/pacs_scan.cpp index 48dd8c189..b99009bed 100644 --- a/code/ryzom/server/src/ai_data_service/pacs_scan.cpp +++ b/code/ryzom/server/src/ai_data_service/pacs_scan.cpp @@ -18,6 +18,7 @@ #include "nel/misc/command.h" #include "nel/misc/variable.h" +#include "nel/misc/common.h" #include "nel/misc/aabbox.h" #include "nel/misc/vector.h" #include "nel/misc/vectord.h" @@ -1979,7 +1980,7 @@ public: CBMP4Image<2,2>::SHdr imageHdr(imageWidth, imageHeight); CBMP4Image<2,2>::SPalette imagePalette; - FILE *outf = fopen((OutputPath+name+".bmp").c_str(),"wb"); + FILE *outf = nlfopen(OutputPath+name+".bmp", "wb"); if (outf == NULL) return; @@ -2095,8 +2096,8 @@ public: CBMP4Image<2,2>::SHdr imageHdr(imageWidth, imageHeight); CBMP4Image<2,2>::SPalette imagePalette; - FILE *outf = fopen((OutputPath+name+".bmp").c_str(),"wb"); - FILE *outfh = fopen((OutputPath+name+"_hm.bmp").c_str(),"wb"); + FILE *outf = nlfopen(OutputPath+name+".bmp", "wb"); + FILE *outfh = nlfopen(OutputPath+name+"_hm.bmp", "wb"); if (outf == NULL) return; diff --git a/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp b/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp index d7b25129d..7a94283c0 100644 --- a/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp +++ b/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp @@ -183,7 +183,7 @@ std::string CAIScriptDataManager::dirname() // string fullfilename = dirname() + "/" + name + ".ai_script_data"; // if (!CFile::fileExists(fullfilename) || CFile::getFileSize(fullfilename)==0) // { -// FILE* fp = fopen(fullfilename.c_str(), "w"); +// FILE* fp = nlfopen(fullfilename, "w"); // if (fp) // { // fprintf(fp, "// This file contains data for the AI script\n"); diff --git a/code/ryzom/server/src/entities_game_service/deposit.cpp b/code/ryzom/server/src/entities_game_service/deposit.cpp index d4cd560ad..37b8a03a7 100644 --- a/code/ryzom/server/src/entities_game_service/deposit.cpp +++ b/code/ryzom/server/src/entities_game_service/deposit.cpp @@ -25,6 +25,7 @@ #include "entities_game_service.h" #include "egs_globals.h" #include "nel/misc/noise_value.h" +#include "nel/misc/common.h" #include "nel/misc/variable.h" #include "nel/misc/words_dictionary.h" #include "game_share/time_weather_season/time_date_season_manager.h" @@ -587,7 +588,7 @@ void CDeposit::selectRMsByFilters( std::vector& exactRMCodesS, cons if ( ! depositReportCreated ) { depositReportCreated = true; - depositReportFile = fopen( "deposit_contents.csv", "wt" ); // fclose() auto? + depositReportFile = nlfopen( "deposit_contents.csv", "wt" ); // fclose() auto? if ( depositReportFile ) { fprintf( depositReportFile, "Deposit;RM;When in year;When in day;Weather;\n" ); diff --git a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp index 80518f463..390916885 100644 --- a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp +++ b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item.cpp @@ -2564,8 +2564,7 @@ void CGameItem::dumpGameItemStats( const string& fileName ) { if( !fileName.empty() ) { - FILE * f; - f = fopen(fileName.c_str(),"w"); + FILE *f = nlfopen(fileName, "w"); if(f) { diff --git a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp index 72e9b2c8c..17d4d7d55 100644 --- a/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp +++ b/code/ryzom/server/src/entities_game_service/game_item_manager/game_item_manager.cpp @@ -791,7 +791,7 @@ void CGameItemManager::destroyItem( CGameItemPtr &ptr ) //void CGameItemManager::dumpGameItemList( const string& fileName ) //{ // FILE * f; -// f = fopen(fileName.c_str(),"w"); +// f = nlfopen(fileName, "w"); // // if(f) // { diff --git a/code/ryzom/server/src/entities_game_service/harvest_source.cpp b/code/ryzom/server/src/entities_game_service/harvest_source.cpp index dcae55a60..3da4285b5 100644 --- a/code/ryzom/server/src/entities_game_service/harvest_source.cpp +++ b/code/ryzom/server/src/entities_game_service/harvest_source.cpp @@ -1240,8 +1240,8 @@ bool forageTestDoExtract( } // Request and output results - FILE *f = fopen( std::string(getLogDirectory() + "forage_test.csv").c_str(), "at" ); - FILE *f2 = fopen( std::string(getLogDirectory() + "forage_test.log").c_str(), "at" ); + FILE *f = nlfopen(getLogDirectory() + "forage_test.csv", "at" ); + FILE *f2 = nlfopen(getLogDirectory() + "forage_test.log", "at" ); float reqS = 1.0f / (reqPeriod * 10.0f); float req [CHarvestSource::NbPosRTProps]; float abs [CHarvestSource::NbPosRTProps]; diff --git a/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp b/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp index f2fc03eb0..b45a6043d 100644 --- a/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp +++ b/code/ryzom/server/src/entities_game_service/phrase_manager/fg_prospection_phrase.cpp @@ -1884,13 +1884,13 @@ void CDepositMapsBatchTask::run() if ( ! CFile::isExists( pathName ) ) CFile::createDirectory( pathName ); pathName += "/"; - FILE *outputF = fopen( (pathName + "deposit_maps.html").c_str(), "w" ); + FILE *outputF = nlfopen(pathName + "deposit_maps.html", "w"); if ( ! outputF ) { nlwarning( "Can't create file %sdeposit_maps.html", pathName.c_str() ); return; } - FILE *inputF = fopen( _InputFilename.c_str(), "r" ); + FILE *inputF = nlfopen(_InputFilename, "r"); if ( ! inputF ) { fprintf( outputF, "File %s not found", _InputFilename.c_str() ); diff --git a/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp b/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp index 2d16c7177..fce468fb4 100644 --- a/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp +++ b/code/ryzom/server/src/entities_game_service/player_manager/cdb_synchronised.cpp @@ -192,7 +192,7 @@ void CCDBSynchronised::write( const string& fileName ) if ( _DataStructRoot ) { TWriteCallbackArg wca; - wca.F = fopen( fileName.c_str(),"w" ); + wca.F = nlfopen(fileName, "w"); wca.Container = &_DataContainer; ICDBStructNode::CTextId id; _DataStructRoot->foreachLeafCall( cbWrite, id, &wca ); diff --git a/code/ryzom/server/src/entities_game_service/player_manager/player.cpp b/code/ryzom/server/src/entities_game_service/player_manager/player.cpp index fa5e216ae..628a26e9f 100644 --- a/code/ryzom/server/src/entities_game_service/player_manager/player.cpp +++ b/code/ryzom/server/src/entities_game_service/player_manager/player.cpp @@ -102,11 +102,11 @@ void CPlayer::checkCrashMarker() if (!CFile::isExists(LastLoadFileName)) { // create the file if needed - nlverify(LastLoad = fopen(LastLoadFileName, "wb")); + nlverify(LastLoad = nlfopen(LastLoadFileName, "wb")); fclose(LastLoad); } - nlverify(LastLoad = fopen(LastLoadFileName, "r+b")); + nlverify(LastLoad = nlfopen(LastLoadFileName, "r+b")); // check uint32 lastBad[2]; diff --git a/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp b/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp index bbe2217c0..bfc33c1d6 100644 --- a/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp +++ b/code/ryzom/server/src/general_utilities_service/cl_contest_logger.cpp @@ -118,7 +118,7 @@ void CSession::log(const NLMISC::CSString& lang,const NLMISC::CSString& txt) nlassert(!fileName.empty()); nlinfo("Opening new log file: %s",fileName.c_str()); - _Files[lang]= fopen(fileName.c_str(),"wb"); + _Files[lang]= nlfopen(fileName, "wb"); DROP_IF(_Files[lang]==NULL,"Failed to open log file for writing: "+fileName,return); } fprintf(_Files[lang],"%s\n",txt.c_str()); diff --git a/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp b/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp index ee7669e19..b6423e37a 100644 --- a/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp +++ b/code/ryzom/server/src/general_utilities_service/rr_repository_reciever.cpp @@ -391,7 +391,7 @@ void CRepositoryReceiver::beginFile(NLNET::IModuleProxy *sender, const std::stri _CurrentFileExpected= fileSize; // open the temp file - _CurrentFileHandle= fopen(rrTempFileName(_TargetDirectory,_EmitterName).c_str(),"wb"); + _CurrentFileHandle= nlfopen(rrTempFileName(_TargetDirectory,_EmitterName), "wb"); BOMB_IF(_CurrentFileHandle==NULL,"Failed to open temporary file for writing: "+rrTempFileName(_TargetDirectory,_EmitterName),return); } diff --git a/code/ryzom/server/src/log_analyser_service/commands.cpp b/code/ryzom/server/src/log_analyser_service/commands.cpp index 1b70ae4e2..90bfcf09c 100644 --- a/code/ryzom/server/src/log_analyser_service/commands.cpp +++ b/code/ryzom/server/src/log_analyser_service/commands.cpp @@ -88,7 +88,7 @@ public: NLMISC::CFile::deleteFile(_TmpFileName); DROP_IF(NLMISC::CFile::fileExists(_TmpFileName),"Failed to delete file: "+_TmpFileName,return); - _File= fopen(_TmpFileName.c_str(),"wb"); + _File = nlfopen(_TmpFileName,"wb"); } ~CSimpleFileDisplayer() diff --git a/code/ryzom/server/src/logger_service/logger_service.cpp b/code/ryzom/server/src/logger_service/logger_service.cpp index cb51c6a6d..d5d0775fc 100644 --- a/code/ryzom/server/src/logger_service/logger_service.cpp +++ b/code/ryzom/server/src/logger_service/logger_service.cpp @@ -19,6 +19,7 @@ #include #include "nel/misc/time_nl.h" #include "nel/misc/thread.h" +#include "nel/misc/common.h" #include "nel/misc/random.h" #include "nel/misc/singleton.h" #include "nel/net/service.h" @@ -926,7 +927,7 @@ public: // prepare the output file string outputFile = queryOptions.OutputPrefix+LogQueryResultFile.get(); - FILE *fp = fopen(outputFile.c_str(), "wt");; + FILE *fp = nlfopen(outputFile, "wt");; if (fp == NULL) { _QueryStatus.write(TThreadStatus(qs_push_state, "ErrorWritingQueryResult")); diff --git a/code/ryzom/server/src/patchman_service/file_manager.cpp b/code/ryzom/server/src/patchman_service/file_manager.cpp index ca3582bc6..52a41a080 100644 --- a/code/ryzom/server/src/patchman_service/file_manager.cpp +++ b/code/ryzom/server/src/patchman_service/file_manager.cpp @@ -21,6 +21,7 @@ // nel #include "nel/misc/variable.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" // game share #include "game_share/utils.h" @@ -599,7 +600,7 @@ namespace PATCHMAN // nldebug("- Reading file data @offset: %d (%d bytes)",newFileEntry.StartOffset,fileSize); // read in the file - FILE* inf= fopen(fileName.c_str(),"rb"); + FILE* inf = nlfopen(fileName, "rb"); BOMB_IF(inf==NULL,"Failed to open input file for reading: "+fileName,return false); uint32 bytesRead=(uint32)fread(&_CacheBuffer[newFileEntry.StartOffset],1,fileSize,inf); fclose(inf); diff --git a/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp b/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp index 9bc2db322..3d413b0cf 100644 --- a/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp +++ b/code/ryzom/server/src/patchman_service/rr_repository_reciever.cpp @@ -409,7 +409,7 @@ void CRepositoryReceiver::fileList(NLNET::IModuleProxy *sender, uint32 version, // _CurrentFileExpected= fileSize; // // // open the temp file -// _CurrentFileHandle= fopen(rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName).c_str(),"wb"); +// _CurrentFileHandle= nlfopen(rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName), "wb"); // BOMB_IF(_CurrentFileHandle==NULL,"Failed to open temporary file for writing: "+rrTempFileName(_TargetDirectories.patchDirectoryName(),_EmitterName),return); // } // diff --git a/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp b/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp index 2cce1354e..9dc112c3c 100644 --- a/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp +++ b/code/ryzom/server/src/patchman_service/spt_server_patch_terminal.cpp @@ -20,6 +20,7 @@ // nel #include "nel/misc/variable.h" +#include "nel/misc/common.h" #include "nel/net/service.h" #include "nel/net/module.h" #include "nel/net/module_builder_parts.h" @@ -775,7 +776,7 @@ NLMISC_CLASS_COMMAND_IMPL(CServerPatchTerminal, depDevCfg) CSString cfgFileName= appDesc.CmdLine.firstWord()+".cfg"; string fileName = configDirectory+cfgFileName; - FILE *fp = fopen(fileName.c_str(), "wt"); + FILE *fp = nlfopen(fileName, "wt"); nlassert(fp != NULL); fwrite(appDesc.CfgFile.data(), appDesc.CfgFile.size(), 1, fp); fclose(fp); @@ -808,7 +809,7 @@ NLMISC_CLASS_COMMAND_IMPL(CServerPatchTerminal, depDevCfg) batch << "start " << cmdLine; fileName = DevConfigDirectory.get()+"/start_"+appDesc.ShardName+"_"+appDesc.StartOrder+"_"+appDesc.AppName+".bat"; - fp = fopen(fileName.c_str(), "wt"); + fp = nlfopen(fileName, "wt"); nlassert(fp != NULL); fwrite(batch.data(), batch.size(), 1, fp); fclose(fp); diff --git a/code/ryzom/server/src/pd_lib/pd_server_utils.h b/code/ryzom/server/src/pd_lib/pd_server_utils.h index ac67e8a7a..2e7c06363 100644 --- a/code/ryzom/server/src/pd_lib/pd_server_utils.h +++ b/code/ryzom/server/src/pd_lib/pd_server_utils.h @@ -22,6 +22,7 @@ */ #include #include +#include #include #include @@ -282,7 +283,7 @@ public: if (_File != NULL) return false; - _File = fopen(filename, mode); + _File = nlfopen(filename, mode); if (_File == NULL) return false; diff --git a/code/ryzom/server/src/pd_support_service/daily_commands.cpp b/code/ryzom/server/src/pd_support_service/daily_commands.cpp index e3f6d718c..c96310932 100644 --- a/code/ryzom/server/src/pd_support_service/daily_commands.cpp +++ b/code/ryzom/server/src/pd_support_service/daily_commands.cpp @@ -19,6 +19,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/net/service.h" #include "game_share/utils.h" @@ -101,7 +102,7 @@ public: ptm = gmtime(&endTime); // write to the log file - FILE* fileHandle= fopen(DailyActivityLogFileName,"ab"); + FILE* fileHandle= nlfopen(DailyActivityLogFileName,"ab"); nlassert(fileHandle!=NULL); fprintf(fileHandle,"%02u/%02u/%u CDailyTaskScheduler: Started: %02u:%02u, Finished: %02u:%02u, Executed %u commands Started %u Jobs\n", ptm->tm_mday, ptm->tm_mon+1, ptm->tm_year+1900, (uint)startTime/3600%24, (uint)startTime/60%60, (uint)endTime/3600%24, (uint)endTime/60%60, commandsVar==NULL?0:commandsVar->size(), jobsRemaining ); diff --git a/code/ryzom/server/src/pd_support_service/hourly_commands.cpp b/code/ryzom/server/src/pd_support_service/hourly_commands.cpp index 6f77396ae..cad7c25ee 100644 --- a/code/ryzom/server/src/pd_support_service/hourly_commands.cpp +++ b/code/ryzom/server/src/pd_support_service/hourly_commands.cpp @@ -19,6 +19,7 @@ #include "nel/misc/types_nl.h" #include "nel/misc/file.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/misc/sstring.h" #include "nel/net/service.h" #include "game_share/utils.h" @@ -101,7 +102,7 @@ public: ptm = gmtime(&endTime); // write to the log file - FILE* fileHandle= fopen(HourlyActivityLogFileName,"ab"); + FILE* fileHandle= nlfopen(HourlyActivityLogFileName,"ab"); nlassert(fileHandle!=NULL); fprintf(fileHandle,"%02u/%02u/%u CHourlyTaskScheduler: Started: %02u:%02u, Finished: %02u:%02u, Executed %u commands Started %u Jobs\n", ptm->tm_mday, ptm->tm_mon+1, ptm->tm_year+1900, (uint)startTime/3600%24, (uint)startTime/60%60, (uint)endTime/3600%24, (uint)endTime/60%60, commandsVar==NULL?0:commandsVar->size(), jobsRemaining ); diff --git a/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp b/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp index b81886a47..996c838e2 100644 --- a/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp +++ b/code/ryzom/server/src/testing_tool_service/testing_tool_service.cpp @@ -31,6 +31,7 @@ // Nel #include "nel/misc/sheet_id.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/georges/u_form_elm.h" #include "nel/georges/u_form.h" #include "nel/georges/u_form_loader.h" @@ -270,7 +271,7 @@ void CTestingTool::startTestSession( const std::string& sheet ) //---------------------------------------------------------------- void CTestingTool::testSessionProceed() { - _TestSessionReport = fopen( "testSessionReport.txt", "w+t" ); + _TestSessionReport = nlfopen( "testSessionReport.txt", "w+t" ); fputs( "=====================================================================\n", _TestSessionReport ); fputs( "===================== NEW TEST SESSION STARTED ======================\n", _TestSessionReport ); diff --git a/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp b/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp index dbd917b0f..d9097d4cf 100644 --- a/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp +++ b/code/ryzom/tools/leveldesign/mission_compiler_fe/mission_compiler_feDlg.cpp @@ -23,6 +23,7 @@ #include "CompilDialog.h" #include "nel/misc/path.h" +#include "nel/misc/common.h" #include "nel/ligo/primitive.h" #include "../mission_compiler_lib/mission_compiler.h" #include "nel/misc/config_file.h" @@ -201,7 +202,7 @@ BOOL CMissionCompilerFeDlg::OnInitDialog() if (NLMISC::CFile::fileExists(tmpPath)) { - FILE *f = fopen(tmpPath, "r"); + FILE *f = nlfopen(tmpPath, "r"); if (f == NULL) { nlinfo("Can't open the file for reading !\n%s", tmpPath); @@ -762,7 +763,7 @@ void CValidationFile::saveMissionValidationFile(string filename) nlwarning("Can't find index file '%s' in search path, no mission will be valid", filename.c_str()); return; } - FILE* file = fopen(pathName.c_str(), "w"); + FILE* file = nlfopen(pathName, "w"); nlassert(file!=NULL); // AuthorizedStates diff --git a/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp b/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp index fd119e0df..09d9fc723 100644 --- a/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp +++ b/code/ryzom/tools/leveldesign/mission_compiler_lib/mission_compiler.cpp @@ -17,6 +17,7 @@ #include "mission_compiler.h" #include "step.h" #include "nel/misc/i18n.h" +#include "nel/misc/common.h" #include "nel/ligo/primitive_utils.h" using namespace std; @@ -876,7 +877,7 @@ bool CMissionCompiler::publishFiles(const std::string &serverPathPrim, const std bool CMissionCompiler::includeText(const std::string filename, const std::string text) { - FILE *f = fopen(filename.c_str(), "r+"); + FILE *f = nlfopen(filename, "r+"); if (f == NULL) return false; diff --git a/code/ryzom/tools/leveldesign/mp_generator/main.cpp b/code/ryzom/tools/leveldesign/mp_generator/main.cpp index 935ba31d6..1766a3b3b 100644 --- a/code/ryzom/tools/leveldesign/mp_generator/main.cpp +++ b/code/ryzom/tools/leveldesign/mp_generator/main.cpp @@ -17,6 +17,7 @@ #include "moulinette.h" #include "utils.h" #include "nel/misc/algo.h" +#include "nel/misc/common.h" TRMItem currentDocItem; CRMData SortableData; @@ -1279,7 +1280,7 @@ void ItemNamesSave() CSString data, output; FILE* file; - file = fopen( ITEM_WORDS_WK.c_str(), "rb" ); + file = nlfopen( ITEM_WORDS_WK, "rb" ); char c; fread( &c, 1, 1, file ); diff --git a/code/ryzom/tools/leveldesign/mp_generator/utils.h b/code/ryzom/tools/leveldesign/mp_generator/utils.h index efa42149d..af9f7096a 100644 --- a/code/ryzom/tools/leveldesign/mp_generator/utils.h +++ b/code/ryzom/tools/leveldesign/mp_generator/utils.h @@ -19,6 +19,8 @@ #include +#include "nel/misc/common.h" + // DtName must be the 1st one enum TDataCol { DtName, DtTitle, DtRMFamily, DtGroup, DtEcosystem, DtLevelZone, DtStatQuality, DtProp, DtCreature, DtCreaTitle, DtCraftSlotName, DtCraftCivSpec, DtColor, DtAverageEnergy, DtMaxLevel, DtCustomizedProperties, DtNbCols }; const char *DataColStr [DtNbCols] = { "Code", "Name", "Family", "Group", "Ecosystem", "LevelZone", "Stat Quality", "Properties", "Creature sheets", "Creatures", "Item parts", "Craft civ spec", "Color", "Average energy", "Max level", "Customized" }; @@ -276,7 +278,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); if(!_File) { throw Exception("Could not open html: %s", filename.c_str()); diff --git a/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp b/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp index 6ab9e2a26..f2fa783dc 100644 --- a/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp +++ b/code/ryzom/tools/leveldesign/named_items_2_csv/named_items_2_csv.cpp @@ -57,7 +57,7 @@ vector items; // check the items file (locSlot and item number coherence) int verifItemsFile (const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -89,7 +89,7 @@ int verifItemsFile (const char *filename) // check csv file (locSlot and item number coherence) int verifCsvFile (const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -165,7 +165,7 @@ int getItemsFromFile(const char *filename) // fill 'fields' structure with values from file int getFieldsFromFile(const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -190,7 +190,7 @@ int getFieldsFromFile(const char *filename) // parse the file to count the number of items int getNbItemFromFile(const char *filename) { - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -214,7 +214,7 @@ int exportCsv(const char *filename) nlassert(fields.size() != 0); uint i, j; - FILE *f = fopen(filename, "w"); + FILE *f = nlfopen(filename, "w"); if (f == NULL) nlerror("Can't open file : %s", filename); @@ -241,7 +241,7 @@ int importCsv(const char *filename) verifCsvFile(filename); char buffer[1024]; - FILE *f = fopen(filename, "r"); + FILE *f = nlfopen(filename, "r"); if (f == NULL) nlerror("Can't open file : %s", filename); diff --git a/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp b/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp index 08c1b255f..b3737b6a9 100644 --- a/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp +++ b/code/ryzom/tools/leveldesign/primitive_id_assignator/primitive_id_assignator.cpp @@ -19,6 +19,7 @@ #include "nel/misc/config_file.h" #include "nel/misc/path.h" #include "nel/misc/file.h" +#include "nel/misc/common.h" using namespace std; @@ -57,7 +58,7 @@ int main(int argc, char *argv[]) { // build a default config file string fileName = vif.asString(); - FILE *fp = fopen(fileName.c_str(), "wt"); + FILE *fp = nlfopen(fileName.c_str(), "wt"); if (fp == NULL) { nlwarning("Can't open file '%s' for writing", diff --git a/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp b/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp index 1bbe82dcc..fa593d67d 100644 --- a/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp +++ b/code/ryzom/tools/leveldesign/uni_conv/uni_conv.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -121,7 +122,7 @@ int main(int argc, char *argv[]) case ASCII: { string s = str.toString(); - FILE *fp = fopen(outputFile.c_str(), "wt"); + FILE *fp = nlfopen(outputFile, "wt"); fwrite(s.data(), s.size(), 1, fp); fclose(fp); } diff --git a/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp b/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp index a70813f47..17fd397da 100644 --- a/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp +++ b/code/ryzom/tools/leveldesign/world_editor/world_editor/main_frm.cpp @@ -46,6 +46,7 @@ #include "editor_primitive.h" #include "file_dialog_ex.h" #include "nel/misc/mem_stream.h" +#include "nel/misc/common.h" #include @@ -4334,7 +4335,7 @@ void CMainFrame::OnMissionCompiler() GetEnvironmentVariable("TMP", tmpPath, MAX_PATH); strcat(tmpPath, "\\tmptool.txt"); - FILE *f = fopen(tmpPath, "w"); + FILE *f = nlfopen(tmpPath, "w"); if (f==NULL) infoMessage("Can't open file for writing !\n%s", tmpPath); diff --git a/code/ryzom/tools/occ2huff/occ2huff.cpp b/code/ryzom/tools/occ2huff/occ2huff.cpp index 500e76735..55b3f20b1 100644 --- a/code/ryzom/tools/occ2huff/occ2huff.cpp +++ b/code/ryzom/tools/occ2huff/occ2huff.cpp @@ -257,7 +257,7 @@ sint main( sint argc, char ** argv ) // TEST /*printf("Writing debug text file...\n"); - FILE * outputTest = fopen("chat_static_base_test.log","wt"); + FILE * outputTest = nlfopen("chat_static_base_test.log","wt"); for( itBase = base.begin(); itBase != base.end(); ++itBase ) { fprintf(outputTest,"id: %s str: %s occ: %d\n",(*itBase).second.Id.c_str(),(*itBase).second.Str.c_str(), (*itBase).second.Occurence ); diff --git a/code/ryzom/tools/pd_parser/templatizer.h b/code/ryzom/tools/pd_parser/templatizer.h index 308fdeb2e..5087e033a 100644 --- a/code/ryzom/tools/pd_parser/templatizer.h +++ b/code/ryzom/tools/pd_parser/templatizer.h @@ -1009,7 +1009,7 @@ public: std::string result = ITemplatizerBloc::eval(env); FILE* f; - f = fopen(filename.c_str(), (clearfile == "true" ? "w" : "a")); + f = nlfopen(filename, (clearfile == "true" ? "w" : "a")); if (f != NULL) { fwrite(result.c_str(), 1, result.size(), f); diff --git a/code/ryzom/tools/phrase_generator/phrase_generator.cpp b/code/ryzom/tools/phrase_generator/phrase_generator.cpp index 6fa71e9ae..de02680ca 100644 --- a/code/ryzom/tools/phrase_generator/phrase_generator.cpp +++ b/code/ryzom/tools/phrase_generator/phrase_generator.cpp @@ -33,6 +33,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include #include @@ -275,7 +276,7 @@ void loadCSVFile( const char *filename, TDeliveryCallback deliveryCallback ) vector args; vector::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1282,7 +1283,7 @@ void usage(char *argv0, FILE *out) //----------------------------------------------- void makeIndexFile() { - FILE * indexFile = fopen( ("_" + DocFileNameRoot + "_INDEX.html").c_str(), "wt" ); + FILE * indexFile = nlfopen( "_" + DocFileNameRoot + "_INDEX.html", "wt" ); if( indexFile ) { fprintf( indexFile, ("\n\nSummary of " + DocFileNameRoot + "\n\n").c_str() ); @@ -1295,7 +1296,7 @@ void makeIndexFile() for ( uint l=0; l!=26; ++l ) { string filename = toString( "%s_%c.html", DocFileName.c_str(), 'a'+l ); - PhraseDocFiles[l] = fopen( filename.c_str(), "wt" ); + PhraseDocFiles[l] = nlfopen( filename, "wt" ); fprintf( PhraseDocFiles[l], ("\n\n" + DocFileName + toString( " - %c", (char)('A'+l) ) + "\n\n").c_str() ); fprintf( indexFile, ("" + (char)('A'+l) + " ").c_str() ); } @@ -1304,7 +1305,7 @@ void makeIndexFile() { // One single HTML file fprintf( indexFile, ("Go to action details").c_str() ); - PhraseDocFiles[0] = fopen( (DocFileName + ".html").c_str(), "wt" ); + PhraseDocFiles[0] = nlfopen( DocFileName + ".html", "wt" ); fprintf( PhraseDocFiles[0], ("\n\n" + DocFileName + "\n\n").c_str() ); for ( uint l=1; l!=26; ++l ) { @@ -1393,7 +1394,7 @@ void makeIndexFile() void makeActionsBySkillGroupFile() { // progression by skill - FILE * actionsBySkillGroupFile = fopen( (DocFileName + "__by_skill.html").c_str(), "wt" ); + FILE * actionsBySkillGroupFile = nlfopen( DocFileName + "__by_skill.html", "wt" ); if( actionsBySkillGroupFile ) { fprintf( actionsBySkillGroupFile, ("\n\nProgression of " + DocFileName + "\n\n").c_str() ); @@ -1489,7 +1490,7 @@ void makeActionsBySkillValueFile() //----------------------------------------------- void makeActionsBySkillValueDetailFile() { - FILE * actionsBySkillValueDetailFile = fopen( (DocFileName + "__by_skill_value_detail.html").c_str(), "wt" ); + FILE * actionsBySkillValueDetailFile = nlfopen( DocFileName + "__by_skill_value_detail.html", "wt" ); if( actionsBySkillValueDetailFile ) { fprintf( actionsBySkillValueDetailFile, ("\n\nProgression of " + DocFileName + "\n\n").c_str() ); @@ -1627,9 +1628,9 @@ void makeSkillTreeFile( char filter, string skillFamily, bool withTraduction ) string filenameWithTraduction = skillFamily + "_skill_tree_detailed.html"; FILE * skillTreeFile; if( withTraduction ) - skillTreeFile = fopen( filenameWithTraduction.c_str(), "wt" ); + skillTreeFile = nlfopen( filenameWithTraduction, "wt" ); else - skillTreeFile = fopen( filename.c_str(), "wt" ); + skillTreeFile = nlfopen( filename, "wt" ); fprintf( skillTreeFile,"\n"); fprintf( skillTreeFile,"\n"); fprintf( skillTreeFile,"SKILL TREE ( %s )\n",skillFamily.c_str()); @@ -1980,7 +1981,7 @@ int main(int argc, char* argv[]) // write header and title bar string filename; filename = DocFileNameRoot + "_m.html"; - FILE * brickPhraseDocFile_m = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_m = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_m,"\n"); fprintf( brickPhraseDocFile_m,"\n"); fprintf( brickPhraseDocFile_m,"Brick phrases\n"); @@ -1988,7 +1989,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_m,"\n"); filename = DocFileNameRoot + "_c.html"; - FILE * brickPhraseDocFile_c = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_c = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_c,"\n"); fprintf( brickPhraseDocFile_c,"\n"); fprintf( brickPhraseDocFile_c,"Brick phrases\n"); @@ -1996,7 +1997,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_c,"
\n"); filename = DocFileNameRoot + "_o.html"; - FILE * brickPhraseDocFile_o = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_o = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_o,"\n"); fprintf( brickPhraseDocFile_o,"\n"); fprintf( brickPhraseDocFile_o,"Brick phrases\n"); @@ -2004,7 +2005,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_o,"
\n"); filename = DocFileNameRoot + "_p.html"; - FILE * brickPhraseDocFile_p = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_p = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_p,"\n"); fprintf( brickPhraseDocFile_p,"\n"); fprintf( brickPhraseDocFile_p,"Brick phrases\n"); @@ -2012,7 +2013,7 @@ int main(int argc, char* argv[]) fprintf( brickPhraseDocFile_p,"
\n"); filename = DocFileNameRoot + "_e.html"; - FILE * brickPhraseDocFile_e = fopen( filename.c_str(), "wt" ); + FILE * brickPhraseDocFile_e = nlfopen( filename, "wt" ); fprintf( brickPhraseDocFile_e,"\n"); fprintf( brickPhraseDocFile_e,"\n"); fprintf( brickPhraseDocFile_e,"Brick phrases\n"); @@ -2082,7 +2083,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + ".html"; - FILE * brickDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickDocFile = nlfopen( filename, "wt" ); fprintf( brickDocFile,"\n"); fprintf( brickDocFile,"\n"); fprintf( brickDocFile,"Bricks infos\n"); @@ -2197,7 +2198,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_name.html"; - FILE * brickNameDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickNameDocFile = nlfopen( filename, "wt" ); fprintf( brickNameDocFile,"\n"); fprintf( brickNameDocFile,"\n"); fprintf( brickNameDocFile,"Bricks infos\n"); @@ -2332,7 +2333,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_family.html"; - FILE * brickFamilyDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickFamilyDocFile = nlfopen( filename, "wt" ); fprintf( brickFamilyDocFile,"\n"); fprintf( brickFamilyDocFile,"\n"); fprintf( brickFamilyDocFile,"Bricks infos\n"); @@ -2464,7 +2465,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_required_skill_value.html"; - FILE * brickRequiredDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickRequiredDocFile = nlfopen( filename, "wt" ); fprintf( brickRequiredDocFile,"\n"); fprintf( brickRequiredDocFile,"\n"); fprintf( brickRequiredDocFile,"Bricks infos\n"); @@ -2607,7 +2608,7 @@ int main(int argc, char* argv[]) // write header and title bar filename = DocFileNameRoot + "_learn_skill_value.html"; - FILE * brickLearnDocFile = fopen( filename.c_str(), "wt" ); + FILE * brickLearnDocFile = nlfopen( filename, "wt" ); fprintf( brickLearnDocFile,"\n"); fprintf( brickLearnDocFile,"\n"); fprintf( brickLearnDocFile,"Bricks infos\n"); diff --git a/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp b/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp index 68a6bff3f..eafda628c 100644 --- a/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp +++ b/code/ryzom/tools/sheet_random_generator/sheet_random_generator.cpp @@ -20,6 +20,7 @@ #include "srg_utilities.h" #include "game_share/protection_type.h" #include "nel/misc/string_conversion.h" +#include "nel/misc/common.h" /* * V3 @@ -2449,8 +2450,8 @@ void generateRawMaterials() MainStat.init(); FILE *nameOutputFile; if ( OutputNameList ) - nameOutputFile = fopen( "rm_names_output.csv", "wt" ); - GraphFile = fopen( "rm_output_graph.csv", "wt" ); + nameOutputFile = nlfopen( "rm_names_output.csv", "wt" ); + GraphFile = nlfopen( "rm_output_graph.csv", "wt" ); fprintf( GraphFile, "Graph type: Line with markers displayed at each data value, columns B to E. For deposits, sort by column B\n" ); fprintf( GraphFile, "Ecosystem specialization: 100=Desert, 104=Forest, 108=Lake, 112=Jungle, 116=All\n" ); fprintf( GraphFile, "RM code;Zone;Energy;Originality;Eco. spec.;\n\n" ); diff --git a/code/ryzom/tools/sheet_random_generator/srg_utilities.h b/code/ryzom/tools/sheet_random_generator/srg_utilities.h index c4abce34b..686b22418 100644 --- a/code/ryzom/tools/sheet_random_generator/srg_utilities.h +++ b/code/ryzom/tools/sheet_random_generator/srg_utilities.h @@ -27,6 +27,7 @@ #include "nel/misc/file.h" #include "nel/misc/smart_ptr.h" #include "nel/misc/command.h" +#include "nel/misc/common.h" #include "nel/misc/path.h" #include #include @@ -862,7 +863,7 @@ void loadNomenclatureCodes( const char *title, const vector& longNames, vector::iterator iarg; vector::const_iterator ivs; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1121,7 +1122,7 @@ void loadCSVFile( const char *filename, TMapDeliveryCallback deliveryCallback, b vector args; vector::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1178,7 +1179,7 @@ void loadCSVFile( const char *filename, TVectorDeliveryCallback deliveryCallback vs args; vs::iterator iarg; - if ( (file = fopen( filename, "r" )) == NULL ) + if ( (file = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1217,7 +1218,7 @@ void loadValueFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1271,7 +1272,7 @@ void loadRulesFile( const char *filename, const vector& keyStrings, vector args; vector::iterator iarg; - if ( (rulesFile = fopen( filename, "r" )) == NULL ) + if ( (rulesFile = nlfopen( filename, "r" )) == NULL ) { nlwarning( "Can't find file %s", filename ); } @@ -1582,7 +1583,7 @@ void loadTitles( const string& sourceWords, const string& sourceBase, const stri void extractRawMaterialNames() { loadCSVFile( ExtractNamesCsv.c_str(), readRMNames ); - FILE *output = fopen( (CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv").c_str(), "wt" ); + FILE *output = nlfopen( CFile::getFilenameWithoutExtension( ExtractNamesCsv ) + "_output.csv", "wt" ); fprintf( output, "Code;Name\n" ); for ( mss::const_iterator iun=UniqueRMNamesAndSheetCodeHead.begin(); iun!=UniqueRMNamesAndSheetCodeHead.end(); ++iun ) { @@ -2343,7 +2344,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); fprintf( _File, ("\n\n" + title + "\n\n").c_str() ); } @@ -2408,7 +2409,7 @@ public: if ( ! _Enabled ) return; - _File = fopen( filename.c_str(), "wt" ); + _File = nlfopen( filename, "wt" ); } /// diff --git a/code/ryzom/tools/translation_tools/main.cpp b/code/ryzom/tools/translation_tools/main.cpp index 9198196c7..000da9551 100644 --- a/code/ryzom/tools/translation_tools/main.cpp +++ b/code/ryzom/tools/translation_tools/main.cpp @@ -71,6 +71,7 @@ #include "nel/misc/app_context.h" #include "nel/misc/i18n.h" +#include "nel/misc/common.h" #include "nel/misc/file.h" #include "nel/misc/path.h" #include "nel/misc/diff_tool.h" @@ -325,7 +326,7 @@ int readLanguages() else { // append to the existing file - FILE *fp = fopen(filename.c_str(), "ab"); + FILE *fp = nlfopen(filename, "ab"); for (uint i=0; i\n"); @@ -224,7 +225,7 @@ int main(int argc, char *argv[]) printf("Adding file '%s'...\n", CFile::getFilename(subFileName).c_str()); fprintf(fp, " \n", CFile::getFilename(subFileName).c_str()); - FILE *subFp = fopen(subFileName.c_str(), "rt"); + FILE *subFp = nlfopen(subFileName, "rt"); nlassert(subFp != NULL); char buffer[MaxLineSize]; char *result; @@ -262,8 +263,8 @@ int main(int argc, char *argv[]) { printf("Unpacking directory '%s'...\n", dirName.c_str()); // open the pack file -// FILE *fp = fopen((dirName+"/tmp."+DefaultExt).c_str(), "rt"); - FILE *fp = fopen(filename.c_str(), "rt"); +// FILE *fp = nlfopen(dirName+"/tmp."+DefaultExt, "rt"); + FILE *fp = nlfopen(filename, "rt"); nlassert(fp != NULL); uint linecount = 0; @@ -303,7 +304,7 @@ int main(int argc, char *argv[]) printf("Extracting file '%s'...\n", CFile::getFilename(subFileName).c_str()); // open the output file - FILE *output = fopen (subFileName.c_str(), "wt"); + FILE *output = nlfopen(subFileName, "wt"); if (output == NULL) { printf ("Error : can not open output file '%s' from pack file '%s'", subFileName.c_str(), filename.c_str()); diff --git a/code/studio/src/plugins/mission_compiler/validation_file.cpp b/code/studio/src/plugins/mission_compiler/validation_file.cpp index e5536f9a7..c284f50cd 100644 --- a/code/studio/src/plugins/mission_compiler/validation_file.cpp +++ b/code/studio/src/plugins/mission_compiler/validation_file.cpp @@ -1,6 +1,7 @@ #include "validation_file.h" #include +#include #include void CValidationFile::loadMissionValidationFile(std::string filename) @@ -53,7 +54,7 @@ void CValidationFile::saveMissionValidationFile(std::string filename) nlwarning("Can't find index file '%s' in search path, no mission will be valid", filename.c_str()); return; } - FILE* file = fopen(pathName.c_str(), "w"); + FILE* file = nlfopen(pathName, "w"); nlassert(file!=NULL); // AuthorizedStates diff --git a/code/tool/increment_version/increment_version.cpp b/code/tool/increment_version/increment_version.cpp index d24127a6c..45cb93ece 100644 --- a/code/tool/increment_version/increment_version.cpp +++ b/code/tool/increment_version/increment_version.cpp @@ -16,6 +16,7 @@ #include #include +#include #include @@ -51,7 +52,7 @@ sint main( sint argc, char ** argv ) // open the output file string outputFilename = string(argv[1]) + ".out"; - FILE * output = fopen(outputFilename.c_str(),"w"); + FILE * output = nlfopen(outputFilename,"w"); if( output == NULL ) { nlwarning("can't open the output file %s",outputFilename.c_str()); diff --git a/code/tool/path_content_diff/path_content_diff.cpp b/code/tool/path_content_diff/path_content_diff.cpp index c2df4b946..b40a4e75f 100644 --- a/code/tool/path_content_diff/path_content_diff.cpp +++ b/code/tool/path_content_diff/path_content_diff.cpp @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +#include #include #include #include @@ -65,7 +66,7 @@ int main( int argc, char ** argv ) CPath::getPathContent(newPath, true, false, true, newPathContent); string outputFileName = CFile::findNewFile("path_content_diff.txt"); - FILE *output = fopen (outputFileName.c_str(), "wt"); + FILE *output = nlfopen(outputFileName, "wt"); if( output == NULL ) { nlwarning("Can't open output file %s",outputFileName.c_str());