//
// David Moews, 2009
//

//
// Many verbs have not been implemented
//

//
// Some spellings are at variance with those given by the 
// Real Academia Española after the 1999 spelling reform.
// See SPANISH VERBS MADE SIMPLER, David Brodsky, Austin: University of
//     Texas Press, 2005, ISBN 0-292-70653-7,
//        pp. 88-89.
//
// Brodsky also gives _frito_ as the more common pp of freír
// (RAE prefers _freído_.)
//

// Stem changes:
//    e -> i (-ir)
//    e -> ie (-ar, -er, -ir)
//    o -> ue (-ar, -er, -ir)
//    i -> ie (adquirir, inquirir)
//    u -> ue (jugar)

//
// #1 entry: infinitive 
// #2 entry: 123S/3P indicative
// #3 entry is preterite, 3S/3P  (also present participle)
// #4 is 1S indicative
// #5: is stem-changing? (1/0)
//
var es_stem_changing_wholes =
[
// regular verbs 
 ['apropincuar', 'apropincuar', 'apropincuar', 'apropincuar', 0], 
            // reg. (no u -> ú)
 ['aterir', 'aterir', 'aterir', 'aterir', 0], // reg. (no stem change)
 ['desbecerrar', 'desbecerrar', 'desbecerrar', 'desbecerrar', 0],  // regular
 ['enserir', 'enserir', 'enserir', 'enserir', 0], // reg. 
 ['evacuar', 'evacuar', 'evacuar', 'evacuar', 0], // reg. (no u -> ú)
 ['evertir', 'evertir', 'evertir', 'evertir', 0], // reg. (no stem change)
 ['estatuar', 'estatuar', 'estatuar', 'estatuar', 0], // reg. (no u -> ú) 
 ['mecer', 'mecer', 'mecer', 'mecer', 0],   // regular instead of usual -cer
 ['patiquebrar', 'patiquebrar', 'patiquebrar', 'patiquebrar', 0],   
                        // regular instead of stem-ch.
 ['pretender', 'pretender', 'pretender', 'pretender', 0], // regular
 ['remecer', 'remecer', 'remecer', 'remecer', 0],  
                                        // regular instead of usual -cer
// iar -> íar verbs
 ['acuantiar', 'acuantíar', 'acuantiar', 'acuantíar', 0],
 ['adiar', 'adíar', 'adiar', 'adíar', 0],
 ['agriar', 'agríar', 'agriar', 'agríar', 0],
 ['aliar', 'alíar', 'aliar', 'alíar', 0],
 ['almadiar', 'almadíar', 'almadiar', 'almadíar', 0],
 ['amnistiar', 'amnistíar', 'amnistiar', 'amnistíar', 0],
 ['ampliar', 'amplíar', 'ampliar', 'amplíar', 0],
 ['ansiar', 'ansíar', 'ansiar', 'ansíar', 0],
 ['arriar', 'arríar', 'arriar', 'arríar', 0],
 ['ataviar', 'atavíar', 'ataviar', 'atavíar', 0],
 ['autografiar', 'autografíar', 'autografiar', 'autografíar', 0],
 ['auxiliar', 'auxilíar', 'auxiliar', 'auxilíar', 0],
 ['averiar', 'averíar', 'averiar', 'averíar', 0],
 ['aviar', 'avíar', 'aviar', 'avíar', 0],
 ['biografiar', 'biografíar', 'biografiar', 'biografíar', 0],
 ['cablegrafiar', 'cablegrafíar', 'cablegrafiar', 'cablegrafíar', 0],
 ['calcografiar', 'calcografíar', 'calcografiar', 'calcografíar', 0],
 ['caligrafiar', 'caligrafíar', 'caligrafiar', 'caligrafíar', 0],
 ['calofriar', 'calofríar', 'calofriar', 'calofríar', 0],
 ['calosfriar', 'calosfríar', 'calosfriar', 'calosfríar', 0],
 ['cariar', 'caríar', 'cariar', 'caríar', 0],
 ['cartografiar', 'cartografíar', 'cartografiar', 'cartografíar', 0],
 ['chirriar', 'chirríar', 'chirriar', 'chirríar', 0],
 ['ciar', 'cíar', 'ciar', 'cíar', 0],
 ['cinematografiar', 'cinematografíar', 'cinematografiar', 'cinematografíar', 0],
 ['confiar', 'confíar', 'confiar', 'confíar', 0],
 ['contrariar', 'contraríar', 'contrariar', 'contraríar', 0],
 ['coreografiar', 'coreografíar', 'coreografiar', 'coreografíar', 0],
 ['criar', 'críar', 'criar', 'críar', 0],
 ['cromolitografiar', 'cromolitografíar', 'cromolitografiar', 'cromolitografíar', 0],
 ['cuantiar', 'cuantíar', 'cuantiar', 'cuantíar', 0],
 ['cuchichiar', 'cuchichíar', 'cuchichiar', 'cuchichíar', 0],
 ['dactilografiar', 'dactilografíar', 'dactilografiar', 'dactilografíar', 0],
 ['demasiar', 'demasíar', 'demasiar', 'demasíar', 0],
 ['desafiar', 'desafíar', 'desafiar', 'desafíar', 0],
 ['desataviar', 'desatavíar', 'desataviar', 'desatavíar', 0],
 ['desaviar', 'desavíar', 'desaviar', 'desavíar', 0],
 ['descarriar', 'descarríar', 'descarriar', 'descarríar', 0],
 ['desconfiar', 'desconfíar', 'desconfiar', 'desconfíar', 0],
 ['descriar', 'descríar', 'descriar', 'descríar', 0],
 ['desliar', 'deslíar', 'desliar', 'deslíar', 0],
 ['desvariar', 'desvaríar', 'desvariar', 'desvaríar', 0],
 ['desviar', 'desvíar', 'desviar', 'desvíar', 0],
 ['ejecutoriar', 'ejecutoríar', 'ejecutoriar', 'ejecutoríar', 0],
 ['enfriar', 'enfríar', 'enfriar', 'enfríar', 0],
 ['engaliar', 'engalíar', 'engaliar', 'engalíar', 0],
 ['enhastiar', 'enhastíar', 'enhastiar', 'enhastíar', 0],
 ['enlejiar', 'enlejíar', 'enlejiar', 'enlejíar', 0],
 ['enriar', 'enríar', 'enriar', 'enríar', 0],
 ['entrecriar', 'entrecríar', 'entrecriar', 'entrecríar', 0],
 ['enviar', 'envíar', 'enviar', 'envíar', 0],
 ['escalofriar', 'escalofríar', 'escalofriar', 'escalofríar', 0],
 ['esgrafiar', 'esgrafíar', 'esgrafiar', 'esgrafíar', 0],
 ['esperriar', 'esperríar', 'esperriar', 'esperríar', 0],
 ['espiar', 'espíar', 'espiar', 'espíar', 0],
 ['esquiar', 'esquíar', 'esquiar', 'esquíar', 0],
 ['estenografiar', 'estenografíar', 'estenografiar', 'estenografíar', 0],
 ['estriar', 'estríar', 'estriar', 'estríar', 0],
 ['expatriar', 'expatríar', 'expatriar', 'expatríar', 0],
 ['expiar', 'expíar', 'expiar', 'expíar', 0],
 ['extasiar', 'extasíar', 'extasiar', 'extasíar', 0],
 ['extraviar', 'extravíar', 'extraviar', 'extravíar', 0],
 ['fiar', 'fíar', 'fiar', 'fíar', 0],
 ['fotografiar', 'fotografíar', 'fotografiar', 'fotografíar', 0],
 ['fotolitografiar', 'fotolitografíar', 'fotolitografiar', 'fotolitografíar', 0],
 ['gloriar', 'gloríar', 'gloriar', 'gloríar', 0],
 ['guiar', 'guíar', 'guiar', 'guíar', 0],
 ['hastiar', 'hastíar', 'hastiar', 'hastíar', 0],
 ['historiar', 'historíar', 'historiar', 'historíar', 0],
 ['inventariar', 'inventaríar', 'inventariar', 'inventaríar', 0],
 ['jipiar', 'jipíar', 'jipiar', 'jipíar', 0],
 ['liar', 'líar', 'liar', 'líar', 0],
 ['litofotografiar', 'litofotografíar', 'litofotografiar', 'litofotografíar', 0],
 ['litografiar', 'litografíar', 'litografiar', 'litografíar', 0],
 ['malcriar', 'malcríar', 'malcriar', 'malcríar', 0],
 ['mecanografiar', 'mecanografíar', 'mecanografiar', 'mecanografíar', 0],
 ['miar', 'míar', 'miar', 'míar', 0],
 ['mimeografiar', 'mimeografíar', 'mimeografiar', 'mimeografíar', 0],
 ['paliar', 'palíar', 'paliar', 'palíar', 0],
 ['piar', 'píar', 'piar', 'píar', 0],
 ['pipiar', 'pipíar', 'pipiar', 'pipíar', 0],
 ['porfiar', 'porfíar', 'porfiar', 'porfíar', 0],
 ['radiografiar', 'radiografíar', 'radiografiar', 'radiografíar', 0],
 ['radiotelegrafiar', 'radiotelegrafíar', 'radiotelegrafiar', 'radiotelegrafíar', 0],
 ['recriar', 'recríar', 'recriar', 'recríar', 0],
 ['reenviar', 'reenvíar', 'reenviar', 'reenvíar', 0],
 ['refriar', 'refríar', 'refriar', 'refríar', 0],
 ['repatriar', 'repatríar', 'repatriar', 'repatríar', 0],
 ['resfriar', 'resfríar', 'resfriar', 'resfríar', 0],
 ['rociar', 'rocíar', 'rociar', 'rocíar', 0],
 ['rujiar', 'rujíar', 'rujiar', 'rujíar', 0],
 ['taquigrafiar', 'taquigrafíar', 'taquigrafiar', 'taquigrafíar', 0],
 ['telegrafiar', 'telegrafíar', 'telegrafiar', 'telegrafíar', 0],
 ['triar', 'tríar', 'triar', 'tríar', 0],
 ['vaciar', 'vacíar', 'vaciar', 'vacíar', 0],
 ['variar', 'varíar', 'variar', 'varíar', 0],
 ['vidriar', 'vidríar', 'vidriar', 'vidríar', 0],
 ['vigiar', 'vigíar', 'vigiar', 'vigíar', 0],
 ['xerografiar', 'xerografíar', 'xerografiar', 'xerografíar', 0],
 ['zurriar', 'zurríar', 'zurriar', 'zurríar', 0],
// orthographic irregularities (accents)
 ['ahijar', 'ahíjar', 'ahijar', 'ahíjar', 0],
 ['ahilar', 'ahílar', 'ahilar', 'ahílar', 0],
 ['ahincar', 'ahíncar', 'ahincar', 'ahíncar', 0],
 ['ahitar', 'ahítar', 'ahitar', 'ahítar', 0],
 ['ahuchar', 'ahúchar', 'ahuchar', 'ahúchar', 0],
 ['ahumar', 'ahúmar', 'ahumar', 'ahúmar', 0],
 ['ahusar', 'ahúsar', 'ahusar', 'ahúsar', 0],
 ['airar', 'aírar', 'airar', 'aírar', 0],
 ['aislar', 'aíslar', 'aislar', 'aíslar', 0],
 ['amohinar', 'amohínar', 'amohinar', 'amohínar', 0],
 ['arcaizar', 'arcaízar', 'arcaizar', 'arcaízar', 0],
 ['atraillar', 'atraíllar', 'atraillar', 'atraíllar', 0],
 ['aullar', 'aúllar', 'aullar', 'aúllar', 0],
 ['aunar', 'aúnar', 'aunar', 'aúnar', 0],
 ['aupar', 'aúpar', 'aupar', 'aúpar', 0],
 ['baraustar', 'baraústar', 'baraustar', 'baraústar', 0],
 ['cabrahigar', 'cabrahígar', 'cabrahigar', 'cabrahígar', 0],
 ['cohibir', 'cohíbir', 'cohibir', 'cohíbir', 0],
 ['desahijar', 'desahíjar', 'desahijar', 'desahíjar', 0],
 ['desahitar', 'desahítar', 'desahitar', 'desahítar', 0],
 ['desahumar', 'desahúmar', 'desahumar', 'desahúmar', 0],
 ['desainar', 'desaínar', 'desainar', 'desaínar', 0],
 ['desaislar', 'desaíslar', 'desaislar', 'desaíslar', 0],
 ['desatraillar', 'desatraíllar', 'desatraillar', 'desatraíllar', 0],
 ['descafeinar', 'descafeínar', 'descafeinar', 'descafeínar', 0],
 ['desembaular', 'desembaúlar', 'desembaular', 'desembaúlar', 0],
 ['desenraizar', 'desenraízar', 'desenraizar', 'desenraízar', 0],
 ['desraizar', 'desraízar', 'desraizar', 'desraízar', 0],
 ['embaular', 'embaúlar', 'embaular', 'embaúlar', 0],  
 ['encabrahigar', 'encabrahígar', 'encabrahigar', 'encabrahígar', 0],
 ['enraizar', 'enraízar', 'enraizar', 'enraízar', 0],
 ['europeizar', 'europeízar', 'europeizar', 'europeízar', 0],
 ['hebraizar', 'hebraízar', 'hebraizar', 'hebraízar', 0],
 ['judaizar', 'judaízar', 'judaizar', 'judaízar', 0],
 ['maullar', 'maúllar', 'maullar', 'maúllar', 0],
 ['parahusar', 'parahúsar', 'parahusar', 'parahúsar', 0],
 ['prohibir', 'prohíbir', 'prohibir', 'prohíbir', 0],
 ['prohijar', 'prohíjar', 'prohijar', 'prohíjar', 0],
 ['raizar', 'raízar', 'raizar', 'raízar', 0],
 ['raspahilar', 'raspahílar', 'raspahilar', 'raspahílar', 0], 
 ['rehilar', 'rehílar', 'rehilar', 'rehílar', 0],
 ['rehuir', 'rehúyir', 'rehuy*ir', 'rehúyir', 0],
 ['rehundir', 'rehúndir', 'rehundir', 'rehúndir', 0],
 ['rehurtar', 'rehúrtar', 'rehurtar', 'rehúrtar', 0],
 ['rehusar', 'rehúsar', 'rehusar', 'rehúsar', 0],
 ['reilar', 'reílar', 'reilar', 'reílar', 0],
 ['reinar', 'reínar', 'reinar', 'reínar', 0],
 ['respahilar', 'respahílar', 'respahilar', 'respahílar', 0], 
 ['reunir', 'reúnir', 'reunir', 'reúnir', 0],
 ['reuntar', 'reúntar', 'reuntar', 'reúntar', 0],
 ['sahumar', 'sahúmar', 'sahumar', 'sahúmar', 0],
 ['sainar', 'saínar', 'sainar', 'saínar', 0], 
 ['sobrehilar', 'sobrehílar', 'sobrehilar', 'sobrehílar', 0],
 ['traillar', 'traíllar', 'traillar', 'traíllar', 0],
// stem-changing verbs
 ['ablentar', 'ablientar', 'ablentar', 'ablientar', 1],
 ['abnegar', 'abniegar', 'abnegar', 'abniegar', 1],
 ['abuñolar', 'abuñuelar', 'abuñolar', 'abuñuelar', 1],
 ['acornar', 'acuernar', 'acornar', 'acuernar', 1],
 ['acostar', 'acuestar', 'acostar', 'acuestar', 1],
 ['acrecentar', 'acrecientar', 'acrecentar', 'acrecientar', 1],
 ['adestrar', 'adiestrar', 'adestrar', 'adiestrar', 1],
 ['adormentar', 'adormientar', 'adormentar', 'adormientar', 1],
 ['adquirir', 'adquierir', 'adquirir', 'adquierir', 1],
 ['afollar', 'afuellar', 'afollar', 'afuellar', 1],
 ['aforar', 'afuerar', 'aforar', 'afuerar', 1],
 ['agorar', 'agüerar', 'agorar', 'agüerar', 1],
 ['alebrar', 'aliebrar', 'alebrar', 'aliebrar', 1],
 ['alentar', 'alientar', 'alentar', 'alientar', 1],
 ['almorzar', 'almuerzar', 'almorzar', 'almuerzar', 1],
 ['amelar', 'amielar', 'amelar', 'amielar', 1],
 ['amolar', 'amuelar', 'amolar', 'amuelar', 1],
 ['amostrar', 'amuestrar', 'amostrar', 'amuestrar', 1],
 ['aneblar', 'anieblar', 'aneblar', 'anieblar', 1],
 ['antever', 'antever', 'antever', 'anteveer', 1],
 ['apacentar', 'apacientar', 'apacentar', 'apacientar', 1],
 ['apernar', 'apiernar', 'apernar', 'apiernar', 1],
 ['apostar', 'apuestar', 'apostar', 'apuestar', 1],
 ['asentar', 'asientar', 'asentar', 'asientar', 1],
 ['asir', 'asir', 'asir', 'asguir', 1],
 ['asolar', 'asuelar', 'asolar', 'asuelar', 1],
 ['asonar', 'asuenar', 'asonar', 'asuenar', 1],
 ['aspaventar', 'aspavientar', 'aspaventar', 'aspavientar', 1],
 ['atentar', 'atientar', 'atentar', 'atientar', 1],
 ['atestar', 'atiestar', 'atestar', 'atiestar', 1],
 ['atorar', 'atuerar', 'atorar', 'atuerar', 1],
 ['atronar', 'atruenar', 'atronar', 'atruenar', 1],
 ['aventar', 'avientar', 'aventar', 'avientar', 1],
 ['avergonzar', 'avergüenzar', 'avergonzar', 'avergüenzar', 1],
 ['azolar', 'azuelar', 'azolar', 'azuelar', 1],
 ['caber', 'caber', 'caber', 'quepar', 1],
 ['calentar', 'calientar', 'calentar', 'calientar', 1],
 ['cegar', 'ciegar', 'cegar', 'ciegar', 1],
 ['cerner', 'cierner', 'cerner', 'cierner', 1],
 ['cimentar', 'cimientar', 'cimentar', 'cimientar', 1],
 ['colar', 'cuelar', 'colar', 'cuelar', 1],
 ['concebir', 'concibir', 'concibir', 'concibir', 1],
 ['confesar', 'confiesar', 'confesar', 'confiesar', 1],
 ['consolar', 'consuelar', 'consolar', 'consuelar', 1],
 ['consonar', 'consuenar', 'consonar', 'consuenar', 1],
 ['costar', 'cuestar', 'costar', 'cuestar', 1],
 ['dedolar', 'deduelar', 'dedolar', 'deduelar', 1],
 ['defender', 'defiender', 'defender', 'defiender', 1],
 ['degollar', 'degüellar', 'degollar', 'degüellar', 1],
 ['demostrar', 'demuestrar', 'demostrar', 'demuestrar', 1],
 ['denegar', 'deniegar', 'denegar', 'deniegar', 1],
 ['denostar', 'denuestar', 'denostar', 'denuestar', 1],
 ['dentar', 'dientar', 'dentar', 'dientar', 1],
 ['derrenegar', 'derreniegar', 'derrenegar', 'derreniegar', 1],
 ['desalentar', 'desalientar', 'desalentar', 'desalientar', 1],
 ['desasentar', 'desasientar', 'desasentar', 'desasientar', 1],
 ['desasir', 'desasir', 'desasir', 'desasguir', 1],
 ['desatentar', 'desatientar', 'desatentar', 'desatientar', 1],
 ['descimentar', 'descimientar', 'descimentar', 'descimientar', 1],
 ['descollar', 'descuellar', 'descollar', 'descuellar', 1],
 ['desconsolar', 'desconsuelar', 'desconsolar', 'desconsuelar', 1],
 ['descornar', 'descuernar', 'descornar', 'descuernar', 1],
 ['desdentar', 'desdientar', 'desdentar', 'desdientar', 1],
 ['desflocar', 'desfluecar', 'desflocar', 'desfluecar', 1],
 ['desforzar', 'desfuerzar', 'desforzar', 'desfuerzar', 1],
 ['desgobernar', 'desgobiernar', 'desgobernar', 'desgobiernar', 1],
 ['deshelar', 'deshielar', 'deshelar', 'deshielar', 1],
 ['desinvernar', 'desinviernar', 'desinvernar', 'desinviernar', 1],
 ['deslendrar', 'desliendrar', 'deslendrar', 'desliendrar', 1],
 ['desmajolar', 'desmajuelar', 'desmajolar', 'desmajuelar', 1],
 ['desmelar', 'desmielar', 'desmelar', 'desmielar', 1],
 ['desmembrar', 'desmiembrar', 'desmembrar', 'desmiembrar', 1],
 ['desnegar', 'desniegar', 'desnegar', 'desniegar', 1],
 ['desolar', 'desuelar', 'desolar', 'desuelar', 1],
 ['desoldar', 'desueldar', 'desoldar', 'desueldar', 1],
 ['desollar', 'desuellar', 'desollar', 'desuellar', 1],
 ['desosar', 'deshuesar', 'desosar', 'deshuesar', 1],
 ['despernar', 'despiernar', 'despernar', 'despiernar', 1], 
 ['desplegar', 'despliegar', 'desplegar', 'despliegar', 1],
 ['desventar', 'desvientar', 'desventar', 'desvientar', 1],
 ['desvergonzar', 'desvergüenzar', 'desvergonzar', 'desvergüenzar', 1],
 ['disonar', 'disuenar', 'disonar', 'disuenar', 1],
 ['dolar', 'duelar', 'dolar', 'duelar', 1],
 ['emparentar', 'emparientar', 'emparentar', 'emparientar', 1],
 ['emporcar', 'empuercar', 'emporcar', 'empuercar', 1],
 ['encomendar', 'encomiendar', 'encomendar', 'encomiendar', 1],
 ['encorar', 'encuerar', 'encorar', 'encuerar', 1],
 ['endentar', 'endientar', 'endentar', 'endientar', 1],
 ['engorar', 'engüerar', 'engorar', 'engüerar', 1],
 ['enhestar', 'enhiestar', 'enhestar', 'enhiestar', 1],
 ['enlenzar', 'enlienzar', 'enlenzar', 'enlienzar', 1],
 ['enllocar', 'enlluecar', 'enllocar', 'enlluecar', 1],
 ['enmelar', 'enmielar', 'enmelar', 'enmielar', 1],
 ['enmendar', 'enmiendar', 'enmendar', 'enmiendar', 1],
 ['enrocar', 'enruecar', 'enrocar', 'enruecar', 1],
 ['ensangrentar', 'ensangrientar', 'ensangrentar', 'ensangrientar', 1],
 ['ensarmentar', 'ensarmientar', 'ensarmentar', 'ensarmientar', 1],
 ['entortar', 'entuertar', 'entortar', 'entuertar', 1],
 ['entrepernar', 'entrepiernar', 'entrepernar', 'entrepiernar', 1],
 ['entrever', 'entrever', 'entrever', 'entreveer', 1],
 ['erguir', 'yerguir', 'irguir', 'yerguir', 1],
 ['errar', 'yerrar', 'errar', 'yerrar', 1],
 ['escarmentar', 'escarmientar', 'escarmentar', 'escarmientar', 1],
 ['escolar', 'escuelar', 'escolar', 'escuelar', 1],
 ['esforzar', 'esfuerzar', 'esforzar', 'esfuerzar', 1],
 ['estregar', 'estriegar', 'estregar', 'estriegar', 1],
 ['ferrar', 'fierrar', 'ferrar', 'fierrar', 1],
 ['follar', 'fuellar', 'follar', 'fuellar', 1],
 ['forzar', 'fuerzar', 'forzar', 'fuerzar', 1],
 ['gobernar', 'gobiernar', 'gobernar', 'gobiernar', 1],
 ['grandisonar', 'grandisuenar', 'grandisonar', 'grandisuenar', 1],
 ['hacendar', 'haciendar', 'hacendar', 'haciendar', 1],
 ['heder', 'hieder', 'heder', 'hieder', 1], 
 ['helar', 'hielar', 'helar', 'hielar', 1], 
 ['hender', 'hiender', 'hender', 'hiender', 1],
 ['hendir', 'hiendir', 'hendir', 'hiendir', 1], 
 ['herventar', 'hervientar', 'herventar', 'hervientar', 1],
 ['hibernar', 'hibiernar', 'hibernar', 'hibiernar', 1],
 ['hollar', 'huellar', 'hollar', 'huellar', 1],
 ['incensar', 'inciensar', 'incensar', 'inciensar', 1], 
 ['infernar', 'infiernar', 'infernar', 'infiernar', 1],
 ['inhestar', 'inhiestar', 'inhestar', 'inhiestar', 1],
 ['inquirir', 'inquierir', 'inquirir', 'inquierir', 1],
 ['invernar', 'inviernar', 'invernar', 'inviernar', 1],
 ['jamerdar', 'jamierdar', 'jamerdar', 'jamierdar', 1],
 ['jugar', 'juegar', 'jugar', 'juegar', 1],
 ['mancornar', 'mancuernar', 'mancornar', 'mancuernar', 1],
 ['manifestar', 'manifiestar', 'manifestar', 'manifiestar', 1],
 ['melar', 'mielar', 'melar', 'mielar', 1],
 ['mentar', 'mientar', 'mentar', 'mientar', 1],
 ['merendar', 'meriendar', 'merendar', 'meriendar', 1],
 ['mostrar', 'muestrar', 'mostrar', 'muestrar', 1], 
 ['negar', 'niegar', 'negar', 'niegar', 1],
 ['oler', 'hueler', 'oler', 'hueler', 1],  
 ['pensar', 'piensar', 'pensar', 'piensar', 1], 
 ['plegar', 'pliegar', 'plegar', 'pliegar', 1], 
 ['poder', 'pueder', 'poder', 'pueder', 1],
 ['prever', 'prever', 'prever', 'preveer', 1],
 ['raer', 'raer', 'raer', 'raiguer', 1], 
 ['reaventar', 'reavientar', 'reaventar', 'reavientar', 1],
 ['recalentar', 'recalientar', 'recalentar', 'recalientar', 1],
 ['recentar', 'recientar', 'recentar', 'recientar', 1],
 ['recolar', 'recuelar', 'recolar', 'recuelar', 1],
 ['recomendar', 'recomiendar', 'recomendar', 'recomiendar', 1],
 ['recostar', 'recuestar', 'recostar', 'recuestar', 1],
 ['reforzar', 'refuerzar', 'reforzar', 'refuerzar', 1], 
 ['regar', 'riegar', 'regar', 'riegar', 1], 
 ['regimentar', 'regimientar', 'regimentar', 'regimientar', 1],
 ['regoldar', 'regüeldar', 'regoldar', 'regüeldar', 1],
 ['rehenchir', 'rehínchir', 'rehinchir', 'rehínchir', 1],
 ['rehollar', 'rehuellar', 'rehollar', 'rehuellar', 1],
 ['remendar', 'remiendar', 'remendar', 'remiendar', 1], 
 ['rendir', 'rindir', 'rindir', 'rindir', 1],
 ['renegar', 'reniegar', 'renegar', 'reniegar', 1],
 ['renovar', 'renuevar', 'renovar', 'renuevar', 1],
 ['repensar', 'repiensar', 'repensar', 'repiensar', 1],
 ['replegar', 'repliegar', 'replegar', 'repliegar', 1],
 ['resollar', 'resuellar', 'resollar', 'resuellar', 1],
 ['resonar', 'resuenar', 'resonar', 'resuenar', 1],
 ['restregar', 'restriegar', 'restregar', 'restriegar', 1],
 ['retentar', 'retientar', 'retentar', 'retientar', 1],
 ['retronar', 'retruenar', 'retronar', 'retruenar', 1],
 ['reventar', 'revientar', 'reventar', 'revientar', 1],
 ['rever', 'rever', 'rever', 'reveer', 1],
 ['rogar', 'ruegar', 'rogar', 'ruegar', 1],
 ['salpimentar', 'salpimientar', 'salpimentar', 'salpimientar', 1],
 ['sarmentar', 'sarmientar', 'sarmentar', 'sarmientar', 1],
 ['sementar', 'semientar', 'sementar', 'semientar', 1],
 ['sentar', 'sientar', 'sentar', 'sientar', 1],
 ['servir', 'sirvir', 'sirvir', 'sirvir', 1],
 ['sobresolar', 'sobresuelar', 'sobresolar', 'sobresuelar', 1],
 ['solar', 'suelar', 'solar', 'suelar', 1],
 ['soldar', 'sueldar', 'soldar', 'sueldar', 1],
 ['soltar', 'sueltar', 'soltar', 'sueltar', 1],
 ['sonar', 'suenar', 'sonar', 'suenar', 1], 
 ['sorregar', 'sorriegar', 'sorregar', 'sorriegar', 1],
 ['subsolar', 'subsuelar', 'subsolar', 'subsuelar', 1],
 ['tentar', 'tientar', 'tentar', 'tientar', 1],
 ['trascolar', 'trascuelar', 'trascolar', 'trascuelar', 1],
 ['trasver', 'trasver', 'trasver', 'trasveer', 1],
 ['tronar', 'truenar', 'tronar', 'truenar', 1],
 ['ventar', 'vientar', 'ventar', 'vientar', 1],
 ['ver', 'ver', 'ver', 'veer', 1]
];

