diff --git a/README.md b/README.md index 0424ab6..c36fa09 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ input (even across platforms) always yields the same output. ## Data source & contributions -The rules live in [`index.ts`](./index.ts) and originate from Etalab's +The rules live in [`rules.ts`](./rules.ts) and originate from Etalab's [`normadresse`](https://github.com/etalab/normadresse) project as well as the [`js-normadresse`](https://github.com/BaseAdresseNationale/js-normadresse) port. If you notice a discrepancy with the official BAN output, please open an diff --git a/index.ts b/index.ts index 4870c95..f42a534 100644 --- a/index.ts +++ b/index.ts @@ -1,11 +1,6 @@ -const DEFAULT_MAX_LENGTH = 32; +import { type CsvRule, RULES_DATA } from './rules.ts'; -type CsvRule = { - etape: string; - long: string; - court: string; - option: string; -}; +const DEFAULT_MAX_LENGTH = 32; const deburrMap = new Map([ ['Æ', 'Ae'], @@ -77,590 +72,6 @@ function deburr(str: string): string { return result; } -/** - * Abbreviation rules ported verbatim from the upstream Etalab dataset - * (etalab/normadresse). Rules are grouped by `etape` (step); `compileRules` - * parses `etape` with `parseFloat`, so fractional steps such as '1.0', '2.0', - * '4.0' and '5.0' merge into their integer group (1, 2, 4, 5) and ARE applied - * by the corresponding pipeline step. - * - * However, the groups '0' (PROLONGE / TERRE PLEIN / INFERIEUR), '-4.0' - * (MARTYR), '1.5' (^CENTRE) - * and '7.0' (month abbreviations) are compiled but NEVER applied: no pipeline - * step reads them (the pipeline only uses groups 1, 2, 3, 4, 5, 6 and 9). - * This matches the upstream Python implementation, which also never applies - * these groups. They are intentionally retained — not deleted — to stay - * faithful to the upstream dataset and behavior. Zero runtime effect. - */ -const RULES_DATA: Array = [ - { etape: '1', long: 'ALLEE ', court: 'all ', option: '' }, - { etape: '1', long: 'AVENUE ', court: 'av ', option: '' }, - { etape: '1', long: 'BOULEVARD ', court: 'bd ', option: '' }, - { etape: '1', long: 'CARREFOUR ', court: 'carr ', option: '' }, - { etape: '1', long: 'CENTRE COMMERCIAL ', court: 'ccal @ ', option: '' }, - { etape: '1', long: 'IMMEUBLE(S|) ', court: 'imm ', option: '' }, - { etape: '1', long: 'IMPASSE ', court: 'imp ', option: '' }, - { etape: '1', long: 'LIEU DIT ', court: 'ld @ ', option: '' }, - { etape: '1', long: 'LOTISSEMENT ', court: 'lot ', option: '' }, - { etape: '1', long: 'PASSAGE ', court: 'pas ', option: '' }, - { etape: '1', long: 'PLACE ', court: 'pl ', option: '' }, - { etape: '1', long: 'RESIDENCE(S|) ', court: 'res ', option: '' }, - { etape: '1', long: 'ROND POINT ', court: 'rpt @ ', option: '' }, - { etape: '1', long: 'ROUTE ', court: 'rte ', option: '' }, - { etape: '1', long: 'SQUARE ', court: 'sq ', option: '' }, - { etape: '1', long: 'VILLAGE ', court: 'vlge ', option: '' }, - { etape: '1', long: 'ZONE INDUSTRIELLE ', court: 'zi @ ', option: '' }, - { - etape: '1.0', - long: 'ZONE D ACTIVITE ECONOMIQUE ', - court: 'zae @ @ @ ', - option: '', - }, - { - etape: '1.0', - long: 'ZONE ACTIVITE ECONOMIQUE ', - court: 'zae @ @ ', - option: '', - }, - { etape: '1', long: 'ZONE D ACTIVITE ', court: 'za @ @ ', option: '' }, - { etape: '1', long: 'ZONE ACTIVITE ', court: 'za @ ', option: '' }, - { - etape: '1', - long: 'ZONE AMENAGEMENT CONCERTE ', - court: 'zac @ @ ', - option: '', - }, - { - etape: '1', - long: 'ZONE D AMENAGEMENT CONCERTE ', - court: 'zac @ @ @ ', - option: '', - }, - { - etape: '1', - long: 'ZONE D AMENAGEMENT DIFFERE ', - court: 'zad @ @ @ ', - option: '', - }, - { - etape: '1', - long: 'ZONE AMENAGEMENT DIFFERE ', - court: 'zad @ @ ', - option: '', - }, - { - etape: '1', - long: 'ZONE A URBANISER EN PRIORITE ', - court: 'zup @ @ @ @ ', - option: '', - }, - { - etape: '1.0', - long: 'ZONE ARTISANALE ', - court: 'zone artisanale ', - option: '', - }, - { etape: '1.0', long: 'LA PIERRE ', court: 'LA pierre ', option: '' }, - { - etape: '1.0', - long: ' DE LA FONTAINE( PROLONGEE|$)', - court: ' de la fontaine\\g<1>', - option: '', - }, - { - etape: '2.0', - long: 'SAINT JEAN BAPTISTE', - court: 'st JEAN BAPTISTE', - option: '', - }, - { etape: '2.0', long: 'DE L AIGLETTE', court: 'AIGLETTE @ @', option: '' }, - { etape: '2.0', long: 'SAINTE CROIX', court: 'SAINTE croix', option: '' }, - { etape: '2.0', long: 'TOUR CARREE', court: 'tour CARREE', option: '' }, - { etape: '2.0', long: 'PONT SAINT', court: 'pont SAINT', option: '' }, - { - etape: '2.0', - long: 'SAINT PIERRE SAINT', - court: 'st pierre st', - option: '', - }, - { - etape: '2.0', - long: 'ANTOINE DE SAINT', - court: 'ANTOINE DE st', - option: '', - }, - { - etape: '2.0', - long: 'DECLARATION UNIVERSELLE DES DROITS', - court: 'DECLARATION universelle DES droits', - option: '', - }, - { etape: '2.0', long: 'LA CLAIRE', court: 'LA claire', option: '' }, - { etape: '2.0', long: 'LA TOUR', court: 'LA tour', option: '' }, - { etape: '2', long: 'ADJUDANT', court: 'adj', option: '' }, - { etape: '2', long: 'ASPIRANT', court: 'asp', option: '' }, - { etape: '2', long: 'CARDINAL', court: 'cdl', option: '' }, - { etape: '2', long: 'COMMANDANT', court: 'cdt', option: '' }, - { etape: '2', long: 'DIRECT(EUR|ION)', court: 'dir', option: '' }, - { etape: '2', long: 'DOCTEUR', court: 'dr', option: '' }, - { etape: '2', long: 'EVEQUE', court: 'evq', option: '' }, - { etape: '2', long: 'FUSILIERS', court: 'fus', option: '' }, - { - etape: '2.0', - long: 'GOUVERNEUR GENERAL', - court: 'gouv GENERAL', - option: '', - }, - { etape: '2', long: 'GENERAL', court: 'gal', option: '' }, - { etape: '2', long: 'INGENIEUR', court: 'ing', option: '' }, - { etape: '2', long: 'INSPECTEUR', court: 'insp', option: '' }, - { etape: '2', long: 'LIEUTENANT DE VAISSEAU', court: 'ltdv @ @', option: '' }, - { etape: '2', long: 'LIEUTENANT', court: 'lt', option: '' }, - { etape: '2', long: 'COLONEL', court: 'cnl', option: '' }, - { etape: '2', long: 'MAITRE', court: 'me', option: '' }, - { etape: '2', long: 'MARECHAL', court: 'mal', option: '' }, - { etape: '2', long: 'MEDECIN', court: 'med', option: '' }, - { etape: '2', long: 'MONSEIGNEUR', court: 'mgr', option: '' }, - { etape: '2', long: 'NOTRE DAME', court: 'nd @', option: '' }, - { etape: '2', long: 'PASTEUR', court: 'past', option: '' }, - { etape: '2', long: 'PREFET', court: 'pref', option: '' }, - { etape: '2', long: 'PRESIDENT', court: 'pdt', option: '' }, - { etape: '2', long: 'PROFESSEUR', court: 'pr', option: '' }, - { etape: '2', long: 'RECTEUR', court: 'rect', option: '' }, - { etape: '2', long: 'SERGENT', court: 'sgt', option: '' }, - { etape: '2', long: 'VEUVE', court: 'vve', option: '' }, - { - etape: '3', - long: '(AMANIEU|ARTHUR|ALAIN|ARNOULD|ALIX|AGNES|ANATOLE|AUGUSTE|AUGUSTIN|AMBROISE|AMADEUS|ALBERT|AGATHE|ANGELIQUE|ANNE|ANDRE|ANDREE|ANTOINE|ANTOINETTE|ANTONIO|ADRIEN|ALEXANDRE|ALEXANDRA|ALPHONSE|ALFRED|ARISTIDE|ACHILLE)', - court: 'a', - option: '', - }, - { - etape: '3', - long: '(BAPTISTE|BERNARD|BENJAMIN|BERTRAND)', - court: 'b', - option: '', - }, - { - etape: '3', - long: '(CLEMENT|CMLEMENCE|CAMILLE|CESAR|CATHERINE|CORENTIN|CLAIRE|CLOTILDE|CHARLES|CHARLOTTE|CLAUDE|CHRISTIANE|CHRISTOPHE|CHRISTIAN|CHRISTINE|CONSTANTIN|CYRILLE)', - court: 'c', - option: '', - }, - { - etape: '3', - long: '(DENIS|DOMINIQUE|DANIEL|DANIELLE|DANIELE|DIEUDONNE)', - court: 'd', - option: '', - }, - { - etape: '3', - long: '(EDME|EDOUARD|EDMOND|EDMONDE|ETIENNE|EMILE|EMMANUEL|EMMANUELLE|ERNEST|EUGENE|ELISABETH)', - court: 'e', - option: '', - }, - { - etape: '3', - long: '(FITZGERALD|FELIX|FOLCO|FRANCOIS|FRANCOISE|FRANCIS|FRANKLIN|FERDINAND|FERNAND|FREDERIC|FREDERIQUE|FULGENCE)', - court: 'f', - option: '', - }, - { - etape: '3', - long: '(GUY|GUILLIBERT|GABRIEL|GERMAIN|GERMAINE|GEOFFROY|GEORGES|GEORGETTE|GASPARD|GASTON|GUSTAVE|GILLES|GILBERT|GILBERTE|GENEVIEVE|GUENIEVRE|GERARD|GUILLAUME|GUILLEMETTE)', - court: 'g', - option: '', - }, - { - etape: '3', - long: '(HIPPOLYTE|HECTOR|HENRI|HERCULE|HONORE|HUBERT)', - court: 'h', - option: '', - }, - { etape: '3', long: '(IRENE)', court: 'i', option: '' }, - { - etape: '3', - long: '(JEAN|JEANNE|JEANINE|JANINE|JOHANNES|JOHN|JACQUES|JOSEPH|JOSEPHE|JOSEPHINE|JULIEN|JACQUELINE|JULES)', - court: 'j', - option: '', - }, - { etape: '3', long: '(KONRAD)', court: 'k', option: '' }, - { - etape: '3', - long: '(LAZARE|LAUREN(T|CE)|LOUIS(|E)|LUC(|IE|IEN|IENNE)|LUDOVIC|LUDVIG|LUDWIG|LINO|LEON)', - court: 'l', - option: '', - }, - { - etape: '3', - long: '(MARC|MARIUS|MANON|MAXIME|MAXIMILIEN|MARGUERITE|MARIE|MADELEINE|MAURICE|MARCEL|MARCELLE|MATHIEU|MELCHIOR|MARTIN|MONIQUE|MELANIE|MICHEL|MICHELLE|MARCELLIN)', - court: 'm', - option: '', - }, - { - etape: '3', - long: '(NICOLAS|NAPOLEON|NELSON|NOEL)', - court: 'n', - option: '', - }, - { etape: '3', long: '(OCTAVIEN|OSCAR)', court: 'o', option: '' }, - { - etape: '3', - long: '(PASCAL|PASCALE|PATRICE|PAUL|PIERRE|PHILIPPE|PHILIBERT|PERRINE|PROSPER)', - court: 'p', - option: '', - }, - { - etape: '3', - long: '(RAOUL|ROBERT|RENE|RAYMOND|REGIS|RICHARD|ROLAND|ROGER|ROLLET)', - court: 'r', - option: '', - }, - { - etape: '3', - long: '(SOPHIE|SYLVESTRE|SEBASTIEN|STANISLAS)', - court: 's', - option: '', - }, - { - etape: '3', - long: '(TELESPHORE|THERESE|THEODOR|THEODORE|THEOPHILE|TOUSSAINT)', - court: 't', - option: '', - }, - { etape: '3', long: '(VINCENT)', court: 'v', option: '' }, - { etape: '3', long: '(YVES|YVONNE)', court: 'y', option: '' }, - { etape: '4', long: 'AERODROME', court: 'aer', option: '' }, - { etape: '4', long: 'AEROGARE', court: 'aerg', option: '' }, - { etape: '4', long: 'AERONAUTIQUE', court: 'aern', option: '' }, - { etape: '4', long: 'AEROPORT', court: 'aerp', option: '' }, - { etape: '4', long: 'AGENCE', court: 'agce', option: '' }, - { etape: '4', long: 'AGRICOLE', court: 'agric', option: '' }, - { etape: '4', long: 'ANCIEN(NEMENT|)', court: 'anc', option: '' }, - { etape: '4', long: 'APPARTEMENT(S|)', court: 'app', option: '' }, - { etape: '4', long: 'ARMEMENT', court: 'armt', option: '' }, - { etape: '4', long: 'ARRONDISSEMENT', court: 'arr', option: '' }, - { etape: '4', long: 'ASSOCIATION', court: 'assoc', option: '' }, - { etape: '4', long: 'ASSURANCE', court: 'assur', option: '' }, - { etape: '4', long: 'ATELIER', court: 'at', option: '' }, - { etape: '4', long: 'BARAQUEMENT', court: 'brq', option: '' }, - { etape: '4', long: 'BAS(SE|SES|)', court: 'BAS', option: '' }, - { etape: '4', long: 'BATAILLON(S|)', court: 'BTN', option: '' }, - { etape: '4', long: 'BATIMENT(S|)', court: 'BAT', option: '' }, - { etape: '4', long: 'BIS', court: 'B', option: '' }, - { etape: '4', long: 'BOITE POSTALE', court: 'BP @', option: '' }, - { etape: '4', long: 'CABINET', court: 'CAB', option: '' }, - { etape: '4', long: 'CANTON(AL|)', court: 'CANT', option: '' }, - { etape: '4', long: 'CASE POSTALE', court: 'CP', option: '' }, - { etape: '4', long: 'CHAMBRE', court: 'CHBR', option: '' }, - { etape: '4', long: 'CITADELLE', court: 'CTD', option: '' }, - { etape: '4', long: 'COLLEGE', court: 'COLL', option: '' }, - { etape: '4', long: 'COLONIE', court: 'COLO', option: '' }, - { etape: '4', long: 'COMITE', court: 'CTE', option: '' }, - { etape: '4', long: 'COMMERCIAL', court: 'CIAL', option: '' }, - { etape: '4', long: 'COMMUNA(L|UX)', court: 'COM', option: '' }, - { etape: '4', long: 'COMPAGNIE', court: 'CIE', option: '' }, - { etape: '4', long: 'COMPAGNON(S|)', court: 'COMP', option: '' }, - { etape: '4', long: 'COOPERATIVE', court: 'COOP', option: '' }, - { etape: '4', long: 'COURSE SPECIALE', court: 'CS @', option: '' }, - { etape: '4', long: 'CROIX', court: 'CRX', option: '' }, - { etape: '4', long: 'DELEGATION', court: 'DELEG', option: '' }, - { etape: '4', long: 'DEPARTEMENTA(L|UX)', court: 'DEP', option: '' }, - { etape: '4', long: 'DIVISION', court: 'DIV', option: '' }, - { etape: '4', long: 'ECONOMI(E|QUE)', court: 'ECO', option: '' }, - { etape: '4', long: 'ECRIVAIN(S|)', court: 'ECRIV', option: '' }, - { etape: '4', long: 'ENSEIGNEMENT', court: 'ENST', option: '' }, - { etape: '4', long: 'ENSEMBLE', court: 'ENS', option: '' }, - { etape: '4', long: 'ENTREE(S|)', court: 'ENT', option: '' }, - { etape: '4', long: 'ENTREPRISE', court: 'ENTR', option: '' }, - { etape: '4', long: 'EPOU(SE|X)', court: 'EP', option: '' }, - { etape: '4', long: 'ETABLISSEMENT(S|)', court: 'ETS', option: '' }, - { etape: '4', long: 'ETAGE', court: 'ETG', option: '' }, - { etape: '4', long: 'ETAT MAJOR', court: 'EM @', option: '' }, - { etape: '4', long: 'FACULTE', court: 'FAC', option: '' }, - { etape: '4', long: 'FORE(STIER|T)', court: 'FOR', option: '' }, - { etape: '4', long: 'FRANCAIS(E|)', court: 'FR', option: '' }, - { etape: '4', long: 'GENDARMERIE', court: 'GEND', option: '' }, - { etape: '4', long: 'GOUVERNE(MENTAL|UR)', court: 'GOUV', option: '' }, - { etape: '4', long: 'GRANDES', court: 'GDES', option: '' }, - { etape: '4', long: 'GRANDS', court: 'GDS', option: '' }, - { etape: '4', long: 'GRANDE', court: 'GDE', option: '' }, - { etape: '4', long: 'GRAND', court: 'GD', option: '' }, - { etape: '4', long: 'HAUTES', court: 'HTES', option: '' }, - { etape: '4', long: 'HAUTS', court: 'HTS', option: '' }, - { etape: '4', long: 'HAUTE', court: 'HTE', option: '' }, - { etape: '4', long: 'HAUT', court: 'HT', option: '' }, - { etape: '4', long: 'HOPITA(L|UX)', court: 'HOP', option: '' }, - { etape: '4', long: 'HOSPI(CE|TALIER)', court: 'HOSP', option: '' }, - { etape: '4', long: 'HOTEL', court: 'HOT', option: '' }, - { etape: '4', long: 'INFANTERIE', court: 'INFANT', option: '' }, - { etape: '4', long: 'INFERIEUR(E|)', court: 'INF', option: '' }, - { etape: '4', long: 'INSTITUT', court: 'INST', option: '' }, - { etape: '4', long: 'INTERNATIONAL(E|)', court: 'INTERN', option: '' }, - { etape: '4', long: 'LABORATOIRE', court: 'LABO', option: '' }, - { etape: '2', long: 'MADAME', court: 'MME', option: '' }, - { etape: '2', long: 'MADEMOISELLE', court: 'MLLE', option: '' }, - { etape: '4', long: 'MAGASIN', court: 'MAG', option: '' }, - { etape: '4', long: 'MAISON', court: 'MAIS', option: '' }, - { etape: '4', long: 'MARITIME', court: 'MAR', option: '' }, - { etape: '-4.0', long: 'MARTYR(S|)', court: 'MYR', option: '' }, - { etape: '4', long: 'MEDICAL', court: 'MED', option: '' }, - { etape: '4', long: 'MESDAMES', court: 'MMES', option: '' }, - { etape: '4', long: 'MESDEMOISELLES', court: 'MLLES', option: '' }, - { etape: '4', long: 'MESSIEURS', court: 'MM', option: '' }, - { etape: '4', long: 'MILITAIRE', court: 'MIL', option: '' }, - { etape: '4', long: 'MINISTERE', court: 'MIN', option: '' }, - { etape: '4', long: 'MONSIEUR', court: 'M', option: '' }, - { etape: '4', long: 'MUNICIPAL', court: 'MUN', option: '' }, - { etape: '4', long: 'MUTUEL', court: 'MUT', option: '' }, - { etape: '4', long: 'NATIONAL', court: 'NAL', option: '' }, - { etape: '4', long: 'NOUVE(AU|LLE)', court: 'NOUV', option: '' }, - { etape: '4', long: 'OBSERVATOIRE', court: 'OBS', option: '' }, - { etape: '4', long: 'PETIT', court: 'PT', option: '' }, - { etape: '4', long: 'PETITE', court: 'PTE', option: '' }, - { etape: '4.0', long: 'PETITES', court: 'PTE', option: '' }, - { etape: '4', long: 'PETITES', court: 'PTES', option: '' }, - { etape: '4.0', long: 'PETITS', court: 'PT', option: '' }, - { etape: '4', long: 'PETITS', court: 'PTS', option: '' }, - { etape: '4', long: 'POLICE', court: 'POL', option: '' }, - { etape: '4', long: 'PREFECTURE', court: 'PREF', option: '' }, - { etape: '4', long: 'PROFESSIONNEL(LE|)', court: 'PROF', option: '' }, - { etape: '0', long: 'PROLONGE(E|)', court: 'PROL', option: '' }, - { etape: '4', long: 'PROPRIETE', court: 'PROP', option: '' }, - { etape: '4', long: 'QUATER', court: 'Q', option: '' }, - { etape: '4', long: 'QUINQUIES', court: 'CAB', option: '' }, - { etape: '4', long: 'REGIMENT', court: 'RGT', option: '' }, - { etape: '4', long: 'REGION(AL|)', court: 'REG', option: '' }, - { etape: '4', long: 'REPUBLIQUE', court: 'REP', option: '' }, - { etape: '4', long: 'RESTAURANT', court: 'REST', option: '' }, - { etape: '4', long: 'SANATORIUM', court: 'SANA', option: '' }, - { etape: '4', long: 'SERVICE', court: 'SCE', option: '' }, - { etape: '4', long: 'SOCIETE', court: 'SOC', option: '' }, - { etape: '4', long: 'SOUS COUVERT', court: 'SC @', option: '' }, - { etape: '4', long: 'SOUS PREFECTURE', court: 'SPREF @', option: '' }, - { etape: '4', long: 'SOUS PREFET', court: 'SPREF @', option: '' }, - { etape: '4', long: 'SUPERIEUR(E|)', court: 'SUP', option: '' }, - { etape: '4', long: 'SYNDICAT', court: 'SYND', option: '' }, - { etape: '4', long: 'TECHNI(CIEN|QUE)', court: 'TECH', option: '' }, - { etape: '4', long: 'TER', court: 'T', option: '' }, - { etape: '4', long: 'TRI SERVICE ARRIVEE', court: 'TSA @ @', option: '' }, - { etape: '4', long: 'TUNNEL', court: 'TUN', option: '' }, - { etape: '4', long: 'UNIVERSITAIRE', court: 'UNVT', option: '' }, - { etape: '4', long: 'UNIVERSITE', court: 'UNIV', option: '' }, - { etape: '4', long: 'VELODROME', court: 'VELOD', option: '' }, - { etape: '4', long: 'VIEILLE(S|)', court: 'VIEL', option: '' }, - { etape: '4', long: 'VIEUX', court: 'VX', option: '' }, - { etape: '5.0', long: 'CENTRE cial', court: 'ccal @', option: '' }, - { etape: '5', long: 'CENTRE', court: 'CTRE', option: '' }, - { etape: '5', long: 'ABBAYE', court: 'ABBA', option: '' }, - { etape: '5', long: 'AG(G|)LOMERATION ', court: 'AGGL', option: '' }, - { etape: '5', long: 'AIRES ', court: 'AIRE', option: '' }, - { - etape: '5', - long: 'ANCIEN(NES|NE|S|) (CHEMIN|CHEMINS|ROUTE|ROUTES)', - court: 'ANCI \\g<2>', - option: '', - }, - { etape: '5', long: 'ARCADE(S|)', court: 'ARCA', option: '' }, - { etape: '5', long: 'AUTOROUTE', court: 'AUTO', option: '' }, - { etape: '5', long: 'BARRIERE(S|)', court: 'BARR', option: '' }, - { etape: '5', long: 'BAS CHEMIN', court: 'BAS', option: '' }, - { etape: '5', long: 'BASTI(DE|ON)', court: 'BAST', option: '' }, - { etape: '5', long: 'BEGUINAGE(S|)', court: 'BEGU', option: '' }, - { etape: '5', long: 'BERGE(S|)', court: 'BERG', option: '' }, - { etape: '5', long: 'BOUCLE', court: 'BOUC', option: '' }, - { etape: '5', long: 'BOURG', court: 'BOUR', option: '' }, - { etape: '5', long: 'BUTTE', court: 'BUTT', option: '' }, - { etape: '5', long: 'CAMP(AGNE|ING)', court: 'CAMP', option: '' }, - { - etape: '5', - long: 'CARR(E|EAU|EFFOUR|IERE(S|))', - court: 'CARR', - option: '', - }, - { etape: '5', long: 'CASTEL', court: 'CAST', option: '' }, - { etape: '5', long: 'CAVEE', court: 'CAVE', option: '' }, - { etape: '5', long: 'CENTRAL', court: 'CENT', option: '' }, - { etape: '5', long: 'CHALET', court: 'CHAL', option: '' }, - { etape: '5', long: 'CHAPELLE', court: 'CHAP', option: '' }, - { etape: '5', long: 'CHARMILLE', court: 'CHAR', option: '' }, - { etape: '5', long: 'CHATEAU', court: 'CHAT', option: '' }, - { etape: '5', long: 'CHAUSSEE(S|)', court: 'CHAU', option: '' }, - { - etape: '5', - long: 'CHEMIN( VICINAL|S VICINAUX|EMENT(S|))', - court: 'CHEM \\g<1>', - option: '', - }, - { etape: '5', long: 'CHEMIN', court: 'CHEM', option: '' }, - { etape: '5', long: 'CITES', court: 'CITE', option: '' }, - { etape: '5', long: 'CLOITRE', court: 'CLOI', option: '' }, - { etape: '5', long: 'COLLINE(S|)', court: 'COLL', option: '' }, - { etape: '5', long: 'CONTOUR', court: 'CONT', option: '' }, - { etape: '5', long: 'CORNICHE(S|)', court: 'CORN', option: '' }, - { etape: '5', long: 'COTEAU', court: 'COTE', option: '' }, - { etape: '5', long: 'COTTAGE(S|)', court: 'COTT', option: '' }, - { etape: '5', long: 'COURS', court: 'COUR', option: '' }, - { etape: '5', long: 'DARSE', court: 'DARS', option: '' }, - { etape: '5', long: 'DEGRE(S|)', court: 'DEGRE', option: '' }, - { etape: '5', long: 'DESCENTE(S|)', court: 'DESC', option: '' }, - { etape: '5', long: 'DIGUE(S|)', court: 'DIGU', option: '' }, - { etape: '5', long: 'DOMAINE(S|)', court: 'DOMA', option: '' }, - { etape: '5', long: 'ECLUSE(S|)', court: 'ECLU', option: '' }, - { etape: '5', long: 'EGLISE', court: 'EGLI', option: '' }, - { etape: '5', long: 'ENCEINTE', court: 'ENCE', option: '' }, - { etape: '5', long: 'ENCL(AVE|OS)', court: 'ENCL', option: '' }, - { etape: '5', long: 'ESCALIER(S|)', court: 'ESCA', option: '' }, - { etape: '5', long: 'ESPACE(S|)', court: 'ESPA', option: '' }, - { etape: '5', long: 'ESPLANADE(S|)', court: 'ESPL', option: '' }, - { etape: '5', long: 'ETANG', court: 'ETAN', option: '' }, - { etape: '5', long: 'FAUBOURG', court: 'FAUB', option: '' }, - { etape: '5', long: 'FERME(S|)', court: 'FERM', option: '' }, - { etape: '5', long: 'FONTAINE', court: 'FONT', option: '' }, - { etape: '5', long: 'FORUM', court: 'FORU', option: '' }, - { etape: '5', long: 'FOSSE(S|)', court: 'FOSS', option: '' }, - { etape: '5', long: 'FOYER', court: 'FOYE', option: '' }, - { etape: '5', long: 'GALERIE(S|)', court: 'GALE', option: '' }, - { etape: '5', long: 'GARENNE', court: 'GARE', option: '' }, - { - etape: '5', - long: 'GRAND(E|ES|) (BOULEVARD|ENSEMBLE|RUE)(S|)', - court: 'GRAN \\g<1>\\g<2>', - option: '', - }, - { etape: '5', long: 'GRILLE', court: 'GRIL', option: '' }, - { etape: '5', long: 'GRIMPETTE', court: 'GRIM', option: '' }, - { etape: '5', long: 'GROUPE(MENT|S|)', court: 'GROU', option: '' }, - { etape: '5', long: 'HALLE(S|)', court: 'HALL', option: '' }, - { etape: '5', long: 'HAMEAU(X|)', court: 'HAME', option: '' }, - { etape: '5', long: 'HIPPODROME', court: 'HIPP', option: '' }, - { etape: '5', long: 'IMPASSES', court: 'IMPA', option: '' }, - { etape: '5', long: 'JARDIN(S|)', court: 'JARD', option: '' }, - { etape: '5', long: 'JETEE(S)', court: 'JETE', option: '' }, - { etape: '5', long: 'LEVEE', court: 'LEVE', option: '' }, - { etape: '5', long: 'LOTISSEMENTS', court: 'LOTI', option: '' }, - { etape: '5', long: 'LOTISSEMENT', court: 'LOT', option: '' }, - { etape: '5', long: 'MAISON FORESTIERE', court: 'MAIS @', option: '' }, - { etape: '5', long: 'MANOIR', court: 'MANO', option: '' }, - { etape: '5', long: 'MARCHE(S|)', court: 'MARC', option: '' }, - { etape: '5', long: 'METRO', court: 'METR', option: '' }, - { etape: '5', long: 'MONTEE(S|)', court: 'MONT', option: '' }, - { etape: '5', long: 'MOULIN(S|)', court: 'MOUL', option: '' }, - { etape: '5', long: 'MUSEE', court: 'MUSE', option: '' }, - { etape: '5', long: 'NOUVELLE ROUTE', court: 'NOUV RTE', option: '' }, - { etape: '5', long: 'PALAIS', court: 'PALA', option: '' }, - { etape: '5', long: 'PARCS', court: 'PARC', option: '' }, - { etape: '5', long: 'PARKING', court: 'PARK', option: '' }, - { etape: '5', long: 'PARVIS', court: 'PARV', option: '' }, - { - etape: '5', - long: 'PASS(AGE A NIVEAU|E(S|)|ERELLE(S|))', - court: 'PASS', - option: '', - }, - { etape: '5', long: 'PATIO', court: 'PATI', option: '' }, - { etape: '5', long: 'PAVILLON(S|)', court: 'PAVI', option: '' }, - { etape: '5', long: 'PERI(PHERIQUE|STYLE)', court: 'PERI', option: '' }, - { - etape: '5', - long: 'PETIT(E|ES|) (CHEMIN|ALLEE|IMPASSE|ROUTE|RUE)(S|)', - court: 'PETI \\g<1>\\g<2>', - option: '', - }, - { etape: '5', long: 'PLACIS', court: 'PLAC', option: '' }, - { etape: '5', long: 'PLAGE(S|)', court: 'PLAG', option: '' }, - { etape: '5', long: 'PLAINE', court: 'PLAI', option: '' }, - { etape: '5', long: 'PLATEAU(X|)', court: 'PLAT', option: '' }, - { etape: '5', long: 'POINTE', court: 'POIN', option: '' }, - { etape: '5', long: 'PONTS', court: 'PONT', option: '' }, - { etape: '5', long: 'PORT(E|IQUE(S|))', court: 'PORT', option: '' }, - { etape: '5', long: 'POTERNE', court: 'POTE', option: '' }, - { etape: '5', long: 'POURTOUR', court: 'POUR', option: '' }, - { etape: '5', long: 'PRESQU ILE', court: 'PRES', option: '' }, - { etape: '5', long: 'PROMENADE', court: 'PROM', option: '' }, - { etape: '5', long: 'QUARTIER', court: 'QUAR', option: '' }, - { etape: '5', long: 'RACCOURCI', court: 'RACC', option: '' }, - { etape: '5', long: 'RAIDILLON', court: 'RAID', option: '' }, - { etape: '5', long: 'RAMPE', court: 'RAMP', option: '' }, - { etape: '5', long: 'REMPART', court: 'REMP', option: '' }, - { etape: '5.0', long: 'RESIDENCE', court: 'RES', option: '' }, - { etape: '5', long: 'RESIDENCE(S|)', court: 'RESI', option: '' }, - { etape: '5', long: 'ROCADE', court: 'ROCA', option: '' }, - { etape: '5', long: 'ROQUET', court: 'ROQU', option: '' }, - { etape: '5', long: 'ROTONDE', court: 'ROTO', option: '' }, - { etape: '5', long: 'ROUTES', court: 'ROUT', option: '' }, - { etape: '5', long: 'RUELLE(S|)', court: 'RUEL', option: '' }, - { etape: '5', long: 'SENT(E|ES|IER|IERS)', court: 'SENT', option: '' }, - { etape: '5', long: 'STADE', court: 'STAD', option: '' }, - { etape: '5', long: 'STATION', court: 'STAT', option: '' }, - { etape: '0', long: 'TERRE PLEIN', court: 'TERR @', option: '' }, - { etape: '5', long: 'TERR(AIN|ASSE(S|))', court: 'TERR', option: '' }, - { etape: '5', long: 'TERTRE(S|)', court: 'TERT', option: '' }, - { etape: '5', long: 'TRAVERSE', court: 'TRAV', option: '' }, - { etape: '5', long: 'VALL(EE|ON)', court: 'VALL', option: '' }, - { etape: '5', long: 'VENELLE(S|)', court: 'VENE', option: '' }, - { etape: '5', long: 'VIEILLE ROUTE', court: 'VIEI', option: '' }, - { etape: '5', long: 'VIEUX CHEMIN', court: 'VIEU', option: '' }, - { etape: '5', long: 'VILLA(GES|S|)', court: 'VILL', option: '' }, - { etape: '5', long: 'VOIE COMMUNALE ', court: 'VOIE C ', option: '' }, - { etape: '5', long: 'VOIES', court: 'VOIE', option: '' }, - { etape: '6', long: ' SAINTES ', court: ' STES ', option: '' }, - { etape: '6', long: ' SAINTS ', court: ' STS ', option: '' }, - { etape: '6', long: ' SAINTE ', court: ' STE ', option: '' }, - { etape: '6', long: ' SAINT ', court: ' ST ', option: '' }, - { etape: '7.0', long: ' JUILLET ', court: ' juil ', option: '' }, - { etape: '7.0', long: ' SEPTEMBRE ', court: ' sep ', option: '' }, - { etape: '7.0', long: ' OCTOBRE ', court: ' oct ', option: '' }, - { etape: '7.0', long: ' NOVEMBRE ', court: ' nov ', option: '' }, - { etape: '7.0', long: ' DECEMBRE ', court: ' dec ', option: '' }, - { etape: '0', long: ' PROLONGE(E|)$', court: ' PROL', option: '' }, - { etape: '0', long: ' INFERIEUR(E|)$', court: ' INF', option: '' }, - { etape: '1.5', long: '^CENTRE', court: 'CTRE', option: '' }, - { etape: '9', long: ' L (HUILIER)', court: ' l \\g<1>', option: '' }, - { - etape: '9', - long: '([a-z]) DE LA (BARRE|BEDOYERE|BORDERIE|BOULINIERE|BOURDONNAIS|BRIFFE|BROSSE|BRUYERE|BULLY|CELLE|CHAIZE|CLOCHETERIE|CLYTE|COCHINIERE|COLOMBIERE|CONDAMINE|DEULE|DROME|FAYETTE|FERRE|FERRIERE|FORCE|FOU|FOUCHARDIERE|FRESNAYE|FUTAYE|GONTRIE|GORCE|GRAVIERE|GUERCHE|GUERONNIERE|HALLE|HAYE|HIRE|HONTAN|HOURTIQUE|HUERTA|MADIE|MARCK|MENNAIS|METHERIE|METTRIE|MOISSONNIERE|MORTEAU|MORVONNAIS|MOTHE|MOTTE|NOE|PEROUSE|PLATIERE|POMMERAYE|PORREE|PRADELLE|PROVOTE|QUINTINIE|ROBRIE|ROCHEFOUCAULD|ROCHEFOUCAULT|ROCHEJAQUELEIN|ROQUE|ROSE|ROVERE|SALLE|SORINIERE|TAILHEDE|TAILLE|TIBERGERIE|TOUCHE|TOURFONDUE|TREILLE|TREMBLAYE|TREMOILLE|VAISSIERE|VALLEE|VALLIERE|VARENDE|VAULX|VERNE|VIEUVILLE|VILLE|VILLEHERVE|VILLEMARQUE|VILLETTE|ZOUCH)', - court: '\\g<1> de la \\g<2>', - option: '', - }, - { - etape: '9', - long: ' DE LA (BILLARDIERE|BOLLARDIERE|BOISSIERE|CHAPELLE|CHARRIERE|CHETARDIE|CONTRIE|COTARDIERE|CROIX|DROUERIE|GONZEE|GRAVIERES|HUARDIERE|JOSSERIE|LARGERE|MALLERIE|METTRIE|MERLIERE|MEURTHE|MOISSONNIERE|NOE|ROGERIE|SALLE|TOUR|VALETTE|VIGERIE)', - court: ' de la \\g<1>', - option: '', - }, - { - etape: '9', - long: '([a-z]) DE L (AIGLE|ECLUSE|ESTOILE|HOSPITAL|ISLE|OYE)', - court: '\\g<1> de l \\g<2>', - option: '', - }, - { - etape: '9', - long: '([a-z]|COMTE|COMTESSE|DUCHE|LATTRE) DE (BADE|BADERON|BAERENFELS|BAERZE|BAHEZRE|BAIF|BAILLEUL|BAILLON|BALANDA|BAMEVILLE|BANNES|BAR|BARANTE|BARBE|BARBIER|BARY|BASQUIAT|BASTEROT|BAUDRE|BAUFFREMONT|BAUMONT|BAVIERE|BAYARD|BAZVALLAN|BEARN|BEAUBOURG|BEAUCE|BEAUFFREMEZ|BEAUFORT|BEAUHARNAIS|BEAUJEU|BEAULIEU|BEAUMANOIR|BEAUMARCHAIS|BEAUMONT|BEAUNE|BEAUPRE|BEAUREGARD|BEAUREPAIRE|BEAUSOBRE|BEAUVAIS|BEAUVAU|BEAUVIGNAC|BEAUVILLE|BEAUVOIR|BEHAGUE|BEINS|BEJARRY|BELAY|BELLECOMBE|BELLEVILLE|BELLINGLISE|BELLONNET|BELSUNCE|BENAY|BEOST|BERAILH|BERANGER|BERGERAC|BERNARD|BERNARDY|BERNIES|BERNIN|BERNIS|BERNUY|BERRI|BERRY|BERTALOT|BERTHIER|BERTIN|BESNERAY|BETHENCOURT|BETHUNE|BETTIGNIES|BETZ|BEURNOUVILLE|BIDEAU|BIMARD|BISEFRANC|BLAGNY|BLAINVILLE|BLAISON|BLANC|BLANCHEFORT|BLARRU|BLEGNY|BLOIS|BOISANGER|BOISROBERT|BOISSIERE|BOISSIEU|BOISSON|BOLOGNE|BONCOURT|BONFORT|BONNEFON|BONNEGARDE|BONNEGENS|BOPPARD|BORDA|BORDEAUX|BORDEU|BORN|BORNIER|BORTOLI|BOSCHERE|BOUC|BOUCHEMAN|BOUGAINVILLE|BOUILLAS|BOUILLON|BOULAY|BOULOGNE|BOURBON|BOURDEILLES|BOURGOGNE|BOURGUEIL|BOURNAZEL|BOUTHEON|BOUTTEVILLE|BOVIS|BOYER|BRACIEUX|BRANCAS|BRANTOME|BREDA|BRETAGNE|BRETENNIERE|BRICOURT|BRIE|BRIENNE|BRIEY|BRION|BRISSAC|BRISSON|BROCA|BROGLIE|BROSSE|BROSSES|BROYES|BRUCOURT|BRUN|BRY|BUEIL|BUFFON|BURES|BUSSEUIL|BUTTET|BUXEUIL|BUXY|BUYER|CABESTANY|CABROL|CADENET|CAILLAVET|CAMARET|CAMBIAIRE|CAMBO|CAMPAIGNO|CAMPET|CAMPION|CAMPREDON|CAPELE|CARBONNIERES|CARCARADEC|CARDAILLAC|CARNAGET|CARNE|CASABIANCA|CASSAGNE|CASTANET|CASTILLE|CASTILLON|CASTRO|CAUS|CELLE|CERISAY|CERNAY|CERTAINES|CERVANTES|CESSAC|CESSOLE|CHABERT|CHABOT|CHALON|CHALUS|CHAMBES|CHAMBLY|CHAMPAGNE|CHAMPAIGNE|CHAMPDIVERS|CHAMPEVILLE|CHAMPROND|CHANDENEUX|CHANTAL|CHARANCE|CHARDIN|CHARDONNET|CHARRIN|CHASTEL|CHATEAUBRIAND|CHATEAUNEUF|CHATELIER|CHATELLUS|CHATILLON|CHAULHAC|CHAULHIAC|CHAUVIGNY|CHAUVIN|CHAZELLES|CHAZERAT|CHEFDEBIEN|CHELLES|CHENIER|CHOISEUL|CHOLET|CIREY|CLAIRAMBAULT|CLAIRVAUX|CLERMONT|CLERY|CLEVES|CLINCHAMP|CLOSMADEUC|COATANLEM|COETLAGAT|COHORN|COIGNARD|COLLERYE|COLOMBIES|COLS|COMBLES|COMBRET|COMMINES|COMMINGES|COMMYNES|CONDE|CONDILLAC|CONINCK|CONNAYE|COPPET|CORAL|CORAS|CORBERON|CORBIE|CORBIERE|CORDEMOY|CORMONTAIGNE|CORNOUAILLE|COTTE|COUBERTIN|COUCY|COUDUN|COUETUS|COULOMB|COURCY|COURTENAY|COURTOUX|COURVOISIER|COUX|CRABOSSE|CRAON|CRESNE|CRESSIA|CROCY|CROUSAZ|CROUY|CUERS|CUEVAS|CUMONT|DANGEAU|DERVAL|DIE|DIETRICH|DIEU|DION|DOMANOVA|DOMBASLE|DON|DORMANS|DOUAI|DOUE|DREUX|DURBOIS|DURFORT|DURNES|FALGUIERE|FALLA|FALLOUX|FAUCIGNY|FAVIERES|FAYE|FELICE|FENELON|FERRE|FITTE|FLANDRE|FLERS|FLORANS|FLORETTE|FLORIAN|FOE|FOIGNY|FOIX|FONDEVILLE|FONSCOLOMBE|FONSEQUE|FONTARCE|FONTENELLE|FONTMICHEL|FOOR|FORAS|FORBIN|FOREZ|FORTIA|FOSSA|FOUCAUD|FOUCAULD|FOUCAULT|FOUGY|FOULON|FOURNIVAL|FRANCE|FRANCHEVILLE|FRANQUEVILLE|FREMINVILLE|FRESQUET|FREYCINET|FROIDOUR|FRONTENAC|FRONZE|FROUVILLE|FUNES|GAIL|GALARD|GANAY|GANNES|GARIDEL|GARLANDE|GARRIGUES|GASPARIN|GASPERI|GASSION|GAUCOURT|GAULLE|GAVARDY|GAVRE|GAYRARD|GAZANYOLA|GEIGER|GENAS|GENEVE|GENNES|GERDE|GERES|GERVILLE|GESLIN|GEYTER|GIBON|GIFFA|GINGINS|GIRARD|GIRARDIER|GIRARDIN|GIRODET|GISORS|GLEYZE|GODEWAERSVELDE|GOHR|GONCOURT|GONDI|GONDY|GONZAGUE|GORRIS|GORSSE|GOURDON|GOURGUES|GOURMONT|GOURNAY|GOUX|GOUY|GRACIA|GRAILLY|GRANDMAISON|GRASSE|GRESSOT|GREZILLAC|GRIBALDY|GROUCHY|GROUX|GUEBRIANT|GUELDRE|GUERCHEVILLE|GUERIN|GUERLANDE|GUERLINS|GUETHEM|GUIGNARD|GUIGNE|GUILHEM|GUILLOCHE|GUIRAMAND|GUISE|HARCOURT|HARGUES|HARISTEGUY|HAUTECLOCQUE|HAYNIN|HENNOT|HENO|HEREDIA|HEU|HOGUES|HONGRIE|JABRUN|JAMES|JAVENE|JOIE|JOIGNY|JOINVILLE|JOLY|JOUVENEL|JOUY|JUBECOURT|JUIGNE|JUR|JUSSIEU|KERALLAIN|KERARDEN|KERGOLAY|KERGOMARD|KERGORLAY|KERMADEC|KEROUAL|KEROUALLAN|KERSAINT|KERVEGUEN|KERVILER|KNYFF|KOCK|LABAT|LABAUME|LABERE|LACARRE|LACEPEDE|LACLOS|LADIME|LADONCHAMPS|LAFFEMAS|LAGARRIGUE|LAIGUE|LAISNE|LAIT|LALAING|LALANDE|LAMAGDELAINE|LAMARCK|LAMENNAIS|LAMER|LAMIC|LAMONTA|LAMOTHE|LANCIVAL|LANGHEAC|LANGLE|LANNOY|LAPLACE|LAPRADE|LAROCHE|LASSALLE|LASSERVE|LASSUS|LASTEYRIE|LATHENAY|LATOUCHE|LAUNAY|LAURENS|LAUZUN|LAVAL|LAVARDIN|LAVAUR|LAVERGNE|LAVIGNE|LAVOISIER|LEOBARDY|LEPINAY|LEPINEY|LESCURE|LESSEPS|LESTONNAC|LETIN|LEVARE|LEVESVILLE|LEVIS|LEZARDIERE|LICE|LIEGE|LIGNIERES|LINA|LINGENDES|LINIERS|LION|LIONNE|LISSORGUES|LLUCIA|LONGPRE|LORRAINE|LORRIS|LOUIS|LOUVAIN|LOUVRES|LUBERSAC|LUGNY|LUNA|LUNE|LUSSAC|LUXEMBOURG|LUZARCHES|LYON|LYONNE|MABLY|MACHAULT|MACHECOUL|MAGNEVILLE|MAGNIENVILLE|MAGNITOT|MAI|MAILLE|MAILLY|MAINVILLE|MAISONNEUVE|MAISTRE|MALARET|MALARTIC|MALESTROIT|MALEVILLE|MALMAINS|MANDELOT|MANDERSCHEID|MANGOU|MANSENCAL|MARCA|MARCE|MARCEAU|MAREAU|MAREUIL|MARIGNY|MARILLAC|MARIN|MARIVAUX|MARLY|MARMIER|MARSANGY|MARTEL|MARTHE|MARTI|MARTIMPREY|MARTIN|MARTRES|MARVILLE|MASCAREIGNAS|MASCARON|MASSY|MATHAREL|MAUDUIT|MAUNY|MAUPEOU|MAUPERTUIS|MAUROY|MAUSSAC|MAY|MAYTIE|MEDICIS|MELESSE|MELLON|MELUN|MENOU|MERAT|MERIC|MERY|MESMES|METZ|MEULAN|MEUNG|MEYERE|MEZIERES|MICHELS|MIGNON|MIRABEAU|MIRAVAL|MIRIBEL|MIRMAN|MOELAN|MOIVRE|MOLAY|MONACHIS|MONACO|MONAIX|MONDRAGON|MONFREID|MONLUC|MONPLANET|MONTAIGU|MONTALEMBERT|MONTALENT|MONTALIVET|MONTBRAY|MONTCALM|MONTEBISE|MONTEIL|MONTERA|MONTEREAU|MONTESPAN|MONTESQUIEU|MONTESQUIOU|MONTFAUCON|MONTFAVET|MONTFORT|MONTFREID|MONTGOLFIER|MONTGOMMERY|MONTI|MONTIGNY|MONTIJO|MONTLAUR|MONTLUISANT|MONTPELLIER|MONTREJEAU|MONTREUIL|MONTRON|MONTS|MORAES|MORANGIES|MOREY|MORTAGNE|MORTAIN|MORVILLIERS|MOUCHY|MOUNET|MUIZON|MUN|MUSSET|MUTIGNY|MUYSSART|NADAL|NANGIS|NANSOUTY|NARZAC|NASSE|NAUTONNIER|NAVARRE|NAVERY|NEGRO|NEHOU|NERVO|NEUBOURG|NEUFVILLE|NEURE|NEUVILLE|NEVERS|NEYMAN|NEZOT|NICOLAY|NOAILLES|NOGUER|NOLE|NOLHAC|NOROY|PAGAN|PAGANIS|PALADINES|PALASOL|PALAYS|PALISSY|PALLAS|PANGE|PARCEVAUX|PARDAILLAN|PARIS|PAROY|PAUL|PAYNS|PEGUILHAN|PEIGNE|PEIRESC|PENTHIEVRE|PERETTI|PERIGNON|PERSAN|PESQUIDOUX|PEYRE|PEYRONNET|PIERREBUFFIERE|PINGON|PINS|PINTEVILLE|PIOLENC|PISAN|PISSELEU|PLANET|PLANTAVIT|PLUVINEL|POILLY|POIX|POLIGNAC|POLLINCHOVE|POMAIROLS|POMMEREU|POMMERY|PONCHER|PONS|PONSAY|PONT|PONTEVES|PONTHIEU|PORCARO|PORTUGAL|POSSEL|POUTRINCOURT|PRESLES|PRESSENCE|PRIE|PRIMAUGUET|PROVENCE|PROVINS|PUYBUSQUE|PUYRAVAULT|QUAY|QUELEN|QUERHOENT|RAINCOURT|RAIS|RAMEL|RANCONNET|RANCONVAL|RANCY|RATHSAMHAUSEN|RAVETON|RAYNAL|RAZILLY|REAUMUR|REFUGE|REGIS|REGNIER|RELY|RENAUD|RENEVILLE|RESSEGUIER|REYNIES|RICHEMONT|RICULPHE|RIDDER|RILLE|RIOUFFE|RIVERY|ROBERT|ROBERVAL|ROBESPIERRE|ROCHAMBEAU|ROCHEBRUNE|ROCHEFORT|ROCHETAILLEE|ROCQUIGNY|RODAY|RODEMACK|ROHAN|ROMAIN|ROMAN|ROMAS|ROME|RONCEVAUX|RONSARD|ROQUEFIXADE|ROSIERES|ROSIMBOS|ROSMADEC|ROSNAY|ROSNY|ROSSILLON|ROTHSCHILD|ROUBAIX|ROUJOUX|ROUVILLE|ROUVRES|ROUX|ROZ|ROZET|RUAT|RUTTE|SADE|SAHUQUE|SAIGE|SAILLY|SAISSAC|SALES|SALIGNE|SALLES|SALVANDY|SALVE|SAONE|SARDAC|SARO|SAULX|SAVARY|SAVEUSE|SAVIGNAC|SAVOIE|SAVONNIERE|SAXE|SAYMOND|SECONDAT|SEGLA|SEGOGNE|SEGUR|SENECTERRE|SERENT|SEROUX|SERRANT|SERRES|SERS|SERVIERES|SEVIGNE|SEYSSEL|SEZE|SIBAS|SIBOUNE|SIGOYER|SILHON|SIVRY|SMET|SOBIRATS|SOLAGES|SOLAND|SOLLIER|SOREAU|SOUHY|SOULTRAIT|SOUVILLE|SULLY|SURVILLE|SUZANNET|TAFFIN|TALLEYRAND|TALVAS|TANLAY|TARNOWSKY|TASSIGNY|TATZO|TAULNAY|TEIL|TERLINE|TERSOM|TESSAN|THAIX|THANEY|THEOBALD|THOLOZAN|THOR|THORIGNY|THOUARS|TILHA|TINGUY|TOCQUEVILLE|TORRES|TOULOUSE|TOUR|TOURCOING|TOURNES|TOURNON|TOURTIER|TOURTOULON|TOURVILLE|TRANCHERE|TRETS|TREVIERS|TRIE|TRIGON|TRIQUERVILLE|TROYES|TURCKHEIM|TURENNE|TYARD|VACQUEROLLES|VAILLY|VALERNES|VALOIS|VALON|VARZY|VASSAL|VAUBAN|VAUCANSON|VAUCANSSON|VAUDEMONT|VAUGELAS|VAUVENARGUES|VAUX|VAYRAC|VENDOME|VENOGE|VENTADORN|VENTADOUR|VERGENNES|VERNEJOUL|VERNOLS|VERNON|VERRAZANO|VEYSSIERE|VEZELAY|VEZINS|VIC|VICHY|VICQ|VIDEAU|VIENNE|VIERVILLE|VIGENERE|VIGNET|VIGNY|VIGUIER|VILLAGES|VILLARS|VILLELE|VILLENEUVE|VILLERS|VILLETAIN|VILLIERS|VILMORIN|VINCI|VIRELLE|VITRY|VITTEL|VITTON|VIVIE|VIVONNE|VIZCAYA|VLAMINCK|VOGUE|VOISIN|VOLONTAT|VOLVIRE|WALLE|WANGEN|WENDEL|WERVE|WESTHUS|WESTPHALEN|WETT|WEY|WILS|WISSANT|WORE)', - court: '\\g<1> de \\g<2>', - option: '', - }, - { - etape: '9', - long: '([A-Z]) DU (BARRE|BARRY|BELLAY|BOS|BUIS|BUYS|CERCEAU|CHALARD|CHANET|CLAUD|COETLOSQUET|COUCHANT|DRESNAY|FOU|FOUILLOUX|GARD|GARREAU|GAST|GAY|GUA|GUESCLIN|HAURE|LUART|LUXEMBOURG|LYS|MAYNE|MEUNIER|PASQUIER|PLET|QUELENNEC|QUESNAY|REY|ROOY|ROZIER|SAUSSAY|TEMPLE|TERRAIL|TILLET|TREUIL|TROU)', - court: '\\g<1> du \\g<2>', - option: '', - }, - { - etape: '9', - long: '([A-Z]) D (ABBANS|ACIGNE|ADHEMAR|AFFIS|AGAY|AGESCY|AGHONNE|AGOSTIN|AGRAIN|AGREVE|AGUESSEAU|AIGNEAUX|AIGREVILLE|AILLY|AIRE|ALBARADE|ALBI|ALBRET|ALEMBERT|ALESME|ALEXIS|ALFARO|ALLARD|ALLONNES|ALSACE|AMADE|AMBOISE|AMOU|AMOURS|ANDELI|ANDOINS|ANDOUINS|ANDUZE|ANGELY|ANGENNES|ANGERS|ANGLADE|ANGLETERRE|ANGOULEME|ANJOU|ANTHES|ANTOINE|AOUR|APREMONT|AQUITAINE|ARABIE|ARAGON|ARAU|ARBAUD|ARBAUMONT|ARBRISSEL|ARC|ARCHES|ARCHIAC|ARCIS|ARCON|ARGENSON|ARGENT|ARGENTRE|ARISTE|ARLANDES|ARMONVILLE|ARNAUD|ARRADON|ARRAS|ARSONVAL|ARTAGNAN|ARTOIS|ASNIERES|ASSEZAT|ASTIER|ASTORG|ASTROS|AUBERMESNIL|AUBIGNE|AUBIGNY|AUBUSSON|AULAN|AULON|AUMALE|AUNETTE|AUREILHE|AURENSAN|AURIAC|AUTON|AUTRICHE|AUVERGNE|AUXERRE|AUXY|AVENCHES|AVERTON|AVIGNON|AVY|AYEN|AZY|ECOSSE|EICHTHAL|ELVA|ENNERY|ENTRAGUES|EPINAY|ERARD|ERCHIEU|ESCLEVIN|ESCOUBLEAU|ESPAGNE|ESPARBES|ESPIC|ESPINAY|ESTAING|ESTAMPES|ESTE|ESTEVE|ESTEVES|ESTIENNE|ESTRADES|EU|HALLUIN|HARCOURT|HARDIVILLERS|HARLEVILLE|HASTREL|HAUTPOUL|HELBINGUE|HENRY|HERMY|HERS|HONDT|HONORINE|HOSTEL|HOTEL|HOURTE|HUART|HUMIERES|IGNY|ILLINS|IMBERT|INTIGNANO|OLIVET|OLIVIER|OMS|OR|ORBAIS|ORIOLA|ORLEANS|ORNANO|OURVILLE|OYHENART|URCLE|URFE|URSULE|USSEL|UZES|WHITE|Y)', - court: '\\g<1> d \\g<2>', - option: '', - }, - { - etape: '9', - long: '([A-Z]) LE (BACQUER|BAIL|BALP|BALPE|BARBU|BARON|BARZIC|BAS|BASTARD|BAUD|BAUX|BAYON|BEC|BELLEC|BELLER|BELLOUR|BERD|BERRE|BIHAN|BIS|BITTER|BLANC|BLEU|BLOA|BOBINNEC|BOMIN|BON|BONNIEC|BOUCHER|BOUDEC|BOUHART|BOULCH|BOURBLANC|BOURDELLES|BOURDIEC|BOURGES|BOURGO|BOURHIS|BRAS|BRAZ|BRET|BRETON|BRIS|BRIX|BROZEC|BRUN|BRUSQ|BUCHERON|CALVE|CALVEZ|CAM|CANADIEN|CAPITAINE|CARDONNEL|CARRER|CERF|CHATELIER|CHAUVE|CHEVALLIER|CHEVOIR|CIEUX|CLANCHE|CLERC|CLERT|CLEZIO|COCQ|COIN|COMTE|CONFESSEUR|COQ|COR|CORBUSIER|CORDIER|CORNEC|COROLLER|CORRE|COULTEUX|COURT|COUTALLER|COZ|CROS|CUN|CUNFF|DAIN|DAMANY|DANOIS|DAUX|DEAN|DEBONNAIRE|DERRIEN|DEUT|DROGO|DROGOFF|DU|DUC|DUFF|FALHER|FEVRE|FLANCHEC|FLEM|FLOCH|FLOHIC|FOLL|FOUILLE|FRANC|FRANCAIS|FRAPPER|FUR|GAC|GAL|GALL|GALLEU|GALLO|GARDONNEL|GENTIL|GENTILE|GOFF|GOFFIC|GOIC|GORREC|GOULVEN|GRAND|GROS|GUELLAUT|GUEN|GUENNEC|GUIFF|GUIL|GUILLOUX|GUINER|GUYADER|HALPERT|HAMP|HEN|HENAFF|HENANFF|HERPEUX|HIR|HO|JAUDET|JEAN|JEANNE|JEUNE|LABOUREUR|LAE|LAN|LAY|LEON|LIN|LONG|LORRAIN|LOUARN|LOUP|LUC|MAISTRE|MAITRE|MANCQ|MANER|MAO|MAOUT|MARESQUIER|MARIE|MASSON|MASTIN|MEIGNEN|MENN|MENTEC|MEUR|MEUT|MEZO|MIGNOT|MOAL|MOALIGOU|MOENIC|MOIGN|MOIGNE|MOING|MOLGAT|MONNIER|MONTAGNER|MORE|MOULEC|MOULT|MOYNE|MUET|NAIN|NAOURES|NAVIGATEUR|NESTOUR|NOTRE|NOUAIL|NY|PAIRE|PAN|PATRE|PAYEN|PAYS|PECQ|PELLETIER|PENNEC|PENVEN|PERE|PEVEDIC|PIC|PICHON|PIEUX|PITRE|POGAMP|POLOZEC|POT|POULAIN|POULENNEC|POVREMOYNE|PRINCE|QUEINEC|QUELLEC|QUINTREC|RICOLAIS|ROCHOIS|ROI|ROUGE|ROUSSEAU|ROUX|ROY|ROYER|SAMEDY|SENECHAL|SIDANER|SODEC|STANGUENNEC|STRADIC|STRAT|SUAVE|TALLEC|TAROUILLY|TELLIER|TEMERAIRE|TENNEUR|TESTU|TEXIER|THEULE|THIEC|TOQUIN|TRIVIDIC|TULLIER|TUTOUR|VAGUERES|VAILLANT|VAU|VEILLE|VENERABLE|VERRIER|VEZOUET|VIOL)', - court: '\\g<1> le \\g<2>', - option: '', - }, - { etape: '9', long: ' DE LATTRE ', court: ' de LATTRE ', option: '' }, -]; type CompiledRule = { long: string; short: string; diff --git a/normadresse.csv b/normadresse.csv deleted file mode 100644 index edc7209..0000000 --- a/normadresse.csv +++ /dev/null @@ -1,353 +0,0 @@ -"etape","long","court","option" -1,"ALLEE ","all ", -1,"AVENUE ","av ", -1,"BOULEVARD ","bd ", -1,"CARREFOUR ","carr ", -1,"CENTRE COMMERCIAL ","ccal @ ", -1,"IMMEUBLE(S|) ","imm ", -1,"IMPASSE ","imp ", -1,"LIEU DIT ","ld @ ", -1,"LOTISSEMENT ","lot ", -1,"PASSAGE ","pas ", -1,"PLACE ","pl ", -1,"RESIDENCE(S|) ","res ", -1,"ROND POINT ","rpt @ ", -1,"ROUTE ","rte ", -1,"SQUARE ","sq ", -1,"VILLAGE ","vlge ", -1,"ZONE INDUSTRIELLE ","zi @ ", -1.0,"ZONE D ACTIVITE ECONOMIQUE ","zae @ @ @ ", -1.0,"ZONE ACTIVITE ECONOMIQUE ","zae @ @ ", -1,"ZONE D ACTIVITE ","za @ @ ", -1,"ZONE ACTIVITE ","za @ ", -1,"ZONE AMENAGEMENT CONCERTE ","zac @ @ ", -1,"ZONE D AMENAGEMENT CONCERTE ","zac @ @ @ ", -1,"ZONE D AMENAGEMENT DIFFERE ","zad @ @ @ ", -1,"ZONE AMENAGEMENT DIFFERE ","zad @ @ ", -1,"ZONE A URBANISER EN PRIORITE ","zup @ @ @ @ ", -1.0,"ZONE ARTISANALE ","zone artisanale ", -1.0,"LA PIERRE ","LA pierre ", -1.0," DE LA FONTAINE( PROLONGEE|$)"," de la fontaine\g<1>", -2.0,"SAINT JEAN BAPTISTE","st JEAN BAPTISTE", -2.0,"DE L AIGLETTE","AIGLETTE @ @", -2.0,"SAINTE CROIX","SAINTE croix", -2.0,"TOUR CARREE","tour CARREE", -2.0,"PONT SAINT","pont SAINT", -2.0,"SAINT PIERRE SAINT","st pierre st", -2.0,"ANTOINE DE SAINT","ANTOINE DE st", -2.0,"DECLARATION UNIVERSELLE DES DROITS","DECLARATION universelle DES droits", -2.0,"LA CLAIRE","LA claire", -2.0,"LA TOUR","LA tour", -2,"ADJUDANT","adj", -2,"ASPIRANT","asp", -2,"CARDINAL","cdl", -2,"COMMANDANT","cdt", -2,"DIRECT(EUR|ION)","dir", -2,"DOCTEUR","dr", -2,"EVEQUE","evq", -2,"FUSILIERS","fus", -2.0,"GOUVERNEUR GENERAL","gouv GENERAL", -2,"GENERAL","gal", -2,"INGENIEUR","ing", -2,"INSPECTEUR","insp", -2,"LIEUTENANT DE VAISSEAU","ltdv @ @", -2,"LIEUTENANT","lt", -2,"COLONEL","cnl", -2,"MAITRE","me", -2,"MARECHAL","mal", -2,"MEDECIN","med", -2,"MONSEIGNEUR","mgr", -2,"NOTRE DAME","nd @", -2,"PASTEUR","past", -2,"PREFET","pref", -2,"PRESIDENT","pdt", -2,"PROFESSEUR","pr", -2,"RECTEUR","rect", -2,"SERGENT","sgt", -2,"VEUVE","vve", -3,"(AMANIEU|ARTHUR|ALAIN|ARNOULD|ALIX|AGNES|ANATOLE|AUGUSTE|AUGUSTIN|AMBROISE|AMADEUS|ALBERT|AGATHE|ANGELIQUE|ANNE|ANDRE|ANDREE|ANTOINE|ANTOINETTE|ANTONIO|ADRIEN|ALEXANDRE|ALEXANDRA|ALPHONSE|ALFRED|ARISTIDE|ACHILLE)","a", -3,"(BAPTISTE|BERNARD|BENJAMIN|BERTRAND)","b", -3,"(CLEMENT|CMLEMENCE|CAMILLE|CESAR|CATHERINE|CORENTIN|CLAIRE|CLOTILDE|CHARLES|CHARLOTTE|CLAUDE|CHRISTIANE|CHRISTOPHE|CHRISTIAN|CHRISTINE|CONSTANTIN|CYRILLE)","c", -3,"(DENIS|DOMINIQUE|DANIEL|DANIELLE|DANIELE|DIEUDONNE)","d", -3,"(EDME|EDOUARD|EDMOND|EDMONDE|ETIENNE|EMILE|EMMANUEL|EMMANUELLE|ERNEST|EUGENE|ELISABETH)","e", -3,"(FITZGERALD|FELIX|FOLCO|FRANCOIS|FRANCOISE|FRANCIS|FRANKLIN|FERDINAND|FERNAND|FREDERIC|FREDERIQUE|FULGENCE)","f", -3,"(GUY|GUILLIBERT|GABRIEL|GERMAIN|GERMAINE|GEOFFROY|GEORGES|GEORGETTE|GASPARD|GASTON|GUSTAVE|GILLES|GILBERT|GILBERTE|GENEVIEVE|GUENIEVRE|GERARD|GUILLAUME|GUILLEMETTE)","g", -3,"(HIPPOLYTE|HECTOR|HENRI|HERCULE|HONORE|HUBERT)","h", -3,"(IRENE)","i", -3,"(JEAN|JEANNE|JEANINE|JANINE|JOHANNES|JOHN|JACQUES|JOSEPH|JOSEPHE|JOSEPHINE|JULIEN|JACQUELINE|JULES)","j", -3,"(KONRAD)","k", -3,"(LAZARE|LAUREN(T|CE)|LOUIS(|E)|LUC(|IE|IEN|IENNE)|LUDOVIC|LUDVIG|LUDWIG|LINO|LEON)","l", -3,"(MARC|MARIUS|MANON|MAXIME|MAXIMILIEN|MARGUERITE|MARIE|MADELEINE|MAURICE|MARCEL|MARCELLE|MATHIEU|MELCHIOR|MARTIN|MONIQUE|MELANIE|MICHEL|MICHELLE|MARCELLIN)","m", -3,"(NICOLAS|NAPOLEON|NELSON|NOEL)","n", -3,"(OCTAVIEN|OSCAR)","o", -3,"(PASCAL|PASCALE|PATRICE|PAUL|PIERRE|PHILIPPE|PHILIBERT|PERRINE|PROSPER)","p", -3,"(RAOUL|ROBERT|RENE|RAYMOND|REGIS|RICHARD|ROLAND|ROGER|ROLLET)","r", -3,"(SOPHIE|SYLVESTRE|SEBASTIEN|STANISLAS)","s", -3,"(TELESPHORE|THERESE|THEODOR|THEODORE|THEOPHILE|TOUSSAINT)","t", -3,"(VINCENT)","v", -3,"(YVES|YVONNE)","y", -4,"AERODROME","aer", -4,"AEROGARE","aerg", -4,"AERONAUTIQUE","aern", -4,"AEROPORT","aerp", -4,"AGENCE","agce", -4,"AGRICOLE","agric", -4,"ANCIEN(NEMENT|)","anc", -4,"APPARTEMENT(S|)","app", -4,"ARMEMENT","armt", -4,"ARRONDISSEMENT","arr", -4,"ASSOCIATION","assoc", -4,"ASSURANCE","assur", -4,"ATELIER","at", -4,"BARAQUEMENT","brq", -4,"BAS(SE|SES|)","BAS", -4,"BATAILLON(S|)","BTN", -4,"BATIMENT(S|)","BAT", -4,"BIS","B", -4,"BOITE POSTALE","BP @", -4,"CABINET","CAB", -4,"CANTON(AL|)","CANT", -4,"CASE POSTALE","CP", -4,"CHAMBRE","CHBR", -4,"CITADELLE","CTD", -4,"COLLEGE","COLL", -4,"COLONIE","COLO", -4,"COMITE","CTE", -4,"COMMERCIAL","CIAL", -4,"COMMUNA(L|UX)","COM", -4,"COMPAGNIE","CIE", -4,"COMPAGNON(S|)","COMP", -4,"COOPERATIVE","COOP", -4,"COURSE SPECIALE","CS @", -4,"CROIX","CRX", -4,"DELEGATION","DELEG", -4,"DEPARTEMENTA(L|UX)","DEP", -4,"DIVISION","DIV", -4,"ECONOMI(E|QUE)","ECO", -4,"ECRIVAIN(S|)","ECRIV", -4,"ENSEIGNEMENT","ENST", -4,"ENSEMBLE","ENS", -4,"ENTREE(S|)","ENT", -4,"ENTREPRISE","ENTR", -4,"EPOU(SE|X)","EP", -4,"ETABLISSEMENT(S|)","ETS", -4,"ETAGE","ETG", -4,"ETAT MAJOR","EM @", -4,"FACULTE","FAC", -4,"FORE(STIER|T)","FOR", -4,"FRANCAIS(E|)","FR", -4,"GENDARMERIE","GEND", -4,"GOUVERNE(MENTAL|UR)","GOUV", -4,"GRANDES","GDES", -4,"GRANDS","GDS", -4,"GRANDE","GDE", -4,"GRAND","GD", -4,"HAUTES","HTES", -4,"HAUTS","HTS", -4,"HAUTE","HTE", -4,"HAUT","HT", -4,"HOPITA(L|UX)","HOP", -4,"HOSPI(CE|TALIER)","HOSP", -4,"HOTEL","HOT", -4,"INFANTERIE","INFANT", -4,"INFERIEUR(E|)","INF", -4,"INSTITUT","INST", -4,"INTERNATIONAL(E|)","INTERN", -4,"LABORATOIRE","LABO", -2,"MADAME","MME", -2,"MADEMOISELLE","MLLE", -4,"MAGASIN","MAG", -4,"MAISON","MAIS", -4,"MARITIME","MAR", --4.0,"MARTYR(S|)","MYR", -4,"MEDICAL","MED", -4,"MESDAMES","MMES", -4,"MESDEMOISELLES","MLLES", -4,"MESSIEURS","MM", -4,"MILITAIRE","MIL", -4,"MINISTERE","MIN", -4,"MONSIEUR","M", -4,"MUNICIPAL","MUN", -4,"MUTUEL","MUT", -4,"NATIONAL","NAL", -4,"NOUVE(AU|LLE)","NOUV", -4,"OBSERVATOIRE","OBS", -4,"PETIT","PT", -4,"PETITE","PTE", -4.0,"PETITES","PTE", -4,"PETITES","PTES", -4.0,"PETITS","PT", -4,"PETITS","PTS", -4,"POLICE","POL", -4,"PREFECTURE","PREF", -4,"PROFESSIONNEL(LE|)","PROF", -0,"PROLONGE(E|)","PROL", -4,"PROPRIETE","PROP", -4,"QUATER","Q", -4,"QUINQUIES","CAB", -4,"REGIMENT","RGT", -4,"REGION(AL|)","REG", -4,"REPUBLIQUE","REP", -4,"RESTAURANT","REST", -4,"SANATORIUM","SANA", -4,"SERVICE","SCE", -4,"SOCIETE","SOC", -4,"SOUS COUVERT","SC @", -4,"SOUS PREFECTURE","SPREF @", -4,"SOUS PREFET","SPREF @", -4,"SUPERIEUR(E|)","SUP", -4,"SYNDICAT","SYND", -4,"TECHNI(CIEN|QUE)","TECH", -4,"TER","T", -4,"TRI SERVICE ARRIVEE","TSA @ @", -4,"TUNNEL","TUN", -4,"UNIVERSITAIRE","UNVT", -4,"UNIVERSITE","UNIV", -4,"VELODROME","VELOD", -4,"VIEILLE(S|)","VIEL", -4,"VIEUX","VX", -5.0,"CENTRE cial","ccal @", -5,"CENTRE","CTRE", -5,"ABBAYE","ABBA", -5,"AG(G|)LOMERATION ","AGGL", -5,"AIRES ","AIRE", -5,"ANCIEN(NES|NE|S|) (CHEMIN|CHEMINS|ROUTE|ROUTES)","ANCI \g<2>", -5,"ARCADE(S|)","ARCA", -5,"AUTOROUTE","AUTO", -5,"BARRIERE(S|)","BARR", -5,"BAS CHEMIN","BAS", -5,"BASTI(DE|ON)","BAST", -5,"BEGUINAGE(S|)","BEGU", -5,"BERGE(S|)","BERG", -5,"BOUCLE","BOUC", -5,"BOURG","BOUR", -5,"BUTTE","BUTT", -5,"CAMP(AGNE|ING)","CAMP", -5,"CARR(E|EAU|EFFOUR|IERE(S|))","CARR", -5,"CASTEL","CAST", -5,"CAVEE","CAVE", -5,"CENTRAL","CENT", -5,"CHALET","CHAL", -5,"CHAPELLE","CHAP", -5,"CHARMILLE","CHAR", -5,"CHATEAU","CHAT", -5,"CHAUSSEE(S|)","CHAU", -5,"CHEMIN( VICINAL|S VICINAUX|EMENT(S|))","CHEM \g<1>", -5,"CHEMIN","CHEM", -5,"CITES","CITE", -5,"CLOITRE","CLOI", -5,"COLLINE(S|)","COLL", -5,"CONTOUR","CONT", -5,"CORNICHE(S|)","CORN", -5,"COTEAU","COTE", -5,"COTTAGE(S|)","COTT", -5,"COURS","COUR", -5,"DARSE","DARS", -5,"DEGRE(S|)","DEGRE", -5,"DESCENTE(S|)","DESC", -5,"DIGUE(S|)","DIGU", -5,"DOMAINE(S|)","DOMA", -5,"ECLUSE(S|)","ECLU", -5,"EGLISE","EGLI", -5,"ENCEINTE","ENCE", -5,"ENCL(AVE|OS)","ENCL", -5,"ESCALIER(S|)","ESCA", -5,"ESPACE(S|)","ESPA", -5,"ESPLANADE(S|)","ESPL", -5,"ETANG","ETAN", -5,"FAUBOURG","FAUB", -5,"FERME(S|)","FERM", -5,"FONTAINE","FONT", -5,"FORUM","FORU", -5,"FOSSE(S|)","FOSS", -5,"FOYER","FOYE", -5,"GALERIE(S|)","GALE", -5,"GARENNE","GARE", -5,"GRAND(E|ES|) (BOULEVARD|ENSEMBLE|RUE)(S|)","GRAN \g<1>\g<2>", -5,"GRILLE","GRIL", -5,"GRIMPETTE","GRIM", -5,"GROUPE(MENT|S|)","GROU", -5,"HALLE(S|)","HALL", -5,"HAMEAU(X|)","HAME", -5,"HIPPODROME","HIPP", -5,"IMPASSES","IMPA", -5,"JARDIN(S|)","JARD", -5,"JETEE(S)","JETE", -5,"LEVEE","LEVE", -5,"LOTISSEMENTS","LOTI", -5,"LOTISSEMENT","LOT", -5,"MAISON FORESTIERE","MAIS @", -5,"MANOIR","MANO", -5,"MARCHE(S|)","MARC", -5,"METRO","METR", -5,"MONTEE(S|)","MONT", -5,"MOULIN(S|)","MOUL", -5,"MUSEE","MUSE", -5,"NOUVELLE ROUTE","NOUV RTE", -5,"PALAIS","PALA", -5,"PARCS","PARC", -5,"PARKING","PARK", -5,"PARVIS","PARV", -5,"PASS(AGE A NIVEAU|E(S|)|ERELLE(S|))","PASS", -5,"PATIO","PATI", -5,"PAVILLON(S|)","PAVI", -5,"PERI(PHERIQUE|STYLE)","PERI", -5,"PETIT(E|ES|) (CHEMIN|ALLEE|IMPASSE|ROUTE|RUE)(S|)","PETI \g<1>\g<2>", -5,"PLACIS","PLAC", -5,"PLAGE(S|)","PLAG", -5,"PLAINE","PLAI", -5,"PLATEAU(X|)","PLAT", -5,"POINTE","POIN", -5,"PONTS","PONT", -5,"PORT(E|IQUE(S|))","PORT", -5,"POTERNE","POTE", -5,"POURTOUR","POUR", -5,"PRESQU ILE","PRES", -5,"PROMENADE","PROM", -5,"QUARTIER","QUAR", -5,"RACCOURCI","RACC", -5,"RAIDILLON","RAID", -5,"RAMPE","RAMP", -5,"REMPART","REMP", -5.0,"RESIDENCE","RES", -5,"RESIDENCE(S|)","RESI", -5,"ROCADE","ROCA", -5,"ROQUET","ROQU", -5,"ROTONDE","ROTO", -5,"ROUTES","ROUT", -5,"RUELLE(S|)","RUEL", -5,"SENT(E|ES|IER|IERS)","SENT", -5,"STADE","STAD", -5,"STATION","STAT", -0,"TERRE PLEIN","TERR @", -5,"TERR(AIN|ASSE(S|))","TERR", -5,"TERTRE(S|)","TERT", -5,"TRAVERSE","TRAV", -5,"VALL(EE|ON)","VALL", -5,"VENELLE(S|)","VENE", -5,"VIEILLE ROUTE","VIEI", -5,"VIEUX CHEMIN","VIEU", -5,"VILLA(GES|S|)","VILL", -5,"VOIE COMMUNALE ","VOIE C ", -5,"VOIES","VOIE", -6," SAINTES "," STES ", -6," SAINTS "," STS ", -6," SAINTE "," STE ", -6," SAINT "," ST ", -7.0," JUILLET "," juil ", -7.0," SEPTEMBRE "," sep ", -7.0," OCTOBRE "," oct ", -7.0," NOVEMBRE "," nov ", -7.0," DECEMBRE "," dec ", -0," PROLONGE(E|)$"," PROL", -0," INFERIEUR(E|)$"," INF", -"1.5","^CENTRE","CTRE", -9," L (HUILIER)"," l \g<1>", -9,"([a-z]) DE LA (BARRE|BEDOYERE|BORDERIE|BOULINIERE|BOURDONNAIS|BRIFFE|BROSSE|BRUYERE|BULLY|CELLE|CHAIZE|CLOCHETERIE|CLYTE|COCHINIERE|COLOMBIERE|CONDAMINE|DEULE|DROME|FAYETTE|FERRE|FERRIERE|FORCE|FOU|FOUCHARDIERE|FRESNAYE|FUTAYE|GONTRIE|GORCE|GRAVIERE|GUERCHE|GUERONNIERE|HALLE|HAYE|HIRE|HONTAN|HOURTIQUE|HUERTA|MADIE|MARCK|MENNAIS|METHERIE|METTRIE|MOISSONNIERE|MORTEAU|MORVONNAIS|MOTHE|MOTTE|NOE|PEROUSE|PLATIERE|POMMERAYE|PORREE|PRADELLE|PROVOTE|QUINTINIE|ROBRIE|ROCHEFOUCAULD|ROCHEFOUCAULT|ROCHEJAQUELEIN|ROQUE|ROSE|ROVERE|SALLE|SORINIERE|TAILHEDE|TAILLE|TIBERGERIE|TOUCHE|TOURFONDUE|TREILLE|TREMBLAYE|TREMOILLE|VAISSIERE|VALLEE|VALLIERE|VARENDE|VAULX|VERNE|VIEUVILLE|VILLE|VILLEHERVE|VILLEMARQUE|VILLETTE|ZOUCH)","\g<1> de la \g<2>", -9," DE LA (BILLARDIERE|BOLLARDIERE|BOISSIERE|CHAPELLE|CHARRIERE|CHETARDIE|CONTRIE|COTARDIERE|CROIX|DROUERIE|GONZEE|GRAVIERES|HUARDIERE|JOSSERIE|LARGERE|MALLERIE|METTRIE|MERLIERE|MEURTHE|MOISSONNIERE|NOE|ROGERIE|SALLE|TOUR|VALETTE|VIGERIE)"," de la \g<1>", -9,"([a-z]) DE L (AIGLE|ECLUSE|ESTOILE|HOSPITAL|ISLE|OYE)","\g<1> de l \g<2>", -9,"([a-z]|COMTE|COMTESSE|DUCHE|LATTRE) DE (BADE|BADERON|BAERENFELS|BAERZE|BAHEZRE|BAIF|BAILLEUL|BAILLON|BALANDA|BAMEVILLE|BANNES|BAR|BARANTE|BARBE|BARBIER|BARY|BASQUIAT|BASTEROT|BAUDRE|BAUFFREMONT|BAUMONT|BAVIERE|BAYARD|BAZVALLAN|BEARN|BEAUBOURG|BEAUCE|BEAUFFREMEZ|BEAUFORT|BEAUHARNAIS|BEAUJEU|BEAULIEU|BEAUMANOIR|BEAUMARCHAIS|BEAUMONT|BEAUNE|BEAUPRE|BEAUREGARD|BEAUREPAIRE|BEAUSOBRE|BEAUVAIS|BEAUVAU|BEAUVIGNAC|BEAUVILLE|BEAUVOIR|BEHAGUE|BEINS|BEJARRY|BELAY|BELLECOMBE|BELLEVILLE|BELLINGLISE|BELLONNET|BELSUNCE|BENAY|BEOST|BERAILH|BERANGER|BERGERAC|BERNARD|BERNARDY|BERNIES|BERNIN|BERNIS|BERNUY|BERRI|BERRY|BERTALOT|BERTHIER|BERTIN|BESNERAY|BETHENCOURT|BETHUNE|BETTIGNIES|BETZ|BEURNOUVILLE|BIDEAU|BIMARD|BISEFRANC|BLAGNY|BLAINVILLE|BLAISON|BLANC|BLANCHEFORT|BLARRU|BLEGNY|BLOIS|BOISANGER|BOISROBERT|BOISSIERE|BOISSIEU|BOISSON|BOLOGNE|BONCOURT|BONFORT|BONNEFON|BONNEGARDE|BONNEGENS|BOPPARD|BORDA|BORDEAUX|BORDEU|BORN|BORNIER|BORTOLI|BOSCHERE|BOUC|BOUCHEMAN|BOUGAINVILLE|BOUILLAS|BOUILLON|BOULAY|BOULOGNE|BOURBON|BOURDEILLES|BOURGOGNE|BOURGUEIL|BOURNAZEL|BOUTHEON|BOUTTEVILLE|BOVIS|BOYER|BRACIEUX|BRANCAS|BRANTOME|BREDA|BRETAGNE|BRETENNIERE|BRICOURT|BRIE|BRIENNE|BRIEY|BRION|BRISSAC|BRISSON|BROCA|BROGLIE|BROSSE|BROSSES|BROYES|BRUCOURT|BRUN|BRY|BUEIL|BUFFON|BURES|BUSSEUIL|BUTTET|BUXEUIL|BUXY|BUYER|CABESTANY|CABROL|CADENET|CAILLAVET|CAMARET|CAMBIAIRE|CAMBO|CAMPAIGNO|CAMPET|CAMPION|CAMPREDON|CAPELE|CARBONNIERES|CARCARADEC|CARDAILLAC|CARNAGET|CARNE|CASABIANCA|CASSAGNE|CASTANET|CASTILLE|CASTILLON|CASTRO|CAUS|CELLE|CERISAY|CERNAY|CERTAINES|CERVANTES|CESSAC|CESSOLE|CHABERT|CHABOT|CHALON|CHALUS|CHAMBES|CHAMBLY|CHAMPAGNE|CHAMPAIGNE|CHAMPDIVERS|CHAMPEVILLE|CHAMPROND|CHANDENEUX|CHANTAL|CHARANCE|CHARDIN|CHARDONNET|CHARRIN|CHASTEL|CHATEAUBRIAND|CHATEAUNEUF|CHATELIER|CHATELLUS|CHATILLON|CHAULHAC|CHAULHIAC|CHAUVIGNY|CHAUVIN|CHAZELLES|CHAZERAT|CHEFDEBIEN|CHELLES|CHENIER|CHOISEUL|CHOLET|CIREY|CLAIRAMBAULT|CLAIRVAUX|CLERMONT|CLERY|CLEVES|CLINCHAMP|CLOSMADEUC|COATANLEM|COETLAGAT|COHORN|COIGNARD|COLLERYE|COLOMBIES|COLS|COMBLES|COMBRET|COMMINES|COMMINGES|COMMYNES|CONDE|CONDILLAC|CONINCK|CONNAYE|COPPET|CORAL|CORAS|CORBERON|CORBIE|CORBIERE|CORDEMOY|CORMONTAIGNE|CORNOUAILLE|COTTE|COUBERTIN|COUCY|COUDUN|COUETUS|COULOMB|COURCY|COURTENAY|COURTOUX|COURVOISIER|COUX|CRABOSSE|CRAON|CRESNE|CRESSIA|CROCY|CROUSAZ|CROUY|CUERS|CUEVAS|CUMONT|DANGEAU|DERVAL|DIE|DIETRICH|DIEU|DION|DOMANOVA|DOMBASLE|DON|DORMANS|DOUAI|DOUE|DREUX|DURBOIS|DURFORT|DURNES|FALGUIERE|FALLA|FALLOUX|FAUCIGNY|FAVIERES|FAYE|FELICE|FENELON|FERRE|FITTE|FLANDRE|FLERS|FLORANS|FLORETTE|FLORIAN|FOE|FOIGNY|FOIX|FONDEVILLE|FONSCOLOMBE|FONSEQUE|FONTARCE|FONTENELLE|FONTMICHEL|FOOR|FORAS|FORBIN|FOREZ|FORTIA|FOSSA|FOUCAUD|FOUCAULD|FOUCAULT|FOUGY|FOULON|FOURNIVAL|FRANCE|FRANCHEVILLE|FRANQUEVILLE|FREMINVILLE|FRESQUET|FREYCINET|FROIDOUR|FRONTENAC|FRONZE|FROUVILLE|FUNES|GAIL|GALARD|GANAY|GANNES|GARIDEL|GARLANDE|GARRIGUES|GASPARIN|GASPERI|GASSION|GAUCOURT|GAULLE|GAVARDY|GAVRE|GAYRARD|GAZANYOLA|GEIGER|GENAS|GENEVE|GENNES|GERDE|GERES|GERVILLE|GESLIN|GEYTER|GIBON|GIFFA|GINGINS|GIRARD|GIRARDIER|GIRARDIN|GIRODET|GISORS|GLEYZE|GODEWAERSVELDE|GOHR|GONCOURT|GONDI|GONDY|GONZAGUE|GORRIS|GORSSE|GOURDON|GOURGUES|GOURMONT|GOURNAY|GOUX|GOUY|GRACIA|GRAILLY|GRANDMAISON|GRASSE|GRESSOT|GREZILLAC|GRIBALDY|GROUCHY|GROUX|GUEBRIANT|GUELDRE|GUERCHEVILLE|GUERIN|GUERLANDE|GUERLINS|GUETHEM|GUIGNARD|GUIGNE|GUILHEM|GUILLOCHE|GUIRAMAND|GUISE|HARCOURT|HARGUES|HARISTEGUY|HAUTECLOCQUE|HAYNIN|HENNOT|HENO|HEREDIA|HEU|HOGUES|HONGRIE|JABRUN|JAMES|JAVENE|JOIE|JOIGNY|JOINVILLE|JOLY|JOUVENEL|JOUY|JUBECOURT|JUIGNE|JUR|JUSSIEU|KERALLAIN|KERARDEN|KERGOLAY|KERGOMARD|KERGORLAY|KERMADEC|KEROUAL|KEROUALLAN|KERSAINT|KERVEGUEN|KERVILER|KNYFF|KOCK|LABAT|LABAUME|LABERE|LACARRE|LACEPEDE|LACLOS|LADIME|LADONCHAMPS|LAFFEMAS|LAGARRIGUE|LAIGUE|LAISNE|LAIT|LALAING|LALANDE|LAMAGDELAINE|LAMARCK|LAMENNAIS|LAMER|LAMIC|LAMONTA|LAMOTHE|LANCIVAL|LANGHEAC|LANGLE|LANNOY|LAPLACE|LAPRADE|LAROCHE|LASSALLE|LASSERVE|LASSUS|LASTEYRIE|LATHENAY|LATOUCHE|LAUNAY|LAURENS|LAUZUN|LAVAL|LAVARDIN|LAVAUR|LAVERGNE|LAVIGNE|LAVOISIER|LEOBARDY|LEPINAY|LEPINEY|LESCURE|LESSEPS|LESTONNAC|LETIN|LEVARE|LEVESVILLE|LEVIS|LEZARDIERE|LICE|LIEGE|LIGNIERES|LINA|LINGENDES|LINIERS|LION|LIONNE|LISSORGUES|LLUCIA|LONGPRE|LORRAINE|LORRIS|LOUIS|LOUVAIN|LOUVRES|LUBERSAC|LUGNY|LUNA|LUNE|LUSSAC|LUXEMBOURG|LUZARCHES|LYON|LYONNE|MABLY|MACHAULT|MACHECOUL|MAGNEVILLE|MAGNIENVILLE|MAGNITOT|MAI|MAILLE|MAILLY|MAINVILLE|MAISONNEUVE|MAISTRE|MALARET|MALARTIC|MALESTROIT|MALEVILLE|MALMAINS|MANDELOT|MANDERSCHEID|MANGOU|MANSENCAL|MARCA|MARCE|MARCEAU|MAREAU|MAREUIL|MARIGNY|MARILLAC|MARIN|MARIVAUX|MARLY|MARMIER|MARSANGY|MARTEL|MARTHE|MARTI|MARTIMPREY|MARTIN|MARTRES|MARVILLE|MASCAREIGNAS|MASCARON|MASSY|MATHAREL|MAUDUIT|MAUNY|MAUPEOU|MAUPERTUIS|MAUROY|MAUSSAC|MAY|MAYTIE|MEDICIS|MELESSE|MELLON|MELUN|MENOU|MERAT|MERIC|MERY|MESMES|METZ|MEULAN|MEUNG|MEYERE|MEZIERES|MICHELS|MIGNON|MIRABEAU|MIRAVAL|MIRIBEL|MIRMAN|MOELAN|MOIVRE|MOLAY|MONACHIS|MONACO|MONAIX|MONDRAGON|MONFREID|MONLUC|MONPLANET|MONTAIGU|MONTALEMBERT|MONTALENT|MONTALIVET|MONTBRAY|MONTCALM|MONTEBISE|MONTEIL|MONTERA|MONTEREAU|MONTESPAN|MONTESQUIEU|MONTESQUIOU|MONTFAUCON|MONTFAVET|MONTFORT|MONTFREID|MONTGOLFIER|MONTGOMMERY|MONTI|MONTIGNY|MONTIJO|MONTLAUR|MONTLUISANT|MONTPELLIER|MONTREJEAU|MONTREUIL|MONTRON|MONTS|MORAES|MORANGIES|MOREY|MORTAGNE|MORTAIN|MORVILLIERS|MOUCHY|MOUNET|MUIZON|MUN|MUSSET|MUTIGNY|MUYSSART|NADAL|NANGIS|NANSOUTY|NARZAC|NASSE|NAUTONNIER|NAVARRE|NAVERY|NEGRO|NEHOU|NERVO|NEUBOURG|NEUFVILLE|NEURE|NEUVILLE|NEVERS|NEYMAN|NEZOT|NICOLAY|NOAILLES|NOGUER|NOLE|NOLHAC|NOROY|PAGAN|PAGANIS|PALADINES|PALASOL|PALAYS|PALISSY|PALLAS|PANGE|PARCEVAUX|PARDAILLAN|PARIS|PAROY|PAUL|PAYNS|PEGUILHAN|PEIGNE|PEIRESC|PENTHIEVRE|PERETTI|PERIGNON|PERSAN|PESQUIDOUX|PEYRE|PEYRONNET|PIERREBUFFIERE|PINGON|PINS|PINTEVILLE|PIOLENC|PISAN|PISSELEU|PLANET|PLANTAVIT|PLUVINEL|POILLY|POIX|POLIGNAC|POLLINCHOVE|POMAIROLS|POMMEREU|POMMERY|PONCHER|PONS|PONSAY|PONT|PONTEVES|PONTHIEU|PORCARO|PORTUGAL|POSSEL|POUTRINCOURT|PRESLES|PRESSENCE|PRIE|PRIMAUGUET|PROVENCE|PROVINS|PUYBUSQUE|PUYRAVAULT|QUAY|QUELEN|QUERHOENT|RAINCOURT|RAIS|RAMEL|RANCONNET|RANCONVAL|RANCY|RATHSAMHAUSEN|RAVETON|RAYNAL|RAZILLY|REAUMUR|REFUGE|REGIS|REGNIER|RELY|RENAUD|RENEVILLE|RESSEGUIER|REYNIES|RICHEMONT|RICULPHE|RIDDER|RILLE|RIOUFFE|RIVERY|ROBERT|ROBERVAL|ROBESPIERRE|ROCHAMBEAU|ROCHEBRUNE|ROCHEFORT|ROCHETAILLEE|ROCQUIGNY|RODAY|RODEMACK|ROHAN|ROMAIN|ROMAN|ROMAS|ROME|RONCEVAUX|RONSARD|ROQUEFIXADE|ROSIERES|ROSIMBOS|ROSMADEC|ROSNAY|ROSNY|ROSSILLON|ROTHSCHILD|ROUBAIX|ROUJOUX|ROUVILLE|ROUVRES|ROUX|ROZ|ROZET|RUAT|RUTTE|SADE|SAHUQUE|SAIGE|SAILLY|SAISSAC|SALES|SALIGNE|SALLES|SALVANDY|SALVE|SAONE|SARDAC|SARO|SAULX|SAVARY|SAVEUSE|SAVIGNAC|SAVOIE|SAVONNIERE|SAXE|SAYMOND|SECONDAT|SEGLA|SEGOGNE|SEGUR|SENECTERRE|SERENT|SEROUX|SERRANT|SERRES|SERS|SERVIERES|SEVIGNE|SEYSSEL|SEZE|SIBAS|SIBOUNE|SIGOYER|SILHON|SIVRY|SMET|SOBIRATS|SOLAGES|SOLAND|SOLLIER|SOREAU|SOUHY|SOULTRAIT|SOUVILLE|SULLY|SURVILLE|SUZANNET|TAFFIN|TALLEYRAND|TALVAS|TANLAY|TARNOWSKY|TASSIGNY|TATZO|TAULNAY|TEIL|TERLINE|TERSOM|TESSAN|THAIX|THANEY|THEOBALD|THOLOZAN|THOR|THORIGNY|THOUARS|TILHA|TINGUY|TOCQUEVILLE|TORRES|TOULOUSE|TOUR|TOURCOING|TOURNES|TOURNON|TOURTIER|TOURTOULON|TOURVILLE|TRANCHERE|TRETS|TREVIERS|TRIE|TRIGON|TRIQUERVILLE|TROYES|TURCKHEIM|TURENNE|TYARD|VACQUEROLLES|VAILLY|VALERNES|VALOIS|VALON|VARZY|VASSAL|VAUBAN|VAUCANSON|VAUCANSSON|VAUDEMONT|VAUGELAS|VAUVENARGUES|VAUX|VAYRAC|VENDOME|VENOGE|VENTADORN|VENTADOUR|VERGENNES|VERNEJOUL|VERNOLS|VERNON|VERRAZANO|VEYSSIERE|VEZELAY|VEZINS|VIC|VICHY|VICQ|VIDEAU|VIENNE|VIERVILLE|VIGENERE|VIGNET|VIGNY|VIGUIER|VILLAGES|VILLARS|VILLELE|VILLENEUVE|VILLERS|VILLETAIN|VILLIERS|VILMORIN|VINCI|VIRELLE|VITRY|VITTEL|VITTON|VIVIE|VIVONNE|VIZCAYA|VLAMINCK|VOGUE|VOISIN|VOLONTAT|VOLVIRE|WALLE|WANGEN|WENDEL|WERVE|WESTHUS|WESTPHALEN|WETT|WEY|WILS|WISSANT|WORE)","\g<1> de \g<2>", -9,"([A-Z]) DU (BARRE|BARRY|BELLAY|BOS|BUIS|BUYS|CERCEAU|CHALARD|CHANET|CLAUD|COETLOSQUET|COUCHANT|DRESNAY|FOU|FOUILLOUX|GARD|GARREAU|GAST|GAY|GUA|GUESCLIN|HAURE|LUART|LUXEMBOURG|LYS|MAYNE|MEUNIER|PASQUIER|PLET|QUELENNEC|QUESNAY|REY|ROOY|ROZIER|SAUSSAY|TEMPLE|TERRAIL|TILLET|TREUIL|TROU)","\g<1> du \g<2>", -9,"([A-Z]) D (ABBANS|ACIGNE|ADHEMAR|AFFIS|AGAY|AGESCY|AGHONNE|AGOSTIN|AGRAIN|AGREVE|AGUESSEAU|AIGNEAUX|AIGREVILLE|AILLY|AIRE|ALBARADE|ALBI|ALBRET|ALEMBERT|ALESME|ALEXIS|ALFARO|ALLARD|ALLONNES|ALSACE|AMADE|AMBOISE|AMOU|AMOURS|ANDELI|ANDOINS|ANDOUINS|ANDUZE|ANGELY|ANGENNES|ANGERS|ANGLADE|ANGLETERRE|ANGOULEME|ANJOU|ANTHES|ANTOINE|AOUR|APREMONT|AQUITAINE|ARABIE|ARAGON|ARAU|ARBAUD|ARBAUMONT|ARBRISSEL|ARC|ARCHES|ARCHIAC|ARCIS|ARCON|ARGENSON|ARGENT|ARGENTRE|ARISTE|ARLANDES|ARMONVILLE|ARNAUD|ARRADON|ARRAS|ARSONVAL|ARTAGNAN|ARTOIS|ASNIERES|ASSEZAT|ASTIER|ASTORG|ASTROS|AUBERMESNIL|AUBIGNE|AUBIGNY|AUBUSSON|AULAN|AULON|AUMALE|AUNETTE|AUREILHE|AURENSAN|AURIAC|AUTON|AUTRICHE|AUVERGNE|AUXERRE|AUXY|AVENCHES|AVERTON|AVIGNON|AVY|AYEN|AZY|ECOSSE|EICHTHAL|ELVA|ENNERY|ENTRAGUES|EPINAY|ERARD|ERCHIEU|ESCLEVIN|ESCOUBLEAU|ESPAGNE|ESPARBES|ESPIC|ESPINAY|ESTAING|ESTAMPES|ESTE|ESTEVE|ESTEVES|ESTIENNE|ESTRADES|EU|HALLUIN|HARCOURT|HARDIVILLERS|HARLEVILLE|HASTREL|HAUTPOUL|HELBINGUE|HENRY|HERMY|HERS|HONDT|HONORINE|HOSTEL|HOTEL|HOURTE|HUART|HUMIERES|IGNY|ILLINS|IMBERT|INTIGNANO|OLIVET|OLIVIER|OMS|OR|ORBAIS|ORIOLA|ORLEANS|ORNANO|OURVILLE|OYHENART|URCLE|URFE|URSULE|USSEL|UZES|WHITE|Y)","\g<1> d \g<2>", -9,"([A-Z]) LE (BACQUER|BAIL|BALP|BALPE|BARBU|BARON|BARZIC|BAS|BASTARD|BAUD|BAUX|BAYON|BEC|BELLEC|BELLER|BELLOUR|BERD|BERRE|BIHAN|BIS|BITTER|BLANC|BLEU|BLOA|BOBINNEC|BOMIN|BON|BONNIEC|BOUCHER|BOUDEC|BOUHART|BOULCH|BOURBLANC|BOURDELLES|BOURDIEC|BOURGES|BOURGO|BOURHIS|BRAS|BRAZ|BRET|BRETON|BRIS|BRIX|BROZEC|BRUN|BRUSQ|BUCHERON|CALVE|CALVEZ|CAM|CANADIEN|CAPITAINE|CARDONNEL|CARRER|CERF|CHATELIER|CHAUVE|CHEVALLIER|CHEVOIR|CIEUX|CLANCHE|CLERC|CLERT|CLEZIO|COCQ|COIN|COMTE|CONFESSEUR|COQ|COR|CORBUSIER|CORDIER|CORNEC|COROLLER|CORRE|COULTEUX|COURT|COUTALLER|COZ|CROS|CUN|CUNFF|DAIN|DAMANY|DANOIS|DAUX|DEAN|DEBONNAIRE|DERRIEN|DEUT|DROGO|DROGOFF|DU|DUC|DUFF|FALHER|FEVRE|FLANCHEC|FLEM|FLOCH|FLOHIC|FOLL|FOUILLE|FRANC|FRANCAIS|FRAPPER|FUR|GAC|GAL|GALL|GALLEU|GALLO|GARDONNEL|GENTIL|GENTILE|GOFF|GOFFIC|GOIC|GORREC|GOULVEN|GRAND|GROS|GUELLAUT|GUEN|GUENNEC|GUIFF|GUIL|GUILLOUX|GUINER|GUYADER|HALPERT|HAMP|HEN|HENAFF|HENANFF|HERPEUX|HIR|HO|JAUDET|JEAN|JEANNE|JEUNE|LABOUREUR|LAE|LAN|LAY|LEON|LIN|LONG|LORRAIN|LOUARN|LOUP|LUC|MAISTRE|MAITRE|MANCQ|MANER|MAO|MAOUT|MARESQUIER|MARIE|MASSON|MASTIN|MEIGNEN|MENN|MENTEC|MEUR|MEUT|MEZO|MIGNOT|MOAL|MOALIGOU|MOENIC|MOIGN|MOIGNE|MOING|MOLGAT|MONNIER|MONTAGNER|MORE|MOULEC|MOULT|MOYNE|MUET|NAIN|NAOURES|NAVIGATEUR|NESTOUR|NOTRE|NOUAIL|NY|PAIRE|PAN|PATRE|PAYEN|PAYS|PECQ|PELLETIER|PENNEC|PENVEN|PERE|PEVEDIC|PIC|PICHON|PIEUX|PITRE|POGAMP|POLOZEC|POT|POULAIN|POULENNEC|POVREMOYNE|PRINCE|QUEINEC|QUELLEC|QUINTREC|RICOLAIS|ROCHOIS|ROI|ROUGE|ROUSSEAU|ROUX|ROY|ROYER|SAMEDY|SENECHAL|SIDANER|SODEC|STANGUENNEC|STRADIC|STRAT|SUAVE|TALLEC|TAROUILLY|TELLIER|TEMERAIRE|TENNEUR|TESTU|TEXIER|THEULE|THIEC|TOQUIN|TRIVIDIC|TULLIER|TUTOUR|VAGUERES|VAILLANT|VAU|VEILLE|VENERABLE|VERRIER|VEZOUET|VIOL)","\g<1> le \g<2>", -9," DE LATTRE "," de LATTRE ", diff --git a/rules.ts b/rules.ts new file mode 100644 index 0000000..9c7b065 --- /dev/null +++ b/rules.ts @@ -0,0 +1,591 @@ +export type CsvRule = { + etape: string; + long: string; + court: string; + option: string; +}; + +/** + * Abbreviation rules ported verbatim from the upstream Etalab dataset + * (etalab/normadresse). Rules are grouped by `etape` (step); the rule + * compiler in `index.ts` parses `etape` with `parseFloat`, so fractional + * steps such as '1.0', '2.0', '4.0' and '5.0' merge into their integer + * group (1, 2, 4, 5) and ARE applied by the corresponding pipeline step. + * + * However, the groups '0' (PROLONGE / TERRE PLEIN / INFERIEUR), '-4.0' + * (MARTYR), '1.5' (^CENTRE) + * and '7.0' (month abbreviations) are compiled but NEVER applied: no pipeline + * step reads them (the pipeline only uses groups 1, 2, 3, 4, 5, 6 and 9). + * This matches the upstream Python implementation, which also never applies + * these groups. They are intentionally retained — not deleted — to stay + * faithful to the upstream dataset and behavior. Zero runtime effect. + */ +export const RULES_DATA: Array = [ + { etape: '1', long: 'ALLEE ', court: 'all ', option: '' }, + { etape: '1', long: 'AVENUE ', court: 'av ', option: '' }, + { etape: '1', long: 'BOULEVARD ', court: 'bd ', option: '' }, + { etape: '1', long: 'CARREFOUR ', court: 'carr ', option: '' }, + { etape: '1', long: 'CENTRE COMMERCIAL ', court: 'ccal @ ', option: '' }, + { etape: '1', long: 'IMMEUBLE(S|) ', court: 'imm ', option: '' }, + { etape: '1', long: 'IMPASSE ', court: 'imp ', option: '' }, + { etape: '1', long: 'LIEU DIT ', court: 'ld @ ', option: '' }, + { etape: '1', long: 'LOTISSEMENT ', court: 'lot ', option: '' }, + { etape: '1', long: 'PASSAGE ', court: 'pas ', option: '' }, + { etape: '1', long: 'PLACE ', court: 'pl ', option: '' }, + { etape: '1', long: 'RESIDENCE(S|) ', court: 'res ', option: '' }, + { etape: '1', long: 'ROND POINT ', court: 'rpt @ ', option: '' }, + { etape: '1', long: 'ROUTE ', court: 'rte ', option: '' }, + { etape: '1', long: 'SQUARE ', court: 'sq ', option: '' }, + { etape: '1', long: 'VILLAGE ', court: 'vlge ', option: '' }, + { etape: '1', long: 'ZONE INDUSTRIELLE ', court: 'zi @ ', option: '' }, + { + etape: '1.0', + long: 'ZONE D ACTIVITE ECONOMIQUE ', + court: 'zae @ @ @ ', + option: '', + }, + { + etape: '1.0', + long: 'ZONE ACTIVITE ECONOMIQUE ', + court: 'zae @ @ ', + option: '', + }, + { etape: '1', long: 'ZONE D ACTIVITE ', court: 'za @ @ ', option: '' }, + { etape: '1', long: 'ZONE ACTIVITE ', court: 'za @ ', option: '' }, + { + etape: '1', + long: 'ZONE AMENAGEMENT CONCERTE ', + court: 'zac @ @ ', + option: '', + }, + { + etape: '1', + long: 'ZONE D AMENAGEMENT CONCERTE ', + court: 'zac @ @ @ ', + option: '', + }, + { + etape: '1', + long: 'ZONE D AMENAGEMENT DIFFERE ', + court: 'zad @ @ @ ', + option: '', + }, + { + etape: '1', + long: 'ZONE AMENAGEMENT DIFFERE ', + court: 'zad @ @ ', + option: '', + }, + { + etape: '1', + long: 'ZONE A URBANISER EN PRIORITE ', + court: 'zup @ @ @ @ ', + option: '', + }, + { + etape: '1.0', + long: 'ZONE ARTISANALE ', + court: 'zone artisanale ', + option: '', + }, + { etape: '1.0', long: 'LA PIERRE ', court: 'LA pierre ', option: '' }, + { + etape: '1.0', + long: ' DE LA FONTAINE( PROLONGEE|$)', + court: ' de la fontaine\\g<1>', + option: '', + }, + { + etape: '2.0', + long: 'SAINT JEAN BAPTISTE', + court: 'st JEAN BAPTISTE', + option: '', + }, + { etape: '2.0', long: 'DE L AIGLETTE', court: 'AIGLETTE @ @', option: '' }, + { etape: '2.0', long: 'SAINTE CROIX', court: 'SAINTE croix', option: '' }, + { etape: '2.0', long: 'TOUR CARREE', court: 'tour CARREE', option: '' }, + { etape: '2.0', long: 'PONT SAINT', court: 'pont SAINT', option: '' }, + { + etape: '2.0', + long: 'SAINT PIERRE SAINT', + court: 'st pierre st', + option: '', + }, + { + etape: '2.0', + long: 'ANTOINE DE SAINT', + court: 'ANTOINE DE st', + option: '', + }, + { + etape: '2.0', + long: 'DECLARATION UNIVERSELLE DES DROITS', + court: 'DECLARATION universelle DES droits', + option: '', + }, + { etape: '2.0', long: 'LA CLAIRE', court: 'LA claire', option: '' }, + { etape: '2.0', long: 'LA TOUR', court: 'LA tour', option: '' }, + { etape: '2', long: 'ADJUDANT', court: 'adj', option: '' }, + { etape: '2', long: 'ASPIRANT', court: 'asp', option: '' }, + { etape: '2', long: 'CARDINAL', court: 'cdl', option: '' }, + { etape: '2', long: 'COMMANDANT', court: 'cdt', option: '' }, + { etape: '2', long: 'DIRECT(EUR|ION)', court: 'dir', option: '' }, + { etape: '2', long: 'DOCTEUR', court: 'dr', option: '' }, + { etape: '2', long: 'EVEQUE', court: 'evq', option: '' }, + { etape: '2', long: 'FUSILIERS', court: 'fus', option: '' }, + { + etape: '2.0', + long: 'GOUVERNEUR GENERAL', + court: 'gouv GENERAL', + option: '', + }, + { etape: '2', long: 'GENERAL', court: 'gal', option: '' }, + { etape: '2', long: 'INGENIEUR', court: 'ing', option: '' }, + { etape: '2', long: 'INSPECTEUR', court: 'insp', option: '' }, + { etape: '2', long: 'LIEUTENANT DE VAISSEAU', court: 'ltdv @ @', option: '' }, + { etape: '2', long: 'LIEUTENANT', court: 'lt', option: '' }, + { etape: '2', long: 'COLONEL', court: 'cnl', option: '' }, + { etape: '2', long: 'MAITRE', court: 'me', option: '' }, + { etape: '2', long: 'MARECHAL', court: 'mal', option: '' }, + { etape: '2', long: 'MEDECIN', court: 'med', option: '' }, + { etape: '2', long: 'MONSEIGNEUR', court: 'mgr', option: '' }, + { etape: '2', long: 'NOTRE DAME', court: 'nd @', option: '' }, + { etape: '2', long: 'PASTEUR', court: 'past', option: '' }, + { etape: '2', long: 'PREFET', court: 'pref', option: '' }, + { etape: '2', long: 'PRESIDENT', court: 'pdt', option: '' }, + { etape: '2', long: 'PROFESSEUR', court: 'pr', option: '' }, + { etape: '2', long: 'RECTEUR', court: 'rect', option: '' }, + { etape: '2', long: 'SERGENT', court: 'sgt', option: '' }, + { etape: '2', long: 'VEUVE', court: 'vve', option: '' }, + { + etape: '3', + long: '(AMANIEU|ARTHUR|ALAIN|ARNOULD|ALIX|AGNES|ANATOLE|AUGUSTE|AUGUSTIN|AMBROISE|AMADEUS|ALBERT|AGATHE|ANGELIQUE|ANNE|ANDRE|ANDREE|ANTOINE|ANTOINETTE|ANTONIO|ADRIEN|ALEXANDRE|ALEXANDRA|ALPHONSE|ALFRED|ARISTIDE|ACHILLE)', + court: 'a', + option: '', + }, + { + etape: '3', + long: '(BAPTISTE|BERNARD|BENJAMIN|BERTRAND)', + court: 'b', + option: '', + }, + { + etape: '3', + long: '(CLEMENT|CMLEMENCE|CAMILLE|CESAR|CATHERINE|CORENTIN|CLAIRE|CLOTILDE|CHARLES|CHARLOTTE|CLAUDE|CHRISTIANE|CHRISTOPHE|CHRISTIAN|CHRISTINE|CONSTANTIN|CYRILLE)', + court: 'c', + option: '', + }, + { + etape: '3', + long: '(DENIS|DOMINIQUE|DANIEL|DANIELLE|DANIELE|DIEUDONNE)', + court: 'd', + option: '', + }, + { + etape: '3', + long: '(EDME|EDOUARD|EDMOND|EDMONDE|ETIENNE|EMILE|EMMANUEL|EMMANUELLE|ERNEST|EUGENE|ELISABETH)', + court: 'e', + option: '', + }, + { + etape: '3', + long: '(FITZGERALD|FELIX|FOLCO|FRANCOIS|FRANCOISE|FRANCIS|FRANKLIN|FERDINAND|FERNAND|FREDERIC|FREDERIQUE|FULGENCE)', + court: 'f', + option: '', + }, + { + etape: '3', + long: '(GUY|GUILLIBERT|GABRIEL|GERMAIN|GERMAINE|GEOFFROY|GEORGES|GEORGETTE|GASPARD|GASTON|GUSTAVE|GILLES|GILBERT|GILBERTE|GENEVIEVE|GUENIEVRE|GERARD|GUILLAUME|GUILLEMETTE)', + court: 'g', + option: '', + }, + { + etape: '3', + long: '(HIPPOLYTE|HECTOR|HENRI|HERCULE|HONORE|HUBERT)', + court: 'h', + option: '', + }, + { etape: '3', long: '(IRENE)', court: 'i', option: '' }, + { + etape: '3', + long: '(JEAN|JEANNE|JEANINE|JANINE|JOHANNES|JOHN|JACQUES|JOSEPH|JOSEPHE|JOSEPHINE|JULIEN|JACQUELINE|JULES)', + court: 'j', + option: '', + }, + { etape: '3', long: '(KONRAD)', court: 'k', option: '' }, + { + etape: '3', + long: '(LAZARE|LAUREN(T|CE)|LOUIS(|E)|LUC(|IE|IEN|IENNE)|LUDOVIC|LUDVIG|LUDWIG|LINO|LEON)', + court: 'l', + option: '', + }, + { + etape: '3', + long: '(MARC|MARIUS|MANON|MAXIME|MAXIMILIEN|MARGUERITE|MARIE|MADELEINE|MAURICE|MARCEL|MARCELLE|MATHIEU|MELCHIOR|MARTIN|MONIQUE|MELANIE|MICHEL|MICHELLE|MARCELLIN)', + court: 'm', + option: '', + }, + { + etape: '3', + long: '(NICOLAS|NAPOLEON|NELSON|NOEL)', + court: 'n', + option: '', + }, + { etape: '3', long: '(OCTAVIEN|OSCAR)', court: 'o', option: '' }, + { + etape: '3', + long: '(PASCAL|PASCALE|PATRICE|PAUL|PIERRE|PHILIPPE|PHILIBERT|PERRINE|PROSPER)', + court: 'p', + option: '', + }, + { + etape: '3', + long: '(RAOUL|ROBERT|RENE|RAYMOND|REGIS|RICHARD|ROLAND|ROGER|ROLLET)', + court: 'r', + option: '', + }, + { + etape: '3', + long: '(SOPHIE|SYLVESTRE|SEBASTIEN|STANISLAS)', + court: 's', + option: '', + }, + { + etape: '3', + long: '(TELESPHORE|THERESE|THEODOR|THEODORE|THEOPHILE|TOUSSAINT)', + court: 't', + option: '', + }, + { etape: '3', long: '(VINCENT)', court: 'v', option: '' }, + { etape: '3', long: '(YVES|YVONNE)', court: 'y', option: '' }, + { etape: '4', long: 'AERODROME', court: 'aer', option: '' }, + { etape: '4', long: 'AEROGARE', court: 'aerg', option: '' }, + { etape: '4', long: 'AERONAUTIQUE', court: 'aern', option: '' }, + { etape: '4', long: 'AEROPORT', court: 'aerp', option: '' }, + { etape: '4', long: 'AGENCE', court: 'agce', option: '' }, + { etape: '4', long: 'AGRICOLE', court: 'agric', option: '' }, + { etape: '4', long: 'ANCIEN(NEMENT|)', court: 'anc', option: '' }, + { etape: '4', long: 'APPARTEMENT(S|)', court: 'app', option: '' }, + { etape: '4', long: 'ARMEMENT', court: 'armt', option: '' }, + { etape: '4', long: 'ARRONDISSEMENT', court: 'arr', option: '' }, + { etape: '4', long: 'ASSOCIATION', court: 'assoc', option: '' }, + { etape: '4', long: 'ASSURANCE', court: 'assur', option: '' }, + { etape: '4', long: 'ATELIER', court: 'at', option: '' }, + { etape: '4', long: 'BARAQUEMENT', court: 'brq', option: '' }, + { etape: '4', long: 'BAS(SE|SES|)', court: 'BAS', option: '' }, + { etape: '4', long: 'BATAILLON(S|)', court: 'BTN', option: '' }, + { etape: '4', long: 'BATIMENT(S|)', court: 'BAT', option: '' }, + { etape: '4', long: 'BIS', court: 'B', option: '' }, + { etape: '4', long: 'BOITE POSTALE', court: 'BP @', option: '' }, + { etape: '4', long: 'CABINET', court: 'CAB', option: '' }, + { etape: '4', long: 'CANTON(AL|)', court: 'CANT', option: '' }, + { etape: '4', long: 'CASE POSTALE', court: 'CP', option: '' }, + { etape: '4', long: 'CHAMBRE', court: 'CHBR', option: '' }, + { etape: '4', long: 'CITADELLE', court: 'CTD', option: '' }, + { etape: '4', long: 'COLLEGE', court: 'COLL', option: '' }, + { etape: '4', long: 'COLONIE', court: 'COLO', option: '' }, + { etape: '4', long: 'COMITE', court: 'CTE', option: '' }, + { etape: '4', long: 'COMMERCIAL', court: 'CIAL', option: '' }, + { etape: '4', long: 'COMMUNA(L|UX)', court: 'COM', option: '' }, + { etape: '4', long: 'COMPAGNIE', court: 'CIE', option: '' }, + { etape: '4', long: 'COMPAGNON(S|)', court: 'COMP', option: '' }, + { etape: '4', long: 'COOPERATIVE', court: 'COOP', option: '' }, + { etape: '4', long: 'COURSE SPECIALE', court: 'CS @', option: '' }, + { etape: '4', long: 'CROIX', court: 'CRX', option: '' }, + { etape: '4', long: 'DELEGATION', court: 'DELEG', option: '' }, + { etape: '4', long: 'DEPARTEMENTA(L|UX)', court: 'DEP', option: '' }, + { etape: '4', long: 'DIVISION', court: 'DIV', option: '' }, + { etape: '4', long: 'ECONOMI(E|QUE)', court: 'ECO', option: '' }, + { etape: '4', long: 'ECRIVAIN(S|)', court: 'ECRIV', option: '' }, + { etape: '4', long: 'ENSEIGNEMENT', court: 'ENST', option: '' }, + { etape: '4', long: 'ENSEMBLE', court: 'ENS', option: '' }, + { etape: '4', long: 'ENTREE(S|)', court: 'ENT', option: '' }, + { etape: '4', long: 'ENTREPRISE', court: 'ENTR', option: '' }, + { etape: '4', long: 'EPOU(SE|X)', court: 'EP', option: '' }, + { etape: '4', long: 'ETABLISSEMENT(S|)', court: 'ETS', option: '' }, + { etape: '4', long: 'ETAGE', court: 'ETG', option: '' }, + { etape: '4', long: 'ETAT MAJOR', court: 'EM @', option: '' }, + { etape: '4', long: 'FACULTE', court: 'FAC', option: '' }, + { etape: '4', long: 'FORE(STIER|T)', court: 'FOR', option: '' }, + { etape: '4', long: 'FRANCAIS(E|)', court: 'FR', option: '' }, + { etape: '4', long: 'GENDARMERIE', court: 'GEND', option: '' }, + { etape: '4', long: 'GOUVERNE(MENTAL|UR)', court: 'GOUV', option: '' }, + { etape: '4', long: 'GRANDES', court: 'GDES', option: '' }, + { etape: '4', long: 'GRANDS', court: 'GDS', option: '' }, + { etape: '4', long: 'GRANDE', court: 'GDE', option: '' }, + { etape: '4', long: 'GRAND', court: 'GD', option: '' }, + { etape: '4', long: 'HAUTES', court: 'HTES', option: '' }, + { etape: '4', long: 'HAUTS', court: 'HTS', option: '' }, + { etape: '4', long: 'HAUTE', court: 'HTE', option: '' }, + { etape: '4', long: 'HAUT', court: 'HT', option: '' }, + { etape: '4', long: 'HOPITA(L|UX)', court: 'HOP', option: '' }, + { etape: '4', long: 'HOSPI(CE|TALIER)', court: 'HOSP', option: '' }, + { etape: '4', long: 'HOTEL', court: 'HOT', option: '' }, + { etape: '4', long: 'INFANTERIE', court: 'INFANT', option: '' }, + { etape: '4', long: 'INFERIEUR(E|)', court: 'INF', option: '' }, + { etape: '4', long: 'INSTITUT', court: 'INST', option: '' }, + { etape: '4', long: 'INTERNATIONAL(E|)', court: 'INTERN', option: '' }, + { etape: '4', long: 'LABORATOIRE', court: 'LABO', option: '' }, + { etape: '2', long: 'MADAME', court: 'MME', option: '' }, + { etape: '2', long: 'MADEMOISELLE', court: 'MLLE', option: '' }, + { etape: '4', long: 'MAGASIN', court: 'MAG', option: '' }, + { etape: '4', long: 'MAISON', court: 'MAIS', option: '' }, + { etape: '4', long: 'MARITIME', court: 'MAR', option: '' }, + { etape: '-4.0', long: 'MARTYR(S|)', court: 'MYR', option: '' }, + { etape: '4', long: 'MEDICAL', court: 'MED', option: '' }, + { etape: '4', long: 'MESDAMES', court: 'MMES', option: '' }, + { etape: '4', long: 'MESDEMOISELLES', court: 'MLLES', option: '' }, + { etape: '4', long: 'MESSIEURS', court: 'MM', option: '' }, + { etape: '4', long: 'MILITAIRE', court: 'MIL', option: '' }, + { etape: '4', long: 'MINISTERE', court: 'MIN', option: '' }, + { etape: '4', long: 'MONSIEUR', court: 'M', option: '' }, + { etape: '4', long: 'MUNICIPAL', court: 'MUN', option: '' }, + { etape: '4', long: 'MUTUEL', court: 'MUT', option: '' }, + { etape: '4', long: 'NATIONAL', court: 'NAL', option: '' }, + { etape: '4', long: 'NOUVE(AU|LLE)', court: 'NOUV', option: '' }, + { etape: '4', long: 'OBSERVATOIRE', court: 'OBS', option: '' }, + { etape: '4', long: 'PETIT', court: 'PT', option: '' }, + { etape: '4', long: 'PETITE', court: 'PTE', option: '' }, + { etape: '4.0', long: 'PETITES', court: 'PTE', option: '' }, + { etape: '4', long: 'PETITES', court: 'PTES', option: '' }, + { etape: '4.0', long: 'PETITS', court: 'PT', option: '' }, + { etape: '4', long: 'PETITS', court: 'PTS', option: '' }, + { etape: '4', long: 'POLICE', court: 'POL', option: '' }, + { etape: '4', long: 'PREFECTURE', court: 'PREF', option: '' }, + { etape: '4', long: 'PROFESSIONNEL(LE|)', court: 'PROF', option: '' }, + { etape: '0', long: 'PROLONGE(E|)', court: 'PROL', option: '' }, + { etape: '4', long: 'PROPRIETE', court: 'PROP', option: '' }, + { etape: '4', long: 'QUATER', court: 'Q', option: '' }, + { etape: '4', long: 'QUINQUIES', court: 'CAB', option: '' }, + { etape: '4', long: 'REGIMENT', court: 'RGT', option: '' }, + { etape: '4', long: 'REGION(AL|)', court: 'REG', option: '' }, + { etape: '4', long: 'REPUBLIQUE', court: 'REP', option: '' }, + { etape: '4', long: 'RESTAURANT', court: 'REST', option: '' }, + { etape: '4', long: 'SANATORIUM', court: 'SANA', option: '' }, + { etape: '4', long: 'SERVICE', court: 'SCE', option: '' }, + { etape: '4', long: 'SOCIETE', court: 'SOC', option: '' }, + { etape: '4', long: 'SOUS COUVERT', court: 'SC @', option: '' }, + { etape: '4', long: 'SOUS PREFECTURE', court: 'SPREF @', option: '' }, + { etape: '4', long: 'SOUS PREFET', court: 'SPREF @', option: '' }, + { etape: '4', long: 'SUPERIEUR(E|)', court: 'SUP', option: '' }, + { etape: '4', long: 'SYNDICAT', court: 'SYND', option: '' }, + { etape: '4', long: 'TECHNI(CIEN|QUE)', court: 'TECH', option: '' }, + { etape: '4', long: 'TER', court: 'T', option: '' }, + { etape: '4', long: 'TRI SERVICE ARRIVEE', court: 'TSA @ @', option: '' }, + { etape: '4', long: 'TUNNEL', court: 'TUN', option: '' }, + { etape: '4', long: 'UNIVERSITAIRE', court: 'UNVT', option: '' }, + { etape: '4', long: 'UNIVERSITE', court: 'UNIV', option: '' }, + { etape: '4', long: 'VELODROME', court: 'VELOD', option: '' }, + { etape: '4', long: 'VIEILLE(S|)', court: 'VIEL', option: '' }, + { etape: '4', long: 'VIEUX', court: 'VX', option: '' }, + { etape: '5.0', long: 'CENTRE cial', court: 'ccal @', option: '' }, + { etape: '5', long: 'CENTRE', court: 'CTRE', option: '' }, + { etape: '5', long: 'ABBAYE', court: 'ABBA', option: '' }, + { etape: '5', long: 'AG(G|)LOMERATION ', court: 'AGGL', option: '' }, + { etape: '5', long: 'AIRES ', court: 'AIRE', option: '' }, + { + etape: '5', + long: 'ANCIEN(NES|NE|S|) (CHEMIN|CHEMINS|ROUTE|ROUTES)', + court: 'ANCI \\g<2>', + option: '', + }, + { etape: '5', long: 'ARCADE(S|)', court: 'ARCA', option: '' }, + { etape: '5', long: 'AUTOROUTE', court: 'AUTO', option: '' }, + { etape: '5', long: 'BARRIERE(S|)', court: 'BARR', option: '' }, + { etape: '5', long: 'BAS CHEMIN', court: 'BAS', option: '' }, + { etape: '5', long: 'BASTI(DE|ON)', court: 'BAST', option: '' }, + { etape: '5', long: 'BEGUINAGE(S|)', court: 'BEGU', option: '' }, + { etape: '5', long: 'BERGE(S|)', court: 'BERG', option: '' }, + { etape: '5', long: 'BOUCLE', court: 'BOUC', option: '' }, + { etape: '5', long: 'BOURG', court: 'BOUR', option: '' }, + { etape: '5', long: 'BUTTE', court: 'BUTT', option: '' }, + { etape: '5', long: 'CAMP(AGNE|ING)', court: 'CAMP', option: '' }, + { + etape: '5', + long: 'CARR(E|EAU|EFFOUR|IERE(S|))', + court: 'CARR', + option: '', + }, + { etape: '5', long: 'CASTEL', court: 'CAST', option: '' }, + { etape: '5', long: 'CAVEE', court: 'CAVE', option: '' }, + { etape: '5', long: 'CENTRAL', court: 'CENT', option: '' }, + { etape: '5', long: 'CHALET', court: 'CHAL', option: '' }, + { etape: '5', long: 'CHAPELLE', court: 'CHAP', option: '' }, + { etape: '5', long: 'CHARMILLE', court: 'CHAR', option: '' }, + { etape: '5', long: 'CHATEAU', court: 'CHAT', option: '' }, + { etape: '5', long: 'CHAUSSEE(S|)', court: 'CHAU', option: '' }, + { + etape: '5', + long: 'CHEMIN( VICINAL|S VICINAUX|EMENT(S|))', + court: 'CHEM \\g<1>', + option: '', + }, + { etape: '5', long: 'CHEMIN', court: 'CHEM', option: '' }, + { etape: '5', long: 'CITES', court: 'CITE', option: '' }, + { etape: '5', long: 'CLOITRE', court: 'CLOI', option: '' }, + { etape: '5', long: 'COLLINE(S|)', court: 'COLL', option: '' }, + { etape: '5', long: 'CONTOUR', court: 'CONT', option: '' }, + { etape: '5', long: 'CORNICHE(S|)', court: 'CORN', option: '' }, + { etape: '5', long: 'COTEAU', court: 'COTE', option: '' }, + { etape: '5', long: 'COTTAGE(S|)', court: 'COTT', option: '' }, + { etape: '5', long: 'COURS', court: 'COUR', option: '' }, + { etape: '5', long: 'DARSE', court: 'DARS', option: '' }, + { etape: '5', long: 'DEGRE(S|)', court: 'DEGRE', option: '' }, + { etape: '5', long: 'DESCENTE(S|)', court: 'DESC', option: '' }, + { etape: '5', long: 'DIGUE(S|)', court: 'DIGU', option: '' }, + { etape: '5', long: 'DOMAINE(S|)', court: 'DOMA', option: '' }, + { etape: '5', long: 'ECLUSE(S|)', court: 'ECLU', option: '' }, + { etape: '5', long: 'EGLISE', court: 'EGLI', option: '' }, + { etape: '5', long: 'ENCEINTE', court: 'ENCE', option: '' }, + { etape: '5', long: 'ENCL(AVE|OS)', court: 'ENCL', option: '' }, + { etape: '5', long: 'ESCALIER(S|)', court: 'ESCA', option: '' }, + { etape: '5', long: 'ESPACE(S|)', court: 'ESPA', option: '' }, + { etape: '5', long: 'ESPLANADE(S|)', court: 'ESPL', option: '' }, + { etape: '5', long: 'ETANG', court: 'ETAN', option: '' }, + { etape: '5', long: 'FAUBOURG', court: 'FAUB', option: '' }, + { etape: '5', long: 'FERME(S|)', court: 'FERM', option: '' }, + { etape: '5', long: 'FONTAINE', court: 'FONT', option: '' }, + { etape: '5', long: 'FORUM', court: 'FORU', option: '' }, + { etape: '5', long: 'FOSSE(S|)', court: 'FOSS', option: '' }, + { etape: '5', long: 'FOYER', court: 'FOYE', option: '' }, + { etape: '5', long: 'GALERIE(S|)', court: 'GALE', option: '' }, + { etape: '5', long: 'GARENNE', court: 'GARE', option: '' }, + { + etape: '5', + long: 'GRAND(E|ES|) (BOULEVARD|ENSEMBLE|RUE)(S|)', + court: 'GRAN \\g<1>\\g<2>', + option: '', + }, + { etape: '5', long: 'GRILLE', court: 'GRIL', option: '' }, + { etape: '5', long: 'GRIMPETTE', court: 'GRIM', option: '' }, + { etape: '5', long: 'GROUPE(MENT|S|)', court: 'GROU', option: '' }, + { etape: '5', long: 'HALLE(S|)', court: 'HALL', option: '' }, + { etape: '5', long: 'HAMEAU(X|)', court: 'HAME', option: '' }, + { etape: '5', long: 'HIPPODROME', court: 'HIPP', option: '' }, + { etape: '5', long: 'IMPASSES', court: 'IMPA', option: '' }, + { etape: '5', long: 'JARDIN(S|)', court: 'JARD', option: '' }, + { etape: '5', long: 'JETEE(S)', court: 'JETE', option: '' }, + { etape: '5', long: 'LEVEE', court: 'LEVE', option: '' }, + { etape: '5', long: 'LOTISSEMENTS', court: 'LOTI', option: '' }, + { etape: '5', long: 'LOTISSEMENT', court: 'LOT', option: '' }, + { etape: '5', long: 'MAISON FORESTIERE', court: 'MAIS @', option: '' }, + { etape: '5', long: 'MANOIR', court: 'MANO', option: '' }, + { etape: '5', long: 'MARCHE(S|)', court: 'MARC', option: '' }, + { etape: '5', long: 'METRO', court: 'METR', option: '' }, + { etape: '5', long: 'MONTEE(S|)', court: 'MONT', option: '' }, + { etape: '5', long: 'MOULIN(S|)', court: 'MOUL', option: '' }, + { etape: '5', long: 'MUSEE', court: 'MUSE', option: '' }, + { etape: '5', long: 'NOUVELLE ROUTE', court: 'NOUV RTE', option: '' }, + { etape: '5', long: 'PALAIS', court: 'PALA', option: '' }, + { etape: '5', long: 'PARCS', court: 'PARC', option: '' }, + { etape: '5', long: 'PARKING', court: 'PARK', option: '' }, + { etape: '5', long: 'PARVIS', court: 'PARV', option: '' }, + { + etape: '5', + long: 'PASS(AGE A NIVEAU|E(S|)|ERELLE(S|))', + court: 'PASS', + option: '', + }, + { etape: '5', long: 'PATIO', court: 'PATI', option: '' }, + { etape: '5', long: 'PAVILLON(S|)', court: 'PAVI', option: '' }, + { etape: '5', long: 'PERI(PHERIQUE|STYLE)', court: 'PERI', option: '' }, + { + etape: '5', + long: 'PETIT(E|ES|) (CHEMIN|ALLEE|IMPASSE|ROUTE|RUE)(S|)', + court: 'PETI \\g<1>\\g<2>', + option: '', + }, + { etape: '5', long: 'PLACIS', court: 'PLAC', option: '' }, + { etape: '5', long: 'PLAGE(S|)', court: 'PLAG', option: '' }, + { etape: '5', long: 'PLAINE', court: 'PLAI', option: '' }, + { etape: '5', long: 'PLATEAU(X|)', court: 'PLAT', option: '' }, + { etape: '5', long: 'POINTE', court: 'POIN', option: '' }, + { etape: '5', long: 'PONTS', court: 'PONT', option: '' }, + { etape: '5', long: 'PORT(E|IQUE(S|))', court: 'PORT', option: '' }, + { etape: '5', long: 'POTERNE', court: 'POTE', option: '' }, + { etape: '5', long: 'POURTOUR', court: 'POUR', option: '' }, + { etape: '5', long: 'PRESQU ILE', court: 'PRES', option: '' }, + { etape: '5', long: 'PROMENADE', court: 'PROM', option: '' }, + { etape: '5', long: 'QUARTIER', court: 'QUAR', option: '' }, + { etape: '5', long: 'RACCOURCI', court: 'RACC', option: '' }, + { etape: '5', long: 'RAIDILLON', court: 'RAID', option: '' }, + { etape: '5', long: 'RAMPE', court: 'RAMP', option: '' }, + { etape: '5', long: 'REMPART', court: 'REMP', option: '' }, + { etape: '5.0', long: 'RESIDENCE', court: 'RES', option: '' }, + { etape: '5', long: 'RESIDENCE(S|)', court: 'RESI', option: '' }, + { etape: '5', long: 'ROCADE', court: 'ROCA', option: '' }, + { etape: '5', long: 'ROQUET', court: 'ROQU', option: '' }, + { etape: '5', long: 'ROTONDE', court: 'ROTO', option: '' }, + { etape: '5', long: 'ROUTES', court: 'ROUT', option: '' }, + { etape: '5', long: 'RUELLE(S|)', court: 'RUEL', option: '' }, + { etape: '5', long: 'SENT(E|ES|IER|IERS)', court: 'SENT', option: '' }, + { etape: '5', long: 'STADE', court: 'STAD', option: '' }, + { etape: '5', long: 'STATION', court: 'STAT', option: '' }, + { etape: '0', long: 'TERRE PLEIN', court: 'TERR @', option: '' }, + { etape: '5', long: 'TERR(AIN|ASSE(S|))', court: 'TERR', option: '' }, + { etape: '5', long: 'TERTRE(S|)', court: 'TERT', option: '' }, + { etape: '5', long: 'TRAVERSE', court: 'TRAV', option: '' }, + { etape: '5', long: 'VALL(EE|ON)', court: 'VALL', option: '' }, + { etape: '5', long: 'VENELLE(S|)', court: 'VENE', option: '' }, + { etape: '5', long: 'VIEILLE ROUTE', court: 'VIEI', option: '' }, + { etape: '5', long: 'VIEUX CHEMIN', court: 'VIEU', option: '' }, + { etape: '5', long: 'VILLA(GES|S|)', court: 'VILL', option: '' }, + { etape: '5', long: 'VOIE COMMUNALE ', court: 'VOIE C ', option: '' }, + { etape: '5', long: 'VOIES', court: 'VOIE', option: '' }, + { etape: '6', long: ' SAINTES ', court: ' STES ', option: '' }, + { etape: '6', long: ' SAINTS ', court: ' STS ', option: '' }, + { etape: '6', long: ' SAINTE ', court: ' STE ', option: '' }, + { etape: '6', long: ' SAINT ', court: ' ST ', option: '' }, + { etape: '7.0', long: ' JUILLET ', court: ' juil ', option: '' }, + { etape: '7.0', long: ' SEPTEMBRE ', court: ' sep ', option: '' }, + { etape: '7.0', long: ' OCTOBRE ', court: ' oct ', option: '' }, + { etape: '7.0', long: ' NOVEMBRE ', court: ' nov ', option: '' }, + { etape: '7.0', long: ' DECEMBRE ', court: ' dec ', option: '' }, + { etape: '0', long: ' PROLONGE(E|)$', court: ' PROL', option: '' }, + { etape: '0', long: ' INFERIEUR(E|)$', court: ' INF', option: '' }, + { etape: '1.5', long: '^CENTRE', court: 'CTRE', option: '' }, + { etape: '9', long: ' L (HUILIER)', court: ' l \\g<1>', option: '' }, + { + etape: '9', + long: '([a-z]) DE LA (BARRE|BEDOYERE|BORDERIE|BOULINIERE|BOURDONNAIS|BRIFFE|BROSSE|BRUYERE|BULLY|CELLE|CHAIZE|CLOCHETERIE|CLYTE|COCHINIERE|COLOMBIERE|CONDAMINE|DEULE|DROME|FAYETTE|FERRE|FERRIERE|FORCE|FOU|FOUCHARDIERE|FRESNAYE|FUTAYE|GONTRIE|GORCE|GRAVIERE|GUERCHE|GUERONNIERE|HALLE|HAYE|HIRE|HONTAN|HOURTIQUE|HUERTA|MADIE|MARCK|MENNAIS|METHERIE|METTRIE|MOISSONNIERE|MORTEAU|MORVONNAIS|MOTHE|MOTTE|NOE|PEROUSE|PLATIERE|POMMERAYE|PORREE|PRADELLE|PROVOTE|QUINTINIE|ROBRIE|ROCHEFOUCAULD|ROCHEFOUCAULT|ROCHEJAQUELEIN|ROQUE|ROSE|ROVERE|SALLE|SORINIERE|TAILHEDE|TAILLE|TIBERGERIE|TOUCHE|TOURFONDUE|TREILLE|TREMBLAYE|TREMOILLE|VAISSIERE|VALLEE|VALLIERE|VARENDE|VAULX|VERNE|VIEUVILLE|VILLE|VILLEHERVE|VILLEMARQUE|VILLETTE|ZOUCH)', + court: '\\g<1> de la \\g<2>', + option: '', + }, + { + etape: '9', + long: ' DE LA (BILLARDIERE|BOLLARDIERE|BOISSIERE|CHAPELLE|CHARRIERE|CHETARDIE|CONTRIE|COTARDIERE|CROIX|DROUERIE|GONZEE|GRAVIERES|HUARDIERE|JOSSERIE|LARGERE|MALLERIE|METTRIE|MERLIERE|MEURTHE|MOISSONNIERE|NOE|ROGERIE|SALLE|TOUR|VALETTE|VIGERIE)', + court: ' de la \\g<1>', + option: '', + }, + { + etape: '9', + long: '([a-z]) DE L (AIGLE|ECLUSE|ESTOILE|HOSPITAL|ISLE|OYE)', + court: '\\g<1> de l \\g<2>', + option: '', + }, + { + etape: '9', + long: '([a-z]|COMTE|COMTESSE|DUCHE|LATTRE) DE (BADE|BADERON|BAERENFELS|BAERZE|BAHEZRE|BAIF|BAILLEUL|BAILLON|BALANDA|BAMEVILLE|BANNES|BAR|BARANTE|BARBE|BARBIER|BARY|BASQUIAT|BASTEROT|BAUDRE|BAUFFREMONT|BAUMONT|BAVIERE|BAYARD|BAZVALLAN|BEARN|BEAUBOURG|BEAUCE|BEAUFFREMEZ|BEAUFORT|BEAUHARNAIS|BEAUJEU|BEAULIEU|BEAUMANOIR|BEAUMARCHAIS|BEAUMONT|BEAUNE|BEAUPRE|BEAUREGARD|BEAUREPAIRE|BEAUSOBRE|BEAUVAIS|BEAUVAU|BEAUVIGNAC|BEAUVILLE|BEAUVOIR|BEHAGUE|BEINS|BEJARRY|BELAY|BELLECOMBE|BELLEVILLE|BELLINGLISE|BELLONNET|BELSUNCE|BENAY|BEOST|BERAILH|BERANGER|BERGERAC|BERNARD|BERNARDY|BERNIES|BERNIN|BERNIS|BERNUY|BERRI|BERRY|BERTALOT|BERTHIER|BERTIN|BESNERAY|BETHENCOURT|BETHUNE|BETTIGNIES|BETZ|BEURNOUVILLE|BIDEAU|BIMARD|BISEFRANC|BLAGNY|BLAINVILLE|BLAISON|BLANC|BLANCHEFORT|BLARRU|BLEGNY|BLOIS|BOISANGER|BOISROBERT|BOISSIERE|BOISSIEU|BOISSON|BOLOGNE|BONCOURT|BONFORT|BONNEFON|BONNEGARDE|BONNEGENS|BOPPARD|BORDA|BORDEAUX|BORDEU|BORN|BORNIER|BORTOLI|BOSCHERE|BOUC|BOUCHEMAN|BOUGAINVILLE|BOUILLAS|BOUILLON|BOULAY|BOULOGNE|BOURBON|BOURDEILLES|BOURGOGNE|BOURGUEIL|BOURNAZEL|BOUTHEON|BOUTTEVILLE|BOVIS|BOYER|BRACIEUX|BRANCAS|BRANTOME|BREDA|BRETAGNE|BRETENNIERE|BRICOURT|BRIE|BRIENNE|BRIEY|BRION|BRISSAC|BRISSON|BROCA|BROGLIE|BROSSE|BROSSES|BROYES|BRUCOURT|BRUN|BRY|BUEIL|BUFFON|BURES|BUSSEUIL|BUTTET|BUXEUIL|BUXY|BUYER|CABESTANY|CABROL|CADENET|CAILLAVET|CAMARET|CAMBIAIRE|CAMBO|CAMPAIGNO|CAMPET|CAMPION|CAMPREDON|CAPELE|CARBONNIERES|CARCARADEC|CARDAILLAC|CARNAGET|CARNE|CASABIANCA|CASSAGNE|CASTANET|CASTILLE|CASTILLON|CASTRO|CAUS|CELLE|CERISAY|CERNAY|CERTAINES|CERVANTES|CESSAC|CESSOLE|CHABERT|CHABOT|CHALON|CHALUS|CHAMBES|CHAMBLY|CHAMPAGNE|CHAMPAIGNE|CHAMPDIVERS|CHAMPEVILLE|CHAMPROND|CHANDENEUX|CHANTAL|CHARANCE|CHARDIN|CHARDONNET|CHARRIN|CHASTEL|CHATEAUBRIAND|CHATEAUNEUF|CHATELIER|CHATELLUS|CHATILLON|CHAULHAC|CHAULHIAC|CHAUVIGNY|CHAUVIN|CHAZELLES|CHAZERAT|CHEFDEBIEN|CHELLES|CHENIER|CHOISEUL|CHOLET|CIREY|CLAIRAMBAULT|CLAIRVAUX|CLERMONT|CLERY|CLEVES|CLINCHAMP|CLOSMADEUC|COATANLEM|COETLAGAT|COHORN|COIGNARD|COLLERYE|COLOMBIES|COLS|COMBLES|COMBRET|COMMINES|COMMINGES|COMMYNES|CONDE|CONDILLAC|CONINCK|CONNAYE|COPPET|CORAL|CORAS|CORBERON|CORBIE|CORBIERE|CORDEMOY|CORMONTAIGNE|CORNOUAILLE|COTTE|COUBERTIN|COUCY|COUDUN|COUETUS|COULOMB|COURCY|COURTENAY|COURTOUX|COURVOISIER|COUX|CRABOSSE|CRAON|CRESNE|CRESSIA|CROCY|CROUSAZ|CROUY|CUERS|CUEVAS|CUMONT|DANGEAU|DERVAL|DIE|DIETRICH|DIEU|DION|DOMANOVA|DOMBASLE|DON|DORMANS|DOUAI|DOUE|DREUX|DURBOIS|DURFORT|DURNES|FALGUIERE|FALLA|FALLOUX|FAUCIGNY|FAVIERES|FAYE|FELICE|FENELON|FERRE|FITTE|FLANDRE|FLERS|FLORANS|FLORETTE|FLORIAN|FOE|FOIGNY|FOIX|FONDEVILLE|FONSCOLOMBE|FONSEQUE|FONTARCE|FONTENELLE|FONTMICHEL|FOOR|FORAS|FORBIN|FOREZ|FORTIA|FOSSA|FOUCAUD|FOUCAULD|FOUCAULT|FOUGY|FOULON|FOURNIVAL|FRANCE|FRANCHEVILLE|FRANQUEVILLE|FREMINVILLE|FRESQUET|FREYCINET|FROIDOUR|FRONTENAC|FRONZE|FROUVILLE|FUNES|GAIL|GALARD|GANAY|GANNES|GARIDEL|GARLANDE|GARRIGUES|GASPARIN|GASPERI|GASSION|GAUCOURT|GAULLE|GAVARDY|GAVRE|GAYRARD|GAZANYOLA|GEIGER|GENAS|GENEVE|GENNES|GERDE|GERES|GERVILLE|GESLIN|GEYTER|GIBON|GIFFA|GINGINS|GIRARD|GIRARDIER|GIRARDIN|GIRODET|GISORS|GLEYZE|GODEWAERSVELDE|GOHR|GONCOURT|GONDI|GONDY|GONZAGUE|GORRIS|GORSSE|GOURDON|GOURGUES|GOURMONT|GOURNAY|GOUX|GOUY|GRACIA|GRAILLY|GRANDMAISON|GRASSE|GRESSOT|GREZILLAC|GRIBALDY|GROUCHY|GROUX|GUEBRIANT|GUELDRE|GUERCHEVILLE|GUERIN|GUERLANDE|GUERLINS|GUETHEM|GUIGNARD|GUIGNE|GUILHEM|GUILLOCHE|GUIRAMAND|GUISE|HARCOURT|HARGUES|HARISTEGUY|HAUTECLOCQUE|HAYNIN|HENNOT|HENO|HEREDIA|HEU|HOGUES|HONGRIE|JABRUN|JAMES|JAVENE|JOIE|JOIGNY|JOINVILLE|JOLY|JOUVENEL|JOUY|JUBECOURT|JUIGNE|JUR|JUSSIEU|KERALLAIN|KERARDEN|KERGOLAY|KERGOMARD|KERGORLAY|KERMADEC|KEROUAL|KEROUALLAN|KERSAINT|KERVEGUEN|KERVILER|KNYFF|KOCK|LABAT|LABAUME|LABERE|LACARRE|LACEPEDE|LACLOS|LADIME|LADONCHAMPS|LAFFEMAS|LAGARRIGUE|LAIGUE|LAISNE|LAIT|LALAING|LALANDE|LAMAGDELAINE|LAMARCK|LAMENNAIS|LAMER|LAMIC|LAMONTA|LAMOTHE|LANCIVAL|LANGHEAC|LANGLE|LANNOY|LAPLACE|LAPRADE|LAROCHE|LASSALLE|LASSERVE|LASSUS|LASTEYRIE|LATHENAY|LATOUCHE|LAUNAY|LAURENS|LAUZUN|LAVAL|LAVARDIN|LAVAUR|LAVERGNE|LAVIGNE|LAVOISIER|LEOBARDY|LEPINAY|LEPINEY|LESCURE|LESSEPS|LESTONNAC|LETIN|LEVARE|LEVESVILLE|LEVIS|LEZARDIERE|LICE|LIEGE|LIGNIERES|LINA|LINGENDES|LINIERS|LION|LIONNE|LISSORGUES|LLUCIA|LONGPRE|LORRAINE|LORRIS|LOUIS|LOUVAIN|LOUVRES|LUBERSAC|LUGNY|LUNA|LUNE|LUSSAC|LUXEMBOURG|LUZARCHES|LYON|LYONNE|MABLY|MACHAULT|MACHECOUL|MAGNEVILLE|MAGNIENVILLE|MAGNITOT|MAI|MAILLE|MAILLY|MAINVILLE|MAISONNEUVE|MAISTRE|MALARET|MALARTIC|MALESTROIT|MALEVILLE|MALMAINS|MANDELOT|MANDERSCHEID|MANGOU|MANSENCAL|MARCA|MARCE|MARCEAU|MAREAU|MAREUIL|MARIGNY|MARILLAC|MARIN|MARIVAUX|MARLY|MARMIER|MARSANGY|MARTEL|MARTHE|MARTI|MARTIMPREY|MARTIN|MARTRES|MARVILLE|MASCAREIGNAS|MASCARON|MASSY|MATHAREL|MAUDUIT|MAUNY|MAUPEOU|MAUPERTUIS|MAUROY|MAUSSAC|MAY|MAYTIE|MEDICIS|MELESSE|MELLON|MELUN|MENOU|MERAT|MERIC|MERY|MESMES|METZ|MEULAN|MEUNG|MEYERE|MEZIERES|MICHELS|MIGNON|MIRABEAU|MIRAVAL|MIRIBEL|MIRMAN|MOELAN|MOIVRE|MOLAY|MONACHIS|MONACO|MONAIX|MONDRAGON|MONFREID|MONLUC|MONPLANET|MONTAIGU|MONTALEMBERT|MONTALENT|MONTALIVET|MONTBRAY|MONTCALM|MONTEBISE|MONTEIL|MONTERA|MONTEREAU|MONTESPAN|MONTESQUIEU|MONTESQUIOU|MONTFAUCON|MONTFAVET|MONTFORT|MONTFREID|MONTGOLFIER|MONTGOMMERY|MONTI|MONTIGNY|MONTIJO|MONTLAUR|MONTLUISANT|MONTPELLIER|MONTREJEAU|MONTREUIL|MONTRON|MONTS|MORAES|MORANGIES|MOREY|MORTAGNE|MORTAIN|MORVILLIERS|MOUCHY|MOUNET|MUIZON|MUN|MUSSET|MUTIGNY|MUYSSART|NADAL|NANGIS|NANSOUTY|NARZAC|NASSE|NAUTONNIER|NAVARRE|NAVERY|NEGRO|NEHOU|NERVO|NEUBOURG|NEUFVILLE|NEURE|NEUVILLE|NEVERS|NEYMAN|NEZOT|NICOLAY|NOAILLES|NOGUER|NOLE|NOLHAC|NOROY|PAGAN|PAGANIS|PALADINES|PALASOL|PALAYS|PALISSY|PALLAS|PANGE|PARCEVAUX|PARDAILLAN|PARIS|PAROY|PAUL|PAYNS|PEGUILHAN|PEIGNE|PEIRESC|PENTHIEVRE|PERETTI|PERIGNON|PERSAN|PESQUIDOUX|PEYRE|PEYRONNET|PIERREBUFFIERE|PINGON|PINS|PINTEVILLE|PIOLENC|PISAN|PISSELEU|PLANET|PLANTAVIT|PLUVINEL|POILLY|POIX|POLIGNAC|POLLINCHOVE|POMAIROLS|POMMEREU|POMMERY|PONCHER|PONS|PONSAY|PONT|PONTEVES|PONTHIEU|PORCARO|PORTUGAL|POSSEL|POUTRINCOURT|PRESLES|PRESSENCE|PRIE|PRIMAUGUET|PROVENCE|PROVINS|PUYBUSQUE|PUYRAVAULT|QUAY|QUELEN|QUERHOENT|RAINCOURT|RAIS|RAMEL|RANCONNET|RANCONVAL|RANCY|RATHSAMHAUSEN|RAVETON|RAYNAL|RAZILLY|REAUMUR|REFUGE|REGIS|REGNIER|RELY|RENAUD|RENEVILLE|RESSEGUIER|REYNIES|RICHEMONT|RICULPHE|RIDDER|RILLE|RIOUFFE|RIVERY|ROBERT|ROBERVAL|ROBESPIERRE|ROCHAMBEAU|ROCHEBRUNE|ROCHEFORT|ROCHETAILLEE|ROCQUIGNY|RODAY|RODEMACK|ROHAN|ROMAIN|ROMAN|ROMAS|ROME|RONCEVAUX|RONSARD|ROQUEFIXADE|ROSIERES|ROSIMBOS|ROSMADEC|ROSNAY|ROSNY|ROSSILLON|ROTHSCHILD|ROUBAIX|ROUJOUX|ROUVILLE|ROUVRES|ROUX|ROZ|ROZET|RUAT|RUTTE|SADE|SAHUQUE|SAIGE|SAILLY|SAISSAC|SALES|SALIGNE|SALLES|SALVANDY|SALVE|SAONE|SARDAC|SARO|SAULX|SAVARY|SAVEUSE|SAVIGNAC|SAVOIE|SAVONNIERE|SAXE|SAYMOND|SECONDAT|SEGLA|SEGOGNE|SEGUR|SENECTERRE|SERENT|SEROUX|SERRANT|SERRES|SERS|SERVIERES|SEVIGNE|SEYSSEL|SEZE|SIBAS|SIBOUNE|SIGOYER|SILHON|SIVRY|SMET|SOBIRATS|SOLAGES|SOLAND|SOLLIER|SOREAU|SOUHY|SOULTRAIT|SOUVILLE|SULLY|SURVILLE|SUZANNET|TAFFIN|TALLEYRAND|TALVAS|TANLAY|TARNOWSKY|TASSIGNY|TATZO|TAULNAY|TEIL|TERLINE|TERSOM|TESSAN|THAIX|THANEY|THEOBALD|THOLOZAN|THOR|THORIGNY|THOUARS|TILHA|TINGUY|TOCQUEVILLE|TORRES|TOULOUSE|TOUR|TOURCOING|TOURNES|TOURNON|TOURTIER|TOURTOULON|TOURVILLE|TRANCHERE|TRETS|TREVIERS|TRIE|TRIGON|TRIQUERVILLE|TROYES|TURCKHEIM|TURENNE|TYARD|VACQUEROLLES|VAILLY|VALERNES|VALOIS|VALON|VARZY|VASSAL|VAUBAN|VAUCANSON|VAUCANSSON|VAUDEMONT|VAUGELAS|VAUVENARGUES|VAUX|VAYRAC|VENDOME|VENOGE|VENTADORN|VENTADOUR|VERGENNES|VERNEJOUL|VERNOLS|VERNON|VERRAZANO|VEYSSIERE|VEZELAY|VEZINS|VIC|VICHY|VICQ|VIDEAU|VIENNE|VIERVILLE|VIGENERE|VIGNET|VIGNY|VIGUIER|VILLAGES|VILLARS|VILLELE|VILLENEUVE|VILLERS|VILLETAIN|VILLIERS|VILMORIN|VINCI|VIRELLE|VITRY|VITTEL|VITTON|VIVIE|VIVONNE|VIZCAYA|VLAMINCK|VOGUE|VOISIN|VOLONTAT|VOLVIRE|WALLE|WANGEN|WENDEL|WERVE|WESTHUS|WESTPHALEN|WETT|WEY|WILS|WISSANT|WORE)', + court: '\\g<1> de \\g<2>', + option: '', + }, + { + etape: '9', + long: '([A-Z]) DU (BARRE|BARRY|BELLAY|BOS|BUIS|BUYS|CERCEAU|CHALARD|CHANET|CLAUD|COETLOSQUET|COUCHANT|DRESNAY|FOU|FOUILLOUX|GARD|GARREAU|GAST|GAY|GUA|GUESCLIN|HAURE|LUART|LUXEMBOURG|LYS|MAYNE|MEUNIER|PASQUIER|PLET|QUELENNEC|QUESNAY|REY|ROOY|ROZIER|SAUSSAY|TEMPLE|TERRAIL|TILLET|TREUIL|TROU)', + court: '\\g<1> du \\g<2>', + option: '', + }, + { + etape: '9', + long: '([A-Z]) D (ABBANS|ACIGNE|ADHEMAR|AFFIS|AGAY|AGESCY|AGHONNE|AGOSTIN|AGRAIN|AGREVE|AGUESSEAU|AIGNEAUX|AIGREVILLE|AILLY|AIRE|ALBARADE|ALBI|ALBRET|ALEMBERT|ALESME|ALEXIS|ALFARO|ALLARD|ALLONNES|ALSACE|AMADE|AMBOISE|AMOU|AMOURS|ANDELI|ANDOINS|ANDOUINS|ANDUZE|ANGELY|ANGENNES|ANGERS|ANGLADE|ANGLETERRE|ANGOULEME|ANJOU|ANTHES|ANTOINE|AOUR|APREMONT|AQUITAINE|ARABIE|ARAGON|ARAU|ARBAUD|ARBAUMONT|ARBRISSEL|ARC|ARCHES|ARCHIAC|ARCIS|ARCON|ARGENSON|ARGENT|ARGENTRE|ARISTE|ARLANDES|ARMONVILLE|ARNAUD|ARRADON|ARRAS|ARSONVAL|ARTAGNAN|ARTOIS|ASNIERES|ASSEZAT|ASTIER|ASTORG|ASTROS|AUBERMESNIL|AUBIGNE|AUBIGNY|AUBUSSON|AULAN|AULON|AUMALE|AUNETTE|AUREILHE|AURENSAN|AURIAC|AUTON|AUTRICHE|AUVERGNE|AUXERRE|AUXY|AVENCHES|AVERTON|AVIGNON|AVY|AYEN|AZY|ECOSSE|EICHTHAL|ELVA|ENNERY|ENTRAGUES|EPINAY|ERARD|ERCHIEU|ESCLEVIN|ESCOUBLEAU|ESPAGNE|ESPARBES|ESPIC|ESPINAY|ESTAING|ESTAMPES|ESTE|ESTEVE|ESTEVES|ESTIENNE|ESTRADES|EU|HALLUIN|HARCOURT|HARDIVILLERS|HARLEVILLE|HASTREL|HAUTPOUL|HELBINGUE|HENRY|HERMY|HERS|HONDT|HONORINE|HOSTEL|HOTEL|HOURTE|HUART|HUMIERES|IGNY|ILLINS|IMBERT|INTIGNANO|OLIVET|OLIVIER|OMS|OR|ORBAIS|ORIOLA|ORLEANS|ORNANO|OURVILLE|OYHENART|URCLE|URFE|URSULE|USSEL|UZES|WHITE|Y)', + court: '\\g<1> d \\g<2>', + option: '', + }, + { + etape: '9', + long: '([A-Z]) LE (BACQUER|BAIL|BALP|BALPE|BARBU|BARON|BARZIC|BAS|BASTARD|BAUD|BAUX|BAYON|BEC|BELLEC|BELLER|BELLOUR|BERD|BERRE|BIHAN|BIS|BITTER|BLANC|BLEU|BLOA|BOBINNEC|BOMIN|BON|BONNIEC|BOUCHER|BOUDEC|BOUHART|BOULCH|BOURBLANC|BOURDELLES|BOURDIEC|BOURGES|BOURGO|BOURHIS|BRAS|BRAZ|BRET|BRETON|BRIS|BRIX|BROZEC|BRUN|BRUSQ|BUCHERON|CALVE|CALVEZ|CAM|CANADIEN|CAPITAINE|CARDONNEL|CARRER|CERF|CHATELIER|CHAUVE|CHEVALLIER|CHEVOIR|CIEUX|CLANCHE|CLERC|CLERT|CLEZIO|COCQ|COIN|COMTE|CONFESSEUR|COQ|COR|CORBUSIER|CORDIER|CORNEC|COROLLER|CORRE|COULTEUX|COURT|COUTALLER|COZ|CROS|CUN|CUNFF|DAIN|DAMANY|DANOIS|DAUX|DEAN|DEBONNAIRE|DERRIEN|DEUT|DROGO|DROGOFF|DU|DUC|DUFF|FALHER|FEVRE|FLANCHEC|FLEM|FLOCH|FLOHIC|FOLL|FOUILLE|FRANC|FRANCAIS|FRAPPER|FUR|GAC|GAL|GALL|GALLEU|GALLO|GARDONNEL|GENTIL|GENTILE|GOFF|GOFFIC|GOIC|GORREC|GOULVEN|GRAND|GROS|GUELLAUT|GUEN|GUENNEC|GUIFF|GUIL|GUILLOUX|GUINER|GUYADER|HALPERT|HAMP|HEN|HENAFF|HENANFF|HERPEUX|HIR|HO|JAUDET|JEAN|JEANNE|JEUNE|LABOUREUR|LAE|LAN|LAY|LEON|LIN|LONG|LORRAIN|LOUARN|LOUP|LUC|MAISTRE|MAITRE|MANCQ|MANER|MAO|MAOUT|MARESQUIER|MARIE|MASSON|MASTIN|MEIGNEN|MENN|MENTEC|MEUR|MEUT|MEZO|MIGNOT|MOAL|MOALIGOU|MOENIC|MOIGN|MOIGNE|MOING|MOLGAT|MONNIER|MONTAGNER|MORE|MOULEC|MOULT|MOYNE|MUET|NAIN|NAOURES|NAVIGATEUR|NESTOUR|NOTRE|NOUAIL|NY|PAIRE|PAN|PATRE|PAYEN|PAYS|PECQ|PELLETIER|PENNEC|PENVEN|PERE|PEVEDIC|PIC|PICHON|PIEUX|PITRE|POGAMP|POLOZEC|POT|POULAIN|POULENNEC|POVREMOYNE|PRINCE|QUEINEC|QUELLEC|QUINTREC|RICOLAIS|ROCHOIS|ROI|ROUGE|ROUSSEAU|ROUX|ROY|ROYER|SAMEDY|SENECHAL|SIDANER|SODEC|STANGUENNEC|STRADIC|STRAT|SUAVE|TALLEC|TAROUILLY|TELLIER|TEMERAIRE|TENNEUR|TESTU|TEXIER|THEULE|THIEC|TOQUIN|TRIVIDIC|TULLIER|TUTOUR|VAGUERES|VAILLANT|VAU|VEILLE|VENERABLE|VERRIER|VEZOUET|VIOL)', + court: '\\g<1> le \\g<2>', + option: '', + }, + { etape: '9', long: ' DE LATTRE ', court: ' de LATTRE ', option: '' }, +];