# person -----------------------------------
person_es_MX = R6Class(
"person_es_MX",
inherit = person_init,
cloneable = FALSE,
private = list(
formats = c(
'{first_name} {last_name} {last_name}',
'{first_name} {first_name} {last_name}',
'{first_name} {first_name} {last_name} {last_name}',
'{first_name} {last_name}',
'{prefix} {first_name} {last_name}'),
first_names = c(
"Abel",
"Abelardo",
"Abigail",
"Abraham",
"Abril",
"Adalberto",
"Ad\u00e1n",
"Adela",
"Adriana",
"Aida",
"Alejandra",
"Agust\u00edn",
"Alberto",
"Aldonza",
"Alicia",
"Alta Gracia",
"Alonso",
"Aldo",
"Alejandro",
"Alfonso",
"Alfredo",
"Alma",
"Alvaro",
"Amalia",
"Amanda",
"Amador",
"Amelia",
"Ana",
"Anabel",
"Ana Luisa",
"Ana Mar\u00eda",
"Anel",
"Andrea",
"Andr\u00e9s",
"\u00c1ngel",
"\u00c1ngela",
"Ang\u00e9lica",
"Antonia",
"Antonio",
"Araceli",
"Arcelia",
"Ariadna",
"Armando",
"Arturo",
"Asunci\u00f3n",
"Augusto",
"Aurora",
"Aurelio",
"Barbara",
"Beatriz",
"Berta",
"Benito",
"Benjam\u00edn",
"Bernardo",
"Bernab\u00e9",
"Bianca",
"Blanca",
"Bruno",
"Camila",
"Camilo",
"Caridad",
"Carla",
"Carlos",
"Carlota",
"Carmen",
"Carolina",
"Catalina",
"C\u00e9sar",
"Cecilia",
"Celia",
"Citlali",
"Clara",
"Claudia",
"Claudio",
"Clemente",
"Concepci\u00f3n",
"Conchita",
"Cornelio",
"Cristian",
"Cristal",
"Cristina",
"Cristobal",
"Cynthia",
"Dalia",
"Daniel",
"Daniela",
"Dar\u00edo",
"David",
"D\u00e9bora",
"Delia",
"Diana",
"Diego",
"Dolores",
"Dulce",
"Dulce Mar\u00eda",
"Eduardo",
"Elena",
"Elias",
"Elisa",
"Eloisa",
"Elsa",
"Elvia",
"Elvira",
"Eloy",
"Emilia",
"Emiliano",
"Emilio",
"Enrique",
"Eric",
"Ernesto",
"Esmeralda",
"Esteban",
"Estefan\u00eda",
"Estela",
"Esparta",
"Espartaco",
"Esperanza",
"Estela",
"Esther",
"Eugenia",
"Eugenio",
"Eva",
"Evelio",
"Fabiola",
"Federico",
"Felipe",
"Fernando",
"Felix",
"Fidel",
"Flavio",
"Florencia",
"Francisco",
"Francisco Javier",
"Francisca",
"Frida",
"Gabino",
"Gabriela",
"Gabriel",
"Genaro",
"Georgina",
"Gerardo",
"Ger\u00f3nimo",
"Germ\u00e1n",
"Gilberto",
"Guillermina",
"Gloria",
"Gonzalo",
"Graciela",
"Gregorio",
"Guillermo",
"Guadalupe",
"Gustavo",
"H\u00e9ctor",
"Helena",
"Hermelinda",
"Hern\u00e1n",
"Hilda",
"Homero",
"Horacio",
"Hugo",
"Humberto",
"Ignacio",
"Ilse",
"Indira",
"In\u00e9s",
"Irene",
"Irma",
"Itzel",
"Isaac",
"Isabel",
"Isabela",
"Israel",
"Iv\u00e1n",
"Ivonne",
"Jacinto",
"Jacobo",
"Jaime",
"Javier",
"Jaqueline",
"Jer\u00f3nimo",
"Jes\u00fas",
"Joaqu\u00edn",
"Jon\u00e1s",
"Jorge",
"Jorge Luis",
"Jos",
"Jos\u00e9",
"Josefina",
"Jos\u00e9 Carlos",
"Jos\u00e9 Eduardo",
"Jos\u00e9 Emilio",
"Jos\u00e9 Luis",
"Jos\u00e9 Manu\u00e9l",
"Jos\u00e9 Mar\u00eda",
"Juan",
"Juana",
"Juan Carlos",
"Judith",
"Julia",
"Julio",
"Julio C\u00e9sar",
"Laura",
"Leonardo",
"Leonel",
"Leonor",
"Karla",
"Karina",
"Leticia",
"Lorenzo",
"Lucas",
"Lilia",
"Liliana",
"Linda",
"Lorena",
"Lourdes",
"Luc\u00eda",
"Luisa",
"Luz",
"Luis",
"Luis Miguel",
"Luis Manuel",
"Magdalena",
"Manuel",
"Marco Antonio",
"Marcela",
"Marcos",
"Margarita",
"Mar\u00eda",
"Marisela",
"Marisol",
"Mar\u00eda del Carmen",
"Mar\u00eda Cristina",
"Mar\u00eda Elena",
"Mar\u00eda Eugenia",
"Mar\u00eda Jos\u00e9",
"Mar\u00eda Luisa",
"Mar\u00eda Teresa",
"Marisol",
"Martha",
"Mayte",
"Mariano",
"Mariana",
"Mario",
"Mart\u00edn",
"Mateo",
"Mauro",
"Mauricio",
"Maximiliano",
"Mercedes",
"Micaela",
"Minerva",
"Mitzy",
"Miguel",
"Miguel \u00e1ngel",
"Miriam",
"Modesto",
"M\u00f3nica",
"Nadia",
"Natalia",
"Natividad",
"Nancy",
"Nayeli",
"Nelly",
"Noelia",
"Noem\u00ed",
"Norma",
"Nicol\u00e1s",
"Octavio",
"Ofelia",
"Olivia",
"\u00d3liver",
"Olga",
"\u00d3scar",
"Oswaldo",
"Omar",
"Pablo",
"Paola",
"Patricia",
"Pamela",
"Patricio",
"Pascual",
"Paulina",
"Pedro",
"Perla",
"Pilar",
"Porfirio",
"Rafa\u00e9l",
"Ramiro",
"Ram\u00f3n",
"Ra\u00fal",
"Raquel",
"Rebeca",
"Reina",
"Renato",
"Ren\u00e9",
"Reynaldo",
"Ricardo",
"Roberto",
"Rodolfo",
"Roc\u00edo",
"Rodrigo",
"Rolando",
"Rosa",
"Rosalia",
"Rosario",
"Rub\u00e9n",
"Rufino",
"Ruby",
"Salvador",
"Salma",
"Samuel",
"Sandra",
"Santiago",
"Sara",
"Sessa",
"Sergio",
"Seraf\u00edn",
"Silvano",
"Silvia",
"Sof\u00eda",
"Socorro",
"Soledad",
"Sonia",
"Susana",
"Tania",
"Teresa",
"Teodoro",
"Timoteo",
"Tom\u00e1s",
"Trinidad",
"Ver\u00f3nica",
"Vicente",
"Violeta",
"Uriel",
"\u00darsula",
"Vanesa",
"V\u00edctor",
"Victoria",
"Virginia",
"Wilfrido",
"Wendolin",
"Yeni",
"Yolanda",
"Yuridia",
"Zacar\u00edas",
"Zeferino",
"Zo\u00e9"
),
last_names = c(
"Abrego",
"Abreu",
"Acevedo",
"Acosta",
"Acu\u00f1a",
"Adame",
"Aguayo",
"Aguilar",
"Aguilera",
"Aguirre",
"Alarc\u00f3n",
"Alba",
"Alcala",
"Alc\u00e1ntar",
"Alcaraz",
"Alejandro",
"Alem\u00e1n",
"Alfaro",
"Almanza",
"Almaraz",
"Almonte",
"Alonso",
"Alonzo",
"Altamirano",
"Alva",
"Alvarado",
"Alvarez",
"Amador",
"Amaya",
"Anaya",
"Anguiano",
"Angulo",
"Aparicio",
"Apodaca",
"Aponte",
"Arag\u00f3n",
"Aranda",
"Arce",
"Archuleta",
"Arellano",
"Arenas",
"Arevalo",
"Arguello",
"Arias",
"Armas",
"Armend\u00e1riz",
"Armenta",
"Arredondo",
"Arreola",
"Arriaga",
"Arroyo",
"Arteaga",
"\u00c1valos",
"\u00c1vila",
"Avil\u00e9s",
"Ayala",
"Baca",
"Badillo",
"B\u00e1ez",
"Baeza",
"Bahena",
"Balderas",
"Ballesteros",
"Ba\u00f1uelos",
"Barajas",
"Barela",
"Barrag\u00e1n",
"Barraza",
"Barrera",
"Barreto",
"Barrientos",
"Barrios",
"Batista",
"Becerra",
"Beltr\u00e1n",
"Benavides",
"Benav\u00eddez",
"Ben\u00edtez",
"Berm\u00fadez",
"Bernal",
"Berr\u00edos",
"B\u00e9tancourt",
"Blanco",
"Bonilla",
"Borrego",
"Botello",
"Bravo",
"Briones",
"Brise\u00f1o",
"Brito",
"Bueno",
"Burgos",
"Bustamante",
"Bustos",
"Caballero",
"Cab\u00e1n",
"Cabrera",
"Cadena",
"Caldera",
"Calder\u00f3n",
"Calvillo",
"Camacho",
"Camarillo",
"Campos",
"Canales",
"Candelaria",
"Cano",
"Cant\u00fa",
"Caraballo",
"Carbajal",
"Cardenas",
"Cardona",
"Carmona",
"Carranza",
"Carrasco",
"Carre\u00f3n",
"Carrera",
"Carrero",
"Carrillo",
"Carri\u00f3n",
"Carvajal",
"Casanova",
"Casares",
"Cas\u00e1rez",
"Casas",
"Casillas",
"Casta\u00f1eda",
"Castellanos",
"Castillo",
"Castro",
"Cavazos",
"Cazares",
"Ceballos",
"Cedillo",
"Ceja",
"Centeno",
"Cepeda",
"Cervantes",
"Cerv\u00e1ntez",
"Chac\u00f3n",
"Chapa",
"Chavarr\u00eda",
"Ch\u00e1vez",
"Cintr\u00f3n",
"Cisneros",
"Collado",
"Collazo",
"Col\u00f3n",
"Colunga",
"Concepci\u00f3n",
"Contreras",
"Cordero",
"C\u00f3rdova",
"Cornejo",
"Corona",
"Coronado",
"Corral",
"Corrales",
"Correa",
"Cort\u00e9s",
"Cortez",
"Cotto",
"Covarrubias",
"Crespo",
"Cruz",
"Cuellar",
"Curiel",
"D\u00e1vila",
"de Anda",
"de Jes\u00fas",
"de la Cr\u00faz",
"de la Fuente",
"de la Garza",
"de la O",
"de la Rosa",
"de la Torre",
"de Le\u00f3n",
"Delgadillo",
"Delgado",
"del R\u00edo",
"del Valle",
"D\u00edaz",
"Dom\u00ednguez",
"Duarte",
"Due\u00f1as",
"Dur\u00e1n",
"Echeverr\u00eda",
"Elizondo",
"Enr\u00edquez",
"Escalante",
"Escamilla",
"Escobar",
"Escobedo",
"Esparza",
"Espinal",
"Espino",
"Espinosa",
"Espinoza",
"Esquibel",
"Esquivel",
"Est\u00e9vez",
"Estrada",
"Fajardo",
"Far\u00edas",
"Feliciano",
"Fern\u00e1ndez",
"Ferrer",
"Fierro",
"Figueroa",
"Flores",
"Fl\u00f3rez",
"Fonseca",
"Franco",
"Fr\u00edas",
"Fuentes",
"Gait\u00e1n",
"Galarza",
"Galindo",
"Gallardo",
"Gallegos",
"Galv\u00e1n",
"G\u00e1lvez",
"Gamboa",
"Gamez",
"Gaona",
"Garay",
"Garc\u00eda",
"Garibay",
"Garica",
"Garrido",
"Garza",
"Gast\u00e9lum",
"Gayt\u00e1n",
"Gil",
"Gir\u00f3n",
"God\u00ednez",
"Godoy",
"G\u00f3mez",
"Gonzales",
"Gonz\u00e1lez",
"Gollum",
"Gracia",
"Granado",
"Granados",
"Griego",
"Grijalva",
"Guajardo",
"Guardado",
"Guerra",
"Guerrero",
"Guevara",
"Guillen",
"Gurule",
"Guti\u00e9rrez",
"Guzm\u00e1n",
"Haro",
"Henr\u00edquez",
"Heredia",
"Hern\u00e1dez",
"Hernandes",
"Hern\u00e1ndez",
"Herrera",
"Hidalgo",
"Hinojosa",
"Holgu\u00edn",
"Huerta",
"Hurtado",
"Ibarra",
"Iglesias",
"Irizarry",
"Jaime",
"Jaimes",
"J\u00e1quez",
"Jaramillo",
"Jasso",
"Jim\u00e9nez",
"Jim\u00ednez",
"Ju\u00e1rez",
"Jurado",
"Laboy",
"Lara",
"Laureano",
"Leal",
"Lebr\u00f3n",
"Ledesma",
"Leiva",
"Lemus",
"Le\u00f3n",
"Lerma",
"Leyva",
"Lim\u00f3n",
"Linares",
"Lira",
"Llamas",
"Loera",
"Lomeli",
"Longoria",
"L\u00f3pez",
"Lovato",
"Loya",
"Lozada",
"Lozano",
"Lucero",
"Lucio",
"Luevano",
"Lugo",
"Luna",
"Mac\u00edas",
"Madera",
"Madrid",
"Madrigal",
"Maestas",
"Maga\u00f1a",
"Malave",
"Maldonado",
"Manzanares",
"Mares",
"Mar\u00edn",
"M\u00e1rquez",
"Marrero",
"Marroqu\u00edn",
"Mart\u00ednez",
"Mascare\u00f1as",
"Mata",
"Mateo",
"Mat\u00edas",
"Matos",
"Maya",
"Mayorga",
"Medina",
"Medrano",
"Mej\u00eda",
"Mel\u00e9ndez",
"Melgar",
"Mena",
"Menchaca",
"M\u00e9ndez",
"Mendoza",
"Men\u00e9ndez",
"Meraz",
"Mercado",
"Merino",
"Mesa",
"Meza",
"Miramontes",
"Miranda",
"Mireles",
"Mojica",
"Molina",
"Mondrag\u00f3n",
"Monroy",
"Montalvo",
"Monta\u00f1ez",
"Monta\u00f1o",
"Montemayor",
"Montenegro",
"Montero",
"Montes",
"Montez",
"Montoya",
"Mora",
"Morales",
"Moreno",
"Mota",
"Moya",
"Mungu\u00eda",
"Mu\u00f1iz",
"Mu\u00f1oz",
"Murillo",
"Muro",
"N\u00e1jera",
"Naranjo",
"Narv\u00e1ez",
"Nava",
"Navarrete",
"Navarro",
"Nazario",
"Negrete",
"Negr\u00f3n",
"Nev\u00e1rez",
"Nieto",
"Nieves",
"Ni\u00f1o",
"Noriega",
"N\u00fa\u00f1ez",
"Ocampo",
"Ocasio",
"Ochoa",
"Ojeda",
"Olivares",
"Oliv\u00e1rez",
"Olivas",
"Olivera",
"Olivo",
"Olmos",
"Olvera",
"Ontiveros",
"Oquendo",
"Ord\u00f3\u00f1ez",
"Orellana",
"Ornelas",
"Orosco",
"Orozco",
"Orta",
"Ortega",
"Ortiz",
"Osorio",
"Otero",
"Ozuna",
"Pab\u00f3n",
"Pacheco",
"Padilla",
"Padr\u00f3n",
"P\u00e1ez",
"Palacios",
"Palomino",
"Palomo",
"Pantoja",
"Paredes",
"Parra",
"Partida",
"Pati\u00f1o",
"Paz",
"Pedraza",
"Pedroza",
"Pelayo",
"Pe\u00f1a",
"Perales",
"Peralta",
"Perea",
"Peres",
"P\u00e9rez",
"Pichardo",
"Pi\u00f1a",
"Pineda",
"Pizarro",
"Polanco",
"Ponce",
"Porras",
"Portillo",
"Posada",
"Prado",
"Preciado",
"Prieto",
"Puente",
"Puga",
"Pulido",
"Quesada",
"Quezada",
"Qui\u00f1ones",
"Qui\u00f1\u00f3nez",
"Quintana",
"Quintanilla",
"Quintero",
"Quiroz",
"Rael",
"Ram\u00edrez",
"Ram\u00f3n",
"Ramos",
"Rangel",
"Rasc\u00f3n",
"Raya",
"Razo",
"Regalado",
"Rend\u00f3n",
"Renter\u00eda",
"Res\u00e9ndez",
"Reyes",
"Reyna",
"Reynoso",
"Rico",
"Rinc\u00f3n",
"Riojas",
"R\u00edos",
"Rivas",
"Rivera",
"Rivero",
"Robledo",
"Robles",
"Rocha",
"Rodarte",
"Rodr\u00edgez",
"Rodr\u00edguez",
"Rodr\u00edquez",
"Rojas",
"Rojo",
"Rold\u00e1n",
"Rol\u00f3n",
"Romero",
"Romo",
"Roque",
"Rosado",
"Rosales",
"Rosario",
"Rosas",
"Roybal",
"Rubio",
"Ruelas",
"Ruiz",
"Saavedra",
"S\u00e1enz",
"Saiz",
"Salas",
"Salazar",
"Salcedo",
"Salcido",
"Salda\u00f1a",
"Saldivar",
"Salgado",
"Salinas",
"Samaniego",
"Sanabria",
"Sanches",
"S\u00e1nchez",
"Sandoval",
"Santacruz",
"Santana",
"Santiago",
"Santill\u00e1n",
"Sarabia",
"Sauceda",
"Saucedo",
"Segovia",
"Segura",
"Sep\u00falveda",
"Serna",
"Serrano",
"Serrato",
"Sevilla",
"Sierra",
"Sisneros",
"Solano",
"Sol\u00eds",
"Soliz",
"Solorio",
"Solorzano",
"Soria",
"Sosa",
"Sotelo",
"Soto",
"Su\u00e1rez",
"Tafoya",
"Tamayo",
"Tamez",
"Tapia",
"Tejada",
"Tejeda",
"T\u00e9llez",
"Tello",
"Ter\u00e1n",
"Terrazas",
"Tijerina",
"Tirado",
"Toledo",
"Toro",
"Torres",
"T\u00f3rrez",
"Tovar",
"Trejo",
"Trevi\u00f1o",
"Trujillo",
"Ulibarri",
"Ulloa",
"Urbina",
"Ure\u00f1a",
"Ur\u00edas",
"Uribe",
"Urrutia",
"Vaca",
"Valadez",
"Vald\u00e9s",
"Valdez",
"Valdivia",
"Valencia",
"Valent\u00edn",
"Valenzuela",
"Valladares",
"Valle",
"Vallejo",
"Valles",
"Valverde",
"Vanegas",
"Varela",
"Vargas",
"V\u00e1squez",
"V\u00e1zquez",
"Vega",
"Vela",
"Velasco",
"Vel\u00e1squez",
"Vel\u00e1zquez",
"V\u00e9lez",
"V\u00e9liz",
"Venegas",
"Vera",
"Verdugo",
"Verduzco",
"Vergara",
"Viera",
"Vigil",
"Villa",
"Villag\u00f3mez",
"Villalobos",
"Villalpando",
"Villanueva",
"Villareal",
"Villarreal",
"Villase\u00f1or",
"Villegas",
"Y\u00e1\u00f1ez",
"Ybarra",
"Zambrano",
"Zamora",
"Zamudio",
"Zapata",
"Zaragoza",
"Zarate",
"Zavala",
"Zayas",
"Zedillo",
"Zelaya",
"Zepeda",
"Z\u00fa\u00f1iga"
),
prefixes = c('Sr(a).', 'Dr.', 'Mtro.', 'Lic.', 'Ing.')
)
)
# company -----------------------------------
company_es_MX = R6Class(
"company_es_MX",
inherit = company_init,
cloneable = FALSE,
private = list(
formats = c(
'{last_name} {company_suffix}',
'{last_name}-{last_name}',
'{company_prefix} {last_name}-{last_name}',
'{company_prefix} {last_name} y {last_name}',
'{company_prefix} {last_name}, {last_name} y {last_name}',
'{last_name}-{last_name} {company_suffix}',
'{last_name}, {last_name} y {last_name}',
'{last_name} y {last_name} {company_suffix}'
),
first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,
first_name = (person_es_MX$new())$first_name,
last_name = (person_es_MX$new())$last_name,
catch_phrase_words = list(
c("habilidad","acceso","adaptador","algoritmo","alianza",
"analista","aplicaci\u00f3n","enfoque","arquitectura","archivo",
"inteligencia artificial","array","actitud","medici\u00f3n",
"gesti\u00f3n presupuestaria","capacidad","desaf\u00edo",
"circuito","colaboraci\u00f3n","complejidad","concepto",
"conglomeraci\u00f3n","contingencia","n\u00facleo","fidelidad",
"base de datos","data-warehouse","definici\u00f3n",
"emulaci\u00f3n","codificar","encriptar","extranet","firmware",
"flexibilidad","focus group","previsi\u00f3n","base de trabajo",
"funci\u00f3n","funcionalidad","interfaz gr\u00e1fica","groupware"
,"interfaz gr\u00e1fico de usuario","hardware","soporte",
"jerarqu\u00eda","conjunto","implementaci\u00f3n",
"infraestructura","iniciativa","instalaci\u00f3n",
"conjunto de instrucciones","interfaz","intranet","base del conocimiento",
"red de area local","aprovechar","matrices","metodolog\u00edas",
"middleware","migraci\u00f3n","modelo","moderador","monitorizar",
"arquitectura abierta","sistema abierto","orquestar","paradigma",
"paralelismo","pol\u00edtica","portal","estructura de precios",
"proceso de mejora","producto","productividad","proyecto",
"proyecci\u00f3n","protocolo","l\u00ednea segura","software",
"soluci\u00f3n","estandarizaci\u00f3n","estrategia","estructura",
"\u00e9xito","superestructura","soporte","sinergia","mediante",
"marco de tiempo","caja de herramientas","utilizaci\u00f3n",
"website","fuerza de trabajo"),
c("24 horas","24/7","3ra generaci\u00f3n","4ta generaci\u00f3n",
"5ta generaci\u00f3n","6ta generaci\u00f3n","analizada",
"asim\u00e9trica","as\u00edncrona","monitorizada por red",
"bidireccional","bifurcada","generada por el cliente",
"cliente-servidor","coherente","cohesiva","compuesto",
"sensible al contexto","basado en el contexto","basado en contenido",
"dedicada","generado por la demanda","did\u00e1ctica",
"direccional","discreta","din\u00e1mica","potenciada","acompasada"
,"ejecutiva","expl\u00edcita","tolerante a fallos","innovadora",
"amplio abanico","global","heur\u00edstica","alto nivel",
"hol\u00edstica","homog\u00e9nea","h\u00edbrida","incremental",
"intangible","interactiva","intermedia","local","log\u00edstica",
"maximizada","met\u00f3dica","misi\u00f3n cr\u00edtica",
"m\u00f3vil","modular","motivadora","multimedia","multiestado",
"multitarea","nacional","basado en necesidades","neutral",
"nueva generaci\u00f3n","no-vol\u00e1til","orientado a objetos",
"\u00f3ptima","optimizada","radical","tiempo real",
"rec\u00edproca","regional","escalable","secundaria",
"orientada a soluciones","estable","est\u00e1tica","sistem\u00e1tica",
"sist\u00e9mica","tangible","terciaria","transicional","uniforme",
"valor a\u00f1adido","v\u00eda web","defectos cero","tolerancia cero"),
c("adaptativo","avanzado","asimilado","automatizado","balanceado",
"enfocado al negocio","centralizado","clonado","compatible",
"configurable","multiplataforma","enfocado al cliente",
"personalizable","descentralizado","digitalizado","distribuido",
"diverso","mejorado","en toda la empresa","ergon\u00f3mico",
"exclusivo","expandido","extendido","cara a cara","enfocado",
"de primera l\u00ednea","totalmente configurable",
"basado en funcionalidad","fundamental","horizontal","implementado",
"innovador","integrado","intuitivo","inverso","administrado",
"mandatorio","monitoreado","multicanal","multilateral",
"multi-capas","en red","basado en objetos","de arquitectura abierta",
"open-source","operativo","optimizado","opcional",
"org\u00e1nico","organizado","perseverante","persistente",
"polarizado","preventivo","proactivo","enfocado a ganancias",
"programable","progresivo","llave p\u00fablica",
"enfocado a la calidad","reactivo","realineado","recontextualizado",
"reducido","con ingenier\u00eda inversa","de tama\u00f1o adecuado",
"robusto","seguro","compartible","sincronizado","orientado a equipos",
"total","universal","actualizable","centrado en el usuario",
"vers\u00e1til","virtual","visionario")
),
bs_words = list(
c("implementa","utiliza","integra","optimiza","evoluciona",
"transforma","abraza","habilita","orquesta","reinventa","agrega",
"mejora","incentiva","modifica","empodera","monetiza","fortalece",
"facilita","sinergiza","crea marca","crece","sintetiza","entrega",
"mezcla","incuba","compromete","maximiza","visualiza","innova",
"escala","libera","maneja","extiende","revoluciona","genera",
"explota","transiciona","itera","cultiva","redefine",
"recontextualiza"),
c("sinergias","paradigmas","marcados","socios","infraestructuras",
"plataformas","iniciativas","canales","communidades","ROI",
"soluciones","portales","nichos","tecnolog\u00edas","contenido",
"cadena de producci\u00f3n","convergencia","relaciones",
"arquitecturas","interfaces","comercio electr\u00f3nico",
"sistemas","ancho de banda","modelos","entregables","usuarios",
"esquemas","redes","aplicaciones","m\u00e9tricas",
"funcionalidades","experiencias","servicios web",
"metodolog\u00edas"),
c("valor agregado","verticales","proactivas","robustas",
"revolucionarias","escalables","de punta","innovadoras",
"intuitivas","estrat\u00e9gicas","e-business",
"de misi\u00f3n cr\u00edtica","uno-a-uno","24/7","end-to-end","globales","B2B",
"B2C","granulares","sin fricciones","virtuales","virales",
"din\u00e1micas","24/365","magn\u00e9ticas","listo para la web",
"interactivas","punto-com","sexi","en tiempo real","eficientes",
"front-end","distribuidas","extensibles","llave en mano",
"de clase mundial","open-source","plataforma cruzada","de paquete",
"empresariales","integrado","impacto total","inal\u00e1mbrica",
"transparentes","de siguiente generaci\u00f3n","lo \u00faltimo",
"centrado al usuario","visionarias","personalizado","ubicuas",
"plug-and-play","colaborativas","hol\u00edsticas","ricas")
),
company_prefixes = c('Despacho', 'Grupo', 'Corporacin', 'Club',
'Industrias', 'Laboratorios', 'Proyectos'),
company_suffixes = c('A.C.', 'S.A.', 'S.A. de C.V.', 'S.C.',
'S. R.L. de C.V.', 'e Hijos', 'y Asociados')
),
public = list(
company_prefix = function(){
return(private$random_element(private$company_prefixes))
}
)
)
# address ----------------------------------
address_es_MX = R6Class(
"address_es_MX",
inherit = address_es,
cloneable = FALSE,
private = list(
first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,
first_name = (person_es_MX$new())$first_name,
last_name = (person_es_MX$new())$last_name,
city_prefixes = c('Sur', 'Norte'),
city_adjetives = c('Nueva', 'Vieja'),
city_suffixes = c('de la Monta\u00f1a', 'los bajos', 'los altos'),
street_prefixes = c(
'Ampliaci\u00f3n', 'Andador', 'Avenida', 'Boulevard', 'Calle', 'Callej\u00f3n',
'Calzada', 'Cerrada', 'Circuito', 'Circunvalaci\u00f3n', 'Continuaci\u00f3n',
'Corredor', 'Diagonal', 'Eje vial', 'Pasaje', 'Peatonal', 'Perif\u00e9rico',
'Privada', 'Prolongaci\u00f3n', 'Retorno', 'Viaducto'),
building_number_formats = c('#####', '####', '###'),
postcode_formats = c('#####', '#####-####'),
# States and abbrs from Mexico from INEGI
# http://www.inegi.org.mx/geo/contenidos/geoestadistica/CatalogoClaves.aspx
states = c(
"AGS" = "Aguascalientes",
"BC" = "Baja California",
"BCS" = "Baja California Sur",
"CAMP" = "Campeche",
"COAH" = "Coahuila de Zaragoza",
"COL" = "Colima",
"CHIS" = "Chiapas",
"CHIH" = "Chihuahua",
"DF" = "Distrito Federal",
"DGO" = "Durango",
"GTO" = "Guanajuato",
"GRO" = "Guerrero",
"HGO" = "Hidalgo",
"JAL" = "Jalisco",
"MEX" = "M\u00e9xico",
"MICH" = "Michoac\u00e1n de Ocampo",
"MOR" = "Morelos",
"NAY" = "Nayarit",
"NL" = "Nuevo Le\u00f3n",
"OAX" = "Oaxaca",
"PUE" = "Puebla",
"QRO" = "Quer\u00e9taro",
"Q. ROO" = "Quintana Roo",
"SLP" = "San Luis Potos\u00ed",
"SIN" = "Sinaloa",
"SON" = "Sonora",
"TAB" = "Tabasco",
"TAMPS" = "Tamaulipas",
"TLAX" = "Tlaxcala",
"VER" = "Veracruz de Ignacio de la Llave",
"YUC" = "Yucat\u00e1n",
"ZAC" = "Zacatecas"
),
zip_codes = list(
# The ZipCodes has a begin & final range
'AGS' = c(20000, 20999),
'BC' = c(21000, 22999),
'BCS' = c(23000, 23999),
'CAMP' = c(24000, 24999),
'COAH' = c(25000, 27999),
'COL' = c(28000, 28999),
'CHIS' = c(29000, 30999),
'CHIH' = c(31000, 33999),
'DF' = c(1000, 19999),
'DGO' = c(36000, 35999),
'GTO' = c(36000, 38999),
'GRO' = c(39000, 41999),
'HGO' = c(42000, 43999),
'JAL' = c(44000, 49999),
'MEX' = c(50000, 57999),
'MICH' = c(58000, 61999),
'MOR' = c(62000, 62999),
'NAY' = c(63000, 63999),
'NL' = c(64000, 67999),
'OAX' = c(68000, 71999),
'PUE' = c(72000, 75999),
'QRO' = c(76000, 76999),
'Q. ROO' = c(77000, 75999),
'SLP' = c(78000, 79999),
'SIN' = c(80000, 82999),
'SON' = c(83000, 85999),
'TAB' = c(86000, 86999),
'TAMPS' = c(87000, 89999),
'TLAX' = c(90000, 90999),
'VER' = c(91000, 97999),
'YUC' = c(97000, 97999),
'ZAC' = c(98000, 99999)),
city_formats = c(
'{city_adjective} {country}',
'San {first_name} {city_suffix}'),
street_name_formats = c(
'{street_prefix} {last_name}',
'{street_prefix} {country}',
'{street_prefix} {state}',
'{street_prefix} {city_prefix} {last_name}'),
street_address_formats = '{street_name} {secondary_address}',
address_formats = "{street_address}\n{city}, {state_abbr} {postcode}",
secondary_address_formats = c(
'### ###', '### Interior ###',
'### Edif. ### , Depto. ###')
),
public = list(
city_prefix = function(){
return(private$random_element(private$city_prefixes))
},
city_suffix = function(){
return(private$random_element(private$city_suffixes))
},
city_adjective = function(){
return(private$random_element(private$city_adjetives))
},
street_prefix = function(){
return(private$random_element(private$street_prefixes))
},
secondary_address = function(){
return(private$numerify(private$random_element(
private$secondary_address_formats)))
},
state = function(){
return(private$random_element(
unname(private$states)))
},
state_abbr = function(){
return(private$random_element(
names(private$states)))
}
)
)
# phone_number ------------------------------
phone_number_es_MX = R6Class(
"phone_number_es_MX",
inherit = phone_number_init,
cloneable = FALSE,
private = list(
formats = c(
'+##(#)##########',
'+##(#)##########',
'0##########',
'0##########',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####x###',
'(###)###-####x###',
'1-###-###-####x###',
'###.###.####x###',
'###-###-####x####',
'(###)###-####x####',
'1-###-###-####x####',
'###.###.####x####',
'###-###-####x#####',
'(###)###-####x#####',
'1-###-###-####x#####',
'###.###.####x#####'
)
)
)
# ssn -------------------------------
ssn_es_MX = R6Class(
"ssn_es_MX",
inherit = ssn_init,
cloneable = FALSE,
private = list(
ssn_formats = "###########",
ALPHABET = LETTERS,
ALPHANUMERIC = c(seq(0, 9), LETTERS),
VOWELS = c("A", "E", "I", "O", "U"),
CONSONANTS = setdiff(LETTERS, c("A", "E", "I", "O", "U")),
# https://es.wikipedia.org/wiki/Plantilla:Abreviaciones_de_los_estados_de_M%C3%A9xico
STATES_RENAPO = c(
"AS",
"BC",
"BS",
"CC",
"CS",
"CH",
"DF",
"CL",
"CM",
"DG",
"GT",
"GR",
"HG",
"JC",
"MC",
"MN",
"MS",
"NT",
"NL",
"OC",
"PL",
"QO",
"QR",
"SP",
"SL",
"SR",
"TC",
"TS",
"TL",
"VZ",
"YN",
"ZS",
"NE"
),
FORBIDDEN_WORDS = c(
"BUEI" = "BUEX",
"BUEY" = "BUEX",
"CACA" = "CACX",
"CACO" = "CACX",
"CAGA" = "CAGX",
"CAGO" = "CAGX",
"CAKA" = "CAKX",
"CAKO" = "CAKX",
"COGE" = "COGX",
"COJA" = "COJX",
"COJE" = "COJX",
"COJI" = "COJX",
"COJO" = "COJX",
"CULO" = "CULX",
"FETO" = "FETX",
"GUEY" = "GUEX",
"JOTO" = "JOTX",
"KACA" = "KACX",
"KACO" = "KACX",
"KAGA" = "KAGX",
"KAGO" = "KAGX",
"KOGE" = "KOGX",
"KOJO" = "KOJX",
"KAKA" = "KAKX",
"KULO" = "KULX",
"MAME" = "MAMX",
"MAMO" = "MAMX",
"MEAR" = "MEAX",
"MEAS" = "MEAX",
"MEON" = "MEOX",
"MION" = "MIOX",
"MOCO" = "MOCX",
"MULA" = "MULX",
"PEDA" = "PEDX",
"PEDO" = "PEDX",
"PENE" = "PENX",
"PUTA" = "PUTX",
"PUTO" = "PUTX",
"QULO" = "QULX",
"RATA" = "RATX",
"RUIN" = "RUIN"
),
CURP_CHARACTERS = c(seq(0, 9), LETTERS, "\u00d1"),
reduce_digits = function(number) {
if (number == 0) {
return(0)
}
if (number %% 9 == 0) {
return(9)
}
return(number %% 9)
},
ssn_checksum = function(digits) {
# Calculate the checksum for the mexican SSN (IMSS).
temp = 0
for (i in seq_along(digits)) {
n = digits[i]
temp = temp - private$reduce_digits(n * (((i - 1) %% 2) + 1))
}
return(temp %% 10)
},
curp_checksum = function(characters) {
# Calculate the checksum for the mexican CURP.
start = 18
temp = 0
for (i in seq_along(characters)){
n = characters[i]
loc = which(private$CURP_CHARACTERS == n)
temp = temp - (start - i - 1) * (loc - 1)
}
return(temp %% 10)
}
),
public = list(
ssn = function(){
# Mexican Social Security Number, as given by IMSS.
# :return: a random Mexican SSN
office = private$random_int(from = 1, to = 99)
birth_year = private$random_int(from = 0, to = 99)
start_year = private$random_int(from = 0, to = 99)
serial = private$random_int(from = 1, to = 9999)
num = sprintf("%02d%02d%02d%04d",
office, start_year, birth_year, serial)
check = private$ssn_checksum(as.numeric(str_split(num, "")[[1]]))
return(str_c(num, check))
},
curp = function(){
# See https://es.wikipedia.org/wiki/Clave_%C3%9Anica_de_Registro_de_Poblaci%C3%B3n.
# :return: a random Mexican CURP (Unique Population Registry Code)
birthday = (date_time_init$new())$date_of_birth()
first_surname = str_c(sample(private$ALPHABET, 1),
sample(private$VOWELS, 1))
second_surname = sample(private$ALPHABET, 1)
given_name = sample(private$ALPHABET, 1)
name_initials = str_c(first_surname, second_surname, given_name)
birth_date = strftime(birthday, "%y%m%d", tz = "UTC")
gender = sample(c("H", "M"), size = 1)
state = sample(private$STATES_RENAPO, 1)
first_surname_inside = sample(private$CONSONANTS, 1)
second_surname_inside = sample(private$CONSONANTS, 1)
given_name_inside = sample(private$ALPHABET, 1)
# This character is assigned to avoid duplicity
# It's normally '0' for those born < 2000
# and 'A' for those born >= 2000
assigned_character = ifelse(year(birthday) < 2000, "0", "A")
name_initials = ifelse(is.na(
private$FORBIDDEN_WORDS[name_initials]), name_initials,
private$FORBIDDEN_WORDS[name_initials])
random_curp = str_c(name_initials,
birth_date,
gender,
state,
first_surname_inside,
second_surname_inside,
given_name_inside,
assigned_character)
random_curp = str_c(random_curp, private$curp_checksum(random_curp))
return(random_curp)
},
rfc = function(natural = TRUE) {
# See https://es.wikipedia.org/wiki/Registro_Federal_de_Contribuyentes
# :param natural: Whether to return the RFC of a natural person.
# Otherwise return the RFC of a legal person.
# :type natural: bool
# :return: a random Mexican RFC
birthday = (date_time_init$new())$date_of_birth()
if(natural) {
first_surname = str_c(sample(private$ALPHABET, 1),
sample(private$VOWELS, 1))
second_surname = sample(private$ALPHABET, 1)
given_name = sample(private$ALPHABET, 1)
name_initials = str_c(first_surname, second_surname, given_name)
} else {
name_initials = str_c(
private$random_uppercase_letter(),
private$random_uppercase_letter(),
private$random_uppercase_letter()
)
}
birth_date = strftime(birthday, "%y%m%d", tz = "UTC")
disambiguation_code = str_c(
sample(private$ALPHANUMERIC, 1),
sample(private$ALPHANUMERIC, 1),
sample(private$ALPHANUMERIC, 1)
)
random_rfc = str_c(
name_initials,
birth_date,
disambiguation_code)
return(random_rfc)
}
)
)
## credit_card -----------------
credit_card_es_MX = R6Class(
"credit_card_es_MX",
inherit = credit_card_init,
cloneable = FALSE,
private = list(
first_names = (person_es_MX$new())$.__enclos_env__$private$first_names,
first_name = (person_es_MX$new())$first_name,
last_names = (person_es_MX$new())$.__enclos_env__$private$last_names,
last_name = (person_es_MX$new())$last_name
)
)
## profile ------------------
profile_es_MX = R6Class(
"profile_es_MX",
inherit = profile_init,
cloneable = FALSE,
public = list(
simple_profile = function(sex) {
# Generates a basic profile with personal informations
SEX = c("F", "M")
if (missing(sex)) {
sex = sample(SEX, 1)
}
if (!(sex %in% SEX)) {
sex = sample(SEX, 1)
}
name = ifelse(sex == "F",
(person_es_MX$new())$name_female(),
(person_es_MX$new())$name_male())
temp = list(
"username" = (internet_en_US$new())$user_name(),
"name" = name,
"sex" = sex,
"address" = (address_es_MX$new())$address(),
"mail" = (internet_en_US$new())$free_email(),
"birthdate" = (date_time_init$new())$date_of_birth()
)
return(temp)
},
profile = function(fields, sex) {
# Generates a complete profile.
# If "fields" is not empty, only the fields in the list will be returned
if (missing(fields)) fields = c()
field = list(
"job" = (job_init$new())$job(),
"company" = (company_es_MX$new())$company(),
"ssn" = (ssn_es_MX$new())$ssn(),
"residence" = (address_es_MX$new())$address(),
"current_location" = c((geo_init$new())$latitude(),
(geo_init$new())$longitude()),
"blood_group" = sample(c(
"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"), 1),
"website" = replicate(sample(seq(4), 1), (internet_en_US$new())$url())
)
field = append(field, self$simple_profile(sex))
# field selection
if (length(fields)) {
nms = intersect(names(field), fields)
field = field[nms]
}
return(field)
}
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.