var es_stem_changing_suffixes =
[
// verbs + derivatives: regular
 ['vencer', 'vencer', 'vencer', 'vencer', 0],  // regular instead of usual -cer;
                                               // must go before -cer

// verbs + derivatives: stem-ch.

 ['acertar', 'aciertar', 'acertar', 'aciertar', 1],
 ['amoblar', 'amueblar', 'amoblar', 'amueblar', 1],
 ['apretar', 'aprietar', 'apretar', 'aprietar', 1],
 ['arrendar', 'arriendar', 'arrendar', 'arriendar', 1],
 ['beldar', 'bieldar', 'beldar', 'bieldar', 1],
 ['cernir', 'ciernir', 'cernir', 'ciernir', 1],
 ['cerrar', 'cierrar', 'cerrar', 'cierrar', 1],
 ['clocar', 'cluecar', 'clocar', 'cluecar', 1],
 ['cocer', 'cuecer', 'cocer', 'cuecer', 1],
 ['colgar', 'cuelgar', 'colgar', 'cuelgar', 1],
 ['comenzar', 'comienzar', 'comenzar', 'comienzar', 1],
 ['contar', 'cuentar', 'contar', 'cuentar', 1],
 ['conocer', 'conocer', 'conocer', 'conozquer', 1],
 ['concertar', 'conciertar', 'concertar', 'conciertar', 1],
 ['despertar', 'despiertar', 'despertar', 'despiertar', 1],
 ['encovar', 'encuevar', 'encovar', 'encuevar', 1],
 ['engrosar', 'engruesar', 'engrosar', 'engruesar', 1],
 ['fregar', 'friegar', 'fregar', 'friegar', 1],
 ['gemir', 'gimir', 'gimir', 'gimir', 1],
 ['herbar', 'hierbar', 'herbar', 'hierbar', 1],
 ['herrar', 'hierrar', 'herrar', 'hierrar', 1],
 ['holgar', 'huelgar', 'holgar', 'huelgar', 1],
 ['medir', 'midir', 'midir', 'midir', 1], 
 ['morder', 'muerder', 'morder', 'muerder', 1],
 ['morir', 'muerir', 'murir', 'muerir', 1],
 ['nevar', 'nievar', 'nevar', 'nievar', 1],
 ['pedir', 'pidir', 'pidir', 'pidir', 1],
 ['perder', 'pierder', 'perder', 'pierder', 1],
 ['poblar', 'pueblar', 'poblar', 'pueblar', 1],
 ['probar', 'pruebar', 'probar', 'pruebar', 1],
 ['quebrar', 'quiebrar', 'quebrar', 'quiebrar', 1],
 ['querer', 'quierer', 'querer', 'quierer', 1],
 ['rodar', 'ruedar', 'rodar', 'ruedar', 1],
 ['segar', 'siegar', 'segar', 'siegar', 1],
 ['sembrar', 'siembrar', 'sembrar', 'siembrar', 1],
 ['serrar', 'sierrar', 'serrar', 'sierrar', 1],
 ['soñar', 'sueñar', 'soñar', 'sueñar', 1],
 ['temblar', 'tiemblar', 'temblar', 'tiemblar', 1], 
 ['tender', 'tiender', 'tender', 'tiender', 1],
 ['torcer', 'tuercer', 'torcer', 'tuercer', 1],
 ['tostar', 'tuestar', 'tostar', 'tuestar', 1],
 ['travesar', 'traviesar', 'travesar', 'traviesar', 1],
 ['trocar', 'truecar', 'trocar', 'truecar', 1],
 ['verter', 'vierter', 'verter', 'vierter', 1],
 ['volar', 'vuelar', 'volar', 'vuelar', 1],
 ['volcar', 'vuelcar', 'volcar', 'vuelcar', 1],

// verbs + derivatives: add "g"
 ['caer', 'caer', 'caer', 'caiguer', 1],
 ['decir', 'dicir', 'dicir', 'diguir', 1],
 ['hacer', 'hacer', 'hacer', 'haguer', 1],
 ['oír', 'oyír', 'oír', 'oiguir', 1],
 ['poner', 'poner', 'poner', 'ponguer', 1],
 ['salir', 'salir', 'salir', 'salguir', 1], 
 ['tener', 'tiener', 'tener', 'tenguer', 1],
 ['traer', 'traer', 'traer', 'traiguer', 1],
 ['valer', 'valer', 'valer', 'valguer', 1],
 ['venir', 'vienir', 'vinir', 'venguir', 1],

// suffixes
 ['cender', 'ciender', 'cender', 'ciender', 1],  // e.g. encender, etc.
 ['facer', 'facer', 'facer', 'faguer', 1],  // e.g. satisfacer, etc.
 ['ercer', 'ercer', 'ercer', 'ercer', 0],   // regular instead of usual -cer;
                                            // must go before -cer
 ['cordar', 'cuerdar', 'cordar', 'cuerdar', 1],  // e.g. acordar, etc.
 ['pezar', 'piezar', 'pezar', 'piezar', 1],    // e.g. empezar, etc.
 ['terrar', 'tierrar', 'terrar', 'tierrar', 1],   // e.g., enterrar, etc.

 ['escer', 'escer', 'escer', 'esquer', 1],    // e.g. evanescer
 ['pedrar', 'piedrar', 'pedrar', 'piedrar', 1],   // e.g. empedrar

// diphthongs/vowel changes

 // -ar
 ['ontrar', 'uentrar', 'ontrar', 'uentrar', 1],

 // -er
 ['oler', 'ueler', 'oler', 'ueler', 1],
 ['olver', 'uelver', 'olver', 'uelver', 1],
 ['over', 'uever', 'over', 'uever', 1],

 // -ir, diphthong
 ['entir', 'ientir', 'intir', 'ientir', 1],
 ['erir', 'ierir', 'irir', 'ierir', 1],
 ['ertir', 'iertir', 'irtir', 'iertir', 1],
 ['ormir', 'uermir', 'urmir', 'uermir', 1],
 ['ervir', 'iervir', 'irvir', 'iervir', 1],
 ['etir', 'itir', 'itir', 'itir', 1],

 // -ir, e -> i
 ['ebir', 'ibir', 'ibir', 'ibir', 1],
 ['egir', 'igir', 'igir', 'igir', 1],
 ['eguir', 'iguir', 'iguir', 'iguir', 1],
 ['eír', 'íer', 'i+er', 'íer', 1],
 ['enchir', 'inchir', 'inchir', 'inchir', 1],
 ['eñir', 'iñir', 'iñir', 'iñir', 1],
 ['estir', 'istir', 'istir', 'istir', 1],

 // other changes
 ['guir' ,'guir', 'guir', 'guir', 0],     // (regular)
 ['quir', 'quir', 'quir', 'quir', 0],     // (regular)
 ['üir', 'uyir', 'uy*ir', 'uyir', 1],     // e.g. argüir: i -> y
 ['uir' ,'uyir', 'uy*ir', 'uyir', 1],     // e.g. influir: i -> y

 ['ucir', 'ucir', 'ucir', 'uzquir', 1],   // -co -> -zco; e.g. conducir, etc.
 ['cer', 'cer', 'cer', 'zquer', 1],       // -co -> -zco; e.g. conocer, etc.
 ['guar', 'guar', 'guar', 'guar', 0],  // regular; avoid -uar below
 ['uar', 'úar', 'uar', 'úar', 0]     // orthographic irregularity only
];

