diff --git a/.github/workflows/analyse.yml b/.github/workflows/analyse.yml index 98aed66..2ee3d67 100644 --- a/.github/workflows/analyse.yml +++ b/.github/workflows/analyse.yml @@ -27,6 +27,7 @@ jobs: - name: Install run: | python3 -m pip install --upgrade pip + python3 -m pip install torch --index-url https://download.pytorch.org/whl/cpu python3 -m pip install -e . - name: Cache downloads id: cache-downloads @@ -49,7 +50,7 @@ jobs: done - name: Extract run: | - alexi -v extract -m download/index.json download/*.pdf + alexi -v extract --model alexi/models/rnn_crf.pt -m download/index.json download/*.pdf - name: Index run: | alexi -v index export diff --git a/README.md b/README.md index abfa54c..6e9a790 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ annotations. Une fois satisfait du résultat, il suffira de copier `1314-page1.csv` vers le repertoire `data` et réentrainer le modèle avec -`scripts/retrain.sh`. +`hatch run train`. Extraction de catégories pertinentes du zonage ---------------------------------------------- diff --git a/TODO.md b/TODO.md index 5ad81fd..2875920 100644 --- a/TODO.md +++ b/TODO.md @@ -1,24 +1,3 @@ -Tracking some time ------------------- - -- fix sous-section links 1h - - test case 15 min - - fuzzy matching of element numbers w/sequence 30 min - - deploy 15 min - -- links to categories 1h - - test case 15 min - - collect cases and implement 30 min - -- links to zones 2h - - implement zone query in ZONALDA (with centroid) 1h30 - - extract zone links (multiple usually) 30min - -- links to usages 1h30 - - test case 15 min - - analysis function 45 min - - linking as above 30 min - Immediate fixes/enhancements ---------------------------- @@ -38,11 +17,102 @@ Immediate fixes/enhancements DERP LERNING ------------ -- Segmentation - - Retokenize CSVs using CamemBERT tokenizer (spread features on pieces) - - Train PyTorch-CRF: https://pytorch-crf.readthedocs.io/en/stable/ - - possibly use Skorch to do evaluation: https://skorch.readthedocs.io/en/stable/ +Segmentation +============ + +- Retokenize CSVs using CamemBERT tokenizer (spread features on pieces) DONE +- Train a BiLSTM model with vsl features DONE + - Learning rate decay and early stopping DONE + - Embed words and categorical features DONE + - Use same evaluator as CRF training for comparison DONE + - Scale layout features by page size and include as vector DONE + - Retrain from full dataset + patches + - early stopping? sample a dev set? + - Do extraction and qualitative evaluation + - sort for batch processing then unsort afterwards +- CRF output layer DONE +- Ensemble RNN DONE +- Viterbi decoding (with allowed transitions only) on RNN outputs DONE + - Could *possibly* train a CRF to do this, in fact DONE +- Tokenize from chars + - Add functionality to pdfplumber +- Use Transformers for embeddings + - Heuristic pre-chunking as described below + - Either tokenize from chars (above) or use first embedding per word + - Probably project 768 dimensions down to something smaller +- Do prediction with Transformers (LayoutLM) DONE + - heuristic chunking based on line gap (not indent) DONE +- Do prediction with Transformers (CamemBERT) +- Do prediction with Transformers (CamemBERT + vector feats) + + +Segmentation results +==================== +- Things that helped + - RNN helps overall, particularly on unseen data (using the + "patches" as a test set) + - use all the manually created features and embed them with >=4 dimensions + - deltas and delta-deltas + - scale all the things by page size (slightly less good than by + abs(max(feats)) but probably more robust) + - upweight B- tags by 2.0 + - weight all tags by inverse frequency (works even better than B- * 2.0) + - taking the best model using f1_macro (requires ensemble or dev set) + - ensemble of cross-validation folds (allows early stopping as well) + - in *theory* dropout would give us this benefit too but no + - Training CRF on top of pre-trained RNN + - Don't constrain transitions (see below) + - Do freeze all RNN parameters + - Can just do it for one epoch if you want (if not, save the RNN outputs...) +- Inconclusive + - GRU or plain RNN with lower learning rate + - LSTM is maybe overparameterized? + - Improves label accuracy quite a lot but mean F1 not really + - This seems to be a consequence of lower learning rate not cell typpe + - LayoutLM + - pretrained on wrong language + - layout features possibly suboptimal for this task + - but need to synchronize evaluation metrics to be sure! +- Things that did not help + - CamemBERT tokenizer doesn't work well for CRFs, possibly due to: + - all subwords have the same position, so layout features are wrong + - hand-crafted features maybe don't work the same on subwords (leading _ thing) + - weighting classes by inverse frequency (just upweight B as it's what we care about) + - more LSTM layers + - much wider LSTM + - much narrower LSTM + - dropout on LSTM layers + - extra feedforward layer + - dropout on extra feedforward layer + - wider word embeddings + - CRF output layer (trained end-to-end) + - Training is *much* slower + - Raw accuracy is consistently a bit better. + - Macro-F1 though is not as good (over B- tags) + - Imbalanced data is an issue and weighting is more difficult + - Definitely weight transitions and emissions (helps) + - Have to weight "up", can't weight "down" + - Weighting by exp(1.0 / count) better than nothing + - Weighting by exp(1.0 / B-count) not helpful + - Weighting by exp(1.0 / (B-count + I-count)) not helpful + - Applying Viterbi to RNN output shows why + - Sequence constraints favour accuracy of I over B + - Weighted RNN training favours correct Bs, but Is can change + mid-sequence, which we don't care about + - Decoding with constraints forces B and I to agree, improving + overall acccuracy by fixing incorrect Is but flipping some + correct Bs in the process + - Confirmed, Viterbi with --labels bonly gives (nearly) same + results as non-Viterbi + - Training RNN-CRF with --labels bonly + - Not sure why since it does help for discrete CRF?! +- Things yet to be tried + - pre-trained or pre-computed word embeddings + - label smoothing + - feedforward layer before RNN + - dropout in other places + Documentation ------------- @@ -69,9 +139,7 @@ Unprioritized future stuff - have to hack the crfsuite file to do this - not at all easy to do with sklearn-crfsuite magical pickling - otherwise ... treat I-B as B-B when following O or I-A (as before) -- workflow for correcting individual pages - - convenience functions for "visual debugging" in pdfplumber style - - instructions to identify and extract CSV for page +- investigate using a different CRF library - tune regularization (some more) - compare memory footprint of main branch versus html_output - levels of lists diff --git a/alexi/__init__.py b/alexi/__init__.py index 9a52b48..32c113f 100644 --- a/alexi/__init__.py +++ b/alexi/__init__.py @@ -23,7 +23,7 @@ from .label import Identificateur from .search import search from .segment import DEFAULT_MODEL as DEFAULT_SEGMENT_MODEL -from .segment import Segmenteur +from .segment import RNNSegmenteur, Segmenteur LOGGER = logging.getLogger("alexi") VERSION = "0.4.0" @@ -59,7 +59,11 @@ def convert_main(args: argparse.Namespace): def segment_main(args: argparse.Namespace): """Segmenter un CSV""" - crf = Segmenteur(args.model) + crf: Segmenteur + if args.model.suffix == ".pt": + crf = RNNSegmenteur(args.model) + else: + crf = Segmenteur(args.model) reader = csv.DictReader(args.csv) write_csv(crf(reader), sys.stdout) @@ -140,7 +144,7 @@ def make_argparse() -> argparse.ArgumentParser: "segment", help="Segmenter et étiquetter les segments d'un CSV" ) segment.add_argument( - "--model", help="Modele CRF", type=Path, default=DEFAULT_SEGMENT_MODEL + "--model", help="Modele CRF ou RNN", type=Path, default=DEFAULT_SEGMENT_MODEL ) segment.add_argument( "csv", diff --git a/alexi/convert.py b/alexi/convert.py index a17bff7..0347bd9 100644 --- a/alexi/convert.py +++ b/alexi/convert.py @@ -5,9 +5,8 @@ import logging import operator from collections import deque -from io import BufferedReader, BytesIO from pathlib import Path -from typing import Any, Iterable, Iterator, Optional, TextIO, Union +from typing import Any, Iterable, Iterator, Optional, TextIO from pdfplumber import PDF from pdfplumber.page import Page @@ -123,15 +122,17 @@ def get_word_features( class Converteur: pdf: PDF + path: Path tree: Optional[PDFStructTree] y_tolerance: int def __init__( self, - path_or_fp: Union[str, Path, BufferedReader, BytesIO], + path: Path, y_tolerance: int = 2, ): - self.pdf = PDF.open(path_or_fp) + self.pdf = PDF.open(path) + self.path = path self.y_tolerance = y_tolerance try: # Get the tree for the *entire* document since elements @@ -180,7 +181,9 @@ def extract_words(self, pages: Optional[Iterable[int]] = None) -> Iterator[T_obj continue if word["x1"] > page.width or word["bottom"] > page.height: continue - yield get_word_features(word, page, chars, elmap) + feats = get_word_features(word, page, chars, elmap) + feats["path"] = str(self.path) + yield feats def make_bloc( self, el: PDFStructElement, page_number: int, mcids: Iterable[int] diff --git a/alexi/extract.py b/alexi/extract.py index e3cda78..9b1d190 100644 --- a/alexi/extract.py +++ b/alexi/extract.py @@ -19,7 +19,7 @@ from alexi.label import Identificateur from alexi.link import Resolver from alexi.segment import DEFAULT_MODEL as DEFAULT_SEGMENT_MODEL -from alexi.segment import DEFAULT_MODEL_NOSTRUCT, Segmenteur +from alexi.segment import DEFAULT_MODEL_NOSTRUCT, RNNSegmenteur, Segmenteur from alexi.types import T_obj LOGGER = logging.getLogger("extract") @@ -39,7 +39,7 @@ def add_arguments(parser: argparse.ArgumentParser) -> argparse.ArgumentParser: help="Ne pas utiliser le CSV de référence", action="store_true", ) - parser.add_argument("--segment-model", help="Modele CRF", type=Path) + parser.add_argument("--segment-model", help="Modele CRF/RNN", type=Path) parser.add_argument( "--label-model", help="Modele CRF", type=Path, default=DEFAULT_LABEL_MODEL ) @@ -329,6 +329,8 @@ def make_doc_tree(docs: list[Document], outdir: Path) -> dict[str, dict[str, str class Extracteur: + crf: Segmenteur + def __init__( self, outdir: Path, @@ -340,7 +342,10 @@ def __init__( self.outdir = outdir self.crf_s = Identificateur() if segment_model is not None: - self.crf = Segmenteur(segment_model) + if segment_model.suffix == ".pt": + self.crf = RNNSegmenteur(segment_model) + else: + self.crf = Segmenteur(segment_model) self.crf_n = None else: self.crf = Segmenteur(DEFAULT_SEGMENT_MODEL) diff --git a/alexi/link.py b/alexi/link.py index 50ac071..18ccfa4 100644 --- a/alexi/link.py +++ b/alexi/link.py @@ -71,6 +71,8 @@ def __call__( return self.resolve_internal(text, srcpath, doc) def resolve_zonage(self, text: str, srcpath: str) -> Optional[str]: + if self.metadata.get("zonage") is None: + return None m = MILIEU_RE.search(text) if m is None: return None diff --git a/alexi/models/crfseq.joblib.gz b/alexi/models/crfseq.joblib.gz index 765c42c..c00aa34 100644 Binary files a/alexi/models/crfseq.joblib.gz and b/alexi/models/crfseq.joblib.gz differ diff --git a/alexi/models/rnn.json b/alexi/models/rnn.json new file mode 100644 index 0000000..4126df2 --- /dev/null +++ b/alexi/models/rnn.json @@ -0,0 +1,9052 @@ +{ + "feat2id": { + "lower": { + "": 0, + "ville": 1, + "de": 2, + "sainte-adèle": 3, + "province": 4, + "québec": 5, + "comte": 6, + "bertrand": 7, + "reglement": 8, + "no.": 9, + "1000-2008-ppc": 10, + "a": 11, + "une": 12, + "séance": 13, + "ordinaire": 14, + "du": 15, + "conseil": 16, + "municipal,": 17, + "tenue": 18, + "publiquement": 19, + "le": 20, + "20": 21, + "octobre": 22, + "2008": 23, + "à": 24, + "20hoo": 25, + "dans": 26, + "la": 27, + "salle": 28, + "municipal": 29, + "située": 30, + "au": 31, + "1386": 32, + "rue": 33, + "dumouchel,": 34, + "sainte-adèle,": 35, + "québec,": 36, + "lieu": 37, + "des": 38, + "séances": 39, + "laquelle": 40, + "étaient": 41, + "présents": 42, + "madame": 43, + "et": 44, + "messieurs": 45, + "les": 46, + "conseillers": 47, + "victor": 48, + "mainville": 49, + "district": 50, + "1": 51, + "jean-pierre": 52, + "pariseau": 53, + "2": 54, + "gabriel": 55, + "d.": 56, + "latour": 57, + "3": 58, + "gary": 59, + "quenneville": 60, + "4": 61, + "andré": 62, + "lamarche": 63, + "5": 64, + "nicole": 65, + "durand": 66, + "6": 67, + "sous": 68, + "présidence": 69, + "monsieur": 70, + "maire": 71, + "claude": 72, + "descôteaux": 73, + "tous": 74, + "membres": 75, + "dudit": 76, + "en": 77, + "formant": 78, + "quorum.": 79, + "conformément": 80, + "aux": 81, + "dispositions": 82, + "l'article": 83, + "356": 84, + "loi": 85, + "sur": 86, + "cités": 87, + "villes": 88, + "(l.r.q.": 89, + "1977,": 90, + "ch.": 91, + "c-19),": 92, + "greffier": 93, + "est": 94, + "dispensé": 95, + "lecture": 96, + "règlement.": 97, + "projet": 98, + "règlement": 99, + "numéro": 100, + "relatif": 101, + "projets": 102, + "particuliers": 103, + "construction,": 104, + "modification": 105, + "ou": 106, + "d'occupation": 107, + "d'un": 108, + "immeuble.": 109, + "atiendu": 110, + "que": 111, + "l'avis": 112, + "motion": 113, + "présent": 114, + "été": 115, + "donné": 116, + "lors": 117, + "15": 118, + "septembre": 119, + "2008,": 120, + "par": 121, + "conseiller": 122, + "pariseau.": 123, + "qu'il": 124, + "soit": 125, + "statué": 126, + "ordonné": 127, + "ce": 128, + "qui": 129, + "suit,": 130, + "savoir:": 131, + "chapitre": 132, + "déclaratoires,": 133, + "interprétatives": 134, + "administratives": 135, + "article": 136, + "titre": 137, + "s'intitule": 138, + "«": 139, + "immeuble».": 140, + "territoire": 141, + "assujetti": 142, + "s'applique": 143, + "l'ensemble": 144, + "soumis": 145, + "juridiction": 146, + "l'exception": 147, + "toute": 148, + "partie": 149, + "zone": 150, + "où": 151, + "l'occupation": 152, + "sol": 153, + "soumise": 154, + "contraintes": 155, + "particulières": 156, + "pour": 157, + "raisons": 158, + "sécurité": 159, + "publique.": 160, + "domaine": 161, + "d'application": 162, + "l'autorisation": 163, + "particulier": 164, + "immeuble": 165, + "déroge": 166, + "l'une": 167, + "l'autre": 168, + "règlements": 169, + "concernés": 170, + "doit": 171, + "être": 172, + "faite": 173, + "règles": 174, + "préséance": 175, + "règlement,": 176, + "moins": 177, + "d'indication": 178, + "contraire,": 179, + "suivantes": 180, + "s'appliquent": 181, + ":": 182, + "a)": 183, + "cas": 184, + "d'incompatibilité": 185, + "entre": 186, + "texte": 187, + "un": 188, + "titre,": 189, + "prévaut.": 190, + "b)": 191, + "autre": 192, + "forme": 193, + "d'expression,": 194, + "grille": 195, + "spécifications,": 196, + "autres": 197, + "d'urbanisme": 198, + "ont": 199, + "preseance": 200, + "disposition": 201, + "incompatible": 202, + "plusieurs": 203, + "mentionnés": 204, + "11.": 205, + "renvois": 206, + "contenus": 207, + "sont": 208, + "ouverts,": 209, + "c'est-à-dire": 210, + "qu'ils": 211, + "s'étendent": 212, + "pourrait": 213, + "subir": 214, + "faisant": 215, + "l'objet": 216, + "renvoi": 217, + "postérieurement": 218, + "l'entrée": 219, + "vigueur": 220, + "7": 221, + "terminologie": 222, + "l'interprétation": 223, + "contexte": 224, + "n'indique": 225, + "sens": 226, + "différent,": 227, + "tout": 228, + "mot": 229, + "expression": 230, + "lui": 231, + "attribué": 232, + "zonage": 233, + "vigueur.": 234, + "si": 235, + "n'est": 236, + "pas": 237, + "spécifiquement": 238, + "défini": 239, + "zonage,": 240, + "il": 241, + "s'entend": 242, + "son": 243, + "commun": 244, + "dictionnaire.": 245, + "8": 246, + "application": 247, + "l'application": 248, + "relève": 249, + "fonctionnaire": 250, + "désigné": 251, + "nommé": 252, + "selon": 253, + "permis": 254, + "certificats": 255, + "9": 256, + "pouvoirs": 257, + "devoirs": 258, + "définis": 259, + "10": 260, + "contraventions,": 261, + "sanctions,": 262, + "recours": 263, + "poursuites": 264, + "relatives": 265, + "contravention,": 266, + "sanction,": 267, + "poursuite": 268, + "judiciaire": 269, + "l'égard": 270, + "celles": 271, + "prévues": 272, + "procédure": 273, + "demande": 274, + "d'autorisation": 275, + "11": 276, + "objet": 277, + "d'une": 278, + "peut": 279, + "autoriser,": 280, + "conditions": 281, + "l'un": 282, + "suivants": 283, + "lotissement": 284, + "c)": 285, + "construction": 286, + "d)": 287, + "plans": 288, + "d'implantation": 289, + "d'intégration": 290, + "architecturale": 291, + "e)": 292, + "limité": 293, + "relative": 294, + "d'émission": 295, + "certificat": 296, + "d'autorisation.": 297, + "12": 298, + "transmission": 299, + "vue": 300, + "prévue": 301, + "écrite": 302, + "transmise": 303, + "propriétaire": 304, + "l'immeuble": 305, + "visé,": 306, + "mandataire": 307, + "dûment": 308, + "autorisé": 309, + "procuration,": 310, + "désigné.": 311, + "accompagnée": 312, + "documents": 313, + "échéant,": 314, + "procuration": 315, + "établissant": 316, + "mandat": 317, + "personne": 318, + "autorisée": 319, + "agir": 320, + "nom": 321, + "propriétaire;": 322, + "0": 323, + "chèque": 324, + "libellé": 325, + "l'ordre": 326, + "montant": 327, + "fixé": 328, + "régissant": 329, + "tarification": 330, + "demandes": 331, + ";": 332, + "copie": 333, + "plan": 334, + "d'arpentage": 335, + "terrain": 336, + "localisation": 337, + "visé": 338, + "authentique": 339, + "requérant": 340, + "document": 341, + "détient": 342, + "option": 343, + "d'achat": 344, + "ou,": 345, + "s'il": 346, + "s'agit": 347, + "appartenant": 348, + "preuve": 349, + "d'intention": 350, + "acceptée": 351, + "conseil;": 352, + "déclaration": 353, + "types": 354, + "demande.": 355, + "13": 356, + "caducité": 357, + "formulée": 358, + "vertu": 359, + "caduque": 360, + "n'a": 361, + "déposé": 362, + "comprenant": 363, + "renseignements": 364, + "exigés": 365, + "14": 366, + "délai": 367, + "prescrit": 368, + "cet": 369, + "article.": 370, + "fournis": 371, + "fins": 372, + "remis.": 373, + "lorsqu'une": 374, + "devenue": 375, + "l'effet": 376, + "paragraphe": 377, + "précédant,": 378, + "présenter": 379, + "nouvelle": 380, + "condition": 381, + "se": 382, + "conformer": 383, + "toutes": 384, + "exigences": 385, + "article,": 386, + "y": 387, + "compris": 388, + "paiement": 389, + "tarif.": 390, + "date": 391, + "réception": 392, + "celle": 393, + "elle": 394, + "complétée,": 395, + "notifie": 396, + "cette": 397, + "date,": 398, + "écrit,": 399, + "requérant.": 400, + "90": 401, + "jours": 402, + "déposée": 403, + "déposer": 404, + "auprès": 405, + "fin,": 406, + "fournir": 407, + "écrit": 408, + "exposant": 409, + "motifs": 410, + "description": 411, + "détaillée": 412, + "montrant": 413, + "prévus": 414, + "constructions": 415, + "existantes": 416, + "ériger,": 417, + "ainsi": 418, + "terrains": 419, + "voisins": 420, + "situés": 421, + "100": 422, + "m": 423, + "limites": 424, + "demande;": 425, + "photos": 426, + "démontrant": 427, + "érigées": 428, + "informations": 429, + "5.2.2": 430, + "certificats,": 431, + "piquetage": 432, + "requis": 433, + "esquisses": 434, + "couleur": 435, + "volumétrie": 436, + "générale,": 437, + "dimensions": 438, + "hauteur": 439, + "ériger": 440, + "terrain,": 441, + "leur": 442, + "intégration": 443, + "bâti": 444, + "situé": 445, + "mètres": 446, + "limite": 447, + "densité,": 448, + "termes": 449, + "d'indice": 450, + "superficie": 451, + "plancher,": 452, + "terrain;": 453, + "f)": 454, + "occupations": 455, + "public": 456, + "prévoir;": 457, + "g)": 458, + "propositions": 459, + "démolition": 460, + "existantes,": 461, + "conservation": 462, + "mise": 463, + "valeur": 464, + "d'éléments": 465, + "architecturaux": 466, + "d'origine;": 467, + "h)": 468, + "d'aménagement": 469, + "d'espaces": 470, + "extérieurs,": 471, + "protection": 472, + "plantations": 473, + "prévues;": 474, + "i)": 475, + "accès": 476, + "véhiculaires,": 477, + "espaces": 478, + "stationnement,": 479, + "chargement": 480, + "déchargement,": 481, + "d'entreposage": 482, + "extérieur,": 483, + "aires": 484, + "conteneurs": 485, + "déchets": 486, + "k)": 487, + "études": 488, + "nécessaires": 489, + "l'évaluation": 490, + "eu": 491, + "égard": 492, + "impacts": 493, + "environnementaux": 494, + "drainage": 495, + "eaux": 496, + "surface": 497, + "contrôle": 498, + "l'érosion": 499, + "pendant": 500, + "après": 501, + "j)": 502, + "serait": 503, + "viabilisé": 504, + "installations": 505, + "privées": 506, + "d'alimentation": 507, + "eau": 508, + "d'évacuation": 509, + "sanitaires,": 510, + "rapport": 511, + "technique,": 512, + "étude": 513, + "caractérisation": 514, + "site": 515, + "naturel": 516, + "réalisée": 517, + "membre": 518, + "ordre": 519, + "professionnel": 520, + "habilité,": 521, + "confirmant": 522, + "possibilité": 523, + "desservir": 524, + "lots": 525, + "projetés": 526, + "potable": 527, + "sanitaires": 528, + "conformes": 529, + "réglementation": 530, + "m)": 531, + "l'estimation": 532, + "totale": 533, + "coûts": 534, + "réalisation": 535, + "item": 536, + "(bâtiments,": 537, + "aménagement": 538, + "etc.),": 539, + "qu'un": 540, + "échéancier": 541, + "joindre": 542, + "juge": 543, + "utile": 544, + "soutien": 545, + "dépose.": 546, + "tel": 547, + "sera": 548, + "étudié": 549, + "délais": 550, + "programme.": 551, + "outre": 552, + "exiger": 553, + "expertise": 554, + "complémentaire": 555, + "portant": 556, + "aspect": 557, + "projet.": 558, + "fixer": 559, + "production": 560, + "telle": 561, + "d'au": 562, + "plus": 563, + "jours,": 564, + "commence": 565, + "courir": 566, + "avise": 567, + "exigence.": 568, + "demeurent": 569, + "propriété": 570, + "sainte-adèle.": 571, + "critères": 572, + "d'évaluation": 573, + "lesquels": 574, + "respecter": 575, + "objectifs": 576, + "compatibilité": 577, + "mitigation": 578, + "avec": 579, + "milieu": 580, + "d'insertion;": 581, + "qualités": 582, + "l'implantation,": 583, + "volumétrie,": 584, + "densité": 585, + "l'aménagement": 586, + "lieux;": 587, + "contribution": 588, + "enrichir": 589, + "patrimoine": 590, + "architectural,": 591, + "paysager": 592, + "vi": 593, + "ile": 594, + "avantages": 595, + "extérieurs": 596, + "plantations;": 597, + "projet,": 598, + "notamment": 599, + "drainage,": 600, + "paysage": 601, + "naturel,": 602, + "l'érosion,": 603, + "bruit": 604, + "circulation": 605, + "qualité": 606, + "l'organisation": 607, + "fonctionnelle": 608, + "regard": 609, + "sécurité;": 610, + "composantes": 611, + "culturelles": 612, + "sociales": 613, + "lieu;": 614, + "faisabilité": 615, + "l'échéancier": 616, + "prévu.": 617, + "malgré": 618, + "présent,": 619, + "approuvé": 620, + "même": 621, + "ne": 622, + "rencontre": 623, + "densités": 624, + "minimales": 625, + "maximales": 626, + "inscrites": 627, + "d'urbanisme.": 628, + "coefficient": 629, + "nombre": 630, + "logements": 631, + "l'hectare": 632, + "considérés": 633, + "comme": 634, + "densité.": 635, + "16": 636, + "ccu": 637, + "suivant": 638, + "dépôt": 639, + "particulier,": 640, + "transmet": 641, + "exemplaire": 642, + "comité": 643, + "consultatif": 644, + "d'urbanisme,": 645, + "sans": 646, + "commentaires.": 647, + "soumet": 648, + "sa": 649, + "recommandation": 650, + "d'accorder,": 651, + "conditions,": 652, + "d'autorisation,": 653, + "refuser": 654, + "précisant": 655, + "refus.": 656, + "fourni": 657, + "articles": 658, + "14.": 659, + "17": 660, + "décision": 661, + "accompagné": 662, + "rend,": 663, + "résolution,": 664, + "d'accorder": 665, + "particulier.": 666, + "certifiée": 667, + "conforme": 668, + "résolution": 669, + "conseil,": 670, + "refus": 671, + "demande,": 672, + "préciser": 673, + "accorde": 674, + "assujettie": 675, + "procédures": 676, + "consultation": 677, + "d'approbation": 678, + "l'urbanisme": 679, + "(l.r.q.,": 680, + "a-19.1).": 681, + "dspositions": 682, + "finales": 683, + "18": 684, + "entrée": 685, + "entrera": 686, + "loi.": 687, + "2008-312": 688, + "proposé": 689, + "m.": 690, + "appuyé": 691, + "résolu": 692, + "l'unanimité": 693, + "adopté": 694, + "conseil.": 695, + "descôteaux,": 696, + "me": 697, + "michel": 698, + "rousseau,": 699, + "avocat/greffier": 700, + "d'entrée": 701, + "vigueur:": 702, + "-------------------------------------------": 703, + "visioconférence,": 704, + "21": 705, + "mars": 706, + "2022,": 707, + "quorum": 708, + "richard": 709, + "allard": 710, + "arielle": 711, + "beaudin": 712, + "conseillère": 713, + "alexandre": 714, + "laganière": 715, + "jean-françois": 716, + "robillard": 717, + "gaëtan": 718, + "gagné": 719, + "david": 720, + "huggins-daines": 721, + "mairesse": 722, + "michèle": 723, + "lalonde.": 724, + "attendu": 725, + "désire": 726, + "harmoniser": 727, + "développement": 728, + "ses": 729, + "infrastructures": 730, + "routières": 731, + "l’intention": 732, + "limiter": 733, + "prolifération": 734, + "chemins": 735, + "issus": 736, + "nouveaux": 737, + "développements": 738, + "avis": 739, + "février": 740, + "2022": 741, + "qu’un": 742, + "présenté": 743, + "l’avis": 744, + "qu’une": 745, + "remise": 746, + "impartis": 747, + "décrète": 748, + "qu’il": 749, + "suit": 750, + "1.": 751, + "zones": 752, + "type": 753, + "t3.1": 754, + "(habitation": 755, + "boisé)": 756, + "prévu": 757, + "1314-2021-z": 758, + "2.": 759, + "objectif": 760, + "général": 761, + "assurer": 762, + "prolongement": 763, + "routier": 764, + "puisse": 765, + "interconnecté": 766, + "qu’assurer": 767, + "continuité": 768, + "différents": 769, + "réseaux.": 770, + "perspective": 771, + "durable,": 772, + "bouclage": 773, + "réseaux": 774, + "routiers": 775, + "devient": 776, + "priorité": 777, + "d’aménagement": 778, + "issues": 779, + "doivent": 780, + "évités.": 781, + "3.": 782, + "relatifs": 783, + "permettre,": 784, + "l’intérieur": 785, + "d’un": 786, + "subséquent,": 787, + "réseau": 788, + "routier,": 789, + "d’infrastructures": 790, + "loisirs": 791, + "déplacement": 792, + "actifs.": 793, + "4.": 794, + "présentation": 795, + "d’ensemble": 796, + "lorsqu'un": 797, + "propriétaires": 798, + "souhaitent": 799, + "mettre": 800, + "propriétés": 801, + "situées": 802, + "t": 803, + "3.1": 804, + "construire": 805, + "infrastructure": 806, + "routière,": 807, + "(p.a.e.)": 808, + "conformité": 809, + "définies": 810, + "1323": 811, + "–": 812, + "(adoption)": 813, + "5.": 814, + "inclure": 815, + "l’ensemble": 816, + "1314-2012-pc": 817, + "visant": 818, + "modifications": 819, + "règlementaires": 820, + "et,": 821, + "majeurs": 822, + "construction.": 823, + "plus,": 824, + "devra": 825, + "concept": 826, + "effectué": 827, + "échelle": 828, + "500": 829, + "500,": 830, + "identifiant": 831, + "a.": 832, + "nord": 833, + "l'échelle;": 834, + "b.": 835, + "l’identification": 836, + "cadastrale": 837, + "adjacents": 838, + "projet;": 839, + "c.": 840, + "tracé": 841, + "l’emprise": 842, + "rues": 843, + "proposées": 844, + "déjà": 845, + "acceptées": 846, + "lequel": 847, + "communiquent": 848, + "l’immeuble": 849, + "immeubles": 850, + "adjacents;": 851, + "caractéristiques": 852, + "projetées": 853, + "(largeur": 854, + "d’emprise,": 855, + "pente,": 856, + "l’identification,": 857, + "typologie": 858, + "associées": 859, + "liens": 860, + "piétons,": 861, + "cyclables": 862, + "nature": 863, + "proposés": 864, + "e.": 865, + "intersections": 866, + "acceptées;": 867, + "f.": 868, + "entrées": 869, + "charretières": 870, + "allées": 871, + "donnant": 872, + "échéant;": 873, + "g.": 874, + "équipements": 875, + "parties": 876, + "l'aire": 877, + "d’ensemble;": 878, + "h.": 879, + "servitudes": 880, + "droits": 881, + "passages": 882, + "existants": 883, + "requis;": 884, + "i.": 885, + "topographie": 886, + "exprimée": 887, + "courbes": 888, + "niveau": 889, + "dont": 890, + "intervalles": 891, + "suffisants": 892, + "bonne": 893, + "compréhension": 894, + "site,": 895, + "distinguant": 896, + "principalement": 897, + "très": 898, + "fortes": 899, + "pentes": 900, + "(pente": 901, + "30": 902, + "%": 903, + "plus),": 904, + "%),": 905, + "moyennes": 906, + "%)": 907, + "faibles": 908, + "moins),": 909, + "j.": 910, + "éléments": 911, + "contrainte": 912, + "potentiel": 913, + "incluant": 914, + "naturelles": 915, + "leurs": 916, + "localisations": 917, + "(cours": 918, + "d'eau,": 919, + "milieux": 920, + "humides,": 921, + "rocs": 922, + "surface,": 923, + "boisés,": 924, + "végétation": 925, + "existante,": 926, + "d'inondations,": 927, + "etc.)": 928, + "projetées;": 929, + "6.": 930, + "additionnels": 931, + "également": 932, + "fournisse,": 933, + "frais,": 934, + "renseignement,": 935, + "détail,": 936, + "attestation": 937, + "professionnelle": 938, + "(incluant": 939, + "sceau": 940, + "signature": 941, + "originale": 942, + "aura": 943, + "préparés),": 944, + "présentant": 945, + "conclusions": 946, + "recommandations": 947, + "nécessaire": 948, + "complète": 949, + "et/ou": 950, + "s’assurer": 951, + "parfaite": 952, + "observance": 953, + "différentes": 954, + "pertinent": 955, + "publique": 956, + "l’environnement": 957, + "seront": 958, + "indument": 959, + "mis": 960, + "cause.": 961, + "7.": 962, + "dispense": 963, + "dispenser": 964, + "l’un": 965, + "l’autre": 966, + "renseignements,": 967, + "détails,": 968, + "attestations": 969, + "professionnelles": 970, + "spécifiées": 971, + "lorsque,": 972, + "désigné,": 973, + "absence": 974, + "n’entraverait": 975, + "rien": 976, + "l’observance": 977, + "municipaux": 978, + "mettrait": 979, + "cause": 980, + "l’environnement.": 981, + "8.": 982, + "d’urbanisme": 983, + "fois": 984, + "contenu": 985, + "réputé": 986, + "dernier": 987, + "prépare": 988, + "municipal.": 989, + "demander,": 990, + "jugé": 991, + "nécessaire,": 992, + "supplémentaires": 993, + "d’ensemble.": 994, + "9.": 995, + "suite": 996, + "d’urbanisme,": 997, + "approbation;": 998, + "approuver,": 999, + "condition,": 1000, + "si,": 1001, + "dernier,": 1002, + "énoncés": 1003, + "plan.": 1004, + "décide": 1005, + "approuver": 1006, + "d’ensemble,": 1007, + "peut,": 1008, + "formuler": 1009, + "requises": 1010, + "permettant": 1011, + "ultérieurement": 1012, + "d’accepter": 1013, + "l'approbation": 1014, + "n'engage": 1015, + "d'aucune": 1016, + "façon": 1017, + "entreprendre": 1018, + "délivrer": 1019, + "correspondants": 1020, + "constituer": 1021, + "obligation": 1022, + "cession": 1023, + "apparaissant": 1024, + "audit": 1025, + "ni": 1026, + "d’en": 1027, + "décréter": 1028, + "l’ouverture,": 1029, + "prendre": 1030, + "charge": 1031, + "frais": 1032, + "d’entretien,": 1033, + "assumer": 1034, + "responsabilités": 1035, + "civiles.": 1036, + "10.": 1037, + "adoption": 1038, + "celui-ci": 1039, + "adopter": 1040, + "ayant": 1041, + "modifier": 1042, + "intégrer": 1043, + "lorsqu'il": 1044, + "remplace": 1045, + "édicté": 1046, + "remplacement,": 1047, + "d'effectuer": 1048, + "l'inclusion": 1049, + "modification.": 1050, + "l’approbation": 1051, + "nécessite": 1052, + "d’une": 1053, + "12.": 1054, + "administration": 1055, + "l'administration": 1056, + "l’application": 1057, + "confiées": 1058, + "nommée": 1059, + "ci-après": 1060, + "»,": 1061, + "13.": 1062, + "signé": 1063, + "21e": 1064, + "jour": 1065, + "mois": 1066, + "d’avril": 1067, + "l’an": 1068, + "2022.": 1069, + "(s)": 1070, + "lalonde": 1071, + "audrey": 1072, + "senécal": 1073, + "_____________________": 1074, + "_____________________________": 1075, + "greffière": 1076, + "directrice": 1077, + "services": 1078, + "juridiques": 1079, + "*********************************************": 1080, + "d’approbation": 1081, + "l’article": 1082, + "357": 1083, + "(rlrq,": 1084, + "c-19)": 1085, + "concernant": 1086, + "(pae)»": 1087, + "19": 1088, + "avril": 1089, + "19h,": 1090, + "1386,": 1091, + "quorum:": 1092, + "absents": 1093, + "durée": 1094, + "séance.": 1095, + "financer": 1096, + "l’ajout,": 1097, + "l’agrandissement": 1098, + "nombreuses": 1099, + "l’achat": 1100, + "d’équipements": 1101, + "rendus": 1102, + "raison": 1103, + "croissance;": 1104, + "145.21": 1105, + "l’aménagement": 1106, + "l’urbanisme": 1107, + "permet": 1108, + "d’assujettir": 1109, + "délivrance": 1110, + "d’autorisation": 1111, + "d’occupation": 1112, + "monétaire": 1113, + "dépenses": 1114, + "liées": 1115, + "l’accroissement": 1116, + "liés": 1117, + "huggins-daines;": 1118, + "prestation": 1119, + "accrue": 1120, + "découlant": 1121, + "l’intervention": 1122, + "visée": 1123, + "assujettissant": 1124, + "certains": 1125, + "travaux": 1126, + "contribution.": 1127, + "s’applique": 1128, + "reliés": 1129, + "d’égout": 1130, + "amenant": 1131, + "traitement": 1132, + "l’usine": 1133, + "d’épuration": 1134, + "mont-rolland.": 1135, + "assujettis": 1136, + "requérant,": 1137, + "moment": 1138, + "permis,": 1139, + "l’égard": 1140, + "1°": 1141, + "unité": 1142, + "logement;": 1143, + "2°": 1144, + "l’ajout": 1145, + "logement": 1146, + "ceci,": 1147, + "excluant": 1148, + "accessoires": 1149, + "l’habitation": 1150, + "unifamiliale;": 1151, + "3°": 1152, + "non": 1153, + "résidentielle": 1154, + "nouveau": 1155, + "bâtiment": 1156, + "existant": 1157, + "agrandissement,": 1158, + "augmentant": 1159, + "conséquent": 1160, + "débit": 1161, + "théorique.": 1162, + "1324": 1163, + "–contribution": 1164, + "dépense": 1165, + "page": 1166, + "définition": 1167, + "d’unité": 1168, + "constitue": 1169, + "unité,": 1170, + "logement.": 1171, + "pièce": 1172, + "ensemble": 1173, + "pièces": 1174, + "habitation,": 1175, + "accessible": 1176, + "directement": 1177, + "l’extérieur": 1178, + "vestibule": 1179, + "corridor": 1180, + "logements,": 1181, + "complètes": 1182, + "(toilette,": 1183, + "lavabo": 1184, + "baignoire": 1185, + "douche)": 1186, + "préparer": 1187, + "repas,": 1188, + "manger": 1189, + "dormir.": 1190, + "local": 1191, + "usage": 1192, + "résidentiel,": 1193, + "rejette": 1194, + "usées": 1195, + "consomme": 1196, + "d’aqueduc.": 1197, + "classe": 1198, + "commerciale": 1199, + "hébergement": 1200, + "(c-03)": 1201, + "»": 1202, + "1314-2021-z,": 1203, + "chambre": 1204, + "location.": 1205, + "unités,": 1206, + "chambres": 1207, + "individuelles": 1208, + "habitation": 1209, + "collective": 1210, + "total": 1211, + "quotidien": 1212, + "consommation": 1213, + "rejet": 1214, + "estimé": 1215, + "1620": 1216, + "l/j.": 1217, + "considéré": 1218, + "grand": 1219, + "consommateur": 1220, + "additionnelle": 1221, + "l’atteinte": 1222, + "chaque": 1223, + "plateau": 1224, + "l/j": 1225, + "qu’elle": 1226, + "d’assainissement": 1227, + "calcul": 1228, + "l’ordre": 1229, + "ingénieurs": 1230, + "québec.": 1231, + "parallèlement,": 1232, + "grands": 1233, + "consommateurs,": 1234, + "d’unités,": 1235, + "entrainant": 1236, + "changement": 1237, + "versement": 1238, + "demandeur": 1239, + "verser,": 1240, + "émission,": 1241, + "applicable": 1242, + "d’unités.": 1243, + "substantiellement": 1244, + "référence": 1245, + "effectué.": 1246, + "advenant": 1247, + "l’annulation": 1248, + "autorisation": 1249, + "soient": 1250, + "réalisés": 1251, + "aucun": 1252, + "remboursement": 1253, + "contributions": 1254, + "versées": 1255, + "conservées": 1256, + "crédit": 1257, + "appliqué": 1258, + "subséquente": 1259, + "effectuée.": 1260, + "n’est": 1261, + "réduction": 1262, + "toutefois,": 1263, + "conservé": 1264, + "dossier,": 1265, + "l’unité": 1266, + "supprimée": 1267, + "pouvant": 1268, + "place": 1269, + "effectuer": 1270, + "servir": 1271, + "création,": 1272, + "l’aménagement,": 1273, + "réaménagement,": 1274, + "niveau,": 1275, + "équipement": 1276, + "suivantes,": 1277, + "desservent": 1278, + "visés": 1279, + "2;": 1280, + "(adoption": 1281, + ")": 1282, + "étant": 1283, + "coups": 1284, + "d’augmentation": 1285, + "capacité": 1286, + "d’infrastructure": 1287, + "indissociables": 1288, + "part": 1289, + "importante": 1290, + "rendue": 1291, + "croissance": 1292, + "l’utilisation,": 1293, + "ils": 1294, + "répartis": 1295, + "immeubles.": 1296, + "établie": 1297, + "donc": 1298, + "20%": 1299, + "coût": 1300, + "imputable": 1301, + "nouvelles": 1302, + "unités.": 1303, + "établissement": 1304, + "fond": 1305, + "dédié": 1306, + "créé,": 1307, + "compter": 1308, + "d’entrée": 1309, + "fonds": 1310, + "redevance": 1311, + "profit": 1312, + "travaux,": 1313, + "énumérés": 1314, + "indéterminée": 1315, + "compose": 1316, + "sommes": 1317, + "requérants": 1318, + "intérêts": 1319, + "qu’elles": 1320, + "produisent.": 1321, + "l’actif": 1322, + "destiné": 1323, + "exclusivement": 1324, + "financement": 1325, + "utilisé": 1326, + "l’affectation": 1327, + "équivalant": 1328, + "engagées": 1329, + "relativement": 1330, + "capital": 1331, + "échéances": 1332, + "annuelles": 1333, + "emprunt": 1334, + "contracté": 1335, + "l’exécution": 1336, + "telles": 1337, + "dépenses.": 1338, + "constate": 1339, + "surplus": 1340, + "exigée,": 1341, + "solde": 1342, + "résiduel": 1343, + "réparti": 1344, + "contribution,": 1345, + "prorata": 1346, + "montants": 1347, + "payés.": 1348, + "répartition": 1349, + "tard": 1350, + "31": 1351, + "décembre": 1352, + "l’exercice": 1353, + "financier": 1354, + "celui": 1355, + "cours": 1356, + "duquel": 1357, + "constaté.": 1358, + "exonération": 1359, + "l’exigence": 1360, + "1)": 1361, + "organisme": 1362, + "premier": 1363, + "alinéa": 1364, + "l’accès": 1365, + "organismes": 1366, + "publics": 1367, + "personnels": 1368, + "a-2.1).": 1369, + "2)": 1370, + "centre": 1371, + "petite": 1372, + "enfance": 1373, + "garde": 1374, + "éducatifs": 1375, + "l’enfance": 1376, + "s-4.1.1).": 1377, + "3)": 1378, + "reconstruction": 1379, + "détruit": 1380, + "volontairement": 1381, + "sinistre": 1382, + "n’a": 1383, + "effet": 1384, + "d’augmenter": 1385, + "d’unités": 1386, + "d’habitation": 1387, + "précédent": 1388, + "destruction,": 1389, + "conditionnellement": 1390, + "émis": 1391, + "douze": 1392, + "(12)": 1393, + "destruction.": 1394, + "4)": 1395, + "portion": 1396, + "résidentiel": 1397, + "mixte": 1398, + "abordables": 1399, + "cadre": 1400, + "programme": 1401, + "subvention": 1402, + "public.": 1403, + "validité": 1404, + "jusqu’à": 1405, + "l’abrogation": 1406, + "calculé": 1407, + "complète.": 1408, + "16e": 1409, + "mai": 1410, + "_____": 1411, + "_______": 1412, + "liée": 1413, + "».": 1414, + "______": 1415, + "codification": 1416, + "administrative": 1417, + "lecteur": 1418, + "présentes": 1419, + "avisé": 1420, + "erreur": 1421, + "omission": 1422, + "relevée": 1423, + "diminuer": 1424, + "caractère": 1425, + "exécutoire": 1426, + "amendements,": 1427, + "tels": 1428, + "sanctionnés": 1429, + "version": 1430, + "disponible": 1431, + "service": 1432, + "greffe.": 1433, + "vérifier": 1434, + "applicables,": 1435, + "pourra": 1436, + "consulter": 1437, + "officiel": 1438, + "greffe": 1439, + "mention,": 1440, + "fin": 1441, + "séquentiel": 1442, + "indique": 1443, + "original": 1444, + "fait": 1445, + "l’objet": 1446, + "alors": 1447, + "précisée": 1448, + "(règlement,": 1449, + "article).": 1450, + "1132-2010": 1451, + "afin": 1452, + "l’occupation": 1453, + "1132-2010,": 1454, + "2010,": 1455, + "entré": 1456, + "28": 1457, + "2010": 1458, + "amendé": 1459, + "": 1460, + "1132-1,": 1461, + "juin": 1462, + "2019,": 1463, + "26": 1464, + "2019": 1465, + "-": 1466, + "introductives": 1467, + "section": 1468, + "interprétation": 1469, + "1.1.1": 1470, + "mots": 1471, + "signifient": 1472, + "manière": 1473, + "paysager,": 1474, + "ouvrage": 1475, + "quelque": 1476, + "soient,": 1477, + "plantation": 1478, + "gazonnée": 1479, + "arbustive": 1480, + "qu'une": 1481, + "rocaille,": 1482, + "l'installation": 1483, + "d'objets": 1484, + "mobiliers": 1485, + "décoratifs,": 1486, + "mais": 1487, + "l'exclusion": 1488, + "dont,": 1489, + "limitative,": 1490, + "muret,": 1491, + "clôture,": 1492, + "enseigne,": 1493, + "système": 1494, + "d'irrigation": 1495, + "jeu": 1496, + "sauf": 1497, + "affecté": 1498, + "l’utilité": 1499, + "présumés,": 1500, + "faire": 1501, + "destinés": 1502, + "chemin": 1503, + "parc": 1504, + "ville,": 1505, + "ouverts": 1506, + "aménagés": 1507, + "parc;": 1508, + "sainte-": 1509, + "adèle;": 1510, + "directeur": 1511, + "désignée": 1512, + "remplacer": 1513, + "l'assister": 1514, + "entreprise": 1515, + "d'utilité": 1516, + "morale": 1517, + "droit": 1518, + "privé": 1519, + "opère": 1520, + "ouvrages": 1521, + "peuvent": 1522, + "arbitrage": 1523, + "autorité": 1524, + "gouvernementale": 1525, + "adjoint": 1526, + "occupant": 1527, + "juridique": 1528, + "immeuble,": 1529, + "d'accès": 1530, + "charretière,": 1531, + "trottoir,": 1532, + "boîte": 1533, + "lettres": 1534, + "branchement": 1535, + "l'occupant": 1536, + "stationnement": 1537, + "véhicules": 1538, + "général,": 1539, + "tarifé": 1540, + "voie": 1541, + "endroit": 1542, + "structure": 1543, + "route,": 1544, + "ruelle,": 1545, + "sentier": 1546, + "piste": 1547, + "cyclable,": 1548, + "multifonctionnelle": 1549, + "randonnée.": 1550, + "champ": 1551, + "d’application": 1552, + "1.2.1": 1553, + "quel": 1554, + "mode": 1555, + "d’acquisition,": 1556, + "état.": 1557, + "1.2.2": 1558, + "publique;": 1559, + "présumés": 1560, + "mitoyens": 1561, + "civil": 1562, + "modalités": 1563, + "d'entretien": 1564, + "établies": 1565, + "lois": 1566, + "applicables": 1567, + "ces": 1568, + "matières;": 1569, + "arbres": 1570, + "voisin": 1571, + "branches": 1572, + "racines": 1573, + "déploient": 1574, + "au-dessus": 1575, + "public,": 1576, + "s'appliquant": 1577, + "végétation;": 1578, + "l'immobilisation": 1579, + "véhicule": 1580, + "isolée": 1581, + "moyen": 1582, + "clôture": 1583, + "séparation;": 1584, + "acquis": 1585, + "vente": 1586, + "défaut": 1587, + "taxes,": 1588, + "période": 1589, + "s’exercer": 1590, + "retrait,": 1591, + "tant": 1592, + "qu’ils": 1593, + "n’ont": 1594, + "affectés": 1595, + "baux": 1596, + "consentis": 1597, + "ville;": 1598, + "événements": 1599, + "autorisés": 1600, + "maximale": 1601, + "fête": 1602, + "foraine": 1603, + "activité": 1604, + "sportive,": 1605, + "récréative,": 1606, + "communautaire": 1607, + "caritative.": 1608, + "1.2.3": 1609, + "relèvent": 1610, + "directeur.": 1611, + "1.2.4": 1612, + "émettre": 1613, + "demander": 1614, + "cesser": 1615, + "infraction": 1616, + "règlement;": 1617, + "constat": 1618, + "d'infraction": 1619, + "apparaît": 1620, + "contrevenir": 1621, + "recommander": 1622, + "recourir": 1623, + "tribunaux": 1624, + "civils": 1625, + "compétents": 1626, + "obliger": 1627, + "respect": 1628, + "avoir": 1629, + "accès,": 1630, + "carte": 1631, + "d'identité": 1632, + "officielle": 1633, + "délivrée": 1634, + "heure": 1635, + "raisonnable,": 1636, + "inspecter": 1637, + "l'aménagement,": 1638, + "l'entretien": 1639, + "exercée": 1640, + "s'assurer": 1641, + "respectées;": 1642, + "ii)": 1643, + "lieux": 1644, + "l'étude": 1645, + "d'autorisation;": 1646, + "iii)": 1647, + "recueillir": 1648, + "élément": 1649, + "photographies;": 1650, + "mesure": 1651, + "appropriée,": 1652, + "acceptable": 1653, + "déterminer": 1654, + "l'intérieur": 1655, + "exécutés": 1656, + "remédier": 1657, + "contravention": 1658, + "exiger,": 1659, + "croire": 1660, + "existe": 1661, + "danger": 1662, + "grave": 1663, + "imminent": 1664, + "l'utilisation,": 1665, + "mesures": 1666, + "immédiates": 1667, + "appropriées": 1668, + "éliminer": 1669, + "danger;": 1670, + "renseignement": 1671, + "d'établir": 1672, + "1.2.5": 1673, + "possède": 1674, + "indiqués": 1675, + "sous-paragraphes": 1676, + "a),": 1677, + "b),": 1678, + "d),": 1679, + "e),": 1680, + "f),": 1681, + "1.2.4.": 1682, + "1.2.6": 1683, + "s'appliquent,": 1684, + "adaptations": 1685, + "nécessaires,": 1686, + "mêmes": 1687, + "privée.": 1688, + "ainsi,": 1689, + "aménagements": 1690, + "constructions,": 1691, + "temporaire": 1692, + "permanente,": 1693, + "prescriptions": 1694, + "municipale": 1695, + "applicable,": 1696, + "obtention,": 1697, + "requis.": 1698, + "1.2.7": 1699, + "sévères": 1700, + "règle": 1701, + "sévère": 1702, + "préséance.": 1703, + "comportements": 1704, + "personnes": 1705, + "aménagement,": 1706, + "accordée": 1707, + "paix": 1708, + "spécifique": 1709, + "1.2.8": 1710, + "réserve": 1711, + "matière": 1712, + "dérogation": 1713, + "mineure,": 1714, + "déroger": 1715, + "normes": 1716, + "opérationnel": 1717, + "principe": 1718, + "2.1.1": 1719, + "tolérance": 1720, + "nul": 1721, + "occuper": 1722, + "installant": 1723, + "ouvrages,": 1724, + "quelconques": 1725, + "simplement": 1726, + "s’y": 1727, + "installant.": 1728, + "2.1.2": 1729, + "législation": 1730, + "riverain": 1731, + "exercer,": 1732, + "autorisation,": 1733, + "utilisée": 1734, + "l'emprise": 1735, + "front": 1736, + "lignes": 1737, + "séparatives": 1738, + "riverain.": 1739, + "2.1.3": 1740, + "occupants": 1741, + "riverains": 1742, + "prétendent": 1743, + "exercer": 1744, + "détermine,": 1745, + "tenant": 1746, + "compte": 1747, + "configuration": 1748, + "lieux,": 1749, + "l'historique": 1750, + "besoins": 1751, + "respectifs": 1752, + "occupants,": 1753, + "occupé": 1754, + "chacun.": 1755, + "requérir": 1756, + "information": 1757, + "rend": 1758, + "produisant": 1759, + "l'occasion": 1760, + "intéressés": 1761, + "d'être": 1762, + "entendus.": 1763, + "finale": 1764, + "appel.": 1765, + "2.1.4": 1766, + "obtenir": 1767, + "inconditionnelle": 1768, + "conditionnelle": 1769, + "indiquées": 1770, + "viser": 1771, + "d'occupation.": 1772, + "2.1.5": 1773, + "empêcher": 1774, + "occupation": 1775, + "tolérance.": 1776, + "uniquement": 1777, + "échec": 1778, + "2.1.3.": 1779, + "2.1.6": 1780, + "aucune": 1781, + "requise": 1782, + "installer": 1783, + "enseigne": 1784, + "électorale": 1785, + "référendaire": 1786, + "effectuée": 1787, + "défaut,": 1788, + "285.1": 1789, + "élections": 1790, + "référendums": 1791, + "municipalités.": 1792, + "2.1.7": 1793, + "accordé": 1794, + "exercé": 1795, + "obligations": 1796, + "restrictions": 1797, + "échoient": 1798, + "2.1.8": 1799, + "précaire": 1800, + "invoqué": 1801, + "constitution": 1802, + "réel": 1803, + "prescription": 1804, + "acquisitive.": 1805, + "interprété": 1806, + "priver": 1807, + "qu'elle": 1808, + "totalité": 1809, + "doivent,": 1810, + "temps,": 1811, + "accordés": 1812, + "quiconque": 1813, + "2.2.1": 1814, + "s’exerce": 1815, + "effet,": 1816, + "autorisations": 1817, + "accordées.": 1818, + "2.2.2": 1819, + "porte": 1820, + "d'accès,": 1821, + "privilège": 1822, + "d'utilisation": 1823, + "l'espace": 1824, + "occupant.": 1825, + "appartenir": 1826, + "l'occupant.": 1827, + "2.2.3": 1828, + "l'exercice": 1829, + "publique,": 1830, + "exerce": 1831, + "emprise.": 1832, + "2.2.4": 1833, + "bénéficiaire": 1834, + "d'ouvrages": 1835, + "ceux": 1836, + "prévalent": 1837, + "occupe.": 1838, + "2.2.5": 1839, + "aménagée": 1840, + "entretenue,": 1841, + "homogène": 1842, + "reste": 1843, + "ville.": 1844, + "exempte": 1845, + "nuisance": 1846, + "d'insalubrité": 1847, + "bénéficie": 1848, + "2.2.6": 1849, + "utilisés": 1850, + "occupant,": 1851, + "garnie": 1852, + "gazon,": 1853, + "d'arbres,": 1854, + "d'arbustes": 1855, + "d'autres": 1856, + "végétaux.": 1857, + "entretenir": 1858, + "procédant": 1859, + "tonte": 1860, + "pelouse,": 1861, + "taille,": 1862, + "l'élagage": 1863, + "l'abattage": 1864, + "arbres,": 1865, + "arbustes": 1866, + "2.2.7": 1867, + "garnir": 1868, + "premiers": 1869, + "trois": 1870, + "calculés": 1871, + "partir": 1872, + "bordure": 1873, + "circulation.": 1874, + "intersection,": 1875, + "triangle": 1876, + "visibilité": 1877, + "s’appliquent": 1878, + "l'emplacement": 1879, + "projection": 1880, + "conduite": 1881, + "souterraine": 1882, + "vanne": 1883, + "d'arrêt": 1884, + "extérieure,": 1885, + "puisard": 1886, + "d'égout": 1887, + "municipal;": 1888, + "borne": 1889, + "d’incendie.": 1890, + "2.2.8": 1891, + "temps": 1892, + "manière,": 1893, + "permission": 1894, + "expresse": 1895, + "autrement": 1896, + "altérer": 1897, + "installé": 1898, + "2.2.9": 1899, + "faits": 1900, + "susceptibles": 1901, + "nuire": 1902, + "opérations": 1903, + "déneigement": 1904, + "2.2.9.1": 1905, + "remplacer,": 1906, + "spécifiques": 1907, + "ponctuels": 1908, + "(ponceau": 1909, + "autre)": 1910, + "mal": 1911, + "entretenu": 1912, + "devenu": 1913, + "vétuste": 1914, + "l’écoulement": 1915, + "2.2.9.2": 1916, + "aviser": 1917, + "l’occupant": 1918, + "l’équipement": 1919, + "remplacé": 1920, + "estimation": 1921, + "remplacement": 1922, + "occasionnera": 1923, + "l’occupant;": 1924, + "2.2.9.3": 1925, + "réaliser": 1926, + "directeur,": 1927, + "2.2.9.4": 1928, + "respectés": 1929, + "l’occupant,": 1930, + "réalise": 1931, + "2.2.9.5": 1932, + "contiguë": 1933, + "prolongation": 1934, + "979": 1935, + "code": 1936, + "entretenus,": 1937, + "devenus": 1938, + "vétustes": 1939, + "remplacés": 1940, + "assumés": 1941, + "2.2.9.6": 1942, + "pareil": 1943, + "mandataire,": 1944, + "acheminer": 1945, + "facture": 1946, + "représentant": 1947, + "totaux": 1948, + "finaux": 1949, + "drainage;": 1950, + "2.2.9.7": 1951, + "suivi": 1952, + "perception": 1953, + "dus": 1954, + "d’infractions": 1955, + "3.3.2": 1956, + "3.3.3": 1957, + "2.2.10": 1958, + "superficiaire": 1959, + "érigée": 1960, + "l'occupant,": 1961, + "l'obtention": 1962, + "effet.": 1963, + "2.2.11": 1964, + "laisser": 1965, + "pousser": 1966, + "arbre": 1967, + "dégagement": 1968, + "interdictions": 1969, + "2.2.12": 1970, + "installée": 1971, + "mètre": 1972, + "béton,": 1973, + "pavage": 1974, + "roulement.": 1975, + "2.2.13": 1976, + "abris": 1977, + "d'autos": 1978, + "garages": 1979, + "temporaires": 1980, + "qu'en": 1981, + "lorsqu'ils": 1982, + "autorisés,": 1983, + "moyennant": 1984, + "réglementation,": 1985, + "installés": 1986, + "2.2.14": 1987, + "concerne": 1988, + "tiers": 1989, + "responsable": 1990, + "dommage": 1991, + "biens,": 1992, + "résulte": 1993, + "utilisation": 1994, + "manquement": 1995, + "obligations,": 1996, + "occupe": 1997, + "2.2.15": 1998, + "veut": 1999, + "utiliser": 2000, + "égard.": 2001, + "2.3.1": 2002, + "permanent.": 2003, + "temporaire,": 2004, + "an.": 2005, + "permanent,": 2006, + "an": 2007, + "plus.": 2008, + "cas,": 2009, + "signification": 2010, + "adoptée": 2011, + "fin.": 2012, + "2.3.2": 2013, + "2.3.10,": 2014, + "délivré": 2015, + "2.3.3": 2016, + "prend": 2017, + "indiquée": 2018, + "annexe": 2019, + "l'est": 2020, + "l'annexe": 2021, + "b": 2022, + "jointes": 2023, + "intégrante.": 2024, + "lorsqu'elle": 2025, + "dernière": 2026, + "suivante,": 2027, + "l'introduction": 2028, + "d'usage": 2029, + "permanente": 2030, + "________________,": 2031, + "indiquées;": 2032, + "signer": 2033, + "inscrire": 2034, + "registre": 2035, + "xxx": 2036, + "2.3.4": 2037, + "porter": 2038, + "espace": 2039, + "aérien,": 2040, + "emplacement": 2041, + "souterrain": 2042, + "combinaison": 2043, + "ceux-ci.": 2044, + "comporte,": 2045, + "indiquées,": 2046, + "l'utilité": 2047, + "visée.": 2048, + "2.3.5": 2049, + "accordée,": 2050, + "remisage": 2051, + "matériaux,": 2052, + "d'équipements": 2053, + "démolition,": 2054, + "déplacement,": 2055, + "rénovation": 2056, + "ouvrage;": 2057, + "empiétement": 2058, + "construction;": 2059, + "ouvrage,": 2060, + "accessoire": 2061, + "infrastructure,": 2062, + "entièrement": 2063, + "(poteau,": 2064, + "prise": 2065, + "puits,": 2066, + "muret);": 2067, + "accessoire,": 2068, + "poste": 2069, + "pompage": 2070, + "d'incendie);": 2071, + "voirie": 2072, + "transport": 2073, + "biens;": 2074, + "digue,": 2075, + "barrage,": 2076, + "quai,": 2077, + "débarcadère": 2078, + "plate-forme": 2079, + "d'amarrage;": 2080, + "dispositif": 2081, + "d'éclairage": 2082, + "issue": 2083, + "secours;": 2084, + "drapeau,": 2085, + "affiche,": 2086, + "bannière,": 2087, + "auvent,": 2088, + "poteaux": 2089, + "servant": 2090, + "supporter": 2091, + "d'affichage;": 2092, + "fil": 2093, + "aérien": 2094, + "longeant": 2095, + "traversant": 2096, + "immeuble;": 2097, + "motorisés": 2098, + "sous-paragraphe": 2099, + "d);": 2100, + "l)": 2101, + "bénéficie;": 2102, + "exercice": 2103, + "passage": 2104, + "rendre": 2105, + "enclavée": 2106, + "physiquement": 2107, + "économiquement.": 2108, + "2.3.6": 2109, + "personnel.": 2110, + "incessibles.": 2111, + "tiers,": 2112, + "décès,": 2113, + "déménagement,": 2114, + "faillite": 2115, + "liquidation,": 2116, + "abandon": 2117, + "constitutif": 2118, + "cessation": 2119, + "entraînent": 2120, + "nullité.": 2121, + "cédés": 2122, + "transférés": 2123, + "cédant": 2124, + "libéré": 2125, + "lorsque": 2126, + "inscrite": 2127, + "2.3.7": 2128, + "accordant": 2129, + "précise": 2130, + "jugées": 2131, + "utiles": 2132, + "l'intérêt": 2133, + "salubrité,": 2134, + "d'esthétique.": 2135, + "2.3.8": 2136, + "paragraphes": 2137, + "effectuant": 2138, + "réserve,": 2139, + "particularités": 2140, + "imposant": 2141, + "sévères.": 2142, + "2.3.9": 2143, + "discrétionnaire.": 2144, + "n'ont": 2145, + "motiver": 2146, + "l'accorder.": 2147, + "2.3.10": 2148, + "justifie,": 2149, + "soumettre": 2150, + "dernier.": 2151, + "2.3.11": 2152, + "renouvelée": 2153, + "comporter": 2154, + "d'exercice": 2155, + "antérieure.": 2156, + "dossier": 2157, + "2.4.1": 2158, + "complétant": 2159, + "formulaire": 2160, + "fournissant": 2161, + "payant": 2162, + "tarif": 2163, + "établi.": 2164, + "examine": 2165, + "observations": 2166, + "indiquant,": 2167, + "devraient": 2168, + "apparaître": 2169, + "observations,": 2170, + "permis;": 2171, + "employé": 2172, + "d'obtenir": 2173, + "commentaires": 2174, + "pertinents.": 2175, + "2.4.2": 2176, + "vérifie": 2177, + "géographiques": 2178, + "voisinage;": 2179, + "délimitation": 2180, + "bénéficiera": 2181, + "l'autorisation;": 2182, + "municipale;": 2183, + "préjudice": 2184, + "susceptible": 2185, + "causé": 2186, + "voisins;": 2187, + "risques": 2188, + "salubrité": 2189, + "l'environnement;": 2190, + "l'insertion": 2191, + "l'ouvrage": 2192, + "l'usage": 2193, + "projeté": 2194, + "infrastructures,": 2195, + "localisés": 2196, + "proximité": 2197, + "pourraient": 2198, + "nécessiter": 2199, + "l'utilisation": 2200, + "pertinente": 2201, + "tenu": 2202, + "2.4.3": 2203, + "identifie": 2204, + "apparaissent": 2205, + "pertinentes": 2206, + "dresse": 2207, + "l'invitant": 2208, + "étudier": 2209, + "formulaires": 2210, + "joints": 2211, + "présente": 2212, + "2.4.4": 2213, + "exigé,": 2214, + "préalable": 2215, + "provenant": 2216, + "justifie;": 2217, + "garantie": 2218, + "financière": 2219, + "d'assurer": 2220, + "réparation": 2221, + "détérioré": 2222, + "état": 2223, + "protéger": 2224, + "conséquences": 2225, + "dommages": 2226, + "imputables": 2227, + "l'occupation.": 2228, + "déterminés": 2229, + "l'autorisation,": 2230, + "voisinage": 2231, + "encourus": 2232, + "l'autorisation.": 2233, + "garanties": 2234, + "semblables": 2235, + "données": 2236, + "faveur": 2237, + "elles": 2238, + "l'origine.": 2239, + "2.4.5": 2240, + "l'on": 2241, + "pratiquer": 2242, + "tranchée": 2243, + "excavation,": 2244, + "enlever": 2245, + "poteau,": 2246, + "poser,": 2247, + "réparer": 2248, + "égout,": 2249, + "d'eau": 2250, + "raison,": 2251, + "payer": 2252, + "jusqu'à": 2253, + "terminés,": 2254, + "sujet": 2255, + "matière.": 2256, + "2.4.6": 2257, + "doit,": 2258, + "localisation,": 2259, + "technique": 2260, + "arpenteur-géomètre,": 2261, + "public;": 2262, + "plans,": 2263, + "devis,": 2264, + "tests": 2265, + "requis,": 2266, + "professionnel;": 2267, + "gouvernementale.": 2268, + "2.4.7": 2269, + "tarifs": 2270, + "décrétés": 2271, + "2.5.1": 2272, + "tenir": 2273, + "modèle": 2274, + "joint": 2275, + "c": 2276, + "sections": 2277, + "séparées": 2278, + "accordées": 2279, + "résolution.": 2280, + "desquels": 2281, + "2.5.2": 2282, + "constitué": 2283, + "dispose": 2284, + "archives.": 2285, + "2.5.3": 2286, + "dossiers": 2287, + "consultés": 2288, + "l'accès": 2289, + "personnels.": 2290, + "intervention": 2291, + "2.6.1": 2292, + "employés": 2293, + "mandatées": 2294, + "pénétrer": 2295, + "emprise": 2296, + "occupée": 2297, + "relevés,": 2298, + "inspections": 2299, + "2.6.2": 2300, + "transmettre": 2301, + "d’enlever": 2302, + "déplacer": 2303, + "objet,": 2304, + "démolir": 2305, + "remettre": 2306, + "état,": 2307, + "immobilisations,": 2308, + "applicable.": 2309, + "2.6.3": 2310, + "semblable": 2311, + "transmis": 2312, + "prévaloir": 2313, + "2.6.4": 2314, + "déterminé": 2315, + "objet.": 2316, + "d'urgence.": 2317, + "2.6.5": 2318, + "n'étant": 2319, + "trouvant": 2320, + "d'y": 2321, + "procéder": 2322, + "lui-même": 2323, + "imparti": 2324, + "3.2.2,": 2325, + "déplacé,": 2326, + "enlevé": 2327, + "démoli": 2328, + "remis": 2329, + "2.6.6": 2330, + "préavis,": 2331, + "possession": 2332, + "usages": 2333, + "définitivement,": 2334, + "l'exécution": 2335, + "trente": 2336, + "l'occupation,": 2337, + "relevé": 2338, + "détaillé": 2339, + "accompagné,": 2340, + "justificatives,": 2341, + "avant": 2342, + "terme.": 2343, + "s'entendent": 2344, + "réclamation,": 2345, + "arbitrage,": 2346, + "convenu": 2347, + "d'arbitrage": 2348, + "l'arbitre.": 2349, + "2.6.7": 2350, + "préavis": 2351, + "indiqué": 2352, + "d'urgence,": 2353, + "moindre": 2354, + "quatre-vingt-dix": 2355, + "indéterminée.": 2356, + "courrier": 2357, + "recommandé": 2358, + "l'attention": 2359, + "coordonnées": 2360, + "rôle": 2361, + "2.6.8": 2362, + "2.6.5,": 2363, + "l'avis.": 2364, + "libérer": 2365, + "date.": 2366, + "2.6.9": 2367, + "indemnité": 2368, + "compensation": 2369, + "due": 2370, + "causés": 2371, + "paysagers": 2372, + "reprendre": 2373, + "paysagers,": 2374, + "érigé": 2375, + "révoquée": 2376, + "sous-": 2377, + "3.3.1": 2378, + "illégalement;": 2379, + "renonciation": 2380, + "d'indemnité.": 2381, + "2.6.10": 2382, + "ait": 2383, + "dénoncé": 2384, + "appartient": 2385, + "riverain,": 2386, + "présume": 2387, + "appartiennent": 2388, + "seul": 2389, + "donnent": 2390, + "ouverture.": 2391, + "2.6.11": 2392, + "omet": 2393, + "refuse": 2394, + "d'enlever": 2395, + "l'expiration": 2396, + "imparti,": 2397, + "propriétaire,": 2398, + "l'indemnité": 2399, + "compensation.": 2400, + "2.6.12": 2401, + "n'intervient": 2402, + "présumée": 2403, + "renoncer": 2404, + "libération": 2405, + "quitter": 2406, + "délaisser": 2407, + "accepter": 2408, + "reconduction": 2409, + "tacite": 2410, + "3.1.1": 2411, + "mineure": 2412, + "présence": 2413, + "ouverture,": 2414, + "existante": 2415, + "venir.": 2416, + "3.1.2": 2417, + "municipalisation": 2418, + "équipement,": 2419, + "cessionnaire": 2420, + "conserver": 2421, + "cédé": 2422, + "n'affecte": 2423, + "destination": 2424, + "municipalisé.": 2425, + "comporte": 2426, + "préservé": 2427, + "superficiaire.": 2428, + "acceptant": 2429, + "prévoir": 2430, + "particulière": 2431, + "éviter": 2432, + "l'affectation": 2433, + "cédé,": 2434, + "restreinte": 2435, + "compromise": 2436, + "point": 2437, + "atteinte": 2438, + "affectation.": 2439, + "tréfonds": 2440, + "3.1.3": 2441, + "l'obligation": 2442, + "seule": 2443, + "certificat.": 2444, + "soustrait": 2445, + "3.2.1": 2446, + "néglige": 2447, + "remplir": 2448, + "cesse": 2449, + "d'occuper": 2450, + "soixante": 2451, + "remédié": 2452, + "défaillance": 2453, + "identifiée": 2454, + "prescrits": 2455, + "manque": 2456, + "quelconque": 2457, + "obligations.": 2458, + "3.2.2": 2459, + "spécifié,": 2460, + "admis": 2461, + "conformé": 2462, + "directives": 2463, + "respecte": 2464, + "quatre": 2465, + "ensuite,": 2466, + "continue": 2467, + "diligence": 2468, + "fournit": 2469, + "calendrier": 2470, + "raisonnable": 2471, + "correction": 2472, + "remédie": 2473, + "complètement": 2474, + "maintient": 2475, + "vigueur,": 2476, + "l'accomplissement": 2477, + "3.2.3": 2478, + "utiles,": 2479, + "cumulativement": 2480, + "alternativement,": 2481, + "recours,": 2482, + "reprise": 2483, + "2.6.8,": 2484, + "confisquer": 2485, + "s'en": 2486, + "approprier": 2487, + "somme": 2488, + "compléter": 2489, + "correctifs": 2490, + "proportionnel": 2491, + "inappliqués": 2492, + "sanctions": 2493, + "civiles": 2494, + "pénales": 2495, + "révoquer": 2496, + "erreur;": 2497, + "trouvée": 2498, + "coupable": 2499, + "n'aurait": 2500, + "l'information": 2501, + "fournie": 2502, + "avait": 2503, + "juste;": 2504, + "n'y": 2505, + "permettent": 2506, + "applicables.": 2507, + "commet": 2508, + "infraction,": 2509, + "qui,": 2510, + "utilise": 2511, + "illégalement": 2512, + "autorise": 2513, + "illégale": 2514, + "exécute": 2515, + "exécuter": 2516, + "d'occupation;": 2517, + "sciemment": 2518, + "erronées": 2519, + "entrave": 2520, + "tente": 2521, + "d'entraver": 2522, + "chargée": 2523, + "fonctions;": 2524, + "contrevient": 2525, + "passible": 2526, + "amende": 2527, + "frais.": 2528, + "inférieur": 2529, + "400": 2530, + "$": 2531, + "excéder": 2532, + "000": 2533, + "contrevenant": 2534, + "physique": 2535, + "respectivement": 2536, + "800": 2537, + "morale.": 2538, + "récidive": 2539, + "mois,": 2540, + "continue,": 2541, + "constitue,": 2542, + "jour,": 2543, + "distincte.": 2544, + "3.3.4": 2545, + "devant": 2546, + "civile,": 2547, + "opportun": 2548, + "ce,": 2549, + "indépendamment": 2550, + "constats": 2551, + "d’infraction": 2552, + "pénal": 2553, + "puissent": 2554, + "aussi": 2555, + "délivrés": 2556, + "révocation": 2557, + "pu": 2558, + "transitoires": 2559, + "3.4.1": 2560, + "3.4.2": 2561, + "voirie,": 2562, + "servitude": 2563, + "expiration": 2564, + "terminaison": 2565, + "prescrites": 2566, + "l'autorité": 2567, + "3.4.3": 2568, + "légalement": 2569, + "constituée": 2570, + "siège": 2571, + "1381,": 2572, + "boulevard": 2573, + "xxx-2010,": 2574, + "complété": 2575, + "appelée": 2576, + "appelé": 2577, + "but": 2578, + "permettre": 2579, + ".": 2580, + "précisions": 2581, + "2.1": 2582, + "valide": 2583, + "commençant": 2584, + "_________": 2585, + "terminant": 2586, + "___________.": 2587, + "2.2": 2588, + "2.3": 2589, + "renouvelable": 2590, + "automatiquement.": 2591, + "cependant,": 2592, + "solliciter": 2593, + "autorisation.": 2594, + "2.4": 2595, + "délimité": 2596, + "2.5": 2597, + "activités": 2598, + "3.2": 2599, + "durant": 2600, + "accordée;": 2601, + "3.3": 2602, + "informer": 2603, + "empiètement": 2604, + "causée": 2605, + "3.4": 2606, + "obtenir,": 2607, + "ministère": 2608, + "concerné": 2609, + "autorisée;": 2610, + "3.5": 2611, + "bon": 2612, + "propreté;": 2613, + "3.6": 2614, + "n'entreposer": 2615, + "liquide": 2616, + "dangereux": 2617, + "déverser": 2618, + "contaminant;": 2619, + "3.7": 2620, + "entourer": 2621, + "suivante": 2622, + "3.8": 2623, + "afficher": 2624, + "signalisation": 2625, + "3.9": 2626, + "dégager": 2627, + "responsabilité": 2628, + "reliée": 2629, + "occupation;": 2630, + "3.10": 2631, + "police": 2632, + "d'assurance": 2633, + "civile": 2634, + "1,000,000$,": 2635, + "indiquer": 2636, + "d’assurée": 2637, + "additionnelle.": 2638, + "3.11": 2639, + "compensations,": 2640, + "tarifications": 2641, + "exigibles": 2642, + "l'immeuble;": 2643, + "3.12": 2644, + "inspecteur": 2645, + "occupés": 2646, + "voir": 2647, + "municipaux;": 2648, + "3.13": 2649, + "d'exécution": 2650, + "d'intérêt": 2651, + "réclamation;": 2652, + "3.14": 2653, + "préparer,": 2654, + "3.15": 2655, + "acquitter": 2656, + "50$": 2657, + "d'occupation,": 2658, + "taxes;": 2659, + "3.16": 2660, + "d'expiration": 2661, + "aménagements,": 2662, + "objets,": 2663, + "autorisation;": 2664, + "3.17": 2665, + "acquitter,": 2666, + "d'entretien;": 2667, + "3.18": 2668, + "permet,": 2669, + "permettra": 2670, + "d'utiliser": 2671, + "autorisées": 2672, + "restreindre": 2673, + "compromettre": 2674, + "acceptation": 2675, + "5.1": 2676, + "reconnaît": 2677, + "signant": 2678, + "5.1.1": 2679, + "autorités": 2680, + "gouvernementales": 2681, + "municipales": 2682, + "5.1.2": 2683, + "pertinente,": 2684, + "s'engage": 2685, + "respecter;": 2686, + "5.1.3": 2687, + "dégage": 2688, + "5.1.4": 2689, + "fiscalité": 2690, + "l'assujettir": 2691, + "d'imposition": 2692, + "5.1.5": 2693, + "terme": 2694, + "5.1.6": 2695, + "deviendra": 2696, + "enlever;": 2697, + "5.1.7": 2698, + "procéder,": 2699, + "l'enlèvement": 2700, + "l'a": 2701, + "renonce": 2702, + "conséquence": 2703, + "contre": 2704, + "5.1.8": 2705, + "cas;": 2706, + "5.1.9": 2707, + "incessible": 2708, + "nulle": 2709, + "décède,": 2710, + "déménage": 2711, + "cède": 2712, + "faillite,": 2713, + "liquidation": 2714, + "morale,": 2715, + "échéant.": 2716, + "foi": 2717, + "quoi,": 2718, + "__________________": 2719, + "________________________________": 2720, + "(la": 2721, + "établit": 2722, + "l'existence": 2723, + "l'autorisation)": 2724, + "je": 2725, + "m'engage,": 2726, + "document,": 2727, + "_________________________________": 2728, + "(représentant,": 2729, + "échéant": 2730, + "suivante)": 2731, + "n°": 2732, + "xxxx-xxxx": 2733, + "____________": 2734, + "________________________.": 2735, + "applicable;": 2736, + "1,000,000$": 2737, + "100$,": 2738, + "annuellement,": 2739, + "taxes": 2740, + "document.": 2741, + "objets": 2742, + "cas.": 2743, + "_________________________": 2744, + "_______________________": 2745, + "1144-2010": 2746, + "20h,": 2747, + "mesdames": 2748, + "nadine": 2749, + "brière": 2750, + "lise": 2751, + "gendron": 2752, + "john": 2753, + "butler": 2754, + "robert": 2755, + "lagacé": 2756, + "pierre": 2757, + "morabito": 2758, + "réjean": 2759, + "charbonneau.": 2760, + "1144-2010.": 2761, + "décret": 2762, + "canin": 2763, + "aménagé": 2764, + "claude-cardinal.": 2765, + "gendron.": 2766, + "que,": 2767, + "claude-cardinal,": 2768, + "respectées": 2769, + "chien": 2770, + "gardien": 2771, + "celui-ci,": 2772, + "appert": 2773, + "l’annexe": 2774, + "minimale": 2775, + "cent": 2776, + "dollars": 2777, + "(100$)": 2778, + "première": 2779, + "physique,": 2780, + "cinq": 2781, + "(500$)": 2782, + "minimum": 2783, + "cents": 2784, + "(300$)": 2785, + "mille": 2786, + "(1,000$)": 2787, + "l’une": 2788, + "offense": 2789, + "séparée": 2790, + "ajoutés": 2791, + "l’amende": 2792, + "imposée.": 2793, + "judiciaires": 2794, + "s’imposent": 2795, + "accumulé": 2796, + "infractions": 2797, + "automatiquement": 2798, + "interdit": 2799, + "d’accès": 2800, + "canin.": 2801, + "2010-384": 2802, + "conseillère:": 2803, + "mme": 2804, + "résplu": 2805, + "l'unanimité·": 2806, + "j": 2807, + ".octobre": 2808, + "!!'y~a..dmi$": 2809, + "parç": 2810, + "canin,": 2811, + "1!~..;...:.u...:l!o~urlëtre!t!!\"": 2812, + "âgé": 2813, + "mois;": 2814, + "gardien;": 2815, + "titulaire": 2816, + "licence": 2817, + "émise": 2818, + "laisse": 2819, + "chiens.": 2820, + "ardien": 2821, + "doit:": 2822, + "r": 2823, + ",": 2824, + "ans;": 2825, + "chiens": 2826, + "gardien,": 2827, + "canin;": 2828, + "s'abstenir": 2829, + "d'accompagner": 2830, + "animal": 2831, + "montre": 2832, + "signes,": 2833, + "d'agressivité;": 2834, + "toujours": 2835, + "main,": 2836, + ",en": 2837, + "d'intervenir": 2838, + "rapidement": 2839, + "chien,": 2840, + "besoin;": 2841, + "usagers": 2842, + "qappements": 2843, + "excessifs,": 2844, + "bris": 2845, + "matériel,": 2846, + "trous": 2847, + "agressivité);": 2848, + "ramasser,": 2849, + "délai,": 2850, + "excréments": 2851, + "placer": 2852, + "sac": 2853, + "jeter": 2854, + "poubelles": 2855, + "effet;": 2856, + "lancer": 2857, + "jouer": 2858, + "•": 2859, + "sont·": 2860, + "letdits,": 2861, + "'": 2862, + "dressés": 2863, + "l'attaque": 2864, + "démontrés": 2865, + "l'agressivité;": 2866, + "femelles": 2867, + "chaleur": 2868, + "atteints": 2869, + "maladies": 2870, + "contagieuses": 2871, + "para": 2872, + "sitaires;": 2873, + "enfants": 2874, + "âgés": 2875, + "ans,": 2876, + "accompagnés": 2877, + "parent": 2878, + "adulte": 2879, + "respon": 2880, + "sable;": 2881, + "lien": 2882, + "direct": 2883, + "vocation": 2884, + "risque": 2885, + "d'endommager": 2886, + "canin:": 2887, + "vélos,": 2888, + "poussettes,": 2889, + "etc.;": 2890, + "contenants": 2891, + "verre;": 2892, + "nourüure": 2893, + "boisson;": 2894, + "chien.": 2895, + "esponsabilité": 2896, + "j,.": 2897, + "__": 2898, + "..........": 2899, + "utilisateurs": 2900, + "responsables": 2901, + "leurs'": 2902, + "animaux.": 2903, + "tient": 2904, + "aucunement": 2905, + "animaux": 2906, + "utiliseront": 2907, + "ledit": 2908, + "parc.": 2909, + "comté": 2910, + "1174-2012": 2911, + "2012": 2912, + "roch": 2913, + "bédard": 2914, + "1174-2012.": 2915, + "décrétant": 2916, + "l'interdiction": 2917, + "fumer": 2918, + "parcs": 2919, + "verts,": 2920, + "plage": 2921, + "jean-guy-caron.": 2922, + "août": 2923, + "morabito.": 2924, + "ordonnée": 2925, + "jean-guy-caron": 2926, + "l'étendue": 2927, + "desdits": 2928, + "décrété": 2929, + "vendre": 2930, + "tabac": 2931, + "endroits": 2932, + "nommer": 2933, + "identifier": 2934, + "catégories": 2935, + "fonctions": 2936, + "d'inspecteur": 2937, + "procède": 2938, + "municipalité": 2939, + "ministre": 2940, + "santé": 2941, + "sociaux": 2942, + "l'inspecteur": 2943, + "s'identifier": 2944, + "exhiber": 2945, + "requiert,": 2946, + "attestant": 2947, + "décrétées": 2948, + "acte": 2949, + "nomination.": 2950, + "deux-rives": 2951, + "ltée": 2952, + "ceux-ci": 2953, + "dès": 2954, + "nommés": 2955, + "d'inspecteurs": 2956, + "faire.": 2957, + "100$": 2958, + "300$": 2959, + "récidive,": 2960, + "200$": 2961, + "600$.": 2962, + "sus.": 2963, + "l'amende": 2964, + "imposés": 2965, + "prescrit,": 2966, + "établis": 2967, + "pénale": 2968, + "2012-249": 2969, + "simtl!llbrc": 2970, + "compilation": 2971, + "mention": 2972, + "modifié": 2973, + "précisée.": 2974, + "1176-2012": 2975, + "ventes": 2976, + "bazars": 2977, + "1176-2012,": 2978, + "2012,": 2979, + "24": 2980, + "1176-1,": 2981, + "juillet": 2982, + "2013,": 2983, + "2013": 2984, + "1176-2012.": 2985, + "garage": 2986, + "bédard.": 2987, + "i": 2988, + "préliminaires": 2989, + "s’intitule": 2990, + "régir": 2991, + "ii": 2992, + "l’interprétation": 2993, + "résultant": 2994, + "disposition,": 2995, + "expressions": 2996, + "suivent,": 2997, + "savoir": 2998, + "bazar": 2999, + "désigne": 3000, + "d’objets": 3001, + "lucratif": 3002, + "constitué,": 3003, + "limitée,": 3004, + "immobilière.": 3005, + "désignent": 3006, + "immobilière": 3007, + "résidentielle.": 3008, + "l’exposition": 3009, + "domestiques": 3010, + "exposés": 3011, + "n’excède": 3012, + "normaux": 3013, + "occupants.": 3014, + "sainte-adèle;": 3015, + "iii": 3016, + "l’application,": 3017, + "surveillance": 3018, + "fonctionnaires": 3019, + "désignés": 3020, + "adjoints": 3021, + "chargés": 3022, + "d’aider": 3023, + "émettre,": 3024, + "pénale,": 3025, + "générale": 3026, + "résidence": 3027, + "vente.": 3028, + "fait,": 3029, + "garage,": 3030, + "d’empiéter": 3031, + "voisine,": 3032, + "vacant.": 3033, + "bazar,": 3034, + "périodes": 3035, + "samedis": 3036, + "dimanches": 3037, + "troisième": 3038, + "(3e)": 3039, + "semaine": 3040, + "deuxième": 3041, + "(2e)": 3042, + "année.": 3043, + "art": 3044, + "1176-1": 3045, + "horaire": 3046, + "qu’entre": 3047, + "huit": 3048, + "heures": 3049, + "(8": 3050, + "dix-huit": 3051, + "(18": 3052, + "jour.": 3053, + "report": 3054, + "pluie": 3055, + "d’autres": 3056, + "climatiques": 3057, + "défavorables": 3058, + "empêchent": 3059, + "reportée": 3060, + "publicité": 3061, + "affichage": 3062, + "l’affichage": 3063, + "annonçant": 3064, + "strictes": 3065, + "panneau": 3066, + "publicitaire": 3067, + "0,5": 3068, + "m²": 3069, + "autorisé;": 3070, + "installation": 3071, + "bazar;": 3072, + "empiéter": 3073, + "mercredi": 3074, + "précédant": 3075, + "retiré": 3076, + "implanté": 3077, + "automobilistes": 3078, + "personnes;": 3079, + "peines": 3080, + "quiconque,": 3081, + "tenir,": 3082, + "autoriser": 3083, + "tolérer": 3084, + "deux": 3085, + "(200": 3086, + "$),": 3087, + "récidives": 3088, + "ans": 3089, + "doublé": 3090, + "fonction": 3091, + "imposé,": 3092, + "maximum": 3093, + "(1": 3094, + "$).": 3095, + "continues": 3096, + "15.": 3097, + "constituent,": 3098, + "distincte": 3099, + "imposée": 3100, + "dure": 3101, + "l'infraction.": 3102, + "iv": 3103, + "transitoire": 3104, + "16.": 3105, + "932-1998.": 3106, + "17.": 3107, + "anciennes": 3108, + "n’affecte": 3109, + "intentées": 3110, + "l’empire": 3111, + "remplacé,": 3112, + "lesquelles": 3113, + "n’auraient": 3114, + "encore": 3115, + "pourront": 3116, + "continuer": 3117, + "l’autorité": 3118, + "jugement": 3119, + "final": 3120, + "exécution.": 3121, + "18.": 3122, + "2012-275": 3123, + "conseiller:": 3124, + "charbonneau": 3125, + "rousseau": 3126, + "__________________________": 3127, + "charbonneau,": 3128, + "1251": 3129, + "rémunération": 3130, + "1251,": 3131, + "janvier": 3132, + "2018,": 3133, + "2018": 3134, + "1251-1,": 3135, + "élus": 3136, + "(compilation": 3137, + "1251-1)": 3138, + "fixe": 3139, + "base": 3140, + "annuelle": 3141, + "exercices": 3142, + "financiers": 3143, + "suivants.": 3144, + "fixée": 3145, + "64": 3146, + "873": 3147, + "864": 3148, + "$.": 3149, + "allocation": 3150, + "t-11.001)": 3151, + "versée": 3152, + "1630": 3153, + "comités": 3154, + "": 3155, + "urbanisme": 3156, + "environnement": 3157, + "l’administration,": 3158, + "participation": 3159, + "d’administration": 3160, + "commerce": 3161, + "division": 3162, + "génie": 3163, + "incendie": 3164, + "loisirs,": 3165, + "plein": 3166, + "air,": 3167, + "air": 3168, + "culture,": 3169, + "art,": 3170, + "bibliothèque,": 3171, + "aînés": 3172, + "famille": 3173, + "suppléant": 3174, + "mensuelle": 3175, + "suppléant,": 3176, + "200": 3177, + "dépasse": 3178, + "reçoit": 3179, + "additionnelle,": 3180, + "31e": 3181, + "égale": 3182, + "période.": 3183, + "second": 3184, + "impossibilité": 3185, + "d’occuper": 3186, + "fonctions.": 3187, + "transition": 3188, + "occupées": 3189, + "vingt-quatre": 3190, + "(24)": 3191, + "précèdent": 3192, + "mandat.": 3193, + "l’allocation": 3194, + "t-11-001).": 3195, + "comprend,": 3196, + "l’établissement": 3197, + "transition,": 3198, + "verse": 3199, + "supramunicipal.": 3200, + "(90)": 3201, + "vacance": 3202, + "maire.": 3203, + "indexation": 3204, + "rémunérations": 3205, + "additionnelles": 3206, + "augmentées": 3207, + "1%": 3208, + "1er": 3209, + "augmentation": 3210, + "remplacée": 3211, + "moyenne": 3212, + "arithmétique": 3213, + "indices": 3214, + "mensuels": 3215, + "prix": 3216, + "publiés": 3217, + "statistique": 3218, + "canada": 3219, + "région": 3220, + "montréal": 3221, + "l’année": 3222, + "l’augmentation.": 3223, + "formule": 3224, + "ipc": 3225, + "trouve": 3226, + "seulement": 3227, + "l’indice": 3228, + "excède": 3229, + "0,25": 3230, + "augmentations": 3231, + "salaires": 3232, + "suivant,": 3233, + "supplémentaire": 3234, + "l’augmentation": 3235, + "annuelle.": 3236, + "rétroactivité": 3237, + "effectif": 3238, + "rétroactif": 3239, + "abrogation": 3240, + "abroge": 3241, + "1035-2003,": 3242, + "1035-a-2006": 3243, + "1035-a-": 3244, + "2010.": 3245, + "vidéoconférence": 3246, + "2021": 3247, + "lafond": 3248, + "martin": 3249, + "jolicoeur": 3250, + "frédérike": 3251, + "cavezzali": 3252, + "bélisle": 3253, + "absent": 3254, + "brière.": 3255, + "déconnecté": 3256, + "zoom;": 3257, + "volonté": 3258, + "renforcer": 3259, + "d’eau": 3260, + "face": 3261, + "menace": 3262, + "posée": 3263, + "espèces": 3264, + "envahissantes;": 3265, + "déclarent": 3266, + "lu": 3267, + "renoncent": 3268, + "lecture,": 3269, + "villes;": 3270, + "déclaratoires": 3271, + "préambule": 3272, + "intégrante": 3273, + "réglementer": 3274, + "embarcations": 3275, + "prévenir": 3276, + "l’envahissement": 3277, + "exotiques": 3278, + "envahissantes,": 3279, + "d’assurer": 3280, + "maintien": 3281, + "l’utilisation": 3282, + "sécuritaire": 3283, + "définitions": 3284, + "contrôleur": 3285, + "agent": 3286, + "paix,": 3287, + "appliquer": 3288, + "municipale.": 3289, + "l’eau": 3290, + "embarcation": 3291, + "1306": 3292, + "sainte-adèle–": 3293, + "(adoption)page": 3294, + "appareil,": 3295, + "flottante,": 3296, + "munis": 3297, + "moteur": 3298, + "déplacent": 3299, + "l’eau.": 3300, + "espèce": 3301, + "exotique": 3302, + "envahissante": 3303, + "croissant": 3304, + "hors": 3305, + "aire": 3306, + "distribution": 3307, + "naturelle": 3308, + "devenir": 3309, + "envahissant.": 3310, + "limitrophe": 3311, + "inclus": 3312, + "notariée": 3313, + "municipalité.": 3314, + "utilisateur": 3315, + "embarcation.": 3316, + "lié": 3317, + "contrat": 3318, + "intenter": 3319, + "c-25.1).": 3320, + "inspection": 3321, + "visiter": 3322, + "examiner,": 3323, + "h": 3324, + "h,": 3325, + "mobilière": 3326, + "immobilière,": 3327, + "constater": 3328, + "exécuté,": 3329, + "locataire": 3330, + "propriétés,": 3331, + "maisons,": 3332, + "bâtiments": 3333, + "édifices,": 3334, + "recevoir": 3335, + "répondre": 3336, + "questions": 3337, + "posées": 3338, + "règlements.": 3339, + "accompagner": 3340, + "visite": 3341, + "l’aider": 3342, + "lavage": 3343, + "laver": 3344, + "embarcation,": 3345, + "moteur,": 3346, + "remorque,": 3347, + "s’il": 3348, + "d’inspecter": 3349, + "l’embarcation,": 3350, + "remorque": 3351, + "retirer": 3352, + "amas": 3353, + "résidus": 3354, + "plantes": 3355, + "aquatiques,": 3356, + "boues": 3357, + "visibles": 3358, + "l’œil": 3359, + "nu,": 3360, + "débarcadères": 3361, + "privés": 3362, + "muni": 3363, + "chaîne": 3364, + "barrière": 3365, + "cadenassée": 3366, + "permanence": 3367, + "obstacle": 3368, + "permanent": 3369, + "contrôler": 3370, + "circuler": 3371, + "introduction": 3372, + "d’espèces": 3373, + "envahissantes": 3374, + "strictement": 3375, + "prohibé": 3376, + "déposé,": 3377, + "soit,": 3378, + "déversement": 3379, + "d’ensemencement,": 3380, + "vidange": 3381, + "flotteurs": 3382, + "d’aéronef.": 3383, + "d’immeuble": 3384, + "tenus": 3385, + "mises": 3386, + "pénalités": 3387, + "amendes": 3388, + "passible,": 3389, + "(300": 3390, + "$)": 3391, + "(2": 3392, + "double.": 3393, + "l’infraction": 3394, + "commise": 3395, + "chacune": 3396, + "journées": 3397, + "édictées": 3398, + "imposées": 3399, + "l’infraction.": 3400, + "11e": 3401, + "d’août": 3402, + "2021.": 3403, + "**********************************************": 3404, + "reconnaître": 3405, + "significative": 3406, + "personnage": 3407, + "historique": 3408, + "décédé": 3409, + "attribuant": 3410, + "statut": 3411, + "d’identification,": 3412, + "121": 3413, + "126": 3414, + "culturel;": 3415, + "favorable": 3416, + "nomination,": 3417, + "2021;": 3418, + "s’est": 3419, + "identification": 3420, + "identifié": 3421, + "circuit": 3422, + "ski": 3423, + "maple": 3424, + "leaf": 3425, + "tournant": 3426, + "20e": 3427, + "siècle,": 3428, + "émile": 3429, + "cochand": 3430, + "femme": 3431, + "léa": 3432, + "ouvrent": 3433, + "auberge": 3434, + "l’est.": 3435, + "appel": 3436, + "habitants": 3437, + "ouvrir": 3438, + "baliser": 3439, + "sentiers": 3440, + "passage.": 3441, + "naissent": 3442, + "randonnée": 3443, + "1924": 3444, + "l’aide": 3445, + "tom": 3446, + "wheeler": 3447, + "grey": 3448, + "rock": 3449, + "saint-jovite,": 3450, + "regroupe": 3451, + "hôteliers": 3452, + "fonde": 3453, + "laurentian": 3454, + "resort": 3455, + "association,": 3456, + "promouvoir": 3457, + "tourisme.": 3458, + "l’arrivée": 3459, + "massive": 3460, + "skieurs,": 3461, + "tard,": 3462, + "canadien": 3463, + "pacifique": 3464, + "met": 3465, + "trains": 3466, + "neige.": 3467, + "touristique": 3468, + "incontournable.": 3469, + "1310": 3470, + "court": 3471, + "solution": 3472, + "défricher": 3473, + "relier": 3474, + "sentiers,": 3475, + "groupe": 3476, + "hôtelier,": 3477, + "l’appui": 3478, + "compagnie": 3479, + "ferroviaire,": 3480, + "recrute": 3481, + "l’ingénieur": 3482, + "herman": 3483, + "smith": 3484, + "johannsen": 3485, + "(dit": 3486, + "jackrabbit)": 3487, + "défriche,": 3488, + "balise": 3489, + "raccorde": 3490, + "existants,": 3491, + "créer": 3492, + "leaf,": 3493, + "s’étend": 3494, + "distance": 3495, + "128": 3496, + "km": 3497, + "shawbridge": 3498, + "(prévost)": 3499, + "labelle.": 3500, + "suivront": 3501, + "trace,": 3502, + "600": 3503, + "kilomètres": 3504, + "1939.": 3505, + "skieurs": 3506, + "transforme": 3507, + "modifie": 3508, + "adèle.": 3509, + "alpin": 3510, + "reprend": 3511, + "momentanément": 3512, + "pôle": 3513, + "années": 3514, + "1970,": 3515, + "on": 3516, + "assiste": 3517, + "recrudescence": 3518, + "fond.": 3519, + "piste,": 3520, + "presque": 3521, + "centenaire": 3522, + "place.": 3523, + "détournés,": 3524, + "morcelés": 3525, + "détruits": 3526, + "immobilier": 3527, + "expansion": 3528, + "c’est": 3529, + "pourquoi": 3530, + "vital": 3531, + "statuer": 3532, + "l’importance": 3533, + "font": 3534, + "l’histoire": 3535, + "améliorent": 3536, + "vie": 3537, + "favorisent": 3538, + "l'arrivée": 3539, + "résidents": 3540, + "indéniable": 3541, + "bénéfice": 3542, + "grande": 3543, + "d’authenticité": 3544, + "apparaître,": 3545, + "paysagère.": 3546, + "10e": 3547, + "brière_____": 3548, + "senécal_____________________": 3549, + "********************************************************": 3550, + "historique.": 3551, + "oxford-cambridge": 3552, + "1928": 3553, + "hommes": 3554, + "d’affaires": 3555, + "anglophones": 3556, + "cross-country": 3557, + "club.": 3558, + "club": 3559, + "quartier": 3560, + "chalet": 3561, + "cochand.": 3562, + "industriels": 3563, + "fortunés": 3564, + "amassent": 3565, + "pistes": 3566, + "ski.": 3567, + "1930": 3568, + "fastes": 3569, + "train": 3570, + "neige": 3571, + "amène": 3572, + "milliers": 3573, + "skieurs.": 3574, + "championnat": 3575, + "oppose": 3576, + "universités": 3577, + "oxford": 3578, + "cambridge": 3579, + "d’angleterre": 3580, + "équipe": 3581, + "locale": 3582, + "année": 3583, + "suisse.": 3584, + "l’édition": 3585, + "1932": 3586, + "déplace": 3587, + "sainte-marguerite-station,": 3588, + "2e": 3589, + "gare": 3590, + "nord-est": 3591, + "contingent": 3592, + "anglais,": 3593, + "prince": 3594, + "constantin": 3595, + "lichtenstein,": 3596, + "arrive": 3597, + "canada,": 3598, + "disputer": 3599, + "fois,": 3600, + "formée": 3601, + "canadiens.": 3602, + "athlètes": 3603, + "1311": 3604, + "s’affrontent": 3605, + "série": 3606, + "d’épreuves": 3607, + "ski,": 3608, + "parcours": 3609, + "miles,": 3610, + "travers": 3611, + "sainte-marguerite-station": 3612, + "là": 3613, + "balisé": 3614, + "parcours.": 3615, + "commémorer": 3616, + "l’événement": 3617, + "emprunté": 3618, + "l’équipe": 3619, + "oxford-": 3620, + "nommée.": 3621, + "passe": 3622, + "près": 3623, + "l’ancien": 3624, + "arrivé": 3625, + "1914": 3626, + "moniteur": 3627, + "canada.": 3628, + "villégiature": 3629, + "culturel": 3630, + "important.": 3631, + "aujourd’hui,": 3632, + "viennent": 3633, + "s’établir": 3634, + "accéder": 3635, + "facilement": 3636, + "l’âge": 3637, + "authenticité": 3638, + "d’acquérir": 3639, + "depuis": 3640, + "1920,": 3641, + "d’usage": 3642, + "supérieure": 3643, + "importante.": 3644, + "brière_______": 3645, + "dérogations": 3646, + "mineures": 3647, + "1314-2021-dm": 3648, + "table": 3649, + "matières,": 3650, + "figures": 3651, + "tableaux": 3652, + "matières": 3653, + "..................................................................................................................................": 3654, + ".....................................................................................................": 3655, + "......................................................................................................................................................": 3656, + ".................................................................................................................................................................": 3657, + "portée": 3658, + "..................................................................................................................": 3659, + "...............................................................................................................................................": 3660, + "..............................................................................................................": 3661, + ".................................................................................................................................................": 3662, + "..................................................................................................": 3663, + "............................................................................................................................................................................": 3664, + "..............................................................................................................................................": 3665, + "................................................................................................................................................": 3666, + "contradiction": 3667, + "........................................................................................................................": 3668, + "..............................................................................................................................................................": 3669, + "...................................................................................................": 3670, + "......................................................................................................................................": 3671, + "compétente": 3672, + "...................................................................................................................................................": 3673, + ".............................................................................................................": 3674, + "l’exécutant": 3675, + "...................................................": 3676, + "recevabilité": 3677, + "préalables": 3678, + ".............................................................................": 3679, + "................................................................................................": 3680, + "19.": 3681, + "............................................": 3682, + "20.": 3683, + "......................................": 3684, + "21.": 3685, + "restriction": 3686, + "..................................................................................................................................................................": 3687, + "22.": 3688, + "l’analyse": 3689, + "....................................................................................": 3690, + "23.": 3691, + "..............................................................................": 3692, + "analyse": 3693, + "......................................................................................": 3694, + "24.": 3695, + "............................................................................................................................................": 3696, + "25.": 3697, + "............................................................................................................................................................": 3698, + "26.": 3699, + "........................................................................................................................................": 3700, + "27.": 3701, + ".............................................................................................................................................": 3702, + "28.": 3703, + "............................................................................": 3704, + "29.": 3705, + "...................................................................................": 3706, + "30.": 3707, + "................................................................................................................................................................": 3708, + "31.": 3709, + "32.": 3710, + "émission": 3711, + "33.": 3712, + ".......................................................................................................................................................": 3713, + "intitulé": 3714, + "1314-2021-dm.": 3715, + "1200-2012-dm": 3716, + "amendements": 3717, + "inconciliables": 3718, + "abrogations": 3719, + "n’affectent": 3720, + "l’entrée": 3721, + "physiques": 3722, + "morales": 3723, + "autant": 3724, + "privés,": 3725, + "régit": 3726, + "d’analyse": 3727, + "encadre": 3728, + "d’admissibilité": 3729, + "étudiée": 3730, + "interprétée": 3731, + "soustraire": 3732, + "gouvernement": 3733, + "provincial": 3734, + "fédéral": 3735, + "régionale": 3736, + "pays-d’en-haut.": 3737, + "renvoi,": 3738, + "l’expression": 3739, + "définie": 3740, + "hiérarchie": 3741, + "divisions": 3742, + "chapitres,": 3743, + "sections,": 3744, + "sous-sections,": 3745, + "articles,": 3746, + "alinéas,": 3747, + "paragraphes,": 3748, + "tirets.": 3749, + "d’illustration,": 3750, + "typographie": 3751, + "distinguer": 3752, + "répond": 3753, + "l’emploi": 3754, + "verbes": 3755, + "inclut": 3756, + "futur,": 3757, + "vice-versa;": 3758, + "l’usage": 3759, + "singulier": 3760, + "comprend": 3761, + "pluriel": 3762, + "singulier,": 3763, + "prête;": 3764, + "verbe": 3765, + "devoir": 3766, + "absolue;": 3767, + "pouvoir": 3768, + "conserve": 3769, + "facultatif,": 3770, + "signifie": 3771, + "»;": 3772, + "société": 3773, + "collectif,": 3774, + "commandite": 3775, + "usage,": 3776, + "bâtiment,": 3777, + "régi": 3778, + "prévaut": 3779, + "générale;": 3780, + "contraignante": 3781, + "ouverte,": 3782, + "c’est-à-dire": 3783, + "international": 3784, + "(si);": 3785, + "donnés": 3786, + "améliorer": 3787, + "texte;": 3788, + "annexes,": 3789, + "tableaux,": 3790, + "graphiques,": 3791, + "figures,": 3792, + "illustration": 3793, + "symboles": 3794, + "d’expression": 3795, + "proprement": 3796, + "dit": 3797, + "contenue": 3798, + "droit;": 3799, + "lorsqu’une": 3800, + "séparatrice": 3801, + "mentionnée": 3802, + "réciprocité": 3803, + "chacun": 3804, + "constructions.": 3805, + "d'indications": 3806, + "contraires,": 3807, + "prévaut;": 3808, + "fiche": 3809, + "milieu,": 3810, + "tableau": 3811, + "graphique,": 3812, + "prévalent;": 3813, + "expressions,": 3814, + "attribués": 3815, + "expression,": 3816, + "n’étant": 3817, + "s'emploie": 3818, + "communément": 3819, + "mot.": 3820, + "confiée": 3821, + "représentants": 3822, + "constituent": 3823, + "compétente.": 3824, + "équivaut": 3825, + "recevable": 3826, + "nouvel": 3827, + "obtenu": 3828, + "travaux.": 3829, + "subséquents,": 3830, + "l’exception": 3831, + "(logement": 3832, + "l’hectare);": 3833, + "étage": 3834, + "principal;": 3835, + "l’abattage": 3836, + "d’arbres": 3837, + "coupes": 3838, + "forestières;": 3839, + "fermettes.": 3840, + "parcs,": 3841, + "jeux": 3842, + "d’espaces": 3843, + "naturels.": 3844, + "a-": 3845, + "19.1).": 3846, + "présentée": 3847, + "celle-ci": 3848, + "mineure.": 3849, + "respectées.": 3850, + "l’impossibilité": 3851, + "mineure;": 3852, + "causer": 3853, + "sérieux": 3854, + "requérant;": 3855, + "jouissance,": 3856, + "voisins,": 3857, + "propriété;": 3858, + "exécutés,": 3859, + "effectués": 3860, + "foi;": 3861, + "d’urbanisme;": 3862, + "demandée": 3863, + "utilisant": 3864, + "préparé": 3865, + "comprendre": 3866, + "rempli": 3867, + "dument": 3868, + "signée": 3869, + "mandataire;": 3870, + "noms,": 3871, + "prénoms": 3872, + "adresses": 3873, + "visé;": 3874, + "titres": 3875, + "arpenteur-géomètre": 3876, + "projetée.": 3877, + "plan,": 3878, + "illustrer": 3879, + "cause,": 3880, + "lieu,": 3881, + "superficie,": 3882, + "largeur,": 3883, + "profondeur": 3884, + "largeur": 3885, + "lot.": 3886, + "dimensions,": 3887, + "pente": 3888, + "moyenne,": 3889, + "distances": 3890, + "terrains;": 3891, + "demandée.": 3892, + "dérogations,": 3893, + "celles-ci": 3894, + "obligatoirement": 3895, + "photographies": 3896, + "claires": 3897, + "récentes": 3898, + "bien": 3899, + "demandée;": 3900, + "vigueur;": 3901, + "commodité,": 3902, + "stricte": 3903, + "connexe": 3904, + "sceaux": 3905, + "signatures": 3906, + "originales": 3907, + "parfait": 3908, + "cause;": 3909, + "spécifiés": 3910, + "demandés,": 3911, + "500,00": 3912, + "remboursable,": 3913, + "sort": 3914, + "réservé": 3915, + "alinéa,": 3916, + "lot": 3917, + "lorsqu’il": 3918, + "s’agit": 3919, + "profondeur,": 3920, + "comprennent": 3921, + "publication": 3922, + "fournies": 3923, + "perçus.": 3924, + "considérée": 3925, + "auront": 3926, + "fournis.": 3927, + "préalablement": 3928, + "préliminaire": 3929, + "généraux": 3930, + "sous-jacents": 3931, + "dernières;": 3932, + "vérification": 3933, + "applicables;": 3934, + "avis,": 3935, + "affectent": 3936, + "gravité": 3937, + "dérogation;": 3938, + "décisions": 3939, + "rendues": 3940, + "antérieures": 3941, + "similaires,": 3942, + "principales": 3943, + "celles-ci.": 3944, + "relâche": 3945, + "réunions": 3946, + "réception,": 3947, + "pertinent.": 3948, + "étudie": 3949, + "d’entendre": 3950, + "démarche": 3951, + "évidence": 3952, + "inutile,": 3953, + "évaluer": 3954, + "effets": 3955, + "45": 3956, + "apporte": 3957, + "d’étude": 3958, + "demandées": 3959, + "comité,": 3960, + "maximal": 3961, + "augmenté": 3962, + "60": 3963, + "jours.": 3964, + "mineures,": 3965, + "publier": 3966, + "l’heure": 3967, + "désignation": 3968, + "civique": 3969, + "subdivision": 3970, + "cadastrale;": 3971, + "intéressé": 3972, + "entendre": 3973, + "l’adoption": 3974, + "accepte,": 3975, + "accepte": 3976, + "compétences": 3977, + "d'atténuer": 3978, + "l'impact": 3979, + "dérogation.": 3980, + "décision.": 3981, + "ensuite": 3982, + "délivre": 3983, + "l’acceptation,": 3984, + "remplies,": 3985, + "l'adoption": 3986, + "vise": 3987, + "valide,": 3988, + "avenue.": 3989, + "mentionné": 3990, + "régulariser": 3991, + "situation": 3992, + "existante.": 3993, + "formulée.": 3994, + "13e": 3995, + "d’octobre": 3996, + "___________________________________": 3997, + "**************************************************": 3998, + "1314-2021-l": 3999, + "opération": 4000, + "..................................................": 4001, + "..................................................................................................................................................": 4002, + "...........................................................................................................................................": 4003, + "..........................................................................................": 4004, + ".........................................................................................................................................................": 4005, + "naturels": 4006, + ".....................................................................": 4007, + "...............................................................................................................................": 4008, + "acquise": 4009, + "d’utilité": 4010, + "cadastrales": 4011, + "d’agrandissement": 4012, + "................................................": 4013, + "résidu": 4014, + "..................................................................": 4015, + "conception": 4016, + "..........................................................................": 4017, + "générales": 4018, + ".....................................................................................................................": 4019, + "...................................................................................................................................": 4020, + "détermination": 4021, + ".......................................................................................................................": 4022, + "34.": 4023, + "anticipée": 4024, + "35.": 4025, + "contestation": 4026, + ".........................................................................................................................": 4027, + "36.": 4028, + "notarié": 4029, + "ilots": 4030, + "....................................": 4031, + ".............................................................................................................................": 4032, + "37.": 4033, + "38.": 4034, + "39.": 4035, + "cadastrer": 4036, + "40.": 4037, + "agencement": 4038, + ".................................................................................................................................": 4039, + "41.": 4040, + "ouverture": 4041, + "créant": 4042, + "d’aqueduc": 4043, + "42.": 4044, + "tracées": 4045, + "montrées": 4046, + "...........................................................................................................": 4047, + "43.": 4048, + "........................................................................................................": 4049, + "44.": 4050, + "boisés": 4051, + "....................................................................................................................": 4052, + "45.": 4053, + "............................................................................................................": 4054, + "46.": 4055, + ".........................................................................................................": 4056, + "47.": 4057, + "linéaire": 4058, + "p’tit": 4059, + "...........................................................................": 4060, + "48.": 4061, + "l’autoroute": 4062, + "laurentides": 4063, + ".....................................................................................": 4064, + "49.": 4065, + "50.": 4066, + "51.": 4067, + "angles": 4068, + "d’intersection": 4069, + "..............................................................................................................................": 4070, + "52.": 4071, + "...................................................................................................................................................................": 4072, + "53.": 4073, + "impasse": 4074, + "(type": 4075, + "cul-de-sac": 4076, + "»)": 4077, + "...................................................................................................................": 4078, + "54.": 4079, + "55.": 4080, + "multifonctionnelles,": 4081, + "récréatifs": 4082, + ".................................................................................": 4083, + "......................................................................................................................": 4084, + "56.": 4085, + "chevauchant": 4086, + "originaires": 4087, + "rénové": 4088, + "..............................................": 4089, + "57.": 4090, + "................................................................................................................................": 4091, + "58.": 4092, + "orientation": 4093, + "59.": 4094, + "60.": 4095, + "ligne": 4096, + "extrémité": 4097, + "courbée": 4098, + ".........................................................................................": 4099, + "61.": 4100, + "situe": 4101, + "extérieure": 4102, + "courbe": 4103, + "(ligne": 4104, + "concave)": 4105, + "62.": 4106, + "lac,": 4107, + "humide": 4108, + "publiques": 4109, + "privée": 4110, + "1983": 4111, + "..............": 4112, + ".................................................................": 4113, + "63.": 4114, + "64.": 4115, + "desserte": 4116, + "65.": 4117, + "long": 4118, + "tronçons": 4119, + "pierre-": 4120, + "péladeau": 4121, + "66.": 4122, + "300": 4123, + "lac": 4124, + ".............................................": 4125, + "67.": 4126, + ".......................................": 4127, + "68.": 4128, + "desservi": 4129, + "hydrique": 4130, + "..........................................................": 4131, + "22": 4132, + "69.": 4133, + "exemptions": 4134, + ".......................................................................": 4135, + "...........................................": 4136, + "23": 4137, + "70.": 4138, + "dérogatoire": 4139, + "71.": 4140, + "existence": 4141, + "72.": 4142, + "73.": 4143, + "ajout": 4144, + ".......................................................................................": 4145, + "25": 4146, + "74.": 4147, + "vacant": 4148, + "75.": 4149, + "construit": 4150, + "..........................................................................................................................": 4151, + "76.": 4152, + "cadastre": 4153, + "expropriation": 4154, + "figure": 4155, + "intersection": 4156, + "d’angle": 4157, + "...................................": 4158, + ".............................": 4159, + "1314-2021-": 4160, + "l.": 4161, + "1200-2012-l,": 4162, + "privé,": 4163, + "découpage": 4164, + "voies": 4165, + "circulations,": 4166, + "îlots": 4167, + "lots,": 4168, + "l’environnement,": 4169, + "exécutée": 4170, + "préparation": 4171, + "territoire,": 4172, + "favorisant": 4173, + "réforme": 4174, + "québécois": 4175, + "r-3.1);": 4176, + "nécessitée": 4177, + "copropriété": 4178, + "divise": 4179, + "1038": 4180, + "3030": 4181, + "c.ccq-1991)": 4182, + "l’emplacement": 4183, + "commune": 4184, + "terrain.": 4185, + "pays-d": 4186, + "’en-haut.": 4187, + "256.1,": 4188, + "256.2": 4189, + "256.3": 4190, + "(c.": 4191, + "a-19.1),": 4192, + "approuvée": 4193, + "l’ouverture": 4194, + "circulation,": 4195, + "donnée": 4196, + "présente,": 4197, + "morcellement": 4198, + "ladite": 4199, + "contiguës": 4200, + "l'opération": 4201, + "indiquant": 4202, + "projetées,": 4203, + "approximatives": 4204, + "auquel": 4205, + "destiné.": 4206, + "cadastrale,": 4207, + "s’engager": 4208, + "céder": 4209, + "gratuitement": 4210, + "destinées": 4211, + "fossés": 4212, + "terrains,": 4213, + "d’opération": 4214, + "l’opération": 4215, + "approuvée,": 4216, + "impayées": 4217, + "projetée": 4218, + "autorisant": 4219, + "refusé": 4220, + "constituant": 4221, + "possédant": 4222, + "d'expropriation,": 4223, + "motif": 4224, + "immédiatement": 4225, + "l'acquisition,": 4226, + "suffisantes": 4227, + "pouvait": 4228, + "originaires,": 4229, + "originaire": 4230, + "cadastrale.": 4231, + "respectant": 4232, + "superficies": 4233, + "d’agrandir": 4234, + "protégé": 4235, + "réduire": 4236, + "l'écart": 4237, + "parcelles": 4238, + "principale": 4239, + "moindres": 4240, + "acquis.": 4241, + "former": 4242, + "différents,": 4243, + "adjacent": 4244, + "localisé": 4245, + "municipalité,": 4246, + "créé": 4247, + "principal": 4248, + "projeté,": 4249, + "intégré": 4250, + "lorsqu’autorisé": 4251, + "produit": 4252, + "aggrave": 4253, + "non-conformité": 4254, + "dimension": 4255, + "crée": 4256, + "règlementation": 4257, + "n’ayant": 4258, + "entente": 4259, + "municipaux.": 4260, + "majeur": 4261, + "lotissement,": 4262, + "image": 4263, + "s’effectuer": 4264, + "principes": 4265, + "l’esprit": 4266, + "approuvé,": 4267, + "créés,": 4268, + "auxquels": 4269, + "destinés,": 4270, + "relation": 4271, + "assurée;": 4272, + "intégrées": 4273, + "retenu": 4274, + "territoire;": 4275, + "favoriser": 4276, + "adjacentes,": 4277, + "récréatifs,": 4278, + "issues,": 4279, + "longueur": 4280, + "déboisement": 4281, + "déblai": 4282, + "d’enclaver": 4283, + "adjacentes": 4284, + "développement;": 4285, + "d’utilités": 4286, + "intégrés": 4287, + "divers": 4288, + "place;": 4289, + "sites": 4290, + "paysages": 4291, + "d’intérêts": 4292, + "protégés": 4293, + "(espaces": 4294, + "d’intérêt,": 4295, + "accidentés,": 4296, + "naturels,": 4297, + "corridors": 4298, + "verts;": 4299, + "l’intégration": 4300, + "pérennité": 4301, + "existants;": 4302, + "subdivisions": 4303, + "venir,": 4304, + "rénové,": 4305, + "cadastrable": 4306, + "prévue,": 4307, + "construite": 4308, + "choix": 4309, + "s’’engager": 4310, + "équivalent": 4311, + "convient": 4312, + "naturel;": 4313, + "verser": 4314, + "équivalente": 4315, + "site;": 4316, + "engagement": 4317, + "combiné": 4318, + "%.": 4319, + "mineur": 4320, + "récréatif": 4321, + "somme.": 4322, + "l’éventualité": 4323, + "détermine": 4324, + "perpétuelle": 4325, + "établie,": 4326, + "s’engage": 4327, + "convenir,": 4328, + "jeux,": 4329, + "naturel.": 4330, + "convenir": 4331, + "l’engagement": 4332, + "site.": 4333, + "l’enregistrement": 4334, + "phase": 4335, + "subséquente,": 4336, + "protocole": 4337, + "d’entente": 4338, + "subdivisés": 4339, + "phase.": 4340, + "l’émission": 4341, + "lotissement.": 4342, + "actes": 4343, + "notariés": 4344, + "discrétion": 4345, + "jamais": 4346, + "inférieure": 4347, + "section,": 4348, + "entend": 4349, + "l’assiette": 4350, + "assujetties": 4351, + "annulation,": 4352, + "lot,": 4353, + "n’entrainant": 4354, + "lots;": 4355, + "existant,": 4356, + "modifiées,": 4357, + "bâtir,": 4358, + "bénéficient": 4359, + "non-assujettissement": 4360, + "contribution;": 4361, + "celui-ci.": 4362, + "conclue": 4363, + "contigu,": 4364, + "création": 4365, + "transitoires,": 4366, + "tout,": 4367, + "crées": 4368, + "l’immatriculation": 4369, + "distinct": 4370, + "résulté": 4371, + "regroupement": 4372, + "diminuant": 4373, + "verticale": 4374, + "divise;": 4375, + "d’expropriation": 4376, + "expropriation;": 4377, + "carrés,": 4378, + "perpétuité": 4379, + "demeurer": 4380, + "ultérieur": 4381, + "(établissement": 4382, + "construction),": 4383, + "action": 4384, + "redéveloppement": 4385, + "exigible;": 4386, + "parapublic": 4387, + "d’expropriation.": 4388, + "gratuite": 4389, + "visé.": 4390, + "demandeur,": 4391, + "considération": 4392, + "d’opérations": 4393, + "futures.": 4394, + "argent,": 4395, + "déterminée": 4396, + "évaluateur": 4397, + "agréé": 4398, + "mandaté": 4399, + "ou;": 4400, + "l’on": 4401, + "obtient": 4402, + "multipliant": 4403, + "d’évaluation": 4404, + "foncière": 4405, + "facteur": 4406, + "établi": 4407, + "264": 4408, + "f-2.1)": 4409, + "l’immeuble,": 4410, + "précédemment.": 4411, + "d’établir": 4412, + "cédé.": 4413, + "céder,": 4414, + "deux,": 4415, + "calculée": 4416, + "proportionnelle": 4417, + "catégorie": 4418, + "celle-ci.": 4419, + "antérieurement": 4420, + "pourcentages": 4421, + "versés": 4422, + "pas,": 4423, + "d’évaluations": 4424, + "antérieures.": 4425, + "biais": 4426, + "ententes": 4427, + "définir": 4428, + "l’entente": 4429, + "immeubles,": 4430, + "d’entente.": 4431, + "assimilés": 4432, + "partie.": 4433, + "proposition": 4434, + "ultérieure": 4435, + "exigée": 4436, + "l'évaluateur.": 4437, + "s’effectue": 4438, + "117.7": 4439, + "117.14": 4440, + "(c": 4441, + "notaire": 4442, + "arpenteur-géomètre.": 4443, + "privées.": 4444, + "destinée": 4445, + "prohibée": 4446, + "concorde": 4447, + "prévues,": 4448, + "nonobstant": 4449, + "sols": 4450, + "instables,": 4451, + "drainés": 4452, + "inondations,": 4453, + "affaissements": 4454, + "éboulis,": 4455, + "marais,": 4456, + "tourbières,": 4457, + "marécages": 4458, + "affleurements": 4459, + "rocheux.": 4460, + "impliquant": 4461, + "règlements,": 4462, + "rue,": 4463, + "desservant": 4464, + "bâtir": 4465, + "distincts": 4466, + "officiels": 4467, + "l’agencement": 4468, + "actuelles,": 4469, + "l’élaboration": 4470, + "éventuelle": 4471, + "voisin.": 4472, + "faciliter": 4473, + "circulations": 4474, + "d’urgence": 4475, + "d’incendie,": 4476, + "mouvements": 4477, + "l’extension": 4478, + "égouts,": 4479, + "conduites": 4480, + "drainage.": 4481, + "adjacents,": 4482, + "prévus.": 4483, + "réseau,": 4484, + "rinçage": 4485, + "(purge)": 4486, + "techniques": 4487, + "tronçon": 4488, + "concorder": 4489, + "montré": 4490, + "géométrie": 4491, + "approuvé.": 4492, + "éviter,": 4493, + "possible,": 4494, + "marécageux,": 4495, + "tout-terrain": 4496, + "impropres": 4497, + "éboulis": 4498, + "affaissements.": 4499, + "rocheux": 4500, + "n’offre": 4501, + "épaisseur": 4502, + "suffisante": 4503, + "dépôts": 4504, + "meubles": 4505, + "roches": 4506, + "friables": 4507, + "qu’on": 4508, + "creuser,": 4509, + "cout": 4510, + "tranchées": 4511, + "municipales.": 4512, + "rangées": 4513, + "emprunter": 4514, + "déboisés,": 4515, + "possible.": 4516, + "hautes": 4517, + "desservis;": 4518, + "partiellement": 4519, + "desservis": 4520, + "desservis.": 4521, + "conduisant": 4522, + "traversée": 4523, + "perpendiculairement": 4524, + "possible": 4525, + "lac.": 4526, + "raccordement": 4527, + "topographiques": 4528, + "particulières.": 4529, + "inférieures": 4530, + "mètres.": 4531, + "périmètre": 4532, + "d’urbanisation,": 4533, + "croisement": 4534, + "cédée": 4535, + "traverses": 4536, + "jointe": 4537, + "g": 4538, + "résultante": 4539, + "surélevé": 4540, + "(pont)": 4541, + "(tunnel)": 4542, + "nord.": 4543, + "mètres,": 4544, + "aériennes": 4545, + "autorisées.": 4546, + "respectée": 4547, + "topographie,": 4548, + "réduite": 4549, + "l’emprise.": 4550, + "requise.": 4551, + "mètres;": 4552, + "collectrice": 4553, + "certaines": 4554, + "augmentée": 4555, + "d’accommoder": 4556, + "adéquatement": 4557, + "talus,": 4558, + "bande": 4559, + "cyclable": 4560, + "souhaité,": 4561, + "maintenant": 4562, + "locale.": 4563, + "largeurs": 4564, + "sorte": 4565, + "longitudinale": 4566, + "%,": 4567, + "150": 4568, + "atteindre": 4569, + "d’au": 4570, + "courbe.": 4571, + "dépasser": 4572, + "l’intersection": 4573, + "rayon": 4574, + "virage": 4575, + "(cul-de-sac)": 4576, + "mesurée": 4577, + "l’angle": 4578, + "formé": 4579, + "tendre": 4580, + "vers": 4581, + "90°.": 4582, + "locales": 4583, + "angle": 4584, + "droit,": 4585, + "variation": 4586, + "15°": 4587, + "permise.": 4588, + "l’alignement": 4589, + "maintenu": 4590, + "médiane": 4591, + "rue.": 4592, + "axes": 4593, + "calculées": 4594, + "d’emprise": 4595, + "rapprochées": 4596, + "50": 4597, + "locale;": 4598, + "120": 4599, + "collectrice;": 4600, + "(route": 4601, + "117)": 4602, + "pierre-péladeau": 4603, + "370),": 4604, + "vitesse": 4605, + "moins.": 4606, + "d’aménager": 4607, + "côté": 4608, + "intérieur": 4609, + "180": 4610, + "extérieur": 4611, + "illustré": 4612, + "l’illustration": 4613, + "ci-dessous": 4614, + "concave": 4615, + "35": 4616, + "épingle": 4617, + "(angle": 4618, + "90°)": 4619, + "courbure": 4620, + "(mesuré": 4621, + "intérieure": 4622, + "virage)": 4623, + "rayons": 4624, + "minimums": 4625, + "collectrices": 4626, + "continue.": 4627, + "jusqu’au": 4628, + "début": 4629, + "cercle": 4630, + "terminer": 4631, + "virage,": 4632, + "diamètre": 4633, + "36": 4634, + "adossés,": 4635, + "d’exiger": 4636, + "partout": 4637, + "propos": 4638, + "piétons": 4639, + "cyclistes,": 4640, + "écoles,": 4641, + "communautaires": 4642, + "d’égouts,": 4643, + "emprises": 4644, + "vélo": 4645, + "montagne,": 4646, + "nordique": 4647, + "raquettes": 4648, + "piétonnier": 4649, + "c-1)": 4650, + "r-3.1),": 4651, + "créer,": 4652, + "chevauche": 4653, + "originaire,": 4654, + "créés": 4655, + "résultent": 4656, + "d’urbanisme.": 4657, + "individuellement": 4658, + "lorsqu’un": 4659, + "l’autre,": 4660, + "restrictives": 4661, + "latérales": 4662, + "perpendiculaires": 4663, + "précède,": 4664, + "d’adoucir": 4665, + "pentes,": 4666, + "d’égaliser": 4667, + "original,": 4668, + "culs-de-sac,": 4669, + "obliques": 4670, + "formes": 4671, + "adaptées": 4672, + "l’ensoleillement": 4673, + "fiches": 4674, + "milieux.": 4675, + "d’angle,": 4676, + "termine": 4677, + "arc": 4678, + "rues,": 4679, + "imaginaire": 4680, + "droite": 4681, + "n’": 4682, + "cercle,": 4683, + "l1": 4684, + "l2": 4685, + "courbe,": 4686, + "égal": 4687, + "incluse": 4688, + "prescrite": 4689, + "normes,": 4690, + "norme": 4691, + "prescrite.": 4692, + "1983,": 4693, + "lotis": 4694, + "décrits": 4695, + "tenants": 4696, + "aboutissants": 4697, + "minimale,": 4698, + "qu’aux": 4699, + "varier": 4700, + "destiné,": 4701, + "situé.": 4702, + "urbain,": 4703, + "(aqueduc": 4704, + "égout).": 4705, + "branchée": 4706, + "donne": 4707, + "péladeau,": 4708, + "moins,": 4709, + "question": 4710, + "n’ait": 4711, + "mentionnées": 4712, + "non-accès": 4713, + "s’applique..": 4714, + "desservis,": 4715, + "ceux-": 4716, + "ci": 4717, + "prévoie": 4718, + "exigeant": 4719, + "sanitaire": 4720, + "(lrq,": 4721, + "q-2)": 4722, + "humide,": 4723, + "exclue": 4724, + "exigible": 4725, + "eaux.": 4726, + "vertical": 4727, + "horizontal": 4728, + "rangée,": 4729, + "déclaration,": 4730, + "exclusives;": 4731, + "aménager": 4732, + "parc,": 4733, + "jeu,": 4734, + "sentier;": 4735, + "municipales,": 4736, + "terminaux": 4737, + "d’aqueduc,": 4738, + "d’égout,": 4739, + "gaz,": 4740, + "d’électricité,": 4741, + "télécommunication,": 4742, + "d’électricité": 4743, + "câblodistribution": 4744, + "privées,": 4745, + "n’abrite": 4746, + "équipements;": 4747, + "transitoire,": 4748, + "transaction": 4749, + "seconde": 4750, + "conclusion": 4751, + "exception": 4752, + "intervient": 4753, + "simultanément": 4754, + "concurremment": 4755, + "précédente.": 4756, + "adjacent.": 4757, + "confère": 4758, + "séparé": 4759, + "l’installation": 4760, + "domiciliaire;": 4761, + "kiosque": 4762, + "postal;": 4763, + "jouissant": 4764, + "subdivisé": 4765, + "dérogatoire,": 4766, + "cadastre,": 4767, + "était": 4768, + "autorisée,": 4769, + "pourvue": 4770, + "quant": 4771, + "trait": 4772, + "respecter.": 4773, + "conséquemment,": 4774, + "autorisé,": 4775, + "nécessairement": 4776, + "réduites;": 4777, + "adjacent,": 4778, + "acquis,": 4779, + "maintenir": 4780, + "rendu": 4781, + "implantations": 4782, + "dérogatoires,": 4783, + "protégées": 4784, + "dérogatoires.": 4785, + "accueillir": 4786, + "pourvu": 4787, + "n’inclut": 4788, + "principal.": 4789, + "notamment,": 4790, + "d‘indication": 4791, + "contraire": 4792, + "stationnement;": 4793, + "d’espace": 4794, + "vert;": 4795, + "circulation;": 4796, + "l’implantation": 4797, + "systèmes": 4798, + "captage": 4799, + "vie.": 4800, + "compétent": 4801, + "démonstration": 4802, + "souterraines": 4803, + "q-2,": 4804, + "r.": 4805, + "6)": 4806, + "l’évacuation": 4807, + "résidences": 4808, + "isolées": 4809, + "22).": 4810, + "l’ancienne": 4811, + "permettaient,": 4812, + "500-1982": 4813, + "mont-rolland": 4814, + "293": 4815, + "formait": 4816, + "cadastre;": 4817, + "bénéficiant": 4818, + "acquis;": 4819, + "détruite": 4820, + "l'urbanisme.": 4821, + "d’expropriation,": 4822, + "acquisition,": 4823, + "74": 4824, + "75": 4825, + "1314-2021-pc": 4826, + "..........................................................................................................................................................................": 4827, + ".................................................................................................": 4828, + "....................................................................................................................................": 4829, + "...............................................................................................................": 4830, + "...........................................................................................................................": 4831, + "locataire,": 4832, + "l'exécutant": 4833, + ".................................................................................................................................................................................": 4834, + "........................": 4835, + "infractions,": 4836, + "....................................................................................................................................................": 4837, + "..................................................................................................................16": 4838, + ".............................................................": 4839, + "exemption": 4840, + "d’implantation": 4841, + "d’intégration": 4842, + "...........................................................................................................................................................": 4843, + "conditionnel": 4844, + "...............": 4845, + "exigence": 4846, + "rapports": 4847, + "support": 4848, + "papier": 4849, + "numérisation": 4850, + ".........................................................................": 4851, + "d’honoraires": 4852, + "suspension": 4853, + "l’étude": 4854, + "annulation": 4855, + "suspendus": 4856, + "débutés": 4857, + ".........................................": 4858, + "erroné": 4859, + "fausse": 4860, + "nullité": 4861, + ".......................................................................................................": 4862, + "d’affichage": 4863, + "...............................................................................................": 4864, + "d’annulation,": 4865, + "...............................": 4866, + "...........................20": 4867, + "sous-section": 4868, + "1.1": 4869, + "obtention": 4870, + "...............................................................": 4871, + "nécessité": 4872, + "assigné": 4873, + "..............................................................................................": 4874, + "....................................................................................................": 4875, + "contaminé": 4876, + "non-responsabilité": 4877, + "1.2": 4878, + "..........................................................................................................................................": 4879, + "cheminement": 4880, + "1.3": 4881, + "1.4": 4882, + ".......................................................................................................................................": 4883, + ".......................27": 4884, + "d’exception": 4885, + "29": 4886, + "âgées": 4887, + "retraitées": 4888, + ".............................................................................................................................................................": 4889, + "32": 4890, + "réhabilitation": 4891, + "d’habitations": 4892, + "renouvèlement": 4893, + "33": 4894, + "devis": 4895, + "approuvés": 4896, + "34": 4897, + "d’architecture": 4898, + "........................................................": 4899, + "agrandissement": 4900, + "..............................................................": 4901, + "37": 4902, + "38": 4903, + "sanitaire..............................................................................................................": 4904, + "39": 4905, + "piscine": 4906, + "41": 4907, + "77.": 4908, + "additionnel": 4909, + "route": 4910, + "transports": 4911, + "78.": 4912, + "79.": 4913, + "inondable": 4914, + "80.": 4915, + "nécessitant": 4916, + "................": 4917, + "81.": 4918, + "imperméable": 4919, + "carrés.....................................": 4920, + "82.": 4921, + "42": 4922, + "83.": 4923, + "..................43": 4924, + "44": 4925, + "84.": 4926, + "..........................................": 4927, + "46": 4928, + "85.": 4929, + "...............................................................................": 4930, + "86.": 4931, + "...............................................": 4932, + "47": 4933, + "87.": 4934, + "88.": 4935, + "89.": 4936, + "..................": 4937, + "90.": 4938, + "91.": 4939, + "d’inondation": 4940, + "mrc": 4941, + "92.": 4942, + "l’érosion": 4943, + "93.": 4944, + "éolienne": 4945, + "48": 4946, + "94.": 4947, + "abattage": 4948, + "d’arbre": 4949, + "95.": 4950, + "d’aire": 4951, + "déchargement": 4952, + "d’entreposage": 4953, + "96.": 4954, + "allée": 4955, + "chalets": 4956, + "location": 4957, + "49": 4958, + "97.": 4959, + "clôtures": 4960, + "murets": 4961, + "................................................................................................................": 4962, + "51": 4963, + "98.": 4964, + "coupe": 4965, + "forestière": 4966, + "99.": 4967, + "............................................................................................................................": 4968, + "52": 4969, + "100.": 4970, + "...........................................................": 4971, + "101.": 4972, + "102.": 4973, + "103.": 4974, + "remblai": 4975, + "53": 4976, + "104.": 4977, + "rive": 4978, + "littoral": 4979, + "plaine": 4980, + "........": 4981, + "105.": 4982, + "....................................................": 4983, + "54": 4984, + "106.": 4985, + "107.": 4986, + ".....................": 4987, + "55": 4988, + "d'affaires": 4989, + ".....................................56": 4990, + "57": 4991, + "108.": 4992, + "109.": 4993, + "110.": 4994, + "111.": 4995, + "..................................................................................": 4996, + "112.": 4997, + "113.": 4998, + "114.": 4999, + "115.": 5000, + "58": 5001, + "116.": 5002, + "117.": 5003, + "118.": 5004, + "d’affaire": 5005, + "principal,": 5006, + "complémentaire..................................................................": 5007, + "119.": 5008, + "l’exploitation": 5009, + "camping": 5010, + "caravaning": 5011, + ".....................................................": 5012, + "59": 5013, + "120.": 5014, + ".................60": 5015, + "61": 5016, + "121.": 5017, + "122.": 5018, + "123.": 5019, + "124.": 5020, + "62": 5021, + "125.": 5022, + ".................................................................................................................": 5023, + "126.": 5024, + "refusée": 5025, + "127.": 5026, + "128.": 5027, + "63": 5028, + "......................................................": 5029, + ".......................................................": 5030, + "1314-2021-pc.": 5031, + "1200-2012-pc": 5032, + "chargé": 5033, + "l’administration": 5034, + "adoptés": 5035, + "analyser": 5036, + "rapport,": 5037, + "prévus,": 5038, + "délivrer,": 5039, + "suspendre": 5040, + "veiller": 5041, + "qu’à": 5042, + "provinciale": 5043, + "dévolus": 5044, + "loi,": 5045, + "l’application;": 5046, + "visiter,": 5047, + "examiner": 5048, + "observées;": 5049, + "besoin,": 5050, + "propriétaires,": 5051, + "locataires": 5052, + "visités.": 5053, + "d’émettre": 5054, + "prescrivant": 5055, + "corriger": 5056, + "dangereuse": 5057, + "d’appliquer;": 5058, + "demeure": 5059, + "d’évacuer": 5060, + "provisoirement": 5061, + "compromettrait": 5062, + "personne;": 5063, + "semble": 5064, + "clôturer": 5065, + "excavation": 5066, + "fermer,": 5067, + "longtemps": 5068, + "subsiste,": 5069, + "rue;": 5070, + "cessent": 5071, + "l’occupation,": 5072, + "bâtiment;": 5073, + "techniques,": 5074, + "tests,": 5075, + "essais,": 5076, + "l’inspection": 5077, + "s’ils": 5078, + "devis;": 5079, + "nécessite;": 5080, + "essais": 5081, + "dispositifs,": 5082, + "méthodes": 5083, + "fonctionnels": 5084, + "structuraux": 5085, + "fondations;": 5086, + "l’arrêt": 5087, + "résultat": 5088, + "démontre": 5089, + "interdire": 5090, + "résistance": 5091, + "l’érection": 5092, + "l’autorisation": 5093, + "enjoindre": 5094, + "corrigée": 5095, + "détermine.": 5096, + "l’obligation": 5097, + "inspecter,": 5098, + "filmer,": 5099, + "échantillons,": 5100, + "d’inspection": 5101, + "règlements;": 5102, + "s’abstenir": 5103, + "dénigrer,": 5104, + "injurier,": 5105, + "menacer": 5106, + "l’intégrité": 5107, + "mentale": 5108, + "travail": 5109, + "nécessitent": 5110, + "certificat,": 5111, + "travailler,": 5112, + "entreprenne": 5113, + "exige": 5114, + "certificat;": 5115, + "exigés,": 5116, + "promptement": 5117, + "s'ils": 5118, + "l’obtention": 5119, + "bâtiments,": 5120, + "coulée": 5121, + "fondations,": 5122, + "50%": 5123, + "plus;": 5124, + "signifier": 5125, + "compétente,": 5126, + "commencer": 5127, + "nom,": 5128, + "l’adresse": 5129, + "téléphone": 5130, + "l’entrepreneur": 5131, + "travaux;": 5132, + "agence": 5133, + "d’essais": 5134, + "retenue": 5135, + "surveiller": 5136, + "d’emploi": 5137, + "déroulement": 5138, + "produit;": 5139, + "exécutés;": 5140, + "afficher,": 5141, + "visible": 5142, + "lisible": 5143, + "obligatoire": 5144, + "renouveler": 5145, + "échue": 5146, + "renouvelé": 5147, + "fois;": 5148, + "visés,": 5149, + "stipulées": 5150, + "déclarations": 5151, + "faites;": 5152, + "d’entreprendre": 5153, + "lesdites": 5154, + "modifications;": 5155, + "l’opération,": 5156, + "résulter": 5157, + "exigé;": 5158, + "s’assurer,": 5159, + "qu’aucune": 5160, + "n’existe": 5161, + "attribuable": 5162, + "complétés": 5163, + "circonstances;": 5164, + "dangereux,": 5165, + "endommagé": 5166, + "incendié": 5167, + "situation,": 5168, + "signaliser": 5169, + "spécifié": 5170, + "d’appliquer": 5171, + "responsabilité;": 5172, + "effectuer,": 5173, + "propres": 5174, + "conformée": 5175, + "compétente;": 5176, + "cours.": 5177, + "apportée": 5178, + "clauses": 5179, + "initial.": 5180, + "addenda": 5181, + "cependant": 5182, + "prolonger": 5183, + "l'octroi": 5184, + "faites": 5185, + "relever": 5186, + "d'exécuter": 5187, + "code.": 5188, + "2022-04-20": 5189, + "(r1314-2021-pc-1,": 5190, + "2023-05-09": 5191, + "(r1314-2021-pc-2,": 5192, + "commets": 5193, + "fais": 5194, + "mobilier": 5195, + "permets": 5196, + "abats": 5197, + "déboise,": 5198, + "enlève": 5199, + "détruis": 5200, + "strates": 5201, + "herbacées,": 5202, + "arbustives": 5203, + "arborescentes": 5204, + "érige,": 5205, + "modifie,": 5206, + "transforme,": 5207, + "agrandis": 5208, + "l’érection,": 5209, + "modification,": 5210, + "transformation": 5211, + "obtenu,": 5212, + "préalable,": 5213, + "contrefais,": 5214, + "altère,": 5215, + "falsifie": 5216, + "contrefaçon,": 5217, + "l’accompagne,": 5218, + "empêche": 5219, + "examen;": 5220, + "offre": 5221, + "offert": 5222, + "location,": 5223, + "consécutifs,": 5224, + "tourisme": 5225, + "dénigre,": 5226, + "injure,": 5227, + "(r1314-2021-z-8,": 5228, + "l’infraction,": 5229, + "n’excédant": 5230, + "participation,": 5231, + "figurant": 5232, + "sus": 5233, + "l’amende.": 5234, + "doublée": 5235, + "imposé.": 5236, + "l'infraction": 5237, + "séparée;": 5238, + "délinquant": 5239, + "présumé": 5240, + "commettre": 5241, + "d'infractions": 5242, + "verbal": 5243, + "contrevenant.": 5244, + "donné,": 5245, + "d’exercer,": 5246, + "meuble": 5247, + "l’autorisant": 5248, + "compagnie,": 5249, + "désignant": 5250, + "copropriétaires": 5251, + "actionnaires": 5252, + "émises": 5253, + "administrateurs": 5254, + "requises.": 5255, + "insuffisants": 5256, + "essentiels": 5257, + "exigées": 5258, + "démontrée": 5259, + "autrement,": 5260, + "documents,": 5261, + "parmi": 5262, + "conséquence,": 5263, + "fournir.": 5264, + "l’architecture": 5265, + "reliés,": 5266, + "conditionnel,": 5267, + "m2;": 5268, + "majeur;": 5269, + "numérique": 5270, + "présentés": 5271, + "accompagnant": 5272, + "détails": 5273, + "architecturaux,": 5274, + "formulaires,": 5275, + "etc.,": 5276, + "format": 5277, + "adobe": 5278, + "acrobate": 5279, + "®": 5280, + "photographie": 5281, + "reproduite": 5282, + "numérisée.": 5283, + "fichiers": 5284, + "individuels": 5285, + "photo,": 5286, + "accepté.": 5287, + "complet": 5288, + "incomplète,": 5289, + "insuffisante": 5290, + "conforme,": 5291, + "verbalement": 5292, + "suspendue": 5293, + "ouvrables.": 5294, + "justifiant": 5295, + "l’interruption": 5296, + "l’échéance": 5297, + "considère": 5298, + "annulée": 5299, + "archive": 5300, + "dossier.": 5301, + "moment,": 5302, + "récupérer": 5303, + "deviennent": 5304, + "nuls": 5305, + "avenus": 5306, + "débuté": 5307, + "émission.": 5308, + "interruption": 5309, + "conduira": 5310, + "d’autorisation.": 5311, + "avenu": 5312, + "aurait": 5313, + "erronés,": 5314, + "représentation.": 5315, + "précédents": 5316, + "quelques": 5317, + "défrayé": 5318, + "remboursé": 5319, + "déposés": 5320, + "conservés": 5321, + "levées": 5322, + "immédiatement.": 5323, + "acquittés": 5324, + "seules": 5325, + "avenu.": 5326, + "affiché": 5327, + "dits": 5328, + "durées.": 5329, + "modifiés.": 5330, + "approbation": 5331, + "20,00": 5332, + "rembourse": 5333, + "différence": 5334, + "déboursé": 5335, + "permis.": 5336, + "constructeur": 5337, + "envers": 5338, + "dégagée": 5339, + "accordée.": 5340, + "omis": 5341, + "signale": 5342, + "manquements": 5343, + "250": 5344, + "ajouté": 5345, + "couts": 5346, + "associés": 5347, + "coemphytéose": 5348, + "verticale.": 5349, + "bureau": 5350, + "diffère": 5351, + "inscrit": 5352, + "transmettre,": 5353, + "électronique": 5354, + "diffère.": 5355, + "75,00": 5356, + "copropriété.": 5357, + "accepté": 5358, + "exigés;": 5359, + "payé;": 5360, + "payées,": 5361, + "attesté": 5362, + "émanant": 5363, + "résolutions": 5364, + "délivrées": 5365, + "(piia)": 5366, + "argent": 5367, + "partis;": 5368, + "expert": 5369, + "compatible": 5370, + "l'environnement": 5371, + "lutte": 5372, + "changements": 5373, + "contaminé;": 5374, + "gouvernemental.": 5375, + "nul,": 5376, + "caduc": 5377, + "enregistrement": 5378, + "points": 5379, + "l'appui": 5380, + "approbations": 5381, + "enregistrée": 5382, + "délivrance.": 5383, + "enregistrer": 5384, + "information,": 5385, + "faux": 5386, + "erroné;": 5387, + "répertoire": 5388, + "contaminés": 5389, + "réhabilitation,": 5390, + "devront": 5391, + "31.65": 5392, + "demandé": 5393, + "réhabilitation;": 5394, + "politique": 5395, + "décontamination": 5396, + "réhabilitation.": 5397, + "règlementation,": 5398, + "fond,": 5399, + "portions": 5400, + "privatives": 5401, + "subdivisées": 5402, + "verticalement": 5403, + "par-dessus": 5404, + "conforme.": 5405, + "identifiées": 5406, + "s’appliquent.": 5407, + "parcelle": 5408, + "parcelle,": 5409, + "rattacher": 5410, + "l’éliminer": 5411, + "pas.": 5412, + "voudrait": 5413, + "apporter": 5414, + "l’intégrer": 5415, + "l'émission": 5416, + "d'obligation": 5417, + "d'accepter": 5418, + "paraissant": 5419, + "l'ouverture": 5420, + "voies,": 5421, + "d'en": 5422, + "d'entretien,": 5423, + "civiles,": 5424, + "5,": 5425, + "intégré,": 5426, + "aboutissant": 5427, + "adressé": 5428, + "prénom,": 5429, + "postale,": 5430, + "courriel": 5431, + "procuration;": 5432, + "(1)": 5433, + "papier,": 5434, + "l'identification": 5435, + "adjacentes;": 5436, + "publics,": 5437, + "proposés,": 5438, + "existante;": 5439, + "lacs,": 5440, + "derniers,": 5441, + "biologiste": 5442, + "matière;": 5443, + "inondable,": 5444, + "élévations": 5445, + "récurrence": 5446, + "côtes": 5447, + "d’érosion": 5448, + "probable": 5449, + "l'emplacement,": 5450, + "d'espace": 5451, + "relocalisation": 5452, + "proposée": 5453, + "motorisé": 5454, + "répertorié": 5455, + "cartographie": 5456, + "projetés;": 5457, + "résultats": 5458, + "celle-ci;": 5459, + "l'échelle": 5460, + "utilisée;": 5461, + "k.": 5462, + "sommets": 5463, + "montagnes": 5464, + "qu’identifiés": 5465, + "sommet": 5466, + "montagne;": 5467, + "comportant": 5468, + "gestion": 5469, + "incombe": 5470, + "transports,": 5471, + "d’accès,": 5472, + "v-9);": 5473, + "n.": 5474, + "divise,": 5475, + "exclusives": 5476, + "(privatives)": 5477, + "communes;": 5478, + "o.": 5479, + "256.1": 5480, + "c.a-19.1)": 5481, + "p.": 5482, + "confirmer": 5483, + "saisi": 5484, + "informe": 5485, + "nécessaires.": 5486, + "assurant": 5487, + "conclue.": 5488, + "contenir": 5489, + "supérieur": 5490, + "fera": 5491, + "intégré.": 5492, + "transmis,": 5493, + "dépôt,": 5494, + "pdf": 5495, + "(adobe": 5496, + "acrobat)": 5497, + "postale": 5498, + "professionnels": 5499, + "travaillé": 5500, + "documents;": 5501, + "exécuté": 5502, + "environnant,": 5503, + "(affectations": 5504, + "sols,": 5505, + "etc.);": 5506, + "concernée,": 5507, + "compétent,": 5508, + "professionnel,": 5509, + "000,": 5510, + "relief": 5511, + "exprimé": 5512, + "équidistantes": 5513, + "moyenne);": 5514, + "(escarpements": 5515, + "rocheux,": 5516, + "probable,": 5517, + "héronnières,": 5518, + "apte": 5519, + "déterminer;": 5520, + "d’accès;": 5521, + "eaux;": 5522, + "lignes,": 5523, + "projeté;": 5524, + "l'implantation": 5525, + "approximative": 5526, + "homologuées": 5527, + "communiquent;": 5528, + "sol,": 5529, + "niveaux": 5530, + "d’excavation": 5531, + "nivèlement": 5532, + "longitudinales": 5533, + "mesurées": 5534, + "menant": 5535, + "phases": 5536, + "développement,": 5537, + "architecturales": 5538, + "tracé,": 5539, + "véhiculaires": 5540, + "proposée,": 5541, + "suite;": 5542, + "proposées;": 5543, + "communes": 5544, + "semi-enfouis": 5545, + "résiduelles,": 5546, + "récupérables": 5547, + "compostables;": 5548, + "q.": 5549, + "l’évaluation": 5550, + "potentiels": 5551, + "appréhendés": 5552, + "linéaire,": 5553, + "préventives": 5554, + "d’atténuations": 5555, + "envisagées": 5556, + "linéaires,": 5557, + "s.": 5558, + "environnementale": 5559, + "visée,": 5560, + "préparée": 5561, + "matière,": 5562, + "comment": 5563, + "l’impact": 5564, + "écosystémique": 5565, + "développement:": 5566, + "d’eau,": 5567, + "héronnière": 5568, + "renaturalisation": 5569, + "atténuer": 5570, + "naturels;": 5571, + "dernières": 5572, + "exigé": 5573, + "article;": 5574, + "seraient": 5575, + "viabilisés": 5576, + "d’évacuation": 5577, + "usées,": 5578, + "constructibles": 5579, + "montrés": 5580, + "problématiques": 5581, + "implique": 5582, + "ingénieur": 5583, + "spécialisé": 5584, + "actuelles": 5585, + "approvisionner": 5586, + "traiter": 5587, + "générées": 5588, + "décrivant,": 5589, + "d’approvisionnement": 5590, + "potables": 5591, + "fiscale": 5592, + "gouverne": 5593, + "qualifié": 5594, + "investissements": 5595, + "compensés": 5596, + "revenus": 5597, + "retirera": 5598, + "subséquentes": 5599, + "d’atteindre": 5600, + "unités": 5601, + "d’hébergement,": 5602, + "n’aura": 5603, + "d’impact": 5604, + "perceptible": 5605, + "déplacements": 5606, + "(délai,": 5607, + "congestion,": 5608, + "sécurité,": 5609, + "viabilité": 5610, + "infrastructures)": 5611, + "mitigations": 5612, + "diversification": 5613, + "proposés.": 5614, + "commentaires,": 5615, + "d’égout.": 5616, + "communautaire.": 5617, + "piia": 5618, + "réputée": 5619, + "après,": 5620, + "concept.": 5621, + "soirée": 5622, + "d’information": 5623, + "l’accepte": 5624, + "condition.": 5625, + "lieu.": 5626, + "l’acceptation": 5627, + "(selon": 5628, + "établies,": 5629, + "inclues": 5630, + "phase)": 5631, + "mineurs": 5632, + "quoi": 5633, + "caduque.": 5634, + "adjacente": 5635, + "minimalement": 5636, + "datée,": 5637, + "(3)": 5638, + "copies": 5639, + "préparés": 5640, + "adresse,": 5641, + "adresse": 5642, + "dimensions;": 5643, + ":5000": 5644, + "l’échelle": 5645, + "géographique;": 5646, + "numéros": 5647, + "contigus;": 5648, + "d’ingénieur": 5649, + "envisagé,": 5650, + "prévoyant": 5651, + "illustrant": 5652, + "environnant": 5653, + "propriété,": 5654, + "niveau;": 5655, + "(patrons": 5656, + "d’inondation,": 5657, + "mouvement": 5658, + "pentes)": 5659, + "arpenteur-géomètre;": 5660, + "(aqueduc,": 5661, + "câble,": 5662, + "électricité,": 5663, + "etc..)": 5664, + "affecté;": 5665, + "courbure;": 5666, + "(rue": 5667, + "locale,": 5668, + "collectrice,": 5669, + "régionale…);": 5670, + "apportées": 5671, + "patron": 5672, + "linéaire;": 5673, + "linéaires.": 5674, + "27": 5675, + "d’ouvrage.": 5676, + "d’autorisation,": 5677, + "note": 5678, + "détachée": 5679, + "érigée,": 5680, + "partie,": 5681, + "fondation": 5682, + "dalle": 5683, + "sol;": 5684, + "carrés.": 5685, + "abritant": 5686, + "abriter": 5687, + "(h)": 5688, + "groupe,": 5689, + "additionnant": 5690, + "respectives": 5691, + "+": 5692, + "qu’habitation).": 5693, + "autre.": 5694, + "financières": 5695, + "relevant": 5696, + "compétence": 5697, + "construire,": 5698, + "piscine,": 5699, + "plongeoir,": 5700, + "transformer,": 5701, + "agrandir": 5702, + "empêchant": 5703, + "menus": 5704, + "normal": 5705, + "situations": 5706, + "rencontrées": 5707, + "déclarée": 5708, + "séparément": 5709, + "$;": 5710, + "fondations": 5711, + "portantes": 5712, + "modifiées;": 5713, + "plancher": 5714, + "augmentée;": 5715, + "logements;": 5716, + "coucher": 5717, + "traitées": 5718, + "sanitaire;": 5719, + "citation": 5720, + "monument": 5721, + "patrimoine.": 5722, + "indicatif,": 5723, + "revêtement": 5724, + "murs": 5725, + "intérieurs": 5726, + "toiture;": 5727, + "vitres,": 5728, + "baies": 5729, + "vitrées,": 5730, + "fenêtres": 5731, + "portes,": 5732, + "ouvertures": 5733, + "obstruer": 5734, + "totalement": 5735, + "n’y": 5736, + "distinctes": 5737, + "créées;": 5738, + "pose": 5739, + "bouche": 5740, + "d’aération;": 5741, + "peinture,": 5742, + "créosotage": 5743, + "toit": 5744, + "goudronnage": 5745, + "toit;": 5746, + "consolidation": 5747, + "d’installation": 5748, + "cheminée,": 5749, + "poêle": 5750, + "foyer": 5751, + "préfabriqué;": 5752, + "ventilation;": 5753, + "gouttières;": 5754, + "mortier;": 5755, + "endommagés": 5756, + "détériorés": 5757, + "balcon,": 5758, + "galerie,": 5759, + "patio": 5760, + "type,": 5761, + "modifiés;": 5762, + "électrique": 5763, + "câblage": 5764, + "électrique;": 5765, + "l'ajout": 5766, + "électrique,": 5767, + "prises": 5768, + "électriques,": 5769, + "commutateurs,": 5770, + "éclairage": 5771, + "similaires": 5772, + "structure;": 5773, + "d'alarme": 5774, + "(feu,": 5775, + "vol,": 5776, + "central": 5777, + "chauffage": 5778, + "(ex.": 5779, + "bruleur": 5780, + "l'huile": 5781, + "fournaise": 5782, + "électrique);": 5783, + "plomberie": 5784, + "(tuyaux,": 5785, + "évier,": 5786, + "toilette,": 5787, + "bain,": 5788, + "concernent": 5789, + "évacuateur": 5790, + "fumée": 5791, + "(hotte": 5792, + "poêle);": 5793, + "d'étagères": 5794, + "d’armoires;": 5795, + "plancher;": 5796, + "démontable": 5797, + "réinstallation": 5798, + "l’ancienne.": 5799, + "l'exemption": 5800, + "l'espèce,": 5801, + "s'enquérir": 5802, + "(usage": 5803, + "2000$": 5804, + "déposé.": 5805, + "remises": 5806, + "forme.": 5807, + "qu’exigé": 5808, + "d’entretiens": 5809, + "provinciale;": 5810, + "forage": 5811, + "provinciale.": 5812, + "chantier": 5813, + "octroyées;": 5814, + "photo": 5815, + "déboisés": 5816, + "espaces;": 5817, + "compteur": 5818, + "d’eau.": 5819, + "500$": 5820, + "riveraine.": 5821, + "seuls": 5822, + "d’être": 5823, + "complétés.": 5824, + "recevra": 5825, + "confirmation": 5826, + "démontrer": 5827, + "confisquera": 5828, + "définitive": 5829, + "5)": 5830, + "payée;": 5831, + "déposées;": 5832, + "former,": 5833, + "conformes,": 5834, + "furent": 5835, + "créés.": 5836, + "visent": 5837, + "n’impliquent": 5838, + "d’évacuation,": 5839, + "cabinets": 5840, + "d’aisances": 5841, + "ménagères": 5842, + "r.22);": 5843, + "prélèvement": 5844, + "q": 5845, + "2,": 5846, + "35.2);": 5847, + "agricoles": 5848, + "terre": 5849, + "culture;": 5850, + "immatriculation": 5851, + "immatriculation,": 5852, + "lorsqu’en": 5853, + "raccordé": 5854, + "sanitaire,": 5855, + "maitre": 5856, + "d’œuvre": 5857, + "d’emprunt": 5858, + "l’être": 5859, + "énoncées": 5860, + "rencontrées;": 5861, + "d’alimentation": 5862, + "édictés": 5863, + "empire.": 5864, + "agricoles,": 5865, + "1000-1999-pc,": 5866, + "carrossable": 5867, + "sédiments.": 5868, + "abri": 5869, + "forestier": 5870, + "cabane": 5871, + "sucre": 5872, + "domestique;": 5873, + "réparation,": 5874, + "enclavé": 5875, + "perdu": 5876, + "fortuit,": 5877, + "réelle": 5878, + "publiée": 5879, + "carrossable,": 5880, + "complétée": 5881, + "débutent": 5882, + "l’incendie": 5883, + "sinistre;": 5884, + "réalisé": 5885, + "zc.1-": 5886, + "005,": 5887, + "zc.1-004": 5888, + "connecté": 5889, + "véhiculaire": 5890, + "rejoindre": 5891, + "n;": 5892, + "précédent,": 5893, + "bénéficier": 5894, + "aout": 5895, + "1999": 5896, + "mener": 5897, + "10;": 5898, + "morcelé": 5899, + "unifamiliale": 5900, + "isolée;": 5901, + "l’allée": 5902, + "a,": 5903, + "versé": 5904, + "adoptée;": 5905, + "loi;": 5906, + "installées": 5907, + "humide;": 5908, + "carrés": 5909, + "porterait": 5910, + "surfaces": 5911, + "imperméables": 5912, + "l’effet": 5913, + "rétention": 5914, + "pluviales": 5915, + "publiques,": 5916, + "l’alinéa": 5917, + "2007.": 5918, + "(immeuble": 5919, + "non-résidentiel": 5920, + "1500": 5921, + "m2": 5922, + "plancher),": 5923, + "précéder": 5924, + "1314-2021-piia": 5925, + "évaluation": 5926, + "adéquate": 5927, + "d’évaluation.": 5928, + "retraitées,": 5929, + "remplies": 5930, + "120.1": 5931, + "a-19.1);": 5932, + "120.0.1": 5933, + "contaminé.": 5934, + "foncier": 5935, + "commencés": 5936, + "écoulée": 5937, + "interrompus": 5938, + "consécutifs;": 5939, + "365": 5940, + "écoulés": 5941, + "rattachées": 5942, + "désigné;": 5943, + "6,": 5944, + "corrigés": 5945, + "approuvées": 5946, + "architecturale.": 5947, + "1,": 5948, + "64,": 5949, + "l’expiration": 5950, + "1°,": 5951, + "64;": 5952, + "concerner": 5953, + "initial": 5954, + "initial,": 5955, + "nécessaires;": 5956, + "fois.": 5957, + "apportée.": 5958, + "correspond": 5959, + "initiale.": 5960, + "déterminera": 5961, + "importance": 5962, + "changé,": 5963, + "différent": 5964, + "réalisera": 5965, + "choisi,": 5966, + "impliqués": 5967, + "chantier;": 5968, + "réalisation;": 5969, + "exactes,": 5970, + "attestées": 5971, + "habiletés": 5972, + "reconnus.": 5973, + "signés": 5974, + "scellés": 5975, + "technologue": 5976, + "technologues": 5977, + "architecte": 5978, + "architectes": 5979, + "c.b-1.1),": 5980, + "architecte,": 5981, + "c.a-21)": 5982, + "charpente": 5983, + "électriques": 5984, + "mécaniques.": 5985, + "d’ingénierie": 5986, + "a-21)": 5987, + "i-9);": 5988, + "(1/16\"": 5989, + "1’),": 5990, + "(1/8\"": 5991, + "1’)": 5992, + "(1/4\"": 5993, + "1’).": 5994, + "d’implantation,": 5995, + "arpenteur": 5996, + "géomètre,": 5997, + "concerné,": 5998, + "énumérées": 5999, + "limites,": 6000, + "cadastral;": 6001, + "%;": 6002, + "lacs": 6003, + "humides": 6004, + "respectives,": 6005, + "déterminées": 6006, + "projetée;": 6007, + "pourcentage": 6008, + "cote": 6009, + "altimétrique": 6010, + "rez-de-chaussée": 6011, + "soutènement,": 6012, + "clôtures,": 6013, + "murets,": 6014, + "haies,": 6015, + "déblais": 6016, + "remblais;": 6017, + "cases": 6018, + "réservées": 6019, + "handicapées": 6020, + "plan;": 6021, + "récupération": 6022, + "ruissèlement;": 6023, + "localisée": 6024, + "d’entreposage,": 6025, + "résiduelles": 6026, + "écrans": 6027, + "grevant": 6028, + "sous-sol,": 6029, + "étage;": 6030, + "transversales": 6031, + "murs,": 6032, + "planchers,": 6033, + "plafond": 6034, + "toitures": 6035, + "matériaux": 6036, + "spécifications": 6037, + "ceux-ci;": 6038, + "porteurs": 6039, + "feu": 6040, + "obtenue": 6041, + "séparations": 6042, + "coupe-feu,": 6043, + "degré": 6044, + "pare-": 6045, + "flamme": 6046, + "dispositifs": 6047, + "d’obstruction,": 6048, + "fondation,": 6049, + "charpente,": 6050, + "mécanique": 6051, + "ventilation,": 6052, + "l’acte": 6053, + "l’existence": 6054, + "passage;": 6055, + "scellée": 6056, + "scellé": 6057, + "lorsqu’exigé": 6058, + "nord,": 6059, + "pays-d’en-haut": 6060, + "ainés": 6061, + "118.1": 6062, + "d’hébergement": 6063, + "fluidité.": 6064, + "unifamiliale,": 6065, + "bifamiliale,": 6066, + "trifamiliale": 6067, + "maison": 6068, + "mobile,": 6069, + "projeté.": 6070, + "d’implantation;": 6071, + "arbres;": 6072, + "n’augmentant": 6073, + "requièrent": 6074, + "d’arpentage": 6075, + "existant;": 6076, + "détaillés": 6077, + "l’échelle,": 6078, + "intérieurs,": 6079, + "(dimensions": 6080, + "espacement": 6081, + "solives": 6082, + "plancher);": 6083, + "portes": 6084, + "fenêtres;": 6085, + "fermes": 6086, + "(dessins": 6087, + "techniques);": 6088, + "détaillées": 6089, + "planchers;": 6090, + "revêtements": 6091, + "toits;": 6092, + "galeries,": 6093, + "escaliers,": 6094, + "garde-corps,": 6095, + "etc.": 6096, + "logement,": 6097, + "l’architecte": 6098, + "national": 6099, + "projetée,": 6100, + "existantes;": 6101, + "déboiser;": 6102, + "l’espace": 6103, + "remblais": 6104, + "soutènement": 6105, + "aménager,": 6106, + "existants.": 6107, + "1,5": 6108, + "marge": 6109, + "recul": 6110, + "prescrite;": 6111, + "montagne": 6112, + "montrer": 6113, + "l’emplacement;": 6114, + "eaux,": 6115, + "correspondant": 6116, + "cotes": 6117, + "crue": 6118, + "sol.": 6119, + "montagne.": 6120, + "autres,": 6121, + "l’agrandissement,": 6122, + "reconstruction,": 6123, + "rénovation),": 6124, + "transformation,": 6125, + "d’habitation,": 6126, + "exemplaires": 6127, + "façades": 6128, + "(à": 6129, + "existant)": 6130, + "érigés": 6131, + "qu’habitation": 6132, + "mobile;": 6133, + "(plus": 6134, + "d’implantation)": 6135, + "d’habitation;": 6136, + "récréation": 6137, + "relié": 6138, + "intensif": 6139, + "(c09-01).": 6140, + "(r.r.q.,": 6141, + "r.22),": 6142, + "ans.": 6143, + "suivants,": 6144, + "conformité.": 6145, + "(tous": 6146, + "matière)": 6147, + "exactes": 6148, + "règlementés": 6149, + "7.1": 6150, + "7.2": 6151, + "r.22)": 6152, + "tuyauterie": 6153, + "enfouie": 6154, + "n’empêchent": 6155, + "certification": 6156, + "l’installation;": 6157, + "respectent": 6158, + "règlementation;": 6159, + "consultant": 6160, + "marques": 6161, + "exigées.": 6162, + "35.2),": 6163, + "climatiques,": 6164, + "accompagnée,": 6165, + "captée;": 6166, + "desservies": 6167, + "l’ouvrage": 6168, + "captage;": 6169, + "cube": 6170, + "(m³/jour);": 6171, + "d’ouvrage": 6172, + "supervision": 6173, + "scellement": 6174, + "contigu.": 6175, + "étanche": 6176, + "usées;": 6177, + "lac;": 6178, + "culture.": 6179, + "7)": 6180, + "l’installation,": 6181, + "l’emplacement,": 6182, + "piscine;": 6183, + "interdisant": 6184, + "escalier": 6185, + "géomètre": 6186, + "conjointement": 6187, + "paroi.": 6188, + "40": 6189, + "liste": 6190, + "31.68": 6191, + "lettre,": 6192, + "serment": 6193, + "attestant,": 6194, + "ministre,": 6195, + "q-2),": 6196, + "précitée": 6197, + "ci-dessus.": 6198, + "v-9)": 6199, + "affectant,": 6200, + "certifié": 6201, + "traitée": 6202, + "gouvernement,": 6203, + "mandataires": 6204, + "pays-d’en-": 6205, + "haut,": 6206, + "émise,": 6207, + "gouvernemental,": 6208, + "l’attestation": 6209, + "schéma": 6210, + "révisé": 6211, + "remaniement,": 6212, + "utilisées": 6213, + "incluent,": 6214, + "exhaustive": 6215, + "remblai;": 6216, + "forestier,": 6217, + "réfection": 6218, + "majeure": 6219, + "route;": 6220, + "septique": 6221, + "(fosse": 6222, + "d’épuration)": 6223, + "puits;": 6224, + "d’arbres,": 6225, + "l’enlèvement": 6226, + "souches;": 6227, + "d’installations": 6228, + "accessoires.": 6229, + "pluviales;": 6230, + "recouvrement": 6231, + "imperméable;": 6232, + "délivré.": 6233, + "genre": 6234, + "actuelle": 6235, + "faite;": 6236, + "ln": 6237, + "appropriée": 6238, + "projette": 6239, + "pertinents": 6240, + "suivants;": 6241, + "roulement": 6242, + "cyclable;": 6243, + "chemin,": 6244, + "d’eau;": 6245, + "(30)": 6246, + "complets": 6247, + "(4)": 6248, + "faces,": 6249, + "pièces;": 6250, + "végétalisés": 6251, + "actuel": 6252, + "prévue;": 6253, + "mrc,": 6254, + "requise;": 6255, + "43": 6256, + "d’abattage": 6257, + "morts": 6258, + "cordes": 6259, + "bois": 6260, + "l’entretien,": 6261, + "hydro-québec": 6262, + "autorisé.": 6263, + "pays-d‘en-haut": 6264, + "l’entretien": 6265, + "motorisé.": 6266, + "d’autorisation;": 6267, + "évalue": 6268, + "superflue.": 6269, + "traité": 6270, + "pays-d’en-haut,": 6271, + "officiels,": 6272, + "exacte": 6273, + "l’emprise;": 6274, + "résumé": 6275, + "conduite,": 6276, + "l’excavation": 6277, + "remblayage": 6278, + "utilisés,": 6279, + "service;": 6280, + "mrc.": 6281, + "l’implantation,": 6282, + "éolienne,": 6283, + "l’éolienne,": 6284, + "couleurs,": 6285, + "matériau,": 6286, + "l’arbre": 6287, + "abattre": 6288, + "paysagers;": 6289, + "l’espèce": 6290, + "souche": 6291, + "abattre;": 6292, + "l’arbre;": 6293, + "prénom": 6294, + "justifié": 6295, + "atteint": 6296, + "maladie": 6297, + "incurable": 6298, + "bienêtre": 6299, + "arboriculteur;": 6300, + "abattu,": 6301, + "planté": 6302, + "abattu": 6303, + "planté.": 6304, + "d’effectuer": 6305, + "escarpements": 6306, + "caps": 6307, + "etc.).": 6308, + "papiers": 6309, + "(préparé": 6310, + "dessiné": 6311, + "établir": 6312, + "sorties;": 6313, + "l’intermédiaire": 6314, + "jardins": 6315, + "pluie,": 6316, + "fossé": 6317, + "végétalisé,": 6318, + "filtrante,": 6319, + "puits": 6320, + "absorbant,": 6321, + "bassin": 6322, + "sédimentation": 6323, + "nature,": 6324, + "drainer": 6325, + "québec;": 6326, + "dessin": 6327, + "enseignes": 6328, + "directionnelles;": 6329, + "haies": 6330, + "clôtures;": 6331, + "(arbre,": 6332, + "arbustes,": 6333, + "vivace);": 6334, + "utilisés.": 6335, + "s’applique;": 6336, + "accès.": 6337, + "délivrée.": 6338, + "d’habitations,": 6339, + "intégré;": 6340, + "largeurs,": 6341, + "cercles": 6342, + "plateaux": 6343, + "d’intervention": 6344, + "effectuer;": 6345, + "d’excavation;": 6346, + "d’allées": 6347, + "surfaces;": 6348, + "(fondation,": 6349, + "roulement),": 6350, + "proposés;": 6351, + "portante": 6352, + "conforment": 6353, + "v-9).": 6354, + "muret": 6355, + "t5": 6356, + "centre-ville": 6357, + "zc": 6358, + "commercial": 6359, + "zi": 6360, + "industriel": 6361, + "muret;": 6362, + "sylvicole,": 6363, + "l'adresse": 6364, + "détenteur": 6365, + "coupe,": 6366, + "l'entrepreneur": 6367, + "exécutera": 6368, + "visée;": 6369, + "coupes;": 6370, + "peuplement;": 6371, + "tiges": 6372, + "l'objectif": 6373, + "l’intervention;": 6374, + "effectuée;": 6375, + "effectué;": 6376, + "méthode": 6377, + "récolte": 6378, + "tiges;": 6379, + "d'empilement,": 6380, + "forestiers": 6381, + "prévus;": 6382, + "sensibles": 6383, + "zonage;": 6384, + "sépare": 6385, + "foncière;": 6386, + "tronçonnage": 6387, + "d’empilement;": 6388, + "reboisement": 6389, + "projetés,": 6390, + "tenants,": 6391, + "séparant;": 6392, + "coupés": 6393, + "l’occasion": 6394, + "identifiés": 6395, + "marque": 6396, + "distinctive": 6397, + "martelage": 6398, + "sélection": 6399, + "martelées;": 6400, + "premières": 6401, + "semaines": 6402, + "débutés,": 6403, + "d’exécution": 6404, + "périodique": 6405, + "périodique.": 6406, + "décrivant": 6407, + "prévoit": 6408, + "terrière": 6409, + "boisée": 6410, + "peuplement": 6411, + "mature,": 6412, + "chablis": 6413, + "d'assainissement": 6414, + "sylvicole": 6415, + "contenant": 6416, + "nomenclature": 6417, + "écoforestière;": 6418, + "l'âge": 6419, + "couvert": 6420, + "forestier;": 6421, + "essence;": 6422, + "poitrine": 6423, + "terrière,": 6424, + "hectare": 6425, + "volume": 6426, + "boisée.": 6427, + "extérieures": 6428, + "démolir;": 6429, + "démolition;": 6430, + "moyens": 6431, + "explique": 6432, + "démolie,": 6433, + "inaccessible;": 6434, + "propreté": 6435, + "fermer": 6436, + "condamner": 6437, + "l’aqueduc": 6438, + "l’égout": 6439, + "septique.": 6440, + "environs;": 6441, + "déplacée;": 6442, + "déplacée": 6443, + "d'implantation,": 6444, + "déplacée,": 6445, + "69": 6446, + "corps": 6447, + "parapublics": 6448, + "(hydro-québec,": 6449, + "bell": 6450, + "référant": 6451, + "l'itinéraire": 6452, + "poids": 6453, + "approximatif;": 6454, + "l'heure": 6455, + "suggérées": 6456, + "déplacement;": 6457, + "déménageur;": 6458, + "suffisant": 6459, + "déplacement.": 6460, + "73": 6461, + "support,": 6462, + "rattachée": 6463, + "d’élévation": 6464, + "façade": 6465, + "l’enseigne": 6466, + "d’ancrage;": 6467, + "d’ancrage,": 6468, + "détail": 6469, + "l’enseigne;": 6470, + "forme,": 6471, + "couleurs;": 6472, + "entier": 6473, + "visuels": 6474, + "composant": 6475, + "dessin,": 6476, + "image,": 6477, + "sigle": 6478, + "sculptés": 6479, + "reliefs;": 6480, + "fixation": 6481, + "d'éclairage,": 6482, + "remblai,": 6483, + "détaillant": 6484, + "secteurs": 6485, + "(lacs,": 6486, + "boisées,": 6487, + "matures": 6488, + "isolés,": 6489, + "transversale": 6490, + "d’altitude": 6491, + "mètre;": 6492, + "détaillant,": 6493, + "végétalisation": 6494, + "végétales": 6495, + "utilisées,": 6496, + "mur": 6497, + "m,": 6498, + "l’ouvrage,": 6499, + "littoral,": 6500, + "traverse.": 6501, + "4,": 6502, + "exécuter;": 6503, + "élévations,": 6504, + "coupes,": 6505, + "croquis": 6506, + "claire": 6507, + "dates": 6508, + "aménagements;": 6509, + "proposé;": 6510, + "rive,": 6511, + "essences": 6512, + "l’endroit": 6513, + "plantés": 6514, + "l’espacement": 6515, + "plans;": 6516, + "cave": 6517, + "sous-sol": 6518, + "d’installation,": 6519, + "traverse,": 6520, + "stabilisation": 6521, + "confectionnés": 6522, + "l’art": 6523, + "caractérisant": 6524, + "cessera;": 6525, + "changer": 6526, + "actuel,": 6527, + "biens": 6528, + "rues;": 6529, + "supérieures": 6530, + "altimétriques": 6531, + "déchets,": 6532, + "recyclage": 6533, + "compostage;": 6534, + "d'eau.": 6535, + "56": 6536, + "commercial,": 6537, + "industriel,": 6538, + "résidentiels,": 6539, + "nouvellement": 6540, + "122": 6541, + "personne,": 6542, + "société,": 6543, + "entreprise,": 6544, + "travailleur": 6545, + "autonome": 6546, + "économique": 6547, + "finance,": 6548, + "commerce,": 6549, + "d'industrie": 6550, + "services,": 6551, + "métier,": 6552, + "profession": 6553, + "d'affaires.": 6554, + "spécifiquement,": 6555, + "l’activité": 6556, + "résidentiel);": 6557, + "d’affaires;": 6558, + "d’affaires.": 6559, + "précédents,": 6560, + "d’accueil,": 6561, + "ressource": 6562, + "intermédiaire": 6563, + "familial": 6564, + "familial.": 6565, + "complémentaire),": 6566, + "d'immatriculation": 6567, + "institutions": 6568, + "l’information": 6569, + "50,00": 6570, + "changé": 6571, + "codes": 6572, + "(b-1.1),": 6573, + "payé.": 6574, + "l’afficher": 6575, + "validation": 6576, + "sociale": 6577, + "adoption,": 6578, + "rendrait": 6579, + "114": 6580, + "atteste": 6581, + "l’abandon": 6582, + "cessé": 6583, + "abandonné.": 6584, + "desquelles": 6585, + "émis;": 6586, + "indiqué;": 6587, + "émis.": 6588, + "d’émission": 6589, + "besoin": 6590, + "naissance;": 6591, + "social": 6592, + "société;": 6593, + "machinerie": 6594, + "fonctionnement": 6595, + "l’entreprise.": 6596, + "l'usage;": 6597, + "principaux": 6598, + "(h);": 6599, + "complémentaires": 6600, + "habitation.": 6601, + "bail": 6602, + "charte,": 6603, + "lettre": 6604, + "patente": 6605, + "gouvernement;": 6606, + "l’organisme": 6607, + "charité": 6608, + "charte": 6609, + "lucratif;": 6610, + "d’exploitation": 6611, + "souhaite": 6612, + "parvenir": 6613, + "précisément": 6614, + "recherchée": 6615, + "bienfondé": 6616, + "couvrant": 6617, + "argumentaire": 6618, + "demandées,": 6619, + "d’usages": 6620, + "zone,": 6621, + "assortie": 6622, + "photographique": 6623, + "complet;": 6624, + "schématique": 6625, + "d’étages": 6626, + "estimée": 6627, + "couleurs": 6628, + "choisies.": 6629, + "indication": 6630, + "séquence": 6631, + "rythme": 6632, + "annuel": 6633, + "27,9": 6634, + "cm": 6635, + "x": 6636, + "43,2": 6637, + "(11\"": 6638, + "17\")": 6639, + "pdf,": 6640, + "zone;": 6641, + "contigu": 6642, + "couverture": 6643, + "forestière,": 6644, + "garnis": 6645, + "accès;": 6646, + "phasage": 6647, + "anticipé": 6648, + "main": 6649, + "réunion": 6650, + "reçu": 6651, + "ouvrables": 6652, + "reporté": 6653, + "suivante.": 6654, + "déposée.": 6655, + "recommandation.": 6656, + "transmises": 6657, + "régulière": 6658, + "donner": 6659, + "déposée,": 6660, + "remboursant": 6661, + "entreprend": 6662, + "d’adoption": 6663, + "a-19.1)": 6664, + "suivent": 6665, + "réduisant": 6666, + "discrétionnaire": 6667, + "promulgué.": 6668, + "processus": 6669, + "remboursements": 6670, + "expressément": 6671, + "étapes": 6672, + "14e": 6673, + "quebec": 6674, + "numero": 6675, + "......................": 6676, + "déclaratoires..............................................................................................................................": 6677, + "..............................................................................................................................................................................": 6678, + "..........................................................................................................................................................................................": 6679, + "........................................................................................................................................................................": 6680, + "invalidité": 6681, + "partielle": 6682, + "..........................................................................................................................................................": 6683, + "annexés": 6684, + "...........................................................................................................................................................................": 6685, + "...............................................................................................................................................................................": 6686, + ".....................................................................................................................................................................................................": 6687, + ".......................................................................................................................................................................": 6688, + "d’interprétation": 6689, + ".......................................................................................................................................................................................": 6690, + ".....................................................................................................................................": 6691, + "travaux............................................................................": 6692, + "......................................................................................................": 6693, + "assujetissement": 6694, + "...........................................................................................................................................................................................": 6695, + "demande...................................................................................................": 6696, + "examen": 6697, + "........................................................................................................................................................": 6698, + "durable": 6699, + "..............................": 6700, + "territoires": 6701, + "interventions": 6702, + ".....................................................................................................................................................................": 6703, + "exceptions": 6704, + "................................................................................": 6705, + ".............................................................................................................................................................................": 6706, + "l’efficacité": 6707, + "énergétique": 6708, + "...........................................................................................................................................................................................................": 6709, + "secteur": 6710, + "stationnements": 6711, + "noyau": 6712, + "villageois": 6713, + "mont": 6714, + "rolland": 6715, + ".........": 6716, + "d’intérêt": 6717, + "patrimonial": 6718, + "............": 6719, + "(mont-rolland)": 6720, + "..........................": 6721, + "(zone": 6722, + "zc.1-005)": 6723, + ".......": 6724, + "!": 6725, + "signet": 6726, + "défini.": 6727, + "commerciales": 6728, + "habitations": 6729, + "multifamiliales": 6730, + "collectives": 6731, + "65": 6732, + "67": 6733, + "70": 6734, + "71": 6735, + "72": 6736, + "..................................": 6737, + "versant": 6738, + "sud": 6739, + "bleu": 6740, + "76": 6741, + "77": 6742, + "78": 6743, + "intégrés..................................................................................": 6744, + "79": 6745, + "81": 6746, + "82": 6747, + "83": 6748, + "(autoroute": 6749, + "..": 6750, + "88": 6751, + "89": 6752, + "répertoriés": 6753, + "adèle": 6754, + "xcii": 6755, + "élévation": 6756, + "(rémi": 6757, + "fortier": 6758, + "architecture": 6759, + "inc.).......................................................................................................................................": 6760, + "esquisse": 6761, + "(atelier": 6762, + "idéa)": 6763, + "exemple": 6764, + "pointage": 6765, + "...................................................................": 6766, + "........................................................................": 6767, + "historique,": 6768, + "architectural": 6769, + "inventoriés": 6770, + "68": 6771, + ".........................": 6772, + "1314-2021-piia.": 6773, + "1200-2012-piia": 6774, + "construit,": 6775, + "ceux-ci,": 6776, + "érige": 6777, + "respecter,": 6778, + "législative": 6779, + "réglementaire": 6780, + "fédérale": 6781, + "occupé,": 6782, + "utilisé,": 6783, + "chapitre,": 6784, + "déclaré": 6785, + "invalide": 6786, + "tribunal": 6787, + "reconnu,": 6788, + "continuent": 6789, + "s’appliquer.": 6790, + "intitulée": 6791, + "ambiant": 6792, + "autoroute": 6793, + "15,": 6794, + "intitulées": 6795, + "climat": 6796, + "sonore": 6797, + "simulé,": 6798, + "décibel": 6799, + "inc.,": 6800, + "pb-2007-0078": 6801, + "intégrée": 6802, + "f": 6803, + "1200-2012-z": 6804, + "d'incompatibilité,": 6805, + "générale.": 6806, + "interdiction": 6807, + "révèle": 6808, + "désaccord": 6809, + "restrictive": 6810, + "prohibitive": 6811, + "s'appliquer,": 6812, + "contraire.": 6813, + "visées": 6814, + "reliés.": 6815, + "chapitre.": 6816, + "acrobate®),": 6817, + "échantillons": 6818, + "dominants,": 6819, + "l’état": 6820, + "vues": 6821, + "percées": 6822, + "visuelles": 6823, + "modifiant": 6824, + "l’apparence": 6825, + "couleur,": 6826, + "concernée": 6827, + "piia,": 6828, + "étages,": 6829, + "toit,": 6830, + "ouvertures,": 6831, + "d’ornementation": 6832, + "saillie": 6833, + "inc.)": 6834, + "finitions": 6835, + "(revêtement": 6836, + "toitures,": 6837, + "fenêtres,": 6838, + "cadastral": 6839, + "denses": 6840, + "allés": 6841, + "ruissellement": 6842, + "modélisation": 6843, + "3d": 6844, + "visualiser": 6845, + "bifamiliale": 6846, + "trifamiliale,": 6847, + "paysagiste": 6848, + "végétaux": 6849, + "(arbres,": 6850, + "vivaces)": 6851, + "planter": 6852, + "description,": 6853, + "calibre": 6854, + "d’éclairage,": 6855, + "soutènement.": 6856, + "technologue,": 6857, + "visualisation": 6858, + "rez-de-chaussée,": 6859, + "nivellement": 6860, + "déblai,": 6861, + "profil": 6862, + "réalisés,": 6863, + "talus": 6864, + "aménagés,": 6865, + "hauteurs": 6866, + "ouvrages;": 6867, + "d’éclairage": 6868, + "récente": 6869, + "socle": 6870, + "nombres;": 6871, + "réutilisation": 6872, + "n’impliquant": 6873, + "complément": 6874, + "généraux,": 6875, + "architecturale,": 6876, + "zonage.": 6877, + "incomplets": 6878, + "imprécis,": 6879, + "l’examen": 6880, + "suspendu": 6881, + "aient": 6882, + "reçue": 6883, + "additionnels.": 6884, + "décrit": 6885, + "mentionnant": 6886, + "conformes.": 6887, + "formule,": 6888, + "recommandations,": 6889, + "pertinents,": 6890, + "approuve": 6891, + "désapprouve": 6892, + "options": 6893, + "atteignent": 6894, + "motivée": 6895, + "énoncés,": 6896, + "n’atteint": 6897, + "motivant": 6898, + "ailleurs,": 6899, + "propos,": 6900, + "-19.1).": 6901, + "enfin,": 6902, + "prenne": 6903, + "financières.": 6904, + "qu'à": 6905, + "modifié.": 6906, + "requiert": 6907, + "antérieur": 6908, + "remplit": 6909, + "formelle": 6910, + "d’approbation,": 6911, + "respecté.": 6912, + "antérieur,": 6913, + "2023-02-17": 6914, + "(r1314-2021-piia-1,": 6915, + "chapitres": 6916, + "l'exhaussement": 6917, + "parement": 6918, + "décoratif.": 6919, + "réparations": 6920, + "n’entrainent": 6921, + "texture,": 6922, + "d’appareillage": 6923, + "composantes;": 6924, + "peinture": 6925, + "teinture": 6926, + "n’altèrent": 6927, + "toiture": 6928, + "(couverture)": 6929, + "configuration,": 6930, + "conduit": 6931, + "capteurs": 6932, + "solaires": 6933, + "arrière": 6934, + "plat": 6935, + "(rue,": 6936, + "sentier,": 6937, + "publique);": 6938, + "(fenêtre": 6939, + "porte)": 6940, + "inchangés.": 6941, + "poursuivis": 6942, + "produire": 6943, + "l’environnement;": 6944, + "écologique": 6945, + "sobre": 6946, + "carbone": 6947, + "ressource;": 6948, + "régénérer": 6949, + "biodiversité.": 6950, + "d’interventions": 6951, + "d’évaluer": 6952, + "suivant.": 6953, + "tableau.": 6954, + "énergétique.": 6955, + "critère": 6956, + "s’avère": 6957, + "seuil": 6958, + "proportion": 6959, + "restants.": 6960, + "d’accès)": 6961, + "durable.": 6962, + "t5.1-002,": 6963, + "t5.2-002,": 6964, + "t5.2-003": 6965, + "t5.3-001": 6966, + "supprimé": 6967, + "textures,": 6968, + "publique)": 6969, + "écoénergétique": 6970, + "t4.1-010,": 6971, + "t4.2-004": 6972, + "t5.1-003": 6973, + "préserver": 6974, + "patrimoniale": 6975, + "secteur.": 6976, + "(source": 6977, + "2009).": 6978, + "présentent": 6979, + "section.": 6980, + "consultées": 6981, + "durabilité": 6982, + "atteintes": 6983, + "a.10)": 6984, + "(zones": 6985, + "débutant": 6986, + "excepté": 6987, + "zc.1-008).": 6988, + "11)": 6989, + "(h-04)": 6990, + "(h-06)": 6991, + "66": 6992, + "inchangés": 6993, + "excédant": 6994, + "multifamiliale": 6995, + "d’habitation.": 6996, + "lotissements": 6997, + "morin": 6998, + "grignon": 6999, + "pmahcuaeb": 7000, + "eur": 7001, + "temiuo": 7002, + "rruuee": 7003, + "lleessaaggee": 7004, + "richer": 7005, + "lesage": 7006, + "led": 7007, + "srassel": 7008, + "age": 7009, + "nongirg": 7010, + "croix": 7011, + "xueruomal": 7012, + "nidnolb": 7013, + "maurice-aveline": 7014, + "gp": 7015, + "re": 7016, + "at": 7017, + "nit": 7018, + "der": 7019, + "e": 7020, + "-u": 7021, + "o": 7022, + "rd": 7023, + "rne": 7024, + "icl": 7025, + "ca": 7026, + "he": 7027, + "valiquette": 7028, + "bellevue": 7029, + "boyer": 7030, + "l": 7031, + "é": 7032, + "n": 7033, + "d": 7034, + "ô": 7035, + "ito": 7036, + "ir": 7037, + "'é": 7038, + "lé": 7039, + "v": 7040, + "s": 7041, + "u": 7042, + "io": 7043, + "tt": 7044, + "is": 7045, + "lt": 7046, + "im": 7047, + "p": 7048, + "iia": 7049, + "triq": 7050, + "existant.": 7051, + "80": 7052, + "è": 7053, + "résidentiel.": 7054, + "l’éclairage.": 7055, + "message,": 7056, + "l’éclairage": 7057, + "l’enseigne.": 7058, + "l’enseigne,": 7059, + "message": 7060, + "commerciales,": 7061, + "84": 7062, + "85": 7063, + "86": 7064, + "87": 7065, + "km/h,": 7066, + "dba": 7067, + "leq24h,": 7068, + "montrée": 7069, + "pb-2007-0078,": 7070, + "1314-2021-z.": 7071, + "spécialiste": 7072, + "acoustique": 7073, + "leq24h": 7074, + "14)": 7075, + "localisées": 7076, + "l’éducation": 7077, + "(p)": 7078, + "novembre": 7079, + "population": 7080, + "routière": 7081, + "rapide,": 7082, + "préservation": 7083, + "auxdites": 7084, + "91": 7085, + "92": 7086, + "no": 7087, + "(noyau": 7088, + "mont-rolland)": 7089, + "angle,": 7090, + "québécoise": 7091, + "versants": 7092, + "recourbés,": 7093, + "mont-rolland,": 7094, + "cuisine": 7095, + "d’été": 7096, + "larmier": 7097, + "avant-toit": 7098, + "galerie.": 7099, + "source": 7100, + "2009.": 7101, + "93": 7102, + "pignons.": 7103, + "94": 7104, + "mont-sauvage,": 7105, + "implantée": 7106, + "notre-dame,": 7107, + "rare": 7108, + "brique": 7109, + "toits": 7110, + "croupe,": 7111, + "jumelés,": 7112, + "95": 7113, + "villageois,": 7114, + "jumelés": 7115, + "tôle": 7116, + "pincés.": 7117, + "96": 7118, + "d’esprit": 7119, + "boomtown": 7120, + "97": 7121, + "maisons": 7122, + "brique,": 7123, + "multiples,": 7124, + "98": 7125, + "cottage": 7126, + "millette,": 7127, + "99": 7128, + "bungalow": 7129, + "pavillon": 7130, + "piliers": 7131, + "recouverts": 7132, + "bardeau": 7133, + "bardeaux": 7134, + "bois.": 7135, + "(hors": 7136, + "coloniale,": 7137, + "assemblage": 7138, + "queue": 7139, + "d’aronde.": 7140, + "recouvert": 7141, + "grange.": 7142, + "latéral.": 7143, + "101": 7144, + "ancien": 7145, + "ste.": 7146, + "lodge,": 7147, + "bord": 7148, + "golf": 7149, + "chantecler,": 7150, + "102": 7151, + "rustique": 7152, + "modeste,": 7153, + "cochand,": 7154, + "billots": 7155, + "galerie": 7156, + "avant,": 7157, + "103": 7158, + "porte-à-faux,": 7159, + "montclair,": 7160, + "latérale": 7161, + "villa": 7162, + "alpin,": 7163, + "rebord": 7164, + "mur-pignon": 7165, + "apparente,": 7166, + "véranda": 7167, + "façade,": 7168, + "renaud,": 7169, + "104": 7170, + "1314-2021-tm": 7171, + "d'application................................................................................................................................................": 7172, + "l'entente": 7173, + "promoteur": 7174, + "fractionnement": 7175, + "phases.....................................................................................................................": 7176, + "d'aqueduc": 7177, + "fuseau": 7178, + "granulométrique": 7179, + "l'entente..............................................................................................": 7180, + "entretien": 7181, + "promoteur.....................................................................................................................": 7182, + "...........................................................................................": 7183, + "défauts": 7184, + "....................................................................................................................................................................": 7185, + "..........................................................................................................17": 7186, + "1314-2021-tm.": 7187, + "1200-2012-tm-1": 7188, + "promoteur.": 7189, + "utilisée.": 7190, + "provisoire": 7191, + "réserve(s)": 7192, + "demandés": 7193, + "contractuels": 7194, + "prêts": 7195, + "destinés.": 7196, + "déficiences": 7197, + "différés,": 7198, + "dressée": 7199, + "l’ingénieur;": 7200, + "promoteur,": 7201, + "parachevé": 7202, + "corrigé": 7203, + "relevées": 7204, + "provisoire;": 7205, + "firme": 7206, + "d'ingénieurs-conseils,": 7207, + "tâches": 7208, + "connexes": 7209, + "comprends": 7210, + "(avec": 7211, + "municipaux)": 7212, + "conventionnel": 7213, + "commune;": 7214, + "(l.q.,": 7215, + "1991,": 7216, + "64.),": 7217, + "communes,": 7218, + "stationnements,": 7219, + "verts.": 7220, + "(voir": 7221, + "vigueur);": 7222, + "communautaire,": 7223, + "caractérisé": 7224, + "principaux,": 7225, + "conçus": 7226, + "harmonie,": 7227, + "établissements,": 7228, + "commodités": 7229, + "clientèle,": 7230, + "planification": 7231, + "œuvre": 7232, + "d’initiative": 7233, + "unique,": 7234, + "multiples": 7235, + "fraction": 7236, + "parties.": 7237, + "d’aqueduc;": 7238, + "formellement": 7239, + "(résidentiel,": 7240, + "industriel),": 7241, + "connexes,": 7242, + "sujets": 7243, + "étape": 7244, + "d’égouts": 7245, + "pluvial,": 7246, + "branchements": 7247, + "réseaux,": 7248, + "pavage,": 7249, + "bordures,": 7250, + "subi": 7251, + "cycle": 7252, + "gel": 7253, + "dégel": 7254, + "pavage;": 7255, + "affectée": 7256, + "véhicules.": 7257, + "mixte),": 7258, + "pluvial": 7259, + "fonctionnement.": 7260, + "chaussées,": 7261, + "l’éclairage,": 7262, + "routiers,": 7263, + "environnementale.": 7264, + "équipements,": 7265, + "trouvent,": 7266, + "d’occupation,": 7267, + "mixte)": 7268, + "adressée": 7269, + "ci-joint": 7270, + "rempli;": 7271, + "promoteurs;": 7272, + "actuels": 7273, + "rattachement": 7274, + "géodésique;": 7275, + "retrouver": 7276, + "parallèles": 7277, + "centre,": 7278, + "centre.": 7279, + "fractionné": 7280, + "phases;": 7281, + "engendrés": 7282, + "l’entremise": 7283, + "ingénieur,": 7284, + "prévision": 7285, + "budgétaire": 7286, + "phase;": 7287, + "réalisation,": 7288, + "préparatoire.": 7289, + "exécutées": 7290, + "successivement.": 7291, + "phases,": 7292, + "individuelle": 7293, + "évaluée": 7294, + "transmettent": 7295, + "(projet": 7296, + "consultants": 7297, + "équipements).": 7298, + "complète,": 7299, + "l’affirmative,": 7300, + "mentionne": 7301, + "entente.": 7302, + "l’entière": 7303, + "règlementations": 7304, + "également,": 7305, + "municipaliser": 7306, + "infrastructures.": 7307, + "cession,": 7308, + "supplémentaires,": 7309, + "apparues": 7310, + "l’étape": 7311, + "restreignant": 7312, + "d’adopter": 7313, + "pourvoir": 7314, + "d’emprunts": 7315, + "réels": 7316, + "détaillés,": 7317, + "généralité": 7318, + "honoraires": 7319, + "l’arpentage,": 7320, + "piquetage,": 7321, + "relevés": 7322, + "topographiques,": 7323, + "final.": 7324, + "débuter": 7325, + "remise,": 7326, + "obligés": 7327, + "comprendre,": 7328, + "obligatoirement,": 7329, + "limitativement": 7330, + "morale;": 7331, + "l’entente,": 7332, + "l’entente.": 7333, + "modifiée": 7334, + "celle-ci,": 7335, + "acheminée": 7336, + "l’entente;": 7337, + "détailler,": 7338, + "intégrés,": 7339, + "copropriété,": 7340, + "futurs": 7341, + "copropriétaires,": 7342, + "déneigement,": 7343, + "références": 7344, + "analyses": 7345, + "caractérisations": 7346, + "environnementales;": 7347, + "offres": 7348, + "d’entretien": 7349, + "déboursés": 7350, + "préparatoires,": 7351, + "estimations": 7352, + "budgétaires": 7353, + "préliminaires,": 7354, + "accessoires;": 7355, + "l’ingénieur,": 7356, + "construits": 7357, + "géoréférencés": 7358, + "conformités": 7359, + "d’ententes": 7360, + "distinctes;": 7361, + "l’échéancier": 7362, + "couvertures": 7363, + "d’assurance": 7364, + "intervenant": 7365, + "entrepreneurs,": 7366, + "sous-traitants": 7367, + "engagés": 7368, + "couvre": 7369, + "inhérents": 7370, + "souscrite": 7371, + "maintenue": 7372, + "millions": 7373, + "$);": 7374, + "ajouter": 7375, + "qu’assurée": 7376, + "faute,": 7377, + "négligence": 7378, + "l’imprudence": 7379, + "préposés": 7380, + "conflit": 7381, + "confection": 7382, + "bassins": 7383, + "sédimentations;": 7384, + "gratuit": 7385, + "prévu,": 7386, + "rattachent": 7387, + "(entre": 7388, + "notaire,": 7389, + "l’arpenteur-géomètre,": 7390, + "biologiste,": 7391, + "communications;": 7392, + "impossible,": 7393, + "purge": 7394, + "automatique": 7395, + "implanté.": 7396, + "bouclé": 7397, + "premier,": 7398, + "automatique.": 7399, + "respectera": 7400, + "granulométrique,": 7401, + "nq": 7402, + "2560-114,": 7403, + "conséquent,": 7404, + "assume": 7405, + "granulaire": 7406, + "(étape": 7407, + "b).": 7408, + "laboratoire": 7409, + "acheminé": 7410, + "ingénieur;": 7411, + "l’estimation": 7412, + "(plans": 7413, + "environnementale,": 7414, + "surveillance,": 7415, + "environnementales,": 7416, + "contrôles": 7417, + "qualitatifs,": 7418, + "promoteur;": 7419, + "d’assurance,": 7420, + "intervenants": 7421, + "environnementales": 7422, + "rédigées": 7423, + "climatiques;": 7424, + "exemplaires,": 7425, + "annexes": 7426, + "maire,": 7427, + "signer,": 7428, + "promoteurs": 7429, + "autorise.": 7430, + "pavage.": 7431, + "alinéas": 7432, + "d’octroi": 7433, + "contrats": 7434, + "survient": 7435, + "circonstances": 7436, + "contrôle,": 7437, + "difficultés": 7438, + "légitimement": 7439, + "retards,": 7440, + "seulement,": 7441, + "fixés": 7442, + "contrat.": 7443, + "déglaçage,": 7444, + "l’abat-poussière,": 7445, + "balayage,": 7446, + "communes.": 7447, + "mixte,": 7448, + "témoignant": 7449, + "résultats.": 7450, + "impact": 7451, + "potable.": 7452, + "certifié,": 7453, + "traite": 7454, + "bancaire": 7455, + "1222": 7456, + "signature.": 7457, + "remboursable.": 7458, + "cautionnement": 7459, + "habilitée": 7460, + "garante;": 7461, + "irrévocable": 7462, + "institution": 7463, + "payable": 7464, + "encaissable": 7465, + "l’institution": 7466, + "jugée": 7467, + "(taxes": 7468, + "comprises)": 7469, + "précède": 7470, + "gérées": 7471, + "phases.": 7472, + "conventionnels,": 7473, + "d’exécution.": 7474, + "libération,": 7475, + "b,": 7476, + "restant": 7477, + "déposer,": 7478, + "irrévocable,": 7479, + "$,": 7480, + "garantissant": 7481, + "bancaire.": 7482, + "elle-même,": 7483, + "acquérir": 7484, + "contient": 7485, + "gratuit,": 7486, + "trottoirs,": 7487, + "souterraines,": 7488, + "pluvial.": 7489, + "consentir,": 7490, + "résidentiels": 7491, + "pluviaux": 7492, + "stations": 7493, + "pompage.": 7494, + "infrastructures;": 7495, + "préparation,": 7496, + "s’écoule": 7497, + "mandater": 7498, + "génie,": 7499, + "cession.": 7500, + "s’engage,": 7501, + "libres": 7502, + "taxe": 7503, + "scolaire": 7504, + "quittes": 7505, + "privilège,": 7506, + "hypothèque": 7507, + "grever.": 7508, + "statutaire": 7509, + "fournisseurs": 7510, + "main-d'œuvre,": 7511, + "sous-traitant": 7512, + "csst.": 7513, + "privée,": 7514, + "inscrire,": 7515, + "clause": 7516, + "voulant": 7517, + "entretenue": 7518, + "encourra": 7519, + "débute": 7520, + "poursuivre": 7521, + "diligence;": 7522, + "utile,": 7523, + "omet,": 7524, + "insolvable,": 7525, + "tire": 7526, + "avantage": 7527, + "rapportant": 7528, + "l'insolvabilité": 7529, + "séquestre": 7530, + "syndic": 7531, + "engagements": 7532, + "l'accompagnent.": 7533, + "l'entente,": 7534, + "alternativement": 7535, + "s'adresser": 7536, + "formalité,": 7537, + "caution": 7538, + "soumissions": 7539, + "obtenues": 7540, + "retenir": 7541, + "imposer": 7542, + "spéciale": 7543, + "couvrir": 7544, + "parachever": 7545, + "approprié.": 7546, + "ayants": 7547, + "soumis.": 7548, + "litige": 7549, + "l’entrepreneur,": 7550, + "fournisseurs,": 7551, + "mains-d'œuvre": 7552, + "sous-traitants,": 7553, + "indemne": 7554, + "réclamations": 7555, + "hypothèques": 7556, + "explicitement": 7557, + "radiations": 7558, + "légales,": 7559, + "incomber": 7560, + "litige.": 7561, + "je,": 7562, + "soussigné(e),": 7563, + "____________________________,": 7564, + "agissant": 7565, + "de_________________________": 7566, + "ci-dessus": 7567, + "mentionné.": 7568, + "m’engage": 7569, + "cédées": 7570, + "charge,": 7571, + "hypothèque,": 7572, + "conclu.": 7573, + "reconnais": 7574, + "pris": 7575, + "connaissance": 7576, + "s’appliquerait": 7577, + "mon": 7578, + "______________________________________": 7579, + "/": 7580, + "1289": 7581, + "formation": 7582, + "huis": 7583, + "clos": 7584, + "2020": 7585, + "céline": 7586, + "doré": 7587, + "environnement.": 7588, + "composition": 7589, + "nommer,": 7590, + "minimal": 7591, + "citoyens": 7592, + "membre,": 7593, + "secrétaire": 7594, + "n’en": 7595, + "autrement.": 7596, + "celui-": 7597, + "participer": 7598, + "d’environnement": 7599, + "vert": 7600, + "cce": 7601, + "2020)": 7602, + "tenues": 7603, + "mandate": 7604, + "requiert.": 7605, + "réunion,": 7606, + "substitut": 7607, + "délègue.": 7608, + "convocation": 7609, + "convoqués": 7610, + "courriel.": 7611, + "tiennent": 7612, + "clos.": 7613, + "président": 7614, + "comité.": 7615, + "représenter": 7616, + "discussions": 7617, + "procès-verbaux": 7618, + "réunion.": 7619, + "procès-verbal": 7620, + "produits": 7621, + "meilleurs": 7622, + "retirer.": 7623, + "évitent": 7624, + "intérêt": 7625, + "personnel": 7626, + "professionnel.": 7627, + "désirent": 7628, + "conventionnelle": 7629, + "plutôt": 7630, + "confidentialité": 7631, + "confidentielles.": 7632, + "contexte,": 7633, + "opinions": 7634, + "exprimés": 7635, + "publiques.": 7636, + "1140-2010.": 7637, + "4e": 7638, + "2020.": 7639, + "intérim": 7640, + "1314-2021-c": 7641, + "résistance,": 7642, + "entrepreneur": 7643, + "nationales": 7644, + "édition": 7645, + "change": 7646, + "amendements.": 7647, + "isolée,": 7648, + "mobiles": 7649, + "transportables": 7650, + "assujetti,": 7651, + "r.35.2),": 7652, + "retient": 7653, + "instructions": 7654, + "acnor": 7655, + "préfabriqué": 7656, + "(c'est-à-dire": 7657, + "modulaire,": 7658, + "usiné": 7659, + "transportable": 7660, + "assemblé": 7661, + "d'implantation)": 7662, + "certifiés": 7663, + "l'association": 7664, + "canadienne": 7665, + "normalisation": 7666, + "(csa).": 7667, + "récréatif.": 7668, + "essai": 7669, + "conférés": 7670, + "réfère,": 7671, + "fasse": 7672, + "d’assemblage": 7673, + "test,": 7674, + "fournisse": 7675, + "prouvant": 7676, + "d’avis": 7677, + "composante": 7678, + "structurale": 7679, + "paraisse": 7680, + "supportée,": 7681, + "exercé.": 7682, + "accrédité": 7683, + "habilité": 7684, + "discipline": 7685, + "l’essai": 7686, + "séparation": 7687, + "isolé": 7688, + "coupe-feu": 7689, + "minutes.": 7690, + "d’obturation,": 7691, + "pare-flamme": 7692, + "(hall": 7693, + "d’entrée)": 7694, + "commun,": 7695, + "traverser": 7696, + "d’immunisation": 7697, + "d'immunisation": 7698, + "adaptant": 7699, + "l'infrastructure": 7700, + "(fenêtre,": 7701, + "soupirail,": 7702, + "drains": 7703, + "clapets": 7704, + "retenue;": 7705, + "sise": 7706, + "produite": 7707, + "structures": 7708, + "résister": 7709, + "crue,": 7710, + "intégrant": 7711, + "calculs": 7712, + "l'imperméabilisation;": 7713, + "stabilité": 7714, + "structures;": 7715, + "l'armature": 7716, + "nécessaire;": 7717, + "évacuer": 7718, + "d'infiltration;": 7719, + "béton": 7720, + "compression": 7721, + "tension;": 7722, + "immédiate": 7723, + "autour": 7724, + "étendu": 7725, + "prévu;": 7726, + "protégé,": 7727, + "pied,": 7728, + "devrait": 7729, + "33⅓": 7730, + "(rapport": 7731, + "horizontal).": 7732, + "d'immunisation,": 7733, + "qu'ait": 7734, + "haut": 7735, + "servi": 7736, + "auquel,": 7737, + "centimètres.": 7738, + "fosses": 7739, + "d’huile": 7740, + "graisse": 7741, + "raccordées": 7742, + "d'égouts": 7743, + "ponceaux": 7744, + "ponceau": 7745, + "(entrée": 7746, + "charretière).": 7747, + "libre": 7748, + "contamination": 7749, + "décontaminer": 7750, + "détection": 7751, + "fuite;": 7752, + "l’antigel,": 7753, + "fluide": 7754, + "caloporteur": 7755, + "frigorigène": 7756, + "géothermie": 7757, + "installation,": 7758, + "conformité,": 7759, + "violation": 7760, + "climatisation": 7761, + "réfrigération": 7762, + "d’installer": 7763, + "(circuit": 7764, + "ouvert": 7765, + "eau)": 7766, + "prohibés.": 7767, + "thermostat": 7768, + "appareil": 7769, + "autonome;": 7770, + "programmable": 7771, + "central;": 7772, + "combustion": 7773, + "évoluée": 7774, + "b415.1-m-92": 7775, + "canadian": 7776, + "standards": 7777, + "association": 7778, + "(csa)": 7779, + "l’environmental": 7780, + "agency": 7781, + "(epa);": 7782, + "appareils": 7783, + "central,": 7784, + "d’appoint": 7785, + "alimentée": 7786, + "gaz": 7787, + "propane": 7788, + "mazout": 7789, + "scellé.": 7790, + "verts": 7791, + "végétalisés,": 7792, + "extensifs": 7793, + "intensifs,": 7794, + "végétal": 7795, + "membrane": 7796, + "multicouche": 7797, + "(asphalte": 7798, + "gravier);": 7799, + "aménagé,": 7800, + "bâtiment.": 7801, + "cour": 7802, + "arrière;": 7803, + "envisagés;": 7804, + "minimum,": 7805, + "d’étanchéité,": 7806, + "couche": 7807, + "filtration,": 7808, + "substrat": 7809, + "végétale;": 7810, + "plante": 7811, + "morte": 7812, + "remplacée;": 7813, + "paillis": 7814, + "combustibles,": 7815, + "copeaux": 7816, + "bois,": 7817, + "paille": 7818, + "mousse": 7819, + "sphaigne": 7820, + "prohibés;": 7821, + "végétalisé": 7822, + "d’irrigation": 7823, + "infiltration": 7824, + "toit.": 7825, + "élaboré": 7826, + "paysagiste,": 7827, + "respecté": 7828, + "temps.": 7829, + "précautions": 7830, + "piétinement;": 7831, + "fréquence": 7832, + "visites": 7833, + "d’entretien;": 7834, + "irrigation": 7835, + "fréquence,": 7836, + "durée,": 7837, + "l’année;": 7838, + "fertilisation": 7839, + "recommandés": 7840, + "proscrits,": 7841, + "d’application;": 7842, + "mécanisme": 7843, + "qu’«": 7844, + "l’entreposage": 7845, + "produits,": 7846, + "machineries,": 7847, + "d’outillage": 7848, + "véhicules;": 7849, + "industrielles": 7850, + "d’extraction": 7851, + "minière": 7852, + "nécessite,": 7853, + "opérations,": 7854, + "exercées,": 7855, + "l’absence": 7856, + "d’affecter": 7857, + "exploité": 7858, + "fortification": 7859, + "démantelés": 7860, + "retrait": 7861, + "autorisés.": 7862, + "glace": 7863, + "chutes": 7864, + "ruelle": 7865, + "garde-neige": 7866, + "attaché": 7867, + "tomber.": 7868, + "l’accumulation": 7869, + "constituante": 7870, + "l’enveloppe": 7871, + "toiture,": 7872, + "fenêtre": 7873, + "étanche;": 7874, + "briques,": 7875, + "mortier": 7876, + "fissures": 7877, + "risquer": 7878, + "s’écrouler;": 7879, + "fini": 7880, + "avant-toit,": 7881, + "saillie,": 7882, + "porte,": 7883, + "matériau": 7884, + "refait": 7885, + "mur,": 7886, + "plafond,": 7887, + "boiserie": 7888, + "accumulation": 7889, + "d’humidité": 7890, + "causant": 7891, + "dégradation": 7892, + "finis.": 7893, + "perron,": 7894, + "maintenus": 7895, + "repeints": 7896, + "besoin.": 7897, + "métal": 7898, + "sensible": 7899, + "rouille": 7900, + "laissé": 7901, + "intempéries.": 7902, + "personnes,": 7903, + "empêché": 7904, + "assurée.": 7905, + "considérées": 7906, + "planchers": 7907, + "garde-corps": 7908, + "pourri.": 7909, + "2023": 7910, + "1314-2021-c-1": 7911, + "déclaratoires................................................................................................................................": 7912, + "................................................................................................................................................................................": 7913, + "............................................................................................................................................................................................": 7914, + ".......................................................................................................................................................................................................": 7915, + ".........................................................................................................................................................................": 7916, + "...............................................................................................................................................................": 7917, + ".....................................................................................................................................................": 7918, + "déplacé": 7919, + "contigus": 7920, + "mitoyen": 7921, + "........................................................................................................................................................................................": 7922, + "cheminée": 7923, + "attenant": 7924, + "...........................": 7925, + "pilotis": 7926, + "pieux": 7927, + "pilotis,": 7928, + "flottante": 7929, + "pluviales,": 7930, + "raccordements": 7931, + "drain": 7932, + "(drain": 7933, + "français)": 7934, + "clapet": 7935, + "anti-retour": 7936, + "soupape": 7937, + "sûreté": 7938, + "d’isolation": 7939, + ".........................................................................................................................................................................................": 7940, + "toilettes": 7941, + "faible": 7942, + "..................................................................................................................................................................................": 7943, + "chauffe-eau": 7944, + "solaire": 7945, + "photovoltaïque": 7946, + "recharge": 7947, + "d’images": 7948, + "vision": 7949, + "nocturne": 7950, + "hors-sol": 7951, + "ceinture": 7952, + "vide": 7953, + "ancrage": 7954, + "..............................................................................................................................................................................................": 7955, + "enlèvement": 7956, + "d'accrochage": 7957, + "détecteur": 7958, + "monoxyde": 7959, + "....................................................................................................................................................................................": 7960, + "escalier....................................................................................": 7961, + "dangereuses": 7962, + "chantiers": 7963, + "généralités": 7964, + "exécution": 7965, + "gravement": 7966, + ".........................................................................................................................................": 7967, + "prévention": 7968, + "poussière": 7969, + "toilette": 7970, + "chimique": 7971, + "...................................................................................................................................................................................": 7972, + "inachevés,": 7973, + "inoccupés,": 7974, + "incendiés": 7975, + "délabrés": 7976, + "sécuriser": 7977, + "justice": 7978, + "inachevée": 7979, + "abandonnée": 7980, + "ciel": 7981, + "incendiée": 7982, + "démolie": 7983, + "moitié": 7984, + "1314-2021-c.": 7985, + "1200-2012-c": 7986, + "ponts,": 7987, + "viaducs,": 7988, + "tunnels,": 7989, + "lorsqu’ils": 7990, + "instance": 7991, + "paragouvernementale.": 7992, + "d’énergie": 7993, + "téléphonique": 7994, + "assemblée": 7995, + "majorité.": 7996, + "marchande,": 7997, + "interdite,": 7998, + "(lrq": 7999, + "p-9.002);": 8000, + "l’inventaire": 8001, + "pays-": 8002, + "d’en-haut": 8003, + "vestige": 8004, + "1940;": 8005, + "1960": 8006, + "depuis;": 8007, + "t5.1,": 8008, + "t5.2,": 8009, + "t5.3,": 8010, + "zc.1": 8011, + "zc.2": 8012, + "modifications.": 8013, + "exclusions": 8014, + "3,": 8015, + "227,": 8016, + "229": 8017, + "231": 8018, + "menacée": 8019, + "l’imminence": 8020, + "s-2.3)": 8021, + "incendies": 8022, + "direction": 8023, + "désirant": 8024, + "d’obtenir,": 8025, + "pc,": 8026, + "d’obtenir": 8027, + "architecturales,": 8028, + "défaillants);": 8029, + "située;": 8030, + "professionnelle,": 8031, + "indépendante": 8032, + "détaillée,": 8033, + "restauration": 8034, + "dégagé": 8035, + "dégagé;": 8036, + "projetées.": 8037, + "d’étages,": 8038, + "remplacement;": 8039, + "contaminé,": 8040, + "rè": 8041, + "glèmènt": 8042, + "1314-2023-dem": 8043, + "gissant": 8044, + "dè": 8045, + "molition": 8046, + "2023)": 8047, + "réviser": 8048, + "transmettant": 8049, + "propre": 8050, + "chef": 8051, + "patrimonial,": 8052, + "exprimant": 8053, + "intention": 8054, + "révision": 8055, + "faute": 8056, + "finale.": 8057, + "p-9.002),": 8058, + "d’en-haut.": 8059, + "désavouer": 8060, + "148.0.20.1": 8061, + "19.1)": 8062, + "municipale,": 8063, + "déménagement": 8064, + "garantir": 8065, + "échéance,": 8066, + "est,": 8067, + "remboursée,": 8068, + "intérêt.": 8069, + "entrepris": 8070, + "terminés": 8071, + "encaisser": 8072, + "monétaire.": 8073, + "démolition.": 8074, + "l’objet,": 8075, + "remplis,": 8076, + "acquéreur": 8077, + "d’avoir": 8078, + "1314-2021-pc,": 8079, + "l’achèvement": 8080, + "exigée.": 8081, + "monétaire,": 8082, + "vendeur,": 8083, + "n’exécute": 8084, + "imposées.": 8085, + "révision,": 8086, + "appliquant": 8087, + "qu’en": 8088, + "prélevant": 8089, + "2023,": 8090, + "séances,": 8091, + "législatives;": 8092, + "l’obligation,": 8093, + "gagné;": 8094, + "motion;": 8095, + "2023;": 8096, + "ordonne": 8097, + "v.0.1": 8098, + "constitué.": 8099, + "composé": 8100, + "fonctionnaire,": 8101, + "(ccu)": 8102, + "milieu;": 8103, + "loyer": 8104, + "mensuel": 8105, + "défaillances": 8106, + "publics.": 8107, + "passants": 8108, + "dix": 8109, + "(10)": 8110, + "publie": 8111, + "culture": 8112, + "communications": 8113, + "p-9.002)": 8114, + "s’opposer": 8115, + "connaître": 8116, + "opposition": 8117, + "prononcer": 8118, + "agit": 8119, + "lumière": 8120, + "1-": 8121, + "l'état": 8122, + "l’immeuble;": 8123, + "2-": 8124, + "détérioration": 8125, + "l'apparence": 8126, + "patrimoniale,": 8127, + "esthétique": 8128, + "3-": 8129, + "celui-ci;": 8130, + "4-": 8131, + "oppositions": 8132, + "reçues;": 8133, + "5-": 8134, + "6-": 8135, + "locataires;": 8136, + "l’offre": 8137, + "7-": 8138, + "8-": 8139, + "pertinence": 8140, + "148.0.8": 8141, + "148.0.9": 8142, + "intéressées.": 8143, + "séance,": 8144, + "reporter": 8145, + "ultérieure;": 8146, + "31.42": 8147, + "2023-10-13": 8148, + "(r1314-2021-pc-3,": 8149, + "434": 8150, + "435": 8151, + "436": 8152, + "437": 8153, + "quinze": 8154, + "(15)": 8155, + "centimètres": 8156, + "(ou": 8157, + "poitrine).": 8158, + "d’auto": 8159, + "piliers,": 8160, + "côtés,": 8161, + "rattaché": 8162, + "l'abri": 8163, + "d'auto": 8164, + "promenade": 8165, + "bateau,": 8166, + "roulotte,": 8167, + "caravane": 8168, + "motorisée,": 8169, + "similaire.": 8170, + "saison": 8171, + "hivernale.": 8172, + "d’hiver": 8173, + "recouvrir": 8174, + "balcons,": 8175, + "galeries": 8176, + "refuge)": 8177, + "rudimentaire": 8178, + "dépourvu": 8179, + "courante": 8180, + "gîte": 8181, + "séjour": 8182, + "forêt.": 8183, + "charretière": 8184, + "accotement": 8185, + "chaussée": 8186, + "réservée": 8187, + "d’appui": 8188, + "chaussée.": 8189, + "dominante": 8190, + "poser": 8191, + "affiches,": 8192, + "panneaux": 8193, + "réclame.": 8194, + "affiche": 8195, + "usage.": 8196, + "mobile": 8197, + "mobile.": 8198, + "d’agrément": 8199, + "hors-rue": 8200, + "repos,": 8201, + "détente": 8202, + "récréation.": 8203, + "transport.": 8204, + "tablier": 8205, + "manœuvre.": 8206, + "l’aire": 8207, + "438": 8208, + "recommandées": 8209, + "revégétalisation": 8210, + "469": 8211, + "inondables": 8212, + "483": 8213, + "numérotation": 8214, + "uniforme": 8215, + "d’abord": 8216, + "divisé": 8217, + "numérotés": 8218, + "chiffres": 8219, + "arabes.": 8220, + "sous-sections": 8221, + "numérotées": 8222, + "numérotés,": 8223, + "consécutive,": 8224, + "alinéas.": 8225, + "précédé": 8226, + "d’aucun": 8227, + "chiffre,": 8228, + "particulière.": 8229, + "paragraphes.": 8230, + "numéroté": 8231, + "sous-paragraphes.": 8232, + "minuscule.": 8233, + "sous-alinéas.": 8234, + "sous-alinéa": 8235, + "tiret.": 8236, + "l’exemple": 8237, + "illustre": 8238, + "x.x": 8239, + "sous-sous-paragraphe": 8240, + "modifiés": 8241, + "zones,": 8242, + "intégrantes": 8243, + "golfs": 8244, + "rivière": 8245, + "simulé": 8246, + "en-tête": 8247, + "pied": 8248, + "indicatif": 8249, + "en-têtes;": 8250, + "pieds": 8251, + "page,": 8252, + "pagination;": 8253, + "illustrations": 8254, + "d’ambiance": 8255, + "situant": 8256, + "dessous": 8257, + "milieux,": 8258, + "servent": 8259, + "imager,": 8260, + "futur": 8261, + "écrits": 8262, + "prête": 8263, + "extension;": 8264, + "masculin": 8265, + "féminin": 8266, + "absolue": 8267, + "illustrations,": 8268, + "graphiques": 8269, + "d'expression": 8270, + "dit,": 8271, + "référé,": 8272, + "(si).": 8273, + "qu’identifiées": 8274, + "annexé": 8275, + "alphanumérique,": 8276, + "d’exemple": 8277, + "composée": 8278, + "t1.1": 8279, + "001": 8280, + "zi.2": 8281, + "002": 8282, + "l’élément": 8283, + "d’union": 8284, + "alphanumérique": 8285, + "t1": 8286, + "chiffre": 8287, + "(ex": 8288, + ".1": 8289, + ".2": 8290, + "»);": 8291, + "unique": 8292, + "001).": 8293, + "dominant": 8294, + "délimitées": 8295, + "lignes.": 8296, + "coïncident": 8297, + "généralement": 8298, + "homologuée": 8299, + "d'emprise": 8300, + "l'axe": 8301, + "l’axe": 8302, + "cote,": 8303, + "indiquée.": 8304, + "qu’'il": 8305, + "mesure,": 8306, + "l'aide": 8307, + "peu": 8308, + "coïncider": 8309, + "seconde.": 8310, + "approximativement": 8311, + "parallèle": 8312, + "seconde,": 8313, + "descriptives": 8314, + "7,": 8315, + "représentent": 8316, + "morphologiques": 8317, + "souhaitées": 8318, + "déclinent": 8319, + "t1.2;": 8320, + "t2": 8321, + "forêt": 8322, + "t2.1": 8323, + "t2.2;": 8324, + "t3": 8325, + "périurbain": 8326, + "t3.4;": 8327, + "t4": 8328, + "urbain": 8329, + "t4.1": 8330, + "t4.3;": 8331, + "t5.1": 8332, + "t5.3;": 8333, + "cu;": 8334, + "zm;": 8335, + "zc.4;": 8336, + "industrielle": 8337, + "zi.1": 8338, + "zi.2;": 8339, + "correspondent": 8340, + "gradation": 8341, + "d’intensité": 8342, + "urbaine.": 8343, + "ci,": 8344, + "cu,": 8345, + "zm,": 8346, + "concordance": 8347, + "associée": 8348, + "normative": 8349, + "fiches,": 8350, + "explicatives": 8351, + "d’indication": 8352, + "d’incompatibilité": 8353, + "concernées": 8354, + "s’appliquent;": 8355, + "marges": 8356, + "correspondante": 8357, + "l’équipement,": 8358, + "couvre-sol,": 8359, + "d’arbustes": 8360, + "prohibé;": 8361, + "proportions": 8362, + "abstraction": 8363, + "zones.": 8364, + "désignés.": 8365, + "ceux-ci)": 8366, + "réalisées": 8367, + "lorsqu’aucun": 8368, + "exigé.": 8369, + "habilitantes.": 8370, + "zonage»": 8371, + "juridpiques": 8372, + "433": 8373, + "189": 8374, + "réglementaires": 8375, + "431.": 8376, + "précisent": 8377, + "432.": 8378, + "établissent": 8379, + "d’exceptions": 8380, + "pastille": 8381, + "(●)": 8382, + "vis-à-vis": 8383, + "colonne": 8384, + "colonne,": 8385, + "symbole": 8386, + "colonnes": 8387, + "qu’aucun": 8388, + "respecté;": 8389, + "n/a": 8390, + "inapplicable": 8391, + "parenthèses": 8392, + "(art.": 8393, + "000))": 8394, + "particulière;": 8395, + "milieux;": 8396, + "ailleurs": 8397, + "s’applique,": 8398, + "190": 8399, + "représente": 8400, + "ensembles": 8401, + "paysagère": 8402, + "’écosystèmes": 8403, + "notamm": 8404, + "ent": 8405, + "forêts,": 8406, + "écosystèmes": 8407, + "exceptionnels.": 8408, + "récréative": 8409, + "sadr": 8410, + "écologiques": 8411, + "protéger,": 8412, + "compatibles.": 8413, + "d’interprétation,": 8414, + "d’observation,": 8415, + "recherche": 8416, + "scientifique,": 8417, + "d’éducation": 8418, + "205": 8419, + "444.": 8420, + "t1.1.": 8421, + "206": 8422, + "t1.2": 8423, + "454.": 8424, + "t1.2.": 8425, + "214": 8426, + "importants.": 8427, + "affectations": 8428, + "récréotouristiques": 8429, + "extensives,": 8430, + "agroforestières": 8431, + "secteurs.": 8432, + "222": 8433, + "agroforestier": 8434, + "464.": 8435, + "t2.1.": 8436, + "465.": 8437, + "implantation": 8438, + "223": 8439, + "t2.2": 8440, + "récréotouristique": 8441, + "extensif": 8442, + "474.": 8443, + "t2.2.": 8444, + "(r1314-2021-z-3,": 8445 + }, + "rgb": { + "": 0, + "#000": 1, + "#222": 2, + "#f00": 3, + "#333": 4, + "#bbb": 5, + "#999": 6, + "#665": 7, + "#444": 8, + "#777": 9, + "#aaa": 10, + "#555": 11, + "#378": 12, + "#fff": 13 + }, + "mctag": { + "": 0, + "Suspect": 1, + "P": 2, + "Artifact": 3, + "Span": 4, + "Div": 5 + }, + "uppercase": { + "": 0, + "True": 1, + "False": 2 + }, + "title": { + "": 0, + "False": 1, + "True": 2 + }, + "punc": { + "": 0, + "True": 1, + "False": 2 + }, + "endpunc": { + "": 0, + "True": 1, + "False": 2 + }, + "numeric": { + "": 0, + "False": 1, + "True": 2 + }, + "bold": { + "": 0, + "True": 1, + "False": 2 + }, + "italic": { + "": 0, + "False": 1, + "True": 2 + }, + "toc": { + "": 0, + "0": 1, + "1": 2 + }, + "header": { + "": 0, + "False": 1, + "True": 2 + }, + "head:table": { + "": 0, + "False": 1, + "True": 2 + }, + "head:chapitre": { + "": 0, + "False": 1, + "True": 2 + }, + "head:annexe": { + "": 0, + "False": 1, + "True": 2 + }, + "line:height": { + "": 0, + "11": 1, + "12": 2, + "9": 3, + "10": 4, + "25": 5, + "20": 6, + "8": 7, + "13": 8, + "30": 9, + "14": 10, + "18": 11, + "15": 12, + "16": 13, + "4": 14, + "26": 15, + "3": 16, + "19": 17, + "5": 18, + "6": 19, + "7": 20, + "35": 21, + "23": 22, + "17": 23 + }, + "line:indent": { + "": 0, + "0": 1, + "1": 2, + "-1": 3, + "200": 4, + "-127": 5, + "102": 6, + "-175": 7, + "72": 8, + "-71": 9, + "71": 10, + "2": 11, + "27": 12, + "70": 13, + "129": 14, + "-96": 15, + "48": 16, + "-152": 17, + "-27": 18, + "-100": 19, + "-49": 20, + "-28": 21, + "28": 22, + "29": 23, + "-73": 24, + "-29": 25, + "-50": 26, + "-37": 27, + "-163": 28, + "-142": 29, + "-43": 30, + "18": 31, + "-18": 32, + "-2": 33, + "105": 34, + "-153": 35, + "-8": 36, + "8": 37, + "-203": 38, + "-36": 39, + "142": 40, + "213": 41, + "51": 42, + "-168": 43, + "-213": 44, + "-146": 45, + "35": 46, + "177": 47, + "-177": 48, + "-212": 49, + "36": 50, + "37": 51, + "-66": 52, + "5": 53, + "-34": 54, + "-35": 55, + "50": 56, + "-85": 57, + "-63": 58, + "38": 59, + "25": 60, + "-25": 61, + "-38": 62, + "26": 63, + "-26": 64, + "-95": 65, + "33": 66, + "42": 67, + "-172": 68, + "-72": 69, + "-13": 70, + "13": 71, + "-143": 72, + "506": 73, + "-258": 74, + "-249": 75, + "-299": 76, + "-84": 77, + "61": 78, + "-16": 79, + "15": 80, + "-42": 81, + "-15": 82, + "-12": 83, + "12": 84, + "16": 85, + "41": 86, + "-52": 87, + "44": 88, + "-70": 89, + "-363": 90, + "150": 91, + "-150": 92, + "-115": 93, + "21": 94, + "-21": 95, + "3": 96, + "-433": 97, + "-3": 98, + "149": 99, + "-149": 100, + "-60": 101, + "-14": 102, + "14": 103, + "-182": 104, + "-17": 105, + "17": 106, + "241": 107, + "-108": 108, + "32": 109, + "-165": 110, + "-283": 111, + "64": 112, + "-64": 113, + "65": 114, + "45": 115, + "-110": 116, + "75": 117, + "-75": 118, + "106": 119, + "19": 120, + "-19": 121, + "10": 122, + "-47": 123, + "113": 124, + "-33": 125, + "-80": 126, + "-113": 127, + "22": 128, + "-22": 129, + "-6": 130, + "47": 131, + "57": 132, + "85": 133, + "-46": 134, + "-106": 135, + "-57": 136, + "43": 137, + "62": 138, + "240": 139, + "-240": 140, + "30": 141, + "-30": 142, + "11": 143, + "169": 144, + "-112": 145, + "179": 146, + "-151": 147, + "193": 148, + "46": 149, + "-24": 150, + "-82": 151, + "7": 152, + "216": 153, + "4": 154, + "20": 155, + "118": 156, + "122": 157, + "92": 158, + "-58": 159, + "80": 160, + "-244": 161, + "100": 162, + "-91": 163, + "115": 164, + "55": 165, + "-170": 166, + "114": 167, + "-114": 168, + "49": 169, + "181": 170, + "9": 171, + "-10": 172, + "121": 173, + "73": 174, + "104": 175, + "-174": 176, + "218": 177, + "-218": 178, + "184": 179, + "176": 180, + "108": 181, + "-90": 182, + "203": 183, + "-156": 184, + "34": 185, + "144": 186, + "-126": 187, + "-122": 188 + }, + "line:gap": { + "": 0, + "84": 1, + "15": 2, + "45": 3, + "1": 4, + "0": 5, + "12": 6, + "2": 7, + "13": 8, + "11": 9, + "24": 10, + "23": 11, + "6": 12, + "104": 13, + "8": 14, + "7": 15, + "17": 16, + "43": 17, + "18": 18, + "81": 19, + "60": 20, + "14": 21, + "26": 22, + "27": 23, + "159": 24, + "122": 25, + "178": 26, + "29": 27, + "25": 28, + "71": 29, + "109": 30, + "58": 31, + "197": 32, + "155": 33, + "32": 34, + "33": 35, + "10": 36, + "68": 37, + "342": 38, + "136": 39, + "22": 40, + "30": 41, + "16": 42, + "37": 43, + "28": 44, + "183": 45, + "217": 46, + "3": 47, + "4": 48, + "187": 49, + "69": 50, + "127": 51, + "185": 52, + "40": 53, + "73": 54, + "72": 55, + "85": 56, + "154": 57, + "67": 58, + "97": 59, + "38": 60, + "141": 61, + "-2": 62, + "182": 63, + "107": 64, + "169": 65, + "-11": 66, + "-1": 67, + "-4": 68, + "-3": 69, + "-16": 70, + "9": 71, + "-7": 72, + "90": 73, + "44": 74, + "48": 75, + "87": 76, + "34": 77, + "440": 78, + "186": 79, + "35": 80, + "55": 81, + "88": 82, + "62": 83, + "170": 84, + "39": 85, + "447": 86, + "57": 87, + "77": 88, + "619": 89, + "195": 90, + "21": 91, + "128": 92, + "205": 93, + "163": 94, + "65": 95, + "114": 96, + "75": 97, + "173": 98, + "66": 99, + "146": 100, + "152": 101, + "533": 102, + "36": 103, + "439": 104, + "5": 105, + "53": 106, + "20": 107, + "19": 108, + "41": 109, + "100": 110, + "31": 111, + "49": 112, + "42": 113, + "445": 114, + "54": 115, + "145": 116, + "111": 117, + "240": 118, + "286": 119, + "262": 120, + "47": 121, + "327": 122, + "451": 123, + "56": 124, + "602": 125, + "70": 126, + "337": 127, + "343": 128, + "232": 129, + "172": 130, + "227": 131, + "334": 132, + "362": 133, + "331": 134, + "427": 135, + "407": 136, + "263": 137, + "373": 138, + "244": 139, + "266": 140, + "149": 141, + "213": 142, + "363": 143, + "456": 144, + "432": 145, + "188": 146, + "466": 147, + "124": 148, + "323": 149, + "181": 150, + "289": 151, + "156": 152, + "-5": 153, + "-10": 154, + "-18": 155, + "-17": 156, + "-15": 157, + "113": 158, + "-207": 159, + "-288": 160, + "-308": 161, + "-30": 162, + "-285": 163, + "157": 164, + "249": 165, + "346": 166, + "309": 167, + "288": 168, + "592": 169, + "614": 170, + "626": 171, + "756": 172, + "627": 173, + "640": 174, + "709": 175, + "680": 176, + "628": 177, + "646": 178, + "520": 179, + "436": 180, + "430": 181, + "177": 182, + "243": 183, + "103": 184, + "52": 185, + "258": 186, + "158": 187, + "329": 188, + "391": 189, + "119": 190, + "490": 191, + "496": 192, + "736": 193, + "476": 194, + "76": 195, + "486": 196, + "529": 197, + "215": 198, + "513": 199, + "352": 200, + "354": 201, + "236": 202 + }, + "first": { + "": 0, + "1": 1, + "0": 2 + }, + "last": { + "": 0, + "0": 1, + "1": 2 + } + }, + "id2label": [ + "O", + "I-Titre", + "I-Tete", + "I-TOC", + "I-SousSection", + "I-Section", + "I-Pied", + "I-Liste", + "I-Figure", + "I-Chapitre", + "I-Article", + "I-Annexe", + "I-Amendement", + "I-Alinea", + "B-Titre", + "B-Tete", + "B-TOC", + "B-SousSection", + "B-Section", + "B-Pied", + "B-Liste", + "B-Figure", + "B-Chapitre", + "B-Article", + "B-Annexe", + "B-Amendement", + "B-Alinea" + ], + "featdims": { + "lower": 32, + "rgb": 8, + "mctag": 8, + "uppercase": 8, + "title": 8, + "punc": 8, + "endpunc": 8, + "numeric": 8, + "bold": 8, + "italic": 8, + "toc": 8, + "header": 8, + "head:table": 8, + "head:chapitre": 8, + "head:annexe": 8, + "line:height": 8, + "line:indent": 8, + "line:gap": 8, + "first": 8, + "last": 8 + }, + "veclen": 14, + "label_weights": [ + 0.005208333333333333, + 0.00130718954248366, + 0.000259000259000259, + 0.00016630633627141194, + 0.0027472527472527475, + 0.002331002331002331, + 0.002336448598130841, + 2.8462458017874424e-05, + 0.034482758620689655, + 0.0033783783783783786, + 0.00031486146095717883, + 0.014705882352941176, + 0.02040816326530612, + 2.2585089324028278e-05, + 0.007575757575757576, + 0.0036900369003690036, + 0.043478260869565216, + 0.0196078431372549, + 0.011494252873563218, + 0.0035211267605633804, + 0.0006199628022318661, + 0.3333333333333333, + 0.023255813953488372, + 0.0014367816091954023, + 0.125, + 0.058823529411764705, + 0.0007092198581560284 + ], + "hidden_size": 80, + "features": "text+layout+structure", + "labels": "literal" +} \ No newline at end of file diff --git a/alexi/models/rnn.pt b/alexi/models/rnn.pt new file mode 100644 index 0000000..e75ebfe Binary files /dev/null and b/alexi/models/rnn.pt differ diff --git a/alexi/models/rnn_crf.json b/alexi/models/rnn_crf.json new file mode 100644 index 0000000..6fedf72 --- /dev/null +++ b/alexi/models/rnn_crf.json @@ -0,0 +1,9053 @@ +{ + "feat2id": { + "lower": { + "": 0, + "ville": 1, + "de": 2, + "sainte-adèle": 3, + "province": 4, + "québec": 5, + "comte": 6, + "bertrand": 7, + "reglement": 8, + "no.": 9, + "1000-2008-ppc": 10, + "a": 11, + "une": 12, + "séance": 13, + "ordinaire": 14, + "du": 15, + "conseil": 16, + "municipal,": 17, + "tenue": 18, + "publiquement": 19, + "le": 20, + "20": 21, + "octobre": 22, + "2008": 23, + "à": 24, + "20hoo": 25, + "dans": 26, + "la": 27, + "salle": 28, + "municipal": 29, + "située": 30, + "au": 31, + "1386": 32, + "rue": 33, + "dumouchel,": 34, + "sainte-adèle,": 35, + "québec,": 36, + "lieu": 37, + "des": 38, + "séances": 39, + "laquelle": 40, + "étaient": 41, + "présents": 42, + "madame": 43, + "et": 44, + "messieurs": 45, + "les": 46, + "conseillers": 47, + "victor": 48, + "mainville": 49, + "district": 50, + "1": 51, + "jean-pierre": 52, + "pariseau": 53, + "2": 54, + "gabriel": 55, + "d.": 56, + "latour": 57, + "3": 58, + "gary": 59, + "quenneville": 60, + "4": 61, + "andré": 62, + "lamarche": 63, + "5": 64, + "nicole": 65, + "durand": 66, + "6": 67, + "sous": 68, + "présidence": 69, + "monsieur": 70, + "maire": 71, + "claude": 72, + "descôteaux": 73, + "tous": 74, + "membres": 75, + "dudit": 76, + "en": 77, + "formant": 78, + "quorum.": 79, + "conformément": 80, + "aux": 81, + "dispositions": 82, + "l'article": 83, + "356": 84, + "loi": 85, + "sur": 86, + "cités": 87, + "villes": 88, + "(l.r.q.": 89, + "1977,": 90, + "ch.": 91, + "c-19),": 92, + "greffier": 93, + "est": 94, + "dispensé": 95, + "lecture": 96, + "règlement.": 97, + "projet": 98, + "règlement": 99, + "numéro": 100, + "relatif": 101, + "projets": 102, + "particuliers": 103, + "construction,": 104, + "modification": 105, + "ou": 106, + "d'occupation": 107, + "d'un": 108, + "immeuble.": 109, + "atiendu": 110, + "que": 111, + "l'avis": 112, + "motion": 113, + "présent": 114, + "été": 115, + "donné": 116, + "lors": 117, + "15": 118, + "septembre": 119, + "2008,": 120, + "par": 121, + "conseiller": 122, + "pariseau.": 123, + "qu'il": 124, + "soit": 125, + "statué": 126, + "ordonné": 127, + "ce": 128, + "qui": 129, + "suit,": 130, + "savoir:": 131, + "chapitre": 132, + "déclaratoires,": 133, + "interprétatives": 134, + "administratives": 135, + "article": 136, + "titre": 137, + "s'intitule": 138, + "«": 139, + "immeuble».": 140, + "territoire": 141, + "assujetti": 142, + "s'applique": 143, + "l'ensemble": 144, + "soumis": 145, + "juridiction": 146, + "l'exception": 147, + "toute": 148, + "partie": 149, + "zone": 150, + "où": 151, + "l'occupation": 152, + "sol": 153, + "soumise": 154, + "contraintes": 155, + "particulières": 156, + "pour": 157, + "raisons": 158, + "sécurité": 159, + "publique.": 160, + "domaine": 161, + "d'application": 162, + "l'autorisation": 163, + "particulier": 164, + "immeuble": 165, + "déroge": 166, + "l'une": 167, + "l'autre": 168, + "règlements": 169, + "concernés": 170, + "doit": 171, + "être": 172, + "faite": 173, + "règles": 174, + "préséance": 175, + "règlement,": 176, + "moins": 177, + "d'indication": 178, + "contraire,": 179, + "suivantes": 180, + "s'appliquent": 181, + ":": 182, + "a)": 183, + "cas": 184, + "d'incompatibilité": 185, + "entre": 186, + "texte": 187, + "un": 188, + "titre,": 189, + "prévaut.": 190, + "b)": 191, + "autre": 192, + "forme": 193, + "d'expression,": 194, + "grille": 195, + "spécifications,": 196, + "autres": 197, + "d'urbanisme": 198, + "ont": 199, + "preseance": 200, + "disposition": 201, + "incompatible": 202, + "plusieurs": 203, + "mentionnés": 204, + "11.": 205, + "renvois": 206, + "contenus": 207, + "sont": 208, + "ouverts,": 209, + "c'est-à-dire": 210, + "qu'ils": 211, + "s'étendent": 212, + "pourrait": 213, + "subir": 214, + "faisant": 215, + "l'objet": 216, + "renvoi": 217, + "postérieurement": 218, + "l'entrée": 219, + "vigueur": 220, + "7": 221, + "terminologie": 222, + "l'interprétation": 223, + "contexte": 224, + "n'indique": 225, + "sens": 226, + "différent,": 227, + "tout": 228, + "mot": 229, + "expression": 230, + "lui": 231, + "attribué": 232, + "zonage": 233, + "vigueur.": 234, + "si": 235, + "n'est": 236, + "pas": 237, + "spécifiquement": 238, + "défini": 239, + "zonage,": 240, + "il": 241, + "s'entend": 242, + "son": 243, + "commun": 244, + "dictionnaire.": 245, + "8": 246, + "application": 247, + "l'application": 248, + "relève": 249, + "fonctionnaire": 250, + "désigné": 251, + "nommé": 252, + "selon": 253, + "permis": 254, + "certificats": 255, + "9": 256, + "pouvoirs": 257, + "devoirs": 258, + "définis": 259, + "10": 260, + "contraventions,": 261, + "sanctions,": 262, + "recours": 263, + "poursuites": 264, + "relatives": 265, + "contravention,": 266, + "sanction,": 267, + "poursuite": 268, + "judiciaire": 269, + "l'égard": 270, + "celles": 271, + "prévues": 272, + "procédure": 273, + "demande": 274, + "d'autorisation": 275, + "11": 276, + "objet": 277, + "d'une": 278, + "peut": 279, + "autoriser,": 280, + "conditions": 281, + "l'un": 282, + "suivants": 283, + "lotissement": 284, + "c)": 285, + "construction": 286, + "d)": 287, + "plans": 288, + "d'implantation": 289, + "d'intégration": 290, + "architecturale": 291, + "e)": 292, + "limité": 293, + "relative": 294, + "d'émission": 295, + "certificat": 296, + "d'autorisation.": 297, + "12": 298, + "transmission": 299, + "vue": 300, + "prévue": 301, + "écrite": 302, + "transmise": 303, + "propriétaire": 304, + "l'immeuble": 305, + "visé,": 306, + "mandataire": 307, + "dûment": 308, + "autorisé": 309, + "procuration,": 310, + "désigné.": 311, + "accompagnée": 312, + "documents": 313, + "échéant,": 314, + "procuration": 315, + "établissant": 316, + "mandat": 317, + "personne": 318, + "autorisée": 319, + "agir": 320, + "nom": 321, + "propriétaire;": 322, + "0": 323, + "chèque": 324, + "libellé": 325, + "l'ordre": 326, + "montant": 327, + "fixé": 328, + "régissant": 329, + "tarification": 330, + "demandes": 331, + ";": 332, + "copie": 333, + "plan": 334, + "d'arpentage": 335, + "terrain": 336, + "localisation": 337, + "visé": 338, + "authentique": 339, + "requérant": 340, + "document": 341, + "détient": 342, + "option": 343, + "d'achat": 344, + "ou,": 345, + "s'il": 346, + "s'agit": 347, + "appartenant": 348, + "preuve": 349, + "d'intention": 350, + "acceptée": 351, + "conseil;": 352, + "déclaration": 353, + "types": 354, + "demande.": 355, + "13": 356, + "caducité": 357, + "formulée": 358, + "vertu": 359, + "caduque": 360, + "n'a": 361, + "déposé": 362, + "comprenant": 363, + "renseignements": 364, + "exigés": 365, + "14": 366, + "délai": 367, + "prescrit": 368, + "cet": 369, + "article.": 370, + "fournis": 371, + "fins": 372, + "remis.": 373, + "lorsqu'une": 374, + "devenue": 375, + "l'effet": 376, + "paragraphe": 377, + "précédant,": 378, + "présenter": 379, + "nouvelle": 380, + "condition": 381, + "se": 382, + "conformer": 383, + "toutes": 384, + "exigences": 385, + "article,": 386, + "y": 387, + "compris": 388, + "paiement": 389, + "tarif.": 390, + "date": 391, + "réception": 392, + "celle": 393, + "elle": 394, + "complétée,": 395, + "notifie": 396, + "cette": 397, + "date,": 398, + "écrit,": 399, + "requérant.": 400, + "90": 401, + "jours": 402, + "déposée": 403, + "déposer": 404, + "auprès": 405, + "fin,": 406, + "fournir": 407, + "écrit": 408, + "exposant": 409, + "motifs": 410, + "description": 411, + "détaillée": 412, + "montrant": 413, + "prévus": 414, + "constructions": 415, + "existantes": 416, + "ériger,": 417, + "ainsi": 418, + "terrains": 419, + "voisins": 420, + "situés": 421, + "100": 422, + "m": 423, + "limites": 424, + "demande;": 425, + "photos": 426, + "démontrant": 427, + "érigées": 428, + "informations": 429, + "5.2.2": 430, + "certificats,": 431, + "piquetage": 432, + "requis": 433, + "esquisses": 434, + "couleur": 435, + "volumétrie": 436, + "générale,": 437, + "dimensions": 438, + "hauteur": 439, + "ériger": 440, + "terrain,": 441, + "leur": 442, + "intégration": 443, + "bâti": 444, + "situé": 445, + "mètres": 446, + "limite": 447, + "densité,": 448, + "termes": 449, + "d'indice": 450, + "superficie": 451, + "plancher,": 452, + "terrain;": 453, + "f)": 454, + "occupations": 455, + "public": 456, + "prévoir;": 457, + "g)": 458, + "propositions": 459, + "démolition": 460, + "existantes,": 461, + "conservation": 462, + "mise": 463, + "valeur": 464, + "d'éléments": 465, + "architecturaux": 466, + "d'origine;": 467, + "h)": 468, + "d'aménagement": 469, + "d'espaces": 470, + "extérieurs,": 471, + "protection": 472, + "plantations": 473, + "prévues;": 474, + "i)": 475, + "accès": 476, + "véhiculaires,": 477, + "espaces": 478, + "stationnement,": 479, + "chargement": 480, + "déchargement,": 481, + "d'entreposage": 482, + "extérieur,": 483, + "aires": 484, + "conteneurs": 485, + "déchets": 486, + "k)": 487, + "études": 488, + "nécessaires": 489, + "l'évaluation": 490, + "eu": 491, + "égard": 492, + "impacts": 493, + "environnementaux": 494, + "drainage": 495, + "eaux": 496, + "surface": 497, + "contrôle": 498, + "l'érosion": 499, + "pendant": 500, + "après": 501, + "j)": 502, + "serait": 503, + "viabilisé": 504, + "installations": 505, + "privées": 506, + "d'alimentation": 507, + "eau": 508, + "d'évacuation": 509, + "sanitaires,": 510, + "rapport": 511, + "technique,": 512, + "étude": 513, + "caractérisation": 514, + "site": 515, + "naturel": 516, + "réalisée": 517, + "membre": 518, + "ordre": 519, + "professionnel": 520, + "habilité,": 521, + "confirmant": 522, + "possibilité": 523, + "desservir": 524, + "lots": 525, + "projetés": 526, + "potable": 527, + "sanitaires": 528, + "conformes": 529, + "réglementation": 530, + "m)": 531, + "l'estimation": 532, + "totale": 533, + "coûts": 534, + "réalisation": 535, + "item": 536, + "(bâtiments,": 537, + "aménagement": 538, + "etc.),": 539, + "qu'un": 540, + "échéancier": 541, + "joindre": 542, + "juge": 543, + "utile": 544, + "soutien": 545, + "dépose.": 546, + "tel": 547, + "sera": 548, + "étudié": 549, + "délais": 550, + "programme.": 551, + "outre": 552, + "exiger": 553, + "expertise": 554, + "complémentaire": 555, + "portant": 556, + "aspect": 557, + "projet.": 558, + "fixer": 559, + "production": 560, + "telle": 561, + "d'au": 562, + "plus": 563, + "jours,": 564, + "commence": 565, + "courir": 566, + "avise": 567, + "exigence.": 568, + "demeurent": 569, + "propriété": 570, + "sainte-adèle.": 571, + "critères": 572, + "d'évaluation": 573, + "lesquels": 574, + "respecter": 575, + "objectifs": 576, + "compatibilité": 577, + "mitigation": 578, + "avec": 579, + "milieu": 580, + "d'insertion;": 581, + "qualités": 582, + "l'implantation,": 583, + "volumétrie,": 584, + "densité": 585, + "l'aménagement": 586, + "lieux;": 587, + "contribution": 588, + "enrichir": 589, + "patrimoine": 590, + "architectural,": 591, + "paysager": 592, + "vi": 593, + "ile": 594, + "avantages": 595, + "extérieurs": 596, + "plantations;": 597, + "projet,": 598, + "notamment": 599, + "drainage,": 600, + "paysage": 601, + "naturel,": 602, + "l'érosion,": 603, + "bruit": 604, + "circulation": 605, + "qualité": 606, + "l'organisation": 607, + "fonctionnelle": 608, + "regard": 609, + "sécurité;": 610, + "composantes": 611, + "culturelles": 612, + "sociales": 613, + "lieu;": 614, + "faisabilité": 615, + "l'échéancier": 616, + "prévu.": 617, + "malgré": 618, + "présent,": 619, + "approuvé": 620, + "même": 621, + "ne": 622, + "rencontre": 623, + "densités": 624, + "minimales": 625, + "maximales": 626, + "inscrites": 627, + "d'urbanisme.": 628, + "coefficient": 629, + "nombre": 630, + "logements": 631, + "l'hectare": 632, + "considérés": 633, + "comme": 634, + "densité.": 635, + "16": 636, + "ccu": 637, + "suivant": 638, + "dépôt": 639, + "particulier,": 640, + "transmet": 641, + "exemplaire": 642, + "comité": 643, + "consultatif": 644, + "d'urbanisme,": 645, + "sans": 646, + "commentaires.": 647, + "soumet": 648, + "sa": 649, + "recommandation": 650, + "d'accorder,": 651, + "conditions,": 652, + "d'autorisation,": 653, + "refuser": 654, + "précisant": 655, + "refus.": 656, + "fourni": 657, + "articles": 658, + "14.": 659, + "17": 660, + "décision": 661, + "accompagné": 662, + "rend,": 663, + "résolution,": 664, + "d'accorder": 665, + "particulier.": 666, + "certifiée": 667, + "conforme": 668, + "résolution": 669, + "conseil,": 670, + "refus": 671, + "demande,": 672, + "préciser": 673, + "accorde": 674, + "assujettie": 675, + "procédures": 676, + "consultation": 677, + "d'approbation": 678, + "l'urbanisme": 679, + "(l.r.q.,": 680, + "a-19.1).": 681, + "dspositions": 682, + "finales": 683, + "18": 684, + "entrée": 685, + "entrera": 686, + "loi.": 687, + "2008-312": 688, + "proposé": 689, + "m.": 690, + "appuyé": 691, + "résolu": 692, + "l'unanimité": 693, + "adopté": 694, + "conseil.": 695, + "descôteaux,": 696, + "me": 697, + "michel": 698, + "rousseau,": 699, + "avocat/greffier": 700, + "d'entrée": 701, + "vigueur:": 702, + "-------------------------------------------": 703, + "visioconférence,": 704, + "21": 705, + "mars": 706, + "2022,": 707, + "quorum": 708, + "richard": 709, + "allard": 710, + "arielle": 711, + "beaudin": 712, + "conseillère": 713, + "alexandre": 714, + "laganière": 715, + "jean-françois": 716, + "robillard": 717, + "gaëtan": 718, + "gagné": 719, + "david": 720, + "huggins-daines": 721, + "mairesse": 722, + "michèle": 723, + "lalonde.": 724, + "attendu": 725, + "désire": 726, + "harmoniser": 727, + "développement": 728, + "ses": 729, + "infrastructures": 730, + "routières": 731, + "l’intention": 732, + "limiter": 733, + "prolifération": 734, + "chemins": 735, + "issus": 736, + "nouveaux": 737, + "développements": 738, + "avis": 739, + "février": 740, + "2022": 741, + "qu’un": 742, + "présenté": 743, + "l’avis": 744, + "qu’une": 745, + "remise": 746, + "impartis": 747, + "décrète": 748, + "qu’il": 749, + "suit": 750, + "1.": 751, + "zones": 752, + "type": 753, + "t3.1": 754, + "(habitation": 755, + "boisé)": 756, + "prévu": 757, + "1314-2021-z": 758, + "2.": 759, + "objectif": 760, + "général": 761, + "assurer": 762, + "prolongement": 763, + "routier": 764, + "puisse": 765, + "interconnecté": 766, + "qu’assurer": 767, + "continuité": 768, + "différents": 769, + "réseaux.": 770, + "perspective": 771, + "durable,": 772, + "bouclage": 773, + "réseaux": 774, + "routiers": 775, + "devient": 776, + "priorité": 777, + "d’aménagement": 778, + "issues": 779, + "doivent": 780, + "évités.": 781, + "3.": 782, + "relatifs": 783, + "permettre,": 784, + "l’intérieur": 785, + "d’un": 786, + "subséquent,": 787, + "réseau": 788, + "routier,": 789, + "d’infrastructures": 790, + "loisirs": 791, + "déplacement": 792, + "actifs.": 793, + "4.": 794, + "présentation": 795, + "d’ensemble": 796, + "lorsqu'un": 797, + "propriétaires": 798, + "souhaitent": 799, + "mettre": 800, + "propriétés": 801, + "situées": 802, + "t": 803, + "3.1": 804, + "construire": 805, + "infrastructure": 806, + "routière,": 807, + "(p.a.e.)": 808, + "conformité": 809, + "définies": 810, + "1323": 811, + "–": 812, + "(adoption)": 813, + "5.": 814, + "inclure": 815, + "l’ensemble": 816, + "1314-2012-pc": 817, + "visant": 818, + "modifications": 819, + "règlementaires": 820, + "et,": 821, + "majeurs": 822, + "construction.": 823, + "plus,": 824, + "devra": 825, + "concept": 826, + "effectué": 827, + "échelle": 828, + "500": 829, + "500,": 830, + "identifiant": 831, + "a.": 832, + "nord": 833, + "l'échelle;": 834, + "b.": 835, + "l’identification": 836, + "cadastrale": 837, + "adjacents": 838, + "projet;": 839, + "c.": 840, + "tracé": 841, + "l’emprise": 842, + "rues": 843, + "proposées": 844, + "déjà": 845, + "acceptées": 846, + "lequel": 847, + "communiquent": 848, + "l’immeuble": 849, + "immeubles": 850, + "adjacents;": 851, + "caractéristiques": 852, + "projetées": 853, + "(largeur": 854, + "d’emprise,": 855, + "pente,": 856, + "l’identification,": 857, + "typologie": 858, + "associées": 859, + "liens": 860, + "piétons,": 861, + "cyclables": 862, + "nature": 863, + "proposés": 864, + "e.": 865, + "intersections": 866, + "acceptées;": 867, + "f.": 868, + "entrées": 869, + "charretières": 870, + "allées": 871, + "donnant": 872, + "échéant;": 873, + "g.": 874, + "équipements": 875, + "parties": 876, + "l'aire": 877, + "d’ensemble;": 878, + "h.": 879, + "servitudes": 880, + "droits": 881, + "passages": 882, + "existants": 883, + "requis;": 884, + "i.": 885, + "topographie": 886, + "exprimée": 887, + "courbes": 888, + "niveau": 889, + "dont": 890, + "intervalles": 891, + "suffisants": 892, + "bonne": 893, + "compréhension": 894, + "site,": 895, + "distinguant": 896, + "principalement": 897, + "très": 898, + "fortes": 899, + "pentes": 900, + "(pente": 901, + "30": 902, + "%": 903, + "plus),": 904, + "%),": 905, + "moyennes": 906, + "%)": 907, + "faibles": 908, + "moins),": 909, + "j.": 910, + "éléments": 911, + "contrainte": 912, + "potentiel": 913, + "incluant": 914, + "naturelles": 915, + "leurs": 916, + "localisations": 917, + "(cours": 918, + "d'eau,": 919, + "milieux": 920, + "humides,": 921, + "rocs": 922, + "surface,": 923, + "boisés,": 924, + "végétation": 925, + "existante,": 926, + "d'inondations,": 927, + "etc.)": 928, + "projetées;": 929, + "6.": 930, + "additionnels": 931, + "également": 932, + "fournisse,": 933, + "frais,": 934, + "renseignement,": 935, + "détail,": 936, + "attestation": 937, + "professionnelle": 938, + "(incluant": 939, + "sceau": 940, + "signature": 941, + "originale": 942, + "aura": 943, + "préparés),": 944, + "présentant": 945, + "conclusions": 946, + "recommandations": 947, + "nécessaire": 948, + "complète": 949, + "et/ou": 950, + "s’assurer": 951, + "parfaite": 952, + "observance": 953, + "différentes": 954, + "pertinent": 955, + "publique": 956, + "l’environnement": 957, + "seront": 958, + "indument": 959, + "mis": 960, + "cause.": 961, + "7.": 962, + "dispense": 963, + "dispenser": 964, + "l’un": 965, + "l’autre": 966, + "renseignements,": 967, + "détails,": 968, + "attestations": 969, + "professionnelles": 970, + "spécifiées": 971, + "lorsque,": 972, + "désigné,": 973, + "absence": 974, + "n’entraverait": 975, + "rien": 976, + "l’observance": 977, + "municipaux": 978, + "mettrait": 979, + "cause": 980, + "l’environnement.": 981, + "8.": 982, + "d’urbanisme": 983, + "fois": 984, + "contenu": 985, + "réputé": 986, + "dernier": 987, + "prépare": 988, + "municipal.": 989, + "demander,": 990, + "jugé": 991, + "nécessaire,": 992, + "supplémentaires": 993, + "d’ensemble.": 994, + "9.": 995, + "suite": 996, + "d’urbanisme,": 997, + "approbation;": 998, + "approuver,": 999, + "condition,": 1000, + "si,": 1001, + "dernier,": 1002, + "énoncés": 1003, + "plan.": 1004, + "décide": 1005, + "approuver": 1006, + "d’ensemble,": 1007, + "peut,": 1008, + "formuler": 1009, + "requises": 1010, + "permettant": 1011, + "ultérieurement": 1012, + "d’accepter": 1013, + "l'approbation": 1014, + "n'engage": 1015, + "d'aucune": 1016, + "façon": 1017, + "entreprendre": 1018, + "délivrer": 1019, + "correspondants": 1020, + "constituer": 1021, + "obligation": 1022, + "cession": 1023, + "apparaissant": 1024, + "audit": 1025, + "ni": 1026, + "d’en": 1027, + "décréter": 1028, + "l’ouverture,": 1029, + "prendre": 1030, + "charge": 1031, + "frais": 1032, + "d’entretien,": 1033, + "assumer": 1034, + "responsabilités": 1035, + "civiles.": 1036, + "10.": 1037, + "adoption": 1038, + "celui-ci": 1039, + "adopter": 1040, + "ayant": 1041, + "modifier": 1042, + "intégrer": 1043, + "lorsqu'il": 1044, + "remplace": 1045, + "édicté": 1046, + "remplacement,": 1047, + "d'effectuer": 1048, + "l'inclusion": 1049, + "modification.": 1050, + "l’approbation": 1051, + "nécessite": 1052, + "d’une": 1053, + "12.": 1054, + "administration": 1055, + "l'administration": 1056, + "l’application": 1057, + "confiées": 1058, + "nommée": 1059, + "ci-après": 1060, + "»,": 1061, + "13.": 1062, + "signé": 1063, + "21e": 1064, + "jour": 1065, + "mois": 1066, + "d’avril": 1067, + "l’an": 1068, + "2022.": 1069, + "(s)": 1070, + "lalonde": 1071, + "audrey": 1072, + "senécal": 1073, + "_____________________": 1074, + "_____________________________": 1075, + "greffière": 1076, + "directrice": 1077, + "services": 1078, + "juridiques": 1079, + "*********************************************": 1080, + "d’approbation": 1081, + "l’article": 1082, + "357": 1083, + "(rlrq,": 1084, + "c-19)": 1085, + "concernant": 1086, + "(pae)»": 1087, + "19": 1088, + "avril": 1089, + "19h,": 1090, + "1386,": 1091, + "quorum:": 1092, + "absents": 1093, + "durée": 1094, + "séance.": 1095, + "financer": 1096, + "l’ajout,": 1097, + "l’agrandissement": 1098, + "nombreuses": 1099, + "l’achat": 1100, + "d’équipements": 1101, + "rendus": 1102, + "raison": 1103, + "croissance;": 1104, + "145.21": 1105, + "l’aménagement": 1106, + "l’urbanisme": 1107, + "permet": 1108, + "d’assujettir": 1109, + "délivrance": 1110, + "d’autorisation": 1111, + "d’occupation": 1112, + "monétaire": 1113, + "dépenses": 1114, + "liées": 1115, + "l’accroissement": 1116, + "liés": 1117, + "huggins-daines;": 1118, + "prestation": 1119, + "accrue": 1120, + "découlant": 1121, + "l’intervention": 1122, + "visée": 1123, + "assujettissant": 1124, + "certains": 1125, + "travaux": 1126, + "contribution.": 1127, + "s’applique": 1128, + "reliés": 1129, + "d’égout": 1130, + "amenant": 1131, + "traitement": 1132, + "l’usine": 1133, + "d’épuration": 1134, + "mont-rolland.": 1135, + "assujettis": 1136, + "requérant,": 1137, + "moment": 1138, + "permis,": 1139, + "l’égard": 1140, + "1°": 1141, + "unité": 1142, + "logement;": 1143, + "2°": 1144, + "l’ajout": 1145, + "logement": 1146, + "ceci,": 1147, + "excluant": 1148, + "accessoires": 1149, + "l’habitation": 1150, + "unifamiliale;": 1151, + "3°": 1152, + "non": 1153, + "résidentielle": 1154, + "nouveau": 1155, + "bâtiment": 1156, + "existant": 1157, + "agrandissement,": 1158, + "augmentant": 1159, + "conséquent": 1160, + "débit": 1161, + "théorique.": 1162, + "1324": 1163, + "–contribution": 1164, + "dépense": 1165, + "page": 1166, + "définition": 1167, + "d’unité": 1168, + "constitue": 1169, + "unité,": 1170, + "logement.": 1171, + "pièce": 1172, + "ensemble": 1173, + "pièces": 1174, + "habitation,": 1175, + "accessible": 1176, + "directement": 1177, + "l’extérieur": 1178, + "vestibule": 1179, + "corridor": 1180, + "logements,": 1181, + "complètes": 1182, + "(toilette,": 1183, + "lavabo": 1184, + "baignoire": 1185, + "douche)": 1186, + "préparer": 1187, + "repas,": 1188, + "manger": 1189, + "dormir.": 1190, + "local": 1191, + "usage": 1192, + "résidentiel,": 1193, + "rejette": 1194, + "usées": 1195, + "consomme": 1196, + "d’aqueduc.": 1197, + "classe": 1198, + "commerciale": 1199, + "hébergement": 1200, + "(c-03)": 1201, + "»": 1202, + "1314-2021-z,": 1203, + "chambre": 1204, + "location.": 1205, + "unités,": 1206, + "chambres": 1207, + "individuelles": 1208, + "habitation": 1209, + "collective": 1210, + "total": 1211, + "quotidien": 1212, + "consommation": 1213, + "rejet": 1214, + "estimé": 1215, + "1620": 1216, + "l/j.": 1217, + "considéré": 1218, + "grand": 1219, + "consommateur": 1220, + "additionnelle": 1221, + "l’atteinte": 1222, + "chaque": 1223, + "plateau": 1224, + "l/j": 1225, + "qu’elle": 1226, + "d’assainissement": 1227, + "calcul": 1228, + "l’ordre": 1229, + "ingénieurs": 1230, + "québec.": 1231, + "parallèlement,": 1232, + "grands": 1233, + "consommateurs,": 1234, + "d’unités,": 1235, + "entrainant": 1236, + "changement": 1237, + "versement": 1238, + "demandeur": 1239, + "verser,": 1240, + "émission,": 1241, + "applicable": 1242, + "d’unités.": 1243, + "substantiellement": 1244, + "référence": 1245, + "effectué.": 1246, + "advenant": 1247, + "l’annulation": 1248, + "autorisation": 1249, + "soient": 1250, + "réalisés": 1251, + "aucun": 1252, + "remboursement": 1253, + "contributions": 1254, + "versées": 1255, + "conservées": 1256, + "crédit": 1257, + "appliqué": 1258, + "subséquente": 1259, + "effectuée.": 1260, + "n’est": 1261, + "réduction": 1262, + "toutefois,": 1263, + "conservé": 1264, + "dossier,": 1265, + "l’unité": 1266, + "supprimée": 1267, + "pouvant": 1268, + "place": 1269, + "effectuer": 1270, + "servir": 1271, + "création,": 1272, + "l’aménagement,": 1273, + "réaménagement,": 1274, + "niveau,": 1275, + "équipement": 1276, + "suivantes,": 1277, + "desservent": 1278, + "visés": 1279, + "2;": 1280, + "(adoption": 1281, + ")": 1282, + "étant": 1283, + "coups": 1284, + "d’augmentation": 1285, + "capacité": 1286, + "d’infrastructure": 1287, + "indissociables": 1288, + "part": 1289, + "importante": 1290, + "rendue": 1291, + "croissance": 1292, + "l’utilisation,": 1293, + "ils": 1294, + "répartis": 1295, + "immeubles.": 1296, + "établie": 1297, + "donc": 1298, + "20%": 1299, + "coût": 1300, + "imputable": 1301, + "nouvelles": 1302, + "unités.": 1303, + "établissement": 1304, + "fond": 1305, + "dédié": 1306, + "créé,": 1307, + "compter": 1308, + "d’entrée": 1309, + "fonds": 1310, + "redevance": 1311, + "profit": 1312, + "travaux,": 1313, + "énumérés": 1314, + "indéterminée": 1315, + "compose": 1316, + "sommes": 1317, + "requérants": 1318, + "intérêts": 1319, + "qu’elles": 1320, + "produisent.": 1321, + "l’actif": 1322, + "destiné": 1323, + "exclusivement": 1324, + "financement": 1325, + "utilisé": 1326, + "l’affectation": 1327, + "équivalant": 1328, + "engagées": 1329, + "relativement": 1330, + "capital": 1331, + "échéances": 1332, + "annuelles": 1333, + "emprunt": 1334, + "contracté": 1335, + "l’exécution": 1336, + "telles": 1337, + "dépenses.": 1338, + "constate": 1339, + "surplus": 1340, + "exigée,": 1341, + "solde": 1342, + "résiduel": 1343, + "réparti": 1344, + "contribution,": 1345, + "prorata": 1346, + "montants": 1347, + "payés.": 1348, + "répartition": 1349, + "tard": 1350, + "31": 1351, + "décembre": 1352, + "l’exercice": 1353, + "financier": 1354, + "celui": 1355, + "cours": 1356, + "duquel": 1357, + "constaté.": 1358, + "exonération": 1359, + "l’exigence": 1360, + "1)": 1361, + "organisme": 1362, + "premier": 1363, + "alinéa": 1364, + "l’accès": 1365, + "organismes": 1366, + "publics": 1367, + "personnels": 1368, + "a-2.1).": 1369, + "2)": 1370, + "centre": 1371, + "petite": 1372, + "enfance": 1373, + "garde": 1374, + "éducatifs": 1375, + "l’enfance": 1376, + "s-4.1.1).": 1377, + "3)": 1378, + "reconstruction": 1379, + "détruit": 1380, + "volontairement": 1381, + "sinistre": 1382, + "n’a": 1383, + "effet": 1384, + "d’augmenter": 1385, + "d’unités": 1386, + "d’habitation": 1387, + "précédent": 1388, + "destruction,": 1389, + "conditionnellement": 1390, + "émis": 1391, + "douze": 1392, + "(12)": 1393, + "destruction.": 1394, + "4)": 1395, + "portion": 1396, + "résidentiel": 1397, + "mixte": 1398, + "abordables": 1399, + "cadre": 1400, + "programme": 1401, + "subvention": 1402, + "public.": 1403, + "validité": 1404, + "jusqu’à": 1405, + "l’abrogation": 1406, + "calculé": 1407, + "complète.": 1408, + "16e": 1409, + "mai": 1410, + "_____": 1411, + "_______": 1412, + "liée": 1413, + "».": 1414, + "______": 1415, + "codification": 1416, + "administrative": 1417, + "lecteur": 1418, + "présentes": 1419, + "avisé": 1420, + "erreur": 1421, + "omission": 1422, + "relevée": 1423, + "diminuer": 1424, + "caractère": 1425, + "exécutoire": 1426, + "amendements,": 1427, + "tels": 1428, + "sanctionnés": 1429, + "version": 1430, + "disponible": 1431, + "service": 1432, + "greffe.": 1433, + "vérifier": 1434, + "applicables,": 1435, + "pourra": 1436, + "consulter": 1437, + "officiel": 1438, + "greffe": 1439, + "mention,": 1440, + "fin": 1441, + "séquentiel": 1442, + "indique": 1443, + "original": 1444, + "fait": 1445, + "l’objet": 1446, + "alors": 1447, + "précisée": 1448, + "(règlement,": 1449, + "article).": 1450, + "1132-2010": 1451, + "afin": 1452, + "l’occupation": 1453, + "1132-2010,": 1454, + "2010,": 1455, + "entré": 1456, + "28": 1457, + "2010": 1458, + "amendé": 1459, + "": 1460, + "1132-1,": 1461, + "juin": 1462, + "2019,": 1463, + "26": 1464, + "2019": 1465, + "-": 1466, + "introductives": 1467, + "section": 1468, + "interprétation": 1469, + "1.1.1": 1470, + "mots": 1471, + "signifient": 1472, + "manière": 1473, + "paysager,": 1474, + "ouvrage": 1475, + "quelque": 1476, + "soient,": 1477, + "plantation": 1478, + "gazonnée": 1479, + "arbustive": 1480, + "qu'une": 1481, + "rocaille,": 1482, + "l'installation": 1483, + "d'objets": 1484, + "mobiliers": 1485, + "décoratifs,": 1486, + "mais": 1487, + "l'exclusion": 1488, + "dont,": 1489, + "limitative,": 1490, + "muret,": 1491, + "clôture,": 1492, + "enseigne,": 1493, + "système": 1494, + "d'irrigation": 1495, + "jeu": 1496, + "sauf": 1497, + "affecté": 1498, + "l’utilité": 1499, + "présumés,": 1500, + "faire": 1501, + "destinés": 1502, + "chemin": 1503, + "parc": 1504, + "ville,": 1505, + "ouverts": 1506, + "aménagés": 1507, + "parc;": 1508, + "sainte-": 1509, + "adèle;": 1510, + "directeur": 1511, + "désignée": 1512, + "remplacer": 1513, + "l'assister": 1514, + "entreprise": 1515, + "d'utilité": 1516, + "morale": 1517, + "droit": 1518, + "privé": 1519, + "opère": 1520, + "ouvrages": 1521, + "peuvent": 1522, + "arbitrage": 1523, + "autorité": 1524, + "gouvernementale": 1525, + "adjoint": 1526, + "occupant": 1527, + "juridique": 1528, + "immeuble,": 1529, + "d'accès": 1530, + "charretière,": 1531, + "trottoir,": 1532, + "boîte": 1533, + "lettres": 1534, + "branchement": 1535, + "l'occupant": 1536, + "stationnement": 1537, + "véhicules": 1538, + "général,": 1539, + "tarifé": 1540, + "voie": 1541, + "endroit": 1542, + "structure": 1543, + "route,": 1544, + "ruelle,": 1545, + "sentier": 1546, + "piste": 1547, + "cyclable,": 1548, + "multifonctionnelle": 1549, + "randonnée.": 1550, + "champ": 1551, + "d’application": 1552, + "1.2.1": 1553, + "quel": 1554, + "mode": 1555, + "d’acquisition,": 1556, + "état.": 1557, + "1.2.2": 1558, + "publique;": 1559, + "présumés": 1560, + "mitoyens": 1561, + "civil": 1562, + "modalités": 1563, + "d'entretien": 1564, + "établies": 1565, + "lois": 1566, + "applicables": 1567, + "ces": 1568, + "matières;": 1569, + "arbres": 1570, + "voisin": 1571, + "branches": 1572, + "racines": 1573, + "déploient": 1574, + "au-dessus": 1575, + "public,": 1576, + "s'appliquant": 1577, + "végétation;": 1578, + "l'immobilisation": 1579, + "véhicule": 1580, + "isolée": 1581, + "moyen": 1582, + "clôture": 1583, + "séparation;": 1584, + "acquis": 1585, + "vente": 1586, + "défaut": 1587, + "taxes,": 1588, + "période": 1589, + "s’exercer": 1590, + "retrait,": 1591, + "tant": 1592, + "qu’ils": 1593, + "n’ont": 1594, + "affectés": 1595, + "baux": 1596, + "consentis": 1597, + "ville;": 1598, + "événements": 1599, + "autorisés": 1600, + "maximale": 1601, + "fête": 1602, + "foraine": 1603, + "activité": 1604, + "sportive,": 1605, + "récréative,": 1606, + "communautaire": 1607, + "caritative.": 1608, + "1.2.3": 1609, + "relèvent": 1610, + "directeur.": 1611, + "1.2.4": 1612, + "émettre": 1613, + "demander": 1614, + "cesser": 1615, + "infraction": 1616, + "règlement;": 1617, + "constat": 1618, + "d'infraction": 1619, + "apparaît": 1620, + "contrevenir": 1621, + "recommander": 1622, + "recourir": 1623, + "tribunaux": 1624, + "civils": 1625, + "compétents": 1626, + "obliger": 1627, + "respect": 1628, + "avoir": 1629, + "accès,": 1630, + "carte": 1631, + "d'identité": 1632, + "officielle": 1633, + "délivrée": 1634, + "heure": 1635, + "raisonnable,": 1636, + "inspecter": 1637, + "l'aménagement,": 1638, + "l'entretien": 1639, + "exercée": 1640, + "s'assurer": 1641, + "respectées;": 1642, + "ii)": 1643, + "lieux": 1644, + "l'étude": 1645, + "d'autorisation;": 1646, + "iii)": 1647, + "recueillir": 1648, + "élément": 1649, + "photographies;": 1650, + "mesure": 1651, + "appropriée,": 1652, + "acceptable": 1653, + "déterminer": 1654, + "l'intérieur": 1655, + "exécutés": 1656, + "remédier": 1657, + "contravention": 1658, + "exiger,": 1659, + "croire": 1660, + "existe": 1661, + "danger": 1662, + "grave": 1663, + "imminent": 1664, + "l'utilisation,": 1665, + "mesures": 1666, + "immédiates": 1667, + "appropriées": 1668, + "éliminer": 1669, + "danger;": 1670, + "renseignement": 1671, + "d'établir": 1672, + "1.2.5": 1673, + "possède": 1674, + "indiqués": 1675, + "sous-paragraphes": 1676, + "a),": 1677, + "b),": 1678, + "d),": 1679, + "e),": 1680, + "f),": 1681, + "1.2.4.": 1682, + "1.2.6": 1683, + "s'appliquent,": 1684, + "adaptations": 1685, + "nécessaires,": 1686, + "mêmes": 1687, + "privée.": 1688, + "ainsi,": 1689, + "aménagements": 1690, + "constructions,": 1691, + "temporaire": 1692, + "permanente,": 1693, + "prescriptions": 1694, + "municipale": 1695, + "applicable,": 1696, + "obtention,": 1697, + "requis.": 1698, + "1.2.7": 1699, + "sévères": 1700, + "règle": 1701, + "sévère": 1702, + "préséance.": 1703, + "comportements": 1704, + "personnes": 1705, + "aménagement,": 1706, + "accordée": 1707, + "paix": 1708, + "spécifique": 1709, + "1.2.8": 1710, + "réserve": 1711, + "matière": 1712, + "dérogation": 1713, + "mineure,": 1714, + "déroger": 1715, + "normes": 1716, + "opérationnel": 1717, + "principe": 1718, + "2.1.1": 1719, + "tolérance": 1720, + "nul": 1721, + "occuper": 1722, + "installant": 1723, + "ouvrages,": 1724, + "quelconques": 1725, + "simplement": 1726, + "s’y": 1727, + "installant.": 1728, + "2.1.2": 1729, + "législation": 1730, + "riverain": 1731, + "exercer,": 1732, + "autorisation,": 1733, + "utilisée": 1734, + "l'emprise": 1735, + "front": 1736, + "lignes": 1737, + "séparatives": 1738, + "riverain.": 1739, + "2.1.3": 1740, + "occupants": 1741, + "riverains": 1742, + "prétendent": 1743, + "exercer": 1744, + "détermine,": 1745, + "tenant": 1746, + "compte": 1747, + "configuration": 1748, + "lieux,": 1749, + "l'historique": 1750, + "besoins": 1751, + "respectifs": 1752, + "occupants,": 1753, + "occupé": 1754, + "chacun.": 1755, + "requérir": 1756, + "information": 1757, + "rend": 1758, + "produisant": 1759, + "l'occasion": 1760, + "intéressés": 1761, + "d'être": 1762, + "entendus.": 1763, + "finale": 1764, + "appel.": 1765, + "2.1.4": 1766, + "obtenir": 1767, + "inconditionnelle": 1768, + "conditionnelle": 1769, + "indiquées": 1770, + "viser": 1771, + "d'occupation.": 1772, + "2.1.5": 1773, + "empêcher": 1774, + "occupation": 1775, + "tolérance.": 1776, + "uniquement": 1777, + "échec": 1778, + "2.1.3.": 1779, + "2.1.6": 1780, + "aucune": 1781, + "requise": 1782, + "installer": 1783, + "enseigne": 1784, + "électorale": 1785, + "référendaire": 1786, + "effectuée": 1787, + "défaut,": 1788, + "285.1": 1789, + "élections": 1790, + "référendums": 1791, + "municipalités.": 1792, + "2.1.7": 1793, + "accordé": 1794, + "exercé": 1795, + "obligations": 1796, + "restrictions": 1797, + "échoient": 1798, + "2.1.8": 1799, + "précaire": 1800, + "invoqué": 1801, + "constitution": 1802, + "réel": 1803, + "prescription": 1804, + "acquisitive.": 1805, + "interprété": 1806, + "priver": 1807, + "qu'elle": 1808, + "totalité": 1809, + "doivent,": 1810, + "temps,": 1811, + "accordés": 1812, + "quiconque": 1813, + "2.2.1": 1814, + "s’exerce": 1815, + "effet,": 1816, + "autorisations": 1817, + "accordées.": 1818, + "2.2.2": 1819, + "porte": 1820, + "d'accès,": 1821, + "privilège": 1822, + "d'utilisation": 1823, + "l'espace": 1824, + "occupant.": 1825, + "appartenir": 1826, + "l'occupant.": 1827, + "2.2.3": 1828, + "l'exercice": 1829, + "publique,": 1830, + "exerce": 1831, + "emprise.": 1832, + "2.2.4": 1833, + "bénéficiaire": 1834, + "d'ouvrages": 1835, + "ceux": 1836, + "prévalent": 1837, + "occupe.": 1838, + "2.2.5": 1839, + "aménagée": 1840, + "entretenue,": 1841, + "homogène": 1842, + "reste": 1843, + "ville.": 1844, + "exempte": 1845, + "nuisance": 1846, + "d'insalubrité": 1847, + "bénéficie": 1848, + "2.2.6": 1849, + "utilisés": 1850, + "occupant,": 1851, + "garnie": 1852, + "gazon,": 1853, + "d'arbres,": 1854, + "d'arbustes": 1855, + "d'autres": 1856, + "végétaux.": 1857, + "entretenir": 1858, + "procédant": 1859, + "tonte": 1860, + "pelouse,": 1861, + "taille,": 1862, + "l'élagage": 1863, + "l'abattage": 1864, + "arbres,": 1865, + "arbustes": 1866, + "2.2.7": 1867, + "garnir": 1868, + "premiers": 1869, + "trois": 1870, + "calculés": 1871, + "partir": 1872, + "bordure": 1873, + "circulation.": 1874, + "intersection,": 1875, + "triangle": 1876, + "visibilité": 1877, + "s’appliquent": 1878, + "l'emplacement": 1879, + "projection": 1880, + "conduite": 1881, + "souterraine": 1882, + "vanne": 1883, + "d'arrêt": 1884, + "extérieure,": 1885, + "puisard": 1886, + "d'égout": 1887, + "municipal;": 1888, + "borne": 1889, + "d’incendie.": 1890, + "2.2.8": 1891, + "temps": 1892, + "manière,": 1893, + "permission": 1894, + "expresse": 1895, + "autrement": 1896, + "altérer": 1897, + "installé": 1898, + "2.2.9": 1899, + "faits": 1900, + "susceptibles": 1901, + "nuire": 1902, + "opérations": 1903, + "déneigement": 1904, + "2.2.9.1": 1905, + "remplacer,": 1906, + "spécifiques": 1907, + "ponctuels": 1908, + "(ponceau": 1909, + "autre)": 1910, + "mal": 1911, + "entretenu": 1912, + "devenu": 1913, + "vétuste": 1914, + "l’écoulement": 1915, + "2.2.9.2": 1916, + "aviser": 1917, + "l’occupant": 1918, + "l’équipement": 1919, + "remplacé": 1920, + "estimation": 1921, + "remplacement": 1922, + "occasionnera": 1923, + "l’occupant;": 1924, + "2.2.9.3": 1925, + "réaliser": 1926, + "directeur,": 1927, + "2.2.9.4": 1928, + "respectés": 1929, + "l’occupant,": 1930, + "réalise": 1931, + "2.2.9.5": 1932, + "contiguë": 1933, + "prolongation": 1934, + "979": 1935, + "code": 1936, + "entretenus,": 1937, + "devenus": 1938, + "vétustes": 1939, + "remplacés": 1940, + "assumés": 1941, + "2.2.9.6": 1942, + "pareil": 1943, + "mandataire,": 1944, + "acheminer": 1945, + "facture": 1946, + "représentant": 1947, + "totaux": 1948, + "finaux": 1949, + "drainage;": 1950, + "2.2.9.7": 1951, + "suivi": 1952, + "perception": 1953, + "dus": 1954, + "d’infractions": 1955, + "3.3.2": 1956, + "3.3.3": 1957, + "2.2.10": 1958, + "superficiaire": 1959, + "érigée": 1960, + "l'occupant,": 1961, + "l'obtention": 1962, + "effet.": 1963, + "2.2.11": 1964, + "laisser": 1965, + "pousser": 1966, + "arbre": 1967, + "dégagement": 1968, + "interdictions": 1969, + "2.2.12": 1970, + "installée": 1971, + "mètre": 1972, + "béton,": 1973, + "pavage": 1974, + "roulement.": 1975, + "2.2.13": 1976, + "abris": 1977, + "d'autos": 1978, + "garages": 1979, + "temporaires": 1980, + "qu'en": 1981, + "lorsqu'ils": 1982, + "autorisés,": 1983, + "moyennant": 1984, + "réglementation,": 1985, + "installés": 1986, + "2.2.14": 1987, + "concerne": 1988, + "tiers": 1989, + "responsable": 1990, + "dommage": 1991, + "biens,": 1992, + "résulte": 1993, + "utilisation": 1994, + "manquement": 1995, + "obligations,": 1996, + "occupe": 1997, + "2.2.15": 1998, + "veut": 1999, + "utiliser": 2000, + "égard.": 2001, + "2.3.1": 2002, + "permanent.": 2003, + "temporaire,": 2004, + "an.": 2005, + "permanent,": 2006, + "an": 2007, + "plus.": 2008, + "cas,": 2009, + "signification": 2010, + "adoptée": 2011, + "fin.": 2012, + "2.3.2": 2013, + "2.3.10,": 2014, + "délivré": 2015, + "2.3.3": 2016, + "prend": 2017, + "indiquée": 2018, + "annexe": 2019, + "l'est": 2020, + "l'annexe": 2021, + "b": 2022, + "jointes": 2023, + "intégrante.": 2024, + "lorsqu'elle": 2025, + "dernière": 2026, + "suivante,": 2027, + "l'introduction": 2028, + "d'usage": 2029, + "permanente": 2030, + "________________,": 2031, + "indiquées;": 2032, + "signer": 2033, + "inscrire": 2034, + "registre": 2035, + "xxx": 2036, + "2.3.4": 2037, + "porter": 2038, + "espace": 2039, + "aérien,": 2040, + "emplacement": 2041, + "souterrain": 2042, + "combinaison": 2043, + "ceux-ci.": 2044, + "comporte,": 2045, + "indiquées,": 2046, + "l'utilité": 2047, + "visée.": 2048, + "2.3.5": 2049, + "accordée,": 2050, + "remisage": 2051, + "matériaux,": 2052, + "d'équipements": 2053, + "démolition,": 2054, + "déplacement,": 2055, + "rénovation": 2056, + "ouvrage;": 2057, + "empiétement": 2058, + "construction;": 2059, + "ouvrage,": 2060, + "accessoire": 2061, + "infrastructure,": 2062, + "entièrement": 2063, + "(poteau,": 2064, + "prise": 2065, + "puits,": 2066, + "muret);": 2067, + "accessoire,": 2068, + "poste": 2069, + "pompage": 2070, + "d'incendie);": 2071, + "voirie": 2072, + "transport": 2073, + "biens;": 2074, + "digue,": 2075, + "barrage,": 2076, + "quai,": 2077, + "débarcadère": 2078, + "plate-forme": 2079, + "d'amarrage;": 2080, + "dispositif": 2081, + "d'éclairage": 2082, + "issue": 2083, + "secours;": 2084, + "drapeau,": 2085, + "affiche,": 2086, + "bannière,": 2087, + "auvent,": 2088, + "poteaux": 2089, + "servant": 2090, + "supporter": 2091, + "d'affichage;": 2092, + "fil": 2093, + "aérien": 2094, + "longeant": 2095, + "traversant": 2096, + "immeuble;": 2097, + "motorisés": 2098, + "sous-paragraphe": 2099, + "d);": 2100, + "l)": 2101, + "bénéficie;": 2102, + "exercice": 2103, + "passage": 2104, + "rendre": 2105, + "enclavée": 2106, + "physiquement": 2107, + "économiquement.": 2108, + "2.3.6": 2109, + "personnel.": 2110, + "incessibles.": 2111, + "tiers,": 2112, + "décès,": 2113, + "déménagement,": 2114, + "faillite": 2115, + "liquidation,": 2116, + "abandon": 2117, + "constitutif": 2118, + "cessation": 2119, + "entraînent": 2120, + "nullité.": 2121, + "cédés": 2122, + "transférés": 2123, + "cédant": 2124, + "libéré": 2125, + "lorsque": 2126, + "inscrite": 2127, + "2.3.7": 2128, + "accordant": 2129, + "précise": 2130, + "jugées": 2131, + "utiles": 2132, + "l'intérêt": 2133, + "salubrité,": 2134, + "d'esthétique.": 2135, + "2.3.8": 2136, + "paragraphes": 2137, + "effectuant": 2138, + "réserve,": 2139, + "particularités": 2140, + "imposant": 2141, + "sévères.": 2142, + "2.3.9": 2143, + "discrétionnaire.": 2144, + "n'ont": 2145, + "motiver": 2146, + "l'accorder.": 2147, + "2.3.10": 2148, + "justifie,": 2149, + "soumettre": 2150, + "dernier.": 2151, + "2.3.11": 2152, + "renouvelée": 2153, + "comporter": 2154, + "d'exercice": 2155, + "antérieure.": 2156, + "dossier": 2157, + "2.4.1": 2158, + "complétant": 2159, + "formulaire": 2160, + "fournissant": 2161, + "payant": 2162, + "tarif": 2163, + "établi.": 2164, + "examine": 2165, + "observations": 2166, + "indiquant,": 2167, + "devraient": 2168, + "apparaître": 2169, + "observations,": 2170, + "permis;": 2171, + "employé": 2172, + "d'obtenir": 2173, + "commentaires": 2174, + "pertinents.": 2175, + "2.4.2": 2176, + "vérifie": 2177, + "géographiques": 2178, + "voisinage;": 2179, + "délimitation": 2180, + "bénéficiera": 2181, + "l'autorisation;": 2182, + "municipale;": 2183, + "préjudice": 2184, + "susceptible": 2185, + "causé": 2186, + "voisins;": 2187, + "risques": 2188, + "salubrité": 2189, + "l'environnement;": 2190, + "l'insertion": 2191, + "l'ouvrage": 2192, + "l'usage": 2193, + "projeté": 2194, + "infrastructures,": 2195, + "localisés": 2196, + "proximité": 2197, + "pourraient": 2198, + "nécessiter": 2199, + "l'utilisation": 2200, + "pertinente": 2201, + "tenu": 2202, + "2.4.3": 2203, + "identifie": 2204, + "apparaissent": 2205, + "pertinentes": 2206, + "dresse": 2207, + "l'invitant": 2208, + "étudier": 2209, + "formulaires": 2210, + "joints": 2211, + "présente": 2212, + "2.4.4": 2213, + "exigé,": 2214, + "préalable": 2215, + "provenant": 2216, + "justifie;": 2217, + "garantie": 2218, + "financière": 2219, + "d'assurer": 2220, + "réparation": 2221, + "détérioré": 2222, + "état": 2223, + "protéger": 2224, + "conséquences": 2225, + "dommages": 2226, + "imputables": 2227, + "l'occupation.": 2228, + "déterminés": 2229, + "l'autorisation,": 2230, + "voisinage": 2231, + "encourus": 2232, + "l'autorisation.": 2233, + "garanties": 2234, + "semblables": 2235, + "données": 2236, + "faveur": 2237, + "elles": 2238, + "l'origine.": 2239, + "2.4.5": 2240, + "l'on": 2241, + "pratiquer": 2242, + "tranchée": 2243, + "excavation,": 2244, + "enlever": 2245, + "poteau,": 2246, + "poser,": 2247, + "réparer": 2248, + "égout,": 2249, + "d'eau": 2250, + "raison,": 2251, + "payer": 2252, + "jusqu'à": 2253, + "terminés,": 2254, + "sujet": 2255, + "matière.": 2256, + "2.4.6": 2257, + "doit,": 2258, + "localisation,": 2259, + "technique": 2260, + "arpenteur-géomètre,": 2261, + "public;": 2262, + "plans,": 2263, + "devis,": 2264, + "tests": 2265, + "requis,": 2266, + "professionnel;": 2267, + "gouvernementale.": 2268, + "2.4.7": 2269, + "tarifs": 2270, + "décrétés": 2271, + "2.5.1": 2272, + "tenir": 2273, + "modèle": 2274, + "joint": 2275, + "c": 2276, + "sections": 2277, + "séparées": 2278, + "accordées": 2279, + "résolution.": 2280, + "desquels": 2281, + "2.5.2": 2282, + "constitué": 2283, + "dispose": 2284, + "archives.": 2285, + "2.5.3": 2286, + "dossiers": 2287, + "consultés": 2288, + "l'accès": 2289, + "personnels.": 2290, + "intervention": 2291, + "2.6.1": 2292, + "employés": 2293, + "mandatées": 2294, + "pénétrer": 2295, + "emprise": 2296, + "occupée": 2297, + "relevés,": 2298, + "inspections": 2299, + "2.6.2": 2300, + "transmettre": 2301, + "d’enlever": 2302, + "déplacer": 2303, + "objet,": 2304, + "démolir": 2305, + "remettre": 2306, + "état,": 2307, + "immobilisations,": 2308, + "applicable.": 2309, + "2.6.3": 2310, + "semblable": 2311, + "transmis": 2312, + "prévaloir": 2313, + "2.6.4": 2314, + "déterminé": 2315, + "objet.": 2316, + "d'urgence.": 2317, + "2.6.5": 2318, + "n'étant": 2319, + "trouvant": 2320, + "d'y": 2321, + "procéder": 2322, + "lui-même": 2323, + "imparti": 2324, + "3.2.2,": 2325, + "déplacé,": 2326, + "enlevé": 2327, + "démoli": 2328, + "remis": 2329, + "2.6.6": 2330, + "préavis,": 2331, + "possession": 2332, + "usages": 2333, + "définitivement,": 2334, + "l'exécution": 2335, + "trente": 2336, + "l'occupation,": 2337, + "relevé": 2338, + "détaillé": 2339, + "accompagné,": 2340, + "justificatives,": 2341, + "avant": 2342, + "terme.": 2343, + "s'entendent": 2344, + "réclamation,": 2345, + "arbitrage,": 2346, + "convenu": 2347, + "d'arbitrage": 2348, + "l'arbitre.": 2349, + "2.6.7": 2350, + "préavis": 2351, + "indiqué": 2352, + "d'urgence,": 2353, + "moindre": 2354, + "quatre-vingt-dix": 2355, + "indéterminée.": 2356, + "courrier": 2357, + "recommandé": 2358, + "l'attention": 2359, + "coordonnées": 2360, + "rôle": 2361, + "2.6.8": 2362, + "2.6.5,": 2363, + "l'avis.": 2364, + "libérer": 2365, + "date.": 2366, + "2.6.9": 2367, + "indemnité": 2368, + "compensation": 2369, + "due": 2370, + "causés": 2371, + "paysagers": 2372, + "reprendre": 2373, + "paysagers,": 2374, + "érigé": 2375, + "révoquée": 2376, + "sous-": 2377, + "3.3.1": 2378, + "illégalement;": 2379, + "renonciation": 2380, + "d'indemnité.": 2381, + "2.6.10": 2382, + "ait": 2383, + "dénoncé": 2384, + "appartient": 2385, + "riverain,": 2386, + "présume": 2387, + "appartiennent": 2388, + "seul": 2389, + "donnent": 2390, + "ouverture.": 2391, + "2.6.11": 2392, + "omet": 2393, + "refuse": 2394, + "d'enlever": 2395, + "l'expiration": 2396, + "imparti,": 2397, + "propriétaire,": 2398, + "l'indemnité": 2399, + "compensation.": 2400, + "2.6.12": 2401, + "n'intervient": 2402, + "présumée": 2403, + "renoncer": 2404, + "libération": 2405, + "quitter": 2406, + "délaisser": 2407, + "accepter": 2408, + "reconduction": 2409, + "tacite": 2410, + "3.1.1": 2411, + "mineure": 2412, + "présence": 2413, + "ouverture,": 2414, + "existante": 2415, + "venir.": 2416, + "3.1.2": 2417, + "municipalisation": 2418, + "équipement,": 2419, + "cessionnaire": 2420, + "conserver": 2421, + "cédé": 2422, + "n'affecte": 2423, + "destination": 2424, + "municipalisé.": 2425, + "comporte": 2426, + "préservé": 2427, + "superficiaire.": 2428, + "acceptant": 2429, + "prévoir": 2430, + "particulière": 2431, + "éviter": 2432, + "l'affectation": 2433, + "cédé,": 2434, + "restreinte": 2435, + "compromise": 2436, + "point": 2437, + "atteinte": 2438, + "affectation.": 2439, + "tréfonds": 2440, + "3.1.3": 2441, + "l'obligation": 2442, + "seule": 2443, + "certificat.": 2444, + "soustrait": 2445, + "3.2.1": 2446, + "néglige": 2447, + "remplir": 2448, + "cesse": 2449, + "d'occuper": 2450, + "soixante": 2451, + "remédié": 2452, + "défaillance": 2453, + "identifiée": 2454, + "prescrits": 2455, + "manque": 2456, + "quelconque": 2457, + "obligations.": 2458, + "3.2.2": 2459, + "spécifié,": 2460, + "admis": 2461, + "conformé": 2462, + "directives": 2463, + "respecte": 2464, + "quatre": 2465, + "ensuite,": 2466, + "continue": 2467, + "diligence": 2468, + "fournit": 2469, + "calendrier": 2470, + "raisonnable": 2471, + "correction": 2472, + "remédie": 2473, + "complètement": 2474, + "maintient": 2475, + "vigueur,": 2476, + "l'accomplissement": 2477, + "3.2.3": 2478, + "utiles,": 2479, + "cumulativement": 2480, + "alternativement,": 2481, + "recours,": 2482, + "reprise": 2483, + "2.6.8,": 2484, + "confisquer": 2485, + "s'en": 2486, + "approprier": 2487, + "somme": 2488, + "compléter": 2489, + "correctifs": 2490, + "proportionnel": 2491, + "inappliqués": 2492, + "sanctions": 2493, + "civiles": 2494, + "pénales": 2495, + "révoquer": 2496, + "erreur;": 2497, + "trouvée": 2498, + "coupable": 2499, + "n'aurait": 2500, + "l'information": 2501, + "fournie": 2502, + "avait": 2503, + "juste;": 2504, + "n'y": 2505, + "permettent": 2506, + "applicables.": 2507, + "commet": 2508, + "infraction,": 2509, + "qui,": 2510, + "utilise": 2511, + "illégalement": 2512, + "autorise": 2513, + "illégale": 2514, + "exécute": 2515, + "exécuter": 2516, + "d'occupation;": 2517, + "sciemment": 2518, + "erronées": 2519, + "entrave": 2520, + "tente": 2521, + "d'entraver": 2522, + "chargée": 2523, + "fonctions;": 2524, + "contrevient": 2525, + "passible": 2526, + "amende": 2527, + "frais.": 2528, + "inférieur": 2529, + "400": 2530, + "$": 2531, + "excéder": 2532, + "000": 2533, + "contrevenant": 2534, + "physique": 2535, + "respectivement": 2536, + "800": 2537, + "morale.": 2538, + "récidive": 2539, + "mois,": 2540, + "continue,": 2541, + "constitue,": 2542, + "jour,": 2543, + "distincte.": 2544, + "3.3.4": 2545, + "devant": 2546, + "civile,": 2547, + "opportun": 2548, + "ce,": 2549, + "indépendamment": 2550, + "constats": 2551, + "d’infraction": 2552, + "pénal": 2553, + "puissent": 2554, + "aussi": 2555, + "délivrés": 2556, + "révocation": 2557, + "pu": 2558, + "transitoires": 2559, + "3.4.1": 2560, + "3.4.2": 2561, + "voirie,": 2562, + "servitude": 2563, + "expiration": 2564, + "terminaison": 2565, + "prescrites": 2566, + "l'autorité": 2567, + "3.4.3": 2568, + "légalement": 2569, + "constituée": 2570, + "siège": 2571, + "1381,": 2572, + "boulevard": 2573, + "xxx-2010,": 2574, + "complété": 2575, + "appelée": 2576, + "appelé": 2577, + "but": 2578, + "permettre": 2579, + ".": 2580, + "précisions": 2581, + "2.1": 2582, + "valide": 2583, + "commençant": 2584, + "_________": 2585, + "terminant": 2586, + "___________.": 2587, + "2.2": 2588, + "2.3": 2589, + "renouvelable": 2590, + "automatiquement.": 2591, + "cependant,": 2592, + "solliciter": 2593, + "autorisation.": 2594, + "2.4": 2595, + "délimité": 2596, + "2.5": 2597, + "activités": 2598, + "3.2": 2599, + "durant": 2600, + "accordée;": 2601, + "3.3": 2602, + "informer": 2603, + "empiètement": 2604, + "causée": 2605, + "3.4": 2606, + "obtenir,": 2607, + "ministère": 2608, + "concerné": 2609, + "autorisée;": 2610, + "3.5": 2611, + "bon": 2612, + "propreté;": 2613, + "3.6": 2614, + "n'entreposer": 2615, + "liquide": 2616, + "dangereux": 2617, + "déverser": 2618, + "contaminant;": 2619, + "3.7": 2620, + "entourer": 2621, + "suivante": 2622, + "3.8": 2623, + "afficher": 2624, + "signalisation": 2625, + "3.9": 2626, + "dégager": 2627, + "responsabilité": 2628, + "reliée": 2629, + "occupation;": 2630, + "3.10": 2631, + "police": 2632, + "d'assurance": 2633, + "civile": 2634, + "1,000,000$,": 2635, + "indiquer": 2636, + "d’assurée": 2637, + "additionnelle.": 2638, + "3.11": 2639, + "compensations,": 2640, + "tarifications": 2641, + "exigibles": 2642, + "l'immeuble;": 2643, + "3.12": 2644, + "inspecteur": 2645, + "occupés": 2646, + "voir": 2647, + "municipaux;": 2648, + "3.13": 2649, + "d'exécution": 2650, + "d'intérêt": 2651, + "réclamation;": 2652, + "3.14": 2653, + "préparer,": 2654, + "3.15": 2655, + "acquitter": 2656, + "50$": 2657, + "d'occupation,": 2658, + "taxes;": 2659, + "3.16": 2660, + "d'expiration": 2661, + "aménagements,": 2662, + "objets,": 2663, + "autorisation;": 2664, + "3.17": 2665, + "acquitter,": 2666, + "d'entretien;": 2667, + "3.18": 2668, + "permet,": 2669, + "permettra": 2670, + "d'utiliser": 2671, + "autorisées": 2672, + "restreindre": 2673, + "compromettre": 2674, + "acceptation": 2675, + "5.1": 2676, + "reconnaît": 2677, + "signant": 2678, + "5.1.1": 2679, + "autorités": 2680, + "gouvernementales": 2681, + "municipales": 2682, + "5.1.2": 2683, + "pertinente,": 2684, + "s'engage": 2685, + "respecter;": 2686, + "5.1.3": 2687, + "dégage": 2688, + "5.1.4": 2689, + "fiscalité": 2690, + "l'assujettir": 2691, + "d'imposition": 2692, + "5.1.5": 2693, + "terme": 2694, + "5.1.6": 2695, + "deviendra": 2696, + "enlever;": 2697, + "5.1.7": 2698, + "procéder,": 2699, + "l'enlèvement": 2700, + "l'a": 2701, + "renonce": 2702, + "conséquence": 2703, + "contre": 2704, + "5.1.8": 2705, + "cas;": 2706, + "5.1.9": 2707, + "incessible": 2708, + "nulle": 2709, + "décède,": 2710, + "déménage": 2711, + "cède": 2712, + "faillite,": 2713, + "liquidation": 2714, + "morale,": 2715, + "échéant.": 2716, + "foi": 2717, + "quoi,": 2718, + "__________________": 2719, + "________________________________": 2720, + "(la": 2721, + "établit": 2722, + "l'existence": 2723, + "l'autorisation)": 2724, + "je": 2725, + "m'engage,": 2726, + "document,": 2727, + "_________________________________": 2728, + "(représentant,": 2729, + "échéant": 2730, + "suivante)": 2731, + "n°": 2732, + "xxxx-xxxx": 2733, + "____________": 2734, + "________________________.": 2735, + "applicable;": 2736, + "1,000,000$": 2737, + "100$,": 2738, + "annuellement,": 2739, + "taxes": 2740, + "document.": 2741, + "objets": 2742, + "cas.": 2743, + "_________________________": 2744, + "_______________________": 2745, + "1144-2010": 2746, + "20h,": 2747, + "mesdames": 2748, + "nadine": 2749, + "brière": 2750, + "lise": 2751, + "gendron": 2752, + "john": 2753, + "butler": 2754, + "robert": 2755, + "lagacé": 2756, + "pierre": 2757, + "morabito": 2758, + "réjean": 2759, + "charbonneau.": 2760, + "1144-2010.": 2761, + "décret": 2762, + "canin": 2763, + "aménagé": 2764, + "claude-cardinal.": 2765, + "gendron.": 2766, + "que,": 2767, + "claude-cardinal,": 2768, + "respectées": 2769, + "chien": 2770, + "gardien": 2771, + "celui-ci,": 2772, + "appert": 2773, + "l’annexe": 2774, + "minimale": 2775, + "cent": 2776, + "dollars": 2777, + "(100$)": 2778, + "première": 2779, + "physique,": 2780, + "cinq": 2781, + "(500$)": 2782, + "minimum": 2783, + "cents": 2784, + "(300$)": 2785, + "mille": 2786, + "(1,000$)": 2787, + "l’une": 2788, + "offense": 2789, + "séparée": 2790, + "ajoutés": 2791, + "l’amende": 2792, + "imposée.": 2793, + "judiciaires": 2794, + "s’imposent": 2795, + "accumulé": 2796, + "infractions": 2797, + "automatiquement": 2798, + "interdit": 2799, + "d’accès": 2800, + "canin.": 2801, + "2010-384": 2802, + "conseillère:": 2803, + "mme": 2804, + "résplu": 2805, + "l'unanimité·": 2806, + "j": 2807, + ".octobre": 2808, + "!!'y~a..dmi$": 2809, + "parç": 2810, + "canin,": 2811, + "1!~..;...:.u...:l!o~urlëtre!t!!\"": 2812, + "âgé": 2813, + "mois;": 2814, + "gardien;": 2815, + "titulaire": 2816, + "licence": 2817, + "émise": 2818, + "laisse": 2819, + "chiens.": 2820, + "ardien": 2821, + "doit:": 2822, + "r": 2823, + ",": 2824, + "ans;": 2825, + "chiens": 2826, + "gardien,": 2827, + "canin;": 2828, + "s'abstenir": 2829, + "d'accompagner": 2830, + "animal": 2831, + "montre": 2832, + "signes,": 2833, + "d'agressivité;": 2834, + "toujours": 2835, + "main,": 2836, + ",en": 2837, + "d'intervenir": 2838, + "rapidement": 2839, + "chien,": 2840, + "besoin;": 2841, + "usagers": 2842, + "qappements": 2843, + "excessifs,": 2844, + "bris": 2845, + "matériel,": 2846, + "trous": 2847, + "agressivité);": 2848, + "ramasser,": 2849, + "délai,": 2850, + "excréments": 2851, + "placer": 2852, + "sac": 2853, + "jeter": 2854, + "poubelles": 2855, + "effet;": 2856, + "lancer": 2857, + "jouer": 2858, + "•": 2859, + "sont·": 2860, + "letdits,": 2861, + "'": 2862, + "dressés": 2863, + "l'attaque": 2864, + "démontrés": 2865, + "l'agressivité;": 2866, + "femelles": 2867, + "chaleur": 2868, + "atteints": 2869, + "maladies": 2870, + "contagieuses": 2871, + "para": 2872, + "sitaires;": 2873, + "enfants": 2874, + "âgés": 2875, + "ans,": 2876, + "accompagnés": 2877, + "parent": 2878, + "adulte": 2879, + "respon": 2880, + "sable;": 2881, + "lien": 2882, + "direct": 2883, + "vocation": 2884, + "risque": 2885, + "d'endommager": 2886, + "canin:": 2887, + "vélos,": 2888, + "poussettes,": 2889, + "etc.;": 2890, + "contenants": 2891, + "verre;": 2892, + "nourüure": 2893, + "boisson;": 2894, + "chien.": 2895, + "esponsabilité": 2896, + "j,.": 2897, + "__": 2898, + "..........": 2899, + "utilisateurs": 2900, + "responsables": 2901, + "leurs'": 2902, + "animaux.": 2903, + "tient": 2904, + "aucunement": 2905, + "animaux": 2906, + "utiliseront": 2907, + "ledit": 2908, + "parc.": 2909, + "comté": 2910, + "1174-2012": 2911, + "2012": 2912, + "roch": 2913, + "bédard": 2914, + "1174-2012.": 2915, + "décrétant": 2916, + "l'interdiction": 2917, + "fumer": 2918, + "parcs": 2919, + "verts,": 2920, + "plage": 2921, + "jean-guy-caron.": 2922, + "août": 2923, + "morabito.": 2924, + "ordonnée": 2925, + "jean-guy-caron": 2926, + "l'étendue": 2927, + "desdits": 2928, + "décrété": 2929, + "vendre": 2930, + "tabac": 2931, + "endroits": 2932, + "nommer": 2933, + "identifier": 2934, + "catégories": 2935, + "fonctions": 2936, + "d'inspecteur": 2937, + "procède": 2938, + "municipalité": 2939, + "ministre": 2940, + "santé": 2941, + "sociaux": 2942, + "l'inspecteur": 2943, + "s'identifier": 2944, + "exhiber": 2945, + "requiert,": 2946, + "attestant": 2947, + "décrétées": 2948, + "acte": 2949, + "nomination.": 2950, + "deux-rives": 2951, + "ltée": 2952, + "ceux-ci": 2953, + "dès": 2954, + "nommés": 2955, + "d'inspecteurs": 2956, + "faire.": 2957, + "100$": 2958, + "300$": 2959, + "récidive,": 2960, + "200$": 2961, + "600$.": 2962, + "sus.": 2963, + "l'amende": 2964, + "imposés": 2965, + "prescrit,": 2966, + "établis": 2967, + "pénale": 2968, + "2012-249": 2969, + "simtl!llbrc": 2970, + "compilation": 2971, + "mention": 2972, + "modifié": 2973, + "précisée.": 2974, + "1176-2012": 2975, + "ventes": 2976, + "bazars": 2977, + "1176-2012,": 2978, + "2012,": 2979, + "24": 2980, + "1176-1,": 2981, + "juillet": 2982, + "2013,": 2983, + "2013": 2984, + "1176-2012.": 2985, + "garage": 2986, + "bédard.": 2987, + "i": 2988, + "préliminaires": 2989, + "s’intitule": 2990, + "régir": 2991, + "ii": 2992, + "l’interprétation": 2993, + "résultant": 2994, + "disposition,": 2995, + "expressions": 2996, + "suivent,": 2997, + "savoir": 2998, + "bazar": 2999, + "désigne": 3000, + "d’objets": 3001, + "lucratif": 3002, + "constitué,": 3003, + "limitée,": 3004, + "immobilière.": 3005, + "désignent": 3006, + "immobilière": 3007, + "résidentielle.": 3008, + "l’exposition": 3009, + "domestiques": 3010, + "exposés": 3011, + "n’excède": 3012, + "normaux": 3013, + "occupants.": 3014, + "sainte-adèle;": 3015, + "iii": 3016, + "l’application,": 3017, + "surveillance": 3018, + "fonctionnaires": 3019, + "désignés": 3020, + "adjoints": 3021, + "chargés": 3022, + "d’aider": 3023, + "émettre,": 3024, + "pénale,": 3025, + "générale": 3026, + "résidence": 3027, + "vente.": 3028, + "fait,": 3029, + "garage,": 3030, + "d’empiéter": 3031, + "voisine,": 3032, + "vacant.": 3033, + "bazar,": 3034, + "périodes": 3035, + "samedis": 3036, + "dimanches": 3037, + "troisième": 3038, + "(3e)": 3039, + "semaine": 3040, + "deuxième": 3041, + "(2e)": 3042, + "année.": 3043, + "art": 3044, + "1176-1": 3045, + "horaire": 3046, + "qu’entre": 3047, + "huit": 3048, + "heures": 3049, + "(8": 3050, + "dix-huit": 3051, + "(18": 3052, + "jour.": 3053, + "report": 3054, + "pluie": 3055, + "d’autres": 3056, + "climatiques": 3057, + "défavorables": 3058, + "empêchent": 3059, + "reportée": 3060, + "publicité": 3061, + "affichage": 3062, + "l’affichage": 3063, + "annonçant": 3064, + "strictes": 3065, + "panneau": 3066, + "publicitaire": 3067, + "0,5": 3068, + "m²": 3069, + "autorisé;": 3070, + "installation": 3071, + "bazar;": 3072, + "empiéter": 3073, + "mercredi": 3074, + "précédant": 3075, + "retiré": 3076, + "implanté": 3077, + "automobilistes": 3078, + "personnes;": 3079, + "peines": 3080, + "quiconque,": 3081, + "tenir,": 3082, + "autoriser": 3083, + "tolérer": 3084, + "deux": 3085, + "(200": 3086, + "$),": 3087, + "récidives": 3088, + "ans": 3089, + "doublé": 3090, + "fonction": 3091, + "imposé,": 3092, + "maximum": 3093, + "(1": 3094, + "$).": 3095, + "continues": 3096, + "15.": 3097, + "constituent,": 3098, + "distincte": 3099, + "imposée": 3100, + "dure": 3101, + "l'infraction.": 3102, + "iv": 3103, + "transitoire": 3104, + "16.": 3105, + "932-1998.": 3106, + "17.": 3107, + "anciennes": 3108, + "n’affecte": 3109, + "intentées": 3110, + "l’empire": 3111, + "remplacé,": 3112, + "lesquelles": 3113, + "n’auraient": 3114, + "encore": 3115, + "pourront": 3116, + "continuer": 3117, + "l’autorité": 3118, + "jugement": 3119, + "final": 3120, + "exécution.": 3121, + "18.": 3122, + "2012-275": 3123, + "conseiller:": 3124, + "charbonneau": 3125, + "rousseau": 3126, + "__________________________": 3127, + "charbonneau,": 3128, + "1251": 3129, + "rémunération": 3130, + "1251,": 3131, + "janvier": 3132, + "2018,": 3133, + "2018": 3134, + "1251-1,": 3135, + "élus": 3136, + "(compilation": 3137, + "1251-1)": 3138, + "fixe": 3139, + "base": 3140, + "annuelle": 3141, + "exercices": 3142, + "financiers": 3143, + "suivants.": 3144, + "fixée": 3145, + "64": 3146, + "873": 3147, + "864": 3148, + "$.": 3149, + "allocation": 3150, + "t-11.001)": 3151, + "versée": 3152, + "1630": 3153, + "comités": 3154, + "": 3155, + "urbanisme": 3156, + "environnement": 3157, + "l’administration,": 3158, + "participation": 3159, + "d’administration": 3160, + "commerce": 3161, + "division": 3162, + "génie": 3163, + "incendie": 3164, + "loisirs,": 3165, + "plein": 3166, + "air,": 3167, + "air": 3168, + "culture,": 3169, + "art,": 3170, + "bibliothèque,": 3171, + "aînés": 3172, + "famille": 3173, + "suppléant": 3174, + "mensuelle": 3175, + "suppléant,": 3176, + "200": 3177, + "dépasse": 3178, + "reçoit": 3179, + "additionnelle,": 3180, + "31e": 3181, + "égale": 3182, + "période.": 3183, + "second": 3184, + "impossibilité": 3185, + "d’occuper": 3186, + "fonctions.": 3187, + "transition": 3188, + "occupées": 3189, + "vingt-quatre": 3190, + "(24)": 3191, + "précèdent": 3192, + "mandat.": 3193, + "l’allocation": 3194, + "t-11-001).": 3195, + "comprend,": 3196, + "l’établissement": 3197, + "transition,": 3198, + "verse": 3199, + "supramunicipal.": 3200, + "(90)": 3201, + "vacance": 3202, + "maire.": 3203, + "indexation": 3204, + "rémunérations": 3205, + "additionnelles": 3206, + "augmentées": 3207, + "1%": 3208, + "1er": 3209, + "augmentation": 3210, + "remplacée": 3211, + "moyenne": 3212, + "arithmétique": 3213, + "indices": 3214, + "mensuels": 3215, + "prix": 3216, + "publiés": 3217, + "statistique": 3218, + "canada": 3219, + "région": 3220, + "montréal": 3221, + "l’année": 3222, + "l’augmentation.": 3223, + "formule": 3224, + "ipc": 3225, + "trouve": 3226, + "seulement": 3227, + "l’indice": 3228, + "excède": 3229, + "0,25": 3230, + "augmentations": 3231, + "salaires": 3232, + "suivant,": 3233, + "supplémentaire": 3234, + "l’augmentation": 3235, + "annuelle.": 3236, + "rétroactivité": 3237, + "effectif": 3238, + "rétroactif": 3239, + "abrogation": 3240, + "abroge": 3241, + "1035-2003,": 3242, + "1035-a-2006": 3243, + "1035-a-": 3244, + "2010.": 3245, + "vidéoconférence": 3246, + "2021": 3247, + "lafond": 3248, + "martin": 3249, + "jolicoeur": 3250, + "frédérike": 3251, + "cavezzali": 3252, + "bélisle": 3253, + "absent": 3254, + "brière.": 3255, + "déconnecté": 3256, + "zoom;": 3257, + "volonté": 3258, + "renforcer": 3259, + "d’eau": 3260, + "face": 3261, + "menace": 3262, + "posée": 3263, + "espèces": 3264, + "envahissantes;": 3265, + "déclarent": 3266, + "lu": 3267, + "renoncent": 3268, + "lecture,": 3269, + "villes;": 3270, + "déclaratoires": 3271, + "préambule": 3272, + "intégrante": 3273, + "réglementer": 3274, + "embarcations": 3275, + "prévenir": 3276, + "l’envahissement": 3277, + "exotiques": 3278, + "envahissantes,": 3279, + "d’assurer": 3280, + "maintien": 3281, + "l’utilisation": 3282, + "sécuritaire": 3283, + "définitions": 3284, + "contrôleur": 3285, + "agent": 3286, + "paix,": 3287, + "appliquer": 3288, + "municipale.": 3289, + "l’eau": 3290, + "embarcation": 3291, + "1306": 3292, + "sainte-adèle–": 3293, + "(adoption)page": 3294, + "appareil,": 3295, + "flottante,": 3296, + "munis": 3297, + "moteur": 3298, + "déplacent": 3299, + "l’eau.": 3300, + "espèce": 3301, + "exotique": 3302, + "envahissante": 3303, + "croissant": 3304, + "hors": 3305, + "aire": 3306, + "distribution": 3307, + "naturelle": 3308, + "devenir": 3309, + "envahissant.": 3310, + "limitrophe": 3311, + "inclus": 3312, + "notariée": 3313, + "municipalité.": 3314, + "utilisateur": 3315, + "embarcation.": 3316, + "lié": 3317, + "contrat": 3318, + "intenter": 3319, + "c-25.1).": 3320, + "inspection": 3321, + "visiter": 3322, + "examiner,": 3323, + "h": 3324, + "h,": 3325, + "mobilière": 3326, + "immobilière,": 3327, + "constater": 3328, + "exécuté,": 3329, + "locataire": 3330, + "propriétés,": 3331, + "maisons,": 3332, + "bâtiments": 3333, + "édifices,": 3334, + "recevoir": 3335, + "répondre": 3336, + "questions": 3337, + "posées": 3338, + "règlements.": 3339, + "accompagner": 3340, + "visite": 3341, + "l’aider": 3342, + "lavage": 3343, + "laver": 3344, + "embarcation,": 3345, + "moteur,": 3346, + "remorque,": 3347, + "s’il": 3348, + "d’inspecter": 3349, + "l’embarcation,": 3350, + "remorque": 3351, + "retirer": 3352, + "amas": 3353, + "résidus": 3354, + "plantes": 3355, + "aquatiques,": 3356, + "boues": 3357, + "visibles": 3358, + "l’œil": 3359, + "nu,": 3360, + "débarcadères": 3361, + "privés": 3362, + "muni": 3363, + "chaîne": 3364, + "barrière": 3365, + "cadenassée": 3366, + "permanence": 3367, + "obstacle": 3368, + "permanent": 3369, + "contrôler": 3370, + "circuler": 3371, + "introduction": 3372, + "d’espèces": 3373, + "envahissantes": 3374, + "strictement": 3375, + "prohibé": 3376, + "déposé,": 3377, + "soit,": 3378, + "déversement": 3379, + "d’ensemencement,": 3380, + "vidange": 3381, + "flotteurs": 3382, + "d’aéronef.": 3383, + "d’immeuble": 3384, + "tenus": 3385, + "mises": 3386, + "pénalités": 3387, + "amendes": 3388, + "passible,": 3389, + "(300": 3390, + "$)": 3391, + "(2": 3392, + "double.": 3393, + "l’infraction": 3394, + "commise": 3395, + "chacune": 3396, + "journées": 3397, + "édictées": 3398, + "imposées": 3399, + "l’infraction.": 3400, + "11e": 3401, + "d’août": 3402, + "2021.": 3403, + "**********************************************": 3404, + "reconnaître": 3405, + "significative": 3406, + "personnage": 3407, + "historique": 3408, + "décédé": 3409, + "attribuant": 3410, + "statut": 3411, + "d’identification,": 3412, + "121": 3413, + "126": 3414, + "culturel;": 3415, + "favorable": 3416, + "nomination,": 3417, + "2021;": 3418, + "s’est": 3419, + "identification": 3420, + "identifié": 3421, + "circuit": 3422, + "ski": 3423, + "maple": 3424, + "leaf": 3425, + "tournant": 3426, + "20e": 3427, + "siècle,": 3428, + "émile": 3429, + "cochand": 3430, + "femme": 3431, + "léa": 3432, + "ouvrent": 3433, + "auberge": 3434, + "l’est.": 3435, + "appel": 3436, + "habitants": 3437, + "ouvrir": 3438, + "baliser": 3439, + "sentiers": 3440, + "passage.": 3441, + "naissent": 3442, + "randonnée": 3443, + "1924": 3444, + "l’aide": 3445, + "tom": 3446, + "wheeler": 3447, + "grey": 3448, + "rock": 3449, + "saint-jovite,": 3450, + "regroupe": 3451, + "hôteliers": 3452, + "fonde": 3453, + "laurentian": 3454, + "resort": 3455, + "association,": 3456, + "promouvoir": 3457, + "tourisme.": 3458, + "l’arrivée": 3459, + "massive": 3460, + "skieurs,": 3461, + "tard,": 3462, + "canadien": 3463, + "pacifique": 3464, + "met": 3465, + "trains": 3466, + "neige.": 3467, + "touristique": 3468, + "incontournable.": 3469, + "1310": 3470, + "court": 3471, + "solution": 3472, + "défricher": 3473, + "relier": 3474, + "sentiers,": 3475, + "groupe": 3476, + "hôtelier,": 3477, + "l’appui": 3478, + "compagnie": 3479, + "ferroviaire,": 3480, + "recrute": 3481, + "l’ingénieur": 3482, + "herman": 3483, + "smith": 3484, + "johannsen": 3485, + "(dit": 3486, + "jackrabbit)": 3487, + "défriche,": 3488, + "balise": 3489, + "raccorde": 3490, + "existants,": 3491, + "créer": 3492, + "leaf,": 3493, + "s’étend": 3494, + "distance": 3495, + "128": 3496, + "km": 3497, + "shawbridge": 3498, + "(prévost)": 3499, + "labelle.": 3500, + "suivront": 3501, + "trace,": 3502, + "600": 3503, + "kilomètres": 3504, + "1939.": 3505, + "skieurs": 3506, + "transforme": 3507, + "modifie": 3508, + "adèle.": 3509, + "alpin": 3510, + "reprend": 3511, + "momentanément": 3512, + "pôle": 3513, + "années": 3514, + "1970,": 3515, + "on": 3516, + "assiste": 3517, + "recrudescence": 3518, + "fond.": 3519, + "piste,": 3520, + "presque": 3521, + "centenaire": 3522, + "place.": 3523, + "détournés,": 3524, + "morcelés": 3525, + "détruits": 3526, + "immobilier": 3527, + "expansion": 3528, + "c’est": 3529, + "pourquoi": 3530, + "vital": 3531, + "statuer": 3532, + "l’importance": 3533, + "font": 3534, + "l’histoire": 3535, + "améliorent": 3536, + "vie": 3537, + "favorisent": 3538, + "l'arrivée": 3539, + "résidents": 3540, + "indéniable": 3541, + "bénéfice": 3542, + "grande": 3543, + "d’authenticité": 3544, + "apparaître,": 3545, + "paysagère.": 3546, + "10e": 3547, + "brière_____": 3548, + "senécal_____________________": 3549, + "********************************************************": 3550, + "historique.": 3551, + "oxford-cambridge": 3552, + "1928": 3553, + "hommes": 3554, + "d’affaires": 3555, + "anglophones": 3556, + "cross-country": 3557, + "club.": 3558, + "club": 3559, + "quartier": 3560, + "chalet": 3561, + "cochand.": 3562, + "industriels": 3563, + "fortunés": 3564, + "amassent": 3565, + "pistes": 3566, + "ski.": 3567, + "1930": 3568, + "fastes": 3569, + "train": 3570, + "neige": 3571, + "amène": 3572, + "milliers": 3573, + "skieurs.": 3574, + "championnat": 3575, + "oppose": 3576, + "universités": 3577, + "oxford": 3578, + "cambridge": 3579, + "d’angleterre": 3580, + "équipe": 3581, + "locale": 3582, + "année": 3583, + "suisse.": 3584, + "l’édition": 3585, + "1932": 3586, + "déplace": 3587, + "sainte-marguerite-station,": 3588, + "2e": 3589, + "gare": 3590, + "nord-est": 3591, + "contingent": 3592, + "anglais,": 3593, + "prince": 3594, + "constantin": 3595, + "lichtenstein,": 3596, + "arrive": 3597, + "canada,": 3598, + "disputer": 3599, + "fois,": 3600, + "formée": 3601, + "canadiens.": 3602, + "athlètes": 3603, + "1311": 3604, + "s’affrontent": 3605, + "série": 3606, + "d’épreuves": 3607, + "ski,": 3608, + "parcours": 3609, + "miles,": 3610, + "travers": 3611, + "sainte-marguerite-station": 3612, + "là": 3613, + "balisé": 3614, + "parcours.": 3615, + "commémorer": 3616, + "l’événement": 3617, + "emprunté": 3618, + "l’équipe": 3619, + "oxford-": 3620, + "nommée.": 3621, + "passe": 3622, + "près": 3623, + "l’ancien": 3624, + "arrivé": 3625, + "1914": 3626, + "moniteur": 3627, + "canada.": 3628, + "villégiature": 3629, + "culturel": 3630, + "important.": 3631, + "aujourd’hui,": 3632, + "viennent": 3633, + "s’établir": 3634, + "accéder": 3635, + "facilement": 3636, + "l’âge": 3637, + "authenticité": 3638, + "d’acquérir": 3639, + "depuis": 3640, + "1920,": 3641, + "d’usage": 3642, + "supérieure": 3643, + "importante.": 3644, + "brière_______": 3645, + "dérogations": 3646, + "mineures": 3647, + "1314-2021-dm": 3648, + "table": 3649, + "matières,": 3650, + "figures": 3651, + "tableaux": 3652, + "matières": 3653, + "..................................................................................................................................": 3654, + ".....................................................................................................": 3655, + "......................................................................................................................................................": 3656, + ".................................................................................................................................................................": 3657, + "portée": 3658, + "..................................................................................................................": 3659, + "...............................................................................................................................................": 3660, + "..............................................................................................................": 3661, + ".................................................................................................................................................": 3662, + "..................................................................................................": 3663, + "............................................................................................................................................................................": 3664, + "..............................................................................................................................................": 3665, + "................................................................................................................................................": 3666, + "contradiction": 3667, + "........................................................................................................................": 3668, + "..............................................................................................................................................................": 3669, + "...................................................................................................": 3670, + "......................................................................................................................................": 3671, + "compétente": 3672, + "...................................................................................................................................................": 3673, + ".............................................................................................................": 3674, + "l’exécutant": 3675, + "...................................................": 3676, + "recevabilité": 3677, + "préalables": 3678, + ".............................................................................": 3679, + "................................................................................................": 3680, + "19.": 3681, + "............................................": 3682, + "20.": 3683, + "......................................": 3684, + "21.": 3685, + "restriction": 3686, + "..................................................................................................................................................................": 3687, + "22.": 3688, + "l’analyse": 3689, + "....................................................................................": 3690, + "23.": 3691, + "..............................................................................": 3692, + "analyse": 3693, + "......................................................................................": 3694, + "24.": 3695, + "............................................................................................................................................": 3696, + "25.": 3697, + "............................................................................................................................................................": 3698, + "26.": 3699, + "........................................................................................................................................": 3700, + "27.": 3701, + ".............................................................................................................................................": 3702, + "28.": 3703, + "............................................................................": 3704, + "29.": 3705, + "...................................................................................": 3706, + "30.": 3707, + "................................................................................................................................................................": 3708, + "31.": 3709, + "32.": 3710, + "émission": 3711, + "33.": 3712, + ".......................................................................................................................................................": 3713, + "intitulé": 3714, + "1314-2021-dm.": 3715, + "1200-2012-dm": 3716, + "amendements": 3717, + "inconciliables": 3718, + "abrogations": 3719, + "n’affectent": 3720, + "l’entrée": 3721, + "physiques": 3722, + "morales": 3723, + "autant": 3724, + "privés,": 3725, + "régit": 3726, + "d’analyse": 3727, + "encadre": 3728, + "d’admissibilité": 3729, + "étudiée": 3730, + "interprétée": 3731, + "soustraire": 3732, + "gouvernement": 3733, + "provincial": 3734, + "fédéral": 3735, + "régionale": 3736, + "pays-d’en-haut.": 3737, + "renvoi,": 3738, + "l’expression": 3739, + "définie": 3740, + "hiérarchie": 3741, + "divisions": 3742, + "chapitres,": 3743, + "sections,": 3744, + "sous-sections,": 3745, + "articles,": 3746, + "alinéas,": 3747, + "paragraphes,": 3748, + "tirets.": 3749, + "d’illustration,": 3750, + "typographie": 3751, + "distinguer": 3752, + "répond": 3753, + "l’emploi": 3754, + "verbes": 3755, + "inclut": 3756, + "futur,": 3757, + "vice-versa;": 3758, + "l’usage": 3759, + "singulier": 3760, + "comprend": 3761, + "pluriel": 3762, + "singulier,": 3763, + "prête;": 3764, + "verbe": 3765, + "devoir": 3766, + "absolue;": 3767, + "pouvoir": 3768, + "conserve": 3769, + "facultatif,": 3770, + "signifie": 3771, + "»;": 3772, + "société": 3773, + "collectif,": 3774, + "commandite": 3775, + "usage,": 3776, + "bâtiment,": 3777, + "régi": 3778, + "prévaut": 3779, + "générale;": 3780, + "contraignante": 3781, + "ouverte,": 3782, + "c’est-à-dire": 3783, + "international": 3784, + "(si);": 3785, + "donnés": 3786, + "améliorer": 3787, + "texte;": 3788, + "annexes,": 3789, + "tableaux,": 3790, + "graphiques,": 3791, + "figures,": 3792, + "illustration": 3793, + "symboles": 3794, + "d’expression": 3795, + "proprement": 3796, + "dit": 3797, + "contenue": 3798, + "droit;": 3799, + "lorsqu’une": 3800, + "séparatrice": 3801, + "mentionnée": 3802, + "réciprocité": 3803, + "chacun": 3804, + "constructions.": 3805, + "d'indications": 3806, + "contraires,": 3807, + "prévaut;": 3808, + "fiche": 3809, + "milieu,": 3810, + "tableau": 3811, + "graphique,": 3812, + "prévalent;": 3813, + "expressions,": 3814, + "attribués": 3815, + "expression,": 3816, + "n’étant": 3817, + "s'emploie": 3818, + "communément": 3819, + "mot.": 3820, + "confiée": 3821, + "représentants": 3822, + "constituent": 3823, + "compétente.": 3824, + "équivaut": 3825, + "recevable": 3826, + "nouvel": 3827, + "obtenu": 3828, + "travaux.": 3829, + "subséquents,": 3830, + "l’exception": 3831, + "(logement": 3832, + "l’hectare);": 3833, + "étage": 3834, + "principal;": 3835, + "l’abattage": 3836, + "d’arbres": 3837, + "coupes": 3838, + "forestières;": 3839, + "fermettes.": 3840, + "parcs,": 3841, + "jeux": 3842, + "d’espaces": 3843, + "naturels.": 3844, + "a-": 3845, + "19.1).": 3846, + "présentée": 3847, + "celle-ci": 3848, + "mineure.": 3849, + "respectées.": 3850, + "l’impossibilité": 3851, + "mineure;": 3852, + "causer": 3853, + "sérieux": 3854, + "requérant;": 3855, + "jouissance,": 3856, + "voisins,": 3857, + "propriété;": 3858, + "exécutés,": 3859, + "effectués": 3860, + "foi;": 3861, + "d’urbanisme;": 3862, + "demandée": 3863, + "utilisant": 3864, + "préparé": 3865, + "comprendre": 3866, + "rempli": 3867, + "dument": 3868, + "signée": 3869, + "mandataire;": 3870, + "noms,": 3871, + "prénoms": 3872, + "adresses": 3873, + "visé;": 3874, + "titres": 3875, + "arpenteur-géomètre": 3876, + "projetée.": 3877, + "plan,": 3878, + "illustrer": 3879, + "cause,": 3880, + "lieu,": 3881, + "superficie,": 3882, + "largeur,": 3883, + "profondeur": 3884, + "largeur": 3885, + "lot.": 3886, + "dimensions,": 3887, + "pente": 3888, + "moyenne,": 3889, + "distances": 3890, + "terrains;": 3891, + "demandée.": 3892, + "dérogations,": 3893, + "celles-ci": 3894, + "obligatoirement": 3895, + "photographies": 3896, + "claires": 3897, + "récentes": 3898, + "bien": 3899, + "demandée;": 3900, + "vigueur;": 3901, + "commodité,": 3902, + "stricte": 3903, + "connexe": 3904, + "sceaux": 3905, + "signatures": 3906, + "originales": 3907, + "parfait": 3908, + "cause;": 3909, + "spécifiés": 3910, + "demandés,": 3911, + "500,00": 3912, + "remboursable,": 3913, + "sort": 3914, + "réservé": 3915, + "alinéa,": 3916, + "lot": 3917, + "lorsqu’il": 3918, + "s’agit": 3919, + "profondeur,": 3920, + "comprennent": 3921, + "publication": 3922, + "fournies": 3923, + "perçus.": 3924, + "considérée": 3925, + "auront": 3926, + "fournis.": 3927, + "préalablement": 3928, + "préliminaire": 3929, + "généraux": 3930, + "sous-jacents": 3931, + "dernières;": 3932, + "vérification": 3933, + "applicables;": 3934, + "avis,": 3935, + "affectent": 3936, + "gravité": 3937, + "dérogation;": 3938, + "décisions": 3939, + "rendues": 3940, + "antérieures": 3941, + "similaires,": 3942, + "principales": 3943, + "celles-ci.": 3944, + "relâche": 3945, + "réunions": 3946, + "réception,": 3947, + "pertinent.": 3948, + "étudie": 3949, + "d’entendre": 3950, + "démarche": 3951, + "évidence": 3952, + "inutile,": 3953, + "évaluer": 3954, + "effets": 3955, + "45": 3956, + "apporte": 3957, + "d’étude": 3958, + "demandées": 3959, + "comité,": 3960, + "maximal": 3961, + "augmenté": 3962, + "60": 3963, + "jours.": 3964, + "mineures,": 3965, + "publier": 3966, + "l’heure": 3967, + "désignation": 3968, + "civique": 3969, + "subdivision": 3970, + "cadastrale;": 3971, + "intéressé": 3972, + "entendre": 3973, + "l’adoption": 3974, + "accepte,": 3975, + "accepte": 3976, + "compétences": 3977, + "d'atténuer": 3978, + "l'impact": 3979, + "dérogation.": 3980, + "décision.": 3981, + "ensuite": 3982, + "délivre": 3983, + "l’acceptation,": 3984, + "remplies,": 3985, + "l'adoption": 3986, + "vise": 3987, + "valide,": 3988, + "avenue.": 3989, + "mentionné": 3990, + "régulariser": 3991, + "situation": 3992, + "existante.": 3993, + "formulée.": 3994, + "13e": 3995, + "d’octobre": 3996, + "___________________________________": 3997, + "**************************************************": 3998, + "1314-2021-l": 3999, + "opération": 4000, + "..................................................": 4001, + "..................................................................................................................................................": 4002, + "...........................................................................................................................................": 4003, + "..........................................................................................": 4004, + ".........................................................................................................................................................": 4005, + "naturels": 4006, + ".....................................................................": 4007, + "...............................................................................................................................": 4008, + "acquise": 4009, + "d’utilité": 4010, + "cadastrales": 4011, + "d’agrandissement": 4012, + "................................................": 4013, + "résidu": 4014, + "..................................................................": 4015, + "conception": 4016, + "..........................................................................": 4017, + "générales": 4018, + ".....................................................................................................................": 4019, + "...................................................................................................................................": 4020, + "détermination": 4021, + ".......................................................................................................................": 4022, + "34.": 4023, + "anticipée": 4024, + "35.": 4025, + "contestation": 4026, + ".........................................................................................................................": 4027, + "36.": 4028, + "notarié": 4029, + "ilots": 4030, + "....................................": 4031, + ".............................................................................................................................": 4032, + "37.": 4033, + "38.": 4034, + "39.": 4035, + "cadastrer": 4036, + "40.": 4037, + "agencement": 4038, + ".................................................................................................................................": 4039, + "41.": 4040, + "ouverture": 4041, + "créant": 4042, + "d’aqueduc": 4043, + "42.": 4044, + "tracées": 4045, + "montrées": 4046, + "...........................................................................................................": 4047, + "43.": 4048, + "........................................................................................................": 4049, + "44.": 4050, + "boisés": 4051, + "....................................................................................................................": 4052, + "45.": 4053, + "............................................................................................................": 4054, + "46.": 4055, + ".........................................................................................................": 4056, + "47.": 4057, + "linéaire": 4058, + "p’tit": 4059, + "...........................................................................": 4060, + "48.": 4061, + "l’autoroute": 4062, + "laurentides": 4063, + ".....................................................................................": 4064, + "49.": 4065, + "50.": 4066, + "51.": 4067, + "angles": 4068, + "d’intersection": 4069, + "..............................................................................................................................": 4070, + "52.": 4071, + "...................................................................................................................................................................": 4072, + "53.": 4073, + "impasse": 4074, + "(type": 4075, + "cul-de-sac": 4076, + "»)": 4077, + "...................................................................................................................": 4078, + "54.": 4079, + "55.": 4080, + "multifonctionnelles,": 4081, + "récréatifs": 4082, + ".................................................................................": 4083, + "......................................................................................................................": 4084, + "56.": 4085, + "chevauchant": 4086, + "originaires": 4087, + "rénové": 4088, + "..............................................": 4089, + "57.": 4090, + "................................................................................................................................": 4091, + "58.": 4092, + "orientation": 4093, + "59.": 4094, + "60.": 4095, + "ligne": 4096, + "extrémité": 4097, + "courbée": 4098, + ".........................................................................................": 4099, + "61.": 4100, + "situe": 4101, + "extérieure": 4102, + "courbe": 4103, + "(ligne": 4104, + "concave)": 4105, + "62.": 4106, + "lac,": 4107, + "humide": 4108, + "publiques": 4109, + "privée": 4110, + "1983": 4111, + "..............": 4112, + ".................................................................": 4113, + "63.": 4114, + "64.": 4115, + "desserte": 4116, + "65.": 4117, + "long": 4118, + "tronçons": 4119, + "pierre-": 4120, + "péladeau": 4121, + "66.": 4122, + "300": 4123, + "lac": 4124, + ".............................................": 4125, + "67.": 4126, + ".......................................": 4127, + "68.": 4128, + "desservi": 4129, + "hydrique": 4130, + "..........................................................": 4131, + "22": 4132, + "69.": 4133, + "exemptions": 4134, + ".......................................................................": 4135, + "...........................................": 4136, + "23": 4137, + "70.": 4138, + "dérogatoire": 4139, + "71.": 4140, + "existence": 4141, + "72.": 4142, + "73.": 4143, + "ajout": 4144, + ".......................................................................................": 4145, + "25": 4146, + "74.": 4147, + "vacant": 4148, + "75.": 4149, + "construit": 4150, + "..........................................................................................................................": 4151, + "76.": 4152, + "cadastre": 4153, + "expropriation": 4154, + "figure": 4155, + "intersection": 4156, + "d’angle": 4157, + "...................................": 4158, + ".............................": 4159, + "1314-2021-": 4160, + "l.": 4161, + "1200-2012-l,": 4162, + "privé,": 4163, + "découpage": 4164, + "voies": 4165, + "circulations,": 4166, + "îlots": 4167, + "lots,": 4168, + "l’environnement,": 4169, + "exécutée": 4170, + "préparation": 4171, + "territoire,": 4172, + "favorisant": 4173, + "réforme": 4174, + "québécois": 4175, + "r-3.1);": 4176, + "nécessitée": 4177, + "copropriété": 4178, + "divise": 4179, + "1038": 4180, + "3030": 4181, + "c.ccq-1991)": 4182, + "l’emplacement": 4183, + "commune": 4184, + "terrain.": 4185, + "pays-d": 4186, + "’en-haut.": 4187, + "256.1,": 4188, + "256.2": 4189, + "256.3": 4190, + "(c.": 4191, + "a-19.1),": 4192, + "approuvée": 4193, + "l’ouverture": 4194, + "circulation,": 4195, + "donnée": 4196, + "présente,": 4197, + "morcellement": 4198, + "ladite": 4199, + "contiguës": 4200, + "l'opération": 4201, + "indiquant": 4202, + "projetées,": 4203, + "approximatives": 4204, + "auquel": 4205, + "destiné.": 4206, + "cadastrale,": 4207, + "s’engager": 4208, + "céder": 4209, + "gratuitement": 4210, + "destinées": 4211, + "fossés": 4212, + "terrains,": 4213, + "d’opération": 4214, + "l’opération": 4215, + "approuvée,": 4216, + "impayées": 4217, + "projetée": 4218, + "autorisant": 4219, + "refusé": 4220, + "constituant": 4221, + "possédant": 4222, + "d'expropriation,": 4223, + "motif": 4224, + "immédiatement": 4225, + "l'acquisition,": 4226, + "suffisantes": 4227, + "pouvait": 4228, + "originaires,": 4229, + "originaire": 4230, + "cadastrale.": 4231, + "respectant": 4232, + "superficies": 4233, + "d’agrandir": 4234, + "protégé": 4235, + "réduire": 4236, + "l'écart": 4237, + "parcelles": 4238, + "principale": 4239, + "moindres": 4240, + "acquis.": 4241, + "former": 4242, + "différents,": 4243, + "adjacent": 4244, + "localisé": 4245, + "municipalité,": 4246, + "créé": 4247, + "principal": 4248, + "projeté,": 4249, + "intégré": 4250, + "lorsqu’autorisé": 4251, + "produit": 4252, + "aggrave": 4253, + "non-conformité": 4254, + "dimension": 4255, + "crée": 4256, + "règlementation": 4257, + "n’ayant": 4258, + "entente": 4259, + "municipaux.": 4260, + "majeur": 4261, + "lotissement,": 4262, + "image": 4263, + "s’effectuer": 4264, + "principes": 4265, + "l’esprit": 4266, + "approuvé,": 4267, + "créés,": 4268, + "auxquels": 4269, + "destinés,": 4270, + "relation": 4271, + "assurée;": 4272, + "intégrées": 4273, + "retenu": 4274, + "territoire;": 4275, + "favoriser": 4276, + "adjacentes,": 4277, + "récréatifs,": 4278, + "issues,": 4279, + "longueur": 4280, + "déboisement": 4281, + "déblai": 4282, + "d’enclaver": 4283, + "adjacentes": 4284, + "développement;": 4285, + "d’utilités": 4286, + "intégrés": 4287, + "divers": 4288, + "place;": 4289, + "sites": 4290, + "paysages": 4291, + "d’intérêts": 4292, + "protégés": 4293, + "(espaces": 4294, + "d’intérêt,": 4295, + "accidentés,": 4296, + "naturels,": 4297, + "corridors": 4298, + "verts;": 4299, + "l’intégration": 4300, + "pérennité": 4301, + "existants;": 4302, + "subdivisions": 4303, + "venir,": 4304, + "rénové,": 4305, + "cadastrable": 4306, + "prévue,": 4307, + "construite": 4308, + "choix": 4309, + "s’’engager": 4310, + "équivalent": 4311, + "convient": 4312, + "naturel;": 4313, + "verser": 4314, + "équivalente": 4315, + "site;": 4316, + "engagement": 4317, + "combiné": 4318, + "%.": 4319, + "mineur": 4320, + "récréatif": 4321, + "somme.": 4322, + "l’éventualité": 4323, + "détermine": 4324, + "perpétuelle": 4325, + "établie,": 4326, + "s’engage": 4327, + "convenir,": 4328, + "jeux,": 4329, + "naturel.": 4330, + "convenir": 4331, + "l’engagement": 4332, + "site.": 4333, + "l’enregistrement": 4334, + "phase": 4335, + "subséquente,": 4336, + "protocole": 4337, + "d’entente": 4338, + "subdivisés": 4339, + "phase.": 4340, + "l’émission": 4341, + "lotissement.": 4342, + "actes": 4343, + "notariés": 4344, + "discrétion": 4345, + "jamais": 4346, + "inférieure": 4347, + "section,": 4348, + "entend": 4349, + "l’assiette": 4350, + "assujetties": 4351, + "annulation,": 4352, + "lot,": 4353, + "n’entrainant": 4354, + "lots;": 4355, + "existant,": 4356, + "modifiées,": 4357, + "bâtir,": 4358, + "bénéficient": 4359, + "non-assujettissement": 4360, + "contribution;": 4361, + "celui-ci.": 4362, + "conclue": 4363, + "contigu,": 4364, + "création": 4365, + "transitoires,": 4366, + "tout,": 4367, + "crées": 4368, + "l’immatriculation": 4369, + "distinct": 4370, + "résulté": 4371, + "regroupement": 4372, + "diminuant": 4373, + "verticale": 4374, + "divise;": 4375, + "d’expropriation": 4376, + "expropriation;": 4377, + "carrés,": 4378, + "perpétuité": 4379, + "demeurer": 4380, + "ultérieur": 4381, + "(établissement": 4382, + "construction),": 4383, + "action": 4384, + "redéveloppement": 4385, + "exigible;": 4386, + "parapublic": 4387, + "d’expropriation.": 4388, + "gratuite": 4389, + "visé.": 4390, + "demandeur,": 4391, + "considération": 4392, + "d’opérations": 4393, + "futures.": 4394, + "argent,": 4395, + "déterminée": 4396, + "évaluateur": 4397, + "agréé": 4398, + "mandaté": 4399, + "ou;": 4400, + "l’on": 4401, + "obtient": 4402, + "multipliant": 4403, + "d’évaluation": 4404, + "foncière": 4405, + "facteur": 4406, + "établi": 4407, + "264": 4408, + "f-2.1)": 4409, + "l’immeuble,": 4410, + "précédemment.": 4411, + "d’établir": 4412, + "cédé.": 4413, + "céder,": 4414, + "deux,": 4415, + "calculée": 4416, + "proportionnelle": 4417, + "catégorie": 4418, + "celle-ci.": 4419, + "antérieurement": 4420, + "pourcentages": 4421, + "versés": 4422, + "pas,": 4423, + "d’évaluations": 4424, + "antérieures.": 4425, + "biais": 4426, + "ententes": 4427, + "définir": 4428, + "l’entente": 4429, + "immeubles,": 4430, + "d’entente.": 4431, + "assimilés": 4432, + "partie.": 4433, + "proposition": 4434, + "ultérieure": 4435, + "exigée": 4436, + "l'évaluateur.": 4437, + "s’effectue": 4438, + "117.7": 4439, + "117.14": 4440, + "(c": 4441, + "notaire": 4442, + "arpenteur-géomètre.": 4443, + "privées.": 4444, + "destinée": 4445, + "prohibée": 4446, + "concorde": 4447, + "prévues,": 4448, + "nonobstant": 4449, + "sols": 4450, + "instables,": 4451, + "drainés": 4452, + "inondations,": 4453, + "affaissements": 4454, + "éboulis,": 4455, + "marais,": 4456, + "tourbières,": 4457, + "marécages": 4458, + "affleurements": 4459, + "rocheux.": 4460, + "impliquant": 4461, + "règlements,": 4462, + "rue,": 4463, + "desservant": 4464, + "bâtir": 4465, + "distincts": 4466, + "officiels": 4467, + "l’agencement": 4468, + "actuelles,": 4469, + "l’élaboration": 4470, + "éventuelle": 4471, + "voisin.": 4472, + "faciliter": 4473, + "circulations": 4474, + "d’urgence": 4475, + "d’incendie,": 4476, + "mouvements": 4477, + "l’extension": 4478, + "égouts,": 4479, + "conduites": 4480, + "drainage.": 4481, + "adjacents,": 4482, + "prévus.": 4483, + "réseau,": 4484, + "rinçage": 4485, + "(purge)": 4486, + "techniques": 4487, + "tronçon": 4488, + "concorder": 4489, + "montré": 4490, + "géométrie": 4491, + "approuvé.": 4492, + "éviter,": 4493, + "possible,": 4494, + "marécageux,": 4495, + "tout-terrain": 4496, + "impropres": 4497, + "éboulis": 4498, + "affaissements.": 4499, + "rocheux": 4500, + "n’offre": 4501, + "épaisseur": 4502, + "suffisante": 4503, + "dépôts": 4504, + "meubles": 4505, + "roches": 4506, + "friables": 4507, + "qu’on": 4508, + "creuser,": 4509, + "cout": 4510, + "tranchées": 4511, + "municipales.": 4512, + "rangées": 4513, + "emprunter": 4514, + "déboisés,": 4515, + "possible.": 4516, + "hautes": 4517, + "desservis;": 4518, + "partiellement": 4519, + "desservis": 4520, + "desservis.": 4521, + "conduisant": 4522, + "traversée": 4523, + "perpendiculairement": 4524, + "possible": 4525, + "lac.": 4526, + "raccordement": 4527, + "topographiques": 4528, + "particulières.": 4529, + "inférieures": 4530, + "mètres.": 4531, + "périmètre": 4532, + "d’urbanisation,": 4533, + "croisement": 4534, + "cédée": 4535, + "traverses": 4536, + "jointe": 4537, + "g": 4538, + "résultante": 4539, + "surélevé": 4540, + "(pont)": 4541, + "(tunnel)": 4542, + "nord.": 4543, + "mètres,": 4544, + "aériennes": 4545, + "autorisées.": 4546, + "respectée": 4547, + "topographie,": 4548, + "réduite": 4549, + "l’emprise.": 4550, + "requise.": 4551, + "mètres;": 4552, + "collectrice": 4553, + "certaines": 4554, + "augmentée": 4555, + "d’accommoder": 4556, + "adéquatement": 4557, + "talus,": 4558, + "bande": 4559, + "cyclable": 4560, + "souhaité,": 4561, + "maintenant": 4562, + "locale.": 4563, + "largeurs": 4564, + "sorte": 4565, + "longitudinale": 4566, + "%,": 4567, + "150": 4568, + "atteindre": 4569, + "d’au": 4570, + "courbe.": 4571, + "dépasser": 4572, + "l’intersection": 4573, + "rayon": 4574, + "virage": 4575, + "(cul-de-sac)": 4576, + "mesurée": 4577, + "l’angle": 4578, + "formé": 4579, + "tendre": 4580, + "vers": 4581, + "90°.": 4582, + "locales": 4583, + "angle": 4584, + "droit,": 4585, + "variation": 4586, + "15°": 4587, + "permise.": 4588, + "l’alignement": 4589, + "maintenu": 4590, + "médiane": 4591, + "rue.": 4592, + "axes": 4593, + "calculées": 4594, + "d’emprise": 4595, + "rapprochées": 4596, + "50": 4597, + "locale;": 4598, + "120": 4599, + "collectrice;": 4600, + "(route": 4601, + "117)": 4602, + "pierre-péladeau": 4603, + "370),": 4604, + "vitesse": 4605, + "moins.": 4606, + "d’aménager": 4607, + "côté": 4608, + "intérieur": 4609, + "180": 4610, + "extérieur": 4611, + "illustré": 4612, + "l’illustration": 4613, + "ci-dessous": 4614, + "concave": 4615, + "35": 4616, + "épingle": 4617, + "(angle": 4618, + "90°)": 4619, + "courbure": 4620, + "(mesuré": 4621, + "intérieure": 4622, + "virage)": 4623, + "rayons": 4624, + "minimums": 4625, + "collectrices": 4626, + "continue.": 4627, + "jusqu’au": 4628, + "début": 4629, + "cercle": 4630, + "terminer": 4631, + "virage,": 4632, + "diamètre": 4633, + "36": 4634, + "adossés,": 4635, + "d’exiger": 4636, + "partout": 4637, + "propos": 4638, + "piétons": 4639, + "cyclistes,": 4640, + "écoles,": 4641, + "communautaires": 4642, + "d’égouts,": 4643, + "emprises": 4644, + "vélo": 4645, + "montagne,": 4646, + "nordique": 4647, + "raquettes": 4648, + "piétonnier": 4649, + "c-1)": 4650, + "r-3.1),": 4651, + "créer,": 4652, + "chevauche": 4653, + "originaire,": 4654, + "créés": 4655, + "résultent": 4656, + "d’urbanisme.": 4657, + "individuellement": 4658, + "lorsqu’un": 4659, + "l’autre,": 4660, + "restrictives": 4661, + "latérales": 4662, + "perpendiculaires": 4663, + "précède,": 4664, + "d’adoucir": 4665, + "pentes,": 4666, + "d’égaliser": 4667, + "original,": 4668, + "culs-de-sac,": 4669, + "obliques": 4670, + "formes": 4671, + "adaptées": 4672, + "l’ensoleillement": 4673, + "fiches": 4674, + "milieux.": 4675, + "d’angle,": 4676, + "termine": 4677, + "arc": 4678, + "rues,": 4679, + "imaginaire": 4680, + "droite": 4681, + "n’": 4682, + "cercle,": 4683, + "l1": 4684, + "l2": 4685, + "courbe,": 4686, + "égal": 4687, + "incluse": 4688, + "prescrite": 4689, + "normes,": 4690, + "norme": 4691, + "prescrite.": 4692, + "1983,": 4693, + "lotis": 4694, + "décrits": 4695, + "tenants": 4696, + "aboutissants": 4697, + "minimale,": 4698, + "qu’aux": 4699, + "varier": 4700, + "destiné,": 4701, + "situé.": 4702, + "urbain,": 4703, + "(aqueduc": 4704, + "égout).": 4705, + "branchée": 4706, + "donne": 4707, + "péladeau,": 4708, + "moins,": 4709, + "question": 4710, + "n’ait": 4711, + "mentionnées": 4712, + "non-accès": 4713, + "s’applique..": 4714, + "desservis,": 4715, + "ceux-": 4716, + "ci": 4717, + "prévoie": 4718, + "exigeant": 4719, + "sanitaire": 4720, + "(lrq,": 4721, + "q-2)": 4722, + "humide,": 4723, + "exclue": 4724, + "exigible": 4725, + "eaux.": 4726, + "vertical": 4727, + "horizontal": 4728, + "rangée,": 4729, + "déclaration,": 4730, + "exclusives;": 4731, + "aménager": 4732, + "parc,": 4733, + "jeu,": 4734, + "sentier;": 4735, + "municipales,": 4736, + "terminaux": 4737, + "d’aqueduc,": 4738, + "d’égout,": 4739, + "gaz,": 4740, + "d’électricité,": 4741, + "télécommunication,": 4742, + "d’électricité": 4743, + "câblodistribution": 4744, + "privées,": 4745, + "n’abrite": 4746, + "équipements;": 4747, + "transitoire,": 4748, + "transaction": 4749, + "seconde": 4750, + "conclusion": 4751, + "exception": 4752, + "intervient": 4753, + "simultanément": 4754, + "concurremment": 4755, + "précédente.": 4756, + "adjacent.": 4757, + "confère": 4758, + "séparé": 4759, + "l’installation": 4760, + "domiciliaire;": 4761, + "kiosque": 4762, + "postal;": 4763, + "jouissant": 4764, + "subdivisé": 4765, + "dérogatoire,": 4766, + "cadastre,": 4767, + "était": 4768, + "autorisée,": 4769, + "pourvue": 4770, + "quant": 4771, + "trait": 4772, + "respecter.": 4773, + "conséquemment,": 4774, + "autorisé,": 4775, + "nécessairement": 4776, + "réduites;": 4777, + "adjacent,": 4778, + "acquis,": 4779, + "maintenir": 4780, + "rendu": 4781, + "implantations": 4782, + "dérogatoires,": 4783, + "protégées": 4784, + "dérogatoires.": 4785, + "accueillir": 4786, + "pourvu": 4787, + "n’inclut": 4788, + "principal.": 4789, + "notamment,": 4790, + "d‘indication": 4791, + "contraire": 4792, + "stationnement;": 4793, + "d’espace": 4794, + "vert;": 4795, + "circulation;": 4796, + "l’implantation": 4797, + "systèmes": 4798, + "captage": 4799, + "vie.": 4800, + "compétent": 4801, + "démonstration": 4802, + "souterraines": 4803, + "q-2,": 4804, + "r.": 4805, + "6)": 4806, + "l’évacuation": 4807, + "résidences": 4808, + "isolées": 4809, + "22).": 4810, + "l’ancienne": 4811, + "permettaient,": 4812, + "500-1982": 4813, + "mont-rolland": 4814, + "293": 4815, + "formait": 4816, + "cadastre;": 4817, + "bénéficiant": 4818, + "acquis;": 4819, + "détruite": 4820, + "l'urbanisme.": 4821, + "d’expropriation,": 4822, + "acquisition,": 4823, + "74": 4824, + "75": 4825, + "1314-2021-pc": 4826, + "..........................................................................................................................................................................": 4827, + ".................................................................................................": 4828, + "....................................................................................................................................": 4829, + "...............................................................................................................": 4830, + "...........................................................................................................................": 4831, + "locataire,": 4832, + "l'exécutant": 4833, + ".................................................................................................................................................................................": 4834, + "........................": 4835, + "infractions,": 4836, + "....................................................................................................................................................": 4837, + "..................................................................................................................16": 4838, + ".............................................................": 4839, + "exemption": 4840, + "d’implantation": 4841, + "d’intégration": 4842, + "...........................................................................................................................................................": 4843, + "conditionnel": 4844, + "...............": 4845, + "exigence": 4846, + "rapports": 4847, + "support": 4848, + "papier": 4849, + "numérisation": 4850, + ".........................................................................": 4851, + "d’honoraires": 4852, + "suspension": 4853, + "l’étude": 4854, + "annulation": 4855, + "suspendus": 4856, + "débutés": 4857, + ".........................................": 4858, + "erroné": 4859, + "fausse": 4860, + "nullité": 4861, + ".......................................................................................................": 4862, + "d’affichage": 4863, + "...............................................................................................": 4864, + "d’annulation,": 4865, + "...............................": 4866, + "...........................20": 4867, + "sous-section": 4868, + "1.1": 4869, + "obtention": 4870, + "...............................................................": 4871, + "nécessité": 4872, + "assigné": 4873, + "..............................................................................................": 4874, + "....................................................................................................": 4875, + "contaminé": 4876, + "non-responsabilité": 4877, + "1.2": 4878, + "..........................................................................................................................................": 4879, + "cheminement": 4880, + "1.3": 4881, + "1.4": 4882, + ".......................................................................................................................................": 4883, + ".......................27": 4884, + "d’exception": 4885, + "29": 4886, + "âgées": 4887, + "retraitées": 4888, + ".............................................................................................................................................................": 4889, + "32": 4890, + "réhabilitation": 4891, + "d’habitations": 4892, + "renouvèlement": 4893, + "33": 4894, + "devis": 4895, + "approuvés": 4896, + "34": 4897, + "d’architecture": 4898, + "........................................................": 4899, + "agrandissement": 4900, + "..............................................................": 4901, + "37": 4902, + "38": 4903, + "sanitaire..............................................................................................................": 4904, + "39": 4905, + "piscine": 4906, + "41": 4907, + "77.": 4908, + "additionnel": 4909, + "route": 4910, + "transports": 4911, + "78.": 4912, + "79.": 4913, + "inondable": 4914, + "80.": 4915, + "nécessitant": 4916, + "................": 4917, + "81.": 4918, + "imperméable": 4919, + "carrés.....................................": 4920, + "82.": 4921, + "42": 4922, + "83.": 4923, + "..................43": 4924, + "44": 4925, + "84.": 4926, + "..........................................": 4927, + "46": 4928, + "85.": 4929, + "...............................................................................": 4930, + "86.": 4931, + "...............................................": 4932, + "47": 4933, + "87.": 4934, + "88.": 4935, + "89.": 4936, + "..................": 4937, + "90.": 4938, + "91.": 4939, + "d’inondation": 4940, + "mrc": 4941, + "92.": 4942, + "l’érosion": 4943, + "93.": 4944, + "éolienne": 4945, + "48": 4946, + "94.": 4947, + "abattage": 4948, + "d’arbre": 4949, + "95.": 4950, + "d’aire": 4951, + "déchargement": 4952, + "d’entreposage": 4953, + "96.": 4954, + "allée": 4955, + "chalets": 4956, + "location": 4957, + "49": 4958, + "97.": 4959, + "clôtures": 4960, + "murets": 4961, + "................................................................................................................": 4962, + "51": 4963, + "98.": 4964, + "coupe": 4965, + "forestière": 4966, + "99.": 4967, + "............................................................................................................................": 4968, + "52": 4969, + "100.": 4970, + "...........................................................": 4971, + "101.": 4972, + "102.": 4973, + "103.": 4974, + "remblai": 4975, + "53": 4976, + "104.": 4977, + "rive": 4978, + "littoral": 4979, + "plaine": 4980, + "........": 4981, + "105.": 4982, + "....................................................": 4983, + "54": 4984, + "106.": 4985, + "107.": 4986, + ".....................": 4987, + "55": 4988, + "d'affaires": 4989, + ".....................................56": 4990, + "57": 4991, + "108.": 4992, + "109.": 4993, + "110.": 4994, + "111.": 4995, + "..................................................................................": 4996, + "112.": 4997, + "113.": 4998, + "114.": 4999, + "115.": 5000, + "58": 5001, + "116.": 5002, + "117.": 5003, + "118.": 5004, + "d’affaire": 5005, + "principal,": 5006, + "complémentaire..................................................................": 5007, + "119.": 5008, + "l’exploitation": 5009, + "camping": 5010, + "caravaning": 5011, + ".....................................................": 5012, + "59": 5013, + "120.": 5014, + ".................60": 5015, + "61": 5016, + "121.": 5017, + "122.": 5018, + "123.": 5019, + "124.": 5020, + "62": 5021, + "125.": 5022, + ".................................................................................................................": 5023, + "126.": 5024, + "refusée": 5025, + "127.": 5026, + "128.": 5027, + "63": 5028, + "......................................................": 5029, + ".......................................................": 5030, + "1314-2021-pc.": 5031, + "1200-2012-pc": 5032, + "chargé": 5033, + "l’administration": 5034, + "adoptés": 5035, + "analyser": 5036, + "rapport,": 5037, + "prévus,": 5038, + "délivrer,": 5039, + "suspendre": 5040, + "veiller": 5041, + "qu’à": 5042, + "provinciale": 5043, + "dévolus": 5044, + "loi,": 5045, + "l’application;": 5046, + "visiter,": 5047, + "examiner": 5048, + "observées;": 5049, + "besoin,": 5050, + "propriétaires,": 5051, + "locataires": 5052, + "visités.": 5053, + "d’émettre": 5054, + "prescrivant": 5055, + "corriger": 5056, + "dangereuse": 5057, + "d’appliquer;": 5058, + "demeure": 5059, + "d’évacuer": 5060, + "provisoirement": 5061, + "compromettrait": 5062, + "personne;": 5063, + "semble": 5064, + "clôturer": 5065, + "excavation": 5066, + "fermer,": 5067, + "longtemps": 5068, + "subsiste,": 5069, + "rue;": 5070, + "cessent": 5071, + "l’occupation,": 5072, + "bâtiment;": 5073, + "techniques,": 5074, + "tests,": 5075, + "essais,": 5076, + "l’inspection": 5077, + "s’ils": 5078, + "devis;": 5079, + "nécessite;": 5080, + "essais": 5081, + "dispositifs,": 5082, + "méthodes": 5083, + "fonctionnels": 5084, + "structuraux": 5085, + "fondations;": 5086, + "l’arrêt": 5087, + "résultat": 5088, + "démontre": 5089, + "interdire": 5090, + "résistance": 5091, + "l’érection": 5092, + "l’autorisation": 5093, + "enjoindre": 5094, + "corrigée": 5095, + "détermine.": 5096, + "l’obligation": 5097, + "inspecter,": 5098, + "filmer,": 5099, + "échantillons,": 5100, + "d’inspection": 5101, + "règlements;": 5102, + "s’abstenir": 5103, + "dénigrer,": 5104, + "injurier,": 5105, + "menacer": 5106, + "l’intégrité": 5107, + "mentale": 5108, + "travail": 5109, + "nécessitent": 5110, + "certificat,": 5111, + "travailler,": 5112, + "entreprenne": 5113, + "exige": 5114, + "certificat;": 5115, + "exigés,": 5116, + "promptement": 5117, + "s'ils": 5118, + "l’obtention": 5119, + "bâtiments,": 5120, + "coulée": 5121, + "fondations,": 5122, + "50%": 5123, + "plus;": 5124, + "signifier": 5125, + "compétente,": 5126, + "commencer": 5127, + "nom,": 5128, + "l’adresse": 5129, + "téléphone": 5130, + "l’entrepreneur": 5131, + "travaux;": 5132, + "agence": 5133, + "d’essais": 5134, + "retenue": 5135, + "surveiller": 5136, + "d’emploi": 5137, + "déroulement": 5138, + "produit;": 5139, + "exécutés;": 5140, + "afficher,": 5141, + "visible": 5142, + "lisible": 5143, + "obligatoire": 5144, + "renouveler": 5145, + "échue": 5146, + "renouvelé": 5147, + "fois;": 5148, + "visés,": 5149, + "stipulées": 5150, + "déclarations": 5151, + "faites;": 5152, + "d’entreprendre": 5153, + "lesdites": 5154, + "modifications;": 5155, + "l’opération,": 5156, + "résulter": 5157, + "exigé;": 5158, + "s’assurer,": 5159, + "qu’aucune": 5160, + "n’existe": 5161, + "attribuable": 5162, + "complétés": 5163, + "circonstances;": 5164, + "dangereux,": 5165, + "endommagé": 5166, + "incendié": 5167, + "situation,": 5168, + "signaliser": 5169, + "spécifié": 5170, + "d’appliquer": 5171, + "responsabilité;": 5172, + "effectuer,": 5173, + "propres": 5174, + "conformée": 5175, + "compétente;": 5176, + "cours.": 5177, + "apportée": 5178, + "clauses": 5179, + "initial.": 5180, + "addenda": 5181, + "cependant": 5182, + "prolonger": 5183, + "l'octroi": 5184, + "faites": 5185, + "relever": 5186, + "d'exécuter": 5187, + "code.": 5188, + "2022-04-20": 5189, + "(r1314-2021-pc-1,": 5190, + "2023-05-09": 5191, + "(r1314-2021-pc-2,": 5192, + "commets": 5193, + "fais": 5194, + "mobilier": 5195, + "permets": 5196, + "abats": 5197, + "déboise,": 5198, + "enlève": 5199, + "détruis": 5200, + "strates": 5201, + "herbacées,": 5202, + "arbustives": 5203, + "arborescentes": 5204, + "érige,": 5205, + "modifie,": 5206, + "transforme,": 5207, + "agrandis": 5208, + "l’érection,": 5209, + "modification,": 5210, + "transformation": 5211, + "obtenu,": 5212, + "préalable,": 5213, + "contrefais,": 5214, + "altère,": 5215, + "falsifie": 5216, + "contrefaçon,": 5217, + "l’accompagne,": 5218, + "empêche": 5219, + "examen;": 5220, + "offre": 5221, + "offert": 5222, + "location,": 5223, + "consécutifs,": 5224, + "tourisme": 5225, + "dénigre,": 5226, + "injure,": 5227, + "(r1314-2021-z-8,": 5228, + "l’infraction,": 5229, + "n’excédant": 5230, + "participation,": 5231, + "figurant": 5232, + "sus": 5233, + "l’amende.": 5234, + "doublée": 5235, + "imposé.": 5236, + "l'infraction": 5237, + "séparée;": 5238, + "délinquant": 5239, + "présumé": 5240, + "commettre": 5241, + "d'infractions": 5242, + "verbal": 5243, + "contrevenant.": 5244, + "donné,": 5245, + "d’exercer,": 5246, + "meuble": 5247, + "l’autorisant": 5248, + "compagnie,": 5249, + "désignant": 5250, + "copropriétaires": 5251, + "actionnaires": 5252, + "émises": 5253, + "administrateurs": 5254, + "requises.": 5255, + "insuffisants": 5256, + "essentiels": 5257, + "exigées": 5258, + "démontrée": 5259, + "autrement,": 5260, + "documents,": 5261, + "parmi": 5262, + "conséquence,": 5263, + "fournir.": 5264, + "l’architecture": 5265, + "reliés,": 5266, + "conditionnel,": 5267, + "m2;": 5268, + "majeur;": 5269, + "numérique": 5270, + "présentés": 5271, + "accompagnant": 5272, + "détails": 5273, + "architecturaux,": 5274, + "formulaires,": 5275, + "etc.,": 5276, + "format": 5277, + "adobe": 5278, + "acrobate": 5279, + "®": 5280, + "photographie": 5281, + "reproduite": 5282, + "numérisée.": 5283, + "fichiers": 5284, + "individuels": 5285, + "photo,": 5286, + "accepté.": 5287, + "complet": 5288, + "incomplète,": 5289, + "insuffisante": 5290, + "conforme,": 5291, + "verbalement": 5292, + "suspendue": 5293, + "ouvrables.": 5294, + "justifiant": 5295, + "l’interruption": 5296, + "l’échéance": 5297, + "considère": 5298, + "annulée": 5299, + "archive": 5300, + "dossier.": 5301, + "moment,": 5302, + "récupérer": 5303, + "deviennent": 5304, + "nuls": 5305, + "avenus": 5306, + "débuté": 5307, + "émission.": 5308, + "interruption": 5309, + "conduira": 5310, + "d’autorisation.": 5311, + "avenu": 5312, + "aurait": 5313, + "erronés,": 5314, + "représentation.": 5315, + "précédents": 5316, + "quelques": 5317, + "défrayé": 5318, + "remboursé": 5319, + "déposés": 5320, + "conservés": 5321, + "levées": 5322, + "immédiatement.": 5323, + "acquittés": 5324, + "seules": 5325, + "avenu.": 5326, + "affiché": 5327, + "dits": 5328, + "durées.": 5329, + "modifiés.": 5330, + "approbation": 5331, + "20,00": 5332, + "rembourse": 5333, + "différence": 5334, + "déboursé": 5335, + "permis.": 5336, + "constructeur": 5337, + "envers": 5338, + "dégagée": 5339, + "accordée.": 5340, + "omis": 5341, + "signale": 5342, + "manquements": 5343, + "250": 5344, + "ajouté": 5345, + "couts": 5346, + "associés": 5347, + "coemphytéose": 5348, + "verticale.": 5349, + "bureau": 5350, + "diffère": 5351, + "inscrit": 5352, + "transmettre,": 5353, + "électronique": 5354, + "diffère.": 5355, + "75,00": 5356, + "copropriété.": 5357, + "accepté": 5358, + "exigés;": 5359, + "payé;": 5360, + "payées,": 5361, + "attesté": 5362, + "émanant": 5363, + "résolutions": 5364, + "délivrées": 5365, + "(piia)": 5366, + "argent": 5367, + "partis;": 5368, + "expert": 5369, + "compatible": 5370, + "l'environnement": 5371, + "lutte": 5372, + "changements": 5373, + "contaminé;": 5374, + "gouvernemental.": 5375, + "nul,": 5376, + "caduc": 5377, + "enregistrement": 5378, + "points": 5379, + "l'appui": 5380, + "approbations": 5381, + "enregistrée": 5382, + "délivrance.": 5383, + "enregistrer": 5384, + "information,": 5385, + "faux": 5386, + "erroné;": 5387, + "répertoire": 5388, + "contaminés": 5389, + "réhabilitation,": 5390, + "devront": 5391, + "31.65": 5392, + "demandé": 5393, + "réhabilitation;": 5394, + "politique": 5395, + "décontamination": 5396, + "réhabilitation.": 5397, + "règlementation,": 5398, + "fond,": 5399, + "portions": 5400, + "privatives": 5401, + "subdivisées": 5402, + "verticalement": 5403, + "par-dessus": 5404, + "conforme.": 5405, + "identifiées": 5406, + "s’appliquent.": 5407, + "parcelle": 5408, + "parcelle,": 5409, + "rattacher": 5410, + "l’éliminer": 5411, + "pas.": 5412, + "voudrait": 5413, + "apporter": 5414, + "l’intégrer": 5415, + "l'émission": 5416, + "d'obligation": 5417, + "d'accepter": 5418, + "paraissant": 5419, + "l'ouverture": 5420, + "voies,": 5421, + "d'en": 5422, + "d'entretien,": 5423, + "civiles,": 5424, + "5,": 5425, + "intégré,": 5426, + "aboutissant": 5427, + "adressé": 5428, + "prénom,": 5429, + "postale,": 5430, + "courriel": 5431, + "procuration;": 5432, + "(1)": 5433, + "papier,": 5434, + "l'identification": 5435, + "adjacentes;": 5436, + "publics,": 5437, + "proposés,": 5438, + "existante;": 5439, + "lacs,": 5440, + "derniers,": 5441, + "biologiste": 5442, + "matière;": 5443, + "inondable,": 5444, + "élévations": 5445, + "récurrence": 5446, + "côtes": 5447, + "d’érosion": 5448, + "probable": 5449, + "l'emplacement,": 5450, + "d'espace": 5451, + "relocalisation": 5452, + "proposée": 5453, + "motorisé": 5454, + "répertorié": 5455, + "cartographie": 5456, + "projetés;": 5457, + "résultats": 5458, + "celle-ci;": 5459, + "l'échelle": 5460, + "utilisée;": 5461, + "k.": 5462, + "sommets": 5463, + "montagnes": 5464, + "qu’identifiés": 5465, + "sommet": 5466, + "montagne;": 5467, + "comportant": 5468, + "gestion": 5469, + "incombe": 5470, + "transports,": 5471, + "d’accès,": 5472, + "v-9);": 5473, + "n.": 5474, + "divise,": 5475, + "exclusives": 5476, + "(privatives)": 5477, + "communes;": 5478, + "o.": 5479, + "256.1": 5480, + "c.a-19.1)": 5481, + "p.": 5482, + "confirmer": 5483, + "saisi": 5484, + "informe": 5485, + "nécessaires.": 5486, + "assurant": 5487, + "conclue.": 5488, + "contenir": 5489, + "supérieur": 5490, + "fera": 5491, + "intégré.": 5492, + "transmis,": 5493, + "dépôt,": 5494, + "pdf": 5495, + "(adobe": 5496, + "acrobat)": 5497, + "postale": 5498, + "professionnels": 5499, + "travaillé": 5500, + "documents;": 5501, + "exécuté": 5502, + "environnant,": 5503, + "(affectations": 5504, + "sols,": 5505, + "etc.);": 5506, + "concernée,": 5507, + "compétent,": 5508, + "professionnel,": 5509, + "000,": 5510, + "relief": 5511, + "exprimé": 5512, + "équidistantes": 5513, + "moyenne);": 5514, + "(escarpements": 5515, + "rocheux,": 5516, + "probable,": 5517, + "héronnières,": 5518, + "apte": 5519, + "déterminer;": 5520, + "d’accès;": 5521, + "eaux;": 5522, + "lignes,": 5523, + "projeté;": 5524, + "l'implantation": 5525, + "approximative": 5526, + "homologuées": 5527, + "communiquent;": 5528, + "sol,": 5529, + "niveaux": 5530, + "d’excavation": 5531, + "nivèlement": 5532, + "longitudinales": 5533, + "mesurées": 5534, + "menant": 5535, + "phases": 5536, + "développement,": 5537, + "architecturales": 5538, + "tracé,": 5539, + "véhiculaires": 5540, + "proposée,": 5541, + "suite;": 5542, + "proposées;": 5543, + "communes": 5544, + "semi-enfouis": 5545, + "résiduelles,": 5546, + "récupérables": 5547, + "compostables;": 5548, + "q.": 5549, + "l’évaluation": 5550, + "potentiels": 5551, + "appréhendés": 5552, + "linéaire,": 5553, + "préventives": 5554, + "d’atténuations": 5555, + "envisagées": 5556, + "linéaires,": 5557, + "s.": 5558, + "environnementale": 5559, + "visée,": 5560, + "préparée": 5561, + "matière,": 5562, + "comment": 5563, + "l’impact": 5564, + "écosystémique": 5565, + "développement:": 5566, + "d’eau,": 5567, + "héronnière": 5568, + "renaturalisation": 5569, + "atténuer": 5570, + "naturels;": 5571, + "dernières": 5572, + "exigé": 5573, + "article;": 5574, + "seraient": 5575, + "viabilisés": 5576, + "d’évacuation": 5577, + "usées,": 5578, + "constructibles": 5579, + "montrés": 5580, + "problématiques": 5581, + "implique": 5582, + "ingénieur": 5583, + "spécialisé": 5584, + "actuelles": 5585, + "approvisionner": 5586, + "traiter": 5587, + "générées": 5588, + "décrivant,": 5589, + "d’approvisionnement": 5590, + "potables": 5591, + "fiscale": 5592, + "gouverne": 5593, + "qualifié": 5594, + "investissements": 5595, + "compensés": 5596, + "revenus": 5597, + "retirera": 5598, + "subséquentes": 5599, + "d’atteindre": 5600, + "unités": 5601, + "d’hébergement,": 5602, + "n’aura": 5603, + "d’impact": 5604, + "perceptible": 5605, + "déplacements": 5606, + "(délai,": 5607, + "congestion,": 5608, + "sécurité,": 5609, + "viabilité": 5610, + "infrastructures)": 5611, + "mitigations": 5612, + "diversification": 5613, + "proposés.": 5614, + "commentaires,": 5615, + "d’égout.": 5616, + "communautaire.": 5617, + "piia": 5618, + "réputée": 5619, + "après,": 5620, + "concept.": 5621, + "soirée": 5622, + "d’information": 5623, + "l’accepte": 5624, + "condition.": 5625, + "lieu.": 5626, + "l’acceptation": 5627, + "(selon": 5628, + "établies,": 5629, + "inclues": 5630, + "phase)": 5631, + "mineurs": 5632, + "quoi": 5633, + "caduque.": 5634, + "adjacente": 5635, + "minimalement": 5636, + "datée,": 5637, + "(3)": 5638, + "copies": 5639, + "préparés": 5640, + "adresse,": 5641, + "adresse": 5642, + "dimensions;": 5643, + ":5000": 5644, + "l’échelle": 5645, + "géographique;": 5646, + "numéros": 5647, + "contigus;": 5648, + "d’ingénieur": 5649, + "envisagé,": 5650, + "prévoyant": 5651, + "illustrant": 5652, + "environnant": 5653, + "propriété,": 5654, + "niveau;": 5655, + "(patrons": 5656, + "d’inondation,": 5657, + "mouvement": 5658, + "pentes)": 5659, + "arpenteur-géomètre;": 5660, + "(aqueduc,": 5661, + "câble,": 5662, + "électricité,": 5663, + "etc..)": 5664, + "affecté;": 5665, + "courbure;": 5666, + "(rue": 5667, + "locale,": 5668, + "collectrice,": 5669, + "régionale…);": 5670, + "apportées": 5671, + "patron": 5672, + "linéaire;": 5673, + "linéaires.": 5674, + "27": 5675, + "d’ouvrage.": 5676, + "d’autorisation,": 5677, + "note": 5678, + "détachée": 5679, + "érigée,": 5680, + "partie,": 5681, + "fondation": 5682, + "dalle": 5683, + "sol;": 5684, + "carrés.": 5685, + "abritant": 5686, + "abriter": 5687, + "(h)": 5688, + "groupe,": 5689, + "additionnant": 5690, + "respectives": 5691, + "+": 5692, + "qu’habitation).": 5693, + "autre.": 5694, + "financières": 5695, + "relevant": 5696, + "compétence": 5697, + "construire,": 5698, + "piscine,": 5699, + "plongeoir,": 5700, + "transformer,": 5701, + "agrandir": 5702, + "empêchant": 5703, + "menus": 5704, + "normal": 5705, + "situations": 5706, + "rencontrées": 5707, + "déclarée": 5708, + "séparément": 5709, + "$;": 5710, + "fondations": 5711, + "portantes": 5712, + "modifiées;": 5713, + "plancher": 5714, + "augmentée;": 5715, + "logements;": 5716, + "coucher": 5717, + "traitées": 5718, + "sanitaire;": 5719, + "citation": 5720, + "monument": 5721, + "patrimoine.": 5722, + "indicatif,": 5723, + "revêtement": 5724, + "murs": 5725, + "intérieurs": 5726, + "toiture;": 5727, + "vitres,": 5728, + "baies": 5729, + "vitrées,": 5730, + "fenêtres": 5731, + "portes,": 5732, + "ouvertures": 5733, + "obstruer": 5734, + "totalement": 5735, + "n’y": 5736, + "distinctes": 5737, + "créées;": 5738, + "pose": 5739, + "bouche": 5740, + "d’aération;": 5741, + "peinture,": 5742, + "créosotage": 5743, + "toit": 5744, + "goudronnage": 5745, + "toit;": 5746, + "consolidation": 5747, + "d’installation": 5748, + "cheminée,": 5749, + "poêle": 5750, + "foyer": 5751, + "préfabriqué;": 5752, + "ventilation;": 5753, + "gouttières;": 5754, + "mortier;": 5755, + "endommagés": 5756, + "détériorés": 5757, + "balcon,": 5758, + "galerie,": 5759, + "patio": 5760, + "type,": 5761, + "modifiés;": 5762, + "électrique": 5763, + "câblage": 5764, + "électrique;": 5765, + "l'ajout": 5766, + "électrique,": 5767, + "prises": 5768, + "électriques,": 5769, + "commutateurs,": 5770, + "éclairage": 5771, + "similaires": 5772, + "structure;": 5773, + "d'alarme": 5774, + "(feu,": 5775, + "vol,": 5776, + "central": 5777, + "chauffage": 5778, + "(ex.": 5779, + "bruleur": 5780, + "l'huile": 5781, + "fournaise": 5782, + "électrique);": 5783, + "plomberie": 5784, + "(tuyaux,": 5785, + "évier,": 5786, + "toilette,": 5787, + "bain,": 5788, + "concernent": 5789, + "évacuateur": 5790, + "fumée": 5791, + "(hotte": 5792, + "poêle);": 5793, + "d'étagères": 5794, + "d’armoires;": 5795, + "plancher;": 5796, + "démontable": 5797, + "réinstallation": 5798, + "l’ancienne.": 5799, + "l'exemption": 5800, + "l'espèce,": 5801, + "s'enquérir": 5802, + "(usage": 5803, + "2000$": 5804, + "déposé.": 5805, + "remises": 5806, + "forme.": 5807, + "qu’exigé": 5808, + "d’entretiens": 5809, + "provinciale;": 5810, + "forage": 5811, + "provinciale.": 5812, + "chantier": 5813, + "octroyées;": 5814, + "photo": 5815, + "déboisés": 5816, + "espaces;": 5817, + "compteur": 5818, + "d’eau.": 5819, + "500$": 5820, + "riveraine.": 5821, + "seuls": 5822, + "d’être": 5823, + "complétés.": 5824, + "recevra": 5825, + "confirmation": 5826, + "démontrer": 5827, + "confisquera": 5828, + "définitive": 5829, + "5)": 5830, + "payée;": 5831, + "déposées;": 5832, + "former,": 5833, + "conformes,": 5834, + "furent": 5835, + "créés.": 5836, + "visent": 5837, + "n’impliquent": 5838, + "d’évacuation,": 5839, + "cabinets": 5840, + "d’aisances": 5841, + "ménagères": 5842, + "r.22);": 5843, + "prélèvement": 5844, + "q": 5845, + "2,": 5846, + "35.2);": 5847, + "agricoles": 5848, + "terre": 5849, + "culture;": 5850, + "immatriculation": 5851, + "immatriculation,": 5852, + "lorsqu’en": 5853, + "raccordé": 5854, + "sanitaire,": 5855, + "maitre": 5856, + "d’œuvre": 5857, + "d’emprunt": 5858, + "l’être": 5859, + "énoncées": 5860, + "rencontrées;": 5861, + "d’alimentation": 5862, + "édictés": 5863, + "empire.": 5864, + "agricoles,": 5865, + "1000-1999-pc,": 5866, + "carrossable": 5867, + "sédiments.": 5868, + "abri": 5869, + "forestier": 5870, + "cabane": 5871, + "sucre": 5872, + "domestique;": 5873, + "réparation,": 5874, + "enclavé": 5875, + "perdu": 5876, + "fortuit,": 5877, + "réelle": 5878, + "publiée": 5879, + "carrossable,": 5880, + "complétée": 5881, + "débutent": 5882, + "l’incendie": 5883, + "sinistre;": 5884, + "réalisé": 5885, + "zc.1-": 5886, + "005,": 5887, + "zc.1-004": 5888, + "connecté": 5889, + "véhiculaire": 5890, + "rejoindre": 5891, + "n;": 5892, + "précédent,": 5893, + "bénéficier": 5894, + "aout": 5895, + "1999": 5896, + "mener": 5897, + "10;": 5898, + "morcelé": 5899, + "unifamiliale": 5900, + "isolée;": 5901, + "l’allée": 5902, + "a,": 5903, + "versé": 5904, + "adoptée;": 5905, + "loi;": 5906, + "installées": 5907, + "humide;": 5908, + "carrés": 5909, + "porterait": 5910, + "surfaces": 5911, + "imperméables": 5912, + "l’effet": 5913, + "rétention": 5914, + "pluviales": 5915, + "publiques,": 5916, + "l’alinéa": 5917, + "2007.": 5918, + "(immeuble": 5919, + "non-résidentiel": 5920, + "1500": 5921, + "m2": 5922, + "plancher),": 5923, + "précéder": 5924, + "1314-2021-piia": 5925, + "évaluation": 5926, + "adéquate": 5927, + "d’évaluation.": 5928, + "retraitées,": 5929, + "remplies": 5930, + "120.1": 5931, + "a-19.1);": 5932, + "120.0.1": 5933, + "contaminé.": 5934, + "foncier": 5935, + "commencés": 5936, + "écoulée": 5937, + "interrompus": 5938, + "consécutifs;": 5939, + "365": 5940, + "écoulés": 5941, + "rattachées": 5942, + "désigné;": 5943, + "6,": 5944, + "corrigés": 5945, + "approuvées": 5946, + "architecturale.": 5947, + "1,": 5948, + "64,": 5949, + "l’expiration": 5950, + "1°,": 5951, + "64;": 5952, + "concerner": 5953, + "initial": 5954, + "initial,": 5955, + "nécessaires;": 5956, + "fois.": 5957, + "apportée.": 5958, + "correspond": 5959, + "initiale.": 5960, + "déterminera": 5961, + "importance": 5962, + "changé,": 5963, + "différent": 5964, + "réalisera": 5965, + "choisi,": 5966, + "impliqués": 5967, + "chantier;": 5968, + "réalisation;": 5969, + "exactes,": 5970, + "attestées": 5971, + "habiletés": 5972, + "reconnus.": 5973, + "signés": 5974, + "scellés": 5975, + "technologue": 5976, + "technologues": 5977, + "architecte": 5978, + "architectes": 5979, + "c.b-1.1),": 5980, + "architecte,": 5981, + "c.a-21)": 5982, + "charpente": 5983, + "électriques": 5984, + "mécaniques.": 5985, + "d’ingénierie": 5986, + "a-21)": 5987, + "i-9);": 5988, + "(1/16\"": 5989, + "1’),": 5990, + "(1/8\"": 5991, + "1’)": 5992, + "(1/4\"": 5993, + "1’).": 5994, + "d’implantation,": 5995, + "arpenteur": 5996, + "géomètre,": 5997, + "concerné,": 5998, + "énumérées": 5999, + "limites,": 6000, + "cadastral;": 6001, + "%;": 6002, + "lacs": 6003, + "humides": 6004, + "respectives,": 6005, + "déterminées": 6006, + "projetée;": 6007, + "pourcentage": 6008, + "cote": 6009, + "altimétrique": 6010, + "rez-de-chaussée": 6011, + "soutènement,": 6012, + "clôtures,": 6013, + "murets,": 6014, + "haies,": 6015, + "déblais": 6016, + "remblais;": 6017, + "cases": 6018, + "réservées": 6019, + "handicapées": 6020, + "plan;": 6021, + "récupération": 6022, + "ruissèlement;": 6023, + "localisée": 6024, + "d’entreposage,": 6025, + "résiduelles": 6026, + "écrans": 6027, + "grevant": 6028, + "sous-sol,": 6029, + "étage;": 6030, + "transversales": 6031, + "murs,": 6032, + "planchers,": 6033, + "plafond": 6034, + "toitures": 6035, + "matériaux": 6036, + "spécifications": 6037, + "ceux-ci;": 6038, + "porteurs": 6039, + "feu": 6040, + "obtenue": 6041, + "séparations": 6042, + "coupe-feu,": 6043, + "degré": 6044, + "pare-": 6045, + "flamme": 6046, + "dispositifs": 6047, + "d’obstruction,": 6048, + "fondation,": 6049, + "charpente,": 6050, + "mécanique": 6051, + "ventilation,": 6052, + "l’acte": 6053, + "l’existence": 6054, + "passage;": 6055, + "scellée": 6056, + "scellé": 6057, + "lorsqu’exigé": 6058, + "nord,": 6059, + "pays-d’en-haut": 6060, + "ainés": 6061, + "118.1": 6062, + "d’hébergement": 6063, + "fluidité.": 6064, + "unifamiliale,": 6065, + "bifamiliale,": 6066, + "trifamiliale": 6067, + "maison": 6068, + "mobile,": 6069, + "projeté.": 6070, + "d’implantation;": 6071, + "arbres;": 6072, + "n’augmentant": 6073, + "requièrent": 6074, + "d’arpentage": 6075, + "existant;": 6076, + "détaillés": 6077, + "l’échelle,": 6078, + "intérieurs,": 6079, + "(dimensions": 6080, + "espacement": 6081, + "solives": 6082, + "plancher);": 6083, + "portes": 6084, + "fenêtres;": 6085, + "fermes": 6086, + "(dessins": 6087, + "techniques);": 6088, + "détaillées": 6089, + "planchers;": 6090, + "revêtements": 6091, + "toits;": 6092, + "galeries,": 6093, + "escaliers,": 6094, + "garde-corps,": 6095, + "etc.": 6096, + "logement,": 6097, + "l’architecte": 6098, + "national": 6099, + "projetée,": 6100, + "existantes;": 6101, + "déboiser;": 6102, + "l’espace": 6103, + "remblais": 6104, + "soutènement": 6105, + "aménager,": 6106, + "existants.": 6107, + "1,5": 6108, + "marge": 6109, + "recul": 6110, + "prescrite;": 6111, + "montagne": 6112, + "montrer": 6113, + "l’emplacement;": 6114, + "eaux,": 6115, + "correspondant": 6116, + "cotes": 6117, + "crue": 6118, + "sol.": 6119, + "montagne.": 6120, + "autres,": 6121, + "l’agrandissement,": 6122, + "reconstruction,": 6123, + "rénovation),": 6124, + "transformation,": 6125, + "d’habitation,": 6126, + "exemplaires": 6127, + "façades": 6128, + "(à": 6129, + "existant)": 6130, + "érigés": 6131, + "qu’habitation": 6132, + "mobile;": 6133, + "(plus": 6134, + "d’implantation)": 6135, + "d’habitation;": 6136, + "récréation": 6137, + "relié": 6138, + "intensif": 6139, + "(c09-01).": 6140, + "(r.r.q.,": 6141, + "r.22),": 6142, + "ans.": 6143, + "suivants,": 6144, + "conformité.": 6145, + "(tous": 6146, + "matière)": 6147, + "exactes": 6148, + "règlementés": 6149, + "7.1": 6150, + "7.2": 6151, + "r.22)": 6152, + "tuyauterie": 6153, + "enfouie": 6154, + "n’empêchent": 6155, + "certification": 6156, + "l’installation;": 6157, + "respectent": 6158, + "règlementation;": 6159, + "consultant": 6160, + "marques": 6161, + "exigées.": 6162, + "35.2),": 6163, + "climatiques,": 6164, + "accompagnée,": 6165, + "captée;": 6166, + "desservies": 6167, + "l’ouvrage": 6168, + "captage;": 6169, + "cube": 6170, + "(m³/jour);": 6171, + "d’ouvrage": 6172, + "supervision": 6173, + "scellement": 6174, + "contigu.": 6175, + "étanche": 6176, + "usées;": 6177, + "lac;": 6178, + "culture.": 6179, + "7)": 6180, + "l’installation,": 6181, + "l’emplacement,": 6182, + "piscine;": 6183, + "interdisant": 6184, + "escalier": 6185, + "géomètre": 6186, + "conjointement": 6187, + "paroi.": 6188, + "40": 6189, + "liste": 6190, + "31.68": 6191, + "lettre,": 6192, + "serment": 6193, + "attestant,": 6194, + "ministre,": 6195, + "q-2),": 6196, + "précitée": 6197, + "ci-dessus.": 6198, + "v-9)": 6199, + "affectant,": 6200, + "certifié": 6201, + "traitée": 6202, + "gouvernement,": 6203, + "mandataires": 6204, + "pays-d’en-": 6205, + "haut,": 6206, + "émise,": 6207, + "gouvernemental,": 6208, + "l’attestation": 6209, + "schéma": 6210, + "révisé": 6211, + "remaniement,": 6212, + "utilisées": 6213, + "incluent,": 6214, + "exhaustive": 6215, + "remblai;": 6216, + "forestier,": 6217, + "réfection": 6218, + "majeure": 6219, + "route;": 6220, + "septique": 6221, + "(fosse": 6222, + "d’épuration)": 6223, + "puits;": 6224, + "d’arbres,": 6225, + "l’enlèvement": 6226, + "souches;": 6227, + "d’installations": 6228, + "accessoires.": 6229, + "pluviales;": 6230, + "recouvrement": 6231, + "imperméable;": 6232, + "délivré.": 6233, + "genre": 6234, + "actuelle": 6235, + "faite;": 6236, + "ln": 6237, + "appropriée": 6238, + "projette": 6239, + "pertinents": 6240, + "suivants;": 6241, + "roulement": 6242, + "cyclable;": 6243, + "chemin,": 6244, + "d’eau;": 6245, + "(30)": 6246, + "complets": 6247, + "(4)": 6248, + "faces,": 6249, + "pièces;": 6250, + "végétalisés": 6251, + "actuel": 6252, + "prévue;": 6253, + "mrc,": 6254, + "requise;": 6255, + "43": 6256, + "d’abattage": 6257, + "morts": 6258, + "cordes": 6259, + "bois": 6260, + "l’entretien,": 6261, + "hydro-québec": 6262, + "autorisé.": 6263, + "pays-d‘en-haut": 6264, + "l’entretien": 6265, + "motorisé.": 6266, + "d’autorisation;": 6267, + "évalue": 6268, + "superflue.": 6269, + "traité": 6270, + "pays-d’en-haut,": 6271, + "officiels,": 6272, + "exacte": 6273, + "l’emprise;": 6274, + "résumé": 6275, + "conduite,": 6276, + "l’excavation": 6277, + "remblayage": 6278, + "utilisés,": 6279, + "service;": 6280, + "mrc.": 6281, + "l’implantation,": 6282, + "éolienne,": 6283, + "l’éolienne,": 6284, + "couleurs,": 6285, + "matériau,": 6286, + "l’arbre": 6287, + "abattre": 6288, + "paysagers;": 6289, + "l’espèce": 6290, + "souche": 6291, + "abattre;": 6292, + "l’arbre;": 6293, + "prénom": 6294, + "justifié": 6295, + "atteint": 6296, + "maladie": 6297, + "incurable": 6298, + "bienêtre": 6299, + "arboriculteur;": 6300, + "abattu,": 6301, + "planté": 6302, + "abattu": 6303, + "planté.": 6304, + "d’effectuer": 6305, + "escarpements": 6306, + "caps": 6307, + "etc.).": 6308, + "papiers": 6309, + "(préparé": 6310, + "dessiné": 6311, + "établir": 6312, + "sorties;": 6313, + "l’intermédiaire": 6314, + "jardins": 6315, + "pluie,": 6316, + "fossé": 6317, + "végétalisé,": 6318, + "filtrante,": 6319, + "puits": 6320, + "absorbant,": 6321, + "bassin": 6322, + "sédimentation": 6323, + "nature,": 6324, + "drainer": 6325, + "québec;": 6326, + "dessin": 6327, + "enseignes": 6328, + "directionnelles;": 6329, + "haies": 6330, + "clôtures;": 6331, + "(arbre,": 6332, + "arbustes,": 6333, + "vivace);": 6334, + "utilisés.": 6335, + "s’applique;": 6336, + "accès.": 6337, + "délivrée.": 6338, + "d’habitations,": 6339, + "intégré;": 6340, + "largeurs,": 6341, + "cercles": 6342, + "plateaux": 6343, + "d’intervention": 6344, + "effectuer;": 6345, + "d’excavation;": 6346, + "d’allées": 6347, + "surfaces;": 6348, + "(fondation,": 6349, + "roulement),": 6350, + "proposés;": 6351, + "portante": 6352, + "conforment": 6353, + "v-9).": 6354, + "muret": 6355, + "t5": 6356, + "centre-ville": 6357, + "zc": 6358, + "commercial": 6359, + "zi": 6360, + "industriel": 6361, + "muret;": 6362, + "sylvicole,": 6363, + "l'adresse": 6364, + "détenteur": 6365, + "coupe,": 6366, + "l'entrepreneur": 6367, + "exécutera": 6368, + "visée;": 6369, + "coupes;": 6370, + "peuplement;": 6371, + "tiges": 6372, + "l'objectif": 6373, + "l’intervention;": 6374, + "effectuée;": 6375, + "effectué;": 6376, + "méthode": 6377, + "récolte": 6378, + "tiges;": 6379, + "d'empilement,": 6380, + "forestiers": 6381, + "prévus;": 6382, + "sensibles": 6383, + "zonage;": 6384, + "sépare": 6385, + "foncière;": 6386, + "tronçonnage": 6387, + "d’empilement;": 6388, + "reboisement": 6389, + "projetés,": 6390, + "tenants,": 6391, + "séparant;": 6392, + "coupés": 6393, + "l’occasion": 6394, + "identifiés": 6395, + "marque": 6396, + "distinctive": 6397, + "martelage": 6398, + "sélection": 6399, + "martelées;": 6400, + "premières": 6401, + "semaines": 6402, + "débutés,": 6403, + "d’exécution": 6404, + "périodique": 6405, + "périodique.": 6406, + "décrivant": 6407, + "prévoit": 6408, + "terrière": 6409, + "boisée": 6410, + "peuplement": 6411, + "mature,": 6412, + "chablis": 6413, + "d'assainissement": 6414, + "sylvicole": 6415, + "contenant": 6416, + "nomenclature": 6417, + "écoforestière;": 6418, + "l'âge": 6419, + "couvert": 6420, + "forestier;": 6421, + "essence;": 6422, + "poitrine": 6423, + "terrière,": 6424, + "hectare": 6425, + "volume": 6426, + "boisée.": 6427, + "extérieures": 6428, + "démolir;": 6429, + "démolition;": 6430, + "moyens": 6431, + "explique": 6432, + "démolie,": 6433, + "inaccessible;": 6434, + "propreté": 6435, + "fermer": 6436, + "condamner": 6437, + "l’aqueduc": 6438, + "l’égout": 6439, + "septique.": 6440, + "environs;": 6441, + "déplacée;": 6442, + "déplacée": 6443, + "d'implantation,": 6444, + "déplacée,": 6445, + "69": 6446, + "corps": 6447, + "parapublics": 6448, + "(hydro-québec,": 6449, + "bell": 6450, + "référant": 6451, + "l'itinéraire": 6452, + "poids": 6453, + "approximatif;": 6454, + "l'heure": 6455, + "suggérées": 6456, + "déplacement;": 6457, + "déménageur;": 6458, + "suffisant": 6459, + "déplacement.": 6460, + "73": 6461, + "support,": 6462, + "rattachée": 6463, + "d’élévation": 6464, + "façade": 6465, + "l’enseigne": 6466, + "d’ancrage;": 6467, + "d’ancrage,": 6468, + "détail": 6469, + "l’enseigne;": 6470, + "forme,": 6471, + "couleurs;": 6472, + "entier": 6473, + "visuels": 6474, + "composant": 6475, + "dessin,": 6476, + "image,": 6477, + "sigle": 6478, + "sculptés": 6479, + "reliefs;": 6480, + "fixation": 6481, + "d'éclairage,": 6482, + "remblai,": 6483, + "détaillant": 6484, + "secteurs": 6485, + "(lacs,": 6486, + "boisées,": 6487, + "matures": 6488, + "isolés,": 6489, + "transversale": 6490, + "d’altitude": 6491, + "mètre;": 6492, + "détaillant,": 6493, + "végétalisation": 6494, + "végétales": 6495, + "utilisées,": 6496, + "mur": 6497, + "m,": 6498, + "l’ouvrage,": 6499, + "littoral,": 6500, + "traverse.": 6501, + "4,": 6502, + "exécuter;": 6503, + "élévations,": 6504, + "coupes,": 6505, + "croquis": 6506, + "claire": 6507, + "dates": 6508, + "aménagements;": 6509, + "proposé;": 6510, + "rive,": 6511, + "essences": 6512, + "l’endroit": 6513, + "plantés": 6514, + "l’espacement": 6515, + "plans;": 6516, + "cave": 6517, + "sous-sol": 6518, + "d’installation,": 6519, + "traverse,": 6520, + "stabilisation": 6521, + "confectionnés": 6522, + "l’art": 6523, + "caractérisant": 6524, + "cessera;": 6525, + "changer": 6526, + "actuel,": 6527, + "biens": 6528, + "rues;": 6529, + "supérieures": 6530, + "altimétriques": 6531, + "déchets,": 6532, + "recyclage": 6533, + "compostage;": 6534, + "d'eau.": 6535, + "56": 6536, + "commercial,": 6537, + "industriel,": 6538, + "résidentiels,": 6539, + "nouvellement": 6540, + "122": 6541, + "personne,": 6542, + "société,": 6543, + "entreprise,": 6544, + "travailleur": 6545, + "autonome": 6546, + "économique": 6547, + "finance,": 6548, + "commerce,": 6549, + "d'industrie": 6550, + "services,": 6551, + "métier,": 6552, + "profession": 6553, + "d'affaires.": 6554, + "spécifiquement,": 6555, + "l’activité": 6556, + "résidentiel);": 6557, + "d’affaires;": 6558, + "d’affaires.": 6559, + "précédents,": 6560, + "d’accueil,": 6561, + "ressource": 6562, + "intermédiaire": 6563, + "familial": 6564, + "familial.": 6565, + "complémentaire),": 6566, + "d'immatriculation": 6567, + "institutions": 6568, + "l’information": 6569, + "50,00": 6570, + "changé": 6571, + "codes": 6572, + "(b-1.1),": 6573, + "payé.": 6574, + "l’afficher": 6575, + "validation": 6576, + "sociale": 6577, + "adoption,": 6578, + "rendrait": 6579, + "114": 6580, + "atteste": 6581, + "l’abandon": 6582, + "cessé": 6583, + "abandonné.": 6584, + "desquelles": 6585, + "émis;": 6586, + "indiqué;": 6587, + "émis.": 6588, + "d’émission": 6589, + "besoin": 6590, + "naissance;": 6591, + "social": 6592, + "société;": 6593, + "machinerie": 6594, + "fonctionnement": 6595, + "l’entreprise.": 6596, + "l'usage;": 6597, + "principaux": 6598, + "(h);": 6599, + "complémentaires": 6600, + "habitation.": 6601, + "bail": 6602, + "charte,": 6603, + "lettre": 6604, + "patente": 6605, + "gouvernement;": 6606, + "l’organisme": 6607, + "charité": 6608, + "charte": 6609, + "lucratif;": 6610, + "d’exploitation": 6611, + "souhaite": 6612, + "parvenir": 6613, + "précisément": 6614, + "recherchée": 6615, + "bienfondé": 6616, + "couvrant": 6617, + "argumentaire": 6618, + "demandées,": 6619, + "d’usages": 6620, + "zone,": 6621, + "assortie": 6622, + "photographique": 6623, + "complet;": 6624, + "schématique": 6625, + "d’étages": 6626, + "estimée": 6627, + "couleurs": 6628, + "choisies.": 6629, + "indication": 6630, + "séquence": 6631, + "rythme": 6632, + "annuel": 6633, + "27,9": 6634, + "cm": 6635, + "x": 6636, + "43,2": 6637, + "(11\"": 6638, + "17\")": 6639, + "pdf,": 6640, + "zone;": 6641, + "contigu": 6642, + "couverture": 6643, + "forestière,": 6644, + "garnis": 6645, + "accès;": 6646, + "phasage": 6647, + "anticipé": 6648, + "main": 6649, + "réunion": 6650, + "reçu": 6651, + "ouvrables": 6652, + "reporté": 6653, + "suivante.": 6654, + "déposée.": 6655, + "recommandation.": 6656, + "transmises": 6657, + "régulière": 6658, + "donner": 6659, + "déposée,": 6660, + "remboursant": 6661, + "entreprend": 6662, + "d’adoption": 6663, + "a-19.1)": 6664, + "suivent": 6665, + "réduisant": 6666, + "discrétionnaire": 6667, + "promulgué.": 6668, + "processus": 6669, + "remboursements": 6670, + "expressément": 6671, + "étapes": 6672, + "14e": 6673, + "quebec": 6674, + "numero": 6675, + "......................": 6676, + "déclaratoires..............................................................................................................................": 6677, + "..............................................................................................................................................................................": 6678, + "..........................................................................................................................................................................................": 6679, + "........................................................................................................................................................................": 6680, + "invalidité": 6681, + "partielle": 6682, + "..........................................................................................................................................................": 6683, + "annexés": 6684, + "...........................................................................................................................................................................": 6685, + "...............................................................................................................................................................................": 6686, + ".....................................................................................................................................................................................................": 6687, + ".......................................................................................................................................................................": 6688, + "d’interprétation": 6689, + ".......................................................................................................................................................................................": 6690, + ".....................................................................................................................................": 6691, + "travaux............................................................................": 6692, + "......................................................................................................": 6693, + "assujetissement": 6694, + "...........................................................................................................................................................................................": 6695, + "demande...................................................................................................": 6696, + "examen": 6697, + "........................................................................................................................................................": 6698, + "durable": 6699, + "..............................": 6700, + "territoires": 6701, + "interventions": 6702, + ".....................................................................................................................................................................": 6703, + "exceptions": 6704, + "................................................................................": 6705, + ".............................................................................................................................................................................": 6706, + "l’efficacité": 6707, + "énergétique": 6708, + "...........................................................................................................................................................................................................": 6709, + "secteur": 6710, + "stationnements": 6711, + "noyau": 6712, + "villageois": 6713, + "mont": 6714, + "rolland": 6715, + ".........": 6716, + "d’intérêt": 6717, + "patrimonial": 6718, + "............": 6719, + "(mont-rolland)": 6720, + "..........................": 6721, + "(zone": 6722, + "zc.1-005)": 6723, + ".......": 6724, + "!": 6725, + "signet": 6726, + "défini.": 6727, + "commerciales": 6728, + "habitations": 6729, + "multifamiliales": 6730, + "collectives": 6731, + "65": 6732, + "67": 6733, + "70": 6734, + "71": 6735, + "72": 6736, + "..................................": 6737, + "versant": 6738, + "sud": 6739, + "bleu": 6740, + "76": 6741, + "77": 6742, + "78": 6743, + "intégrés..................................................................................": 6744, + "79": 6745, + "81": 6746, + "82": 6747, + "83": 6748, + "(autoroute": 6749, + "..": 6750, + "88": 6751, + "89": 6752, + "répertoriés": 6753, + "adèle": 6754, + "xcii": 6755, + "élévation": 6756, + "(rémi": 6757, + "fortier": 6758, + "architecture": 6759, + "inc.).......................................................................................................................................": 6760, + "esquisse": 6761, + "(atelier": 6762, + "idéa)": 6763, + "exemple": 6764, + "pointage": 6765, + "...................................................................": 6766, + "........................................................................": 6767, + "historique,": 6768, + "architectural": 6769, + "inventoriés": 6770, + "68": 6771, + ".........................": 6772, + "1314-2021-piia.": 6773, + "1200-2012-piia": 6774, + "construit,": 6775, + "ceux-ci,": 6776, + "érige": 6777, + "respecter,": 6778, + "législative": 6779, + "réglementaire": 6780, + "fédérale": 6781, + "occupé,": 6782, + "utilisé,": 6783, + "chapitre,": 6784, + "déclaré": 6785, + "invalide": 6786, + "tribunal": 6787, + "reconnu,": 6788, + "continuent": 6789, + "s’appliquer.": 6790, + "intitulée": 6791, + "ambiant": 6792, + "autoroute": 6793, + "15,": 6794, + "intitulées": 6795, + "climat": 6796, + "sonore": 6797, + "simulé,": 6798, + "décibel": 6799, + "inc.,": 6800, + "pb-2007-0078": 6801, + "intégrée": 6802, + "f": 6803, + "1200-2012-z": 6804, + "d'incompatibilité,": 6805, + "générale.": 6806, + "interdiction": 6807, + "révèle": 6808, + "désaccord": 6809, + "restrictive": 6810, + "prohibitive": 6811, + "s'appliquer,": 6812, + "contraire.": 6813, + "visées": 6814, + "reliés.": 6815, + "chapitre.": 6816, + "acrobate®),": 6817, + "échantillons": 6818, + "dominants,": 6819, + "l’état": 6820, + "vues": 6821, + "percées": 6822, + "visuelles": 6823, + "modifiant": 6824, + "l’apparence": 6825, + "couleur,": 6826, + "concernée": 6827, + "piia,": 6828, + "étages,": 6829, + "toit,": 6830, + "ouvertures,": 6831, + "d’ornementation": 6832, + "saillie": 6833, + "inc.)": 6834, + "finitions": 6835, + "(revêtement": 6836, + "toitures,": 6837, + "fenêtres,": 6838, + "cadastral": 6839, + "denses": 6840, + "allés": 6841, + "ruissellement": 6842, + "modélisation": 6843, + "3d": 6844, + "visualiser": 6845, + "bifamiliale": 6846, + "trifamiliale,": 6847, + "paysagiste": 6848, + "végétaux": 6849, + "(arbres,": 6850, + "vivaces)": 6851, + "planter": 6852, + "description,": 6853, + "calibre": 6854, + "d’éclairage,": 6855, + "soutènement.": 6856, + "technologue,": 6857, + "visualisation": 6858, + "rez-de-chaussée,": 6859, + "nivellement": 6860, + "déblai,": 6861, + "profil": 6862, + "réalisés,": 6863, + "talus": 6864, + "aménagés,": 6865, + "hauteurs": 6866, + "ouvrages;": 6867, + "d’éclairage": 6868, + "récente": 6869, + "socle": 6870, + "nombres;": 6871, + "réutilisation": 6872, + "n’impliquant": 6873, + "complément": 6874, + "généraux,": 6875, + "architecturale,": 6876, + "zonage.": 6877, + "incomplets": 6878, + "imprécis,": 6879, + "l’examen": 6880, + "suspendu": 6881, + "aient": 6882, + "reçue": 6883, + "additionnels.": 6884, + "décrit": 6885, + "mentionnant": 6886, + "conformes.": 6887, + "formule,": 6888, + "recommandations,": 6889, + "pertinents,": 6890, + "approuve": 6891, + "désapprouve": 6892, + "options": 6893, + "atteignent": 6894, + "motivée": 6895, + "énoncés,": 6896, + "n’atteint": 6897, + "motivant": 6898, + "ailleurs,": 6899, + "propos,": 6900, + "-19.1).": 6901, + "enfin,": 6902, + "prenne": 6903, + "financières.": 6904, + "qu'à": 6905, + "modifié.": 6906, + "requiert": 6907, + "antérieur": 6908, + "remplit": 6909, + "formelle": 6910, + "d’approbation,": 6911, + "respecté.": 6912, + "antérieur,": 6913, + "2023-02-17": 6914, + "(r1314-2021-piia-1,": 6915, + "chapitres": 6916, + "l'exhaussement": 6917, + "parement": 6918, + "décoratif.": 6919, + "réparations": 6920, + "n’entrainent": 6921, + "texture,": 6922, + "d’appareillage": 6923, + "composantes;": 6924, + "peinture": 6925, + "teinture": 6926, + "n’altèrent": 6927, + "toiture": 6928, + "(couverture)": 6929, + "configuration,": 6930, + "conduit": 6931, + "capteurs": 6932, + "solaires": 6933, + "arrière": 6934, + "plat": 6935, + "(rue,": 6936, + "sentier,": 6937, + "publique);": 6938, + "(fenêtre": 6939, + "porte)": 6940, + "inchangés.": 6941, + "poursuivis": 6942, + "produire": 6943, + "l’environnement;": 6944, + "écologique": 6945, + "sobre": 6946, + "carbone": 6947, + "ressource;": 6948, + "régénérer": 6949, + "biodiversité.": 6950, + "d’interventions": 6951, + "d’évaluer": 6952, + "suivant.": 6953, + "tableau.": 6954, + "énergétique.": 6955, + "critère": 6956, + "s’avère": 6957, + "seuil": 6958, + "proportion": 6959, + "restants.": 6960, + "d’accès)": 6961, + "durable.": 6962, + "t5.1-002,": 6963, + "t5.2-002,": 6964, + "t5.2-003": 6965, + "t5.3-001": 6966, + "supprimé": 6967, + "textures,": 6968, + "publique)": 6969, + "écoénergétique": 6970, + "t4.1-010,": 6971, + "t4.2-004": 6972, + "t5.1-003": 6973, + "préserver": 6974, + "patrimoniale": 6975, + "secteur.": 6976, + "(source": 6977, + "2009).": 6978, + "présentent": 6979, + "section.": 6980, + "consultées": 6981, + "durabilité": 6982, + "atteintes": 6983, + "a.10)": 6984, + "(zones": 6985, + "débutant": 6986, + "excepté": 6987, + "zc.1-008).": 6988, + "11)": 6989, + "(h-04)": 6990, + "(h-06)": 6991, + "66": 6992, + "inchangés": 6993, + "excédant": 6994, + "multifamiliale": 6995, + "d’habitation.": 6996, + "lotissements": 6997, + "morin": 6998, + "grignon": 6999, + "pmahcuaeb": 7000, + "eur": 7001, + "temiuo": 7002, + "rruuee": 7003, + "lleessaaggee": 7004, + "richer": 7005, + "lesage": 7006, + "led": 7007, + "srassel": 7008, + "age": 7009, + "nongirg": 7010, + "croix": 7011, + "xueruomal": 7012, + "nidnolb": 7013, + "maurice-aveline": 7014, + "gp": 7015, + "re": 7016, + "at": 7017, + "nit": 7018, + "der": 7019, + "e": 7020, + "-u": 7021, + "o": 7022, + "rd": 7023, + "rne": 7024, + "icl": 7025, + "ca": 7026, + "he": 7027, + "valiquette": 7028, + "bellevue": 7029, + "boyer": 7030, + "l": 7031, + "é": 7032, + "n": 7033, + "d": 7034, + "ô": 7035, + "ito": 7036, + "ir": 7037, + "'é": 7038, + "lé": 7039, + "v": 7040, + "s": 7041, + "u": 7042, + "io": 7043, + "tt": 7044, + "is": 7045, + "lt": 7046, + "im": 7047, + "p": 7048, + "iia": 7049, + "triq": 7050, + "existant.": 7051, + "80": 7052, + "è": 7053, + "résidentiel.": 7054, + "l’éclairage.": 7055, + "message,": 7056, + "l’éclairage": 7057, + "l’enseigne.": 7058, + "l’enseigne,": 7059, + "message": 7060, + "commerciales,": 7061, + "84": 7062, + "85": 7063, + "86": 7064, + "87": 7065, + "km/h,": 7066, + "dba": 7067, + "leq24h,": 7068, + "montrée": 7069, + "pb-2007-0078,": 7070, + "1314-2021-z.": 7071, + "spécialiste": 7072, + "acoustique": 7073, + "leq24h": 7074, + "14)": 7075, + "localisées": 7076, + "l’éducation": 7077, + "(p)": 7078, + "novembre": 7079, + "population": 7080, + "routière": 7081, + "rapide,": 7082, + "préservation": 7083, + "auxdites": 7084, + "91": 7085, + "92": 7086, + "no": 7087, + "(noyau": 7088, + "mont-rolland)": 7089, + "angle,": 7090, + "québécoise": 7091, + "versants": 7092, + "recourbés,": 7093, + "mont-rolland,": 7094, + "cuisine": 7095, + "d’été": 7096, + "larmier": 7097, + "avant-toit": 7098, + "galerie.": 7099, + "source": 7100, + "2009.": 7101, + "93": 7102, + "pignons.": 7103, + "94": 7104, + "mont-sauvage,": 7105, + "implantée": 7106, + "notre-dame,": 7107, + "rare": 7108, + "brique": 7109, + "toits": 7110, + "croupe,": 7111, + "jumelés,": 7112, + "95": 7113, + "villageois,": 7114, + "jumelés": 7115, + "tôle": 7116, + "pincés.": 7117, + "96": 7118, + "d’esprit": 7119, + "boomtown": 7120, + "97": 7121, + "maisons": 7122, + "brique,": 7123, + "multiples,": 7124, + "98": 7125, + "cottage": 7126, + "millette,": 7127, + "99": 7128, + "bungalow": 7129, + "pavillon": 7130, + "piliers": 7131, + "recouverts": 7132, + "bardeau": 7133, + "bardeaux": 7134, + "bois.": 7135, + "(hors": 7136, + "coloniale,": 7137, + "assemblage": 7138, + "queue": 7139, + "d’aronde.": 7140, + "recouvert": 7141, + "grange.": 7142, + "latéral.": 7143, + "101": 7144, + "ancien": 7145, + "ste.": 7146, + "lodge,": 7147, + "bord": 7148, + "golf": 7149, + "chantecler,": 7150, + "102": 7151, + "rustique": 7152, + "modeste,": 7153, + "cochand,": 7154, + "billots": 7155, + "galerie": 7156, + "avant,": 7157, + "103": 7158, + "porte-à-faux,": 7159, + "montclair,": 7160, + "latérale": 7161, + "villa": 7162, + "alpin,": 7163, + "rebord": 7164, + "mur-pignon": 7165, + "apparente,": 7166, + "véranda": 7167, + "façade,": 7168, + "renaud,": 7169, + "104": 7170, + "1314-2021-tm": 7171, + "d'application................................................................................................................................................": 7172, + "l'entente": 7173, + "promoteur": 7174, + "fractionnement": 7175, + "phases.....................................................................................................................": 7176, + "d'aqueduc": 7177, + "fuseau": 7178, + "granulométrique": 7179, + "l'entente..............................................................................................": 7180, + "entretien": 7181, + "promoteur.....................................................................................................................": 7182, + "...........................................................................................": 7183, + "défauts": 7184, + "....................................................................................................................................................................": 7185, + "..........................................................................................................17": 7186, + "1314-2021-tm.": 7187, + "1200-2012-tm-1": 7188, + "promoteur.": 7189, + "utilisée.": 7190, + "provisoire": 7191, + "réserve(s)": 7192, + "demandés": 7193, + "contractuels": 7194, + "prêts": 7195, + "destinés.": 7196, + "déficiences": 7197, + "différés,": 7198, + "dressée": 7199, + "l’ingénieur;": 7200, + "promoteur,": 7201, + "parachevé": 7202, + "corrigé": 7203, + "relevées": 7204, + "provisoire;": 7205, + "firme": 7206, + "d'ingénieurs-conseils,": 7207, + "tâches": 7208, + "connexes": 7209, + "comprends": 7210, + "(avec": 7211, + "municipaux)": 7212, + "conventionnel": 7213, + "commune;": 7214, + "(l.q.,": 7215, + "1991,": 7216, + "64.),": 7217, + "communes,": 7218, + "stationnements,": 7219, + "verts.": 7220, + "(voir": 7221, + "vigueur);": 7222, + "communautaire,": 7223, + "caractérisé": 7224, + "principaux,": 7225, + "conçus": 7226, + "harmonie,": 7227, + "établissements,": 7228, + "commodités": 7229, + "clientèle,": 7230, + "planification": 7231, + "œuvre": 7232, + "d’initiative": 7233, + "unique,": 7234, + "multiples": 7235, + "fraction": 7236, + "parties.": 7237, + "d’aqueduc;": 7238, + "formellement": 7239, + "(résidentiel,": 7240, + "industriel),": 7241, + "connexes,": 7242, + "sujets": 7243, + "étape": 7244, + "d’égouts": 7245, + "pluvial,": 7246, + "branchements": 7247, + "réseaux,": 7248, + "pavage,": 7249, + "bordures,": 7250, + "subi": 7251, + "cycle": 7252, + "gel": 7253, + "dégel": 7254, + "pavage;": 7255, + "affectée": 7256, + "véhicules.": 7257, + "mixte),": 7258, + "pluvial": 7259, + "fonctionnement.": 7260, + "chaussées,": 7261, + "l’éclairage,": 7262, + "routiers,": 7263, + "environnementale.": 7264, + "équipements,": 7265, + "trouvent,": 7266, + "d’occupation,": 7267, + "mixte)": 7268, + "adressée": 7269, + "ci-joint": 7270, + "rempli;": 7271, + "promoteurs;": 7272, + "actuels": 7273, + "rattachement": 7274, + "géodésique;": 7275, + "retrouver": 7276, + "parallèles": 7277, + "centre,": 7278, + "centre.": 7279, + "fractionné": 7280, + "phases;": 7281, + "engendrés": 7282, + "l’entremise": 7283, + "ingénieur,": 7284, + "prévision": 7285, + "budgétaire": 7286, + "phase;": 7287, + "réalisation,": 7288, + "préparatoire.": 7289, + "exécutées": 7290, + "successivement.": 7291, + "phases,": 7292, + "individuelle": 7293, + "évaluée": 7294, + "transmettent": 7295, + "(projet": 7296, + "consultants": 7297, + "équipements).": 7298, + "complète,": 7299, + "l’affirmative,": 7300, + "mentionne": 7301, + "entente.": 7302, + "l’entière": 7303, + "règlementations": 7304, + "également,": 7305, + "municipaliser": 7306, + "infrastructures.": 7307, + "cession,": 7308, + "supplémentaires,": 7309, + "apparues": 7310, + "l’étape": 7311, + "restreignant": 7312, + "d’adopter": 7313, + "pourvoir": 7314, + "d’emprunts": 7315, + "réels": 7316, + "détaillés,": 7317, + "généralité": 7318, + "honoraires": 7319, + "l’arpentage,": 7320, + "piquetage,": 7321, + "relevés": 7322, + "topographiques,": 7323, + "final.": 7324, + "débuter": 7325, + "remise,": 7326, + "obligés": 7327, + "comprendre,": 7328, + "obligatoirement,": 7329, + "limitativement": 7330, + "morale;": 7331, + "l’entente,": 7332, + "l’entente.": 7333, + "modifiée": 7334, + "celle-ci,": 7335, + "acheminée": 7336, + "l’entente;": 7337, + "détailler,": 7338, + "intégrés,": 7339, + "copropriété,": 7340, + "futurs": 7341, + "copropriétaires,": 7342, + "déneigement,": 7343, + "références": 7344, + "analyses": 7345, + "caractérisations": 7346, + "environnementales;": 7347, + "offres": 7348, + "d’entretien": 7349, + "déboursés": 7350, + "préparatoires,": 7351, + "estimations": 7352, + "budgétaires": 7353, + "préliminaires,": 7354, + "accessoires;": 7355, + "l’ingénieur,": 7356, + "construits": 7357, + "géoréférencés": 7358, + "conformités": 7359, + "d’ententes": 7360, + "distinctes;": 7361, + "l’échéancier": 7362, + "couvertures": 7363, + "d’assurance": 7364, + "intervenant": 7365, + "entrepreneurs,": 7366, + "sous-traitants": 7367, + "engagés": 7368, + "couvre": 7369, + "inhérents": 7370, + "souscrite": 7371, + "maintenue": 7372, + "millions": 7373, + "$);": 7374, + "ajouter": 7375, + "qu’assurée": 7376, + "faute,": 7377, + "négligence": 7378, + "l’imprudence": 7379, + "préposés": 7380, + "conflit": 7381, + "confection": 7382, + "bassins": 7383, + "sédimentations;": 7384, + "gratuit": 7385, + "prévu,": 7386, + "rattachent": 7387, + "(entre": 7388, + "notaire,": 7389, + "l’arpenteur-géomètre,": 7390, + "biologiste,": 7391, + "communications;": 7392, + "impossible,": 7393, + "purge": 7394, + "automatique": 7395, + "implanté.": 7396, + "bouclé": 7397, + "premier,": 7398, + "automatique.": 7399, + "respectera": 7400, + "granulométrique,": 7401, + "nq": 7402, + "2560-114,": 7403, + "conséquent,": 7404, + "assume": 7405, + "granulaire": 7406, + "(étape": 7407, + "b).": 7408, + "laboratoire": 7409, + "acheminé": 7410, + "ingénieur;": 7411, + "l’estimation": 7412, + "(plans": 7413, + "environnementale,": 7414, + "surveillance,": 7415, + "environnementales,": 7416, + "contrôles": 7417, + "qualitatifs,": 7418, + "promoteur;": 7419, + "d’assurance,": 7420, + "intervenants": 7421, + "environnementales": 7422, + "rédigées": 7423, + "climatiques;": 7424, + "exemplaires,": 7425, + "annexes": 7426, + "maire,": 7427, + "signer,": 7428, + "promoteurs": 7429, + "autorise.": 7430, + "pavage.": 7431, + "alinéas": 7432, + "d’octroi": 7433, + "contrats": 7434, + "survient": 7435, + "circonstances": 7436, + "contrôle,": 7437, + "difficultés": 7438, + "légitimement": 7439, + "retards,": 7440, + "seulement,": 7441, + "fixés": 7442, + "contrat.": 7443, + "déglaçage,": 7444, + "l’abat-poussière,": 7445, + "balayage,": 7446, + "communes.": 7447, + "mixte,": 7448, + "témoignant": 7449, + "résultats.": 7450, + "impact": 7451, + "potable.": 7452, + "certifié,": 7453, + "traite": 7454, + "bancaire": 7455, + "1222": 7456, + "signature.": 7457, + "remboursable.": 7458, + "cautionnement": 7459, + "habilitée": 7460, + "garante;": 7461, + "irrévocable": 7462, + "institution": 7463, + "payable": 7464, + "encaissable": 7465, + "l’institution": 7466, + "jugée": 7467, + "(taxes": 7468, + "comprises)": 7469, + "précède": 7470, + "gérées": 7471, + "phases.": 7472, + "conventionnels,": 7473, + "d’exécution.": 7474, + "libération,": 7475, + "b,": 7476, + "restant": 7477, + "déposer,": 7478, + "irrévocable,": 7479, + "$,": 7480, + "garantissant": 7481, + "bancaire.": 7482, + "elle-même,": 7483, + "acquérir": 7484, + "contient": 7485, + "gratuit,": 7486, + "trottoirs,": 7487, + "souterraines,": 7488, + "pluvial.": 7489, + "consentir,": 7490, + "résidentiels": 7491, + "pluviaux": 7492, + "stations": 7493, + "pompage.": 7494, + "infrastructures;": 7495, + "préparation,": 7496, + "s’écoule": 7497, + "mandater": 7498, + "génie,": 7499, + "cession.": 7500, + "s’engage,": 7501, + "libres": 7502, + "taxe": 7503, + "scolaire": 7504, + "quittes": 7505, + "privilège,": 7506, + "hypothèque": 7507, + "grever.": 7508, + "statutaire": 7509, + "fournisseurs": 7510, + "main-d'œuvre,": 7511, + "sous-traitant": 7512, + "csst.": 7513, + "privée,": 7514, + "inscrire,": 7515, + "clause": 7516, + "voulant": 7517, + "entretenue": 7518, + "encourra": 7519, + "débute": 7520, + "poursuivre": 7521, + "diligence;": 7522, + "utile,": 7523, + "omet,": 7524, + "insolvable,": 7525, + "tire": 7526, + "avantage": 7527, + "rapportant": 7528, + "l'insolvabilité": 7529, + "séquestre": 7530, + "syndic": 7531, + "engagements": 7532, + "l'accompagnent.": 7533, + "l'entente,": 7534, + "alternativement": 7535, + "s'adresser": 7536, + "formalité,": 7537, + "caution": 7538, + "soumissions": 7539, + "obtenues": 7540, + "retenir": 7541, + "imposer": 7542, + "spéciale": 7543, + "couvrir": 7544, + "parachever": 7545, + "approprié.": 7546, + "ayants": 7547, + "soumis.": 7548, + "litige": 7549, + "l’entrepreneur,": 7550, + "fournisseurs,": 7551, + "mains-d'œuvre": 7552, + "sous-traitants,": 7553, + "indemne": 7554, + "réclamations": 7555, + "hypothèques": 7556, + "explicitement": 7557, + "radiations": 7558, + "légales,": 7559, + "incomber": 7560, + "litige.": 7561, + "je,": 7562, + "soussigné(e),": 7563, + "____________________________,": 7564, + "agissant": 7565, + "de_________________________": 7566, + "ci-dessus": 7567, + "mentionné.": 7568, + "m’engage": 7569, + "cédées": 7570, + "charge,": 7571, + "hypothèque,": 7572, + "conclu.": 7573, + "reconnais": 7574, + "pris": 7575, + "connaissance": 7576, + "s’appliquerait": 7577, + "mon": 7578, + "______________________________________": 7579, + "/": 7580, + "1289": 7581, + "formation": 7582, + "huis": 7583, + "clos": 7584, + "2020": 7585, + "céline": 7586, + "doré": 7587, + "environnement.": 7588, + "composition": 7589, + "nommer,": 7590, + "minimal": 7591, + "citoyens": 7592, + "membre,": 7593, + "secrétaire": 7594, + "n’en": 7595, + "autrement.": 7596, + "celui-": 7597, + "participer": 7598, + "d’environnement": 7599, + "vert": 7600, + "cce": 7601, + "2020)": 7602, + "tenues": 7603, + "mandate": 7604, + "requiert.": 7605, + "réunion,": 7606, + "substitut": 7607, + "délègue.": 7608, + "convocation": 7609, + "convoqués": 7610, + "courriel.": 7611, + "tiennent": 7612, + "clos.": 7613, + "président": 7614, + "comité.": 7615, + "représenter": 7616, + "discussions": 7617, + "procès-verbaux": 7618, + "réunion.": 7619, + "procès-verbal": 7620, + "produits": 7621, + "meilleurs": 7622, + "retirer.": 7623, + "évitent": 7624, + "intérêt": 7625, + "personnel": 7626, + "professionnel.": 7627, + "désirent": 7628, + "conventionnelle": 7629, + "plutôt": 7630, + "confidentialité": 7631, + "confidentielles.": 7632, + "contexte,": 7633, + "opinions": 7634, + "exprimés": 7635, + "publiques.": 7636, + "1140-2010.": 7637, + "4e": 7638, + "2020.": 7639, + "intérim": 7640, + "1314-2021-c": 7641, + "résistance,": 7642, + "entrepreneur": 7643, + "nationales": 7644, + "édition": 7645, + "change": 7646, + "amendements.": 7647, + "isolée,": 7648, + "mobiles": 7649, + "transportables": 7650, + "assujetti,": 7651, + "r.35.2),": 7652, + "retient": 7653, + "instructions": 7654, + "acnor": 7655, + "préfabriqué": 7656, + "(c'est-à-dire": 7657, + "modulaire,": 7658, + "usiné": 7659, + "transportable": 7660, + "assemblé": 7661, + "d'implantation)": 7662, + "certifiés": 7663, + "l'association": 7664, + "canadienne": 7665, + "normalisation": 7666, + "(csa).": 7667, + "récréatif.": 7668, + "essai": 7669, + "conférés": 7670, + "réfère,": 7671, + "fasse": 7672, + "d’assemblage": 7673, + "test,": 7674, + "fournisse": 7675, + "prouvant": 7676, + "d’avis": 7677, + "composante": 7678, + "structurale": 7679, + "paraisse": 7680, + "supportée,": 7681, + "exercé.": 7682, + "accrédité": 7683, + "habilité": 7684, + "discipline": 7685, + "l’essai": 7686, + "séparation": 7687, + "isolé": 7688, + "coupe-feu": 7689, + "minutes.": 7690, + "d’obturation,": 7691, + "pare-flamme": 7692, + "(hall": 7693, + "d’entrée)": 7694, + "commun,": 7695, + "traverser": 7696, + "d’immunisation": 7697, + "d'immunisation": 7698, + "adaptant": 7699, + "l'infrastructure": 7700, + "(fenêtre,": 7701, + "soupirail,": 7702, + "drains": 7703, + "clapets": 7704, + "retenue;": 7705, + "sise": 7706, + "produite": 7707, + "structures": 7708, + "résister": 7709, + "crue,": 7710, + "intégrant": 7711, + "calculs": 7712, + "l'imperméabilisation;": 7713, + "stabilité": 7714, + "structures;": 7715, + "l'armature": 7716, + "nécessaire;": 7717, + "évacuer": 7718, + "d'infiltration;": 7719, + "béton": 7720, + "compression": 7721, + "tension;": 7722, + "immédiate": 7723, + "autour": 7724, + "étendu": 7725, + "prévu;": 7726, + "protégé,": 7727, + "pied,": 7728, + "devrait": 7729, + "33⅓": 7730, + "(rapport": 7731, + "horizontal).": 7732, + "d'immunisation,": 7733, + "qu'ait": 7734, + "haut": 7735, + "servi": 7736, + "auquel,": 7737, + "centimètres.": 7738, + "fosses": 7739, + "d’huile": 7740, + "graisse": 7741, + "raccordées": 7742, + "d'égouts": 7743, + "ponceaux": 7744, + "ponceau": 7745, + "(entrée": 7746, + "charretière).": 7747, + "libre": 7748, + "contamination": 7749, + "décontaminer": 7750, + "détection": 7751, + "fuite;": 7752, + "l’antigel,": 7753, + "fluide": 7754, + "caloporteur": 7755, + "frigorigène": 7756, + "géothermie": 7757, + "installation,": 7758, + "conformité,": 7759, + "violation": 7760, + "climatisation": 7761, + "réfrigération": 7762, + "d’installer": 7763, + "(circuit": 7764, + "ouvert": 7765, + "eau)": 7766, + "prohibés.": 7767, + "thermostat": 7768, + "appareil": 7769, + "autonome;": 7770, + "programmable": 7771, + "central;": 7772, + "combustion": 7773, + "évoluée": 7774, + "b415.1-m-92": 7775, + "canadian": 7776, + "standards": 7777, + "association": 7778, + "(csa)": 7779, + "l’environmental": 7780, + "agency": 7781, + "(epa);": 7782, + "appareils": 7783, + "central,": 7784, + "d’appoint": 7785, + "alimentée": 7786, + "gaz": 7787, + "propane": 7788, + "mazout": 7789, + "scellé.": 7790, + "verts": 7791, + "végétalisés,": 7792, + "extensifs": 7793, + "intensifs,": 7794, + "végétal": 7795, + "membrane": 7796, + "multicouche": 7797, + "(asphalte": 7798, + "gravier);": 7799, + "aménagé,": 7800, + "bâtiment.": 7801, + "cour": 7802, + "arrière;": 7803, + "envisagés;": 7804, + "minimum,": 7805, + "d’étanchéité,": 7806, + "couche": 7807, + "filtration,": 7808, + "substrat": 7809, + "végétale;": 7810, + "plante": 7811, + "morte": 7812, + "remplacée;": 7813, + "paillis": 7814, + "combustibles,": 7815, + "copeaux": 7816, + "bois,": 7817, + "paille": 7818, + "mousse": 7819, + "sphaigne": 7820, + "prohibés;": 7821, + "végétalisé": 7822, + "d’irrigation": 7823, + "infiltration": 7824, + "toit.": 7825, + "élaboré": 7826, + "paysagiste,": 7827, + "respecté": 7828, + "temps.": 7829, + "précautions": 7830, + "piétinement;": 7831, + "fréquence": 7832, + "visites": 7833, + "d’entretien;": 7834, + "irrigation": 7835, + "fréquence,": 7836, + "durée,": 7837, + "l’année;": 7838, + "fertilisation": 7839, + "recommandés": 7840, + "proscrits,": 7841, + "d’application;": 7842, + "mécanisme": 7843, + "qu’«": 7844, + "l’entreposage": 7845, + "produits,": 7846, + "machineries,": 7847, + "d’outillage": 7848, + "véhicules;": 7849, + "industrielles": 7850, + "d’extraction": 7851, + "minière": 7852, + "nécessite,": 7853, + "opérations,": 7854, + "exercées,": 7855, + "l’absence": 7856, + "d’affecter": 7857, + "exploité": 7858, + "fortification": 7859, + "démantelés": 7860, + "retrait": 7861, + "autorisés.": 7862, + "glace": 7863, + "chutes": 7864, + "ruelle": 7865, + "garde-neige": 7866, + "attaché": 7867, + "tomber.": 7868, + "l’accumulation": 7869, + "constituante": 7870, + "l’enveloppe": 7871, + "toiture,": 7872, + "fenêtre": 7873, + "étanche;": 7874, + "briques,": 7875, + "mortier": 7876, + "fissures": 7877, + "risquer": 7878, + "s’écrouler;": 7879, + "fini": 7880, + "avant-toit,": 7881, + "saillie,": 7882, + "porte,": 7883, + "matériau": 7884, + "refait": 7885, + "mur,": 7886, + "plafond,": 7887, + "boiserie": 7888, + "accumulation": 7889, + "d’humidité": 7890, + "causant": 7891, + "dégradation": 7892, + "finis.": 7893, + "perron,": 7894, + "maintenus": 7895, + "repeints": 7896, + "besoin.": 7897, + "métal": 7898, + "sensible": 7899, + "rouille": 7900, + "laissé": 7901, + "intempéries.": 7902, + "personnes,": 7903, + "empêché": 7904, + "assurée.": 7905, + "considérées": 7906, + "planchers": 7907, + "garde-corps": 7908, + "pourri.": 7909, + "2023": 7910, + "1314-2021-c-1": 7911, + "déclaratoires................................................................................................................................": 7912, + "................................................................................................................................................................................": 7913, + "............................................................................................................................................................................................": 7914, + ".......................................................................................................................................................................................................": 7915, + ".........................................................................................................................................................................": 7916, + "...............................................................................................................................................................": 7917, + ".....................................................................................................................................................": 7918, + "déplacé": 7919, + "contigus": 7920, + "mitoyen": 7921, + "........................................................................................................................................................................................": 7922, + "cheminée": 7923, + "attenant": 7924, + "...........................": 7925, + "pilotis": 7926, + "pieux": 7927, + "pilotis,": 7928, + "flottante": 7929, + "pluviales,": 7930, + "raccordements": 7931, + "drain": 7932, + "(drain": 7933, + "français)": 7934, + "clapet": 7935, + "anti-retour": 7936, + "soupape": 7937, + "sûreté": 7938, + "d’isolation": 7939, + ".........................................................................................................................................................................................": 7940, + "toilettes": 7941, + "faible": 7942, + "..................................................................................................................................................................................": 7943, + "chauffe-eau": 7944, + "solaire": 7945, + "photovoltaïque": 7946, + "recharge": 7947, + "d’images": 7948, + "vision": 7949, + "nocturne": 7950, + "hors-sol": 7951, + "ceinture": 7952, + "vide": 7953, + "ancrage": 7954, + "..............................................................................................................................................................................................": 7955, + "enlèvement": 7956, + "d'accrochage": 7957, + "détecteur": 7958, + "monoxyde": 7959, + "....................................................................................................................................................................................": 7960, + "escalier....................................................................................": 7961, + "dangereuses": 7962, + "chantiers": 7963, + "généralités": 7964, + "exécution": 7965, + "gravement": 7966, + ".........................................................................................................................................": 7967, + "prévention": 7968, + "poussière": 7969, + "toilette": 7970, + "chimique": 7971, + "...................................................................................................................................................................................": 7972, + "inachevés,": 7973, + "inoccupés,": 7974, + "incendiés": 7975, + "délabrés": 7976, + "sécuriser": 7977, + "justice": 7978, + "inachevée": 7979, + "abandonnée": 7980, + "ciel": 7981, + "incendiée": 7982, + "démolie": 7983, + "moitié": 7984, + "1314-2021-c.": 7985, + "1200-2012-c": 7986, + "ponts,": 7987, + "viaducs,": 7988, + "tunnels,": 7989, + "lorsqu’ils": 7990, + "instance": 7991, + "paragouvernementale.": 7992, + "d’énergie": 7993, + "téléphonique": 7994, + "assemblée": 7995, + "majorité.": 7996, + "marchande,": 7997, + "interdite,": 7998, + "(lrq": 7999, + "p-9.002);": 8000, + "l’inventaire": 8001, + "pays-": 8002, + "d’en-haut": 8003, + "vestige": 8004, + "1940;": 8005, + "1960": 8006, + "depuis;": 8007, + "t5.1,": 8008, + "t5.2,": 8009, + "t5.3,": 8010, + "zc.1": 8011, + "zc.2": 8012, + "modifications.": 8013, + "exclusions": 8014, + "3,": 8015, + "227,": 8016, + "229": 8017, + "231": 8018, + "menacée": 8019, + "l’imminence": 8020, + "s-2.3)": 8021, + "incendies": 8022, + "direction": 8023, + "désirant": 8024, + "d’obtenir,": 8025, + "pc,": 8026, + "d’obtenir": 8027, + "architecturales,": 8028, + "défaillants);": 8029, + "située;": 8030, + "professionnelle,": 8031, + "indépendante": 8032, + "détaillée,": 8033, + "restauration": 8034, + "dégagé": 8035, + "dégagé;": 8036, + "projetées.": 8037, + "d’étages,": 8038, + "remplacement;": 8039, + "contaminé,": 8040, + "rè": 8041, + "glèmènt": 8042, + "1314-2023-dem": 8043, + "gissant": 8044, + "dè": 8045, + "molition": 8046, + "2023)": 8047, + "réviser": 8048, + "transmettant": 8049, + "propre": 8050, + "chef": 8051, + "patrimonial,": 8052, + "exprimant": 8053, + "intention": 8054, + "révision": 8055, + "faute": 8056, + "finale.": 8057, + "p-9.002),": 8058, + "d’en-haut.": 8059, + "désavouer": 8060, + "148.0.20.1": 8061, + "19.1)": 8062, + "municipale,": 8063, + "déménagement": 8064, + "garantir": 8065, + "échéance,": 8066, + "est,": 8067, + "remboursée,": 8068, + "intérêt.": 8069, + "entrepris": 8070, + "terminés": 8071, + "encaisser": 8072, + "monétaire.": 8073, + "démolition.": 8074, + "l’objet,": 8075, + "remplis,": 8076, + "acquéreur": 8077, + "d’avoir": 8078, + "1314-2021-pc,": 8079, + "l’achèvement": 8080, + "exigée.": 8081, + "monétaire,": 8082, + "vendeur,": 8083, + "n’exécute": 8084, + "imposées.": 8085, + "révision,": 8086, + "appliquant": 8087, + "qu’en": 8088, + "prélevant": 8089, + "2023,": 8090, + "séances,": 8091, + "législatives;": 8092, + "l’obligation,": 8093, + "gagné;": 8094, + "motion;": 8095, + "2023;": 8096, + "ordonne": 8097, + "v.0.1": 8098, + "constitué.": 8099, + "composé": 8100, + "fonctionnaire,": 8101, + "(ccu)": 8102, + "milieu;": 8103, + "loyer": 8104, + "mensuel": 8105, + "défaillances": 8106, + "publics.": 8107, + "passants": 8108, + "dix": 8109, + "(10)": 8110, + "publie": 8111, + "culture": 8112, + "communications": 8113, + "p-9.002)": 8114, + "s’opposer": 8115, + "connaître": 8116, + "opposition": 8117, + "prononcer": 8118, + "agit": 8119, + "lumière": 8120, + "1-": 8121, + "l'état": 8122, + "l’immeuble;": 8123, + "2-": 8124, + "détérioration": 8125, + "l'apparence": 8126, + "patrimoniale,": 8127, + "esthétique": 8128, + "3-": 8129, + "celui-ci;": 8130, + "4-": 8131, + "oppositions": 8132, + "reçues;": 8133, + "5-": 8134, + "6-": 8135, + "locataires;": 8136, + "l’offre": 8137, + "7-": 8138, + "8-": 8139, + "pertinence": 8140, + "148.0.8": 8141, + "148.0.9": 8142, + "intéressées.": 8143, + "séance,": 8144, + "reporter": 8145, + "ultérieure;": 8146, + "31.42": 8147, + "2023-10-13": 8148, + "(r1314-2021-pc-3,": 8149, + "434": 8150, + "435": 8151, + "436": 8152, + "437": 8153, + "quinze": 8154, + "(15)": 8155, + "centimètres": 8156, + "(ou": 8157, + "poitrine).": 8158, + "d’auto": 8159, + "piliers,": 8160, + "côtés,": 8161, + "rattaché": 8162, + "l'abri": 8163, + "d'auto": 8164, + "promenade": 8165, + "bateau,": 8166, + "roulotte,": 8167, + "caravane": 8168, + "motorisée,": 8169, + "similaire.": 8170, + "saison": 8171, + "hivernale.": 8172, + "d’hiver": 8173, + "recouvrir": 8174, + "balcons,": 8175, + "galeries": 8176, + "refuge)": 8177, + "rudimentaire": 8178, + "dépourvu": 8179, + "courante": 8180, + "gîte": 8181, + "séjour": 8182, + "forêt.": 8183, + "charretière": 8184, + "accotement": 8185, + "chaussée": 8186, + "réservée": 8187, + "d’appui": 8188, + "chaussée.": 8189, + "dominante": 8190, + "poser": 8191, + "affiches,": 8192, + "panneaux": 8193, + "réclame.": 8194, + "affiche": 8195, + "usage.": 8196, + "mobile": 8197, + "mobile.": 8198, + "d’agrément": 8199, + "hors-rue": 8200, + "repos,": 8201, + "détente": 8202, + "récréation.": 8203, + "transport.": 8204, + "tablier": 8205, + "manœuvre.": 8206, + "l’aire": 8207, + "438": 8208, + "recommandées": 8209, + "revégétalisation": 8210, + "469": 8211, + "inondables": 8212, + "483": 8213, + "numérotation": 8214, + "uniforme": 8215, + "d’abord": 8216, + "divisé": 8217, + "numérotés": 8218, + "chiffres": 8219, + "arabes.": 8220, + "sous-sections": 8221, + "numérotées": 8222, + "numérotés,": 8223, + "consécutive,": 8224, + "alinéas.": 8225, + "précédé": 8226, + "d’aucun": 8227, + "chiffre,": 8228, + "particulière.": 8229, + "paragraphes.": 8230, + "numéroté": 8231, + "sous-paragraphes.": 8232, + "minuscule.": 8233, + "sous-alinéas.": 8234, + "sous-alinéa": 8235, + "tiret.": 8236, + "l’exemple": 8237, + "illustre": 8238, + "x.x": 8239, + "sous-sous-paragraphe": 8240, + "modifiés": 8241, + "zones,": 8242, + "intégrantes": 8243, + "golfs": 8244, + "rivière": 8245, + "simulé": 8246, + "en-tête": 8247, + "pied": 8248, + "indicatif": 8249, + "en-têtes;": 8250, + "pieds": 8251, + "page,": 8252, + "pagination;": 8253, + "illustrations": 8254, + "d’ambiance": 8255, + "situant": 8256, + "dessous": 8257, + "milieux,": 8258, + "servent": 8259, + "imager,": 8260, + "futur": 8261, + "écrits": 8262, + "prête": 8263, + "extension;": 8264, + "masculin": 8265, + "féminin": 8266, + "absolue": 8267, + "illustrations,": 8268, + "graphiques": 8269, + "d'expression": 8270, + "dit,": 8271, + "référé,": 8272, + "(si).": 8273, + "qu’identifiées": 8274, + "annexé": 8275, + "alphanumérique,": 8276, + "d’exemple": 8277, + "composée": 8278, + "t1.1": 8279, + "001": 8280, + "zi.2": 8281, + "002": 8282, + "l’élément": 8283, + "d’union": 8284, + "alphanumérique": 8285, + "t1": 8286, + "chiffre": 8287, + "(ex": 8288, + ".1": 8289, + ".2": 8290, + "»);": 8291, + "unique": 8292, + "001).": 8293, + "dominant": 8294, + "délimitées": 8295, + "lignes.": 8296, + "coïncident": 8297, + "généralement": 8298, + "homologuée": 8299, + "d'emprise": 8300, + "l'axe": 8301, + "l’axe": 8302, + "cote,": 8303, + "indiquée.": 8304, + "qu’'il": 8305, + "mesure,": 8306, + "l'aide": 8307, + "peu": 8308, + "coïncider": 8309, + "seconde.": 8310, + "approximativement": 8311, + "parallèle": 8312, + "seconde,": 8313, + "descriptives": 8314, + "7,": 8315, + "représentent": 8316, + "morphologiques": 8317, + "souhaitées": 8318, + "déclinent": 8319, + "t1.2;": 8320, + "t2": 8321, + "forêt": 8322, + "t2.1": 8323, + "t2.2;": 8324, + "t3": 8325, + "périurbain": 8326, + "t3.4;": 8327, + "t4": 8328, + "urbain": 8329, + "t4.1": 8330, + "t4.3;": 8331, + "t5.1": 8332, + "t5.3;": 8333, + "cu;": 8334, + "zm;": 8335, + "zc.4;": 8336, + "industrielle": 8337, + "zi.1": 8338, + "zi.2;": 8339, + "correspondent": 8340, + "gradation": 8341, + "d’intensité": 8342, + "urbaine.": 8343, + "ci,": 8344, + "cu,": 8345, + "zm,": 8346, + "concordance": 8347, + "associée": 8348, + "normative": 8349, + "fiches,": 8350, + "explicatives": 8351, + "d’indication": 8352, + "d’incompatibilité": 8353, + "concernées": 8354, + "s’appliquent;": 8355, + "marges": 8356, + "correspondante": 8357, + "l’équipement,": 8358, + "couvre-sol,": 8359, + "d’arbustes": 8360, + "prohibé;": 8361, + "proportions": 8362, + "abstraction": 8363, + "zones.": 8364, + "désignés.": 8365, + "ceux-ci)": 8366, + "réalisées": 8367, + "lorsqu’aucun": 8368, + "exigé.": 8369, + "habilitantes.": 8370, + "zonage»": 8371, + "juridpiques": 8372, + "433": 8373, + "189": 8374, + "réglementaires": 8375, + "431.": 8376, + "précisent": 8377, + "432.": 8378, + "établissent": 8379, + "d’exceptions": 8380, + "pastille": 8381, + "(●)": 8382, + "vis-à-vis": 8383, + "colonne": 8384, + "colonne,": 8385, + "symbole": 8386, + "colonnes": 8387, + "qu’aucun": 8388, + "respecté;": 8389, + "n/a": 8390, + "inapplicable": 8391, + "parenthèses": 8392, + "(art.": 8393, + "000))": 8394, + "particulière;": 8395, + "milieux;": 8396, + "ailleurs": 8397, + "s’applique,": 8398, + "190": 8399, + "représente": 8400, + "ensembles": 8401, + "paysagère": 8402, + "’écosystèmes": 8403, + "notamm": 8404, + "ent": 8405, + "forêts,": 8406, + "écosystèmes": 8407, + "exceptionnels.": 8408, + "récréative": 8409, + "sadr": 8410, + "écologiques": 8411, + "protéger,": 8412, + "compatibles.": 8413, + "d’interprétation,": 8414, + "d’observation,": 8415, + "recherche": 8416, + "scientifique,": 8417, + "d’éducation": 8418, + "205": 8419, + "444.": 8420, + "t1.1.": 8421, + "206": 8422, + "t1.2": 8423, + "454.": 8424, + "t1.2.": 8425, + "214": 8426, + "importants.": 8427, + "affectations": 8428, + "récréotouristiques": 8429, + "extensives,": 8430, + "agroforestières": 8431, + "secteurs.": 8432, + "222": 8433, + "agroforestier": 8434, + "464.": 8435, + "t2.1.": 8436, + "465.": 8437, + "implantation": 8438, + "223": 8439, + "t2.2": 8440, + "récréotouristique": 8441, + "extensif": 8442, + "474.": 8443, + "t2.2.": 8444, + "(r1314-2021-z-3,": 8445 + }, + "rgb": { + "": 0, + "#000": 1, + "#222": 2, + "#f00": 3, + "#333": 4, + "#bbb": 5, + "#999": 6, + "#665": 7, + "#444": 8, + "#777": 9, + "#aaa": 10, + "#555": 11, + "#378": 12, + "#fff": 13 + }, + "mctag": { + "": 0, + "Suspect": 1, + "P": 2, + "Artifact": 3, + "Span": 4, + "Div": 5 + }, + "uppercase": { + "": 0, + "True": 1, + "False": 2 + }, + "title": { + "": 0, + "False": 1, + "True": 2 + }, + "punc": { + "": 0, + "True": 1, + "False": 2 + }, + "endpunc": { + "": 0, + "True": 1, + "False": 2 + }, + "numeric": { + "": 0, + "False": 1, + "True": 2 + }, + "bold": { + "": 0, + "True": 1, + "False": 2 + }, + "italic": { + "": 0, + "False": 1, + "True": 2 + }, + "toc": { + "": 0, + "0": 1, + "1": 2 + }, + "header": { + "": 0, + "False": 1, + "True": 2 + }, + "head:table": { + "": 0, + "False": 1, + "True": 2 + }, + "head:chapitre": { + "": 0, + "False": 1, + "True": 2 + }, + "head:annexe": { + "": 0, + "False": 1, + "True": 2 + }, + "line:height": { + "": 0, + "11": 1, + "12": 2, + "9": 3, + "10": 4, + "25": 5, + "20": 6, + "8": 7, + "13": 8, + "30": 9, + "14": 10, + "18": 11, + "15": 12, + "16": 13, + "4": 14, + "26": 15, + "3": 16, + "19": 17, + "5": 18, + "6": 19, + "7": 20, + "35": 21, + "23": 22, + "17": 23 + }, + "line:indent": { + "": 0, + "0": 1, + "1": 2, + "-1": 3, + "200": 4, + "-127": 5, + "102": 6, + "-175": 7, + "72": 8, + "-71": 9, + "71": 10, + "2": 11, + "27": 12, + "70": 13, + "129": 14, + "-96": 15, + "48": 16, + "-152": 17, + "-27": 18, + "-100": 19, + "-49": 20, + "-28": 21, + "28": 22, + "29": 23, + "-73": 24, + "-29": 25, + "-50": 26, + "-37": 27, + "-163": 28, + "-142": 29, + "-43": 30, + "18": 31, + "-18": 32, + "-2": 33, + "105": 34, + "-153": 35, + "-8": 36, + "8": 37, + "-203": 38, + "-36": 39, + "142": 40, + "213": 41, + "51": 42, + "-168": 43, + "-213": 44, + "-146": 45, + "35": 46, + "177": 47, + "-177": 48, + "-212": 49, + "36": 50, + "37": 51, + "-66": 52, + "5": 53, + "-34": 54, + "-35": 55, + "50": 56, + "-85": 57, + "-63": 58, + "38": 59, + "25": 60, + "-25": 61, + "-38": 62, + "26": 63, + "-26": 64, + "-95": 65, + "33": 66, + "42": 67, + "-172": 68, + "-72": 69, + "-13": 70, + "13": 71, + "-143": 72, + "506": 73, + "-258": 74, + "-249": 75, + "-299": 76, + "-84": 77, + "61": 78, + "-16": 79, + "15": 80, + "-42": 81, + "-15": 82, + "-12": 83, + "12": 84, + "16": 85, + "41": 86, + "-52": 87, + "44": 88, + "-70": 89, + "-363": 90, + "150": 91, + "-150": 92, + "-115": 93, + "21": 94, + "-21": 95, + "3": 96, + "-433": 97, + "-3": 98, + "149": 99, + "-149": 100, + "-60": 101, + "-14": 102, + "14": 103, + "-182": 104, + "-17": 105, + "17": 106, + "241": 107, + "-108": 108, + "32": 109, + "-165": 110, + "-283": 111, + "64": 112, + "-64": 113, + "65": 114, + "45": 115, + "-110": 116, + "75": 117, + "-75": 118, + "106": 119, + "19": 120, + "-19": 121, + "10": 122, + "-47": 123, + "113": 124, + "-33": 125, + "-80": 126, + "-113": 127, + "22": 128, + "-22": 129, + "-6": 130, + "47": 131, + "57": 132, + "85": 133, + "-46": 134, + "-106": 135, + "-57": 136, + "43": 137, + "62": 138, + "240": 139, + "-240": 140, + "30": 141, + "-30": 142, + "11": 143, + "169": 144, + "-112": 145, + "179": 146, + "-151": 147, + "193": 148, + "46": 149, + "-24": 150, + "-82": 151, + "7": 152, + "216": 153, + "4": 154, + "20": 155, + "118": 156, + "122": 157, + "92": 158, + "-58": 159, + "80": 160, + "-244": 161, + "100": 162, + "-91": 163, + "115": 164, + "55": 165, + "-170": 166, + "114": 167, + "-114": 168, + "49": 169, + "181": 170, + "9": 171, + "-10": 172, + "121": 173, + "73": 174, + "104": 175, + "-174": 176, + "218": 177, + "-218": 178, + "184": 179, + "176": 180, + "108": 181, + "-90": 182, + "203": 183, + "-156": 184, + "34": 185, + "144": 186, + "-126": 187, + "-122": 188 + }, + "line:gap": { + "": 0, + "84": 1, + "15": 2, + "45": 3, + "1": 4, + "0": 5, + "12": 6, + "2": 7, + "13": 8, + "11": 9, + "24": 10, + "23": 11, + "6": 12, + "104": 13, + "8": 14, + "7": 15, + "17": 16, + "43": 17, + "18": 18, + "81": 19, + "60": 20, + "14": 21, + "26": 22, + "27": 23, + "159": 24, + "122": 25, + "178": 26, + "29": 27, + "25": 28, + "71": 29, + "109": 30, + "58": 31, + "197": 32, + "155": 33, + "32": 34, + "33": 35, + "10": 36, + "68": 37, + "342": 38, + "136": 39, + "22": 40, + "30": 41, + "16": 42, + "37": 43, + "28": 44, + "183": 45, + "217": 46, + "3": 47, + "4": 48, + "187": 49, + "69": 50, + "127": 51, + "185": 52, + "40": 53, + "73": 54, + "72": 55, + "85": 56, + "154": 57, + "67": 58, + "97": 59, + "38": 60, + "141": 61, + "-2": 62, + "182": 63, + "107": 64, + "169": 65, + "-11": 66, + "-1": 67, + "-4": 68, + "-3": 69, + "-16": 70, + "9": 71, + "-7": 72, + "90": 73, + "44": 74, + "48": 75, + "87": 76, + "34": 77, + "440": 78, + "186": 79, + "35": 80, + "55": 81, + "88": 82, + "62": 83, + "170": 84, + "39": 85, + "447": 86, + "57": 87, + "77": 88, + "619": 89, + "195": 90, + "21": 91, + "128": 92, + "205": 93, + "163": 94, + "65": 95, + "114": 96, + "75": 97, + "173": 98, + "66": 99, + "146": 100, + "152": 101, + "533": 102, + "36": 103, + "439": 104, + "5": 105, + "53": 106, + "20": 107, + "19": 108, + "41": 109, + "100": 110, + "31": 111, + "49": 112, + "42": 113, + "445": 114, + "54": 115, + "145": 116, + "111": 117, + "240": 118, + "286": 119, + "262": 120, + "47": 121, + "327": 122, + "451": 123, + "56": 124, + "602": 125, + "70": 126, + "337": 127, + "343": 128, + "232": 129, + "172": 130, + "227": 131, + "334": 132, + "362": 133, + "331": 134, + "427": 135, + "407": 136, + "263": 137, + "373": 138, + "244": 139, + "266": 140, + "149": 141, + "213": 142, + "363": 143, + "456": 144, + "432": 145, + "188": 146, + "466": 147, + "124": 148, + "323": 149, + "181": 150, + "289": 151, + "156": 152, + "-5": 153, + "-10": 154, + "-18": 155, + "-17": 156, + "-15": 157, + "113": 158, + "-207": 159, + "-288": 160, + "-308": 161, + "-30": 162, + "-285": 163, + "157": 164, + "249": 165, + "346": 166, + "309": 167, + "288": 168, + "592": 169, + "614": 170, + "626": 171, + "756": 172, + "627": 173, + "640": 174, + "709": 175, + "680": 176, + "628": 177, + "646": 178, + "520": 179, + "436": 180, + "430": 181, + "177": 182, + "243": 183, + "103": 184, + "52": 185, + "258": 186, + "158": 187, + "329": 188, + "391": 189, + "119": 190, + "490": 191, + "496": 192, + "736": 193, + "476": 194, + "76": 195, + "486": 196, + "529": 197, + "215": 198, + "513": 199, + "352": 200, + "354": 201, + "236": 202 + }, + "first": { + "": 0, + "1": 1, + "0": 2 + }, + "last": { + "": 0, + "0": 1, + "1": 2 + } + }, + "id2label": [ + "O", + "I-Titre", + "I-Tete", + "I-TOC", + "I-SousSection", + "I-Section", + "I-Pied", + "I-Liste", + "I-Figure", + "I-Chapitre", + "I-Article", + "I-Annexe", + "I-Amendement", + "I-Alinea", + "B-Titre", + "B-Tete", + "B-TOC", + "B-SousSection", + "B-Section", + "B-Pied", + "B-Liste", + "B-Figure", + "B-Chapitre", + "B-Article", + "B-Annexe", + "B-Amendement", + "B-Alinea" + ], + "featdims": { + "lower": 32, + "rgb": 8, + "mctag": 8, + "uppercase": 8, + "title": 8, + "punc": 8, + "endpunc": 8, + "numeric": 8, + "bold": 8, + "italic": 8, + "toc": 8, + "header": 8, + "head:table": 8, + "head:chapitre": 8, + "head:annexe": 8, + "line:height": 8, + "line:indent": 8, + "line:gap": 8, + "first": 8, + "last": 8 + }, + "veclen": 14, + "label_weights": [ + 1.0052219202795956, + 1.001308044287131, + 1.0002590338024633, + 1.0001663201659368, + 1.0027510299042244, + 1.0023337212291115, + 1.0023391802211747, + 1.0000284628630776, + 1.0350841819432672, + 1.0033840915305303, + 1.0003149110350298, + 1.0148145458516258, + 1.0206178337299034, + 1.0000225853443692, + 1.0076045262294093, + 1.0036968534684156, + 1.0444372889067748, + 1.0198013395064833, + 1.0115605656264237, + 1.0035273332098222, + 1.0006201550188902, + 1.3956124250860895, + 1.0235283388907062, + 1.0014378142744038, + 1.1331484530668263, + 1.0605880616257302, + 1.0007094714140257 + ], + "hidden_size": 80, + "features": "text+layout+structure", + "labels": "literal", + "constrain": false +} \ No newline at end of file diff --git a/alexi/models/rnn_crf.pt b/alexi/models/rnn_crf.pt new file mode 100644 index 0000000..f45c08c Binary files /dev/null and b/alexi/models/rnn_crf.pt differ diff --git a/alexi/segment.py b/alexi/segment.py index ce21fd6..d372126 100644 --- a/alexi/segment.py +++ b/alexi/segment.py @@ -2,14 +2,27 @@ import csv import itertools +import json import operator import re +from collections import Counter from enum import Enum from os import PathLike from pathlib import Path from typing import Any, Callable, Iterable, Iterator, Sequence, Union import joblib # type: ignore +import torch +from allennlp_light.modules.conditional_random_field import ( + ConditionalRandomFieldWeightTrans, +) +from torch import nn +from torch.nn.utils.rnn import ( + PackedSequence, + pack_padded_sequence, + pad_packed_sequence, + pad_sequence, +) from alexi.convert import FIELDNAMES from alexi.format import line_breaks @@ -18,8 +31,12 @@ FEATNAMES = [name for name in FIELDNAMES if name not in ("segment", "sequence")] DEFAULT_MODEL = Path(__file__).parent / "models" / "crf.joblib.gz" DEFAULT_MODEL_NOSTRUCT = Path(__file__).parent / "models" / "crf.vl.joblib.gz" +DEFAULT_RNN_MODEL = Path(__file__).parent / "models" / "rnn.pt" FeatureFunc = Callable[[Sequence[T_obj]], Iterator[list[str]]] +if False: + from tokenizers import Tokenizer # type: ignore + class Bullet(Enum): NUMERIC = re.compile(r"^(\d+)[\)\.°-]$") @@ -223,10 +240,31 @@ def bonly(_, word): return "-".join((bio, name)) +TITRES = {"Article", "Chapitre", "Section", "SousSection", "Titre"} + + +def tonly(_, word): + tag = word.get("segment", "O") + bio, sep, name = tag.partition("-") + if not name: + return tag + if name in TITRES: + return tag + return "O" + + +def iobonly(_, word): + tag = word.get("segment", "O") + bio, _sep, _name = tag.partition("-") + return bio + + LabelFunc = Callable[[int, dict[str, Any]], str] LABELS: dict[str, LabelFunc] = { "literal": lambda _, x: x.get("segment", "O"), "bonly": bonly, + "tonly": tonly, + "iobonly": iobonly, } @@ -240,15 +278,476 @@ def page2tokens(page): return (x["text"] for x in page) -def split_pages(words: Iterable[dict]) -> Iterable[list[dict]]: +def split_pages(words: Iterable[T_obj]) -> Iterable[list[T_obj]]: return (list(p) for idx, p in itertools.groupby(words, operator.itemgetter("page"))) -def load(paths: Iterable[PathLike]) -> Iterator[dict]: +def filter_tab(words: Iterable[T_obj]) -> Iterator[T_obj]: + """Enlever les mots dans des tableaux car on va s'en occuper autrement.""" + for w in words: + if "Tableau" in w["segment"]: + continue + if "Table" in w["tagstack"]: + continue + yield w + + +def retokenize(words: Iterable[T_obj], tokenizer: "Tokenizer") -> Iterator[T_obj]: + """Refaire la tokenisation en alignant les traits et etiquettes. + + Notez que parce que le positionnement de chaque sous-mot sera + identique aux autres, les modeles de mise en page risquent de ne + pas bien marcher. Il serait preferable d'appliquer la + tokenisation directement sur les caracteres. + """ + for widx, w in enumerate(words): + e = tokenizer.encode(w["text"], add_special_tokens=False) + for tidx, (tok, tid) in enumerate(zip(e.tokens, e.ids)): + wt = w.copy() + wt["text"] = tok + wt["word"] = w["text"] + wt["word_id"] = widx + wt["token_id"] = tid + # Change B to I for subtokens + if tidx > 0: + for ltype in "sequence", "segment": + if ltype in w: + label = w[ltype] + if label and label[0] == "B": + wt[ltype] = f"I-{label[2:]}" + yield wt + + +def detokenize(words: Iterable[T_obj], _tokenizer: "Tokenizer") -> Iterator[T_obj]: + """Defaire la retokenisation""" + widx = -1 + for w in words: + if w["word_id"] != widx: + widx = w["word_id"] + w["text"] = w["word"] + del w["word"] + del w["word_id"] + del w["token_id"] + yield w + + +def load(paths: Iterable[PathLike]) -> Iterator[T_obj]: for p in paths: with open(Path(p), "rt") as infh: reader = csv.DictReader(infh) - yield from reader + for row in reader: + row["path"] = str(p) + yield row + + +def make_fontname(fontname): + a, plus, b = fontname.partition("+") + if plus: + return b + return fontname + + +def add_deltas(page): + prev = {} + for w in page: + for f in list(f for f in w if f.startswith("v:")): + w[f"{f}:delta"] = w[f] - prev.setdefault(f, w[f]) + prev[f] = w[f] + prev = {} + for w in page: + for f in list(f for f in w if f.endswith(":delta")): + w[f"{f}:delta"] = w[f] - prev.setdefault(f, w[f]) + prev[f] = w[f] + + +def make_rnn_features( + page: Iterable[T_obj], + features: str = "text+layout+structure", + labels: str = "literal", +) -> tuple[list[T_obj], list[str]]: + rnn_features = list( + dict((name, val) for name, _, val in (w.partition("=") for w in feats)) + for feats in page2features(list(page), features) + ) + for f, w in zip(rnn_features, page): + f["line:left"] = float(f["line:left"]) / float(w["page_width"]) + f["line:top"] = float(f["line:top"]) / float(w["page_height"]) + f["v:top"] = float(w["top"]) / float(w["page_height"]) + f["v:left"] = float(w["x0"]) / float(w["page_width"]) + f["v:top"] = float(w["top"]) / float(w["page_height"]) + f["v:right"] = (float(w["page_width"]) - float(w["x1"])) / float( + w["page_width"] + ) + f["v:bottom"] = (float(w["page_height"]) - float(w["bottom"])) / float( + w["page_height"] + ) + + add_deltas(rnn_features) + rnn_labels = list(page2labels(page, labels)) + return rnn_features, rnn_labels + + +FEATNAMES = [ + "lower", + "rgb", + "mctag", + "uppercase", + "title", + "punc", + "endpunc", + "numeric", + "bold", + "italic", + "toc", + "header", + "head:table", + "head:chapitre", + "head:annexe", + "line:height", + "line:indent", + "line:gap", + "first", + "last", +] + +VECNAMES = [ + "line:left", + "line:top", + "v:left", + "v:top", + "v:right", + "v:bottom", + "v:left:delta", + "v:top:delta", + "v:right:delta", + "v:bottom:delta", + "v:left:delta:delta", + "v:top:delta:delta", + "v:right:delta:delta", + "v:bottom:delta:delta", +] + + +def make_page_feats(feat2id, page): + return [ + ( + [feat2id[name].get(feats[name], 0) for name in FEATNAMES], + [float(feats[name]) for name in VECNAMES], + ) + for feats in page + ] + + +def make_page_labels(label2id, page): + return [label2id.get(tag, 0) for tag in page] + + +def make_rnn_data( + csvs: Iterable[Path], + word_dim: int = 32, + feat_dim: int = 8, + features: str = "text+layout_structure", + labels: str = "literal", +): + """Creer le jeu de donnees pour entrainer un modele RNN.""" + X, y = zip( + *( + make_rnn_features(p, features=features, labels=labels) + for p in split_pages(filter_tab(load(csvs))) + ) + ) + label_counts = Counter(itertools.chain.from_iterable(y)) + id2label = sorted(label_counts.keys(), reverse=True) + label2id = dict((label, idx) for (idx, label) in enumerate(id2label)) + feat2id = {name: {"": 0} for name in FEATNAMES} + for feats in itertools.chain.from_iterable(X): + for name, ids in feat2id.items(): + if feats[name] not in ids: + ids[feats[name]] = len(ids) + + all_data = [ + ( + make_page_feats(feat2id, page), + make_page_labels(label2id, tags), + ) + for page, tags in zip(X, y) + ] + # FIXME: Should go in train_rnn + featdims = dict( + (name, word_dim) if name == "lower" else (name, feat_dim) for name in FEATNAMES + ) + + return all_data, featdims, feat2id, label_counts, id2label + + +def load_rnn_data( + iobs: Iterable[T_obj], + feat2id, + id2label, + features: str = "text+layout+structure", + labels: str = "literal", +): + """Creer le jeu de donnees pour tester un modele RNN.""" + label2id = dict((label, idx) for (idx, label) in enumerate(id2label)) + pages = ( + make_rnn_features(p, features=features, labels=labels) + for p in split_pages(iobs) + ) + all_data = [ + ( + make_page_feats(feat2id, page), + make_page_labels(label2id, tags), + ) + for page, tags in pages + ] + return all_data + + +def batch_sort_key(example): + features, labels = example + return -len(labels) + + +def pad_collate_fn(batch): + batch.sort(key=batch_sort_key) + # Don't use a list comprehension here so we can better understand + sequences_features = [] + sequences_vectors = [] + sequences_labels = [] + lengths = [] + for example in batch: + features, labels = example + feats, vector = zip(*features) + assert len(labels) == len(feats) + assert len(labels) == len(vector) + sequences_features.append(torch.LongTensor(feats)) + # sequences_vectors.append(torch.FloatTensor(np.array(vector) / vecmax)) + sequences_vectors.append(torch.FloatTensor(vector)) + sequences_labels.append(torch.LongTensor(labels)) + lengths.append(len(labels)) + lengths = torch.LongTensor(lengths) + padded_sequences_features = pad_sequence( + sequences_features, batch_first=True, padding_value=0 + ) + pack_padded_sequences_features = pack_padded_sequence( + padded_sequences_features, lengths.cpu(), batch_first=True + ) + padded_sequences_vectors = pad_sequence( + sequences_vectors, batch_first=True, padding_value=0 + ) + pack_padded_sequences_vectors = pack_padded_sequence( + padded_sequences_vectors, lengths.cpu(), batch_first=True + ) + padded_sequences_labels = pad_sequence( + sequences_labels, batch_first=True, padding_value=-100 + ) + mask = torch.ne(padded_sequences_labels, -100) + return ( + (pack_padded_sequences_features, pack_padded_sequences_vectors, mask), + padded_sequences_labels, + ) + + +def pad_collate_fn_predict(batch): + # Require data to be externally sorted by length for prediction + # (otherwise we have no idea which output corresponds to which input! WTF Poutyne!) + # Don't use a list comprehension here so we can better understand + sequences_features = [] + sequences_vectors = [] + sequences_labels = [] + lengths = [] + for example in batch: + features, labels = example + feats, vector = zip(*features) + assert len(labels) == len(feats) + assert len(labels) == len(vector) + sequences_features.append(torch.LongTensor(feats)) + # sequences_vectors.append(torch.FloatTensor(np.array(vector) / vecmax)) + sequences_vectors.append(torch.FloatTensor(vector)) + sequences_labels.append(torch.LongTensor(labels)) + lengths.append(len(labels)) + max_len = max(lengths) + len_lens = len(lengths) + lengths = torch.LongTensor(lengths).cpu() + # ought to be built into torch... + # https://stackoverflow.com/questions/53403306/how-to-batch-convert-sentence-lengths-to-masks-in-pytorch + mask = torch.arange(max_len).expand(len_lens, max_len) < lengths.unsqueeze(1) + padded_sequences_features = pad_sequence( + sequences_features, batch_first=True, padding_value=0 + ) + pack_padded_sequences_features = pack_padded_sequence( + padded_sequences_features, lengths.cpu(), batch_first=True + ) + padded_sequences_vectors = pad_sequence( + sequences_vectors, batch_first=True, padding_value=0 + ) + pack_padded_sequences_vectors = pack_padded_sequence( + padded_sequences_vectors, lengths.cpu(), batch_first=True + ) + return (pack_padded_sequences_features, pack_padded_sequences_vectors, mask) + + +class RNN(nn.Module): + def __init__( + self, + featdims, + feat2id, + veclen, + id2label, + label_weights=None, + hidden_size=64, + num_layer=1, + bidirectional=True, + **_kwargs, + ): + super().__init__() + self.hidden_state = None + self.embedding_layers = {} + self.featdims = featdims + for name in featdims: + self.embedding_layers[name] = nn.Embedding( + len(feat2id[name]), + featdims[name], + padding_idx=0, + ) + self.add_module(f"embedding_{name}", self.embedding_layers[name]) + dimension = sum(featdims.values()) + veclen + self.lstm_layer = nn.LSTM( + input_size=dimension, + hidden_size=hidden_size, + num_layers=num_layer, + bidirectional=bidirectional, + batch_first=True, + ) + self.output_layer = nn.Linear( + hidden_size * (2 if bidirectional else 1), len(id2label) + ) + + def forward( + self, + features: PackedSequence | torch.Tensor, + vectors: PackedSequence | torch.Tensor, + _mask: torch.Tensor, + ): + inputs: PackedSequence | torch.Tensor + # https://discuss.pytorch.org/t/how-to-use-pack-sequence-if-we-are-going-to-use-word-embedding-and-bilstm/28184 + if isinstance(features, PackedSequence): + stack = [ + self.embedding_layers[name](features.data[:, idx]) + for idx, name in enumerate(self.featdims) + ] + stack.append(vectors.data) + inputs = torch.hstack(stack) + inputs = torch.nn.utils.rnn.PackedSequence(inputs, features.batch_sizes) + else: + assert len(features.shape) == 2 # FIXME: support batches + stack = [ + self.embedding_layers[name](features[:, idx]) + for idx, name in enumerate(self.featdims) + ] + stack.append(vectors) + inputs = torch.hstack(stack) + lstm_out, self.hidden_state = self.lstm_layer(inputs) + if isinstance(lstm_out, PackedSequence): + lstm_out, _ = pad_packed_sequence(lstm_out, batch_first=True) + # Make it a "batch" on output + if len(lstm_out.shape) == 2: + lstm_out = lstm_out.unsqueeze(0) + tag_space = self.output_layer(lstm_out) + tag_space = tag_space.transpose( + -1, 1 + ) # We need to transpose since it's a sequence (but why?!) + return tag_space + + +def bio_transitions(id2label): + """Constrain transitions (this is not actually useful)""" + labels_with_boundaries = list(id2label) + labels_with_boundaries.extend(("START", "END")) + + allowed = [] + for from_label_index, from_label in enumerate(labels_with_boundaries): + if from_label in ("START", "END"): + from_tag = from_label + from_entity = "" + else: + from_tag = from_label[0] + from_entity = from_label[1:] + for to_label_index, to_label in enumerate(labels_with_boundaries): + if to_label in ("START", "END"): + to_tag = to_label + to_entity = "" + else: + to_tag = to_label[0] + to_entity = to_label[1:] + if from_tag == "START": + if to_tag in ("O", "B"): + allowed.append((from_label_index, to_label_index)) + elif to_tag == "END": + if from_tag in ("O", "B", "I"): + allowed.append((from_label_index, to_label_index)) + elif any( + ( + # Can always transition to O or B-x + to_tag in ("O", "B"), + # Can only transition to I-x from B-x or I-x or from I to I + to_tag == "I" + and from_tag in ("B", "I") + and from_entity == to_entity, + # Can transition to I from B-x + to_tag == "I" and from_tag == "B" and to_entity == "", + ) + ): + allowed.append((from_label_index, to_label_index)) + return allowed + + +class RNNCRF(RNN): + def __init__( + self, + featdims, + feat2id, + veclen, + id2label, + label_weights=None, + hidden_size=64, + num_layer=1, + bidirectional=True, + constrain=False, + **_kwargs, + ): + super().__init__( + featdims, + feat2id, + veclen, + id2label, + label_weights, + hidden_size, + num_layer, + bidirectional, + ) + self.crf_layer = ConditionalRandomFieldWeightTrans( + num_tags=len(id2label), + label_weights=label_weights, + constraints=bio_transitions(id2label) if constrain else None, + ) + + def forward( + self, + features: PackedSequence | torch.Tensor, + vectors: PackedSequence | torch.Tensor, + mask: torch.Tensor, + ): + tag_space = super().forward(features, vectors, mask) + logits = tag_space.transpose(-1, 1) # We need to transpose it back because wtf + # Make it a "batch" or CRF gets quite irate + if len(logits.shape) == 2: + logits = logits.unsqueeze(0) + if len(mask.shape) == 1: + mask = mask.unsqueeze(0) + paths = self.crf_layer.viterbi_tags(logits, mask) + labels, _scores = zip(*paths) + return logits, labels, mask class Segmenteur: @@ -266,3 +765,40 @@ def __call__(self, words: Iterable[dict[str, Any]]) -> Iterable[dict[str, Any]]: for label, word in zip(pred, c2): word["segment"] = label yield word + + +class RNNSegmenteur(Segmenteur): + model: RNN + + def __init__(self, model: PathLike = DEFAULT_RNN_MODEL, device="cpu"): + model = Path(model) + self.device = torch.device(device) + with open(model.with_suffix(".json"), "rt") as infh: + self.config = json.load(infh) + if "crf" in model.name: + self.model = RNNCRF(**self.config) + else: + self.model = RNN(**self.config) + self.model.load_state_dict(torch.load(model)) + self.model.eval() + self.model.to(device) + + def __call__(self, words: Iterable[dict[str, Any]]) -> Iterable[dict[str, Any]]: + for p in split_pages(words): + page, _labels = make_rnn_features(p) + features = make_page_feats(self.config["feat2id"], page) + feats, vector = zip(*features) + batch = ( + torch.LongTensor(feats, device=self.device), + torch.FloatTensor(vector, device=self.device), + torch.ones(len(feats), device=self.device), + ) + out = self.model(*batch) + if isinstance(out, tuple): # is a crf + _, (labelgen,), _ = out + else: + # Encore WTF + labelgen = out.transpose(1, -1).argmax(-1)[0].cpu() + for label_id, word in zip(labelgen, p): + word["segment"] = self.config["id2label"][label_id] + yield word diff --git a/data/RGL-1144-2010-Parc-canin.csv b/data/RGL-1144-2010-Parc-canin.csv index 958e66d..6af98fd 100644 --- a/data/RGL-1144-2010-Parc-canin.csv +++ b/data/RGL-1144-2010-Parc-canin.csv @@ -385,7 +385,6 @@ O,I-Alinea,conformément,1,612,1008,Verdana,#000,368,433,889,898,889,,, O,I-Alinea,à,1,612,1008,Verdana,#000,437,442,889,898,889,,, O,I-Alinea,la,1,612,1008,Verdana,#000,445,453,889,898,889,,, O,I-Alinea,Loi.,1,612,1008,Verdana,#000,456,472,889,898,889,,, -O,O,•,2,611,998,ArialMT,#000,408,429,-6,66,1002,133,Div, O,B-Alinea,RÉSOLUTION,2,611,998,ArialMT,#333,207,279,141,151,1149,134,Div, O,I-Alinea,NO.,2,611,998,ArialMT,#333,284,304,141,151,1149,134,Div, O,I-Alinea,2010-384,2,611,998,ArialMT,#333,308,355,141,151,1149,134,Div, diff --git a/data/construction_nostruct.csv b/data/construction_nostruct.csv deleted file mode 100644 index 4494608..0000000 --- a/data/construction_nostruct.csv +++ /dev/null @@ -1,340 +0,0 @@ -sequence,segment,text,page,page_width,page_height,fontname,rgb,x0,x1,top,bottom,doctop,mcid,mctag,tagstack -B-Titre,B-Tete,Règlement,1,595,842,CIDFont+F1,#777,52,83,71,79,71,,, -I-Titre,I-Tete,de,1,595,842,CIDFont+F1,#777,85,92,71,79,71,,, -I-Titre,I-Tete,construction,1,595,842,CIDFont+F1,#777,94,128,71,79,71,,, -I-Titre,I-Tete,1314-2021-C,1,595,842,CIDFont+F1,#777,130,168,71,79,71,,, -O,I-Tete,Entrée,1,595,842,CIDFont+F1,#777,492,511,71,79,71,,, -O,I-Tete,en,1,595,842,CIDFont+F1,#777,512,520,71,79,71,,, -O,I-Tete,vigueur,1,595,842,CIDFont+F1,#777,521,542,71,79,71,,, -O,B-Titre,Ville,1,595,842,CIDFont+F4,#000,233,261,337,351,337,,, -O,I-Titre,de,1,595,842,CIDFont+F4,#000,264,280,337,351,337,,, -O,I-Titre,Sainte-Adèle,1,595,842,CIDFont+F4,#000,283,362,337,351,337,,, -B-Titre,B-Titre,Règlement,1,595,842,CIDFont+F5,#000,197,354,509,544,509,,, -I-Titre,I-Titre,de,1,595,842,CIDFont+F5,#000,362,398,509,544,509,,, -I-Titre,I-Titre,construction,1,595,842,CIDFont+F5,#000,206,389,556,591,556,,, -I-Titre,I-Titre,numéro,1,595,842,CIDFont+F5,#000,196,272,607,630,607,,, -B-Titre,I-Titre,1314-2021-C,1,595,842,CIDFont+F5,#000,278,399,607,630,607,,, -O,B-Titre,Codification,1,595,842,CIDFont+F5,#000,154,222,665,678,665,,, -O,I-Titre,administrative,1,595,842,CIDFont+F5,#000,225,307,665,678,665,,, -O,I-Titre,:,1,595,842,CIDFont+F5,#000,310,314,665,678,665,,, -O,I-Titre,à,1,595,842,CIDFont+F5,#000,320,327,665,678,665,,, -O,I-Titre,jour,1,595,842,CIDFont+F5,#000,330,353,665,678,665,,, -O,I-Titre,–,1,595,842,CIDFont+F5,#000,356,363,665,678,665,,, -O,I-Titre,21,1,595,842,CIDFont+F5,#000,366,379,665,678,665,,, -O,I-Titre,mars,1,595,842,CIDFont+F5,#000,383,411,665,678,665,,, -O,I-Titre,2023,1,595,842,CIDFont+F5,#000,414,441,665,678,665,,, -O,B-Pied,1,1,595,842,CIDFont+F1,#777,540,543,764,772,764,,, -B-Titre,B-Tete,Règlement,2,595,842,CIDFont+F1,#777,52,83,71,79,913,,, -I-Titre,I-Tete,de,2,595,842,CIDFont+F1,#777,85,92,71,79,913,,, -I-Titre,I-Tete,construction,2,595,842,CIDFont+F1,#777,94,128,71,79,913,,, -I-Titre,I-Tete,1314-2021-C,2,595,842,CIDFont+F1,#777,130,168,71,79,913,,, -O,I-Tete,Table,2,595,842,CIDFont+F1,#777,408,424,71,79,913,,, -O,I-Tete,des,2,595,842,CIDFont+F1,#777,426,436,71,79,913,,, -O,I-Tete,"matières,",2,595,842,CIDFont+F1,#777,438,464,71,79,913,,, -O,I-Tete,des,2,595,842,CIDFont+F1,#777,466,476,71,79,913,,, -O,I-Tete,figures,2,595,842,CIDFont+F1,#777,478,497,71,79,913,,, -O,I-Tete,et,2,595,842,CIDFont+F1,#777,499,504,71,79,913,,, -O,I-Tete,des,2,595,842,CIDFont+F1,#777,506,516,71,79,913,,, -O,I-Tete,tableaux,2,595,842,CIDFont+F1,#777,518,542,71,79,913,,, -O,B-Alinea,PROVINCE,2,595,842,CIDFont+F6,#555,52,105,107,118,949,,, -O,I-Alinea,DE,2,595,842,CIDFont+F6,#555,107,121,107,118,949,,, -O,I-Alinea,QUEBEC,2,595,842,CIDFont+F6,#555,123,166,107,118,949,,, -O,I-Alinea,REGLEMENT,2,595,842,CIDFont+F6,#555,363,426,107,118,949,,, -O,I-Alinea,NUMERO,2,595,842,CIDFont+F6,#555,428,473,107,118,949,,, -B-Numero,I-Alinea,1314-2021-C,2,595,842,CIDFont+F6,#555,475,533,107,118,949,,, -O,B-Alinea,VILLE,2,595,842,CIDFont+F6,#555,52,80,126,137,968,,, -O,I-Alinea,DE,2,595,842,CIDFont+F6,#555,82,96,126,137,968,,, -O,I-Alinea,Sainte-Adèle,2,595,842,CIDFont+F6,#555,98,154,126,137,968,,, -B-Titre,I-Alinea,REGLEMENT,2,595,842,CIDFont+F6,#555,363,426,126,137,968,,, -I-Titre,I-Alinea,DE,2,595,842,CIDFont+F6,#555,428,442,126,137,968,,, -I-Titre,I-Alinea,CONSTRUCTION,2,595,842,CIDFont+F6,#555,444,525,126,137,968,,, -O,I-Alinea,Avis,2,595,842,CIDFont+F6,#555,52,71,157,167,999,,, -O,I-Alinea,de,2,595,842,CIDFont+F6,#555,73,85,157,167,999,,, -O,I-Alinea,motion,2,595,842,CIDFont+F6,#555,87,116,157,167,999,,, -O,I-Alinea,:,2,595,842,CIDFont+F6,#555,118,121,157,167,999,,, -O,I-Alinea,17,2,595,842,CIDFont+F6,#555,191,202,157,167,999,,, -O,I-Alinea,mai,2,595,842,CIDFont+F6,#555,204,220,157,167,999,,, -O,I-Alinea,2021,2,595,842,CIDFont+F6,#555,222,245,157,167,999,,, -O,B-Alinea,Adoption,2,595,842,CIDFont+F6,#555,52,92,175,186,1017,,, -O,I-Alinea,:,2,595,842,CIDFont+F6,#555,93,96,175,186,1017,,, -O,I-Alinea,19,2,595,842,CIDFont+F6,#555,191,202,175,186,1017,,, -O,I-Alinea,juillet,2,595,842,CIDFont+F6,#555,204,225,175,186,1017,,, -O,I-Alinea,2021,2,595,842,CIDFont+F6,#555,227,250,175,186,1017,,, -O,B-Alinea,Entrée,2,595,842,CIDFont+F6,#555,52,82,194,204,1036,,, -O,I-Alinea,en,2,595,842,CIDFont+F6,#555,84,95,194,204,1036,,, -O,I-Alinea,vigueur,2,595,842,CIDFont+F6,#555,97,129,194,204,1036,,, -O,I-Alinea,:,2,595,842,CIDFont+F6,#555,131,134,194,204,1036,,, -O,I-Alinea,23,2,595,842,CIDFont+F6,#555,191,202,194,204,1036,,, -O,I-Alinea,septembre,2,595,842,CIDFont+F6,#555,204,251,194,204,1036,,, -O,I-Alinea,2021,2,595,842,CIDFont+F6,#555,253,275,194,204,1036,,, -O,B-Alinea,Numéro,2,595,842,CIDFont+F7,#444,173,214,373,384,1215,,, -O,I-Alinea,du,2,595,842,CIDFont+F7,#444,217,230,373,384,1215,,, -O,I-Alinea,règlement,2,595,842,CIDFont+F7,#444,233,284,373,384,1215,,, -O,I-Alinea,Date,2,595,842,CIDFont+F7,#444,381,404,373,384,1215,,, -O,I-Alinea,d’entrée,2,595,842,CIDFont+F7,#444,407,449,373,384,1215,,, -O,I-Alinea,en,2,595,842,CIDFont+F7,#444,452,464,373,384,1215,,, -O,I-Alinea,vigueur,2,595,842,CIDFont+F7,#444,467,506,373,384,1215,,, -B-Numero,I-Alinea,1314-2021-C-1,2,595,842,CIDFont+F6,#444,192,264,412,423,1254,,, -O,I-Alinea,17,2,595,842,CIDFont+F6,#444,411,422,412,423,1254,,, -O,I-Alinea,mars,2,595,842,CIDFont+F6,#444,425,449,412,423,1254,,, -O,I-Alinea,2023,2,595,842,CIDFont+F6,#444,452,476,412,423,1254,,, -O,B-Pied,2,2,595,842,CIDFont+F1,#777,540,543,764,772,1606,,, -B-Titre,B-Tete,Règlement,3,595,842,CIDFont+F1,#777,52,83,71,79,1755,,, -I-Titre,I-Tete,de,3,595,842,CIDFont+F1,#777,85,92,71,79,1755,,, -I-Titre,I-Tete,construction,3,595,842,CIDFont+F1,#777,94,128,71,79,1755,,, -I-Titre,I-Tete,1314-2021-C,3,595,842,CIDFont+F1,#777,130,168,71,79,1755,,, -O,I-Tete,Table,3,595,842,CIDFont+F1,#777,408,424,71,79,1755,,, -O,I-Tete,des,3,595,842,CIDFont+F1,#777,426,436,71,79,1755,,, -O,I-Tete,"matières,",3,595,842,CIDFont+F1,#777,438,464,71,79,1755,,, -O,I-Tete,des,3,595,842,CIDFont+F1,#777,466,476,71,79,1755,,, -O,I-Tete,figures,3,595,842,CIDFont+F1,#777,478,497,71,79,1755,,, -O,I-Tete,et,3,595,842,CIDFont+F1,#777,499,504,71,79,1755,,, -O,I-Tete,des,3,595,842,CIDFont+F1,#777,506,516,71,79,1755,,, -O,I-Tete,tableaux,3,595,842,CIDFont+F1,#777,518,542,71,79,1755,,, -O,B-TOC,Table,3,595,842,CIDFont+F2,#555,52,109,111,136,1795,,, -O,I-TOC,des,3,595,842,CIDFont+F2,#555,114,152,111,136,1795,,, -O,I-TOC,matières,3,595,842,CIDFont+F2,#555,157,249,111,136,1795,,, -O,I-TOC,CHAPITRE,3,595,842,CIDFont+F8,#222,52,101,150,161,1833,,, -O,I-TOC,1,3,595,842,CIDFont+F8,#222,104,109,150,161,1833,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,194,150,161,1833,,, -O,I-TOC,"DÉCLARATOIRES,",3,595,842,CIDFont+F8,#222,196,281,150,161,1833,,, -O,I-TOC,INTERPRÉTATIVES,3,595,842,CIDFont+F8,#222,284,373,150,161,1833,,, -O,I-TOC,ET,3,595,842,CIDFont+F8,#222,375,388,150,161,1833,,, -O,I-TOC,ADMINISTRATIVES,3,595,842,CIDFont+F8,#222,390,478,150,161,1833,,, -O,I-TOC,......................,3,595,842,CIDFont+F8,#222,478,537,150,161,1833,,, -O,I-TOC,7,3,595,842,CIDFont+F8,#222,537,543,150,161,1833,,, -O,I-TOC,SECTION,3,595,842,CIDFont+F8,#222,52,88,169,178,1852,,, -O,I-TOC,1,3,595,842,CIDFont+F8,#222,90,94,169,178,1852,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,182,169,178,1852,,, -O,I-TOC,DÉCLARATOIRES................................................................................................................................,3,595,842,CIDFont+F8,#222,184,537,169,178,1852,,, -O,I-TOC,8,3,595,842,CIDFont+F8,#222,538,543,169,178,1852,,, -O,I-TOC,1.,3,595,842,CIDFont+F1,#222,52,59,186,195,1869,,, -O,I-TOC,Titre,3,595,842,CIDFont+F1,#222,80,96,186,195,1869,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,98,107,186,195,1869,,, -O,I-TOC,règlement,3,595,842,CIDFont+F1,#222,109,145,186,195,1869,,, -O,I-TOC,................................................................................................................................................................................,3,595,842,CIDFont+F1,#222,146,537,186,195,1869,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,186,195,1869,,, -O,I-TOC,2.,3,595,842,CIDFont+F1,#222,52,59,202,212,1886,,, -O,I-TOC,Abrogation,3,595,842,CIDFont+F1,#222,80,119,202,212,1886,,, -O,I-TOC,............................................................................................................................................................................................,3,595,842,CIDFont+F1,#222,120,537,202,212,1886,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,202,212,1886,,, -O,I-TOC,3.,3,595,842,CIDFont+F1,#222,52,59,219,229,1903,,, -O,I-TOC,Portée,3,595,842,CIDFont+F1,#222,80,103,219,229,1903,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,106,115,219,229,1903,,, -O,I-TOC,règlement,3,595,842,CIDFont+F1,#222,117,152,219,229,1903,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,155,161,219,229,1903,,, -O,I-TOC,territoire,3,595,842,CIDFont+F1,#222,163,193,219,229,1903,,, -O,I-TOC,assujetti,3,595,842,CIDFont+F1,#222,195,224,219,229,1903,,, -O,I-TOC,............................................................................................................................................,3,595,842,CIDFont+F1,#222,226,537,219,229,1903,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,219,229,1903,,, -O,I-TOC,4.,3,595,842,CIDFont+F1,#222,52,59,236,246,1920,,, -O,I-TOC,Domaine,3,595,842,CIDFont+F1,#222,80,112,236,246,1920,,, -O,I-TOC,d'application,3,595,842,CIDFont+F1,#222,114,158,236,246,1920,,, -O,I-TOC,..........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,160,537,236,246,1920,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,236,246,1920,,, -O,I-TOC,5.,3,595,842,CIDFont+F1,#222,52,59,253,263,1937,,, -O,I-TOC,Travaux,3,595,842,CIDFont+F1,#222,80,109,253,263,1937,,, -O,I-TOC,non,3,595,842,CIDFont+F1,#222,111,124,253,263,1937,,, -O,I-TOC,affectés,3,595,842,CIDFont+F1,#222,127,155,253,263,1937,,, -O,I-TOC,............................................................................................................................................................................,3,595,842,CIDFont+F1,#222,155,537,253,263,1937,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,253,263,1937,,, -O,I-TOC,6.,3,595,842,CIDFont+F1,#222,52,59,270,280,1954,,, -O,I-TOC,Dispositions,3,595,842,CIDFont+F1,#222,80,123,270,280,1954,,, -O,I-TOC,des,3,595,842,CIDFont+F1,#222,125,138,270,280,1954,,, -O,I-TOC,lois,3,595,842,CIDFont+F1,#222,140,152,270,280,1954,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,154,161,270,280,1954,,, -O,I-TOC,d’autres,3,595,842,CIDFont+F1,#222,163,192,270,280,1954,,, -O,I-TOC,règlements,3,595,842,CIDFont+F1,#222,194,234,270,280,1954,,, -O,I-TOC,........................................................................................................................................,3,595,842,CIDFont+F1,#222,235,537,270,280,1954,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,270,280,1954,,, -O,I-TOC,7.,3,595,842,CIDFont+F1,#222,52,59,287,297,1971,,, -O,I-TOC,Documents,3,595,842,CIDFont+F1,#222,80,120,287,297,1971,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,123,131,287,297,1971,,, -O,I-TOC,renvoi,3,595,842,CIDFont+F1,#222,134,155,287,297,1971,,, -O,I-TOC,...........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,158,537,287,297,1971,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,287,297,1971,,, -O,I-TOC,8.,3,595,842,CIDFont+F1,#222,52,59,304,314,1988,,, -O,I-TOC,Entrée,3,595,842,CIDFont+F1,#222,80,103,304,314,1988,,, -O,I-TOC,en,3,595,842,CIDFont+F1,#222,106,115,304,314,1988,,, -O,I-TOC,vigueur,3,595,842,CIDFont+F1,#222,117,143,304,314,1988,,, -O,I-TOC,.................................................................................................................................................................................,3,595,842,CIDFont+F1,#222,144,537,304,314,1988,,, -O,I-TOC,8,3,595,842,CIDFont+F1,#222,538,543,304,314,1988,,, -O,I-TOC,SECTION,3,595,842,CIDFont+F8,#222,52,88,321,331,2005,,, -O,I-TOC,2,3,595,842,CIDFont+F8,#222,90,94,321,331,2005,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,182,321,331,2005,,, -O,I-TOC,INTERPRÉTATIVES,3,595,842,CIDFont+F8,#222,184,258,321,331,2005,,, -O,I-TOC,.............................................................................................................................,3,595,842,CIDFont+F8,#222,260,537,321,331,2005,,, -O,I-TOC,9,3,595,842,CIDFont+F8,#222,538,543,321,331,2005,,, -O,I-TOC,9.,3,595,842,CIDFont+F1,#222,52,59,338,348,2022,,, -O,I-TOC,Ville,3,595,842,CIDFont+F1,#222,80,95,338,348,2022,,, -O,I-TOC,.......................................................................................................................................................................................................,3,595,842,CIDFont+F1,#222,95,537,338,348,2022,,, -O,I-TOC,9,3,595,842,CIDFont+F1,#222,538,543,338,348,2022,,, -O,I-TOC,10.,3,595,842,CIDFont+F1,#222,52,63,355,364,2039,,, -O,I-TOC,Structure,3,595,842,CIDFont+F1,#222,80,112,355,364,2039,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,115,123,355,364,2039,,, -O,I-TOC,règlement,3,595,842,CIDFont+F1,#222,126,161,355,364,2039,,, -O,I-TOC,.........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,162,537,355,364,2039,,, -O,I-TOC,9,3,595,842,CIDFont+F1,#222,538,543,355,364,2039,,, -O,I-TOC,11.,3,595,842,CIDFont+F1,#222,52,63,372,381,2056,,, -O,I-TOC,Interprétation,3,595,842,CIDFont+F1,#222,80,127,372,381,2056,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,129,138,372,381,2056,,, -O,I-TOC,texte,3,595,842,CIDFont+F1,#222,140,158,372,381,2056,,, -O,I-TOC,..........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,160,537,372,381,2056,,, -O,I-TOC,9,3,595,842,CIDFont+F1,#222,538,543,372,381,2056,,, -O,I-TOC,12.,3,595,842,CIDFont+F1,#222,52,63,389,398,2073,,, -O,I-TOC,Interprétation,3,595,842,CIDFont+F1,#222,80,127,389,398,2073,,, -O,I-TOC,en,3,595,842,CIDFont+F1,#222,129,138,389,398,2073,,, -O,I-TOC,cas,3,595,842,CIDFont+F1,#222,140,153,389,398,2073,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,155,164,389,398,2073,,, -O,I-TOC,contradiction,3,595,842,CIDFont+F1,#222,166,211,389,398,2073,,, -O,I-TOC,................................................................................................................................................,3,595,842,CIDFont+F1,#222,213,533,389,398,2073,,, -O,I-TOC,10,3,595,842,CIDFont+F1,#222,534,543,389,398,2073,,, -O,I-TOC,13.,3,595,842,CIDFont+F1,#222,52,63,406,415,2089,,, -O,I-TOC,Terminologie,3,595,842,CIDFont+F1,#222,80,126,406,415,2089,,, -O,I-TOC,.......................................................................................................................................................................................,3,595,842,CIDFont+F1,#222,126,533,406,415,2089,,, -O,I-TOC,10,3,595,842,CIDFont+F1,#222,534,543,406,415,2089,,, -O,I-TOC,SECTION,3,595,842,CIDFont+F8,#222,52,88,422,432,2106,,, -O,I-TOC,3,3,595,842,CIDFont+F8,#222,90,94,422,432,2106,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,182,422,432,2106,,, -O,I-TOC,ADMINISTRATIVES,3,595,842,CIDFont+F8,#222,184,257,422,432,2106,,, -O,I-TOC,...........................................................................................................................,3,595,842,CIDFont+F8,#222,260,533,422,432,2106,,, -O,I-TOC,11,3,595,842,CIDFont+F8,#222,534,543,422,432,2106,,, -O,I-TOC,14.,3,595,842,CIDFont+F1,#222,52,63,439,449,2123,,, -O,I-TOC,Administration,3,595,842,CIDFont+F1,#222,80,130,439,449,2123,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,133,142,439,449,2123,,, -O,I-TOC,règlement,3,595,842,CIDFont+F1,#222,144,179,439,449,2123,,, -O,I-TOC,...............................................................................................................................................................,3,595,842,CIDFont+F1,#222,180,533,439,449,2123,,, -O,I-TOC,11,3,595,842,CIDFont+F1,#222,534,543,439,449,2123,,, -O,I-TOC,15.,3,595,842,CIDFont+F1,#222,52,63,456,466,2140,,, -O,I-TOC,Autorité,3,595,842,CIDFont+F1,#222,80,107,456,466,2140,,, -O,I-TOC,compétente,3,595,842,CIDFont+F1,#222,110,151,456,466,2140,,, -O,I-TOC,...........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,153,533,456,466,2140,,, -O,I-TOC,11,3,595,842,CIDFont+F1,#222,534,543,456,466,2140,,, -O,I-TOC,16.,3,595,842,CIDFont+F1,#222,52,63,473,483,2157,,, -O,I-TOC,Devoirs,3,595,842,CIDFont+F1,#222,80,107,473,483,2157,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,109,116,473,483,2157,,, -O,I-TOC,pouvoirs,3,595,842,CIDFont+F1,#222,118,148,473,483,2157,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,150,159,473,483,2157,,, -O,I-TOC,l’autorité,3,595,842,CIDFont+F1,#222,162,192,473,483,2157,,, -O,I-TOC,compétente,3,595,842,CIDFont+F1,#222,194,236,473,483,2157,,, -O,I-TOC,.....................................................................................................................................,3,595,842,CIDFont+F1,#222,238,533,473,483,2157,,, -O,I-TOC,11,3,595,842,CIDFont+F1,#222,534,543,473,483,2157,,, -O,I-TOC,17.,3,595,842,CIDFont+F1,#222,52,63,490,500,2174,,, -O,I-TOC,Devoirs,3,595,842,CIDFont+F1,#222,80,107,490,500,2174,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,109,118,490,500,2174,,, -O,I-TOC,"propriétaire,",3,595,842,CIDFont+F1,#222,120,163,490,500,2174,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,165,174,490,500,2174,,, -O,I-TOC,"l’occupant,",3,595,842,CIDFont+F1,#222,176,214,490,500,2174,,, -O,I-TOC,du,3,595,842,CIDFont+F1,#222,217,226,490,500,2174,,, -O,I-TOC,requérant,3,595,842,CIDFont+F1,#222,228,262,490,500,2174,,, -O,I-TOC,ou,3,595,842,CIDFont+F1,#222,264,273,490,500,2174,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,275,284,490,500,2174,,, -O,I-TOC,l’exécutant,3,595,842,CIDFont+F1,#222,286,324,490,500,2174,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,327,335,490,500,2174,,, -O,I-TOC,travaux............................................................................,3,595,842,CIDFont+F1,#222,338,533,490,500,2174,,, -O,I-TOC,11,3,595,842,CIDFont+F1,#222,534,543,490,500,2174,,, -O,I-TOC,18.,3,595,842,CIDFont+F1,#222,52,63,507,517,2191,,, -O,I-TOC,Infractions,3,595,842,CIDFont+F1,#222,80,117,507,517,2191,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,119,126,507,517,2191,,, -O,I-TOC,pénalités,3,595,842,CIDFont+F1,#222,128,160,507,517,2191,,, -O,I-TOC,.......................................................................................................................................................................,3,595,842,CIDFont+F1,#222,162,533,507,517,2191,,, -O,I-TOC,11,3,595,842,CIDFont+F1,#222,534,543,507,517,2191,,, -O,I-TOC,CHAPITRE,3,595,842,CIDFont+F8,#222,52,101,531,543,2215,,, -O,I-TOC,2,3,595,842,CIDFont+F8,#222,104,109,531,543,2215,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,194,531,543,2215,,, -O,I-TOC,APPLICABLES,3,595,842,CIDFont+F8,#222,196,264,531,543,2215,,, -O,I-TOC,AUX,3,595,842,CIDFont+F8,#222,266,287,531,543,2215,,, -O,I-TOC,NORMES,3,595,842,CIDFont+F8,#222,289,331,531,543,2215,,, -O,I-TOC,DE,3,595,842,CIDFont+F8,#222,334,347,531,543,2215,,, -O,I-TOC,"CONSTRUCTION,",3,595,842,CIDFont+F8,#222,350,430,531,543,2215,,, -O,I-TOC,DE,3,595,842,CIDFont+F8,#222,432,446,531,543,2215,,, -O,I-TOC,"RÉSISTANCE,",3,595,842,CIDFont+F8,#222,448,513,531,543,2215,,, -O,I-TOC,DE,3,595,842,CIDFont+F8,#222,515,529,531,543,2215,,, -O,I-TOC,SALUBRITÉ,3,595,842,CIDFont+F8,#222,125,180,546,557,2229,,, -O,I-TOC,ET,3,595,842,CIDFont+F8,#222,183,195,546,557,2229,,, -O,I-TOC,DE,3,595,842,CIDFont+F8,#222,198,211,546,557,2229,,, -O,I-TOC,SÉCURITÉ,3,595,842,CIDFont+F8,#222,214,262,546,557,2229,,, -O,I-TOC,....................................................................................................,3,595,842,CIDFont+F8,#222,263,532,546,557,2229,,, -O,I-TOC,12,3,595,842,CIDFont+F8,#222,532,543,546,557,2229,,, -O,I-TOC,SECTION,3,595,842,CIDFont+F8,#222,52,88,565,574,2248,,, -O,I-TOC,1,3,595,842,CIDFont+F8,#222,90,94,565,574,2248,,, -O,I-TOC,DISPOSITIONS,3,595,842,CIDFont+F8,#222,125,182,565,574,2248,,, -O,I-TOC,GÉNÉRALES,3,595,842,CIDFont+F8,#222,184,234,565,574,2248,,, -O,I-TOC,......................................................................................................................................,3,595,842,CIDFont+F8,#222,235,533,565,574,2248,,, -O,I-TOC,13,3,595,842,CIDFont+F8,#222,534,543,565,574,2248,,, -O,I-TOC,19.,3,595,842,CIDFont+F1,#222,52,63,582,591,2265,,, -O,I-TOC,Conformité,3,595,842,CIDFont+F1,#222,80,119,582,591,2265,,, -O,I-TOC,aux,3,595,842,CIDFont+F1,#222,121,134,582,591,2265,,, -O,I-TOC,Codes,3,595,842,CIDFont+F1,#222,136,159,582,591,2265,,, -O,I-TOC,........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,160,533,582,591,2265,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,582,591,2265,,, -O,I-TOC,20.,3,595,842,CIDFont+F1,#222,52,63,598,608,2282,,, -O,I-TOC,Règlement,3,595,842,CIDFont+F1,#222,80,118,598,608,2282,,, -O,I-TOC,sur,3,595,842,CIDFont+F1,#222,121,132,598,608,2282,,, -O,I-TOC,l’évacuation,3,595,842,CIDFont+F1,#222,134,176,598,608,2282,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,178,185,598,608,2282,,, -O,I-TOC,le,3,595,842,CIDFont+F1,#222,187,194,598,608,2282,,, -O,I-TOC,traitement,3,595,842,CIDFont+F1,#222,196,231,598,608,2282,,, -O,I-TOC,des,3,595,842,CIDFont+F1,#222,234,246,598,608,2282,,, -O,I-TOC,eaux,3,595,842,CIDFont+F1,#222,249,266,598,608,2282,,, -O,I-TOC,usées,3,595,842,CIDFont+F1,#222,268,289,598,608,2282,,, -O,I-TOC,des,3,595,842,CIDFont+F1,#222,292,304,598,608,2282,,, -O,I-TOC,résidences,3,595,842,CIDFont+F1,#222,307,345,598,608,2282,,, -O,I-TOC,isolées,3,595,842,CIDFont+F1,#222,348,372,598,608,2282,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,375,381,598,608,2282,,, -O,I-TOC,tout,3,595,842,CIDFont+F1,#222,384,397,598,608,2282,,, -O,I-TOC,autre,3,595,842,CIDFont+F1,#222,399,417,598,608,2282,,, -O,I-TOC,bâtiment,3,595,842,CIDFont+F1,#222,420,450,598,608,2282,,, -O,I-TOC,assujetti,3,595,842,CIDFont+F1,#222,453,482,598,608,2282,,, -O,I-TOC,......................,3,595,842,CIDFont+F1,#222,484,533,598,608,2282,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,598,608,2282,,, -O,I-TOC,21.,3,595,842,CIDFont+F1,#222,52,63,615,625,2299,,, -O,I-TOC,Règlement,3,595,842,CIDFont+F1,#222,80,118,615,625,2299,,, -O,I-TOC,sur,3,595,842,CIDFont+F1,#222,121,132,615,625,2299,,, -O,I-TOC,le,3,595,842,CIDFont+F1,#222,134,140,615,625,2299,,, -O,I-TOC,prélèvement,3,595,842,CIDFont+F1,#222,143,186,615,625,2299,,, -O,I-TOC,des,3,595,842,CIDFont+F1,#222,189,202,615,625,2299,,, -O,I-TOC,eaux,3,595,842,CIDFont+F1,#222,204,221,615,625,2299,,, -O,I-TOC,et,3,595,842,CIDFont+F1,#222,223,230,615,625,2299,,, -O,I-TOC,leur,3,595,842,CIDFont+F1,#222,232,245,615,625,2299,,, -O,I-TOC,protection,3,595,842,CIDFont+F1,#222,248,283,615,625,2299,,, -O,I-TOC,................................................................................................................,3,595,842,CIDFont+F1,#222,284,533,615,625,2299,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,615,625,2299,,, -O,I-TOC,22.,3,595,842,CIDFont+F1,#222,52,63,632,642,2316,,, -O,I-TOC,Responsabilité,3,595,842,CIDFont+F1,#222,80,132,632,642,2316,,, -O,I-TOC,des,3,595,842,CIDFont+F1,#222,134,147,632,642,2316,,, -O,I-TOC,professionnels,3,595,842,CIDFont+F1,#222,149,201,632,642,2316,,, -O,I-TOC,.....................................................................................................................................................,3,595,842,CIDFont+F1,#222,202,533,632,642,2316,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,632,642,2316,,, -O,I-TOC,23.,3,595,842,CIDFont+F1,#222,52,63,649,659,2333,,, -O,I-TOC,Certification,3,595,842,CIDFont+F1,#222,80,122,649,659,2333,,, -O,I-TOC,ACNOR,3,595,842,CIDFont+F1,#222,124,153,649,659,2333,,, -O,I-TOC,..........................................................................................................................................................................,3,595,842,CIDFont+F1,#222,155,533,649,659,2333,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,649,659,2333,,, -O,I-TOC,24.,3,595,842,CIDFont+F1,#222,52,63,666,676,2350,,, -O,I-TOC,Essai,3,595,842,CIDFont+F1,#222,80,99,666,676,2350,,, -O,I-TOC,de,3,595,842,CIDFont+F1,#222,102,110,666,676,2350,,, -O,I-TOC,matériaux,3,595,842,CIDFont+F1,#222,113,148,666,676,2350,,, -O,I-TOC,.............................................................................................................................................................................,3,595,842,CIDFont+F1,#222,149,533,666,676,2350,,, -O,I-TOC,13,3,595,842,CIDFont+F1,#222,534,543,666,676,2350,,, -O,I-TOC,25.,3,595,842,CIDFont+F1,#222,52,63,683,693,2367,,, -O,I-TOC,Conformité,3,595,842,CIDFont+F1,#222,80,119,683,693,2367,,, -O,I-TOC,d’un,3,595,842,CIDFont+F1,#222,121,136,683,693,2367,,, -O,I-TOC,bâtiment,3,595,842,CIDFont+F1,#222,138,169,683,693,2367,,, -O,I-TOC,déplacé,3,595,842,CIDFont+F1,#222,171,199,683,693,2367,,, -O,I-TOC,......................................................................................................................................................,3,595,842,CIDFont+F1,#222,200,533,683,693,2367,,, -O,I-TOC,14,3,595,842,CIDFont+F1,#222,534,543,683,693,2367,,, -O,I-TOC,SECTION,3,595,842,CIDFont+F8,#222,52,88,700,710,2384,,, -O,I-TOC,2,3,595,842,CIDFont+F8,#222,90,94,700,710,2384,,, -O,I-TOC,ARCHITECTURE,3,595,842,CIDFont+F8,#222,125,188,700,710,2384,,, -O,I-TOC,DES,3,595,842,CIDFont+F8,#222,190,207,700,710,2384,,, -O,I-TOC,BÂTIMENTS,3,595,842,CIDFont+F8,#222,209,256,700,710,2384,,, -O,I-TOC,............................................................................................................................,3,595,842,CIDFont+F8,#222,257,533,700,710,2384,,, -O,I-TOC,15,3,595,842,CIDFont+F8,#222,534,543,700,710,2384,,, -O,I-TOC,SOUS-SECTION,3,595,842,CIDFont+F1,#000,74,135,717,727,2401,,, -O,I-TOC,2.1,3,595,842,CIDFont+F1,#000,137,148,717,727,2401,,, -O,I-TOC,Dispositions,3,595,842,CIDFont+F1,#000,159,202,717,727,2401,,, -O,I-TOC,générales,3,595,842,CIDFont+F1,#000,204,239,717,727,2401,,, -O,I-TOC,....................................................................................................................................,3,595,842,CIDFont+F1,#000,240,533,717,727,2401,,, -O,I-TOC,15,3,595,842,CIDFont+F1,#000,534,543,717,727,2401,,, -O,B-Pied,3,3,595,842,CIDFont+F1,#777,540,543,764,772,2448,,, diff --git a/data/construction_articles.csv b/data/patches/construction_articles.csv similarity index 100% rename from data/construction_articles.csv rename to data/patches/construction_articles.csv diff --git a/data/construction_chapitres.csv b/data/patches/construction_chapitres.csv similarity index 99% rename from data/construction_chapitres.csv rename to data/patches/construction_chapitres.csv index 8b31412..1f7de16 100644 --- a/data/construction_chapitres.csv +++ b/data/patches/construction_chapitres.csv @@ -24,10 +24,10 @@ O,I-Titre,21,1,595,842,CIDFont+F5,#000,366,379,665,678,665,,, O,I-Titre,mars,1,595,842,CIDFont+F5,#000,383,411,665,678,665,,, O,I-Titre,2023,1,595,842,CIDFont+F5,#000,414,441,665,678,665,,, O,B-Pied,1,1,595,842,CIDFont+F1,#777,540,543,764,772,764,,, -O,B-Tete,Règlement,2,595,842,CIDFont+F1,#777,52,83,71,79,913,,, -O,I-Tete,de,2,595,842,CIDFont+F1,#777,85,92,71,79,913,,, -O,I-Tete,construction,2,595,842,CIDFont+F1,#777,94,128,71,79,913,,, -O,I-Tete,1314-2021-C,2,595,842,CIDFont+F1,#777,130,168,71,79,913,,, +B-Titre,B-Tete,Règlement,2,595,842,CIDFont+F1,#777,52,83,71,79,913,,, +I-Titre,I-Tete,de,2,595,842,CIDFont+F1,#777,85,92,71,79,913,,, +I-Titre,I-Tete,construction,2,595,842,CIDFont+F1,#777,94,128,71,79,913,,, +I-Titre,I-Tete,1314-2021-C,2,595,842,CIDFont+F1,#777,130,168,71,79,913,,, O,I-Tete,Table,2,595,842,CIDFont+F1,#777,408,424,71,79,913,,, O,I-Tete,des,2,595,842,CIDFont+F1,#777,426,436,71,79,913,,, O,I-Tete,"matières,",2,595,842,CIDFont+F1,#777,438,464,71,79,913,,, @@ -41,13 +41,13 @@ O,I-Alinea,DE,2,595,842,CIDFont+F6,#555,107,121,107,118,949,,, O,I-Alinea,QUEBEC,2,595,842,CIDFont+F6,#555,123,166,107,118,949,,, O,I-Alinea,REGLEMENT,2,595,842,CIDFont+F6,#555,363,426,107,118,949,,, O,I-Alinea,NUMERO,2,595,842,CIDFont+F6,#555,428,473,107,118,949,,, -O,I-Alinea,1314-2021-C,2,595,842,CIDFont+F6,#555,475,533,107,118,949,,, +B-Numero,I-Alinea,1314-2021-C,2,595,842,CIDFont+F6,#555,475,533,107,118,949,,, O,B-Alinea,VILLE,2,595,842,CIDFont+F6,#555,52,80,126,137,968,,, O,I-Alinea,DE,2,595,842,CIDFont+F6,#555,82,96,126,137,968,,, O,I-Alinea,Sainte-Adèle,2,595,842,CIDFont+F6,#555,98,154,126,137,968,,, -O,I-Alinea,REGLEMENT,2,595,842,CIDFont+F6,#555,363,426,126,137,968,,, -O,I-Alinea,DE,2,595,842,CIDFont+F6,#555,428,442,126,137,968,,, -O,I-Alinea,CONSTRUCTION,2,595,842,CIDFont+F6,#555,444,525,126,137,968,,, +B-Titre,I-Alinea,REGLEMENT,2,595,842,CIDFont+F6,#555,363,426,126,137,968,,, +I-Titre,I-Alinea,DE,2,595,842,CIDFont+F6,#555,428,442,126,137,968,,, +I-Titre,I-Alinea,CONSTRUCTION,2,595,842,CIDFont+F6,#555,444,525,126,137,968,,, O,I-Alinea,Avis,2,595,842,CIDFont+F6,#555,52,71,157,167,999,,, O,I-Alinea,de,2,595,842,CIDFont+F6,#555,73,85,157,167,999,,, O,I-Alinea,motion,2,595,842,CIDFont+F6,#555,87,116,157,167,999,,, @@ -74,15 +74,15 @@ O,I-Alinea,Date,2,595,842,CIDFont+F7,#444,381,404,373,384,1215,,, O,I-Alinea,d’entrée,2,595,842,CIDFont+F7,#444,407,449,373,384,1215,,, O,I-Alinea,en,2,595,842,CIDFont+F7,#444,452,464,373,384,1215,,, O,I-Alinea,vigueur,2,595,842,CIDFont+F7,#444,467,506,373,384,1215,,, -O,I-Alinea,1314-2021-C-1,2,595,842,CIDFont+F6,#444,192,264,412,423,1254,,, +B-Numero,I-Alinea,1314-2021-C-1,2,595,842,CIDFont+F6,#444,192,264,412,423,1254,,, O,I-Alinea,17,2,595,842,CIDFont+F6,#444,411,422,412,423,1254,,, O,I-Alinea,mars,2,595,842,CIDFont+F6,#444,425,449,412,423,1254,,, O,I-Alinea,2023,2,595,842,CIDFont+F6,#444,452,476,412,423,1254,,, O,B-Pied,2,2,595,842,CIDFont+F1,#777,540,543,764,772,1606,,, -O,B-Tete,Règlement,3,595,842,CIDFont+F1,#777,52,83,71,79,1755,,, -O,I-Tete,de,3,595,842,CIDFont+F1,#777,85,92,71,79,1755,,, -O,I-Tete,construction,3,595,842,CIDFont+F1,#777,94,128,71,79,1755,,, -O,I-Tete,1314-2021-C,3,595,842,CIDFont+F1,#777,130,168,71,79,1755,,, +B-Titre,B-Tete,Règlement,3,595,842,CIDFont+F1,#777,52,83,71,79,1755,,, +I-Titre,I-Tete,de,3,595,842,CIDFont+F1,#777,85,92,71,79,1755,,, +I-Titre,I-Tete,construction,3,595,842,CIDFont+F1,#777,94,128,71,79,1755,,, +I-Titre,I-Tete,1314-2021-C,3,595,842,CIDFont+F1,#777,130,168,71,79,1755,,, O,I-Tete,Table,3,595,842,CIDFont+F1,#777,408,424,71,79,1755,,, O,I-Tete,des,3,595,842,CIDFont+F1,#777,426,436,71,79,1755,,, O,I-Tete,"matières,",3,595,842,CIDFont+F1,#777,438,464,71,79,1755,,, diff --git a/data/construction_chapx.csv b/data/patches/construction_chapx.csv similarity index 100% rename from data/construction_chapx.csv rename to data/patches/construction_chapx.csv diff --git a/data/demolition_articles.csv b/data/patches/demolition_articles.csv similarity index 100% rename from data/demolition_articles.csv rename to data/patches/demolition_articles.csv diff --git a/data/demolition_page1.csv b/data/patches/demolition_page1.csv similarity index 100% rename from data/demolition_page1.csv rename to data/patches/demolition_page1.csv diff --git a/data/demolition_page3.csv b/data/patches/demolition_page3.csv similarity index 100% rename from data/demolition_page3.csv rename to data/patches/demolition_page3.csv diff --git a/data/permis_articles.csv b/data/patches/permis_articles.csv similarity index 100% rename from data/permis_articles.csv rename to data/patches/permis_articles.csv diff --git a/data/permis_sous_sections.csv b/data/patches/permis_sous_sections.csv similarity index 100% rename from data/permis_sous_sections.csv rename to data/patches/permis_sous_sections.csv diff --git a/data/redevances_page1.csv b/data/patches/redevances_page1.csv similarity index 100% rename from data/redevances_page1.csv rename to data/patches/redevances_page1.csv diff --git a/data/zonage_annexes.csv b/data/patches/zonage_annexes.csv similarity index 100% rename from data/zonage_annexes.csv rename to data/patches/zonage_annexes.csv diff --git a/data/zonage_chapitrex.csv b/data/patches/zonage_chapitrex.csv similarity index 100% rename from data/zonage_chapitrex.csv rename to data/patches/zonage_chapitrex.csv diff --git a/data/zonage_sections.csv b/data/patches/zonage_sections.csv similarity index 100% rename from data/zonage_sections.csv rename to data/patches/zonage_sections.csv diff --git a/data/zonage_titre.csv b/data/patches/zonage_titre.csv similarity index 100% rename from data/zonage_titre.csv rename to data/patches/zonage_titre.csv diff --git a/data/zonage_zones.csv b/data/patches/zonage_zones.csv similarity index 100% rename from data/zonage_zones.csv rename to data/patches/zonage_zones.csv diff --git a/pyproject.toml b/pyproject.toml index f6eccff..83e8f17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,8 +18,10 @@ dependencies = [ "pdfplumber", "scikit-learn", "sklearn-crfsuite", + "tokenizers", "lunr[languages]", "unidecode", + "torch", ] [project.optional-dependencies] dev = [ @@ -31,6 +33,8 @@ dev = [ "coverage", "pytest", "pytest-cov", + "poutyne", + "allennlp-light", ] [project.scripts] @@ -50,9 +54,6 @@ addopts = "--cov=alexi --cov-report html" [tool.hatch.envs.default] features = [ "dev" ] -post-install-commands = [ - "mypy --install-types --non-interactive alexi", -] [tool.hatch.envs.default.scripts] test = [ @@ -62,24 +63,20 @@ lint = [ "black --check alexi", "isort --profile black --check-only alexi test", "flake8 --color=never alexi test", - "mypy alexi", + "mypy --non-interactive --install-types alexi", ] format = [ "black alexi test", "isort alexi test", ] train = [ -"""python scripts/train_crf.py \\ - --features text+layout --labels bonly \\ - --outfile alexi/models/crf.vl.joblib.gz \\ - data/*.csv""", -"""python scripts/train_crf.py \\ - --features text+layout+structure --labels bonly \\ - --outfile alexi/models/crf.joblib.gz \\ - data/*.csv""", +"""python scripts/train_rnn.py --nepoch 45 -o alexi/models/rnn.pt \\ + data/*.csv data/patches/*.csv""", +"""python scripts/train_rnn_crf.py --nepoch 1 --freeze -i alexi/models/rnn.pt \\ + -o alexi/models/rnn_crf.pt data/*.csv data/patches/*.csv""", """python scripts/train_crf_seq.py \\ --outfile alexi/models/crfseq.joblib.gz \\ - data/*.csv""", + data/*.csv data/patches/*.csv""", ] [tool.isort] diff --git a/results/layout-x4.csv b/results/layout-x4.csv deleted file mode 100644 index ae274c9..0000000 --- a/results/layout-x4.csv +++ /dev/null @@ -1,13 +0,0 @@ -Label,Average,1,2,3,4 -ALL,0.6798042102252866,0.7032493571252574,0.6640512522938358,0.6955711297703323,0.6563451017117208 -B-Alinea,0.6857545529919935,0.7180094786729858,0.6829971181556196,0.6606606606606606,0.6813509544787077 -B-Amendement,0.1111111111111111,0.4444444444444444,0.0,0.0,0.0 -B-Article,0.8026392811943343,0.7947882736156352,0.7857142857142857,0.7961783439490446,0.8338762214983714 -B-Chapitre,0.6883771929824561,0.75,0.7368421052631579,0.6666666666666666,0.6 -B-Liste,0.871031676047349,0.8058252427184466,0.871447902571042,0.921760391198044,0.8850931677018633 -B-Pied,0.9166796133570356,0.855072463768116,0.9291338582677166,0.9219858156028369,0.9605263157894737 -B-Section,0.8340546488171648,0.9473684210526315,0.8,0.7317073170731707,0.8571428571428571 -B-SousSection,0.7011363636363636,0.6666666666666666,0.75,0.7878787878787878,0.6 -B-TOC,0.3214285714285714,0.3333333333333333,0.2857142857142857,0.4444444444444444,0.2222222222222222 -B-Tete,0.9923436088594031,0.9838709677419355,0.9921259842519685,1.0,0.9933774834437086 -B-Titre,0.5532896920523696,0.43636363636363634,0.47058823529411764,0.72,0.5862068965517241 diff --git a/results/layoutlmscores.csv b/results/layoutlmscores.csv new file mode 100644 index 0000000..f05f29c --- /dev/null +++ b/results/layoutlmscores.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.8640883638583464,0.8802267798518284,0.8903890816661342,0.8557531000633731,0.82998449385205 +B-Alinea,0.8647787966536717,0.8529839883551674,0.8575803981623277,0.861952861952862,0.88659793814433 +B-Amendement,0.692857142857143,0.8,0.8,0.6,0.5714285714285715 +B-Article,0.9597410744004184,0.9747292418772563,0.9422492401215806,0.9645390070921985,0.9574468085106383 +B-Chapitre,0.9176113360323886,0.9473684210526316,0.923076923076923,1.0,0.7999999999999999 +B-Liste,0.9488989441003463,0.9289617486338798,0.9602053915275994,0.9719626168224299,0.9344660194174756 +B-Pied,0.998062015503876,1.0,1.0,1.0,0.9922480620155039 +B-Section,1.0,1.0,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,0.26653934300993126,0.3636363636363636,0.47058823529411764,0.11428571428571427,0.1176470588235294 +B-Tete,0.9919577360522243,1.0,1.0,0.9914529914529915,0.9763779527559054 +B-Titre,0.8645256138318117,0.8148148148148148,0.8405797101449275,0.909090909090909,0.8936170212765958 diff --git a/results/only/crf-bonly.csv b/results/only/crf-bonly.csv new file mode 100644 index 0000000..72effe0 --- /dev/null +++ b/results/only/crf-bonly.csv @@ -0,0 +1,13 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9546247312927119 ,0.9540089613280481 ,0.9249314150831016 ,0.9679651528718949 ,0.971593395887803 +B-Alinea ,0.9123228845787393 ,0.8992 ,0.9011345218800648 ,0.932142857142857 ,0.9168141592920355 +B-Amendement ,0.7892857142857144 ,0.8571428571428571 ,0.5 ,0.8 ,1.0 +B-Article ,0.9504240201487908 ,0.9816849816849818 ,0.929663608562691 ,0.9714285714285714 ,0.918918918918919 +B-Chapitre ,0.9852941176470589 ,1.0 ,1.0 ,1.0 ,0.9411764705882353 +B-Liste ,0.9594486029282061 ,0.943327239488117 ,0.9620915032679738 ,0.976303317535545 ,0.9560723514211886 +B-Pied ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Section ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-TOC ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Tete ,0.9977064220183486 ,0.9908256880733944 ,1.0 ,1.0 ,1.0 +B-Titre ,0.9063902826129734 ,0.8219178082191781 ,0.8813559322033899 ,0.967741935483871 ,0.9545454545454546 diff --git a/results/only/crf-iobonly.csv b/results/only/crf-iobonly.csv new file mode 100644 index 0000000..0bb72f7 --- /dev/null +++ b/results/only/crf-iobonly.csv @@ -0,0 +1,5 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.8213506153537866 ,0.6635980499169745 ,0.9273576746034019 ,0.7972040439760928 ,0.8972426929186774 +B ,0.9701745922029832 ,0.9675675675675676 ,0.9657170449058426 ,0.9765208110992528 ,0.9708929452392698 +I ,0.9975673235695733 ,0.9950575680988487 ,0.9981741607225454 ,0.998424654162359 ,0.9986129112945403 +O ,0.49630993028880355 ,0.028169014084507043 ,0.8181818181818181 ,0.4166666666666667 ,0.7222222222222222 diff --git a/results/only/crf-tonly.csv b/results/only/crf-tonly.csv new file mode 100644 index 0000000..f9ad24f --- /dev/null +++ b/results/only/crf-tonly.csv @@ -0,0 +1,7 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9473515992212036 ,0.9219334288899507 ,0.9611301118033413 ,0.957352245862884 ,0.9489906103286385 +B-Article ,0.9588766072451327 ,0.9816849816849818 ,0.9526627218934912 ,0.9645390070921985 ,0.936619718309859 +B-Chapitre ,0.9270833333333333 ,0.9 ,1.0 ,0.9333333333333333 ,0.875 +B-Section ,0.9855252274607114 ,0.9743589743589743 ,0.967741935483871 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8652728280668409 ,0.7536231884057972 ,0.8852459016393444 ,0.8888888888888888 ,0.9333333333333332 diff --git a/results/only/layoutlmscores-tonly.csv b/results/only/layoutlmscores-tonly.csv new file mode 100644 index 0000000..ac48e60 --- /dev/null +++ b/results/only/layoutlmscores-tonly.csv @@ -0,0 +1,7 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9245773036321192 ,0.9017711644805386 ,0.935895260031519 ,0.9774091216391909 ,0.8832336683772283 +B-Article ,0.9010653747243205 ,0.819277108433735 ,0.8849557522123893 ,0.9616724738675958 ,0.9383561643835616 +B-Chapitre ,0.9037433155080214 ,0.9090909090909091 ,1.0 ,1.0 ,0.7058823529411765 +B-Section ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8180778279282539 ,0.7804878048780488 ,0.7945205479452055 ,0.9253731343283582 ,0.7719298245614035 diff --git a/results/only/rnn-bonly-69.csv b/results/only/rnn-bonly-69.csv new file mode 100644 index 0000000..40216b2 --- /dev/null +++ b/results/only/rnn-bonly-69.csv @@ -0,0 +1,13 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9528054480555026 ,0.9443707841783304 ,0.9355881203644966 ,0.9675140734822226 ,0.9637488141969608 +B-Alinea ,0.907660927674018 ,0.8954758190327613 ,0.8906249999999999 ,0.923076923076923 ,0.9214659685863874 +B-Amendement ,0.9019607843137255 ,0.9411764705882353 ,0.6666666666666666 ,1.0 ,1.0 +B-Article ,0.9390394414135069 ,0.9712230215827339 ,0.912912912912913 ,0.96113074204947 ,0.9108910891089109 +B-Chapitre ,0.9586834733893557 ,0.9523809523809523 ,1.0 ,0.9411764705882353 ,0.9411764705882353 +B-Liste ,0.9388611754894972 ,0.9244288224956063 ,0.9462647444298821 ,0.9300911854103343 ,0.9546599496221662 +B-Pied ,0.986 ,0.944 ,1.0 ,1.0 ,1.0 +B-Section ,0.9939024390243902 ,0.975609756097561 ,1.0 ,1.0 ,1.0 +B-SousSection ,0.99 ,1.0 ,1.0 ,1.0 ,0.9600000000000001 +B-TOC ,0.9833333333333334 ,1.0 ,1.0 ,0.9333333333333333 ,1.0 +B-Tete ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8814183539727019 ,0.7837837837837838 ,0.8749999999999999 ,0.9538461538461539 ,0.9130434782608695 diff --git a/results/only/rnn-bonly-es.csv b/results/only/rnn-bonly-es.csv new file mode 100644 index 0000000..348f70b --- /dev/null +++ b/results/only/rnn-bonly-es.csv @@ -0,0 +1,13 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9544262305979092 ,0.9401529291945198 ,0.9631363238774302 ,0.9594039707607557 ,0.955011698558931 +B-Alinea ,0.903754145885079 ,0.9099378881987578 ,0.8875192604006162 ,0.9094138543516873 ,0.9081455805892548 +B-Amendement ,0.96875 ,0.875 ,1.0 ,1.0 ,1.0 +B-Article ,0.9414132176053805 ,0.974910394265233 ,0.9146341463414634 ,0.9608540925266905 ,0.9152542372881355 +B-Chapitre ,0.9247890671420084 ,0.9090909090909091 ,0.9600000000000001 ,0.9411764705882353 ,0.888888888888889 +B-Liste ,0.9385559549490076 ,0.9309734513274337 ,0.9526315789473683 ,0.9298780487804877 ,0.9407407407407408 +B-Pied ,0.9779812311786539 ,0.944 ,0.9908256880733944 ,1.0 ,0.9770992366412213 +B-Section ,0.9939024390243902 ,0.975609756097561 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-TOC ,0.9833333333333334 ,1.0 ,1.0 ,0.9333333333333333 ,1.0 +B-Tete ,0.9977477477477477 ,0.9909909909909909 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8684613997113998 ,0.8311688311688312 ,0.888888888888889 ,0.8787878787878788 ,0.875 diff --git a/results/only/rnn-bonly.csv b/results/only/rnn-bonly.csv new file mode 100644 index 0000000..d020495 --- /dev/null +++ b/results/only/rnn-bonly.csv @@ -0,0 +1,13 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.921756409214672 ,0.9256273583110819 ,0.9268549155123851 ,0.911478795900051 ,0.9230645671351702 +B-Alinea ,0.903269699540131 ,0.8865030674846627 ,0.8909370199692781 ,0.9084628670120898 ,0.9271758436944937 +B-Amendement ,0.7892156862745098 ,0.823529411764706 ,0.6666666666666666 ,1.0 ,0.6666666666666666 +B-Article ,0.9356208096821363 ,0.9574468085106385 ,0.9117647058823528 ,0.9574468085106383 ,0.9158249158249159 +B-Chapitre ,0.8975998820580864 ,0.9523809523809523 ,0.9600000000000001 ,0.7368421052631579 ,0.9411764705882353 +B-Liste ,0.9351034255158583 ,0.9290780141843972 ,0.93573264781491 ,0.9325337331334334 ,0.943069306930693 +B-Pied ,0.9678635175888426 ,0.9291338582677166 ,0.9818181818181818 ,0.9682539682539683 ,0.9922480620155039 +B-Section ,0.9928571428571429 ,1.0 ,1.0 ,1.0 ,0.9714285714285714 +B-SousSection ,0.95875 ,0.8750000000000001 ,1.0 ,1.0 ,0.9600000000000001 +B-TOC ,0.8766025641025641 ,1.0 ,1.0 ,0.5833333333333334 ,0.923076923076923 +B-Tete ,0.9977477477477477 ,0.9909909909909909 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8846900259943739 ,0.8378378378378377 ,0.8484848484848485 ,0.9393939393939393 ,0.9130434782608695 diff --git a/results/only/rnn-iobonly-35.csv b/results/only/rnn-iobonly-35.csv new file mode 100644 index 0000000..2da4d08 --- /dev/null +++ b/results/only/rnn-iobonly-35.csv @@ -0,0 +1,5 @@ +Label,Average,1,2,3,4 +ALL,0.8251071920958827,0.6683417686484777,0.8877914198162428,0.8517613786760837,0.8925342012427263 +B,0.9568734822886467,0.9567053854276665,0.9517439082656475,0.9575249082328264,0.9615197272284461 +I,0.9969666671484471,0.9946286453499817,0.9973446368973666,0.9977592277954249,0.9981341585510148 +O,0.5214814268505543,0.05369127516778523,0.7142857142857142,0.6,0.717948717948718 diff --git a/results/only/rnn-iobonly-es.csv b/results/only/rnn-iobonly-es.csv new file mode 100644 index 0000000..04bfa12 --- /dev/null +++ b/results/only/rnn-iobonly-es.csv @@ -0,0 +1,5 @@ +Label,Average,1,2,3,4 +ALL,0.8259895436739421,0.6729051215593237,0.8940800784054973,0.8622340049654792,0.8747389697654683 +B,0.9568231575324703,0.9578059071729957,0.9572320999519462,0.9526781071242849,0.9595765158806544 +I,0.99701342452287,0.9946842919420615,0.9977354079918181,0.9976602714085167,0.9979737267490836 +O,0.5241320489664861,0.0662251655629139,0.7272727272727274,0.6363636363636365,0.6666666666666667 diff --git a/results/only/rnn-iobonly.csv b/results/only/rnn-iobonly.csv new file mode 100644 index 0000000..b9105ae --- /dev/null +++ b/results/only/rnn-iobonly.csv @@ -0,0 +1,5 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.8216021853663859 ,0.6670851698463526 ,0.9016395647918071 ,0.8330299633685841 ,0.8846540434587995 +B ,0.9590166833084965 ,0.9531332280147445 ,0.9572320999519462 ,0.9559748427672956 ,0.9697265625 +I ,0.9970748462065069 ,0.994431006356528 ,0.997686594423475 ,0.9976605018839115 ,0.9985212821621129 +O ,0.5087150265841541 ,0.05369127516778523 ,0.7500000000000001 ,0.5454545454545454 ,0.6857142857142856 diff --git a/results/only/rnn-tonly-69.csv b/results/only/rnn-tonly-69.csv new file mode 100644 index 0000000..5af929a --- /dev/null +++ b/results/only/rnn-tonly-69.csv @@ -0,0 +1,7 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9520281957477538 ,0.9375686274509805 ,0.9604367373153501 ,0.9710559006211181 ,0.9390515176035666 +B-Article ,0.9382343079606829 ,0.9411764705882353 ,0.9132947976878613 ,0.9857142857142858 ,0.9127516778523491 +B-Chapitre ,0.9722222222222222 ,1.0 ,1.0 ,1.0 ,0.888888888888889 +B-Section ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.849684448555864 ,0.7466666666666667 ,0.888888888888889 ,0.8695652173913043 ,0.8936170212765958 diff --git a/results/only/rnn-tonly-es.csv b/results/only/rnn-tonly-es.csv new file mode 100644 index 0000000..dcc8348 --- /dev/null +++ b/results/only/rnn-tonly-es.csv @@ -0,0 +1,7 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9542113565089702 ,0.9415204678362574 ,0.9607988165680472 ,0.9814271749755621 ,0.9330989666560136 +B-Article ,0.9401608875042186 ,0.9444444444444444 ,0.9289940828402367 ,0.967741935483871 ,0.9194630872483222 +B-Chapitre ,0.9722222222222222 ,1.0 ,1.0 ,1.0 ,0.888888888888889 +B-Section ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8586736728184097 ,0.7631578947368421 ,0.8749999999999999 ,0.9393939393939393 ,0.8571428571428572 diff --git a/results/only/rnn-tonly.csv b/results/only/rnn-tonly.csv new file mode 100644 index 0000000..0744d26 --- /dev/null +++ b/results/only/rnn-tonly.csv @@ -0,0 +1,7 @@ +Label ,Average ,1 ,2 ,3 ,4 +ALL ,0.9440796900693809 ,0.9155080213903742 ,0.9478371040723982 ,0.9554050073637702 ,0.9575686274509805 +B-Article ,0.9301526177481303 ,0.9411764705882353 ,0.9176470588235294 ,0.9484536082474228 ,0.9133333333333333 +B-Chapitre ,0.9525668449197862 ,0.9090909090909091 ,0.9600000000000001 ,1.0 ,0.9411764705882353 +B-Section ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-SousSection ,1.0 ,1.0 ,1.0 ,1.0 ,1.0 +B-Titre ,0.8376789876789876 ,0.7272727272727273 ,0.8615384615384616 ,0.8285714285714285 ,0.9333333333333332 diff --git a/results/rnncrffreezealltrans.csv b/results/rnncrffreezealltrans.csv new file mode 100644 index 0000000..837699d --- /dev/null +++ b/results/rnncrffreezealltrans.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.967743108949386,0.955122827568507,0.9698515441722028,0.9796042190814803,0.9663938449753539 +B-Alinea,0.910045465151633,0.8837209302325582,0.9090909090909091,0.9347826086956522,0.9125874125874126 +B-Amendement,0.9833333333333334,0.9333333333333333,1.0,1.0,1.0 +B-Article,0.9498016001750981,0.9747292418772563,0.926829268292683,0.9750889679715302,0.9225589225589226 +B-Chapitre,0.9852941176470589,1.0,1.0,1.0,0.9411764705882353 +B-Liste,0.9541787910250492,0.9511754068716094,0.9574468085106383,0.959375,0.9487179487179487 +B-Pied,0.9939286548425382,0.9915966386554622,1.0,0.991869918699187,0.9922480620155039 +B-Section,0.9939024390243902,0.975609756097561,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,0.9956109956109956,0.990990990990991,1.0,0.9914529914529915,1.0 +B-Titre,0.8790788016331496,0.8051948051948052,0.875,0.9230769230769231,0.9130434782608695 diff --git a/results/rnncrffreezealltrans1.csv b/results/rnncrffreezealltrans1.csv new file mode 100644 index 0000000..b0529cd --- /dev/null +++ b/results/rnncrffreezealltrans1.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.9635748829427946,0.9529208252249901,0.971010767873413,0.9788975042249565,0.9514704344478186 +B-Alinea,0.8999218071874842,0.8700729927007299,0.9113924050632911,0.9119718309859155,0.90625 +B-Amendement,1.0,1.0,1.0,1.0,1.0 +B-Article,0.9498716205635611,0.9782608695652174,0.926829268292683,0.9785714285714285,0.9158249158249159 +B-Chapitre,0.9568452380952381,0.9523809523809523,1.0,1.0,0.875 +B-Liste,0.951645053251513,0.9494584837545126,0.9540078843626807,0.9623824451410659,0.9407313997477932 +B-Pied,0.9939286548425382,0.9915966386554622,1.0,0.991869918699187,0.9922480620155039 +B-Section,0.9825581395348837,0.9302325581395349,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,0.9807692307692308,1.0,1.0,1.0,0.9230769230769231 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8837839681262906,0.810126582278481,0.8888888888888888,0.9230769230769231,0.9130434782608695 diff --git a/results/rnncrfscores.csv b/results/rnncrfscores.csv new file mode 100644 index 0000000..5ea522d --- /dev/null +++ b/results/rnncrfscores.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.9148962919895147,0.9071376536847429,0.897940476251681,0.9267968031676219,0.927710234854013 +B-Alinea,0.8820335889184097,0.915625,0.8612903225806452,0.8993055555555556,0.8519134775374376 +B-Amendement,0.7030303030303029,0.5454545454545454,0.6666666666666666,0.8,0.8 +B-Article,0.9082598441369512,0.951048951048951,0.8463949843260188,0.935251798561151,0.9003436426116839 +B-Chapitre,0.8646135265700483,0.9,0.8695652173913043,0.8,0.8888888888888888 +B-Liste,0.9381939273461797,0.925476603119584,0.9340232858990944,0.9556962025316456,0.9375796178343949 +B-Pied,0.9958333333333333,0.9833333333333333,1.0,1.0,1.0 +B-Section,0.9712171052631579,1.0,0.9375,0.9473684210526315,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8006775832862789,0.7575757575757576,0.7619047619047619,0.8571428571428571,0.8260869565217391 diff --git a/results/rnnscores-30.csv b/results/rnnscores-30.csv new file mode 100644 index 0000000..9fc767d --- /dev/null +++ b/results/rnnscores-30.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.9340475207635904,0.9258714654579667,0.9258935374895795,0.9554647485967201,0.9289603315100955 +B-Alinea,0.8846637873108997,0.8898809523809523,0.8871715610510046,0.8870151770657673,0.8745874587458746 +B-Amendement,0.7256410256410256,0.7692307692307693,0.6666666666666666,0.8,0.6666666666666666 +B-Article,0.9318364703500133,0.9473684210526315,0.9069767441860465,0.9577464788732394,0.9152542372881356 +B-Chapitre,0.9852941176470589,1.0,1.0,1.0,0.9411764705882353 +B-Liste,0.9287914227188344,0.9257950530035336,0.9458762886597938,0.911504424778761,0.9319899244332494 +B-Pied,0.9978991596638656,0.9915966386554622,1.0,1.0,1.0 +B-Section,0.9880952380952381,0.9523809523809523,1.0,1.0,1.0 +B-SousSection,0.9701754385964912,0.9333333333333333,0.9473684210526315,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8621260683760684,0.775,0.8307692307692308,0.9538461538461539,0.8888888888888888 diff --git a/results/rnnscores-40.csv b/results/rnnscores-40.csv new file mode 100644 index 0000000..5f9ddb9 --- /dev/null +++ b/results/rnnscores-40.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.95682911612479,0.9369747148704523,0.9617812386556573,0.9721231365740607,0.9564373743989898 +B-Alinea,0.8974202772775276,0.9052631578947369,0.8868217054263566,0.8991452991452992,0.8984509466437177 +B-Amendement,0.9423076923076923,0.7692307692307693,1.0,1.0,1.0 +B-Article,0.9395149231656439,0.9577464788732394,0.9272727272727272,0.9602888086642599,0.912751677852349 +B-Chapitre,0.9752941176470589,1.0,0.96,1.0,0.9411764705882353 +B-Liste,0.929931750682567,0.9307282415630551,0.9345314505776636,0.9221556886227545,0.9323116219667944 +B-Pied,0.9958333333333333,0.9833333333333333,1.0,1.0,1.0 +B-Section,0.9939024390243902,0.975609756097561,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,0.9807692307692308,1.0,1.0,1.0,0.9230769230769231 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8701465131652462,0.7848101265822784,0.8709677419354839,0.9117647058823529,0.9130434782608695 diff --git a/results/rnnscores-45.csv b/results/rnnscores-45.csv new file mode 100644 index 0000000..67c2353 --- /dev/null +++ b/results/rnnscores-45.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.962740249027164,0.945028630191063,0.9655718536555887,0.9769134845310156,0.9634470277309891 +B-Alinea,0.8996058710091488,0.9162861491628614,0.871875,0.8981001727115717,0.9121621621621621 +B-Amendement,0.9833333333333334,0.9333333333333333,1.0,1.0,1.0 +B-Article,0.9421733536868977,0.9679715302491103,0.9057750759878419,0.9574468085106383,0.9375 +B-Chapitre,0.9852941176470589,1.0,1.0,1.0,0.9411764705882353 +B-Liste,0.9407062983373817,0.927689594356261,0.9404145077720208,0.9447852760736196,0.9499358151476253 +B-Pied,0.9958666393386623,0.9915966386554621,1.0,0.991869918699187,1.0 +B-Section,0.9825581395348837,0.9302325581395349,1.0,1.0,1.0 +B-SousSection,0.9833333333333334,0.9333333333333333,1.0,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8772716530781047,0.7948717948717949,0.9032258064516129,0.9538461538461539,0.8571428571428572 diff --git a/results/rnnscores-50.csv b/results/rnnscores-50.csv new file mode 100644 index 0000000..bf0aa34 --- /dev/null +++ b/results/rnnscores-50.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.9403150222013987,0.9244039444827844,0.9312426977906854,0.9727962431667575,0.9328172033653676 +B-Alinea,0.9005766408472945,0.916030534351145,0.8687782805429864,0.9143835616438356,0.903114186851211 +B-Amendement,0.7499999999999999,0.6666666666666666,0.6666666666666666,1.0,0.6666666666666666 +B-Article,0.9331546746188109,0.951048951048951,0.8988095238095238,0.974910394265233,0.9078498293515358 +B-Chapitre,0.9752941176470589,1.0,0.96,1.0,0.9411764705882353 +B-Liste,0.9440641497796449,0.9392857142857143,0.9605263157894737,0.9390243902439024,0.9374201787994891 +B-Pied,0.9958666393386623,0.9915966386554622,1.0,0.991869918699187,1.0 +B-Section,0.9867595818815331,0.975609756097561,1.0,1.0,0.9714285714285714 +B-SousSection,0.9686274509803922,0.9333333333333333,1.0,0.9411764705882353,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.889121989121989,0.7948717948717948,0.8888888888888888,0.9393939393939394,0.9333333333333333 diff --git a/results/rnnscores-bonly.csv b/results/rnnscores-bonly.csv new file mode 100644 index 0000000..84645b6 --- /dev/null +++ b/results/rnnscores-bonly.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.9445095761992631,0.9471264249395173,0.9229060839297667,0.9652282222897096,0.9427775736380589 +B-Alinea,0.9052611333444075,0.9062980030721967,0.896124031007752,0.9141856392294221,0.9044368600682594 +B-Amendement,0.8666666666666667,1.0,0.6666666666666666,1.0,0.8 +B-Article,0.9332427016313728,0.9782608695652174,0.9048991354466859,0.9543859649122807,0.8954248366013072 +B-Chapitre,0.9200831847890671,0.9090909090909091,0.8888888888888888,0.9411764705882353,0.9411764705882353 +B-Liste,0.9365192449396857,0.9323843416370107,0.9479305740987984,0.9415384615384615,0.924223602484472 +B-Pied,0.9744985074393598,0.921875,1.0,0.9838709677419355,0.9922480620155039 +B-Section,0.9939024390243902,0.975609756097561,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8594314603569447,0.7948717948717948,0.847457627118644,0.8823529411764706,0.9130434782608695 diff --git a/results/rnnscores.csv b/results/rnnscores.csv new file mode 100644 index 0000000..9297458 --- /dev/null +++ b/results/rnnscores.csv @@ -0,0 +1,13 @@ +Label,Average,1,2,3,4 +ALL,0.960336488104595,0.9423472236944984,0.9674849972664298,0.9760796708704216,0.9554340605870305 +B-Alinea,0.8828212095706791,0.8865979381443299,0.8824427480916031,0.9201388888888888,0.8421052631578947 +B-Amendement,0.9423076923076923,0.7692307692307693,1.0,1.0,1.0 +B-Article,0.9421393983072758,0.9574468085106383,0.9203539823008849,0.9681978798586572,0.9225589225589226 +B-Chapitre,0.9686274509803923,1.0,1.0,0.9333333333333333,0.9411764705882353 +B-Liste,0.9438060309702139,0.9342806394316163,0.9506493506493506,0.9613601236476044,0.9289340101522843 +B-Pied,0.9978991596638656,0.9915966386554622,1.0,1.0,1.0 +B-Section,1.0,1.0,1.0,1.0,1.0 +B-SousSection,1.0,1.0,1.0,1.0,1.0 +B-TOC,1.0,1.0,1.0,1.0,1.0 +B-Tete,1.0,1.0,1.0,1.0,1.0 +B-Titre,0.8861004273504274,0.8266666666666667,0.8888888888888888,0.9538461538461539,0.875 diff --git a/results/run.sh b/results/run.sh index ad38903..8a33153 100644 --- a/results/run.sh +++ b/results/run.sh @@ -1,5 +1,5 @@ #!/bin/sh -for features in text layout text+ text+layout structure text+layout+structure; do +for features in text+ text+layout text+layout+structure; do python scripts/train_crf.py --features $features --labels bonly -x 4 data/*.csv -s results/$features-x4.csv done diff --git a/results/run_rnn.sh b/results/run_rnn.sh new file mode 100644 index 0000000..f997c3e --- /dev/null +++ b/results/run_rnn.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +python scripts/train_rnn.py -x 4 --early-stopping --nepoch 100 -s results/rnnscores.csv data/*.csv +python scripts/test_rnn.py --model alexi/models/rnn.pt data/patches/*.csv +python scripts/train_rnn_crf.py --freeze -x 4 --nepoch 1 -i rnn.pt -s results/rnncrffreezealltrans.csv data/*.csv +python scripts/test_rnn.py --model alexi/models/rnn_crf.pt data/patches/*.csv diff --git a/results/structure-x4.csv b/results/structure-x4.csv deleted file mode 100644 index 976a022..0000000 --- a/results/structure-x4.csv +++ /dev/null @@ -1,13 +0,0 @@ -Label,Average,1,2,3,4 -ALL,0.3071712716645961,0.278228808823338,0.3202352309052446,0.2983585537061473,0.33186249322365474 -B-Alinea,0.007939180292641481,0.009478672985781991,0.015544041450777202,0.006734006734006734,0.0 -B-Amendement,0.0,0.0,0.0,0.0,0.0 -B-Article,0.0,0.0,0.0,0.0,0.0 -B-Chapitre,0.0,0.0,0.0,0.0,0.0 -B-Liste,0.0,0.0,0.0,0.0,0.0 -B-Pied,0.9237586660439077,0.8874172185430463,0.926829268292683,0.9428571428571428,0.9379310344827586 -B-Section,0.4690594817161837,0.5573770491803278,0.5079365079365079,0.38235294117647056,0.42857142857142855 -B-SousSection,0.0,0.0,0.0,0.0,0.0 -B-TOC,0.7415584415584416,0.4,0.9090909090909091,0.8,0.8571428571428571 -B-Tete,0.9830218527845963,0.9606299212598425,0.9846153846153847,1.0,0.9868421052631579 -B-Titre,0.25354636591478696,0.24561403508771928,0.17857142857142858,0.15,0.44 diff --git a/results/vsl-x4.csv b/results/vsl-x4.csv deleted file mode 100644 index 6015ac3..0000000 --- a/results/vsl-x4.csv +++ /dev/null @@ -1,13 +0,0 @@ -Label,Average,1,2,3,4 -ALL,0.9279733318627233,0.90991154028457,0.9094278351040951,0.9333184070316246,0.9592355450306038 -B-Alinea,0.914515454528736,0.8941504178272981,0.8833819241982508,0.9526542324246773,0.9278752436647174 -B-Amendement,0.9065934065934066,1.0,0.7692307692307693,1.0,0.8571428571428571 -B-Article,0.9492181838764345,0.9136490250696379,0.925,0.9852507374631269,0.9729729729729731 -B-Chapitre,0.8677018633540372,0.8571428571428571,0.8571428571428571,0.8,0.9565217391304348 -B-Liste,0.9464640751789173,0.9299719887955182,0.912106135986733,0.9834123222748815,0.9603658536585367 -B-Pied,1.0,1.0,1.0,1.0,1.0 -B-Section,0.9699496682681308,0.9787234042553191,0.967741935483871,0.9333333333333333,1.0 -B-SousSection,0.9466230936819173,0.823529411764706,1.0,0.962962962962963,1.0 -B-TOC,0.9052579365079365,0.8571428571428571,0.8750000000000001,0.888888888888889,1.0 -B-Tete,0.9951923076923077,1.0,0.9807692307692307,1.0,1.0 -B-Titre,0.8061906608081331,0.7547169811320756,0.8333333333333334,0.76,0.8767123287671232 diff --git a/scripts/make_funsd_data.py b/scripts/make_funsd_data.py new file mode 100644 index 0000000..64d289f --- /dev/null +++ b/scripts/make_funsd_data.py @@ -0,0 +1,220 @@ +""" +Convert our data to FUNSD style (IOB boxes and PNG images) +""" + +import argparse +import itertools +import logging +from collections import Counter +from pathlib import Path +from typing import Iterable, Iterator + +import pdfplumber +from sklearn.model_selection import KFold +from tokenizers import Tokenizer + +from alexi import segment +from alexi.format import line_breaks +from alexi.types import T_obj + +LOGGER = logging.getLogger(Path(__file__).stem) + + +def resegment(page: list[T_obj], max_seq_length: int) -> Iterator[list[T_obj]]: + """Refaire la segmentation d'une page pour respecter les limites de tokens""" + if len(page) < max_seq_length: + yield page + return + # Find the mode of line spacing + # Try to break where there is a larger line break + lines = list(line_breaks(page)) + spacing = Counter( + int(b[0]["top"]) - int(a[0]["bottom"]) for a, b in itertools.pairwise(lines) + ) + line_gap = spacing.most_common(1)[0][0] + LOGGER.info("line gap %d", line_gap) + # Total count of output (for validation) + page_length = 0 + # Length and extent of current "paragraph" + tcount = start = cur = 0 + for idx, line in enumerate(lines): + LOGGER.info( + "line %d start %d cur %d tcount %d => %d", + idx, + start, + cur, + tcount, + tcount + len(line), + ) + tcount += len(line) + # Try to output paragraphs, fall back to lines, then if + # necessary fall back to sub-lines (shouldn't be necessary) + while tcount > max_seq_length: + if cur > start: + seg = list(itertools.chain.from_iterable(lines[start:cur])) + LOGGER.info("output paragraph %d:%d (%d tokens)", start, cur, len(seg)) + assert len(seg) <= max_seq_length + page_length += len(seg) + yield seg + start = cur + tcount = sum(len(x) for x in lines[start : idx + 1]) + elif idx > cur: + seg = list(itertools.chain.from_iterable(lines[start:idx])) + assert len(seg) <= max_seq_length + LOGGER.info("output lines %d:%d (%d tokens)", start, idx, len(seg)) + page_length += len(seg) + yield seg + start = cur = idx + tcount = len(line) + else: + LOGGER.warning( + "Very long line %d (%d tokens), must split to %d", + idx, + tcount, + max_seq_length, + ) + assert idx == start + assert idx == cur + for start in range(0, len(line), max_seq_length): + seg = line[start : start + max_seq_length] + page_length += len(seg) + yield seg + start = cur = idx + 1 + tcount = 0 + line_line_gap = int(line[0]["top"]) - int(lines[idx - 1][0]["bottom"]) + if line_line_gap > line_gap + 1: + LOGGER.info( + "break at line %d line gap %d", + idx, + line_line_gap, + ) + cur = idx + if start < len(lines): + seg = list(itertools.chain.from_iterable(lines[start:])) + assert len(seg) <= max_seq_length + page_length += len(seg) + yield seg + assert page_length == len(page) + + +def write_fold( + pages: Iterable[T_obj], + tokenizer: Tokenizer, + max_seq_length: int, + outbase: Path, + imgdir: Path | None = None, +) -> set[str]: + txtpath = outbase.with_suffix(".txt") + boxpath = txtpath.with_stem(f"{txtpath.stem}_box") + imgpath = txtpath.with_stem(f"{txtpath.stem}_image") + if imgdir is not None: + imgdir.mkdir(parents=True, exist_ok=True) + labels = set() + path = pngpath = None + with open(txtpath, "wt") as txtfh, open(boxpath, "wt") as boxfh, open( + imgpath, "wt" + ) as imgfh: + for page in pages: + if page[0]["path"] != path: + path = Path(page[0]["path"]) + pageno = int(page[0]["page"]) + pdfpath = path.with_suffix(".pdf") + if imgdir is not None: + pdf = pdfplumber.open(pdfpath) + ipage = pdf.pages[page - 1] + pngpath = imgdir / f"{pdfpath.stem}-{pageno}.png" + ipage.to_image().save(pngpath) + else: + pngpath = Path(f"{pdfpath.stem}-{pageno}.png") + page_width = int(page[0]["page_width"]) + page_height = int(page[0]["page_height"]) + maxdim = max(page_width, page_height) + mediabox = " ".join( + str(int(f / maxdim * 1000)) for f in (page_width, page_height) + ) + tpage = list(segment.retokenize(page, tokenizer)) + LOGGER.info("page: %d tokens", len(tpage)) + tseg = list(resegment(tpage, max_seq_length)) + for seg in tseg: + LOGGER.info("seg: %d tokens", len(seg)) + # Detokenize here since that's what the current training + # code wants (even though it's going to tokenize it + # again...) + for word in segment.detokenize(seg, tokenizer): + label = segment.tonly(0, word) + labels.add(label) + bbox = [ + int(float(word[f]) / maxdim * 1000) + for f in "x0 top x1 bottom".split() + ] + assert all(x <= 1000 for x in bbox) + box = " ".join(str(f) for f in bbox) + print("\t".join((word["text"], label)), file=txtfh) + print( + "\t".join((word["text"], box)), + file=boxfh, + ) + print( + "\t".join((word["text"], box, mediabox, pngpath.name)), + file=imgfh, + ) + for fh in txtfh, boxfh, imgfh: + print(file=fh) + return labels + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-o", + "--outdir", + default="data", + help="Repertoire pour fichiers de sortie", + type=Path, + ) + parser.add_argument( + "-x", + "--cross-validation-folds", + default=4, + type=int, + help="Nombre de partitions de validation croisée.", + ) + parser.add_argument("-d", "--imgdir", help="Repertoire pour images", type=Path) + parser.add_argument("--seed", default=1381, type=int, help="Graine aléatoire") + parser.add_argument( + "--max-seq-length", + default=512, + type=int, + help="Longueur maximale des sequences", + ) + parser.add_argument("csvs", nargs="+", help="Fichiers CSV", type=Path) + args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + # Need to split inside pages to respect the 512-token limit, so we + # will tokenize to find out where we need to split + tokenizer = Tokenizer.from_pretrained("microsoft/layoutlm-base-uncased") + pages = list(segment.split_pages(segment.filter_tab(segment.load(args.csvs)))) + kf = KFold(n_splits=4, shuffle=True, random_state=args.seed) + for fold, (train_idx, dev_idx) in enumerate(kf.split(pages)): + foldir = args.outdir / f"fold{fold + 1}" + foldir.mkdir(parents=True, exist_ok=True) + labels = write_fold( + (pages[x] for x in train_idx), + tokenizer, + args.max_seq_length - 3, + foldir / "train", + ) + devlabels = write_fold( + (pages[x] for x in dev_idx), + tokenizer, + args.max_seq_length - 3, + foldir / "test", + ) + labels.update(devlabels) + with open(foldir / "labels.txt", "wt") as outfh: + for label in labels: + print(label, file=outfh) + + +if __name__ == "__main__": + main() diff --git a/scripts/retokenize.py b/scripts/retokenize.py new file mode 100644 index 0000000..8d0ba0f --- /dev/null +++ b/scripts/retokenize.py @@ -0,0 +1,44 @@ +"""Refaire la tokenisation en alignant les etiquettes et traits sur +les nouveaux segments.""" + +# To implement: +# +# - retokenize: CSV/IOB -> CSV/IOB +# - detokenize: CSV/IOB -> CSV/IOB +# +# This should improve existing CRF as well! + + +import argparse +import csv +import sys +import tokenizers + +from alexi.convert import write_csv +from alexi.segment import retokenize, detokenize + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-t", "--tokenizer", help="Nom du tokenisateur", default="camembert-base" + ) + parser.add_argument( + "-d", "--detokenize", help="Inverser la retokenisation", action="store_true" + ) + parser.add_argument( + "csv", + help="Fichier CSV à traiter", + type=argparse.FileType("rt"), + ) + args = parser.parse_args() + tokenizer = tokenizers.Tokenizer.from_pretrained(args.tokenizer) + reader = csv.DictReader(args.csv) + if args.detokenize: + write_csv(detokenize(reader, tokenizer), sys.stdout) + else: + write_csv(retokenize(reader, tokenizer), sys.stdout) + + +if __name__ == "__main__": + main() diff --git a/scripts/test_crf.py b/scripts/test_crf.py index e46ca42..be10e59 100644 --- a/scripts/test_crf.py +++ b/scripts/test_crf.py @@ -8,7 +8,13 @@ import sklearn_crfsuite as crfsuite # type: ignore from sklearn_crfsuite import metrics -from alexi.segment import Segmenteur, load, page2features, page2labels, split_pages +from alexi.segment import ( + Segmenteur, + load, + page2features, + page2labels, + split_pages, +) def make_argparse(): @@ -32,7 +38,9 @@ def test( labels.add("O") y_pred = crf.predict(X_test) sorted_labels = sorted(labels, key=lambda name: (name[1:], name[0])) - report = metrics.flat_classification_report(y_test, y_pred, labels=sorted_labels) + report = metrics.flat_classification_report( + y_test, y_pred, labels=sorted_labels, zero_division=0.0 + ) print(report) diff --git a/scripts/test_crf_voting.py b/scripts/test_crf_voting.py new file mode 100644 index 0000000..0eb0507 --- /dev/null +++ b/scripts/test_crf_voting.py @@ -0,0 +1,56 @@ +"""Tester un CRF""" + +import argparse +import itertools +from collections import Counter +from pathlib import Path + +from sklearn_crfsuite import metrics + +from alexi.segment import ( + Segmenteur, + load, + page2features, + page2labels, + split_pages, +) + + +def make_argparse(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("-m", "--model", help="Fichier modele", type=Path) + parser.add_argument("csvs", nargs="+", help="Fichiers CSV de test", type=Path) + return parser + + +def main(): + parser = make_argparse() + args = parser.parse_args() + test = list(split_pages(load(args.csvs))) + multi_predictions = [] + for fold in args.model.parent.glob(f"{args.model.stem}_[0-9]*.gz"): + crf = Segmenteur(model=fold) + X_test = [page2features(p, crf.features, crf.n) for p in test] + y_test = [page2labels(p, crf.labels) for p in test] + labels = set( + c for c in itertools.chain.from_iterable(y_test) if c.startswith("B-") + ) + labels.add("O") + multi_predictions.append(crf.crf.predict(X_test)) + y_pred = [] + for page in zip(*multi_predictions): + assert all(len(y) == len(page[0]) for y in page) + values = [] + for pred in zip(*page): + counts = Counter(pred) + values.append(next(iter(counts.most_common()))[0]) + y_pred.append(values) + sorted_labels = sorted(labels, key=lambda name: (name[1:], name[0])) + report = metrics.flat_classification_report( + y_test, y_pred, labels=sorted_labels, zero_division=0.0 + ) + print(report) + + +if __name__ == "__main__": + main() diff --git a/scripts/test_rnn.py b/scripts/test_rnn.py new file mode 100644 index 0000000..89778b8 --- /dev/null +++ b/scripts/test_rnn.py @@ -0,0 +1,110 @@ +"""Tester un RNN""" + +import argparse +import json +import logging +from pathlib import Path + +import torch +from sklearn_crfsuite import metrics +from torch.utils.data import DataLoader + +from alexi.segment import ( + load, + load_rnn_data, + pad_collate_fn_predict, + RNN, + RNNCRF, + bio_transitions, +) + +from allennlp_light.modules.conditional_random_field import ConditionalRandomField + + +def make_argparse(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-m", "--model", help="Fichier modele", default="rnn.pt", type=Path + ) + parser.add_argument( + "--device", default="cuda:0", help="Device pour rouler la prediction" + ) + parser.add_argument( + "--decode", action="store_true", help="Appliquer l'algorithme Viterbi" + ) + parser.add_argument( + "--all-labels", action="store_true", help="Evaluater toutes les classes" + ) + parser.add_argument("csvs", nargs="+", help="Fichiers CSV de test", type=Path) + return parser + + +def main(): + parser = make_argparse() + args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + + with open(args.model.with_suffix(".json"), "rt") as infh: + config = json.load(infh) + id2label = config["id2label"] + feat2id = config["feat2id"] + all_data = load_rnn_data( + load(args.csvs), feat2id, id2label, config["features"], config["labels"] + ) + ordering, sorted_test_data = zip( + *sorted(enumerate(all_data), reverse=True, key=lambda x: len(x[1][0])) + ) + test_loader = DataLoader( + sorted_test_data, + batch_size=32, + collate_fn=pad_collate_fn_predict, + ) + device = torch.device(args.device) + if "crf" in args.model.name: + model = RNNCRF(**config) + else: + model = RNN(**config) + if args.decode: + crf = ConditionalRandomField( + num_tags=len(id2label), + constraints=bio_transitions(id2label), + include_start_end_transitions=False, + ) + + model.load_state_dict(torch.load(args.model)) + model.eval() + model.to(device) + predictions = [] + lengths = [len(tokens) for tokens, _ in sorted_test_data] + for batch in test_loader: + if "crf" in args.model.name: + _logits, labels, _mask = model(*(t.to(device) for t in batch)) + predictions.extend(labels) + else: + features, vectors, mask = batch + out = model(*(t.to(device) for t in (features, vectors, mask))) + out = out.transpose(1, -1).cpu() # WTF + if args.decode: + tags = crf.viterbi_tags(out, mask) + predictions.extend(sequence for sequence, _ in tags) + else: + for length, row in zip(lengths, out.argmax(-1).cpu()): + predictions.append(row[:length]) + del lengths[: len(out)] + y_pred = [[id2label[x] for x in page] for page in predictions] + y_true = [[id2label[x] for x in page] for _, page in sorted_test_data] + if args.all_labels: + eval_labels = sorted(id2label) + else: + eval_labels = sorted( + ["O", *(c for c in id2label if c.startswith("B-"))], + key=lambda name: (name[1:], name[0]), + ) + report = metrics.flat_classification_report( + y_true, y_pred, labels=eval_labels, zero_division=0.0 + ) + print(report) + + +if __name__ == "__main__": + main() diff --git a/scripts/test_rnn_voting.py b/scripts/test_rnn_voting.py new file mode 100644 index 0000000..c34caaa --- /dev/null +++ b/scripts/test_rnn_voting.py @@ -0,0 +1,90 @@ +"""Tester un RNN""" + +import argparse +import json +import logging +from pathlib import Path + +import torch +from sklearn_crfsuite import metrics +from torch.utils.data import DataLoader + +from alexi.segment import load, load_rnn_data, pad_collate_fn_predict, RNN, RNNCRF + +LOGGER = logging.getLogger(Path(__file__).stem) + + +def make_argparse(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-m", "--model", help="Fichier modele", default="rnn.pt", type=Path + ) + parser.add_argument( + "--device", default="cuda:0", help="Device pour rouler la prediction" + ) + parser.add_argument("csvs", nargs="+", help="Fichiers CSV de test", type=Path) + return parser + + +def main(): + parser = make_argparse() + args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + + multi_predictions = [] + for fold in args.model.parent.glob(f"{args.model.stem}_fold*.pt"): + LOGGER.info("Evaluating with %s", fold) + with open(fold.with_suffix(".json"), "rt") as infh: + config = json.load(infh) + id2label = config["id2label"] + feat2id = config["feat2id"] + all_data = load_rnn_data(load(args.csvs), feat2id, id2label) + ordering, sorted_test_data = zip( + *sorted(enumerate(all_data), reverse=True, key=lambda x: len(x[1][0])) + ) + test_loader = DataLoader( + sorted_test_data, + batch_size=32, + collate_fn=pad_collate_fn_predict, + ) + device = torch.device(args.device) + if "crf" in args.model.name: + model = RNNCRF(**config) + else: + model = RNN(**config) + model.load_state_dict(torch.load(fold)) + model.eval() + model.to(device) + fold_predictions = [] + lengths = [len(tokens) for tokens, _ in sorted_test_data] + for batch in test_loader: + if "crf" in args.model.name: + _logits, labels, _mask = model(*(t.to(device) for t in batch)) + fold_predictions.extend(torch.LongTensor(x) for x in labels) + else: + out = model(*(t.to(device) for t in batch)) + out = out.transpose(1, -1).argmax(-1).cpu() + for length, row in zip(lengths, out): + fold_predictions.append(row[:length]) + del lengths[: len(out)] + multi_predictions.append(fold_predictions) + predictions = [] + for page in zip(*multi_predictions): + assert all(len(y) == len(page[0]) for y in page) + tpage = torch.stack(page) + values, indices = torch.mode(tpage, 0) + predictions.append(values) + y_pred = [[id2label[x] for x in page] for page in predictions] + y_true = [[id2label[x] for x in page] for _, page in sorted_test_data] + eval_labels = sorted( + ["O", *(c for c in id2label if c.startswith("B-"))], + key=lambda name: (name[1:], name[0]), + ) + report = metrics.flat_classification_report( + y_true, y_pred, labels=eval_labels, zero_division=0.0 + ) + print(report) + + +if __name__ == "__main__": + main() diff --git a/scripts/train_crf.py b/scripts/train_crf.py index 36f48f3..fad07a5 100644 --- a/scripts/train_crf.py +++ b/scripts/train_crf.py @@ -6,7 +6,6 @@ import logging import os from pathlib import Path -from typing import Iterable, Iterator import joblib # type: ignore import numpy as np @@ -15,7 +14,15 @@ from sklearn.model_selection import KFold, cross_validate # type: ignore from sklearn_crfsuite import metrics -from alexi.segment import load, page2features, page2labels, split_pages +from alexi.segment import ( + load, + page2features, + page2labels, + split_pages, + filter_tab, + retokenize, +) +from tokenizers import Tokenizer LOGGER = logging.getLogger("train-crf") @@ -28,11 +35,8 @@ def make_argparse(): parser.add_argument( "--niter", default=200, type=int, help="Nombre d'iterations d'entrainement" ) - parser.add_argument("--features", default="vsl", help="Extracteur de traits") + parser.add_argument("--features", default="text+layout+structure", help="Extracteur de traits") parser.add_argument("--labels", default="literal", help="Transformateur de classes") - parser.add_argument( - "--train-dev", action="store_true", help="Ajouter dev set au train set" - ) parser.add_argument("-n", default=2, type=int, help="Largeur du contexte de traits") parser.add_argument( "--c1", default=0.25, type=float, help="Coefficient de regularisation L1" @@ -56,19 +60,12 @@ def make_argparse(): ) parser.add_argument("-o", "--outfile", help="Fichier destination pour modele") parser.add_argument("-s", "--scores", help="Fichier destination pour évaluations") + parser.add_argument( + "-t", "--tokenize", action="store_true", help="Tokeniser les mots" + ) return parser -def filter_tab(words: Iterable[dict]) -> Iterator[dict]: - """Enlever les mots dans des tableaux car on va s'en occuper autrement.""" - for w in words: - if "Tableau" in w["segment"]: - continue - if "Table" in w["tagstack"]: - continue - yield w - - def run_cv(args: argparse.Namespace, params: dict, X, y): if args.cross_validation_folds == 0: args.cross_validation_folds = os.cpu_count() @@ -76,7 +73,7 @@ def run_cv(args: argparse.Namespace, params: dict, X, y): LOGGER.info("Running cross-validation in %d folds", args.cross_validation_folds) counts: dict[str, int] = {} for c in itertools.chain.from_iterable(y): - if c.startswith("B-"): + if args.labels == "iobonly" or c.startswith("B-"): count = counts.setdefault(c, 0) counts[c] = count + 1 labels = [] @@ -146,8 +143,11 @@ def main(): parser = make_argparse() args = parser.parse_args() logging.basicConfig(level=logging.INFO) - data = load(args.csvs) - pages = list(split_pages(filter_tab(data))) + data = filter_tab(load(args.csvs)) + if args.tokenize: + tokenizer = Tokenizer.from_pretrained("camembert-base") + data = retokenize(data, tokenizer) + pages = list(split_pages(data)) X = [page2features(s, args.features, args.n) for s in pages] y = [page2labels(s, args.labels) for s in pages] params = { diff --git a/scripts/train_layoutlm.py b/scripts/train_layoutlm.py new file mode 100644 index 0000000..3a48d37 --- /dev/null +++ b/scripts/train_layoutlm.py @@ -0,0 +1,632 @@ +import argparse +import csv +import logging +import os +from collections import Counter +from pathlib import Path +from typing import Optional, Union, Tuple + +import numpy as np +import torch +from sklearn_crfsuite import metrics +from torch.nn import CrossEntropyLoss +from torch.utils.data import DataLoader, Dataset, RandomSampler, SequentialSampler +from tqdm import tqdm +from transformers import ( + LayoutLMForTokenClassification, + LayoutLMTokenizer, +) +from transformers.modeling_outputs import TokenClassifierOutput +from transformers.optimization import Adafactor + +logger = logging.getLogger(__name__) +logging.basicConfig(level=logging.INFO) +torch.manual_seed(1234) +np.random.seed(1234) + + +class FunsdDataset(Dataset): + def __init__(self, args, tokenizer, labels, pad_token_label_id, mode): + logger.info("Creating features from dataset file at %s", args.data_dir) + examples = read_examples_from_file(args.data_dir, mode) + features = convert_examples_to_features( + examples, + labels, + args.max_seq_length, + tokenizer, + cls_token_at_end=bool(args.model_type in ["xlnet"]), + # xlnet has a cls token at the end + cls_token=tokenizer.cls_token, + cls_token_segment_id=2 if args.model_type in ["xlnet"] else 0, + sep_token=tokenizer.sep_token, + sep_token_extra=bool(args.model_type in ["roberta"]), + # roberta uses an extra separator b/w pairs of + # sentences, + # cf. github.com/pytorch/fairseq/commit/1684e166e3da03f5b600dbb7855cb98ddfcd0805 + pad_on_left=bool(args.model_type in ["xlnet"]), + # pad on the left for xlnet + pad_token=tokenizer.convert_tokens_to_ids([tokenizer.pad_token])[0], + pad_token_segment_id=4 if args.model_type in ["xlnet"] else 0, + pad_token_label_id=pad_token_label_id, + ) + + self.features = features + # Convert to Tensors and build dataset + self.all_input_ids = torch.tensor( + [f.input_ids for f in features], dtype=torch.long + ) + self.all_input_mask = torch.tensor( + [f.input_mask for f in features], dtype=torch.long + ) + self.all_segment_ids = torch.tensor( + [f.segment_ids for f in features], dtype=torch.long + ) + self.all_label_ids = torch.tensor( + [f.label_ids for f in features], dtype=torch.long + ) + self.all_bboxes = torch.tensor([f.boxes for f in features], dtype=torch.long) + + def __len__(self): + return len(self.features) + + def __getitem__(self, index): + return ( + self.all_input_ids[index], + self.all_input_mask[index], + self.all_segment_ids[index], + self.all_label_ids[index], + self.all_bboxes[index], + ) + + +class InputExample(object): + """A single training/test example for token classification.""" + + def __init__(self, guid, words, labels, boxes, actual_bboxes, file_name, page_size): + """Constructs a InputExample. + + Args: + guid: Unique id for the example. + words: list. The words of the sequence. + labels: (Optional) list. The labels for each word of the + sequence. This should be specified for train and dev + examples, but not for test examples. + """ + self.guid = guid + self.words = words + self.labels = labels + self.boxes = boxes + self.actual_bboxes = actual_bboxes + self.file_name = file_name + self.page_size = page_size + + +class InputFeatures(object): + """A single set of features of data.""" + + def __init__( + self, + input_ids, + input_mask, + segment_ids, + label_ids, + boxes, + actual_bboxes, + file_name, + page_size, + ): + assert ( + 0 <= all(boxes) <= 1000 + ), "Error with input bbox ({}): the coordinate value is not between 0 and 1000".format( + boxes + ) + self.input_ids = input_ids + self.input_mask = input_mask + self.segment_ids = segment_ids + self.label_ids = label_ids + self.boxes = boxes + self.actual_bboxes = actual_bboxes + self.file_name = file_name + self.page_size = page_size + + +def read_examples_from_file(data_dir, mode): + file_path = os.path.join(data_dir, "{}.txt".format(mode)) + box_file_path = os.path.join(data_dir, "{}_box.txt".format(mode)) + image_file_path = os.path.join(data_dir, "{}_image.txt".format(mode)) + guid_index = 1 + examples = [] + with open(file_path, encoding="utf-8") as f, open( + box_file_path, encoding="utf-8" + ) as fb, open(image_file_path, encoding="utf-8") as fi: + words = [] + boxes = [] + actual_bboxes = [] + file_name = None + page_size = None + labels = [] + for line, bline, iline in zip(f, fb, fi): + if line.startswith("-DOCSTART-") or line == "" or line == "\n": + if words: + examples.append( + InputExample( + guid="{}-{}".format(mode, guid_index), + words=words, + labels=labels, + boxes=boxes, + actual_bboxes=actual_bboxes, + file_name=file_name, + page_size=page_size, + ) + ) + guid_index += 1 + words = [] + boxes = [] + actual_bboxes = [] + file_name = None + page_size = None + labels = [] + else: + splits = line.split("\t") + bsplits = bline.split("\t") + isplits = iline.split("\t") + assert len(splits) == 2 + assert len(bsplits) == 2 + assert len(isplits) == 4 + assert splits[0] == bsplits[0] + words.append(splits[0]) + if len(splits) > 1: + labels.append(splits[-1].replace("\n", "")) + box = bsplits[-1].replace("\n", "") + box = [int(b) for b in box.split()] + boxes.append(box) + actual_bbox = [int(b) for b in isplits[1].split()] + actual_bboxes.append(actual_bbox) + page_size = [int(i) for i in isplits[2].split()] + file_name = isplits[3].strip() + else: + # Examples could have no label for mode = "test" + labels.append("O") + if words: + examples.append( + InputExample( + guid=("%s-%d" % (mode, guid_index)), + words=words, + labels=labels, + boxes=boxes, + actual_bboxes=actual_bboxes, + file_name=file_name, + page_size=page_size, + ) + ) + return examples + + +def convert_examples_to_features( + examples, + label_list, + max_seq_length, + tokenizer, + cls_token_at_end=False, + cls_token="[CLS]", + cls_token_segment_id=1, + sep_token="[SEP]", + sep_token_extra=False, + pad_on_left=False, + pad_token=0, + cls_token_box=[0, 0, 0, 0], + sep_token_box=[1000, 1000, 1000, 1000], + pad_token_box=[0, 0, 0, 0], + pad_token_segment_id=0, + pad_token_label_id=-1, + sequence_a_segment_id=0, + mask_padding_with_zero=True, +): + """Loads a data file into a list of `InputBatch`s + `cls_token_at_end` define the location of the CLS token: + - False (Default, BERT/XLM pattern): [CLS] + A + [SEP] + B + [SEP] + - True (XLNet/GPT pattern): A + [SEP] + B + [SEP] + [CLS] + `cls_token_segment_id` define the segment id associated to the CLS token (0 for BERT, 2 for XLNet) + """ + + label_map = {label: i for i, label in enumerate(label_list)} + + features = [] + for ex_index, example in enumerate(examples): + file_name = example.file_name + page_size = example.page_size + width, height = page_size + if ex_index % 10000 == 0: + logger.info("Writing example %d of %d", ex_index, len(examples)) + + tokens = [] + token_boxes = [] + actual_bboxes = [] + label_ids = [] + for word, label, box, actual_bbox in zip( + example.words, example.labels, example.boxes, example.actual_bboxes + ): + word_tokens = tokenizer.tokenize(word) + tokens.extend(word_tokens) + token_boxes.extend([box] * len(word_tokens)) + actual_bboxes.extend([actual_bbox] * len(word_tokens)) + # Use the real label id for the first token of the word, and padding ids for the remaining tokens + label_ids.extend( + [label_map[label]] + [pad_token_label_id] * (len(word_tokens) - 1) + ) + + # Account for [CLS] and [SEP] with "- 2" and with "- 3" for RoBERTa. + special_tokens_count = 3 if sep_token_extra else 2 + if len(tokens) > max_seq_length - special_tokens_count: + tokens = tokens[: (max_seq_length - special_tokens_count)] + token_boxes = token_boxes[: (max_seq_length - special_tokens_count)] + actual_bboxes = actual_bboxes[: (max_seq_length - special_tokens_count)] + label_ids = label_ids[: (max_seq_length - special_tokens_count)] + + # The convention in BERT is: + # (a) For sequence pairs: + # tokens: [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP] + # type_ids: 0 0 0 0 0 0 0 0 1 1 1 1 1 1 + # (b) For single sequences: + # tokens: [CLS] the dog is hairy . [SEP] + # type_ids: 0 0 0 0 0 0 0 + # + # Where "type_ids" are used to indicate whether this is the first + # sequence or the second sequence. The embedding vectors for `type=0` and + # `type=1` were learned during pre-training and are added to the wordpiece + # embedding vector (and position vector). This is not *strictly* necessary + # since the [SEP] token unambiguously separates the sequences, but it makes + # it easier for the model to learn the concept of sequences. + # + # For classification tasks, the first vector (corresponding to [CLS]) is + # used as as the "sentence vector". Note that this only makes sense because + # the entire model is fine-tuned. + tokens += [sep_token] + token_boxes += [sep_token_box] + actual_bboxes += [[0, 0, width, height]] + label_ids += [pad_token_label_id] + if sep_token_extra: + # roberta uses an extra separator b/w pairs of sentences + tokens += [sep_token] + token_boxes += [sep_token_box] + actual_bboxes += [[0, 0, width, height]] + label_ids += [pad_token_label_id] + segment_ids = [sequence_a_segment_id] * len(tokens) + + if cls_token_at_end: + tokens += [cls_token] + token_boxes += [cls_token_box] + actual_bboxes += [[0, 0, width, height]] + label_ids += [pad_token_label_id] + segment_ids += [cls_token_segment_id] + else: + tokens = [cls_token] + tokens + token_boxes = [cls_token_box] + token_boxes + actual_bboxes = [[0, 0, width, height]] + actual_bboxes + label_ids = [pad_token_label_id] + label_ids + segment_ids = [cls_token_segment_id] + segment_ids + + input_ids = tokenizer.convert_tokens_to_ids(tokens) + + # The mask has 1 for real tokens and 0 for padding tokens. Only real + # tokens are attended to. + input_mask = [1 if mask_padding_with_zero else 0] * len(input_ids) + + # Zero-pad up to the sequence length. + padding_length = max_seq_length - len(input_ids) + if pad_on_left: + input_ids = ([pad_token] * padding_length) + input_ids + input_mask = ( + [0 if mask_padding_with_zero else 1] * padding_length + ) + input_mask + segment_ids = ([pad_token_segment_id] * padding_length) + segment_ids + label_ids = ([pad_token_label_id] * padding_length) + label_ids + token_boxes = ([pad_token_box] * padding_length) + token_boxes + else: + input_ids += [pad_token] * padding_length + input_mask += [0 if mask_padding_with_zero else 1] * padding_length + segment_ids += [pad_token_segment_id] * padding_length + label_ids += [pad_token_label_id] * padding_length + token_boxes += [pad_token_box] * padding_length + + assert len(input_ids) == max_seq_length + assert len(input_mask) == max_seq_length + assert len(segment_ids) == max_seq_length + assert len(label_ids) == max_seq_length + assert len(token_boxes) == max_seq_length + + if False: # ex_index < 5: + logger.info("*** Example ***") + logger.info("guid: %s", example.guid) + logger.info("tokens: %s", " ".join([str(x) for x in tokens])) + logger.info("input_ids: %s", " ".join([str(x) for x in input_ids])) + logger.info("input_mask: %s", " ".join([str(x) for x in input_mask])) + logger.info("segment_ids: %s", " ".join([str(x) for x in segment_ids])) + logger.info("label_ids: %s", " ".join([str(x) for x in label_ids])) + logger.info("boxes: %s", " ".join([str(x) for x in token_boxes])) + logger.info("actual_bboxes: %s", " ".join([str(x) for x in actual_bboxes])) + + features.append( + InputFeatures( + input_ids=input_ids, + input_mask=input_mask, + segment_ids=segment_ids, + label_ids=label_ids, + boxes=token_boxes, + actual_bboxes=actual_bboxes, + file_name=file_name, + page_size=page_size, + ) + ) + return features + + +class MyLayoutLMForTokenClassification(LayoutLMForTokenClassification): + def __init__(self, config, label_weights): + super().__init__(config) + self.label_weights = label_weights + + # Just copy the code ... not very robust + def forward( + self, + input_ids: Optional[torch.LongTensor] = None, + bbox: Optional[torch.LongTensor] = None, + attention_mask: Optional[torch.FloatTensor] = None, + token_type_ids: Optional[torch.LongTensor] = None, + position_ids: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.FloatTensor] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, TokenClassifierOutput]: + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + outputs = self.layoutlm( + input_ids=input_ids, + bbox=bbox, + attention_mask=attention_mask, + token_type_ids=token_type_ids, + position_ids=position_ids, + head_mask=head_mask, + inputs_embeds=inputs_embeds, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + sequence_output = outputs[0] + + sequence_output = self.dropout(sequence_output) + logits = self.classifier(sequence_output) + + loss = None + if labels is not None: + loss_fct = CrossEntropyLoss(weight=self.label_weights) + + loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1)) + + if not return_dict: + output = (logits,) + outputs[2:] + return ((loss,) + output) if loss is not None else output + + return TokenClassifierOutput( + loss=loss, + logits=logits, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + ) + + +parser = argparse.ArgumentParser(description=__doc__) +parser.add_argument("-d", "--data-dir", default="data", type=Path) +parser.add_argument( + "-m", "--model-name-or-path", default="microsoft/layoutlm-base-uncased" +) +parser.add_argument("--max-seq-length", default=512, type=int) +parser.add_argument("-t", "--model-type", default="layoutlm") +parser.add_argument("-n", "--nepoch", default=3, type=int) +parser.add_argument("-s", "--scores", default="layoutlmscores.csv", type=Path) +args = parser.parse_args() +device = torch.device("cuda" if torch.cuda.is_available() else "cpu") +tokenizer = LayoutLMTokenizer.from_pretrained("microsoft/layoutlm-base-uncased") +# Use cross entropy ignore index as padding label id so that only real label ids contribute to the loss later +pad_token_label_id = CrossEntropyLoss().ignore_index + +scores = {"test_macro_f1": []} +folds = sorted(args.data_dir.iterdir()) +for folddir in folds: + if not folddir.is_dir(): + continue + if not folddir.name.startswith("fold"): + continue + fold = int(folddir.name[4:]) + logger.info("Training fold %d", fold) + + def get_labels(path): + with open(path, "r") as f: + labels = f.read().splitlines() + if "O" not in labels: + labels = ["O"] + labels + return labels + + def count_labels(path): + with open(path, "rt") as infh: + return Counter( + spam.split(maxsplit=2)[1] for spam in infh if not spam.isspace() + ) + + labels = get_labels(folddir / "labels.txt") + # FIXME: This is really redundant + label_counts = count_labels(folddir / "train.txt") + num_labels = len(labels) + # FIXME: This is so dumb! It does nothing a list wouldn't do! + label_map = {i: label for i, label in enumerate(labels)} + + # We created our own dataset following the FUNSD conventions (see make_funsd_data.py) + args.data_dir = folddir + train_dataset = FunsdDataset( + args, tokenizer, labels, pad_token_label_id, mode="train" + ) + train_sampler = RandomSampler(train_dataset) + train_dataloader = DataLoader(train_dataset, sampler=train_sampler, batch_size=2) + + eval_dataset = FunsdDataset( + args, tokenizer, labels, pad_token_label_id, mode="test" + ) + eval_sampler = SequentialSampler(eval_dataset) + eval_dataloader = DataLoader(eval_dataset, sampler=eval_sampler, batch_size=2) + + model = MyLayoutLMForTokenClassification.from_pretrained( + "microsoft/layoutlm-base-uncased", + num_labels=num_labels, + label_weights=torch.FloatTensor([1.0 / label_counts[x] for x in labels]).to(device), + ) + model.to(device) + + # optimizer = Adafactor(model.parameters(), scale_parameter=True, relative_step=True, warmup_init=True, lr=None) + optimizer = Adafactor( + model.parameters(), + lr=5e-5, + relative_step=False, + scale_parameter=False, + warmup_init=False, + ) + + global_step = 0 + t_total = len(train_dataloader) * args.nepoch # total number of training steps + + # put the model in training mode + model.train() + for _epoch in range(args.nepoch): + for batch in tqdm(train_dataloader, desc="Training"): + input_ids = batch[0].to(device) + bbox = batch[4].to(device) + attention_mask = batch[1].to(device) + token_type_ids = batch[2].to(device) + labels = batch[3].to(device) + + # forward pass + outputs = model( + input_ids=input_ids, + bbox=bbox, + attention_mask=attention_mask, + token_type_ids=token_type_ids, + labels=labels, + ) + loss = outputs.loss + + # print loss every 50 steps + if global_step % 50 == 0: + logger.info(f"Loss after {global_step} steps: {loss.item()}") + + # backward pass to get the gradients + loss.backward() + + # print("Gradients on classification head:") + # print(model.classifier.weight.grad[6,:].sum()) + + # update + optimizer.step() + optimizer.zero_grad() + global_step += 1 + + eval_loss = 0.0 + nb_eval_steps = 0 + preds = None + out_label_ids = None + + # put model in evaluation mode + model.eval() + for batch in tqdm(eval_dataloader, desc="Evaluating"): + with torch.no_grad(): + input_ids = batch[0].to(device) + bbox = batch[4].to(device) + attention_mask = batch[1].to(device) + token_type_ids = batch[2].to(device) + labels = batch[3].to(device) + + # forward pass + outputs = model( + input_ids=input_ids, + bbox=bbox, + attention_mask=attention_mask, + token_type_ids=token_type_ids, + labels=labels, + ) + # get the loss and logits + tmp_eval_loss = outputs.loss + logits = outputs.logits + + eval_loss += tmp_eval_loss.item() + nb_eval_steps += 1 + + # compute the predictions + if preds is None: + preds = logits.detach().cpu().numpy() + out_label_ids = labels.detach().cpu().numpy() + else: + preds = np.append(preds, logits.detach().cpu().numpy(), axis=0) + out_label_ids = np.append( + out_label_ids, labels.detach().cpu().numpy(), axis=0 + ) + + # compute average evaluation loss + eval_loss = eval_loss / nb_eval_steps + preds = np.argmax(preds, axis=2) + + y_true = [[] for _ in range(out_label_ids.shape[0])] + y_pred = [[] for _ in range(out_label_ids.shape[0])] + + for i in range(out_label_ids.shape[0]): + for j in range(out_label_ids.shape[1]): + if out_label_ids[i, j] != pad_token_label_id: + y_true[i].append(label_map[out_label_ids[i][j]]) + y_pred[i].append(label_map[preds[i][j]]) + eval_labels = [ + "B-Article", + "B-Chapitre", + "B-Section", + "B-SousSection", + "B-Titre", + ] + + macro_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=eval_labels, average="macro", zero_division=0.0 + ) + scores["test_macro_f1"].append(macro_f1) + logger.info("fold %d ALL %f", fold, macro_f1) + for name in eval_labels: + label_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=[name], average="micro", zero_division=0.0 + ) + scores.setdefault(name, []).append(label_f1) + logger.info("fold %d %s %f", fold, name, label_f1) + +with open(args.scores, "wt") as outfh: + fieldnames = [ + "Label", + "Average", + *range(1, len(scores["test_macro_f1"]) + 1), + ] + writer = csv.DictWriter(outfh, fieldnames=fieldnames) + writer.writeheader() + + def makerow(name, scores): + row = {"Label": name, "Average": np.mean(scores)} + for idx, score in enumerate(scores): + row[idx + 1] = score + return row + + row = makerow("ALL", scores["test_macro_f1"]) + writer.writerow(row) + logger.info("average ALL %f", row["Average"]) + for name in eval_labels: + row = makerow(name, scores[name]) + writer.writerow(row) + logger.info("average %s %f", row["Label"], row["Average"]) + +model.save_pretrained("layoutlm-alexi") diff --git a/scripts/train_rnn.py b/scripts/train_rnn.py new file mode 100644 index 0000000..abca9bc --- /dev/null +++ b/scripts/train_rnn.py @@ -0,0 +1,292 @@ +"""Entrainer un LSTM pour segmentation/identification""" + +import argparse +import csv +import json +import logging +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.optim as optim +from poutyne import EarlyStopping, ExponentialLR, Model, ModelCheckpoint, set_seeds +from sklearn.model_selection import KFold +from sklearn_crfsuite import metrics +from torch.utils.data import DataLoader, Subset + +from alexi.segment import make_rnn_data, pad_collate_fn, pad_collate_fn_predict, RNN + + +def make_argparse(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "csvs", nargs="+", help="Fichiers CSV d'entrainement", type=Path + ) + parser.add_argument( + "--device", default="cuda:0", help="Device pour rouler l'entrainement" + ) + parser.add_argument( + "--nepoch", default=45, type=int, help="Nombre maximal d'epochs d'entrainement" + ) + parser.add_argument("--batch-size", default=32, type=int, help="Taille du batch") + parser.add_argument( + "--word-dim", default=32, type=int, help="Dimension des embeddings des mots" + ) + parser.add_argument( + "--feat-dim", default=8, type=int, help="Dimension des embeddings des traits" + ) + parser.add_argument( + "--lr", default=0.01, type=float, help="Facteur d'apprentissage" + ) + parser.add_argument( + "--gamma", default=0.99, type=float, help="Coefficient de reduction du LR" + ) + parser.add_argument( + "--bscale", default=1.0, type=float, help="Facteur applique aux debuts de bloc" + ) + parser.add_argument( + "--hidden-size", default=80, type=int, help="Largeur de la couche cachee" + ) + parser.add_argument("--early-stopping", action="store_true", help="Arret anticipe") + parser.add_argument( + "--patience", default=10, type=int, help="Patience pour arret anticipe" + ) + parser.add_argument("--seed", default=1381, type=int, help="Graine aléatoire") + parser.add_argument( + "--features", default="text+layout+structure", help="Extracteur de traits" + ) + parser.add_argument("--labels", default="literal", help="Transformateur de classes") + parser.add_argument( + "--min-count", + default=10, + type=int, + help="Seuil d'évaluation pour chaque classification", + ) + parser.add_argument( + "-x", + "--cross-validation-folds", + default=1, + type=int, + help="Faire la validation croisée pour évaluer le modèle si plus que 1.", + ) + parser.add_argument( + "-o", + "--outfile", + help="Fichier destination pour modele", + type=Path, + default="rnn.pt", + ) + parser.add_argument( + "-s", + "--scores", + help="Fichier destination pour évaluations", + ) + return parser + + +def run_cv(args, all_data, featdims, feat2id, label_counts, id2label): + kf = KFold( + n_splits=args.cross_validation_folds, shuffle=True, random_state=args.seed + ) + scores = {"test_macro_f1": []} + if args.labels == "iobonly": + eval_labels = sorted(label_counts.keys()) + else: + eval_labels = sorted( + x for x in label_counts if x[0] == "B" and label_counts[x] >= args.min_count + ) + # NOTE: This is cheating slightly since label_counts comes from + # the entire dataset + label_weights = [ + (args.bscale if x[0] == "B" else 1.0) / label_counts[x] for x in id2label + ] + veclen = len(all_data[0][0][0][1]) + device = torch.device(args.device) + + for fold, (train_idx, dev_idx) in enumerate(kf.split(all_data)): + train_data = Subset(all_data, train_idx) + train_loader = DataLoader( + train_data, + batch_size=args.batch_size, + shuffle=True, + collate_fn=pad_collate_fn, + ) + dev_data = Subset(all_data, dev_idx) + dev_loader = DataLoader( + dev_data, batch_size=args.batch_size, collate_fn=pad_collate_fn + ) + config = { + "feat2id": feat2id, + "id2label": id2label, + "featdims": featdims, + "veclen": veclen, + "label_weights": label_weights, # Unused here but included to match RNNCRF + "hidden_size": args.hidden_size, + "features": args.features, + "labels": args.labels, + } + my_network = RNN(**config) + optimizer = optim.Adam(my_network.parameters(), lr=args.lr) + loss_function = nn.CrossEntropyLoss(weight=torch.FloatTensor(label_weights)) + model = Model( + my_network, + optimizer, + loss_function, + batch_metrics=["accuracy", "f1"], + device=device, + ) + foldfile = args.outfile.with_stem(args.outfile.stem + f"_fold{fold+1}") + with open(foldfile.with_suffix(".json"), "wt", encoding="utf-8") as outfh: + json.dump(config, outfh, ensure_ascii=False, indent=2) + callbacks = [ExponentialLR(gamma=args.gamma)] + if args.early_stopping: + callbacks.append( + ModelCheckpoint( + monitor="val_fscore_macro", + filename=str(foldfile), + mode="max", + save_best_only=True, + restore_best=True, + keep_only_last_best=True, + verbose=True, + ) + ) + callbacks.append( + EarlyStopping( + monitor="val_fscore_macro", + mode="max", + patience=args.patience, + verbose=True, + ) + ) + model.fit_generator( + train_loader, + dev_loader, + epochs=args.nepoch, + callbacks=callbacks, + ) + ordering, sorted_test_data = zip( + *sorted(enumerate(dev_data), reverse=True, key=lambda x: len(x[1][0])) + ) + test_loader = DataLoader( + sorted_test_data, + batch_size=args.batch_size, # FIXME: Actually not relevant here + collate_fn=pad_collate_fn_predict, + ) + out = model.predict_generator(test_loader, concatenate_returns=False) + predictions = [] + lengths = [len(tokens) for tokens, _ in sorted_test_data] + for batch in out: + # numpy.transpose != torch.transpose because Reasons + batch = batch.transpose((0, 2, 1)).argmax(-1) + for length, row in zip(lengths, batch): + predictions.append(row[:length]) + del lengths[: len(batch)] + y_pred = [[id2label[x] for x in page] for page in predictions] + y_true = [[id2label[x] for x in page] for _, page in sorted_test_data] + macro_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=eval_labels, average="macro", zero_division=0.0 + ) + scores["test_macro_f1"].append(macro_f1) + print("fold", fold + 1, "ALL", macro_f1) + for name in eval_labels: + label_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=[name], average="micro", zero_division=0.0 + ) + scores.setdefault(name, []).append(label_f1) + print("fold", fold + 1, name, label_f1) + if not args.early_stopping: + torch.save(my_network.state_dict(), foldfile) + + with open(args.scores, "wt") as outfh: + fieldnames = [ + "Label", + "Average", + *range(1, len(scores["test_macro_f1"]) + 1), + ] + writer = csv.DictWriter(outfh, fieldnames=fieldnames) + writer.writeheader() + + def makerow(name, scores): + row = {"Label": name, "Average": np.mean(scores)} + for idx, score in enumerate(scores): + row[idx + 1] = score + return row + + row = makerow("ALL", scores["test_macro_f1"]) + writer.writerow(row) + print("average", "ALL", row["Average"]) + for name in eval_labels: + row = makerow(name, scores[name]) + writer.writerow(row) + print("average", row["Label"], row["Average"]) + + +def run_training(args, train_data, featdims, feat2id, label_counts, id2label): + train_loader = DataLoader( + train_data, + batch_size=args.batch_size, + shuffle=True, + collate_fn=pad_collate_fn, + ) + veclen = len(train_data[0][0][0][1]) + label_weights = [ + (args.bscale if x[0] == "B" else 1.0) / label_counts[x] for x in id2label + ] + device = torch.device(args.device) + config = { + "feat2id": feat2id, + "id2label": id2label, + "featdims": featdims, + "veclen": veclen, + "label_weights": label_weights, # Unused here but included to match RNNCRF + "hidden_size": args.hidden_size, + "features": args.features, + "labels": args.labels, + } + with open(args.outfile.with_suffix(".json"), "wt", encoding="utf-8") as outfh: + json.dump(config, outfh, ensure_ascii=False, indent=2) + my_network = RNN(**config) + optimizer = optim.Adam(my_network.parameters(), lr=args.lr) + loss_function = nn.CrossEntropyLoss(weight=torch.FloatTensor(label_weights)) + model = Model( + my_network, + optimizer, + loss_function, + device=device, + ) + model.fit_generator( + train_loader, + epochs=args.nepoch, + callbacks=[ + ExponentialLR(gamma=args.gamma), + ], + ) + torch.save(my_network.state_dict(), args.outfile) + + +def main(): + parser = make_argparse() + args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + set_seeds(args.seed) + if args.scores is None: + args.scores = args.outfile.with_suffix(".csv") + + all_data, featdims, feat2id, label_counts, id2label = make_rnn_data( + args.csvs, features=args.features, labels=args.labels + ) + + print("Vocabulary size:") + for feat, vals in feat2id.items(): + print(f"\t{feat}: {len(vals)}") + + if args.cross_validation_folds == 1: + run_training(args, all_data, featdims, feat2id, label_counts, id2label) + else: + run_cv(args, all_data, featdims, feat2id, label_counts, id2label) + + +if __name__ == "__main__": + main() diff --git a/scripts/train_rnn_crf.py b/scripts/train_rnn_crf.py new file mode 100644 index 0000000..6d02b83 --- /dev/null +++ b/scripts/train_rnn_crf.py @@ -0,0 +1,358 @@ +"""Entrainer un LSTM pour segmentation/identification""" + +import argparse +import csv +import json +import logging +import math +from pathlib import Path + +import numpy as np +import torch +import torch.optim as optim +from poutyne import ( + EarlyStopping, + ExponentialLR, + Model, + ModelCheckpoint, + set_seeds, + Accuracy, + F1, +) +from sklearn.model_selection import KFold +from sklearn_crfsuite import metrics +from torch.utils.data import DataLoader, Subset + +from alexi.segment import make_rnn_data, pad_collate_fn, pad_collate_fn_predict, RNNCRF + + +def make_argparse(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "csvs", nargs="+", help="Fichiers CSV d'entrainement", type=Path + ) + parser.add_argument( + "--device", default="cuda:0", help="Device pour rouler l'entrainement" + ) + parser.add_argument( + "--nepoch", default=45, type=int, help="Nombre maximal d'epochs d'entrainement" + ) + parser.add_argument("--batch-size", default=32, type=int, help="Taille du batch") + parser.add_argument( + "--word-dim", default=32, type=int, help="Dimension des embeddings des mots" + ) + parser.add_argument( + "--feat-dim", default=8, type=int, help="Dimension des embeddings des traits" + ) + parser.add_argument( + "--lr", default=0.01, type=float, help="Facteur d'apprentissage" + ) + parser.add_argument( + "--gamma", default=0.99, type=float, help="Coefficient de reduction du LR" + ) + parser.add_argument( + "--bscale", default=1.0, type=float, help="Facteur applique aux debuts de bloc" + ) + parser.add_argument( + "--hidden-size", default=80, type=int, help="Largeur de la couche cachee" + ) + parser.add_argument("--early-stopping", action="store_true", help="Arret anticipe") + parser.add_argument( + "--patience", default=10, type=int, help="Patience pour arret anticipe" + ) + parser.add_argument("--seed", default=1381, type=int, help="Graine aléatoire") + parser.add_argument( + "--features", default="text+layout+structure", help="Extracteur de traits" + ) + parser.add_argument("--labels", default="literal", help="Transformateur de classes") + parser.add_argument( + "--min-count", + default=10, + type=int, + help="Seuil d'évaluation pour chaque classification", + ) + parser.add_argument( + "-x", + "--cross-validation-folds", + default=1, + type=int, + help="Faire la validation croisée pour évaluer le modèle si plus que 1.", + ) + parser.add_argument( + "-o", + "--outfile", + help="Fichier destination pour modele", + type=Path, + default="rnn_crf.pt", + ) + parser.add_argument( + "-s", + "--scores", + help="Fichier destination pour évaluations", + ) + parser.add_argument( + "-i", + "--init-model", + help="Fichier modele pour initialisation", + default="rnn.pt", + type=Path, + ) + parser.add_argument( + "--freeze", action="store_true", help="Geler les parametres initialisees" + ) + parser.add_argument( + "--constrain", action="store_true", help="Interdire les transitions impossibles" + ) + return parser + + +class MyCRFLoss: + def __init__(self, crf): + self.crf = crf + + def __call__(self, returns, y_true): + logits, _labels, mask = returns + # CRF requires masked labels to be valid indices + y_true[~mask] = 0 + return -self.crf(logits, y_true, mask) + + +def CRFMetric(cls, *args, **kwargs): + metric = cls(*args, **kwargs) + + def crf_forward(y_pred, y_true): + _score, preds, mask = y_pred + # For some unknown reason poutyne expects logits/probabilities and not labels here + n_labels = y_true.max() + 1 + fake_logits = torch.zeros(y_true.shape + (n_labels,), device=y_true.device) + for idx, labels in enumerate(preds): + fake_logits[idx, range(len(labels)), labels] = 1.0 + # Have to set masked labels back to the ignore index + y_true[~mask] = metric.ignore_index + # Also the shape is weird because pytorch is weird + return cls.forward(metric, fake_logits.transpose(1, -1), y_true) + + metric.forward = crf_forward + return metric + + +def freeze_rnn(my_network): + for layer in my_network.embedding_layers.values(): + layer.requires_grad_(False) + my_network.lstm_layer.requires_grad_(False) + my_network.output_layer.requires_grad_(False) + + +def run_cv(args, all_data, featdims, feat2id, label_counts, label_weights, id2label): + kf = KFold( + n_splits=args.cross_validation_folds, shuffle=True, random_state=args.seed + ) + scores = {"test_macro_f1": []} + if args.labels == "iobonly": + eval_labels = sorted(label_counts.keys()) + else: + eval_labels = sorted( + x for x in label_counts if x[0] == "B" and label_counts[x] >= args.min_count + ) + veclen = len(all_data[0][0][0][1]) + device = torch.device(args.device) + + for fold, (train_idx, dev_idx) in enumerate(kf.split(all_data)): + train_data = Subset(all_data, train_idx) + train_loader = DataLoader( + train_data, + batch_size=args.batch_size, + shuffle=True, + collate_fn=pad_collate_fn, + ) + dev_data = Subset(all_data, dev_idx) + dev_loader = DataLoader( + dev_data, batch_size=args.batch_size, collate_fn=pad_collate_fn + ) + config = { + "feat2id": feat2id, + "id2label": id2label, + "featdims": featdims, + "veclen": veclen, + "label_weights": label_weights, + "hidden_size": args.hidden_size, + "features": args.features, + "labels": args.labels, + "constrain": args.constrain, + } + foldfile = args.outfile.with_stem(args.outfile.stem + f"_fold{fold+1}") + with open(foldfile.with_suffix(".json"), "wt", encoding="utf-8") as outfh: + json.dump(config, outfh, ensure_ascii=False, indent=2) + my_network = RNNCRF(**config) + if args.init_model: + fold_init = args.init_model.with_stem( + args.init_model.stem + f"_fold{fold+1}" + ) + state_dict = torch.load(fold_init) + my_network.load_state_dict(state_dict, strict=False) + if args.freeze: + freeze_rnn(my_network) + optimizer = optim.Adam(my_network.parameters(), lr=args.lr) + loss_function = MyCRFLoss(my_network.crf_layer) + model = Model( + my_network, + optimizer, + loss_function, + batch_metrics=[CRFMetric(Accuracy), CRFMetric(F1)], + device=device, + ) + callbacks = [ExponentialLR(gamma=args.gamma)] + if args.early_stopping: + callbacks.append( + ModelCheckpoint( + monitor="val_fscore_macro", + filename=str(foldfile), + mode="max", + save_best_only=True, + restore_best=True, + keep_only_last_best=True, + verbose=True, + ) + ) + callbacks.append( + EarlyStopping( + monitor="val_fscore_macro", + mode="max", + patience=args.patience, + verbose=True, + ) + ) + model.fit_generator( + train_loader, + dev_loader, + epochs=args.nepoch, + callbacks=callbacks, + ) + ordering, sorted_test_data = zip( + *sorted(enumerate(dev_data), reverse=True, key=lambda x: len(x[1][0])) + ) + test_loader = DataLoader( + sorted_test_data, + batch_size=args.batch_size, # FIXME: Actually not relevant here + collate_fn=pad_collate_fn_predict, + ) + out = model.predict_generator(test_loader, concatenate_returns=False) + predictions = [] + for batch in out: + _logits, tags, _mask = batch + predictions.extend(tags) + y_pred = [[id2label[x] for x in page] for page in predictions] + y_true = [[id2label[x] for x in page] for _, page in sorted_test_data] + macro_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=eval_labels, average="macro", zero_division=0.0 + ) + scores["test_macro_f1"].append(macro_f1) + print("fold", fold + 1, "ALL", macro_f1) + for name in eval_labels: + label_f1 = metrics.flat_f1_score( + y_true, y_pred, labels=[name], average="micro", zero_division=0.0 + ) + scores.setdefault(name, []).append(label_f1) + print("fold", fold + 1, name, label_f1) + if not args.early_stopping: + torch.save(my_network.state_dict(), foldfile) + + with open(args.scores, "wt") as outfh: + fieldnames = [ + "Label", + "Average", + *range(1, len(scores["test_macro_f1"]) + 1), + ] + writer = csv.DictWriter(outfh, fieldnames=fieldnames) + writer.writeheader() + + def makerow(name, scores): + row = {"Label": name, "Average": np.mean(scores)} + for idx, score in enumerate(scores): + row[idx + 1] = score + return row + + row = makerow("ALL", scores["test_macro_f1"]) + writer.writerow(row) + print("average", "ALL", row["Average"]) + for name in eval_labels: + row = makerow(name, scores[name]) + writer.writerow(row) + print("average", row["Label"], row["Average"]) + + +def run_training(args, train_data, featdims, feat2id, label_weights, id2label): + train_loader = DataLoader( + train_data, + batch_size=args.batch_size, + shuffle=True, + collate_fn=pad_collate_fn, + ) + veclen = len(train_data[0][0][0][1]) + device = torch.device(args.device) + config = { + "feat2id": feat2id, + "id2label": id2label, + "featdims": featdims, + "veclen": veclen, + "label_weights": label_weights, + "hidden_size": args.hidden_size, + "features": args.features, + "labels": args.labels, + "constrain": args.constrain, + } + with open(args.outfile.with_suffix(".json"), "wt", encoding="utf-8") as outfh: + json.dump(config, outfh, ensure_ascii=False, indent=2) + my_network = RNNCRF(**config) + if args.init_model: + state_dict = torch.load(args.init_model) + my_network.load_state_dict(state_dict, strict=False) + if args.freeze: + freeze_rnn(my_network) + optimizer = optim.Adam(my_network.parameters(), lr=args.lr) + loss_function = MyCRFLoss(my_network.crf_layer) + model = Model( + my_network, + optimizer, + loss_function, + device=device, + ) + model.fit_generator( + train_loader, + epochs=args.nepoch, + callbacks=[ + ExponentialLR(gamma=args.gamma), + ], + ) + torch.save(my_network.state_dict(), args.outfile) + + +def main(): + parser = make_argparse() + args = parser.parse_args() + logging.basicConfig(level=logging.INFO) + set_seeds(args.seed) + if args.scores is None: + args.scores = args.outfile.with_suffix(".csv") + + all_data, featdims, feat2id, label_counts, id2label = make_rnn_data( + args.csvs, features=args.features, labels=args.labels + ) + # Note that weights must be greater than 1.0 for training to work + label_weights = [ + (args.bscale if x[0] == "B" else 1.0) * math.exp(1.0 / label_counts[x]) + for x in id2label + ] + + print("Vocabulary size:") + for feat, vals in feat2id.items(): + print(f"\t{feat}: {len(vals)}") + + if args.cross_validation_folds == 1: + run_training(args, all_data, featdims, feat2id, label_weights, id2label) + else: + run_cv(args, all_data, featdims, feat2id, label_counts, label_weights, id2label) + + +if __name__ == "__main__": + main() diff --git a/test/test_analyse.py b/test/test_analyse.py index d19971b..7e3e5b7 100644 --- a/test/test_analyse.py +++ b/test/test_analyse.py @@ -27,7 +27,7 @@ def test_iob(): def test_analyse(): - with open(TRAINDIR / "zonage_sections.csv", "rt") as infh: + with open(TRAINDIR / "patches" / "zonage_sections.csv", "rt") as infh: reader = csv.DictReader(infh) analyseur = Analyseur("zonage_sections", reader) doc = analyseur() @@ -87,7 +87,7 @@ def test_analyse_tableaux_figures(): def test_analyse_zonage(): - with open(TRAINDIR / "zonage_zones.csv", "rt") as infh: + with open(TRAINDIR / "patches" / "zonage_zones.csv", "rt") as infh: reader = csv.DictReader(infh) analyseur = Analyseur("zonage_zones", reader) doc = analyseur() diff --git a/test/test_format.py b/test/test_format.py index de8fab6..c62da9a 100644 --- a/test/test_format.py +++ b/test/test_format.py @@ -10,7 +10,7 @@ def test_format_html(): - with open(TRAINDIR / "zonage_sections.csv", "rt") as infh: + with open(TRAINDIR / "patches" / "zonage_sections.csv", "rt") as infh: reader = csv.DictReader(infh) analyseur = Analyseur("zonage_sections", reader) doc = analyseur() diff --git a/test/test_segment.py b/test/test_segment.py index b8d59cd..e4d2440 100644 --- a/test/test_segment.py +++ b/test/test_segment.py @@ -1,14 +1,16 @@ import csv import tempfile +from dataclasses import dataclass from pathlib import Path -from alexi.segment import Segmenteur +from alexi.segment import Segmenteur, detokenize, retokenize -DATADIR = Path(__file__).parent / "data" +TESTDATADIR = Path(__file__).parent / "data" +DATADIR = Path(__file__).parent.parent / "data" def test_segment(): - with open(DATADIR / "pdf_structure.csv", "rt") as infh: + with open(TESTDATADIR / "pdf_structure.csv", "rt") as infh: reader = csv.DictReader(infh) with tempfile.TemporaryFile("w+t") as testfh: writer = csv.DictWriter(testfh, fieldnames=reader.fieldnames) @@ -17,11 +19,11 @@ def test_segment(): del word["segment"] writer.writerow(word) testfh.seek(0, 0) - seg = Segmenteur(DATADIR / "model.gz") + seg = Segmenteur(TESTDATADIR / "model.gz") reader = csv.DictReader(testfh) words = list(seg(reader)) assert len(words) > 0 - with open(DATADIR / "pdf_structure.csv", "rt") as infh: + with open(TESTDATADIR / "pdf_structure.csv", "rt") as infh: reader = csv.DictReader(infh) ref_words = list(reader) assert len(words) == len(ref_words) @@ -30,3 +32,32 @@ def test_segment(): hyp_tag = hyp["segment"].partition("-")[0] print(ref["segment"], hyp["segment"], ref["text"]) assert ref_tag == hyp_tag + + +@dataclass +class MockEncoding: + """Faux sortie de faux tokenisateur""" + + tokens: list[str] + ids: list[int] + + +class MockTokenizer: + """Faux tokenisateur.""" + + def encode(self, text: str, *_args, **_kwargs): + if len(text) > 4: + return MockEncoding(tokens=[("▁" + text[0:4]), text[4:]], ids=[333, 999]) + else: + return MockEncoding(tokens=["▁" + text], ids=[668]) + + +def test_retokenize(): + with open(DATADIR / "patches" / "zonage_titre.csv", "rt") as infh: + reader = csv.DictReader(infh) + iobs = list(reader) + tokenizer = MockTokenizer() + retokenized = retokenize(iobs, tokenizer) + assert iobs != retokenized + detokenized = list(detokenize(retokenized, tokenizer)) + assert iobs == detokenized