function get_es_stems_type(verb)
{
  var i, type, stem_2, stem_p, stem_4, stem_1, irreg;

  type = verb.slice(-2);
  if (type == 'ír')
  {
    type = 'ir';
  }
  stem_2 = verb.slice(0, -2);
  stem_4 = stem_2;
  stem_p = stem_2;
  stem_1 = stem_2;
  irreg = 0;

  for (i = 0; i < es_stem_changing_wholes.length; i++)
  if (verb == es_stem_changing_wholes[i][0])
  {
    return [type, 
            es_stem_changing_wholes[i][1].slice(0, -2),
            es_stem_changing_wholes[i][0].slice(0, -2), 
            es_stem_changing_wholes[i][2].slice(0, -2),
            es_stem_changing_wholes[i][3].slice(0, -2),
            es_stem_changing_wholes[i][4]];
  }

  for (i = 0; i < es_stem_changing_suffixes.length; i++)
  if (verb.slice(-es_stem_changing_suffixes[i][0].length) == es_stem_changing_suffixes[i][0])
  {
    stem_4 = verb.slice(0, -es_stem_changing_suffixes[i][0].length) + 
             es_stem_changing_suffixes[i][1];
    stem_4 = stem_4.slice(0, -2);
    stem_p = verb.slice(0, -es_stem_changing_suffixes[i][0].length) + 
             es_stem_changing_suffixes[i][2];
    stem_p = stem_p.slice(0, -2);
    stem_1 = verb.slice(0, -es_stem_changing_suffixes[i][0].length) + 
             es_stem_changing_suffixes[i][3];
    stem_1 = stem_1.slice(0, -2);
    irreg = es_stem_changing_suffixes[i][4];
    break;
  }
  return [type, stem_4, stem_2, stem_p, stem_1, irreg];
}

function es_is_soft(suffix)
{
  return (suffix.slice(0, 1) == 'e' || suffix.slice(0, 1) == 'i' ||
          suffix.slice(0, 1) == 'é' || suffix.slice(0, 1) == 'í');
}

//
// handle orthographic irregularities occasioned by the changing
// of a suffix vowel from soft (e, i) to hard (a, o, u) or vice-versa
// 

//
// sound      sp. bef. AOU          sp. bef. EI
//  [K]              c (**)            qu (**)
// [Theta]           z                 c (*)
//   [G]             g                 gu
//   [GW]            gu                gü
//   [X]             j                 j or g
//
// (**): May be k in loanwords (e.g. "kilómetro")
// (*): some few words use z, e.g., "enzima" ("enzyme"), "zeta" 
// J before EI: "jefe", "jírafa", "pasajero", etc.
//
function es_append_suffix(stem, new_suffix, old_suffix)
{
  var new_soft = es_is_soft(new_suffix);
  var old_soft = es_is_soft(old_suffix);

  if (new_soft == old_soft)
     return stem + new_suffix;

  if (new_soft)                  // hard -> soft
  { 
    if (stem.slice(-1) == 'g')
    {
      return stem.slice(0, -1) + 'gu' + new_suffix;
    }
    else if (stem.slice(-1) == 'c')
    {
      return stem.slice(0, -1) + 'qu' + new_suffix;
    }
    else if (stem.slice(-1) == 'z')
    {
      return stem.slice(0, -1) + 'c' + new_suffix;
    }
    else if (stem.slice(-2) == 'gu')
    {
      return stem.slice(0, -2) + 'gü' + new_suffix;
    }
  } else                         // soft -> hard
  {
    if (stem.slice(-2) == 'gü')
    {
      return stem.slice(0, -2) + 'gu' + new_suffix;
    }
    else if (stem.slice(-2) == 'gu')
    {
      return stem.slice(0, -2) + 'g' + new_suffix;
    }
    else if (stem.slice(-2) == 'qu')
    {
      return stem.slice(0, -2) + 'c' + new_suffix;
    }
    else if (stem.slice(-1) == 'c')
    {
      return stem.slice(0, -1) + 'z' + new_suffix;
    }
    else if (stem.slice(-1) == 'g')
    {
      return stem.slice(0, -1) + 'j' + new_suffix;
    }
  }
 
  return stem + new_suffix;
}

var es_irregular_imperfects =
[
['ser', ['era', 'eras', 'era', 'éramos', 'erais', 'eran']],
['antever', ['anteveía','anteveías','anteveía','anteveíamos','anteveíais','anteveían']],
['entrever', ['entreveía','entreveías','entreveía','entreveíamos','entreveíais','entreveían']],
['rever', ['reveía','reveías','reveía','reveíamos','reveíais','reveían']],
['ver', ['veía','veías','veía','veíamos','veíais','veían']],
['trasver', ['trasveía','trasveías','trasveía','trasveíamos','trasveíais','trasveían']],
['prever', ['preveía','preveías','preveía','preveíamos','preveíais','preveían']],
['ir', ['iba', 'ibas', 'iba', 'íbamos', 'ibais', 'iban']]
];

function get_es_imperfect(verb)
{
  var stem;

  for (var i = 0; i < es_irregular_imperfects.length; i++)
  {
    if (verb == es_irregular_imperfects[i][0])
    {
      return es_irregular_imperfects[i][1];
    }
  }

  stem = verb.slice(0, -2);
  if (verb.slice(-2) == 'ar')
    return [stem + 'aba', stem + 'abas', stem + 'aba', stem + 'ábamos', stem + 'abais', stem + 'aban'];
  else
    return [stem + 'ía', stem + 'ías', stem + 'ía', stem + 'íamos', stem + 'íais', stem + 'ían'];
}

var es_irregular_indicatives =
[
['dar', ['doy','das','da','damos','dais','dan']],
['desdar', ['desdoy','desdás','desdá','desdamos','desdáis','desdán']],
['estar', ['estoy','estás','está','estamos','estáis','están']],
['haber',['he','has','ha','hemos','habéis','han']],
['ir', ['voy','vas','va','vamos','vais','van']],
['ser', ['soy','eres','es','somos','sois','son']],
['antever', ['anteveo','antevés','antevé','antevemos','antevéis','antevén']],
['entrever', ['entreveo','entrevés','entrevé','entrevemos','entrevéis','entrevén']],
['prever', ['preveo','prevés','prevé','prevemos','prevéis','prevén']],
['rever', ['reveo','revés','revé','revemos','revéis','revén']],
['trasver', ['trasveo','trasvés','trasvé','trasvemos','trasvéis','trasvén']],
['ver', ['veo','ves','ve','vemos','veis','ven']]
];

var es_irregular_indicative_suffixes =
[
['saber', ['sé','sabes','sabe','sabemos','sabéis','saben']]
];

function get_es_indicative(verb, type, stem_4, stem_2, stem_1)
{
  var i, stem, indicative;

  for (i = 0; i < es_irregular_indicatives.length; i++)
  {
    if (es_irregular_indicatives[i][0] == verb)
    {
      return es_irregular_indicatives[i][1];
    }
  }

  for (i = 0; i < es_irregular_indicative_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_indicative_suffixes[i][0].length) ==
        es_irregular_indicative_suffixes[i][0])
    {
      stem = verb.slice(0, -es_irregular_indicative_suffixes[i][0].length);
      return [stem + es_irregular_indicative_suffixes[i][1][0],
              stem + es_irregular_indicative_suffixes[i][1][1],
              stem + es_irregular_indicative_suffixes[i][1][2],
              stem + es_irregular_indicative_suffixes[i][1][3],
              stem + es_irregular_indicative_suffixes[i][1][4],
              stem + es_irregular_indicative_suffixes[i][1][5]];
    }
  }

  if (type == 'ar')
  {
    indicative = [stem_1 + 'o', stem_4 + 'as', stem_4 + 'a',
                  stem_2 + 'amos', stem_2 + 'áis', stem_4 + 'an'];
  }
  else if (type == 'er')
  {
    indicative = [es_append_suffix(stem_1, 'o', 'er'), 
                  stem_4 + 'es', stem_4 + 'e',
                  stem_2 + 'emos', stem_2 + 'éis', stem_4 + 'en'];
  }
  else if (verb.slice(-2) == 'ír')
  {
    indicative = [es_append_suffix(stem_1, 'o', 'ir'),
                  stem_4 + 'es', stem_4 + 'e',
                  stem_2 + 'ímos', stem_2 + 'ís', stem_4 + 'en'];
  } else
  {
    indicative = [es_append_suffix(stem_1, 'o', 'ir'),
                  stem_4 + 'es', stem_4 + 'e',
                  stem_2 + 'imos', stem_2 + 'ís', stem_4 + 'en'];
  }
  return indicative;
}

var es_preterite_irreg_suffixes =
[
  ['decir', 2, 
         ['dije', 'dijiste', 'dijo', 'dijimos', 'dijisteis', 'dijeron']],
  ['ducir', 2,
         ['duje', 'dujiste', 'dujo', 'dujimos', 'dujisteis', 'dujeron']],
                           // conducir, etc.
  ['facer', 2, 
         ['fice','ficiste','fizo','ficimos','ficisteis','ficieron']],
                            // satisfacer, etc.

  ['hacer', 2, 
         ['hice','hiciste','hizo','hicimos','hicisteis','hicieron']],

  ['poner', 1, 'pus'],
  ['poder', 1, 'pud'],
  ['querer', 1, 'quis'],
  ['saber', 1, 'sup'],
  ['tener', 1, 'tuv'],
  ['traer', 2, 
         ['traje', 'trajiste', 'trajo', 'trajimos', 'trajisteis', 'trajeron']],
  ['venir', 1, 'vin']
];

var es_preterite_irregs =
[
  ['andar', 1, 'anduv'],
  ['caber', 1, 'cup'],
  ['dar', 2, ['di','diste','dio','dimos','disteis','dieron']],
  ['desandar', 1, 'desanduv'],
  ['desdar', 2, 
      ['desdí','desdiste','desdió','desdimos','desdisteis','desdieron']],
  ['estar', 1, 'estuv'],
  ['haber', 1, 'hub'],
  ['rehacer', 2, 
      ['rehíce','rehiciste','rehízo', 'rehicimos','rehicisteis','rehicieron']],
                           // added accent
  ['contrahacer', 2, 
      ['contrahíce','contrahiciste','contrahízo', 
       'contrahicimos','contrahicisteis','contrahicieron']],
                           // added accent
  ['ir', 2, ['fui','fuiste','fue','fuimos','fuisteis','fueron']],
  ['ser', 2, ['fui','fuiste','fue','fuimos','fuisteis','fueron']],

  ['antever', 2, ['anteví','anteviste','antevió','antevimos','antevisteis','antevieron']],
  ['entrever', 2, ['entreví','entreviste','entrevió','entrevimos','entrevisteis','entrevieron']],
  ['ver', 2, ['vi','viste','vio','vimos','visteis','vieron']],
  ['prever', 2, ['preví','previste','previó','previmos','previsteis','previeron']],
  ['rever', 2, ['reví','reviste','revió','revimos','revisteis','revieron']],
  ['trasver', 2, ['trasví','trasviste','trasvió','trasvimos','trasvisteis','trasvieron']]
];

function get_es_preterite(verb, type, stem_2, stem_p)
{
  var i, stem, preterite;

  for (i = 0; i < es_preterite_irregs.length; i++)
  {
    if (verb == es_preterite_irregs[i][0])
    {
      if (es_preterite_irregs[i][1] == 1)
      {
        stem = es_preterite_irregs[i][2];
        return [stem + 'e', stem + 'iste', stem + 'o', stem + 'imos',
                stem + 'isteis', stem + 'ieron'];
      } else
      {
        return es_preterite_irregs[i][2];
      }
    }
  }

  for (i = 0; i < es_preterite_irreg_suffixes.length; i++)
  {
    if (verb.slice(-es_preterite_irreg_suffixes[i][0].length) == es_preterite_irreg_suffixes[i][0])
    {
      if (es_preterite_irreg_suffixes[i][1] == 1)
      {
        stem = verb.slice(0, -es_preterite_irreg_suffixes[i][0].length)
                + es_preterite_irreg_suffixes[i][2];
        return [stem + 'e', stem + 'iste', stem + 'o', stem + 'imos',
                stem + 'isteis', stem + 'ieron'];
      } else
      {
        stem = verb.slice(0, -es_preterite_irreg_suffixes[i][0].length);
        return [stem + es_preterite_irreg_suffixes[i][2][0],
                stem + es_preterite_irreg_suffixes[i][2][1],
                stem + es_preterite_irreg_suffixes[i][2][2],
                stem + es_preterite_irreg_suffixes[i][2][3],
                stem + es_preterite_irreg_suffixes[i][2][4],
                stem + es_preterite_irreg_suffixes[i][2][5]];
      }
    }
  }

  if (type == 'ar')
  {
    preterite = [es_append_suffix(stem_2, 'é', 'ar'),
                 stem_2 + 'aste', stem_p + 'ó',
                 stem_2 + 'amos', stem_2 + 'asteis', stem_p + 'aron'];
  }
  else if (stem_p.slice(-1) == '+')
  {
    preterite = [stem_2 + 'í', stem_2 + 'íste', stem_p.slice(0, -1) + 'ó',
             stem_2 + 'ímos', stem_2 + 'ísteis', stem_p.slice(0, -1) + 'eron'];
  } else if (stem_p.slice(-1) == '*')
  {
    preterite = [stem_2 + 'í', stem_2 + 'iste', stem_p.slice(0, -1) + 'ó',
             stem_2 + 'imos', stem_2 + 'isteis', stem_p.slice(0, -1) + 'eron'];
  } else if (stem_p.slice(-2) == 'll' || stem_p.slice(-1) == 'ñ')
  {
    preterite = [stem_2 + 'í', stem_2 + 'iste', stem_p + 'ó',
                 stem_2 + 'imos', stem_2 + 'isteis', stem_p + 'eron'];
  } else if (stem_p.slice(-1) == 'a' || stem_p.slice(-1) == 'e' || stem_p.slice(-1) == 'o')
  {
    preterite = [stem_2 + 'í', stem_2 + 'íste', stem_p + 'yó',
                 stem_2 + 'ímos', stem_2 + 'ísteis', stem_p + 'yeron'];
  } else if (stem_p.slice(-1) == 'i' || 
             (stem_p.slice(-1) == 'u' && stem_p.slice(-2) != 'gu'
                                      && stem_p.slice(-2) != 'qu'))
  {
    preterite = [stem_2 + 'í', stem_2 + 'iste', stem_p + 'yó',
                 stem_2 + 'imos', stem_2 + 'isteis', stem_p + 'yeron'];
  } else
  {
    preterite = [stem_2 + 'í', stem_2 + 'iste', stem_p + 'ió',
                 stem_2 + 'imos', stem_2 + 'isteis', stem_p + 'ieron'];
  }

  return preterite;
}

var es_future_irreg_suffixes =
[
  // regular in future & conditional (but irreg. elsewhere)
  ['bendecir', 'bendecir'],  // must be before decir 
  ['maldecir', 'maldecir'],  // must be before decir
  // ['predecir', 'predecir'],  

  // irregular
  ['poder', 'podr'],
  ['querer', 'querr'],
  ['saber', 'sabr'],
  ['poner', 'pondr'],
  ['salir', 'saldr'],
  ['tener', 'tendr'],
  ['valer', 'valdr'],
  ['venir', 'vendr'],
  ['decir', 'dir'],
  ['hacer', 'har'],
  ['facer', 'far']      // satisfacer, etc.
];

var es_future_irreg =
[
  ['caber', 'cabr'],
  ['caler', 'caldr'],
  ['haber', 'habr']
];

function get_es_future_conditional(verb)
{
  var i, stem;

  stem = verb;
  if (stem.slice(-2) == 'ír')
     stem = stem.slice(0, -2) + 'ir';    // Only one accent per word

  for (i = 0; i < es_future_irreg.length; i++)
  {
    if (verb == es_future_irreg[i][0])
    {
      stem = es_future_irreg[i][1];
      break;
    }
  }

  if (i == es_future_irreg.length)
  {
    for (i = 0; i < es_future_irreg_suffixes.length; i++)
    {
      if (verb.slice(-es_future_irreg_suffixes[i][0].length) == es_future_irreg_suffixes[i][0])
      {
        stem = verb.slice(0, -es_future_irreg_suffixes[i][0].length) + 
               es_future_irreg_suffixes[i][1];
        break;
      }
    }
  }

  return [[stem + 'é', stem + 'ás', stem + 'á', 
           stem + 'emos', stem + 'éis', stem + 'án'],
          [stem + 'ía', stem + 'ías', stem + 'ía', 
           stem + 'íamos', stem + 'íais', stem + 'ían']];
}

function get_es_non_present_subjunctive(ron_preterite)
{
  var stem = ron_preterite.slice(0, -4);
  var vowel = ron_preterite.slice(-4).slice(0, 1);

  if (vowel == 'a')
  {
     return [[stem + 'ara', stem + 'aras', stem + 'ara',
              stem + 'áramos', stem + 'arais', stem + 'aran'],
             [stem + 'ase', stem + 'ases', stem + 'ase',
              stem + 'ásemos', stem + 'aseis', stem + 'asen'],
             [stem + 'are', stem + 'ares', stem + 'are',
              stem + 'áremos', stem + 'areis', stem + 'aren']];
  } else 
  {
     return [[stem + 'era', stem + 'eras', stem + 'era',
              stem + 'éramos', stem + 'erais', stem + 'eran'],
             [stem + 'ese', stem + 'eses', stem + 'ese',
              stem + 'ésemos', stem + 'eseis', stem + 'esen'],
             [stem + 'ere', stem + 'eres', stem + 'ere',
              stem + 'éremos', stem + 'ereis', stem + 'eren']];
  }
}

var es_irregular_subjunctives =
[
['dar', ['dé', 'des', 'dé', 'demos', 'deis', 'den']],
['desdar', ['desdé', 'desdés', 'desdé', 'desdemos', 'desdéis', 'desdén']],
['estar', ['esté', 'estés', 'esté', 'estemos', 'estéis', 'estén']],
['haber', ['haya', 'hayas', 'haya', 'hayamos', 'hayáis', 'hayan']],
['ir', ['vaya', 'vayas', 'vaya', 'vayamos', 'vayáis', 'vayan']],
['ser', ['sea', 'seas', 'sea', 'seamos', 'seáis', 'sean']]
];

var es_irregular_subjunctive_suffixes =
[
['saber', ['sepa', 'sepas', 'sepa', 'sepamos', 'sepáis', 'sepan']]
];

function get_es_subjunctive(verb, type, stem_4, stem_p, stem_1)
{
  var i, stem, new_stem_p;

  if (stem_p.slice(-1) == '*' || stem_p.slice(-1) == '+')
  {
    new_stem_p = stem_p.slice(0, -1);
  } else
  {
    new_stem_p = stem_p;
  }

  for (i = 0; i < es_irregular_subjunctives.length; i++)
  {
    if (es_irregular_subjunctives[i][0] == verb)
       return es_irregular_subjunctives[i][1];
  }

  for (i = 0; i < es_irregular_subjunctive_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_subjunctive_suffixes[i][0].length) ==
        es_irregular_subjunctive_suffixes[i][0])
    {
      stem = verb.slice(0, -es_irregular_subjunctive_suffixes[i][0].length);
      return [stem + es_irregular_subjunctive_suffixes[i][1][0],
              stem + es_irregular_subjunctive_suffixes[i][1][1],
              stem + es_irregular_subjunctive_suffixes[i][1][2],
              stem + es_irregular_subjunctive_suffixes[i][1][3],
              stem + es_irregular_subjunctive_suffixes[i][1][4],
              stem + es_irregular_subjunctive_suffixes[i][1][5]];
    }
  }

  for (i = 0; i < es_irregular_subjunctives.length; i++)
  {
    if (es_irregular_subjunctives[i][0] == verb)
       return es_irregular_subjunctives[i][1];
  }

  if (stem_1 != stem_4)
  {
    if (type == 'ar')
    {
      return [es_append_suffix(stem_1, 'e', 'ar'),
              es_append_suffix(stem_1, 'es', 'ar'),
              es_append_suffix(stem_1, 'e', 'ar'),
              es_append_suffix(stem_1, 'emos', 'ar'),
              es_append_suffix(stem_1, 'éis', 'ar'),
              es_append_suffix(stem_1, 'en', 'ar')];
    } else
    {
      return [es_append_suffix(stem_1, 'a', type),
              es_append_suffix(stem_1, 'as', type),
              es_append_suffix(stem_1, 'a', type),
              es_append_suffix(stem_1, 'amos', type),
              es_append_suffix(stem_1, 'áis', type),
              es_append_suffix(stem_1, 'an', type)];
    }
  }
  else
  { 
    if (type == 'ar')
    {
      return [es_append_suffix(stem_4, 'e', 'ar'),
              es_append_suffix(stem_4, 'es', 'ar'),
              es_append_suffix(stem_4, 'e', 'ar'),
              es_append_suffix(new_stem_p, 'emos', 'ar'),
              es_append_suffix(new_stem_p, 'éis', 'ar'),
              es_append_suffix(stem_4, 'en', 'ar')];
    } else
    {
      return [es_append_suffix(stem_4, 'a', type),
              es_append_suffix(stem_4, 'as', type),
              es_append_suffix(stem_4, 'a', type),
              es_append_suffix(new_stem_p, 'amos', type),
              es_append_suffix(new_stem_p, 'áis', type),
              es_append_suffix(stem_4, 'an', type)];
    }
  }
}

var es_irregular_commands = 
[
['ir', 've'],
['ser', 'sé'],
['haber', 'he'],

['poner', 'pon'],
['tener', 'ten'],
['venir', 'ven'],
['decir', 'di'],
['entredecir', 'entredí'],
['desfacer', 'desfaz']
];

var es_irregular_command_suffixes =
[
// ['facer', 'faz'],    // satisfacer, etc.
['hacer', 'haz'],
['salir', 'sal'],


                     // suffixes only --- salir, tener, venir alone
                     // handled above
['poner', 'pón'],
['tener', 'tén'],
['venir', 'vén']
];

function get_es_command(verb, indicative, subjunctive)
{
  var i, tu_command, vosotros_command;

  tu_command = indicative[2];
  vosotros_command = verb.slice(0, -1) + 'd';

  for (i = 0; i < es_irregular_commands.length; i++)
  {
    if (es_irregular_commands[i][0] == verb)
    {
      tu_command = es_irregular_commands[i][1];
      break;
    }
  }

  if (i == es_irregular_commands.length)
  {  
    for (i = 0; i < es_irregular_command_suffixes.length; i++)
    {
      if (verb.slice(-es_irregular_command_suffixes[i][0].length)
          == es_irregular_command_suffixes[i][0])
      {
        tu_command = verb.slice(0, -es_irregular_command_suffixes[i][0].length) 
                                        + es_irregular_command_suffixes[i][1];
        break;
      }
    }
  }
 
  return ['', tu_command, subjunctive[2], subjunctive[3], vosotros_command, subjunctive[5]];
}

function get_es_present_participle(verb, type, stem_p)
{
  if (verb == 'ir')
  {
    return 'yendo';
  }

  if (verb == 'poder')
  {
    return 'pudiendo';
  }

  if (type == 'ar')
  {
    return stem_p + 'ando';
  } else if (stem_p.slice(-1) == '*' || stem_p.slice(-1) == '+')
  {
    return stem_p.slice(0, -1) + 'endo';
  } else if (stem_p.slice(-2) == 'll' || stem_p.slice(-1) == 'ñ')
  {
    return stem_p + 'endo';
  } else if (stem_p.slice(-1) == 'a' || stem_p.slice(-1) == 'e' ||
             stem_p.slice(-1) == 'i' || stem_p.slice(-1) == 'o' || 
             (stem_p.slice(-1) == 'u' && stem_p.slice(-2) != 'gu'
                                      && stem_p.slice(-2) != 'qu'))
  {
    return stem_p + 'yendo';
  } else
  {
    return stem_p + 'iendo';
  } 
}

// 
// verb, pp, adjectival pp (if different), 1 if irregular and 0 o.w.
//
var es_irregular_pps =
[
['freír', 'frito', '', 1],
['ver', 'visto', '', 1],
['romper', 'roto', '', 1],
['arromper', 'arroto', '', 1],
['prever', 'previsto', '', 1],
['entrever', 'entrevisto', '', 1],
['antever', 'antevisto', '', 1],
['rever', 'revisto', '', 1],
['trasver', 'trasvisto', '', 1],
['inhestar', 'inhiesto', '', 1],

['ensolver', 'ensolvido', '', 0],
['desabrir', 'desabrido', '', 0],
['bendecir', 'bendecido', 'bendito', 0],
['maldecir', 'maldecido', 'maldito', 0],
['corromper', 'corrompido', 'corrupto', 0],

['absorber', 'absorbido', 'absorto', 0],
['abstraer', 'abstraído', 'abstracto', 0],
['afligir', 'afligido', 'aflicto', 0],
['ahitar', 'ahitado', 'ahinto', 0],
['atender', 'atendido', 'atento', 0],
['bienquerer', 'bienquerido', 'bienquiso', 0],
['comprimir', 'comprimido', 'compreso', 0],
['concluir', 'concluido', 'concluso', 0],
['confesar', 'confesado', 'confeso', 0],
['confundir', 'confundido', 'confuso', 0],
['convencer', 'convencido', 'convicto', 0],
['corregir', 'corregido', 'correcto', 0],
['despertar', 'despertado', 'despierto', 0],
['desproveer', 'desproveído', 'desprovisto', 0],
['dividir', 'dividido', 'diviso', 0],
['elegir', 'elegido', 'electo', 0],
['excluir', 'excluido', 'excluso', 0],
['expresar', 'expresado', 'expreso', 0],
['extender', 'extendido', 'extenso', 0],
['extinguir', 'extinguido', 'extinto', 0],
['fijar', 'fijado', 'fijo', 0],
['hartar', 'hartado', 'harto', 0],
['imprimir', 'imprimido', 'impreso', 0],
['incluir', 'incluido', 'incluso', 0],
['ingerir', 'ingerido', 'ingerto', 0],
['invertir', 'invertido', 'inverso', 0],
['juntar', 'juntado', 'junto', 0],
['manifestar', 'manifestado', 'manifiesto', 0],
['nacer', 'nacido', 'nato', 0],
['omitir', 'omitido', 'omiso', 0],
['oprimir', 'oprimido', 'opreso', 0],
['pasar', 'pasado', 'paso', 0],
['poseer', 'poseído', 'poseso', 0],
['prender', 'prendido', 'preso', 0],
['pretender', 'pretendido', 'pretenso', 0],
['proveer', 'proveído', 'provisto', 0],
['recluir', 'recluido', 'recluso', 0],
['reimprimir', 'reimprimido', 'reimpreso', 0],
['retorcer', 'retorcido', 'retuerto', 0],
['salvar', 'salvado', 'salvo', 0],
['sobreimprimir', 'sobreimprimido', 'sobreimpreso', 0],
['sofreír', 'sofreído', 'sofrito', 0],
['soltar', 'soltado', 'suelto', 0],
['subdividir', 'subdividido', 'sudiviso', 0],
['suprimir', 'suprimido', 'supreso', 0],
['suspender', 'suspendido', 'suspenso', 0],
['substituir', 'substituido', 'substituto', 0],
['sujetar', 'sujetado', 'sujeto', 0],
['sustituir', 'sustituido', 'sustituto', 0],
['teñir', 'teñido', 'tinto', 0],
['torcer', 'torcido', 'tuerto', 0]

];

var es_irregular_pp_suffixes =
[

['jabrir', 'jabrido', '', 0],   // regular: must go before abrir

['abrir', 'abierto', '', 1],
['cubrir', 'cubierto', '', 1],
['decir', 'dicho', '', 1],
['hacer', 'hecho', '', 1],
['morir', 'muerto', '', 1],
['poner', 'puesto', '', 1],
['pudrir', 'podrido', '', 1],



['facer', 'fecho', '', 1],      // satisfacer, etc.
['scribir','scrito','', 1],     // escribir, inscribir, etc.
['solver', 'suelto', '', 1],    // absolver, resolver, etc.
['volver', 'vuelto', '', 1]
];

function get_es_past_participle(verb, type, stem_2)
{
  var i, stem;

  for (i = 0; i < es_irregular_pps.length; i++)
  {
    if (verb == es_irregular_pps[i][0])
    {
      if (es_irregular_pps[i][2] == '')
      {
        return [es_irregular_pps[i][1], '-'];
      } else
      {
        return [es_irregular_pps[i][1], es_irregular_pps[i][2]];
      }
    }
  }

  for (i = 0; i < es_irregular_pp_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_pp_suffixes[i][0].length) == es_irregular_pp_suffixes[i][0])
    {
      stem = verb.slice(0, -es_irregular_pp_suffixes[i][0].length);
      if (es_irregular_pp_suffixes[i][2] == '')
      {
        return [stem + es_irregular_pp_suffixes[i][1], '-'];
      } else
      {
        return [stem + es_irregular_pp_suffixes[i][1],
                stem + es_irregular_pp_suffixes[i][2]];
      }
    }
  }

  if (type == 'ar')
  {
    return [stem_2 + 'ado', '-'];
  } else 
  {
    if (stem_2.slice(-1) == 'a' || stem_2.slice(-1) == 'o' || 
        stem_2.slice(-1) == 'e')
    {
      return [stem_2 + 'ído', '-'];
    } else
    {  
      return [stem_2 + 'ido', '-'];
    }
  }
}

//
// Verbs which can be conjugated regularly, in addition to the
// conjugation we have given, depending on the meaning of the word.
//
var dual_verbs =
['apostar', 'arrendar', 'asolar', 'atentar', 'aterrar',
  'atestar', 'atorar', 'colar', 'enrocar', 'follar',
  'reinar'];

function conjugate_spanish(verb)
{
  var indicative, subjunctive, imperfect, preterite, 
      preterite_subjunctive_1, preterite_subjunctive_2, future_subjunctive;
  var type, vec, stem_4, stem_2, stem_1, stem_p, command, future, conditional;
  var present_participle, past_participle, past_participle_adj;
  var i, rv;

  if (verb.slice(-2) == '-1')
  {
    rv = conjugate_spanish_as_regular(verb.slice(0, -2));
    if (verb == 'enrocar-1')
    {
      rv[6] = ['enroque', 'enroques', 'enroque', 'enroquemos', 'enroquéis', 'enroquen'];
      rv[5][2] = 'enroque';
      rv[5][3] = 'enroquemos';
      rv[5][5] = 'enroquen';
      rv[1][0] = 'enroqué';
    }
    rv.push(1);
    return rv;
  }

  if (verb == 'podrir')
  {
    verb = 'pudrir';    // conjugated in same way
  }

  vec = get_es_stems_type(verb);
  type = vec[0];
  stem_4 = vec[1];
  stem_2 = vec[2];
  stem_p = vec[3];
  stem_1 = vec[4];

  indicative = get_es_indicative(verb, type, stem_4, stem_2, stem_1);

  imperfect = get_es_imperfect(verb);

  preterite = get_es_preterite(verb, type, stem_2, stem_p);

  vec = get_es_future_conditional(verb);
  future = vec[0];
  conditional = vec[1];

  subjunctive = get_es_subjunctive(verb, type, stem_4, stem_p, stem_1);

  command = get_es_command(verb, indicative, subjunctive);

  vec = get_es_non_present_subjunctive(preterite[5]);
  preterite_subjunctive_1 = vec[0];
  preterite_subjunctive_2 = vec[1];
  future_subjunctive = vec[2];

  present_participle = get_es_present_participle(verb, type, stem_p);

  vec = get_es_past_participle(verb, type, stem_2);
  past_participle = vec[0];
  past_participle_adj = vec[1];

  rv = [indicative, preterite, imperfect, future, conditional, command, subjunctive, preterite_subjunctive_1, preterite_subjunctive_2, future_subjunctive, present_participle, past_participle, past_participle_adj];

  for (i = 0; i < dual_verbs.length; i++)
  {
    if (dual_verbs[i] == verb)
    {
      rv.push(1);
      return rv;
    }
  }

  return rv;  
}

function conjugate_spanish_as_regular(verb)
{
  var ans, i, j;

  if (verb.slice(-2) == 'ar')
  {
    ans = conjugate_spanish('besar');
  } else if (verb.slice(-2) == 'er')
  {
    ans = conjugate_spanish('beber');
  } else
  {
    ans = conjugate_spanish('vivir');
  }
  for (i = 0; i < 10; i++)
  for (j = 0; j < 6; j++)
  {
    ans[i][j] = verb.slice(0, -2) + ans[i][j].slice(3);
  }
  ans[5][0] = '';
  ans[10] = verb.slice(0, -2) + ans[10].slice(3);
  ans[11] = verb.slice(0, -2) + ans[11].slice(3);

  return ans;
}

function get_group_es(verb)
{
  var vec, i, j, conj_1, conj_2;

  if (verb == 'podrir')
  {
    return '-ir (irregular)';
  }

  if (verb == 'enrocar-1')
  {
    return '-ar (orthographic changes)';
  }

  if (verb.slice(-2) == '-1')
  {
    return '-' + verb.slice(-4, -2) + ' (regular)';
  }

  vec = get_es_stems_type(verb);

  for (i = 0; i < es_irregular_imperfects.length; i++)
  {
    if (verb == es_irregular_imperfects[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  for (i = 0; i < es_irregular_indicatives.length; i++)
  {
    if (verb == es_irregular_indicatives[i][0])
       return('-' + vec[0] + ' (irregular)');
  }

  for (i = 0; i < es_irregular_indicative_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_indicative_suffixes[i][0].length) ==
        es_irregular_indicative_suffixes[i][0])
        return('-' + vec[0] + ' (irregular)');
  }
 
  for (i = 0; i < es_preterite_irregs.length; i++)
  {
    if (verb == es_preterite_irregs[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  for (i = 0; i < es_preterite_irreg_suffixes.length; i++)
  {
    if (verb.slice(-es_preterite_irreg_suffixes[i][0].length) == es_preterite_irreg_suffixes[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  for (i = 0; i < es_future_irreg.length; i++)
  {
    if (verb == es_future_irreg[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }
 
  for (i = 0; i < es_future_irreg_suffixes.length; i++)
  {
    if (verb.slice(-es_future_irreg_suffixes[i][0].length) == es_future_irreg_suffixes[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  for (i = 0; i < es_irregular_subjunctives.length; i++)
  {
    if (es_irregular_subjunctives[i][0] == verb)
      return('-' + vec[0] + ' (irregular)');
  }

  for (i = 0; i < es_irregular_subjunctive_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_subjunctive_suffixes[i][0].length) ==
        es_irregular_subjunctive_suffixes[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }
 
  for (i = 0; i < es_irregular_commands.length; i++)
  {
    if (es_irregular_commands[i][0] == verb)
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  for (i = 0; i < es_irregular_command_suffixes.length; i++)
  {
    if (verb.slice(-es_irregular_command_suffixes[i][0].length) == es_irregular_command_suffixes[i][0])
    {
      return('-' + vec[0] + ' (irregular)');
    }
  }

  //
  // Presence in the irregular past participle list might not mean
  // irregularity; it might just indicate the absence of irregularity
  // or the presence of an distinct adjectival PP.
  //
  for (i = 0; i < es_irregular_pps.length; i++)
  {
    if (verb == es_irregular_pps[i][0])
    {
      if (es_irregular_pps[i][3] == 1)
      {
        return('-' + vec[0] + ' (irregular)');
      }
      break;
    }
  }
  
  if (i == es_irregular_pps.length)
  { 
    for (i = 0; i < es_irregular_pp_suffixes.length; i++)
    {
      if (verb.slice(-es_irregular_pp_suffixes[i][0].length) == es_irregular_pp_suffixes[i][0])
      {
        if (es_irregular_pp_suffixes[i][3] == 1)
        {
          return('-' + vec[0] + ' (irregular)');
        }
        break;
      }
    }
  }

  if (vec[5] == 1)
     return '-' + vec[0] + ' (stem-changing)';

  // Determine whether there are purely orthographic changes.
  conj_1 = conjugate_spanish(verb);
  conj_2 = conjugate_spanish_as_regular(verb);
  for (i = 0; i < 10; i++)
  for (j = 0; j < 6; j++)
  {
    if (conj_1[i][j] != conj_2[i][j])
       return '-' + vec[0] + ' (orthographic changes)';
  }

  if (conj_1[10] != conj_2[10] || conj_1[11] != conj_2[11])
     return '-' + vec[0] + ' (orthographic changes)';

  return '-' + vec[0] + ' (regular)';
}

function es_report_on(message, list)
{
  var report = message + 'Suffixes: ';
  var ct = 0;
  var i, j;
 
  for (i = 0; i < list.length; i++)
  for (j = 0; j < list.length; j++)
  if (i != j)
  {
    if (list[i][0].length >= list[j][0].length &&
        list[i][0].slice(-list[j][0].length) == list[j][0])
    {
      if (j < i)
      {
        alert('Hidden suffix: ' + list[i][0] + ', ' + list[j][0]);
      }
      if (ct > 0)
         report = report + ';   ';
      report = report + list[i][0] + ', ' + list[j][0];
      ct++;
    }
  }
  if (report == message + 'Suffixes: ')
     report = message + ' No suffixes found.';
  alert(report);
}

function es_debug_report_on_containment()
{
  es_report_on('Stem changes: ', es_stem_changing_suffixes);
  es_report_on('Present indicative: ', es_irregular_indicative_suffixes);
  es_report_on('Preterite indicative: ', es_preterite_irreg_suffixes);
  es_report_on('Future/conditional: ', es_future_irreg_suffixes);
  es_report_on('Present subjunctive: ', es_irregular_subjunctive_suffixes);
  es_report_on('Command: ', es_irregular_command_suffixes);
  es_report_on('Past participle: ', es_irregular_pp_suffixes);
}

