From c8e42b32076a48170a6554e2c253eee1c1559d9a Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 22 Apr 2024 12:57:00 +1200 Subject: [PATCH 01/76] Fixed a bug which caused NCBI_FCS_GX to not resume --- CHANGELOG.md | 15 +++++++++++++++ CITATION.cff | 2 +- nextflow.config | 2 +- subworkflows/local/ncbi_fcs_gx.nf | 3 +++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc2e51c8..47334b2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.0.0 - [22-April-2024] + +### `Added` + +### `Fixed` + +1. Fixed a bug which caused NCBI_FCS_GX to not resume + +### `Dependencies` + +1. NextFlow!>=23.04.0 +2. nf-validation@1.1.3 + +### `Deprecated` + ## 1.4 - [04-Mar-2024] ### `Added` diff --git a/CITATION.cff b/CITATION.cff index efb1b209..23125eae 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -21,7 +21,7 @@ authors: - family-names: "Deng" given-names: "Cecilia" title: "AssemblyQC: A NextFlow pipeline for evaluating assembly quality" -version: 1.4 +version: 2.0.0 date-released: 2024-02-12 url: "https://github.com/Plant-Food-Research-Open/assembly_qc" doi: 10.5281/zenodo.10647870 diff --git a/nextflow.config b/nextflow.config index f0ee1b5b..c110c029 100644 --- a/nextflow.config +++ b/nextflow.config @@ -262,7 +262,7 @@ manifest { description = """A NextFlow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '1.4' + version = '2.0.0' doi = '10.5281/zenodo.10647870' } diff --git a/subworkflows/local/ncbi_fcs_gx.nf b/subworkflows/local/ncbi_fcs_gx.nf index cc54292f..0c442a6e 100644 --- a/subworkflows/local/ncbi_fcs_gx.nf +++ b/subworkflows/local/ncbi_fcs_gx.nf @@ -16,6 +16,9 @@ workflow NCBI_FCS_GX { ch_all_samples = NCBI_FCS_GX_SETUP_SAMPLE.out.fsata | collect + | map { + it.sort(false) + } ch_versions = ch_versions.mix(NCBI_FCS_GX_SETUP_SAMPLE.out.versions.first()) From f50728b295cd2b4e930f41f4d2c2ef8f830632c3 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 22 Apr 2024 13:08:49 +1200 Subject: [PATCH 02/76] Updated modules and sub-workflows --- .editorconfig | 27 +++++++++++++ CHANGELOG.md | 2 + modules.json | 40 +++++++++---------- modules/nf-core/fastp/main.nf | 2 +- modules/nf-core/fastp/tests/main.nf.test | 18 +++++---- modules/nf-core/fastp/tests/main.nf.test.snap | 10 ++--- .../fastp/tests/nextflow.interleaved.config | 5 +++ ...low.config => nextflow.save_failed.config} | 3 +- modules/nf-core/fastqc/main.nf | 6 +++ modules/nf-core/untar/tests/main.nf.test | 8 ---- modules/nf-core/untar/tests/main.nf.test.snap | 12 +++++- modules/pfr/bwa/index/tests/main.nf.test | 2 +- modules/pfr/bwa/mem/tests/main.nf.test | 2 +- modules/pfr/cat/cat/tests/main.nf.test | 2 +- .../tests/main.nf.test | 2 +- .../custom/restoregffids/tests/main.nf.test | 2 +- .../custom/shortenfastaids/tests/main.nf.test | 2 +- modules/pfr/gt/gff3/tests/main.nf.test | 2 +- .../pfr/gt/gff3validator/tests/main.nf.test | 2 +- modules/pfr/gt/stat/tests/main.nf.test | 2 +- modules/pfr/ltrfinder/tests/main.nf.test | 2 +- modules/pfr/ltrharvest/tests/main.nf.test | 2 +- .../pfr/ltrretriever/lai/tests/main.nf.test | 2 +- .../ltrretriever/tests/main.nf.test | 2 +- modules/pfr/samblaster/tests/main.nf.test | 2 +- .../fasta_ltrretriever_lai/tests/main.nf.test | 2 +- .../tests/main.nf.test | 2 +- .../pfr/gff3_validate/tests/main.nf.test | 2 +- 28 files changed, 104 insertions(+), 63 deletions(-) create mode 100644 modules/nf-core/fastp/tests/nextflow.interleaved.config rename modules/nf-core/fastp/tests/{nextflow.config => nextflow.save_failed.config} (50%) diff --git a/.editorconfig b/.editorconfig index 8719a7f9..eb77d1dd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -20,6 +20,33 @@ trim_trailing_whitespace = unset indent_style = unset indent_size = unset +# These files are edited and tested upstream in nf-core/subworkflows +[/subworkflows/nf-core/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + +# These files are edited and tested upstream in pfr/modules +[/modules/pfr/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + +# These files are edited and tested upstream in pfr/subworkflows +[/subworkflows/pfr/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + [/assets/email*] indent_size = unset diff --git a/CHANGELOG.md b/CHANGELOG.md index 47334b2c..9a3aa939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Added` +1. Updated modules and sub-workflows + ### `Fixed` 1. Fixed a bug which caused NCBI_FCS_GX to not resume diff --git a/modules.json b/modules.json index a25581b4..d817ded9 100644 --- a/modules.json +++ b/modules.json @@ -7,72 +7,72 @@ "pfr": { "bwa/index": { "branch": "main", - "git_sha": "6410ddc6dfcee5ed480f47199cbd527662cdf5fe", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fastq_bwa_mem_samblaster"] }, "bwa/mem": { "branch": "main", - "git_sha": "6410ddc6dfcee5ed480f47199cbd527662cdf5fe", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fastq_bwa_mem_samblaster"] }, "cat/cat": { "branch": "main", - "git_sha": "6410ddc6dfcee5ed480f47199cbd527662cdf5fe", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "custom/checkgff3fastacorrespondence": { "branch": "main", - "git_sha": "1a76f884082c786760559c462063a5d1de94ca83", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["gff3_validate"] }, "custom/restoregffids": { "branch": "main", - "git_sha": "e9f6bdd634bdbcd52c5568ba82f16176ec06631f", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "custom/shortenfastaids": { "branch": "main", - "git_sha": "5e0e41b51d7fc7f68ae43692b6fe19b95d7f3a8c", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "gt/gff3": { "branch": "main", - "git_sha": "bfa4874d3942bdff70cb8df17322834125cafb28", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["gff3_validate"] }, "gt/gff3validator": { "branch": "main", - "git_sha": "889b9b57b611dcb063594608c2a222c928327cba", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["gff3_validate"] }, "gt/stat": { "branch": "main", - "git_sha": "cb5fb0be78a98fd1e32b7c90d6adf8c3bf44133e", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["modules"] }, "ltrfinder": { "branch": "main", - "git_sha": "835879b8f174bb4d2c5534d0381ffbe62cc1b060", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "ltrharvest": { "branch": "main", - "git_sha": "6410ddc6dfcee5ed480f47199cbd527662cdf5fe", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "ltrretriever/lai": { "branch": "main", - "git_sha": "154661d7c1769532ff7b5f11259644ec200dd47d", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "ltrretriever/ltrretriever": { "branch": "main", - "git_sha": "835879b8f174bb4d2c5534d0381ffbe62cc1b060", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, "samblaster": { "branch": "main", - "git_sha": "6410ddc6dfcee5ed480f47199cbd527662cdf5fe", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fastq_bwa_mem_samblaster"] } } @@ -81,17 +81,17 @@ "pfr": { "fasta_ltrretriever_lai": { "branch": "main", - "git_sha": "f148f5384395618fc706b6e2f059bd1ce037d06c", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["subworkflows"] }, "fastq_bwa_mem_samblaster": { "branch": "main", - "git_sha": "9639ac9a556898d0f0e8592bff24585c33326458", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["subworkflows"] }, "gff3_validate": { "branch": "main", - "git_sha": "f9b96bf8142a01f0649ff90570fb10aa973504b9", + "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["subworkflows"] } } @@ -112,12 +112,12 @@ }, "fastp": { "branch": "master", - "git_sha": "003920c7f9a8ae19b69a97171922880220bedf56", + "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", "installed_by": ["fastq_trim_fastp_fastqc"] }, "fastqc": { "branch": "master", - "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["fastq_trim_fastp_fastqc"] }, "gunzip": { @@ -152,7 +152,7 @@ }, "untar": { "branch": "master", - "git_sha": "e719354ba77df0a1bd310836aa2039b45c29d620", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", "installed_by": ["modules"] } } diff --git a/modules/nf-core/fastp/main.nf b/modules/nf-core/fastp/main.nf index 2a3b679e..4fc19b74 100644 --- a/modules/nf-core/fastp/main.nf +++ b/modules/nf-core/fastp/main.nf @@ -29,7 +29,7 @@ process FASTP { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def adapter_list = adapter_fasta ? "--adapter_fasta ${adapter_fasta}" : "" - def fail_fastq = save_trimmed_fail && meta.single_end ? "--failed_out ${prefix}.fail.fastq.gz" : save_trimmed_fail && !meta.single_end ? "--unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : '' + def fail_fastq = save_trimmed_fail && meta.single_end ? "--failed_out ${prefix}.fail.fastq.gz" : save_trimmed_fail && !meta.single_end ? "--failed_out ${prefix}.paired.fail.fastq.gz --unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : '' // Added soft-links to original fastqs for consistent naming in MultiQC // Use single ended for interleaved. Add --interleaved_in in config. if ( task.ext.args?.contains('--interleaved_in') ) { diff --git a/modules/nf-core/fastp/tests/main.nf.test b/modules/nf-core/fastp/tests/main.nf.test index 9b3f9a38..6f1f4897 100644 --- a/modules/nf-core/fastp/tests/main.nf.test +++ b/modules/nf-core/fastp/tests/main.nf.test @@ -251,7 +251,8 @@ nextflow_process { } test("fastp test_fastp_interleaved") { - config './nextflow.config' + + config './nextflow.interleaved.config' when { params { outdir = "$outputDir" @@ -277,7 +278,7 @@ nextflow_process { def html_text = [ "Q20 bases:25.719000 K (93.033098%)", "paired end (151 cycles + 151 cycles)"] def log_text = [ "Q20 bases: 12922(92.9841%)", - "reads passed filter: 198"] + "reads passed filter: 162"] def read_lines = [ "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE - { assert path(process.out.reads_fail.get(0).get(1).get(1)).linesGzip.contains(failed_read2_line) } + { assert path(process.out.reads_fail.get(0).get(1).get(2)).linesGzip.contains(failed_read2_line) } } }, { html_text.each { html_part -> diff --git a/modules/nf-core/fastp/tests/main.nf.test.snap b/modules/nf-core/fastp/tests/main.nf.test.snap index b4c0e1dd..3e876288 100644 --- a/modules/nf-core/fastp/tests/main.nf.test.snap +++ b/modules/nf-core/fastp/tests/main.nf.test.snap @@ -7,7 +7,7 @@ "id": "test", "single_end": true }, - "test.fastp.json:md5,168f516f7bd4b7b6c32da7cba87299a4" + "test.fastp.json:md5,b24e0624df5cc0b11cd5ba21b726fb22" ] ] ], @@ -15,7 +15,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-01-17T18:08:06.123035" + "timestamp": "2024-03-18T16:19:15.063001" }, "test_fastp_paired_end_merged-for_stub_match": { "content": [ @@ -65,7 +65,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-01-17T18:06:00.223817" + "timestamp": "2024-03-18T16:18:43.526412" }, "versions_paired_end": { "content": [ @@ -112,7 +112,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-01T12:03:37.827323085" + "timestamp": "2024-03-18T16:19:15.111894" }, "test_fastp_paired_end_merged_match": { "content": [ @@ -283,7 +283,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-01T11:57:30.791982648" + "timestamp": "2024-03-18T16:18:43.580336" }, "versions_paired_end_merged_adapterlist": { "content": [ diff --git a/modules/nf-core/fastp/tests/nextflow.interleaved.config b/modules/nf-core/fastp/tests/nextflow.interleaved.config new file mode 100644 index 00000000..4be8dbd2 --- /dev/null +++ b/modules/nf-core/fastp/tests/nextflow.interleaved.config @@ -0,0 +1,5 @@ +process { + withName: FASTP { + ext.args = "--interleaved_in -e 30" + } +} diff --git a/modules/nf-core/fastp/tests/nextflow.config b/modules/nf-core/fastp/tests/nextflow.save_failed.config similarity index 50% rename from modules/nf-core/fastp/tests/nextflow.config rename to modules/nf-core/fastp/tests/nextflow.save_failed.config index 0f7849ad..53b61b0c 100644 --- a/modules/nf-core/fastp/tests/nextflow.config +++ b/modules/nf-core/fastp/tests/nextflow.save_failed.config @@ -1,6 +1,5 @@ process { - withName: FASTP { - ext.args = "--interleaved_in" + ext.args = "-e 30" } } diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 9e19a74c..d79f1c86 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -25,6 +25,11 @@ process FASTQC { def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + + def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') + // FastQC memory value allowed range (100 - 10000) + def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) + """ printf "%s %s\\n" $rename_to | while read old_name new_name; do [ -f "\${new_name}" ] || ln -s \$old_name \$new_name @@ -33,6 +38,7 @@ process FASTQC { fastqc \\ $args \\ --threads $task.cpus \\ + --memory $fastqc_memory \\ $renamed_files cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/untar/tests/main.nf.test b/modules/nf-core/untar/tests/main.nf.test index 679e83c7..2a7c97bf 100644 --- a/modules/nf-core/untar/tests/main.nf.test +++ b/modules/nf-core/untar/tests/main.nf.test @@ -3,17 +3,12 @@ nextflow_process { name "Test Process UNTAR" script "../main.nf" process "UNTAR" - tag "modules" tag "modules_nfcore" tag "untar" - test("test_untar") { when { - params { - outdir = "$outputDir" - } process { """ input[0] = [ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/kraken2.tar.gz', checkIfExists: true) ] @@ -33,9 +28,6 @@ nextflow_process { test("test_untar_onlyfiles") { when { - params { - outdir = "$outputDir" - } process { """ input[0] = [ [], file(params.modules_testdata_base_path + 'generic/tar/hello.tar.gz', checkIfExists: true) ] diff --git a/modules/nf-core/untar/tests/main.nf.test.snap b/modules/nf-core/untar/tests/main.nf.test.snap index ace42576..64550292 100644 --- a/modules/nf-core/untar/tests/main.nf.test.snap +++ b/modules/nf-core/untar/tests/main.nf.test.snap @@ -12,7 +12,11 @@ ] ] ], - "timestamp": "2023-10-18T11:56:46.878844" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:49:41.320643" }, "test_untar": { "content": [ @@ -29,6 +33,10 @@ ] ] ], - "timestamp": "2023-10-18T11:56:08.16574" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:49:33.795172" } } \ No newline at end of file diff --git a/modules/pfr/bwa/index/tests/main.nf.test b/modules/pfr/bwa/index/tests/main.nf.test index af33e73c..b0d2c726 100644 --- a/modules/pfr/bwa/index/tests/main.nf.test +++ b/modules/pfr/bwa/index/tests/main.nf.test @@ -30,4 +30,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/bwa/mem/tests/main.nf.test b/modules/pfr/bwa/mem/tests/main.nf.test index 2696e4bf..804f23f7 100644 --- a/modules/pfr/bwa/mem/tests/main.nf.test +++ b/modules/pfr/bwa/mem/tests/main.nf.test @@ -170,4 +170,4 @@ nextflow_process { } } -} +} \ No newline at end of file diff --git a/modules/pfr/cat/cat/tests/main.nf.test b/modules/pfr/cat/cat/tests/main.nf.test index fcee2d19..0ac8549e 100644 --- a/modules/pfr/cat/cat/tests/main.nf.test +++ b/modules/pfr/cat/cat/tests/main.nf.test @@ -175,4 +175,4 @@ nextflow_process { ) } } -} +} \ No newline at end of file diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test b/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test index 91578e5b..a45992c2 100644 --- a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test +++ b/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test @@ -67,4 +67,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/custom/restoregffids/tests/main.nf.test b/modules/pfr/custom/restoregffids/tests/main.nf.test index 521b9248..cc374b76 100644 --- a/modules/pfr/custom/restoregffids/tests/main.nf.test +++ b/modules/pfr/custom/restoregffids/tests/main.nf.test @@ -60,4 +60,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/custom/shortenfastaids/tests/main.nf.test b/modules/pfr/custom/shortenfastaids/tests/main.nf.test index dc46bae5..efff639e 100644 --- a/modules/pfr/custom/shortenfastaids/tests/main.nf.test +++ b/modules/pfr/custom/shortenfastaids/tests/main.nf.test @@ -128,4 +128,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/gt/gff3/tests/main.nf.test b/modules/pfr/gt/gff3/tests/main.nf.test index cb44bc8f..b57439ef 100644 --- a/modules/pfr/gt/gff3/tests/main.nf.test +++ b/modules/pfr/gt/gff3/tests/main.nf.test @@ -58,4 +58,4 @@ nextflow_process { } } -} +} \ No newline at end of file diff --git a/modules/pfr/gt/gff3validator/tests/main.nf.test b/modules/pfr/gt/gff3validator/tests/main.nf.test index 1b99e551..9addd7d8 100644 --- a/modules/pfr/gt/gff3validator/tests/main.nf.test +++ b/modules/pfr/gt/gff3validator/tests/main.nf.test @@ -60,4 +60,4 @@ nextflow_process { } } -} +} \ No newline at end of file diff --git a/modules/pfr/gt/stat/tests/main.nf.test b/modules/pfr/gt/stat/tests/main.nf.test index 57f5992c..8736d013 100644 --- a/modules/pfr/gt/stat/tests/main.nf.test +++ b/modules/pfr/gt/stat/tests/main.nf.test @@ -34,4 +34,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/ltrfinder/tests/main.nf.test b/modules/pfr/ltrfinder/tests/main.nf.test index 447ce34d..361e7324 100644 --- a/modules/pfr/ltrfinder/tests/main.nf.test +++ b/modules/pfr/ltrfinder/tests/main.nf.test @@ -69,4 +69,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/ltrharvest/tests/main.nf.test b/modules/pfr/ltrharvest/tests/main.nf.test index 9226bc0c..76b49476 100644 --- a/modules/pfr/ltrharvest/tests/main.nf.test +++ b/modules/pfr/ltrharvest/tests/main.nf.test @@ -57,4 +57,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/ltrretriever/lai/tests/main.nf.test b/modules/pfr/ltrretriever/lai/tests/main.nf.test index df7db2cf..a617811b 100644 --- a/modules/pfr/ltrretriever/lai/tests/main.nf.test +++ b/modules/pfr/ltrretriever/lai/tests/main.nf.test @@ -163,4 +163,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/ltrretriever/ltrretriever/tests/main.nf.test b/modules/pfr/ltrretriever/ltrretriever/tests/main.nf.test index f6ab43db..e8e13a60 100644 --- a/modules/pfr/ltrretriever/ltrretriever/tests/main.nf.test +++ b/modules/pfr/ltrretriever/ltrretriever/tests/main.nf.test @@ -130,4 +130,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/modules/pfr/samblaster/tests/main.nf.test b/modules/pfr/samblaster/tests/main.nf.test index 01794307..06bb9162 100644 --- a/modules/pfr/samblaster/tests/main.nf.test +++ b/modules/pfr/samblaster/tests/main.nf.test @@ -54,4 +54,4 @@ nextflow_process { } -} +} \ No newline at end of file diff --git a/subworkflows/pfr/fasta_ltrretriever_lai/tests/main.nf.test b/subworkflows/pfr/fasta_ltrretriever_lai/tests/main.nf.test index 7ba88ab6..2f31d1d1 100644 --- a/subworkflows/pfr/fasta_ltrretriever_lai/tests/main.nf.test +++ b/subworkflows/pfr/fasta_ltrretriever_lai/tests/main.nf.test @@ -181,4 +181,4 @@ nextflow_workflow { ) } } -} +} \ No newline at end of file diff --git a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test index 1e279e48..9c3e2b01 100644 --- a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test +++ b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test @@ -41,4 +41,4 @@ nextflow_workflow { ) } } -} +} \ No newline at end of file diff --git a/subworkflows/pfr/gff3_validate/tests/main.nf.test b/subworkflows/pfr/gff3_validate/tests/main.nf.test index e71712b8..14c33ae2 100644 --- a/subworkflows/pfr/gff3_validate/tests/main.nf.test +++ b/subworkflows/pfr/gff3_validate/tests/main.nf.test @@ -83,4 +83,4 @@ nextflow_workflow { ) } } -} +} \ No newline at end of file From 15cac9d16d3020a3616b640b2d7ab6e31fe2444e Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 22 Apr 2024 13:21:35 +1200 Subject: [PATCH 03/76] Template update for nf-core/tools version 2.13.2.dev0 --- .devcontainer/devcontainer.json | 10 +- .editorconfig | 9 +- .github/CONTRIBUTING.md | 9 +- .github/ISSUE_TEMPLATE/bug_report.yml | 100 ++-- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/branch.yml | 2 +- .github/workflows/ci.yml | 7 +- .github/workflows/clean-up.yml | 2 +- .github/workflows/download_pipeline.yml | 37 +- .github/workflows/fix-linting.yml | 59 ++- .github/workflows/linting.yml | 18 +- .github/workflows/linting_comment.yml | 4 +- .github/workflows/release-announcements.yml | 11 +- .gitpod.yml | 6 +- .nf-core.yml | 31 +- .pre-commit-config.yaml | 5 +- CHANGELOG.md | 2 +- LICENSE | 2 +- README.md | 9 +- assets/email_template.html | 2 +- assets/multiqc_config.yml | 6 +- assets/schema_input.json | 21 +- bin/check_samplesheet.py | 259 ----------- conf/base.config | 3 - conf/modules.config | 16 - lib/NfcoreTemplate.groovy | 351 -------------- lib/Utils.groovy | 47 -- lib/WorkflowAssemblyqc.groovy | 122 ----- lib/WorkflowMain.groovy | 63 --- lib/nfcore_external_java_deps.jar | Bin 2291171 -> 0 bytes main.nf | 100 ++-- modules.json | 28 +- modules/local/samplesheet_check.nf | 31 -- .../dumpsoftwareversions/environment.yml | 7 - .../custom/dumpsoftwareversions/main.nf | 24 - .../custom/dumpsoftwareversions/meta.yml | 37 -- .../templates/dumpsoftwareversions.py | 102 ---- .../dumpsoftwareversions/tests/main.nf.test | 38 -- .../tests/main.nf.test.snap | 27 -- .../dumpsoftwareversions/tests/tags.yml | 2 - modules/nf-core/fastqc/tests/main.nf.test | 265 +++++++---- .../nf-core/fastqc/tests/main.nf.test.snap | 82 +++- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 6 +- modules/nf-core/multiqc/meta.yml | 1 - modules/nf-core/multiqc/tests/main.nf.test | 53 ++- .../nf-core/multiqc/tests/main.nf.test.snap | 41 ++ nextflow.config | 12 +- nextflow_schema.json | 3 +- pyproject.toml | 13 - subworkflows/local/input_check.nf | 44 -- .../utils_nfcore_assemblyqc_pipeline/main.nf | 255 ++++++++++ .../nf-core/utils_nextflow_pipeline/main.nf | 126 +++++ .../nf-core/utils_nextflow_pipeline/meta.yml | 38 ++ .../tests/main.function.nf.test | 54 +++ .../tests/main.function.nf.test.snap | 20 + .../tests/main.workflow.nf.test | 111 +++++ .../tests/nextflow.config | 9 + .../utils_nextflow_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfcore_pipeline/main.nf | 440 ++++++++++++++++++ .../nf-core/utils_nfcore_pipeline/meta.yml | 24 + .../tests/main.function.nf.test | 134 ++++++ .../tests/main.function.nf.test.snap | 166 +++++++ .../tests/main.workflow.nf.test | 29 ++ .../tests/main.workflow.nf.test.snap | 19 + .../tests/nextflow.config | 9 + .../utils_nfcore_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfvalidation_plugin/main.nf | 62 +++ .../utils_nfvalidation_plugin/meta.yml | 44 ++ .../tests/main.nf.test | 200 ++++++++ .../tests/nextflow_schema.json | 96 ++++ .../utils_nfvalidation_plugin/tests/tags.yml | 2 + workflows/assemblyqc.nf | 148 +++--- 73 files changed, 2550 insertions(+), 1573 deletions(-) delete mode 100755 bin/check_samplesheet.py delete mode 100755 lib/NfcoreTemplate.groovy delete mode 100644 lib/Utils.groovy delete mode 100755 lib/WorkflowAssemblyqc.groovy delete mode 100755 lib/WorkflowMain.groovy delete mode 100644 lib/nfcore_external_java_deps.jar delete mode 100644 modules/local/samplesheet_check.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/environment.yml delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/main.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/meta.yml delete mode 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml create mode 100644 modules/nf-core/multiqc/tests/main.nf.test.snap delete mode 100644 pyproject.toml delete mode 100644 subworkflows/local/input_check.nf create mode 100644 subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/main.nf create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4ecfbfe3..b290e090 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,15 +10,7 @@ "vscode": { // Set *default* container specific settings.json values on container create. "settings": { - "python.defaultInterpreterPath": "/opt/conda/bin/python", - "python.linting.enabled": true, - "python.linting.pylintEnabled": true, - "python.formatting.autopep8Path": "/opt/conda/bin/autopep8", - "python.formatting.yapfPath": "/opt/conda/bin/yapf", - "python.linting.flake8Path": "/opt/conda/bin/flake8", - "python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle", - "python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle", - "python.linting.pylintPath": "/opt/conda/bin/pylint" + "python.defaultInterpreterPath": "/opt/conda/bin/python" }, // Add the IDs of extensions you want installed when the container is created. diff --git a/.editorconfig b/.editorconfig index 9b990088..dd9ffa53 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,7 +18,12 @@ end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset +[/subworkflows/nf-core/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset [/assets/email*] indent_size = unset @@ -28,5 +33,5 @@ indent_size = unset indent_style = unset # ignore python -[*.{py}] +[*.{py,md}] indent_style = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ab01b3d5..0144e255 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -23,8 +23,11 @@ If you're not used to this workflow with git, you can start with some [docs from ## Tests -You can optionally test your changes by running the pipeline locally. Then it is recommended to use the `debug` profile to -receive warnings about process selectors and other debug info. Example: `nextflow run . -profile debug,test,docker --outdir `. +You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command: + +```bash +nf-test test --profile debug,test,docker --verbose +``` When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests. Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then. @@ -82,7 +85,7 @@ Once there, use `nf-core schema build` to add to `nextflow_schema.json`. Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels. -The process resources can be passed on to the tool dynamically within the process with the `${task.cpu}` and `${task.memory}` variables in the `script:` block. +The process resources can be passed on to the tool dynamically within the process with the `${task.cpus}` and `${task.memory}` variables in the `script:` block. ### Naming schemes diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c22d7e64..af436aa6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,53 +2,53 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: -- type: textarea - id: description - attributes: - label: Description of the bug - description: A clear and concise description of what the bug is. - validations: - required: true -- type: textarea - id: command_used - attributes: - label: Command used and terminal output - description: Steps to reproduce the behaviour. Please paste the command you used - to launch the pipeline and the output from your terminal. - render: console - placeholder: '$ nextflow run ... - - - Some output where something broke - - ' -- type: textarea - id: files - attributes: - label: Relevant files - description: 'Please drag and drop the relevant files here. Create a `.zip` archive - if the extension is not allowed. - - Your verbose log file `.nextflow.log` is often useful _(this is a hidden file - in the directory where you launched the pipeline)_ as well as custom Nextflow - configuration files. - - ' -- type: textarea - id: system - attributes: - label: System information - description: '* Nextflow version _(eg. 23.04.0)_ - - * Hardware _(eg. HPC, Desktop, Cloud)_ - - * Executor _(eg. slurm, local, awsbatch)_ - - * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud, - or Apptainer)_ - - * OS _(eg. CentOS Linux, macOS, Linux Mint)_ - - * Version of plant-food-research-open/assemblyqc _(eg. 1.1, 1.5, 1.8.2)_ - - ' + - type: textarea + id: description + attributes: + label: Description of the bug + description: A clear and concise description of what the bug is. + validations: + required: true + - type: textarea + id: command_used + attributes: + label: Command used and terminal output + description: Steps to reproduce the behaviour. Please paste the command you used + to launch the pipeline and the output from your terminal. + render: console + placeholder: "$ nextflow run ... + + + Some output where something broke + + " + - type: textarea + id: files + attributes: + label: Relevant files + description: "Please drag and drop the relevant files here. Create a `.zip` archive + if the extension is not allowed. + + Your verbose log file `.nextflow.log` is often useful _(this is a hidden file + in the directory where you launched the pipeline)_ as well as custom Nextflow + configuration files. + + " + - type: textarea + id: system + attributes: + label: System information + description: "* Nextflow version _(eg. 23.04.0)_ + + * Hardware _(eg. HPC, Desktop, Cloud)_ + + * Executor _(eg. slurm, local, awsbatch)_ + + * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter, Charliecloud, + or Apptainer)_ + + * OS _(eg. CentOS Linux, macOS, Linux Mint)_ + + * Version of plant-food-research-open/assemblyqc _(eg. 1.1, 1.5, 1.8.2)_ + + " diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3da295ca..86930edb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/plant-food-r - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/plant-food-research-open/assemblyqc/tree/master/.github/CONTRIBUTING.md) - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). +- [ ] Ensure the test suite passes (`nf-test test tests/ --verbose --profile +docker`). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 752ea1bf..9186934e 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -19,7 +19,7 @@ jobs: # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets - name: Post PR comment if: failure() - uses: mshick/add-pr-comment@v2 + uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2 with: message: | ## This PR is against the `master` branch :x: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e9668cc..ce5b32ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,13 +28,16 @@ jobs: - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 with: version: "${{ matrix.NXF_VER }}" + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + - name: Run pipeline with test data # TODO nf-core: You can customise CI pipeline run tests as required # For example: adding multiple test runs with different parameters diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml index e37cfda5..0b6b1f27 100644 --- a/.github/workflows/clean-up.yml +++ b/.github/workflows/clean-up.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v9 + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 with: stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 47168689..2d20d644 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -6,9 +6,16 @@ name: Test successful pipeline download with 'nf-core download' # - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev. on: workflow_dispatch: + inputs: + testbranch: + description: "The specific branch you wish to utilize for the test execution of nf-core download." + required: true + default: "dev" pull_request: types: - opened + - edited + - synchronize branches: - master pull_request_target: @@ -20,16 +27,19 @@ env: jobs: download: - runs-on: ["self-hosted"] + runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@v5 + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - - uses: eWaterCycle/setup-singularity@v7 + - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: singularity-version: 3.8.3 @@ -42,13 +52,13 @@ jobs: run: | echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV} echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV} - echo "REPO_BRANCH=${GITHUB_REF#refs/heads/}" >> ${GITHUB_ENV} + echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV} - name: Download the pipeline env: NXF_SINGULARITY_CACHEDIR: ./ run: | - nf-core download ${{ env.REPO_LOWERCASE }} \ + nf-core download ${{ env.REPO_LOWERCASE }} \ --revision ${{ env.REPO_BRANCH }} \ --outdir ./${{ env.REPOTITLE_LOWERCASE }} \ --compress "none" \ @@ -60,8 +70,17 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline + - name: Run the downloaded pipeline (stub) + id: stub_run_pipeline + continue-on-error: true + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + - name: Run the downloaded pipeline (stub run not supported) + id: run_pipeline + if: ${{ job.steps.stub_run_pipeline.status == failure() }} env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 41963bec..52217b84 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -4,7 +4,7 @@ on: types: [created] jobs: - deploy: + fix-linting: # Only run if comment is on a PR with the main repo, and if it contains the magic keywords if: > contains(github.event.comment.html_url, '/pull/') && @@ -13,10 +13,17 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} + # indication that the linting is being fixed + - name: React on comment + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: eyes + # Action runs on the issue comment, so we don't get the PR by default # Use the gh cli to check out the PR - name: Checkout Pull Request @@ -24,25 +31,59 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + # Install and run pre-commit + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 - cache: "pip" + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit - name: Run pre-commit - run: pre-commit run --all-files || echo "status=fail" >> $GITHUB_ENV + id: pre-commit + run: pre-commit run --all-files + continue-on-error: true + + # indication that the linting has finished + - name: react if linting finished succesfully + if: steps.pre-commit.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: "+1" - name: Commit & push changes - if: env.status == 'fail' + id: commit-and-push + if: steps.pre-commit.outcome == 'failure' run: | git config user.email "core@nf-co.re" git config user.name "nf-core-bot" git config push.default upstream git add . git status - git commit -m "[automated] Fix linting with pre-commit" + git commit -m "[automated] Fix code linting" git push + + - name: react if linting errors were fixed + id: react-if-fixed + if: steps.commit-and-push.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: hooray + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: confused + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + issue-number: ${{ github.event.issue.number }} + body: | + @${{ github.actor }} I tried to fix the linting errors, but it didn't work. Please fix them manually. + See [CI log](https://github.com/plant-food-research-open/assemblyqc/actions/runs/${{ github.run_id }}) for more details. diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 81cd098e..a225c816 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,12 +14,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + - name: Set up Python 3.12 + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" cache: "pip" - name: Install pre-commit @@ -32,14 +32,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - name: Install dependencies @@ -60,7 +60,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 147bcd10..40acc23f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 with: workflow: linting.yml workflow_conclusion: completed @@ -21,7 +21,7 @@ jobs: run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 21ac3f06..03ecfcf7 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -9,6 +9,11 @@ jobs: toot: runs-on: ubuntu-latest steps: + - name: get topics and convert to hashtags + id: get_topics + run: | + echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT + - uses: rzr/fediverse-action@master with: access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} @@ -20,11 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} + ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics + send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.10" - name: Install dependencies @@ -56,7 +63,7 @@ jobs: bsky-post: runs-on: ubuntu-latest steps: - - uses: zentered/bluesky-post-action@v0.1.0 + - uses: zentered/bluesky-post-action@80dbe0a7697de18c15ad22f4619919ceb5ccf597 # v0.1.0 with: post: | Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! diff --git a/.gitpod.yml b/.gitpod.yml index 363d5b1d..105a1821 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -10,13 +10,11 @@ tasks: vscode: extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting + # - nextflow.nextflow # Nextflow syntax highlighting - oderwat.indent-rainbow # Highlight indentation level - streetsidesoftware.code-spell-checker # Spelling checker for source code + - charliermarsh.ruff # Code linter Ruff diff --git a/.nf-core.yml b/.nf-core.yml index 98319d1b..71f34ac4 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,23 +1,24 @@ lint: files_exist: - - CODE_OF_CONDUCT.md - - assets/nf-core-assemblyqc_logo_light.png - - docs/images/nf-core-assemblyqc_logo_light.png - - docs/images/nf-core-assemblyqc_logo_dark.png - - .github/ISSUE_TEMPLATE/config.yml - - .github/workflows/awstest.yml - - .github/workflows/awsfulltest.yml + - CODE_OF_CONDUCT.md + - assets/nf-core-assemblyqc_logo_light.png + - docs/images/nf-core-assemblyqc_logo_light.png + - docs/images/nf-core-assemblyqc_logo_dark.png + - .github/ISSUE_TEMPLATE/config.yml + - .github/workflows/awstest.yml + - .github/workflows/awsfulltest.yml files_unchanged: - - CODE_OF_CONDUCT.md - - assets/nf-core-assemblyqc_logo_light.png - - docs/images/nf-core-assemblyqc_logo_light.png - - docs/images/nf-core-assemblyqc_logo_dark.png - - .github/ISSUE_TEMPLATE/bug_report.yml + - CODE_OF_CONDUCT.md + - assets/nf-core-assemblyqc_logo_light.png + - docs/images/nf-core-assemblyqc_logo_light.png + - docs/images/nf-core-assemblyqc_logo_dark.png + - .github/ISSUE_TEMPLATE/bug_report.yml multiqc_config: - - report_comment + - report_comment nextflow_config: - - manifest.name - - manifest.homePage + - manifest.name + - manifest.homePage +nf_core_version: 2.13.2.dev0 repository_type: pipeline template: prefix: plant-food-research-open diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 984321ff..4dc0f1dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,11 @@ repos: - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.1.1" + rev: "v3.1.0" hooks: - id: prettier + additional_dependencies: + - prettier@3.2.5 + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4aed6c94..59ee0da8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v1.4dev - [date] +## v2.0.0 - [date] Initial release of plant-food-research-open/assemblyqc, created with the [nf-core](https://nf-co.re/) template. diff --git a/LICENSE b/LICENSE index bee1bb59..96e3eb88 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Usman Rashid +Copyright (c) Usman Rashid, Ken Smith, Ross Crowhurst, Chen Wu, Marcus Davy Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 92b64574..5ea7ea72 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ -[![GitHub Actions CI Status](https://github.com/plant-food-research-open/assemblyqc/workflows/nf-core%20CI/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions?query=workflow%3A%22nf-core+CI%22) -[![GitHub Actions Linting Status](https://github.com/plant-food-research-open/assemblyqc/workflows/nf-core%20linting/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions?query=workflow%3A%22nf-core+linting%22)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) +[![GitHub Actions CI Status](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/ci.yml/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/ci.yml) +[![GitHub Actions Linting Status](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/linting.yml/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) +[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) ## Introduction @@ -62,7 +63,7 @@ nextflow run plant-food-research-open/assemblyqc \ ## Credits -plant-food-research-open/assemblyqc was originally written by Usman Rashid. +plant-food-research-open/assemblyqc was originally written by Usman Rashid, Ken Smith, Ross Crowhurst, Chen Wu, Marcus Davy. We thank the following people for their extensive assistance in the development of this pipeline: diff --git a/assets/email_template.html b/assets/email_template.html index fa1b2da2..5a56215f 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -4,7 +4,7 @@ - + plant-food-research-open/assemblyqc Pipeline Report diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 6d8df9b7..759adecd 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,6 +1,8 @@ report_comment: > - This report has been generated by the plant-food-research-open/assemblyqc + + This report has been generated by the plant-food-research-open/assemblyqc analysis pipeline. + report_section_order: "plant-food-research-open-assemblyqc-methods-description": order: -1000 @@ -10,3 +12,5 @@ report_section_order: order: -1002 export_plots: true + +disable_version_detection: true diff --git a/assets/schema_input.json b/assets/schema_input.json index cff17406..2a9a79ca 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -10,25 +10,22 @@ "sample": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Sample name must be provided and cannot contain spaces" + "errorMessage": "Sample name must be provided and cannot contain spaces", + "meta": ["id"] }, "fastq_1": { "type": "string", + "format": "file-path", + "exists": true, "pattern": "^\\S+\\.f(ast)?q\\.gz$", "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" }, "fastq_2": { - "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'", - "anyOf": [ - { - "type": "string", - "pattern": "^\\S+\\.f(ast)?q\\.gz$" - }, - { - "type": "string", - "maxLength": 0 - } - ] + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^\\S+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" } }, "required": ["sample", "fastq_1"] diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py deleted file mode 100755 index 4a758fe0..00000000 --- a/bin/check_samplesheet.py +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/env python - - -"""Provide a command line tool to validate and transform tabular samplesheets.""" - - -import argparse -import csv -import logging -import sys -from collections import Counter -from pathlib import Path - -logger = logging.getLogger() - - -class RowChecker: - """ - Define a service that can validate and transform each given row. - - Attributes: - modified (list): A list of dicts, where each dict corresponds to a previously - validated and transformed row. The order of rows is maintained. - - """ - - VALID_FORMATS = ( - ".fq.gz", - ".fastq.gz", - ) - - def __init__( - self, - sample_col="sample", - first_col="fastq_1", - second_col="fastq_2", - single_col="single_end", - **kwargs, - ): - """ - Initialize the row checker with the expected column names. - - Args: - sample_col (str): The name of the column that contains the sample name - (default "sample"). - first_col (str): The name of the column that contains the first (or only) - FASTQ file path (default "fastq_1"). - second_col (str): The name of the column that contains the second (if any) - FASTQ file path (default "fastq_2"). - single_col (str): The name of the new column that will be inserted and - records whether the sample contains single- or paired-end sequencing - reads (default "single_end"). - - """ - super().__init__(**kwargs) - self._sample_col = sample_col - self._first_col = first_col - self._second_col = second_col - self._single_col = single_col - self._seen = set() - self.modified = [] - - def validate_and_transform(self, row): - """ - Perform all validations on the given row and insert the read pairing status. - - Args: - row (dict): A mapping from column headers (keys) to elements of that row - (values). - - """ - self._validate_sample(row) - self._validate_first(row) - self._validate_second(row) - self._validate_pair(row) - self._seen.add((row[self._sample_col], row[self._first_col])) - self.modified.append(row) - - def _validate_sample(self, row): - """Assert that the sample name exists and convert spaces to underscores.""" - if len(row[self._sample_col]) <= 0: - raise AssertionError("Sample input is required.") - # Sanitize samples slightly. - row[self._sample_col] = row[self._sample_col].replace(" ", "_") - - def _validate_first(self, row): - """Assert that the first FASTQ entry is non-empty and has the right format.""" - if len(row[self._first_col]) <= 0: - raise AssertionError("At least the first FASTQ file is required.") - self._validate_fastq_format(row[self._first_col]) - - def _validate_second(self, row): - """Assert that the second FASTQ entry has the right format if it exists.""" - if len(row[self._second_col]) > 0: - self._validate_fastq_format(row[self._second_col]) - - def _validate_pair(self, row): - """Assert that read pairs have the same file extension. Report pair status.""" - if row[self._first_col] and row[self._second_col]: - row[self._single_col] = False - first_col_suffix = Path(row[self._first_col]).suffixes[-2:] - second_col_suffix = Path(row[self._second_col]).suffixes[-2:] - if first_col_suffix != second_col_suffix: - raise AssertionError("FASTQ pairs must have the same file extensions.") - else: - row[self._single_col] = True - - def _validate_fastq_format(self, filename): - """Assert that a given filename has one of the expected FASTQ extensions.""" - if not any(filename.endswith(extension) for extension in self.VALID_FORMATS): - raise AssertionError( - f"The FASTQ file has an unrecognized extension: {filename}\n" - f"It should be one of: {', '.join(self.VALID_FORMATS)}" - ) - - def validate_unique_samples(self): - """ - Assert that the combination of sample name and FASTQ filename is unique. - - In addition to the validation, also rename all samples to have a suffix of _T{n}, where n is the - number of times the same sample exist, but with different FASTQ files, e.g., multiple runs per experiment. - - """ - if len(self._seen) != len(self.modified): - raise AssertionError("The pair of sample name and FASTQ must be unique.") - seen = Counter() - for row in self.modified: - sample = row[self._sample_col] - seen[sample] += 1 - row[self._sample_col] = f"{sample}_T{seen[sample]}" - - -def read_head(handle, num_lines=10): - """Read the specified number of lines from the current position in the file.""" - lines = [] - for idx, line in enumerate(handle): - if idx == num_lines: - break - lines.append(line) - return "".join(lines) - - -def sniff_format(handle): - """ - Detect the tabular format. - - Args: - handle (text file): A handle to a `text file`_ object. The read position is - expected to be at the beginning (index 0). - - Returns: - csv.Dialect: The detected tabular format. - - .. _text file: - https://docs.python.org/3/glossary.html#term-text-file - - """ - peek = read_head(handle) - handle.seek(0) - sniffer = csv.Sniffer() - dialect = sniffer.sniff(peek) - return dialect - - -def check_samplesheet(file_in, file_out): - """ - Check that the tabular samplesheet has the structure expected by nf-core pipelines. - - Validate the general shape of the table, expected columns, and each row. Also add - an additional column which records whether one or two FASTQ reads were found. - - Args: - file_in (pathlib.Path): The given tabular samplesheet. The format can be either - CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. - file_out (pathlib.Path): Where the validated and transformed samplesheet should - be created; always in CSV format. - - Example: - This function checks that the samplesheet follows the following structure, - see also the `viral recon samplesheet`_:: - - sample,fastq_1,fastq_2 - SAMPLE_PE,SAMPLE_PE_RUN1_1.fastq.gz,SAMPLE_PE_RUN1_2.fastq.gz - SAMPLE_PE,SAMPLE_PE_RUN2_1.fastq.gz,SAMPLE_PE_RUN2_2.fastq.gz - SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz, - - .. _viral recon samplesheet: - https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv - - """ - required_columns = {"sample", "fastq_1", "fastq_2"} - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_in.open(newline="") as in_handle: - reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) - # Validate the existence of the expected header columns. - if not required_columns.issubset(reader.fieldnames): - req_cols = ", ".join(required_columns) - logger.critical(f"The sample sheet **must** contain these column headers: {req_cols}.") - sys.exit(1) - # Validate each row. - checker = RowChecker() - for i, row in enumerate(reader): - try: - checker.validate_and_transform(row) - except AssertionError as error: - logger.critical(f"{str(error)} On line {i + 2}.") - sys.exit(1) - checker.validate_unique_samples() - header = list(reader.fieldnames) - header.insert(1, "single_end") - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_out.open(mode="w", newline="") as out_handle: - writer = csv.DictWriter(out_handle, header, delimiter=",") - writer.writeheader() - for row in checker.modified: - writer.writerow(row) - - -def parse_args(argv=None): - """Define and immediately parse command line arguments.""" - parser = argparse.ArgumentParser( - description="Validate and transform a tabular samplesheet.", - epilog="Example: python check_samplesheet.py samplesheet.csv samplesheet.valid.csv", - ) - parser.add_argument( - "file_in", - metavar="FILE_IN", - type=Path, - help="Tabular input samplesheet in CSV or TSV format.", - ) - parser.add_argument( - "file_out", - metavar="FILE_OUT", - type=Path, - help="Transformed output samplesheet in CSV format.", - ) - parser.add_argument( - "-l", - "--log-level", - help="The desired log level (default WARNING).", - choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), - default="WARNING", - ) - return parser.parse_args(argv) - - -def main(argv=None): - """Coordinate argument parsing and program execution.""" - args = parse_args(argv) - logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") - if not args.file_in.is_file(): - logger.error(f"The given input file {args.file_in} was not found!") - sys.exit(2) - args.file_out.parent.mkdir(parents=True, exist_ok=True) - check_samplesheet(args.file_in, args.file_out) - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/conf/base.config b/conf/base.config index fad3aa91..faaec489 100644 --- a/conf/base.config +++ b/conf/base.config @@ -59,7 +59,4 @@ process { errorStrategy = 'retry' maxRetries = 2 } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index d91c6aba..d203d2b6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -18,26 +18,10 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: SAMPLESHEET_CHECK { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - withName: FASTQC { ext.args = '--quiet' } - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy deleted file mode 100755 index 4ce590c0..00000000 --- a/lib/NfcoreTemplate.groovy +++ /dev/null @@ -1,351 +0,0 @@ -// -// This file holds several functions used within the nf-core pipeline template. -// - -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - -class NfcoreTemplate { - - // - // Check AWS Batch related parameters have been specified correctly - // - public static void awsBatch(workflow, params) { - if (workflow.profile.contains('awsbatch')) { - // Check params.awsqueue and params.awsregion have been set if running on AWSBatch - assert (params.awsqueue && params.awsregion) : "Specify correct --awsqueue and --awsregion parameters on AWSBatch!" - // Check outdir paths to be S3 buckets if running on AWSBatch - assert params.outdir.startsWith('s3:') : "Outdir not on S3 - specify S3 Bucket to run on AWSBatch!" - } - } - - // - // Warn if a -profile or Nextflow config has not been provided to run the pipeline - // - public static void checkConfigProvided(workflow, log) { - if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " - } - } - - // - // Generate version string - // - public static String version(workflow) { - String version_string = "" - - if (workflow.manifest.version) { - def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' - version_string += "${prefix_v}${workflow.manifest.version}" - } - - if (workflow.commitId) { - def git_shortsha = workflow.commitId.substring(0, 7) - version_string += "-g${git_shortsha}" - } - - return version_string - } - - // - // Construct and send completion email - // - public static void email(workflow, params, summary_params, projectDir, log, multiqc_report=[]) { - - // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" - if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" - } - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['Date Started'] = workflow.start - misc_fields['Date Completed'] = workflow.complete - misc_fields['Pipeline script file path'] = workflow.scriptFile - misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build - misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp - - def email_fields = [:] - email_fields['version'] = NfcoreTemplate.version(workflow) - email_fields['runName'] = workflow.runName - email_fields['success'] = workflow.success - email_fields['dateComplete'] = workflow.complete - email_fields['duration'] = workflow.duration - email_fields['exitStatus'] = workflow.exitStatus - email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - email_fields['errorReport'] = (workflow.errorReport ?: 'None') - email_fields['commandLine'] = workflow.commandLine - email_fields['projectDir'] = workflow.projectDir - email_fields['summary'] = summary << misc_fields - - // On success try attach the multiqc report - def mqc_report = null - try { - if (workflow.success) { - mqc_report = multiqc_report.getVal() - if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { - if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" - } - mqc_report = mqc_report[0] - } - } - } catch (all) { - if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" - } - } - - // Check if we are only sending emails on failure - def email_address = params.email - if (!params.email && params.email_on_fail && !workflow.success) { - email_address = params.email_on_fail - } - - // Render the TXT template - def engine = new groovy.text.GStringTemplateEngine() - def tf = new File("$projectDir/assets/email_template.txt") - def txt_template = engine.createTemplate(tf).make(email_fields) - def email_txt = txt_template.toString() - - // Render the HTML template - def hf = new File("$projectDir/assets/email_template.html") - def html_template = engine.createTemplate(hf).make(email_fields) - def email_html = html_template.toString() - - // Render the sendmail template - def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] - def sf = new File("$projectDir/assets/sendmail_template.txt") - def sendmail_template = engine.createTemplate(sf).make(smail_fields) - def sendmail_html = sendmail_template.toString() - - // Send the HTML e-mail - Map colors = logColours(params.monochrome_logs) - if (email_address) { - try { - if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } - // Try to send HTML e-mail using sendmail - def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") - sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { - // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { - mail_cmd += [ '-A', mqc_report ] - } - mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" - } - } - - // Write summary e-mail HTML to a file - def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") - output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); - output_hf.delete() - - // Write summary e-mail TXT to a file - def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") - output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); - output_tf.delete() - } - - // - // Construct and send a notification to a web server as JSON - // e.g. Microsoft Teams and Slack - // - public static void IM_notification(workflow, params, summary_params, projectDir, log) { - def hook_url = params.hook_url - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp - - def msg_fields = [:] - msg_fields['version'] = NfcoreTemplate.version(workflow) - msg_fields['runName'] = workflow.runName - msg_fields['success'] = workflow.success - msg_fields['dateComplete'] = workflow.complete - msg_fields['duration'] = workflow.duration - msg_fields['exitStatus'] = workflow.exitStatus - msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - msg_fields['errorReport'] = (workflow.errorReport ?: 'None') - msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") - msg_fields['projectDir'] = workflow.projectDir - msg_fields['summary'] = summary << misc_fields - - // Render the JSON template - def engine = new groovy.text.GStringTemplateEngine() - // Different JSON depending on the service provider - // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format - def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" - def hf = new File("$projectDir/assets/${json_path}") - def json_template = engine.createTemplate(hf).make(msg_fields) - def json_message = json_template.toString() - - // POST - def post = new URL(hook_url).openConnection(); - post.setRequestMethod("POST") - post.setDoOutput(true) - post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); - } - } - - // - // Dump pipeline parameters in a json file - // - public static void dump_parameters(workflow, params) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) - - FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") - temp_pf.delete() - } - - // - // Print pipeline summary on completion - // - public static void summary(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (workflow.success) { - if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" - } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" - } - } - - // - // ANSII Colours used for terminal logging - // - public static Map logColours(Boolean monochrome_logs) { - Map colorcodes = [:] - - // Reset / Meta - colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" - colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" - colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" - colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" - colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" - colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" - colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" - - // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" - - // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" - - // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" - - // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" - - // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" - - return colorcodes - } - - // - // Does what is says on the tin - // - public static String dashedLine(monochrome_logs) { - Map colors = logColours(monochrome_logs) - return "-${colors.dim}----------------------------------------------------${colors.reset}-" - } - - // - // nf-core logo - // - public static String logo(workflow, monochrome_logs) { - Map colors = logColours(monochrome_logs) - String workflow_version = NfcoreTemplate.version(workflow) - String.format( - """\n - ${dashedLine(monochrome_logs)} - ${colors.purple} ${workflow.manifest.name} ${workflow_version}${colors.reset} - ${dashedLine(monochrome_logs)} - """.stripIndent() - ) - } -} diff --git a/lib/Utils.groovy b/lib/Utils.groovy deleted file mode 100644 index 8d030f4e..00000000 --- a/lib/Utils.groovy +++ /dev/null @@ -1,47 +0,0 @@ -// -// This file holds several Groovy functions that could be useful for any Nextflow pipeline -// - -import org.yaml.snakeyaml.Yaml - -class Utils { - - // - // When running with -profile conda, warn if channels have not been set-up appropriately - // - public static void checkCondaChannels(log) { - Yaml parser = new Yaml() - def channels = [] - try { - def config = parser.load("conda config --show channels".execute().text) - channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return - } - - // Check that all channels are present - // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] - def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean - - // Check that they are in the right order - def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) - } - - if (channels_missing | channel_priority_violation) { - log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " There is a problem with your Conda configuration!\n\n" + - " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/\n" + - " The observed channel order is \n" + - " ${channels}\n" + - " but the following channel order is required:\n" + - " ${required_channels_in_order}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - } - } -} diff --git a/lib/WorkflowAssemblyqc.groovy b/lib/WorkflowAssemblyqc.groovy deleted file mode 100755 index 8be44f94..00000000 --- a/lib/WorkflowAssemblyqc.groovy +++ /dev/null @@ -1,122 +0,0 @@ -// -// This file holds several functions specific to the workflow/assemblyqc.nf in the plant-food-research-open/assemblyqc pipeline -// - -import nextflow.Nextflow -import groovy.text.SimpleTemplateEngine - -class WorkflowAssemblyqc { - - // - // Check and validate parameters - // - public static void initialise(params, log) { - - genomeExistsError(params, log) - - - if (!params.fasta) { - Nextflow.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." - } - } - - // - // Get workflow summary for MultiQC - // - public static String paramsSummaryMultiqc(workflow, summary) { - String summary_section = '' - for (group in summary.keySet()) { - def group_params = summary.get(group) // This gets the parameters of that particular group - if (group_params) { - summary_section += "

$group

\n" - summary_section += "
\n" - for (param in group_params.keySet()) { - summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" - } - summary_section += "
\n" - } - } - - String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" - yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" - yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" - yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" - yaml_file_text += "plot_type: 'html'\n" - yaml_file_text += "data: |\n" - yaml_file_text += "${summary_section}" - return yaml_file_text - } - - // - // Generate methods description for MultiQC - // - - public static String toolCitationText(params) { - - // TODO nf-core: Optionally add in-text citation tools to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def citation_text = [ - "Tools used in the workflow included:", - "FastQC (Andrews 2010),", - "MultiQC (Ewels et al. 2016)", - "." - ].join(' ').trim() - - return citation_text - } - - public static String toolBibliographyText(params) { - - // TODO Optionally add bibliographic entries to this list. - // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", - // Uncomment function in methodsDescriptionText to render in MultiQC report - def reference_text = [ - "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", - "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " - ].join(' ').trim() - - return reference_text - } - - public static String methodsDescriptionText(run_workflow, mqc_methods_yaml, params) { - // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file - def meta = [:] - meta.workflow = run_workflow.toMap() - meta["manifest_map"] = run_workflow.manifest.toMap() - - // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " - - // Tool references - meta["tool_citations"] = "" - meta["tool_bibliography"] = "" - - // TODO Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! - //meta["tool_citations"] = toolCitationText(params).replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") - //meta["tool_bibliography"] = toolBibliographyText(params) - - - def methods_text = mqc_methods_yaml.text - - def engine = new SimpleTemplateEngine() - def description_html = engine.createTemplate(methods_text).make(meta) - - return description_html - } - - // - // Exit pipeline if incorrect --genome key provided - // - private static void genomeExistsError(params, log) { - if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { - def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + - " Currently, the available genome keys are:\n" + - " ${params.genomes.keySet().join(", ")}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - Nextflow.error(error_string) - } - } -} diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy deleted file mode 100755 index b7f82557..00000000 --- a/lib/WorkflowMain.groovy +++ /dev/null @@ -1,63 +0,0 @@ -// -// This file holds several functions specific to the main.nf workflow in the plant-food-research-open/assemblyqc pipeline -// - -import nextflow.Nextflow - -class WorkflowMain { - - // - // Citation string for pipeline - // - public static String citation(workflow) { - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - // TODO nf-core: Add Zenodo DOI for pipeline after first release - //"* The pipeline\n" + - //" https://doi.org/10.5281/zenodo.XXXXXXX\n\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" - } - - - // - // Validate parameters and print summary to screen - // - public static void initialise(workflow, params, log) { - - // Print workflow version and exit on --version - if (params.version) { - String workflow_version = NfcoreTemplate.version(workflow) - log.info "${workflow.manifest.name} ${workflow_version}" - System.exit(0) - } - - // Check that a -profile or Nextflow config has been provided to run the pipeline - NfcoreTemplate.checkConfigProvided(workflow, log) - - // Check that conda channels are set-up correctly - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - Utils.checkCondaChannels(log) - } - - // Check AWS batch settings - NfcoreTemplate.awsBatch(workflow, params) - - // Check input has been provided - if (!params.input) { - Nextflow.error("Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'") - } - } - // - // Get attribute from genome config file e.g. fasta - // - public static Object getGenomeAttribute(params, attribute) { - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey(attribute)) { - return params.genomes[ params.genome ][ attribute ] - } - } - return null - } -} diff --git a/lib/nfcore_external_java_deps.jar b/lib/nfcore_external_java_deps.jar deleted file mode 100644 index 805c8bb5e4fd43a12a5891eea5a68788309629b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2291171 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�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

    A$B3k~{RycObG@6y| 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 $@vz03z8Z`qI{ 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

    =%>>2|D73@_9Fx}<*!s;{SFX;r+XReUC zs(|mEkHHq9IX6^vM^EgXIeYohiI?hV>^hwxYR>KuRb@}z5I-ASzTYk3_~FS}RNjRL zBd*dzvW_1pe2RefXtrAi)Sg*@9Jknu z$o8-Te9~-C48q7aAXk0lTYyLPSq7kgBw^!nZU+R0_nf_OedZnHyrlT|3Uy@d6(W|C znHTk!>h~;8ca-b(8S8i^YnxhdJ9ZBN?AFMLYi2sdMg10nS)a)E>s*<)nG(xjqj-|) zADeL|%!nJN7z;c%R6Jyv;ke4y^e=Ege88b$E>s+UBVuvoH&<#VpjT@xLyu^Kuy z#4zgUiihw^Yf@aV+#?zu85^R}j%9h(v(QGX(`p%;CD`^ED=1X4BSy)iHwp}VI;x#koUS#@Yl;}RE}cMZ{Qar!6y>5A4=2Qqrpd0kgTDpz zs-l^R9_DF00+*ht{4w=X^yW!0O_16+Rk)g|yOQvWsgXP!u4u~6Kd!H?uWmC^k|Qle0OU{F|S@kW-Rp5($CYRsw!GkE>w zmdC5ybrX@hWKa&*n&(H+hnJ{Dr?v;L9?0Sz*Jk!&irG!A&KuZY?B4|~MZ(0&>f3gN zVj611$*;HaKQ`D{0vE$Ka>X+U#w#8c2_BwPySAW#nI5b}oP6rd!oVSWQ14I27@=gX zjIZFP6zBMpdHL&@SqY|qIRIp!Pzp^(A4}!{jq)e2ZC%224dY7MQ1$Yr-kNw~*Dhe6 z`@q|8ll6EmPIpu}oIIwO9E^Eo+b5|JWJCL`t-3MB?@ppyrX7T9f%L?Ubce)?eEUd3 zN7@I4%kx1mozwr7SZz1xBjrJ*b0dhxflwGYE&9Z2QUG2Au^qa_cu>nBBTD^nC^0s8 zE^Vx7e~8s63|)bLJt!0!(q45t6cd=kZUK{KtIpS0KYMT~J6>*?Saq!z*L$gb*Ue`3 z1DN-`j`&7v#>}vFdCI|l4H<=x>__reJtQU#l58T}OX3xC)57p`^xN5PiHcS&fTq1| zpmiAfny@uxcWaYHG>ZOD-z)z*jFc}&_jS_{d5iLOlap`rbwSm8TZhNuvI2T#hiGPw zPT}}LVM`2=N?Yiead(NRA@USLn&2&UNFJ4FE4H!hpIymK5)^h@A%Xy&@61=iYv6Ki zj|jI;b6|I<@*4=&A1>XX)u9POP19j_UqIhVLMo#JlQ)`>47 zn*#L%6@Whz#5H?ZxB=@5>hzvUJT+V#%z^c`U^m0MVf;M4o_?>>txZS2pQe%TVJ&%< zFHz-;NeRS7%NmZpgY`1G6@V(^dE=vrHHXXpVwETu@Ptf(X{mb8q3VZ9p$E_!ilj53 z*PRxpZfFWdR@N^`8E!fG`e#h^cdkYL?mGjL9Q8jHPPqRzCQ>)n|08W{<7oC@)1f2{ zNHwh`R9;gwJZ?Nfeh7W?z@HeQse@J|B9MMYL>a#ghJ_M<@Qn6<1vHQtG+As}G%ag1 zRaXs{TWkBTGYaL~OKWIavR$25TVI_oOIMw7xNKY5Zo{O?UU%GVJA67^uU)&{ziyVq z@WTC&luOc601FI2;!cNDWK7*d=;2F-jJdzBg^}$|;P#LRF4@DxWbJR@#@TBsK>8p+ z_NEY|bKn8z8xO>vxaC&lhUbgZ2gga=1AU>KfxEwD!todnAL`Pl+`C@=KBl!{knIrA;tZM;d2zG;9tGhv7*TBpX&Y z(w;Ovb}`C~a(H2p?LRQG)8mB)MVd~kmFstdNZaDQDLsddB&2YT5q)fG&GPO!7froV z^`a~Bs5rmx=**^lf`w?sBrF-a0Dxy^_o|d|m1^`o>_?}}P-_RrZkgCx@6R5Na1EY`Ep2WN14UAvs#LX3SdgJWO?zI840Kk<)v|Z7~tYhMwsd{-$d$UzlR!Zj$ zW9r1Tli?oz;W3@C$yqsY@(3B3zf%{@;^h<9(c0)9Xr^@Q_|JQ zx(gPQh*+p{2g~B!V^=7aM@EBb-HeKxYW&rJ5lkvdaDG7ON=)l9tdTN;swNsIr`dv< zN7N-5mQRy)VYZ{tk%oWNl(DdYI+)Q^;S$SiJ7&ULxrPtW3n7 z`2?}l^wfx>VLuvna>t~(C1oK2;8oRgk!r(Z*>!Xy@=F=YSdWvDKow_QwQ<1v75i-p!qrQ*pnUc@aVuE_=?#uY*nyanD%B=exn zRx(il2sADuri2(z?3V!|!#u)3$^@YIECDbbQAd{(fL%fiZDb=D;p*BHODedUtPX>w>Uk91% zI=0Sh7q%|3;i5~ke`m59dvz?016|!o#gpk5`QO)tw*wbr7qTQuEy4X%JA4YJ?@Y~u2$~4Tglsjs8HImG)t@&?}}^=u4_+wI0voI zNh4*K_ol4Atmt+4+^D)!M`s_b6aB?OjGt_E~LZT?`RS`}s5><^}ulDA&{t%=$S zeQi>aS>2metJ`OND!1$03aejj531kHgg{jysaCvEy$c6L#Em=?Z&%{qFsSSl};g!qV((og*BbOHt`pQ^6iZNe(4*kc`9qUs#?~apBt0CR5@*j)5 zG>n(zS6$j+w4`nuxOK*CF8zl-nhK+AA5Zw@D8RVr;4kCsxAzR8j2qU0lxHI>Q7J~By@!KaBqy6h zOKI_fRV6IhWsPeWv0yaUHb@WRJ)Pfv^?^wk-ZPqWo;YRZZ)h43k#AYb#?E>E2-=D& zv(Ic+-6)Gjm~8=I&cU=)5b1pK(|dBDEKQR!es_LrK5!tbNL~DD2sb$)@JlJS9FOXW zi=Q36PtS|54j?46Kq=Jtr1CzAT}N~T*DAPXxQbZJ_B=WbLO4=u_0f&R(FDUXjx>Yq zp1k8M`wJQ9#jq7(JKrL+zF#UC*9K&3RKzihO)%pKYi)<6T!xv4WZ*#65;EbYFtuch z{RxNou7{+b&4T83k`qOdL$R4GjcyZ6`{<9E==KM)$|d4^G`_x$xtVNUZJuT+(>f8O zPul#+G|U)US$G&s>RSsUWk;3?iberO{;)9q<3|Zm*x(qr6Q(_Elm;)6h5|>u*YZob;y-_uy3u2q>%l z)e_ylM3{uEuub#j&PW2AsQy`bD~?Ap25$C=u$Kj%vvA95=DH-`d64gl9Lp#A=O*9O zk8pn>@C9ZnW|qne#3J3l^tfG0}v4;HOxn zTUsq=X_nFyrwq=OnwbMbvO&Q~F~^A*!}Cn%V7(w*)2BQ8qbAXDs&(YPZ2b!xm*|i_ z28+mwJh?OG;^H#m>P#|%S1%}w9L2pNq~*LZXlN-?y#VA{41Z)e(V@e-B!C9R(1jka4t&I| z$a))CcYYX6jL_9UZJ|+FwZX18R!vZiNCJ^(Bu;*oZ;@;-*Sh1`e9ycT-FR0rK^Wi~*T(oE| zSPatA%C5WgWEzUJiaT9hTqx>=gtakp?HyclU#m2lx2`cYb$y~t?>Sinf|ihRJ0)3l z>I1lEkinkv=+KHDTsKhA3mN7mZGJ0|&7zR?f)Gn>Da(a~EkklWYgS^6*tZ3=RF)!+ zwu+?5y%hq@^rqG_>9t^1Q}3-E6niY zQo?eERKX&OkeOywK{6T_Ov*?jQ-!)}Gf;Qcl$jbzCo32JeT|93ntRP=u&kECPDmOQ zYHX)t8)ltbv7JkyoBRiCkxC4hrGHqXb|MW_EeFHpjFHx1cH3%q^hf8?{SP>?ZUX<# zA*B$qLlx^0>uP44&gk^d;rmayFK?K4LU*I4BvD+0W%?>UHacSiwTpQBqZ$DbL@tjIwpfRP2aH zC|fp21w7K}cZsUqES$USb)R~fqkg8dfbu9EwZ#YKs@i@SGH=7f3(*5^r3s<&92mRO zzTo}96=yYJPVddQe;m9e+aSH2I%+;F8qX!uc~;>1h7iur2SI!2{FQG{CfB=Q9~wCe z!|2C4#;Q%VB%H89{)jP)SDj_rL>j(dU}>0wFyzp$B#2bL<_gfbt72fiTE{BDMMzcUmrmg&?cCIBHH;$ne(#Ne(Hy(reAX4HcIV&MBCdZ*z*NGA1 z&Uh8BBNWLK`x+x>$t-@Z^}TpPzfmscK~9vS%@WVn7G9r~mkNPSTG{qXUtP@CkO4%15m znRE-aEOH~xRvvEwc=Kr?Ck6~-jauyV)R;tVm_5Z^nE}SETz8$&fp9;M6~rLU!5BA5RzAlfU~3r^Xga!zp=N3E zPSLUgp3m?An00A6)3>2aL+W()&6=49gs>I{5v$|2o;Gz;f|^1pk}o{W0#UvUV8lzr6K1+m8r{N-tdENLvm|l zPAB&ZbSbUA{OIn3!utkjIn;InjkaS5K!^xYAI%QEU+~4eb!qu?hOnYL_9D9aD%$3n z>h;bWfnVzyIfRHNy0wqNb_qZN1iHpsW*Y#Q1G4o2f^@tS`y6O94KIih_zf?R5jpiQ zm<^r1q3B!tCpgQxtwWM@fclVX#2%w4Rke@sp&Iqh@qPA)om$tZp$l#*p9zpVSd;ZD z#2#eZKY(XC0NM({u5HI4{?E1*(S9#?l4i-+Wh|((xa3@Vtfd0~VBtrxUi8gE(R@F< z)5hf^|3NH%L5==Avq|)D>pReQrxQ_XPXDjY_i=rHoD5ZF+d!F$al$|Y&G+`{CCznJ zn>}#u94%qLL#Szg^@D0q{l+8)(6+`5Ld=;!8_p~Ap< z+5W5HQGW@&>nIUmb1|p#L{&L*&XrPJM4`~HZ2*U*E2_SlH0EB3Rlo2 zgAIykh9AWEd&b-K%ZAVw1-*5RjDN$w?ak6G==snfSV?u#h$)XNY01no7cbmK_@f9z zgXI0TVh|C(YLw=duzQJv>e5ojQmL@E==b%zoDwy}k^V(>0SCv|x8CBFB zRWtl%kUF_oQ-AG^7#zs+dQ6(CrzTRYDkcdz=J*ug!Gg~W=;4K>r5->7qr+pXB9ATuf#bTfP|PWu#69UyL$@ z5hhFg^e-+X4`F6=KoNBgB1Rmvbz@$}1O(*+U30H((k$`c!ERxOTF;zX7=;LgjZG00 zupql8!%BQFQV4NSLj!Tch>=VWfr^R%HSd#TKrM`aYR62;v+q?pu@|Z6ONi>$;&0U#<~jt0qM_av>h;tUXE<32x-O#O zDOGNx!3{NwN?)F}f2wnLyt=j7s^+^pwdPPt7J3sb;x8ZfR62?2t@$<%o+jyJ6LVXVYzQDM?Jl zV-PQe5l12Yb;Uv)NhDg;g`E`KBC@&O(YF3eKM)S(E=t~Xu%>In)%49|S)2-e2BRS8 zBM~!zP%8;7aIfqSBhOVB|wOjIepV)i6pC%xhgtYj5$}4?mKw zC!u8O_)sxo_-HAHp@|8GHWd3}8z@ji=gm|QBs>~`<>oWCU0rCba2V^^LdHPEjj#QR zm@+-NNN)fX@Kc?hC+Umsv;kEoA?_-fJ4MfFCncR3wA)-xxqr1sAw8{VCQdufV15f) zwX1$J4Pj3FQ6Aer_3XUZ5&GMx%<-1p3gj0y@S~P?rBoZFYasdI%>ZzU+;G%oJO;cx z?){{nrC}~ZIm}qO19SjW=}ys*+6A#R8(6SMJl$H3`GuVb{v;D`s}tw0;tB48quGwZ zcdRZc`nojyJ(TfrZ{}Ys@Bkp(kczU~n($Mez3-c#1kMi@06IW5s#}(Cb`ZmzAKAwc z;DYw02arYk%177Q-${Rg$8`z&ve@_87i|8^%;!}&XFE8O{vzaAPFV;cEsvsHV7q{u zzMs3o>>djT#W`l-GsQjAjzV6VNF;4fX_KM=BQaD!Ng7^EDVV502e*`{AH0O`uw@se zQ?g@W;HOX=CQOrDuU3|*Z<~y^7pu$H)5W*E-9@t*vqVliSkM5zTmSicw#LET684*i z1@^%LB*M02HV$D-5+R?iMyfJ^ZL?ev8l({IEhl2=Y=?eGquPdBl36$xArT}}Lt&^T zL5g0kHLjMzC{w_8>cS4AcJsvIp0F*DnPeedCO-^KHB(a&Ms?j_fp(xSrNpqIE+D)AP@lwGD#vWx>Ig+TZNPvo!j0y*!OWn}cSry&Vl_-nC^J2f| zj-5F|BKzvHYi52~c5+;lA3Y`|P2os826bjlK(JCd+|)%%X8_hwrMaU)xv$vi-!*@~hT zmbGu2!X064kX7$Z;Iz#ofz^X48z3(jcwWS@>W;1?_>^j#_17TYPGq``wfLhQZ)B;( zniM#U^duGMvXHyOo39uTC`iYlJ7eT39?#60IY)JRpPpXcW`)#^xNtXF9@gfljrvYjmCwZRVww8z1shs0IvF-ER#O`F zwW2aLW_Cnc7IQEBvcy4sOm~r+&KiD97@)V!&fJJn-dM^|tJj_zbk|nav)087?3G_Q*IDT(3eI zvBPZbY@U5s)SkUR&OHPlA7K)k>s2_b)1IWo9Bfm9Yr_Pi-Hc!Tpo$J!Ar1LOP{@k$*$22y|<&l$(}r|D;t zSF_-=vX~)NUXFg^6%>R^Xm6Wj_&rS=`3NT`52YpX(eNsKm>U7`3?m8CjBlM6+gu}A z@jv9`-uV#^#QD<)*_$bB!y_~tK8}3jM)M5u{#D+S>8{q?8z*-2IG@utQ=;DfSpfaS zOYs@_P7I$FtJ)%CA{a*Q46z2QBoDd^ZdCZvx#+<8kMdOsk!aG+g;14Y#YzO@LQ?fH5eq;ceMqNq8Tz`DJuPaK(+)Pzn7& zg*`@?&`o~@Uth(u8M92`(gS+BkWZ2MgNqq%kzuimV%|_4HNUPBettR-)>jruTnH|@ z&0VMgr2FR2CE!8nd5oVaxShw;_cvxAj4*ANiqE`Y^ITE#}*U*`+_}q|2fg7Te%#+Ya>0 zAMWe_3Vq1V;;FE&0n1?pfypbT9gDD@F@qno zgIa#PMk%bdk|CvebTSJoEQ?Eg0#Q^f98@^B^<#Tgb{H}&t{1K4FNmCL;?goT&xCg> z>`P~;GT^*2p5etK=3wb@j68muuAKh$(aK_HB-5>I+4Z zdr0ulO&oMnN@Z1ea7}I(3D=9{UG^B;?7LAQ|GW*1XK3zD>A2oIVUa$~Vc1hkBkbfR z3|Tvtw`#lJXP!xekYR$GwYJn-TvCisl$7J;tAj9eaW(H0=*zcRT!~-VDX)UplO|E3qFs zOKcn3hGNS5qcY6!)u}nGUWw^@F@3!&@8Z+i_ z3pLG80l*omUqMA&GmkHe?glLj{$N$OHYjB76Q(E#9E~Gj&=kFn|LXjU*`{7pGwx)6SAD|5-?$l9R3Nq}CVVf>OI;$3=?>Nmx5K?t7P3_!S7n>3vZtZdc0 z*VhQuYAdy}&rDVtHaE{q2RB=bn}ncj3XM!5qkcS8E>*_J-@spf#xmFtQ6sFU!A%PyKmiYt2< zY&KUsFSJ8f@bstb4&(NX!@_3$R=*l0TgoggHnz__l)W~wXVi>`) z(*CiI;%udiWrEm3o8K9%@uF9``WEEMr6mhLADNi7x1=1F8qCVvS*w(1@)j1W4pqGt zE1cz(9v67D)@y$i&?dnJc2@9|8PS=G<# z>M)NJN^alf!@wIQ%iRQkKMw?e-0lLo-delf60lT&=RL|srVpM?Q8GQ7O>b@o=r|Wo zt8qP9P$un zZiM=;HO8(TyW$WcVl#qp#~wVd27cqsTP!OzZ=CBm-oz2m zIPLh<|KW+;#|G)CXxE()&Xxnk_*y>Iw0%@1n4+7=l8Rd*W*n#bx^H!qL=s4(r07=W z##&x3<&If0Q{AAVQcja8W1=-xudt7hYv6*fC!z!friDET2BXA@8>i)@! z4`@TS?+JKS=ci^J&j$MC+BWdUH?RcUO3fo^B>M`=qdBJciD8wu=nwf=#}Xf{TFzp^ABQ}9!ZDH zRrBz>Lx6j^+ZpE~K`Y%!qv<3<<()wz>Zv>QY{`!-BhYq2zS2=xxggY25$IVv-(fYs zV-4ToA4=w+>()T&U~);QX4#--WWNooezU3jCId51Lpe5pmZIkVKfb;JN|J5cwrtzB zZQHhO+crDPwrzFUw#}}pE*ss|_3PYo-~0c)`|r&WBQi&3M2?X=GWObQuDRy4p`G`G zRiYGP*C^n}D4++5ZwC>l69NvR&dmPU(ej4sVOtXGI^iaJJi{@LLxf8Yc(DH#FO+8&y=@w* z2X_o7Yc>oqfg78dHeLaLZ%1UQO=8M1PV}vr9`L~-l{Z(eMUrjz%@D*TAw#w@KYiMk zh%WmF-i#JIJes4#kBy?bxzIyw{yhwLQ-WoFA@+?Thw)G!qzdr1icW8($RHi7*v(u> zceo1iwhC`=r5t9Ats;lX(06VnSvzIUQ(=5an@W0{0D@&*A@;4J=VM`K4IPWvm}B7& z$O;TyH8#wXQD_OecJYz>f>*=Y`Udf*Q{i|Zn^O8JYQ!p-3Uw3r=bM|zv#EYRa$R4W z!xztmNyi{P(N4`z2cbTnhHE5$`ee~v{7%bnL;T4xJI&;O)Ryk?{2o^Hy&-x96xxrE zv_KL{_q8ZiixPCJ;BCt|#c)d*dg2LFE)o`Zx%~NUH_D$%qTGi+8HIRvBz}L-A^H=1 zfU9;F_!ol?gM5Um783|4Mf5*m|Nq)(`QHpWvaf24levqV_umD8_|y%Rujb;2PYWnw zV=Xbdu%MtKGhm2ed@y1vIIt2h#%f1D0^kl1$6wbiUHMZAp5r@#uv!&<=`PWxq<&3#U6wqtsM5lMk^E+#-?$ zhS;_PB1WAQatSicsS?VRORYw>7aZg7)z*ByU6qsC+E=;%!DI4X)P*_(C1;* zRPXo)l2v#{?9(yE=Uv3o)I~&6!+tpqBk_=McguyxP)Crq^aCkUSk`p3zULGY*PJG+ ztDb{q*ZVMjFTdj*+_{1eL!J6fy{59Qw^*jX#gy*j$!c2%SVUPR`Ldh#Lv_Ow9oHnx zXgD#Jy;f(947H6a;!11fF8f%D4)INcmjI7WE zS|Z>F6rX*m^1NDjxIub&)9913Mvqhn=M~u8(F&jm*mZ@e50WocIrF^vR)u&a>ax zn@x-&ZP-uV`Y%?NE{2)jH?tLy@Zx@wn=Um#0m2g5YYQTKaWqUhK_NbBM`Ta7XSQl# zs*hs31p%!skgdY+;qyZ1@yi#5IN_UoVDtscWnKiB zE`5r`nf3r;@pgy|t_Be>+#2C(g(W38970)!K(NwyGlwBQ2*2 z?$4JBb~KP^#X!|=C@vApNn03EAp3!GhU_PIpy<5<)%hXi3wKY9hG+kJ*m3>AlrMNg z2=uNM-w@;wWe|lfGDll(jzN3c%I>+A4u*rm18VC>ERQ@@qgLBmj`{23^+^tDwq;?2 z+t}ZcE&WBsY_Y^dkIQ~>=_6wvZ#|R5O>(m$n(cqG{;d3@hZ`FOwY6GmGK-?zAn_X$we6={ebVCjp|GA*eR3bK$Nat{NSHj^!Xd%! zs?a#9Iy?fUYk!HD8yH(Q|v#MJO6cL z|6d{6uhF%3H2ZtX^H17R7!*Q^u%uT)(7F4P^ob&S8XdKDfCh*aBZJ<#SaWuCw3W4x zb!TDzrG}Mb4;hDJzZl^9YRSWU^_Nd8ke<*~7%FNOMGnh&m(1svtmASL94B;G zx%Hkr1Z*sm`KJ01r%O4IL|%X&h5{vmHyLOjZTS85DPvJ?1#CqxdLbMiM0`HGXNa#~ zi5QKQtv~c$lEJ3!AN7R?QsmhV85_83@AC>ouJ;t-QH81ptnw&=Bc9u0NqbW-O_DsiW!7 z)cR&2d<)hy66p_e#$rH~TP6cz!zRK$MhQlWUyHCVXgnwI_35xek(WEHt`~UQuhtl$ zVb!=Zdb3C++{b(c4-h)s-El2vWksxU^~rC2-Z;(ac|i*l6nq8kr^*}W3ikpco@VN% zHN|jc`O!#pM6rw7NM#}&5oL~z;&5jdp6>W?>7VD{?-Y3;8j)z`^1wVq375~}_l1BD z(G1~;h6tlJGKgT#r!Cs)vum*Nmg@efeJuepmgom$n3v(LxM`@7*0T3{1u*q^U5%B4 zknvyBL!ITdUdErLr79IC^wx@7*0Qf;sNvgZ_Kt$FoiBA+kRhPD;(2C9Yr3g=Qh>!p z(stFHSr~~6iB8K{f#_Jet7a=Y*4sQcb=iC?^Nf|)h+J#9cL!nymCWz2=v6TJ1}c`f z1TU%xU4e*r`;<)HX02Ohu7&#xL;?R^S&JOfUW~DmrcZw=pR#}gWlCdOCh2q6sT-$< zlTS4sg)Fh%p8Y(J_Ebl1L3vx7&et)*#zE}7%k9hGrMU!u=eFD0bcF-^=}tv{sjZqf z+x2H&Z|<%KDvxDRH*JQF9j!e@8T?dJPtca0sN53#<}fR`{u2C(7UQA&aXk5UvG>Dr zf`t!<_k_%r?c;q;>Oc~gj zNVq)~J`=AvNRW40vDLt(wxq19d3mYuN)%4{nFMSbn$m>@hBO|n(}H46P1S_jI__At zD7~c(hU2`7{Yrk#jJt3@aMhm}D5E=OyDnvK)-hCS9%|3}jE=A%3Fwr0l1{$j6@&V! z@2b}K@vvvr+mIPzm78yit0LYK1PI|o`zqdRbU)!&bQERlT#tVtt~3OVewoevQlizA zp5UpSzKv1QyC5s3!9+rsTUI-~%=9&o7GFdiZhlT`N`W<(#uvD}GSJKHoSe}#uXBl| zNz$>AW>@(cdG>-?A&J@LjHAZ-s2*uBXxr#RA|Mh8 z+b^PPe4cgrQ-%ThWU=PnI@H+E^RM>d`A14In6YeWR{-%`AQ9*WWxu3V z8bR^}B^RmxX_q5O`4E?6jdFJ$zddI>NPIlr(NcFT1&7RDa`A&3LE@&YOPS1W+e}|d zV;~U+doG_Yl?CLa|EJh12E%)pvZlgE<}C_?Wu-D(*P3rgC7wG+juM0ngyiH1WStis zql3#$v)*>HaBSi$;~;J8<@Qg~Kaoz|7|z*=uZEg@0QCH+2>&KIKCYAjWx}Vxy7#M^ zuE>_|RxE5Z7O1pjL!{p1z-Y~;db}tx7OS~};y3~*6oaR7!iPfF1O2Hb$!$Eygmiqe z(4)viWGsrfl>+{Q;uFmL8e!i>NnUX-_0YB@$?rm3`k`%8lD?4)4_#X&4o1lmnKi`k zmPVkte-pD%${{GOzFLko;QrGjO8PI8sJfcyf3bf4ubXJRioN2J5*EMb&Z-K;q1Z5R z2#JnR#Xc;Jm}rD7#1zv8QLtnB6^l$4##X|9V3L>#NHiHmfNI}sWZYe+?!bbPh+xic zj&I&+-s#C{KBFP<^nPjtG(Hc7I^QB-I0XTGiAD}Tk(o4e10jTxCXdDH&7`thYr5AQ zi>||9X4}1b8?L5{Dcy@`(rw)hpLuTn2zKu9x$D+%%6;`-7S1lSkoJNnpg-3rcMBfy z`b44mE8z8rQ`BX^rDmT!)FiH+b-39YD}jpRr|ux_1AR7D4@C$`eJuK2@IhH4 zpTYXcukDsjRaV(xOKx_b?ohGnt*u@tDpc!xxV31Sg(3B8^|`vm)25u$Ral4cEx4+a z(;84^d!7xmGml|mrRR<#U10S^8L8Bg7rsWvPWZkL1;p)U0;Wgo!cGaJ4GUezq(lGE zt=`AI9|7*Rnrb25Z)I&mAGsQk<6i_B3>uGh!k%M}?wE1yCfpv|6Fc9da&sOS5}t6j zJm$wwSEZ((zR#U(;innNMVN4+n3CAiRfpy1p!my zXY35QI{AP;zBM0B#ws!@HP=v+dTXQ{c@HvF=dGis&bi z6AlBgNa&{+C@K1gvE9FmNPS0_ksPdI%Y4PMQTsr^Au!0O`pu&V*yaj;#>STf0Bukd zccL8qtsPX@^6?h&wJx~-XE!|z5YShP7@F#Lsjq+Xe?PuD#{QR}y@jKTy|LTZ5)l*( z4G0Pf>R(Rb`gf=N*WDoTk8dDTb@R3}|NHfqUBN$zahkT8sFp|pX`BrcO&~7GR8~sE z--3Xv>65$;XaGn`6)`;w#?Y}-4%>EWK7DJucE4H!`&~B!D(u1OPFtR3`O5{X${!p| zK$zFHW+%G8H{b9*Oi%MRPwjpFe&!7l@S{Co8s$F|N{M~YlanGdLGdtc!pV(tWhOVq z!R)v;VNWoU7^E{mbJiYY&^wTDML{^Mic0Uen?hkYK(F&wAGGz#g$iMjx(LK%`Vkw)K7q^IRfQ5s!+R2pPM z!Jblq=Vi<3!_!=pO_rgd>t`({haZ{MGF#;{t^fHm!@8ELtyTwNJ*tqr!ckV*hbs2!Y1d>5c6kG6*Ud#Z zUHzy^iA4jH{@?mx3}qc2t7zZG&2=>6%&eGFRpP-BkOT~e1H2|!;8i)3s}HOeipP-k z+2Pr{$s3tj3z1ODspEHLDyVf?<6EF)``_@pF^CP-&?N`B097xA42`Y_|k+EOKVlx-f+FGr-K*-G@}DaVK5B-~F=NUzMMD+mo6hNyOimv~Nj%IgIAJPMZe)i#Vg|?f&E|4GLcgrrM zrITTcVx`>??55uV3!vQr;u7zo;}knP;^)9F-Brx0+b`$i+L9L45t6`>oEpCMRn%2W zixajaWun{M{RW^llygmpV#^!uKRu1e?|}?BC-kbdsR$hYT*`fido}Y*VC;BR8P)6< z8v3m>%Gn``oW^MihUfd-0#iY)v5X#)k!7fXismONZDa!-BeKw(988DE@1MPd>sE*7 zHv=bL-d0kVmA_A?#29b?i4fU0PKke5*Mys-lbK_N8`8D2_hgpMcTMIX#+LA#65i7C z)p@Z^$Q&TCEKXj$#an9OYYo#XO))kua|;Cj(LrD3USd#ZMv!*>iRGW==wA~@t! zsbGG2cDV1CHJcUm2L)}CY(>kep|)0i3RV0?nbe+^jR+jIbWmQ>`Bve|koYgz<6^JAEso|Y`bd{w1r9VLK?vbv9IoOKiM{0r z#UZ@|3H{>vQfx%TL_&s+=x4(Ggd1-9bLDN#&)n6K0b{p#S6_a7$eR~Mt;`Jw#0@tB zG$6Gv10eP<2VIgrz?4!P#VAJhPK_V84WJdq0&EQ)KJR=6IJDQZ-LXe8qVk! zMAG%pE+d?IAzQ=?7`HJO6?&p8L0cCH@7;A}GLEU5en1QHAvZWoAy5Tb;0u#o%tAbv z{II+Q0K7BkMPx}fa37ZphI-odod+O?HB=*FsT$1q8b{pqN*57sg(L&}&iFA`16_~- zb}zg!l~w00P_^$$4QWx7T7n+Tc@RFnKadE=Y_vOKk-?4ft92`K2GQf3O5o;~vID#>ULM1#y_Pmn#0Vuf=k zu)b%|!7szLD!b_7dw{>py!?Yozi0eO(e0YO&fA{g|5R&hRSfi8f6&k47w9G^HifeZ zTLPNG)Bvs4faOP*z`!9s%(xHsJt}}BR@noa*#lhKBUNDuO2Ty*k^3>|r#v2+WMqKw zRZkHN$5I+IWrFLO$9qx8AJxtH`35~Al0eWdwx{YK-P~Gaywm9{b_5k zOruz$g+3|{?soyk1uJCCoW^^%+OT;z4!<$H10AxdoK zlB4`CA<$~pV$wU+8W6SgQgw=}Y<=RF6({mX8_$8q_-XL*;p4g2aqXLrcTy5Ze2Tlv zkAL7;oYTbZeP6#iC3=nVA#kU^a_MTQQiRq0UV*zaqI+|(wqRA zKO(fPfTr;>T$)xDVwd8gy6<)Gx|_ zDJ(P28a-*tLP2)(9YOJjyscz&ax0Iev8!!e5vJ=lj$K%G(*A$ngfOO#D-a$lbX`UYN86KHb%*MbQ)cL$a!WTOwHg!o z5z4QGS$~9oTk{SGx1?_r1U>(d72UDOa0ID{#v}?hS&2EMBxdd|Jmx}*hU9>l4Llo# zV$Nl#q$f$cjJ58(rHaAjn0S;Jx*dz*lm#ko$-f z(3Y^@W(fP$gExckb&Br?Px;>ongmB9Bde9je@Cp+Z0fz@V?HnZVRffCpxHov1%7iJ zzZbLue2QoPh7o>ar@(Sbl%`4!l)Ipm8|92sM(=TG#g?>^z9B4bN{S9%tYpf-bU$S@Z^3^u{R( z72<&|fnB4bSlVU!IP+D$pq6FU?k5;>?_@^xj;RR6uB`Vxyc0VH3YKC(77)7Sr7~Vy z^93Xa`&yedI8@X?UeSdyU5rp&3~_xI!(O`x`)>3INk@q4L5RHV1eLpwT-}_U1bVOf zIGQ^XbZNJ&^GaZIjICwHNOTiz@MUo{B%AxFN(s6=K@_o$KHXg1F%t33g4ryC3*?<@ zjR%KFF&$hG&_Y-cd3>)r#GkNu(D$Xiy*o;7sm1wm;RK1Cn7#|(eT|~>onV~U{ro~7 zA)#oiu7^FovW?-dJmcS|4|M--j+0hZ{GS=b-}6~dhPR)pI>y+X^%8~rQYr)$8kAB= zNlF?8nw@YOhE*f%x(R(p>4YtGiL|^*LljrX%~Zz%4MPx7h@A~}!P)+J1!)57&p6VG zBbMTdqq?uX>#VQz!|s*p0c${nU_j65?hXITw(plnMY?6*o+l6x#i0!=UHGoqI_$5w zhCQ&vEMfuz){Ic9XfE0ljN^2%3hd{b%AHdF+vSijpqB z$#3+YdkT}zu*q-ao{`|rmcf7Mo_@-c?$hE8aq5Lm@EcJBku07pUu-aWFgajk+{8rM zgt?ilSxZYrOGSH8Yf+m;i$xov!K_hB8=?u$1baGZh9%6LN)};?DeXW4&sZ!QS(1b- z74mms!xSL`u~yaZ0BWsk*KiS(%xKk~0LNFfu-9(qa#E~GPy%S;+Rck}8{W;VQlrr7 z4M}!s`rv)M`r`+sd~NR)S^X*faD3zX`UbxJ2kGku&V5GR7Ark>qII1PwtZ*xh#q?t zVs{(Ya9CPBbI+>5l2>McIlG}+>Ol1{A%3Q z%@q5HjKUe|o;m!M?q2=`F1N+a24VBhv0S{f*h^m2lWIRh2xMsQvlp?#%|6${p{yWd7 zatGZl98?%=ELuV5ne=AVPm_rZ0PDL8U1F8RxbN{sqqf7kzGj!dOz}3fz{C1I8b>A_ zLR}t$6INe^AFxn_4%%5%m%ApplBEind#sEk{2_wHxFgMu;$?=o3B9%%Yh zc2)s(zF<X2roe4bp&VTzxWrB7V1dtR7=&R1NI zXF4O33t~1JhXq(Xl@G4L;T=6N%Sj>mD{X0IHzMxQ*QFIGT7FzK zBYP+aIGS73taEag&`>L+TPSkLDyfvuWT%66bHcdK$EoiNC6!6UeoErqe^H8vR$s7! zh=q3zVR(zgku5NKHqGu2LjD{E)MiQBvlAuvD054CBWd*_x{eBCc;^8bX@WQvSK-iDls5)mqzCMe zBQIFGNOTN3B2=DEwqRM>PPK6<Xbge?7;P&s&;(+(NS0f?6Q07{Nr-|%|L z8{KoeghUB=9sGLQcRzzfdFX^sF$)75(?nG*g*GGVG;Jpu1yL+q*S2}WpH_~DU_(je zb^1lD=^FKp*z{g7l8q1yZToIH#sisj%?;Zi)dwW78V%gp<_J@I3Ez`SW6TLQk$*gk zOZxJbmROm5Qd#S6*Cl*2J5q10bqco=o>)3a<7;~^IDU?x`lf`Uqk1Ihc_ z!R5jju~YCSSo2aXPnKO4UY1@K-*MJ24VZD^xv%uhtjTASrHnuj`9y~PHo@|O68Cx7Zw1jSGY0eo#F@tUl)8^4i zYpyZk&M!?iC!YeRtJY!&lSNiol>ZeVsL11PQmMAqoznXZB|f&ssp(ERyZD`Lo*DDL zF6B7e86E!)P#yl0Q)x8+{gSXV(MeaPCOlvTiZtK{j)>tfhrqWBovhV5Lif}Ua!6#^`8z&yJ zg-Q;}%E&7;o@8NVM?E;H_%|PvK9Mo;TmZ>wr|-XAR0*jZVP>j@997@dN47D}YUdPh z%bbKNi|{5c5bs$jsO~oB9^V2;(5V)WorKW+Bbp-Ef6g$>R`cAs%V^@MS9maqS5`fv zj5CHFcHg7EWS8AnhozS;v%yRhL!{P7A139GP(> znMzl;QP|X&#GlM-Da5l&o2FXTOyJnYj4lqV)I^tRp~^N=q?yRmjbv%Xus5RFnozI) z^MhDX)c>@pqQ?Gzw`7xGz|=EDY2sAd5J`jiE60 z8<;Q@K%PqgGTIDOp^*?I)}L{h*iCdYAj)x)?J_uQ>_yZB)thA%;}RTIB$~LF%vg|& z{R-IC+C-R<>;_yG&rR6J!(?DS$3Ti&dL3?O`5O&eiSrPSjT9yhONTKuyV=jqs^SP> zAAXq%Vp~S7PGVNxMoft3{sIY5PWaNY0YDj>!(;**wQB>;YUn}(wiS)UMlt(<&1E?8 zMl?TD3vR^2@rx*eytCGiTLLWO8(>|;xZ{gnb@XmPx?Iu5O)RV5SJ?61XLaxR;nXd?9oc$&3kA>;> z%_UeLBfa89GpfQ=z3QKwB!OCt>&0?#Cv{gWJ!4-Jcg!2| z=dCosfg29h-oo48wKo9w7GM41w4ZuuKny6bj|#P%2VyiO!4oI# zj;HVP7kDUm~J2*3m-3Cu4@oOo|Z@?*ekI?`pb*qaOZhbqGei2g>pc)BFWhul|aF`HL^ z9Tu3 zXp)ssAK6bqgFdoB7@e_=mIPNT{L@7qjjv6Zcs5kpi)MNlCnK~~NwU5={ISGk!L%xT zS7qu99lb=sO`EgDyx0*ph96_I;{B0lV{u*$RCiRvkTQdGKjd`pb)6PA^R)j$V3-4>dNb1nk_RG_NiX( ziRZJ*gh{s?ZERv^lH%qpfoo5fHhNakr51Ba@T4h?(R~O=T$`#qF^j*;l?hnee0jZp z&q4aoSFn!r2RMc@t94@}-SJ>Wtqn?K~k91-dh?`jt zz3PC}+&9n*|8>ink)Z3nUmguREs>1uW!o}BSoE<=UbII5~^6aQE1j~~0 zyB^ab1QlW`>~5@msodYGk}xij%7U{n1dmTWjk5soq>j;jj@1Cul=m|HE?H8uWcM`u z_h+G z6z@<1Ze6lH;(G~xmjtN*>0^1HW4++GQ@FQQ0&VIf4HCyy(rPgmHbDCs;6ZFr`ncBT zxRQiBdwlD0+y?N~V7B!%jsvixaH%EGrcDwi`TjW01L%$#ci?yFmD&|L#`ie}0d&WX z^FEC)iMj9sE*{5y0DMBn`aWi%QUnzDU&j?n5s=>#@ZY-u_#}>de9Vfa0z{8}`0wF@ z*~pMPg%j;iq-T%geU3>0)8zL8{4R}BJW*dw;s|IH)?yB;q;qH!onpK7l6mAwuuebEVwdj(=O`1lQQL)*9I?k& zV%N*0J0zXKWNgo~uQV)sM<#0x+z$r~Ra@eCjX>#x$Q z^gk&`rJ5Ii*@}JYH%+*tw-RBwA;+Ls0jKQ8(g@RpMGiz+-P)(JYa20N9$J{LY^Jx~ zc-q?Ldb}52!5QW#RI|poZ*DRMob4_26+ds2Ly0w1Fu8KRY`e~W zGZpzo4nF2AG7bT&Oe*JQ?4lx}LRXGf6I5sfH8dDd0!1M);v^%CW6DB@-4^E@F{ou| zQqaS=IZ^*6nH%@OE6m4TI`+lIX!ycyI z&gl+cPHJ1G8llR2L^DX#K6XTDk_#P?^jZ-hfoQ4Eil2~;osQu>h}Y)Ed4UDj>OEDf z`q1J4ABkFLsxt)OU{UsHC*(oC`FVl8KGAQ|B77D6{Q8GslgQ=KItXI+?7Rlb)3@Tf z5>Hy0SNslbOn&NYDj}CG2l&G*i>#@AD33UzcYbJKg&+M@V~J&lBjVnhZ|o-m)2oOH z91gaN0>dxs5q6cY#es)pw>n_bnHawTJE?i6B{30KLuMH1d4jM=0 zuOgKU;l!)f2<5BVh~=x^C?-wsusOP6v{avlGx#18A8UKmuuW_wnCJ|N40HTk%TOaf zq5?vwU}jmI@=)YYi>LX#ZhG45pm9Glc21?ua+8B2MXX48&ehCB z=F_<02Yg=>_ML2|FIq|5&mWd?=Q4a9@=s-6ODR})p=a^fz_r;J z{QOQQCXhvPW*6e}@997sbikJ8jAbIa#9dLCJw~0%S@d$}%w4--M2;uqmI+ATSqV6q zOsY&|bbn#*$i+U6@|b19p#*&2(MLRH()oL1DX%yWCJzAY5D-yX0N^^+v>Jy+G(2TKr%Ej=(!5PK{$l zcX)q2BDLayU$BL4BYnFpIsXX5qWk#TJ>9SlED85Z_L;WS+zGtSK0!=NzdV{kzu}~# zD0Tlp<`tR>m|?t&L8!(-*6|j**K3e?zK&^I90_yRb8;CxXDJTYn~4JcoFpY z&wFZCAj*`O*IqFd72p|cG9>t>dt(0?8Z2b7HTqYe#%z$?C<@3%FbKg2%5J#IE`0n8 z(XgipXkuaJOHurdNXl4a?8`zslz;ebPs*}Fy*t?alp4u`_1Lu#j~>qBj>sE4U3x%y z<_%98r9;rpK+I6`yhGt3gjxuHbZT!DraHN3_W?&0R-H&O;T#L{^mUAT%Dl9iB*pco zD962=ZB3yma2<+H0*paiYd6@%8%vn?H>9*9BE#TfJyJ1M_}y@an~l)Z9)}XTMNH+Z z1oY2;*e|JLm5Iqg00H^@k7CyUrchA*ySVjt(MHL|+Ts85AHL1WfHEVE_AR$oKN+gu z0`slJ3O}}Sjtm}(#M1jHG&kF(xv4JN-EHu_0tuvKTxpaNML`U5qV~ScnCQC5ix-%nM| zq8t^a;)%shD5;cL(=1tfTc-oSY4#Ny=4&6+Fc9KKd^b3nFPeTEe>?r%HObPnkZyfp%RO9OXVRjY} z=*C1X_5Oq(sDO*u>(hpfrBk7Z#AHWw3p_-zDGT4&x@doMvCL4<`{(+-BfRGyvP;GQ zByPkn4lDG3tc?9z)c9W(2Y;i+wOX)#YL=;=fe$m&xt*@4L}nrsU|2*#8PZURSwbSR z-f8nlRP{K^Kfl2lZ%)YZum)?y*464)+uLi#$^@q^s#LYn+7kmSU$C}~^j-~Fu2j`t zba}XI>hE~G2-zUzR*5x;jc$2|j-KqK zFoNN?BJXKvdhbq=$ovM8?8x$lk?hF&mJoAeqBZhz%QYoXcqpBtdFvnGH5p%i2e-#x zeaM|-dCw=<+kXrRW1x12VqkF()AvT4OvwDkoSaYfS_vztdN5W^@EfmB=~lM4x2y=E z&*a|L;#Yjk+FgW9Rltg^4~Zv$~s1M|F3rvpTS?&wdmdr6H~${!z$=%4X| zw6C!-7{6CSKL_?+uWzQG`utunvVU`!eiGin-hSsit45Nud!!;efc+lxG&nF^2_xQt zcJKpI9i5<%x=3!M^iilp4;fX>?OwFJp>tSFTn@!aoP(02QH_h3shu?M%)X0d7u7~a z{C!aV`%!eSQdMPc->8Uka=pAzv>gI@5*>>r9CEIF`dO4`WRY=jOaiT_uc$m|rBus= zmt_7FNw&w0LWC+$U}Dhv1WEM^*7&-Q&$5QQo5&I7|RXF;Q+ zAEu?b^;(K0Ik71~;3Rlc)*BF@{-pxa5{`5mH%^Zy&LsF<-z+3^_u7D!@;qQSqiSiQ z&Y}b(fh0|n^k=V>jbfKv+S-@m3f#xVqvQ}I2Oqq;GzMBlXLJoi`z45JXGU!iU($3c zgJnP91XIg&rn_bvE3$~?o*cK0V{S4BUKrQd(!pK6LlF6zLXTyk-JEC?g_mRkN_}fm zi!KkQl;loJrGSQ(T+)mSu+FHkd9|gX>QRypwyOOxHF4|gRq<^C;`otokM5TicJ_e!ujvg{bh_NU(mojjcwKsU-P`H_lqnNh;za*d>fiuH8M2+$imq)2JYnz zk)t?=whGZX#$fVQnHk*}zWPnB9!@krLp1v0u5ZiWBdca9@=1DBiedExQDlRer1Lv- zzv$6%)n}SS(wxki{iis~a&6~|kL=>aiUDN5vgSAfK`YlfA4Nks!GcFc;xK4gF73I2 zy0hazgEpWGNY+3=%@(|Bn1UzW3XtO>P?(yAY2&@%&l>TCwN*f3#G~w`>#H{O%8&GEoXr%9O4nlx`r-D{9ZLr?2lmA^~BYzOqwdx!qV&2ak>^{#pD(m(6`v^ z#t`7sk9Kgn8dQgTZw=sYhR|_#6A`VTjMGV~v=_^xaC#M18ZdvMDOX2ZoAAt_l;%>` zcqWoqSPjnY6As14WK>3Lo3uq_-$KK;9|1jGoXZ#ct6FTSi{(=Mi0aJBp!}J6gOwaA zmtfU_$sDY$ZK=wJa}6)9N#O(eKG>)R5zeu1?>qP>pxEidA9Nxm-v{Kgu0fCkDc(iw z2Q7(E1ql^X>G*1SG{p93cYKx>Q5G9tjB1Ql#X4gYDLJ+kYbnt|=x)>b`_X&H(c&fQWxIaR5g=Z;=^gTMF7WU}b6NjF5U)Kg11Q?_ zwXUMw98&kclQC1*yO%|HIa2W;?TSUKkHmWyeicNFkFU%KHdp~T_O7N~0Ofw0X{ha3s+Xc!Lk6dm`{lBoU&&(&9StQ_fb&Kxoam^9$MCFF#svS+CEi>Ez& zy~++_qt))5tv+>3*X4}1cR<}is_A)W$ z%7lB0c+>0^QPn84C#$a|bPr}F1+_3iX#;X94B>U_s@|v2?^DUIGptl!t6#3Y(6m{9 zqJ6r2Pu=wBVt}xhIU~j?D}Vd;NJs?>HYdcE6KoH4Z|pJXq8LK=-|>**G;?5um(yrmoq(pegtT zbpD6V*gwH7Fwc!J4AIjB0>Kyofi#L#E9|=zNeHd{j_VoCqgHN+DOSt}*ya5IT#f3d zSIC)qR2E5q>hK7OrIN?u;LM!=amoPy%&`Ykd+HP2f|syv&WPO`#zKIeem}-3c8V@~ zPI(_#61bhSj&?qA)?miL{#;3g7{gj>o*|(j~G>2u+zwFmNbJeN~ZcZMG@O~%aI+6 zQGNQ$rsZPhn7*B3N5r@9*}IEq`u&D0He!Mc*;Z>zTB2phwA#|QT-|=9Ez5+E2Q#u$ zk1{2!tXjiOip3Is5Uqznb=S#dU700uE1jUKa|Jd?sx_PcRFL2W=oa?6#Y|5|19gV<$F6dN;-9U?l#2&$m>NKZXc;vX*^L3+a~xGd7|M%bY8j9ZS|LS)(#D8&GqaA(=kK>IjB z@^78@C}Q#(#V~}2ssX3E)vVNzu(YlqL(M*NM=0@z6yq8_3>sI5jB$V`+pl1B&t?6g zEA>R^vI#B-L|RhlU$9|3{8pQAnFZNyk6^rdL6z?dNhJ$anyJJb9};`wDEDL@F4 zn=Rm*0LVGzH>_a2+E6@(49ulkg-gl-MBN-NlbAYA)6;SS6A8Pv|VRm_xKjXf3{Hx*TJ${Lq*LY%vXa_#*t#@7Q{DY(CHb#QWK$HKsj{j5W9& z9~@Dj4Q2MwojfcUtw4?ibPRdlU#mJ4i16*szZ}mFdZBIN2cEP0`;*_PgrJpIo3y1gI zA?gema6ahyOIj@unyW?hL6Mi5YTWFd7>H zVGLV|%@|9gf<)POS`v5rAL)oll9Eb_X`^*9;G$MObX-k)IOp#;=HvBLq5<;Q_dNcc zh-2_r&dl5b!LJ6yW0-B5q30#K!_t_1u_GY#2we=wR_cC}*m_J+p6c8X3)`1fF0W`Y zh=Sl$49iC4!9{J_Qo7!~E#oDm%d`W55Pjs7Puj5=% zKKYhNQ;`R2^`RXNozuD=5SXoLzt9Zdh%{PgD4D_q4fx`q9}{jK*Mtd2yh`JpmyJ`- z<)^e`2)nh%CJ?-UwIRysB55cKR5S`S6eMzMhEdK(Y_!8=&DlLBaE4FR^eAnen{y&S zU3d_tu(=pMxTq};t6eyHNiUoXW(Q(j2nzS=IoBlMJ05YYj;$QvZkeT!&yRyTaF-64 z5N=Cz^m96^2`BaGHb5fvVq7}mT+L|xy@3qJd1s^@W{6gGX4N-@A7futke}T(o@t{5 zq9Wyj{x@_&8U6AK}6xQmy z^BC%5*Oqq9T$j4s^McX^7i`kle{%l5$6NgxUEIj|fW?aj{k_Y5H#i?_sf~W>%sV4= ziX_Mnv}&*s8tFzEV*s8|^L8w{3*qXNZG*N!Z0>z1)C8h&VmE?xC*iLXNvGs)g8U>x z(vrZD^cj%~mL5X9yI!?5RO_`P?6vr~yk7{UPL;^P2^#5ug%g1f3nW}!eSx(z=kpQ( za?+-hHxz+4R`W43-8WC=n7#Oud#cq*-v)VtA@qBLuoM5N$)k13n=#1~&<^zgV9#;J zLx-&OgbBtY;EB^cX+FErip98v%Db@&LHy$0K&3dIcr1IFF)7(GD_3h|oH8hW1!SKP zl1DP}Gd}UNUucEpR3eJ1VR?m6{IbYC2_%nS?}Eq7$D$RcQ;9GhMg1mDn9Sb~cw?n$ zlw?`5ey+R3+el@kZK0i7n+W6FPwN{od*em%MJxZ7HybyZi(dlY9@-8tF0Q<0%7w@2 ztveeBsXZuD`I9O12_pXoJ^6S~iT*Po^Pc{YOCFB{?vLPKH3Gz7fNJfRv-{y!x9Yzq zk5T?-tmSWl>^~6zO>ZwXP4v&52^P*|$gp6b!b>7KiYc@bbLoPxZ$KU>OsG-8D(@_= z$#B!%nX|s2(Z4j(yVh(*{3|tRH43u6k+eG0dNiurw${2+Giar2^eOf!UXH#}!<>QX4JADgQ>YH!9MV!GlegszP6^U;5n2Tkx+7Z2f z$$K#njdLBl@8;MMxxZQWh6i|Z?2vP{i=TYsuswSIHVn>T8~1hjHgo5heprm1mlE{H z{xkb989VRjEd|9h^ROAa?cp=^@NvNoD`48m+kf8`KquKN0ibi(=)E-oC@I>f@52md z;ppu?m!U+B?1*-by%N9Ai8!3*?d+a8_>7!_SRukxI$Q1 zFk^lfFxFm{(Hg>x*~%cNEd`aG3!0T|bX7ZvwOrbpNr_sFe#UhW5kcb&C{DCg$d!$arML_Pu&kb z+`zG)a$XZ=daJt?w(dKcU;x!I%&{5iV{n#xm?e2oW<^F_uh*2W8jF15opxSIo4fcZ zV+{DMi-Y{OD4qE`3m{=0L9u}6%*B$_&=`WX{7^o4v+!H?d<__;gCl*!E}zb@Z++i! z-c$~zKp~xyJ;I?XAv4gqhPxBM!(MqX892mg2CkOQrWrnG$x2LgHcoz7; z%tYO7d`1yrCAW=;*eHygO$lbFbv$)*H9}i{m--w#do-JIL8$9+`s%;s>$yQu#J|ED zSEN}Smdi@tX{LmRGF&upRj89VLcx$oMslDiA`7?4lZjTeKjyr&vbjB1tP~4_tz(#B z+5k=J6;;}j>wMdPwM*iySH4mh%aHUh#e~Tn-lUVe#_92a>4Q z40kWm$XX@F>#N*+D9UwGTBqE8P%ik1;?b^s);tua9YB4Pu8|NGy%2;o>Bemfqe&42 zhmn*DQbsX`W~0eUVa~Bf5q+d_S(a0Xt^5d37HuFAR!mKz{lg^xs8JeDKtz`r8yaD! z(AvUVPC8PwMl+7nV&KuZ)^E8Kc&+Vl#YJAWmG< zxovJJ_pB*Pi2!|HxtZ>shnk9_#5NFf3;~&$Zu)KPUK5_?Tun;!IPw!c=}U;@2k}uw zrMjrKS48UTxFD)9dlP^ALXnm+iD#sF@5hB8t1xHkhM%lg`3tcuA10FY%RW*g=(I6VoKD0>t_Jo>6=4}H+Ku)x4NvD0pH9u~n+`L5RHw_9^rCfK+ zMeA~VL>lEPksIo))8p74z1TrL2jmZc)-8P0-Y@o;<5RL{y%v7A7rTle2h}mtI!4xC zN%fBt!)vQBOJ6V98V%c6971 zO1-B(e9@z?Vrza7iyK@c-z=>1eq&^59u^y?+u*{n&4A<~%WA9UeKF6_v@1=+ zF(c%%=d_WToy1IcBm`lnv$<~#n(D^4S zguM0FHFxWOk^vQvp|*$z(&_3ADC{T)3#sZ*D5hSAVq|WPKP>K z=yD~EGOM^v73HQ>04)KbR>OEFaaF=pLdoG~IIL$h1_UWRdOk8;jcT7nk#XJn=sdD~r&0>0fKYE86ZEKPb0FD=lEg`4GS2vZ}b!j(C#)ORX!u-9Z?Tk@)! z3@9j}w!}Zx3_FIuWxu(-HF1xC!TlIlP-|%IDi2v!Pf?2-t56A@5MgOA+Oap=X*{Te zX2a*o!aSnwyq9w*We0n)_eUT-h`O;51VCO>`t7rW$W9kCT_7f>ZxE5Uz6%9828Tj? zPEh)`@J4+r^FN{7YY1b|G#n?67x)PT4sn~EnfoL6&{yE(yYf~aSI*@oxx$u!-F=x6 zC4ctO0OO-Fug^Cu4If2+(*1dslZLbXVh!Gl&rC3P9|+#IA6+5Dn>|d_$mdG$xV_Ty zBSf@xW9>w>k&Lpz5!${H?yWJih9vQMgUSVh9+K$&a}B_cUed=048OJnF2Kz#C^j}s zQ&56^O0E;fUXFXLh%cqsn&)%dZXX79& z82Mf*@HEj(O3TH(y7KJ&rVFi1z1z9Y;eYNP9TT6Q&)au>AUYK0T~`nsNKhhi zN{qqO04|J_vM~n4A)a7gImrwPfCbL^@aA;@D@1;Y5s*t_wYKMCVJFqXVKbhW&~lY%ZP$yEtT4eb ze!$OAgrq{O7Gx^^1~sl+gj8^lmYnY5Jc(2q2h-28c1j|3FN`UMp^MDamT% z$C<40s`aFVNX1f+q5r}p))-Hu;b%J{ONA0-Lm#!+&R`aeEp&f6o9p!=V2fc`HG*6! zGCA*dz;i8aZG85?&Q#Y+@9A%tAETQ}3R1Gbpvh%ic^Vxt-V}fEpa9KZI!7yk_B~$m z4uhKG71dv84x?&*Eeb!a8h=0yahHShlE3(RS%guT5rO;JYFix1J9>%M`OVdb7!q{% z038G%Z}ca53H#)>(hdv*DjV=w+C(#NhzJo&{br#U4RJa$%3pYexcdJNp7EI?@gIIuDM}1~7&r;5f8q z&;wn8)x%$c5bqF2^`r-+Tdd^4{2;Ay?$gUYod*1O?7yPQf70aS`io_t@E@b!*BwGH} zu^lr8h9$Y&rqg*SIJ=fueqGo6a@H9~`z<0QrOAE!-c|Cw)r#-m)X(3i3*HI8I3Cvj zk>kPk@ABFI_2dm4olG1h{-V>^8d%H!?ce{I&6I5H=HyX)X;Gkbp7ugAIMe7i$W3Z# zZ?T7j8L;9-Wm2Wy)px3>0#)0!ko_V)d*M@`<1Gvy62ke$+-X^bSQ(;!cuw&g^B!~9 zb@KW8z5?l^yP%#^R+W)kiW><9hFE!UCLPHS6){uYIqM9f1){z1;KAv7bdA@Tfah90 z24)*U+Kp5O;^T1kwOvDWiTy?<<32J7BtXTXUlApAzPv6;rgJ~x3RIFU#C%}y&%1ni zS75%lv7bJL8A<58e93O<*C&>4nWn#XynTonDjSMooN83v8FrT2sx3Bi+C~k9vB+OC z9N|lmrTl8EQcKdk6rRE&LpI%XIhT5Fb;>G~-pQz!g>w;kj3BJUD$l zrP+vK`)vclW#{RYkp?CVKhz{RY4tTCY;c`sRFqw`2g=}pS#YiBF_TFr`K}&3)S`x4 z`O1sxla7UF(01LUK{fY-E}BzZU7z^W5Rqq)wH3KaR4LNS2SvcSIHdjm(q#qoVA!5L#%64|#`P5SzGOY!FE7$K+-(C@0Jym%!Lf z?byX@_ZMQ=$qNQQ#1AaH@#3p-3+Qs7yF?zC%u#5+fc_QhsY*O-uwP%>UwYJkUqSi* z-52+F>em0#+e?_)+Bq5+TK|jQUS--2TjUF9*Kaj0XRtb)6-cEkt_j+ZRZ8U0vh$f^ zL9h_ZhUXJ1(q_0D+8tC3dPYN`({}dq#X1TIJDeiWU_jqsz^QmVgE3RL%_3 zM<63&4^Cv3v%~=4*CpM5{TdINpDSR=j5}w-f*Yfowj43XFgd9)>x{Q2OHR2Q&l{WZ zvG5%9oR>_ZDNY^ps=7oG!&p#QukCaI!;{lCmM5hG?XB@!a}};?Y9rt9u&R|tbV<7_ zBMCA0E|;FHA202=5k082-=gJAR&%1LzYnm#lr$JaI}F&)>>c3**prQ`Hd2zMSy3=> z>NrG}CQ0^6di*XEr%~Hb8JA)?f5w(;Ikt3d#oySkJQN%HgV;uHRZ3jOm4oTIzuK8v z9}Wt}qgUE0WjL0+^19~6NfLuae;ekni^EJG;s89oOU<&L_SvCAg9rwT3^rw;*nbbE z+mq;z?w~7_Z1C{;lj#OYmz6#m6PUxo)Z}eSRUV9X2Nl?9gvl7MNU!NcS=*yuX6Sb# zm}_IYjy9qco`V|7R#Tbbt+1C)Qn1p4WLH&K5a3grU1+3;fV%pt;0_?SAH>=Wl?prC zB??e!EM~S`yab;Tq7HB4JU5S2Nt6!s2-yp$4`Q>FYd=yTB&e#0yLmsgP^F)MoyU~A+?4A_NLlLS6cSAB6r`HSj^aieFN-$vySpOM`1 zy`v7}vE>;fO0A0mxhsbj)a`M_WJrqO%$Swd`EO=8VYV@u8aGgrbgZ~rKpz{iXBfx$ zaS7&3W?+^OP1OTQc(Qh(g&E6Aw}zrhmki|LP}ikH-8pffhXv2sZ7geV>_ypJR`-Mk zr2ia%aW2j5bG=pN^(#wv0{(pO@FbDexz@Jo_*IaqC`Q(Qd{Rb)l_R?Oi=ZaZD*{jQ zrhVpldFF+U{+Y)!;@T+8FOun<%h=p6*)N9r^Sj8$H{|t|JccaN=jZX=>n-Fds%NCGN-1!U5*0dulHH}Z>gK@URe33fKXSZc z?S_{Sl&jt*Z12w3#o>gAh`SNvw;iHB{fR%3o!;pt=6wa?=6SBBpF!~QStNCXK7Im9 z2;wIYL=$KJwvB+>gh8AA0^mvi5h@7$yY%sog7v==h?4Uc8`SJyfOwMfxa~YY3Qt0t z!+u*~A$$%3c>{ku?*T zj$fOz2SA=Ea0!t}d5G$;p&bg3xlp>@E~)^n7H1@bRRw8BRq>2 zDENpy0U7rudYUwj%9CXvEoyeg(bMhc;8fap6o3{|Z$-gOu90MDh%V|przw4jp=zi< z2kJd1?G9m}M^1(6+NkFtG+bKC_{_5763sNSz}BGwxnPL@W+=6dH58X&sx@{@JTXvA z`=c%-1}U6tWc?sL$~{+?0S(JJw%f{C*NRKr!h~%;WB;Y4+!Hr1{e%f;68?IZ4Tk9l zRSZnNt9n#Pc^?Z|nYzg|yl{3Xv0;;ub@?Pn)x0v9#SHR^02K2;-5T?!#Ovt^krbcL z;R&xmd$Jd3a)zh>02Alz!rWR6E&t0mk(aQ!Vz2vPlbh1fIg>!$+=m&rJPf~qd`8?XzEVH|k?PPL4dxUWV$ zk=c5GmDe(5IojH<^6L9#_49w1*Zv<>8w)|U@-0x20V{64S2nRl3f!#j(%7JGL+FeX{_IuO5JEo zYullre4<2wu1Br&mwEvmVvt*{%d6Oj!W94b4jC+P4z7x^pdsw>`@1^>0llQwDvKaz z$-{3;!{>n=MSiNdY=5UHFbG-K$S~IAiyWJq+skBpDU0DbnHhpltqo$Zxh~_=9g8Q2 z1+Tby8eC&B;zaFx=)azech3gFUp7D4{}Jf^x5GUp3mf}?!5m3S({{*WUzo#ptC1~Z zdo>mTI2TgiE1{(T0VtP0jNdWon<8P(!`vVqSLB6`RVOXSgEG5v*@6`k*0e_z}XMGQ+q4? znb^ydk72gROEeV3B!)8qb^Jq{@m#q*Bd^HERK*+49ikpgFxu6%ggH7cJZv4L`lwsm zv|H#oEZwA_V9PpkTc=HUvCtF%N z4vO*Qs>t>;U9~(}{96lLU%Od%#&IscRsB|CK|Fys4!o}24O+A@@u<5giI@MByp8Lz zKmX>!wvjAgeWp$TSv8~SvJR=*ALy%tT*J4+zySM50Q9a>y0w!w#qd*L3g)&V2<7uz z{sX%3=m&D?HqnE9kRy1iFgg8sIm012gE7-Z{Y^0# zTuScX_ZOT#p7l^4e~r>vB%7M}_Aaw(tmR&W#WyyHr+oLC<$k03;SUR!vClYc##0*? zD;1?<-af*!JaBbxCWb@fcq?$cqTr8<${@{JWDX~iJ}jcy!$`BIrP=4!5OwWw4X$Zm zibrNxTtABqOxnqRb>DE;{-Px}TJ5AFdq)|pq`u=2WCrGyE|#n{Gc=s&^S7(qf9{fM zMZXIDkN;TcN&j7;|9gS|+iC8<~{d7SkBPbaznPLg8HCZm5qIuck zKa20?8KhaZr_85r+g>Y6hNOO1o!1*qF;g#7Zd0AFyJFkk$UTDEHIC|bBDk#THMIyC zGgj;qS>D#kKeS+4oQ?sgTD6rwIe#_oIk~G_+BNSXKBN^;DnI^2{R1&ZK>UQtaS_}9 z69?=Nf%SB4sXa2bi@u|ruIwUsC0s{Un4UP)oY&A1uSvfd^}dGphXV)ML2P2bIPdQR zqiW?fGhJRaCZpbbv?eU`^>rN9IbTOM#=W7Up?pivuq zbIU)|Wt&2WhFiJuz$wUj4UV3Srh%1-rcrbp37}iC#}KnF5eozrvvG$RE+|xm28_qh z&F$^IzJ`Pxy|#rEC5uE)PDW~;X;Qmygdn>M!jajS_nTRpi-qEF+MM)BVze#fd?XODKNS%cMhB&C*k37MGvVI`|DC-l3xs~ z$1RIhEb-(gR;e7Cw18m&U#?x!TbmQOG2BpI@3+aR=|lM{WN6;FJlW2|x(cqVMxC?q zTdLH_bqj)PSXT-SX>C*@IW$rdnfLTb4SUuXJAQ2?)Qm$OQ4)RHsE$x5b@xb@M^g-P zV5mQ`%NTcx^i`cj*=$OaIX_%WC}9&>6xPIzCd=YTm?eq!Af5_`^fKvkR_*lck%zdg zT{)%c@_W*>lLZUMZT~Rh_>jfeZ+c?h>kLt6J-y3%>1<=l z#P?AY^EhKtX%|_G6xUA2@tM0_+19MRNP zTbt}{+<19I0?uoOWHH~?w6ClE`~0Cxqd--M{fpv8W4m zHiBFbG}Szw^ng_yb!1m3fAeJcIq8jL-3xIH?2a*9o3&X0ueW<;1+nK6bOVO6(Ff-Z z9{9|#jmtMo`<{INgCU5ID5UVAN8As_(lGgS)h1V(SIyct#tWtiMOrFKsqhKkB$R?D zNDxP%vcd9n(67br$a~5uZ&cls`-;O0a{k>!v{^Eh$kuBV73Gb`D7A&5>O0eMJ~+DL-+a$@w?4F&FJH zX3NUwANJvN4?rT{wAVfmvU513M|O|i9`daS&>ND!52}RrkgvAEe0LNX#D_+~oc`fu z{(Yz1@f+@4XNUkG&mC!1hjO)e-egQ=twXLTrZ0DPgUEu{;|Vxv|6Ou7XY6_~e%k^I z^Pq@3dgW~Ox197@)DN=!LMKdTJd+?c^;4soebU+v5o){q_l>OWyWOW}#E)42H^;0nzq#;dbyh?v#jsLgYQ@&xpNcD0bv3e5@>rlcl%Usp`ZJ2g zDdY$EdTr^pJPEGXvyI(xuGh$A@DPjJ3c-H*-#_lXfohT zaneU|Vvv~-3Qvtm>kE}si00ViRgMHTM`STaepDyHs!^aORF+vGNv{>7p89D%$S%C* zVw&VZnb9&?M{q_gTn?dtPH?7b<9vqTa=NIq%Q1VT%AtDVR{j(H@Pg~GZZIO6K1`-2 zLYI92t!1!@8U96iu~Kgtd1e} zdR>_?@F}r?XFM&pNUW?uGJBS3x||13bSQbkb3gSA9K)MeUM*5aLmHo+*`mY;+UaXH*_NL|8p+&$Qu z_a4sQBF+?^yN?pV^(IyA zz0(7gN7h>8XfyN0nV7CFy$RtRk`8ZFq|vMM6RSn5-GQA3*=8t*W+-e8+gm2Zm!kO? zsTMEj=M)zZmaF?Y<1Fem?ePHcj#K?YpMRU~(@`QF+M?mJn3o&5a6roR}yZWe} zv* zc}7`OQ_|=ScSA-YGOZ|XiuhzJUJ-Q*vxr`7DC8zSDtM!0Bc{xfpf>Yk@#?6Pvts~S zdgkSn7=vau}CuvvoW5`zs@^&W?$?3(>h z_1f@6!)YcH5=RJbE-ZoxdEhy_W-f~*@rKh_oDnJG`Ez|eV}Ft*5(B*{x}!u{HMMSy zwrw*SV4^!s0<*OfiC>6o$_m0TGz6`|(!5_56`gqiQBhzyLEKWjcg7yk0#=D$McS$* z2u8@ArHUc+EFPdiVdUDf1Ea@niC&@HmC23DghjoARo7BM5E>ievrC${|q9uPdQ-T8;_V`BMA+z?EN)heojR36BsPU^knn)Pm(xsuSwM$ zWHr?gwZ%^uIgaKQx-4VrPnZ{tUs7ZZzGh93Z6>);qLIX&X8*!r6we7is4W^!T#8GOk|a;f-6NkwCtam!k*s*m5Z`;e zG6j8U@@T9 ztbhhx#<$}=s(|@p@l={nDR$D9rcUt{=_(|bfEhtIV+N+uN>s_)sW^P}A>=I5RTQZ- zF^_xsF7bm}6 zq-yAw_p680u};lY71xb3>$ZP0lRNm>@@Xb-IkPP&_;XCo&5!K6XsP{?_i1N@{6EIdej*Rck!PAL-d@Hl-a+Kolzm*>FZ!*OJzk+OTB?Pmy^5@ z6hzdXxs?L5(a|~;uA-srlowTW(uQBe<<<7b<$1zhogcyS+Nzu0(14g-I-_Ed4)1nM zN}yf@(%V|#J~PMARCUwt>o`nI3=Z)mF506#)8TwU4Rf9Sw9=gzTzr9jbq<^9i_057 z*3Bb8NG@7GOrAT`13vM96t;n;K=XYe@sHlA^WH3+dCE6a;+sFVem0P@yt(+<<5jlF zO`P$Xu=@V8?;!8I3t>K(_mN##7FoSH=^`=j9Tcy@pavz(f}0VRMc+hGOcD!_^!CA& z4a-Du*#&Z7lo`Fy6nu2c9kqaDVQg)Ti9>I@9xo|sD5z8T1Y%tz9bIL=+(RKfO!EEk zm}!)@(S9o4Q_y`#lG5|=j)Quq)a^f4-ZFgI7X6X*nF4XcR+H8p4)#ISaHE%>^@-O0 za*c4*Ef)0o9sF6#J>nBF|6PuK@-vFq4_oP-uI72$KJ611?i0M~&TmiTgRW!XGkW^& zbI0i&*W154k`6M&V|P$3xQD7Q^csS%iwwwJMR}h^A#zy+b_*rr2D=v1E}ZjSWue|O zx1O^$$p$&PLWa54b#{y}FZwYet3uDYX5SDU8?k-Wqc&6~f_^-b)>X#2{&-OLH)icG zA6@RLF7j;s=7EF@tGpB+EgVBWgiwmJDn=$OsfioqIRTtph5*~WoJ1}u=bQPB#nrW( zjX_e4(2SKW6}9%LNxV!NIy8inIiGjDGgXQ;aZ&==9=dFS=rDr}4B>VR!D9B{PUq@a zZTRoAdPF46Q}PM;nnuMH+D}MlTFEscidUpOe1maRlrM(Wdm7H0DVM^2-)s_Nhveyo zYIQPu;T+H^_cYiFh9wEIXbpn6h}>!$&AmH+CN=_j!j-YZ%V>Y&(QXKr2of$M%mFU^ zNjn4hAnV0@qMrIGd;GihdD36R%u*^+K#jYR}PTQ*Gxs3WlkR? zX$Zq~hJbDtPM+YS9S5F>`Zr;E`yaoQq8yNcr*_uhA@y2Ju&o)8>~1RrEL=(nSI{ zgFTl~frKn5LF%{}Kt?AZ7x2KR6K^1g5ZNmfx#|0{!)6Z-iLhIdrHDd_g6BFlHNmm% zcI0h#G|tDj`JFyG0i+KRGCUs)21djWZkHD)vZx>IYFL~Zck%WopaPJ|Uv^u7-O!ms zL;qX45tSNMP1B_rgH^S2uf9@$5jOJP_XM5q1{QIvUpj&G|>B0RhVSgjY zl-ae+Z}MT?1CNx8xW+XnU3MiMhw7HWqH{XbW<>jYAOGw>&_^BDUcK7$HqAWAHP=_8+3MQ2mbpDA--S<<6J17dTSBz| zGOMW1SdGCT5-qr_atyQkQ**{@n7bHEqU^vGt-sF~Q#?I`4;BZ7ri-? z6e-ELqk`)&u|&LB`nE0?CaDFWW-WtR7-5moJX@_e^(M})rKzz!P-cThnrTDKl1O91 zalM;Zr)&v)oWxQKtFyximYAyp(64|HZP#v_1g&XGRFQRIKP0s_>5Pu5GdxF($b&uU zkOAfLKrSt=#x!(#vJ7nw9d=_Vd0>leI;5$IjM7%Nlv1$%b5**mAuNw0F{dw&^rwJG z2q|!Y4kzus;!!`-lR?Di{i4tz9nK&G#nj>({JeoSJ~p&7NXiL$)f~NU0b+-AzI)Qp z4OaBN%h;aG*e-7R0C?0RK~|5Ma^JBtlHQEabA+se70!{gVGY9+t0j5(K8Da4-Cv>2 zb%eTZ^)<3|_?O+w|AgEBeQ5u~O-;_!)XBv8AAsA({%<0x&1SFZF77_k8z2Jf@f4EP zNj1KeWa2`8{1yZ#5`X?zgX9Y$jg^a#P1wRl&LmT3&0$w+02U<@K2t9ejWjlXLt&*$ ziDBgur_uT>XI`UbgYVbio^hwut{zfCy!a!|Ym4V8bNf2eYr56V>1ytj>06bUq!>W} z-o(J9Ws3-GBuSZb3*(t3%fd+us+6NWc5<0P8gef@-a;)-qwLNfv@99b1N}lqjc`uf z@*4|Wf{LYDut!UmO2#goVa|$_7NI-^!~6kK|I=AhsxW`Ow&?a~DfIOh4aiau4Z5RE74`EGVkrENXRpF_m4;q~NLBhc<#|m!X<=lB z;Z1L4Li@?8^io8A%w&5@_60hp<`sFovsk9Ys6}0lZsm(<0Mb2*a8m!pgc^X*mVU4e zkDU!C7C;7w*N0fe1&AoklXH<7Mb0U?JYtx@PKtQdh}e0ZskNirB{ZqavEFLEe-zBh zECtoBu}sMF_(8mZCcR3=dGICEXE0&SGzuF@XH>PEwoG;)g`~W`bv}X)D^h*bG1x%= zJ1cf7>@R<-1$&w!hzaaq_(4NeE%qkr)uly)!FeKVOMTiS%+weUBrO=`eBnJ=V7Fac zmJOm?Okf)Qcf-cIMSdzmq-1{^^8|A?ghAJETrk5EdV647W&|<8y!jqkVo*z7*Zra6 zI(#jNv}}YC+-iEk+m@t?=wKy^$nh<%^xd|~^-9$yb$b<2UU4c+_+iG!3IEAYccwRC z(4y7nSz!_L&5`6)of-=mx1#bEXrul`razXCqvr-*gz_Axvnkr04WLkwR%ALEPK(Bj z?d@^rS#Fk^A)Y?$NVSBNldMU4v&316t$0vXctppuWAi2*tC|ia1*-Vh5rX4_<2t+Q z=)bW0YZU%~K*O~kAiJSH5&iIMf`E#s1}X-ked{iZ_SaN`wdlfCl$mw*Dxt|1*KFKH zAyen|u#)YNmU?!bYOIbN@4ahXN^U^#okilPnLGu!Lq7MY+!e(JY3ND<9bh-C&)!kGhj8)}#yGO6J*036 zIA46SQ9Lr8YbuXF9Qg+2k-+S^zQ|mkI7)+(<^?D8hP&eq2I?>pVk9N?w@K3tQ4g^+ z8Gu0tPO5U|4^+c`k(D0U3w04#B2K^+Kl1r6{a`lwAe`*qM07he;oG8p!?SBMbDd@ zZZEHcIP;ECl7lyTpSpg!mfH!i0U|TS<0s>fnF!HuB%ucfjFUq>6H0=qxW=*YdiK67qj_s#}WDl$e|4&D^b$*UZW zeDj6DB5Jp1^%f_@LVMJp1nGy|or*{uzLcWxx0lsx#SHsnh+HqAT~VcFIFnr|AM51X ziYRxYh_IA5c@AHRY3kNjeSnrB51TqXcaii{zsZ<2g>j_pMj$CICoZRq0N!CV zl4sZjyV%nSFrjE_3h=Qsof5Ijn9j*A1mjkDLYaRsrdI2g@`6tpwh zhmhMYVIvf}$bfR4Fs}_VQ>o5G5w0QcV9+m4VGfc3ngxn7i(+*_oxEh%aLzWlirhC5 zWFJ-L`Qw4j2aj1nJp_d{BE^T;6_L%o@2`38v3O{Dd13?k4<@(lJ|Y*zVj^@rq;T`P z4nbX{fH}4ShS#EJg2%8Q^T>NFugUINaAD1*YVX-_5l<(v&(M$I-Adj4GGaJjKEn(t z+0N7j`G7&^iQ43C($LpQj*TaauA9Y3HRPHM57!_oOHp|zS_NEfoYYGz%*)-eKyv-s z7P+M0Ua>KidB2y+*#skD_+J|cj;G8W57g400J$rV#Cc3@Il4X4C6(DHj)07nHGdIv z{nGj;=?^jo;1j>U5R1Q?AFANjfG`2>|K9bdLeSvvPbs>gF%?iEK79WrdZbyslxE7Q@&anPm*Ev96$MGxmD=)kl=xj? z$f?+czahuMF=gJX>zeC0+v)f%rh5C^#b7CWyf_R0FdU0>NiGwB)_J%VnaANmusWoR zeQtz!CgwW}jO9wD0enBHhbAXewzIc^+(^fR6wHKi2_H4?=?{|=sbg(AJ8c)6@tZ>z z18McH)cnCj6i_eQTJpN1jKk+w56;hye%#lbQ@mfh_WSJd) z!MU_q1f-QE6;8DMf}C!PZ3dX2TqH+^5`% z7kmwUZLEQ2y$egBha0_8Z3N7E#-0-r$X;NeJ`5qs5_LMVR}(_S3E0CBIYuUK9)`?Zpsz9lN*HsBFt~90lL8DYN+ZF;lxzdt?q~<|T2^_=-iJ-6UKpPP#Bt|0 zgPJ%aO>!4nNC6?&7UIDg6`A{_XDL_MsgT`dJ3E<}9LY}GF9f4=zDMs|;S@xWjP6@w zf}vAsEh1yOL`am^#PU&8gpYJq_|R|`J=IOx7T30{?Kst@q|bJMB_7$>HgDoLYR!_ zr-UaKW>d*ko=T!`^onruWCL~{Zn1~ZC%@Mjvbvws12Ew=PzY>6zqM zVkMLL8`>Tl0WL$88Px#L?idiipJ*Q#m+u6wH)1D;ay2|*5wjj5tD1!m60H%|#_|rn z0^9+`D=hMxB!m#*%`qZ=h;#(Cib6=ZCvYq!sLxDe{Z7s|Y9~i@GyQsou}ffn(FPx; z!O0M7=D4{SFzIablEu|i2nNI!TiDTmK>i9&6&N%wy03Pk@jo&k`2OojfvAQ1|A`auh^WFS)+B`WS+OkS7B>z%2-SZ$Ure2W|nuEsSAayYd_LtS~o5#olv`#gXk0X zp5tXtTMCy3`Sq?)mq0lPiOAgJsAn0bD%FHx3MbYXCA08 zelWB=fkf4=C!)G)-{Ip#hUZ}`V{}aFbeIh|A|qUm7rr4NRJY74gCim zKvNUlbYhQ=o3MG=_S6`dV`g(hL=tX&TCJyuTp4~ri2s}&Lv|f!jC`^hAly z@C*iK^WBbex6yNcnl(*^| z$aAKZY)t6GqW&$ZB}ZM+Ui&n>d~fAyj7(D4A>k0OLaUe`Nf~39f?jl1#-xizM*844 z8LkA;&zFthx&6M_bTH8X0rG#4_Kwk&aND+MRlH)`wr$(CZQHhO+jhmaSz*O?C8^}* z+xxtG_ulP&=e^TzYb)!=`j^q>9J7zn$LJl-mV0L<3~p^(coI=?mwm(TuM}y1w0hL= z^H3FD-CLRvCdw2PMlVJU&?pDq>ILjU<-C{$|4!TLY!udK(b?IxV59d zoq_rUJ-_DRs@DVqHp;yBeem&{y?^hW`Tcl(z4{G%!1C1jo6H%Y-T9g zNOQ)q8>Zt77m@xxiyV`=Qqx+XJipSRL@ieu(VWRxEZ0g^Zmu2y`bXuqYT8M$Vp;90 zV}e&~Ql&`A*jdobxw)QSG+9WutOM>SU^n46`DubV1U&?lG2LuY0BD$H}TTeDGz11fxsZR&u`2hk!&kbSdxt5ehB3lh7Wx^fz} z71EW|nvmTay^jR)E6B@<7Jo(AtTfXs#dLJ8*)4X?MZxka{3-aBGofBFs1p-He&#N!WN|3=88K^^9KfyNI_e?2ME9xH+COiA#zh#1MJ zk)UF@3wYrb&=i~z*_9a8l^|GGWWY+)_tbt2SLlNac4=3jOXGvVdt(_9F{0H^OyWDF zlc%!bwYGS#lKSS;WQn%r(JVJp@VQtx{$(9|K+pIT5K@eb9 zL|<1(8R{rjS4-`u5aR)RIin?LbsOROS*&S)cXufum{1 zlUXr>FETGH*vO2K(E)oO>1lH2NKhWJ`;~+lPJ14A0*eKJK#&X^vDhyxTtox^J%<14 zsB;b3*cBkaDsxj;m~%w#wOtbKG487!S%xQCfHVxPa2Qd@kL*#HE|NVX(wUYYhPiP+ zN}A_UbE^;PuIVdq1DjbdGSpq4|o}^ZyYR>y4 zW$;c;-nKAkwjj$qf@I)MCzza@%H0%$(nhUeGAzoNP`8!|as`Wor>L(};VyT+@KCGP zrxRgF*O~~eRuP~r#MC9L^2Cbr#-)65o%oK0ZiuHJO=B481CiqsOm$(TUDkEoAlJRm zCk)rK$c+{@Ci1g8VQAL;(Tp&ng``;?x{KSBFXX0f6Gr6)<8kwN$xaVn*a_=xA&6H{ zuB}V*0DAg+Bjg^kY|x*7O!7|G4BBviwZtpFjPCzFN%Q|*lK%H8l>acV7cww1H<2>& z_^%mX1)0B!OrAQoiDZL0O z<_|E|E9b!xVP*#dXQID$PIr(C4W+fGx}JNPj=%K8-#!i&&AuHcH0c|9!#iXziERji zl}Q`BWHU0*(4T=_YA&ihwp?$uQ_^_IarV@oa-^Kt2Fy>& z{J@}vEWZEc`1_g<@*HSHQQqw177}agqQ$DRiPTDyVLpCa6tCD@z^kH*=hOvsdl*WxxgBEee^cwhG&S@`x*6G9B=2fwd(^tj~aUVUG$V--EUB;nVjX4TJn(zYn3pdCX!K9LWVOptw!?gd28~)b! z=5KI=qKTP^`#+Rkh#CHQAafMIET0+RePmfR)LBX9nn7C&qR{w0nebXxUB;QX7 zz`3(up^iA&UX=#K!!0cIm!^zeQ? z8Q&h>B-%R8qf+A0ZUXB|+mwb_i5xsH=%Iyy=cgD>$k=&g$@niwy z)jNScVw5g{Gsw`#lqj(aM9vr;(HAyb_-aH@bzwI<6I{W5x8a}sC&+r5b$^6?gD${k z=zl@Nl2S|*L|0779gui{qi`ONl~SmEYpkGBC#Eri`|D(^@#U!1ej#g;|Mq13?VixT zC#!#v0s2o&scL17{3QZZ%GK56#`SC7RSQ*}M&7(@+oWW;P^X-qqFr4x9~1;R;|g{& z;BtzQE2`T&=|)N>Isyogj;X{#JOn`jT9ZyrJfapJmyWJS!0@q~_JKN^BfELo3PJj@ z=5_qjYvxa{SFh96_UuP5GqgUy(ZTf)eyx_l?k);&J+f(RYHC8 z&1Lvz&wv-_c-j*Xhit^TL1KMlK)O>5oU>(0WXF2jGL6{z`{!o+XAxp6l>UaO(jv|B z6lD4Ox@~&Ji7ruvFinkI%oW2F?{MVE@6Os{oXPZWb*%~vO|6TCTpa76he~_+B%3Nc zCXcNq2SP?;^b$rPO5B{*o#E6va3_E-)?wybUbRsnYhQurpfMr4CLXJwOt|>&m{m?Ktx2(>~M^rE;n;lbk zsV_LKo>^cOA4nqC~|d=_9

    QZHj*2PbD8Of4*hG?|8I*H4b+U*8pBDQ_eP*Dcm2ZKmTkwsSVx2%yb z>On2Y#}8}veP)sjZIjH20^6WX1r%w*UZ+O7XX{?7+BSzL7Yq)jg4$*GNN_P1b*o83 z2a0BAMHVzCJ&gN?qzO~(siR2*ldU*XK-{=Hc9$`CfGCC&z1m1md13>W3sB|t5pH}z zzL+S@nK6h%T(n0yV*M_yEii^ctRj=|7>y@u+BiBXijJ8m3rg;z(J37P0TDn&6ymX4 zgZhA%I-y>yuhCCteqc_yZ6l-fwkqV8&!mHn+Vo0u;&i132HdUy2E_#;eUW_Fe7vP7 z^G}YEIa#Y*G^CaiZaMVM5_3+Sc{>$}Er zIN`>x0pdEN+yi|zc7ncaHfR`wk%vYp_SF`_DC47DGL)b1xjJ z!w#O}y3rNZ zXhOb$Wn)lFn!Ubn@&y6b{ZUuYONp=O&CMX~;iSgxUcXk?sOAw5M>p z^`{(PG#6~5o!~`ejq{Jf*aLOoIF0KFt=ZSV% zs_1hL%hOs%X(rg;zqoB6$K;54$lM`QU~hNfDTSNYrtCmQ5svPGjINO$?}h&WDf|%c z#~vVb1xQucnc~H(0Au1jguu=t;&xWW4}A}>6&z4Iu{uqrC24c|9b8;MHjHorr2T~P zyvl_l5_0HvPpNqJ$F?gnljr;FXgPO4qdfa=N1)_BQ@94OGaN|y43Nm0XzBiy;6b>N zHlran1`F>IEoQrmr}iS)nDDui`#KuAiJl?t8|3nZ7374=!mZZp;5!a$!*xMDUVWN1 z8cz2Nh*` z-lQ$N7TY47sUOX#>RTuBiRa}2s{22kj-;JTYDvBtz~IpT9e5W0{|BD`^*u5-a5OOb z`r+SK-jyVjkOa_ua5ABZiSps)@oUQsV%miX#3PF23luHC8>WzDNk9b+N@q)J*M7j$ zTx;8pDoRyxmzVsy8vZo={rK%Wf;Q};-gDMkSb^nsQ3`l!SJ4Cj+3?8$4hT|kjbcJ$uSiJHrb<6*`A zRPe*dP_T@+G^)3i=*wNS8AtDwNeR=b978gRCKI%#Zh;YPP{x>S6cwQblo=yO{HzpN z8OXw*#%h+dY!^oYF-`_^Dfg;_joY0kXVcj#Ad*ou>%Nv~5z10zr!h%m6}h;0Av(L; zbfVj?Lsmd2(ZD^Yyee6&7~+O$;GV{yj!0LHQpG*wmn7BwS-OLFr6YNR8(j4X$q@!ssK>^uy#ME45J+veRMUZdK zCu{iyTBE+$bN2G11WRY)dw8Yi&bB(6TXIT%}26WnZaR#e-+ks$=OJJ|5SyS1xG2HFWmaZWEI%XWY7va;KfMFg{yy&>{!POy<`F zB9`gDkWyM{PEiaIfk%A=Ai?$TZlqrF3%o<<^+C~zhhGN3?dGXpu@lVAHS0??Y0vUJ zZ*iH8=>72f0NO=QRgTtoM8|v@BP}zed#V^Sk{o7!q9Pv(z}rz|_Yb1L7F1v*0W|>? zLk~To8HJ>y$EIG<`BB2>DkB6}qf$VJUSK|_KaSYC?tT>^X;b1HMxfv#(@(G3hV4+( z^UD7Ma}Xet+6*z4&~5vYiUiq2o2~j1PM}M@jE*d)iA5{ar0!?U&EmXiulZ^+ixf-o zopRC#q%zL?>mIi~b}M4_*$le~mjtcA(rDFn$ppm{%eXkyP;}2Z=J59`g#P-j@D^_e zNz}MQ|31ffA+X!F)w)x>FxKtVBiX@Qf(Q92x!EYQhnLWcDauef&x^Ba4@8ENyd+a6EzJ#F60S<~OvTl^ zs+;%Pd9e&a2Io};&3AT_<+x#=QcBKo7S2D$$pq+fNaD54Rl|??9ZS2(p1)tv#9*{4 zRS|;Syver&t>S2McZ~GvH(a6Za;9VmN8FOIHFv-ze+g1Xmo@W z*AmGjZLL-jUkG15o3{Qwfw|$s#1Ni|w^@Zh6-$c!d`8aojd$2@&VQ(z?K0Dzu-o$I z%Z&nXJb*DF!8Y_;Z>rWJaZc1GC2)W(+mf%6V;8?>q|sUG2!Wqd4pbz_e+w*U-cz-r zaNaLuJ_dPkHH&u3gXLbvg2%pMB8$H?0lD2zXP~jNbyw{H3Y$DoL6 z<{-PP&Qu#i_|DZq-Pxc;bKGPuCWh)&&lZIZ3wiPCLqlX_B~+@+qw%mG&M(%@6oVLJ zf_kTHidmh7#QQ?Fe2lgS*B*!Hgg9bb>7l9 zYMM*j<`7YbOD5GOvJ#nUAnV+A4syHZ0$XXQn0Yg4?yo{}1^-{j0|7H=-ts zM|M&<07_1HvxYa^pG!8q}*}>cTFiJ)*(U0YOh6pAUDX+s9{TxASG?lYjHM26m zq_VM!E^tc@x?du~UD|V%0z6ITTN6;^Oe3%0496ed;q){8#r(c`7DcJ}bItn$^@!ZF zC~hd;Vl|66qx=x;DoX$J?!)g&(cydj=6>IY#M*y!k;1`;Qb-(Cxv)>}0>FOzhx*%@ zxRNUE*QEsddQ$)XO%(bc!`Xk18vRrB;S1FM*Nn7^mK>HDJWpQFfld~vv;hH$b$hTp z7IdigmZQud$q)eKs|JeK^k_gctI$yLiYZ?zqf{)B{PX>0j#PnIH@;GpBt)`isjX7+ zQ)uUvPV%^kq8K2v2tIo;<90N)p0WN|=l5}g)tw3TdpKe=Vb>^{7U0eny&8W0VRqyx9MYnq6ac=4QK*Uw_B}$4)w*>Mk#N{MQN3 zcN4-q1JD+xSgReHn!2?R5i63>1hB5Lh-{S#4x=uO>i~Z~#9x*DFc{LEy1M$W!-`eE zfsS*OsgKb{q)y>%?A%SKH=6f3CZ|WpaMeRV--;41OEsd6VQ3DeLYSqJAE%LqO*rKg z**l_jPLhy0GjC#JIlBvraA7#1nJdwk7=lqz202CPD~+I6UAm*NI7b)?3>8O_Z6Sr_ zM5x_CN2f`*qkCA??v7MP?@8E{vNt3*v2v5#RHV<_Ly99efr{$9r_fAXRXaTpk8pn= z&nMMdp^-YOHkjXY50-Tvsjgf!lg)XU%Gh@6*w<`vN6{hac(YV<2i#q_@5h+M`KOV& zaUWzV4OOe)zIGl!$`fngD&bFCu&HMwN{EtyR7RGhD5auCytXkwnd|m0IQ^_2yKk3F zMsO)(`29_zLi^2Y2PArIQbJMXp(QPTwawf{^(RPxRNZaqSnK0Q-6@sLyFqyXTnoft z99T!i`*(}@NzJG3x{E*WRs$Rm-Q#LR(Q1bl&(HANJa0EHZ5M+(HdjKwLl1zat+52Y zsR$Kdf>fZgAdB)W-=2CjV>4x3fO?&Mz<%^3E%`$$0&5|mQOfHvrBxgDRR)j13V5e; z@Z%S}ARWqqyaSfyVSWKz4ND73VGCa4=b&A{L4}~6eM8{8a>d5%dmCe(O>PjBP0$ka z9bLWA=#@!GDvlUckkx3rm7`nvr&`q@e0BFbBw~4eQ z6=ZhGyh1Tyc}LBbJ-%>!tJlv)*M1C&r6=C8qQn6i#YnsIGoX6JGR*q-r) zYs^t_w(cjSUFU|GIKntBMS*j~kXrIHq?;E(9~7xdD`2FSVwqj`na&1|k^9k>g6Jqh zN0-9tC}Qm_zP&kPfIFk`EwH>x2fc)d-eAS-!*#|IWy14jB6G?_Xm*llp2nW!7oQYw z5(+XErkM_-bW$Bz=u*#n8D^vkhhE)swl)glZP=&ygrlh4`|YBLy!}HG%2}(;1?y{o z0{&|o>;L4U|2fdNH24>wA2L4;IY18$e$%yEC9cDF1j|LfIpgK8Gl8n^pktzu(9=_s zA07%x688Q9Xtpt6ur=Q@eDv(gx+>VZ-k3GLu3k2F!W|&^)j=MybC-$l0Nj(DljcGT zA&^;}waNf*w!h$!(u9Q4r@Rkq52H)(3$22hZ7&T9)&r{AnEJ!NIeKQai;{%V(ZpFA zv^wJtE z6#2i2g}w8?#KPw*7D0c-;!Xd07kKOjwEOA;*d4$+#kd(g!sz{0;>sCevMX>u$@iyz zP=9=jf<4{tJ@ETxZ>Mgjkq7>9evOoh-JyjQwdjgNm6{)>aEeWb4OiJsAbc@wE@YpE zdIAw&oM3I7OpyE`vddWcZOjX@VKT5#zq?otbA32Qm6GByG$(_iv>6t~i8SKJg2mg) zD985lYhfJ;)phk^H1N2cWSG0KoijJn=X>`n^SV#Cw+5{oCv)Rjat7XCAkxFi$LufJ zu;~BGxR^NoTU`2K1L>i`cDo|J;sPH8*SE|B*Jom&g1T<0iaNNt8L)eSiUd1n=hqgC z+AZKCVz=yET6R`&DmyBamFm^3%A!(n#>^+ff<`3OH7w_cS`WGDxarV%13lrS<5Ey- zhel0KB0WIUX`$aHkE}^Ch}IVr;a{c-T7+YwSd}3&df=a`AS$VB3J&eC^t}gKv;fW| z2pz4|-DNVWJ72}ZEQ9nU;Zqa)7&klhHs$pE_tk;<6Y0CjL`{}b`w0XG zzCx4nZ=v~54vqVN{FICS)t9ocv;D6(T=h{pwQB6wDtgWF)(L>kBt95PD6NF{u~dellewE#j{PQ{`_>7Sy- zC%R1wvklk-yg%8#(b6)rK3Ir|N%>q(R~*+roo0BRy|=sad>;2$zPasX24Y$}=~FN> zSfdFE?-85@$KpV0&QqL&zn~j?YJ*gyuoD z*;uWWN>@OWYX)%}Dbl1jX+G^Q(Ui0^G>k71gjm8lQY;!4Cm|6xuoB$#auU=vP8YRo z2<8HATSkFJt4q_biWT!X@8%p_QgdmxSw)iBctW3be6U*QGgXwm!o!j}{N32j><<3fi)X7)gqg zu&%`!stPXX+9w7s`TcJhe37~#NXR6HuIrcs3y07aC#lB}0Vxx9R|iBc86 zx)7C0WhtTn0SiE;!X0)Dpett&K?9VjbO$p9Uss$AOd^uPWz@G0BBR2EM&04dP}FW4f*T#SxfXbuY(+H!eZrLoODo7K zjWii6oK8E!yz4#RWO))3>8+M@*oQm^mJBmGCB?}x^QI$Pg1M;wh;pOr@|DY)omy%FY}X$75)ggN0**dhImRYY6#L2?FcS~^5`oE_^&QEF4- zn&xAARKEjKihj0NicpUl-6q<0)*vVvN=#@go zl{ofHp6<$q3QH9in6z6P@8-v+wAXgb5glZSb8*WqyVU7u2R0;$FLUhpDgo3~1CGW7 zx>{IY(e()j_TY=e0jc`O z$TDn9_iRX@!_Pj_Pc+!yQitPg@pPYXNWbdj@t>JiF{^Rpb;i^Y<$4m~^t;&01yPfd zhmD9b-QD^*v+$f;M`9BfPJOj7IfS?vZ ziC`etB_(}Yr-tZVXrG|RLbN9ajU9Ii7f7#Gq9rTBevsZwz_9X2eF+Ppm5tFR{oz<# zv=1%^x9lidqI&LMKPMWkpp`yLe(SlL9HVlX{Q<-Rh2{DBxuLaB5`!7A|dHA ziwtR|`roI8Nu~u+K4pl-HL`ylq zrWwd`#;aX0^cGBc0jTVmDaYt7D0<7Xyae9vm~(u{Qr(g)ZzJ|n-^Py{=PpfaoauWX zcQbceys%@jgHB%PzG=}jT zF}`Q-twR4Wc}YSvw99+YFYFuTxqCll0}q+N&Mz@&L#agy}>9#Dedt6j)sxTtO&oPCTq3H#R?mvtV9x zepZnC)y|-W|G$II#{XJI_$0`{2I0epJj-~3!|7wP=`>z$0Jjq`DiqSk09$nXC@hgn zXVv@v{@MMzAXK8rbIxHqq&uWN8`Wtl+g-U{}=vC`)?5<|KB0RznQWUwJ@Q%+ zK%oDiG=4YsPh}vmKtLV8djz9#s4;#9AOiqoi2yla<5edzf9Gp~Q`umdlD1ov;iP4sdzzz`RGgx-z#n-;(g|Zg|2ln>tZi)F=fg*WAKuv8|yCd4fL9 z0cz^dIVDu;@L)lpaWko6{Sq=wIzmO%h}ILzidfZPLT9f{OANx?SisoA2_;O~$@>E> zYG!@1Dd>n^{Oi-(H1Nb3jf$l;GpbB1+Dk-Td%L^9t%!!NgQ?Ee)%RaOu@SfQJ`J)Y z^XkT$KGTWf+ZS_*mYE&n&!5MrSf#0m6A_dFR6b~+^yg=a2z7BJ(;-6_?H-Gup>1yV zs>H~qJ2X8;ky5E4s-ci)N%LociS8ohoQ$U5L?mG!DbK2e#>F|KB?%iQh}StTs2*~( za#SZZO-Dg%pEMAc3)D>nG!jdxpiW0zK<=v^6DN@tHwte9J6z_Syc6q6hJBVRBgJhP zG2=*>vr+Ar9XZKkNydLx9N(qQp5?csh#d1--G`?n-jX|mlMTm z!qA<%W7L_yq{QkSsNk60V&NEcml{#%uHJ;kvI$u344iZNM(v!sV_l!T@cc9h;5&IC zN_xH_gZZpD@bS*y`{C>z9_RdyfoJg&6&rUO5eqUFEce_0b41T&3BR-mm&)ZG#&7io zF86m?=;!=RM(pfuNUZ29yr8_?TKZZBd%8GjWWslTm1VBsi(H->;MtUfOebB+s$^|L2a*Xp zUnDoCvN}EU7BMGdIf%!u%Z~^Rd#gzuJqk51vL-z6tA_m-;MGvQWWsk-d8wc_grpEt zFO*G>w68p@!ZK_fXL`hK)yksM5Gre8h6bDrTMpHTr6brC$ANTeeq-2}^&IofaLb7p zIrk@8tKANLKTaaykm54o+DVHraVs}DqF7(O&kq{cnL2ev#llfZ=lr^Nh!aP)P-}Or zduA9Sh^7^U^0O*sFGlQ$CYz0x<@DOXGkT6MxWW>3mF1AjGUA$~vc;L% z<$8(Yo2i3t#YGx2>l@kU{t{La_l!OoImqqJmv_alo$zA5RgR=;VuJ5SKdOVcaDvyX zBxB2ZFO~Sk6k27Lhm6K6LHx?ZjX6dI*qbxMRFt_QtUwfe68+@OBg93xQDtv(&0SoQ zO_1hUjB}G8jn9DUKG#GHe5e7T_;uY zkY6#bsTgKP?>RNwL0*%OuCOnJLi2vz-UzYk9WN{4Q1MNgm5!_U$jZ+BMyjWOM{Nn^ z00V-mKqu;{GZgj;C-mZl8$6xo1@HRf86Vqs&;fqIZY)UtuenNJPk3Y#EJi{{EOY8IG%C1kQYnzMX zj?BuN+nz&%f2B_pF2x$uZYUIPWew@TI4CjYf|zS$KYMKZVPKs6dcV2GhRnInmUp4` zO@~&vwHvI%5#e>hDuJ$U(7prR$OHoE7vfaB!BhgmMhAL9bIvG$i0oEnG=G*adTN0= z4;B6L!r#2CiI;C2n zsBYZ(FUyS%5EKi!NC*e;TiuQ>{7V?;V4ck%*^fQ~=NZv7noWEhn5WRAdq@1!ZY)4Y zR{o*pLp&Rjgh`lx4X(^EImSSgaVm_7)JOY&$3oYB3uma8CJ zaZ;(0J%%FFDx0`LWcyPgmCe++Xd4RcLJ{lOthh;A=0LZMfQiBKvc8L~5RQl&7HZan zj?7|hs)bOiyCMXfha;4S1J(AdOz=;)-IN^>KM$;t@#%KOpRtY|p!dI?9dfopAv=I4 z4`r(px*BA!`b}Ru19J;fQdbG{x?S(LZ;q2ziLg0fC+$WDzrN)cb#jiomYK7DMrioU zTo{1wEi;uf2n&?$Id8$_sK(;6g+QO72gkQb%obydVJ6E6q_K2_!P{Sk@{RU~V|vTi z(R68q9bvdb^c;h62f-59+4k8}NF_~j?kqd|PWE)7ZbRgF6^tVjIDO0cW%a&fF-B@Ei@;b0$T)_`$U|bJgJ(2@$Up;Rq(Nk;L1gG5F#afgcR;;Aw1OC4 zr2yLLgSnFtJfg8qv^!w^4eL7Qh5%}WUmv~UsI0{{;Tu|5j-=l;7(LN5hfTqLA#h5P z{(2qswc>Pox3RKV-PS))T$jPzE#}aHbI`-J>j-iRY>MH?#hhq;!@4H@GS(BoeR{w< z`F63JyxcrE7=4HA%_Du{;L6mW{+ zHD>|Uc_GlolWxEcW5cIA@r*e$92Sqa1as_4&E`DY$77EKbumo1AzPMmZ`?H6Jl~Ms zX3NsX>3;v7e}&Nv*A~B9?v=0DK0k)f&dM$lsTiy?r=q?!5v_b6I=HpF2jkY1b%hLR zK|jXHwFL1 zes0DF8)WDx54j1mDhoN{U-rlh!_w8^4LsY~Z6KDe8pt_`!C8|&+CI=PP2_|Iu~Usq zij@(G{cx=0-9#_*co2|a5gRQ%s%wm?k!z1a*HLj?nw!wCr@13ROocJEpA=L5@ZCGa zQBy?de%eyDXh2R5e(ZT(!Z+OZj)<}VPs!plIC8EG8O*PQ{slbp@Hm|kOQG;0y%t-& zoLQNI%rY4ZkP@L%$z-dj#+NBI#q1Xx_IW8Eziqc1-2V~ zcThbsN@kf4Z&}|i4TJPYMIK}cf0GfxQqlYSA*nT}dU}OPTg|mA7)_NXcOnU*(IYKC>2~G@w$D(CW~%&?;8lq+G_-YI!ZK(XDB!QP^p;QO2^) zTCPdHvOMuHK^bR4zKMK+(T(%M;{T#}tiq*FdTBRNi*n(m0SJ+?Ew`0b}hV59o zzd96wTu624yh%o3W%u37xrT__fvMY*uYwLUTHYtk7|!iCNVIy-$zX&QV+6He-&huG z!I0bzpgog4Ebp?9*ofq{#Cn}CnNj0nkiHy1ajp}q>}i+097T44t5xOW&*)6!J^a3a zC|2_;`x5pX6hBwWjJAxt1WF8G9L{gSi(=~M>x4T`zRuTI^j7`Z8{M3)fiR+2bROcd zl&UDDs3mvlwdAT~1c&MFw+j)9J4}zoidt$<6%)!9r@D9&c{J~c37RDqWzJma!JH#X zlqH5_&Rpri94%UuCH5zC^@NL=M*britD;>PriDQ{ebg@Hc>S|kk4(C`|C+2i|43@q z;oQoQf7x$}Ra?UA1&|;5dOb{k#Xgl5HR{54N1jbm&%N>ndf?}_nkq`bvzFZ+nrpyDGv{|*qjE!$^*%v1G4B3s%Srg#hic zycvKv#u;YAY_boLJ1WNDv2XDBuwXSZbJ5OYp9uWDS0odB(OWn(PWoQKg12+oor`gi zX>-A(c{oX63}23sUU72ByaoxfWhTASWte)p52yw!)qJ}_`aFVjI*LWpZbKn1#R6_e zoT!cV(m-HCX!@POFvJ>x}g zs6j3(HdG6K2OAKA4RU46e7KcSgCbVg@&=oIldAYe?Pz6lmF~XjkmE&jewn*sSET(e zo#`Ov6zR{P-Zx`wevCi#*;3xP%WQ17TD$LP|5&W~L;Woe?%THs+<$G8{3l)X|GBdM z&%*zo+)$4?ly~xS%ID78G}WLOM8NkuV(wsig5WS=XaM4U{5*HOFugexUJ~7SA3c&8 zDXMv!d6ia`O^scYIavSUa%ELbl&ea4tIC#B@3j$QlC*D@ zv)_;D>*pM=nT{{XnJbRxTrW~FSsZWZJ|Kpj7}fXSept4vK3TSz{v6r&B^a(NLsz;W z9b4_-ZCmO-T+(aP3o~2lQ6A{m^k*kB-#t-ODH8*_rfZYxyoNXQ_r(4`&`%8R{{2DF zxP~|ML1O4b7#C*t{{406*v9tZ{YB6p5&cHcxMnvXL1Y;3OhIMZFD!AN1G^TkkMu^f z?6+8?vGljqNV6Qb-B?i#n;|=QFF-+P+w4gss0VJe?^a-!=Ok>Z`#ah0>k(@1zih!i zXQtFJ-ov2kZlCnr_Fz!?&PFJi#O)ZLP=k!Hr*@o-cU<>y$bS9`>B@PL%k`d(c+PnV zLh?gSUqal(Tsj|2nAW5&6|-daOY;rrRpEaO5flb*F;|X*G%lS0tew$Wn#05M1~jnj z$upOR7*@6D$JNRw3f#j?%N#S%f?&tEwDd+{W+VbVrJ_t%X=ccaS66gY#5!Q@wJg`T zFgL$qTG%s~6s}WMX=$CSveZ;n)M_ZS)eg6%riCLJZ~R!eAv0#DmEWpY=+dS-j{prc z`LG|`L5esjP}h(F(kT$>!fd%J0m7gOn2AR{kC1))t&{$<92LqA_GPj%#vtWq0n%!n zni%1Rs-nYbIhsoBh!ESfCIU)1HE!oN2hp;qM>U{rk#&>>M9@=d_6WwaSY;EQI5r9u zBOrg=c2V6Yu!%TkzLZPM8CxiXf@qP>o_Mql!VPNNfRYn|)2T2?a(c5@(@)%! zb!*EO2q#h}{So8#z&-gg3iEtYHJ<5~U{23K0jY2WsT1Z^;!%t3ZO`)U31KVs{8sni zO^!A)czs zJcu`1Ry?OOGnxU|e!^sFNLMRlIc?)Y$JIg!d{fbMOSN_g=~@@}F@)QxIRr}10!5zk z&!f~;t^1iA%0IPJKJrmm+@#vc_E*n=xp@dw`niABMV=$5+!_hzyzmeE?X^e3-6H5b zA-J{UHyge^e6!^V74FzXk{=X4;xaW z19kSOes|I)3~7DG!kam%233@#A!8M31J&3u6_MOAv@uL?S@WVoe=;c0QaI_?K!F}5 zC{;1e)BF%a7p-?sH){AJCnohE7jTffY7r6D42rujHn%XL=I%mq6eZ9A3qwvLCJ;#P zg2@*Bd>#Vq%auO?vHp5SOq8qy<&hct&;c4mT$Vs3MV(ER=^-|i=`sMsVMEzOF$G@q zijO%kdnVh0EYs}F!u67prYNBKLjMk75%g_J+rmL1UN02|!Xrn0DU7Kiuk^}|of46+ zl&q*Ayot4LL{9J5Y=?kFhm_6`SYM1CeFTGbstKta{ecSO%&ZZlhtN5j<5{hGJ?9x% z>}`0PT>uBO43elJQ5NYueVoZIU2xmLFAk+yC?)eNVuQ8HJvc6%s633*NJliJbpK#? zN_n&${rAz*+`Vxxv>?SapXiXeZaLZw8lhMvj<+ z1?p-};Bx5%Q#b>53>)8#9N*(5Dt`_8i4`|Wi?m>ZZq21atU}VP&Cgh8GR4R?ARN=Tv z+_4<+`aMKsrdM`%6cJS>jiSMArja_WeDI`^Q!N+P3 zuXqb9PH9qC8a3G8*=?HZW8suCZ1XVai9Lprqf7|!NmqvuE%A~E0Y21i#hSx)r_<<0 z;-c(?SeoG z`UF}So5p-%1Q@v0KUX=^_Rh>bbF41M3E3*~EtxqK6qU+YGZxD&v)J^9BVtvxBC6{}*NN z7+guew{6da6Hjd0wr$(CZA@(2wrv|LwrywPWS;Eny1A?Ne&2h2=r7$}y}GOZ_~ATG zvHEQ+igTyJxDTi?AIhjLruu%F`ag6^OWDKVankkMGW!ACQC9e4HnIh*S(Pb9HE0x; zlE(w;M4rYNxK`#ymST^b<`2aQ)+DRfut~~uFLvZ(I!VLe#8FnLV>($Pwj8TyTF;_h z)A3m{^;DNP$yk2pzXB^W+V&tQpaxvzj6<0;enP*D0T*Y&l#JFW%U-zwj%Nb*CDs9?VPT z?w(7%{y8uBCYTpN%v*o*J8+wkjuuYC(DU{8-J<@3LS$n7?&Ww! z!j0vrCu`VNTHtlVur6G|aZ7+(TCw%OCz36e;qt?nM@@)7t|-YaGEPVr>ULvN2N%ow z>-%P^M!6Qpbn}+f%J;}Oh^%Udls+rlN4D#tPO4p^*=3Vm&B%Qq3LYU(IQ$B0-r2#i3GZm43yV;)uGBJj+#}23MQuPB4KOnJ`ZT~9 z5+1VXYVi7`&{i1wxM(X*{n6+v(EU1fd)x^(gkVq5{n=vAbP=WC=9$v_I)>e;wK~8V zf-6-J;H@5QFw)CV#s2QF_RexajAt1VG+0)+s)OY408H z+0?0SkX|9b4So>F+^Fv1-xj*5aS`Ic)58A_XCsOZA0Zx0aL9L)kU?7GpQiD=6VL2%89^j_9MHM~9In+_F+DUp1e?8%I z3;t63%*R8)lPDX;J619@a_4><<|UsQOB<1Jr+k~{CFw=8jpCc+i{zUyGL&+sXfN@Z zMsbp&Ko%Rmm&h_ijXmymszfplUBuU(L{LW2aHuv!IYNGKoLnztLaFSKU#}&j07ytk zx;Kt?$eUEwFz&8bK_SCDP%4s?QDhlIA2)U=uGh}a)1o#dXB{&*bU9VNigirlu2(uu zxlasm$h(W=Qgl~Iro4{89uKMaKf88*{-y3K%(@9lYP{c?R6C4dyv0Dfte(;0H&L-^ zI9S@KruqEZEj$p}>;K&!!`ISQW!Ta~o zM&+s$*;JGhgBSAt@f*Z!h(Ip1z*iY|AzyiP9lFN5$irO`mlVwx9IRq z_eI{xpP#(-`8^94>wyV`I%!XeUWbPf%1O4}W^CfRQOZTpn%iSch76zb2-imGFMSVs zpLW~!g|Bp(AG;4l4Ypp*pImP^E7l(pz6A91W#GRyU^_a2(C;K76Sn(M?@%)1TOfqD zXfEz#AP;_r>9~Uj#l5X9Zk6mF>0R}z(Fm?4X*uBtA>Sr*|8m4AWz})|F>zX|$_gm5 zSrrD~+WLvXE&g(zJN@AWQ{1ezmQvN;cuI{r^-Aqrc%e~b$g+hP8`b-=9J981F<^+ z+caXmvak>Ss+exF9n;Qf>8AL@Ul}^k0)^h@4sQ3!LvX*}+8a8okAyx+ViG>bhT($8 zsIJ!=qQ0>>wtQmJ#ouy9Ry^85Cx}Dn>l35!!t!ztyIK7-nv#LgttG`Pv65oosZ3)% zV_b0-knv=xS`OQ{m7I~%gBv9sVke_%e(J*nvvoTXdxyw&Skicph(;@G;QtOCbmv&_ zz-Uuf>6K$;7qFIW=>n#_Q8}k-;SBcsAxl~p*xPh=S!~-t2HiUX>*LXfrxfscP{^#< z?@$I%6PI+BjAKjC7;qT+MH~)=9FCb39&Wr~&}L_uZ>wXJ38i<3UrAJi$^)`?U*24q z`C;b%gA&Yn&S__JMSR72M>nlS@#488YtZ5~t1}pB-P|hR-1n=&_RFW&vQwhQre%o=t}wRhITr zTg#&&?`XA(dWX|}haln6+ane;*ctm$Cvi1YH6}0p6im-%bUfnRZu>Iv)7|a{ZViS& z?_zj0(vp`C2@O{aU7DA$rbKY;tJBFsLh_SVCpd>_y=B@sbsOD%j0a#tVbgSPx zk-b4}9@+M5xW2cnspk;_k2R^B&G*uBR1Ivm*v zY+?5T|hvkpne*lGr4+joVEJD0tOY0?Y`9aPPYG{Q)*K2 zw9_(1{Mp7_Ruq(vG4vzyUt~wAZ0clyZB`yf_4>q}sDrPk4 zst+W5-*ul)r)yRyx#{s!*f`kGC$6$e3FP#y2&>c~ zA9z&A>;ah`9@cmikM&fvhgDznOJV|dR1}?h5PLB5SG6!G(_&b+O$&1~Au`^VaEq}8 zy@^GSg8Be*FfH7%rm-aM2QE`%(syYVB3ig7OO_OB7$OXXOC1ZlpodV^2C3n~l7>o* zOAOSmFkDH%#MQ<2i`aLd@`x}~q2Nky9uK^Ym)r0rH8^rwk|1Ub#C#!so7Ia^r92zrkMZk}maHt4oDP(5acYsk1B>@JMpCyr2?{40Rw_2U9h|U$WTbVE) z*lGD~6z&GDXmk|LWyy%z;?y#z!8A|zl3b}(&3c`|u@TQ++Jxgz#b==a=~*W2!Qnw}MB9ENVz z;aWmy)_S;+%-h+Bx=^3wgMiH$6)$l&q)FfLnn^*8^oPo#e%D%fa)Eooj)sPPf`Jtk zA$WU*y+&_uwhaZHaHwHrZgQ%E(RB}_I}RP*uV6xeU>W9F#qeN9}! zsa<+I47U$8emRq*O0R~{^c{1`1*@hp!wToCd7e+G$}EM-$YzL>{G_@UXzJANJ2ZW) z8cNuH&KT4ao{?meDrT^jp}X9iwYo?pQwg@EQYd~E9{dja8G<>|Lz3}QQ{wL{kp5g! zEOLPP2W2rdvB48S({apH`^Hyy46@rTT3Eq-tW|fsez7&Ai&+iC8{l^k2*g_B)#nQf z>#GM_&&vi*{7k|1Ylkb7apk86vc*Zi`NH#I3f~*{uU+<1cPtP1>W}F@Z`f?uMLFR6 z84(y}GLEfTwDy@Rjzf(Z?Hu8zykIBQjMxLz&pQH&C(JYU%5yvPYE-#H*47+RX2a?I z`V{$r6Cc5B!K!V!Be~<{EXSD-j;Xv)^~c2dFip2JURNgmYXQgX!=Afi2+ zb*J8{PIJt^L4Hq%Mi|4Q{cWtsT=9E;96pMEMRLW-I6?w!r6GxKpg_aTOiFE7_7L&| z*2oj(ip;d5*KutE9F+*IUM7H0RChoB6#=Ix1^w5#ZQL!U@GuN;YfTDB+xxEo}UQym3IGSf$?3um6xgWH(WVZ*tzw(frfVU?3gepD|a`Evtk6rB$ zAshLs5PABd*GCc8cO)lZQ$AyAi8tqAsoUaw5}@MPP*_>3$t)@&pr)}@o4g{LyegW! zI-0yfnY@BAeh@Q$ATxe2Gk(B`oVubFY!4Lj+O@yKyUyg;;eMd2G6qkoX}{kxYEa>A z+6fqrQR=*{ErI&$2=c^4LAH0w^4$VB*0PW<4;GUe*ajiX$xyT~u`X>kt2(kp2IZVx zHA6;j>=x;`ypT=hP!qd?NA#zU>de6~VWutdL~+WyNN!HVQZ}w82b{;L4^fYxjwn^q zmfHds>wlNXl{t1-v@6&xMm;S4TLzfH+DMxA+5^}_^rxzVq2Qm<5>Io3+$DY zWu~V#?la2d6%PDLI?(+4y7CT&azDPZh=Ovgd=^_Z0=Vt>mNE>P@+3F4s{R5CW*kM! zI92D#a+ucK>XBt-TFvv}rXeqgJ7ovEnlKHjFb%EUKX>`6=Ydk2K*F1lEo(|u`EVaY zSvpt5SC@2D*7o7T<8^1?w|NZZa}>&tc>N8K7ecg8HaeS;AU(KezJGPL%8_-vSAT5@ z(!L5>|1Fn8RO}G@YG(bf-@hzo{nvI~-@)-e#md$((y-t8e+KEkVe(=^u-57q7+QzK zij&~)0$C^ON7`t_45+jD35Hpq5XfgpbgAlgE$q8@0Hfu?=c44&%oIng<0cgZ)uXNn z6(Y7ElDT;1@m(Ga$#D|Wor?^UFfd~hr{T3RC$qEbyA0iDv=ngh#A1q+wNs>#XN}&< ztP*EA&e6jN`ZjelwMCh?PmARaEst3wc|Ui9gL3#5_^5)WZzsNR6s;(K`vv5MEb$H^ z@$HFWMUV7`qn!310nN+o1#;)ttAl>Q^Zxsj{PRwU;_C`q2UA)LTO)m1Cv$6KS`%9b zYkeo$e`@yqj|e7N(+<%XY2=S?yi3C6qX1+OP*Ahn8i_eDC^A_~Gm^NudETJ{pHqg- zJheFj3nq;Ye2p7w4pt5pvaXvSy7?j?bRQUS(h=Q#c2W_YBKq5_BLga)NXO^?ZK%n^nIi!IJ(UIBm3@ePV>678a^_WH{Te1R$APU!1)?CR8}bTQPK_ zNPBo>I)JLM5HU$>C`9Um0J3}(`FGRK(1_ALB-V^00{LJfh4<6SQ05ts!k6-h(VfiD z`_`Qy;qNgFZj1QR(kJ1=wcWgBL;Z?l_Ux4v^Ac_ZWzrKKZep_w2dzbmV|b;4^~pzI z=SR$RiO?UPMoQ6?(4U{=FPT_?6ALb@t69t0!6+@MxM2y*S)p6kLiKh*>C#u4;O^uh zq4v-njjzXe#P1)p)$2-=fiunV5#*!;vcfuweuFHM6`!!q`~BW%^z(k)7`!j%N#kz6q#jbAj94{&Hw5eNGUb;X>kvdubTkEx znz5$!(T_qoR~7^X_EGhOAlGS&BN||#Ty4z^4GM8yi*`08Aqkg#t0joJH=$=A z-nFi`S~Pl2E#`0v4TxIt#4j&&Vono-a*NCx3=Pa1&;jYNmQUq6Jt;)sR$Spb$eY|? znnc4u*}Ef=y6qQ6;8--QNZ^^S?k#3Z6tfJ(!c48)=d;(3keT0`ZKRU|X8_f?JIso) zOA$Avaj*Co+BFi1pm<)Ybz;1a)g zptl~?$0X(&4TFCWUx}m!%8suEPib{a&l_%ACDIyZ+;~@qnBH{{KI+_x6XHmaAZFG^ z$CV;apY$YM77}8L&Jp_^R;ZJscvy>yhH;-M##KFd;Ff|iAw>z%^{sAWvcQKUVF_kD zRUv0|a32BoR_SU47)U44?wcwRw1HT^q+6Q)A{S|2R}aCCGDOX;^LJY@H$+wRo? z?Q-0I9O&2-El$YO!zS7dg4wrfhzwqd297|l8iAv$OG=3Q%XGNSk5uV$uCpm7GOw`J zS*V_g?Vq)1ZM@h-rSeQn`@%gZ9U)z%CAZ(VS13AoEz(<+B{0$sO1J14?{#qVa!Whj z<)!lyP8J&rS#k^K9U?tyR`V3#L(=nq`D9fUY=`1Jzf|Ut^5U`%OCXM@nV-yPz=*h( zL>X~@EJLAgG%kUe^a1s0+JOqR?7-G)-q^`IBrUdO7E*T>~}=m_P$r z!9tNu*ykxHzg9cC)TX;DFgC27|WE2TW$6$No5edD$`uR zOJk&ED78d>9+H@XRhY`9)C7&{*26L!vc`2EC94lRY!6Kx)tW4ry1cG^#}Oer0R+`m zTwy0J!?%8FKMSy)X{ET{Y6Ups7W^vtGI|s1f@sdra+WV^pB?q6{dFnKc|Ii4jH{`J z3+gyp_kLydf{8so9bEQKILIZ@5n{d^wEK5L?Vx{IlOy8__!9>H{6AHTbpH>Md0poXh^y&?Y?MoxC?^_js%o5f7OKA;Z7?9uPv zozmSZhgDA)FTocsbzs4c&1vA6w&ryl2pUCZL%a+gXkJD?v#RttH4!+dMDA_^`hn zXJ6<}#y+}rro=H3uI6f~vVz?q^Ye@ac5gc?{_Zcv0V3VKde_&Q8~$%4IR8?l{ZFg1 zfU~)kk+B2Oe}j(yUZ=BE))g_8(f&}gj|JBvd5Ev`%}9_R0l^em3+1Zi&J=_CgG3aq zxvWy*qq)pa1uI;uyrX88(E@Jvpe)R(XDsUW**KaRIrb0xz-_&6`~L8M0OI9n$~4k; zGw-wRwSBf-eU8^RUha<&{Jh;JKxs9!%!csc7l%rPGD1t9y;g!;oDy>pMYU=RB5K;T z*}?_iAJA|KXs|{gP(5ZQlwY+%^S6b;W$(MbqZ*(&?V@KM?EU0*TMAO-nyZDvX$*DK z8C3ti?%Dnt4U5C+SxC9$-pshRzRfekgND5WzJFJUHJ(1ERH~RGHW6%fCKBPdr^b*s zX0jv)3Ia*dL~~tiL=7LFCZZtO*l0gsM8(OGo~ghH)SSIlI>7vDJg)>3#Y7=fb7x%& z;Y^XpNi;N$tV+L0xA+XtT;Qa2A>S0pPSQJ@z7TJc@vWzZFBM4hGXY4g1g9i&+#^1H zEhP(0K8oL+NSHH&(LzFb^3V^Sx>_c#o^~%rE((dg$Vjoi>@fkiKTZ^{xQ(k6>gJUt z@ElLJd=_C>zU44F!NY7+Ed9k=bvZG=c&f14SZEaJLTMFRf31xjUgwY<;)wEm^ijGo()%)&LkM02$UL!5i73KLPKjkA7CNsIZ>K@`DaR!A#} z4oJA)uoR_s|9cCOKC6Y$AaN-ga$GE3aABZ*Cmwzf#KZ&+kJ2tYd|@>q^fZtlD=(!8Bwqkv7o&^c_ z@ArCD8O6vm-(`Yoc-FS*C_Jb=6y!5f6vA_;*sVWsQ+Y&L%!CD(gy`W?m1I9}cm>FM za0@o+4kFM$0j1kNN;T)zmfW0W>-bz^eoG7=TlnK{OD%m;N((!!mX$I*HcKPnVY zuo9wDJ$NcC!ZmWCyCy`aL2*oMw{!uH!ybPI7HAdQnuQ6jErKvnPRC9g%ZJ=w;X31@ zyrV-qn}^_yX>UMfyXOr`nA2Ne+`e$vC}&7Cr`6gtz%= zy}i&W+_v*f|B#6bH}(X%GHTfFT2G`usX5SpEbrORJ)@@;a3+YGp1 zQ~lIx2Yqv9v$9t1D?)Fi5r9@<-tues(V}l_g7Zks)z}caXVUC-qR+ZhuTORZkEM)* zlFH<6q=F}no#At_AqxFdojMfHehv3V06O|y5p{ByT#);Oj(Nt}9B0X8Om4y~&f zjbfo!GK?6>G;EqFC3-_)W3`E*#7^-c0@w%Hu~1)hN`v>Mgsbd#zz0Kf_$O6 z{;E|`Q*F{bMfl@|`*rnEnsTZn z!w}3U+F)!XWh+JT0D;?J2$&Y)ygURv1S`=-qFn_4QbBRjtW}04beH|SL|KK2f}%C| zz+%!nrE|7sd)h`+1f5d!X|T<<-jC-Pa0o8F8>v)rfE?yB3{S=cm7}G+rc6Q!zWxz3 zXZgJoLx&kavt6GN`f}PU$5I^rx-fchuVM{RdTP}}BPs)edW!HDnjlmZLR+KBy%$b) zq$8m*uK^lW!u5{RT>5Ce8N=lB7czNAKdk|Qs~qZf0ada}*GOq5(jGL*OkpMn3Q}XXcn5k7*=eVeE(?JK zNyn}6rF!-3qR_7LDe9U#kg)CwFHbZ;N)^1|essHmV+V%5-CK}FdyJz&mJYkMzS$kP zL`G9X00HhM^t-)`_yh1`RVVj{HSatlA$N1nm?)G*W`#NVsOVN z6jcEcHfvxrUBpZxs*cDX8M6Y}icFAmo~Yc1J1A;&4=~lVOonXI&0sbd7&ml?I?W&B{t_>(pA(DwD6=?K4$Z(B?oaw0OcCD3KCGpOU#GgAJ zKGjL2CX_sCMdeWrRvncZP~Ejir{Ma;i&|3xJ%x>dh7@YXL`iFF@7(g}wDWY$U_g8N zo5ISa-FW*@Ut!%5yJ1F7*H=_)m(BESXNI@pQ=*OWb-y7$0G|a^WmA*o*@;$|VlE;R zgSv@M%*FB0M5O~orGGGOAx6Oo?Gx^P95}-VoxfDgt48s(7?!^NwaXLu%$wx+s!~<` z+bY$+%)R_qI_huK<=-RHId)0{nEvO;AM@qvC0V)cUO`WKx2=Td@0utYjczx|SJCT< zsZ{0^uNF97-*6=|H~n#;U;@#7#C;OdrfZ(yzM-;3)}b2e?j$Dj^H%U7)>!8f5NZau z@ww7Tf$o(TE0V^-)dzXV&yi`4Pm~jAmZs$yC9>;|2T>*(!Hre4xh|orb`zVQpQKkv zvAa7Z$2VCcH^!w+AZG-_0exgFXO`z?X%DmgM6)hkW7v+fcoureOpAX%45p?-P*zyK&u6%&~WBLm|fMWswN^8~q+te1zzncEU6=nakT>p3XI+38Q zjiZykjg#ZwpSmdx!VO9Ib+{+nX__cuOk7Mrj18D*S4^xws#FWeKQ|1|ty0_sC_p?| z8Vp`_R+(#QQQO(oS#?v}wsWX4_^}%u`5G9m6B&-H*HD?uuBWAAZhlj-a^(KcJy)l$ z@^8(a*Yb9gc8>d%Y|bnE{JQRN=yoY{KPCa#AgW-hUsz!3km_LUSPmcuVx#i0+kDZ% zO#JEi)Uk9#K;}VIA(ehY_>}k~d~0}@v9My$^^kX(Vx)yo2qBfhSWxP~?6CDH4qOMW zv50u20!#cd{+ZA(+y_XbW&G`0>bP<;PzqV~I1V1M8Pj~HQlq$X+)zcl0svTwV=`Yz zGGCGVw%B{T$6$ z`<+oGTnAj?%AW+T1lK=e!ReL)$hbk=(I#5Zk3b}1av#VfVu~m=<=nCEKs2(2PRSFq zMNZKZvxQID6SGB6K@*$v9|$C9`E`crYWSM@b%Hv<+_CS#4x~plV_WdA`L=?rLOQ|S zaqqq#2#&&zipIv^=kW0aT?AhEdx5=R-GLrV_}%6B-9-s>H^B!{9F1_KsMbUVWt8vF zK8iV8RyK5z>u@)a} z@i${N@o4$7L%6`*QSP7*%tsYtN%3X*a6+tpae=ub-O(N3k5j0VJl<2?yp z1#CdIf!}c)FppNmqT;XPeGOFso#0N8)o*P;cVJy*GbcH&Y^mKGYbeo9!HJvWE%?UY zx-b>G6}#ccdC5El9&pNeU&#&>Pd5FgQSXXoJ0M{`a?H--a1`!l+u#cQhDsRZP9rSv z3x6nB!5+^GNbu6khLk4ry$VWHRdBU$qyBiA!$+rjfTsz><9B)kxg$q_4)#hb{c9Td zm8bvP_yy>@uFGi3{shd+o!1M#E^ZKKSsTbOMD7KFVx7cLh%n=U$AS*<^QQ4~ z1iSscU|taJa7W={x#a6bPqwy zPWv0iP{l=KA_7fCH1aQ3G-0+llh^K5skG?aL5^Vjzu=@Q=ZC!S}s* zeJJTAia{o-ld?WAOoQ&I)H(GR%Nw)MZ*tbYfaK5wcGeviwGz7u`~jY%eOd&QVRw}h zP{3hL)iZM1fktjxbWl2e+954CDpAQ{rew4s*R9Esnflqor1%zXoheG|RXSQ;pYwHT zFipWkm>Fc!4oH6y0@v?Jx28}`p-z!OOW{tL!E@nG{y|LPPVvDE;SI7qY66#t(g?ST z(3Y?j!aWjr7cl`xy8(wEiyJh$@5dxjbU%ptsHsvxishnjtrzGXm z))#s9U{Tk35Zp|+e6toaL^h>od1Ks6#)PgbW(D`+hr7eEx)sF=RmsB^h;FHuk93Ap z{GoU4=2HItB<2)^!$k0_iNm4fk*N~uYfM+4*_+-3vWlXT9-mzHYfZGK==^(uLJAtsvlIG55M9HiU< zGK)1YVoeEI#)*35QKDfKL)HXT*8p>sF#ISgDxfUCQT!xKtiL21KQS|+(xxZEKOn&Vy) zd5CoQr|5@tL0>K%2Oha78v7S_@WN+nn#ihFDj<^@&Jc8GVztk4K7ir8a$pp1N;NQL zg?x_Ua1iiBzPTz2`;(MFTW_u}%y!{ULSDyaxQPW=k&gL|ptK7cnE4clZQ;5Sq> z?P$@jtYYrxoHM~8@6-LRS*qiiF8Vr%WA0mL3hp|81Cq2d8Q_`X*0@z)W&~;>I zm1@`yn@-niG+~F!im1DT6ag(i@!7nN5ZVkvWNTj?Gz0?yXC_ zsCw_V+O8SM{r6qgo`L&}IVKy6=HRnqYzut2rcjcX+nM(zoU@i}wvz3u+ zF=*+M(irS%SZnFhUI`6X8E%wCt`iO*7w#pmw*t{#K@Vq*wK}3b6#%C!MVu!LhD|l~ z+g_LR=xn%0a^~2hD*W_ql$fH~PSajsT=k;8G8oqGZ=FCZ8MSjSYdtW!?`*9=b7kJI zHqD&2_h=xQC~4U^IE6{jPU{%-;=nPy9Aa6_cB@A9W-MS;DDp)tm^Vs0Vq>&^lHwYP z=t!`4wJ&~Rlu6pHSF|4sGxfBGW3*x1Z>Ez;*sWLSnR;rnSJ&B?kMs<-*F--~!B!Ro z6j&gbX3v2#9Rzjv&sZ}p{6P@}uE%1`Vke1tK%tqBSO>H|v5mx_rO-^&O{Ntb!|?M> zbk1Z!Zw|5h49!5RN23FiWELRE?1tk6;-S zvuNn_X4VsY7N#kvtl=4NbdHF;HilAL+nMb(xg1oEl)QVi_Ru_chSGZ0lRg%uTLDaT z4>CbGQ?qWEEP`gWKQ?!wzMP$XR_ZqH^|U&W5ON z!Hn)<)DzGe+^ zY)x>as2|gx1DPOCsFAvw9r>-pb-hNPSlK_NaE*ceSpFR=Ee+?*SqEy%b?S=Tqg`PkOU zJl1=pHiebApf*StS1Kx~muOTfc2>TnI`cNLFjh>OT#`O6?5O@g2sSZ2Gh1lc8Mb_636I7_K=B8Wri;%N`t~t zWh^_T5kMl%F>q3y*bz2`U35Hizz87!*Yz4lSQL)YaqJQN?zBg$yz+i0e@5x|_mw0p9xW-^V`@ru;(Xgu?6B9oor*eQ)s^C%PF(PS)> z(HIar$u4;`naFNBk;$KS|1FJC@FH7f6^z}b&r&c0iX<~ z>67lUlcx#nsN3W}{F^9@vL^2|id>#k^hsV7_c2_ul!;c1E8AhT(*k1BU6Oh69FGP+Zp%p#a}{ybX1XW2Yiz-Q6CSionMViA9YQ#svf)>(1Z%^Oqe~8c6|U8p5}4(qH+l|L*Jh=T?#sRUC?Bo&XkV4PAtzak|G7vmRYpqV5 zs>7s%_#N5z7wxki!Q!)?7vrrc`ZN`?gyfIBv1~@qqYPU>=JmzH^foT<_sIP+e-$BM zIrsz;nyFBx0!Re31QV@v2y+r-DSeG-oHzP{pB76o?7Z1@Oz7vqWJl;=^~u^|7n<(e zyJ+A9b>*A}Az)Wd3P7&E4bI%!_0L60~4kligxl%dZfJxa*aCJBY z5@sciG>p4MmlL0Fd9H@bw-torJd~S_SR-SfD8UPf38S`uh?S>`N(iHwBSWbv)dd>! zswh<&NDpx&qZix6=Y;b^(>E?J`{BE(!=qhk%|bv^6Wy-G5l(iFb|{z@E~GcxSK;87 z8fY3b_UJTHWoRg^$JWX5vuQReR3=+*(o;3GtE)vUJQ-8_LE^T#h@)v#e6$k7f)1f8 zz-asa`WP2qHM&fE3?jRlotlAsMcXZs40Z~Bk6WlFZPJ$YPq5ApS^G8P&4fWTJ^Gfv z-P=9m7l>Ek2keEW^BKGKN-q~wLUx6Z8$K-4Tkt`8BeV+9Irj`maqSbGAiTLHL&6cn zj3FEq)hh2`R@!o;h$#%0ERT~c9S*g~EF}rGh%YTRBas^6DH?|tQJ50y>3_q_I&e#k zEb%WMlKt`N`!u&-(c8mz17D6=nd?sf{$ka@qmIo3%$p<3>I)P#O$bm-J%S3%4X(C% zZcq0l5+R}``ho_qac}1phHbFgd0|-P=|O?UoCEG70SS4IT%vH(`7yT5wD2D{Uy#Bj z++SuFs0)xbS+utC7PoX^ctN{vAXC5Lx$KM!G^0Nmt_oiM@*-$cd{Za*%JSR)TSF_p z|F4nwcMkf0SV1a%wP9-5+8E2|TO0p99+OlyWwDfz{%jh%TwgGFB?_#Q6DZYg7WFna zX>1BxbWl6lLnRf-Sth}Dv`q9eG-PEl6W{iwK8rp~fg|Ev083wh^PuHe%(3z!}gNsFEvUn$Y%9& zHN8Z$i#?;r7s?j)@WED(76&Fdnxa|s!xie0u&#X_j&=1?F7CM7ZL4JhLyFh*Oi zx^uStl(j+a^7j}Apal}G1_HK5L;Wokdf3DsJ#USx7wtdctPH8qf?G!OAU&keva^f( zn4{iNlrokfNkdGkZ2J6>5|SmEF(Fm)bsMnn)b_93IZ7nc*ms91ONmXONvW$-0+Zlx z3oiu8tWz>0(U^?)*Hu2ix!F_&QeP_VUWo#OWuz?JAlrjUXRGtzv24v!`;}qu(nNv@EBJRXL}dn`rC=IT4b3WPh(vV;xTs)Q2rwX90kyv8M|Nx& z;khKk&D0{!4B8dn2#2|dtCYjUClF)^Y>^`JTcZz79x6xW8mpxXQwIia)G zGu*NBt4?<_T$tF~S@O1U;sR<{rDmI1xPI-5xm7HQu;7ZWxv=jh-*X8C{Bawoij(yi zc2U97WW630_RsUUB;IG-OP3$-NOCTs?dXq#Io8?a04-u6MVafbVj)@dFq{@)E=vry zR78HNWR$Hw87na_NDiknL=qi@S*~D=sy1*JaBOAxaA<+ZcNHBFJ{(7yr?I}-DIB2j_LY5~;hs3zN+7tC~Z3tps$* z)yDWZx9>mB4;=|oipwgET04!+jqy2zkmBN{MMHTUKP-pQ%yCQGe(5K4qF^?kdfPRx zdzUvI!I@jS&hPQ6q>&)cOyw4);gx#$x?T?<5Af@M5DHX)a0p=>efR#6bBDvG8`x9# zvVWnvY9dB{7{mu!&9m=^BJH^TJIwaq~v^5-J!vndcK_@*DFZwlcOm z#mVWcN@zM3AUloNl|wLtq!v%agU7x{PyOcv2gfeAMO*dCpEfDy3}LkubWu`zWO2W&yuWO9jGvn?HU5h^tzTt{Jz8HaVxaKv&#v_l!&n zgYarDzjDfm9~+`{#kHxrB^p6!$?}q-wtR3@f`+YOhIdubalYP>PmQPVJQy|t%O7wv zrS~0;&*tv9TF3N%_IltBLzV{G^WReHCPZzdUF$lg7~4H6rk((V$=;>J$vp(QpTQ`< zT`v^>@b$csf-UygiGN@!^5bC|*#+=)A}f)d?(0Bh52Y@Pt*t+7Z&J$r`Ah8gFk5qf z|78e75BWd0I{)_;Lc{-Q_L7ybEipic6mkvj83F<3WHk`R+VAhGbL}JZW2!HiWlT(g zY5L23SaxUep-bw%#L@hgKyFPJFt%J{Jx4t%F(ZnPK1=D02f9Qw)sNdsaCLOWcZ zxdu!-O15Wn{Mz74vSKqAq2-nNooW|!O9c{E2!WbNM11>O-1v0=^tohXhx*p_u_|0f z#P8o%F77QcMe@~UiOnkH76*V~9gLYVEs|CmN22f0D32f2(YT;zh?#rSrvBYP3+xip zpancW@;js8HU?;;Wc2JbA)rZ5ZeyW&NY+aX?lf!?{FE|sKS+Wf3RF86W1F;oMV>Fh zaArY~1UrEX;$M7D%?LA`AT3mVjL1n9%La^CQN>qr54@>fO3eCVr2RkE-Z4nBXxkd? zvRz%aZQIPUZQHKuve9MRwr$%sy4+>Iy64>c?z#8H`66Dt7a92{e`Ms|YpO+*AoTAl+rLpM{^!U4VHYlFYHH#B&)Qa`AR|2> zfas&OP`vzVbFLPPrwJN(g4P!iERbg?ijci*jM7q=QNI?}GZo0+i%%*mR6gs8gr3~O zZFk(2wiP?m;`Zaje2t^lVRZK1{jdm$eP2x4B#0lCie&~?b>p%X_K^l=X9%|H(Y{}= z6~*Bvmyz&ZZ4S8qtWJy5Os(21lPg{$%boq@>k2ie;CY7zCjH?#A(8Maf1ky_z zjqsL=)M-T+x#Y1!2f-ZnFqbn~-3%^qNk5b!@6j;j_kD(2lQTJl@u{cS=^E84jXqHJ zG9)1Wv-kY8-Y~g5%qV=#AH#Am0~4K1*3S&vaYyeUzVp><{|b=<-77EDY#nI;h9;mc zRwR(|OjU=rMf4(~EfTERHCzD2cF=u;NLgor(HOO#bRHFFtkJAI{s~@7} z_sZt~AN8la|88af>-6yd>{(3Qo&V(kk)-C~th|KzwWV>D;cuBcgMPE$KVz5UmqswRkpkN~Jd9#Oz@yImDb z^GC_aeP;H8lc(nE7JI^&F_VTA{7%PH$IeIc&ePWQHs{-p(F{;(OwYK;a)&~!9h74r z;BW(PGc1F|+;w-}Z?I6bHjqg(Z({XV9Dxm9P@O_t#t;jUL4#xa+n$+?^B$c3*-~ z1h8vyx=rE(-A!^1?jX0Pj+WK;Hqu4QNyX7&*Mgu=`T4w^RS zJzUgQ>!@&+NL_qt1Xu`5wo%QNO{T3nHCZKTp3HD)K@SpEcgv}|J$y}s`Ivd@N3_@v zxf=W#pBRVsVqtsZ1`iB3_PMlJ?3k-u>66gd22N}PD%}Px)fMVfyXIldntP#eJ{t91 zqOt5&v`G8z51^L?GSvG91B+T2&cw#ejH^CBqhS>R_8A4Rf_kbXPKJzI=0BnTpr5ST znMaC8o0DLzYwmD_S)J#L@e?e}LbD&eXa#sq!ivL{*OOzQAsDiX-%05-JSSQ(SBiow zTr~z5q#j`RpYdolXhWtJ5{ay(=0v_hYLAwfS%dp36k^_QF*4e)0EB!Es>|T!I4(zf zEiR*GWWeo~r(S8W;cPT{a(ChvqjPn4DC*DBe?}Fahs;y&!iyx_5-dfO2F(M`)L&)t zm~kwY4%A?>pwV_c!JOuD_3@6WpUG6ER%>!W!6mC%A zC7!DScJ?g5vfMTM1;Ik?)%%z^h*p96;NwF5_&tRB3~7GP7Ug1#|C}6N`FX#KAuQNq zG%CN%jvyAT&xE%E*U(JJtX)XDE+OCNz%#)>HdBUrn?->5D%{0l5mER^M7+ldM(!X5 z$zQX}qMLXVACOWf(uXPN8>@zzIaEOu=Y*`QWRHhV(pkL=m#K6EA;{$r(^rg*ysdmA z-dVJ3(^;^q(K``kFhmUqBtk)sofU}TpNq(P1Bu2 z@oo54xvS(|yz6A}2gcwJQFr1EdWcm>WyK~_>U^agV^y=zLmI0p7MyS_yGWymkQ@VG ztU~!2oxM?_d}0uj41v~kiN$0*f&r(>Mmw95f{W$F6PQ(WDxCpv2j}`7AJc*YzO=${ zx;|*YMT1)zw;eg`(pJJ+(V`5yR53OiM3{^TJvN#d*L+s_wXl>UHcjeue+t5@(4e?t;a z>(e0x>Qh@Di#Whex71zJ2{t)s4 zB7A7p+{WpLH#W|@YwHUx#i83gbeH8kbn$$O26VQ+54yH!C&+Yu9Rw3}tNQUqIGX{b z21-UUirO<{U3opgrBsm}hu40+wiqPXS52jE5d?h-UNb$CVOWtUF*-0IaVwI@mw))? zZTE=V9?b8@g!z;p(*!Lu^}K0%nD}3cvhvF6vyhIN5aJOrAdNFSBXa0xV&fA+)Vokd zfBtln0kZ9wvuAYV*abJHA-jsRfD5IWx~(=i^_m7{=Y$1uq8}Gf(PL zAQnaJin2IF+$us=2+-E|+;!Sf6`t~=0;b7Dm7}aGOF9@!7CsSNk>XF7nDp=aUX(FD zhhHeEgHHtk{NWbwl=0@%#OGIqUAk&4ATa}lB8GRw{xG!Da z5r@kY`D)-w7^dmV<}pi09M;xtwXaetMU!e(FVzdA%Is<8Zhce!a1E%!%;neH0&cit z3yiDY5T!aCf_JLggYD7DUQJZ4gfz0my{o@r_lT7RP32|;#j?w4kaC*ZEaj1|>~>%~ zf3>wp2$eOh+2AoNWiv~caYF5+$J`WR2@l`LMIh@P0ol)w?$5Ut^x7C{F^Aw?Fh;QxndKt&KPbv{a4M7Kd_Z9?k@_Hkcd%emF3i=3;q)- zDLx^i!AdTi<_rxmdSwSoyw6m;*`4pj1*H{EURy5pYIIwnm`g>vZ4fJ~W#!cmUKFTu z2-PTHYSt<_e~_-e*_$z9<&P%t0|NI$lKe!rJ)l3Z^#y;rQL9bJ8N&Oddc1Su7}pyB^Tk7d0eg?^ znHIZcSLfuPD1XVQ^zRu`y=hs4d&h15-7~><_q1B|4$>UxH|ly9yNdV8c)pucJMgaL zn(j9|eLJ)E_73CvThI7wSFhd=`FiKw&fWm7T5jdbn9FlNhg_#Il<`r2nsQZ$$g0Y> z9loc2x+dE5YUWm2u@R2c9q7;3cY6#0S;Iar`R6-vXy6-`{qJ`9|NS||+3{aODTC+w z{v)gteD|MWo${`a?F|UKq>T<}Hr#-$`%84(n7lLaE|#5~ILqjQ+t*`pm^~o`d3Dyc z7iGVcq!zSt?Q*WElJOjh$I829fk*1T&W0)ntp#AaN;kL zG$gNTw^?w+Fyvyw`c04Me3h%P#N}zZ2^c5>NFgSTgW_6mM!2rCr;W}eML;RfSEWfU zGm>Z#sunZsF|)tjv0jvG+dq7TsdIOR8^8O<$p2%9$^P#;%>P^a`VV~izxvI8qSgNi zPAloyAq%4Ng22E`%&QiuXuSc^)?egXq2L1;SZRF=p;S;TQQn$+6Y2V^=_13wW8QaB z5K_%$SQ#%9!uiMDA)wG`!F_h&pQbrawmG@)F5gP%e=Iu)561(Cm|#*f#Y2-6q7K$# z75P~)mP$n0>nt)cv0!R|7hNj1t+*R;vxYd&Jy@D??EHP9I}(;D+g0TpaGrC0K5%WA?9!>&%$0hszFhqT4`eeK z;0*z_LkiHmw^|}{v-~6!mY=X?7SW3!s?!b;H)0VV*|1d8wddEX)T*IvFyLfuus8Q0 z{Vbo#f}XL1S(^G%rh38i_);PUM5q=FF;rv;@=&gL49%E5omnMqHmmI+*cbpD?{^EL zZK3%FUO}0o$4h4o7%F82aLB(}+LX10gn}|7IEs}g4P}Q+v=ta*!9vn@W_WEA=g44h zv7U0W+9oh<<}<`w3=ydB#S9?{B8SnR4|YLMj=$_6dNTvVinan0WOFOa=kH# zrwUjX1VR?IC4Qn|4}8L&)qWzS;^ukaG=g}8CW-(GKt1vuB!Xe9|;k|-1jZXr_f9%72EUHUW+WMDSL zeqJW)1o$q|N7T_uh@e(6FCd!Fe{5lw*dtwq?-(9N zRiaY}q~W{Bv~xZ7-nrm3n|XhJx#a$ZR5|>+R|iBA7E^+FV1cHYx(i@4tVX38AZo+3+h(GVn+D`_O#=CTVjp^G1mOsR zBy_1^Uvj$~_^jxMrCQP1j+tM%SElQOwCxh{&OpIqijjngyWk78i@I3J=`d-a?4;?^ zo}OcJxv{h0Q!g@P2~~o|-9o1IE{%(bhS=4F{cM`TQ8u062h5jftujXFL?Y-y+9AIa zk(|dVUX5WbFiV!WPwgx_?JOtFnDq$w2sa%^DU?TwWWaxODT56DY3-C;)-Q_i=*1=`W%eH>8jFrb@ zReh_?uIeG+Cw@MOx0I9XbDRd3&A>&gf2?Ado2T6r+Az$V?37Ps9*G-5K8wrYw>ovd zwbL3|Ab%`I0lU9UtA2ecziQ-US@OL81MhKY_=|7yjrXAckJbC%NFMXQtH%FTfB!e$ z^Uq4$qygovb@V&uclP_C*;-82D5o_9IaxUEgaf?&=n;;r5G)_?v_DD=MZGokX#8*E zctl%ZUXY^3;J9Lc`=I365P^%?Mw||qi)JmUmJ!>DD_5@{MH^_%CN)>{_x#tqS-xb7 zzAPi&*FHOwe#aTtUOVi}ugf{zpFBuYCrVgDXFf@vO2pV*dJ>GU^l*ng!SAtBU(}cQ zDzE%WpL)d6eDY^E=s;Gk0B}DABT! z35&4gc9}e=R@{l?9P2m6e#&N7{zZ+p^e9g#fdUkbt6)v-SsG+r9p152?_mm=mTOli z5GN$egrWfg%q&vptdma68{^KEt5;5iJa@+M8aD|BsS6d3+OTMUPLoA{^C3wmR*eDZ z=ACi$h@$A@N)2(MLUhRW>fp(v3yOpjK{V*|M8?5!NkXbn8nlHfqgY5<)NDRFRrJ=4ZhtQxaAU@X|}lsyu}e77ra(Yl4a7m1B4 z#y427cBzB4Ne?Z#=h6@&p0T!d2l*V<;U6a!0MTBY1ch=(zDW?NQe55+Ujhu9J$>lW zVEKURW_u1q8@Lz4I)SLNT2>|w)Nrr^prk9Xwm65OSxB4WosnPyhw=R7G66hO0HBc@PhP{CKC}=d%H*rrdaqu?tDt30yFJ-!t zt)UT$TuM6=$`;*q(Zk_i_Z{}Au42R)gI(1zAA(cK8sVQsTnN%HsNk#Nz`#NFp277P zB0SnQ++M4nSm8zj^NLmGO6}yl7|`^fg*yU24D`G?BA}MEZfTggguCtilvZN0fc(5I zU=ADg(|M1KJW`>P!3O%=VG_EkeVG&HvCe{H<{t^(OXSQ8?8G5?MQScmp@i}`$NEu!i15JSm5hMwJxL2&Y5ma}AL4}(%s43GcJa8@KvL*_B{(06)r zVEmC`Mq}QHpd=NGZ%!of0o!8-;HgvRG}o2rLJ; zJI{#&D5RbsIhwa)gwt&h_M0%S$js#Y=`%meGwvZ2+eIeWsxIT&nK z9Mpzx54;PTysUyBQ7$r&d}&F`P z9t1%qx26wl($IRUcAp%{Cz<0o7r4KWM(MO6lqb+b-$=F2PXpzYUUW4rA){xQ&81EO zNfYC+IW*wi6^U0uu6<9zTl|-f(V!(VW|o-h`gaO;t>X`j`7KQ8h=U)1$6^;*TbQ>x z4Pk$G0>;yXAydudl@(84Q~z(R@(Rn~D#*8;paPq)wC~MY5x9bV0>?hZrrqNbEd0p+ zEAR#6Vo<0sVUnHeEvd|G@q-P}H7`~YF#lU)0 zXf~D$oyT$f(e!_iX@g(d|&{Kz`*!E|r&-%z7qMU^UZ<^~OSyc|O8_G7ms}!$2 z-=rR@jB6_@e6<$~^qgHYW#8o?a*x5G0-pZG)D$96!8J9$1<{jZpzxgJ6LPL%OH1v7 zJ_#i)wROy$m*2^hY-XZd;lF--z&I%+sH7Uyi@rLxFrGl4zT=Q3Xy_PP@@F7%s#wN9 zED{C96${?+6?$gyiVn&Vl@?6C#l6}js~oiPPq1pN4?lUwG%eOGYkBc4aIg8Vx@XT+ zU2zPfJh&VzGSad&;HqIKD6UY^qtrjKDhW~`UZp&*>XHjO`Qy*^mA6VXF0~K^P3FBe zs^p#=_LoAuL?@HBIaF&+HcLTM9w2ZZ{2tV1YQR8Aw^&}2StyB{(0;(obVFnF#;&`s z2VAD|@}Xfe1)lv(?{6dm7}%A|D>9|3m{DN?=+Tk}>&Hc^`=Six!}%+El`>U&D4(=Y zU0^|?9AlOs%yi|aP1>n;l<8%UO$juil3I?K9P}~@vXH6n!6AKY zeXuDU3}Dyyx%^NJus8E19s~6?^b{5S>XR2C*D%=~ohj_KP0J+4Y@W`l15pGS)jGuK z3o&w(5NxJ(Fd;v>?-c$TvPYRM5aXi_RjSxt!&@_Po`;Q4$PBZ7j^s&8<*V-T0si_8 zvfl>cBT+4QJ-oqFe-LgSV3xS*ly1#iV9YN$zHn;P4$%mTBa)IJw59xQYxaiOzLK~d zsS9=qEy2CsHn6}T1qLy?c0*K#yGdCid(c$7@J3Y@T_b;MG4I(KU7+mz&eG;N9w}aS z7+lDNV3GTAmR(*|!zfccGw)MOXv3g5nVE-en66Nn zvBxV~6jBa_Sx%K3bP7M~qYQ9U?;~g8#2$JU@sI^q3u5gG~JsUm*Lm(g39uNb+RBSXg&xDjaWdDjF2l(;GSt(_w zHa|glF&R7Wa?Ob8r-{2-KA%8W6wt!2ufLyS1ZAV5^ z&Zx;2X`(jn!q4^SuUAB~SwvlpWJC&i&%k2cfyh{RBwtr#UR&SO ziiwe$-yC!V1AT%zi;v!oy_K>K3gjGR&~L~Pir zPw>trH|9%LmR55K#gr$P2NtU0=M!OK6nW4qQ^v}3qE261ls3oC11o(Ac~oH)!7u?* zWrE##fKamip~x+W4%`hn39<*k`DE}u!D)|A`aV=%(=BA_CzDAvk}YJH2-E58O3s8< z=d`=cgXqe!@`i{TMZT!y7Ur`h!#wn4RzUibA;)dW*@6iLGf_fEV=Ir zPl>q-sdfj~`FWEKFt5qjj^)@6#A_z$7nby=POe_dp`O(k{q3{`FOkH}2H?{r35?j; zf$a-u){gAOO6HU3rluxyw-GU};nPDJ%q9sQ##f^go#sVNMRRXLS+DW1XAt>|bT);qf+(^dM@O+c^t@VfT!3*?kK`8_Ks0_+PS zw?^}?o5tRT%4|>5_YZ0Ezc9)5GaKvaL+(Mo*Gk5IWm=m}F}s@q`e-KgZ6W>ip6zKF z+%XUD!MW#_e7~C{5P4AEXWB}f+N@&kF=blGC~?G$NuT0v4^UWVdW>j+5a{8KiJ`7f zd-^kZaMo(ggNrQIY0G(ym-d9gKNkAMEB#rO{El4w5lH&QCf&ma_v-WNKc;6yMk;%w z$0?*{;*>Idj~kgp&otf`@@56y!|WN@2jxcwV^TWJL~C8LZ4eznrLZ!5E##z63lO5 z%)tfv)0E;~Ab=!M{6risAU>{ZYP97I2SK5WXCLJHIu645(alpYkIC-9sF1B&D!t`{ zf)h)$^qvLo9&&*KY=akWlnYC-JfjSwyg(keM93tSjB-V(sXo$_+H166QvfEZ%lWq> zGp&Mc3EB~SyGUDPJ1QkYm!w^qX|)*jUHbA3av8*rFJw5J-24!93;iHhJf)a5B~mb6 z4&}#$@=Y1iabD%TO=+dXH-fKbQe6YK?Iu!F* z)40^AZdGLBu2)qR_}A@>cOg|UmFCT_Zgn=kwiIiw`XjYV!#{wS1s9DX1WcEmE$yi` z>Pkt!Zzd`6HI0e-64}u_MKNtz7NtqHe7?Q(+ZgWdwo~F9e8i7Lg&%5(A@vh%|MJ7F*Gb#D7gw*0No zCrwm!}edZM41O9_}b3?iA1qx%|T{463l^(## znw_fDf^BI5QK)AnBeDK?O#$KsKc8BH2yovck6MMBdRfGuC?F50UMim+U1~aAoaC~z zG5>UdL~n+80$Dl(BZTDn5kORl;(>lG1j?kvyp5#OM?WaZu!FjnR7_=}kHlzSao#ET zv+XTWkEZDF4W|0fdb*+aw7*26DlY?do&*P{N9b@<%>qd;Cnnh!JR8?>1J#+%1aw>` z$JqbDLkh!ecQk)PdEx&@>W%#0fqnnf=lv_yrV`By-7kO|bTX7vnuOOUi;aGMFGQlx z5d0wh7Z#gMLqiS0Y!8Sh(Y#i^1S7;Cz}7Q9nroy4t81HsK`S zb)!+6N(=eqmxlN`*5e;HiBw;Uj?UzM1gM}NS*3EPc{`-A+j#oV|3ErhRRds4zb|d) z`~BY}?EgkOss7!?f1ASmt8DQ6@)pJ1Ir%5m=>1oU2kv(zS^RCFJzH05 z6h8IVNpt=j<`A5sf{V}0x4W*11Jw;@8Ru}ycFge7M2L`ZpdiT*BzD{(vvWTdc)i(a&W3VH3t0w zCVMD!IEffF1!nuSV2c%4>pYR+D1R1m3OeQ~FLd~yTPx)u2b+~gkS(TFDJ>?!LgJzY zf*=!Af226Dn9i)}%MhQ(tES*x-R1zN(6JZGG?IG@&s9Lz-EP~fyn5y;6@NS~j(ONu zEr*w$=-gJckm*M`v2hdO_9A=l)G8*VxLlc);GXOA6R7WT(j87XkD7rcKM%L}B2Lz2 zeEH9#1w5+l9mgF|nIUv5lkvO*Lr{2;HoBm5=DU&v4ym+x`*%0!;4MM!4Gpuq#g}rrniD@$KHVWQ<2S&l>EKPx|=$q=l9gk z`0+K%dl$^Yts&(n(9Y~lELQi);FC^jxL-VxZt@hh?0W+W|Ll!0`mw|(ptE#OoNjUg z@QM!i^`~FxJtM@=Ef2iL^0^Ks@)qCmhTr5)Pq8Iuv?gaf*q1EhYx%~BT-V7UEm1LC zPvZFe?|F*jehtgJ98}7i9=ht@*WqeSR_iztkPM{E>L_xAQmL%L3F=;4G#PdYnUr~> zy+ytcKd^NqbMZ0C=KYJDZd8Hrw>jnm}ju=a- zw5M+A#gV@J(=-Axl@Slw9O`jYVME>jGrA*iqrIK0!)smhsFsL<)vlGawty5h5u|+4 z#yPjZ#!IW^a0BcjuQ}P)2pJUTG7FbCBjE7L+-jp=*QN+GK7*^prD0|L19!u7{ZOse zM%YZe0?1h+mml#4J5g*WHLydxP1Z8|$kp}XnVVY^*kgbcR?}-@>Rv`GSEYAtX?|g0 zd8;oN4fHYODHwazi9QF`BTNZaSWWWf42r&Ou-F)FK8>Tvm998I|Qpgtw?fIi8zA ze7OgrvnS%{yxu6$(yewaEeZGFOFVxVk>yMTb}E+60UZuRLBmGp|Ng$ zti)!rQbIiE%UhSrFjcx!D50f{pKtS>pd7G2@wXC6B)*K*h?i31h3@ns2@5MZS&VDH zEUIXem@Y8>k)+VUs0DFFqosmkYGl7H-N=RnO_CLcqA9Y4d53NA4YQBZUjlF~f$;Dr z9ItJtRD~+L#mUMFUCvx14WrC`I#tvTp7{jnkYu#cV^2#z$|7j>E#EWs4tHD zG(H1K^qSWZRAg04qpR86d}srA7kB1t0R+gNu~e=@fJLgAoquNZW@VXovmZe!9$pOj zDXeWEP6uf_zjs`@+_VGNy$=)bR$8v{xx_3H*$Q5fO;g7(Or8EuYBzI3twXp8-MaH6 z)6AdyVlv0tD|oR*k0efk+|D0tiq)`7mhM|P>!@37e!O|^Zl~mXseh+SSJqYA z>*Ztv=+wKNEshzoW|t=0n&~a^{#FyT$meu362;zAo&TcwEwr^73u5byf$wmDQt!ck zu>@MLGl-I zd&H5i++CUoiI3tVH#{xs??%rg2LXH*FG}*b=aGNh`HcZ10FLks+XiRDqgS zX5?ppsP09ZLfQ=gR}W6`0^L^el8I$IXrDum9#J1CF+=bV2sD((_Yq2#==YY9!Si~o z#nI#?Y899oq^r+tbI(svn(lhTqR(7$*C_%|ahJQhzSmRw;k&_BIyQRQerx#DVB&0o z@sS*EZ{`5+Ck~fXP9<5UBU9zq>6rZ5ZV^qGf3nLU)7aAF_7J2l6)``^qeOX?-QpGQ z6Po?psW1JdPw%^9f$dmuAPw3i?#iKU`2Ja5E*vyDHyj!XtKEnvV`J;E(=-1c) zr+01b2SwS?Mew`H20L)ZHA^DOF#Sc(h%3{f+%{t=%eZ7gkatUJZ3oA({>~mZRFa?T zCug=ln*OzQ4gXGMr84#6pP7R8ZXum*_wnI#I2>OV)SyZ0yLt0O6n{7QB! zxwEz2xXi5)3ZldoXMcH8`GNGT$lv~8MSRA%Vt3InO=nQ~;{fXFkm=egXEc8ctb~_0 zE3ObQGWx-RSNn_m?`{Ijo*wDDWWQY8TX-hO^+{?Fg!dmx!0nn`-lW&P$x?;@?;OcWF-a zJ%cA;joZ6mczV~cmmTxbZtlje0EgZHzS}6wXB5>7Wk@PzGH#IF{p;(t90s-2_@EZsDQ5vbP}>r5xM8WlK$u!Xx>2D1T8qe?dEc$^D9a zu%14i?nxA}`)VRzj&EG{thWl2Yyq%#JS{4?F6jx9Rqvw1uQ5;n;faFxFtj`$JVU|{ z1kTvK29F;GKcXrrL1~C`Lo#PHekfD-Is&W4IV}S3)&f@&=cZ-OX#HTJ{+07<>d?Cn zc()Pwf?(Iw5pPD+gO!-H>(C%k+9Xk&;R(29mVTgq} z&$wP&%?(rYLtOzznCS~mW0VWBq!rg>A6|GFT}DF-py86p+V#ma{%5*Ee6O5a&+oIr z2y_J_z={?WUo`j`xO@nu@zMc@84N;3%W8Pl6M3O^Sc3+BOiuF>=J}6t8ijF&s(_Yl=l<&PecUA4pa-`}79u!di?!Q#}L0zymuQBpH0MZUqpVZAWsF%NCf zHjG2md5F^@l&DVlC#;nGBfA5S;26_T335t%f6VeAc>u{Fz*C#F27K_=YM?i;L6!eUNlte1MMW2HcV>^=7lKFhHS5KeG}w zvzcYw`VCIQt_L*=<(-1cIyP_pk#pUZOAXprNb3mcxoEO&hhoOR==g|Ic;jtGzYOlu zDAh7#%>g#u936MjTyww#P-gc`r2UX0|5D3CnG!sn600BVp{N@2hdw_Zud`c{R=sy1 z78~_~LY*k~^1igBZoUBg&e4jLY_5|0?CBuYiraswxukB`75Utnc-7Jit;71HcEc4< zxEY4Sx+6^7I>mnSk!Oy$O@78maN^KFCre(#%N8f;I!@B&jc&uN@`PITPS3>a819hz z;ADbG#wU9;qsI7nMe9$2d(_L!@s!%s3taMD&B-fqXCCIAXyVhLVoVnw9r@8iShby_ zJ5Iwx$);VkqM^jVfaeR(8MTr&^wB?J*mx1z+s(9McNk+#!ntb<@E567(ff ziO;4DqT=@8vTm5<)4}9!7?6%23%v??9#n}+Rvjj@k1a3Uh6riTb zAgvJ#HV#gspgC8*8T9R`Dq94yB}M+4NJo-b#Zl;dAV?Y}N4ar>Ng7l`!R?^g26mF@ zc5puKbyGhdsg}goSqwXSH*?Ep%S_ZXOcS4!=EP>C99hRZtXk@bDSyOfE`_R;gkehI zpj!##0i!KuaN^Xm<$Gt?t_of~-58hiaBLQK4WG;qz2d3DNn&?*$nocnBc{KiHeR4C z{xF?#k;;OF@=e|O`XG3lLC8FlxTc9%MV!Iq5osafA>^l6V|vA+X7n3cLY#sc z?;qw>docF#?gwZrpGQmLN0o*bu>&i>!>Y$i%GBY4xs~FKp-~v%_(5jGhv}XQJ)5kp zzW{45nYckFTbvbHP(l|ki=Elbnz?v(^@-`#Emyk@2Jgsrkuuc2;4j~1;dl6Bk{3fM zj+o*LB0Sa8zUvMvF6{~J_IRn1bZ&Ht27w8QL^)&`N1HOcBHWw##JJY@pZy74&LKkja znLYnNgZ*!*J_f$iX5PMY-u@c_{NGAdihqX?*qAsu8JL;;>#VrXob-3x3?lfhPr`N| zNb2@4n-#oXIDbhJXcqY5+eh3(q{s!b5W(&j1?OK&?jQFRNqheEWdc!KA8eW5BN(a? z*;+2?baM;6Au({VF;{jl9!8`Zy5Zs11Zwf>7=3`%)CW3%vG@@zO!F9fF8~dOIJHd1 zqAg+8U1tQ;#_+Eej~Y#se(^+G)P~TzqD4QIs_g>g_<|i)2aCZ^YQ3B;nqpgr_P4Fj zo#@5`i2p!IK&>jUtG}=Cf9A{lZyh`Rzq<$jrT6?-cc6b_Bt;rf?#fF)KWAt>#txC{ z2jYTYfdEVih>&rEB8UgRO?K|Y4d)TVDk7f>+pyONAvQojO$agcW{pk~5uHTq6D zVSGb!BG>kear*AYY7fx&?@EKvgW~iw?P2LP;{sD?IAT)3+(ijGEd{}K8+Khf2~F)Z zZ>ZljC-D+)uwkHYlYiJryN?9y?7JbWLY41m-9Wr6{NjhYIUyl?js)`?>M(q=3)tEj zy5Q|Q!$6|NNWrt^mTZsSt@vX)$n-CvIPE4YAKlm# zhU&TVa~iFaOZ#LnZ5=5M_pQszO?l#3w6;xKbS0(0XUqF$?kzy}cI$N8wgwt(>!!&b zt5~v*%Q%+VEUvjqCSP%BtcK;CXDSW5tSat#eH6K23g-7jbV}>87b_j6fuwCoNkio} ziagg(e4}(7gOGTu+jLf6(%urMA;hujQe5??@t+QkEABoz(*ilqq_R1Bw^K09dZnOb zqLeDph8Rnpfq2P@cpb}~%V$cf%Zp+Xu0xs}ykfUQ6)TjNK*uTeArlAClVku|ON`Ac zkZ7$7W3YomA;AeWORpa`9-yDGiFD`*grRPnDEkh2{Q-I2%#n=$YFR%1D&PrrG-+4_Yy=VOy#mvl2OPpH@6_} zL!{A%vAM@1IfeMe48?Ick{E3CedAPEVak)Frpg^H72Fu7FuJaWfj43q81<3s;COP@ zhmRW=h}~p8DL~z4i{R$5sEPt?g1$Mhu zTkk{H|Jjp4dQ93Iw8TWu6&-$2Cq3Y498>pqGNCv{?xjW=gNzd#=2WNptuRcwN^qbR zB}@itLNkmUKFLJ7Ylu0ePG;1mze2@P1&VJnT&6BB#*N_~1RM_tPb3+D=n+9nij=^^@$Fr;UgKP_k&|E2qsPPqKpaUWk}tTAOkSP{oq|P@CzhL4l6&W_&Bvqo6`R#zqHl{45jTP}~Rg5XXY7n`AtNaQO zz(DbHnS^QI#LXv^D07LRn=f`XYz9s%R%rXN0G3L)05GV5PNOQ58a7cL0-pn2)5i1b zJ%d{13W%WHZGs}TPI2U|^;iJd*s&XLu)EgsUhUDjf-TeO zsbVXT7h~@kAL&YYp(7Q;9hiS`s|ECRgv@euPJ6`Rkym4q0dT;v*!e6+Z>V~hXSjyq zcWQJLD%1kBZk@rGk&!{R?MsJSR5Y)JYtJIIbK%qZ7dCvLD;Rc8?q1OxWL#Y9r(hz% z9V=Fn;)(((U-KG)&{5CN|AHYN+qP|+{W5d!t@rLsy{S6qFF3pQ zK5Omu{j9g&r2Y2XKl0LYdl!LH2Nzs6XQnN0Yhx3A(<&BaafxT!Z?%&X%byu6H*tLjRTd2dr=I|OPHiP)uCekEi zQv&!v%@fyCjKS&TKVqJJLDb!Sa4EZ^#aD$pC*j0CbrKn2`Bg4%zXu3FySWU;=_uhtx-%7vUam0L)dDk+>S4kIJNR zIUW>8Z|2;YBTi*=WtVu@EQ;DfEZqSoO%q~^I3G4gj*RWPf-U!k%6?M^gEqw4%`h~j zQ_664BS6L60~^o@!6f)$jZe;l-Pz&&j3I5osNjOxM#W`ek=>@|GuNj-ak{_eZVPZY zGyP~9MzOGwqi63}Nzb@d&Bnb)-` zm@h_^Pz?`1xP=;H{>nfCW_}bF>=y1B`>9KiQH!IP%}(9JtASS`@5zy}Yp=|pOOuU9 zeOkfFLm%lupkYYDQm6@#G8e{&F)`kGvFu!Wz7cy~`egw;ycmy2q8>Sb{M21(4NE8L z&ayn7HJCw&@zT5tLy8ek^qxbcqiezUb9W81P8Uu zL04y^XK45=zw`9{CGVU)6LcLSy?(hRZ?Er$l zGqCA$zo6iNl{1@c%tGosrmZoSK@oYhqh!w)SBGv(mj`U4HUNwj4@2fBdC}y zB-oucu6RCjl4*jdQu$nA87pzCU}~ut7fP9OUi@}$ob22_KW}nl;KgvE+d8LsK^sqp zf{d-e#FB84&XDo2D0r|&TXeun{kf-rmi#0EcWk1S?nG#GfVOfv?y#bfEyIf6{IX~@ z<6NQZVKVzq4!~UO8pycudccAvJ>#;i7^amuQIt-%PZxZt4(+5NVY(l)T#SiskkwKc zjjo?o)88Eck3Or&D$k;6&Z(*hqvQ+0ZY8N!H{PFSq%kI)Y|j6;UzN`*E)+^PTvAEM zKQq>xjkz>H&91KsJ4JJ9hBMksz7d}WFD&y(pD9F5-$@l#9r^Tz7+O*2&dITIQ0 z(1!Z{%D`BNvxfZcoUOl3roRrYxK_?dcXQe`KbH_p9#a&LoYtNDu|_(5?nqtZfLPdxS1Ff^6aIP+FW zfiSmRXG#MYnfC|Sp7))>`6|#DX}J>WTUHijb+RPvbbRC>SR1| zgwxGXKIDV@q;@6D_mIK&QW$Lyp{|Dqom^!Yta2hqsZ|sC^}wgl+VPg9GiUHY>EdTo zS_kqhNG1pZaT@;q-}R`mMhF)VP^B}4$-)t)lxIVvlBG6O|BUB7!}FhJcGBPT0-KT{ zwMip*kFeJzW_2Oi14#HWb1)pTA$QPteK?OieE9{hiP3vB9&w^`Qi&2HR5`lEf*wJp z^A(MWx&`PSS^kgYIudpcajhV(mVM1(Ai4la7$-%#7oldHHb;ilu(e^0HqMtkW>=SO z7miE!;%G-tU3W+`8!>#ja+zly=Q@o)6=m)PcZ1U?cDAgw57D9(aakgMe1CwwL+2iu z>d#R4K1(PIX5=MujDGvB+PPBgp;(}yhC4b_8<2ON!YG#Que>4&k_8P{rogMyRF!Z!1)v8I!>hf1~TY&cf( z{&eBIoaSOb$+sNn;wcM#!qLgQ+S{R2!Gbq2bF6zjHgzHJ&x}&z%!UpdDOSNUGL%Aubpz~3Z2qHt*>sxeVxRH7ohA8I3p$gymj|3G|7$N47J=p#lBfJH zXbf8K0kjuRw*Eb7LJ8_BkQ~h|EYC#MNh;6GAsARU$j;I73+gN1=iec{!)qyNUDNw; zV6iXJ$XV7B_l*MYJ7YPsvC|EwGjWrXXMg%<`_fj zXS{pQ{xY}pw#mH}m=8$L(eh2|XLg5gD)3DoL0acbC%;2PuWxXV{Ywq>C*1dRm9PCp zj`a6X!N24^e&|ZSf8)162>gAALd1~JjrWhF!j3>T%D;ts8|1uCUI6ocpE2I!d>#f{AYX0@(;mx7d^&e&R&DBefdWiFf?K^zLbU<63vS)f=m25Ft&c5V;kPvO1z%u&*wXfptsJv5xMags$@j zl>wzpcstKl7mlm@@5_B4Q{uLzxnq-LOrvbLJYzy+e9ITGrq~?}Bpj zCSF8qS=j1o_P4zyuefS^@tuV|90QE?0UtO6OEbbk=aFC+t2o`AYeI+cHBjy>`5q1x zUW7xXD{T}=ut!x;Pn|E9z&2+M;(8WbVx7QJR+9A>;r={(Mjj60;i7h#&$9B3L>x6s zH|)nC@C@FL7t62qU3RToCo9M0wk=y*WhWALm+ZBVM*Bx7whBkX`$<0R)tWH895^b!ex(RZ;vDADC9S237jGY>d^GFddF0>${70x7Q+dO|{SxVlaNeNc20Bf~fjYmQ9NT)x~b@HJvidUW2O&@6?)6?t|M0P?Be zT*LrOZ~~jF(f85#k&;cmM}m{mqrF+{4u&xtt zEI}yLvC2`Mo_d&RNw#JD2;s)qX}s~q*U>@{m1KC*VYLTSeq9R1z$6JV#N;$KrVW-} zm@Fgu>`TReW`I#DSMe3%4=;fVF!4yd7vMt3aph_bE6UwPP?pyCxQA?@zM{oL zZ)^f&t>198&_dLj*hrruSh{9Yb9u_%;rvVW_}6nJezSxo6lWPcrTf~*^y&))tg^~Q z6u1$O3*>tV9v|Joh;$SKvjBIA1F4@MuxR3kM6J&J1a= zP-qwt9cD&5(dQ)cD;L13ct`-jDmSi_-=l9;ACe?j5f&#UKF~(1aKLv3kTa2g7*{Gd z@GaMaz!+6#Z#u?LN&wm(K)-H(o@=44La$HttUZ%C6pUK(?|s)@F7tBkc$W{)(o&upz$2eLBW zsyhVdmJXfcFE`PuAi{2|xQB8pfyS-`!<_~&;GBBER7?(7lu4LUlu&8Sh}s!A{Iyw{ z578nosd1yY?A#8`&SXpTeCy?*(u!p}H5$8EU(~O*_Z!VNgj;1Zc%#iZB-~8DDw13I zabK3JXeB$92QS^mM$-D?c+lQ@j#Y0xMI(peH{lE>DPVm?_L6K61;Pfq7 zYipuwV_tS3C3bG9@o0Ht)HN*XqClj5(B0yu1TK#dRBw|bnRT;?H(ukm7dB?RoCDh8 z7i9Q*3fp2&-k-F{Nov-~>y;P>jgWFED(ft>C^-1=VuKE8L>3MdY}xw#oo;x?Fs8|i zEV^{hlo$abZ`v*|b5@BbX=jGR5rI05AD@Mt#48|u?^7vxQOQG)%A#+$`tl8bv2i4# z-oYEI)#VXjA*dE`A6-oCCY{%<17k_K^y2Ta*e7hYwiH(xfN)HNQ=IvtCyG&b|^b{#E~B#0(8D`6SP_&Q{qOq~rtJ@5cX! zLdYpD#S)JkY@Nhg;5I)FyMVt;rweClMrT)zevwvJqz@%t3u3(+l(qYp(;ht&4zlAF zf`KFC9bl91g7qpObq`U>pE|!I^z}#5mw`4!kORYi5Q}))Vz&^zmw1Imo)zent}e>& zYYr;5limUqmmUJ?3|9@vd$`wK{*xMmSQGYhVnf&QPTLY8Zk`bqN0L3hqq32{Oj(v1 zFUbGQ@fP<}&CKKiFgB;RNCE%W! z-WduCviI@oHW?$vCE8o&sv#P|T`wVhqCR(F2ew@fX`FyF(==Dg+Z*UK7}zwAc!QE~ zZMdidc|$5u17)P3RdHr*_&u$>iq3rGkzLS+QC7;{GeP4XqWVN(+{dglM|_3OXU7<| z@>@5&q-bM zRHMSkDR(<$ntMDgi~5w_B5-=+L2IEm-p>w}R>JQQB>IwnOSrki3aQSqqt@gm5ES~+ zuE676M)C@ZoX{#q1&pq!hG2{hK8A4AT|)prGGpD^`{3$SrIzKt%`qo^950 zgSaXPFced)W;nMrCpF!oTx6FmuK-R<$M6GT00(36L+(U1-93^IQtKr)&fz0(rp(}+ z7!4w$XWp}{vR4qtwl%=1Y!TV_DX6HIF2@WiMwh@mX4T-au!Vm^aQlmX2c8>qfx=ox(#V5=;=dgloOA&t zwh+>QlMU`ZFWTZAq)g3*8%!pCQ=1&Dc*aQEBoHy6BAVp525naM@JqQ}GV4;jtU=;e z@7u2kp%>7l3$$Znx0qA2J*P2bOLohBj>^J7-Zjt`31NOaC_NLf9GOR$ zoaKMy@MO|m!8zW4L7yuKCXsGHerNb zII1P!p}2s8S=-@l(pq-xRaHr`t-KieLJ>Vy1^q2wW7&(7Mo?`jtQQFmeJ>pUe9-{v@;3Ojw#U{jNJ`b zdjgrXb77@O3~Gp{b;gvO=7Y1s zTh9&~SCG0kfN3=JQxLmGfG=u$n-RY}92uGw|DaT;uM8;^Ev%T>71qx$l8u`gX}+Oi zh<%u*OHoYLx+1-7XSSPm6!Ns63OD4)w7-IOGn7;_r;x-{GoE3S>zp9H_`HIXR>#DL zh7gyB@HRNEwyon%`lry|dXW>1`@5>|){wvd;xXT?h36OW9)XB~UL-vAsRb`XJu=vJdABJCek&cUl zw1QlM2>M@W>iG}9L6skg#zy=TD+sIuX&`|6_rc$s3q1(-j-2I(&liY&$)u+6u$8n4| zP!HXV1f#F=qTzWYBX~mWEo})b))xYXaeic2ng`8EPR4r*$}OSlH=t9{ouWa`l#WN~*nMYj(CNM1#bb^TN zg8gL7X;c~6R1GvIdzDETC#_U4gX_Q5mX)T$1vt@JN6}JHSk$gdfhGxZjki&i{#7Ap{BWo_r@F=x{W13`0YA@2K*zU1+qadAj2LWgYI><%qYEz z7WENO0uq=5hmI}PDsBvuA;lu13Z$osgnaX7#VBe*aa%LnB1?iaB}JyoeM1;Um94|j zjFLuu+XGH)0Ft~ikK=;$1{zQ-39%zLM_myYc{=jFGO@&JiVwXDLC)9UDDnYT;C-Jb z(xflU+i#}ZQ7aXbka5;lY)Ck_C({bN7bp6&O17VT)4))A~~uLbfrRg0lG#wQzc4#RtoGc9xHa3W&!G$2W^}~ z7z~m2M6~dI0;~Kd9|a7cnuog=|F~Mvxu?Wx7%IOgo`^Qv?R&wIc(edbzq1#%s%*<%mV|*NUvh>DIA$I=2QYS z45Nbib9>JHw7;Fv7^-6zjBoH>qb_#ypMF$vFXe8+4;arF=6~AkaR2*e_kVd&N$OBu z8B1~hVyfl7?>S{NQxSJ0G6$1wHbEi#;DJsoL7PpiDRK)DQ7;+_2&Jl{|4?q}&VFp# zx^Dc@^4MVwB<6O8DcT4^*KD`>fkn;ObnxcA$h2HdE|d(+Q>-0g%)CUW{hQ2Sx7+67 zeQt^2ht$UzV)fF7Fc27^=zJ}Nr@&AA7Si>S>_%8&d~0m{))_IoCE$YJM73`4)c2 z5bYq}UtxPe>?DQVoW1IK>78676g~-Ieehd+iI2vxeF_iAIRlLPB67xFP6V@2?-St( z@Dss41xFa}Xy7PB-dBiUaV)-6M{fc@bw>zp#Vo!gMstcjQqbJ6ebMg!F+a0gFg@%* zZIaE83CLQs6&@u+#fYZY@(~B(0b)C`mrgN>bqdh9LPf69aq^F~Y2u>$bwc0XpzZ1M9qjm0#e#KY}^W&nF@uYZ_%4T0{| z*{M)P(9Go-%qX-<+_;!&9B#DsyXyA;2qWTm#{5Pj*q`CRP1L6*Fp)CrUg-jdr>l`a z_uOcm4fRf0589rG2gvhmDUn&k=2=Fj28B=E62)8+v6C8(#d%EOl?6HrmF;iBgn53z z&n0qdC{8oM$P&vN3!DIE0QDjU+)(kyuu_<~b$j~idmTV}7+x$Msrd&c6;UEcwav8M zpX|SC%;OT?(suKQn9s-$ncP~L&XuA(RhfTC@;Nx)lonUA^vhI>z8+Ad6lbnyTaP_1 zDS*_)3985BFRh&Ld>KAST(*S^oTU>2WwXSdz^Pe&g+0^3Rg)}db+WYdh8^yW&EYej zDP4BQmvMJ4el6R>Z`HA*m(?)&+({Bm9VkUJtu~?)$0)SN#DW!*z2B=nF;Z#`b(v~> z_*?01ZRX5)UApXx_|a9hpeYIng1w;8wkMn$H z(>4B0^;l_=|I?it7tqP+mcBAo zU&~BkLYYhV>v~Ma71Obig(X^OO06C=#YQxOD`qR!W;?oL|`Xm z&8}s!elR~aTZzzI-ypzaII<{Q+9Hj^pjl3nT`P?`>Nj>{7}x7CdN*T89Ndg)Ky$6? zdiaXfqJ=!h+h8DfP^WT%ZGcCqnyPD@s5dxoMDy4rjfrtbY($WD{#+6GRqjNfL5XMz z&Y~O$_*Fg)?79rM$l((BbrB6*W)Tf1enc_`Ohya%d|B^ewi_3^EP9ol&ROz}gjl{o z!a>_K0XJH>X#W*b+_fG1DK$1~{YbAjhZ&)Nf;JCMBSsCIIl&eC=`Y@m+<-&&*5XUX zTkv+#0-}Im3*k!7q)9MX>>{M7YPMUhwJ`SiRDlE3S@Zr}A;415t>g0H(yhwE4`=I~`A(wRH%q ztGmL;P>D$Eq=afsJrh9xF0SN-_3rk=7I`?B4BlgUm z!|8>0$c-;awW@1)#T0R>z(-3VD?FrIQaCaJY_XIxrs$kJ=(4YI?;&#Yq;=^>=%_#2 zmn*)|IVx+N%#lHFO%=@+8Q7wAs?mBt!!>72}Rv(}|d#9GD?sYw3tuhlK+acVV0 zs!TA+BzcaV7Kqk>H^fGehU3RY(>7F*Xw)1%1sfW?TB);UpvQcBsYj{hIw%S(+1NVi zpE3j#r)^dg-04cSgz%=L!%a@|qjZXFQ+pTPJY0Tfi%U#tky|L`X)vG^WzTjGS{ddV z4r<-}GE?g3cQ(xS4Pv$MYMJ1Uf+#3mzEDpOV(Tz(Rz<>@OTTaYXAWtXb7Ppvl9uWl+x z1_c|(VQK)OQMBo~Q7DF&!HtH~k}wVow*3 zK7k6f(fM8LA)Drqu8yKmb2@`Q9sONO6qy*etBH-y`S>{Vc(yT$?4P6*ML%5KeX~DO zj%~qciirG#4+X2>{Y)J8D1!C{NCv4q%wV^xtS@b34lAHN|Y|9|?(fr(`1g`aCx!b;&!Q0SE*0wXZfcKxWgr;~N6+3nU zH!7bWUTNZ6w9Z>tvUhc7uO{?|YD=%idUt!)IV)**Psdqa7>Bvlzu#UdqJdo1BA8jd?yN?o@OAMVYNR9(ohmL~@|X51KhVdy$5+>~$EAKa|&-LNW6T4AxR zXYtM2W}H5t@Q+eTf|~t${Etn42+(?ChTT)dI|`Q!b*t21>hW;r=_@dyP?bjSzU1SLv zmGuVQ&U%pDGE3>hG(=c#t;jr>rwciiNn==!mKf{WjsY|TeH9_UML=O8>kQgY!GfbHbwdD253R8BXVP% zB=yk?tHYd)DbSh5Vw;tqx;8YmdCG)Cz!tV$;5Abrj=vv&XCIhP>nnldVOjG9uu;F( zlV}~+K2_F`zMi@?KfjrmVBAvjJJWTF(!AncBQWqqKTfQxz=j44_d@;3GPy+YH;<19?z#p$D!(dp*n3FcE^}8NM z_rRIyMEYk~W<4cx#c6G~t{YEx8X&zB=sQIae#vZ^#vTyCA0+kaTQ&+J{f{nZ!GAft z{S~tb*12ILn6%5++PUw@L8e*z6703!aNN*uw+Y>I}xb zh@v*BdsN$QSc{g8-JZ4Wtz&A0nto&J(rQfqgg0Nv{zGTJXLF@~dnr@Ew?~RfcZSL% zH@7>Np@!-YMkZpBdqjSe1y2c7~D z0uwwC;1LoG2hZTN8P%exIn7AGK)~+84_uXNG}tzhFBfn^-}s8nV<;X_qQ(TvHOmvjYrQavNAIz-L!cV`L|;EKVg?j#>V`*Wt%h@s zdu8rm-K#nx`pEfv4_ORC)XlnoZVcIOV1tf(!_5_Mt>9=}-%f&&<2`MA;6<1og1f4a zE5;kQ@`8zE&6r8tL}X zW0#vA-;jHv@BlD8c!t}@=cj9v@ITyYDzvVYvyTU;f~EE$UOoy4M~Qj+NtUm_a5WRb zF9yW~lMIIJA=S7es!+vy*2EW&oSv&4U+2RwPqff5NsG98{u_5DmCjy4V*JWz6%!|# zz!x8pPawnZL@_>?1Y>$CwnybjFqr$GG$C&A14VrAYzv-ubDv*nGV|^64(qr4Q;*hQ zK5CpjO2;692HBz05YU5qS7YYaO*|7^eg!}j5;hT|XFwiv^ zu~y>IU32i6vK~J)lMJj)H-1Y=n(SZ8`u%WG^@&B8?6Eb(Sv$eCfGy6aGmGXuniU8sj5k@>>zlgFjJ#i_HGO?Rb00u0f zgkK$KQ(_4bw*>faZj}r;WxffD3a?v`Ps)kxG}+ugvEHi-CzEH{QZv^#{QSN^y*#K& zh<;7FZYwYsu=`T;DSI^FNE9Dw0*$%aefs)B@B7{rbu|7q-4}WDS}1$$M@FoB#_Y=S z6IWCzCxUB;ZD{!6Hn5Lw_*EgymA>orjF{Xebc-NIG;&Mp=F;W`bnT~^Y7d*#Lap`D zo=P6s*89kr#C&VW0f}Luq?wBBJiFNdrl`Kju{M6_>vJ97T>;9rlpU(`g0Nj4491jt zZV^`YCinM$$Mf!FB7{j93~TXb7$g~4sU6o~oyV~IvSI$QMhYE`|9 z4U4OW&Zu*Vi{hHa`(@+bOhgJNx=Tkkk55|eThOq7R-CO=S`VUPy)nH%Vda zNd(K>AbMaUOGEGu+BdQV&Mi}a?qmClyWe!&OHq<5!1h9_a;rY_E`C3$I?vL{tSL~N zH>iR{cW@~XX)wjHj+h<%)+iv}EfozU50keE@_V#`6|If){QP^ubG_oII&@vsd}~g< zD*c6l$?<-F+{g~65Xywfd+}h*=%!rX*+D^V0D$(mg(%Dc)8``CaWFmzg=PBv0kY}} zdkekGZ98~GS&bI|E0pS#B{kS501J~4mlT(o12zRVy4NH?ZI}8^q2CI;W&p0ADd2$7 zz#iEaJCnFm?Mq!Fq33*?p0|2ArK}o#{84%j$$we z*;lkx{M~7vA@n4S0jZnROXQ#?tcR#u`jZY-T21wK3#7vLKZiz`2x#7Fe|R|x|6_^k zPuKDn)=s2K?oI#`8yO30YYV3zOV`E1*u?RFC2+ju zW&X3?Zlf?t#)#kWtI}T{VLf23!>tT5TyOT=djsA?D81KI>sHMDw$SYs;0_8*OmeVxm3F>)poc5 z|E&5_WD+&RxLO6Z3_#t5YR^5U{&J>mV)IWL`@9@!3kR(zBrj7O0gMCwH;;Axp}y2E z<=g*zUv*KM)OzV#Z-3!OV)abV{Vw6&w}ST ze#`kf4=zXU`zd>uzx*_PE7^W7fZw3<>-3>q3>J4 z{`K?zzmq)wH2_8a-#&`8osog{e|(w$>Z_|xsNtBP{)0m#$12`iyRU34T8jN8poIpi zweia)R*Ww3y;+Dkuy0H{Q`*g(KvPevrF!d}(<3_S1hD5&0n_pg<`J#+qIr`wmO(V- z|DkjJ^09T}v$MGqwDaxx$nw|ht}IYM8&3b%%IY8)?Y;_>lzMWlzY5ZdNGG|#ARLrW zWnIhk2K(BE{tbG@%33FpLNNPU=g_gu@0;7<4(n|rr;Mn6Qzc=+!Q{Wum6jIa-FccC zQ>?bbC!mlKz|lj}Bvv%RU3sUROE0f?J>D(q8X)^$&W@Qj;M11Drh2H1cwEdnTc`y%z?z1pifFUlg;?j3 z^j&3|7vsgUam~C^4NFT?cx(b-2qDQXi8^HEX$tI(=?yHLo>R@rWLKo|$1fDzf0C`_Kf>Q7Q2vNUaWBh%qAoEnHL;!`@QF^(W~PQzqNr%tJ$kXbYm zw4x6yQOn_|Lu(mVmNJ$nc+8hkd4!$1lC_PA@$Tg5qO54z;8OSTyj+vx$U}eI^kgmb z5R}lebXkbjJbDU%%v=k#J#UddT5|(x_Kpf1J9$+aCyhW(>;{c`xr2WV$pJ1aR*8e? zFywUjY8+Gei^wVSJfmhqJJNS&f#dXp?n&YtQAl!+?BM zYPE3#b|dD!3xRIIoezN)#ZA1QD1r8eMCtuT2y>qxL8srw9kamL?&e4~po6&n`}7K;NaPbx z^t0>2R&u1DB7il*@viMuT`G!bB@7f(}e1d*b+2 zJ%0)vwP$*8@tqzZ?qhkNKVfb5PZHl@GLd=!^DT<=Ou|rX5;X_g$vYysOCxMPdXjVF z0(Uf$kGQ;{FuWpw;P)+~jqVBoUm0_30kTH>88rweFeuCZHp#Gd2XJ4ZmaC7zRzz4|Sb zc7>-z?m2v3v3+aOOIO*#Wbg2fi?SXJj!*|+FV}X&k zNTTHW^DmBK?jQeughY9PguQ2fO!5RwSn%~$Ki3D?u4T6nLxK8Rhr zr+o;!LlFeS2?rUCLU~}0ZZA^_JA7*|5}~9*WBfTYJ^!*lHVnkO07VsgOoLU92}FCP(fXsy zI#kiY0m-*GokwwofFPe5Qs)fSw(8I7Ej2t_D_6oxkZO^D^xHQWLH@RO*L8c$Wi$Db z6PhxfC0-InJb#jflVzQ3*A8>%d~Y=uEY(wQ@9($`{1hF}LgYA31)&}~_$~X`p^E9H z*kXsB(dH81{2iz*B|MM~a@s_h$v#$jrn-m{@Mme|x^emTuhJnde*OxD{2^~}##A<{ zpc^+HNa5aEXKyp^^Z}nK5GJg#zq}yZuRoK#^Yo3u)hnFJ-+!&>yn@GnjGFwA6x|eB zvc!x+m(BACms1%69xnEQ`zCdgxM$;%!a07&K?qdG@8^Spzo1|31|05%`m^c99hlc5 z)L^pXJkB_cioxQl-G1ItziH)Vf(#vFEYaJT(g_Nfo=w7O6m$mXS=G{xY0D?n+xmxW z4_(T(N6u4eBERO7UyuM$>FM)|eTp@8)2`>3RF2X+`%!&nhH@|Ksh~Uob#9i077iAVG%% zx~<~@#cLT(V1`cTGe7*Nw2xg}o?5A`^X_j7Th{_eSI9L!jZ3HeoiOgK)tla#t<=bj zOb)^x*D?DRSP)wd`xu;;eGJ=Aa{4#$?7krZjOg;;_lHIJX!BkZ^P|-F0uWJj&%(-Xv+#gE3k3-`+aROBznL%-CgP zgYA*&eO+Xro|QIcEvKnXWHHtzq(+T*KkE)D1{z6;+pw6LT&In zhrj}mFq_2+-(JUtr{!$?&zi}ZEi%H<+NRscy zZ6?3S2m||=?#@Q;l$BZNU|fyOu5#3oxs56Yu^RiL(`c>V@i7y(E`qV6+(H_jMv(&c zND^iv^p$pyTr`7d+RRME%Tmpjj85u-^s>a4GkJ~A&3_?MnlzcQh;i!9DCm+BV>n)f z)L_hQ-(8sq9x48EEOa1-(hR^vk7Tr^eYbZLY`z$ZUSCUrHpWODHPJsNG-M+w(%vC* zEUdBBijg)FE6{%mY^_rlC~ogU5Pa~%hM8XDlxFW^*}@$I zSQC(RWz@TM8*d-q>Gzt_aDp>&FcOoE{4y{jUrU!5Le2`Lnsl`_7AqvjmjEmqtC2l9 zqFxwUM3=Xzkc2_s)6xG))j1m*+-JLp$BS!KNL|`Wzm#yUH3Iu~z9@YNie{xK1pI$%`O9@@=%O+^7pu%V8BDo7zHj_(<8?9{5 z9XL%kH!HK*fcy75Zf~X*(N|55>p+f_<-01Fe-0(4fi^u?iAe^v41-ZSUHmYnP%$ox zq_l0(M8I_M3q|z$K{q%`T&x||cT*f-+WbLc;Y7t!8qUbJGezTJcvq@X50kzaCk>gK z<}vWCPHd^YyHXZNJ|i7e-5!X6XFwM!IBC z$g*@+4e8021=X;4*6KGA;aiqdYcFk-&%1S}4xyLTLlJj8Bf+QU-6fmkS`C(+? zySO?mBcn`jTG7`%69)OwcD7{kdup#(%|F1diW}z&Oz_MQ>e#nm4WJ!90r0}xL7bT} zK_YJ{A$%6!)G1u3Q$EUd=K`ZFJ;-Pk|f}9HC!V^tN_{(7l6ySRi3nTW6!F=3o3Zc5+#kHMi{0YOZEMK8sZRop9-%ju>%aE5;d0D zo7wJpF@W`L7c#k5Ln$i~_)Z{INH$j2iXO>Z=T&217U%}miDmQ_)HhJt@Q=9st$S2C z^GTyFF+~jld{BFX1@=3P&txPFrl-xF$@5j5!c3kz)fMo3VlW5Pu0nWY^s>?gbZIC5 zp0sAzxLTE+gw*4E#^HZY--L}eVH_I3DX9-wbeh7trch4%v~8%dWiETTXnh2$1g0I_ z=2ekoOJlwbZ7RAa!cSiG;hCbT_f-AyLNgBv_AGQZ<1%6tZtC0t|?ZJe<&;I@ZT zfkyXPNM+ySUTc+{j-Ajeh{=n$X3F|9$WnLB!M&!sWZbPkF6v29Hw_$zySe*x7 zDyD>2CnHMFitkZ@W8a(6-<7shiTkLyvAijOi52png-vS4PXXnriCXLIu5rfA;&_C~t+Xap#RDtpQRe_v1S?={$yP+Jm3 zAZv{6HZa$ov0s0Do%-@^`=v7IdmgyItKbjJk>C>O$(G}}4@>^W@g~4ZewN9a%pQsL zdYycqCUu-{6V_`9b=?RmYpR3#9~X!KLB`%R`$5iLZ;Ny^9{LCvt;)g9k)f#ba(MC| zHXLN0P$&rbMcwijqkdkXs3}XefGWdumy`~jrz*3Dau7f6-E*P4+~PL-J2y6|EjYXt zePo|s2tJ|E+98Cl@6N426b@=+s$TAeTSU#ChTU5&^;<1zxERKqiy;OhpxxywVl5rQ zm+(iX36pDo?031W@|4m2K{^z0A;r73Bz` z?`reQyi>_1J6P90-iV;BEVHJJjOa}aW{oP~HoBhq+}4;rS$HpRSF2UX-SNCBH=-Uo zC-q#|q6w&1MjX==B9@=?GJB-VZV8!<4bQM8_2T4i2qbQngbyaUN=DuS3RaFCu8SM$ ziA{B65*!bc3{ntPgST{71Zbbz5%yz*L}u_~3?>1K&u%)LcIfU~ZE{;$hf8mfdb?ie zC)azK2TZ;Us#B8zq!>eP zMiBnP3H~+1YzWkIsQrd!w(Om$@#194+ne@8NPUM`eg}!ZudsOFz`75W8A&l0Su*P{ z!~rrh`p=Ki2e*Ia7T0CZ-3y}UXk`T^GlId8LARgI4eQGd%x>Q~J$xsDz-}J5Qv~M@ z-e$N1b;vVukiZ;byCmWkNXH+c41-{S?=x+?m*SD=TQq0?CLAt@I^s6X5t&adzL1(~ zK5=5K_>x3tE#@T2(>(tkGl??9JpLX#Dc!wmLC~K-OT1R+{@tEBL>dzMT8zyAk;wU64#G1LF419f`)1fq+ZK;%;cJj%;nkyEk^ zxM3B7jTJ@89DP}yY~B1f@#mI=Q(C}ITk;YOX3^mJnFiy@FSaYAt&lhqj_3v8WhEFN z3?pc|z!dbfd;0oAIum#Qai#iuVRdm*6^z)$-gwnsktoXIq*Un&x0IcyfvY?TODQx1#BlId6=1TS$01FNPDnvH9ah}UQE|jj~=&w%fOl{PNltbE( zyg?GTSTa$LI`kR6wk^_36D$?_KHsA014)ip^sBR1!Czptwa?E4-M#~M2N57J?XKt< za;#nMl}Xwd0F>k5L7{5RL1R-D4ETHPt=MJFHi-HnKB|?7KL2@o08s^FFnH1Q zE;V>N)bDqw%}1r^+Kjhn-(XGvjF=UJk~hrGw53w9$pwzc!#LvwZ(g@{TlVBA{_OPL zErOM<%`Uy`YVq<~fDlcL2B3QQDEsp2rcdPlqHZNPOZNm(FlEIAIs4jqbY+sOWyG8A z($gV)qzh+4!}LfXjUKJ~(o7y5LST*4IC;QC$=@m^YvIx=U+u}Ve8h(WJ;F@6hK~Er z65q3S$?9R%`=ViaEZha2V9Y4SQXwKc#pbyF>bCwh(<%|GYLg{!=*6XG!OEz{Gpnon z7sz$k%EZ+zThKuIWD4kb7q(hxk%7!Ah;9|Z1h}0!Liy_h-*o8*X9oQJ70+nf8{*FF z0OXue$U%a!+>;bPf|M2>|>u<%Wh*ys8 zaMUBTZHbx#dsnb$+CLxBSc}XT0O0vnfnl`tQv`n4(9s1aWOyz$f^mgs7f@Q`i zrbhY95DAG!Oe$sl+9vo)pE%!Jiq64B)THIfD<3Wx%kzxM$z+u#RGZ_>r`pGoNk^$= ztc*jxxK+t$Miv$(bT*YHBvxyKn$!ApSJHPn+9nojQvg_M4w~0rxB*<6_1>5N4`c5b zooSSHi^jI?q+;7i#eQSkwpFoh+o{;LZJQN472S0AJ$IaQy89dV|MTbBWABBz=9<%& zRSFr-iJ^m#2L0wk(zU9h!Rulrk9W5&l9<4&NwQWG7_twC-y?Eu?X#b?$}>#|*mg93 za8J2?^*7mD8}8BgE2pZYL$It-eu5BeO%v68nIGbp2UfNUY<3_X&yN%0YLecs58**6 zV8h#+CGR`Dqz#$~9(yw4WH3`gA1&&x8Ut6syL z6`GF{aDhfziCS>Q-GKouyen;5RMYgOLA8$Dt?<8&EG%?e^DUi>!p}nHzagiLZset zOC{|%0QK}izf#~nV?a)9Sg-P2q&?5&b%vskL#h{g4{oj;KupZuS5XvFn4L0NpPpqp zviz7~e}rgSKUT0s*}skIG*=1lDq$Qgr&MK=QME~{Sl?69xv8|BRE=bm&jylA%G$?$ z{l+Co_S1^zS5sxEHnwA*jupmI_^r2#mQzzN`@)Y_3=PYIGIOWMeKk@tu4!BTe#+)2 zn6!ziy?Xny+pZViE%9Mdb1i6}voJIU&Oq?$NZFMTFy#;nax7({I=Bv1w#XZf`aP@0d>Sup-^_Qk>P|M>dZ7xV!F%5LX5O-{y-zYzyLsQ?{HYA9f-afq zhip(>M;UirVZmIbS_9vBJWjlr_w7@$FHhsj+q8zMH%X1iyBYSj-8X-b0(Z#l_C!TD z41nsVfJfG8<@(gGGiGwzuvga9#6DlGJi`%Y{(TV8-5&7vLyGNUCeYWdoTJ(k!amt0 zW`VwEj3tP#l^3Ibx<3R!$Bxr_IW|ayY9z#RRkEeyi1<_+K%uPjx!r2UF z0wYSF#sjd#E?Jw-?pS7(I=>pDUfn}7%{;18Gf6jjN2c!K?nt2pO#KTt@eYo`+2n2!TWAjuF5;1Y2^iizqCLOs>vWE#Wzgcm9lheq0s#3Y=@2`F7 z_NK`TEZ-pCJ37(WtXvKI_oJdFhQc8d$5OdPulHguUK31_X1R@{^*#_dmZN9z+O0*^ zT@yqUOzFttp$$|>fOt9*LP>k>!fsM;Mf-Xh(LH1Fz4!RNjm(iPTBDvzD7HoSQGS*S zeTppO)^|xq@7T_kB!SByBj?yV)y{`e0X?s)q~NAt<a|qf&2NA@srT z8U}cX434tH*LOU%@`h=&sxaOc(#X+EC!bvnQ z)mrVzsIWaUbhrTW7S{FfDAeQC=&dBw)mZXQVAbh*v0X*@1?Q%~BUA&~F;Xv_XBxi- zIG>$oks%deUn`FDdgSQt?MbjuMa!J9;|;x5`;>Pa1A8UtcMxU-(h}$)rVTt z1bdKifD`VMg5%c4Bm2?qalkz7x4`&@#-=Y^qk9JkD99id^^1aPNcW!K+1PvWJswbc zajYbE%N)kSdY(7~bi= zjO!ozQNLh*((Uplg68iEywn7I)pf5JRtDHLAlbZRDFUpWA+8uw_Fy9d)7Dt}Q(^v| zeh#9yCh)Rj3DVc7**JSizeo2`EMa2Rwvz;5ig0UT(LK`1&gV)llLIQckZ(P;hS9~Hmg(lONCjWzVlv;J^}g+alVdwm@@ zN9+dP2yA)zTQp@D!y@K1qDT9rR>Ap*FDD~%q1g<>aCibgX`=cY&RA`S;T7K3K<`<- zub3jHB@0lO`y`gQ2x)2z+P+d-Zpq(gTt`ePEVtVX8k!O`xLfX-R{^Y=39Q!R6vY3;w z*|9$n`sNYBAz-s1FUVr%qvQ90q0+m^XM9+GN0C_$5~so9&k`uA)gc+bVLvHzLufG`gG9D3=@jt-kPcejmT?w=%&=10 zFWt#OG+L8PBL>!zOknDKOa!Nnwl>^T78x!U=8sjVu5;#()a9L6WPt0IMTnY}Z z4TAo)ODr2Vb00%fNLmeiO(?=$i54E_2FljZoC-ICfj8q0MDyev3GTIW92%l@gaa@y z#Od<7ah$)}P9nQF-s0kxBsQpJ48)I5d1-9$R_QpomU77&YSM@$ORKaolk{0?We@tE(Xzy+ z^k`@?#;VQn#FO7%c4;x30Dm|Ke#b#@N~GX4@(4*NPsZ~qnlLt=@$!v2P|2sm`)b^1 zvA{m0esG$CRd)%fu(dc*=;1I$&0-G4w0cgt7?rZzLr#cl{NMm*6vgdK#)Dfc9*Rr%pY?AXVy;i~Azj=wSM#@s;nFwxmQ zeC+AvNmGnERv6hnmN}-mXwhL)?!EC@HjK^(1)!a_o5A5CkO%j08JqX8QwX@_yZa?s znc#5eqmvET9e_Rqoc?}Sg&E91x_#}-UN9W`Ab_$kvWf&U4Ws5Fk~FYhHSX~_z{`bM-IlLPAs+oXP4)_uKz-lrl$1egQ5c;a(CPWHLp-8cwj<*@ zo-Rq%zi)pB&2r^rd`8UNGke;I{j==Cf2?*!L4Tb2QmmeIqR1{$5=I72K^JL6N3z1A z(ktZf5P%mwX>rVIVfLml9;v#DFL!s?4Xl-{ln+!Fm~e9GT;WOr*!)H2fLUKgokqz$ zs`}hV>}pWIDx2Q}X=2E*b`D&HhFBoS3l{5+l^XtGjvRYlJPa@LD%Kv`->wSqck;|S zUa#lyarK-jYF<_%PRk(`8CZ^R833W!W-r{WW)+A1C_rC7S)~{)` zN_0jS@9Qi^JlBbNBN2Z>wKuGpwkXPqQYHN^RdI%IlYHeq|5NU!SfePA`xoN8RB1=z zgY|qxF;}_^^6cxMBvZthAAic>fPgf=$HxD?0s41k;_n9NA5;ZNTT{EAb~g4F)+UZ* ziZ0eBN+!<#nlnc$>&T-Dq470zn4HzmYJ!1*!+<=2YTSS(8zKV|Dc~tm%y(@pM!1bT zhAw{taz4=c|L!+H3&)B0JpFi4Q+|*Wf)OQU@S54ocDhREA=G>3_XS}L_5cM8y1-#8 zAR&?l?6GSPN?=uEC7a8L_Y0y>;h(8S;WFB59RGmJFgQzFbO_ED<%Pl1H3~akxxj2j zf9bEgD>yd8>IVn7+6dfm22zwVrE#qsZ3h^wSSGM8h-6Hub=5bi(ygU1P;cIGR3%qT zI9)BA3pdr%<6T8dVcF@$kW8%^%OBt0UW6jmE9a>9k3tJpLTFx zb3N{IRM`9N_hk}a^Hy-qJV^HAY8{=RCQNhaDRQQ$rz)IllgR=218!_Vh2B1Q-7~Bp z`VLWT#XVlpQnVWeoLcwM3xOnbiKMIYDr14>3=o$#%< zB`$3ftceHiIiz{Htoa#!5E`$CUg}w)9UP8@cWBAGpvY@Dzlppe;!q00AjLwac|6QH zf-|_@tkeNr&`zEY=CEUx4es%YpPB-6C5)Idd;!pM@d$;m z1I+M0oy&;uEG)CX*%Wo(Y@Ppp^S>=D|1XN^e{TKB6itj=934$;jZFS^|BF?nl}J^v z__pv*c{84sh+??QBq2wmA{h2Zs;`)hX8{ba8{ddlr3bUG1=vZ7M$hytOHg=IV;0O1=TXMGTBURU1I7HXK$b5$GhM4bF zR*+dtI+W42&6~WWgjRJM*@xI}>jJJ`;jKobQfbZjx(>aX8>XL`yvEj%VO_s*NS(2| z0aR6oWhV}Fk(x;1wfi6?q)nrOb-Rv)xp6Kn6F+K?c83^y3GDH9(S4W6jTm)WyWh}u zYnn8-0&|ruu!a*YI%ZlUvX*gm_!~V%M46lmzvZu3QpvQ9bzVX%N>EF)I_Zr^kz0JG zlhP)R5}cAOCQx~rwMr}jAS)_Y8|wFY^O_`*)mlTLCY6ID-GiXAuTAiPyynV> zLGhfad~I;hk)xT^4?#aF)L?R+>NL)=cRhsBG7#PEbriYy4K2qBU7^YKyC{fEXL$)# zd^?3@mIQ2fG`n+krrHQti0%Fj2o#C&o0wlhQCMLI2B6My1!+_c`-7&my{XfrsO zeGU9;Y1~S)%i-?p&F&E^0o5<+D1?d zb|?9UN%9tr^`Ka-h$cgwuuGkgvcL_qW{~Eu5jAMM(^yI60(;QM#K-cE#ggfgX>fbO z+FnzjjTz-Wr^l=O{ifc8@il+2KFo=SXQ0Y^hzdRMCqKY&ay6U(pjX-BV^K7C^D6A~?2L5whc98LMp&>Js> z5x0aSHWp&sLq@@-1S6Lrbp8l-EQb?R!!BqF(6~!3%6Vr@Qm-I~r&i?gky~8l{|ufa z$=wz`nTvOsFj@*hS`L}3j@DO?By0e(i(Ai0P*&Y{1(!=$MY${rWwq$XJhw?~a@ari zajwS8+kj)=92oPYKCRBH3HTHX12lJz{yH)49Y5`M8SGv($i>|!d&-}3IUu#Wj_vF?{^DTQ{Wj&GET$nlS zpOcBS{kw-=%WwPbBR@dJ0=q<3J~m>Y-6!M}0bJLJ(hdgvam#}y6K}%op~xsI(zxR) zj9>2Xj2~RcXj@I_-57c`T?!+HIkJmg60!ZS*qthqxYmP%WJV4d<$=fg9X5p4mQ7lL znW4A3y3b$x7#_=UM)*<{p_f|^h|?@|xt?_TAO=S*Lb@qEPf+Kxxe?LS);xWi#)fh) z8G)J~PVMQkPuwX6rqD1*&c?=r7ziFH1F*jjRT(DY=c*_D#Q6vKjb$RD0`ANgkZ6n| zBui)JWxq}C#|s#wHC&caPNLs~x?Uy)DmDs-c=9+{%Jw&davI1hMYCeyV#6C78tWv`DfZAJV6wB2J8ysfJ zNikO5$SIftc`22ja1QVQRtrvlcK8{i(h!~1YJ*r-uemA%LPZ?SB8wqkc!ph3cnwxd z^Hc&Yri#8^btWreQ`ylfXfx`%!P2$iq?^5{5WHdZMY{O_33>Gpr@dWc&8%ef1%1Pw zfc2xLA^IeA!!K3w)TE^^m_JwJAm+mWe&AQQM-zZ5EXCuNf%pOJiF&^R~< zehF!PKXvoqyWzbeUI*c=A!W~Aw`|xAoA%7gOrYj8Zrl2(3O2igEU>*Uxz+e>1uf%< z3e+x_H8FGFl3bD#L{;<$+!6PCU2fi{2apLPdt^NiuRP+X9<49oXUDxmg#;QWg1}#eXjCYJxE~vJ1JO&pfce|u ztG=E%T{`QWf?{eNbJ7JV#Xfa+j9)i!0mUz@bl{zMzC)KN-YKp#ckb0_ejzC~d;1)% ziysMp;Z#!!?i()%G4UM=A;~iO)O?gcS}e3uf@|o5dxR!(v@@hdsZt{wt#vW!Ca7Ss zVutMM99s^+sgxymIFA&d03IFQ#1im_ew)&bb^zqm@)$SuHaF}bhEUuGyw|^+%|SHm z+TJzEecn?!5Yz`#I@@t()oxx5IEsEkq7q%9)X)~K;Zhz;R_?v`aqGB>nAGbMV?fu5 zUyx|Kq3VILWjC?qhw_v;l~w(0C3d;;UsUlloH&1x zB%4UcHW0CxOXvWO$FFzVGrrlzN&@K>_r~3U&$jtF)L!k|M+*^4jhStj z2ewH)aT)GLS_*wBIwPu;W{AOSqR3CfEXrObOo~Z!DJ8+M5>V%$}qyW?Y zvJcFE#Ne7Z8ZtU?AfPqq|0xFl|E~I!9Sv-qESxRuZ2#YQoHX^__56dWZQapGODI}V z>@O%}6Iq+Li#Z&KB~vGi76APNlbcn#d82i!07(E<02Psd6U!(nT#O;jT$t&0cWF>y z{AF5Evx=`b|N71J*u#(Ie$v|S>-C$n%{UE?BshsEuunoJa*Da<4rBlq#)#z~LJa-` zEh{MxOAUU3^$w*-653@rDd$M-r6MS0vA(;&s>If$5qpHaYBDXz^B}}FV?kQl<4QqX zQ8-&jQ63m0t)C4?>-K7B9@K#9HyPdS{9}e9_t^noEM35KgtLG^N=C zdUu0ZLwpUMNB^`5dDP&O-4gGm6NOqW=4%kK4D^aQ78z@+hc-!IzgN7{604XFO%6LJbno|k-!Bh*a z3WlmdFO0FK74(c-PKH;2^$SrSeDr(u)D>6A71G8UozHs8L|p2^!qAKA`O46)@5d@} zI`vUWZ|EV;O$S(y_{|%bpFhGA65wexxFvNr6X8S3&P9$ z->uW!_e1*cg$&7mDr8iYfBs*ac#0dgC;&8_(2ZVBI&@LGA!)mDQ6AlW)FS8r3bLXM z!M9mVmfo?$xU+8~41#ymuY&4u9Kv@Xf$`Q7B&u2Nu{E<9Zm-L(Y5uq8+}s|Z&fc6D zGDk`4)6oN87{nV!aQIkfYeVUQ<`8`N4iK8ALd^yhuLaMyx;1myA}vrW>-0iFE>kTC z^k2$aYroN>ys2vW{4}%Qxl^n%FMHK~>#Y4C1*rUnc>*s8-j5fox_UH8(`dWXcb-r7 z9XaO~Vby{d$&tSHFyKhWqnZX7GN( z%a-T`&e)jcOnSuf#`fs-m>YFctLtjH-%VHDxwIdHF^;-u1_$Zyy}DmND9tHxRt3lW zV{mcCA#(Q91$}jWZ`L}KBGb*dx7{G?F`=p$n0~|Mj#7{bMAMqBHtNizx>!lHtyTVY zr;Y3APDcCtC1z&!QRx-)vv}NT?P@V@4IkT`{$$^AYs`f@GPW;&ku#CZ@u*+dfrGOO zxr#_EH@aAdw0=y-J~p-cXV%=_!TdQKxD*^c>e%iw>n0gNP7zD|9fwGdAdmQka@Hs5 zZxX4ugk-(CWvhagcye;GlhP)`ldu`AaM&vDCAZM_>*;dX9%YI<(D0hDT)J6T^J^WX zm9Kwp6F%K=CO>{}62|?H+YHSA=@R|#b@2Z?djCJcr)*U#dt5d2Pj;{3WL2vXSDUqn zdpS+xwV3sy7_AMDwQwaaUo{N17mw%Ly`LqUGGw{@3!x98*9@ z=t9+lJrG7c?;%=LMOiOajZajl1A#gBFBXEQ34x7}B?5!Y*vc2M=?czJ@wI0o>ZiTL zsyiwI{wdE`nwO~DQ!^Ej8!mMD-TNqa)xJcSZX%&e9_PF_5w9vzj8vi_vMM$&M^Em2 zt?=LZ`Bm|WyKEieN@A+Q8gI4yCF0^vrqrIj^$+2$ESXkGyVp#K7JM9**eGCsq-G7z z8V#C?9;{R7GE*C@EoaonPVFi3#hs4Bkf*Z42^O8ivR*!A*3Ajnl%NOJr~RY7aJlN$ z*C*3GE0hSCVz5wAr0`aga^%Fk98=Qe5;Vu6G-LTqozu#bB!SCJug?}jmds8uz)xh_ zL)2i?_bQLBgfRuX=XHL9Eb(n38v?hfelFCn^aPJlI&$| z#Hfgvg{lhbUVLi=la_RKtyUZNh!z>KH zfXuerYh8Q+Q%lfqlAN?e4}w#5lb4Tx&b-@xu?wCduG+{tHgPec+m=77f&8aif(I3gv=NR%{uh3He7PZ1G#%$z$ zkGVeOMoMuJvDOIYZJJqK5-){hdGw`TazT;(To|2;!N!Bi{RIg%l4UNk%xh#nHf7!mUnX1WFV%6sUc|qJ}<2ZBkk&nKZLQc6bmH@P# zQ$iaR%t27p7)S9CV)+5Rd?Bush=e?c%3ZIN4La1EmRNRFASBMNK)pNI@f9EUtTxg) zV|j(KAX?c6ejE)AH{P8Ip3n&8Pi{bNIX8H6d1@ykybLkpi4BeS;brOJrP=JE8-VHy zZ{tuePxF)9b*x9Y@SVVd-#_h-4=7+e^oMYaUUu+py}~D3v<>Heg>5k-mx5hU0!fzB zm|rCE7X-m;3z>y@Xr-R4W4bw!;#7W3Y3oT8jECeWANB`u#k+WdYrzCtl@oq4K&F5j z@sfl!mCoIqX)qT#Zb!WQ9W#MH43Yj;XUw8PBaU?BrsnX??(prJ>{4u#DJe#=7);{C z$MLi$9G*jAwI$qR8qw!m(zK+`H9?+oKTE-kD&jo2bAyJBGCq&;{unU7vfB|ZO{_=Y zwiubW>ikI}WnCL*hf@qcZjxnkc0c=bobIB0s<5h$@UAB~F9^2Gk!*WqF10_@T92OktMe9U|qO zK%M9(re$zcws4-DyM69WzRJrSF-REfw+bLIgeY=|C=+u5oO}dP4)T$^hVm|Y9YIa_ zl)HG)ZBE#(TLFe23ePC)N1%g~w&c-J%h|Y#wKUkOOcfw~D`!k-ZG3e}}_pG1dk;IXXOB(pX`-0_!o zyVIB&!i?J}Gt&BKZ!MvUK_hVSRh=%NYrWN_T)JC$&NtTKQx&D|T zBx*D@J>u<8+C?}H9&lSe1Pom@FSg4J!HfK@STmSnQ(l?ph|Z9-pr`o*g>Q%l%=F9A z0b*m2RGB+g2_h#i*ic25N#20zX5`D`6-+KMHCb z?$vQg-z43}VZlT2F53+?#+ZSW`vDlf#z4cDz8H8eF5P+Uc9Q#haI%66 ztSo0R9_5v>xcqWVDZ6KvL-U7X*#~HWDtBGPJ!lA3%a#cx;Wjn#L2P%b|RTe6r%+FVL_M)L2)jNr73qA388MkP#7!O)|`$Qn>zyrzXRO}d*rbFr1Cn|fQ#h+H z1E$HHTz&)yW-_IwaNvZaQFUF%jZe-{$HTtro8J;4qS_^dxlD^x1<-2?*w1@8u9&iE zeuM6HvJ#7gb6U_&50Q+C_)8-}Rf<0*(ze?n-n5Z0%2i=%L#R{Awqv@f8TFq~ijhmY z3wiq=N}0yF0q5qM08Qt)JQfj+&wz2L|5gJtL^K<&4!chErBnOS6qKs_dG+W+-IQ?OlIwry@+wf{C(=* zLyT1S%5ZvO4m!aRxJ)t=yrcuN=vox1N9ioD|~y2)HV9EvxSLB zTIjZ8>P_kZn*N;?)}$=i$Al$ug$|!EtaI*h#ZqP;!W5@$%{~nlT5!O^M0%{Kh7e=A zCV){ta>RFx&3fkHY>j}JZ-GPScGUTNdyi$wP0CcZij%#VB7x4qWv8+JlKV(>@Y!YH zuITgUIi@PdV1@v(*KkFM+Ln_)NtrGkw~L$Xp^Sx4LAl-VjcDe5mhqfD%stNbkQa{F zO?Lxzc+vNic4M2WqgAF=*3c8$Ib=lQ)LM82qK@2ekifcxD-R?SvC zEikdei+9cG{dO9Mt|dt4w$eGl>+0`z0+pTTT@92Kj& z!H8J$_qGYEj7}ukYrzQw8$v{U^?~}Hl#PM2PC1k>3OO7AGi-t55sGl3qE(Kmg;@KN zA+~-zV}w#a(cQIAJ<`cu&I66lHe8&|D}P;mnWvx-?)+3NCA$&Nbf#z-Snf&M%3t*3 zR#8T>ZC;F9?zmtO>IhisOcTfYB8` z-|j<;=?dv=i}w6xvllT;$H8*{)n`_Nq?dw7S=qtqsoyAPs~^LXaT0XB3nRt52fK3q zp(A~u%ze+&pMN(QL7nziW_cW}#6FZ5{Otz550=o+J+eXHmcE%5eF z2yk)a=eJ7?5D>w4w)pRvg780OivJV3Fp-;(0u@54iea+SHIMNXBx>XIltTg$f&zo9 zD&3@zWSL~X>Me3Z^v!@2AR;7xq9(D_YcKmPp1ZBL1GH(7mY-`NIEpvHo+8tlT?MP9 zg=&2!LqC>k%dRtWD1(f+9Oh@*(AX~zgEJCkUw$lV<5SzwTX_`Em?6`nNPXLPNLz7! zyq&CCQAB>w^ZfcX@Add_r(Vn_@RC=uM=`Wc$hpO;+5dQ5dN||_3#BID5Ze*(JWq_I zXkmbSLP5$!A*BL!nsm=4pR9eu7@e?ls3<%f8f7bBa2RrdqPsknKkda>hII~eXYqPcuBIa{WYGF8n``HF z`pesC`Z|ki=i`2f%)h#o$bjzKGn&yg!r0ZJ@ZPd3XvrL@HZwJv8I09_fzl9>Ahi}# z7UjDw%Ll6lSqHmFR2WZ|n!EZ5$?y!z*;`D)k9X*hz3Cjz88ono7e6Wj?tG6N1H(y? zC*F$+H*{Mf9j`nokv1h}J!?!E3x{na#%MHz+UIKIe3QqdI71|M04g~!UPQIu_8u1E z@jFZNgLg(-uwMcJtWcFZ2T$G7|MKh{m)S_wr|`pwQX|bdY;XK4TSH}#M;t73fycM*BlF(9t_~X%2cZ%moUo*$l#f+(1wu#x_D+c40)n`&{=5q zQhkY>bh}X?pgtgmFnhii$G37`;)|3>Gb6S4;`AL;+% z(ung#@C{k=;KOuvfVT(Y0Ka>dRq2lG7iUK6ZV-Gy`S#2k5K&rPZ)2E8wlSle5RW!E z>gO;g_G~}fqXds;R#y1jTuPBb#8rKmx7Um4Xu-%^9vfk1(Cq7^_s)A`T@aE1#g`|a z+AK&g^2j?E5gP0|evRtuC<``CZhgQZB{i+j&8M$TavA`RN%B#(gqVmB?AxM_))ZUE zxeV6|j2zC5FTEX_li4XNEQH{OfuWn=(G1_cA{Ey%>k)*F(SeZP*p^7r3}zyYXX==~ zgVwY!m<(>Wm^4xs*BfZkSH_r&ePZCV%e%HmW}p8m@pu&9D>PgGV_Z4b5a}Hy)#M3M zl_4{iYR^^t=47c~Myv(Fu?Dmjy=(R}m`)**Tig`4$-S(q>UVi{roXtG)s+R5HD186 zYq0G!j3g_8IcnspaL$x8s{IMH^^afp4+TP6Az%>^rzij!p_yeFq2JjB1I9Q6t_^=- zTP^Evd_jqSXxMtaz&@Q{(R%Y`bUYyplH5SW9;cgXjV4+>Z~i(Io}n9U$v56x>5{=@ zt+`t8PBfT9Pf?ac7Z^63DwQJESw5tynm?4>5m&HcTSFf&`1S#jT@H2#QzK{pynbej zNr*iwI9?!^&48QuU0Xn1F_}!J0)6H?HIw`vli;U1Ruic$xhIvu7;Kfn8BCKQj>=0s zvqE|1Vo~q|?b5}nfCp{LWM+d^XjC$YZAK^QNlss5T18b=jv_K5eOvfIvH_5mMsz(B;Z-%PC_mdoUZ$U?0vvS8XxK?S5bF z5#Ubg$LG0l2j@Md_DP?}ftTt_ING)JXa(+ zU1~Ojr1P9!M=uxrBHmXSgl`}1%rSDQL#1?*aOBK!1-XC^LFE*MwYIqN_4;vI)lGkO z8smI?GO{g}xOLK`4FX7ET*Vo@BHbyT=$*0eL#7W=)(0ySbPrE77(-7{(MaahET9f` z7FFWZj0j9&j!Y?diyyLT4P3b;-R`w> zNBv$B@>Be<(>8;%L$$cB_3RXM^jDNIW8!2_htn`u&hOSDVn6hf|7IY2uc?kKJ zQ;QlQVK(ZwxF7zvz~z5WHUI9^@}GEz|LEWTHGXSS+fYL_L;9-L(;sN}2cr`m3eXI; zht?H@#bBUhLmxr`6SC15MZrkia&8c^VtCTk(%Pu#TFq=`;D5xsr0QFCTIWCG`tbUz z&C`G@XwEAl{}y-6%ya){>dUfoaXi!G_W|Ea@t&6l8H!%j>jWcws)8h>hinr|c{&1A z6LV)7r}mQ<57q2?t7D}8z}ic=@7`T#xHdr1yo#}ZfD#cfykrt}i>Jhh5Eu%L{Uenm zCJ0U`gq*ZI52nkvbF^XVr&OOMCyXlbRBNJd*4;rPA;awei*M(}2#s&&c*n{+=fn#Y zc8xS8BZ39Aj&PoraOR@0!&Fo-NsLWeoh$T^*vzWBlp6xhZEJi2Q7}0gPS;th9PZj_ z{YB8RghCW)iP0dW%T!A3=ElVmUe}DoDW6eJt8u;{d}fKQ+i;U|#2mYumMbl*foN0Q zPfg+z8S_!*$678^7tQb@ zG{m-9_M+@Tlx@q(BdTjDI{C%C?Z6^pF)C^MR%!I0&^%i;>(8Pc7xKHX< zVQ%tZW3Dt8^UbF)h^lrhI{^7ik4xXY=7x%Wtqjv0CXSv{5F;dltZBwc00IpZgxeNGg zimj<~i@{=3WcbP&{EU0I!s1qH!d2nZ=FG*b%`Py&L~*mVf&XTntayuLp(%hJnyGw^isO%RC>M?< zzRSCzTIoo!a-`BbWyVKa!IE6k;!3l%)cw2iENo1e_ibJQ?CdQyny8#Tq3eGCHkhgycWn zhwj^vhj5Hyj{#RISa z+zT;mW0R2gK`;$RmU3f(U3S_*xvziAN@jAAe5S`J4|Js}nQaTNI@vnx#-^(^xE=*F zQtfez+Twf{35g9btJwu-Q3auw&4`xdjmBixC0D1u7iKCH$d+d#JUy0=#p|i^G+^a^ z)@Faxh58`sdxHC^M%Rk{U_`IxRTMy^d2EGj?&FJIU{t-h$?>a`)cV!!5IrLjK;7-Y&wjEc4d{q(_%TNN6A z>069)iKG6c&N6Rqfodji%;;h`07Zg`g2Es|Ng{&f@LGr?;ir4Vak4T<@q@et&%3ke zTOH_oYDq4&+`p8Qe?q5+vx3=39fW7Z`2`4E{FHoU@F{ zm*Bw9Qi#sdyq;yj!}R1i*TePX?HI!!Set3qU;B{ii!45XyhMIdgXv`OA+ioWYsA0L zT(CeW9D*Dt!JP6}B(%07Ez*`&kFLf>kE67^X^fXV`qw_z;TJ)-mHv)tC*d6|D{ z7P*hKfU1N%Jtrc**W7KylMGg?Zu|+fTe||KMLgHwVUC8RxYIp zk~|N0FRYO>YP?j*kSDlF@t^T9W$VRrT2j-;WMsXAx_+v4IEP+tJ@vp}sb~rm)`1?~ zw3QX?T{96-AGJ*}gY1g<`zy#^Pk5Jbe*}nZ=0;uz+2d#nb?Yk?m+F9xToB#ynATdoBS@&>fyhy( zZ@NY7|HxGT@t>~q|AMyv*N(=&?r||U^tT4!(#dA}q}TnOKV#f(ErJ)bBoq;d91)tZ zzrI8g5L4bM>3ss6jOjkDwW57rmu2NL#wJp#L!YX`k3J}M%redD=4KTuEgPGryzdAuV8_PJI{!TYS_#BT9~^Iwr|J353)h3Q>%P6Jms# z6F~yCTf6~m!%k~)X;)BB|lT(2t^gG-#ClH0G&ZzO`m>xcUwj* zooerld0H_K#0JhaB&Y#BEyl?`K5Qq%sm;xl*t0e%bSa8kzW-IGG(=Q~=s?X_+q^BP zk?4TrTNk|J@7tS+c9lLpy+KOqx&!tyO)K8azC7qmbzB{wkAhdL-$@;w231K%_TFZnxla>dh^n*&y+Sq{3dz(nVv`MGTFCE$>bcR%imMAp|_u?Qm zDtq#4M{r%6(it}1&J+vnk=&Xw_pT_8QFl_FnH7`wkSLBZ_lBsJ(HB{4yX0FfncEGN zD}X+tZK6HH#yL9=v^USjHA3@xw#*-T-Bqds{_TBR@aF?L=xe|(KgO<9r&`}z+R2%D z@~tnn5$ynIRV(D{J(3^6@eD9DVf-x*4Bp^1^$R7z;Wlx~F4Gks{lEm=Q&5ltc+MaJ zkI(P;TD4!K?rHxIXK(pcN7Qd?26uONm*DOe+-2kL?ivX0?(XjH1lYJc1mCy^cS!Tz z+h_ELKKG0s{h|JV8ntRw&EJ~ynZimF*W}`lJTGdgg>KbOgSQvFEEiksh`ddQ3iL+7^itq~?YDH0=??p=bI^m4XkR#V;lvz;k zVffq7Dz?&hBQgjU8dNrFG$bj60+!)xv$e8+5`i(HBcYYY{;9s3Dl|lJQ|J64)+h4g zfvzEIt)?q1V#BXT{teq)+2J~rqUC5jGs_dc#e0yn<~a>IcpKW#2m>vjOWQ@~*{INX7z$yb9KwSsei0DmNdm0JGUQWE_B3}^Otnna zrPM{?baj>oWH07y>9wWO8OI3E+-%7@^a^1a0=@6lf-FAu*(nsum%I{aaBbp z98t4exd=}BGf$$6gnnzG{OrVEp~RYGZXKE%IJswzF1oz*k$$RM;w)=P8%RAe;#exn zZW!)FV~R~i{u;ShpJA~2w8MxBb?vuD*Bfd??Cu)hAKDVjB_1Kxg|_mo-BlqDkd&e zsCs=O*}`Ybg0Qao%$iZQd8;@J8{`9XZTL7J9G>U)eUJ9c7{cgoD$2h4ncbvQ6zU7B z0TP_=!^?$>FF(>Aspl;*e8gt!Vo2DdJJ1&=s@-AU%hx5H>=MCA;#MCoR!R|a4OWyEIL>_rU^xx5o$N>&plDUflnIm-vX5A z1Q&P6eIiuV^=UB=I6CNY-Q2AM?U~coTXQ8mUV4nNgv}->l!&$HKf#1mZ{nZJq5=lv zsotBT0tWW!Ke7Hv!2qD;atD+phJWw>t9XXu`l_BgE%G*^=P%X?Kj6XO0n);k%O-ksc5*Z@qO>i0P5p(sd^YDWX=uK*r zGgWD$la@LC`{Y7Nfamn@h-0ohd$SuN{OJd?Ik0h4@0N;9ZKF5g(h~#~i0eh6Jyp0$ zCjB^b^-*vsjYASH9;|RX3TH{uOWdXE@yfj!Gr}Yq(Ht(Ns=<>4OTfTNwDi7Ij;jT5 z1FdXqSV)RGq^|1NCIoY6lu8da3=i|9>rj2fvQlerz#UVH#+Z~8;xp||5XY6hb=ZoVLlxpTY>{w+AN14msof_8Z!n+XD zl&fZ*nj{ngU@Ww<@rrdyOB+aEPTBpZUHd7C!D2x%oKJ=B;Fcqlm$5RmhOLgpv?NNF z6$#WLZ)=HdgD2O?N$4w!(s21+~Xe1)#-F zyj?W58#$}mrKS&RZ?;58&&8`t9Wv2ailnLnOfYxLFIAiHF7nAqmmkph$r#J3i>Bq? zriP*6t2YJ-#}dA|;z*JEXtftIyTC85j^}3nqN~Qy3Sz(Il?N%(7zj6jYh=_SG? z+}5T<#Lb-GsG5u6qd@2pVl~Va;B2yxIn34RP}#v}ZKG*#gpL`wUT6w*kTm#lR=^%_ zNOQ6xg>%usn#5)MNxN(lvzp`nv=zGAuaU*MPe_f^(3m zo-V0_9iGM(RIk1nHnZ}GwF*hL+sw9-?$`IDP!wW{A=q6UFLsDjdh)GK9m}JGS8cCI838W99Io*~9VGCl5pCazHs98}v>7 z(qt+@hVOJ!AA}$=uEW=v>?tEHcd{)gas-)ahkr0cIR!9zI#3z+oMI7P4$<|a`Dp?0 zWov`ENcWQ@6^BBbnVN>ti@v#;7;ebqBKJnGxp_9GDc1qrz5O%>$^bGq5QA}2nCp+p zAUImv39K~>{fo67n_wsJd_Ikkw=~F@P#-gG%+68CvRAfhVa6I#%kNc_dQOk~k8hs! zym-+$%B_@s6Q3CUM47ZmLjawbS?Bo7QXp9wn9R*jYpAo}&!iM(pquouG`~e^l23#k z5!%>2ei`tFq9JBw;S`ecHr_|r1E(u&#^KxQ6x7R9%ja+ma%!~D)J^O)Slsh7vTg5@ z1yd0HTp6x2`T1{kzN1f3CjUdTxg2*1y!jlA8r)0!Z1>mR1Yu3 zN_lu6tw~#AwyWzd=xgk(YwYyb_{i!)$ogvh)0IKcwr+_IB6IGdtURn^;UqvaJb6k! zDD_?<$IJA<8dme}^K4JPP#l*bU8&zB}OF z&d1c&sv$7NWQ6l9QzXrLx!7>i@SFhWkw6j=DJd(f$FcjBG|OTRsc9eu%sS83$>^J;d?#9v;$13s;eS5(V_|L^GpWZbN2km6C~B`Uy%WCzSe}p( zN!}T$$C2SZ53Sa=@YHuC3Kc;S(DGfzxG3~J-@b7ryhKL)ql?e?tHAPOhYrcd{m5S+ z(N9v_=RW;g8*?*z`uDQN8Ep-Ob1irF5B^&{RHQ$ckQ>Psg6j8OQM-PuH2g_B+s5Ue zZo(migZg&4crcU1v{w+e)xPam)Q+VwLcQ3 z7y@FDt1)a1#mSv9TTM8x6WG#VXahdS>(;l+IcTzLbS5G$aTq%YVU>pg#WmRULF$ee zr}{9`P1r3b3_VD0amXvu6I{{X(wFgY`<4y4UL6_CMf|(^dxNq9ANZL5pi*M(2oH>Y zVe@dKh+m16uOgdQQA4gAQ45Oz+H% z!!<+LKorq&INT)|3Tex7L1-!te-24|7Ql%w)_hM^g}xl-b~p+;reb+oKo}ADF`Tlm zvDx<+AH*DvDJmxjw2s94S0r+gRmZG1EPm=%5Ac}#fs>V6APaOM%t+lyu=7we0s z^(X~l7#wUKxaELxMnnV5)&4eRNVzfF#xsjN=uXJ+ z$w?gkw5EG3_px&*XF_f^{rKCd0EMdPUpUK~Ip+|(%o`--y6;4dHil+SDpK~% zZ@k|UPg_Tza^m;?Bw|6i3Nd%W86Fk_Ab2L%{|*1PDcw&ufpX+_z9;}fQ7to%$YZ<%9?vQd)TPq+(kp z850%?5~e0(lxM#vLD+P@&N=i@S3~}TP_@B2D^1Nc`VQgnL&3#G)Z~_dqjT;ACx&nL zDpV3iwMdcl_S>xLoG=VU1SrvokbW0Zec;KMxzqrqM*=k{fGinQGvI%>RqUwK2> zz`>IwXxO~Kj7?qill)bRE2q#ol{3HIar^(y46de$*4!JY>rdo#^Q z|C!=w+BCpFIpH&H{Z0x!4x?YYS9xa+W>WXE*GUtFL)nLWtcJ7|U^~IEX}UKzmd7up z*M_nrWM$+2)c5wBfCXDWr@ksN6y|-4=`sy)frpvW^guiF8fZ_yG3~G?TL{ znl}O$0x_5WVtudd_vvR@mwi(n#|S?P9ZzJm;uzJriUL;s;d0RQEfE5U<5dq++&ypd zKB9M@rwLxGM)nT*Oy(Lz4=hqWhEmHGMiyajL?JwhA{}BbH(b_;`xUjKXST+=|=dz zORAPFKLY2-3Q9Yi+NLXgN&o@oX%`61_iUpRyonAx&6nMmAH$CuyDr#s+&}1405J3D zp>9t6=SHTHO>=ZO8z?|2Mak^F-TdOTil`ZIa>lZCU$(A5^^Cnxp1SD3F%Lilq*iz6iFmC9!j;#TA!aN+Vu7YwXI^ z9Oc3vHRkVBBV_i_*>5my54EY*nur&tz&on;HD=@Fe;Qm9T3gQI*q|!=vxX_?bjo^W zkOtxG%_VW0qtrsofWzMXCnm>zGhTe`y5^$<ZXWC zPa)CFm#~h^q5fe^G4p+t?rG57x1foQm2K9ce3@{4ifp{3Yx2eFZ(#i;GbwAmtOJRn z-M=4KUXzJrN^C4&Ut6-E@rr$l=ik`D;uH*Qf0g^)V0=< zZ`X2@$YS=?GYp4OE$qxqQiglCDp8;Q$n{=72r4HI40Egc?xgG;A7SEjBS_Tzo!1t}2|CeaH{G&qQvD(-!FgnT@*F*}QL(zu2_2;;filiC z%5QjP@!{1OF-mMYVPkxC!VwRS)` z4AwdkIE4E;!3e||h8{c7^u%=UBK1J}N2d=O-mp!GrSGF|#saV531j)4zzxF7_g5RR z>qnQpAlg8&YmtVdy4Tb_5RM}-6`ruaBS)__{qTN=)`Qw_n0kFyShU~M9j-rC5vEU?yYHwYfuY;p&f?`t~pk>IOHU|#fw z*znfbWYJ*|;p`F#gh;hJfq5D%L6jnvW#9AS8J-qJFM!jD6_Y5|ElQi1kFEfK`{CI= z!(%tRAzxDfV(P^)J~4G}kO1+HK~k60egs_m-*;8tsq`ZM_QyUm3q<`jr$u@( zY*H|fRLo+aT!%@(xC_*bf8g1kS`aqjdk+)*AmKxxjSVQb+7sdndE4>O`Pykg-Gtli z1El54s`9ErXN`{oqN;)W$|wROr!gu%Am_fCgmUOKI; zR&cH?WuBZ3Vq}6Jj)cg61IvWGnwIGvMDjoY!ZWA<9|8!;8X$BsM2{dM(d zDr;WH=_52RoxKY0SJ-+I-Tg}^>IVzFMscftgPpiG&4~QsdOzdPs|W>3y<>9iTF%A& zE0LH-G4A?)feFrx2IbURklmVK6rTVxFb*d!>{ly7RfNUzXNCsWOQQKPh7Fbv28tn$ zk`>|R7D4J`KB^7V*5DL7bB6xbiUB%+28m3-uh21^QA&e1BqG{FGhHzj_2s-R-`b1kL^*&qpr+!7pVw_1{ir=Tmm3Uos5_+b`;( zLCWNC2{?4jaR@UL=>(9mbT#6*C2sE2kT+?gkY?nA3KphvFnn57V-`RiRut2&yLzMP zyREKgw}aurR#mmTEy+gfa^BrEC0c+)aK~RjNntij9@*eJHO8jvtPhj65C@R z4JrQi9T&wnXDxcv`#}Tgjl*v`jwYvJUxr%na7YZ%%4;1Cr|)Wr-AfZ#fYFJ&H|>hw z2a*7LWIvQK5S#@f2=t5r!H{5xa7V~!EQ~_Jfr^0ZB#a-|O<`I&UuR;9DZ3iPedECP zoM*1jg}~o~w)h5~Cd^?M&$fBLfk4k(p19wQ`;MINxfrR>zSN(=M2>4Wg4iEr!KeW{ zktDm{>iw-ob$ecZApINadXI?wH5a{daTqlWRUc<73DB`Byl~3s4T<|4`zaxb`#bzX4#g=5F&W z$NPF*d~QdO!Uvjva_G*Ur@*@q!oNu2>uW;+zd@Ay9|j+h;Y!*^mProNLQcnE6 zf-#~@+8N-*aIgm>u>e|J1KXj!LMyY_--!_l;B{eElzFgH=(fS25;9<+_#MF{%Dbot zN^Kkz#f@@M$3FPiq_nK|t5vyH%aDj0oqAfyMI4N88!yH^Zl0(x&8Xcub6)N|=<&!l zC_7jKWK>d3pAZpBt{dt~`KoW}!u48KCZd3Y3fkv@{iafFpO;l?aH_}yA7wG|A zjb7+bOz$kNVaj4$Q^t9>N+S+Zr0`ID<&kL}jWIfI0<`FoI+{+0?HPphrXXv4rwnDqQ-%vcCYW2X*Dj&e_mUaZ#Oovt`Q>!A)d`5xtRb zlvxhZP7j=lo?(a6L)&n3!8ILEeF85c8mSUrIQ-Ir*niVl*da?M-%L49bTH!~j^ar` zhpfb|;u1wlGAeWnVUz0@fiEf{$FG}0!LNV8(xaVN!k=&}Y;QyC>O z#Bi{UOW#>kT=myNmO{}r6|A}%5W<;rrcQ~DIeN!QPC438V^*rqi^ruczxE*7>KO8e zb_-?KkHqN#r;6sG2sa7-7y3=ICbvS<>^Oo@xq_pBBVI}vPaASw99~4XM;_$>9y>QE zpnGGTSv#6cOdu%R)jg5s7OF~-ozzW*wCr?{3ErJmAK<<@3Dg&ZpW<*-On}H>OOrI+ z8jvVx_ci4pT$M;<7BGP}6jZ}$9>U}EFe;~>S(0p|Ma%GDi%V5UDay^_k;7>o{^NH> zsGlRJ70LU~;pz?==2A#GE0TX66Qu4l#qa26bWvJQccb2X9==zvp%l&O(3b);)Siva18YXrY%5D>CXHaT-BUNHGqy z(5p8^=qrh&>Z-tafb^X{gZAOrtlekm2;WW!zw9s^g%G$vMH1k+ZAjVk7f57A8R3SC z3879q-BZ25%;0x;=1lZzDyPAxXt%p$H4%MGL;Uw$R#09>i36V*ZdeX|-b#iC_ne$F z4dFL+mYXwPXpj{)1IK((v}U6!PP%JI&7Oux&B`#oK`qu-Nzq_1ID46Yfx75)wz^{E z2xo?qDjq8zL^f=7W;<=W^-=ortjRBEX0@HRmYO z5GR&^J9&c7{EKgw#FqVHQhKT85#Fq%S!$}rh+n8qVr9>w1+vm|l+D?()8|Kw;*^Eh zj{MHLEQ)T(p+T&-wE-lusz-~djgUgm#t(KIt&t%g&6JrFb5vVA4#>Zzf&kYADqe4# zGEo6%+tN4YwXF(le?h&cp%jFC0x*gG{)gog`_YSO69;+TKQ@|(d(VQ;6@gU8I$d&U-#nZQk~!}Io{?zh;w{v$kYjyLw8+b>qaSc1vg9iGQ>0XU8DLR$LR>SSoR<&gP%9c`2>tTgXSU z>>)bzV?q(lvse7`(JK%2j@;!yu!AMO`2Ov*zdVq~jY2S6!lX7tL(-R~!a3%BXeX_4 z6i#176$`}zS)*5E+ZP{ZDGq1N9wNn9|7@o?%^1h1=FEuPv{BmaL|CVfC(J7n()av2 z2@y(3(#NP7lcxc6S_KMi1>$W*x^-e=&`!~M!Tbk&cIoGh;s$~GO-R0xPcko(0!;No zcenI0W3e5nSIzUi9uOQ{vKgEk_u?Z#P7YHQnC=dN74 zS&_~S-k5hS73J*1@mroSR(ozYY!wgKD^oN3avEFQP&)@#&fIDHx+tCTilYgPYqMp( z*BrA6QGP>F=)Czya0}wW8si+5Z1dXrtuC7L6QO4TZHL~jl|$!V==f3hrB9yQNdact z2bP(O@FVACzBjj|yCc{rTX);o$;;cd_;tRgNDa5_>MpKqnvJltbwaU&s-B;s%(HDs zEfX|m@|h#eGIRn#Nn8s98pFZ%;>)lzwt?JNP7!v0!3wGB?k4t^)&j|UmJ zie6D+&W{c~(|5e<7+#Bd2kTED{-J{ux{CU19l6?kl7Y?-s{k<9I3wmi+u4SEF>GmC zT!=d?6YPEJs5h|mixseP%PcdK`RSrm8O8TY));5RQx?;UCIWxlNPqj>2i=X=s@cWw z<)j2k;kiZt2PwOZZ-2-)gU=KS{+oAbLM(0>g+6|!_ zdCcsM(l+kf_+vY~e$syJd;7k-w{YCzCsHSZa0&{D=!IoF`QsUIH9~WXMs`>{NJWCN zcu35ubcMw|SuT-Ji0XT=xM%-T!$Stcq{(YGo;0g1d&tdrcuOYNDqvKZ2*adsn_yl_ z*eG#`CRgwGXW{#AbG)?CdCQ}f?~8`7H%dOLw5C{>99fp>FUX*zrrThEs-`olyZKi{ zZ7JRRK$IiJdr6c-NZ2Bq{UzibuH>CA=hkv8QMjD)9@%07gGcT&sN+P-MCUWOA?P2O zr^X*JM(avi;sI4f+<4_UfnU(=wLZT$EIMOlurSLV+U-&FD!;eQoPE4ZJ}#EsJjml? zM1?z_KI>|zVf}ii0(qyS@A-};|6SDmDdPA*b~I)Y z*EI!7$b8t3s!_xmP;&vO%W=EiRtpCF>qI@L5w8)3D+&OYNJXl2DX7*vs1yhSh@h6E zNpOoYQbtHZIzx-*$e_*^BtIGJ;_o3|3r{46Ymb`KmsK=dZN|MV`aP+L8pqpaR={gO zZ-jwaWoE5aT4*7a&Q0zWM#0NYXdsw57nbA{!yhKK5G#nAdTP4B6wFWw9wiXFI+xw< z>1jl<9RdY3;_fu4uq)}8s_z=qH5MyjMjCRZO}m}R+j{n_J7Ss&H7_{AqQcq8(i$2C zvFtR(G-=gh9>uI(*!osk1d&{!*fGlsP=0PFvMQ_$Dr7AsP$NhuBb-WNFGMfxA-bdW zPM9p5p{G<+m1q!QSNSYdfTdTNUsoRjD&GP1S*Ysig=(#&H9Cpv49>wik_(V3k1t!Idk8dTGlHAi#8huldloeUD|O zOsDVNUFp}^I+p#5o6Sd~dNTQ`Z?{No(~1?bJFemGc1^@Yapzl6e{}=oD@T&s;Bgz# zNUB*6{&cOg68rS1pWB88b_U}Yxr=Bdi~|Pj?1ojjUFuR~&XO9T_V)3C z_84l@N7MJ>h$82(t<*;$f5RDTL2)zNj?ZOo}+E)FE>lcJMPFJ7rzeQr=33A%!#Q z%|eF}2oB*Ihhc+OETw9po(hLi)(3M!El<$fnZrBaC)D3+-|NOMoct<#vC6kl@hv8o zB~6efN>t|=nMx%wHm8lJ)FR#W9KfGf5pGWLu9Z%3OzTh1bYF2>y{HaM^T+*l8~$mU z5WH;tEK~K#cc_d;5iC`BcG@#H$HJ~|pio`sZ9!bYIX7-0N<2i!HEOh5E9%DOh-8fbkS9EIx&gD18L7(mBmTN~P}0 zQpP#1W}lX5apP(u0*0z5CM_P6vFYZcqp0co5@Kg7zIYeIXlxK+?ky)1H+)Nsxs2u9 zQnaMDdV~3z$8DuGe|foHlWb?X+7CN9iyAuLIp!(cGB-^_lAvE4c&4v1-u)~J!D13I z#;08icxtF;?2N#zN+a*V?*#|=7Nx(O-$Ghq78g$S0|25%b2F^F#=s;J>!CIxv6s_#V6CEQCms9q^jVMP~A9NA9luBYyhcUKmX+cB~ zOQYcWHGZ3|``SNLOPvM%E6gUIF?)aNweN+cmI{)qLxZZ!m0&e+B#%bX2VOmo?RpiKtvfs}i(4t~C1R z-ra{X;PDUX5b!U{&_O4z zM!!is+4Jl&XdI&Z#$ z+p$aAeUGLOO8WNC%Wo}~r_mO3%t+gvWb>4eZ+FKo|+-fOu$nBY&g#cIpt|NO^nC(*R%27>Ty*&+|)~4 zJo7qki}LHHL75BZLV#Zw(l6{TxchVEO*_sep?kuZg)_&3hBQUtRhey8$TsL2;bjN( z=9m$Ec)mg@@L8qadoIqC#OR(8zayG0_C{vfLa@q}o+-9RzQl5NLyoq=Ci;s3{`yGO zg*5%^85PX=E5QLKH}nHQ#cWdC5#oQt`WUI?r0f?}yvKIC$Ii0{KNC@XuoeC(tMC)n zTVte)d#czqAWB<2?T)V4cJlX5fH#$Al6Op^1-(bTqEo>hu&o z1x*fS2N(tQvf#MO+t&ca}uY* zyyg+g)=zYib3n&%PSqU*o!-ctb^Ri_inzK8e+Q`!s4YU>M-4#F+j7Ie9n$109%^04 zFX%=qlpzU3diY-?bv91<7^p84p#A^I)TH?D=Dh#!ytsXgDEuG`s^q_=bt~sW7^ixI z;ICk0NyQw-5Z6#jOJITrXkO3j8wwSdTVX--%hVhD-%a}tE~s0BfsNe@8Un*D$PI`;ACPMwA3-E5I^I@9~IDf)(HOdO@VYoKPdUS zrR%Tj|2*9OZ;KQDyW#f#^I1t%*LTGDfhm}*?R#S(BPP8`ImAgqw}xzvAw&pI2Zab0 z?x)@wJru6Y{kXKX^e1(Ni(aEtGxZh4YcDXoO4TrGNj6qg;2Of~07gTw85xchO_uRx zo1fisM$q-|RNv>{LxyjQfF`GJG#I%3GfHRugS-b! zQ@cG}`POSt7|qnoaQ8ljm9h+osfH@leW(p>Bj6tMPa1%V?$|IJSo!ae#?#tJRdtK^ zD=CZb^PNXr8ksj+{aRYO2EA2-kxXIH;Bb!2h$~mL+?c46V2cbexhj4ucfHh{2kgE_ zOxVrsP%&c4r4ye}vs!YstyoxTTd91OKDJezshSo|@;SSk8%ul!pPHl8%xW?;*iLMJ zwq#E2c5fKjm^y9G(tIdchAykG#8)f3{io?T#b@i$n)5S~-jtbq9=b-^@cUj1$7?dZ ziB0neOAD|xmvYKW<1Z4fQm9*5!x*@r6I*W3r0imBTp=;Iga(`mXcD-bm!-f~<@MTG z!wIMz)@e<)N0=Db#z<{VR7ktKZQ5H1i}#`1;#zx}s_0YxUNl;QC;QUcFLAa#pF9et z{vGT`$uY6+M3sCf80mUy?3esK@0NLV?jpMT?E7=mnnIVoiRgj3@`g4k(LesI_Jmhy zx%zz;IE%eI^4l26?$yxHXeSh4v-V6)qBNUvN=8X69LTwrt@Iu_Fb^Q`@ZtH)-Wd7x zGvO($zTqD!ezBU9B1vD4$>dq0Bs*C-^W3VnI5tif=qp7{*7$Gqd6U(zd>k08c z)02>AF4poN?@LKYF)ul=&q?ugQrreAynK^e82+g(Dycc2053d_@1M5Q{KVUIZ-fq< zuT6MgGaN!KF1{ZV)tY;X~sq1NMJ@H|hSn4e7rEGyes#pk)2u zKYOw2Dvs!)sGrzYbjR8W*bFwdjktj;#LGAsG8hY1VnJ6=WH4_d}1 zw)?^HLhAcUY%@elxFQ>J4tT&QsP@c!bGP?c6HftHw!8xM}zUilg={BGa=z5B!1I`UlE1el|Cd=DyMW zAhPhpCB3~W4qI092z!IZptuk^4`>)s&^~qV)GdmyaHGekf4FG(z0;vulaLByV~y3B zXp*{afFp5;0;9WOk2br6beI^%0;;;@GX2WLKOPLxLP7S5$jyG|SV-K)M=>n+AId~R zcMEo^%1>rPS7E~3LO@0_NcbQU8{8df!?{E0N0oedl}oDHZF>dC&)qy;N!P;RiwAl5 zS~OZE?C^_BZhNG$-rJEcOrZ-4Ze0Q*QJo$Yij*?+L{{=tfn0K);Qj$Mv9Y}6C%EQ1 zuV~3V-h4bPhjg+&CFIO_l7DguJr&fp-YLc!p2ffb# z6tf$44XUoG5Qkir0$ti%a-pnBLZHGR?1~e^5TgUe$ceC1`Z|otLhFy`cj*5t#n7JL ze>uLgTU`JDvs?eQ6#sA4q2=v|`GECLv1yz!TXak|0u(`jZrt4M9Jq&tiUgNpg+3=i zHBT(Z1{a*2%flZHXnK;3)>@yJbLzx;FxdF5FoN)5oz)0f!WyQ!}9lup6^phVRopcg(xGq4?zurym zP#NQf15P{mO~fksD#z94SspE_^cxv$b8>YPpEVN7vxwtNo@eiGO8 zLln7-we2Y16u?-*lcIPxK%-2if80L)B8Z>rH}O;B+DSUxaM>%SNA9@Eh#J)pDBP2Q zaxl$BTh>LC8(_89rPv@h1|lL@mj-2yboy+{1A1RaB6=kQxyMmshoA>@+succ$4c<+ zElQNi{mfU6kE|$(mHbKLE$%Z|dpTDe+kS*$PRX)S+fm?C2O_fb#RdX~6aig9$u7U^ zvV5$t&4EX?KJ~pWt)`a;WR~Z^n@u%7_iVz}&J^%0Nu^VI3X8RBtduubuu5UW!0JC2 zi<0eVi~Q)p+3wX0O}w&EmY0tPKgYPHaO3N)l{AFweo-Q-zgyc!M*n+IBNZUa_kcv5#Aw`> zHZh9M4U-&j{v%a-8dsjhTQW+WtRVVR^o}NY9-lyVt>i3Gbi9@p4VC0XDa1kEVewDf znxS%&zbty2LbUVx3s3YyXBs3sOhn_K@B=)Gj2w3TD{CD}KEcFo13}_?-7dGvAdSzS zmu*{E=lr0SKhnyd$JVIA_}1)$pFEOwvhU z6;Wsi%)hpTYQ7U)E+{q}{*r*{4Vo71V>N{4#ufo+`34DxTmO-S5>FMCTJ7>+6=j^* zi%c{R_Z?PV+QSTAve2;Uj?}fGp=Tr{=YqN~!}{%YTB4?YzCA*tb1Xe|Bv$D0?b&H_ z1xAB#>6-78{x+P0aAb$$ok+=gEh?JxU0hi|2hOA(?_2>ew1~`IZn*kmPd7)bUO)^K zbroRK(0`@lXQ0&__T&0H(!Y@aj(08ezeobL{rQ1C<4xqi+D4(DZ($+5g#oc0XtS~} zQ5K6$=;CdTFavjZ60_X2&`X3^TRCIYzL07TQGl@CweLtJOLUnX&6gl9wxN-&FG_t? zzL+f5!Gyr4dbAI}f4e=k4E)h^Ia^ZkR7ATxHg$Ml4zi5+_myyMH@ErxWr1u3kD~2+ zCUupQXuadewSqsE_XIAS9$9I%PrO}Xf4Ua#a}X%ROHm}~{R7F8)d#==y_m1Le>1`N z6z5);pS_j4S#-MIN)w(@OH!A&R8z+NqYjOP7q7zEVX>a|9q}sV}i> zw{@C+vnMHPW=xU(JFKrMG4gA@2dw5=S%bb6cf9>Af>#$$-u9Dh~&CQOjf z!KF^k;Sr67e{_2MY@?}ElzK) zn_k$h%{w;5zu$vKJPnNe0#N9bfWzFoUHv>!LGi{%kWt;ebo+6YhsO$c;e9Fw7m(NU3tL=1Zh!deRoqO;UIfP<4k7^)Gr1$`yuJOA)ZXH zgb2%x2sM0J9Z`;U5IVo_Og@-R9r*Au=}iZuSk5I=tKSIk!nYVvtt`ww+}EV`Sl)0s z?uRbL*+wdbs4|}^6De_*3)ISapCLo0?m07#E@&$b;6H5CI^tp zwMkp#r(8f)^ zGTNYod@9j~Ta8hLERd&g9Z>|bv|-E`=Y&ndUL8W-!Gn8I8TUr%X&v_u1V&bOxbf>V zfbIyp)QVyz1_pjsFp2q&k%bV8ZYdIytjBl7g|X%|kVF&cYt%u|*1E((2kisc@DXDN zeq*pFb$`=7A4SDgAlQsB?J$@HI*QOaNbov{K{-fKIf!z46k&Ix4%Py~HctA94t^(R zHfG~F<8UGx$-#ewZaRMxhl|b0S1~+8{VRhNI$+8}Qrc4uQVY@Gr>b@rhMUXCTL+;)QC-a+##v97p3jpWCk=kRjIHiyjmj~p@_{}kWouU z8zGf;G1H!9Ke5&(2HsT#vXe_1$0O+PPJ+f9G}fueUDw42daW*;$oT`i9M-#CNHnqb zgTkb=PQIy!{dL1%0t`lYKw90LsblA;3<<-ldE?79)7fa80$U2=$PoF{mRKX`gWD5p z89URzOx%)rf{Z4)_X>U+DUWUW)87dHMqd-!2js!sftx;&o1+ZQ;_(cfa>t0vCjyu5 z(G>?L<&(A6cnnIngY9tZ?|Og&H>d>1#y0-3uP9BNeKU8+cSGXxB|t=hf8QG4sn&{z zDpO|D;Bv;J>}|69vmCHJnjruPAG-WOQE_M~7~q!s9ka5AG%VZUo@IfEacs!0tnqYJ zY`w<|9xS!#r2RjUc5GatML|fFn1yk`mfU%rgz<;6NGtU2fO^J3ZCR!+>2noqCFkM1OACaJH2RGTS*=?JLFq?1qQXl?0G&ms zH|Tx)f8qGm#nrad;lF*$!up>y)Bgw=_}~28|58k$iE?s45zNrpdn|%t`=7!()w@Ml ztR0$=wM>{r%sO38-1Z|JR5Kz;UDsNb2v9g*1ym_sZCmBqkT49sZi}SkBu*{CC`>RGV-z4YfL>G2TARcHn3o>_!j4+|WYCY%nrP z*u7r8dM;SNo=1PFr6C;_Eb}bx3iXlaR^Z7n$4r}_(ybTn!r2W;!4?XXC(-i$zzbn7 zf)1yy4ep}^aFto}Zz`t3O9A1bH@Uz(!$BLfZ(x+)=~hHXy&gn2HX92fCR0j-<-ia* zFc4nQw?NNf^s~5O-_lq0@;U`9rG>5())p+D98G1R(*bYdUj-|s1vqO7LAqkKqUce{ zu+UF={8!3K+HalO1-g-Z+TyP#5EoeMW*(3yAZ#X;9#$Q~;!18xgR-&9ch1C>m=pe_ z#R_cwqP%`Km*Tu1qLU_)2r8LFrBVhs{$T$R8D=ido|a$CMzb%W@qgC4T>q2a{VzZS z<$n#Qlq|H(ja~k?=J;wE(;`^K`ka}UW{-iHqH-z1wi_+0>~Cz$1;Bx0nxdie>fwvW zka=8yA(@E8m|2IwDQpaNcGWI+>$`jJ zMLKqiF%1HFTg;qy{K8S!TXKq&Nj6pmrbM;Gu`n7av6}(>q=KiTwUJzVW~wq)8*z}u zI2o;5*yvZc2{dZ4VuajIwKx4;)4nWbg)&If9{4qVW7 zdbF7iF|8?DaBy4lJ|=0Lm?!|{%Vz;K&%k)>~3sB^X3KFmV(k1UW@&@9TvOU(v{C? zfsXrp`o=4aUG&>r*F=7+{ZH3FA%y$gv4lCUDX`bH9>#v}ed-x+yXEWUG~L$axd~VC;`hUJ$I@6YE zORMPX>Ca33iv_B@T~x+gqn++d!7KDN4(!GygroG7bOn;tw91BpC)WoxoQLod9*poV zZX=AyNAPJsuzKN(eQKO*Bv*?eiQn^u7H)1W3jZ(Oz5=SMu4|X>?k)jI=?-b>7HK%Z z0S;Y<6r>xZL6J@g1q76m4(XBx6-7k4RRr!nsIT$A>i3QR-is~{W9VkhHP_5%&b62A zbv8+=#k<3f_nX9xRQy}s-9>&ZY`tCDJ4~dK+#M|=e0Q#1|GhY>pyyreJMW(8g||$K z(;H%x)+g7KM3f*O$?42zE=*CEEoe@;@osRL5NEOR%WG{iC1W%ww3JQF7tXb&*e0zd zKpU*AV=@On;qPgzt+|>j2{%re?agYBHR+8zynVE-iDGh7G^vP^?pb5(%F^>R`>2_j z6r=4TEp&cIhxAKt5$FvxoZNZdI45OCanfv!A|i|CpFdRS8(ihQ%<1CY)aQ^_7Cki2 zG}JRqczz0XTb-WKpxq-p=*G z**dmjk3CojwnD2#b&>|5@rKT=KU@g@ME(r@9)ma>cEaV{J~F#EmZizJ3zR&U;mNPX zY;;J^Zf+(WcqKB;K}lK7UYn%QFyTkC2I+I-VLmsDx*yR$n$}H+El@t{_Zb|V?#h`j zu*KG?-$QdJ($Lo*cT+=;W&tx~c ziuAEJ_t`mK$d4Z{#?;!h9N~1l#@`e?`aJ87xBXCrY^?u@nNs?08yf>pYDGX^EZ3ES zNn_^)IUSYLrJ^Lp~i_uLvHof;Y^hCn%mT>)`g-8@`F) z?&#;$1tV|B7Z%4NO2ncP4o*i9GgTUw-PrFhB764kCVj1nA75{E*lRL9;e=Os*LbPk zXog?sN)x{d{D}mogF{#t8*aSaLdJ#bbO#!kK(O~>TMUu01w@O$bX!;1gwNLfb42| zB|64UNp&E-``%6YH!Ihx>CA|^o=taM|JdlQ@>KfrdS`N~+*KuXvSqoe2QDi5=&1AO zaH%v(8i6!nG;d|Vwei;pO-l9xZ)OsFLg6{}F0-hN!Jw0R{Zw{HjPlbsiR?D$;pa%Q zPiQx=Ov)!;tcZEreinSXK*m`RHG~5 zE}op+J&`SZu=w6uqdmQ+RDf#yz2a1$vwqQCUsK^;xBckZMYaD%Hl9%#fc%=S4S0xZ(W7_8dx+L#5ou5u?@aJdy~U9%il7n>;FROOpkdmOMy zYb!cYxNiKc#({87_3A;$@vL8t|FEe|)}!OPfRkN~ErglS$GQi;Rk$Zb?~<1R3~QN3 zh=|JLwe&$bnWk%B9K!+Wva5(BeRr}pR-;yA9zzdJ+A?slV&ZZsQE#E}R(L$26V|1T z@StSv7)4j*V(uccM8c9Hl2nUHL`)vm9>x?tH^D167z-7Z`HC!zgC-V8F)1-p)R8Hm z>^^1NZ*uc`*DzRjGE6>My-=Ee*p^kD%^f>|fiZNn^TY{zpj-CHf{#Lg(El=d=j@Zb zh^E)oTF4I?uvfwG_N+Gx}~d0^bRXbMmDeRHXjR!QC5%PzLAmw(mS*HP6^J}6^_SN8y(e8c$|8) zyEb@-3lCU`%}8$QK4wt!zpM}ovbc=>UT%SLAtRU=^Y(PQ^4zNB6oGYC3A8oK0c<|j zE~e3KsmDPPqgsEci1!pZ2ImbPG1pG=8xb*gm8~;DM;q zrrm|%?%v9sq&xE1W*zAQ;&Bgcy~!%I#S6@zi(k#Nos4`pcI3?{V5k3VVJM;SWA2&N zLM_8AKSmmLjk-}adU-$!>4M?ISLMQ7-N@KxozviW8v&#$Jz2asiYcXP(`anl@hbc{ zw(N-=?3+5>kNL%Klj=5?zMB6KAD+Gw9G+e@6C*)ElenCJ?_H9i&{3(kd}sNS!dC*S zK-U)l8ue0AJm{C7E>wK2hP>3RAtgP#kQMQ1FMf9Ch2}s+bsbe4l9n=+L|=_6f^au8E**)#>&EKvFDk_h~95!a^Xm(^ciF0QbwT6 z^h_a<2qpS)TFpgklnd7fDm7U?=bW|MT543gMDdp9`SBg*Y7T`XeL(`HM>hPeExro- zC*U9&>zixi@$KQ@$0>tqVhElu#(5t!GJ+nZ9RUFA+tO00c^8?TdH4)B|^w>*|g`#Y7+vj{N+3ht39JjdiC9s{V ztSOk<=O8I4{_&6$WdC7E3abAD$cKQG5WLXL_g5pgFMUY8Ws$tc#m`P#p!N}|33*iQ zLyOGIT$Y#7f(|3WO)4&7RJ|eF9qU<&ojN*x&9ko5lJkj*1*Hmi9|T+Xa(*z%N*yMz zU}5NsCP|-UKfR)m_GW`^{%F>-YJAOWD8Es@vA%FMuY+CrB3jA217Eh% zbc7J(&XpnRGK5mt9ae{d=z$*04NE&QDON8 zFU4oO#cm-N)t<_o@_2da>FUe&leMLHMmaHMHW!Z0?!56iS*^S@CH^4%<>edY&z@7H zM5AhPB7C@qmM`rfrRgA-JQJE_!AC=EtVpHqTeo z)s$XxVoRjdAEY+G;U?#}lItWpK1{tO`b4#%BkUrQ-KQTaPDXAXC5|Az+2`5wNw|rV zFmn0XD&9wNRms~4BL#2v$v#d#TSea!QI+g`!zUxDk*JY;Gd^Kt;tij&~5t zrifrBLj1MhIOoo_Cu1MnS#*R)Kk%`fFy^g)NbgaP%Cb|U$h@DX&8c>YZY|F+O@Z^d zTiFVv9%)bUd3tz11C(fiHL9`Ol*9ELg%&h>lUygX67uJPBr!||!#4IVvZk*=0C z_bWhh%><*~PkmE6eorrLqTe~0!D!#)N!a!MINPEP=rZ_8w|q*>jVkTteuSr?5ncAS zggQPF+I_biYk*4l2hodY3agNJEgC7;Itm+K*DQ+w)l>3Yd z3?+r|=3H9XI1nk>urZJf152*1vxsb4`TO1+E_ccD3b1;(BSOkl->L%~Ogq^ANOn~! z>;vNaE?NWoTNah4cj}JlbNbDyWIv}$$r#g*h73`ya4CjerKFX4-g=Q;kG{#;+y(B6 zSi$*IJnAX3M7f{Jg_<$6}Ly+!-(PnZPUDYQ5LEidYo7EG)Z0T9%PK1aVPOTIaxBvI>Nj zvAa;~CdYK`pu2Cg-L2ma-f@4rKjiT6{Itgiu8dxH!}U_Eg3y+9G9|`Q<16V$F%=}N zhDEl?n7E4R{@QYdwl}KH%J7cX?~2PV!CHt`T-HAEU`9K1%afjAi6h z$+(o_^AO>9SwDz`M-3#M0&=hQ$w*-k;Z1a6e+;T7tcj{l zjN*Q03Bj7>#v9Ff`8jSBgr4b=tVc1|h`jsf*`0>uf@1EyZR+cbpfHfqQK77$h!V6^ zmLs-Gzk#JmsmcRBHf+4ZZ8hfZ7sXeup}(AhuffbaO|@*LeVfUOfSlC>S0fU?Nm@aN zwjPV^@&ohDp}2MRxf=HxitSR6f*91#>K?%eqf}*u!-|~SaaZzGq%EJ-Npza)!=$Lv z+yeF+9R%1BySd?U!uj-pxkQK*Q=pb`0*6seHhBpOe%r-jOqatTTrMio&+>H$L4uO34whCRlTN&N`%zcj?y7L=(h2V1((tS&X41PuV5_NI zx>^||VxnOow(+b)^V!8N`hyjqNyCCC#P*fRR=u)d9cRVLw&LX{f3<#`a5L|6 zP9B+QMUfVMT+K__r&hSLACsh5P4141xDX6&UCL48FAEOgX!9fPPc(mtQIpM($k{qz zPHHRPZk>cPZmv-v4owRNngVrdtWvnUU-Bx`d6SD*oe@w4ai-^@+}t3z_mD$wSDEVw zOE@z;QzAxO5E0ieUXQ(+iP|2qW)0T``E&ZKyJ3D10r&SEaLSSEo;AeTW^Vq@k!NvB z7R0$^`V}-OVnT&)Vck2biY1rLJ|T1bP(Mt9tZ+RmbNn@bHajTL5dMfwU|HZzRSb*y z!_JWh`AIENcz(138;+AT_NAAavRh(IHY7GcwE4*KUJAsc*H)wg*DC4=bv?k%<< zoe(8&xQl{L5IDjh`q?{8hduMs$?3t?zBqU9i2d`^yzJ|QQQ<|I;MaNan{?cTID}+F z2k+z|98d@NdzK!z+nyp>nzeU7Wljr_=zX&OMQ8&E?-cpvRYjSnQNaFZ3BCJ|6aQRX!FVXqMC1j(iL)u$Fvt&Hx7jFVU?r3mu zBsxusKtlS@7YXo_vzrZ%VtRNt#i${sz z(9qD}h<=%l`EQS^fuL@{HRn)wcWZNN^P^pCkogfd@NE|x8wX@=ZhrEj4Gta$3u{Cw zBQKuwS#(Iq7=2{`A}MOJEXfNJx{`YZ9z89?wIE07GJ44z=hFs2BSx6?jw4J`OFK0V}Be{(t^&gq8r}cWaJmq zSJLSw!Cn9kyXpP=^uKNcBk-^Pz71ceR|EMtdw75Wt^f>yam5pg1u}OFSDI(!+ue$ZR$>`S14B7h8=`simE?a%9ztYxLMHG5xeR{hdMHzr3V4Sh0 zQf^QJCf56jG~)ku%VcfcAnqQHpdXmy8IJ~I&Zi6Jh#H`%a&K^v7<~-AeLE5UV(JMp zrE9Pf4~#S4x$^7O|9Y|aPn+Uw`Qx5=dS1xL*J(c=;` z7y4iK{$IOAe-wIYCl8Pl@W&0}`Tte|{@wcj>wR?>^htX-fSf!amOt44Up4yo;`7hL z3LrOUn4SBoSvX#R_@H}TSbxn6%|1ClKW{()Ov?7K2|;^X+dDk4M?_T6Gx}j$oXB)5 zBE;n)@@IkG2I1xn;<8o7iS+spIPy`t%A>2`ci(rM2YRc$@{?+=cd0VIA*}y^3yVXD z6&RerUl5yxW|U{t)tiF{mU4SajRjM6o)dkJybu^eS!vkVx(CpGX%U5+r2RR#>; z)5K68aoObYJmMQ3-W1+*8yoZBP!t_j(hNi#+KbJ9Jw}f+3~c-rpnUp$^MB>f?@iA? z{E>xiz0Y^m|HdGcq~Z7gm<=j}*&uU(Nwk*((Zf#%^erT3W_hNYdbR+u^gxTY16-IJ z8ebYb5Td>x(b5L^kOqj!gID?)?4+8@&?xa9Uipk0IZgBw zwaXq8bpRR`vht~;%`F)i6To-`jD4AQw-{gy*a5$=-0p3l_qv^hRI{1@FWpkTUDd(^ zU_1pz9x$resuu18qX8I2VFGkZ&?X5fnoF{*`?ow%m=&dXQr&_?UgjcRa7}|<;^k|A zYf3+H?N^ogy_){RH61`_9Kb&EBN{9rAgZ=qo26>6qmneAYx#_~(j1>H)h@NH8BCN8 zoxK=JEG$Z-5)`3BMSb(~)rhb7Nnj5bvQ^H?_jo)|9E&GU5Y6vAOTZ*14m9ekSuk!`PFDsJ%vr)Mk0`BJJ9r#OS^aLOD7~=yraox@Oqmku!~GTwGR9$|Np^G z%7EP*p;jQK@vDjmu4FyCFMNWurAG;D@r892iTJx-Z8ag0 zDYmxghQa*N!mJEvhB$6JxYCOvNSxBL^0v}1scVg&-WH-dUg4AA66%*@-mAtV3`ssD z%|YksLC^~ppm|>7X4;H&$UJ>`MM-crOX65rb?e!Yj!%uhE@HHdKw(?>fS;}@@>}-D z+Hon=y71J3dE44*YgG_x!SeRE{4>ocMx*8`)?s!l==IhQv@0_QbTd&L20j!@WTd{KLQzSF9? zL3!S1o}r=zV_k8~aI2!NG1&us>p`1uGWQ6I<7&u_TE&F?{LU-{`EHHUr6vUQ-t~IAE!qpz`|1fW-xDYv>|n#DUC4u zaC375I2$ZTZVtKD4*T6d&;G02{s*&bgMIAnK%NkLrcuBKxl;A+($04W6~4K1wJyd@ z>&knP8CeJfjOxgXT3Z>0=r&d=F=E^WUXjuv$m{|a6;>CC%=ENxfY(&~-pNpDs%DL$p$Uzugf zR`Ab1(iJo&UD5T5cb7mnbdG1fY@0?qjBPw#0bYVkSf#Y6Qfj>}9dn+0qMYflU$6jw zcRNOqGI!|lI0-J(WRlV~&TE}4&*hBb#-|wP6hcXoY%}raJXHr8tABijEXW0HrU!Pjf(4Y;=AJk}RCf`@ zy5eA7Nb4yquK}d>)<PpLQ0WZ=O^{8eu5*($Zo+CVt)00|Z`&6cl6S;R zmxXyTVEnIqzqGHj8`zz5(q1uH3$ACkVB$)L1A5RH0wQ7z!lJzH+l(+zdV8PQDSZlj z`5=q-j<@wX+R|FDm^wQUpz;b~C<@`$$PJu3B#J2OA<^>hI?#$_jQnWkBfM50pEor7 zU2PWY#=uXvxvI%Pbb_HGchiIHR9k;Py|;U8ck3OljB(68(t(^a#W(9zTs)`X2FmyO zoooE2%O{jiJ!Y^_UU9N{l3}|pX}j}TohpgEmDT)cCg8C#!r)OgnxV`YB0DCk$A;n;oA4Df8mQ*TPT~%qrAcJ8fxnX-DF64f_Yi-I+JJO z`o@QAZY|U$192Ac-{G8IC(yZR>);2mkKRWdt#+y**{Y8{2tMvsuUk|du&$vcfp z>~CVPky6nWtqs+-lp>C8}OVN@En)D z{y`yk;;Crg8lUXyO}4&?Vb8p*O>MFHRL}Z#M~6d42eo$fcb-)kjg+bphKTN?r*KBs z0ymWcD+flVHf`2-A02+2UBaqrIe8Eq{0iTe+ZZ)2d}vfZV{?LIe$}8p%HYu$i>iq7 zWA2_ivC4?Gva5j@9(J}51(7zV<7MRy1!JaAX6v45-U;6$Co$&M@t zzH1OOKnq&~t6?6L^#mQ&D_~X=Ur0G%CSMmDbTp?(19w0o#sn|OYkLg3 zDU9WNJhr+oMc}sR(yh%m^3)-$Ldls+X`)@FGZQ54q z`(rBy=#4i&%Miz+nj<{a&i*>(S?5o&RAve$0+ptj0Q2UvAn0O~A9fL_QB=nY&DBX2g1tmo4 zLk<~h4P1}GPS1r-&*E^=ZRhYSpVSgMb8t)!)no)D>+L1$*Cp#SP3y%>>ruFjR7xot zX~(5-Lt-?qRiXM4S*>H#NMKe$QD=M+9sJ?zgYfHxE;(#7Bx|yaW5p?`j><7o-^F<3 z5B$Y>G!#A&maw)@6byLca=j_|?d-XT_EKf0?8=T|;GH#?--$YWc0F&`~L`ST{t4fJ4cGYpKC9G3Tp5Bg$ECXvPCg_KqBNsEXh zj8u{;ud4)43N2cYVr!o-V4HkK$BcQ#YBh*VpON8P=35$jN8Q9ts!yO7W z2t_=|f_ZJ$L^I6@MtyB0eB9eysn!GJGiAylRRXDRL6XGv55~ngGy@%p%#D!sg(Hs_ z&Vn`--#xYOCh#M0coEIS06&w6>`5gXQHbnGBHQZDx50qX^hSSK6r*WHpTQrk$%dOL z4(B%3QHnx@4eEvfvY%I*q;?e-SK5cCA@^xGw3Zo3Lw*lFep`vGEfi}1J%)EZ zLi+*YYaBrZLimS#I`a$+9erN{pzE@#H(?<%4Eg*X0R0-m{~jFrHnBX&-2?0{*b?3<=8VXuo*RNPkYvqaJ{8}C%_s3oK5jq zS%=rDoIk=DF_rX%4Dknq(&Z=dY^?^jMJWoX*}JaXy{u4k>4&;HDRZgTNX+SaoqfyLF3R<>PxY5IPsbQ0 zUkY;aCd)5sOwbHs<>o`?3XnD-7H9%#xf1Tx*{#LhS*@B}SDkWAMIcdzQEM?#E93@T5n%qfd4uN}(BjnjGgnN;hdid>XeXomZ2|;sf3JakX z7!&V5XIyC^-*Q{hu)i7P-p@>1*^t4`bz)nY1KGU1ThA-pE77#&)^RBE0IU1S-Y`d{ zS5gy}k1+jmdlsvmu+YeTVI0ZzssW7Y_G71$i$ruEsm5p*&_X!GA4TX_;|qgy{~fyj zCPFG+AUlu)7y?6Vzk&CMK(%5Q#|tQ^n45pRs9E?9BLa1l)?rl{Y1P+EC$)Z1L3KVY7_Ky3+q_aZfZ`S}Y$m8h_4 zhE31Y&Y++*bTq!H7_ojuB_7e{Ca8i!^s`qw_i-bSTP(37kNI99Mjp4yqV~C4sj|TB zkzJ&*ud$ef3;;^)|48lMHSh+=!2$9^r3c3gNRGat`@U*OUx=)hkqQ2qy=#lrO8!rv z{Z}?I0A&4n-=tk2Ab>;QFPRvQCpy5Ph@^Hpcsc+AK5PwwM+iI!M*%kN>Ot2;`04q1 zFCPs3Bs4hZwzcD(?iE6VK&pisTX4q4EIbb0Zo=(;&VCBFi!f{5r^q9MvhM~kQ!IS{ z9>B1oegm>ua*21mdtj#R=CVx6oHc8O7uWsn4NTl)K+BD%UVqt>PNGIrmg=HG7) z6z{!RU}<5Y`lY_G%nwm&ZH z?=qwSv4dQ!%X1&&TS~u=0ZZxezSInTKf-gjKe?5*(}PGrfQ2)XELzBzL1lV&3x2s} zdk}6{@@xcdkBVAcB2fHVi4D7y`0-m(y6hY9sFABLu(a36W;WoL!-RrX7&6rZy?5C) z0==Wu#OX{wg%Q)4T3=F(*UG<_nV6M`yewMmrV!w%AQ)M2(fMWkDl8=tSlrV;F7Wrc z(>KXdfI5M!p&pR$z8MGoNBu;`{Gy-x*Z$E@WE=l0f7j2y3ymho0R;VFUbKty_!qV| zsv}*51blv%7`wiP1c^j8 zzZ+{6XLmQy4^`3Kqc3RdS0C2{Q)0l!^~inoaRdahI9#3-a6Vt`$;XTbny|KopKH~> zlJWN~Qini)AmRvSPQLnC07KK5L0~33n!Xe9VeHDzDek(+y~cTdm;7{ z2Y!{%zgq}pXIm$C4`-+E=KTl_1^)`n?`(X7!9`TfgF&~Rg#`Q0&Ba26gm%{K_?|D0 z?;z~GC!X97Z1$ZmRiVqCCX}S6RzSJ%j4B?y8Oi`aFj?1DO};)oE*d zQk&8n-hG!DyL6qGOAy|OcrO}Xrf+Zi5;cPQVnVJ0^uTEPo(cU*&+kF%ZPySY+Q~|n zDkkX3$|gw5-j_{KkUbcWeR>||KHPFVf;;?CGCn-&j<-wSpq+p(sIbv?D3)jO7@=Hp z1$zG4%c4X^uBnS}%pdHs?@ySvH(&#HY2Hxo=c{hqqhA(-YAfqDxhXda9;6%?2W$Ch zryN)tr=ZbrpOSMUI&pVGxS54A#`rU;q1>-Y%{i*MnUWvsDHmI~DHp4VC|l>7-(%u_ zq{Zzn&mDu$Js{7`j?Z1rWj3<8$k7T5#Uk;noiO_GdBM$+TNi3*fWD_53*<;|{+J{E-AG77E$x9;4lB-a zB}GaQP-DHrXcwzjol7p^y@RJ67Ffz^${4a7ZloD{q`AZ3i{FLZY_%aj9`iE1CxksT z%A7TrnWT(CA=umklaql(x0D$k`85KD-M;wUPSUf_GE2uH4~<9B=NdneNKfzVu2j67 zU0^_yncvUd*^9cxMYD$|2zJi0lsPr zfvnHy2X&UnY{{iJ@~ucLvWE_IaxOs}w#yEZ3hNBSt#x0?3H19)u~Xyb_RFZJh^qss zx?PVgw)9>9*eQxaf3hO~xstld^3tPB9NpDM^5;-$1?Y+G>2xhT?GS!}|Iv83MJ<=< z+zzqhn@}SSW%!i!nW(!4FR4i|gcl_q=BHsinVt5TQ*z?X`<)y>Zv*<#3sP7HYd|$Yt+JjVZ$lnX!M$2^fFFOF)8z91=p*y zqnODP47HCZK)QONX?%-8{n!(G#{4=NY1{b*!w~tk52RY}l>*eGTkR#S)o!b+56%~zz#bp%;U9Warme>9VS zH&hBBdyuoW^A9F+_a}#Y`{9=)OI8esHK-A19{^e4*TS!i8D0)IF#XSso4;D>zq3de zWD7L3ey0H4_27GRB;fP8B;kPoNCO>hF|VNWYjEsI6Yv}c3jU0j{W|yGmwyf9XaNDc zT}%!H92bb;j|J~I0rOzj^AtE-5(x>EFRr{`#hCSfhCIJc{r6?7f$X4eKQR6X2C{tX zm-UrK{1R)8(=qqxpC6x4qN9HeC78&P`C+y8KePSsHcZjk$=Lzw@B^yy|1Qw^l{Aya{+&m3iO@hZw2Ome77=MhWUb-O>vciYV6lON&e%|M}Oa#zsI6Lk=oe|_6?AV z|IcC8-*-(D;$aDbxP3{XaA3LI(JnFp{6$~e;J5hHQ5=xkTUiZDr2hWQ5xoywQBb~i zSbFhS#B6af@2nmp{@*ckgITS76@ zdkFi@uwIzo&;56(U&a|~1A;htLL3}mxeD0)AE;lwU8)094(Uk*(4A6sdJzsw?4kgI zLR-(Nh}gIB84fTcq%9`A(sH3irn9fY67bwx)L1bSRx_Rz0E*THBMcQy{cYbpEr3YN zKN9+P4c7&^fxLd`rExumWi=0WPE+7^d5^accJ~4R*azbn=!OgkTwyy7TzUUAWQ79woC7{Zy?|E8 zr$H;sl6R4p)zT~BcC96o5O&`Ve1_X4kwhBcOotz+yor_sa2m$=X<@Kn8Nl@QKQbQ1 zpg%*QDiGKa2}jUZud=&)@ZEm=vvLTm60|-jLGk|l9N7{D_3AnbH8n~Ep$dnU71cXlrDpKs*c&O!W=P zKmMAN{=Ql(?PmFNFY~XD{ys_j`lu=(qCUX8jVye?PE2Dwz)PyA!gtq;=!C_T+LbiB z=o1-aQbNYnBJA#_X!CivxVYfmO<}BG2AWP^zRa!6mDQ34zAA$+zRoM2v*JpAsS=QF8IDPGO9W`8` z@jA8BW37T@&dDbOSk>D}tjHebP3EjC6pE6dlC;v}yHXVvFV=t1wMcTTeP zfz+^U+x zULsw|FFac9SfWmeNy-Q7u=}k99-lZwya1~2Er*gC&R1=gV-Y9RPhCcNq z%5~!d8p8ISW7H<3kY2~DMYS8wg|&9hQ^~r{&j~Lds=hZjFI@aJO61#Aw+VQNgEM@los1oa7_oc=nH`aL+K30u7S z2V>$6vLTKTe%$>xpn0DeCz`kW%Ob~5%})p#X(!F2WYIl!Lzq6(%qR(LY>-h8mxI!! z51MM)9)wg;;;Ss6m}`YI5x~z#gxp8>@UHF5UVgXZ5Yf^Fau(DVMLF@Xj55Y5Zm90k zAUaxQApFR2NH}zbx0+F9v3pNmUmitorJz2a39)>CjKHE3wL&SV&Pmg&`ZSn=JXFoH zde*$d=$UgG1xD*(`aUhpXue$*kpJIQ-=!VFZV<~a$JxG|N&7Wg`-2{Tdlm|I^KdrP zh5)CHz8}ECLcxcpV-Wx6@YMzYNa2aW;@U%p_v)CKJ-*$v@OmVJhk|)*dL*ic^@);F z(qDpXHPxY17?%0-nY3RG%IQNp=Uz&Rx=VF8!zR$%aa+1x%%eEi$KOnkWz9XqQxB;tlNH;o zuCtksj*pteI(T7uXG=KaI11e=r}MEF6Wx-RRu${Hy!4ibRWrI9`4<=~=F|eZ39t`l z4t{S6ejjaqXP-NeBY1!X#&{GFU=5XCzMx6GS|m0ie4sm=YMfw6cK$9K1qFjL69q*u zk<$(%92nwPYW^YAPyV?Uhx3`NDwa7Z&pjaPfQ__TIFd{gMPr=CnmQpto3vmU6Tf|J?lSh z(SI-DY5>Cd<6%(O16Uo>6N#6cjOa{=TdM8s{QUMdJWweusVwuVt}-tZ8(6gfx9fW) zLNOw}u2;ZyH9e~XMEkbbIXq0j_u&BnXMyYVN=x#Cy1bt`F{R;i6mm zIEqfUB#&LS5O*cv&Y{r5s6g*y&bH{&m!l3LtQk%f43&jv(kE$Ao2u>i@65D2tyFy{YFTm1~b%}wD zzLe4FVbt?sH2Nq8{D}sqn#vRwibTexC_5W1Mia$GkqJc?_Pn(7UVm>dnt;_dpKM&4 zbUb!4H@AHxSx0a%!5*yc2kD+6YS<)Rt<`Rv}Gx`bW_QcNl{%_naDkT+N9U+V%d`i))|4e z0%oY$2PbgXwXfTnDv+3yIRREj!FS2(#+O>#E03C6%{(Ksh%J zQl4@w$wC$|GgWEw4+bzZmBLSV+s>F1U9%!$dzlk=!=&fJE;Dze+14VN-BnWA(Z#N3 zNKSjXM((cE`*?Naw0nnIUN>0pue1! zp$(c~OG7KKG9W%0k?uLb;jM3z?jfME;&^s#(IEQvTn$+A{cx&+T&5odl9M#;q_hN^!75- z%)wls5{6o&^2kww3O0oDs8NDJn(*flpw&)p8|tM;t|(JoW2bf$X|`{x)*<>G;D|-u zc2VctP7}h4`M3bwIPO-;sY{@!C7c<$PJ&C+Ris$Oak-t8_=2LbIJELJGu#`Q$RrfO zr@B>L2Y4L$=25fK`nt@?2Rf4)(aFyWLs{QnVKM@-CReSf+p&{h29@8d4Xyoz>QIR> zuPMJ+q;_1IIBe_~d3&P!<$lRS)56Tw>=TT$i{_sUD_Oi10IH-x{*%G~eQy1a!3R0n zL!8W%fTLg@fYDd!)FcagmC3I?ChdYh7t9d+a+x4FWYn18JP{XNM4=z^Uy;v55k)})Pl|E zl&qtklD^6@NDUe9R51twO7u5K&X!)&e!6(qKpoOnq#|I{-uz_Pezo=tfa&}9%=X*< zr~+B-cQ6^<1!n7UTwwKLyo)v{Aewm*0P7_fak#OBXz>7M_x+Tq9%S6%d44K1TFq@) zVKd1KxA)%Qqqmf}`Vu-F4VN=++AU6+N;M|ep5Baet z77VBOazGwf)KwB#5nMx1$kYuunSY!9vqNA3XXGC;-mnI-AKkJ3^d*7Z_NZ z14;75`vYJUxE{K|^P03HMbd5{q*#3If`Kvl1}tQ>sUL6yit@(@p$6+tdr!IfEbrf% z^6BY_Z8$4RgpWLa*x9=f`z%Q7j5=YpZ7Kkz>ov<8#N7{5mGHYrWg|h}7V92T;!*XI zcp6Te`s#Up)R86idc7UNW3T+mP$Q3JRS^5WA|pZ@leWpgS{r}j_OFid_ps_W`H=&A zxH&^Sn8wv$C#+C+&P}U?SxD>9Ih{A9lyIXqeVW5Yxwlu^m_>wz^+h%e_Uc(tf!r=b zk(qQxBbb zbX19vS$cL4oaI#I-%GWq+Sx1esVG)hUDLOrDj|&-P<}5QH^ZI#6u5gJQQ*@|=G3&S zp{x0f)S7=?sCNIg9?IKUcFUNu4^yJ;b68WuidhY0s`}|FMA2RoXel2`X9$d`-)9|@ zxvv%sRh~}qWz^3>qKxfScwMzC?7)DN`RRTxzdLGXDlY5LGkE2FUI*#o*0&On84HT~ zr0|a|leb@d2zQKDNvX#ebv6p!B+~Q>m_`)iZjV12d)0*`hMD`K0pAlpFbvsY*$$WF zRdrOR#0)2HveW3RB^1BNyv_pbBchNNeUP)(ObKS@hv*I~Qo&uyAXar=>CF59nY3ip zK6NcGdM|>s^w5=)`<3RZ9nqg_(c3@6vmdu}>`$7MiWVtQ3|I15K@Ogn7<$FOJ+D}L zcu{;ZF}<3Y30Mk$z@q=?ENyxA+2O@47<)%n61Uw@XVg!1V#A@GrX6 zVEXkMkmq9!tIc_Mi@8Abx2Gqy&9?(HB+Y|;&WjkcIMdRwa6XabaB$wC>R%Q#FyQ%C zhN7N0)CK6U`CrPV0mvTe0rKD+S5qW{H7?tD3JDQm$!XtIVIYtY=VWM*TM=ibxp~R% z<}=xdJ_&D4G%b9GdYlzD4>ajrf>18H3Rwmgd{qxEA(p$;s?BJo!E~f@3(rF4&jJJ^ z&UdnKM_yeOKbF({Fh7TluUV;f4;TB@t;x8t(Dr6$G^_or3YnyVjmt)9|J1=cDlO&0}&05mBDIP~1VbvxcljmXPz+&V(92(J|6}a|s z>PlIgn^t-yjcyb;mrc($6*PB9YzSo^c_v&bsNS^Zl!~~~uI#0sWR)fm$jWbW#IjUn@rabnQfTZz~tNX>W+7l5i7Lyq_B7L*7eQhg|GPy1_D96lq6!v=W`Skv>5w5Bm+-bZI|1@M2&;YokW;aQRX z$>ARYIXo?px_`;xfn@$7hvyf0+}fjD_ zvI2MmHuvt#g2J%1P9T5z`J0c9^up@5}gAkXW zhn>Uk-t9OBmio%P;Q{cD2s1K$Cv9LD0z(fNrY!nSTEH+EqQ-N+K17A*Y@&u0`S`v9 z@RA5U?6mpoz_@{(CZ-DvJ>)d8>%h2yoYquZh0@jJ^cc0zvX&iuHZt6Xgw9;7eT5s9 z%J3pLY#!7)ehskh+E1+eHQ@NqL<#~__tcV2Y$wc#!jnDi#kdxV7v-dj_Hm(^I)%l^ z0h7HK~C9l4@x8H&nRlXei;0o;xriNz8VU~u2%o{fG$#sv6SF{Bj8A2#a zaI(#^Pev3D-Hfg^Ejnq6Pv0K7<-f1Wa~Ta~MW0u6yDn+L6mO$B=`5w#xyQ?l(bqVe z!FN2B(f3n<>cK)tfBLQUNQ{%Kge?ygRu0Arm&7LdDMndq?H))m7QMfRKs%Ruhxz@+ z?WB1^biC7>n#{*d9;u2(gwK`UsOV+MC3DN`5|(Utg#~ApN^V`U6JJoMS2Klc}ftW7g1neM_jTngAFgjMQ7>ve}ujbSG?`rns^@8~w==+Cq@QoX)|u zm+^xZBSG8?FR>P)xEG$03;SSYW?kuEwS>=i!QV1Q*pjh`e5Z}D6^-n%dBu3)bJjZr zc%=oNP9{U?V^x>q%hI?;E_2tC6M6^sg?BqL*93XWBvDi+k4Lt$=+mUpUB=@BxG-$HYuA(*&}yVL@CLa(d)c4=caGb;Rv?HXf1KpAh46dbBGDZt7NBl znf&DI{CGIcE+39@EW1L=_uV1Mb8o)Xcu&pcNpB27oIJJ9PckdS(FM5tIi&cNBJE?z zIFX8Ndm9S3=aAVCDs#6P$&XK~IT%z$Z{&fkOG5mU$G*5;DeLM9>N%iI^b;=P_5>zk zOq@h9@a`o_7aSh_o7aS%Ei-{SkJ(w2{8B2^ zM-E&Y?O#0f@7LzySVF_v(MS?%;_yp_*98S1LK2?s?1YAh7|?odiv18^xVovLYIF;W zN5B-5v-KtdQ+yi^m|_t6IzW9u0`ie#`P3A=y#Q^$y9R-+T9UNea)!~3CMh2$X z5pF&eR}{#`jKZClQ}y9O-RBT`y{(Y=7bmr-@HTS=JNFLUE1UD~xggZ`X5L0Vbhcn_Lfcv?7=de0_pdVcjY^{&)5&DvWNbR-6G7 zJdGt}j&ZknKduiG(1+YO*|P5vP@t5*q}!>sqR@IPNJ60z88;W6jGt~!gFMQ_l-rIQ zH@U0LVyEo8h}~9A-0-%jopz@4wgkNdb58R(5k;;XS+#nweVj>of#2{3uAS<1PL-oX zHX^>8)irgYux6FsvPx5z>jG^Ygv;(@X!R=18VLM%2}5!{?Py3tX12HlLvU~%CQL~v z)27Ro*w)67y$71b5GUH*QSy+=9yakR?Z%)V5bP2@y3d_icVi}K3R%w(e;hBnTGAAM zoG4ovZ5&sx2d5W5YeVu7nQ!>6$++1lnUm+&59Ef62K7=WuwtS`8EI}9*w|aY#2~+K z?!^v6+RWY&WQbsQjpQ`dLDE#&r?z(W%hi@Xak)$1BAxKBNX`h7NX*l8i_>M%%&Lnb zp)iN7Jr8vf*pi5ZASFCN%ToR-9cla_ybjge-Jd#hNb&0Rp^%xY^V9pQKG&x=k5Ukq z4nKM<51oB9BBpM3m_^6T-b_7#wLfM8I*?QTDFHO@a_|4PiCUSgyDO=SuYH#RKmwoGj{2%jehfx=m&Dd2tB|l4khq48G#5 zXp2s+uIRj9>@YQjz@B&g;V$x2@I2l8P8Fqm<@{P1qxIokx9eYrj~#}NJ*{O8stCmy z?^erKx~k0Ii-{jI>Gt%$&(d@y4?}bLxx?;Am`2t7fK{==W9vl*hD??x*6zysyVP~X zPtAFuR#MOX@5xdb> zm)qFvVJ!YGgb z`mJ-cRIxS;BmdpmXy)2A6KLdqKNpXQi`v&uAOz-VZV>4J3S33Lgw(S_uc@d9)N6N; zBbN&H4zSPVGwX+1%XNVdvHhciz1W8U)jDfS*T2Dq{?|^-ztF!0XVwuYy4YF43Sj31 zjDK{J7XIoa$-y{-BRYJIW&c-olCGQ;C5aYMlxo2~eEVfDemD6S?}d~V=!jc7{-b@= zr$|ue0U7I|C}InjK76y91J1l!s>L2vC5UNloQlVPRYbUcAH z!OeNs8|BJ%a=M@WcQnu(=trkc?q0dQ_eGd9W$C-qb|8^Ng07d+ATbI3uK)ix=a~L6w1Uh-wa1qc%l70 zw!gZ~t{X0Qr<+GX+1^7#`%3o?NzOl97QuihyxKP+A4aWdKtM8ivq5bQ(fyTDVRY(K<%5;94 zEM3=Z&(v}2op3%4w>_nAxEFqd@4I&Jof0fQNAASrmW@zYBZ<&Nlx8i{ zf4C8Y!J{a{rO6*X*h~)++!$+em27Vcfug2atZvY;72$A0vMCf(vA3v9kXZ4C_Jlvi z;S!yxJ|mgp-RN>&@M~YwJ$^C2+Ai)%9Z%zvc;nT3WowjWw>a%~B&Of31ljMm_L`2y zudlT>ikg5%67~pzozW#XY9+-osjCx1cxxVLZZt^3#DUr$O+Rc!JsKy9y|5NZco&a0ocD3j1#G1h0&B zxFVg90o2?7+zqUn!`wixTPhKrCZJHQ&lRt3wYCRNO4wKiCy|8*kS-g zkzK|PCH?jlDU_5Z7RX*M*T5A{$Ah}YwHU&(5*lh#H>@rsLq|3mb>d zdFGNI!qWo5S1SGE*Sa`UR55XOHgP=_`GduzJGk^H$k@m%$OObV$k@8P%fgkR1;NoM zA;BWFfOSMfu0=Dy5gbhJA5R@YGnyrBg-;`A*iDFW8H0u;3(LR3s`J3dr|qN9ccnQ_ z$50-p;4O4c%S(HMeCvzX`*kCrFJcOHMkH?CvM8P_`O+Yk6-J5JzybXzo};z>hIxjW zAQx49P5zp?m-eIBZtgYB+u2%CCgR*{x-_O<46Vanpw*=TgdMoWgJ#xE3VxzuIFbf zCk>|5Gm$-9cCrgfeLci!@0Z$PLI$sx^2Rs;OL4)pj1@(5XW41hKMuO=wCOLpU_78Q zVN0@y-%OBxGm)g3Ks=$WNRDB-XH>O-v5zTS@TGwsZ3|3%92=Ys_PN7&=^ zZI>lhIKHN-(NbRFPF!)7`Jv=fAffAh@?h}vV(}bKyX1oCvg(h~<;B}B>1gTb0z1q< zk?D6&8LMsx+)1fNQkO1W(mVNy`EXZ;A$vc5O1ua8lC(DvipCDwQ*IM$-#~k6$mH!j z_W3=t=U88d6$oH4%s-k9zhC)_-wepEn!3VhlRp&*K%hnNoVr!;Qab{;W>bG%GaV2? z)YX0DR8mT$BrxOa?bW-?kqQN!N$5+56NL79*KIVA;)@}+d%F;@?ent3F5HLOMhv;R z;utLI*+X6uyv>n^D0rLRHkhIN^-G}7wh166onLXDU6D zH&lg)6xJ9Eet%Acr}`ONPo%Bthy4Dn;y(HedpTb=wwb*C$L!!`BzawY{vUzV|`j1D0wQm0m61 z2J2@4cKE+v!;9lp5O-L)nt(sQEF(UEwUf4QBUfCybmM$`m%g4ZBO!~744Z2)hDu^0 z*BIr|7DBsl?KX0#dpvw^edjpfR^AdCGqz}5cAAj@{2|vcP}X*ALIO(*eew{$vd#Gr zDFY=$m(d>5uy2h+J)2KxT)SC_3Tc>Y1j4jUAF0!5N4)U{qC}C~O?g=?P0TFK;On0j zrmTt!BVx91oql%=^dW_lx zTC4Z1WpNiS=OOxya2%Y72Uycfv-@+TAX8#hA`VG*a>nbEE%V2lkV+fIzLUOLC2vUQ z8g)syO3t=2mJX{vQP?FTc?s*?EhPzSR9dnETG|e^ z2-1E@zI=X2>MMWdsann-i{H04)wX=73flE6a8nZt>19bJlqU+r9Oq-1PbdmLW7xeN zZcK^RrbMRaWsP-8o|SMlD>J+$sx-EX_%5i1Tx^JN279a?tFWU4%_2-VqLXH0@h}sC z>VRtDv$xA5yNp<#bOk!X0cSJL)|71)#W|--lsDKE2s9Q z7!;c3-5MESUe%#Zx@9C^y>;cLG-7p6chgsUdx%Y8{6~V}4Z3%?RpvMtC(|gc==R;Y zdi=D_`rUHkL%NrRr&Qb;NOYqa-*xtn4lmiz+7@0N;fSiW?c_jBsvJ=nr)*!$9Z+$j zg}7BF**l_kZlt}Z-`I~rKC=5-_GIlY;UwgdeLCNeKDD}KOpB!SxARE8Ra2Q8>Ncf5VD_f$?k3g9sLCidTNn@M4=p30G zSRedt9ug<0DT-&6)U_(;@S~)+e5xQy!tP#UwRIt5{`Tn%IFnykMri?Ta{n)d+uyC< z#TkQ~iJi5Di3k0t_gRg|-X^Tkhp6xN1mVL+k%`&UwT%UXWlsww@Ev62IHhCkHj1q1{wl^S=B=Vz=7s{C?V$Vc)NU#-^#S_HcWVHXrWX@-!zjkges9yF%{+Fn| z6=JdSyOrTCSc)R?HyR}~3sSo@dws|)EuN}6tMh+~5cA0yD(KxJ-qMd~eO6;mlS(!7 zD7HvAB=){Dg+`vu<vr=58&)PRD<2@^7+d0os>g6$;OqaI*JbC<nb6f{G zlZF7bLyhUcxd!R+ka>hd;s%97HEJ=S3UK?Mr= zMY`Ae)-i=C?Jk)1uhC+(+Ljr=Q#`Nk?mE zb65~d0aL10%#vYax~?}^kVzzsiY@De$G5Nf*;pCWU<#ElBf`*7yEV!d9j<|2-XV?m=zS!n2KkPN#kZ(UpN;pk39FH7(S2`sWGXy; zYTMo>3D-4t)?AOAO;Lyzr--I{AUwIYL_k&jc>^=OhaMSK_s~3n?~>Y&f_>Kff+uOt zv3sVH@t9hceOU(mng(9!_2%JILewATUx+Qn?~KLv*Nq%!4(p@2mJS`;a&?dgGb5WM zY7hl8ca%$LS@%9+2|t#OlO0gkR)4w^s7;tT*0|t|jsNuW2WRCs7)72j?$z|}>g!!b z1*G!&x)sQ~-5HJiRz4{9%^8h~gTVw0 zFkf6n8)VTg*yb4IMzVzUK%}ZiYAP(tlf@QV?z8_(`E*3T=kDGS&&8;BzDp~d55tcFLFO`e2X#u%}H(P z?rBF1epF~<2!umpzXZI$8`g_MB3VaAXLA4%^Hd)7kt2kuLMQK_v(mP-$|Gly5XeZr zP@dUv(FxU0BA0*olI$u2otW?E{y-=N1D$-8+|EPEYI#ZAZy|^$ov5u-HxM7voD^{J zMW;}Y)(yOQFm*-z{-(Em{o!njIcAiHhvTPOiB3AF_c=1F7^yWRH05}X_dY;8j-j;?n;{<8O&o%dw(qv-cBA;XuhhF|hm zX`WGh#x7vb#M_mROj|!NfLlEW^XXev7NBSoZ$b3uG&Iek+{sB1Jp&-{JCtpQJQEBb( zdf~2A`c?BvA6jIvs}9}Qd7U-RXq_DIFgi}hZsjL`wYVuZnx>bF*=85TrY4D`Qu3YU zo2qDwAh*HWPZYjM2%BZ+j+(lCUPfbx9$w+9cYz{}C>#hq9g^zt3jCfkvh&i0`R&8+ zIh8ve8ycB}1BSWwTCy?)lHXM@tfw=lW?4Bi9>CIuCwZ1J1K@rX{$fRc51lW*Bbp{K z!m_KKBYg}Iegu|up!&{>@MlcIi(KQg zCasGwpOjW7{p>bGs#zSK!$Dx0%w}Q#7#24>*((^S<%>S4zy9Tm@W7$ifUru$9Sx<& zM;skFLWbQ0W1fS#OkuK3d2GkQuA-mcOOb7$3rO36fZ492Vus(;_ReRMg01;fHETsh z32WImG|0J>;q%JtX58pwPA@Q4?s>tl+*#r*=rQ_c(X-%O@G^i+T_S$_PF_5fs)Vw( zy3cG2GfxZks2zQ^tuu(4H5D-wtaO+@T$>55OY3mE`w>a|EdoE<1MGWQjMXSb?xGsu z_3FJu`xKGVA}LKs#M?vrOsaDuBW6;$Dc>cjlRV;Ry+u2j9i6{M;A8}ZK44UIxi%T1 zzM&}F$?y?`%ph#GsQB7vk!a@-cyn8(;)=6b6JzJs7tj5pgL$hJD@iF9ws{lTrh+!0 z+F`w3gcN3lk4K>a5q2?;lPc!X^X+E*&7cN+lY0-$;&vxEicf}X@~H}Q^&czB)h9oD zp7ILOf!mUjyi1C*7iz|nRF7D=xW#>-@**a6GK94YbKOk&#aF(XD8oYfk*Q7*w~Br) zXRmd$nX9*MqwGb`U_{MWo4xZsGQ%bJeE8~qg;Qh%)qa$yuq;23<+}vS&lI0dsOOL- z+~{QXI3RO+kJcK~*GyyWT2=Y^1{9SJJ74wh5X{{(n-sbEDtXN^ZEb*>Gjpj~>mwtt zMxP+p7&lzr^Qw7*l@<6~YV76ULmk#s5k+`cH}@AZyS{juN{O34^dtIYFzz>yY;1`u1Y$ONH@QZ0rEW+YF3Ws4%Qz3D81}qqvCT=(_Dw~+m?R9tR74O1gYApvub;1Xf20H`J;#U znubLI2%!n(u-QAdO>mvXx@w5qmsWSBRQx@Huc}Ijj4-L-ZEEXctC=6wbD&WFgeD*g zry7`nSN8eiYhT>GmTT9{ro$E9}##6^Xjw?86meD3%W3P&N66q^ake6@^6PGk+Gh&Ub1@N zq;7$Cwfp6Lf45~9FSC>hAOk!6O@z$tOhEHo0Ze=!9>Ckvze#)h2O*mty?aae?AcEd zwD_?s=YJL?`TZ3xHm8z~CPq47V%y)khJRyK#s1X`V?FDIjfwx?)eB2+tN%!?d0Fh5 zU$4uzJqMt5YDkn5eFk{3XV*>a2RlUc$3oQ~rj`68d`be%784Ma!HDgk5Dhz9f0g;c z*+OXFMJ~VR$A*H^cY=+Drv`-Ec!478SgP7J?mHz0+D@RbUc0gUgp_)=D~=P=P>E$c zD_uwTg$(Kz#dzVcY z#~9aMP`K*-=p}&K{!taw~m+j_X8XH2-`KN(hJPaDUJODw|2K5Z-ArJkuq^+6^&zdqH?E@w zgu>yG0u1<>VkwN%@E*ux*!pbDa$PeiRMh+0+#6WPF?Ng&Y!?%Jd(R71c$mDMuSl?0 zvKlcD;kehkPFm^~hC*Zu3%lJWp_?$2*NLkOoF|SFB|9Vy(Et@S^vxK2wDWs|eS~&G z{e7f%LW2bO1wod^o1ijT4j0|MD8^S~~#Rf$5)@m+PFbWaLhz#5H~}-Dq;B zRU@Hn*)ItlxXdF$JWf+};5Tj45f;W+3*bGmU^Hd-&x27WHkLp@tg9wPLa)c#hGuh@k>~naJ(Qi-U0UeTGP%*r9Me?1o4>wcS)~ zHEvh+9AZTE99AX4$hJ|`|Nh_uh{#tIB8A5*sTpd}Q5I*oZow5txI!0R7UV*+^P~O- zUQd!Tm^P{e1Zf9pCW$kjo{U1D^8E8~P@E>gi zIIPHcrPVrs=^L#NH~(Us4SuWcvLK{kmb`45P8J2vapewJ;&>^r#O~^tp*5ZGY&9YnSLV$kFcueYJb(pkIvMxz;;51u8B=Eop01Ja*5C&e)x zFq)N-EGnQ@jSc~OQs(Le=lNK{5kh`>Oju%y@4H)${bireUD%bB54x1gjqO$CbZ0^*gsyiVlt*068s31j8{* ziWd^OEDxHvKa_4S2=K>}y200EU6Y~lIsG}x7|r9*4AiU0)=TVJ<&~(oR2YFwDD;tT z{30&P88m4^NcHbB!v`}pZ-g{YE)NRLl{$O$x{GaMZys83>nD@+EKu2$ANx6Vnq3oV zb`rSk5a|ANuS$FLacQbf&q?o9jb-s~d8^kLH+=-Y7MLcBM=~^u3|9$KF~n`)#N<84 zawYS+Wk@;mrp=(m;kq>TBd!@tBx@_Wa9%Gt@09F_+*z7Q!6_}42;Oy?^~E*&*J_q_Y%MR&_+KQXr)B`41|{K*~rFQ z>o(V^Y@v1e2!5Sx4B3YfkJbttB3Kvh-z#E|{+PlXc zL*F%{J|2D{6+4C4QeHDfod>4|##I0B+vNXxpaE3q%+ENxe~51f|GKdQ{}XG=MurTm z?X(avUa7ndeCS*KN~HGHXoQ~Kaoc7Z88L(K*fz-3E;Pc-*E?0%~avAhHgBN{lW(I{)}rG)?SIGyHS7 z3QWBa9W|=AA0ifRs&>j~={v`&Wda#clLtd7uDZUxZKTaeJIB&72iR++3`g$PDP{-}I#v2P3GE&!!_Nd^1 zl&L9T(PhbhT4S?}if!pB7XQwgbfoa=Kth1_?NPX$=hlA8wS|~a#UoL~GHl$4<~$J| zl%Th)OBMnx}8Bu*brsi6pbEB^af7--MJlGrtt9~y^>YXphTrCX`hH~yB0s*l) zQwd}p5;j-H`-bpa{Rb4j9;B_xkcMJmM!@*JBME7!KjioIz$E~OH$Q~a*MoC7&)36I z^&S{hLgcS~zY$C4dp6dy?M-a3SHU*m$9O&1$;;RV5Rut8Kz|t`AZOlKMz5!`g5Jr# zTM>f@5n10f7M!UCmr?i`YELagK%a;={zCu3&Z2P~DPMDgt-i6Q!wR^a4+h}u+N5a9 zmP`0cNDgoFUQz;j+09Sc#exlXqcD`A+G7zkcNo;X6QRHzeTt54Y;jYN>stw z4>8k3fS%BfW_2YdyHf-nZ{R&~CyH$LBz4?b9sHsH=T)l=xEY>Blma5-en=H*)LO0L$<^pT=+ z2qu@_%!x$AL;4{8G*7eel*0OHzu;K2Vi3Am6*f;w+MwN=p$HQ?@U?M5%W6SM2#&_< zZjtM1MQB?N5M#P=AjwpJGJ=h}Uw`ss>8NSR;zjR!O%dAL3|Lq;Qd=HLvmwkc`NlQd z6N|}BPE@n>MU_ShEvd6>Vrn%vE8gkEZ z*|*g`7?WyU#`N2WAsaM>AUEbIWDL_KU9mK~uNw0`CZubUP04|&dBHX6dcpBH8h3xo z0=7!`(~ZF(0Z!}yp(dtE`wYwk)7V|r!TuOFuk8^s?#lHWq?A>Q!@(Rsrc@ZGuUqv< z;cmQ1zg^I?in-2~%zViEQT0pMXUea(Eb`GR4u(31bOF=VO&I!ueSYI%_XjPWRuqh} zg!wnbjXgHscI(HSs^ymS6xP`)pU$$$(NmLGBY#t_UoLK%G)(-(Hf$cPu+uA5B9f@W z_ZE%P-l3^oULyqY_{g z+6U_BNwQ8$c*Sd66F+`-M}cYu5OE>xyIF(SDRK{9scg-Nw{Whx)xU5>ik zkuGSq9HUUr200PpZLahKDZhwBJiN_~SJ>3E0qq2Mo1Z@b(Wme#X6o5@gjXO9xIxBo zMw|iK$4rRDKfDohD$+8^!H-=IIdf6jHWIui`{i(u(dtLi6;UjWQo^-Dk;aZEsK6*IriGaLnPAeT8ZU<423q(kAh zKBdCn5uJ$Gl^n*rBQg?|^zof4}Zz!JLuc|yoSgyT?9HaK|CSo(qJBeiS6@r-Yz zx1j%b-U*dBNRxDZ0!W(4z zrV!@ugi_I!>U6ctkLft~93<)YEjmSl={W7PZcidQd|1>>Ra+JuAAAHCt=Jo9e6gXy46KX%DX9bH!j5|pMYDq~hB-m5;(etG@U z8`epTbdE8LxBFyT@0{=mjLIcm97btTc$Z1U9Yu4TS=7B5yErGXk-u8h-#7E$v8a-+ z<_?a|MiSP5*#vInPx^%$76L&(kU;pEF#css%qDy3%;`8vqL+$dHV*` z_;-8gY&GGoK$vdhdgm5S`a&M)w}52PLI@;_U4l;;eR~1a+8+LVM9oVi6aRm9hri#! ze?y%g?kC<^S)rkr*A8HjceQrfz}N0FVS`5m_hq(4U!+uHxWr z&fJZ>a#^fP87MzWKk^;t77XhpgxkWp?Z*b?eTuEobyfp#UajSE05|c^8OOil9F@%- z%pAR7TlweU1~$e62L0MBg+af)90Y4fsHEs?Jl_9r(^kIXWM|T1D6w|6{6LsLBK%=&-m#FuWgiwnTpTbwOGZ8Wbq54$Nw_qS22aaoDCXuI z_@ZulZunO00d3u^u;6ADfqM4!Ar19xwJHUK#U0cEKL5Q8hmR78B3qsfPn`zB9PGd4 zj+$`I&KKv7bQk6t;4Z3}c%6E}yW6m-nXu4Q+@EhR&ya}HFzB6#~Tiq~mcZMmoh@WP$ zTRW=Ed`S32)(=765p#n7a5i<#n~OZm=}jxS(*ptKRamUY;Led7H)3 z_5NWj=Mv5tJCu@3D=u6FO&`DSMHX9-eyfg@RZ_E$_bRABz?`2-QTF{=`Di&9Xm!aQtqHe!nGW!~JOoys^L@#&B z{+Zf$vx&4HD#XzysN8HCA<}KQT3bSETq5$WyvBJ#@y7YD8H;$(-An=v)ArR3DU53h zk;WR~_Y(bcEgxwO$WLIl$<)%V#kF7vu64Ff-!TVGX_ZCX#LlIZNtGuV(NuC*xt zurOA}CDYWk7SD5zDSwQy-d{Iewt?|XK;~V=F}EF)f`O_ULBbTM zr=E!{!=y7E?e|t_lgti(OO0M5Er*QGkoXQgbGqH1?(Vw~|4Ho0cywYpx=RZ|1^k(i zEV;VSK1pi|`6@sMZ0q^H>HbP&Go;c;A;CrAZcq*@t14yp-OI8XvgqkWtaS2qNeyi5 z$HCEEq#Yu>Qm(5O>BPjjf?^M5EV!*x^FLKTRgNCvNS9VV5K_N#PgqU!727DOqqxm$ z#c(g{o!e86xb`hlhpT>t`nXEU;8zkhmupg5oS}Yj_s~w?wD>(|`wt4E!O9~RBLuFh zi!zn+`5PtdZRra4h)QEe8zd`sG4_>onq>Q<};f+qF*i9?V?5a(Ysa~e_1W{BzaY@CA zI(1CisvPV*E6XK~+~pE3dgna^o1nOO%G{E>Z`6XB>>KOR<4yvqJEU2yTHVaO#YwD{ z`s%P686xKJ>~}Q!=ABpGZC!y?#$P_{w~qqn`zF$#tk%VVQ)O5^+!1aJC~_Z zfDxy`l;$P`Jd1*2;bVZD>@v|fg6AQW3Hi(|3u#cy2d&3d92V-?5>3F5_BjOg{%nAY zT-r0P)n#mfZjR_d8dMoUI<08{h`pk?pmp#@LPR#t9k6@7F%sYGa=@SCBQXI!(hFf; zz7e^n%RLu{k8Fmnr2Y*bS%wJkk?;T?iSWH;=oKQ{60a?5<_}^<=7q|a_kkA=K!{tBfKK|DePA+yV8s?Uu^>`Ys>|ujJeK2p= z4|v%Emv6lEMWaseYgs!7QE!0U?`6~arWqM6?RZ__6L+OYdMg@~M39C6id&F|Y)LAB zdff#(SLx3PX$S}95nbdKs6c5U=s6)bLvc$vK(p{^Dcsim*X6z*4@`x@K;hSb$XJ>- zMntDOK!zDzyc7Z7gU&AwzjY&-2O`q-3G|7pKO=|cXYjvi53QYLAhN=jYP2UplpDO; zK@~~xmKcXRZK+0_I?a(zkK>C05U(H~f}5AVkKEG%@QBf7klAOdr$D)O7*G!VCs1w= z=%W4?K)EwG7X=K?Rc2rz=xfODJ_L{F7$=%o(+@CmU9(^)^G~_cQBSf77^Lm_FPr~+ z3UIML(ML9i_}xB&8St0SYo*wu|mAOyiAur z$V;^$W3x-3Nv9&Qt1IG3;7hC!%o50HRiXJ|V5i+M-anBRXx#LPKWt3Cld7bXpWRy` zL!-`M`}EUSe`gKmu}LOVw(0(glQ(gNUSvy@UdD8!3l&sPDR7{9s;|FPRM@CE$v@zu zO3|=*mQ3x=x)U!+Tq&ugxF}o{$IUh=l%>zwHf{i46cL}!V&29pEE`vDV!&@#kIqw( ztW~c(k#;QgLL4%eb$Pi=>OuUbd2K&_#1*uu1M?gVI8uylFLuG>%vj_IR+`^t>6uHYiWSGC6 zC4jS9+;-q@Rq|!rH~?iP@KRBW4EBUxSatXoras+P)%0T2^tb%yE>FI?yWL;sgjux9 zJ$bhJV6%?@!wu5_+Gn01S#vXo(hrNmW+0=y|EPM24@m-vg^q><2l?*Z&~9%H@>ZJe z`yr8PA;Bo9K`5m+hy;17kl3Y}Wz3`%2k+d7tP6ZgZN*H3Mib%RFmz|%yT0v>kLPu# z*(V<@T$Ps6wy&kS>rp!3M%*RO7JHpoLt=SiRIQ_^YHC&Sp<6$Mdil=rfMI?{1hOHg zO|*U>BA+}-{Twq_p?m8mqOTfry)SICb|*d8$@HLp6MNCviMNrh95igeT8xs zyIKr`l2(GdQNynV>@@3gs?24w?a`}E_td7sTZS1XOfV=_l*%fJ4pJ#hNagk7O$l}7 zC$QfzU>uei;4_d8ez+YdN;LRk2-&;8?Y3cAjmR2ppz^&%V+FkAZ+$H`65P*A)WjXo zBDaDuT$hyL^_jl4{w<4TAz_B$75u_PSbx+lxjldflqu})tp|Y=1-#ICL zm3d0s{qWh2`kzG+|9x|;2sN<-8Jx9^EilLDKI=ahnETx{{0qJlXfv8aq2{nM`T2XC z`%cMo(Gkq1e~6A;W*7qqB@>rK4rh=Xx)g!R%|-^O+z535$VQD3sN4vl$9p^A#(TR0 z{SmPUN* zc-o`0>Jqj~UIy@vj2tlmp1kX`*#1U$lpU|NJNINaDx2&q1XHW3|#JpWk}& zo@XPyw`s8{iL5ff|2rWj4+8)W0WeXX0A^@@%_rng%PJH$OSkVxp_VTgklQQk*Wl*` z4c*|kraAl;8#pN8w|;;R{@`il@L$XV&pddd!83f{%Gcv2X*1MwP8ZJetZ1%UqDTmv zOECJ!Z+WqMl{0YzGEJxSMbLd5sP5$DA^Q;2iG_)cPaI&1Rlc8^&B=zD3(3W7q9(`h zb){7@98|fAZ^(8)-TegJ_3|~Yta65c(LVe;3(|K;gOIs31JO`~_D?o%HKbf=TJk&| zxb5~d)+em+`<>)FHWeSO`YtbV7cf2k8X4_F^V!8IErg)<1Ayg}@`xzmH?j)l6v?;` z=B8_4Z+tf0qN3Z{$CgB46h%fcr%rTsg1S|9qu9Rv#cil}Qf zp|Pa3aqW_gps>+cUnVFB`+n4Rk)mp^MN|x-)KOFOn>Ux-U z#}n_5wHXRM9yZ(`bWIrE#U7bq%dO{ATB;hHNm{T#BoW%DbKhFvK1xg9kl+yTUe5Qv z74D7y3cb#f?_*T*U&Neb~~$$r))P5-J_8wF2g6t->M5k7NAKD@uBL3+qJYiZYf(L=opLsGD!zh(aykKj3rj_*%+8lL! zDP|}f5P70IXBaL`_@ckAtGh_#X^fR>1So2^;Z|O{#DxZzgp;7Me(l;Fx0f4{z@-V9 zBLctn0H6?m@oRkmf_UoJcHw}EmM+SI4TiXeBbdNJowY&dj?N;<0D z530`5J$%EyM}AX&mRa!gjCW*=+@>(227l?%{j|2GrFTnvBSA*r7#Mh3^PhZBvJ5m* zt!a{^Yv9{D!5R=wpT~cF{K%)UC^cwuN=Ipz_>-HgdiV=Co5HC8eST}!IQ!8e`559U znUB~nZsx7?ZWlCiuQ%sXPHh%|nu;A~hRWqB>r@@66{)NK3-O4$3ahtQ3C;DYlJVB} z+%LOc$q}vEPvl4)fXd;wOdp%7&1JHp+?JfsJLr?d0bLLz z25)CQ$vtT+L_xNzsBKl5Z0sqm1W-CfO$|L7!G_zTqmRwL6$f^^vlak30gkOxl*s;q zZ5rAd{ z(Q&xYi81h9!6&|BnPi`6W}E!97x{z#3(`kcq#V4r^kl@f?5a$|r5T)ucH3m-t{;d9 zllFOTukO6s+@Z^txyGDlzl&oY|7>niO{wBr5fi&tIQPyCm!lWq;tDy89>WXYz^ z0=n<8`no2y+QL;Jxol6u72YLulEhVuKMfM%y@fF5@qt%M(~EMntA`@9|K11jfyX`} z3Tt~1dfgbG<#r`@z6v;-X_;M5#C)ZLIf%0Mo%;CCi?JyyOe~oBUR34yC*G_%)&RLH7%MLtY&sA5c+UrC|El%Se#$(9*MF z$wb97Dch0h5f)7vt)kmjMby;|#h}jD^Kx_yO5n-=oJ_uGo+L3FEf9Uw8+oJ>^BHp} znm4E1@M-CtfRq@7m~q=gX42J{nj9rEgwWc@%usD{A6uPylG^GpyCd<6Zj`kc?FXOV zjrt1b>iez1w6!!O=G+)3`%5~h_g$P0XNiHf)-*G2?1=lz)HN$guc$ZgI#tGomK zbrtgr>1<2r>xmXpQ{5^ysO#dzgeQ05CLVW&ZyOU50%u_n4#Zm?QK` zbWzkia`CHCHh}UIkC&*g5ymk3{VH!ky#7$2{vN*dn7K~Hw)!_L{u=YN$&B86IWjd- z{&Op*;ugJgIF}89&u;#s&%XG$DueN~W-teI-g1XU_khAG$Hj$q-W)1D25p9wmB&qh zx(bzx9D_+6${8Jjfg&zNfUrLFp)LUQYgdU7fwJIz^w9lfI=zirQN4{Zz#~2r6htqZ z-X8_Zg6;!=UOaafXx@FM1fqgz2=mvT##VAw@KpF3c4_tRrc*B1MVg-SVCol2NuB^J z*!+tn{2$y$6HkB=`J1=LMuA}p{^sq+VFML_w^xR1kA(vcw!VoDHf+r7titB+9vcPo z_ELX*4_ffIf2Oeki+nn0=R7R>+o;^g^EpvXqp&gMss`E`cg#EV+~c3Ly$&nfps_^) zlSF$#I@P5OzcBVDbq;Vg8Pg^a=5q~e5x^u-eK1Kz0HDo-*2N(W6^zDl#QSc(9!pYE zp#HUDTuWg{&9mxwyAd8ZD!84~CN{r0XwnT|HuFBJPcqgN6Osqa*4=sPG%3OzEWFZn z(N4FJel4!jO-%6NVL!FcSvsN=g;E9^k@lEfz|MeC7mrbRcwX04-opmGHCNJ`0BWq;F%FwLBnF#0MC#((aL`^UM16Zo`wAXs zr5j>sf;%f}JL?(~+*Ws*zqZaaz@PVrq`_}-*!V6wxPUprO`hxkUEm1+Nfg#Uv}3_N zUyhrw&oKkD+mVaDmp z$J(WjqNS06ynH3-^1Ieq(z|^&lA-99vOmP{zG062Mn69k{^IIQH)Ku2^^X<8R@MCh z(8g@)VxB=dpR1<4@%}Wln$ZjQKn((>+2mlhsig*u7tYfnhxH^UUw<$C346}ecbRxop%g74EqjW zDqWO({(Za5%2MUQ?^h2wR@dtF&DY)j4|8uFRpr|53rlyGl7e(2A>AMyl7h6vB&8F+_`wf0(`cQ4NQ_TFclKW>;~IEGH2=eqCvieLD1 z@1qTVX}8!t2-V24J*Io(h)^i@l)JNehpycxxm}MdI_is5hm7W%s<%%*nNL|RK5?r# zHZb2kN#ZR=@soFaYNazLX{9E}YBexKLrSB#f3)tUcpH&7FB|?GkXJ zd6_@ve9}@$$HN`9P#H3a?&qwn5;&olml~Ovuo4wISn6rq*0Vr^G!q>XAI%whn4O@6 zt7V`_fk`S8_ml?u@ld?xDdA2?d!)zCSLO}{;3sv5s59iPJj@MS`*4+h>uJhPCoqUL zQKq^#F>NJg@io3Gh8Y;dHbeH9D;}u;gIIK1PT5E8p)8z=n0%x;3$rj_5Q`Tmm@kpv zJ2;9g#9LW&_OC&#LH|;=5AZtwK8XE&$KBqD(!B8qu>J4Y?Z1c9?KQFXjqi}_O*47I z;YI`w`RlyJJ!GWT5|~9uZ~(^^EGm5T_;Qwt@nHo|aboboZipI3utoShR{jgiBgsg~ zNT&vL6CwP(Skq5Y<1LKfDEtU`BSJY9SX2}BSmXX`%MZs7qPJf_DI(1JPd~m{q<|oKc9}GU(c>;PY4(`@${6uT#)+s6eW;{*s z81eb5>5mItV(90UhvDFzHQZu?V+oZ?0|+;9#e?rL8n2O>?gk!BAC&Xf5=?LS^=&Hb z;1&Cd?dT1C0F9zV$(nSE!iE`@PCE85+k3iPRZg;(+g@smFdp{uTZ zFTOT>U9$hBA|y_zU6$-Iti&QX8u0mgWsPO8IFGrfVi@!~C-a`J5At+u0I!Ad`8Y(J z6#NO}Bwq>yTZTW$Plo4^=*55}AQ=X#q(f@xcbd_*`AkGSbR8&(*$?q2Uxyj60l$pa z=@?Brk?jlvP5EqLp$pZzP}3Al=H})~tfHy{g6!na0#PHM1SXfzh38nwJ47^visu#3p=w%vjX~YHYWq@j z((>WEmqYRqCs!k`*%Kb}7%uf0S9;kmga^J4`6h;|u0L2lS8$Xuk@cy>(?ndYecwF3 zo>ix*HNL)^p2KV%RVQ2fTvek|*G;pWn01X(y;2{7<@VBgBB^v7TgeT(q#E0{H((cR zeEN}3s|tbTo|vZBgO}Dz{uBcOWvi?^nxUCmh9x5ikimh6Q(AYx2B8bzkf(g^9lu}I zTu0kc51OUt6SjdgMqoKm!@RJL@dACOjduy{SIW_yGgqY3uD0^+u3jPD+qW45 zi^lq6)fr16=?#XZL&k&`5UCtG=)XbwdF(bcNT70R+@^1hV!uYVDz$xeJElA&xtT^0 zMW_TT14q~PKi)>Ss}vi-{v=g*`L4fRg^(4WoplRuj2ui$<*)7hy2-J&HQ zT#E{fnN%x_o}E~>4`wDkpJPuJ?sT!7y+K$>@&U-5T0Z)KEus&?ATO|LeUJuSfpr8d z<+77I2StM}06Ta~#oztVoF8BZyBasFjT<*;De{Up9|0ef6}A1{=L_FEH6{D69Sd3b zyN3}6t;Gm6-#JiWLmtd@yEAAY*bTR0P>(XWAUJ!IA*1vQD73&e45_ygd{zN?!1r~8 z%G?4!Zrp06RE-+lrJe_G;Oi99c=c zIsF-txS`L-Q#Rn|N-7(WBPX!{c5szQK#qKf0ocJ^A#|~L!D~NtbU+Dr6XgM_j1ufW zoH?fehNBM#=YB38EYVT}Aop<$OVrJ@rK9n!j-~HDD7bHjx z6LAOhedfQ)jOOfPn;StQp?`dSw_m9$0OrHq>MyNm$3qMNNe4c}0KBjN)F1NWN4Zfv zt7GQv?g=g3W8J?eMAp+7RRJipYmHIeUsPr%yZ=^n&l@RLC)>RUzDu#`Awt(+#VNwd z+QLV;6{5O*IH1Vz2a1exfFv2F0FWf70K9>qgvInyvmgpkWMBhD1|m>oC?Nh(Wc;kT z76DA?R<{IDWUSx)cQqIG#K^}x2NnuJ&vrTYG5eIlLQ?P7^EV4&ultxH&Tf3&%|yD< z9U2p{A|49LWo-)-`9NrP;9$HpY=8?c5DjdzTOx%viu!%!0cv7cPn3 z9yTsQ*dzla6F5kL1m3Vv>Frjdldl`C=Q}W;wigVE%8@MIRSTjjbC2hrJ_~V_o+Fas zvX(br<<=+{`F{AKXP&q-z(4+-D46c<3tE?kNEhx)gi@jJ6DqO^ODe9igM~ir{)7C} zV}TqWn)YF0Tr^xCja~TmB*!1@$2EGZ#x@eD#(8=}=h3L13@JwSf)EVn7Wjw1kM5mJ zglb)N=2!U^;FZ#dC|=7bV6Y_=DF<84s?TYLA6q2yQOIzuc4Ev`#F+Lx&Q#5u0cG<} zLwV*NMc3tw5r@IRo5;KM{l0_iLIv^i`rPSp159(Ck;fcJ1eWOZ=_n>El)?RVN8i2lQm})_Pnt?L_U8Zdk zv;U0$0C~6Jm0|(b91E4*3Z2mBW@stqdCSpw5jQkdo1IHY<-EWt;(~uSN}=Z4&Q}8~ z3=i-RI%uKCTsE$qM^+u_8orG)G;)M)dc%sBqDW9@Oto^xxU4C7Zwnkft(Lb-E~!5S z2)CM3^cjowKE|4!heP8s}e%0+k zDPwB{NDF{Xo&(j-|2ku`{bR;tgMTw)>ehM91Xwo+xD0xxq;d*=4{3utpdZWt?u`&Y z)biJ9!wFrBkOX#%DzN@b*jRJ>pKuIyK%xE)@~4{NCz$B8m@aGKoZlsuX{d8|Gw`Vf zWD=R=!oToIs!7XfIJy16ohS0dl?bQFRKT^9G6JBqM&m7gdx7H8-C^+UXrepVcr#Z^ zBIL*Wt1nKjKQgRDzHm2$qCbve@N=JYp+@2fn?_+`@49+~cVDmIM+nT-6{Mnpe>?yQp@Cs; z6WH}u*B_zzY;zIWiW&CftW>Z0=L^=nInBi+#I(MIl&E`tyn&J*-^DxG+ku*wOk|IBu+Jo-HdNnJYKZ<@JP32&)KxNp?rWxFuuGe@ZWJ&o}|O0e1&iNbP0*_nQ9 zbd8ig;|2D)?>VS>auRrtOpIBCbPt8MmsMLYd3f5WXlXoXbqcogK5q$|QN@+`kayxW z_^*nD*xpjcL_zjbmrqLS|-kdJAdQT+gF=XyJ z)|4tXL~i(9uzXLPqJ#jnoqtZ`6-N>b(RchH@=-=biv-937~qTfla2l z-N~m*fZ}oNf&-He#`oy0%*uirIb_wJ#z~40+H0zeW-&wML$o!mxY2h*dKl8DIH3oE zaLQ5g*K zin;6ibH(3EM2bC@TH$xa15Wyr@V8zBoP@A2s8J*_ZoQKcG9S(#(Ssfm?>eP|3zeGm ziVRpLJg@g;kJ^eCN>p=@w>>7+GWnk2unOWrl3&_i2N^8hJM^ zJH2lcYAHJRnP7x-H-GrEz>*?|9iM8tMnhr!Dio<*nKgQ15iPB@>z*hhR5dDNIZE=p zPVStt=#q8J*XCoFb%gfJyNFsOy$8q|nJg))M_tC&gXk7IkBo|I*(d5OI4iddigx>q z3ARRzpa!71Me3n9dwwwyFtEz|#aeRW&3ykP;tdh;kVep099R67~{3T?0ftL=?u>WfJ9>@*(=V;X9IkGUvGhHeVHU z`?M1Ttqr3t32T0~3v<~Pc16Dqh#zAkKpqJ3IpX_g&Q?YAA@9VuC!$)svw+M4KkM5m zIgCH>!3L3b%m~we2#1wEpj20~5VI^M%8Q}P*l6CFJGsNr)IKX`?p?1|h|~FS(fDbr z9rFYk>jxd_q-%7R?;Q#j-!;v>9&$wUmn(8vegDB%TT_~L?R91Hi*`W#wx+NhIQicH zmN?P+Zm*P`-@b}-ENWtb33|m2S$V&GlTiih&~_>L^AM}@Ssh0nDq zcaop)omZi>9k%;BEau4tAGYPLFWsA`E`2W0vMg;p5)_7f8yW?S(PtT5vT)G(`zP>WS+*z*kH zj-nMPC0}K`1+N~Cvke3ZtL|!sYw9MzGa}2}m7J{kwQ@SepoNJ8 z)ckM25tbYR>WsMZqe)U-5R9Ns3F!(EhE5Du>Xty6moQrRmamf3)|SD2BMo2j$Rq;2 zQ&E@s4rIgMhu>dN-eEuc%(QRl}Ru2D~`pN36~Y0fI-#jws*AtfvlDoqy{SF|W9C?x=4V=v)ZeX68G&%r_kUAt$B|G{rykH5sgRFW~M_35$%n zr71KNK`-GFW6E3Hrq-;aP7I1cyt|SpZJ>8uGLWx&ZjC@GCZ@CR(y{^Y|CD|uXG|2y z`4j)$5hH2tYHMP3V^L1vc;}`HW+z0aMR(amRsWv*iJ!G=ZofD;XGB_Ag0>(-S`8-v zUA<{p%9i2BeL1zjPBFw~zC$`xi37TYs2zHA8oCz5n<5wsZ^ox>Z@IViq#@|sw}HO9 z^4&$INM!kf1C{bCN0<4qHXM|^rI^TXG*nO6{cKLXUDCodWHzTujrV&crNCYo`qw7B$?$+DZs@=Lk&7GlK9j8>dqjc?0E zZvtsNPbKey|D?%yqmtfR`Rzxb4^N;QOmi==3%kn+ca^b&!s`Ww9>}uI31J+D=g5%N zTT#{UJm@;f7#c5f0bjeMD|%0ZYAD&cND6$8MqAmcrSe|hSdxnkSc#EX*~BZ_vX1)7 zv&Ur=+hL@oJ`WR-m{+atq@vp0C*I9|1%}E9-CM^mPUm5HPdCB`I=!PLs5+|J7-n3} z7_|5847ZY2s);wCuKIh5HXtYkN}ixMyo#GKfA%X0_J$Sbk+PTnwlGO@9hK8g#3>Q(e0`J zV_OrmpFTTuf_QSn_9y zQPut9d;m0y<@K;$l_knr-ZNG^p4!T1>!&^KPiES}SU$N_%#3W>25lLe z@q~hu<^*EM`W>9FRXMY9WVm?RccJylxX^Li#xa@~@e_>|^bJMqCV1bSdfh8!M*A~0 z_|D$7drcXAu2jxWlQ#2@*Cn>f>q7bRPIoOV^#bB4HnbDQdv07Qs_S(T8{dtx9r;>q zD~62mhzSB`{%SlHo=nS_fD7h=$wv@0+-;1}KwDU72~&tE3ombwQP_S8ljW0;ALsyA zLl!W1#IZF52j0i5`6@6ZO&SO%8Cw#mD{SEJRKtT^1F&a=ccz1U-Gp}*5ilOwuC!xe zM8KrGu)Oe16c8y4D@382Apz0K3rVO6M|{y179w zi3&@ESTe)zX+XXqSP%Z7t?* ztJt?Zs|0j33=Yi3yLh!N#XQUp&qjyXX+Nfh8z&~FZ5k3pW#-F7;K^HU4kYecS%l!r zo1RK&&gaRM$elTDNt)=R)n170t=N9>CE4)F;;z#OCv-V~Sc7OFi)}Ez>6F5bQjI8~ z);ZO&VsoF|7Zx7HskXwA%}455w^}n!oIh>ByOgg9%aSdHO)76{O0X49)W?n-W2=|3 zvKF|sKFWMzcZy1P3RltU{iv|q)rg6=&bGiMAKUHS>`S4K+Qu;!KtAm(`l`sqDD+6> zvS5;-GfQdN_rnf^n#y((+iNqZq3K0(eF6lBdE^@x9K(5DM=RZ@=LzgEC1KlXB#f@k zD}EEd)xLK<@;wh$`+hvx_f)8=f)G)n6uL5D7+L?Q+X<;hZ55eOp%10$d+1b(w?yzv zh3U`=zAz}jQ(;y>hj9(r*u#f`X^lbsf#K-mX!p2)xo<1X)?JF25N<69x=2MCzIJ|? zK}j%ExykF1cGA1ND>HhITlAr_!xjbF+&gdXT?!6!P9bh{wNpObj5zRRnG>xYCs+;A zW<8J$jFyM!;14}$Uwmr3N(^H_YEsfQULx9A(SXDog%0(_mm`Lero@)cd#WOAiusnA3@6j6UQkgmy?iCwo0BY8d84&3q5(0Z^=(1f0YtsU$R zLaQ4@nBUH&gZbj@#G-(^u!Pn_*BVSt?RDE7^a6=m0y0s@@GEGg6(Qre6*SU{ocg%h z1i=QF9f{W8o5=lnU%0eo1=FSRSJ0s;Lg$Qkk##pHT)sSf?@9jUL>Fhd;TkJjh#u3~QE%aKVBW_47IvX{;YA0VGWb(-tyZu&?EU8&4yPyI=K%1c5Ea0rY z5#rZ;eUm4qdE)(82lgyF(toXsrv~sO>~5y;e+*pyThL;^w}x)tz^c{&AJXz>cJYU} z*e_fj$uFZ?%|DH5`~UA6)&3X#KGp#SvD*PmnpUpB*y5%^{1?Zg8z?>VA06Uz{r8BgSF>1aem?~Rr?LR$ znHRb`+koMC+0mVYx~UAf12Egzor7bct(&nSz!;4Ys(|~?=Z1s75a1{Pvk4$HiPob0 z3jv-4d~hXaJrP5q1#Fbr5&CX?l=}soT72ME4j6*gf&sgft|lkIM;Wk5IURX)KWm%} zlHtjqt5Qz*SqzYDzkki8m&ol50YH)n5x?v^kbkkDE-`^sMlwITJDs|wd30b@KTBw&nJd*|Sr zJ)qo!J`d0u%vIkrv+V8OU1NqVg&~XarX-a`i{@sxZ8`oUE*)B zg1^Ri_wF0cd&TZzXO$vC-?AU9D#yMepKStk zWStff`vpSl13lCS?w|jX1irg5pg{}717Jz?mk0m*33Pjl1~7~^1)#x}KeN`K*b5Ut zWNlwqv7FipZCs89T`%y}Dt+g^6d6ulg*Z*#By~rw#4_rBxYfJ7TsqWTMmnnqQgj+d z8aaawefWsT$u27^{!i-H$%f>hT8FAwa*0;?c<{sDOtp)!ce~%!6Qpy#rQ0%{ zpbsMCx{O^{sE;L9usT5Ye#w?JijPHAkQ7StWL#3C60-mrQfHBCH#vssLo^PiuzP$S z0G-FU?l|Uw`n<*7TW8af2dsUjvV z`bu?J$)3PSFwFy-BIIt!FiI|EaAMakb}7t$GKeq$ckUx&fgO$XXcWGLU^t8zv4xff zDK9E`@41@I(pxY79WSvH`;GHe%Is>Xs?)~H$X&_Db_ca44FI{(NS&~SRI5(xaLU># zGs;}_o#45&mR;P)CD&W)=pUDlS9W8 zmiYo7)FqD*1~S8*yHrnG&JiIkj8@!R+vM?cmXwamV%VdmLu5h|EoS$$C~@;B(bzI{RaLwf4a0cafXi^hB|Mc&JJ{3YYL2p?!wut`kl zy}Z&Fs5}WnT==MAqZKz3xK9w|%yjIvUC^R9zD~z*AS!>(C=l_HXSXJY$Z6-R)@bV* zY`IBR|7qUkq?L^#)aWv!Yn`T&e1(=d3Tll?UrF~p!Brxqf+M%d7ImETk<~e6UZsoe zDE7US;O`X^F5eBLvnIi*~bDhC(I3TneT6F2WxJVcGtV z#qsUM(oa`u)j@kn6FZ}{pjbc813O+q*toyd#03Y@QHkL7f9F$i7{B1Nckyzqx zakcrd=BjDr0DA|$Oo~+S@CA=XgM$giINnq|Vg5G-h4)kgKif_b}^0`Ctg5IP$;U!ZP^p%!izpiUs9rrL##X5pE zSwXGRIb1o;xFRIfO?QI6qFZtPsZAhp6&T0Pk^)U{P*8+ZgM6AI*Qa7X%YK*@Z>~4= z(8b0Aqm%v{r`KJ+q#yxF$SnB~MIhTE(MwsRlb`peH?D1aGXS4# zVrkBHV?AO5%p%>~_}sYraQoF*BIM$il_k3hoD3gH4oNz3AAO>B!l7W+)C^4P4yt02 z4vuv}>kzyDt|>$<7=jnrK#?~K*BLb~gX#33AX6AReE5ajw`S>t+xZ6@0pWSbv?njE zw}k6N=GFk+2zbcC&03;6d#`GG3UDx&lnjsYmfkVk^BG&lE$zYC4$u@`5(CUgaHz^H z43;dlwQJ=U%(B`XpKQS$N}dQ~KYB#(vS7K_WnExsd==FgCfZ4++-OcHZKEEdp5n;) zG>}<^Qj$XDW&QxZs(LRzbif&^;W)Rc-O8{Et#Q=LY>Bo`S@j~>h0{#%p>h?FvgyB& zG#DIxV`)V}Tsfb2qzlz2X1jP4+<2G-o~bJQPIgj6QZV^a)UsLDGg@K;bt^z4&@(Yz zJo>X$zJMNUb+qTVuw&MT{+_-rcaJ&>S}Iff<(nRpX%gpIMRq*nzN{0~%Wfr0gV1O1C~FTRlJ`TH z9Ei`E{5X_|EUKEA8q9+HxIe2yjl>gC-; zRqFP|-;(3w+iyQ{9rv+bj(-FKruQEM=Jqo{$^meM1SBnhH1tmZA^4Zl0BgIUxF`a` z$sehxtl6(rbdaRoal5-ABvcDVm1*X_OB{-3d*HOX?Jq@neHGa&V8mB3DmUV9A=w$5jw#mgU5>XrOei)u z{<54P68vQdN#?40|7{q*bn}|jmZ9+LZAHiMAHxyOMP#QtUamv`_g|Z7==|L^>b216w{sJVv zy&PnvxwUAKwDsw?L#;DVinH3COV8m#9LquVN7Y{H^$&5>&F;;)hZ197$t+wwZX#=r z@q{=K9`)sjycx*Lx(hAVf?C%2YC_|Wt$QR}N()-jbGus>N?uJsRlfm}AEbNy8GjVKo>9xAg;4gYhjT zA*80yI*1J<<~EGY(eQYF5J%%r5VMDSF00{(5JzyZsdIQopsB<@@s`jdBqR*uH4J}1 zkc&K&!V$qmipL`Xda%`a%8`|^e+u2mxSoirkxb3&dOKiLY=yy^?5g11PRdGF zRnd(vQp~sz$GkSrfE)2W^K%|zWVIjVWm|2)5|y5%G)}hrELuR#qK=Vi%UwXM`B`W|^_@)*sJJ?o#x(USMI z>!s;``&yT7zi&oe}-fcLOe%Q?h9P|C6o_GNp%8CA}T~m7RFG2uhJz7sVx8^@;nm z*`XF1iKo}wAuzj2Os-@O&J>&9Tg{kFPyY0LWZ;Rnx%m{UW|lc((!OvgGjw!X2$Zff zS|?~VJ#MJ!IH95mQoyo)OlPMPiCxj!XtUwGSTo_d3l$|}v&zSswd&-X zt0CPR#9-M?ntw&=_$Ys|0kpd3qS+^t?lN}e+Af`eL0?23ind^qlCsw8O*8fi)cs7% zg2Yn{EP3%MzwpconTl=UvHrN^pj9rLPw=da1;#L8*A5LscqVRxgq|U;5H&ioRR{tU z3jsQe0L}AFtIgKN?@$!%5tpc@IFVI|fR?Q|I zAA8lQKTs*&k(v^;I$|1B%NhVrBKa_s&3eI4l@-@|Y~%9>q6F8?V*%W%(MK;U_N5A%Z*BIC95eHt23qH&Bv@MAJpTjOnWNJeGU?^ z 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

    qm4Wk) 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 z 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�!!ybUdR4n8i&a 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≻pfc-p+kq>A@&EZJ32ii;nzX4TDQYlf z$J#c;wl){>f=*m(H#V5UAFP+%#;tr67%oR$=BiaGuU*C{WmXd9xuHhoY9Q)1QYaoh zPeir6&i76ezG~#I$u`+5@>M&KM|>kEm$joz(8}?Lo}7MLuEY>e=4*S2wI_vaI=}^_ zO_PyH8n*V~FE+{Z>GIc8wHQ7z#x4gX@LJ31(YG+a>irl1Ps-ABjZ_8eL8S}H`bw|r z44k0W9~>G6O{2Uar`GQmL#NU|tzf_+LpK3h)6&;rSuph(qgY83>KdMR(>kU@R0~L@ z>V5H3TI@xc2-?kutLO;4k%5uK(%+m%j&Ff2z{nn_}cf7HKVAj=e{Yg-PLa)Z*gljcg~zNTl^1eZCvz#j4(3Zc<;26AMKw z<0uf&bcr_c0J_%${@ks0v3EN5Ip*NU!rtB88O7DWM1Ozw`q_=l8j}}wT*l3h(eHg$ z^Xw5^6IC;E?p08Iw*532Xiq#w!}=QNAmk;@^K(`d9+_@UO@sr{yV2AhUP;b7SQ4Je zKR?!jkB#y}`wcSpiCPLCW(>Fen%j;^%zm4d&vE6HE3-K1nCet){o#An@inzpd0(?f zG}5dGj6FC}1eW8~y2!fJJH(E4?4182NCdX3IKIhGa|*vfLvZ(Rgi^hVSXkt{rdU`+ zyQ)~6a=qz{4kBehVEXcq%Fk@C;&&IsaHYn1hRcf}3(H z(MaRpmjA?=`;@=)=Vf}|NUKBYwLNb^^_V>O|K*a3AD#@|C(Al8l)&MV?1ur|< z?WBi?o595;riJHoVa{`|Mf>HS?1?k7^^m|9dlK_+*%O}s$r&Z}!^*|#D*(jH$k_Iu z?M(mTOrm4zq(y{~#QqMZrHaDh+``w5sh8P;D=XlO2O#~WLHYw3>WDG-H{ycwdIjaIw`Y}c0B^T!ETn8+l} z&9j#0$;%yfvQ6wIavAJavh$XoGmpM3JRNYgaRzT~e;=p4c}G6EwoiQT*AR0(U<4~R zF?!vvD-ma&uiQbgo?b!5uY5p|I~4=K^%sxH?DUt9z1QD@5I?bgMrhoPRIGc;dDlQ* zec!Ge)On&H_~81fw@!s= zXhXI!$0GSmB|pHQR4+WAZ3dI1P0cO7X@NuR$V#yfAl%Exm&%AVnWTpcBBKjZx^s`hgZq^M3=R2Mi zid!FM0|$BTxfMKxYDv-hwHRIc1|phLofevUp81q;(vA)G6Xt8vM`59<+K@nN3sXDV zo*7zvq^J3K-RW^s2=wguO0&PD1H}6eNLCs{mDQ34#O@JY2D9Dt$!9;Jib&@0E9f%5 zazx1*?CLyPlF7Q*!(^K6iqYjnnd5bNlU1>=O?g|a6&9t>e;PiATXN!R6eZ|gU-E~k z2Yio+i6{?NQQI%0zFv&Z?x?hk!M5AZoV?d;^HAN@E2>O|66eUu+W=O5n~7ANB>s86 zFJ&WQVE-$54dqN$Gt!wFTgo=tbpK@o@9xlRKiKLrJv_ILn9D}Rpub>rK_0E3NR_Rw zns>L_j2@?N8d<71p;AW7Sbg}I)hljc7r5KcQcQ-G*%T?J&JpGQa1_1{0Z;LA5kW#7 zoesRy)^cj1pBMz3BD?A%C{2HJ9SPE#Z#q+DZyEa?Q=w~PWhLYb{X@Egc54RSdAiqS zXxjWi+-WXH=0->*MbZ^kxH#M~)VpJ2xtNuC!bIJIAa&gBfn|_}XC4ZhHBvl3{t|tX zJ1F{`WK6QfE=^Df@rM3y;{~NYH*x0b+ru6CdVM^f9mJ|00o^!PO!V6`+5i$QR)SDs zqXk%ezh7T#q7r$sDsl4|XgRfBC5)E%D|33mByp)MCS*jIR8<&Sf_jfkpMs!Myy+r# z24}Xcka^Rzp#go4rH%x}e%vn>^bHzKM&_T=?HLpnfAT3(w4{WQPfJdY-_2bHfXdGu z%``c6DHUeRI&C?szyy0+Ec$hO8^+l7T*Gmy>`^(@{*ZgI!zhvbr#Q{zv7*J1;5llW zF%lsuD@q-LeN9D+KWk;q?X-0fycNl7<))RrHrra)%H#D>6rs+Qa5Br!Vq^%CCJG$| z+_uId)GgdgsX%lRi;K3nk6NxTBuBgAz#90n7baSfa6R@-rQahIaO|QAfeM*wE4db> zuB|ss%oalh>o_|I|3r(UWl9{86w%1OVwE^Y9>y=U0mwO*z7t37n5#*`%&Zqpc`;3= z!mHn;ppn(0`to!jjyQN4Xrz9>tw&WQ$e9=*x?fcs#;Z5ZuT~{L#Gucok<+3hD4cRj zs~1=6RKastv)9pNyjdZ4mq5AJq|Diz!WM)SDXX51m_IrTO(@e1KT)ZO;9IpJj!N47 z9iy1CuKcm*6?(%(wTL*g1hf6hQ&k)Bo3jiP;C}>y#V)S;M$aR4zr;?U$RsnCtQpqU6XQMBvXQG z>WC%#XaEAn^|H7qX#;}{ZA{dApNo908z`n*tpQn~reXQ@aYd<(=;>$S*Rmh~zQ!pG zNz08P*CtBOW|nBnZWg6G+}JQrr6%GARS{-8BqZb@L77sI>v=GSPlGxW(#~9_ujkOF z+vj{wYyC~7dCbk#2c<3Yl7c5`DXaAlU|`(Q6#>VSW-*_?lTMvnMN-jS zZNG~0K<5(VbmlxXc(rBwld`D?m#7CPjZx&=T)d#ovwaq*(%eSb0>>ys>-9{7Z|R%T za*h$#AQp`a(EEgPT{2LT)7VoK+GWo$@Hb^7en4`FuaGbJwh?Cznx#^$P*+J?=!HAV zKAc>P^3d9|(B7N49G>AQd)m9c4XMpdv8ea|Zc1p2Tjw;Au3==G6i6>|>m);gdqRpr zOts}4R35H=#&`{;%CFa=$OcuJcgm&$pP!Mk$+%4I(Lf#49Dr5Xuy7GlJ!#4C;-F!b1=F?YZkyS;i3xq2RW{-`YsyU zWSJJl>*Y{gvtpdOws*38*#=@%zY~NwQfpQ%E$gh&PROO$!)v2d(mGyqM|r0R^!)U5 zAAhIWLYN3Sj=$PtJ78YsQY{SZzfIMns#(s^fMZR!UQkGU0G; zyLEc)T7qu+WN??a($2mJq&kU*>K$!n==D|Nb*HlfDNL4gqV;HnaF(YHDdq4YJ`Tla zH#_&ZEF09qJ?BKhOW34IGjFyKR@YZZQH@>%^)y**fyJIy2XOaJYNlN|ij|r&JNa2`I`?-baIvGmq})G7xA~>* z>;y~_8I388l_I)*YR)w(q{qFF5j~gUHEl;Bd>+c)E6~uJoVFae?&o%g<6o@LZ2qS6 zmL~bQ-de!68NQT>Iflc@h=rVtlzP|Y<0O@uUsKmzmaAwwvD(joP6GuZNp z5s@*NvCG) z`)R33p#Jc^7kMQew1{(A!~WqfS-nMiGIn=eC6`+ph7u+Z$6TgEwPKG6VOjBS$WUHN zpdx>lL3*qny|Z7ZT6Zd6k9;>iZZ2*8J?#!xYF0?+UpVh_tsgx4%sXOx>UGVoy!{S{ zJaCSfo*J)hRPyBnGslO?*&*!`IO?*66MDHl7?bzqNXEVc`{95Cva-Ei)Aqf7)mR5{ z!xRn;Q!hR`f^`tBL+HEo%2WsL%V!Xl{Gl1cB#bR=1j0)urTA#2$e_&{Iih(Ll(Pu3 zBk~{Z!x*%OwX{&|6X>$uE%g?w#M{S_PlV%AfHXd0WE(tW9fbUnVBlHeXj(o{YdozG z{Jj|%jW81kY=C8+b~9Vt{=1jBD0W5Vv!48*JYDM6EZ9A4F3n9T+QjF|g5Dmozo`u_ zZWf?K_Tv{%#8yWTAH>085(v6vW+rFf5!0>b^X85SFHNSEz>A@;Y*-_)pGd_Hth5MUF<6)DIyC69|VB zt~Z}?+wO%&#E};ebLW|m5I$J(+Axy<-pAVZ7&nZ0-%tmG!;5Ol0yIv%$03qcXC&fi zW`%xBci;ONEbrdbv~hevcoQEq{Qb>bWB!kC6<4mh!4jtzu`D*YLTCz1Uu??j)i;fv z$*!G)KTqhqVH(fp@SQOn*ZkWFRvtRo*VU5)v7={vTEPV4-`_;p4}R6-2_#bb(L=up z&p!#`4~E^C`H(V1Xy_-xc~XchyC2{m$ETVRbpP}Q=sY?mhMkYx#YZ{rGUL zLO=HrPfR<;ed>Vb4?kixrPGXQO+VWOt04(i=XnAQsFEFwL0D0SR{j64QO4o$!V zQ~vRuKObN4;2BUPf%IH*kNGT4C2uhN z9`&om5(s-as5T_LLxdB>&(v~|%sYwXTawuJ!mvotvD{T3Y3ng$x1Ev zHs-NkxyG;5Co~y>$40h=pw`$yY;seR1{(kyV7U90KGE{`*>93O)TZQJ))>R%ww0;R ztHiK%aw+`@W|ESS%JnE6W_UkL7B`1V+YFj_E9%iDu=o^Yz;}|daxh_QWH`3tZ2(4m zz*&^W1VEHKDObt*npp^W#ZT2t!)pX`zXr|m#5NY zlExAJbN43Q-*G; zR+hm{fhbPFNYegIeKf+WlgtbhPppazGur~!NxmT}=PiItsFKdqLj=>tm-Q(kjMIQT z^3AL}qjdm8b84 z7Mh6(e!t)LW@6IJnSsj2zL=Ds>vNgkENC4Wjpn$ti~&cMit z*He}20l0K%)8;=4@#h(QpqLzLq>=WN#J+tudPb5tBC+KFR~m?-9}tXH3I*;7O;bt; ztbD~&t*-w97#Za(?R=*}znf+G?hxLEYlOf1d_gg&vCo*32R#zkAg;+pe!aO2rIPrE zCe1e24(6*Trq!=?hFw2>i$~alS1gqIj_A!j)OBX8HYS&CS)8vN$b@AA93nNr)dpTe z;hY$kIpWvlNLJ2JEGLG$hHEO2FRRSXxN=}G`2W%rQ2Tanzsh8QizX3~5OnXx!vOLc zao>$)m>wn zYJxt{^bW{7Uw_>}uieZSdK!@t=YL0bVX8HDI41ywHu$xBY2u_At%`#KnyxV9ZA@6<2x}%I-}C;zB^Pu>6@4K4DYNKx^kNL zh;iD(2OhYIzixc~Gxw<8s=z-P83aUu`rm;+|0|i5{}LMi3o1)i>ifz}MDhiLtq2b+ zCD?@r=9A+y=_@MWkXg5;7SofNb(~#d+xsO_pdx;OWoB7=;hS*mXPurk3ul>k=dTB- zf&>!qs&#)04-S4R_RQ8z(?c))u$R3Gbt{Le5*+!>ZXlcForF3dO;MZAYI5e%r%{kP zsT6j?A1SWhC(aAvy3zkv4%Gt-Y7qSw5J&$d!}#yPIJW;u1oK}K zjDJw){}DD)tl{Z{c8~t~A<5pc2DgTU015%A2-T+E2G0%?Ou{aBSpQR%q9bu?*W5il zo9$Tm>qBX-1onA6rhU-0zwz?B6&POh*eB+)OH!GmfY0X+Z&LttLG?D$cGxp z*dFxcf`x)`wP)es$q1a;clLQu1YqnFG9cdGc$R#AV~D*v#~gS<>DCRc*_|Uq2w}q5 zBH|sM84=;c?MGhTK^<1&?F;LY^`s3xF!Dh+I5?8h@5b*}A>zgB=XiSM(7I{~^eBOI zmSXFW zi~v~qM)fwr-k2q{1&c${=<<>l@>UPew;Pu_-Ujs+!Adhlgxi&p{U}RNMge+y3AO8N z$&!+7rcW0Gmm5=;p=#OKsLyp9ObJOt?_f5EvnFmcAQ zql&a@%UFpQ3MwrvvV9wZop)3toG&O|G;5n?S2HMXBvTvCjiDN2i>$ux@cn9(vpifJ zQ-knGF1GJr%tw9u=*DjJ*CoavO|C5NnREjXK*60$h%o82a+R3FMIS<5!v@R;TQ{x? zwRc)u3$3Y$^UBG0Yryv&jX%{_W;$92OdAgn7dfTRmzhUs>U9-p8G@JHkF`oJ%W&40 z3*bd1Df^C6uOj=}4^4v7^6Yd`QYc+ih-p(-|3(WR=UvXqCo81WPC;$pJRyptDMe18aqa%;B7%1|<(PVk9N{OOdX0DHZ(AIz1CA=r zYjK#8e3pe@DAQk8;ebBoB`)h~*IU4DFjkJDZp6lLPD@ zHhWApc8^>(#M#UjC*D$0*9leTs$8LWgYug&K-epVQm)vy<7&}cl&)z=ZKqguETxq< z#&5sTBwiuTvb8>Z(#d=?k-NyKBDC>K*+7@R;q-pZ6*UrfXfW3VRXwxT<~R3rxtz>R zY4w8Uaf}U)y{V77HRfP=ymk^Og%XG4I++dOPwkzMtNe!gy>ph84x@VX=uRudwX<7< zJhhMJ`vzs1YRMu!&P8-kF3z9)n!ErzMfIZ-tmg7&B=+A<6=hwfRYnQhlY3TD`3qaU z@Gfs5RHy1TYvh-8uqru+kH;ho>ySBUB>@)AU9Yi77aZ zlkx?tGV%(qhI{>2pbkK2A~G?#Tmq+Z1( zhCi~)_kC7^J2#ObA#U70GntUDKf;$ClwgE-B$j6L!AQO$r{1QiO{HwlH_H72hhV!* z4#Zh5`!^kf!_s(S9OK(MkZ~k;I;;$2RXOJVnp3(Z72KIlgQO$-ECy&9`!vFfT$+X+bP(EWu0`ahTRPBL5H>e8=+q3)YXpe{@7f#;!QRY_vkb*Sdk&M8cOr#Z#0;qnX!B`<-oucd z{m7wyEbyFOQDN0vpIop#Mly)O2j1P}x?P9i`eDo3eRwvr6;B#01S#q3=o2<$>NO{E zHzygRx~TYKgvQb#Go+;Y+Kuh0XSU4^EB7nKdIWTe^VW3yOyU%jo)u$@F8=W_wWZ7u z*Ww#s>zMUhDk18HEQ0bu4kbg84tn2HdIrTye*eP%TVd+by)j(V+kX7eD`UeY=df~e zYwJw{K9J;BYz6MjL~-NdgWzRf@S7GQ`GfI1(xR&Va?r%1Qoj;Y`lhh5jQs8~w%>!{ zxL;*;otQSoL0VRNgq6TC=S%s`OUZl!Mb%~D@}i~)mtBdw9fNh0;w$U#2P5M@Dy4L2+Ah$J&H$0=NBeA8Qq>iLl5ip+STXU& z;22R%mgtx!(O9wY`^vVMYNzN*xTp))z_bVzV|Mu{2u_mY-Ac)G9X*eyCkRw{P&__cY4QVE-T(L&)8c#OQNB+*-+F;2Y$SWZjvcgt80%n^-w_iBZ zXPM*+AuUMZ>PeC3zA8ru<+ti1=`uH5xn*5(J?0)Pf5@9{=Pi(X0j28soDX}R0!UrgUG;m#p{)4WIT=&-T{AA22dew^;uc7x9b%M*thvP5nnssI|na9gEeJO}MsFs={>x)9AUkShvf zrA2cMJJHN#Mi~Y>*(2YKQW0r{#Bj6_S4TtaeKFb??ht8)OJT$(K^b`v1d)G_t>X6u zx=9QVFu{$wi3}G2%@{J_rQ8NZk{k1o9++d!h}_U*Lm#{_=*B8!utJ*;tQ%RpbOuF$ z|F(cPgH&#qhjg{<3VKBfBcv^m4o#MT<>nlaQm!1AkPJ0)bWxk(43RUI&DQ8+oE&W4 z=M%Mrov?$MV!@kt7svY5rQNp(Zbe&kOrp)Je>@LKTR}?xATmE~WJR4LfoaZrebN^6 zlPqUdw^J}G4_3&yC206}+p5}CBEqUsNoc1}Z|y^#kcrGpl$l}ic|_LYWR})6!k>>R zKW4zJzv?~Edi;T(APAF{!qQ^M;hW-595bX(|GOV6vV1n|t2VYs3rZNgD1V4ejL{hJ@C^q@XmX zAK}Jn1GJjO{bynJV*%~VNy01_zXFK`8!_PV&o}bC^~MFHMJZQzp*bgmUNlIE;)gmQ zQDV_r7z^3?=HVzOLhubXEeZJ8xD87ERJ70Kb)=4(BB|P;k@P_u*TCW%> zMQ(F5IOf_JJ2EN?@-FX>h=@qO6zD=C<-FuZcaM*{0C|BsGPG5dGAlOhmZ;06gbTr? z%Y3-AiMyF`ee!#}GKJ>dhg7mQt@U@Xrph0J6UWNlFnCLK`3nYH{n>7P{dyigkj+}e zJJcQnCMn{SD+zP;t`m;)LzG+%=j)RPt2`~t=z4v_;ouKKb~Es^;ZpEM!MgbK^_p8m z-Or$OiOWAvMx!q;B|=qOHS3v~;u@a92wJ17we0v!?y=b`7b6pXe!7Zhy)mi#(4c>6 z63rON3$66i-B%||h5d1-IcPD+)JrAwp{wV2R3%Ms;;y+f{q5jt!tHA6;xx?~E3$If z8vSR!^a#?<_=2Tym8IMzOYD&n!~iFN@f1a&;2LyN$?4>N1Kf;H13MCnHEWJGB`WQ>zq zX+DHG?_{;4amE#nF&8CU`DQUvMXXI9@|jC(fR@0>71^UiJMz(U#2&x_$Kp*)#fxN^Yl?{@_;bcP9vxkR&ejxP2cm~N8Nl}c_r|>pM zh+t<748GaV8@OF&oW5h8kAM=ryB+msZ1N(@o2o{zoi_IilWH)@w;zlGACv1ajICIM zv7=1tEdcB~kfJ4;yi1xmuCl;jN8AbXp#1MrthX(J5;}0RYE82tut^-Vx`(~oeBf%Y zI1pLEM8(n1C_=5&Pp?^2fK<{8O^6N87jh@dE9%3or~_ zeWgD)2c2AZ4I0L`62Yz0(eVlVmuKxZRpa-`muC$g;lFLAoc~)S(f===C@X&AE8hww zr*`Gq0_A;$$ zvc~R5ll;eC_c?R#o?g$;x#6V1%BgIzLo)s$wqOpaV}@)ooFSD19eMf`OY|?OEk8CL zFU6Q|YF^x>tr!oRi^vObL&}mCBbS&%CaZk~L*v>X1{GVp=>kI54KZro;B2#Q1y#>;15I*2xI^d#JkpOJqR|LayS;+qmH%geNp>e3;jt-<#QGAInz zxDkYbVPB_7hFb$d9b61zJ)_SQ2;nO#J=+U%Z^N)`f#_|}z+!F1#JtvTfx|>qaFQ!# zp9ZR*evi4DNjtOG5_9@gxLi>?Wq05qbu#=nO?rYm5D4PolLl92{k#&bq80PP!v>VI zto3a2V#|7h5x{1Mh8Xg>$dC^~4iBbZfmTHVzDSK?vr`!DtMY%osm9$^D)NLW1+;vT zqLt3@A1>dfhxT1ySl%EZW8*B7RDJ&T;|x@`5q5tuiQfO!kMqB$*Omp?08IZ^AW@b2 znSwjJx%&AKIN@}3SjwQL#$@(UEyAi$VSLJ> z*?D&F4uL!c33Fk{SPog{h50nNNrnZ?&)82`>z)ScF(ncvwc?&k&!;QSW9}Ny>8qcA zUe0&EMegVOlgL@P4GO@^i7~)Pk4DB;#%6xUZul5AobCnV5R$`mLjjFTT~T0R@Jry* z)|BSLTTo247B%7llv}uM=9VuAp*dwT-hgzk$JFede>{UtL%kG-kUM)xSGte)T0b|3 zlsNMg9B^}WTkgW~P#<~sXXQDoVShC_8m-L2-lI3izC)3he}CG@z;(XXbn7 za`79c#Aq;sW{WV}EK}h$j7RgVz`b>H{uEUDMTdCq1HJE;G;yg3SJEGyWNr};Nt2RE zVRfygk=L?&gu0(a@)82{qB1;{z?j%zT5hBYPxY|Egtj;~C76XmbN4EKcxCT^)bb1c zXBU(6?Noc`C2QJjX>(WL<)$$Et^x`5E1brCe5++$p;nY;N$Nza+O)}8c85>z(;}PU zWpfkfmeUWoYMktw!*J*zMY7%yGg0(a9kKwY>B)0LWS|{X4F@mTN z=tWx`mx^CBx9`|n4(Q^bYlCp_sY9E~_cD?Ciy~5^I;|UnS*z81Ui(@$2o*|KYhNLGKg<<5p zj9fSAjX8ZZQKAoA$#nZFpvvfKg2NvFU5a+}Y5>wogh! zb~4;xYb-fT_u<`y2k>RzCAE2D*ipqgsAYqr4k!7jS_R!lw$@r*i;YHP-!%Lo&YT71xZb+=t-C%JIrdpuW(-{h?s# z*z@>`lc^$S9P{v}%csz>`w<5OnB`dio<@V2V-bKAG)h+GYCW+rETQ2X6%-)mpBwy? zTpqd9H8ns8v8(YmrtpT?QKm|@CK^D_4VOCoq^y;F3`UNli91W`+SM2jTeq+wm+bVl z@7oeW-sByzVOIUDZBvA6%${{CS$LTixd=yGiXV+%nV0EGk#H>vi7)3Fwr1sQNc#MGy2Z{+ z@aw?C1p6FU+^xxk)*jeJ$GIZh8Y{u^cmWF~rxPZv&Od%Oe$W-#xnoPj=nlHs=nj!j zs1^@(ij;t?Bw8lB*k^w?wXgXzy%Ie099l1pto#yc$U3M5Yk%_^s%7v@)K5E_VaCm{ z6!b1ibUnh>{LA>E59~Gfx-IuQ-~0P(PZ*sR)EWJ3NrF0p;wo<^2=SKqdJY^ZT|WJC z3rIo?J1+usR}3UxumRzpmt@fk3EiP@usWzZT|pU!gz;u7qgd`JW3OXK%esB-cr>1| zeuA$A#BM-jctR-fhQxS%YLlb<7_^g&25f&?)*^YIlwoE;$^S&z%fA1(=dhe6Ew zz&P}_9>tV#B(3L?r~Np5HA`KSV-EA_b`3GiJ0as|4T7WJLpGN!dQ5cz%~6pMH;AKd z6$KzBFn$2bj2=`$UGFtF*3or_($*<-0qw^-7(%vyYu1qSn83tHkXp%|AAfq@;*c%G zRkR+s=~zH(CPdZ0po~cER9mPxWWud#GR) znfTmOw@hvB3Z_5cV9|2RPVxle>fV2%7tKMr4pHeJ`13a=YYVh(gZdh0*ZE&D8SOt{ zGG%82M<;V9XD3^Sf13>y`lJTF63-S2qn0f!KY-|)Z)ZVkPz6Ec1>uvn*-ztbB-PYW!&akF(%B^j6U*pgmBd3JY{ADm4MP>RzAFe(n zW6kVbk)aIEKb^|5k0;a!S>T&JjohuiSwfxka)UzqIerA1Yl1TZN8Fdj(K4eaFr(dw zV1HpXhWMM~w+qlk0d!Chu!+k{tb705^3tELrs!9$3529N;uo}O`mc_Ke@ZD623T1s ze7TFQ|6?sqQrA?-_#%;PBqSjCe^5C28&J@~60*=aQwK|F(ny)pqG};L%HJUiHLyxU zZ)taEG_|_)S$mx&FrPI7EKG6man77@MlLmRbG&EmhsjGkrl;f~SP1y+uG{|bK4o5K z-e&=Cc0R5he`DJNre-t1r+=%m)35a_B-G8`HBL<-hrUJ0Hj!-V2e$oA+bv{=iy}nh2g@L2f@(>+ND(EeAu8=y4ln$=C76zu z+JWMg?@Q~#mQXjN&~&xj-30}KGoi5dlxBlup*HQ(Zu0{YIEr=!tr!m)1DM?;`!qYP zhN+=+hd8NhuDBo);im36y%M(`s8WsCYxbP|(+__0J;s_GPd84uSWU;b)GcG9cs1}6 zDR1}VZ>!Xz$56XL+fsAHKto*(>Hxt`T&XkDQMC?|72iY$xZ2D0dA1TL@W5Zi3hZq{ z#8vN zxI?@eO|rDh60+{$7PVD~71SqaPe3s+6O`iwN^edx7lStiwU3QJpf`S8H27qTCDLeK zKliIm8C5#vIcGoB34|(VMaIyT>ch!kN|Vu|$j%~+M~LO)m_6l>DoXbR;y$4JL5kUU z$472{IFx)RaBcA^#w*x@5~THlhgp>=!EHRA%f7D64tWkD0lrGo0@LCiyBcVXA@S6L zemeLrAjKjxiX?q8<7e`cWo^4;{WOP7d}(6pyubnj9d%t$5;)(=T$RjdGmXK1KCHQa zb63CFI6H3BJf~i^SBb>A85x(6>!e(Uo$fd=9L%y@j?GRls~rCDVC$ zFC_PTk{`h-ey*SQ$RK)42xW&k^bGOq8Kr{3zllTWX{0`0Bjvk739x=x0kZ_f#wUKF z1s7eA0~2`S0?03zt(*^eipdO?#Gg(SB~BF4MR^!65^j@@ZfB67X45;-$2@y&0&a9j zf%L`z2O|bfrc|8xfygr0jfD%O3TGGD@T_TShUwhOxF^e6jM{r9FQ?I-Aiz4*$w+2E z(j!!L?hO`-AYF@|_?*v=TNWvgjCuAV%0yU}HLJ$kbCmJZ#sIl$6e_TX6vpb|QmArik@XZT3U^I`#UGYZ56fq1Lnuq-Qp{B7lK9+jJ&K^d z;-H_o79WzVFVqzc=}fWd6b$5?Ghp@DF{f5sdFs<+(I&P2Ehty1LQDNl#kLokl1*bN zz6CHX3Q@kZ1R^FuDhvEr4X5@dwH$Tg27oeoTc+0o;Sr`H@*?T@yyVf@1+yO`Jo;>D zN~PFlja50k*hTsq44%m-=8a1e%(wdoFP-RU8lvCFgHSC+2rYtvN+|MsoWkow6LVz~ zO^j=##jT27#(o{OEz)1YzC-`DW36;LX{vrPHb?(;%FsU<6P1ijjotoM^N@U9nmalf zI~W`NXZOld+K>WfMBrUpuCB8DVcE4~L789S;*E%pq6Z>K0j1`ZT!X|3kclFz^Y zi`k1J;4je?shpai$gBZD!r0+t8ndwOPPX1R6~$?S;53#HhKi|7wtF%(SsKRF6rOOA zTnwltww`^tpVTvD;{Gbzbizz0&LF~VN8s55^lckR(dVum-B4M@4A=XIDPL^!ERPqL{dWqR9azf-?Q1p= z`Y>%z#GqMseq}l0NqGN(A#*l_(WIhbjWNp}R<4UqMCud#`7JS zhQKW+a>``DhHTQw=!5m|Kl?Y9UTCP}NnUt){@Kf~TgYCN1CXDP(GbMwt5ACMD;Gfw zlIVPg#nn>C*4ERaLUo&vBbv<`8=jU@9b;3vyu>io79&3>-^s{0$Y30kCy0(Ia3IXn zyNcGToT=HS)svv6wmN#fC|J!fdaxTFe7i5ys5hT=?0D#<$TF`obXYPP7dN?X_Wp2Aco^kTYZTsq*5)82jB9c&iT7zn5xdmAy z^KWdI?E5TM*dKaz8#$J8F?U3e_AX1^MtWrs!2SKJLZf2k@xe?b33GCXs<)pl`#;UO zi2WF}EvH;GrH@w;#cX>@i|7V_+Zp|Wyyrhm1#yPnX&fL>0N;Wi$&+kF_5hs!%fE}Y z>uXW<^;Dq#>r?qB$)Kp4lkr!ou8|PH@o%rQ_ zfmPT6BnF`Xf1|NM5ttp@En^(Y%lU1XPjNAH*f0tV!*{WLd}FT~g3^PD^oQ5&w@&vf zcVBJa&(~L60YqxF*IWH>WF|C5H+BdOsmyUru|m@#+k>59pdoxs)CDqOePy74g+1D< zE2t6J-%r5&4p{Y+M5IEd2Lg~igjnZ1Nc0=op=y|5%{$K)>J+C)Q_82(O~bXRmvQ7R z1NtffA^I5Al6qE6Pv=BlL+5zzVwV0BUATBsUHqzg7v6WV zlBp;w`-F4T#+IJ%tgbv)>{;lKynE$KHuBZuu@K{0TIj`bqFN+~paX5n<|D4iV+beJO2M~4x@*=S(W?W__N*y_v<5R)r z_Oq_TCp3w9Ue?{|_1@i!OW+JM5;y)9l)w5>IEKd`K~#;+7~woEsqB{#WL_=*AUo&E zE5FPbe^1VU^z6U5+-A5Ja}cJ;5zGt7Bucs<;i>~TLFLS`17_z>w9QhBV0yO+r?w44 zynAupBzgjbQPvQpE-)r8K&UT%RN9|jJU~aCw+2II0c*C5Nhzpcx-x{3m@ou)7-6=G zw+bpM2g#2dZ;xnX5^lAog8yqI{3dsloZ*+~wfxJz|33>~Y5w8-{GT22-^Hx@!xmc< zgZIFybJ_*@i_N4Uv7xN84U;CM8zdzSLfc%YJX|Kzo^RrHXx6GJ*m9Pnz8!`}zungB zrIxTJ3LX3f8Ak2{$`AZ((pi@k5ne{)&CSid^D_N%H2ECU46D*Wx` zd*m){RDULhj_R!o#66ZuXMurWV2JBby(N)0`W`RhHhP{N6uX^r(Ehh7YIBW2TEsNoW(j5{9WIQBrngJ_vV6V2k`<4>Y@kv-*)t2K2RgD z2dn4_{oa0&F&)a~yI7H}8H4VChEKWj#4j7>%-}ZTe?MtfJfni3dt~2XuDOuE%``B{%qmJ!bD}Yn zE~hT6He$Vr=y=Y>b`uvKMXft1#VGVrn;KL6coz5k{DoKtKl z!4mq>I)W|$nTLp{aqXVaQ|;{ubLlMZwPpOtZD@j=eKer@C01HE!8cJv&?rb|hYp7L z=jOb1!9j!5d^3!zqE`A11dmJXmQK=DlI}HV2y_>26>MhSgiqop9MA)?{5T?Kd^Xjn zeQF^_NsH>k9J)S76L|8vxV|^Mw|s8le8H$48k6oY zr$Dp_qF9f*-8Ow((zSr^8Dqds3t^zcU3t*l4`?q8GPu~B&i(s{BHxi+zQsogGkD;h z!g+ZF9;q6ETd)uX5tJf2k2iaF)qc~vFzX}p>1!9E?z0to`H zrL*lI(Je~ry^8iOg`uS!9F6H=2S+KRFSrn4NF5kF;T@704lNakc`n3s`>OZ{?By7R zrji$m(57badqc}NZJNf~FNibDJVIiTL@+%<8A-e|kx%?$PUv;w7@0^10K%&d-_Ojm zi(wGOZ|RL~PmCcmp_6csZho9RgR)+9V^fI!<_-&_onoG%D(iRBZd)mO@lg;6(>QCt zSmN*sOrtOIXP+=T_a9;3g}nf3gC6 zg|)jc*9$Xem}IJvA~C8m5+euK+?0u?476>)w%&s{LVA1tLK|-cK1Cc~tC8$~P1NK0 zhZRZA*2wrj(=bT>`YGgWZuOO4|L+w_-Q4MiIO^w-xqCB@Bo4XU1p>Z*1wyE z>KY($M#7ZI39U~W9%!f~JkC7j%O>XQ8}mTN;jDp!ie?k*3n}XYGUm~wfE%s&*ZJS~ z!Aoe4zwJFd(A!;~Xx8J9wvKUjGpDybO}qAZ9#2nH{Bgem{kHWi94b z^rl&;Y2;)iTuN!7*)+O$gT@>q^aE zpntN>5QvEEYYL6Mzv%dGcGIm{|G3Cor5m3xTH#p>?F6b>=_-CL64~X8HZ^%}0*_gA zf|Bwd`-31vS?o0_~L`~ zW`|A7j1Wt_(UOl-_SVq=6OZTE=Trc; zJ&>^e5~Jr(?=8U0fD0TvrBs!YZj3A*g)B$-R`R3uO>r&rO!TICHUlckZ& z&s0WRet}?(43lthvnaT(4i2^>D{31qxU|7~6cN5@M99XeGYvixiIW5}!bftLm0V#} z4$}9x8f4$0k28C7dy?yPxw=r87Kx{a$Xd8LS|t^F&JCWp`nzetZobOPo2|BRaU!qL z@eO-N^>9lYLE|weW~Q*qP)VykwJ-{slwNx@rhXhVbk9Eg`&aA+s??G zRq%#<$t)h_)xH_5>M)$7HC>CVhN(i#dN`-TWQ#pH!ZJTOT}^z$nhW??kWtp+_punZR!$rCD!@$;Wce5$EGN5Lecabw*ZD(UY!qNX}cFe zu_=WsG49Ys_0r2mNOVUg$D&rx|SOuX+ZCDQYbvL~V^YA7X zonfzTJwqs?(qg1yWC3WULS{#4VASX`95Gp`qsCEp7A2pe%vQ13zx=~~nN77eT~UjR zfwby@J39V}rfR$K)p&C7m(EVnYZa^3DTY3sFByjIQW-2xLKy5bks*hkosJD>vf4h)OVagYzKYH8cZNewc8Ws@-=)lr zrQVuEvZfS$Npt;v4kIE{yws1gWKKDA>hgF_y|*(O=nOj57t6Xae?c$T5D6BGtWIDc zkGXWm6ERAh3tGeJdxRd3_&2T4>8c04Oar$n6pR}Zp$E-bzmi%I`GjH3dH3YT?7Y}% z#9T$Lr-_aQXjkX1wmr_uP8*Di8~i*iyiDD2l{8Nc}! zFZIk`)R+zL%!c$R*Z&cW`$%y5BfI`5-;M4-uCpj#M_dA&QQUsq9-n&18)g8nW5h1h zBt0FsSkrh@{6?4lDgke%sz~W1a}Y|e4GoOLuiE@s5HDTo8J*FxKSnICKoVq@CP0JM zLR!=Ox5KrvGjnhQsyJ_ERjcq`X7rU@f8}f#yIEC;SWXJ6w{-43l8{RJy*z+$0q-Pz zP%6ruyqQ?}`{v03>Q0EhVeJ}!m})?`2|oId2NPdIJ0y1V)}WAiZO)C!;-Mn6ZpaGO z*ml#|acXNUj6P`ycID~~RPL6fDk3Z?Jo34{j%IiAG=2mW(@#ql@bIAlCv@p!x*8{- zawj0vBF8i-{qR=+5wrp1y8)(<0cVjusMb)F2EC0?j#-~g9TssuEV&2~{f%E)JK`W?jIBP4-@&Rofnr(!$5Hhyv*;OueH+IafcWXrZ6(BoZ0>5-u#~rOpN~kPrk^If72lD{~;2S)J|RhO2_CjikB=AhCU_A(+ChUPe|NV z%e4ZcRg#%dq5#U5i#LyFn+h^g(n1jI)j?1(QbhbZ&*Jie|DZZ<#o>2@!~ej3-sjKT zej+n3ge}U<>}(m8M5}oZkYe{d3uF)PM1)|lr|_Qe74CQC3bYT9FANq{x1E7)~O z676M{nFgas&-Mhqhn=lK1oohm)>aoem=LAGHp7-Q28ah)`5UL@mDgF&R0eIx5__AGYb+JSyiBHWQGe@B~0;41HN}FW6EW@6d3(=Q~*=GWKrG7h6v2g~Q>+IKFJJEqMs`_nO z!Wl4Q!44vVP9JzIv3hKv84*YMiZKS56io`sc z;tWDwROSPr#CEY?IDEL3{Z-}{6q?QrN9>Tfk-^MNYj$vPt}@{ zF$czHFF$^c$ui8b{Vo)Q=q%F8k~1?K3?K|VsLs(1$RmogUKnW8@C=t9DusXsxLTYx zX6IYy4mPG^<%L~2!kC$m_=tDX%&Nh#ku}kXR-VDtfFxY0$r&(?It@YP5|0aRlP>eB zVY%-e)4z`P@@5q3w*XAyK^SZc6)IrPrNoYX!0coxVGm<%wMaohJD#Hx2g6}iaJFGC zN%NgooaFA|Qu&0utPcGXO(O&_)TT$h%7P3Cy+>K**kfUla^^%Ny<{TDyBbb6MnecL z+X3WoQkzd^cmOYrfR0EwW&&JZW$0%!r`&n0T0TnfRosS&Z?_M1>-zuiLI z%P4&R9s~eY)B0RPi^WT;rFn`O=(7u>sgqkawvDqOiEu{cerKKM$Yg8e+N>X8gjx}u zMCxRkMott;TsXMV`Kgnc;+~mBYzG}p!XX#aa9%hl_Sq#?d8b%fg+yL$xXeL?(dE{B z*ut*ZW(w1=R$+b{Tb{1Cc=rL^2*Sabl5FxC)6X33&gNFQqv(oA%`?3De@t^cukqA5xXL&KC=7a4B``m(&``lghtwSgzZ+En#?B!qc=g3 z0tHhlp=<%C&&Onzd%bSVP^JYo7ZSJ{LinJM0l*26WBTBbDtQ11^!(rm?yWgR^8{R7zRZfG+qv%CYtIpD*Apd;(%M|oF`F@>{v>oRTn<*ks$?OT~>gj25m|{ zq?iltC$PZHE;LX`!#@`VsML~KA)s39!&{M5A+6uj)`fjO1jp8_9FPo9w+H_m`MAMA z3x2;ELdo9psQ?MJV@LTN-=s%`hti8rmajGw0k0QFzXI{Hf-+z`nqWItaXmV59bD3s zT*PA&{C<(^P}0JejpiZr=kF#4E-LCX+*ki<=D!aAW&VfFM(|7A;s7vo`n!cCX>Diq zuOo1hvbFqz0*cSoy5h2G2(rR$Fgm6Swu0XG0zyG_>IH(M=)0e!wGZUOozmIEdcfMEdrG??BIbw{Y!$gOHyHN}fCp5GbXf1TZpoEki%jRt$kDpHPwRtr5)+jpgL`tr z480=yj^O5i)0*)h(8q#<6MzmnCba;*C_MEYS3g=yc8no<~hu+ZIJ_`kO&^^Js zpNx6OFCH|bGjbebt=ov$k8ZiuTt}FdEZj@7?jYG;wi0g8=`|O5Ibmru)BjA!LX~iM zs&SWzvlH3 zF$6TVpQVb0M4KP@GjehS@y3KIbvW6tC6T?nTBV1;k;uCIf(@Wc6_N%}?I+l|3r_-| zwJ1fJ6^OYgMa|9?Va|y~;UFB{;ENp!6y4}dl4@V)%>gGKiue%p5UqT7I;CE-0It{6 z!PLJHu}B{EBZGn9%3zap7dbP8^pDTRkH?cvpA74MzNYj43 z_y04%`lpc6|Eb#~XyYzy_QeDJT?_xJgCccHWn@znpKa~c*h&FJ1ugngGhqlwDz`wY zmib{Z0R_bMb-FRjdJGqPSHa$Gz6bfnoL6MKVu3Q|ET6NVpQUm$Yn6n%P;d+bp1jAL zGi_Zoe?Fg%^}Z=RQ-&v`mJUH~9s}ZkekGCSLmUv=;@vV#ZHy>tO%2Y5r%{;PlEUlV z-Z;a^-$Vu27MS@B4``!s9umhg@`(DYhC?}l-a}={P+odCfG}E!0|Y+u?7!0^%U*m>wd;=OO2bl4D8PR2)X$W!=XU7Zh zY}e7BVN0qtR-khKhBp54g|wn*7t(c+!MSwJh4&A;0-63Y!MeO2-5>Qb-e{A|Wq zP>9ko5TwmPZ@nV+(w}Ix8_z$Q^(VCZ)CaYw)0VVA@z>8x8nB^;ZhW(^vJk5IV=<9c z!&&Gs6?6OMCj#@bue)Y7QT^i}ZPJqo*0zFm*t=F}Qx%9E4w-iYR&Of*DcW8zT0Q)I z|2ybQab$t=QG8ND0T=sZnJbEK_*hw}p}>%+w$d#jpOQUP325{ij}uK>?moll4}WMjSoswI?e`7_)O@|aFms)ODp+t<7^ zN%Epya8!PSs48DN2Dd}G5|t|>6E7RxBMO~kxX8-hUPW1D`$6W+Jsoe2;@K6(jtGr5 zBZ`dX0?laNDo6jf-}I+TiG_;#-z^Bw^hDY39E{&7S(SMb_7d8+jHN`ZyrZ5Qhby4m zR%wz#!)&mA(G{x`RMged>%_Nug!;vbYtfNgcYHXoe-LKyZSLUh$Wf#P1BsGkvA#TV zH}rrEkfcZRk%lxKNMRPP#N+(7`&^BZPNkh4EzpXxxoAMy+iZY7w66tN+@3!Gs&P%O31~I zxP|@mlgc#_3LSJHoBN^NL%SY2cKHXwdvyIfjt-rf3bu2<siAAPw0da*8cHBPL-9{}2T#k9|2q&I3{(^>0D}rGmpD(?Q*vgG+bjvte`&Ngg2I zT{pu8wsc_qo#r{B+5yV(I>ebW+{$u=oXQ}szz)14@A$*a;nv%LO@q8FtEJl{4Ka;Q z0hLOXB!NmHz7TqzJH~vE^`g`vUU_*SQ!4C+9B*)c^Y-{<^YtFr^3B0SwKI=?!hI zt!-@_>5a@y{}KZ@(AxnV9KXK)=av4SI_Uqtfrjx{e7xhAu=MM0|He1!Z@wr?sDI>; zm=XZrmfq~b8kR%1IPK{h$m}@&4t|o`|^_tgzKCYE`Ygwz- zCZol>gw0!6{IITS=6~EdE!pvOWvd)ZH@kb8^v?2}e#*S>I^Ooa_OFZ;XI83RWl+kL2j|Yd)cRCW6(N0>yuW+n@#1YmLD$po5zp!9 z=uDoujhV4L$KQq4##Z4`V4zaU4yyF7;4X9+4a}nAg3^!EdD(l!fbvsnnGId~P!H_t2~+L7L3Nro<=V|h;J>7FEzo=!%5sEz&m+J5wzm>p z0`3+yKy{@HyVP(Z5$tV;f16jfNr}lR7BZfLAnPjig_I8kB#d)}^@dNdN-c3JL)lcv zpX5k!y!e#|CuQExQUKH3Qm*1sPM`v_8{*QtxtAccM)%Z2+Ks1=n+T0~S^8uM#KWUn zX^Sb$%uuV&YHeURrqm<*tGDLrpDVqBjVlRVcFK2$r>J)3?-M1Y+&ECO>(Fozrx|gc zL0yH@K;9C+lZ&I6`23VzBM3iYRM@A(irSj@N>m=$c1uMbNZv6?B6S4FGciD!I_kVDK}dEK!+(;b#wq8@4^L@6e80;Zrl_bB9wI?J=me z4`a>~lz)N|$Bv-(PzTtjzb_UCiI*?@AEwzrU??Kh7kFs3N~Kx@?34bJNX29&EKcq3P*%NYDLnqK>sDE_~PlvU#G9ZvOyw%Y=s)Q}VzQl+_+ zi79mzn!Jit67+DM2F~WNFmWo~)teWo)*A<&DOPoX9b~;&32Rr+C>3e?k0I(BGPlt* zuf*OLktQCtTmukJgJ0VJ5Du_1M6}Dt2(?#6E#?PF`7?!KU3zVgF}h|=)Rwi+Ur?uf zwjR9QAz1pWQ*LD>`yAY=9v&%e2T-U9uAJTpybwgl&<#8F#I83tCi#zdf2^o9V91tG|T&v5iuHnQ$O>wFf(KjTlYS z47GteXQ@yvrTP>iBtQ=KON`R5fMZwEneOfp5}KWq-H13OXyOc$Qv|l( zN12%n*p7L#4|&Gll_*#|zH!g|#Y6u(`}2>33+M(j?veF8IPW%~ImvS%>$*2m&hUO3 zsaa%dgL_STFv}CWxbBjxIj1`WcMge&v@r#N^;F8qTNpCSpchv=ybG=ZPTkneb+)Q1 zFK`1>Y!?*BJ&u|lfU8@KT%&NrDy2hYs!Mt^ac_QhNIz*`ta5W0>4aQQzIljgxE?Pf zhwF^%Pptgpcc_Ppi*|JvjNHC4!P+-y(%uxI-?6$)xQ^YZL+kj8cECDv(xW4~V}dEG zBI-!JWSN@E59zH0*Sgf{h_=PNYI2p`XL4VSdBJp@{r|A`jzN}o>y~I$+BPd~+qP}n zwzbl>ZQHh0sY=_wP*W@@ zRz`WFv)~L-p3!@d+vdZDRH2&By#E6RXy$zO7=1Z#^x*%Fud)7nFhI=2*2K}m=wFU; z6)mN8RfG>X3@M23+y&rHtVAc9jr6@L4&bCi9MaZbHJB5+gGV_~jwLVI8%Q1n1#Aq5D+e4z)K!1sr%1l1s z#|aubEB#2Qj|BN+CNnvF&bPJ*Axl+>sM3N8(NTLk^vCT1xTGb(#j_-qf9B zR5AmOu+klU5a?KwL-I*`7~P$~e*Yp^nYdnrtU6Y57cJEkPYF_6E^8?@RgMGgM=N-7Pk3GSOQAfZ!Wsl;hQU~9~cz(;xd-`~}T5K_X%5^fl`gkn~?=PT3t zm1bfd>C3^1d4(oXM$)j9c69eE?9n#!QMd7QcWAE|Mi6X9G&*HHbp}A(5I4wFOOAXz z)!JWg@(RZ5wE6We_GU3WL$+3n)lT3fsRUb~cmf?vG@+ycB)Ko>fAx|!3*?dh(h}8t z5tF|d#{Zt8ko*^Wle>+z<6l{xe?wB_|J|Pu{tw>sSO4jsyBzUXt4h(%?jPM*(XTG; ze+ta2leFZJ1yDvm7ptv1tNc}Lbp;ST^QrehA%lbU#pzLDNo2gUY{@PYy5rW$1Jw8c zdVOj>@&%;4FFT=(Icv+7MR#+nq3u~8v)5B^$N!vItPg3024Khx30cS7z#PH3GNrdO z`0jxW3QZc}NuExgscwj&NJE#SWvX5&+;DnBbk!2PFDif#QoneUL8vOoIT}E>-V>Hh zwmHUoscVl3-98gnofBL^l5~t@KM2j!JYE-%pQc{MP}ExZB?hi`&tJ6ycOigx-z*ic zL2BQqbvQlsVM|+H$-Ax)ycCOHsKULf5YM4s?KB`iXqnwtk1Jt3sXv+-IK6720#)1d zc$aUBFsOI38enJOb8SgV(Cw}k?$Ry8xl`M?^;mW0w47*hm+PZ{tW{nB6>KgT!GlKv z_f4!IhRS?_jcGgR?;l5mtg`%>QnPy7#FA)c*HCnC6E#q8ux|*DkF+(^5bdS@ETSyT z?65ro%x$dBKHJInHh&}Lsm^knwtM>7n8o?Xy{gKinvjGW+WNTeuCO}Ea@WyH`tmvz zX91=Qf31@We*zt| zubwN}7oGn>7|F+2cI`hQsl0>?G1jHdgK$fT)L59aJnk>++NilJ; zJS@fTqTi_CCzXZA@;>E9nYA=ym2)G!(x)zdK4+(YX8nGRoz?qJZMZZ*ZrWI9&lSW~ zm^Qcxb3}8XK(ElGUr-d<5FQaO0zh24+iNEQELjp~!r3{slHjmG1(HW)1J_a*k`y_i zJT>e`uC85)>CRnoq}In-!K`_*DbwV0r~04ko|MA^9tYCHhkXDKs?I+!Mk;m5Ewl3o z4)E-rP{vh=QeR)SJw3PKOCDKHIy>Z99EzB&LOUrFbilmWU_v(TJaC{FlxIDw+7s;B@%mC6#WjR-v%Q16ciHQRf1w}UHoR!-{E9ukRe>0dxkr9zL6b%kV8Q;m-GVE@Dk z5@4Y*j#fB;;VRcTQvh#HbwFJyGer~89*rh;0%Nl(>J!Kax!iCO@%5-y>bP0Sr!L;hj9Z!fv-Gh(;=D;azw+%uJj9v^->v){WI& zb*YZE|I0TuBm@$9J2TDrM3qXHnSFp>6V_yNSLUh)ViXoTnm#Oxq?VSDq^NQE#$*yb z-pK~MU24mQmWW^!gYo`6KofDoDcpVonwzDcUU!wv$RVCU1u_*xNN)*x$huMi*)d?n zThMW7?(l;!HRrcmUlMJQfqqH?rJ_9v^CpU$3i%3V)#(p}hP``oBox+GJ(D2Z=W^f_ z>>#J+&;b>g;v!c=N5Y;XX-blAO{sA6Ds`VRwf6n{yes1Qr0m1XZ-ByUNfUAKruPBQ zuMAPzS?&-JmuV-TX;hg*1rE}h1U~$hBB~PZ%>p8?NeU}C=-dKBf>@%CXkpvEjF9s* z!#s_b{sCBNCYbJ8BRkiSev}^bFn)`(OkyvMyN=(OF_#rR>rhE62sYy|&#h7&zch8x z5;Ps@;s#*P1O6ncH@F~M(>yfT?4nh`D4DG5=6$bQ_h}l3G}63U&u`MfTcz?=S>4b* z^p#rOZRjStJ6<`PKr^MUWSLEGo2I{42o1JfeSIReicdgEpAycJ*;{W9b=A7>1-PI- z$c($?pr3i^l!@rj46Y4qc~H1w<$ts?bj@+y%w!47x-XV)GH>mUUy|zn2N+Z{%BK>3-say ze%c(qfd}i$NAm#%{(v9Ciy+I08mFa_#Wlm9SdJKT;rz;2D#< zPa}({1t_0FFro=B;yIK;DpfKRK=p)E{`qw_fkQMxYv74}nfl8A_I~icO5yrXOegAS zXQOUo{nx?t1;qZ@Iqp__Rnihc`CtXHZPWe{qByK7B8)XaG^}YA(vqSk1=~bI0ovS> zdcYb?%67YzDT&|naFU@;4tV)#tww!dO+odU=*9f*2#u^Ae#i{ySrQ?UEI5!- zbXpnEQrc`DMDF3aT|K4R@}9H`G4Jn_VQ29SfaURETg?hvnu_|QkvT(@0qJLC(VGPwbU{nxvJ%D05}ry98dKtY&_Gx4qQmct+HB|C%%n z{^GZDt~zMYW3P%*ia-|$ywr|P;}&wsNFY}m+Ej!}VgjhgVwj*R=GRe>aU9kx&OmAz zaOQ^4g+=6Qw0r3L4v2IKakI`_mON4?Bbp94?`W>jm`BiUJ&$3MUTN%~uw{Y!-4iGweLD{_sLfM{N~Z|dQKOF_1O;Fy(8p>- zs-bEN$V9TG_!^16jMbcFtnM8%HxhRf9~gTJse{5ofM6s$xm5;ppIA{tR+U4gz_Vdw zUSgkL+A7Q2y|KBDbVc44=>^3*Yy+BWAliTI{Q%mde1qDfYM)E?s*f9Qx~gZRqG}Zw zBUjBpF@8X<^2blF9RrK|?Z@m-H`z%&_~SE>3fJxS`{v`Ri43%YoeshblAKWIF&<#h zVF`$G`li&d6Q6jkg!`^e@BDY(^IxukHM&3=V^_QY-C0(X`UlL#=4>R7VwAIZF;zmQ z@w(2iw0HVTW|qpjAL$Qq#d~54d6vRYDOLUWifSB?Wnzab)XI`WX4v!bh6%7P$E*4)*i;%wvYBe3CdGF+f(zg^Eo3{I3#DYrA$wrrD!6|#o*QjEF%Wc% zD6svi{F$OSXFJ(=+^r+7SL z)KH>2*u{u3yT1`_=1wxGQ7EcW4O0edWQQlKILwFH{Nd~*_TY_2N_ilF=wZIe3eP5f zPbzYx8p3^Wk#yYOU+cVHAXMe-18W@G3Y+SM89xHs_P?rlSKJVUx3A-*0mH@_b_d<(44;Vr+3KyKQ8hzqQT>Mw)y za>^V|5=``GIvZm_y*VO|e1){;u5R%Yl|GJC*KVd^W zp@*FpQ6f=!m5m8`*ZRz~_l*8t(aY`mW?o=H6zk=2V9ysCZNl9*h$D%Hw>DN_ZLm0i zCZr1c-u4!}tHG53oSJKIN3KnW6&|^{e_`d>dEuuG zJxZsbi?K6dQHFUp@Kw3EEJhZ(0l6{NjsrEsiiWe*;WOwM@MvNn)oq0z_1DoM-bqHm zc4T(dqquM#n;hm=acSf`vFRTQ%qD`oe#G=`@TIrxr`ecTIJh5kM-vX5xy@-3xRGX4 z=e)Y-Uf;?{mCi+ec{^N9-d^8GLr6ss))~y>r1W#8!?d0Hsww+huj+zKm$ZE^K9$7S z&-Rqx8?ghJY)bQPrR>{$fDQgK-LnPL!-CKyj~3hM?=$&|Yo*Yf0&+}ZcBpwlOJstD z!0(v!<433yY82~*8+r3J*+ENZ`1)OP^lGQMBrs8SZK4hgBJs=9!oxY133Te2mY_w} z3+fflT)#@nndvj*Ln<+VSAcHIu5@yRjx5-FRL_$n0#IBnxS@mA^s z)`xy}Cy`Icdy~y~L}HKop8U8;vp=%?3&P;4Vw4hpQIYDuHQj3e_p0=NXSV;BYHe25 z`K!Og)2Q5%gjxp`hJqqY9nwHfh!hvBEFq3XtcrbT(~;d2xvr6x4fRIlgHS;F@y#!a z;jHmib{&DwKa})p@M0^|X_m){@Av&IeD1d?Ly7>~C^v$DOb6*9hf3_kwrqYZC00hr zRSdS#rs%3@4S=l9V_`T4pxC>Nl6L!0SEWr?y)uN+ane^rSd;uu9$J~_55hkRllMtg zG&O|zDVQBlp^9oDzj+9?Z;NZyFjW_9m}F5g4cqIeF+A^kP%~EFhrpR?XX(zQlQ*I7J9;9t~viWm%(9X!BT`wfO1EG?CLd9Iqba&DUQKE*!B4~jDVXT*Q2s^4VP-l6~GF=%OqYQN14RzRAazEK&nnpW=ciZE# zx0%1>oq@=(7@M5S=xEGBOh%+IVmrZI?bJkjfd8rMqu&N_g8%t)u74N0{d|a1-Q(VC zRxCm#$fTJ}H+{|L4!;!7B*0_uc7VB!m=nQE)08Rk!}bRfFg}b;H*d#y`S=|#b+P1u zV54kYCLALsyyAz2De70!@`56}Ndu=me9J?hAfy1DsgYm`GpOv%}~E&#cfE*bgREFf7sOpO3bJ#~Fr=A>k@bW_0b) zKY+-I?;HGnhjBY?eFmYk#zyua0o>A4F!}=ce$EA`#*bD`CmollK-3}y5%{cQtE;=i#Xzsj-U#}}C0h6g5@l8|Um+}|ubkB$zo@@yQReWSIP6JQ9l#rOG*N)VqW|o(> zJ7chF<@j7wMFqAKLoCu6V@6{`sA;5N23U16)O!H|p`>`b;Q^(jDRtI{ptBH5Qs!Co zk93v17xAc6fr#-7^EXHcDu_DxL34e zZzCx(GbnJeX6^I|4-@No^?zkF!sYpiQBh}Ax zr98}q5esS|?{|k0ixwN3{|WZjX)swZSsL$;PYATjyn?VW6>SyNK$*TshfHaH^ppsrQhDrQ#m)fu zP5w}#1tJQ%Vk7&XdlHWE*U@uqf5v4SWBCSy0%L>m0Y;(U>HtO#gE4E{O{TP^G71c+ z8kk`hGII!*QEXn3lFhOG4<0qe*Py)gCX*?8gXFt!lGF+D)Oyh`q9ecoF- zc6rJme)|eq3_7R)%80B|i*Odip);`Fsp+wxhyc$GOF3ym^z|InV40jMmSNp&XO6ox zaXfXEy1L1?!TBS3u1nR2rRXcT!Tz{!oH~~r(!U7f@v>{sT$0FWi|`hv{_NcW`|Wu| z{jf5K-hKEiG)Vg?J$h^~*>1rNL1(b~iJY32amzB*`}@6%Z*U92=ZMos4B68}|0I46 zTl0XU=v08AVKeAf5D1U}!C<+4@`){tA zRl1XXMJqI?B)XEEfM;dext2a=4NPjosU`*ytTCT|^|;yWyatu0>7s1e=PEpLN{q<7)d6iKZ&MLruvJnBTvy2o>Bj5I zMSMls$S*+gLft4gWd41>^ZnzY5~EK5{>sp!H83fH@#1jy&yy3p(bXZzpRzXi?c*zW z?k57L?b#;2yPfY>Z)v6Q9yiFKe2+T$FR?34b%YKp^TbJYx*_SE~mM|1d(8GQJ!2II{@i1POk+ZmS?GK`gS>LFV7`A4*~7ii)^&7HW1q>=h34oY z*qY6S$Vj)JZ`_JI&YIz2Mtu8MUCNKI#-|ZA$|dZ1N~@F>vo2<%r*7wpsb&7XxsT8O z>G`i;E6q8Z4ec%E^;Z`oo>sp;^LJ5zL-nkTw9Vk zB59bi!cY~_ll!@IS?Y3&Hr_3C; zB`=R{FD|u)@kN3{%?oeYME=1d$fm>g)B+2tShJ+#1;}~a5_qfkTj_SiSb{cF9KnTZrtp_UKlK;-X8DkUVvnm-->NE=}Nh_-f~p(A@Y4oe4C8adCEga zFOcic)a?psJw*ZUeqxK6vr5D6Y3|O>=3IM*+j`vNv%UbON9}kGL7=6h9S|FXH`Z!4 z(Q3BQYBthh$=n-W`ch~_)QRaksL;0waLF-AS9@1$E8)Q`5YV})Dvwtu*{!cC_Y{|S z8ql}ZtVPlxHj<-}I6s2~{%$0aSIbkXVkUq$Exh%PcV|ViqzhGqET&VX&c` zvhoNc2Qf@KHeQTk2LX&#jys^7$o^D<(kt5s)PR>97DHKT51}Bq2&o7oH=MYlVQmPZ z@-Nb4q*djBy*fyJ_a0O=ZUpSRWc~65T4U1Y8rfsrhxAH~2E930E-=cDeoSxq4GVfn zSo+qygsn`K`|UAE^2&rrnUwxo{n<7%xkrhFX^*+WfBJ|jV)V#Z^&!G#1eR(|wOnvj ze64O-Bs&?DcrZyYW>UtDJT>;Lo|aa*jL^EMN-s7fQHw|jjdk53Bt;xSQoo;};d3e~ zg35yFD()qg43dm&RRvN+2(MzlG7!Zv_fR}G-%W&i`2MbZQfrtcc4PM$Raf1AVBieA z=C(oCDB$t4Qj2Lzed3Rejbf+duS=^yxMhcDw%j0lsFr=|Z%`$KkjOyYKb>}sUrLp; zehp_$O0_RuDFxCoC|Acl*r&*z^Fn>xD@IDfzUWGK|3TD@%Rex`DXbeWFh9e zJA9wW^gJ#z)6ut)t3)ii{A=Q*IXCob>mbP}|f<~PTsp76uPDPrT30fC$6)^3FjpJ^GVavcy00KS!ssPF} zyy6@QUGU$=@_MpA^+>n%zVp>2J$#pP$ncGknXQ&fG}CSv?iEIi_9eZHT{H(AZzQ~v zmr{z=lHlv5*7LY&_G0HIzku?FPBONPmZ>C%?liZ!5uvI4HhODL(>lF>G#XGz6X2pP z#FZ<$mEdMA$4?|#7$hxg$LkGeb!8IWN1N)aRtK!tBfT<8YbLW=pz_iIEA2pABsR3L zk+^w*TX?y_)_2oM>I`e&t#t${vdJTTMd5obR%|%ld_=WTNsMkDK2UKW+CGoSMUJlF z<&{Xjk}6`Ak5VM}Xi!XDK|H+yrwL6Z_q093X}wQz&CYy?zG8=wx#Ce|f$)Fs1NyFgiCw5SfK9`~to)%`*_!%(F& zXy&NX1aF}Y0Rv>yhOU&(jdjC1&c9@doM(%e70nIRMI*V2!d<|CFJ}#q0>1Kdn3T*9 zbu+b{O=k+2vPCW_tW8(ZAgyKtnz`z#DXfjuLxXLm18kc0#rE%Ql^6dwcp~TIVfY|L z-l8n;(QDo?&-62e?Pzp_<`kOynw;C)J7J}qSH1^B}YqzYHbrF-vir4Y=u_YAd(yw8lb{M zHX1TuknN%z>C_%LrbIQVDK{*r6qI(PK}yuI8bVQvOglS6ARE6|w#`O4=2kebyi?6Q z(~PV<0kWU3bYZC>7&mKM;~nhj6F|ANk<2d&nhEjxHsN!(fxb9SH`9TNCzq?qwh60O z_Yo#0*jT501=(XJWBLX8AY0zjzQGpg$=m@VbXwS1>^cSe%awKofQf! zb%uDJaUbiAzX36~b07>2E4=qwgGVSET*&6ly3IE9Mad$P0C|zmhO5a6YQTF_u7`v| z$Rz)m4Z!%Z8XYfU&H`a4W}jmh8IZkEjCjui<}+&t1-JzsMLx9cq&=Y0b)!h+yuse6 zb~r6-%l(-Q3vgBmMm=>4hQUR==zxPqp$>YSx)0uP@<4#7sMJ=~G^PKZEzm`)88b@1 z*(ihI+82AdNuMO!jUDmB(d4c%ZTD!K5)-MSW@??psI6 zSjEs^1MVFpUH(cCv0c%4ata#Z_l$5UMvQhLn% zbRTO^6Z)l5Z?V@sX0u3&OQr{m9CW2ya|K%OzA?xsJ8|n%r5D3fka0b4i)JY;(i+sF zCY333tF)D6qOB#oJxn{aR(ct4iH&}n7ph>$sX56)hJenr5ZSeMh<7{#s_F;R`Oqh@ zhuptvKHPY#-SLb2C;u(?=l#E7e@;qvE?<_Yf6_m$N4phXFfcG4Fj-eHS647NQLvbY zp9y&jSw9U$!DL`_-wK@HhXRKVqLkkc-ZnPgx(wfwrXGIoCHy4xK_?&7WQvLppknWB zBIj75VIoV87XTs!WrZLtOifl#85`3Nm>r7P$Rdn`^Pzsh#023dJvk;mDn5TDGbtub ztz%%MXQXHF|3(B&1k3~s9X8wtMVyYY`j6{;r`N#Tl&}A{{`LHyrDy-uyrloU&i|jj zG8)IfnjW-Y>1y2?HcnXMh#%fH9iMZgZXpMT0>2NDQmJ2|q{;?F1S9y}6nbDgfu*~q z;xv@0fU6`Qs!w(*yAhD!+5Hyl&l`>wFiU9F_o<7dn`316(k@>~k^ycag zX0ny~d3$*}-oc9(EmO+vetrAfPA(OyRQ4nY6!5U1pdX3h+xF^IMD!T3c1E+TZ~#!h zf}ghs%#(_#eiKMy|AH}6_>d@idPWVjwj_-J!oBoF@lTO0Pz<&n2LxKgb|J60~gxrnhcE{X&D(I8+2@#SoBczS+S~HD3)aV^@Xmv6aN_YR9!16e_MnRkB{))2554)DA1g z_c>~HZXu$$(ctmP88w?$AVM)MFDsfR<~yfoLr}vJ!zdv#!+@?)TEp2woJ^SL>SNro z?DKfZlY$9TT~TEoZhuu|EX{WYm{FRiRebnS+@jl8`@7W4SID=m-p=z_(!qWV+pC>7 zQ)h-O7(3CYOQe@V@TYTo=lSp9XhN)a7Rm8%A=v$5WA#|fGGPsW;e?|sud}kX+F82nUygxfC z<~=8@3A>j@&gwjb?KK~vXJyb_glD(jFj+k6fS6gWSi=%+LH!P!bbR-g{!ggu>&&WQ z3gmZ9(-}yLi^m|tPRE&e5F}EYd)UsIj_9O~+cY+C%IsAK zt0p+CPsrIrI)D6k(J>C0L%{6*-k3E*C}~Ku2#KA+TTmf zp)hM1(C|z;T)5xH`xE=7=;Wlp-J5q5imaY{SeO7nop+M&eagn2;5XvHeH%2KpO}eW zly}-jFuis!)2B(35!VQGelfmzLYP4s3)pcY2}6Am+lD{-U)Yr~Lj zBr(7XxM$(x_Oo*&}tL0-w z(;uxQm{S=jx9IHRwoFW;LsB*j#YZ&uP6UdN?Z#h2nhKdD8{#c~1&EP^Q9GH8UAHA& z%Ip0e-X07nD&Qx;$`XDG6d`1>X}G|xQ-AI_oJ@0*K_|o0lJUVT79Sfm%^t47gw8*7 zU~cQl=Dzqgda1q>2i*^B=I-Ogf}_2POSOL`o5lr>^35ipOb5`XOjsv>38STG{e~op z)O?Ax2(f0uW70rtK93eKV8SO~E{&CVX%U;-97LqCCl4Bkf zXBuKVkQ7O{6x0x7KL*M)fbna}eK3=*yps2cYh28@6u=|BVIk?qafBd?x@W(3qitk3 zI_SAbc`*@6AH&54uOYtB*l|KMEYjxpnH-if99#F_{Z2R5kYs4td@^NsY7{sbeZvV~ z7Zkcqi7vkK|r=40CM=yj?F zO)-m@wG3kDWfp|_ij8}-5_D`%ix&|^W#1sJeWUQbtRz{T7+O4au{vf6)X zeTVqH`p0+!;fe6e!QE6vE&_=?L!h+Gzo3A&UL41t^oeP9OVYv`QpU|s5WkcUX`XuY zTOIY3l~~m{X5h*|4m?|Nfi(7Ft~5F>Wil}*-ifqidzO(2SKd{0SanOQZ#8(o{faXE zxP|wZ_Mx&Xt1VQW{s{+y-cq=xJ8p2dE?uel@kk#sEyQQ zTZO}R|7tXqf)1Cwn#18nsYO`HOp)}Ql zhtDAwMUJ|CvnsO`qF_NyG-8{AiHpkp*&HV1*5@RN~PRlu zWlw({R%p~TQL=GERwGr~s47QC zR<4A)aoVC;Jz*t&U4nx+H}#910NBg}e4L+E?=IPwId@`hxT7(_%Gu9Fr4b);Aw=qm z;SMN<`~{K~B7HxC*AsZSo;HPq-8 zSJPb2_eL>M()gtZcXnA!R}}0uWz_Vs7TTf7i;jk%;9Me3<}ky10h(XdwNSgIIB(eo zFNKlcOjOYH1y003(5s>YMi=G_5$&>G(05vl7D~{XE=SE?WsJ;zT?uMXc$aPvM1u$h zqDcWo+pl^RzfdxJAG6fF-gVB!A6j&hScxJaXmkpJe1C>NQ;G zrkE)yby_G{@R@nOUv=j1DtBw~u%CoDxc#8Srn~MezzaX519`1wpAJ8+tov=_T%{kr zzi9I;`-|9nk?A~MJbBFOniUqjx2it|fhdP77yYnr{YoG_W0nnu%PW`EiD{s)`J;%z zy}&(xp~zF8uS_?0>sQj){Y1ZC_2b|7$0gqukV4+}I(uZ)20M7d-6jRC8#lX3cj! zz_XGA#;=d#U{i<5cRTXyYzFW{8ow*{A9n4Zum|t(e-VLV;p>osFY?Py@OLm+?*E1e z{697$Wjp)72=BkBK&qAh$$L$;)?78(mA_vH5t*s=A?)W!C)172{?z5eGIM%Mka(jW&MiW8=q)iNV zRl!=p8KSu`r_|F#wuJiw!wYyNNhe5;Fu{};BTLaSQYzxVGLMHhOYAquA-=RruHAqy z?b3|z&SVRn;jshTU0~Pomv)Jk$=C`!-xBJuUAS#8BuCRkeLOe4zHTs1H`Wz&(0&Pe zSe2^`x_$bbSHy8??C=BbOLpGb--H)r&_w#v_2+^z_J&G4w|*Vlp!}H2*Hz<>vBXAK z7N5XO(pDXcHl*1zuP@oTQ}&muBmB9iu_Wo?%!Xv|P|zi|cQ0mk5U?nq)H3Y#4IuR? zNuvEjnd#T&o&e(~gHklVflx1hq!gYteiMZLQbCLJFrYLfotYo_%JngXKld0yg9 zWT;o$A}8=gMWRTr*4kphVVFuK+^A!Ze9K}*kYh1eKQnilic1};myAdt*XG@HdZW-o zx;K<{ub15Yk}(-!^IhAvN#{-P$XI9}5`7M?F)n-Q1^||%hpd<*FA56SjXrzt@sVap z@Je%^K>n(ty-b@zbGZS`-O~`yg$LCMc5^nU@cj|R@bp_`X*k)y!2!3x=wo=-dG?6N zkdaG=MZ?2~v@2GIvWq$thl;sztT#WkmG1WcR-#@{q7KvUV~4#~_XW5P7JDYhjO~en!Ws*H;mw*jO*gO4673 ze|t91z~EvIF6{p<{T*9KYdx|ltXZvd;%Z_8w`WZ!{IE_&MQWR^(BpcV%lCRZbN=B?&>i7cu>E;JM9@0%+7`8(aeC*Ax0x$Q-AHNXn4@&$V z(w+0HH`wpnD7WmbXoHxt9tB7;Pc8n}5bg>28#$`gFPAW#udqz0sZ5TBn&D(o&cEiW z-4$ghQmWH#)0<39S%xFrypjwwVaH2~)4VV!MP*NaHyKt!Dz>RDsdNSz*cpvuWx_Fn zbVd~o$Zyu3P3W`ol&2Nm6^SN^_r}LH2Q`%6HH*RA(PL1)J_M)8P->$G{VY9?SSub+ zDMn~4RrWjc(WLk_SCpXW0+_b-Z(^_=XZjM6u`Z2QRjbE*7HDfTS$AX+3%N@!B?)j` z3cE`45{$BF$PJ5$3(GlJBX9Vr@n57%kYj3*jDm8D?3C3Qg@V1b+Zme+?K|RbWbz9d zt)A?2ls#ZOE=c6{WwX<7%*r25oJ8Q3veZ-ZV2>jXliESMGcao-&HzPtfq1L+{eb|I zn~k$5lIF-xDc9sKokYTlwo3IJjpm}jWN0uA9I*S`Mn1VDQL#$!WgJ|lqI3#=s);I> zE@v_-$r>kjPMd{t*X&~g>XBQscllG%waiLOm&uA38=Pq`J0N>eKsY`2yU8D4+#QV% z|q?>$$rPoWlYsNln-wm8< zIn)ju1lY7Pel)J<$FNL68@OC6r^sn@?8$GD9r&8C%Sr6g++naHd%J0aM7slf#mEt# z7Jj-E>V26rvtj*lt$;MmWq z8gnf0@4e~!q};W8;%a?{2h>>2&0tv8y24;A({bSN$S6 z_6o_^Y!EJzYPm>ec{oj>Id7qKnlTY(mXR3OH2X@rO_3|Aigz2zNakW}Zc8%6Pim$H z-KtY$(gxG; z@ydrsQFB{WZRyZ~{cKVn#-E;=I8LJ0kQvP*gS^48M!eAxiC!VR0_^5Il!82J!O>*C zrge8dTpL=m@5ktGa5WKtUVCk2EqPxa4$pWua*@?6kH?f=+IEdc6a8 zLxi?l%bURm`2o35n|VWlWmlp?2lN0sbi}RhbO8%8vq$7j&PE|Hppl_zhx}nHZu8)Y&SErUn#O`WgG;MFs_DBXnziqIUU@nadMG85i|P z+ZPo89-T8DJ&&`F8bz7o3s7TY*_Z&1d3*4e`vl@ZK0Sze4r$V0TK}BHI$Lb%iMwL- zzKynlH57t@Fy4jvppG{d7M&t2!?(u?4co|R6{Sx@{5~vZ^zLbO*uxs{cnW%TPjnl&>BeT%;uod}evpgtO9 zdNh_Rkk+ci&j!qmktvE&@%jdychRTr0A%8&IyBDSD$RrCuEw;#Za>ESD6^Z|0?C4(B>E2Qn`_qYF^! zIq$6QlR*)xy#kJA5g81MDE*|Sntnu_K7j}x$s`6GLT%TCH}-c&2gGp3fZ2F_y&unm zF?3>esYjf9)}y8aO#T?t+Xc@K8FWbRYRt$bpP+xCTalVFo1m|Z5E!JtL$^ZzF1i)6 za5QqUHgNop<6gww$i&|HYd+gQ&-`LVEvZ3zl#hmKn`Mto&f{)g^2PC&gUEZJh(LK^ zd13rU*39@OObeJ6i^p&z5l6d`(H(j)v8)**k40~;iMt5gRSV|S}f;V-~yN}?VyUG9spqG z`NM{ljKqudEaO8G^13dkL6i6jYCbp3J^ZOIr=9R;3*euCj)#8q)NKx?;5brx`SHD} zbf@22+pTnFxzD@Xc0IuMK-cFd{loOMr{)8P^ff1Q_6l&wj)yKBT?C;?F%r_J?EV%U z+R20~2lU7z))*@;&O3k@*{Shiw&E!nj!gLdYI@=O9V+ZE19-ZQHhO+jdXewr$(SboaDv+qP{_Piq=q z?Y+-=?|tXqyYG2%D(a8wh>nV=svmOY%9Y7(*52&>gx++YsEfpr0oGCI;i&gZ;44*kCT3GLq7Rs+wX6Us; z_i37xH>C1kcEXmPchxDWlvdi}37W=LV)NLqK)kRp4IJ02oKb3^4^h+>6&lTwoY5Nw zowN*1$ezsy`ZkKoFNTQ4|by!rjcNo;A`k8ft4U64pwdfFz1CU=yYrKE!SI{bn+4}6rPC4 z9GGQtbZv6EP5W;2KVD;d=Lk+1BHii;P*HXZapnz-3v2DkBSEG`?qFVvMhz*Uu-!a> zFUuW4#az7|Rzs{s`6Hj=lP>QQ#RQeGWBLUd&BNKk(n)o*P)Z7vXctsFy(+X{FHfh+ zs|K_;4LbE*n3FOzd)#1%XNQP?4d*^%6(m%zV+UB7xvk9pz^qy>GLxI5avzC^Svs|w zjarvh^XO~`$7jLHCW=6$%CwCrE!ctBmibkwn%gKv$}BzPBi017q#=+TfgM+)R;8oo zm;-;r9!un~2(gISwC`vEh;%7)+B}&Zk*~oU?STm98Nq?SryVQZWk%5pdd^HD!`WXg zL_6S^WITu5rR149!Ncn&?!G6=d;#{vFR;i3%T$ibpQ<5b;pC`|Ozi_l_1bzn1^!m} zDCxY1GM25@9OwR8{8U-L6>wsoyxf5>%!pIkJm|GOGO-ZZh^*`mYy~0z>aQFDXaib) z9mzM!{t12WrS^507nmECs=X(mqH3d+OZ3X3-65s=+s2_K4zPAB z*XrmJ??!980J_XH`kAF?QU%_wYc<*P)=qJL&2#nn-B+SBc*M2d`}6)PM+q}Xk4G0k zz|2zjv<$q$0m(^KGS`r`8&xzj-|)#H+I|E52g2MB5aCs_ElWR!VqT#WZy9Y-bs25p zrzgHWxeqTCIEtY-4&TWf`PQG5xGyq_TtiE?Qn^DD<1gJ%ZGb0VXCUD^l;VKXhePIo z_QEE1`Y~^;p8W}*TQ^BljjO;<9I@sCkL^;<3v}th35|Wi$EA|Xjq=2Bm0cp#*6=(g zPA}A&r4a02d)Et6QH^9pOvOVim}%*$8bcrH$0m%${m6-XkS}{@YPx2;Jm4uI_?#bu zU_Y7N{PwPEHh;@9^3LQ4`-TfezHptmhd6D{6lZ&6YilesX=vd-8hu^6ft~zti}j0t z&)a;D>hN>A$-}L~haCJ?8#ZSB?fFjz>HX&dB@CdlF8Es?F4cecj{WD6`v+n44+iP~ z6NdU{iTy7;(m$q&{xYlSwG*U%2&xaqmmnYk5f)O4inQ22aL#CyZtgI3wcK6G+r$5- zkw-elFL=zG%Vo>_+dr5jubW)2>&*tY$BUY{yswjnbNvKl051>TAnc&g15+?%w32^# zd8GZ}<)In+b?LtF4QIfRHCZ-{|HM|B!*KP^Cv`lItKmRNlU&Osoi{d%Do^ zT)zQZXon5Gn;MR_U&=($fs}2X)YRwKu_9Zl< z*l!mwv{BCtDj%57SP%y(G@sV7u9;X>rSS1_4=o zczJ3vIOG}p%A8+MpQg@e|yD*u@f z#MqA94Ut)nnzo^jaV0J~l75YR6Q{#b5S||V!T*JY`!#BT59A#~VgVhC@Ds*^`VhNO z`@2uA(hF{M3nQ8M#TNs8?*YyF5hRpp10K`5_H35k*4ZOZ$w`a#lZm!P@M2gVniIJp zv8sDewIg1zZw9BxlV;4nM>|7tvr>GFcOER^2t|+GjAQUeG5HVHzXvy|d*K1XCoD}B z2TgP$n91!^DpA%}467lz>i9^vU?%lZ&UXF)6%(D24tfAU!Tz`Wk=lQ-!vEjlPJlq@ zzfz@u6c50_+;ETNvUPp+@~6$aI&_zLg=;6W1x2!iAOsc`r8{Q_FNrc6w}~mymG)T( z3X1m^d_ixtI~g{Rx<>TAuGI{u=V`l{7mnWtPb)WHnrk!j1CG$DcYUM5A6k7^4g$Xq+eA zXgbL(TR8@_mO9#9{t$RAp&4_9I>M=Q^xHmOrh5hX9ei zidRKL9eGRF9Iq073XKY9d`e~oGAr^e33^I>wcRjVDK9RV9?#C6ntrK7Z6cAF^6raC zQ7$(5Fmk~5r)wDcCDWnpai@uii5U56nJi~TRZUomJExhl#?h4BZC>vLGR|H@$n7FR zovb>i9OwF8>#$k92Uy+91GHrxd8XByZ7o<+UhDLeR|*ug%)p@iv&b#!UwkBXv*wyi?f`lE|LLSM9qEe+zE@GRJj12>VeJ{nAOGM{*#Jlgyj?c2-5mLx%tCxR3LVll)~ zqO38P7;r>lNO3yAQfsLnLs%krsc#!%P;~gBs=OHDLL@s;vBbm95O-A$ll(AcI(3H~ z3p2SjJq2A47lJS0mqe(@=d=`|(k$w)-E3816I!*|8~#EZdK&9SgBdE-Obw6K6#1YR z87a)ZmS_ffBJteZ%$=sV1vc=2Ot~q%Qz5OFlk)w%_Zm{#;{#LpHRD3cZv;`0VC?-@ zKI-(ZDPd$u?QRq)zM5<)X-1mR1_BXg1lgZ;O5M5^6qwe>(xv-V47hu0Q?prxNre}^ z3@@b$p?6X#**o|x&e)!Nn?4_JW_$}pJ zf&(`5L+G05?!K#)V|gMWu@YW`%=C1J5mNTFa+`i^VzvjOb(?2xz}O~fNRkYi_EzYQ znJ8~`AESU-jBgh+5`0*gJ~}b98O;!>he6T~>w?!nTynbM-H`1SG>ro;)tBHWY#lo- z#&7)i<#Q$IyZ52EEf(cu2ycw+ID#Q@#=#MWA##R^()AzEgy!tOc&e3Pd??a~SarxV zh`g}aDc)s0Q!$R$VJ&U&pivNG;|}D0PZ~rU zr#6D9*@qm`CJMa$8O6XquykAkIB?7V)@nuRKiDq92G-U9bYWogUv^2A%8t{92*QV4 z0_}*RgwZ|=T}UR97I$pXZBa6ph15CQk3J4kx`4y4924l;qNzNII*H=$CMBO>HMd{r zoWZu&F+V6mdB;{w&OyR5o^)o;n2`K~z7K+LCk&C>A6FqOIKut~6CALQChSg$Mp+z+Wn z@@9s`XZEaD8bx<3X`cnle@nrHRZ@>5Ol6$Tosgt%;rk|`_*Xlb<-JV{uNaOlKmpJ6;vjSjIA z_`{FcAp4}C+pEzKuc;F%qus}E0*PWvbjo&c+u2rMJ^TPM19m5I>m;l_ZF^^RHv zG!CKTo5YZCmzsn{fszvR50T;_4a#rckyA34kn?ejZGL>nMcI6b-=E=Er_1DP5!#l- z(_cY7@fYsp8J!>R5?Sgoe^HtW1JVgF&oX_ZnScLS<5Ti8-sgwASnGxPp(mi;Eu!@T zg^m*2Ip149KUhv=FUmRCJTInN*NciByWg+g{;YO)*L5$u8pf>{GQh_(h^f#;7 z?hxTBb%2qUFaSc=E1JuaQrwGV!AMgS05rxSiY9DIjY9r=?6lK%kG0GX_zzqL=kKdq z3b;{q0Sw>&O!jd9yT`=846ri(#p>lm^FjeJB82Qbx3p_PeCzFBC)kGs>65a@-oOZR zA>~gLnXAxr2Uz)vRayHC1ifG!d-2%0eKC4qGRAZi`qrAH-dVLC>z#LJq3rz%Ykvd^n}1ywg~cT@bc-d z_@BQNt$+7R`ESZG0KE8DkB5KJwEq)nlyuZy)d#A9Ad1W?d45#`6`{){2p-gct}DJ- zaGj^Kb<0|->hs&(VN{If!^nGA9A@4KBwGw+sgpE2&gT88dpvnPqqoxyI5wG)iQVJ< zBUEspi6x8}W1}M*$Q(zpHJA`b>c4IP%mw#q_dqDMtkJwRTRfuFvHPoEr%G->U8jCT z5unWT*|gVRMfPsrm~JaL51J4hvI!SHY(rxcIhTX99=OXrXB&_+GZ;2c=HI*koaNN) zc@(YLsfF-SBPk7K43XO$u)eQrO%I@<#^ANgj zAr1yMFaj$cgu9lZlavS9%b~$mWT9=btBhfTSR8Ql~4MuW)-N@J;A&Gh?h?xO1XDO6*y`vgPoOV)F(BT>15bDCw- zDDQwFd>!v$(yy4WadxK&>e%Xvx_)!FJP(fUZ~Y4Hi~!|w#IfA1oy21?XIY*;5mYb*+Ps|s@O%NoX&LDmCuV-)raVTje# zvS1l@fOndu8Puv#&fDW=I&gOQ1 zW;y-eT!fnLAC}>~?W>~@ceucCveFci(Xfj1B?t_J4mtDb>!E{ml!WiC7zRN7o|<%P&X%3`X;kZ=xoCqCQg^NV49#U_6nU@E0P8w2c-sG zx@U>f_WTvj4po8~gUOMHMb1WOZI)bKJRxEF?sp|Ex2WajeC=b8mHG;##bS$d*TO+u zaq`u33+Akc!&0a+5ABoc?)IjN6J5v!*sH-}PH(-aj%pigRh_K}+3&6|D>~E;4f(9I zC{>pZS!qs7ya}7Lrr0FX0j33@k{YNVHF%JfMAZHuH9#Vh zqem+;m2*fb%}6_Z%0UUqg{LtGKpuz%F&E8oH4 zmAgZqXwAze(j7RV>g`UbK~}b#V(R_aUFEvg?Vjrxm2~m(=p6igKeAUnsy4)SevOOj z)Jm5N#lna;6p!F(1WNKe(vh5Nf%r|uKwo``I9VmxKCR#6-4J?y@OOVEnapu?w$JUhGkS0+29~?z zY43r(TltC~bHlNAGNuJopV@mniuAuM<$eQ9lsU!%xhde(IGjKf_&wfS7!{lF;f0 zC*xRjkaA|OG8V(5c<P7WRW16#ulmv6m|O)s)1XOn?0X)w*zh=%f*0i-cj%r%VCPE>7;pi z%V+wQu1E1|Z_e@}aR}TZJ7Tc!8Nx8uBH-Xw7+SX>-ryVnjh5M<@a>m@r@YVKPckER z7@WPQ_z;SUK>e2VeITT;u3_UD!Q*NYzEB4=F__JfqORx;sZ|p?M3Pjb?0_H8B^fEw zAOR_p`~pl8Jt*FMOh$o|MT%SQW0;B<>~1=%RRbR-0?YvzefRgDEX184c2d?KuH=w^ z2MzfD18DG1%p}VVz)UFFCw4APwGBrX3DLh%B;dcuLpU*D6 z2ZAs|Gurs8*}p(~A{Ih05^k%BSGXrwk-;2$j88Xg;jq?xcd zGtgR784XgwgjP*4G09%_YuMMZ#J-n%YmONPLGY9|TAglmj>RqbTu0E#RH<|YrIt^B zj`n;tHt;d$W{z?5(}w(Q7k(!v#2h%j*EB|Ak?z> z-2iyP00jPgK;a3g5;!9DMlqPQO7+#N!gb>f~6kDWX~X!N%|Z<`FK>J3jKoD@06J!{c4(n}ke~*;6yKQbL4aX&1x?9MfnYs=Yl`ysG6Ot1`|_zF zv;E)iwhp0PMp~%rGcxy#mB$JYNk>QHuVCBm-`lUommpK@1P2NONOjn2qp`8JS!x4Y zFqFW5{FD%<$ZlD(S011Z?f={`cb0<(%BJ(|mQIM7VlF3+@N}~Ktmg4@K9eZ>$+p^k zBC(zLkcJ)O#5T9CJLU?z($bOYDzITY%AlLMZXI>d*y+gHS?$+$1 zsKhU;b|L})5N8HGR_sD2$QVMC-0y9@TC|l+$ z=-UawF-Hty8pnhliuWrh9u{#L+t76YeRA`XL zAu2M^WM>LgCG4gKsj-8?@N@59a;WQ0(b_+ZEokx9Llc${3>*i4>CNRVUk`+b9lWyT zN?0AhBYOGgrXV}mKzE&u`aFOgx7PoLV7OOK>N9zme=x#$Lx#DPcZl2(PV@_9{NSAa zNguzbM>NsXPxFbT{=%-Yzq60_2^Z)WhxPdt{~jOsksZ4;^YUh&C719T%p2wa#ss_9 ziz5orSs_>;(3FtGA?Sm+cpSsWMJ$0xv_WM7W4OQo4YU1L_LM_BoKT2co?`~Ai9f6q zC}yd{3zQu3^-p~QmI^fA8K7h({6{bZ$`^p0&40 zLjWOk$0Zvi8hcz_lAppp9|~@;v>6;qv=CqENUdC86W#2HroL;`m4d%QqEQ0p`Rg0S zqUHvy3P$08Zh7kqVKMklb&^rHc zT8tkF@M4fyg!e^>qzxVB#+s)K(9SXi8*1SJZ$BM)cg5f;xBKr~T$2 zgIY-gfs=1GNwGM)m{=Zwe^RjrhKkzibC-z*;` z6D8S(vz+2%#yOZzY4$Z~`hagAN9m%!tQj;b*9t_P3~bG9cs+SY_J=I6#{&j4$inOz z((Cu&=Im>`MLGknEvRd-wKWpc8@v|Q{bt7wP`BzsUvk;28qI~ZGXHL}2D{PA4V-qR zQT+6!gkfxy8KZ*1ju#h!tv3HVClK4ip)DM9^gyK1(Iz$8kH4(yOkH-z0XJ0U-}Vsx zZMFm8J^jb3`IjY=lc+7fD1Z^VWAW7MT7jc(uNo`@xsj4X{Y&ToRuNfQ7DcEPw>{}P zy;;~(!8etJAOaoW&6s?bWjmxg9%I4v6F1MJXYB3y1>j7F$c9_F*BnIlimP?aVP3E^ zyv26S$O5croLF$;hmr>pCxUeUE?LeWRV2Y@WX`J|F|Nl@X|tjR1BZdt;VBdDp+|bJ zi-Wv$IDo{NBtXi8OuQGhQxMDFnR0lzp2+kGjl6Y4KWs*9PoHwYbCBk$N z=5T1m=<9(rdZ2R_O!CV#^6ntjsgXD&7={Izx_RZ92pWDDxP0CaDqe z*(p6>KWx8bJ>Y0Ph+)tW$5n!@;c_&(j(G_?L_KD0-%_uF(%8Af{Z1xA(?JfCy#PM< z4#!?C#BXK2%D2O#pcOVHbt~BKu5Q(}a}Nj|vCIcfY?c%1#58|GS|1`xr8;#4^^s?N zv@1K}Ef2Uxa28ScCd6KHq@F*_lu28!K3j3y$pdHZX;#~#6R2%+D+%db3W^$^V5!{n z3jIedY|^0&H3nEQ5r4a4r2YfE_YZSJWoH8;tA7aJ0q%wi3K+iAY%5i20*BIl^dOgP z`QiBCFc3l#5@;mT0^!dNYH-?hR+3((gI0dv=-U`K5B&+|`|!8Z{Keg+GJ&z~g4PQy zK6yVMIcGe!7kq!;y-@orPM(|h>0_BO6z{dia)7x=$)GZE)sLQG42NTd_m@GXLUF>f zvqUqKm<&OJ4`Yx)`zka)!?jTN*S}jXJqcMYP(~?4_Ij$i1Z7eSSrr8E6kCUY7eJI? z%n#|xs|7n-6HRjG5}RS%A4gy^SHMJg_$f0qqT$HXtdx@?^6ZnQ#XknxIk}~P$Btv` z3(*GkY3wDIbrv2zLQAFb$bUL#bgE?-9>%19YC+Yex3L~+y%gn3TRT)(q_(<6W2Mq%k&nv`+gKP= zaN$k`++x4ciz{Q^YL$=fgGC0rsl1DFPbFiOpGx}%?}x!OGP~M+0j14#?m-9fY+J-; zD>em}vqB`5Om9Mn$u;%8Xqu10X5qqEYGY>=fA*%CM0YR6Bn0nyI`)YcB+=MxKrGt4}OG@cRRiI$d49`vB#x^N?~ohAH+>z z*E+aoyr*q!6>vVZ;-_a#?2M1sCvI4bd^l1VLYezU#kGQkd9%jyb8%*)yPU%cg)z+m zJR&5F(n(MA9*AkDEk#B+X%3``yesiJ{UmGi@{UHWXj6>-Kj#cFGFU_LNdEHl927EJ z@dHpmcYo`0`=7My|3Uf)JDM0c|BWJr=3PULqQd(bHgZ*IypSNAAQBZRF%kqOqEj|a zQnP+*XzNEn&wd4b_jwQkE1_ldpDv#^RS_uo;WkXnPtzGrH@r`#es6E?Ao?((z&RLl z2QaoJ@mB(H#FU517_tTWvt3oGcOt3q#l^#U(`0PAZ##Q$WNP9HGo<2Ki8$#`HhyeFz>J!Z4`cl(L z8-~*%eQ5^g6dk?F#c~rwz5|mu9yLn))|NhD^)=Yi>T&&3z5Q62{&z!)R+PxPJ$;5W zAH87FIPnC6!*z=!Y%WTWGkvbQpB5hC9Ek>v)n5|U5O*5Ti($4LWh2em)Ytdu+pZjX z3|HnJ)^}yUs5;IoD{Ux>R^D3D4C5EN^gp8l6{9G=^Bt(Y5uikQ#jd8%EsgfFQ7(Ea zK;zaOQeC~qqH~sL$ZDjs&4oOq4TT*=&(1l@c9- zJtfl&tR3i%H(BZ&+u^qjMqxb_9%-x+#f4XwqT;f$?m_ktwH!>QQZ}H~%BDCr4-G-i zo+(Sk3cjMb%(q04slXy!Z7J}>a(PTA0-7}*^{neL3Bt7rZ(im%hBEL~ko^MOLi9Oa z7ZeYBLX(Cp9GGu2yZ$5qYnv#dO0+E;f5LsExT#@;*vmQwWIVTv3Auc%CU z`aJkobMSL_U^#V)3aKy68KI((!oQ;%A3;+eQG?c7IKGd0)|yI1wMJ7XOJ$b4Q-Pf} zg+L}6e6eYS+rz3xP7)&@@&-ORV8R$5pcs zlY*m(sfD|sv4K56r0|bRBSqS2Lj{mHrrvBMu9n3jJ3lX!SMZCt8mduF?;)izUVlEm z5t3G3v%7Ao&V+bO=7osn8HGW3UUH&#k8u{Ya<$HABo=p)A)A=m7HiCcEC^lv$zl4Y z^SaCT{-((8Yj&UtVEjqUe3cqf`|1I8J{ zfFT<+Hw~J44Z}NIq^Cr8`iLh`B~;Bc)qy0S5oy`da%|dxO35v2HZ0kVC2BR*_FU(O z7gybObkJ9=Se<4(2$+;>>^v;bt=fv$z!MGE6hJ!GQEUzxM-S)iqI-eOw zwKK$g&uzxlQn6VENT=~ys+;C+(qwGJo3r^HYpJBFBDesQ&bj^HIQeEkxX^5ijgL2^PE*Z zFWR7tnbv5xDy@)A{b9^vLY*a5w=?q4Fvt$VoifZZay5}LqRK?|XCEuuzt!u+EiO?? zj%*fN3I3uMTe9OuneruTERYG7Ti;6ebiEMXp306&Eq9)hv+nqIee4+{f*O2!F4S<9 zeqSOD`S#iWeSn-2&WKGD+wB6&j@&)>>%^la&&I>t-oD90w8i8Vol@D$S`H2&KbE3=Ut+M3 zEJ;6cD7VyZ;Z4(ZZjg^3EL<|LDwLT^64Y`#dz-@HI=-M%w%(w1ItHM3HQvLFc>-L9 zug5R*f zQV{mx@fp_@FH)&+lg~T(jSfQy$}p+aqH|s)EGKd`!e2^fc;@FWm{@gS#%o@jLxvwD zM98^O~PAK6vzkrWmbRv2>$!)2jXSi=~J zE@w=}Rk9z6S>552rP9l~p^s(f!66Qzl+^LqWHk;QR5IMRoxSi=E@r~P2>@l>$#^@p zkdq+TcKHcif)XMkqA^v?dl?nc2w6Smh+Cm%Xo#V-wRjSB6+`iHpiAGZ31_#v&eL+R z&ao98VV9b|lUs>=`8lZ%2>8otsxs&*BI$wbC2(&Sic@bM3rPzrvmbzxCR(L^=!lUe5rXxB%yb(~iDj@rkCI))J z01qh{4QKc2JXrlIa}f9zl2pswxYP<`aVs^{bDs<+dz;iGYf!Pmr@<3Ur*3j9)z$gT zCC_F(!X3b~SPCOC8z+|S+GV-@qistddLf7`+BCZnbv}utW5OD~lBYgM#KReU>}vHM zrE2ZjJ5Pfjal-5&Db?~958|8`gNU$%s#t-Xu$ zU#?yM{nq$PVZDHsN+KQdd zLM)2t{$0rT{L3ubEfp+4Lzu1PY_rYmhSTkOGUw&_;>zm_bL$TwQMwqG>509-$f#LW zoqiKgb(BL@3c!Pkg7IO)wgFYGGt~|<)M4SLl~~6f##cM+2|vCq(^J?B*Zdi#NpZo> zv8r|knwq)W&EB$gR>a``G~=G5@LrAku3@nO4-q-hV3PRiPWyp&2%D(E>(y%9Z4>wO zxbMp@IUz2gi-GFj4Z&nLP~o*=WcO|0DX?X(Lq*K?)! z&bx*0&U23wX`?XtvYo~5S&a?MF$Bbf`B^|4u*O@<_2mXwCy~$SHBZyyR7s8!RWE-U z*I&R;f4YQWTo280Qzdf3P_*`a3DvICQlJ;_VnYv-G8?9q1_}6<`~CL=%Qh;-TT;_% zhC<8fNQBX;g(H7HS|%W#PY3+f!No~h<6bN72tMD+Wyg!|MzxW1#Hyg^cO*`i78S1v z2LD+HyJ2B z`^3&oJaA%+D3*pC7)LUvah!v60&2iaV-5kgrgz97cJU~QUeU>&G)($UJ`d$p;mv@n z2tJ9B9r+!Fr}>-ID!fn+;v=rvEwfgyIZD#7g%F8deM7S3Ybk`{>F>3&U?&by*TB^H zk~E$B!zjKKB}Q4a)8DXv0Mp$4v~(Z9>VN%PV9N8qTnK*+6NmvyHW$Y~BG&-u^Z#nz z=cs5aFDL+nf7%k1isQI;{t&BbHn;s#Ku{@6aHtp+qqk`D!jKDOIZ4V@AIQD|HTle= z&%5xq;+(dLO5>u=-lx}N*Db$o9=)dkq7}a{5{8sOs718qLt7Ar;o|Z3Q@opQ$nZoU zbNv`myM%a@?v=X{fev6x&TOp=tv{FdJiwaAW_gUXO0tb0hW9UE3L0}xU~DuO_Ni0m z(a`N4s)$6n>YEGDS6mF*XPWdSuG8TLRF=^|W$7=5;Z|TeRO)HPC$d1VCFmMibvbm5 zTj{6+Pg;vL#Mp~z`AW=*qWngu?4B_~?=)Q1{c5aGEzp`+4bs};$=sA2=yjILzZa@K z*2b#Q7qKNc;!eyuIlv3is=W$hoTzg5+5$aL zp(U6b7lxBQhLcopq)cRnCBhUs0nYSHWMiKe-D%&eZVJ4CpyWyMo<|>;81;qA= zHG%Du#18wgaq|e+9|_DqP_?^{Lv?E><#~4evH9XARL4!UN0k|_>Q^4Zmfk*l>yC#% z3JfE(b<&3&#%6a?`evo(eJwbZT437W=2pLB@y#i>_L{Vpag!WQYsK_<(@Xd_GZW6! zq*R`g8lG{fCM5MYLj6!yKOK?CU`dak=2iwYn2k;<_On`LchFP1*@InGB})l%B#VtV z&LoLvM%hWb18`>v{o(4TzA*&I)tAEyptp~;v=)*jYj-M8$NCED!|x3u2L3h{`u&Sf zJpyi2sYjh<)Ka*I;?+Lp&E-`Tp&xd0koJK%I^fklvAuP*kC=s)9B$4V;ybZ-cq%VN zK@Ehrm^-J$N3ZZNr5cHt7JR5R$#ZVe?1kj4@79qTre&Ym?BehS!p>O5qybEXFnh5r zi34e|;=rT%wZUMGY#oult+W%!6{i*)?D^T|z0y#B+_Fom{bBpB4wnaKXpum4I zU*VqW4sujFpB7#gn1vSAa!J-v5v|x(G=MX&go>Hw#&etl)?Ur9PEC^I8hUmqM(i~S6AYqP(W5rbW7EnRJK z9+@YV?cSqEA=c!9hCZtk<-#pJhB+trk@@*G8pb0Xdj*U@V2UKe9>|_W@-imC70p{c8ciT=Y^C_L) z6_MMD$}dMF*3LeJB_p|vtQaM|+x*#I_d>%;gx#dP1t&}`%U<&54DwmdCu-&F^y$to zT6>fWA9Y|`-Pvk%Q4cUOB_4B&l<-KSLTmuNY-mVdyf(APIAv%xCiw<+7~C49JXVTQ z=FO~V!U-#ieGG#l;t-eMGIYJ@kR^y}FbE`Z;l3abNkQR0My@Jj!~s&SvI7t{23nh! z@hOItJ(I7{&`*vZ`=B5{_{f2MwCK<=q@xE90=hOr!H@HQR$7yE#hA{OFDnJgVsoKRP3{M%B5M;1q3@$ZTEVh+U@f!wGwtShCaS_ z+LjEM=c|#d*E^i&a%V$?_F88)j|Y0%Hz_e!b|x|A4^un(iZs4l$7|<#ID!3=?6oO5 zC6Q*09D0`LHy~>OjF{haFQCCkDuJhTrX$ay^ zSO`_stJbK`eN9ZK zZ?)&k^F;%viz1kWV{arVjJB=!+l4-P6~z}yoU5F`QcUk)8FAX%+A1}G$;WOYFdc^j ztX)u+i%3Y8xTK{;F!AJ&Y~-df4SN($emnNpX`0$!aOr1VX3<5gr&Q0yM7cnh%MvlSQCWfyV=A55Wv8Pqk9 zd~dIHg%Y_}BOC!eAU0KCNSk#9g&F|u#C-<>jy=U%hnErjHS?oz0BwqNntx{d6@))e zq8O^j?<=D!O=qASJe}drB}7!XNQH)uXxb`W8*cs$S1OrA(UB9)^)IM=s?-P{R5wz3 zp|f9!WBbJt_n^+AplBI1{JSwEUi?B&r=rem&^LHh*LXGJSEsQq8X9zOJW-t-Diy--+v~i{XGLyewL~ zDB3=2DM>T%_kB=wk@6X~_}xTg@X?E+Hc0&8MFCudNX}S<_}R7a8_la{UW-EfhSlYE zW|62zpU?OE=S0t(jc+N$Xa4DjwRu{TTqD%f1l?ux`Vk}a$(`Syy}|x8WCMS|vAzoZ zcO^6P|9-UpV}$4*Q)qu3@G0sx_9|wmzT21Ean^JoK-l#H{qsbc^#M(dVwtln-m0~d zT8T&?#aC0;CQfIjZfjjpjVY4lX@rerG%7I&Ej^bw4Fhe!;fq^mioz(ufnGRZk5Sc9a`8 z5DCKd4;8_MJ3!&W!Tj$9^1;VUK_Nn%st5OK-b`9a&m*h9)zg;n04@+?)&-zVxaj^^Hc` z>f?T))mFT}pEj8R*>g>*c60YQIhrL(M^J>6p1NN=6&j|A4s}IOzljz zs*VbxBv;T`ejOMIo$nZNR0C@Ba?q8xLVngPs1sQuhT2jD_uGV)&)G7rWZAz%;k6w~ zrNz>!ouoR5S(p=66YFKyRg^_@LSk7nx0C`#QDsiDO0%QU$pgM8xGeR5 zOTtgho%}Gd+M6Y0zni#xt3GEThn9FK={(vL>BC>62gb#iL~(Suz|&4_c7P*fAFY7h zjO~Eg42=PbGBsjcH8cd{3s3Le=iFOlFx`!MP7I(wX#4_`-KP%YjamxpEen@(I)Cc| zywl6h>OIk`$s>ZZgln1(H!0|T>j1nnTmjY{ghzz~uRO4qU>{Mpr$+Xj_0srIs1a*5 z4j8OE3h+MzPpqA$yExO(m6_d*{LC8RaSxi)5@d?gjRH25o(5{N9JVFeIk&Z_rqL$B zzWTdi?m2F42>n=e81BIQ^S4I8=new;)gWWCzO%{~I}01yge&%Ay&z;`zd3W~gE=T_ zKR(YXfc9PJC`TC@j34r3dwk1v0e zXH02X(5+WAF11ysUMOR-=5Q1hlN7gQJ=5-_R+{iKbwDR~=xU>O4y0zJhNQ-&NVJJx zk1}!hu$ytGKEX7pwbe#~|27k>FyHC64#;s`cypDiRuS$oZ=RgEYEI5bqje9RsE#)~ zH;Vva!Mh8ubKN$#J}Sq6P8ML zB|N`tY6)c#0A{uRmbRPK+#X-+Puu93$>7?W3M=1XuBmlSr{x*AuEej@ym;ILHZ8Rw zO3{6)?@-}b@wyIPdSkJ7f@$w}m;04wm>~1^OaE$+8cf?$DDQ?z98oJaFI_4G;$!Q# z&DbhYnx0bHke|IQsi(={!z;Ks=eO+O?`CrZ0j%O#>~Ogc5qH=(%}rihWw`oG+nrE0J0uT$dMyu^w2R{wW}Y`94bW}ZEG%m! z`VdDIfUnF=D3a#x6vR=(Dk|P6=_H8IB4$|DvH_(6 z&GB4q7tD&sUk1hq)-s}K$DJ0*G{-ZJO|;aRehf3mMysPweT2OTm#V{&xH25Vx0?k* zP2_a8-pP&b;Na4nQ+C6#mMPh(&a$$S%2RA}mE8xABl|&6PF)4r5Q=W2ClZt(ug8&s zXoJhr=tt0q5DU)}p%D_L>IZ2=!XXZB6(T-4ZqsHmkfa_6)&YqRO5vQmMVt3I5k;d9 zS$=@qS7b$hE!mZGMWSycvvp9X`aMK==`yg|N8%kVdGB=H%U5k|hC}_7TIWcPOYNrQ zTZ6`Z=Kq`JPBa0;R)amFdD~n#xpHg5;3Xu(4wMoF;ff~b7ix`y(Oth)`{NO!py`8!1T~NxfnV*TR6M?Vb?_eKX(;`{{Os`d z1orFTy-^HZb2z?g6&q@<=iugXnwgqi;`8_Tf-4NZqbRjz^s_9NjB24v%L(#@MD!Lx zO6Q4vZ9zdn#ejh>x#>`=x^TL&u-j?G-ZWXI;kI31c$)Hz!geWLaIl^+*O0w_*<|gs zo%%`JbDw^UKolxaFGOfFmp`6M2iBL*o@ z#3=a?gmN2ViQ*Lt?A$fxVXb)nD^SLCqnK}8xTUR|7tKCERY&7q#{m|NvK&oy_L=p|a@X6#f$w*F27d7OMH`{+w}1>HBBRTz z$>?Nno*exj%HBCfljvO+o$jw~+qSJ~`)k{_ZQJgiwr!i!=Cp0wnAV;1yLaE@B=_!} zldMWA^;e~`-Y500_W?JExUXjZ6JHL26j{DS=QiX!RbX^;X>nHwnGi!lDuO|?K3H*! zsEce8J>r;_C`K87(G&8*BkAv!L1dJ5PTB4&Qcp0`-+84!$!=rjJ>#gm^U3s4KK?GAP6f2Fqom?IhQ+m!=^s z%^zx}T1B^urzvzXXxe@JNB(D`uVnnc^iN*@?WEv;;`sk>)$(84T+GA4(C+`u@-&TY zfEi@M3c0CkQKiJx7jm&Qb6l2kplUC>l9#niPAcAS;(q-hkYb?=*0aZjaNRZf;0Bps zm`MU;CMNT_Dz1QE|&k_AEZQ8_un}fmLCUUSC$KMW|DNhAQjpI z1da;T9H>&h0U5nTgF^2m2RE>dtjp1T2n|0R_Ki4>a0nig3vfooy6bUpnv=f$SQat6 z2Cq-fHRX}mbkcp}y?x@@C-?Pnk}mNhY>%=5o)UF63L3sFDPq5w&xb6%kk5}UofStK zhawqG&XOxDBrw^DyX*kW`R}o_46Al&wJ0ULkn^2;^`*OVP=bna7~6LGyT#mr+Hw}BPQP)((v`3=bOs7IpWiCG zG-|0v$tR!>f)l)3av&HLwb6SQF(7$cvaC38gyp8LIWsfriyMKyCzh->Q?A({EfklP zeOP=y?~h<`p6T8z+5k$5nZ>+{8HuPw3rImv$5F#^4qZHB5eM9fUPsDLupFoFT*$cqpCYshVTFiD*j^E*Hvb3`kP&_L>i#f3a86fZ z*%t`gn!8&33WP3&s^w2S{&|UnF?TGi z37OSij7R;%g#JB_HDUELH_?uV!<&yDcDm=pVLu96LS~7)h6snYyaMr{zV$MnFlLn7 zL^^~Jx)g~=BZaoVNF$dp%gl>yN*5i?^@eO|ku7ulDDiRSZ?beXtqC}a3s#5P$H#hF zz|j-&=H?ML*Y5yV#6PTA>+M002R@aY3ewK}H4A(yz4%lBRV{nN1q&m2iaS;oj${!E;8}1S+N}p^$iNb)D#Y>AqIxGW&+aVw7KpSwUTCUJJFtp z!^5U(V1rRV8Ln}ZEAJ@BuhI`bTJ|BF>3t#w!|WP&2=ma zv6CkTypLgZ8M6-=vs)2L((S@gW<0Z+Ym_r6Q(cymS(>J( zqANK~crOZ+OOsjA@kc}-NzE7^{~>0txa23}#>?;t-qGMyxsU&Fi?L1!+|K`zG&KKP zEt$~&3AX+htO~ifI9VFGy8Me#GPW^vb}muXR@OE})1|}&9k-k;QJ~6KwT32UYi*uS z6Yf}DUUaZ5P@tlr9B0Ox3O&wt>BlC_{sZ|fhEM2o2Vzc!?=o^HW&Q#C1@#@+`OF=T zCds103-|7m{#nzqvi<%~hq?3f6LgoPQOM<>=Z78S-armT_OLGVO?2esIzKaEgjB>Y z3|7>B8z}w^*gXM)v59V3%pg8C%A#;1jA6P+Pck#jsi=%mBQ?M)Q$RfEtA@~!GQIXZ z5d10<{;C3lR#TjVLy^vE1A3@g9PO2TlE$fzRgucfNV~&kYO&P_RfjE!T!!;(zTDo{ z>aAH%g~`aLxzCo@*2<{EnvN6kX`i6A0%SrgAx=p z?7-hsm#-koZsuaG=rofOe())`+@vLdnnfulFoc8_{Owq}y<0&a2Tar%x)W~qYN06n zmeQL{ywi#WFhcLqqhqTntFhb!L?*SP8hY0VmgnCbz3#vFXK5vN*poO2&ze`ecA>Uc zO+;}`sbt*n4*dv+-N?dYcX+%7$q9Z4RbnpLVJ@bfQNesG1k2y2&sLvPD>^f^28uE2 zDc|wTRCoaFE9V^a#88T8lp3?bYWGo1(AWr??}@Gwip^@@VND&Ly0adRW`p3j>&$FZ-QWfL%-kvsQn zQduk`0~=a5LvD8YE18IYn)ro&&2pzYeR)mW{?%6pD|60ASIiVz$cR^mEcAo|>y{>8 zHCQ$?37Hgn=zWo>wXUC*ypz0X4m;O7y~gE(2U3%GqCoODAynn!XwjkE$2Tg=QznFGO*@`&sYUodtEisWpiPs6JZb55u1P5$CIAl*OdK*L` z{*!DMMN=|IURjimaO3Cn$w$hb;hzgvNNj$=e%P+>%M%t(E8^areWrBTRHk6*y^mBo zpAYF*s^X{WxDFWJ7)g$XXefM6*UL9y@x~S@K=YVm(*np zJ<~;*Ch!gNdG2z+BK`#XV?wUDEG8|7G}8C?SlXW$^ci(Tveu@-l}K6>#Z&h|Gq=~; zP9JVBSh@7+QQ2lM=H&~N=VcRKF?9F309YaH>$IB$Mw@O@J>MB_()b|fUGEH5s3K9iKo!-U@7lj!HP9Llf?Ef> ztO)=7)?gswTIpGea~W-1$*p%bQEBDoRW;Yk)0#PC$4+@pb6tsWe_@O!zy78C{hz;V zkNnMp_)~7nd~x@LKs59 zP{aYC#3b+g<;0dm87`yO2w5BLd%d(#8|6j&?SnD@B$MrM?J<*F2iK=lT&(9@(LC3z z=QrExb+k)MOHz*?GjB6*y+7~Im#SW_zpi`i&-mWAhT=g4Q@siY;`UywJ_G<JE~V0#xzxl*7HM_yiwUg4YBDHH8tzObtA30US@nqueGO$Amy)DP z)ewW~TD(Hq0~gcoTG_eONU#HiL00IJYT4zKAtV@S+;>7ds-+1uP_K|$S@L{|^9eTH zU$wOCoh%~iR<5QL?6dQ!Yn@JLLfl&F$4L1dzyI>-R*(ulxR&HP5EjwGx*TcfYL?SR zyO=iA(iP0goNch^YRUoBPbZ`cEz!|O&nDy}nhqk9P+g8h2bc3{t6WPI)icN31eQ`G zYODXGwsbbiDQCKx_S9yZ^pj4|04@KdsOd(YOHT!SPW%86sH>ex;}Y|0s_#Q&m5{lR zOU=6Jt_jL74vL#5*V>exVCZs({`RBk$rf)}a6N(pzEzZFTlQN|XhL*XX4_JoP@SNR z7(RBUPVMpuJNDM<I8}IuGAo+e9eM&(#3X!389?Y1wF&B0u}M1==c*I(PBa_7(7*1Sw zkT(#fytB9H&h@lqU;pRv$T2uop$+9DXhcy=O|^tper_^Z=!p7gMFnpzHMsM>8RURI zkxwKqkG$ZgIaQxx?n(-#WV7nyl^DvEO!36d`NZVoM^5dBp0XbED%+8&t|xtYx19JL z1pfy65s)RSt=vOf{Y&t3huNUuo&lZe%F{v>>M1_+o)Y-R3h;HUwtUzhD7l2rlDQgpCsrjxUDdPKj5%YM_Ea2?<9>ylDL+&jAAjC zLM_3TG^ba$C`F^3A~~AHQOd(5r$@p(!1h+*sqB8Dtjy8SLK`_qx~Gup^wjve$~Yh3 zkqr{Y7cU+b8@_#Xh9Xx`uoFa+FJSYSJ$W^Q6f$jZ3$w*MvZR(CwP>VWSt+WkH!=%( z8jT!#slaQA8GDmpTch)dCbyoI;JW->p$^FnSY*>0JO%MpR~O#Fv$d9Ih-w)P1s-xA z3+XxssT}<*9b6vYLuk+LGrHnNAL5s@a*$$0-=k zG64|gj+8TWagHFq=&yN;sMa0vRq0}KnZfTh>VUcA=z77O{$q_fb8)q{qRBKy3wBK2Y3YaH;S$p=&%wC9iaU30$GvcM6ui@{*uLB0ntyUPt)?#k!UmJ@8lY zTrOWNbh2)(hka}ySra%*Kiq|0Tk&G6M>Rc)JV!F;`AtSF?Bz2x+H2>jo1C0b`;w#c zEbC63xK|dxIMkRQ?Oi|ubbzS14nvF!@Y_a+nLk``Cg<=%X@2alh5f|@RIJw^0n5lj z?>_^%W(E|HMV2|0p1Q4VbjyElv;kq%N51XoWzc^g9Oj)MvMjhqBY)(DTUw!S4PTva3Ugbv4L z>@5$+6~rrqa_<~>qv&V3Ce&AJp?ouj_g)$loAFDnR_8JU6PDS4y-hs3H1-e5g2Vld zz#H3%Xi;K26LOGd27+VCX(-^G!)$+cy5CL|)j7e3mj3$WHQNe(GR!sOmcs}TG$*aT zG=uCo)2CH!h;^&lqDF!}YH?v7DY`V3a%Keq^JB_-Pjhzxc0Wp@oDbl$?_b>syMe zWaM&58Vf+@p~9LuIq&vVpnkE5v*03`tD>WZe%_?!?`aO(dWo=d_l7jrvjhz>ygv{H zSG|q0Bv@6O$@SlnT$+G|b>z}-Y{mWgQ0!Rp;X*UB;)c+VceCa^wWy)DD@9~xa`WXE z&!1^N@~UUlhiM0SM_OuKeCgJ@z#mj0?GhcjrXx<>@|%@qY#cT2rKu1uaw{zV7)WX_ z7G#lM1*Sl{Z5&Ij#`>AF1kh!IAFYMym*;Ue&3x#v{u6hbds<{Px(=dTvBi3ppL4$c zk3Xy(P@1P2cdawB#X{HFvxlLPbtk({{O&qEY)FBsfn9SCuq;G$VoXFlY@;JHcBRaE zXYrk-zwk8Vywt%+mcue;T}aO+=Bo+$9aCMAO`d=wr0_M{zOejV`-cVON97EH6;FAX zF?{Zf(xUs*x=B*hTh455CEQr?)wUFj3{J0f6AgR$Y7iVGCF2nySWO2FYKB&(*cMHb zY0n*n$Y=JDrLk2leG#@W#MqS)1;VsHEqX2Bfk0R>w5-cvgZMxo8NDsMl#QSgJhUw` z_vd_WlhUQRP(&F-?DZ0sESM2}?UJ7zTO)H%2~x!`RVX8iX?5M~R|5h7r2#9cFp+U5-`VJq_SicgGwPo-lko%;jHuP@*H` zyC>!xMH(S8HuE36f=H zNI*qzD1U{);qL~-I=F2*dQ z2F{DTF-O|kOL=Wnb7E^b3tuuD+uBOAfPf`eTK_g_?xCkg<)N@u&5^X-guG;BE{^87 z%)-^mY}=K|UCk)`Am1i3U!t15Br-nOAzEWdFc$?uQ>nB|s8(WpQ>#7L95+(f=vm{r zKe=ul!kRG9IYT5=Uow6^z%dvj0~QbXDvctmg8eqpUi0Mo)r}|sYz@GVmeQ@8l%M79HaXWLu+g%O3X|jN@E`z7&N>UM5erT{0e3nynP|ZiY#O z&RyoTvBKSGapvLp?4B}#w`m#AJPiQIwub2~Hy%-FOYCMv#yr7ESr;JI&{;KNi5yb0 zW*ZPkIvtF}s^U_rAQv4Va+}~?S!(?=Ka`oPCqusivjPZhOX9^2ZmXtgR2FMgD%sW3 zkedSEvMRdkd<+_aaOT36_9H3<2*B1*TaGpC--GgNzbJU4b7D1>(vd>v##4Z92)rvQ z0xDm2_tCGzT;!V*CQQW}#)QDPF_o`^j|G*l;a1CuKH!n@5i0O)(PX9Gw)CFRt*64L z)W?oSpGx0qLcR2!{XKM?z%>5XB|gn{;Y!yUKgGtdpJikE+6~(guJRjW*B_Oy(dVM? z`}GrX;jJ=)()*hGoKheA%6t~O)j+h#vj+h2dSheTPL)XJ1W>PlhT@%_H@~8CJlAyg z*QMuk(D=3~;~oj=2ANPm3;Z7oI&5JF;!%jJQ-Zc^b2c)P(sSj{%*tPtwGgsP1~*wY z;M$h=i9RXg*CxEOZaBR7>9f?8BGZvbhE48m!tgF}hLu8oB^8-ggurR$B^`Eo<@Zc0 z0q@@`u&=|J>x|Q2m%gIP^oN*PR{rx}`Iql0r91&!QRCI6m$f&2%bJRo8a~XQ(E_X)VHO7pVfsY&)3v|F zuD{Pp5r)o|levKGqF?169DiSbcPf|w;t}6!p=O+;q@dE4nifF1I3*mhG05qD3j5kQXmh{jR~$T;rBUI1 zX%JBBcn;0S{V4?Ej_zU@QVXhPB8t{kuw^8C`MJ^FBs7!tQWLgWQw28I0Tbe4rh_b` z!uwDj2;$Bc^*=V!V}dfNeFwq=pX?^4LK)^hr+RY(t?7Px#OXG-*r z^Mg(4;g_H(c$IyA+n2<{vNV+h%ZwR#Oo(KWdBDV1frYn>%-FhEb^nM-*Xl%5CjJI3 z7Nkh@LDrcviy5LFWlw1J^wwPVuMm5S7w2twlv-9XgJ)%R~!gxPyyi zJ!&O_VFawEc5PBZ7{+?_z!W{3Gjk#5n~fhDPBs)e@gAcv{J4UQGh5I^1<7n_I8&LW zeeC|bhSv$20>VJRprUhdbzqaF^8$Z1p)h|`4Z&nJ{wy4t5S)w;ULD(#SZJ+Qb5iXVXSNP*R`LZ?5)Wv_DjKY(i_!D3YOVx#eTi1CnLK&9RJ~Dp*QCXQ z6{AQgIy4S{xC%C$x2JLf(GtMh!>$}pON+@nbG_!Jm(SN~4CXliUIl2QBLPd^vWPvH zqwCdi!z6u(k)}T7Y+JVJe?a$8fc(oUn3d78t___~E2~EIf^myf1s&K0cZ+vg$@&tG zzL7jY<@C&R7AJCW0$A7NZ@40A?IC;irK1$(<6MO6ZYbY?y$Ffb8|acX59UwDM}Dm8uy8dmzN=}=a~_1b*_+e`AINUcBgR3x z2Tyf^udpXicK#e}s=J8-Sk6Yw{_hoV0n zrZ)V`PIe($FRuk~vu~{ff0DnrZpTW=Tcf!)Ag|W7VW%NL7;FDsuQS*^W@b$=ZoTV5 z?&^0=IWjj79VMC!jiy~KYeO}hlqOg+=WEPAnDA71{D(57N3HfdGz8M?OZGcr z=rL!}ZAv_9jYcC+xgv-(e6qRmES)XN z@cB>7pv^X|t{H7|U+Vbi1sbuy zG`|G#_^ zYC!mh9_$)x!0HR*^@hgEhARI8F>maxPlXSP)_|%tFgC!g3ea8yYfr{Uc&WF%CCY-2 zZ#2DSqdE6%MbKMj2y)*gb0bzV&@wW|Y>2*-qUjK=Jme{kHQvzwx>1wz#By{!Go_W& z2!Q{Fd}@T=4yG68{G@-A*;0rtWkJ>IeEjC8hj+8Ky!aNP&xzOSWQtB38%RoHFizLj z3Sw=DkD4VuLL3ZmfQ;Ef?0rLr92j*|bLl63H{6`@YDI-S5a1GPtG4$&3U!!C2zcVqwS7#E^5)GFna^cot$ zAm$VU$X_s~#2{@I*%o0c08lK4A_g#aH+2ILt^%ZZZ3hs+;i)^(*xay{T*1+Zj)g9* zuqJ8)k-BCupp+O2akZ#tQ1^IdIdZ980vD_+d$%Rw7fzEW zcI=nFctZAU22mIb7`HWU9KMQ(bq}}d*6#VcK*g;E8DE}Af;NF{&0Hs3#;1n7CVXz@ zFc=VWS=_BPb|qik&KuWi$LH;3FgBhhI^oVA=w4!?sF6xR<(W!KZVNr)BMPy16hjW{ zeu89b`k4A_0Wg^*BReb{cbHSLzv# zcW``&h0aqdTUhDm9&9kjX{Xnf%wKzmUgTd z+u~{I8WVC!q`@4f;NYyh9D`eZo>%Dg53n`mq&)p50LtzOmwx$*_+i;tl&%Q4_*B=dh3V|@fAnuIG%YNB0947Vd zqm@716LlhuC$v}+U^IJk@}lPK@+^*IW<>pjAhADTDEvVo?#c|o{2^%GnwS!QLN2`8 z8!-5Tq}{6TihfbB-LK?F_957Qz(+i^*-|orA{auhEkN}_14hs!Aho*TIGOl#CruGyZhf29>DPCh*k+HkZe4 z)@V_rauy{CfEtjS3?Rn|{VC&PV}=P;D!gbZ=CI82bi?DD`cK)t#Ob-I*trWY?DjuV zoUEPUQJNT{38f}HUpgs?hc-i+JyGt%IRDpOc2r1qZfHUX*&$G#k$>>0B()|tr2FWq zM4}yfEi6PQJv5=MB>gLxl9+TWWOH9?jCVUE#s$@h5anJFLzqKac)O)+k)Fj-D=Gx; zU+84RUjz;DXcikGWgQ0DY%5w(+asYwNyQ-=1l~i~)@b*)Bd)6Dk_%=e!F7TW&j!qs zVPh`F=K-uE$8we20IMTvE@^J4Q5tz(E`6G^BVQve*6igNJ1sA$TS~iRuW{u7f3q9U zUyJgapgsWbS2GNd`7bo+TgJ;ef{>Ih=(i?HVt?ZsZ)Bxw649lBGKfZ`dk|h_q7NFyT9cu44C=~QPo&=B32Aa68B)bD+F}bpk0beQI{2h5m!2L>eT{Gc?}F& zq<=&&B3Ljeh2AhKyhzN{2m{nW1Dm$WKsCf z)EU_tdTO9$BHifUc<5bAt_DHprqanOl@RHnm`{hV7 zvU5@IYC~CivDffBb>Y(A$XBYxzM-@j*nYF>iNR@ub1%o#%1f0OHA7Ocjc_D~kR-|2 z;x6d@1p#@*8$zCPY~RdD zZ~0zb%3572z4)mNbye1t5a~Jx$~;wj>WPuf0M3S4#8OTfRKbz&pf-fY4%)QzM3tSq z>(K(PN*IdKf^TF6x4y{1rOJ;zqjccVni(*;NTw6GQ>(@~sMb&MKT)gmPp(0N)AJ9BzDh&1xcEO7FK#vY*JBvDSDN* zp-_ZB@=j47bZE{QHb*veG)k$`h!@z&I8F$b&@0@FC!2J>ty;bgr8()#WrgeNhrB<` zkY^?zmNxqJHGy#?b0C{73jtGo5SU`>gH6?60N5ok|a^Yk`6bax=DpAQKB-#h;{2m{vmLtSaN6|!M zM3`TGgHpRLrABO|*BR7i^ab-K047L(Kg2&(ghrjWBq%o1ApQoTAlm7q-r7c}rQ=Ad zv0d<2F}f8;vbIT$g0)f>#o1V+T@&7zfhTSQo)EQGLxvUu>G=m8aQL%FTy3>MhUe@|(pzB+&sr8Lb>R<-xVr>T814E!=mbLA zYh~NevlYC%z$XR|`A=}4@@@EUrJF#;rS}Yd-+(7&_eK&|%&g+CD4;r_S<88_OKq=2yziQSQ z=o^@I9^EbbNl#eTJ40E?_#kzD^AF*@1=M{*S1Ri6(a)_vxSlk7wLSs%sylm*Pr81s ze<}R}|6(%lyclDhLZTbl;o4v@U|AgF+Mt_lu|2@UdE$0N&9MHs87Q#BTC*egtYcc`A(4s8NQi~SIqPy*wG>|1P-ce>@qxjO7WI{N={0 z^#f5}V%(E_!Yx<*j!wMr$I9v(UHzb^Q|=2s@STb?noP)9%zc7(&)+9tQ{=G&j zZ@kuQeDBFZAwPrRZ-2(|)wyia+iURm-Z05NpL9&FH8Rr%a&6o#A!q8nJ(%uuT`bAH zNJo6OrBJ9A9iC@Tjof?0L0ektr#$!f20t|hB&dMSufI&#_o+gGb)aEyG=_2Z-Nu>% zE2Vx6v&ob99o>v;x;WEs-TkEMbPh*Ry`0 zn#Mb|$X~y5LEt3G)tYsQe=A?+_fMp_6|>l zqzs?p%dTtPOwjtI6&y`A2cw+pzs}px)BkDjT8RuZ8y@mbL;tHYaKC*yFz*PVX;^}6 zmbf#+{PCD-v`o-mr`0t0_{J$xFIiOX_T5Ml%hSd{TjrAwPl{b22YZ8PBI9M@pD5rm zCfAhe_Q2zw$j<_-e)q8qd91D$=^g`(x7J}}-}wa2r=@!E0Y)xO{k z;5+R?etxwJEc0m_gzeqfRo%I|jk`hc*m0-)7-|bXdb>6x-s!2{bSLE9bpM%k>>V)u zcxCe7+h;QRMqqN`+od_RGQjZ6|GV|=x#6l;&Mo-H&@J7b(YyZzYU9W|h5y()hCl8z z?}>jv?~#A}>wuSv?o(;1ZDrB|&xCU<0>`AwL=?UeoCOEB-J-$BA)s1-op8;(A|i?% zTd~1ROr;WjKbV?!w1s_Gjc{}Pd>HO|Ncj>;Zz^sW2`y+RnyRX7x`nuv(tn<`wY1|Z zE~X-dd~8{rAVk;`O^kr{snHA1U9u=?{i zD^~igQpfLaX`4Ji)tFfmVwq^$3hffqLL>}6Ps88()UHDfiVw*i*ASK;^d0%aew7J% z^;b5sq|sLy&AQiE{4@bk$;r%d{Wjj6qe^UC{BL?5CSt<`tLl9KnyRIq+t(1C_tKFah;zf;{NW8RZDh2b}M4)J=4rHpgs@YkaSh@-Nqaqtze3F zPJ_lU=^Ls1IX>9(D^lU$Cz{zChTu1S8=aIE`h&z&Wf@0As#=nhOeJaK3h zkIl}38KJkXR3$+AXrLaC6+j5=AMssgo}zav{jG;JwPRbMPA;Rz^$2Tq&uuxMRs7^s z`}CAiS}uT#o8r>>GhBB7 z!q%3n-bHdr8|{YgldKOq@bl2(u=D#M{hd>p^%s*hn@WEftm3-U*GAq3)ZGMf9;@eb z?OX=5@$B02@Q7M{5jFO@C$#S~a8etUe_JYi&I-nTb0*yQ6Nta+2S|TMGp&82$liS~ z3)Qf40FT3oTSyJ4erBul$}v&GI&-DSC$hCkJ7d`{eAq>qkjByDkImW5Tr21!B}dkoqrt`UeEF?mmLLE9tp>#A--vW zz%BnBu&6Y)}*E;XS`ZePktfHO%UKu|Y5V^;v>h94j<0ozUz=Mh^#Qfx#+J z9mJ}c5Yk$upr5k-t%H@J>cHBV^sG*43F$4g?m|`rA(a(bJS{wLMrtWRY$;(*T!V2S z;Wlq}ugSvPA(^Ch5YdtIyESDhKAFd4Z@l$C7g7Az$>jml2yGYi2z*@YV@=5BqZg))J3%?6(IV z%fr_PObI|huv4JAj9N7kwO5N?>26_XTtWa!wHf^uIowpNazoS)T;NKGsd+0Q8up6B z7BO>7M4`l$=YG$TL-C+E^3`G7jV&)&^k@)D08%$g%CWg%}u%g-OvCnDLM{^3Sfq*NA?QTc=qk!-$AW zj#%E`Ec&&?8Cov61^9jvWXHUJ1dppYwXLL9@g=9J{0t#vOe>vygWe+k%!8b7iD-V3 zAmLXevfZufL3_T6+ULK`fgGVPuV3&|(I|3t$0^|Sq=qXfx_I9Pe2|ydPkR4*yty=c zgv_mo^O{K)5q4>~8+d9a>T-c7D9R~7FM82PYD5rmEg{ICZ0S$H78()84m`(Q^VAaCZHYm3I3h8*Ci$sSdB(FL&wy#m=hFHgZY|=MIAunhu?ac} zU}jdj1{N2P-Tz21O=0%01#rp~dpo|2`0GK$gMmzchO8*9BqyrPm(4(2NvHBskB6u- zoq&0|b~a*DhMSm`;0vy#O2l8nTiih)IV)Ox@*Kf7oX0t@Og_)9RQyRh!K+D-b5TOJ z!3p0qHUzpcCtMpk*#CrZ_T1L+@^7X8Ys6DrpM3d0Bj#Qnq41gWNes2EUS279#m&W*gu*Yq@w2DS(gSZl}3nso^zvAr>+p*t!>>9upD6? z0feD8DIWoF&v?{z&OK{b(l&4p{j4Bs8H?5&Gf!s5*28L5?()Sh1XZU0?yJ{)@rsXtch`s0xd{M*5^qJA6R6ceeC1J zVMUGkkaEH!7%q_&iH4EiQx8u;?TcuLi)fzuo8V)uyz64mLG3xD!Ej9pc5lQvuHTWx zT@BCuu>^(nKr2%EvP&<*VrqeK#o@0xY@dRvY^kpG^{*vO7q=@OFdrjzi3@0_b#s5ryJ&I{$}!~t5Ku%sqtDLL0M!WZjr$e$42yO5_TSf8 zcQB_TRY**F!NLcw8{2?=>C053sUMImZ#N(Y{LjSfaAYRIyc$O{Zv?9@A<1!9BEKKq znPTGe`|c36bHaX$A0jrB|4h)A{;4I_oxUckM^Q>5iX7em{npY%C>-5 z8D18GcsZXB0h5EEH@o9MM91nbSDaD6)?Kt+Asu|NP%#F;Si zfg%G}huYvSimWb*as2QlpR8R5$h7rMT@zC>qoJ-;UXsukd`iZ(ry$J7W zF@FB?&Fj}}AuVqVNDc>FprXPcMeqTq<^bjZR4*9#z|LU8?u|oSFAVv>jtI5D(7=kJ zQN49j3EEpn&;tGvF%|xLJ0*Zm1;t7*V@I^lMKH;}RjM{wb^(59*G<7a)xCaba%l@` z^JsptZ%+LK_i@+1AI=ZjH&~zdpREw=fjP(FzeqBc@5sPkH&_o3hFPsy|$(mKc7l!pyIk(++Ka6M<7(_vo^$;P1zhRS1R&h%3fE{zrYMDV}* z`jg)bBj~QaGc%?QGA|7C*FcGz(8ID6%h`-uk-~UGn3gdHuiV;o=_9cdrKS=&m}{}D zBllc>dqeE=qdMkZ%{@S6y&=2V^aSr%?im{&KCfS)LmG$3-e&sKF~e<{0N>f>V6w(K~ZIhRhRHC*tU_> zxz&5%*wtS9J9O$giD#WE{$ye>t^40PUifT)ki_;vAXdu}KGZ$ij~@gv|D8tve{wGSmqTOmzeT$LKh9+;*7B%|Nc?Sx>kPD# zo?{~a7isSpC26p&>vox4wq0E|yKLJ=m+dUuwr$(CZQDkdacZr-?>YOPd-hsqjGH5K zjQsQEkBE$z^PLg%eGpM<8+u+vT*nltghMb8Lh+j}3#psdi#F3fVZFo1G?1htvfp>U zJ-yrY2<0IE;aTipGL@S8+ui%?ehHq*wG_~F(?_Xkc7=G1jM*mg3Lk?-vg<7pK_i5^QWz%uQr8kiD6_{8FXLjH80!v3 z@@kDa+wYB8+lxwc6YK2-da@HR$I((kNxqGAiegzVBWkZuXnr%v59jSrwN}V8QVmrI zemC!q%mqk1=Mae#krt-~t#eW`HwIVi{eN<37U^ z6R6qI%76OMz;eETi1{{+$Z-?NQk2HXW=$lzIRA+~UUTcxk{TtIWNF@4+80sIiDI2N zfy`GPR-6E*FE+$O#D!5?s0}cQsF3YBljXOjYB>gu6!m8)B#uItpmq@1I&Fyz=^63X zuI1Zy{e+;c6g6Aoq}Yipv9OvDGufTdCg^j{3Vxc7r@?6n!M_fBrYeeGD@?0WhoBqF zLoM*QR?*~iU2UwjsAgI(YXGm8i*eS_Ysu*Px?EHC| zfV)xI*N;Dgvl$%X*4>AEnfoji525<29~Lx-Vi;jBeSRRhFg_{DpWZPS+m;1vx|a{W z>Q2hnn?xOC+1C_xi_&Aii*}pNQKY*^SGZpmbm&9d>xxUe>o4&T+%v`gA5Ah%zh|nJ zP?lt;G{7cTYmm;eMa~ef&-n>)``l}(tJWnrap%Kz?$$7t_3T;xGQk(lc0bw0tmq58 zm#8fj&RTF%NFa9k44WZkJ0-2vP@nWwSJ;s(IpbzP5S!&48k4K!)urJFCf9_lp==O> z(;KqGe(-;EBi^K~t?z$(ehmFfV^`XL(~YQLWMTx6)_452&-qUqo5&b$nSQ=+^f}2V z5b}tuv|wO7k-HB876~N?5hvX{Dk=y zug><52?p_*Vfvw8Ln#QEry}hR0=$`3kiCKGRDJaGk!@Rxt#vMp)hSYpiX-Nvm5+bf zU^hgX1JsQzDGvOpStU@4s-)+`8flf!6HuGWlw?)s?B;19^)Isn=9$;WL@6j&6AVr( ztj7j*89T{IBCq zGWu6xPFgL7E94=fYlk_X8TIg?5D?%}d{*_3d0s*P;W}OZE&E=-$IRtlQb9%j&8Yq# zVCny$ppfuey9%0`S^kqD{hw{_s$VWBi>O~4lh(#{slY>GKcQ(^$@J@M2E+ylwvk~{ zgb4hE&DU2qhp%>wjWbgVLs7bC!zxP}D;L$ebC%}JEwBST7*uK++u8+6gwmP3WJ72eDc|dC5bOUSg+%UAonCTM}1SQ~zB8bI;V|@vO z^P%w)Gc1XN^eJolW@6-GdaZpxRE2d08Blp+-VrIdu#7+VDWigK1v4P`p}0!- zC{Sg~0U|_Mu=zl|aSPF?T;9RNQ{w;&63h#oe&!9DfJj`H+)55H$g2j0i{&}5eiZ+g-GCbW1!Q%? z{JJ=|#~f>H`%5POIZwZ)O`N|5@$?-VR%v}(sf)OxH_NzwwoqW>~CJ^IzB% zOzi3Lq;FbalG&J!^0t}{KUii7FXH&4Akiiug?gkR;*l-1s#sgM@x-uG#?e|VK`{xN z>Mj_Mvtvu7m+dTrB2=u|*A!`;-g!VqR3r;?JwFxtc7>5T}I zEiCNT3$h({qSAw?X7&gQho&`q#_>Ls_$6s)@hf`*7Lv`dP=Z6IMc7=Ju??A_a@EI( zwTS4>@$uJldJx@>3s^FXRxdAPIa(F=)~)#k-d6X9aqGUWecC`6YGZ27KnJ5?n2JS9 zm_vZom(B40oepFkf&IQEfzg&t3B^yPK;aSdy36 zIOpL|xc`yl0a2l$=2tUd>t+;w#dL_8em51EU%KqTQB6Kvw#mF)13l?~St?xYN`)3t zx=gNC?8IR2kqCQk&Dc+-Rj!wyDKy+zWtnyya&Vb~yf-URITuP@eo#xnqj;^|JIX6M zYFIZl2aTpmUJm=J>aiQpeh9VvD&(fd<7R0HK)a%aDy~Ic?f1x^jVddpZ{9}rwARcZ zfjGvd;DIXZ4nos!y{JUgmTUP1;H!GZnJ3B+o9x2a0CVRoyIiB8(@g_XFXYyU< z?pPZy|1mu|D-N2Mi7tm;2m?7r$b6-5xn~EJ@0TS6!W~HZzYJ1d(4$nKMl!RE$t`%r#@m-vPQ7l8FQCszj#<6n)n3S@A|wuidoYoWpDTR5TNjK@a5xG*3ng~WC@LlJ6>M`kG8DbvybtPlaZ!(y4DRAThlMO#tp04 zAxe55yF))W>6>Yl#($nm^p5Lg8o?3T6mBxRiWDK8`|+Abz0469Rll-^Tz128Cc3hU zLUpyVwl`Ht1&#opL+WUUBNROgi93wND;uRxntgnqL0(*&p(6y*8Gz9l(f9!EcA{*V zyL`jm85sY-Dl?0jQS`lbA9y~c@ppJ12*FN>=S(xwPH`G%UC#<&8q$l*@F!>ZUlS@l zdmpRj?AoNrPoO0|#N!_llcV2q6|j?+K2A*D-nh(tN|7@x`~g1Up-h!2l~R{~>sW;F z4YQLgxgS6cVeOi-3Vs3*AlQG8-#-%I-ANjuPiw(vq&Y~^Q9ERPj;4IwafP82NT4c2 z+q|JFT&s>y^R&#szdd)7zE6qIPb4KZ?S!J;Iac*|o;!2^m}S6cjr7 zm~E7bDs-SzXB%6Z7U>1{X&B=S?Z_I51&O3nwmQlB@f13v`Vl<@74<3T=L+-6aY*RO zmP}P*z{Ove!^Cg8pUv=+b4@e^Gki{*G+S6SKC^=BxzRMixQ@7wHJ7#!?QkFu>fNfN z+AOv$(S&Tz(a+X9H~*w`%tlc05PauK7T=lZfA6;T@9+Zu81(O)NkHGh=>HjdY02*- z)HA&(GIDlFgSXcoP;;5f0YIe0Qwk6$oiV>&|0CW^f-SD#o$N;hxPf@iA6RWN1&hUV zKAybjaJ6ya<=Nf>Vy?C6A5cN$u+&_st+CLL?v>|4I^}*E(5{}8JB@e&aS^NnZq6oE z0Q+Wcrz$c2HW^tw0|CEhd;}9LB~Cn%$;%b9exXN6!*S=rxe+?^&|$8RmBKvBWQWp{ z5g^`mvqKrAbn?UuVMY#JPY=kWtAojco}&UII{&Owu3Y?LR5|LZF11QD)^Zg%U-(3A zOY=|a3fYV%4<)ZEd{o!DnOV?)Q;~C&^BJ`5C~(EPH@r7yN7EUyZ2(>6D)46LjVU%V zmw&Ct(ZAzsmtLiS74X>vfLYX_W5_08sx7jF^#CzM?;_Y6XR7sc3cJZC94l&ty;5%j zf^MI=bLeTZsAKM#>PBmP#~eqF8romM{;^Du$5m@ozh_MT|JRIt&z6FXjpIKi?muQM zQ+fR#MtEPD-$00@!kGjCpiutSgQX!V;6tJY;hBQOB000tHu0v@IcZk1bZB55xm()T zgPR>D_`4jY7{6w_q4SgHJ@zj4eXtLF99^95`gUo-HngGOk13a~`^@X7%J-h1EKs0DYU4)CTpJC_4u!h&A80{Cag1;NVsZ$m zB`t)V={3g4j}uFXG{-U4g?Xt_Sa@7vcpfFFd>5y}QdB1O`{{$r+a!(=jxS)-t!d>A zigjrc7b^_PID!_wc(UI@fA?QKPSQHN$f}n!tMp?>$#EyCDAmuN!9?5XR%=YC(-t)U zDQ4z&@$3v{9A2mpH?b~sD;JK3)1~8Lz{Rk+xtvdw2%KlK@i;T zb^>Q5*x``>;R@ttl-W!0nP~)=&A_i#H8Ct1*#qc{H&hm zNG~VY`H5+>ml4ry8#T5Ov&r5c_d?YkkG7xdmT5XhR^n@Yr$8TocHf}Qc@$r+ny%kJ zxdD3C8CNEAFT;yqXThSI%9vZU@bfGsX8kfRkqebFmKpE_ivE-%V4mp3qBseU^1{TA zyH%DTp|U@`NxSa-q%Yaq#kFkZaHnIb8I{kbec5W|cstNxu7S(fq2t1TWSzhV_o%tS zdYs0bfOBmBx9{g8lGVARc22V<`5@2+00jI<0kS@)QWM1iX zruq*7<}Gd*S%(`GE8IFiQLAP*+gv;?TR(?L{QmVH^@$|GtI{gt#8`&3^oF1g3x4XS zplQLoy{V{{>Btj~&yXS}yODL{H+Hi~e|5;h3_P%kPq{>5@_u09>VbP@2w-={;iib7 zJ5~tR`nK!gvYqVM)0pE%BaU~bEx$V8?wJU+UaQzkuCSQpjI!XmC6$WwfSifN0q!IyPEHaDv2?*pZUCu zVJn5t&%+pA=-Y&qv|4mn0Je5n8hs9gRExz4OeI#Ddrzt2W(x#?9$gbA)DcvLrE-6o zh7I=M>DTCgFnfop;^gj{gJr#YkF``t$9MKPmsG`k{LIz1$AxAEg?BqNx2bA-egfvm ziY=Ib?_pgm05SkZn~%#vc}vZ@15I|zpw2t2?BP3oL+Ula_Kdl`i`6x(`|SI2JMS^f zG`hPzjd3-MXV8u7ZAfQ^7iNp#c~ZQDSwllu34;*{HJuRXY{ieU8oPXir(vo5UqUJuNd%-;_b-|7NuIKl&#P66pyef-0G! z>wgH4VnyWYNnuIxg@mfEJO7eg)4s5l_WZH``x!|hF9on0nB3)i3*`aHJ0+ETsgR^$ zGv$%#@Y&7eaI}6st@~rbkRcTG0o2V-I^|rPku9K=VuD5=ZLbA)7&mAuPW>oq+yZvq zwOwT?k~_bp|8Jglu;$lt`)^!xDXKXsc)+sB|FiV4P-Bc8B|Wii;|9G6ihjKd$G z>J2^PMT7Kf9c?0wdA~&jy-(sKbFb`0-AI3WPtx1Rk-t*o5|6D!I z$++3h#^awb`?XT2x+f0kH&VNhA!+~wYCZ@tX&WJY)>@e}n*^V2)SNdG>9PphkPNg> zhyOq=j!}sf%7#Y$pqwHsG{8Yup3svD3}Wsd=++3)&nf&Ys2LAeI+C*(@7^CF`KSW* z?8g%d_%%r+kUZo?Zy-K9`lB*yc13W%<`GKD5Pz09B5x9pppI@|HeQ-o!a3F6Qeo*B zCA%L%h2huqAFj$^AP!`=1r>YJhPgk1OVF;2Sc;;J8jSuVKMp_`T`6)|`?;Wk>M?E= z&X~jMOCEu^uRnwsT3c};qh5O*Z*^|sRNbZ0Nt4h-6t31#?uq2|C#va>lt*mw@(Bqf zev1*K8~_jX@g+FNETh~Xfg&jLkRwNe3Lk02%qDnu|J<`80J~R|o7a!KNVq@EAKDyxE5O9QN*k>CC@*u;YGKFU0}=V!C+`z8Q{Xk(d$k5~31*oCDgs9O(Xa5iP|& z>v$KM&ttbh3}>&C*t{GXPx{-QaYFp-<(~_yJ7vrm4CKd;-EV>M-{-mCM;iaqk6h8r z%GT28|66lSRC)UcP3zM-{^Hw0oRC!5SHNefNL-w+1{&p8ff9@vpn-^{#B$y$E$z>^ zG0Y&kETY{IMAZHcd;S!CKl~CV-kRUU^RuwXu-%aEGswH(g2Po2VMF8M)WMaf$MNsu zjkiqqw{zWXPk4f`ah(fc0paAZ0(8`s<3O0V&XQqYiHbpf>$c8?2c=zC9EDpybY=FO zU3zc#*3r_v7YKP#yT zK67cKCKs0nqzjH>J-BQTu)b$PWHuzC4j(~_`A;ThL)r9-ZjUk6MgXl0$92I}zn<4s z`;;(BRwhblesS!k32*5Vvrk+(XyJ#o84o>~zIa1k;K@@(1?C!lPt3meT-7Ep7?@0S2vwoaXeh4c!F6mNl_WB9 zGJ5n#n&9aqa44(spv=g;W=;q8jC~`3DflmkazN^+<3lVXUJ-hstkXPAdysjU?dSa} zDP>;igA{=q=aIKrIN3*#RGnuZt)O0SD0S|4oygolZ04-TYMMdC5h6?td(8aCPgzk- zJlMk>cru2;d`UNhtP6ueSlLZA_<3^mh&4Ne(IR^nVq|=E2G*72xtAz{Sc0(q6-=#| zlbJKSXAtVr6{F}rPgJwt&NTEb=p+v)xqGXgM9gl+E5JcO%(%$l&ECW>SzM-m;-D|`B+ za);*>hpxDEsX^{o^ZMi;ViAdD`;T1z=+Z)l3D!%S1VwEbZ<*y@p5wDBG{IWAmN>xW z3D2wkDyoQ;T^D2&s?t^gSFK17*_%Mm_LrSJfQYE|^hZ$*xdN}VNpZK}d`Pg;DEN%b z#Z>0G9t>T4xLKJ0ebUERMR}%dt3Ru1NFhJ~`>9weS}1zSiDgBYkW)>^1x4xsbJjd# zEwTQq@jc9MWg{SxVXW7Hn{`GtM(n%I+Th`kMfMrnluZIOEW@L0Vnva0OXxo8)>)vQ zm=q^<(35J_G9I=Ou56@-TP6m#dFPZ!l`dENp)&Lxw(*6BtLoOaVD&If=nxPJ$PKtC z%oLA_FCc;EG$y^n;_{zlJiuBjoMaSg%g13ubs3EmQGf4y*$PzMp|rf(7F50_@%RKo zR>R2M1}(cbkOv!EMw|Dz@2+?;>#_!BsjsBTZS-lkWY{4~>q#!D3LmK+=DxzpK5HLJ z$JAQig93EzMSRA*2%hO-emKuu7sFUH3<@j>!xU1N2i-v?*@KRO;@$J=pm~$z$c>C^ zEcj^Lay%wrLX1Zy*Vk%fX%=wgfNwZ5tFCg)f+{^Rj5>Z?L$Us?j^T3+Lf6WZ5g8X% zKQh#AjplsZ-Tk3@2Q*WY1YY=YH#U9pQ0}G;!b^a15 z0c@m7XQ+V^+@d8L7Q`8nkIo9ykrsJC?ID3ik~XlpEgEqF`r^<1E(F#jSG|jpXSuky z?*xU{WFFt(DI8kmJb~X0*tqsf(I%rzVX6^9#}eohWTWsEErH5U@|W;iy=PnNYEHP& zlN-Hh>vA?@Z#f&me8pVR++W`T1On3FQ~>e%J5$^Imzf&lzX>R^2IfYFj)L~zd{d+U zrNt{%zO}d!%9p3~n03?oTv3A@0_>cC_?$>bf+SF26J#7(fgGsNX2CkMkptms1F8_% zwI4c;u7{Jy13#`MM5bNGPtK{5{ruOR{3q`oh+zlk=5%IiFdY0xkLLPrhZnEo3$Ksq zV0@61Az`p){g^?7a8K$-NdR9j5G<9Nzdz6#$ACcrT<|TybQGv9%JA6@LX;#xjUNPV z3=l9Z`XUq`yCWROB7(X$iyA>Vn6lp?Ri6@LC*bQF5kYMMKQ=NtGR{tsOOX3Zt~%A2 zF!NXHYfRECnBOgwl|neC1}iFdQM_fDDnSf$gTbtdS_4a_box4&+wc8W0m`Do#)B3- z$s@*8ttJd?>EegHQgnllse&i-p1;JvpIsZja%rN9>tE$4;%8tW8Uyq>VkFInLR7@= z*H$0W_s#5^-1)=bkdWQxE~rk@O7VYTa&pj4<3d+-GT4A6cya5_#Dg+Y)*K%BU+inC zGb|~r$z&p#ww)>I-SC=B|IWVs0;#@mlPqpdCC$t_JLg*H1X`l4P><~h$dWJtQ(5tq zHi=M^Pmj7x$uG}mDa9lu3fY@WF|E7MutC@i#TC&_owVoFWNx&q3wvQrOo0WN7w5Jq zqDV!O0?N)JRe9!IZJM4qgzBAG)wi`@a#xm>X6WTn&c2|Ij9d-Co=Suk_f$~OKN17@D z0Lwx*xVe+fcvP&V?iVX_1=dqe<@(2Y8;fN_m$pRH@I;y@afKg~a8>Vtb(HLpW~kcv zHtP<#n&X%Vyg9tY1gI)?ge{j)m(51Y({9MrNA86O9XXM&Aq|7&vCV^m3c!@EQ%)Yj zwmeC9mWCw(D@d?eZ8f+tMV#?WM;O#|3trWyqAMDbxa@ZdGV1 z2xnqwAJ0P-%n8OX7s(#v+X!j0o1bwz38%GzmyMa3IAr#J`Kz$N7bmpnVf|uLA=~G$ zN+32*SEWZ41zp>7<=ZCmC!6wg)Eb^{HP%dCEPiYWqmBbHLgMO^XG z*a(H36lg-rI{~i1RHh@mjj*$@ZEu`j!S1NBD64fraNc&Ry(V}|Tyf!8>3@jI7Wu|A zrUh1Gy(4tGtpLNXo71)&_(?|XbM2$NP)=-Inhoh%8T(COEVImCrR|zhPCmr^Vft;B z%#vU$x6v z6X&Xx8{=Wyj0R5?>pT?60pghEk+F5uk;GOrml)Jw@dxBUon!kivP%st^8RE53=%@! z-Z;qUTIgaQh>@%Y~H~Z8k z)NC6OzN?vNQ-(uFVp=7<1;roxo}_7(;xBK;0JjS3@XQJQbPm^sWa2UTkew)kk}vSb z0QzrYbeydLtM26CV~B3M-5u2!g04-0Wu;g@`waea5ig$z{L!cE8gyRO8M-SWf_UEc z5mAO|(buxy9_+`@EB!j4s#6BaTu2>>uy{x1FlzC7rq(p;=Zi~xw4LW}^U;lK`-<<1ZPXFHeRet^}E%EPY zE&ShTBYS;A$Nv%nz9~olZ@9I>>_5~y_q=s`jW$ZDpMdWP$g0YGs7;zde9#!k>W+WF z)2fj|P(%CV#lk}OoRHz3KYouW;+5mF03_=`aBAz*1o!b4N9uU_H`=; z)L>k=e~`6*E){EJLTs`Iy~wR+P;KBiZurzRfeiD@eez9sM!)2$Tqu=Rki#^KksabR z^$!52ObAa_BzA$E2n(qWt*90w3%b%$$0v$I6;seezg{N+lg8klqAjMDV@3fZkt{f% z;FU^xXBaK+g{41TuZR`*rz=@ehe?FW?7&FHJS^P+dT%fh=1oW1%GR(M^{@(qLv6nt zw%C03Is)iqFqZtdHFA1yKVXUJ+JSSnmP=_VP8BA5y@~FoHoyp9xdrz6Yn>x#vE7-z zL!0CYKJ_(nVngzn)RP7R7F8n(H?b>o(#(F1du%IL2yv&;%eQewHla&VMPSmv5%{OU zMQ`!QG*zviD2d=UOnCqo1@p4$;%&psq2t<_#5sh-_EFp-=JRfn7HM++Gv*SEeR7%A zx%v5DZV+5V@(hZKW92}<$O~kv{YcE?7nXk{1oxgSjiujpdGl|T`QIx{hX1RC;G24` zZ}q?OfkfqX1#D3S?tJaq@j7r#Juts`Jp!Q<1JbSoB5X^bp``pB7`PQOSG7?73gSwo zxiNX`>6hSlKAre7wS;)eV&NV)M`ido-z)n;<$TfBT2pk&_44$)5ps` zL-hv=_mi;m*3UXV=A^gl*S#d4E{)B?`k}ija<;TYzlv=aXd@@L#*>8RjJ9z*7lo&% z%^*HX-OA)SnMsPPamQMXQl(B2w`H2qAi8tyhu>1?I`!0{A{Qg4n;PKvQ0RX~|AJNx zMQzTe>*G~QaBSLYoLb6u1qon1iVcF>{n^S=Sb#<;A|lgmR@WQ2^=lz-EtoT1ex4%8 ztURyGt9YS3)!Tsqny+@ofR-9SgV;1Ik=KL%prV@Wsz z<4)Yy=vliJ64Owk4*e(xoTVl1?>`TVr&Gwo=Wn2hu>(5vz?A9zMS#tFV z;^E1A*&m4&)5>>_VkTDHIhQbWH{BBQAc?(4iy)?O(6+}jdZ`KLwECd!W3#!p0>cbD zpJ*%-W*%>oM7#5i*`Umed?kWQBj9ex4wRF8&=hZwyuyI2x#@Xl;3bH$z;QIDJvf8K z*#w|G%sW!MOq?OsY|THnIc5|#YbR`lU^!lK-8owG7?pk{pe_hr&pqP_H~(51NxLS%Ihrv-`d)(f_t5^}A8IDhYf-ajo*jPNX z3Nu{1DtV_B*4IyL0tMY7f_;xMq#a=Zvp=GMNd?*|ac&VN(E)-hmkLudQJN<>W~hKQ z*%b|zrmryl3-8-N50m>7B4~|Xr)MHybXmuMb?^~0NO0st@l`S-bq{q4*5)&8)?4@^ z0R~iS0E5J=ThxKn!^d;3QeaRC_3&`27wC}MNQ!byeV{F&Uaeq``IUy4|G-IrE1E&1`I&)*wyRHfdp5R)2BAFSIcVOCkB=^ z`G@aL07kphjZrAb#H0Y#g&;yKscI6%jALiT`BG)WDe37+o3p;8*!&+-nw4BjsL{EC z^Cf5PW>)d`!#QScv-k$>CQB>TS1-}-sA!{DA6GoDkL2r)?ZYo?UU=QN$z*)snF`iq zL+&o(eitJEn=Oz^~98yyHIr zc`;q2xn=72YHF=B{Lve4G%rjMse+JQRmOLXps(hebow;AEd@x!#`iM%r9Cb%#h^kd zNieZuKO;(#ZWRn{CG}KF@;2ykgxKDu1=wBD$*Lg-#P0(o=yGTl%_+*moy3qbg+<1R z&=M>b)gafTvc?4uNt&7kfk5@nRethwSm&b*OQPga%9YI1hIlJUQW231#6UfF&SdU_ zAAxm<fM+3G7dfD?_F_>6m1)|UC5*#3{1ru)>&C#5vKqfbnp|PHu zp}QjJ#`S)}5ta%u4x>u-MSHHRa>g|@OleaTB^Ia?mzN(IPLva-#MZR2 zQUTe>>iT}PCgk zi{o)~V}5fsgQ;d(JU<^}B`H%*;EZsFX3QU#0)!n08xmm~jKFcRn#1L|^99{AE`Ek` zQ(P%I8-f4g^E0rmWJ8TaY-3E7InpS#bsUrdK6oT;ZGTlDMcA5^;SYhtOT3iCBMaAS zs26nZFO@Q=A!gXwYBtGRH;XtoR&Xe#ZiARh)B&H}JR{(`jkntNPyb~(`1R5Jpdr{U$SKR5VCXGKZ3>VnY zvI4x4F^;lkJE8B3aI~4)T&jts1RnBvZbMe%t&=qEPhMd;rqdl)jxhNw&)r&J_PfdPU_QCH$2HRSDh2LXA+gh^ zO+{{58YJn?l*7+^w$!yjMbhWJrg8aw03QI-^Z+X-Ga|tp)YE?iR0Oc}N_m_EtUh1MzcZ z=z4#%NrTcI!fr$*vhIn&V`J!d>i}+D2l_CLQ);9gmuaa{lLl=z^A4nY3DRlbkVy|P zkKtTwiJlkyS`Lcxh4hIdr#XvxMI^I91XEc~j}AvOyu51j^^t^s(|JmgoK zNn_;TyHzXZ<@P76#|(dB9eXrG=310RZS`fM`^3C$%2m@%1(SUkcKv;8oMt;{!}zM+ zz{CxcQe(}=oz5f;t8y0eO0B14>c%ORZl z^7j@Rey&mgVhoADBfG{SCK#Z$zJV8_Tq1X1ELApMA)y$KK}ERkm&GMy09X-+r=$*P zlD2~G7~6gTr_n=valBiRiOsz?Fq)AbKaZKF5SAfhB1bn&8WtNR2FTr9TUK|JZA zW?%g#HR`R!dII~$R9T~oP($lj@&QDd6q@5&aLrf7bu-XN#rEM$K{<_U)9pG=bi>TI z>yKuAeD&>LkF|7n$?ROYSXr1Ty;EA!JuI2(~8pE^P=quq7P+dff{9kXF%yGQDxR)Xse$WTUlljy=H$ zLx>Z7!Sa#Odb}={BfKyxErW^L;+eA}zf02z=prKXxm3KMDIW>?iuH!32f=aUm73J-3&TM1$?8$oq{_O#X?G8iIPu z880A%FGwA^xU9kq)K;mNymfc2qobXyvcqALym6Phe}jJEmf0ZJ@^W$|iQYDtlr<(E zLF8wTHlM=P3ir^r&q57Xe1M{5(k`%x8|RH5Z}wOV;C`To+rb@REU>kh;ECj5^FlIu zx42z96iw=QHvpF<@+*dXZ;0;I`hMdSK|uPuxWQV_!X^zHlItVQeM~aVeS0fn7QZ)! zT|VOY@3|`NLNtuPz{cahV$eNd&@D$KI?|-wV!8Z8U&H9Xc;h;VY5%I5t{mfPHgL%A zwsES2S2`|qB<;Xf*~V|sW68RpNt<`%Zrqwt-INy37t)!XSJTjlop+^`c0H$55*G=*Ih^>n0rWe%H_ z%`qm*G0xRc*7Hq^6wVM;W??PkFjZtRJ?_w4Y!ethabPvS4ekH}p?SD`k05djd)Ncf zKy;4LSvf*YEw^GkruN&EPSD9jfC{gJYgaoZpjrW_l#P4z?muu;Soo)a-jl%Y_U}2BdLXr(f_VZyXcpQ%y_W* ziWjih`B3mCUoN9p`$~khNKv5xzYG1BzNvKBw$g1Q(Lq}WZMwb9k$OxjV>O3Nbssq+ z)$y~jB@>Ta`2lXa*Toc~I&5$l5n(y$cOBVp7d0YbPh7&kKeH88T`kL**Aa|cs7a!4 z#7op8&NLd7(#>{-V5Kn_MD`~v()2j8_2jm5QM<+gZgIB{C}?HH^3`3($oi$^eF`*w zlaTG&!;A9Ozcxk8Pob9vWtpURm?Oikissdbg#KnMP-F;u%32|h>9#7#C`q4g_d%iB=9J}lesgRsUynFge2ZS?n0@;i z&CMLMp}t@O*Nme@=2b>DH_*`XUZQ$RSFPXlN=oxUMXlQX_+qZ(NkiaIgH zf8PbTupX_u6|K2YtTQg5jm{oqv??p{4ee;hKr03Z4hoGyM;aG%l ziV^h?k|C6|;Xk`4 zafJPEt#QncY+PT!GNz~5q;a6GGS-dmy~VZ9u&fUjPipi*k%_7i`p9%nIO+JT8t62T zuy}%(0oW5B-KEf#BJs%t*zLRM|jjs5H+(n z1IF|G>8<$OM>HcTW^`t9#&jC?fS$`Lf34#WV@$Uj;j2_@lRMJNOJ&XwVg??(rWUjE zlctG&9%2zLaKuTz-2<@RBpI-`9&DdXgDz?k&HlyG(iRiOD<(}dYKyp5nzXkfdlPiKoe60!p(Q&Otd$3hk#mt(+ zcGAh@iKtXxH`fKOZ<`bf(#iFy8UW2M6Fh*iw)7yL3Bb`C6 z9dbceHyJs~5H{>+`T5P!x%n%M+g&~3l{+BtyZV`sQHWF|>hWMt($Ja{-=}!dxxVFW zRF=>u+XUD-YdH(*uYI@o(^4p`%~L7UeT>=tQunUrL(PdVz)23Ba~`va`H48@YSx2w zKwk1!OIHNh4PkeM_hR zyaoIFugx+KI5@Z`IIS}{oHMwL2zb-O0@C$@ga|m|PwDK6fjXg&jDZeE&#!`tg##oD z5pcL14>bcBGfH9*Ra-AJdHXU=W4M@pm<3R@We_uiKXTJ_63epGVp3CLi?UPGlatd_ z;By=te2R?xmMQik;6RR=D;Ss1KB0lJzNx-}zCdF2ex^CF*kT#Jxc@wC#0})P zi~pAW?cbmORa@l$-wFft|GqFFqVM3SWN&2jKWhSss%DM}i_+Q?){w4{hgLfmwImf-iD2*=esl9a_?^Mn7-d~X?5|s>%PW^kc*!6V81!! zQrfddeQL3*j@l^RqoTZ0z4ZyJE(6F73R2>!+_IoXmjILo4Jq+dYgGr4DYG2+OMy|y zo4q@K$nK{CbA{WK0Hz{6!F~3{#3Irh zBAX8Sgk_j8QSOxxJDL@Iur>0*1K1mwgN6;%74#B3SzqjHB}nc}k=_@jZ$3FjG0|y3 z)Q~N6hFbq$md48rvoI@oDC5SU{M@GAuBw@yB|X&uV&Tf#E4>14c7!Dx_nFv}pYftO zEUY#8JS+GYS3ehBhF@O|X4%(KvH>4%eVGDJOMha_!~Xt-fba`l>7g8)zLxQZk*KRC zPL=vurqn!@#!U8WT&szcH3rg3mWFnUli2nel5{D(f7kT}uyMQ4oL{8Kc61?!PF=?$ z>Nkt~H@)3DH@Dne7Ju(9Gnd;9pk9P?dvi(XUmwf93vkf&_OpO#Gn^Ho$BAq{ncB1D zJ76Jh92@ZKX{B0CT3pCFow0ZC1Gx>D)T{*9E&6O?U1 zfPx=kI-#&@6dTe5EjnqdYneQE6&2w3&_LyQu1DV|hlI#fANA&3fqX!gwo%q}!46`I%KO(6EpnOR!Z zYO`l@m$u=j3}qGiCC;nyyr88r5I$n0>i=F<%OoGr5PcVig$NWLCDEJCb?s@&aG`hbw`b{YA`0f- z;o6oDk&WuPJH+9Sy0&8HWbeD~7a7MILt>|BmY)|n$oUNhUEY%$UMDCMGyxgp!4w`;YifZ;5Ddf zHvU#ASSi0@R<2-cxIx=LBJ@!nGCSU4=v$wE`We0Caw+@ud_(pH;4@3m1EOrn1x8O}jUUpV10dJmpmj&vIy3JJp%=+IO0MCq z_TH2G9m^uVgZ6F{KC^dwkE}k``Q7tyw!=UNk+pft1w%T(;+Hm?#9lUy4? z1HBxtpweFQ7Di!P|0zE2p)Qp^ze7LdYPK9A?VV@j;Mj*M_k~rD#-Prk|54N#(6Cgi zEoxJh{%1)g&535xyjXo%zspjv&@o4YvsTTzht!^UX;gZM8lNRuugPl3<4T3j9Ca;* z)mE@g#i>}A6QV^!m4)o5*3SF|``?M%dGb~=(I7ys3E8w3)8diIhXiMN1bTzc+;RF+ zaQF$m)0)IQS!LNmM+}}uqrb}ExiWg%gv=XpP{~60a+0K2&B)V@wXCvAl@yPAcBRWF zT)%mS3vY^55XqI~-d5Q?7mPMOqGb z7)MZ88EdK2QRC;Fp?5yZuCT|N?4hYe?LB=w2}iK*+NG)TN*M3C)4DFO>!-h=wlfvk zczpShrfgee+*zTD%Q8%AGR2XstKUeDAUdiPNwio)?Um1*ijQD_f-pb4@I#~rX(dH& zFp%BB00bKfB0~fYq`X%;Ry-g znV#`-%kc(L?=V=$_gBc=5fjK~h-LR=T%lb?nE+B*gF36h#RsljG<17lu2B7T+0;5i zb{sxWho~L|)q8>*A<>5jJh6m`u8|iy$p)BY?QDOtB4Rf6k&!-NYbRlY5uE8aniwY7 z(iu_zFf7C!>>)QGch3BH@hKEv=C~#FH?2?oNC7H6-(a75Uvh%`nXhDD;}R|&WkAs< z^FJ8-2O!D1Z2uoFtIKAW+0|v+wr$(CZQHhO+qUiMa@D_{xpUt;^Str9cOo()BQhc* zS_1rS8~adx*8RQ|hb|?gf>%sCpPdfW#2h{bJd~c_vU4<)JIzfl-RWVc zWE|O(=jwR+Sl;UOGg}A-wtGn!s4B-+b0*k3+B6OMGS6jSN4FLYxdL&tyNrhp14<1)uU?#o2SS8JvC1Dnj1W-eZx|ODuYLsX9xpR zrg!bbVB2;Tn)zVYX4saHVKAmMGFlUCZXcCrYCfPm`9tCUQ)HeQ@{bR~05u;r%G@&I zhlw~*;=SgY180WoCypxanU3$t(XTO}*U~D#y{BBhDjLbvh?b|bP?6c_F8OCzSnwr!USlW0CKy6w_?#skU> z4MWt&c4N*P#ne6%)KN|}VUyKol+Z@$+j6WP(4l8wGM%dYRn=ifx?^m((EQ|xPvNDm)gt};AF z2K5-gd{$sy^<);Cm(XLPN-xz=hJ*dkrn{q}G;ELfbw1g8K$lPPVo5vl3u6ZrM@AGn z{K=CziJfvQZt%qR@B{a+s{G{uo7l#85pEy-fAgGK|8LJ(z}ivI!cf}Iz|hXn;M;vB zq9daHXIV{Q{Tup*=S)vQ2bWKt<0A)M)5Ak6iPzcz91w?JkP{&ad+n-C9!k^~K8K<3 z21N`B1LyLI=9^%P<%xB%S-P9La+yk9UA=vO{n#f3fUBgS+^FgsC<=tSIywDzkZTO} z)(1R;!Z3wW*O_j80HK?*iTIrKvJ46ISFVfh7WVajLIdt@2Yb-J!R3W3}+)UB2z$xd?2VTc4m{qc;W^1?`>@`4QjDj)6!(aA{1E%oQ2vC)~J;`Pd^J^4RWwPzWUP> z;IE(Avc>wk;Fxxs-v_i~>h9zJTvg$l95P&CIx|UgvDk-nBJcb$VA7}0LIIVb{46F? zB{y30`6YeXw<{~<0v|$Y52uze3>UuP+DR5aNP*)w zcI%KV8F={4=aHrKaiungb*uB&Hr-`GK5g=AaZX8xpT|m`lrCR$0E%V{Q8iyQVyC!` zNw-8f?AQZgz?3yylhL+j2w{=)L-b z{GhxgZZaLA-#QbUaaLm_DDTQ{vbQ^MH^QOyrh|EYh;;RDN1dC@6J4F%9Y8lVR)qeh zNJbVDdQ*KJfuKLap;tXi4Lo{i_N=t%3gG&&dTF%c#WMb|Ip$KkaN-rH{P6s#VfTB| z3!rE}DFVG`2m2TCgKkg02z;I556Ag^&8y~sYcLF%*FMAYKzYRbUHal_uAV>@mVf7_cb)(xfBO5=S%cF;2*5u z;wnuwdpaoQ&{y7_bjV%WLY1GnUC$O$CP5n5S;J~&B>bZ|SLM-hkG0elZfNnI=Skq4 zwo5u>?cAXK#^_$4?IQCTrZo&N$R7*Tmv^J=IuC%Um83Pn1s3uXBs(ZVpZuJy;bh1f^pU6XG>j4FCk8ppT8+TvYrmo)) zHUHnbZ2ul{|37qO{`H~$6>;<0+3C7UnA$rK$vf)(>!+y0f2;NsCcVicDI*VeGq)nf zRmf&F`caE95-s>NKJ$U{GBD+!{NQ@EQB_ibZg;59eHL~YYNG!``#JNe^Tz+d%MK*R z-gx=IX;~bd+VxiL;5KC>3M85uOG5wT*?nw3)p<;^{eIso41kydsY@>fQVS_<7Yn5e z{_2n3BYKs!cO|czF@)zl4RYfEfu8{(YfKjL8~tdH679H!WqJ^lDhqOF72eEFJX=5T zSoNHsS>b1U&!Fm6)J*_tj|qSqKr#r$V=B3({e!IUV=1Jgnxp{^VWtQM#<7nN1NJ8B zN{t1HXnxtZYrBTLwTYRIWCxdC!89fjIxy)_^R_f6ofFTed|5b!7k{lvQ`DS+$ zX`yKdhXP7>%3P_^wU(@zic!(=37JeOq}bj|F2w65%SR|{>pun~W;QorrxE8-xv_;( z{R|oWKyUfw@#0O;vBjKAB~&$3hAFQ+PIdy#(5x_g-Jqum4Zzl$5-lBukh1PQMw@@W6=D1!jz$)g3ICY zd_hKD>HHp_h*(y1nkr$huAbggs8}R54s4mPKJ$uqe#%t5Sypwjg;xIib!LhyL$eTW z+`ddAPB1BIhCNBk4g_ZQ;7(Ie+CbCG$yA7P?%Is>)w7%vP;4G&)*#h@@_Ufg#aJ#u zQd4JwVfu-4*c|{O*A(mP?VW8=E2AOt;$lW#0}1RW*@D@izQR?(7V`T8sG9ygeC;!( z2kkcHd+oF42)hb>c$f-@6F7=9f{6xCAzVGgmQy2=!je7=UNr%kHlILOMDXFSka6YN zqp24av`d$b#`UmGf&F~y!bW3GK~COBA-dghRReuy_^#lYR@Z=QGz-BLc`g1#kI0LT z-8C7z_IoC>WzIubX;odrXw;pj9dm%nzKO4#X<*9aq$mhGJnff`K+Q?4ZvF<__{Q76#qq6UFD(5$x+#e|=e}T66`@##&F&5H+m+?Q5-2tazwa^y&ggdM z@+fc?)=k3u^2^fVOl5f|ZaO~>-0z&N;N6Ww4-*!pmck6QK*81q8>C_z?Pfv|B3z_V zQiySBSwil9rWaPV1GE*w?g85ul-I*$!31E}v7Zla3Cf!tU~bAe5!5>VxQ4e!WQtTt zN0&w*A(!fUZ&52o&m!pY*y!I9vr zW`ux@&$0dA_~xRDj~Z$ti2~v(wZNZWofO@BZ-F zCw>oLlwI`0nu|ng8_YAp-bLW>g>FcVPQ6dx)Dt*F3??W)__r-R|F_PHzaPE-L2CEg zmMS`!TG;=WIc-#f^gw=m^tLvNTiukn0)dD@$KzQc3cvypgd{?j0E)x&J0?jD2%NOq z*u=|eY7(pz?xa2;SIb8QL_mTaEZ38+UQ?P~LTU`=v@q{1^RzZ{a&n?Gce?zVCe2P= z-G2AFe)GJ3+IsugvVLAQ28RRYsifHk-X2I)m5Hi+Um)41z>t3O2`D$@=m(~&vYn4^ z^kAL$H{Mh@sz%2uZsu3TufmLF5 zIlJ#Wi=IF`!0pB<6Lvg~Zsd#5CGavgoE+)V>O-CWT$f6%{%nU&-w`6ajv;AS!U$cP zCHPb`qJ=^Ir^i9Fwc21;`8JO79n&k5dOOC}9Ccz){KXFAscpl5d*GKr#~d)}415Pv z_0f29%L`_bO>4xmTMq0uIpt{8@zXlyRtSz^M+|Li;3@sZ?uYgohs&?6q0VO8>&y51 zb*gvR?e6ow>(-mM_d9Tp)=X-44VT~_*9W!S4!fEg)!D`SR&ZPXPj}O}w#}JT9n*pB z8ZGGCFud@8Hy0J-OPVTszO1qRGJwCNSTuc#E;U)=<<_e7&{O@)wqR5&`nb2T+%ev!yx1 z1)P(8@nEhF(b*3n=_k-vg@6g9cV2G?d_NV|LkAF3+Y))hpPxBvbIbEpLF*oufQf;D zY#zSzp1Ry$OqhiyY~CQcV)A4gn&;<_jurCe?0lS@AiPgJJeMJ_FR9O!1WgEi&d%kt zhnMH4Fnt$d>20WeZrR@e8xz9fPi<;V=I=?Gi45#CAyu|(ctyE%p1mWWX6U{AeP?{R zK4(7&CPbyvXrl&nX=2N*H2ljy2`#INpvlXu2;2!IM@>FBnHQ>V0twANieMX)i+x{5 zE5?q<9Me;aelmm%wXam2j~v1q6`CsjY~*1!(x)kNs&6yJoJTi4nMK}Pm6V73X>c+N z5Aia$%#UR_u@)zjjS6ZymBtmp8DYRsPdY84>O)LRiQ^>`wp-v(rrFiSLrGXbx)Opm z3~weOE=Q@9v0pq>%g9+J)WH%ov-i+q$H4+3vNcom`Y=&C7%G2oz}`@3yrc5YGOUoR zZ|-I^+c%ECbr-}`XpG8vkpV=zo%@@!nr3g7R^UelCR!oI)&&iNoBe)x7=jZDIgxK; zgIDu;zMgrBUcm!H!GbKNRWUv-!fI_rR#1deKm|l}=r`Gj*z3AtL$o~DTLCz_#v zlF$%{VW2GH2>iQO7VlM)gM@@=c;d=bMD<&81`8R9-u7A6+*Rs(7^>&F%TWzgVOJ#w z|4N$Nwon$7g+%E!9TN+cc&Rlo7Alt9S$n`_utlGVi6F~Dc~HLBcke{}C4Xfu^0f#; zVlG&|?i#$&!nt!HExJN~IB=Ip04NISSm})0ZB67WwD>2PwP+aSCT8g%8jLL_b}TX@ z=3LSZ#joi^Gol5wE1C0Gzs%bSz0l7L8$LMu>^ z`t)DDO(-~3r7E;o9;D(lSrMI^D;=j%&n-)(BZC9fl|@@lXsvf;9Sz}@UY|zVS+WcW zB$#l1iine$J&Z(Jz&cg@2=@E@t%f4`+p{-Irnp=DmwjW>#a7MQ>Gh3ZBhB7rJv7xPUWrT9cJv5yY z(*%b_iyOz8u=>@}70uUQ0b>e*cnlxZMnA`L@wg&)gV1rL$u>%ZB3&o1a{1<}K`Z~b zzt(si)i6gP&9%k252{P7=$W6S4eLO}SA^W|*XGg;E{QZlkVOo)7d|2y*M4o+T61oX z&-N|%l@dc1H}I{7$rwP&|Cm~$E`IwG98p_ENs%?$RpNYiAkB!iGf@j__GDem=v#oY zANsPYHOSK>bpVMVRF^JqlC`+GN2OzT8evNuCbz-SsNT80d4lQ+tCodOg(cAoPIXN} z0==9F652h7ynKBL@w47Zhw1_aN8tbiH}p{Nb-vLA{qpfH_{dt?+#QhhW#5syTOXiD z0R0N^HY#``Td*|7g!%;i8oT~X>RDll-a+%0jv4+Aaj*BepBK524on4ezR_Q}=gn@U zhB;`4Wc;gEb&Vv8|Ui+%I-Z@*k0kxt*R~$S8jSA zN(wr>AD<-8)UJX6<-^wwGssmz5ZXBpqlxPzM7u}UO_1SxtGPoeT_srQ;)N^lI^M8%{K-tUWbe&EHD?&pD`PzQrH&@? zim#GVV*kydYhq_y0u*hxw2mgceb$p{``l0$b~|~@kEufz^=P#3_I+g{85Ok3=NHm@ z!S9N)G-_>7WjO0(l|LdO@hiMSsf_p_K)?7rtdN>gL@$)`ZwsAQkc^cXkl#4u6;53o zG&EQn62%dcw>k6?f4yw*nW?vyWr_I&2})Kz(h4ux#b&i(lBK^++>?LaE%rV-K|6{_ zQ<1u{hOaKzvK&Ww_nAiH_8^qA=_#rfqevl)*J5^>9x_+1IX8(_w%LR46>C0tVRWk$ zMPAfp=+35tdCm7&*RfTC%RiVwcB|zn)?7l8hCM``;Uqgz&5hm1Yp2$flvG$a@d0D4 zusq_alQ=YI1R+CP7Ji(vX%`5-K@)>Es_#vt*-vY8Hk74t_YI`{xwGx(0Dlsl%@rbM z=bG(CLC^{qwIIs!{82nLWs|GtlY#7E#rI-tZi0? zaThwcf+B8}W$K3aj%H`?xIKk`(jix3Qnb5wYGkW^+OrS@rwkrKDPR<_c5`qE~2aN)qQMMs6wZC1AwN&`z3Yz^cC zLEJH&SB$u&H0#OW@uMo&^SJSWl82pPhCWftq0?8*XfCsiC7LIx`3wL8=%Sair~o?;#0FoqEu_FhFrJAI z7jT^+@4W%1OY&|*V-fwk^wCc!9JfKhZ)N|8V511)|h2BLu zKxXhOe^7;fM%l+9OqbFpppoEp-Qc3}(ITqf|9B}(VzzBad#WU-7K}55Q=zb_E(tO@ zj2d&Q{ozNoRsPceuS>+%NCQ&`v!`_j?n5fF6CK(YFYpe5;2jq7mEiV?O|gr%@Mf9< zOKnnMJe#247p~9|BqCj$)Gi`f#64TUJ^$BBIUryxsMhd^g88=hfeYU3YZmXEMyrrZtsZC z4ILJgEf{D|rUx4eJa=SjH{0O@&Gy-ckDiwI~w%>+qi4_?sSnp^DGXQ}J zmW-dIt;gR=W(GJg1vHfOEO%haw~8f*C4v~Xa3D8= zC82mi7q0adZC$rvN|(VFeG+>Jx=)2Y7;}#%k!1lf*mOXb%{C>KF1YiihsKF)ku?D^ zSnf!M31WDaHA4a$6(N{yuO@|s5+4?Z+ z$AvG@1*3c_pBwGZa~Xp@6bzSlhLYOdM4fKm4J*9kn$6+Hg_zB9b+f$`(05d7{2$(t zl<$sxn`V2gm2~e6BB`QyR8)HXtYOK%z)~*z@w=M>F3d<P4-B{q^shrkv+YVs1U;ed;t+N;Ltbwp-~6P%{W*W*)VnX` z5+AqgDdK{Qur(a;WD4aXo#G;G;^J;{>DZH=0V16vf>hT_c;G{DQ0Vhi5c*UQ)SSHJ z0^TuZ;Bpwi9Cb5;G3gDALqhQ=fa>T`R7z$ z=b~8o`$m`LySA42yB6nSn7ULvbqG6F-Yg^0trrr5uGEft6Lkj}af5CjZ8kv35Maes z-zoeYd&m8AtlNb4&6}!_U-%JaiD}1p(d8<8_n?CS0B5 z9i3FO@=As9!`ePDL)=OFd4%I_O99?F0^gbH$GQeFy~4(z*pA>+eF5@*rsHuFjYP}) zc+C5FOsN=W6{qz9+Ua4>UA^al(+yJIgg}w$NkPR7Lyw?E6do<#Gy%3oZP_%c7X&o`ua@hV4g!$!JhBQK+7L1{M&8VX?X zN6r-e9>=@FN>26)&Oe(!ly*<|J}Wva#y>l@Sy95tGXN&%K#rfq7e*z{JIjp`W>->^ z=N$57NS3J{?U4S#Zk(35Z1EwzW9;dErX)nK!N}tQr=6P#jCK~!(#heA=J1};+9ecFAGL|z+R`+ zB}>Q~KeogV@%hJlCd4E|#LzK-l}mOOT}etsptnry==vWaen~XSyunNDwWbeX3O2{Y zD>(Y+TMP3V3~TC=3jLrncGCFvr>XU|A>+8lys!X5sCQw1n* zzV|xau%XQR#o`-W|69`q|9kbS=CW7#1%&OvJuekK_H@MR{MD|lI9U4^_FAU(Z!F@~ z;&^C)&@0wul=r=p=u?2L)Fx7h%AcGA+(ut@n zO|<(Nf88V@#(1J1x5u%x50&6DSJD7&TJGM)2645ZIFj8ns(t16I{-5Em)aH_shxCb{mP^z zXnCnNx5Vubv@;k6)l#nf8MY52sClVq{l4ko9241ZTO426t&TfD7I`GsC4dY`w?F<8 zVBE!D_fVK#S7z~W(X3P?9~_8^I9PprqVYi5ebAdgNTxwr1tpwfvTt+;q18OK&+O=g zU1A9Dm=S2(KB9Z+$fMS>$Q{7L;n#hld$_q;@AMhOUEt>f-90aR+PdM-%q?Q?>>I>h z5bXoeI@!;(*vQ<0!-HQv(gV{wthe?qfqn-mL^??aeR`vj`b2PU#Gu7utt^^j!>n@n zR0&}+iD8V^rv%Y1*gz+FkA0Gm_aRBtbh{od=$i+*bQZpzC%L3(6#>e$;dh{D$C|X# zLscoH^66Kj8$~)y?i`$lGl^M{BacfkJmUF!Bujw3}{( zvqwD|1YU(g&FC+b>e@t)NM*FhX|7vkK#KsR-Bo2v*_WthV4`Ne9;ToXNlI#Vlj!!l z-&&L!`VAZuJ0fmL0Jg}!$vY;SO3!qSw%?F?^SqfDP*qv~I(~n9u~^2e#s~VurVwmf zO~cs@Y>I*+o4>!ton09z{q5y*N@G(PL#puGt{3KlA?|`9^w|=4Wj$P52-r(=FNOXL zon=h+rwb@IP!{5;%@8aZJIML+K%Ncopcc6x)8IB9$WQ#+y$D3nG+hLa88{?{P`P7R zvRkD@xpU|b%=BITt!L=w`8$ZY!UL~l-Yf@JWD(^ah*L4L#45kgxkZNkZ9g_QF2y!f zC9&mRwNp2fWGkN^CohPnBrO_k7*&Z@zL#^AHpvcH93+;(#-*3Ur|maI51h{;ZJW?N zm}E;Ff`0oW@+-B1ebhs=EJ@98t+XhrT$0gQAf@h#5!8VdV-lF3h6+mcpGFZ7I>qkCg=F~B z!^GB~gbGeMHK;96)hx}L+1pgnx^SInpVPT&ZyMuvZrnLi%@@Rn-ruF!n7O^6E-8U81Xi{4K9_f(&^(c$ zAOz+Mp8{Db=!Q2K0j>5Tc={R&8aj$m`a1g3+WO);$iqeoUc!zvAT$TK5N!pBMF>m? zj06lpQ%6HbLto>g0$srq7wQZ15Bh-@T}~zZ8=vX_H#Gh4ApWoa8?fPXG&1_{Yt)RQ zh3%t(2YHHv=jY??MT^Plh06gBg$ngULm!6>%|K5jiq78wwA$aE1yFnY&6GQ-bz`r>wtP&mPq-)Jsyi*a868Y*Crr_C&)_ijzr}1L+FtJRz>3- ze*TAadchJVckcIfP5rM|{vXt-WbCY6T>pPWex$;<++U(EoW3A&yC{ddSOWNfL}58( z)Um-pfR%lEy;T@RBRfP$r11&g!vr&{Hd^n2HB1td0)KG#MAvmV(+P}BAS;wfZD(C^ zd0w?P-ydIBZv)V+gb;?78ae2&`P!%GrWmH^yA04w-=ygJ>c;AZ>Za~O_R9yM1TCU3 z>5UB4P{EIm=kcgJX)75NU7#BoX`&W`yE2|?Bb%@iti&0mA~PzL z>Bno?T=+|FBAkd6MiYx=uYi0gs-_WX9)x;DH^YEv{&X;umrAlzOeYIP@lBCc8$-(k zc9ycsCtB`gm7_$G0)x-KEh9siNGBO3$||Wmu7qmWqT8B*ca$&0c9SA%k-5)=*h^Ph zU3xI|FJH7%2$J2B3=emkU1B^vX{TtjQ5VP3MDfQiq%F`xC#0~_ zRVe&Z7`Wb&uLr$JG34s#r+mHJ)w6@4&X?24Wh>{FM~n4(;!A{I(o61&DjHoJxku%I z^k>Eb1M0))c}6-UcNbTtYgVEcv`EUQ@78Jg@oQIoTF}h$U zMuvL*4P-r#ef|)vQOFwxg)ej}jW?2)_cj>aO#B_XQmK8bv*L1GEPn|C?l60Desf#( zQRta#AA+)0u1m!qHPo{TD_M`qkE|g$e5dWltT7jpOSO;2Hy5!>l0LKLBj-=~9P5W> zq=}g;=TCb8e?IE0Tfm=n4c>p%fcbBwCIP=?Gz$MsuJ!LS8XW)WsUq!UXlG<$?JVe` zZ)o$EzQ#YvJ=swyEM9m|PA#zL%oYT0L02fB_QUIE@Mc$Pjn>hT%vf-gIdENI*6UzRzVL|Q?el3%5rfpMrvH) z-m8?gnIz43NuV>e%U-a)XS93nw#dQ@=<*d`|6op}*q(OdMEL50x1Elr>eg=E)6k6Z zsDB(<*2Ns3S(oFQ;30y1YPjJB0COK$839F6mh6C_i*P02+)?Elu&?~XZmowSq(m(XY3Eux+p53jQGR6ZT**$0<`Q8oXTE{m!e{PR zWZ}BGfxf2v#8HhOpJBW~lxf|m-vyj*g3IO=v`mw-(DPdEq*JJebUfAJ4Zdk7p5iL> zrKQX!(P_rktR2r_SD-B?QPtVeG;_F8Q23PTLb35*D})=pVX@^K(Bl7ICI4e!|895K z{_ho{Xr*WEXk}n%AY^J}{a;4tf5=Wz>v|v>*qHqerm7BwDEY)++`fcpN#fMlJZ5W9L~h4p);xH&y6ip!Ow+Wc0dBdmbk;^& z9oOluRW%?1D_auD`;3iQgNs7=~S zgvf#pqh!d~#NnH<335&M)IsAUY5k$L@7`nWNU40$_Zp>qGDH`$t76VvGIq=#m=7{v zuaYmCuWQ*&=j%R0-hkqy&|)awuum){ze4ch@Ls+Z-(ZI6!=%TV$2De2T7gix!}RCa zMP=nzpK^FM7^Jef4%4a`nNPKc*=#FvFRI}$ri?QN@K18YzLJ#jHI&NA$J)8ZDzHn4 z)5lekW4W=7422*jw8)mfl;fc0b6}Oat>AZqOg^bRK_IaoTfx=_k!- z-IK4~()2%>h|A%=d*?-hlM68Z$)=q24LSK(YGoF2sNJJo@(`j-n`+iE-l1Uh7#Bs_ zs^FChqy#Yo3Ma+np}jM!9#5NoevNZZ5I0Fc%d7?Nf z^@sdY;9yiV9V@sl;A$=OP@VfriOJw*-Vr64lMu8~TE`OfW9ny=bCka780Qgi+?0yX zgc1&f$({q4Jc^P$ayMVscsMnRuZDdw8O;lWLcur@Oy&rCD-oQ>%WC?SIQfESl4jgG zm+ELT$qMP0)T=pblad$O{hDSjaK?gvI$G>Lr32uD#Pl^IYY0~Cvc9Nv<(jo6ErT&i zJpyi@z&){74#Jh4efO0A0Dg}2r}UF0(f1RyO&^revt5xG1cCS%-2L5ZCGEmu3aer@7c(8xnrhkWd{saD6-a*&FRG-gL z-`vpQFGyC(+Tgz@m&l8M&kIHVyqa(*`rXe@R^k&DHUmBflt-`=Zo)@tGEif~ypZms zlhW%XrgPpsgNuiSnnnhOCd3@qVzWOKDWtDa_SNHZB_UrUp?7waHO%=fxb5+@;oPm= z1r#%sNS22lmIug>Fc&mPOE5u?ImN^?$f}!xww4lP3xkA7f^k6HH8qo_$)FV3V7T(~ zFc~PAWj~C;S01Ez1RXZHtbtfR#aZ`Yx_&fBK2DbC5~|B^j(l&bKRANo!gfqa&F&Oh zV2BVz{=m9yGr6&7XBFB`KO|Poga6IdHb_1ZFv3euAU!95Z)GrAa;a-+?F_OH`3(vh zOHI`rMdp!Tgvs0fAX!wp-{{0&iylPc1r9j%+RDb)pb-P@21Cgx((vlGPyw0yxt*QX zGTws?77B+1vux2UBDnU^QfIDaN*i*FswlQd;mNDQn>i}*`%&hBju9RPk7EDPj+KF` zC4Pwxy8rQ*PT*+Cvbkq;8a~s0Y!JKK3d&EPan@fC42QPi+(aNg%E%VGR~9B2eGMpN zb~cm>XLu$*A4?OHiaz3fxQwP@;cj^53l2{$Y%JX1%rG$bw%QaO?A)IRY%gE*VcKCt z21NUT7lk*KRDDKBE*~NVpPGGy>-SBFbU3W5|OmY_fg0{XxRl{`0nKSUrv z5D}++T)+ZA-oH}o>*d{HYH|N;Oh0*lJx+YyZF76U@Nj31>){%(GuCfR+&W|lGchN( zzTj1}s$K{$`lS0N3!?r2`?(5)%eV#Ik}Hd&49$_&tB2~!Rco+QO9@qCbc27zJu$hD z;Sul_ZBz>^eKQ%2@$3SYJ)*~)MPtJl-uYbMOA5nbxFZk7^&7xUE7`9!-0-ocR%dz^$vxo<36?)jpgW=A)LkYF6N&C(e zs3Xfhbj+vsRxk5jis|vsI^{|?t4OzDd?}{rXm`hEf?vfKs@E=_PD-x>42$$dAWIj+ z5T}2#WYXPq*gr_~%KOhC_#u(ivSlVjmHVqQE2u!k&7{nVF4xEl>v>drLrWiOl5|1d(Ek4@E#f`vCI#?C4Y z!4_D9{*0wyfKT+(cgv)yS8Am+Z}bEP1_latXRjXBXlI%_489iI>A&LZV(qEo`kinxt&kU2?4S7|}NyZBMZ zVQ8O+yoAj*@_w@LVb_~%_$ww6drFTZn0F(QAJUVxBfc2ibuHQ#`|4m8{%ZFqre~|j zPhY@j%1-E`l`VL2bg)iC#|o&OdO|#&exhQ@+?SPbl2tp7W*hqG_cFFl#Wz7-$&}U!jB`Dk62KSVC$O`AwP73C608WbJ6U(wrlm9GE;U%;)&<=-xhwum z$E=;JFq2^hZvRY?CF?Y@d+8F~GpnBW2d~whu~{#|Pm}(4u!W{7ouNun5EG{G8(8X6 zJrFQfC%KJqeL}?40?;-E_+%P+%~z5`hvBI033I~Yj9^)qwY6ersh(U+gk7rE6KIOn zfN@FWwYvDjQGtI_rrSQhHUgs7Q2ih=*^xwD z7QM)g4)_q+0oV#-dTq#w*st{~dd zOE$`LN*7E|j2RwO>;fK4^0RLxFLJ1Q`=P2eFhbErIFRJrb<_^Lg%DR9QBMgv5nTA2CS(`{Vipq189pRCWpSb-L3M*t9 zELc3+r|otU@WP4Y334=Xpoft6w#CUI)#uqnn7JL%`ACB~Pgn7LIbAtyI=KraJC{y`0ef6MQ{{Gpoj)>FU0CCv4K$z~hbcl?6>IR)|M6?Ostb?lG@a~9H-%&K%R z|6=)T<t>N)Yk4hCG`Jmi1CF zE}XHc`LPaTG9t{}Y=t${QS0`qTB-KpyMzsQz9IpGlh-n$XY#?#=@IAd5R7tkjB{Uz zS5V6e`g8v1@UG;U^_tLJ3q6RYP=xx>JKeVGQNoEYZG>oTr0DIKhwZ+B>k^}nEV&yv z~*Hh!4EfN&KK@M$yL(wg%>e`MHeLsVwu40d;W$XuD14>c~d`YD2n@_4uKP3 zgE?QGBSR^+t}srK`Tn0VmBNL=B@)DR`dMN(0QFe);oHg)7y%nmH_;a*3>3y|P;c>> zYy`%BZ@|BN;D?H>J+ALWhTgvow*0#f{2y58zx%-dY(PwmVE-#yDq#E)7=Vn7?c>K5 z^vfqez?aMpNMH43XGL}o&zA8YqrS0DPF5Dpj2Y6NJT`FwK=uH5eL~<1tIQL&(1egs zOOv}~)}=HXxX0MY4;2yn9*jJzSRrW$D>UOFRmBs{b2SuM*YB8xerZ3vg4eCV^Mt@H zof#P$te+*(T+jB2q=(M89#G)FM28d0gFjEjpj`-|dwYza*-E9t{Rx}5aycd7F zBG2FN|B2fFp4XxLznzu8giZN$jsMvx7dI`{#{)mq9VphQ0Iz`jWlq4$pj53Vft>fV z3=KxeTD+Z4GPj_iD;Z6c;TF(?Y~SL$whBf~Uq8R?QC~m*6rIcr0Jfxn%s?|?Dnnb1 zPn?e&MuDn8S*D^Vg2Sds%AzNd)Qkx&HdznKzvR%iM|Z&x=slTEWq4O)Y}?%HDV()m zfY^}9#lQOSp498UVfLf{jt!@Jo%Fh`4+DcuS#f~+A19IO#D~sJaT9q#ri;L4C8D{HDfZb+mRSf zLOzbR)BMaiKM}fUfueKXr-gIIOkRghmX}qG6+%#I3?nwaAtz)kfT2NmE=cqTz00A?F5xpa+XMt5 z{g%sdBlQm9Gf-5!DH(o2zf(~9hcok==U20L_vdJ}_qXmjgr2+rN{|4wzQ6z(R@P2w z2yH}oN>4!uxkPx1Za-yKXiC35!o3Q74Ow3_J}yNqk&dbWUcC#xjv!A;4|8J;w(2%E zZaTh6+H$0d%v$0>3u3~f0H1V`$pV9*RJjEg)nE|B7=6smoS1JIrFb*9gq)f} z$H*S~TwxTyo{lsH)F(vsFof79hBkTD>hZWH5)6v(HmfWL4M~IsI|FUWa!#IfY)8Y{6N#YaCA zk!j-$8C?XEGRSEm*zQJoWb~bNRG6iH*E*eA)&)~9yE-N82RGqX)v7NSRh>=rG;PAU znso8euY)G1PBoZ@9p;l;C$GsXuS1(6-P}Tj$0f5~u66X+896G^R$OD$(N)$Zsk*KG zU|(JQXbCz8BJirn_3?VN&|(B<-MsYS)1b9vuy_-r&%8N1NFLqp|hcD&KH2sO|8&rIk`znR5pXhjP)( zHl`w>rcI{VWOF_30;X-cgk^AK+ubzeEFPHhw_{1y#vj|mX2EhWxUx;^v4j(_n0B#- z%^9K=uA^Ky`gyncxl15vwD?YkeqOflCg zcWNdK`d`oDzndlY|NAWdyIJ~&p4LCRt}+$IznkNcIroX2^sv?V$Qu-hX8>GzG7^N* zDr4{<$mMj9kV6j#B0_p=f4TelFe3hlc}76R1B~U_1AZnOz!?@>FTq+4e@ks(ImZ7V2~I zyJfi{yvriRJ}qmZZgt26M>UVMj0;|WB;1lMsOU(QA14q)4>xW>5lF_7Js63b&s*>$iA7};bMW(>PmBzqc ztj1;CsLine+Hj4n4bD?=EOaX&yFGg6y6K^=Ns)h!M7Ap6*{itNuRGL*c>f}W0*}zT z^#s#{$ya2x&RgJA>jYC3l5%;th9?&O+CsfO@?DJy(K1r#^@ByVu1}oQ>=7^39&eU_ z>FHYsUC7TXS&u6nZ+Xcg&wyM{wj_NVG^8jTgZ;)m>yv3@xb(i~Hky%Rexktu0m1Zz zLXn?w(Tol$Bv)EfOKABbZeKPCtGfEJG$1dvB_iS;Qy@&x|tX ze1QLDQ#=m}n~A>d3I6}uME@V;3FQpGtH^(8pZ}F4R5sK#|Ni2ii43`MvHtI+7(XC1 zZ&GPpSsfUzhO1gq9+vJW6A}jJuy2G}Y{?*LHutP(B@lkn2X~V{z-}57hDQeMJhd_0 zdOS7pHhhi+@IxGoVFH?Wup-JY$`!0~G@k^xoX)^WbNljw)&i~k4`cU!((p%+qe45X zRPn|!q~InSf+GUdHo|aih@k6ZMhQi4qRz-_6*cU>l4O8!$5E{D1T6Md=KW0K@j|I% zn$Mrb!O_RSx$F}Wg9 zzSWyx52y_~%1+4qXQi&548d{%-D8ZmgZxbUj z546Nr_s{{=_i6o#4_?TmQ(=<_espA3DEz>hDBe1Lhc=0QBU8_Pj0%MlK39=C=sH5= zz}Jw7*MN#O!6c7DEv`!J7`)MOM20X9MKOjT+cLwH9)q>fJWV5*gshwm??w@^#pHms z3*v$Ws3JsmNjjd^2dk8Rnh5E?9yqi@V^G+)6Y=3&pZ~|WjDKyg=eMx7ceFG7 z7f0g%qwJlcGYi+H(e93I+qP}nwrzIoYN+jcrRS$nTN{%ypCGJEPxdC9EI!Gb@P{+zE^$Ow`bQWO$o_^lJuuoJH*gCJ|w zE{?^=9W+oBCI%li*1)ZxwT~Nl@VP-rl>(Xh!)5k!+{F3%`}$Y+;Aq6r3?2_0>HDT) zOi%pX{O#*@G_|Oq(Fe%VYb6Xb^wLDJ!1QX8@+>oaDKaP%N;Qc%sur^2FyMBzU{J4!Mz!^y${#% zn(xQwV#Jh>Ceyj4VtTQy1X^X8N9+SlpvL6JgtV%iw;1t0@ zGi|{<&tzb1Vk63`^0}P_y$Z5uxWa0X`kJU6Uk^f(#1bJQ)LgR6Ok!2;#a)J>x~hED zpfZVRs$QHqLiyb%LQ7A)=PeTu+fjl=BF9LnwdGFQg*nndalX`HfQsVO0ur_9DifXC zjY4Bg8^w*pbn9GisZ~==WtHfX;a`XmbWvBOvRd*}d>E>%$XzvCQ{~}L>A^yUHC4Zj zJ(;GaXmP@92MM&5(~vbFn%c@nR|YD&Lgn#0Kv@y$>*{4d!9zgSqApv`#9C?bzH%pA zWRMoUm7?`TdlW?;+7Spu?5s$XWwp+W3G663J}D8}^av(>T^MLd&=GA+we9p$6$!CYCcB3z7Sw zA#mr#1rIvd#KW;~UxOu
    {<(vitznMUUjXVuzj!1LF`nSVv=Y;-C>mo~qIOp88b z_pxbZ3lwkpDAA*}ViotCZ7F9(qICgM-7cyI!J9)uy@T{tND)UNiskPuvKvL44Xq-d z>SbX=)%}B%MYz$!8$*?=D}rLEWXy3$+h9XwYMsr^ar>}6V#;=^?0P{HAY<$+?kn+u z`jI%TM;X#{h&)5XMEg)>?(OZ)jBA--mr|Q%hXdlP2lnR|@(mrtv{AbsnmZr)j>uLw z@y>RKuSOrM^>Mx$aL3rYmPdUITf#5h{lBtX8?-wvThn((@cqe}Pclf09vWB-_lJZI z%uU+wpe8`vmRV}+1FwgmCc zJ#;M2bh<9c?Ka!*OZt+{9ZLU{%8#RQ&t%!~Bup)ZSm>m^1H-P-v! zlW|W~3xO|pom|d^irDTQ&p$BLL%XPTV)G4!i~-Ui*z#mZ)%hI$rSe-D@I^ELRy zfCiWN=Yba?1J5&(Mqlu@w?w_>)Q&K>Ns40Rl_)Twh-+B3!csw5h`lT4ie(2zpD==L z&)(eibl!?e4RSEeF_3iO;o0^mL zT;Ir|m@a`7G~>xH(?ZD+pwK=?XZ90Nb4R;88VaS8P@O?ZY{EH>TEsc{8*8M9zH9_m zDdqs=+Q#00;_M0$Zfpj!i$Bxv!vD*bxY1s8oWFks2UwC+5XSG@c;VpS9*ccKdg0&? zs-sCL43HNf4tsFKVM2i1(hW_^px+zY77cN}+aZnriz1ALpXmf|xTr(>3vV+(!Axg> zjzJVrA##5Se;Z;?3!2bpcmJJrxt)HFR%U-?8UJKcAl1%GU^@n4xY0qH6+StjZyPkI z7<(5;x4;{>0z%UF_+Fo5#sJ&-d(nGcCzByXuXoqY=0{lY`A8)ng9<)xTcBv>26T}c zuApi!h`@-Hx7o4mL`!TY{?U&~)&?7pnLpD_`0#jt$LcTTfu@#0em=jl^F<3Vju)XEmeAxPDvf zPXQQ#CoTw*1% zxOt5PYeH{f-LNIm8wwly8-k*v4+0S*rS{-^9r*u}tF@cYC60B0h$&W;{RCeHr| z!7*^QbNp|VR;hCSkIu7C(>9a!x-fkF2uYO%8wE5JJ3ln?l7YQo%*bcylv?W5E7o-y zf3+I~FGv}DVVQ+(-o)F9ro%iL=>fcUr>D%c>-VWNrg}afpHIl1K5IxF_KX3aOr`4k zGn3PnKN~5|+Oh=ERGd|$_B6r7Rn0=fsgTiR3<2S;k$WN08JxBZ4JyL;ov{Xl*I*=4 z%0ZpPH0yLJ-qn)%=aO8`i8{`xS#>4q34@mC;9Qwi5N;7(PI-(|e_Hb-$!{^}pqJ1i zHKr2;qBB)AOim{004N5Fg2RpGpYqHART7)s$?>{wLW~tBMW$W%@12=k{VR0_tTFx| zANnq|@H7y_w0pGhQl@M7JAq2=#9kx?=h6ABXPaHxupWhNm||2~jskCA;wJq5BIuA- z9&n5|oanJw`=&p?H4kMpxmzUBBo99zWisJ2|a={NL%4nz}l6EEQl}|lMCZy9jsV;wCX|{de$0mRWi}40`DW&R9m7ix_y%0lzw*4QJ=8%}}r*#-4j***NWE^bKGlWqLWjIhE?rfvD(#eYWUKV0QQ zp?vV}c_C6{3z1FdhfeRJ56-##fJWpXJO`FV?5IlwmSuf(546vYRi@7R8}L$pLAur@ zG+iaME-V;l72$>R(U1Df8$6Ad8^bsBBPWJEic>T&p>)e;r#pW&bBN(rc&FGf8gY(G zG3)H7Os-ErZ!FmotVnCL_uAmDTp~=iZE;uDBLwk?w%=4v9)OSR2@U;#&fr!J{jl00 zt2=z*VG#q%64abIj(`Vy72GP-)Gq=ze|v`9bA933GH3xy8GxW2bo*a*gnIa7L$u#K ze)WG1fd5^NSz86=)0Q!fDJCO1sGz8{k;1z$ zp&_BjB4b9;!l+Cs-hzce{lpD~Mg4R(;LH0$;)g;9avv); zTpmz!uszpS{~j#rwTS~6;JMbF4*&=5^<6g{4Bw~2-IX!OLjb+ozwr(Zh=KHqT#u=L z0S3s`y(ptU@68*0hk?NCJH2oN=)k=gB2``xp#)EQAap(P0Ce>)koRw8J%R5v{S*HSly$TT#$<$U=uB1skT z=xX`l(v(RO$0ahPi^975pJA+Jg^AYA;%bY37x3ik+DTsQRAb=EJRrv3Vb?6wQ0Eezy!kO@ZJeC)k#+fuW4R)hz)jLj`J0^L5OHJtP!xHy zb4`D2Vr`^Ml@e_iv>+wpxz(~TI3#Des}6=Hjp0YkK=0dJ=ja@6*TOi zD=i}5c#9@kpuR7b7CNEPtP(lQ>_MFxVFyrP%%{dN0Qwnm_qVWd$=0AUe>0U<JAt{sI>{R+XY5;!iX71-svJz zD{tMxUKD6w>~g|comD2nx9nE(P#K}QGBWh7@Bf^}w+sNi?CNo1^a;t4TDguh9EDN8 zN;TN)j=km9jlCuGq1ab@X$&gwro_{&wHm!3>!WtAGqf_i})ycY1m|99X zx{a<>+CN?{Z`Mq6>@pWZg~t49jmu0f{X6FVv7qw8ub&4?P_ z_U3xuZt+5_^DGi?ZoQyw7swLf;dE@|H^I^k9X7$(7-Lpr8;S4_HAZ*GnMNJ%j z&gkZyqx40f=3RC~{nx632SlUW29hNK)^A=!3t~+RVoxRvqX;fJ_>L==bevzuOhCaz z15}c|*`?@Lxw}S*ACl$wix9iDfR3EmgwIBgJQMg<=o&{*^g?JcK@QWgrFT{r26aZ? zUGQW^?k&6E9t3lklL%N{FK;ZHURxZMb|klmXf`R)bPJ{jz*|`&!do*Y%7&@LNWP!r zSV68uZO*r!{~ZMU6j`_(kOV+JoHi_UpQ@QNBwWp2H^=FdTrh<1FQAw$O15mhRiWXN zOV-05r=wkEMEOWQ6iPPfx8%}jsHn0JIh7LGabb1O0-550g#qpU$)>sUJZFj5sAE&_ z9wp3YolXqh@cr!|Bz37QQ;6eQO59aOz_KC_H((L5=%(#luJi6r5Yd7Z6u#S^+6N$d z%eWM_oh$T#yFQ2qEsIcB8*`sjTQQjX zT1@`d9e!;b){M1(=gqSYB*^Z%Azt~A(W;RN*w#nH9O{F;V)KH!SwxCzUV#Vl!=$Hj zCxvrF+kx2RVGwQzuy4?ISyx*m3b^+|z}ci*8mn3?jHx$DP{3HA55SB0b>bYODl-RZ zq!etORhBNB4d`x}@tk2z$3V2OV}$fg(n7h-M4YyKMw+qQrrOYf8y6uO+rp%0NR@ho zG5kuL*sOGZl-ZXP#O!L?Gwc-a9l3U7UyZ>x+7-H@92U8~1geYezgu*KuYr}?!4_@(hx@Y zTs-PeDb_+4P@C`N!=jD!{n6npQytK0;mxS{dz;-VK#zjwbV+cAYz6@q$_%e~KyQg> zHneI`?d+}#0eRFQttn+r3-!x~1t^5ALuHiY$Sj{->6 zRYGrMAH94J3{W6CW9%>mkj4RYWUnzg*ItRD1kCP|Ai~%?SCe(=cSbmzBUAf=>S#e} zde?Cm!+E^1XOln~jm&MjpiEM?iee@kjP?Kt&ONB@Zc{Xuq@I4sXLB?o_1DkyKiii= z4S~(&b5FnViM*E;SX#_+G6ZR$v8xeQ(LTF?F&R9}>p}H!j4pi?(vUzyAkLpjPU_JX zR0DZk@I`fscjF669mLpVxbMslr~(X9nXxjd`D?jb;Z#k3?;Nh+8XlJNm|u_fG6){i z@BMfWXMYc2evifmgUn=&@-jvHVP=mTRse-g;!aYE%s$#+$kVqd4t95V$GaCHtK{6i za}B#%2N`E2e#g$pjZllesm6m^^i&$Ul52jLK@_{9Wz0)(OIUqP^csw=XuRMWw`7Vk z2nKD>%~y6;(xY%fT$FqN6Z#f9f*T5OOg{<6FdiCRNWU!QzwhWAy^pp@)@ZB|gi!*W(+THlrAm-<}B?){qAw|&GOA?h>k|=7hJMs>Zw4c8&r7=DYLqZMN z+qc&0jEI`|F|3|XGPiw>FIF4BUY~c3et38l8c6iZ;6PBHqxaT@px{tcM2x0KyI69kyQ zvU+gF)`hiUpk4ir0C;@`YCcoBxVA1oxKXLI(fIr&RMa=Fs~;@9HaVD^9VGK~K0;q} zq!N}zvqHOFr6$F_g7ynt6jFE9F+vp|gu*C3i1DE^kf77N-L++aezE(7uoUuooh3wh zbyt;t{3wXwbXh2*ReN`Uv+*wa5ck+kk_@@aewNW=R@m?QHBG!?ynLbbaDk$ixw3YT z{h%F4=Q;nPWT12zvR56Z`j_RTGH3**{2Yo;7V+zv|vW!vH z*!130x#+zOC8)c4E3y`}@=`nD%>aM34_dXa1M?eHcc9B3%g|AOhiAf^9C9BGv}+(B zLO2i->L%2PW&cPRyTOh9d7IWh5wHCqTP{< zhtf?&CHhKHq^&T~WODmv0}tI4{;n?TPTSKH!CX~f@N1C6i#pdChw5Y*J(kh&h_2;< ztt$0SdK83~X=e2eC1rq0iASqEN}gCgKOc3@pk!Y43*O>ZyM7SOWPt4Jzf4hrwDy!c z-voZ*TdVs&YTLh`CjY^*+y6**|4`Zfg~b0;SW|s!gVopqHJueuAMd=aI6uF)-&P#@G4naY zS600J8#BsSLbvaf&Th-``g!yBcKh>`@8|oo?=SQo85mdaU#;+0!_8Xo0Z4nXDZi^W zsLWf?MVV+VTBzk96^|k|S}8-nThXp9Uv$xJ+;y+K^kDhG_e0$YBJp;I9o-eObrZno zM*Z*TLg5Fg6kk0_i*;QvEo$C(_LO`p|aVwMwyhYCLo za)nt}@3B16h9ugi&q`?jcW8b7k_<#pf-8ZEd!cFXKs) zJowW^8oW7rol+71c})_F7*ra@Jcr3dK`RnQQvxxY`LE?I(?Bk>*&(qI8#C9Q5sXm| zC%*~|%>g@38&VyqDYFx+p%EBtTJ%$;XbZ{hQ>0TO9+Z$#8Vg~1qQ5qkoCqsxO50GS zNY$Wax>ZJoqr~Bh@r_xLajFV%97iIe8_EC~RaF{p1OM!(zPs%BXp0t;#f`7=ou~}> zy9u=qEzhTlC(`t3E!iy|16_m@a*4vIi;JF>36MNR!Toz`NOO&QM~9~NV%54T#~Tg` z+)_8>5i?*;std`L=yF71TuoY-GInYbnCU)_tppRayRpO`Yy(2qtP9T?vrYF!Qj%M) zjv188Te@4T^Zv>ie8u9>gV`5(IO~-<#$;AAOp3xzv&Ws~f!f(dmBfJ8K4=E*eo9`K z%MK&61qmd%g{5518Z0tMJxA(gYDkESn;Po%c`T}y)_@HAG_*9st#yzw8!f5Gn3s{m zf;6R{v-H)73*t%aSEWZ`W@?JS6&3u?n1YyFWTt(z>=O4SBmiwOmBlrxB#^an-flgoX z_Gl!|E`JN0oINI(?wMPu56S*&mk-gszo=}^ky2?C(om5bX=%?(*Dj3I-SZ4#+fWbQ zY1D`(Uy5mjHv>4BS1fuKr+Cg@P$40FXDbq*l_Wprb#5kFw z?a^`0B&~K1VyEGx%FE4Fs9aY^bFN+!(?I@Nhl$F3u=!2D7if)@Pzc+XEZ7)1(o;bL zPnqAp?Lm5W8C4d&=}CO?qpfNSUwz0b>f=bHOx4~ZT)RuTC_fb#CzJI;+f~EVkk`a7 zX)ohsM3cFQ_{vP>s@C0?!K?0AntWPmmRHSKrPcn1Dm61oex96(L<@+g9Y+bS@#tvq zah)f*6WZuBrrxS@|8eLRHAFk0bNI17+s_ce`*6?aLHAVv^pSEEn*_KAe^#Gl=N(ye zV73Rf4yO^4rX}3*Mn#AW@6O#Vn)3lLfrLuz%0YvtSL+1W#-Ch#G8AX8m7YA3+usA^}?sEz0Oi4jrM420cOkp)) z`Tl?g=stE+9cMB}9eb*$26vfKDm&{V}M=)eSjU4V|W<@4U6NRnLYB)V-HZ>PtF(hNXdS2~@xC zaqmaQ93!?;t(JL~SiU;>p0|IKhc&H1^CN98j~_^mRY43_+>hiM4f_*#^h>?(h;|E~ zHsB)!$|^MB)jafjn3kb+9|#)v;N};~tA4AA#$}HjyO~C|*MjPO=&iDr5{j?9BKk;# zH6B0RNW;jIK(EAUc`@CEmg{+$>Ef3*-c6nT`DDL4<8o*Jh`%ZVn=<|WZYO>1nUnLu z&!>H%%%?=@9}L^mWL|7Js;PL-lQHi{Vm$YFrk|wj2}e17_1UlQiVOM8d ze>?VMwLZAAdMx1db0ppWqc%o;F3YehB4WQCq4ar_@uL+az)q2aq1ft!YZfHKw{>zZjwv z*)7rEvJD%hKSFA{rIp%2v1Ob9ry1?->%X?J98y5HHNQ#p z4dTDv;r}kei~Z*$`d=BrKU-)17cnSIwsQI=1|i%3MGT~+vBp?(`S;10i)afAA#$UU zLIadijs$^hO0CPoBdjfqIfPz*Kz{}JBAEKkxPperP2A+8PgS96b?p{JniX_*PG^5l z&62*}-f!)GFp^WLE7X(`1_VSXk&~+{A@qlKIOzL*s1jbyr~yyU4ge~^S+g!8PCV*TYQ?}aa4DcX%g zu;4{^$>8lza=y*2wKKNP@5-P^!b3F4bu(^q3;Us$4z@ALt5oaVZyVq4utsFI-XLi^ z|3JfaU#*dk94SL~-2%q#lXYM4IFVj27whCLePJcvSMk2p8zNyVQ(z{r6`8A8eE{_aw1tpRPMdt=^GZ z1gZyg|KW~)6mrx5BV^;N%bU3)f+8f%)zNklOJ>=Hd%Gf88yAtV(np0sXKQDC+A>v4 zv^P5B_%AE~`) zJFDVYF0mBaN@z)|ju-Q9U1`4IbM){1(DEyb2yC>Ib}vZj4?^zxlXJdk1<3{`=DS~y zs_=!Vv2$NP-hVRuy@4R)dPB$yWyb6U2qF|7|CYB;Y5=&0dusma8+R9}$ft}OAUP8` z!C5|zroS@+40K#nSi+7>U%Yc zw}rz8Sz_=R7oV$R*Nb4l$yCgIM+tvA1###Wa_Gj|D~(6X-(F87%S^c($2#P0%rJ|s z;tmo+)5Y6DKepKH04rF>>1hvg1G&DdB{G8x+lY+ZKp8voOGNNq6Z-<0#&$K>koO$a zJas{V@*ddVH0-WUz4E5eO<<6SXMY8sX1wWCGaVstGj~`P1%kTT|M-KG&hXCalLq{SEBOkF<(4w2@XbnZEUyZJ8GCV&W=9cXdfWpdaRM5BFhL!ZuK74opQ z-pF*iZawzdcAMhK>iW7rgZTl&mTxY^7@%4Z)Ji>p0-}k`D4LJnn@YbANg9-cY$};* z0iuR7K`%~Xn~Xtv*HmA03%R@uBhxHJ(ymQnrx9|MZm2^KFb!90KpCb-weZeRV}wRn zr@)*V%a7>oafIF_bn~#mN@p1_;u@w$vIFHxk*bJqtI#2?c+1mpF5N3I3 z9WPP3N!M0`k+^ME#A~rcg+g0aX|rZl43?_|<}t~Xpd*Sao31#+gtj;J&tSySF+AYS%`lC_WgqE%@j!W9~H*^saG6G2I#pP=6?fVAB4X-9)pS>A1Hw{C$p z`idTz>2ujEQ4JLxp0~J76>9r(u-gRkgw@ml=SPe?z*T2#1n@iR zqxBx_&=%N4fZ4}e(|K><`}%$Nj0k@QvA#039nhWR*Bf8*${PH*Q4L6Wo%orI(I5J%+un7Y7e85JJBEsSFo*})D4m5C;wjnnp3 zx$Cpi?F)N+{(K$Jn#+`o_)B-mUeONWTll{IBQ8e(^6ZdLsP`FN^U>dbRk``x4&M&~ z?NLViM*YeuwJq?FoPWZy$cGjC?sdS6m*#Wga!?xhSiToGD}X`FQE_ zLqZ#xDEd>=y2pWmn>Yli5xqwrnC#XbScskENmlF|sWN27-HHPvM2@*D_Zk^2>{h5d zIiw=0T7Y1Hqz5q6jzt(~hg9uoqnF#WN}t4xj|A6({)HqRunrm>E{T-}@u=N_%!ap; z5)cTX$tO2b9P)t3qwT%xx9HY+pNTD>r@jo^P>3K45PrmX&NG*@_ZVy zq?ajfu_Tc_HY?jOEq%WM-|SrL$`<(4BI`iwhTz%h{GJRiW(9&tLLGB2*zM|{3OTS& zzWZmF8gtKvB*bxJgfymj3W3uilsW}Vu_)1!)T8ReSYC#$d{vAkPnW=;q@V_oD?00Z~iN~FnE0`*HxWz;u;Ua=PCU4=3S76ncp5aDW_ z=pZnNoSk@^7*Tv18EK}n5qdmOBQbPO`J`VRA$yTfQ#UrQFiRA@L<_tqg%*F4YvWACBO8i>#)(QxJ_5ntjl~;o%`PND`8J8{iF6d~nZ%il6Dqb>SUUu? zg~cpq+uEWR;ZUJ6cc0(yrz6x4H>RF;kU9#{iI5LG2u2=LN0}8FdP)RaiVjk_s|YF` zuCM7~W6hU5DeGNkD%@h~qV;1fP(ICUmqZY;Q|3-pvrz7ie5utSo>5T=3+}PLm^@|J z<#XdlOrr9b_nIF2%K2eJX2}zk^C@jPlxm-kv6l3(C`bn8Evao#+8-x2jVngdrg92&a`$K5#upz9(@WO#7b`MSjE+`>k)E{vpOl#b-pmN*`MoIJwpoRKzb7Q=>on_CP1qYp%W^GSS z2#Ootv#MNM_BLzS@oqYS<@x8<19yFBhx`45*Hy*q`E z;q+Q8*qu(WUHWP;o4|Ap_Usb?3;dFow@y*rt4M=(x9A$6>?v)oy=_bucv% zZHZA9mG$(yRuo&mupPjVckTovkT35 z04vl>B3hDnJc70)9;nZ{QB~C)f!h@Ge6hy9Z``gexEODlx9F@~3XEafZ_l9ve9%BE zAdhzcIQ=`5ithcs2SaB6uQ-eSKR^Bd1!w&?#2VD}@KRpv{L214os}j{`tuhAFd_sX zfCh^9q0{wHXB8gm-{&y==>rWQjjkby=?YbgbJ@UV821=V#;n{&n^m8(eH`2@p~z$M>J9^*Pse9NkVn-A-2>FN^tdKhTMI9}V-_a}uD~ zTVoRd?5*rk@$e~@9HsjO*$MPyPK=iMNwEbXB}ii2aTmi8`!-m_s#%N*d-5Q#|l5LN9r zgQRwUlAXO{rIyz`z^^6b*o#WWOUv37aNa?@{kY*6sI_q-64w$=V0)BIqumxPwY_`L zZhOnq+_DHToIOEkcIZkunf9=xB9AUr#q z`pCLE&P|O1Wq$aXeZ(fJbc zv&rt{n0ly|<}l~RIN50rc8D4>pf5V z08?qd6+{*@Bj)NX{U2IU0Ocw6oz}tp-DQPPQe&uY7`vr#gF-5~qVf4(9!XY0=R!u9 zg0qW8W&4wHCubJSe>hM983Cv{Y8Y0!JfsWAWm-tMN@!Nr#9b72=HSbNMA}tR3u2f; zGDgYFq5UMvq%x5Qtw9N>g&oXGm{AEmQMGR)W#T&GlZf_}P|Yf#rTH({uO7h+Isc2!MTZ{(m{Aq1bE2T2xOC^l(kaA5dtNuwT z!A6*ccomFtC>Clc7O@svma&&~@LIlHG-~+Midk5T)^Lm&3vD%?)Ibv{VAV;b!Bf78YdlUOgND|8mPX7WS+I!=;MVd6566$a&MexQ-DAX;tFSTs&;KJcn5g(OALo+(d@U z1lN3U*c8K^&#OA+if51MXi-s1u`u!OqbVXuG%CT9xJS*q=qF%= z^k16o6y+u{)h1R<<%v>gCY_VFt5w-V&s!Z(6|E?xSV9aBrJ6{J%cokX)hu=v(8O|5 z{ElyLTw#}u7%`ePm^bv0-nJ|Z7iOuXU0M*$NNHYq+bTaob{?a(RdK3_bB`KcVb($o zmEf6|Gs#k=3{{?kFVhk$9GYpnDK$dOv4}LzHJuyP*}{%kqN`hCiNZuYgr=m6uFyrI zV_9AkdmOtd6K3I=+bek$Hyl>CbE1}o8USk9JCR`fy`bM%!YZt{rSlk3A7L)llGY}I zMN}@?vZa0g(6(fHG+n`QGy%aDw2$5LpvzZ*duJd6jApCMDPFBsf_iyjZ0SUV<-T9s zENqE&63Ha?=zy<&wB{&LVu5fCohPR_yEL*w&$hIIZYxXPUajI*(vY)wuwW&sHP_H| zHNU1PyU5fy7TSlPDKf}i0 z)s7>W9>^OWI+TB9wq7 zcy^}N@{2atq=)WpWnrQ$X$E~1r9HI13vGl*UeGQ!;l7Oww$R|7)yv7l((uu0)k4@j zu7!M*lyz}BPa9#O+M<<~ngafOWqEQdten)&hgW_G6`%cnmaY z<~3b)6P1K@FOG9K6@vR{ZOghSo5%K=C#ETPq<3BT=rZq%+KwXcXT}zB5nHR;!%Fxn zdjdvrsT+H-qeKHnY9I7UW2yGL!1cn*7osmQJ00eEV!pZd^`fU`7hx~I0-EcPTdB;6 zV#Z2g(M6eBuQr^k7voZ;4f?gdNZQedlF6V)-P+99NznsjTVJbpL}I7v10wk$(Zs3? z%o0~{Gw0Hpwis@fj;`MDLcM#ooHRU=cOJO!GekG|%MIz)UHC7CiBK(vN;o`4uum-C zM~Iw}n_VEvUAj!KiBY#(9z5H9hwfoJZ+AG~yYTq|dAzFu9p|ctIbiP&@Ts%G~^vZ5U^-doIU)RUY&ke*Pon+Ca$bVTj|Z(avZ zCe0a+I!e_|&E}#C0T7NRt$guNd`LnX5Cb1kg4Y2%uayX!PNewld-TAS?Pwcnpr2Wr zQ26fzv!Qr$Kz4R-o67^OCQ@8R5X<)9OYIzH;; zumich-oSYg(|0&|Q-RyNlo+_)pDhs|9v8s=1P)0K$(vR0_!Eo{ixvcVrj>#Dl0>gv zL%X3$@7W^vq5I*Vz&Dqq|B?n0Xa2Lh2L(QmwZ=wFhN^UY-^9~nsBHBV4X9*0Nu+}RD^|d+!whbU) zXbF{N0|N@~Tp{61B-~lT-z5d+upj8fU(4&FUzhu$pX#L+u6hs5`NOs?GUc^f<2q;N zm5DR=j;WMRoj+9m&Jhwht0UN@mm$W?zc0b_2_bcLJZkRs?odAB^$5GR-Lb8smm_DU zt@-Z#52Oi?Ge)D}C#@UYxw+XjccWXhppK0xj+tq|dosgWZ_9f=j)S^_N~f`_ibYz_ zi!RUGECBd}k4uBF)omI^N#>j%qR( zxv;7{2|KfbRSk^m3Tb;)Qcfz$GO2pp&g22l792Ha+0=_noVi`|zcc13S4(Ql8+-MtFk zac68KQQaI6c2aX*oUJNpdt^yUC53nE6`6!kNp{V5>y?>%gk$9pfM3*-*F|fRmSlW^ z+`eFSA4B^m-EbH_-gw%X#&3hX&@1_-+d`-ME##G<1CB2>zy8VxVr%;mfbZ*`-KMF( z@LnnDpcwoFT_^h35S1@iG41dxEi*%us}X$Ap}z06$9ogDOCKDa;jze4$G{ zXQYfn{}I#EI3D6wIwS+z1(RV18Co%#P&tah?ZLHChodM5+B)s0d>%PF?j1WaF7^Srb^u=%R_buF-XZ4kX zSegqA)F!sx`#+)a#M|dRcWdgp8FCTvG!>G06WdWtD5^6938U_GR2{#Z3Zhahb{)c7 zjT1KQGL|NpH5GXY?BQE~fibA-8{FWBfY-enD32hyL%ynf_62_Ld3^{#AD)7Yug7#H zS+7;kQ+D}Vw+%xNYM}#~8E~)3vpMKqVsinOQw1egiKL;C7|!?cFUS@zXm5Ml=;FI3#aXa* zmk;5%?n#@=83F4H9i-OBquI6bhp0d?fse@9O*K=E2e_8DeUU=wx(O_KKtwspcW9?z zJL@s?ToA^0h~c~T0E82<<_6i?&^1FoC&rs>y~r<2_=D09X!Y2?^Lmz){7vxwo({Z1WGktLe zsbbf>dp(0FHlhaQ*0&_SzTFZc;5Z#cp-6OVSiu&$yi^mkUK)Rc5{vS{Kftq zh*+y`7=_Oz6UTO)ck?C5#kIro_gAf|-@YM^#VC6<=ZgKR^~@&kqIFzFX0y`7(u=_; ztf%yJBHjoWe-p|`K8?DHxo!7@prsRDPmnQ;_YWa2a32cs7Mx!-A`@f?dTPM;qY64w zOx_2H?o4%ETg1hM;#S4;+;F*vpaEd?48B}ml5v4+aYt}>qq@{8LOF+Jl4+c05mDOv z;Ie!{pDh0RV5BG+xTMP_ZRk^6^sPA4z>YASsASkZi4s-ToXld_eGBPA>#V_^bPi{y;!mH`ip{*)N=@sS~ zq!Ln#G1LoMYlQFhTa%+XX@IO6cwds2(AdoX+LtE>|8DrXQh2Ce%?cl58F&+!3_xq> zb(a|Lr)$V{*P-h9y=L!K5H(QTz^`X%1}=m};5l~<>~!!XU&Sb_2^eHeF>)q( z7up77YDv|w$h8a65R`#Fh!(ZN8r7_cX3F|w716ATBswIGIEZ4(m;@bgkM^;Mc)Xm< zu98P-4~#3oJ-u7+f6-b!c6yvY#GqYDp8RtyhS-*OwLad2tj^J-R-;tEcZ;YMrw(P- z;)e~(XcH(cO@Olv&6`yeu@;r6#rf_s>mPNierOva$_6QgQXSiIcF5uc4f z=J?2UiJ|WYhj>4Wcz^Q?0i*MSr9b|bdYnd_qlI_0(7YW-R)7*2*78e0YdQ0GlMB+* z%V`&*p3vQg5bW|%uWwwiK+$Qn49RIC3)O*zWt|Z=B*+P+$6Kxh_lP# zCs@J{GK6na5J-Q6Xz562>7$Nrfq+6Oo;U)Wo3cO}27!Dil}R^$H#`$G!tKm{Mt7}= zjm+}8#$t;%6C@n)w;`ngcxE)M>G*oIh@~n_#)utlJF}7j#M-GH>U!*`RP(5$^N2&^ z)Ayw}1;J`bLB;JcfzKRWH8J;#cV2QIgyiLsp4-*akWA}R1VeM4@ceW zqXWsJqtxOfn|IjV(`}fJH3V+R$4x^hJY;@PJe7~ZyBHRECC{mGf=AUsd_SjT5+xmE zf-u9x1-GG8fEm4tF!rJj9hE;bj^Ou@GH`LZj#t!F%AfvHW%j~6y(R}Js?A2qdF8}4 z^Ujng+;*~Dj2C0vEWXis@=F#&2`6WeoiMcCL^`2#gZO_Lp_i-q<+~A)9?BVnx-fBlz7crG~{o}cPI@a)p$-VzT@V;y_5SfZPXG<>f zZu~PQEE0D`fC!s4kcM0h+zp_ts#j~yeknuto9if99_F~K7wbcjqqHlq=w5pd_@n8M zpckO^vGuOzhvmDf7Yg=C*O2imHt_wEzw%eu@bnf6-~-G#k12$iU@AmBR<(G2;v=Vi z^mVEdkEK#Jft^6BAuv~ru4)ff>d@m|0T<^~GfI|<&o&SF@x`99bA*G`WZi4LbP zJ{Ftw1)ZJ@<1uxWqjS+BS zR?rZ0h8a%=zshtJCn`t!Tayy*9K%m$kkc$(|4-J!Q*GT=Ps9VcZH$r}p;Hw?LbZIz zq!9)U%8utoi6Kckz@`z2b;`HBpQ1|=tf*0=xPQbl1CI`5+KIkh$w7PkE^J&xXj!7% zozXwt5TplqV@w6lzG{&pkOw!HwL`hgL>WKXeI7!qmsY%IiwSi1=2ujXn0@ zbI#{0vKi_@Zj%pbghQPYP+F#DF2$u3jO41Nc9kt1t8jLY8CFwtO-C)BqZn^dHj1*2 zTJw(N^!>F`N)kS$t5K0+Q0guK@bd&PTBq?k2ebq#C-FL_wLs(;&75M@wP8Sv;NYDQ zC{CPmk9pBl*l{@{C8#)IF~mi>@#&E@b|6F}DaoY9IedvaAr$-yiTG6H!;8o|b>;oe z2YePuip|1Qy;Q0Z&@KKJ7NlD7W7nk`KFkMV?f6rDTl>JzDq12=PBE~zdNEYyf{{>R zHFgcj1o(P|8pLFVekw%h121%Brv`DsqsTKvd%I*SWR*#00~L0D&HPq~&SPW!AG0nf z9s>9BL6ckO@Txf;@8^iBi#K(1T%MP8QCXiMZhnv83nz^vjUcxZZAP80j=SaU%SZ|l zm)U0bK#KaQXrd@--emjiy=9`C*$XI8PG{mU`>oEqNchriKZ~?46h%jhi*7a}y?b!lse?VEB zu+@j=LautQ#D>|FBWYDMXA7DU>AcN;YgN1IW}8HS9`mHjOlqF>j*At?-CJkJtQ8Hj zdt?Wrdac!ti#_OOhrOBfb`!!8JavHk^Cg*Pe=j%6J+}N=HHO*?PiXW=P^Ob-@tvNQ zzmwo_L_1jUHc79*U2%SNNx<*D!X(i;RQy1FSM8;-S+x`2D(;GmeA8q#!?H$w;K!I= z6Pa^qiPoL&BxPf;h2dU`Ufr;475vJs8LbTG=Rt`0$jEKn7T64#UCF+Ww!nZ6S%Ge) z3PoTrM=Q}ns3=~R*a_lF7Ez#D%~8Z@3{0|g%*Qo97~!VLQ?8T9jHkp@sW`{XBKL_G z8ta;iLi1X&Vu);6mPD(?m>17zlu5>?=-EAO23Zyh72w?sC`WPonETtJEKZUpE4^EixVT1&E(k9p|qz@>a%@Fqm-Lg2L#tiz0>G#eyC7W!CZ z;Sdx|$T|VCA&?OP#mtjEX8N>xLX1qP;$Tv16=R%lOUmtOhLYX0WB9F{z0xdpa^=2C zi-el{7{#klJO61r^UDzf3yF8P%BNnDWHMJSjx0jf2)XG2qp9;oRy16(k{cZ*#MVT) zvTN8g_afWn9g0&v%gW5Qc6Jwb7SCMu#Ks_}giqDPYQ-t{GCwd4j-hdSTz$B{(|m{;zoP3@1gN5`9MvG)lMpX$LP9+~ zMGTC~uQ2RJiGZG0qCVWP-H<|k+>5BWHWho9a-g9T*qm*;mS)*`&a*#>c#KKZD9(># zDR!!Q-(FULSLtZP%(BQYB0qg5$w`l6X<_9!ckn<8%9_TU({lOXLKqw3u_N3R*!0e+ z(=;KQy5vBrHn#0prY*>6rGtc~6Q;`+J2d=_c4avvMTmVg0(2P7Nw?!h--6C*k8BUu zy>B_}EFvgj^)M!zUe-)ih_z5PamFx8b#!z9#LfwEGgeGlU5pZsJeluOx);AN_Dy~W zF|-1O6{Sm;6~q5!p=;K*uuY)Gv9PV5p%8CUi7_gf%1Fh;aFM=#?VT_2T{u&0h`ugu zyF6+Z$k>z6E-aNC|0$-RV@O?js!zD$Pdus}iSHH7@EC4RK@_~)`)Y4_cLuhlImTeK4gdHYo2 z7i-XaLP^8PNd^2@fiW#sYAIGt` z3c+Lp4zjAWBo?WDho^!IoG-am36=2KHHnTC-A|~(JrYM)X}Q^ce2r{LU+W2C7H}9FzDvl zPnf@+dV9>KwF5AJ{16iVzX^SK{`*h8|Ao-!KU8%pXU^Z~jjxTA5eYi`Z|apKevYM_ ze)2j&MB$KI?ExEj1~ z5V#tChuF^2eR={&6JG-YS~9oQUHW&hDA{qeDO^J(>%X+`MHpS^&5#mZ^8-%2dlG2h zN}(?ouaXuiELv-&&{gZMPExTB+%`3H_fYRi9h5e6$8^(!=*?ByQ>UeOh%7`nW2sjs zUE~zRreWqDd}v%8CSg_`n^c0#4nb_LM|YSQA7wmnW4&HM;Jn~Qqm223DNrOq66tAL*RN8Fw&# zs2>oXk$ik3o}$iXhp)^1=trhX!&>{4h((yn$3Ol@qO zkhE%sk#di5AoAd1fz;gas**DCCsOm)mbu`~>=(8ZGAA*Af+}D|rycCX0CU*zY8@UM zG3~`dV4ahv)$#KbrS+B|TO&^aNP0+#R+l!Gt0HCl5*o$Z_4jli$`cxTFQsHkDqDQFGn^`0 zbIDWKXdoY)eHOV*ZNx?fC& zwUHO1OeWZpZvt{HHjJwoT8yPRr-VVNF^Zc~FM$lD4Qx`Z>}2%I)X3`Z`4yG=O0Anl zZ>MhAE58;U6_Sfd*jD8nDJ`Fh%pq;;N~`w`)73Rf7%&~hhOB4}c8$Vk*N|-KZ=}xY zYp_8j*8Tm6pm#Khgz}j~_J|5?(n1jabcMt<_w{Eydxx|MtW(-!1IT`pn*72k)Wx<{ z5uSF0!QYqrr42@;Z_<6rP6@)mVWv|4XbET~V|wg0)D)e<$8~h->~{Rg@`-Wmjyx;V zx7a|{H9A@pHaig0gef^)N7DpVdU?h6LXa6vf9$Yj;KC~<#|-;ejr@8|m-QsYRFnQQ z?^fK93smzXA3Z){qM@!m^iP-s+mo#(MOEr3Bth}lM0rxH5SH45s$;=Zhz5eZW7*ED zjQ)oE?qgr~k5n5W2;{9T81V@?%CST<)fNTz+`)`s(T=^+J`B!a61VP$#VK7CNost% zpR!}k-pRp4aJF#ZXMzHGi-HW&qSS@1M=dnI`0*VkIq5j}jx@ITOfdrNzno`fP#_Bf z_D}~angi4dtzoYQ-IgIzXeAG2V?#!zgBfE^o>HLZr>oJYlY1J5b(oEiBB-|F3voO0 zP?hHcZNfW(bD45VG76l+FRs6YC(!bRQnCWRlQe#I3Es8^y>oa{l0_z3({Hn2*kCMT z6cFDaJGCdV;9GzeU^9$aa~rywDgOm@R%IK1CmX|H^`OWrD$0x!W`i+5 z*vJo`Dx`?(R;g!;Wnt-TdBVp`8!nCBK`^Q3J3!rr<4m1ez6eOx2GUT`j}Gk!DX2u& zOCH}_m--!GtkAprk*VZO>e&O7YVWX|zL;O`DGNCDZ^pg8RJcYjC|bJ3mqW*vL$tRq z{-g{&CU~z%VO_E|*Bjb_Lb4RVn7@!1FUT_Orxd4f@?esR`3(vbEH#1hzuMqkm$Eo) zYakV9+uoa_ef`RKR^No~f>dnl>3+|4Qu0UZtb=kfH^b9s^JuKd-(GN^Brhvff9wST zenXRc=A7ul8ZEKpl|nkjj#u%se+mKtHB`cm7hDvjjb@Q2iY$@y5Bj}F z%j6hU57_V_W|7RXds=qu%1L{G4=ja9L!D-k!j;3czELC}QMZf$oe=w93Spwgx0VJq z^C=>A9-wPljc&`2)d|cKRE>QWZOd9yPM~Y(^Xfyro5>{2sVrGfF+NMY?p&#?QXb!Yt@d2~RHHUiRk6lQi+sUdI{xF#QI}fALbTjSUJ!)x zh${|i19&WE?7>Xb6-HpBaM;IJ9ob3tPvR{)?}V4t0xBCa=9ZhI_A8Xorfq&wonQqK zX7}X%<|SV22H%* z02Vt6<81{zP%Lzg}| z_6zHomu6SBAwxiAnyS50A9EF&>9BMkUJP0r#33k+A-ujGfS!)9uhc7-COF0+~xC549G)1C7X~=wq)(t>gQgy3@4Wt53&>-GSAu{kZ)QC`2^$#0IGZ*-i#^>K z@aQZ#=#;S6_cIM{7tJDE!7I1tCS%&t;4FoDdMlf{KtR(m<}{x* zeDEz)>oW-ftfoSs#z#nRyRPP$z3X1PD?qPlx+Bnhr)MO zWU&x{G%X*kBaE?Mspx$iX1)lDhXM4Qox^K2RFm)twEVEy;6F&zTu#k$xZn2s@_*y! z{avm9Kd|oo7fn3DzcTR)6egtp8Cb|;`a55#I5;=h`-4}AJQrX_Cqz_#1~@dN(kciY zHGPs{&NRYJyVqGK2RvrG7xWsO!FH!N>luE~-Z=19nVBhW{H0^-H9LKrS~p90hz)CS~tEjpuK8jV&qSzV(sGyChd zE|i|li>@}(c!-}OnNO77rq-yGykRka6o52c#aO2-9oCgWsm*92Kz$gF!NH&}gkEFa zg-T{BtT488jB<*v#>n3>m$NNsA2{(x=O$qY{}D`EI-8|%>Neu&Pba=dd-C6-r*OEn zh2l)4=D2Lb;%AGaw7w-`M(Z?0FBqn_msq-KIe>lXkx16F|Mr$EtmNa}tr$aTN{UJ_ z?W-g=yXKxUk(PGCR-wX^TlLWoc!)EZ7yqg-4T1B^*(0kQkeRl{q-S$jpQa72kDNoD zr437Cv(i-=0<)s0a9USfjhCXKxQR8w4(O+6V^$GdHXFYDjsm*C!5QQh* z3V=;gIY1~XlB-rKTG1CGV1Goz6J3JxoKJW7ipN7(3i#t*Y8dG8x9B6VXzkq2Pgf9c zp1cTr7NR67-;4qbA-O3_{;`YfGtSnnM%XsPaF1Wp_cYXe`Ye7sVEQ4oh6VZkICg5d zU17<-75FS$(A8p%DulMkM*vFrl>JNbd16k&uvFND3z0U13_S?(4wDqI^T4ta$v;l`h1xD}385xuB^$s$(J8C}> z*Y4s44wsX9jVzH6cRyAax z?@F`bRsVf^<|?BeDS29h9dN5LozN(4O9sQ7k--V>|G_7%gX+~yq3cXV3O1^GYjW`6KEqQ@4lY@FQ346zW ztM7~x%8hgi>s*Qw&7u_x`hHHGIWpq2+;9G-kpLQJ*E>Ps9s!olqN}r-@XWOk!dN$; zl<(Y?$}7BXk3DZc3!444C3-=KMQQVK0~0rXyOdmgBfYQI1^opyXMt zDLt~G_)gXIZ^#eJjZYL_p}DG2u&=)>EUB}$robunD3+NNg$u?N>`TZ4V;DyInuMh* ztdck1dO0fhmHmv=7kZqCO!4J{8u;pI$v?wPgu zjX-w0{t^;Mo;*_>O!$i_Q2|kbg+p%s8?7^a%~e^te3S`_rW8GG0|*WbNepF7q-tZq zd7uzLch$+&tVh+fJzr>$L%`>^gH}CsbsFx)eXXS?@-G;b9k6knmCJKr7{s=j-h`a!tg`z zox{EIgrCA+ifx`+c53XN0fxGvnE4hoUiexNI;*?xH>>Ycv@0hI|B_WIpakzgo535_ ziW#?MleFA6mVx{+$xZ^jXfQ7dj^rvc?WryP$qlJJ zd;jJ537HDw+hNl#bqH+kVp>bDb}eFse%+c}v~Vj?yJp_&hJFRMxgSDr%s8TLtqaoxa z{xVC^e-2;veaaNszSqx%BE3Iv3f;AyghO|a(jmCUW}n#qvwtNx8enIm4nhRplPD!S zC%8T71-BNc6DQy~w*G*8*0+j$5h7_ZH>p(P40-`$?VgsK%`RMCt32H;e6Hcfi$B^L zm|_<#zOgQ z!&e%6Gj__?CXe*1h3Fl7_)`|)vw`gswD&lMp)HRk^!Mq@1@o^v#lO>l~s|3MV^#&G}LKd7#Zpp5t_1(1>q1p!yAw;($cs1qS~^#>5Bz*nV4rFs=B zmLC=UTRII?@bvcaxSG`YPyypa8DOYc_E@4>#$8(GHr1~SR?}J!!)j0E_7}&ODX#15 z<-+-g>U%T~2+CqMB=wDrY~LS%q-#5XU&-4$bk<$5{RD-7nsax|;6*j|2Fy9yC;bcx zOn zjd$TirK%#g9XD?-(dF$^N83aWPRP%rP~Kh+zCf(4C9tm}ORGCNv?!C9(vv;Vh&!4y z+Dwltu-I}~aWt6Z)QlPMTt!bP(DG?MAro$G#IM%fZ%t2H2{lKq!#7&Nto$ZI^UEfV zDD7n*ut5U6RvVHUdozudQcNSu5zI?Tht}&2NsKv2gQZJw{~D^zf>LK$Ei^Zsrepq_sHEP9hKAAKN3=Y3py4Bg&u}RT3=JbY=H;w-M5wM z1LXlo>XwwDb)uktXrC!&w=_ZnJ#zL6a3%|%XzY*LwGdODVR+n1i7=KngABH4sAJ6+ zD`VFS0=Lp)uA+hQbU>G)@Kb7L>j$_>wpmws@#Uz>#>~IWmA&~dRi1#%Po`FtyVKj8 zjjbe-OO~BKG&H(mhOZjecPob{k}+Ua;@>5EP!ow08Xf>UE$y|KjY-dKqTR58nDxVO zsXFPQckIvyXQQ{l36eWYywaF%8;MMTHOaaXnI8Rs=G%s?K&-&KUr$u^9S&v>HfX)V zNo@%V9Jv%^pu%kgyMW&9a)k{twGhU~IrbA0s1YKlQ97m(K#2TfjD;Gxi@H6L41|R5 zyjwc*v56*PV1@6QgmW$Kjk$*~bFO>RsemMIgIsDd!^o8Q_u_edc z^qdC@I^Hwf$@SzQn6LTAxEW?#iKO_S$4`hMxmRl~qeJ5lUOlJaWXvA$8FA~ry`1ta zh+0pGzCSZ#h4#FN!lXo<=*{)ZGR>`K0LN`PQSNinKQW5WKwO&?bM6*^PIOPba^J8T zC8%`GM^*A`wfY|g&qW+x?=m>H1n&enoXHa^9p7O!ub^u6SPW{4%xHb@Hdz8u+7ZLN zzx?j|pQR^$-Sd6@gDJU!c|+*@eeQ$*`qy*+@13{AfB)S7&oT7h=`jL^`quv%w-6_8 zJ;wt(^p)0ZYlhCpzj{j&6)$(2%?NIjQw)dLkPTu-a_X^1ae_P)X+i934Ga&E0Ju9I z#COi7gs7*C3t!8?&Yt-)aXCI&we=mgNOL3O=hGH8T~o4~NwgRn$uKIXkY6ljs~t*7 z+NhXJh6QVoX%__A2J|2|_s~joA%EtdlDKx(5=pJJW~9_zuzAZiuAgz#-lskHDfN=f zvtrL4jLY+i=Tv3I=*b z*w>dQeHNF|^3-8M=}iF$0%oBw#_zNm2H&y{@ks(osw?U8C12ZhOP~J|`aQaNJOlU6 zokwf@r!MHdGUBTGJ>arzg+`- z4^S%#P_`_xavmCTm`yh9651Rnji^BlM%{};A1SSA$X#o)yBnAOTIl}_o@eeL0cHLk z6@UHP-sJB;tl)qDhy53y>pyrR|K6GmC~3+g7$bUW1z*KZK#&zHW_u!v)spZ6A?9S` zO%EqQ%;tXRh-&q%8Zg(b$UGx;99tT@p3I*BXPCy9&_7I0-U~arP8y~4m+GUl&xLUw zwPU+Y-f>(FU0!*;-;#S1V4WWK8X#tTFCh{p7%`Vh z=xPa*6S++KO5ulLP@Ww3(50!PS)H+jvZEh3% zK*Cg5lBd+ATiChW;TGht(58BjBZlOYEA*KRX2^g3QsbN*l6P@d2mT#W(z%=1UZ2{K zGMvLk0;ti=!#((`JxU%#YA@WUjwNp=)93AZ+sj}X6i^uyWM+AMm zUzk+!WZq*?+4ErDVxVA^ss~eLnynTjDtq!o(} zSD9v&kP+5_fhFxg-pkV;i=tT;K2|2j+vHK5dzkKLz@HY|`0ic6Tv)FH+iA~K1XVM0 zQTFi%9D-XpDMml~4&}k>y26R-%EFE6+QNfZx}pFLMIP0bWR|$pMuSsxp)w@Ti*U|< ztiZql8vwz%{E#J`A!Do`Lv|P?ftMTd4&TXTIL-p}$14uvh5E_c&mjOy8&`;W9` z9)_qKt%WyL2c61|{|cbC4~I9wt%NIr6>rH4o<~PZVT+27`YX;|e89ybChk3OnI82_ z+V+~2F)f&a^@a1PQOBSycDn*6(E1?w1Gn3TF>Q`kph@XSv8SAQB~?TO6Byx8&TBmoI19K zEp{Esu^64LH@3Zh%U|l+HQ0;#<_iDQcGnvI%M)tMJ~<9hB~jF3w1*91C7RE_D+4#c znh&C>L}A~yT9!uJww{`Y9k{-W*BSs{VjFz*iL4X<+HK0lf%6<}C~J2)v)G4I)QnF{ zD5~Ap-p==jl%9kZq4&~R_eSMqE;%YpPX}1fOFGN+6AS6fX4-v4aN*USe~T1<%r7qa z9#ROzD<<+Q)ACap!PPi|i@a4e0dwCa=#3wG{$7dwnfNvG1do#NZa@9(;FR~_3-{@a z4k#^#*-1th*rYs%OTZC)K7yfXZ2WVvURkdSB-ceh0n|Q${u%>UYR8JszG+S5|3(q` z`&RmY`C9Zn|NSF{=|5hJ6x5~vie7S3U!Ar32}!bRDcHZ69a<~`M@dQ0?@J3C{>rc+ zwK{NNwE^k-D(ud9qlw^O9Mbug7jE1LESP4}A2gZHnRMlTH2d;;v1j~)bzB&3XuygD zHEhh#y*I1*W;IsF8s%Xl*J2A%mKxUmwmqcc@FDYzzNp}DoVOrk{G znxG#mv@=0D;TXC_+yRF&vmGMiY1=_mEOP@Du1bBW2A{Pm^GoPbv5i}VBGfFwXyRbF zqtV%JTLo0BV@9(8N$Z5&4j7QolWsAfW_tkha*deSiH&o{Z>$(pbLU;XV;Rs^1OP!^>`KyO-YVa-X1Kw6-?U_K z{3;#fCdBcba{m}?@T6iSMkB=Y)TL}RltzY4#EhIpq!d%N%2QU2jVh`XxvYhjl2*q` zH7>=5UdK8j422EZ6kU6z4W)-fNJb^t){1Rt2#Cqx^?@%MSnvSuY?-I`ORVnmpu}dQ zmGK4(@DEHO(Ta=qVZGn{jF+28`oBe-FpkH&l7!mCkykf5hl1u1EZ(E}_$2Bil1>Wu z?0=uvTSb}p1fNqcDlQeOz7znZVyPCf_kS+j?s9Mn+PY>Hqv)-O#KPsv!bBTIcV5mp zdta)s)q#>`c)+}5TsfpqV(G@F9mi(jk*%@tvNaq;;z9v-IzSYGONik4NYGtKqkl5G zfSzbcT;WxxZ~CDbWS`Ow@zoKB@iho7VObK}0#z^(8x&zPQf%&2+bDsb2{&!4h`>>k&_-)Uyl^v;(V ztVioZms8r-n}EaHYN)d5;J5&iRHQBW1=cLyF*uWfJ3}VHRGDYpF5x4?z^0l|+j2kl zpg!rG{SW9Qjx36jcML13!@{kS#2OWIHW&gf(PpVo#f3tW=$9aoz5!tD+6RXeFIG3V zi2U9ANY1?F^!;|^?g_>cR!H>D5ajpiy|@|b&VnOaNKogvGg9b@J6eXr<`HL#OEmPV z$}H;*86|!uqLg%hj?M}7PRD;IHfvHM`P)aKNZ<~vurZ^w=nvb^oj4{%K=8-!9|f$z z_hcJUinG|qs|w1v@BAo@eXA+KobAM%LNZNqMd`IOx5W%P!ZbV6k6@;Xn3cwjz3PshqyGPOC626w16g7z<+lkCD;C+6O zxsGWgIN`;LKQU)5_?0*W$#Gr-3YT|>ZxkngGN&+c8SbRk9@qfru+r6axjB#dxb)0P2` ztN=G0f(GcHpfxUoiBMp}>10h$ zaN&=1^5|>R_H^n7dJIv#$tEqVWm}Dk$?b~5j|{uDMl$;E)d!6r?7I*!FVJ={k zfOGg=Vw3+?Vt*e7{vY9jQq~6lkw8|Uq;7+ti2BL2axU7p$Y)wouUML02+lyM2pft> zA_xf_uT<}yWZ6mtX$o&&QsFH7&9%v%dhKOl(>HA2avUVidRQ>_co@0)a+Yo~ug%b- zOL;%~n##QU*z#gEeoFGO-QyIN+T zO~gOqK5T~ZP{5W$!qRB;LU{TH@*z3v4x1#Xalh?(cv|i+zCrMT66n^s2OSR(}CO)nXsG(z?XxTL+WY8I#I?hl;$Q>ZA!&aoM1!qK+ zXTUgJ{kYV5Y6wCnG7@e+%`enw@G-J(Jd<`clZ`^WqQ7-Qmq`pzT<^2w%@6LQjcokW zpKeFPDIMG}sP!z%PnVPx=aCP0{Zq7eQHQ4Oai zMRa^#Dz}p#A$g-+q#&z=0(HqX;;elTxvFNtT;qzdu|{?&r|?p(Mx|6MYT*fcOiI^) zLYazS!UK8BiJa4fa~+-SQMV{k7Gv5L-)fe&cNb^s;;2RUe6c2I0(bGT)(J37)52=V zJ5sA%5_Gm|#z7Ct5H8C}$^hXATz`LlgSRNbBf0RVT<)D9W{hWPc#u)6sF6-Pq@v*5b|yKPzjUF-9V6vI%^yHRW$S~ zh)OHVMveV-O4+~8GsQ+oBO4cde*Z^?pUhSeS~<}A{!a_LpJ^IAuAm~_nux+Y$kh$} zm{kWe$vNLz4T%Zhoi@_+`e!wBCc*wnAc`l{*wI=r+BWPU0;vU>{NS570=cG7>aiq&Xv)KOemD>6J z`ub-yZoBv%n+V2v1jsrGR4~j@gGc`W_{oR31?@8NoDtOtMrt%tLT?mCvg+4FKPSAU zidHHf@>RPx681|kYY7rnI!-fXZI+x9Gxd+6q#u#;4c_ zPqblt_646tdHAg%2)%X#A8GpQ3*fKzv%HHptLA%2Mu_;Yo87;+pZ|kJ*?(?!|20kb z{|E3E$bZLb$s%gDVUon>k=V)e{uC64D=jYO83;wi4W=cNMTjVx%fq10D48QQbD!Sw z#-<@^PyPeWb^X&b;Of(_b;^N+AeSgs)JWTCip~6j@$O+L$??bU{aDyz>+cr>LR*Xy zA}E}MeYy>Q-gKHK+&Oe6)xq#|iERY{eE-+j`vi1YqC<`^QK7{Aj$*n-WeQiTl)OC> z_GzN2GheDvIie(L(9U{4a-kq9VxTR5{=jtvFwa-g^Q1yjBXeT z*mBaUY_JLYRmHmmJ*}4}!_6J3v2&NhAvtiI@XlTP!;G^?6V%REiqoB!q;QJ8jsMT zUhpl&Ke%*?7nHdv%96aSd%U>ye~Yu$J(~?;U7jDD66pooTZqAUf)q%*3!HN%(bivk zG`R>k%L+e5=f5ovb!48h^f~^}T@3kvGNQBR3BLnmLG9_ScGp`04 zD-Np~tUHk|PQzB??>KRQu}j1$&%q5m$l7W#+gCK$`g~t(P{VhGijX+{`8dO0|E(&B z7C=$GY?lLpr|9mUTwo*P_XIjt3CG9^^c--zBX z*pO2HIqG#F{Vp7iy?@OY2D@Jq2!H1l$gdy-16-cxtE zD?c~eB?$Qy8eFJLqm$ol}yBpikU0Qwc`FgNGbnDLZ-X*K^ zi1p|xE350radN~CgixC;lD=&}Efzl%f}JC!R7kyq!9F>;wz-X2GzfGvD0-rsZ(p zWMIB3TjgbcuBFK-T8ETOo0g+ys1k?5_MWEZ&1(s9>Hu3+eU`={$+TgZd_VZGHS^cF zQ4mH_11%Z>rh!I`p%4OEN5O@a+!hB5+cI9J&T|G0eh#{WY7prhMnc)#X~y;L36fhh zD_u3ez%?|G=vfp>{Q<-(lPkbEdlq5rKaXEN;Bj;e zul-|*8{kY;MU~E=|mUhwmd!S`$|2nWRmBqAZ7(R07xN7R*|(LAYUD5FlvN55}h1L_3kIMtn8% zoPEkFV~^?UBz2J4iV~@nMm5ZeG1jJ;=zQf6D()kRZ5G%-@`48qH{uh5pn4O*XAx%- zC3i6q+S!;EeDI zuv70O{V6xDdn{(?xL6$aR~c?oEpAsCH(OutH^kl$P7>}qyxaVcbI-$kAWI4LMtYj0 z=Ez)w5u{?w2@Yeu#LX3n(vt2*dVT$c-4a{S7$=vjyjwRNRc6jW{T@E_id$zvvyjf; z5M>0BkNdHyD5Eae;dMI>;&#ets`5(+RK+fR$o;cOV{74!L`;r&%A~}W)-9rP0+xqm z6Ms-CZJmxw&^M%&xC_9x*~d0bJ6q@PYnDySiWRen+%17U#^Gw@vxn#*@O*>7BIi?p zD_Ww_+1A`%6Sn*x{P zuph?cZo1m#VRZl@p(b+k=hop&{}JoD{2#{ksU1uX8ri9w9125=x~`#BVw=5q4)h97 z)M2OM=hz(;ROI{;>+-w4ZK(;EiH3~)Q-HD6Q!(o@;HA1Xpt&kx5Wzu#duA5w&gD-TwZRg9T!mJCp|mTjHr3ZLx^qLCrW zh<&PipR7`&^fJ2y$8{3lFtWxF4_)vSzFInk#z3INy4`PB`!{jrZk&Set=YCYl*8Do zg@PS5vg6VHVPEl_ftwKfI0@2kIlbU3Ra`;#!0gdXCAotng_IaCTX-$P%kr0OLxuxW zr{O^S-VACKI_-i(ZYa=cYAR+z0lR=K;m6P4%z~$P1U)d=F!PGU|4lVe5GVPUY9Me+5~HX=63{2H3WNlk&{l>Li2$0HG62Hov^Pib z(%d=0%5W%VPheNu$DilGo8>MKwl30~Z+5HC4+0>_C8Zvm zx#2pq2se#vKR+QBX-#GS9^I)S1L{3WEqNSepwULeZe*X^IyZ78c7X2uMI1E14zb)y z)qc$SQHN6AM0Q7HBoO~Vg654UtScVZz7|jB|3}(e09CqWNu!0kySux)ySq!_?(WXP z-Mw(v0t$DB!l7_?cc*yVmbu+`{`b%HdqfbN2nZt1clKVAnJZTX&NHvYt!9Pm!F;0e zviVYmT5lmV(Ipp;zCc84o(Y`g4&|TiZZlsvP?v(BR)x{zR#tuH>Kx$4(bXN+`{33Z>ncRy#$i`K zJWF7w%n^sae+~nhCE<}WJ51J?nf8@d&)_f$YJ_cs!N;`yuyBn~*P)!2&~JZ+J7duT zqfKB{z9g6Sh=kUnDWudLLL+RdXpx4MiyK2LIPrAL2**gN|f{SIyb2_9NazJ(0hic?rg~wt)JV3W5KVGX3Nu$ue zF&VIMvn+ep%($NAZD;R3Th{(}0RWr)Cvp0jQr13csz28p{8gza`o9+d{8g#=M^E!f zQT?O3QeRj3lqP>Hff+COP5eAiSLbM-xB$Ob zxMsK-gve3CTK!aw{f25r@Kur+4)<#YcI02Ma8+V@#^_B+h>o?2cm{doUP5y0zr z9ssCC<3c2HQtZ#iRDLP}al~D85WOzU!R)Qalp5w?ibTo5>~A5aK+BkBEEkri3Y(LD zQBPpOF2N)wE3{$6rC*v{=+H!b>6kcmD>l-hcbrRZGpE#QRT~iYYoMOsk{C-W%0q!6 zft@i1n0ge#vK;>mLam7qOQ`h%WaKsBDWs+_sT7@%pEa0-W5CMDYtWD#Pede2rJD3E zhH9b4=HK;TULU}v3DIERfD`~hEVBh%=RvkpW;A%DPNA)F+8%?Vh~BQ)5&F| z{XscFy)c(n!1Wy{$Ln>)^8fy)|#DPvW;|G3O*F^{sxcs|TA+7-{e9 z_k|VnbccT04>K}bN#b?Zs99^b2j7(#16RzKtTh~U>eiKt2icano07vz(rWvGo0NHo z_=EQt?gk?UX&-TdRaD>JfRd?G&a zhRD@M)xz;lNGwskq{%ZvIE9(Dg zj_}3a$(+H^!O+;kl)>2E*4Ez6`SYiZjj6GVL^l3yQsghmr#i{@ zlT`bZtgV&?pHf4HmzAmdSim?1bkOt?0xLxg7luzV{nD)^^`nuCF6m#h2ijgLbdhpc%lH7KV^f1iH{kIw7^Viv^A$yiV}Fy@5Xshh;Ix>a?n=xBxXJG(WUv7l+b|c9?56?QD z^iX zG2K4KuNco_Mz~I0=3%yuc)dQc6jEGH023UM;)7NuBbjrVIM--TbC(^6S}%Zcnb z$_g93&?mmdkZ#iZiKIK79g2ZCk>gVhZy*Hz zq^Juc_q%5Jxuq)d?o+)$M>%aw*RKDFIGGKga|&97}F~ASO^h6 zVlnj?dy1S7VGsj(rdYD50~EpK$~dK)?VKC*M+!N1H0jOEfWVlC9mjBw*zVi3_atB3 zrsrPv>ZL%J513-l9O`WP$uMC9)n0tsnwqDsilbh?3p6w|6{@31e{^IP73@}Ou@vol>_DpAl?Hzi zJS=$`V?3;ha?xfWKNqwU&^jG!Cy1Pmp@$Wr0 zlZ>s_9yQ;MRl%fdt6(*3B#I7e#46wz5XA{kHgpnxj?&^+YR)V5p#aQtzB$r( z1)HXGQ*Jfkuv-KLOKQ?|g_ORnhK_)yVxoWeTVdiqK+b;Jf7f#S25uo9memYPOh2_H z*-e?J#lJpSntbDd?Ek_chXhDs;fNAj$+zK>updOMHoKD+jp;#K9QQa(l4JfgUL&o6 zeK9i$rWFIcTK#hz*~~kn$kmeUYjSJ%NpaNAwXqy;?VA&Rggq2;cebp`o^N3sa9*QF z<0CPJ9Nbc0!AVHDgx0v%U&CYfYGdOrgZ6I;5}u;F6eRr!9f1p7N{S;IfYi!~3T<{s zN25z{4zUQ8~{g{V)#YfJC?Jh5tGPt$i9&06o1@6P0G9;*v|wa^lyF3 zUvHrB|F;|XH)+$q;Nog>&a0}Zd<^PEOG@XBa+Fk-R79vecBiCpjpZWR*onkOr9LJd z27}*k$<@SDqiMrN2@D`6dak$_ec){x3`;_LfX4t}0+HLi<1P6nDz1i`&b1qzm)Wmf zzyCIBn0zG-&ZRqo__HWsuqrgFpOLXP$DGw`v5)LrchMM~d1O}_+?3Ypkqbr!y#{(o zs1mJlUDEcfIXS=qbVBTxdm&k1s1F(B59tOnoFA&?NUT|bn zHsg3&H$~lQZCaaVole`XfvSp|ixnS_N(PFSevLHscu^3p#J_0nk53(WW>1gkpU=ue z4@`yzX; zMbcL^2jOty4Eu(nT8J3E6mFfSZAKLtnqyQrt@?Xq*cTP+6`Sf~S=jA%OalkQv`hnK zpk{YvNjw8R=nn9CRSY!Qu`AYdGut^?MBqJ3dv4wL1UmQ0SCy6MHh>DB`wVeL_rlql zylXekI%*!>3T}0{Y!=4kw}~FKOC+qtzk9JkRkkFmaAxB^p1;Oy=NWar-EEeO@mtH<&S%6v?mn6o!ivKROvamzI$lq^Z zRqKHve!s?miK>~`1(!69+!95^ee7#egSk7D$H`L80ims5c-1q~&_tXPtHAM1PMrDqt==F?Iw?h$f(NpKYvsfatuYm9`TlW@u+SUB z?WXrcCBn$to$thVucMawIFg|aARzOEl7K0yEtt>Z6u7G(pq6S2N0+5L)YvbK?e-PK zsKS?Np)0-8mnrSlh}_!<+@XeN)iZido;h(}<&6>$e!ys2@+_LB_${xn6OjM+wlIH$ zMb_l=PM`hTo&IZEDEL3$X%!bk7fWMdS7U2am(NT}`iZswyCghERYv7AoBp=LM$Q6P zqU<6-t89#5ujZx?aU?o{HSQI|d-!oJk0Xgf-s!sa^;j57?+N5hDfTdAY#u%5hE_>`R_2ppheox7q4Xj)L_EYig9%3GF&l#0#@J!{ee)Pcoz z$z|)KWwi|m4FpN1tyuu(jU=ssmw5}P8Q>K66AztA*%MY2haX9zraJYwacEo|FsVv; zK!qCVN`R0u=|uVYe} zh1GBgjhrY8M|XN^hYVe3M<7!SxhHn~b_>G=al)&e4|Az3%Jet#nPu6Ro$L*IZeVUz zeKUBHI>vpC4?DMlLQYO^2D&srr&Da0ozFK`SMq6Ub>RCe1bnMItd%Vk?E_B~_Z|f( zaQmP;vDw^1?k%q_&cN;GuSze%ZGlmubdf>Z#t|f%=S@Lfh0*}ibH)vgC+;v6Qm!v zzMVi0MX*r)iH2g~u6aDhklXA$D4KNmp?(#|{D_HtZSobmIB|>KrG^90gR*$I8#(L^<&|joV$wD3E~~N8PZ*!Xa2& zpXQJuj09Zhe;X3*c2NW^{CsyKpWpxQ&UGi!R+7nePFc&!iqrl_X3iVUN>Ipr+hCuFPR12Zx`IZ2zzXXrHnLi_V3U}NueKV z^7id0p~uyGWDlayPJZ`D98}?--wBE?jT-R~A97yPH@W7G!qDs(*&)MX@V<^jP-`LG zZ89wzGSz?OwzjW(AXo5~8CqrDKq8E-z)}-jaG0XHkH(IyjIbyZ$&;+0awV-fN8O6C zreF!XQ;IprjG4`mv?z~l$&|OY1hVbt^PtQg%P`pfZ|IiVaNYPoPl|oVN8N}+bi9OWFfzx#U7cjE}9Po%H3 zNfu#2wg=wdaG)(lmNZ(n&K|{<=arsOk-?F>Z;+hLs#0v;dx?_gct&eIjlYsS=0wG5 zU(<`>65L1>6u>!ohh#fHFo8uhhU~qaUl5+lYi>&r5rE*7IsV>Seu~2-R^*=PQzbVT zp4v7e;9s-r#Dy+*MCGP^!g_X^8Eqj&!X+xklcTmE_fI_X<7W=z1Y!a9tNMZD@WY*r(T77`OnlH5TfMKy|wPPz6HJ3eHG$}(!b#8 z@zrb55Q2!}qjfVV4Fd0wIh?jkqS6ezXRd*?pdw|0W;aLz7Kq|T2LeT#Cm}VMt7n69|E7GlULAbA!Okq(iFQ)>O3`4$pO7IQ=mpyTLb?CpCzyw3|Yc+n*z>Ewu?o z|037|!`!3_{bJ?lC?B(E-{h(;Gs>n7Jz+sLHNQC94HSboExK}e)gx!i$r!T_H1&fL zsy+DK(9!wBwaUQTbcrsWE?zIwJZ*pZ^Oqb(OLXudVvbwf)W8>~WgTWMcI2(_`hqWD z1$Q)K#hZ0PFL-pb1V_ogMZ51XVrBdb2MH|@`_vnO0gC`z(X^)XqShmc)p=-xQbQ1@ zEtsk@%a?gKifiQKuOJPx*+wE`OJZF4BvZo!z}$j%%k^mi(i#x2<`J(RO}e035BrFB zD;D~VN#vN=yUaw~vhbiXhe*le7(^|<5)3jxdf7xB&TUc797r|U^9X2sJ;gt0QQ!@qD2%`%G9Zf>ujsnrv z1IgG3dV$mS@S%o{QyYlIaK?Y_ailijg`oQpz+%A%^R4wT-xQLr9a6hiubqF4&%AZ1 zELJPaGhRV3Vd^lsXbC{uETe3bBDy8f18mP~bBgRZwQ7g~CpnmHBn18D#7T#7NY}mB z^5%z|uhrr6BZYGFR~dBL22+gM<{^7tUY4moXN zULs}Y=d=j7s2im4KaNm;3vQAK9FQ*AKR+ghg;jxG*1<=jmSu=L{zkcWmUklKwW&}0 zhVAVzu#$ij&7Dsbnr}I2F%B)la~yp@14}23GYeFGq%CA&9Ij=dw|Gkk5mZ^a?FwMw zNU-T21^s1}ldUq;ngfI{u@+IntA_X!%AB>Fu`$FMnlH3i@hf5IjepEJe)fkbHVuj$~f7*5oww+4KkFRqqJ?XeFmXIdm&Or5?oprm_+S zvi(Eh@n2u8pRfK0EKBP_j@SN=3gb0z$&MWuepU1eHSq zuzvHdhNLkLXL$mF0HcfI_7;Sbbj9^%tVQnMio=b3l>S&W=b2R8QQ0V};#uNogjx*UNx8m;Tm_T=iGRGWP z^N+2V^W-WIg0d&4WjPHgoy?@z*?ynNf>*)O4Li^qrk^T#%BZu?ml>IS2jmv=Cn=%H z?Cv7(5<`t3*-EBWcTky2+heYf`07)Oi~(dL7uOEbNEWIqr@VwYs0K^(8%hlU7JJ$; z7P5sOs#x$`Ms8nY>% zdq3m%{hPE-=6%FG2Gs4}bpFysqHKyVEF!%8@oZ%}&dvv{H~?62x0NwfF%kr%q~!>GYHWK2F1Rn#CQJEcFrNV#qxBqBI@JY$%jKSKIgGk-yv&( z+f;mk^Q7Wu$&YrFw<)w`m(WyawP{sHmd>q0f=3fD5#F}KYr;UTG zO4VDmi#9}^qC~T9uY}8q1xLeQ?%_;a(Su`)%1Ef>*?my(5*wq)!BI%wE)% zZ726P;e+_iU){ss{JtFh*bFW5h1}b%^yW+~Fu;3+)a~Nsm0sGwUASFjh_WT2>CfPZQR)B~ruMM$ZjEf|U z5WIrWPbl>(@{XI@z%8aLVv>ArD`H&n%cyB}O8BeEGanJZgXtO&F+t3B5Z;EPu1g)9 zHpaIu>u&*ke1!LxJ1qpe6aqnn>q0##dWNfa5LW)AiFuUR0;{6RK)_Qffj#(o1xVi| zvezV1iNW-V8^oQaMdJO>gnrXBbt64rf<8<9+=EM}#78a7=EiWFe&F(Xq?Yy#S)pNn zhVcjaBeY)p9tMB@?6d;^VNC%2<;y4G^Vg1^`hO0se^Nf5_&W&b|Jeak?LYcIe?)70 zXG<4Tk^iETNdJ5(=lY2u*gO3_hBqbD+x0Ob0zN=81)=F|c)y6WZ$Sv+RY*#v2*TQ& zn*@OYQH0rqg`G}A9ElKRt6ISriFjQ3KWcS-xIFqky#W(W!#NV{1S+PDlNr9U8h%H1 zqDX2&hBC)GT&!HAc09JEHJWs@Q7PT|%KnmWv!@@~SFHWkFQ7W^LuM8g6IOWWF1*F} zwTb*n&UVVu)K+!KTP*xQH(fMFBg0}1jvx&uZoX5>^KDR)n^dvtIzf)S8o`Zg0;%;I`2Qw zE&R#S|6~w`S{Oas_-8|fc8|$!W1J~B+wEZ<6h^?gs>Gz=@)5k&vZl)`WaoEtkq7&$a=4gBZ=Y0BwoA|F zxUQEJ3sARN4J(WHPMlcR1pG{dKZ2(al8w5Fgzk|YxiB)A%8Uc* z=zOGNWZKrOSq<_&FH^s3)H#Vu&L-qy;aQ^$-c@FB{KKPnttbUP6^rS7Gg; zFBTb78ftP_pPK<$>B7v@B8{??EyT0~nTU5q*5a>`EMVvfzQz@KTb$?^rDR#mDZ)w( z7t9S*Psgi^yiL<7fb?@+%tyMk)jXX@-+ld`UYt zJ1!hnm^wWgrm|9)`?&yMi9a^O?!npfOybozIx(6Df9#zd!(Z`p3hNZJ?_PBTF+ZkD zgCGj}vHpO&as9=QB7ohh^#*s__i48C-22F52M6!y`u!e6JlXupzP}qJl-3eQZ%jq9 z9g_C!TN-b#?Oi-YOVo6qM)djHZ7Jl_Wbg^9qMez-cCE|>cHdpD7|+49SlS8I8qo)F z@sAM73*=hU6}d-7Az$Yfg$>qs{1%fJsKPAvwRVrG;=zc;Z&9+tffClyU7&Q`PKF3K zQz@PzrVU3u+F&x0Y@lEcbVNvcv;~;FRi_smi0b%6ZI$Z>U)_xKhE; zxrJ0NTfE+5?eT1WfuOnj)Pycx;E2h3knyf4{gv*xYwZ3wIESwsdT!hh2w+^EhVf1b=Q(lI;qKF= zdLtS^Jjnd%#cA}j7SVV`N>W5wNY=p+0;s?*VPla)=p-`b9cJI=L=evJrbRxYayc7W zzyQo5aXH5X3&-9K#5gh)47hI{+MSQfm+p_2AJ30d9A8*@M+^n%P3w!coZzWw;|!5C zZqobI;J-R)ZeO8=S>sya);MeKI|TR3!T;b~JE$8n%<0EFus3n!i1OC5f!>4t)hs8X zT|>gCbAhbyCxh)I>g0Xi#lkxEt9ZpL+BRjS6(>Dp;GC!2qO z-PW1!jV=I@WVzh90<2+O^K1IfcHJT~bGuo)W^U1|@-eQ-s*{dyJ)RFKO|Jjm<=Cs} zK#)qmlp%%+co*(_t)@YRs{9RmfxRu%8BBWf1#2VDy~LeYmrq`H`|tE>v5h&Mis~D$ zh(yQ)CL5JUP}F|cB0H`|46Vw}wUtzbcerBI!Niiw*vT!rVwzsw+Wic=N2W{j)tALP z8jWz$^@_t|g=L{@MvmY}|Bn3F8W| z&h6ei5Z>`dm2;_L!zqJpS}xqpKeJz{;kSIzBphW2S*fY{`-#wopB=$7BT+cZjZz5? z9i#^jIe%_PM}E)tiS6eN1C!^PqQa=7tb3Dh(>0jdlA6XJYFZLJ1?SP(kR&L{G8QPi zKTb2Nb?KFz4sVV(%>$?W6i>X#Ls)5>{se@Zx$%Fbt(0GUOk7w-oKs0aJx>QnXRO zLG!?AEc53D;-BdTVqcPe8JR%yFMab!Xz+~S#n8|1GJ#J*Dl;4fW1fwsPGjATnyO8hN`7B}%@|@&)B>#Bx{vZlKbs{PvQFLGq!j}zk zppNDsf!wJ!quxX}Y5-ex)DCA6mW6Uu4|f)pg<&EYs6xDiyskmKgmTmmhY_|Ao`6E+ z3z3Bshr~c@M1%b`Uq#hVmmceD_7)Dj-x5Su7^`>1x|%gxRWQ?X3o@vOZ;z#jID=HK#ZFDTNqDH57CriVoy-1*l*ogby5M(iGXX(c7YITA9voVwfaM6-!PPv3vi*Ml2 z-%=WJldSi0Ds6O~ElHgB^-1X;dx5R#lJHA^ zI2M;_?V(RvhU!`}_T{o1x0d9nO+SZ+4^V!ZN@uu4*4W{)4F=q)+i%-B%J*)6@IX^1 zVj>&m1qCkX4p~lFE!Jhx9l)*Pw3p!A7QfE7do>GurS*7k-o2l~dUu;?5Y4WN%)wN= zM$J{f=G9lMhwxVG2=S%XN6&j5Jf!hZ8wA2ty~c)zx^9a!G{i$%R3eHskR4RY=OK5q z54g9{*+g2bTlvPPoF#9i+=X{=KkKT)(&yI;QJT(Vjt<1n-)Zq}Es)Q_A8)>ct=|_@?)s3P0$%h|n?yh`W|69lyyS?Ykdm7~K<^iz z8eiVE_%|FKd_qnCe9;~Fz8~X4KUior(+N+J&9n+QV{JKmv*(a0)u91; zOK>AOBl-#PR0Oj`CjDmdB5H(Fj031dQ^-!4@hl>c25~}>Ih0xf-m$_N_5le2 zxdXM33VCliGL)VOKY?JY*D^7+mz!k65G&WHth?lDibb2Hzuh+Ke^amAT2%qR?2QW9 zQwYKA_(??KDuUgpU&P)HWFmZ{Hjw@rkL^1!st=Ws8vi)mm*&0?5u!k@0Z6r%nWk(z zS`4*oO%*I;UL9}Lwh+mMtD^yw{en;*2wlm}*XHP_X>6NEw?cLGuP(4F$GP#)0>PQkqW4h zTGPMWUR^XindFLTm359i;n;{T!%y~iz8o;)v!L7+(-QMaNe)pa1&wN z2=*6tlf}C4N8(~_*?ZeiSHZEH>JF>`eZ z;O5o%-TeGi@%OiT1*?w=!H5*4SeZ+dztgOf9MjK0pW-{>`F+-{WYa3|aQ(Y^nrZo*6@-WV zp|AhcrRT=s&CN{r##dm(p;!Fme#LnD{L$zz?BFbvwd}h-fR^1s3zu3D!!{Mz*M}aM zU=8`(Bbp9Z^XL^r@S2n^c{9r z*Sbea6qjapF4=B;}Y>KgA@xsKv3*I#@Oa3iuVX^NI#a z!K~Eh4D<}p_MhsK5KzRzka&uv$X>xjqkora7>RGXF!NFTLV#&0^diQKAhYmqlA^?y zk_9}*;*pHtbqvUP$ep&v0K1O+ zSZk41Wz5gEf)yNNEt)GU*}6vuH`Ro%oJSY!5ZRE#Q2{E9Xt-5nzh!0Nqjf$-M@|{V zMf&;3_llv}8;E|}^}jVo3&vEwHtvwBz~IgZ$}4-KifRkVD}Unh%il_)rg#2Gjr?&P z8wpV_W}tGh7Z}2nBzr>Du(m-8LwxM}U5PG(X~VB=N-#>m>%@h2Xl@0iipA+{M-@w%T26(6EEXfza98U9S%bDi!xWF2oNU^|9cdpbAoR4I*{7vcoi{JU% z3Ay;_TyF-<6dw1t@R>=D~i z(r6a+Bp51~Nm@kQjp!yCb+Z4UDweBDHT-VjfwD6CJ0u~Nw4m{_s|OnDUCffMGOYht zm6nOhmCrBC(|wq_somp#;iGmoa-rlVNRY8b7Yl^>l>>t=)l<`q%>ndfSyjhQBu55% zzt+;1mz{_}3ybQ)k*>nI3fcw|HK;ZoKclVYF(}vMuqo1qD74?a-MP+?-lCmtcBu2v;NY0ljh-Q@O?G5?}6N z3XT5`B5=js>1zjvViGH<4p3#vIG7-uN~pGU7)kW3d0mk;zvZG;&0St z0e~x~_)RIK@5=0oT&1tFx_s9bu&p$k1%mZ@cIj$FdG`{`;AFy* zip95&c5F)@26-K;c1yNOx9_G8W zv`s-hN^gW>U>Hpndz3UgU)(k$rZ$L3QRiJSqkH0tE9Avp(?*qUuv*OtD+}{ft+3Im zNZDqLukjNPhTWrQu;*@yo5;F?%Mg?l?5q`-R_%e(LT=@-&lWA}2AYY_tZ@_EEoHtb zBOT)S4uL*fuF%~uOCeE-lJNoK7Ot2i%FpOY;aP5YJwn7=L^oKOvd4;mM2A^Bbro}I zJtNA-y>>`Rj8`l3p`ca0`%lyMie{_f z4w0*D*L?3>_e5@jCc5X1kl6#2ep{|VZps0nOInHzVq*KbGd$HD>efXzWxGJyPDu`* z9AJaMTo{f~Du21j7Sfar5em12uXVHZ%)R}}LJuVCH;8y&lTUa?Q@o2`pt)GH2IQZ- zDW~0%jzPh+76apEvo9MW<||+6r0om*8lBdOvHkjCgw!)}mk$LeJz21J+(F;HRksj4 zu?j|sXH8m95J{htXvE$lMBg(+eSL70;u6E7%XZB)*+chS;hN2S>6fT$ErCv_ z)?X^$o%G4ek|$sO=$K0#-XNZ*1n5dNWWUm&X8){;(+Y|@IbxWvw+xLH&Idgf551}> zFjk-6O)Yb7fCpL?VQw9J6DLX?6@;WhUo5Y6wgh*|&mohCn?DHHrvj7d#s6p{S zPa&c=sTxY@L&O}DEc$uHOB9}J?}q)9aPdmfXb~1M*Q^5F-f6b^eMY_x>W3bxm)naq zQ>v{*d)Tg9s7i;a%;m0k@=S@0OV_m@;c~&%MA)>14wOqPZ2{zEeEno=_VDj zQdcvZ)@F&dA#~($8jiKgK^xa61F*i%Qwb)b5-J#VO3r+YisR>3qvuzvYl6~}kW-48 zL-I+sXV^rLil(JkBGdmS%pLQ_Ox5&DY5dYGjRLH%5_W3A5W<-RvE8JvpfJWB`g67n z_)(>bcZ>R&;}2Fq);a%P@3VboL;u$n`mfcT#(z}J{S$9fF?F&uw6XLu{8W?u*-HNv zd;5pMWQkszvNlyCAxEpnIhYnhI0hsXs-zWmxccd>3r}C-IsEdcn5g@D&>dw^H0FAl zz?8S$#!!qf^Qn%-yo>AB*L;$TN5IeTH+WBvGInQ6>X0j{wsy+;{UMgJOsa9YDPYFP zH?4aQP)oa7CcTPYLJSyGP7n1icTV}CQ(%3NgbXp zlW||&@?Kj*0#NbbMFt$uJFc;-Yv($(mSY=UEoKEAQ3BWurPFAR>5)AhA`PGR46t7G zTT_vBs`Z31OA2JPW;p|zeVPs{0Zw3-AsRB$d2i&CPR5e8-Ry(E8>2I_uaW>egtwoygVFz>ZH*q+wW!_E;|Ih(JRt*qU$7q7&3&BeAx z=jfYQ?KgY$`s(n-Jt{O{qB7bJeUdpTJgVGRFqOPsR=!x^#1|Cx%~Yr|{>YXrcfpTA zq{lcS1k9}F$7qsUyou96(kRT5Bg}?SnJW8Z6m^gJ3b{ir;i)qs_9B5*+aL_E38B+% z0Z2QNigD31m<|iXH8!RM5z@~fiLcYKlpvOh&X$^j(_bYTmqk`+hnR#KF-8|Ha*N)n zWF>&_B?%>f`Ao5uH}m~PZ$1l`96d3C3Z|H~d~tY|7F5e33wz`=OINbJmKT^m&io;^ z6^Z>P3&!woBR+qnE(QLhGq39D@Za&GoWxb>{?C!Y@pcxZDK}(}GCL;;eLGOyas1=t{rWJXR(Dqm$UOxKq1{+~}e(aEzFObF{ zF$RFggeKel)oKB?tf-r5Hs=A9rnfiDB0%DHuflye-{@No@1nXofbrp_3etbEiIV+P zQ9;J`05Uiv3>~E@O%%Lufn~b%=Kd2l<8cyKgMLJs?+Hx9+MAixuLq%%5H(k|WU)G# zNK0coE7*|Y*Y2_Zw!7i{%#H%cy}5W-G#c!5hxk_lfPrzmxJS6%YuyMitUy3cZOwZA zCHniX`iXotA!Y**DedogM9Oz0{4s=bel%Wz8f)O^N&`J7bX8gOLlGiBB(=kp%3~po zF-vm}NI#37PeK6#(wmIbI{s57Z1ss7{z)+W|HBObl?MGY(ES55{4{|1!|ro#_QK5) z2?=q)UTLhLiZBuy`CFL~PK40s>V*tD3C)Ie+h!dj**7Bomou2IaOr~Ug-w%i_fi?E zl@)Tc#0(zy3qI$`oc34ek5i5>;1|@>XweqoTNU7R>BKFIu}YZOHO8{NE#PPzsIrVM zsUhZ$-fA9XczbV8M5ZA@2sv- zzNXrm=zc~y1x%Ix`*m1bEDiC^l!%^At#)2onl z{I*=F0{zpQ;ltE{Pg&{_hWw{qIN%IU&MKHCI+XF;{Z)X)m7z!#hucLOsr`}AihUU6 z3olV>JsKybI~CdF!&_KBB9bf~oFQeqD8dpz9*U{PO5j%a~#+`HMio|6$=Nfe#s={1#*^&-}XXDoDp55 zb~~v-qom*t+P&wb+>T*}M|IpZ^5wd;ZMh6LGK1eHlD$4Y*SA7o2E!`o95ScTJb$jY zGhM!4%qq-Ar|!h-aIg}23WI?4JqFmW>rG8L)IwDT+i`0z4_d_?AA8ZM|F~on|Jnjh zK1|g}B4r)v2ae=IC{&0tJUS? zQBe9LWC>#ci(iC`6g@2r!5Xqym=nOli4!Cn7BbIQcG@oK^Fi|A2#41sEiuTIo%ZW% z&mek2DmEb=WP3<2qGh(xl0bZ_HEX$=T$;{eO5f3lfZdWgT-{(87M8TtdQ17)}!YJibPbh1*a zBdnElW4J>X-DInY6k1c&fiKW-EqoW`xq~XLnA2|bFpRm1vUVeNydj7Oww(LXwx7ze z+s^x9XqFhHeUMT2YORe?SBW_roM0*D_tn$mN*oWY2wR>`vnAwYJe`*xnf*MhbJU?+ zt#&cboeQoVw9X36YyEdv$Ed7ag0=Qij2|(0B%6rMNeqp<=5g>GGdKZ6>Q}U54jmTl zKCMc0&i?C^JbO|Yd`V-hWtuBtlj)-7nCD^a9t&=^Ov8#EjzeUCa5_w8JxQ6MB;s6# zh$y=DNyZQVaJ+U9J3a~Su1~`yG)Q0OqH|0;GXK&JIVPY4A%?nQ>aa~WB)ZB-mOGiCh&n@`eaUGbQ4XSn=$JFGK>-a!+EIrQCyZaQ(tb_L z@98}@tVzZV@tKO4wrO1j3)7lbxZwoGN^1QfEHHPqDnq?qKqNB1vLiwkwNtvX!`H## z7FoWz(Pna=)oNX9UXLDMs2iw$$zBICR?Fh1#<}o=(kEH^yd=`JMyhI&!9(T{olH7a zA0QDitdhuI4qAh!9>Iq9N6d7|r+pl<_2?5#@5N_#u?A7qM0al=Pao0{zu(k-0|n+z z!JD%2*qM(D6z=SI{iKQ*MA@4Ea8Nw1<0saCD29Z*GKO!@|=VH8Lgi=BW)q1)e?(rY)hPKuuXb{Ls!!bxTLgf3_>oJr@|evYG_zgk>=5wa?4b?$SSIjN#%|PEX(#JfTiwX z=1XSw#qYXlUb;Lu_DIBRdF#gWJ~DQ+Mj0RP$`z4kaVE$o%?yN_Y;L>Jj+o7)C7_rU z%VZt12V1`EQxPQfV;*!$F)>r8ke!({N5GN^VD%QVI}vl%sw@=1uq}woH7QxPiKwO- zkrH$kpPlRKEbFE<7&gyb*i>_O5zp63725|zV?QS=s$}TcA1;c>VQs)7*1Y|#{JMTU z@;?8}zRv$wgMj~qFU`M%7gZ-iJ7+U{C)@uXU#eAY|L_R$vxB5HNrT)L%kL`cVxtW# zE3T!)1hQonrNV?M=FZw^e*A`7_}B5Uz4;mBX*|Y06&z4k-Af9dPb@*@AY#O!_@mM;^;PW(QjVEk`<3erB`5 zV}>KNL-jG&BR;TvN*ASB$rK#YvXBRf(I?&BvEm)-VIeDNeFTM?&irUX5zh zmUa_V+S!2y`GgT{(Ts;cX4)$(aGiYDY!2JGJfn1P0%qwXHF+xhB?`8wPi|TA-Gf#rxyPYW$zedS+`{kr){5PWmcta+qP}nwr$(2 z%u3rfDs9`9#+UcG{dV_#zIglg8*z5TK5>4nv)7(;%`wLu!vN2=_t$}Ss8qnIZLNuy zjIfK)V1LRE1~I()YLr5_exCXiWfGD4d;x`E^)JHGkpe~M$hTkQ6>RJG5krIe z*a5B`=J2HU5>)IVdw+r$jc9RHR;g7f*B_2pBHn83Oxf1u?%aw`pY7Lf_Q3I*D^rO5 zYAm0CLebY};(DM2b+e6EouhLHsL9o4u9-1{KNCVSM<`p0cW|gI)q0y@RG6~{+2OZ# zn*78qp0H5iU~Q*aw6DtoBR&eez$ab}h)x?!U59?#>neu6brI3L)R?Ch>-fI5=0R9M z$inZZKbE&yhsVQNqX7KZ%pu@K1T(SBH{I$~8{x(>b`G9GXm85=`3EK^n@lo+pH9RQ7}bCA0S(U?B!!tboEVh?c~`3dJGq8J|({32f{H zn@xCbTD#iASKV7NLr(#a`-ITrRXnD9CvBQ-l+r^EkuJOYVGh??NA1M;77!?&JwVp4 zh`THx3)PI@^~R|li=BvN8P-?isWZ&3#sHdq59;)2h?R;)YSAhMhE`Z4z5};IN3YAT zlI~~llScx%{zdU#L8J}||F?ihQ9q*4vh}w$P1qTnIAa5u%-)BKzK3oY&saTQE8zA- z)_&64iPC?zo1n5MiQB)T1>gS|EolCIu_j=wZ}X3dQTl(L%cB*fWpU_{yg{LHnkogz zioGy2lrJEPXtDx5zM-Hf2q5sUXIDeVu(<4R?7Q}Y%OSo2`6vy#)t8YefvD%yZFL-_ z&pz#3<$3}kcfF7q4yMcUsMHnu1u68ur33|+%-uRM9ZPtU zv_XHDltzu**HSyU1XmlQQI-HAWSiAk6(O2aV)(Vj)PxzHA4Y48mf72LoaCJ_!lroX z^&{9Oe5W~(L!YN!pcHcm0cxw?L^nz}32Gy9b%W>btT7cSzv|vDskQ9`^`6tj$k4q? zE1p08tn@p?wH$P9@HBoC==nA*p_gTK(BO&D`YGjUed%Elu@b}lXw@8dpTkqfPw25? z)lYrVp&wZp+tI=d2^X+^vDd|i&y2xEG2TgTt6VxcpK!L98Mb%Nw%>I4+#fNVvO~R_ z9NCxqIGcKddVGLwS|ZCZb_E|UTgNuxO)lv?nTu_YUXr0pXWHjcc=pE*vObZoR$il$ zNN)b(qZ)2GT6upJV&(tBNBw&h&iwBmtcbIX;TNA**v-(`?jOoA|9rm5%Ks7eQI>0q zK=}E{DD;HH{E{uIi5FIH3w|TT2~n?Nq#BDalBl<>D4CUBuv(ur@aFmY{S2UHbJj2& zlgd7cJ-yGG{8fcAOwM@j&3?pn)H==nc$n+!`-$oo(9Xa?Ppq%eM+^YgNC1|Os<|=9F$Fwin0{JeEx8{-gtBq6_CKZJVfJAq+eOZA zq+Evw$r5{!%y<~zo*Ep!tgoMYvDByKj2V@ZfDcgnLyR+BKsPEZg0CvL{-#wf&P#ES zV6jbqTqq96K|5Z6v1r9LG>nR-pC+5xjZD{Ly|o>wNhXv{N@5KSh zhjvUa$WRawmsO3BY)h`*6;doI!LTVy>9uraG&+j@)nhi+;1JPPVd1VlJ7F+Om26Ih z<}}IT#-mMc-efLaZT>=Wg%sKZOi&kP4Jg)1fCh^^z%}L6Lt|r*yL-b$|LOlAabzd6 zrPyGoca5IGQjHRpU8j6;S5<8B;^Wb;bXdV6sTzr3p!X+7HJkfRdc4*-GA_VmkVnrs z5V4?5KT1QFy0T|fL*sXurJl7?-j%W7YD4Lyg!#%(AH55v6S^Ao^1|#;y8<%FGyUgRHD^LW9;Yc`u^ohqd#w@0LBolUVE`H{I( z4LCPtlCMH3MC1LzX*oE}qS^c!SX9nBs^yA==J3(Gz}zf=El@dNS3_A-W|f z5c=y}DMkzMmz;v%Y~0HMu6vwiv5{Nftmi2FfM4*5sJ?|GxifEb!_84B{1L&0#s-*= z2)7Bz17qXth2sTT3P=~mtQ%>$&#miwsdq})oNPVr(}gmV?3tBTINd>N*2(-twi)R;Q< zbHL6wx`f=ferMUz{iJ5uq{o1tOh@Z;L3^5U&9g1CQZ6!0FwnYBbbUNg^)y3YJQ%#_ zx`Dn4U0GyxF)-I_5e}Y?Xud#0l&@-d= z2%%@}>L&=ir<9CSPT3^E1tMEi(-hLfQPh4;wyQ8c#PIQx{KU`!eVHmx#>zWZj;5Jg zSPhifV-^kfND1#W=#Y8A_I{d9AJUy~&Kr56S6I-%T;I+fg?1q+?qh{M2#G(#E$-@n z0?=a91O}#%^XYgMj0_FTiKcaCpHRa@%S)kXkb-9rPIK5n>XZC2CD@MjmlTnQPGX>r zHnsCQ?5;Git~`l5uS~F@Nt$OKaHVG-NRQRrqMG0r=4I~1t`VJV3eQZ)#5v3Lex1>4 zu#j``89eSuvw9Nb2Oxnab*D}_1+>-X%D9Zp8V9LF3`cd+?1Dmm_eac5<=5+zx4q^4 z2ded}R{Qtq7j1U%e`Lb_KV(Vf|ICt-pkG;XcCq?w_wlir=*wov<3{Nw?;BbLKHAku zMpOJokx}ypO=p?gHRMy_z^Kb$K>!LvVu!meL;wE8`vE$ipERcMga+f00X{4O1|Ai= znh6$1l0=CpT%gZ$M!sEvEm*&rHii9WG)|w^jfl{Qk#;Co+o8y+Cj!P?lN46Z_U|N= z!ymiiL{Q}mjppDT{ryc)0(iq3#QTL}LFElchP}T5S5|mRfDpxg<+%kCljVoA=C>F~ zWYw?3x4q<>#WU%ETvElnw6%6O*oNc=b3R*glNhb9Bzj)!a$wemRLh#uh~u^ir?y-hbpMymw(M%at0c##;B}RkfG^E^oORA55)9 z5#DHKt4ul>pFq~988-bZwt5YI1_#jRgs|;Kp$v3GQ0hNLzwttFuG>rP?+V_sXq!JG zgHB_0e3mSw`!o%Y{&`>uFPCD^zA>ef*d#8RiS+#osO-K;ymtM!`H}kH=SM|jr~fvz zn62_pH)jNBDF!eiv9hE&3t9;fEE*LhBuh{=G=GUa16qzBpnxnRJCoW1mFm<*oew^O zwwIa4RZM&rHCLgmp@1+(FE`Aqa5n;iFt$iXq90TdV&BLG z4*OA3gp2aR)Oy`{m5Sb%{TuwE!jMXy14;Chd%z(+mq*i|`c_uz*aYnygxko3m!yQF zr^XJE`dMBt?#rK+%@)a(&Wlb;vL@OV;VA)wxcb*lAxD4?dTMe<3F7av)y0^`+%(h` z4Rc)O#6O&M=FmT^XgwyA4CsPLnZ4O5swKjcaHY*o8dB&-Dk`$*(0NMb9MQh$wFL%I z+G>eP8U|r57{=)1pdst3{ib9EgqhxO)tC4ykMD5N)ZHU zxIzB22GIhR)WUhtii^aG^Wln`qnLw4j*KH4oqXB(ndL}k`1f;9)(!xe1en0ua}?{dSYTj zT;<=SP=w)?vUSWcU`>qYHQtlOm2e>DM@e3z4FV3yQ)-CR>XK-);hkRCX`qS|#WbBlKl3p=ZoaKE;1iEd+u7X34ip zr}Up{9bfx6ZIc61QPK`gfmd0H2VvNE5r#W2psi(jxvtEQr(vF4eZnKb0owx++>`OZ z{x&|cD1z_zt_SQgOO^m`aBYA_J5Lqo+(+q_Tt)Cxzgapjf%Ner%E>!a<4VK`wOTvV zEQU(}K3mfA4Wcn88fuc8d3j{mjF{(}cp)6{c#={C*0ko0Mt#<@Ag@|I-TU!Z9pbbS z-%Ub5yV5msm9@nvMc4^Px}x;>eSyI%7>}vkFzs~3>&@14S{7*v-uLtA>OlYod6mpA z*sP`iVQKq2A>1xRhFxNXOQe_0yvo(g(VaGBwHV8{w(172BqhWL1rB}>9AVlz7I_Qr z_z0Su&;(w)2$F1+g6V%3W{Y)I&_MLaB3*aqah@+1x)U`tKlOG`MWrFp7J{?_w?G z4V+RWd!rHP?$~?qFx)24ah(DLYqsri9oIfsNIjYjU-4pGI)b5Db4W<1`2aauoH2Vr zII{JLq$(k#YX}4+cMNlu&p_0?2Cv=?ZviuXpbZNCmwW6r6jfr%2q^tf)maS%((j1> z$e`R2zi`mL8iEA~|Gh8t_i}{o--p}(n1d5BH?b9PHZd`F_&*hAwz9M>jxmzY(54%X zsW}QOG`!6GOv#`N&$$&36cboR92#b#fHrnKOnCG=$>!K*_2Lu7Z(2HFF|94t;&r!B(Ab=d_RKjc#A z)S4+45R*|AHY-rfErzI8#zj9k1A4 zGx*uc3_)hI>UpVQZ7b`}3f1{+i`QM`)!rjU*<|=y88kSslArJhz1pU!6!ejGQC6*C ztm^()wZR~2z}~Eve5IK~?Za3mz6XXBRkcTEn=M*R5kr;L`m&E3Taa3Hn!;hE(HH&$ zwUFJPF-hzYUjtI5&5Hf?gtHwH5M2K~r=kUtLhNvHltk#xW|Fc@TC)wuy?Uf74=b&w z%3l&|=_cHt$_A$;OdixW{0WU6)IJLEB!!S5hD;K$%e+NX+Pv;nEw@Tm8R762-5=ob z;|^=N4-fRqg0}C#rBpq~b&KN2dt4Q-l`)OQPIcz)w%U`Z3rtooC!49S$2Wba-QqFx zPqOKAjp#@gde%w<47l>aHcJ@!x6-K&Hc9PoCY-MtNJ*L-_kXrO zQ*O~*>gwlYo9d2CL~xb^;ZboI({VbQ3y7+2LtWD2d9>$1dda!t(uuh=UWv_8<=+oTHaG zq8qgj)CWXuL60!{`*KbS;Jit*M>1x8U|auw?K@b5}Qd#sUMTQz?*Am}g4P4Nm;j(u)Wwguycv_(T)Jk~9;P9-;}iE1Wqisp zxj`+q7Xok{#cvOGh`jeD*)L9%y#tAu^CGW6cP=&CAh6G4F$8Q-GC*@>;%RcWfNrl3i(RMq3X3S zbxUG8+KFQB`|U}U`B({8l01rZHhqSO^N+xt&WRfgl0mWKkY)}>KygKl@;o4UPKvD5 zCxyuBC=#lj7W+lvSMD@15|v`p^PmG10*0SFW)9)uOSs{mztpu9&Il@genr2_uj{}1 z=6{cm|BFB5ZwhYztTQ^*ES;2oqkl|sC8meF$3Z5-@#7N{CPIRNU z=RDeMO%JNm-VycP&vBgQHobbkc)##|*vI_jaYW!lpK6f{=yl@hA|-enTYA+Z8+@nX z@`KD?z8V0=oU@ao;n^Q})VAA`<52b44nT#Re}2mM;-X^ZA~KETxJiSZw;Kr`)*k66 zWR189!U?q>h$g*B@_G}i;ihin{!TE>ag&7`J9bd$aQ0n+;}7>$AFjC+^cNLe7}wEY zBs?|CO&tg%=TJ;2k~sv_+gl^ouaFz*QZ>J;&Eaks&A)R}sAd8&fX_SGVeuK2r%p?od5a#XF@H z7c<+C)F3bv95fqvF%}ksjFiW+ooW?w_Huq>m!rcCG~(fVL7s7``FkLy6ix-&8b*6n zIqj0-cSPjEP_@D7%DyK#MJai$2XZe9X~^Dm_{57tlX962F(7KxZU$Q4A`eF6H|(vJ zOG>XNN|w6O*k^jw0^?-6O$IL6&xIo+%IG&Y7%v2#*>yr%FH=ntZ%08N^aj#cp^@Pu zI$8R%bwmK!d!d3cKw$(UFD(V!mr!G2iP%aYm3N&REThT}A3lpXo0FG4a>g)4Te5=SU zra=1XbGOtqpRBgmP-^Nqg*DV!hD7u^^Id9o=LeDZn^3*Y_9qIj`Yo7%C5EsChv?30 z?X}cdU_4b^W^wGQu2(!`d+5yoly{xrM^IG`QaJvD8od3kXyC@A`swx<=6D84sl9p1 zaM9k(HSJNW{+#50Xk4xXM}|5_jAO6*1JfcwulERdIr(r9$k)bN9PvBUB=>(6YMZN( zo2pXUw#a{{L^(Jbv9MJ8pl}_3r~Y`0UEd%lty#M~+{TilMfj6& zAmcTWa5bRMz0}_Kh&Jb)a!I)C)t@NG1qm6W@OdY64HEIxu7?pruOS$$tvfE~l#_8Id_2h4a-WBDBcM zHLkA57KWu=(b`HcCI*=9Ki@OC_Y{PAB3PDWG9@rX?Y_d!?BX4UMQw(BL zP_NrZ!vw??tEkdU*}HOd`zRa|1ed9Lm0gxKc7DG|lh?L8F8Z*T_OLBj?k5tK5`=hk*+M$ z-yF{II;9-vY~fiN!!yg^iuA$cg9we|m(Ee&OcQi+a0A*|zEqJfI@n}rjp+3VkTxLB zRri29Du)oS^Rb<6UGzC}c}-hq$KbRtGwYa z?IA9Q@-nb@=_z=LkLK>tdj*@`n9iMAlI-caO~0dGZQDLEf7B2;!p}d*py>I&h z9|%iT&x?0dXRWwXt6Mh*0H7?R9V;k>347N%5ncf}TZ$$kNGDpRYOfnJ!c z5ICu_-~%3rmV9Ox@C$dC1)T6f4%?gd&l03$1(@Q~CWrl=Mg=&7zt!2_kruQLs{L98U&5skV z2Z4h;-kx<^1oY4pVuJb;+~mM0Z9YMd!x|kkR5~n|M6dyYGR&C?h-zWd!iumbB^*f@ z0hb6fornP3fP)YNr2vs~K&lG8eum`m2fvn{z`DU-pRXGmfwwuoWp*8;)oy^P3W#Zn zKjWG2t`fSjSpH=3kn}=hgv*FMs`VOEof{1AdI3mlL4+8lL5fJqr>cV*?z+|?P$Y4g2aRa3?;gllEEvclLG&x}y zUPurm8NWz*pKpe|F#)@_p7*o48#qE?T%v&g;x8EAL31?q<<6HHJnUD4wk z5KTilhp*~S46EY}#{z_GTLn#Co&y4sB`m9)g+(}0Bva9qf6}so$p2U!t9Hu1{6Uhl z^5`^xkkoQut}Te#+^-{=+&i=;FSWN zhz)C>#P6Ad`5eh)4kf&MP}DVI%dt6qEjf&NGne$19J6KU!hD5IT*cm6DXv|07tztA zn6{yA>Tq!;Y4ID}g?BDiaz!H0_m72Cjr@JRTee8-%&|OL&K znzV2=DV>w5U-s1Ug&C7N=G6JeoeELW%?Re8c;8&53r#mn=}QgK9H&#Cs|%kN-OyVE zJVtLJxKidv>ayfv?*15-9F-8p_`o!dY*mF^i<*V)s})~X9&H<-XOP+%tQ-5}RwuS4 zkdura4C3lY+!|0Q7TSo`RRL0(<80VNrN-Tj)Hg$xZV~#uk^H8Y<^%C8umu zXvF*dh>{v=$Ha)+nd}@A+ZoA&&s&6{JCvcN`>mgBV31SF!&>lMv4|{`VXmVpLi)*# zk3U?n81~O)29>lkk`E+u+HfARxF9s!ohDSv(}#|e^0Kxza4Fdi?W^|H2JL}GpDBN4 z>=DI8CdW#og$3WcLi-M*e?a~NOtD65so8Uj`eE&SYYe&%| z^wFUSzDt_JfEw%|7!yM3nF@e}M_-_JNmMlO=U?n#u>pk&{D1|;w?dru@y($H!e#_7 zmP3&MtiZ3s>MLL1;Hz_9T6niG8N6J)NTubzAw`{6Mb7ME?ORCWTA@gld6hA5t*i^- zY&CUx4mi=&SfBFd)V_7oLIuHzC!vyzDE2dXgzWysFsf6kfry=^R{1-}m+|Y@ zec|ARQd_|LT_D@`i=B`|FU4PQP3qI`phTtv-#AdAG0R%zDg7ZC_b zlO@?QM@MKpw;hJK&G`goqjenB_pQ(}G(ylk+IYYxMHU zl>q36ov0vICvebAX+8nyElb&M76fmIa@G&)|tTM8%br_TSHfUZwP}6apzF6DtWxoYZ zZ$`0+I;&{Vk)1zBh&Xx;;uxqa>p2OjvY-wvaH|%~l`GPuf?j*aj#V;7j44HDC)V9y zgSlF$V!PDg_oNIP!j_&{#1Q_zBb5y;sR@Q^8L6>Qq4D~GBKo|s8P(Rv^qn>Km+hEKtEdei&OIk*;0A zw;5F6qMcG6#mTW|B-*JQOt}5xh>2?Ie8;5ZhRiptaxC(HZu#DA#JwkVxRKlBcpJJm zRnLEpjwZ>0wlw#chbk13TQyoN1Ed6jsQ++!Tr1VaIM0;~c1s<^X@xeS7}> zyEWPad{9O|JkKkz#!IyR7S#TrbctE!1Ibtjxsb-;?D<0>vQW{-{p6eW@k5SjY-nl^ zbi!m3fxySD;scU!&B0{%KLSdP1Mn&I7fjOkFI3^bziDFs{!J5hb29#i=(e1Lt(~!h zlew|ukN>(=FxEFR{tv;nFUbwXFQ=c63^0^kh(5}1U2<|LDB^rxzy(NkQh+!VSc2wB z6R|}Jm%YoOzFTYa`1w2Jq2Mmgn&=<9tHH~CVhZYugBP>qlYB)P(_?w~giN~p6 z$7h4J3yH|g`;k;C%2u1U!_ENnW26heD$s=l7$u44Yu%|af)9@sa&;Yp;!#_>U__`5~(6#uw10q|Bwi!sg z(-i2UDPc_PlzW*cDAELZ^)EkPN4b~HcQ>uC__R6YULI@)!DNM|!gO6Y_8!O@x__{v zrs(X7UwfjquN+JBYCj0o|x0#4XX64#-VLfB-oY_r>F{G$o{<$M>9>Hy~p z0Ay4@HsaKZ6u`8!Yt*@?huooi0VHZ|?F5G|z3R^1>%rzsh@o!=KOwG1sm^xv6d2>7 z+RLJM&1{oK4RrT($8@!b5^ZXsSHse)fIhO!s3;mJ$G2}K)yp_KpbQUpbIofob9==+?t9$V;Kto#S{*5P}V?Mst0^|cs=ShKs!J@A$I8+D%Hzz zpyjL(P7tIxcwXm1WH|6qdHf=G01B4Px*wlYlY%p~`^MqIpl%%2zMk{_jsygkAZvscX?zL+br!Z4=V9DN8fUZ5EC{W;Evs!64aecO-m1<83t zs@5?%XDtEwK<|+y9UdpAJ!L#wJ*7NPUOaUer%@_8PBGDSTT-eI-3D%bfoHB`nw8Nt%EOpZNAWkzsQA|e*@?*Olj%oMB5TPrNs&vB zkjqbyQV{4kdV^hn{h{!H?8PctD z7&X=g8}b$yqSEgUbZvnC7OBl2n5l6pkPRnr+uGlJjX@5|p!6~Af=#TP^8Su&LP3g1 z7W$Y(yW^n!j39oeP4N9G*nSAwbP2)KPkn2zr3XW10w+N4vXpm-TzLv*!0}jqYA;~U zyGK!X1NDkTERb6o8J?czdn^3SF`W#>kHyP!@pE(0YZbZDj?96zBKb-+@GG!0SjS zCZg}?^becpf1IjS^sStY|3gqaS!vDY%R-j>jLkl=1=FMOpoC8_Q!*S!g1;;*l@DBj z46*ulsDG#`p&FO-7i;l5C53+r*EO&gn!zG;F?@N@U9ICvdOf4*(DU=zDyIn38U9nGN7j*EEHEPBL>wm+L_Xz15&rUe@LGn=hzNdDG`SJ=f;HDb zQ?%%E-E~@ij++OZEb9JSwt-{>A{^shOfYoPd}w?SP{@how}z_WLIqU`)tUvgYQ1&j zegpGe4W*B6D70hA=DZ~%9aL!s$ahA4vxm_f63bAkK%*{&caTDb_oxLxI)usbgd9>7 z<3vIYDjA%kS{Oe@9aF$EaXDetDQg-W!SEdK;K_J@oP672ihcH_bk+7DSl)d%pYBhf zw&1nGRT!sIf1Nm~6Rr)k%yn6PEc=+m-i@>$)f@fT#&9PLa#7Q-Lf?;vie4#d;!Tr3 zgl&y}wFt6=8AKXQGWq-^N6hgk?8W+(YF+-vnO^pPzc>GX<|mB**}qr%%i!2MGXo1! zF?CLW99)7v4zUbXU>taW7|MeD2Z}H^VSaQcQw=VshOOMQ>No!~wrkKQ`7m`-6fzV@ zQ|hbpn4`}0Y`p28Tf9CX*E3Z;eScu2tklW&LUL?W>|obOY%*K=qN1kh=~Io8OaqIo^`W z^5x|D-lhwFC`Q7UwuTrgSf=`$5^UH5{^r?Q4ZX`mYzg+Rq5n>(s0{M*6 z+qa6ieAM=*EQRTvP(6e3q$MqbVYEAuEr?K&A8r{KOANa0_OV6txpcrDS#4vTHeUws zQam3&spn-lupP^NVIsyTM?$Sn(MX&m)qV#{-V)uD&9=jZK2SEC>V@O?l(SCtG<6j! z*?RTQrLJG2Od20I-NuOdQL-=h8dn`CAuKv(`&TZfAvc-JLaF`vNf*VK^~xpsho|&c zsR&~QO3lF?2~FHOp#bc>e2#cxLydgF&=>Qb#t!;sSvn0`agAv9LdvpdDoX8UcfU|*?u0ymEc|0wHicdkH*J5E6aqVcW3>3twzU_VOfegAEJ z{jI~`TXrJoLMF6;HacW%&1N{6ELj|HeJ6&VY7PT5=x#G|id8;f7C$C z^8CSv64}E7C<(HCdFe9MdB=3uRA&O_^>W#M)#>PawC;Gx{kX~Mb<}Cw1(p}AvvA%0#Ebs< zbC(+)zvCxAp;;Iz`i{$Om;kb{KUqn5fgG`NU~C5kx;YuLs
    gy>fqEPDaO`QF}o` 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%0AO0^D-A)i$ldleqyk}TE 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 z zCq9A=64LR7y(AA8(64VD6&wkV5{clARzGh)$$Eex)6{0S|DdFn8<@3HB)Qe=em=u& zzXMy1d)&(bmKFI?v?fr5YeFxA)1i@IzL(wX^M|gG>=nbYtm^awCmr=dv}neR`toR) zO(z{nY-9bE`9NsX&3-|`+mQJ8Y&N5_!*4g|@BXa6*lq#0!=V@=$v z8J7;9)=kBDy??aC?RQyAfM#TXz3Z{D!}7aWOZqNDJQQh7@0)mW%9zkujTP6zR?YMT ziRQhtC(ugLhe7+KH8W8hGqc=-+ufu4Xj#AaO<_~b!7Utv|;r9+i(cX#^rj`y| z7!#vL|EcOh%}~w_DML$MW$P%vnB}ELdUU4rrZ@JJIAgo7wJVaIaQSq{)WF_4n&y~Z z`{WgJr<#X}(Hz{j0dYcd8^aL}tVO(62gYf{MY8^i67p@L*Pu4I`wi?P?+EF69sfv3 zdEHD8toD}bUBOI;#bo|v*05kJR^+EKx%qsAStjf`;&V8cSv+7Vev>|^lvi&#P^d(_i0Zj;bq-UL=%eyNGoh~J>hvEAL2uRsax;Y|4@HTxWo`DI=@nuf|;lI&b8v!=1`$ z`x&&wkG$EJE&wX4VI~fw!)}9Jwd0RIeHE%A7Quno#a(XR(5H*Tufikwh&2ly9QEec zT!M_f{?uSWk+b}Rxm6eOpZoR&L3FOga=!!Q|tV70< zGo*)BDW47vI0u_3lyk z(>F2d_=~bP@_Iyex{%UO!pCG!ouyNn7TqS5`0ovLQYxuA31y5EHkbhfm3ziy9+Y~& zV-X?2-8;?Sr;eP&Qd$#u!gwa3dnl+5FTGCf zoY!gP)o8!IePCM*E_NiqV!J0f?3hu*zvGKFd=tEdn}YT|HA3TQW1g{XUp_DTELdqY z`X~wQ*NsM8W;7aw5{F%F*%45&aqy4p*u8nQ!w!rP9sf+5V1cToA3pr`I+6k}rh~Hu zqmiSLiKQ8%iG!V;gS`vz{a>w+E{rZ_u8jYw^Zy!Rr2pO*{GOutr^GT)C7Sne;+xjc(8bHifL8<200Ul|S3Z5RzpOsu6lF(LbF$&FKSuBrF}`i)kO3|!y` z*e|7FmkxVFO=BW|?x#$jDX*z&TjFb(Gdk)q0Cid)C+7sb)>X7aIA%$n;RS!?Q_r4 z_DkOgKkJi$(%uGF&BhgB2HU^j3#CoFBRP!lR=b>z12}AcMD3%cKAJqs<8m zU2KXQfV@~@a#+u6FAa-TkM4`E98vol3TF;YiZ%@gG*M$sZLtl!@)wVak2TUt$;Mx5 zo#=`BHSeOZ@WV&zV6=g7WAlm|8J@~#C=Jsm9ttOwNI87&V;=kcn8*^I%f0LvC)rZZ zViUyaqBM=0pxQfuaFWhfsEL5#8Q*!tg5LVDwomY`N9rYg#DJ-*XOX6Tb4 z>3au9D$k;&`fZeSz(Khi1;M^X)4-<24L@I+1Y-Z7mKE=5^~mW=CH_!jx*Vbhdin8& z%s2*`T}Ygn(rD^#o#QZ8Taa+}!_>Y)3OMRY)_Is;XDg7mfE)Z1R`GrqmP(6m#0pE_ zAR25+*6Q3R)&y8G1F4`T*_lHeB66XrT$&#%VNH5i#?^fxOXZOoPqQxBOvoga|hK@{Ra z6sHb3gC$H;s|-a&cF=>iJQh3_hcAcCFE3ZX%xZ2ll&LCUw>d~94JOf@GNfaU1y2b1 zsW2^ZuNxibgo&{UO4(GzbCk&tPGU?olS}y zfyfI14=2q@azAGLD8ZTT7L91nq*XqJ8|4~kip|ET{7O@hOj<-sL6c59IR>?k`9m2) zdB5X#u1{o`?h^nJOOn9vYYDS_0DaS$4*T6{A1CBU{UtO;CzPmn5J_M-p24WzKOFADs}1Vo3f#{l`< zjx}mZTSmwO3LQdUa8|L()&oU1(KTG(08Djjn)T+$fT^>;{;z1P8nW(u3nXH|0JM!9 zv^1DeC7!Uur+#q>@U_e-=w0^^PJ9&03tn&`KA0JtMCfk|1n2@O2Qw6<^zkWei|dmx zl{>&27x=|}WHiAw!dNo?kaU{g1KhuU&fh1ghFTtx=2ZDo=wUb1RMyRijxVTVH<__3R>c-Khbi(?Lb`N^&hhiVa2dVPe2O`|37CPc>i8tQ3Q(i zTbUUBHmyG!Sdr>F(7@33N;G(~U`bM!UJyd9^1?ms#EL9~s4auoPzbLZ`DTdc5#>v| zUmz%kB?N@gfGvmn4TSrY*iY$*q%-o!lZ7wmmkm$aFC2IK%c%|@>eHh3%0U5E5E71Z z*2@L0#M57$LY!#D*X+s;3P)v}BqDLBFU6f=^J=K+vhc`_*xefHcm+m!37E-X%?qsV z0D61kG9d;%Wv{w^FK_rF3TmpdQR_i@Y}y+;HJ;68XX5VP8f}&IP~EF7wa>J=ztOVC zSEW7hfXrH9=Nq3Xe>RRN*C!6y&|LNeDE3vN`a38&gb%5A(N&go+Qt?2SgKQL$m7g^ zUdFbC{c1D=McdpaGLrl1XAK|Uxixcv16X}$Xb>e|W$%(Q;iihT{)wiwsTbbPV0$Gn za9wKfL^7$q>h!HG07=IzlSa_<76;I2Ma&ao>cPNsDO4yBfnD^$!tk8r)rc+6Ft$Ok#u>3ZwJ_sg)0WY>-&)k@8;41%BekpZZ_WblsU2n`5KCeFxw46p{iQ z%UbD#7qYI0L)KA^<1h2)Sttx$h-yHew}F*6fpv+hVE2)SQH72dLX5HoDoOK8s%vAU zI*0C=Mo5J@v){QJ@R4(KHF9-u{v(nVDNjm+F#{2Tr7t=a?l16s z$3q+R*_hyYb0U2{x&RLHuSsO(3%SW`7cYh~60_0Db=wvwCJ)%o^LJ5(|nSGqIt8Xu3Ms@7;% zMeV*{nRpqdZ+D@J(=Pvr%xN?dc9Qkl?nX&NCXi=im3f#G#mEBgvIN{TG@Z*72=Bz@ zdo)Ma+qC(vQ}6@^)&3Hx9_g~qv0fSow!In1;$=qPy)o!!0X2#{rF;E=iwfXUunegD z1i_$^g?L5Cph4MU~WsfvtjuT3{S z%y9siW@ld!f_Q4WG94O!L}S3F&?{s@2PqB2ud(A^s9vhu#o)-lSp5tNWg)ohLd$|Ets8`fXQ2WExCGE(ZHGlFuJEq zX=^8%-AUbpKasOD z>-f=ePZ9yOze;G9NsoZe&V0k-VE#CHw!Z4`+uaRP>trZAk^*anhGUCYid~AkVl*?o zQAfKDpP_cfTKMU$%8<%+v#vEe8j_@S7c7>isQSvWW*SUm(TSD*Y9ns9@eE4jtAOK? z{7Q@f?$7zR%wuMccFGEa(q}3qZ__ ze}+sThGtk$X*UsunNR0{$Fw>pHvm)DPwJ%H*rVmOUk3;tac*UV;VIuc;Rg-~6Qg_? zX3|?wc^1FRV@6xDdujLO4=HM`i3Vlz7p5)=#ftU>h{spUEyAkF35%zdDfDGiOZ636 zqJm;7*=QEgagw4O!X)=<)6Gy6@0~srP%Cd^;Ihp}qmQwwSLW7(E|JQJB^g(V+fwL! z4t$KcpVyU(eXa^gwXGbiMXBTH`3JB4;3p#Q4E%HV{!feM|9c)&#mnBr(%He@%KLu| zJ4Z+@Y(Wa(ry6*k?sbw2v!Ko^MQwG_y zA_S(Be&~}}cehTjk22%8m0Rpv&G;nY~}2O7U(n|K$%;@E!-dC-(_oEg~sR@JO$5e zX}1gbvCO~bQSQOiYfifcYjn!~vqgBIB z!0*=f`5UdDIOEF+tWe8#e;i|?*ufq|Q*xhKlg9raDlZ9(o{p7s_^i+1;KDEGaN!;u}*c#!Et7w-^KlQ`~ zx15P>p-^)W=gT(X5FQt;;|;QS>;>2$ZiG&5KB4ABK|s6waGd7z0j(BT?fgk{+Wxy? zkV5vfQ)d9n1KB$@X__#MnCw0_AM1Ul1OQX96RA#Xb6~VuxfwEbLj`8;>e=@2J~7(E;uSqaPsl$hC4QM24$fk$0P&;cchN@ProQL? z!!^Q117_=mN2LivYT76DZ)2kb(owIQMH|LF2|m4$5UA-EtGup71u14hAe=axJ4UuF z&N59ka{@ymiNT}rq&QQCuTo-Dy+OG0qaC=3FM+Gv)_UD6m`ez;Qx4 zC>Zhm0Wsohk0NJ2NyRTWWI-tLWA(wq0sB>Zp{J5RR%&bRTj9HsTFbyO);%OxswqVq z*@MXQN54b6U1JiL0kFzp1kGyFVD~t$Km#G@x@2{u5*U zSBEoC+Q4B-dc2lYLsM)*h=Ei*ZI)bvxcvPA%tc#j(oOy^L4zT)%rh}}>ZS=?1});G!1;#t(Ktrk-Vmo(1x z3Rv~)41;G$CEE*GzK)3F&O96OBNkFb_59w5APRqWuQHSgg=DA6Dvii053 z4%oJm(U69NfQ1(0S8Z$@eTJcu%!f$GfJCkEU zxIroa_*QCPHX&j)zWmZ{Z>e$Z{(~}MtfceiZVsE}%z?g+aLHnaBTLEwpP53Q)p|-w zRG0^T$Rz=OgLoQnt0!YSnybb7`K;G>Cq<0l74p*D2?is+F=LW}x*jDa=op{~#Q?@K48dbZ?^E9=uK3m0ecw-*gbxCy% zl#-nFJ*(aswgy8I^@(nAdejIKoJVzdfQ3 zQLj-R|0F9W5#$5?4l|=xO#X^6Oi8A|N-*D{c5g&KJnDh%CA;rDC^_E%qnkIsIAd~% z_4~5>^?V6&2c}2R|0g#3HzX8)yGP)Zo-j~Y`M)sHWHn%$pBnPp)MbDFB{Bms3R46v z#(sTVC9>IW2OVkHI?b@vpsFI(_~1Y&JX?*lNn4fiJ_!-bSER<&NNy6;d01Jf3OzsANSNp_omGtUTA$V9Q7CHp@w8A` zLZ&k!ejfB)5I{~zJCx~K{E%5zd%=6N7{OlEH5phHAOzZn{6L8??x+Cw(HHSbEB`wK zu36w)RC7bzqKvn{lKGu`on&%;ja5QcpSMtd5t`qGHv@L!tMhBg0drkDu3OpeMeWDi|34+d>jw@^sJT|O&H{3KY z*e=C!yO<#*Sg;H5qOI9%5LnE*fsc-WhZwrG@g!3dH6_GCR-B^c1G%zKG*&d`8%@AN zGdS?|t`2>W;lZ!Rx7RMw$a4?NUK(G=*eo1lr#n3uvNj+uK95XHJ%Yc?URqn{>4(Oh zLwB(;>jLU4*>bN$P~WJ-dbwu3Fcs}In0be>8Lz_UpZKZJEDg`ST{M+ zT4IF$#2$Tf!;R^{dI&z%(3)$Mkj1!9)di|EF3#9n?38DtVKY#SA%H!+dHUV%beMXX zxe|h%PVOs3B*Sist{PX>$qw1GoR840Y7&hpC;Hssy8Oc-oCDICr8jqwpNyX*A2YQE zmEnYP&Z8^UVP0(+oPA!7{-xi2>D35`=xk_eTu|@${k6o*7x!+Zx%HpQC+h(5(?){& z(V0{BdX)RB>2L#Le`WrzPW6tF842YIZBMRqzm>ae@#yown28)q@5oVIoqHJL&%9!r zy2Vd0r<~XBD6EPOgQe{5N-9j3Tje!j z!yu_$TZWL51w(TRqgWR5hL{ityI=^RX^JHFE`9p8*vt09Br=v|G!@6b%>Iq3%Vq@w zhN(?U<*m>lk1VF*7LLFk$#wzE=7t-^*ag|C46<%W!nTh(Q$5_m*BfyYZd*3T;6x>o zDq@(uQPgQsVC4yauTCOdj5A+teKh}h^;op*u=wRysh>UpjP)BxXOX@4%Ji{BeRaXr z4{=}VGBv~7Yuq*P?qLvRceszSbz&B_!7Bxy-?t)kuogk@Gun$@ zSFC#Mp?oEX{Y{Vj-!R`lSt<=34Kxkx%|uyA=mKL^ zxrrcr;GzM5Fn_$;YsCuY z@7xW8qWrZIl*giK*a}a1Q;fZJyKk3?>O)$@yV!~SK)g4Cn|V!g8mtfaApgR2IMgc0 z=9`Ah1i+pO&(g#(9UO{74yFd6I9VeN_>(y;MI~Wb!MuTNo=$3Jm=%*zZAOG-pGI1p zG)^@nAd(tsGDKOs>vK46oI8y zW#8K~-?Ur7hbShypsgRBL8J=!IbP{=`-fyMwjxta%=FBdmxNilhCcI5E<+!)kgeK| z<2)W3aOlN*ehxR?dvX+{Z@HFc&P>nBI1g^!A*H3OiV7Hp>+0*I%a$4qk{sJ3?}C(<5tkNo7@$$HQ829gDh?>;DnC={;+s zeg8)Pu5~~7gT%al4jv`G{->D*-6P`_`Kz}6x$43#lmwq8+Gn_*+zmF)wtLHnQ>YdS zj*xRmx~<5Kp}HSMI%g(O6zhe5S?|()(02L2sH8la0xrVph(UV3lf{9TM?#w{f?UCr z-IB~{xUQ^uXs`0HslYG|(9{ls*>Gt3QyGYoUkWnw;N}CtiX?YZ99u^ekNtH&5CGHazerG2CfBN4iBnn)^|u&$ytKn*&gh4h=@3Vv@kw2`8&s3*`PFZyF)vc#-JGas-aP7?9Iv{v$*stLXf$hTn>dHqES1;wv;dg{a5IDh)TxHzg_CO;UWan92n1T=?X2_#0IDkfyodC^KLOh9Zm0 z6l4Hyj&*4`*2`wjHi0|CT(Zj`qM-GI!-FH#pqY;|Rm;p!0VjbrTPI~B`Rhhm_{!r# zN8gXcr%WM6=<&NYba>LTbAs(7bFsA;ptx(l=RkIz$q=pL_w>q($fIOq{U3~8Tf_FElYvf>VjHKBaxq62gZ4QYpm+J5YFI2PUYp9;cZ_jx zbVfQvjJVG%bVE)i3LyX@FgMGmjnm%Vw`SZoGDZg;sMNKwR7SR2fkX*8wq&UnHMd@QH!UIkjq~;P;Of*;6*5_ zUqpLeGJfI^H1FJ4B+0uos^HbSmaqD<#Az+fs~N31(sB#981#l`u9`<)?YZR6dty1Cxt;^S*D<&PN*HF3meze1ew*i#jL#YTuPrUtwM zMbokGf^Ef;#d~J)?i^vHKen zGQSJzzx3EK|If3(sh=RCOBvRkNtf|sZp53+~R-qESfI7<(2|{!7K3j55M+T_*LZZd5eF8Y5(dA z`3uWd^lum~)!!CNsap+QaiN*00%E8THX)z6SSbnCgV7op5wGg(=W_@*f3zf=pYblis8Z)kb!=^z4*a6`>HmVaS$uyXbNlE2J&sY!b$B{#vMK!tV=mB(j z(4N;}G`rdOa+C;BKKZ(6|Yv?*=N}aKh zTDlK#38!2-l;`O6X^%emz*Nt7Bs2NBv(lk4Q-|mH@;d3y-^fY}?(q)3&8=FwXPN7K z$N3p?3$dbsTj&^EDMdh)&=_KctHp<6&LpD`a>!zrx&K5f5KvOy^q1Jn@;; zz1v%H;bdCThUhnnlp=>+_cJ<5rZvM`Q%8$YSAqjYFpX`AgUUpzVnPoRYCTL0WpKqA z6$hH#Mr0v6M6<~?9|E(}ou-$DQ6|WC=OsbAUS~su6CAk`uBntU{)mI;seJZUKttd9 z6LR*~oBem&1)PoSUCbSv?fwfpD@vG@$7BA@EQHYMb&FX2wEWpB6r@Rv$Oj%O0t?-^ z2l{29U=^EbtulUjm!0c|z){#*jUWIlHiYMl2(>jAy6QX~|NZDFJ)SW8Z37It_Sk3% z%4kXgWSiIbiAe!lp-73uUNVs;>(|D?Jpf&hp}Cjac%2LlyBg zXj+(EXHNzOv6*HXM8u*hz*;8cp0KC|OSo&r5OlK>9ccy2`)D{B-)u3toZEpML!RQY zTyab&O+3`aQXQMb9@n8H^#Y0pRjd5lXT(DlE7lvGvA7F;VaaX&Ah#11BuLwn=%Uw>JZs>C2l_W5I>|+ z^~7rI6Wcx^R??ok*lX@RY3;E0+F*)#+Cu$&IK2K=MGWs^8bZpxbg=ULS*T|``O|m% zO#7rK5}N=*?EP06iBKom4^y;8bDRD9p5_)cE;PEGt;ID4}Z&J&D%7Xso+y3zNS?W3(c);~^ z^7e@#yUNh$mUdQMY*=fST{EC!Rsk6q!ZNVQ+Kh>&0e#6-p#@c#CU7eHqV!%6OoEb$?f%if4v zd=56%e#8l?!k0?A6;A@x#&_8p$+#73By1(lQ6PrjcW@EO`uDi&D^xKCrG zZU)6-lmh@R$=UUb%6Ejqb^P?bfXD zFNP1kMpn)3%46$?qX%^CDx z7il1*8mbe&44aWmR^zBOIlG!$NSSEtkp#DRLNYZQEkjdi&W%quA!V8%%k$+{D;Qe`ECBN=ojxmE8^+o?>5zV3PY+hP*)ubC?(y?Dm&#r?Kbu#ASysaxx8*vSX8!KQ&6$-%DcHk>zBWOGIx$)ds|S8Z4X<2As$@d|kyNkYGxrJ-bV&}sh#_fL*p5owJNy^FMkr4x z)Z)=cnyEQydrc$IqrvVw&vfyav=VMX7YB2!JlSW;5D%1}Hy>6&g;l??q=2tT4t%KD zQ4^G`*#$)*lR})$%)hcS)eQ=gVG;ya&Hx+}hQCH%3&pIP`ar#E+U;Xsb3rmiL@`K& zbQd{Bh@ZM~GP^LykY%lkbcW(%twBN0zXxF24-R|@PnvoEuyxC@l%%Pmd!l!LE@J)z zqO0nc_@G1)ea)mQQ)fhrZk*O~-ZAUF-Fe>o6WF8m*H22*SyWraiTn2|t(tV-}pBpSvecPq$TBl=n~o{`PhW+VDQ4n=HBT~5{{yW%2& zmFM810T%dyYcT(7Fmo!IA5)7D^Twfj{hq#VmmNp`N1u+eT`v7@45t0j1Ua)|dtreA!E|v|-?Mt*1Q|zaG5FCDz;rkYqdT;6C5>szs zfR@tFQaWE*Ka-Iaa8KkH! zM|*zn2;#8=+3*C4>V8A=k>z14pY!*9oyjFtii7)j_ev81DV{`Xg7x9$5DdNVxG2lr zr|F7i!(*|>$D$_qQ3@+LlIxgA0%^`FrFF6n#7(7VO$kz=YQvUmW3sMSI0C|JIz0Bd zS(#ZmQu8qhQtFJO%nZty(%(!!^Hj|!pY{gefqglWa(Wp%mGwnsWU1=baY-K|Fza8y z1hHz{J#M&w$3)17J;+c;?jQb?MWV@IduW6GAL?R!~qzIqsVm!-|83T6q9bWcc$ zaVbw9yG4D&4m1H3bk_koSeWHv%yDUj?UOEdx00Sy^6m@3m0M`hc9ltLyR=%N;ti~A zAzh^85X*|$;dr7sUK$%5vNmYy?E;+4tY#LO7Y#5z+Rz<+UmJ(e(i|;{LL=#{eiD&F_iJ2QoK#eHVm#-L*Z*cmr z`(Bh5J;R{gT~S(-&LZF^zyR@Ps$AJEeOiJ);kJ3CM!#>i_qgm*1I_WyDAj^TB0 zUl(ZG*tYG)YOKa-Y}dajJ%U-e=et zl3DH;++bEy24X8LWc&!X$-LW&?~}jq8O8m!nd02?3CThYvA(No;i;o7G1Wb>!`USH zg83ywj>uWqt|GKVT_}FAY>MIz3a7NZ=_5hFprOX0e!pz+t~k<(;F87dBQd>wTpZU+ z+4T>)KP^% z=#+Z>80-_6vxF=L+>Q!fu=Y_I^!#h$p%CngkQqPm`&b|43`<78)?&>_nmBSp!qJWc ziQa>SPquOBpCkUH}W)m+^9X_<7 z4ntzapMDqA{nBDwb@?HE2-chd*EK0!#EPP~L~0sWht2hCpljxL!!Gf6sdgzI*fpN4 z7S}(t71k&RsjE$;nzJgPZ6?=7`Z7wl4J+vJRS63pwF>Xyu+4=8tJzDU}dy3gLL3u~>4tXaOfbYr*eiTZw?Iz|m}+agYLZ>{K28zC@nC17!|Znt2znk5z?e@g?=~+R-2_bTLH5%Nax;ZF%qe0|s zTk{!hv*$7YdGTp5@09I%!zmd4o8lH5oiEAAlwm_gel?aAR%a{&1AmrtiNaV-&3<$Q zV+vQJKM87q!882Wg%d}lUhK`-iS0Mzs@HIgCo9TpyHwF{MP%Qcvha7j7403#2sG`l za*ua}wvAIeurha8hq&5Clx<3T_=@EnhvFx( zT*HFnf~qF2t5gt9>OK0g0$(0b^%Ep4n7UU!_Esja>%PBDk@jOyrr-2|q&M-rN_SuK zaLzKd+Y56&v~>_nDDp~bDO?cqAnn;)rqeTUdg3|%>6?r`jJvdq3)CiOKAwp(98LB1 z{~muJveErfhj{6cJj&V822-+rjL7cNO7Zm5#4|;uv9P8a_3kmx*UN{6fp`5L>4u91 z_mv8Sm8!bMjYw*A0*}fFk1FrL$}xGAC9coNVixGpw+{98x;?*r5bJg==~UW{0OEqu)Vl0wm?>yY!Ixei`ogfqz__Mo2E8Ux_jlT zb<9o{bdV+~TP4v=1ZEOm(<5+;A}IuTcBQ>#pgjN4uak^}E|&mt1BpTA;{Rz-{k2$O z{(B87e|DpyaDXvNZLHg7cO*85?T?7A@s0oj+7^YzN0Q z?Z5Sjm~6+4y-MK1ohdN4EF}^i(+tP1sra)z^-o~YVy-Bo06jHA5MuP4W)icftCA5( zueuq76>epMJK<2PTwq)G+X-Mj3azooa>5X_q7AN*G|loVX@rdGd7&a`=nc4o;Z-Yf zjMSgRMc~tFkoc-}Q2=>25rSO=&;`I@9z;?g7>P^QDmu_!Bz+1TsQVhCcNgKK7CG3o z+5qEAiA6hX;Kwn}?~NT0D5Tj=5{?*~i>JSXa{}5KLGea9_!eRCafQ6sj}$Os$|G2K zAm)WDmVO1pbAr@H>M@3`?k)JUn{In>-X`FzU$G1kdOMYPiV26TWaAH6^6pcLj7Sh> z$Nv*%|7*wQZ%!`$L6Ku3qjQ}vg z!&HrIdLm~TR5NlQ0T4au8Es5yuLToa~wBtlRS9tlpGqP_#}Py6Ycv3_UX@o zB=x)&iy5{2bI4I9yM^MAOdtjNaK@lX__+KI&Xw_dC4pYVOcF;uqhN4_$HSg<8TGhv0_;$Y+8C(@Il-#<9 z3MX5KgzF9(kHJ`rnid%kYUW2diGD?EQT*;QOR47CUEm(1=sM68~Wt`Sb7w;Ftz~E>HgX9kL5uGHT*@*9?}G$xxk5gZk*AT zbJ4l|B`fufe-6XoM+bn}QwIf-f@274ja$0zVSM$~wtL6r3C{rF5DCeXJ}AE@wV_?2 zRpyC9F5VtlTn>#81&0~|bNZCVAbVY9g`1F##s;@qy-l91iZv?1n{ zlJ5I)+|CsqK|KCSg8JwYVTB^Two0TE%Je35VNHDsWq2=~$yx;0>SP5jJR*yOaW|zH zEH8#&KPvBrm>2hC&i_a3J)z+=egh@Z-|HCvNwa^AJ?Z~D&5F4@oBS4Bly|hVH*s{f zFmWRP&!@7TmC5e~jeqX3RVnFwnUe>3I&my2M2KLEh&t1b^3&qc`uIafTBO4p1?k^Z zuOezSS*0|y_WSlFZ5ZTZp}J7x`n(g6^8Ug(J>1E3nScIuBj!4D|K;HIZk_L)2ECZQ zdSVlN=hjddr-CtwTbqo=jp^xD4P;%3ele~*) zR+>0M=+fR^sn@ANW1TG?8OtV_3`U62!q9zy;Mjmj35V_A*DJ3s?igzZz7X@F$P{NQ zD$#duJ$wYHvn*6G@agj4e`H@;f>=rrug83W-W{cLouj$_3ZQnsryh}XNboO%g>=yA z#hzs9?*N7+;=xXml57`KOS|XU*b@bKXOV@hK(M^vTsVY~y&RI0Cw{37{dU98s zYoFw(>U^yhfg}iyYhZE z&e_!Ol(_cPY(R3fZ%S9lu!dR2wKGfHy}-}+)9E%#9UDPor5zaGAp!U%fpBneLf551 zqN^|zAk5`R+ednX*y5B<_>1ebl1vNoMn9W@iMl%QB5ABzl4P8(YexJ51nZ;9$4 z{}^qvA~*j^g-EPGD;U7z`+>y2zeaHUlWOUA{GY(HlauibPP?JaH=kG7o_-w+*4DU? z@N{iVvs|H+h`ju0KtK_`ZMl4HWsmZ-a&2EMo@0rnIH^8$lj}olM&PjPxXabWFx(mI z&gzrxJX)L$vvEN-focZ4=NMc&@2k2v_0#}LVvx?PR6l|6rksW4Wu5f(ooEjJyMN^V|w z2oGGPtI}$=uy3>5TgA%}*t6}I;ri?M^0QGWvLPKhP8AK(Bj{N^WVaMKFlsA;H(hz5 z4y8CvrwAXUd7CKI7--t)ui4NQW|$%xaOJim0THc*TP)SotwmcLsyLW$+u!Vg{^wtX z$X%PgXfT^DjHgh$*|2E~%G(uOyGnTx8NS^HI4UYHb^!Hds$hX9m#?M!2{D868HfpN zhp>I6hg88C)Ys25J+A1>wkee0Cd0mdJEGy9q^H9l1%1S5_U{wJ_?(0nNz6hfpkX>SfMLEz_b^6o0_t(V!@$X+% z?tk7?MV&9JOz3=a(sRWIURBmcL|z!?5sk!+e7OkZ0JbW{A!(HJ>bg>ebmAc~Ljh=# zD5zLJ*{{n;%Q3hf)RLTLR@0 zX$*jcaqwT>fM+=`Vw^!u+W3waUGXEn4Hz2Mm2e28yEawVEXr$Daxm;?Q*_BLv@7zs zL<{4!hIXO)h*60N*-D&Zt6z&K0$W0xrA+3<9_1rcM|d`=6$=^gx;$rABm#65y{X7!tYl+jA}hqRn`%Bbf)`?7!E?<+YzQ{-sCm)7W=d(g|z{WyAI!6((=W`6+D zIfzs{c!ZEir^)RuZ1jF{mNjx_ZBYqhkeU65SGd$@t=!Bj9Y^)n8mZd@v@d@U(-`>qbZ&oEPKik1IH3@eWas}g)+t1&56PJdEN*t2N!`R}P zEwnnG81f_q-1BRD=At%2lSkv<%ZF+V1)(}R5SS1(uzpL+%4+g`eS9SF3u7k$OC1*+ zN(5LC(3(200V}Qdj9D2oAXext)o10650H*snV5l0TDQ-jB^QT^k1}IcY`mPg8^6UJ z9ko&HGWwcCPjQfrGQ8~4NR%wv40M8;#d0xLn}F#io5|PesqqG^e!bLf)fY*OFOZ#%Djzx>9=)dh!F!Kk9Al zKCM{;nvIeTxesri^0!VC&f~PTdbiG^+f>#mt{h(xz^;vJ-xy{BrtNd`?0^U_m?F#$ zp>ZVskM!d9;R+LCIB+L!r0I#+Y&^^6C&5+ba=nENzjY!NrEbEPZWu1-lf&>10bj=a z5R4th{QQLwkgy3U5bVclVD#ptvgl1a$Y*;+z{b>>?UmZodu+hm?3a3I2TLDOb8u~T z&zbqEA@ioHYDt9w14>0Hy)x$F+3_i!lG&M)4AS7vr=|x#yS^YED)^REm-!0>Uuico zAwIyyEm=xng8echCW?C1$Siu`#$^!9Bg(~!?uAXr$-|$OA;HVdan4P}F0LaP66KA7 zL%AmXI1ogtIP?7nXK4*wPHyRtg!f6nc#a>uD{%@lrigA_v(!s1xQvg`=H5J#c^Q&K z85BX{M>3V{9eWhmt$ z1H20Lh!Ny(Rla*ZwaIOwXfVbE;$>)H28uE;aP)W3 z(9rMxnsJ%_?~MEV4}R-J{zsWEQ41uSiazwVn*3R~6&-n(l+#ZBBMM`#p9BrD2`s2D z+ijDe-d89|h2`?h%YT0qku`%O;72rs)Z@+}D}4%mRsVHzE#v8FWd#j z0ta4+4hv)gNnt;f$c>@+Yduo9JuM zw|&bW8OiBYW66EbhIk^I-!R~9h_vT8Z(*s>4Y0!`iVIXlzWVDSK7(ztyVL9pWcfLZ zV2xn!M8%{lAjZ&cF+ZR$S#bk0oOVvWDfP=_7+ida3!>`hwf~^T$|0-3NkKbUx!fQ7 zsiRVTdCLTX?*IdsA3#Ab?Ov`gCYo)a-d7$FX}=h2BB9rP3-6SIYzCWs?l@6m6!dlQ zt$_;t*J8CVa&yi@*>_^TCVSf&T_eB@lchsPsVT#mM@RIxL-6Je;zQdLluwfChvZAY zBF$r*cn%nVJr7@G)z{sJz{UhDPx4*YAI8oF?r09nNPB!lLa5v44kp=%Uiw~pvHR8V z0|Q(ie?U$9%cXZ5a3YJq!qk^xn0HFWiS>_sNCeUFI5GNZLwymFyxB(Cz^+BLdf4;I zEgcA6*x)7w`#t2O@@%BlVkN$Ki;T_S6bHup;WGHE2%8Ek>!}dt1+j;c1Ps`N0oh;= zOu>`FQe?iU5VNzkgrESsZ9Rs`|>w-d;bWf zf6EU2J07YML5f~Npm>;@U3EnX4=61S4ecTp>$gIIXQ!ly(x3h;%eG=WRBzl7vC8n} zr_sHT(Fc&;kQv%$kJ^m8X}fib^lW_UM0OgV)1=+&{PN{4q^uP>dIGp*85Xq;R(nei`kjyXlJYQhDA%*M-XtUQz& zjvf|{ChfN`rfKpGVm z#ek$yT^6U;cr%V6&9Up)%mbQ8_O(B$ndk@LiDX8>&kut^9=Z8`5P-0=Q-w=pkf6Vj z_5g-VY3oNBTpSFI9c;`F;!oFp$@%BT)Wu-yhxC~jeK%tO*U|#0biy9R^A`5G(h)dc z>vK9~sscS&0*0>rnHVKD#AyMlAff))9%Q+MeRvPd8F5{~2gqC6j8(CNgh)I}ydrFU z7&2q=?+RQI3WAf9C~0SHTqrRr!l{JB$rG~Yq|Yl*G%OxTepaX)8;C$L?fBZ%eim-D zWn_cHPTmvzC_{$qb)iipQA9W|nlwwEK_eE2dEM7`D!QbJQ(~!Dbz5tsOD29o)O*0= zFAid+T{xL7TFPBW8f_rD7^_26CxU7x!o0UD>9B1?C1h*)l!|xtk<+26=bA^2y_o%7 zE))L87oA+^0miKACUNzAa|I1W+Eo!2XVGQTAMOd=wS`oX2AYGL{}A0qDvp5|0R>Cb zpNOe{eK!6EW9fIW{Hgo-2V?2qL6fBn+GSQi<^xeMJLrjoDlx=_gmM`wKhTB>iA2Gu z|H}IgjWl|CtB9GRQ@@^m@OB}74+x7Z4a4=g#(FT${HjH3NLGc!(*UAwXST6+fYzCZ zrrybnTS*-1OB^%B#+kCn#VFy*95RlrCCQ00GfYIXHQ-jW+^7cGIh7DUho82^q?|K> zLZ-TMU-iQoB*dArm}rdVan0tlx?yNi(Cz~-GJNo5=6;H7H?T_9Ky%}kV~mL6ldQZW58sgI4GoX_Fmn7K*|{jrd!Rz?=kpN1!dSC6g+%K>@JMo$qc%vyvRe{o3deh?Bi6{(N*o}D$rarpd#;u) zs@!0bwpL-IvZGJ_pwB%c$5PS`bg4G6q!iVaE@J%(O+=xUm;W`~x)jnX)fd zk~>yC>YB2&fa;(t_E%e#yP*0CbRC|;1nYxH!h(X9%In1XDeCqObs zv)lUP1VUfYE~?at;7OtUN7*?xTTPj)LNN45$0{j6(`GedBKg7VKA?09$mI^CqvwN~Lw=tC*Wi=~kO}KaKmC6*8rADu;`51={ zkM#47+GelzcD_f_pP?NXSAHcqrcv{Zrkl>;p;|I2-&-k~m!(^Wuh`?5bsj%@_nuX& zjG9v^exbY^7QV3`#cTP_P=EebnR|QQxpWvdXmk>Gy&$;~U(Li!XT~dCMdmxkY6j{u zPkj^%sxEz@>E2}OGc#jGWi+-Fgl_&qzFMMks za#Ji+RQDG=7IE<oAqjqUVq?nuJxx@uML)Q0Tr_(UN$JifTCl+`on6)mI z72+1gInY5db9leyOVCq}2G zA(d;I`#YqJSnAZ}C~+Cya1=D4Cr31lf4?f0ai&y*#a<@HQ>BfhtlMp8(c(>iKOwKs z$F~^{O8OV`N4aB;y8JL2gk~$Nmxdtf(b;?|z6IfZNu4(hbnx3v1w81RwRVuSyl)Pz z|K;i=Fe)**sC;3|`4fY^xmHNgOW_eu?gTON<#~{p*apvM&2xjrTT`(>n==Ne zZOT&z*{@&CGE>A0OFJnv%IiXS7V%hQ<`i5E=z#t1>3pC1;WRGV;mLBprnfi?w$w1L z^mZFBDc&CO-?}ujn1njOkaI^XevP_)x2t|dE9%%7E$Dco1I~$zx-1wXNU&8{3Y^}P zAeb?(jb7&A-!Q^=>-%v}q97oQPLwc1HU37!>J1pWURAO99k7``Cr zA;#%oMvY^&%2TWOC&2lz9dpEat>3xU@E+&Ll_1B6E}2Hx=dm|w4p)T=FlDHk7RT|Z zc#{L!o5;OiLGVu>f!4|{DS}|80#$OG#oFvpeQ*x=V?)y&Wa+RbHF|%)u=^vUj zb`;v77@&Tc+@CaQ{<`A(H~J#Kv(P_g&VPP`e@~u4N^^W=Hfk*kp5OE~zr%i1yyz{@ z{jD_DsO%-v;GnZ&YwSjMul86-egEDkkxQdV#mgLTScb)EGL0ndE+&QZ9VQ3-czP9b#=u+!rbrFSfMbUF?=e{IL+oQIU5cw(DSz-m} zbF>!W9YMv)hyA|O_T9-ODJK&j`oSNZ-)#z=>{c8 z>(_$ct8)bo>Jci9>%yDp2kWXQz=5|t3@njuL_aD$L?i%?NNE+#jHDPri(y2c*RT|I zTyTwtxmX@0nNIehh=QWA`F;!#lP$H_=J_KOnvedH(g%kGSX_u7xQ3F8`OT=+j{V$Y zMg4;98EQbe!q)4D%3^Hx&2M=2vlp&N^p)fb-likPReBsPKgq*#9JA5UN1?Gg4?ckwL|a^>HCl*Za_%4c2b+y$F1G5a~~FC8v_r1BnaTD;rg`}<+=TD zVVEUbCHSgnvP${#m*)MDKA#?~1&2|p?%E=;<)f<|d4Tdn15LuV%VGG0Z3oS>S?A&O zi1s>YrB1GC=Brn#^%bUwMY_PS%VU@UzN$X_owQu`;?oXf&4$~SQmY52W z==YEcR!vg;PFCe`C3b-q%}1eOrY{CxpAkUCSo3(*9%0ymHGXyHCxcI!wvqd+=#R6u z)C3J27qQx#x9!~&gp%xKeW6}z%EZ8R--^W^4SMPZ%O9AF*x?DPmOnmx#BB`%J(;80 zgBXB?vf0q@PtGT@sjrAT76DEEZmqrEUy>9{2e*TjbF^fCpvnz`~GHi7aya zy#MmkfEmA#5to#^M`$h*w6rgoaR^M!XVinMNXi`m%&kPq7Qv@`*s)(J!%{d8#-+xg~2o^!^}eAPk-;X z)!WihjYFYRp);np8`v$e7kIfMFzPO+CcVz2C6nMZ$;Y=j#mCnLx}SEN?+=z0<@>!k ztYFbA_w(v%(Bp)XWTPg)IFPQFhefc4`C9PDKr**hNk;xMK%0yYtg>UwNP)IvHyb0# zvT1F_RuWI@o|rWS#)ATNo*$;ttCwbWp)4{}+qYahs^`e;R*Sc^@LP< zRy=HQtEs$~D&Q)uw)@FTovbYKp)2JS<#HC7J*fQIt60+V1;YV&T-`mLi@Zr@iY-NR zGn>tFWwp91RHb->ypeHt^EuWn5K<}TcXa0v^@Hy|V(+Bs+(kliVQ?)D_3*MB4$!;c zN`Y=R&f@J%t9H6v_TF_bwJ=N=cU+@YtqJK@-%I9i;?}l@hIdt6_nT<7f z30BqGfq1a~h5r){f@VBcWf)AQo2FGN?h|z%{oXL^4^8mpJgMpl6{~#-1hi(!YjW~L zNEH#6g_jM99&Vs*7z-H?jzB6eGhFR~9finV#jgVlk&Z}| zd$Y_@t*bK^=zF)!6imF`!2bJ0cdxs?@`XQosUfR!q@tkf%KNA5`q#AjH?QmeP<991 z+kecWniBuu5e&VV*{!$dhlcvu{Ww0L#9(7K2Eds`l0^i;V_kwo=XoOIt0`>uyL_x5&r4~(bdr!VSoO*B{wru8fzhkmj>y^cTZ&5BCHZkWc z5lqSU!jwcWY-5<{{19j`kCi=enttIm=8~O6#0$Y9HuC)6= z+qMx7Dn*M>TV}O-wEK74h2WOSV-Al&+GC1{Z& z|6TQ77U1C9kxG;%vb6?3a5k5#yo;)NMyqfUUFa^Wd>ny2aHn|p;XRNm*ydVot+s8B zP4#${JejP%jaLPx0eE=SIzKexZNXD(T`fPy#_!d zBkd#({D6t$I8>zqq|jcphhW7uEouw5f`0V~}b!i405~{hFk8WG!1TbcaL* zukqGv7kS3Ix)F)`46ef-mX{cC#t{P$Y-e}SLB6`Voha+0>rCT9O4z!b&n zNUwnkg3Scui8Br#+tZL^+F;$2YW;(zB6SD@gC;CYp>s-yVbc-HbR^$M^BKiyI6K&6 zVaD){Tk)jq5lF2THBtl9$xK$>^RK2?$9FL~@2u%nK{yfOlWuxxMk-Zev}mm42N!4~ zyO(K@HhiRMNfU6)vvI0uq?%~7%KFFfeS!Ul$#G{gHE4Mbm@+{wic_Q`S%^rm0v zZi-jeDtV-a`B^kf*y`cK@F3@z`Px6iYgnA3+zcPm<-B3Q>}E@N0w-@wBUY8v&L@3z` zrf?795>hka8ZA6$QY1NbtBxDsFB1K(8H1m(8L3o+d;r4P?1i%K!ck0uGepx-`kdpXSvb^W6N3%6o?b2~!;izj> z4x2Ok=lb=NHh`$q*)1S}!<2&*;XG_uIqojBu>O&?R@8;ZFr z9}2BN?PMqMPIhehid{H~(bxr5uf06>bKH}mvyR#&Bu%qn9l!;CX8wrL9|aq`Scouh z4n-0D{pZadTd53230|@X>|U9Ai-7kX!?9V1@8gPs%{c)Mqa`*oti~B|)%SW?}B93vIE6sl9d)8&9(P9^JzM-MDPn(eww_&Cm_W zIFqrknP1uFy#l=1QXhLX4iD0X-7lRiX+U)2;VZlW%;KYy-$U@O{Bv`)ti8 z(+-B!4|6t$tHljuFU_ZIdW&Z;p&=jkE3#J+WjL3av!Wvfbi7>?x!s#7V=X1dt|tUx zdFki*zG*P$q%U??s_Rw^;A#%Vsp?noaoaI|i6=*{@I)|_Td+~HbuY_+eKWqu z7x5@lzT8ShlN%|mU3$%%>4*zFHgfk zrbXky@Z2wsuwh$cvqC8+{EAo>$GSX_5rgu?a^9K^d=IW<#&YZn^uZyNf9tM`wx&YC zTnfW^tgM`y_ESjoyb`O(=cpMN>k{FV4|Wy9^EAHUEERm6C(wH)j>gSh(RL$H&7Nsa zA_SeqQsAmn8(+cfwrrZ#l*YWlkS@x4k}j)QE)X#hIwL5+)D)QHRmWhfVb%mXA_wN~ z+McZv^UQu9NE^_4mcqV7=H~^TpSL@AE1k8+)G@BU}m%qGw5M&|o{N;Q}?KR0e(W z=ujv^p!Z~cJ7mY2^l>1C2vgJcI5SW2;Kv}HB9%JjORWAkQN#Pt7^vt}SmxmL<=PD@ ztxS%o$DOmqv7a>(Nmo=7;&rp$K6K5q69ccrhVgupER192);Ze&i|u0vXrA8)r*qDa zr;O6dgEue~42$GbOyGU@;GZ{{9vQm!`ky;XNZv?Rj2flWzg0hcv6uTX1Bcx)Q13{z z?N#=*QRS%mCh;Z~E3|!Djio|?ykOG+Qug!hQvq|J#jD7-lFe(yHv;XY^N%GJr0t(d z*m;kB{Q$=zrFP4)OL{BnDjo8Q2IJ?Pe-|=?*>%>#w)coI9E=cpAza#yhh8`+cTkrK z`48)%?st3cE}*a$`%|aquLbJg?ezRdB;enXU6u5QRt{)HnXKC!AsFWg#3Q{8P`&`D z3en^SeQodnoIG= z)PLzHF2&QD_jkv;^SWXek(k2CNY5?Ao_X$6GzevLIkizjhcJLTsBAWyo3+GIL|NF3 zoQf$wnd^_Z7xvm2uVK!q|5Z`WT}!PBO$a+vW_KT8a)}M3%P#g2FxM zOC_W&@Rw9Ff%ecKf0UmvKx?Rt?h`(Z$psdAa^9ll%>&Q&#Cj-PyQ#vn*3FR2LJp-F zTjWm*S)Yz3CT+b*97=)f>ts;gWn_`I5})sgfEqV>IoV*&!H>uy&?rX($QC~f(}esQ z{jLa3RA{^4Hk)nS!WW5G-f3hOvv1V*;r#4PF0E-KibdP5y}Fn~f-aif?zr%E6$(G? z6zws=b1gFgM3DC;lP9ml_dh~Qi|p!`9MIhLl`%p;i%xBUVcHabuXjk5nJm~AkX~f* zVQUK1_e3Hg;wKR9yxGBaiNP39iCpQms3usBPbjbi0`8D+iSoKG$;;Z=7V;!%!q7dK z9+J4$FhcO8i`!5G{(>|XzgFu_`S!r z?EWRofJl}~EAbBxa)kee+FM@MamL!n_TL>>#k@1uqr|*X`rHtv334@;3Mepke zU$NCD^l+VuqYC~<&S!*=cibQWML~%pk-f}@DgMpZ+ibg>ksOdN1HK?^a*!4(3rl+~ zxlybDzhHAnGSSsaeI$lgKM|31>qM7hS8N@v5yCO*+3*37YOQl7qT^n9(Cl8j4-55- z`9@7eTIt4Rq1>{#E?GlgUmAX<(L&i~pmqskT_Mo-oKg1q`k+P}ek)&-iD5t$XK`C& zj9{|M=PQL@P~)lW?PbYiX5HQqvyi;qwy*TllM}8aPWa@D%%; zMPtTA!%VB_IA&ZCXA4MRno%Y>_03TjN0-N(A$D|3+eUQNVOgXZ72*3Lbz`nWh)yIrm(yqPyDU(8%j5zCv zqvD?jw*HA9;MeeH^8(k2L&3A^_cH5%fOVrLAAqAJkpRH}xwF|y%5x8bG6wIfJq}j8pd~iNkN9Y1 zxgveDqmF|_m%b*(ly;Akrz7ztJ#=?EN`FEDD+prAF9t2cV4Gh-0^l!`Ve#oI~Sg5hrO8 z%l>E=OeZI3mDmI7i*|Y}mX&KDAoE^=w7@_2kcikpd$uch(8)VwK0@gdf_~jD&QO`nL~qgU3~C~`194t<`4|P`ice;5&Wq6EQXE$hJxt& zhl%AO#2WGlV>m14+aIK{CA)sN>_dlsE{1rWj{D12y{BsHEe>853K;E_UAj0jp zv0t7;ilXmPo`dhfJjHBC$@%dOFXsDq@{zDNT1*(EJzI=xhBk{BQN5Y?pTu#@q-#js zz(W~XJ6Nw@oIf>u^YMLqPux!nHKb#O$vx;$1E4rQ|I*V7W<{uZT?*L6RmEOISWsD^ z6dABPVd7%wqQfcvUQV}p#}mg!B$lXX++JlAcLrT>(gpo#CHsiE)7mN_=%--+SC&YZ zl7bGtD+}6fnH4AUcze1dlh6Gt%^YcK-W2gmEQ_Cwzq8?F-|v%1Y0NcikdTVlJD>!n z41e1+bwAEEBrMyf}HSRy`8*bnu|9wgsw|Nvk z>Dp$Uv(BsH1Q}~8dt9mFj_Lgr?xqOX`#|5BZa(dy%n-cPyITDT*)>D=OT95ecORIS zZ=*?0ExgO;(PCYNTVVQyw;d&W@{r6xY`~U;@w?b9+n^ z6M(1YC%9<`RkVKI_)rYjL#gszlT)3qZ`q;`*J9DBZ_PnPsI~-We2-z~9&WKAKh5(3 zBPqw8KZT7m#xC=qNH;chT{};Y@h04y{=Z*7RE;-#fQ+pOLu80GmK*Uq2%pl!L;Uf2uabMGY zPS%WeID_25BUC9W1n`OeY#b2dU41)oP~GT#!R)XyrZ(PjcAi zPPE3iYa32@FAqk|khL6H~>6UE4}jk=dfyS^{XKdEL2E z+;`*|C{zW(&>P!Q$T-=aRSeDOF;_6$h_Sq8bsZNlP`ht!dUj*UGK?vG;3Ude+0 zGS&#+0mjuh#wn+%O#61IhhX@|LKc3*rQ%uX{AHxtn4Neb7j8IiVWi_Ai-k5rt42R5 z3X6KG5F>KNEug-KOhq8pCqSq?br3$%h-DWiH6KyxXd+io1EPV(0MVoVlgp@nocjGA zb<@|D%XSaYi3@;gr~hz@|5`WwO-}Kj-L4al9p^rSIF!d+s+MDdnbMNEvB}Z|Jh_So zQH71YGbH$t$fN+je+GO)_$Hm%2OIR2Mjb4v>%COJ;+Ur2pBx zrqsZ5wWEmY=I|vwA7FB*F(W@~uLlG}sDP)!?Q3akAbAFywjE2iU@wD|{Cb`6-n#`N zoCO(P{BF{Fy_^dmiWpA1p8kLY3c7j*lIUL0_u6-wcNkJsssw!-q(k&z5t|~Xr{bz2 zGvi&Z!-HoPo2tR>oSYyqNY$h>DqDbVn`+`V-JtVZb;vYqA+!U|{g0LA00aBgTfFx`bJunnhgL0isidL8+|yRz z?%Bwqt=+{u+9smt^*i9o0c|rDvy_26QlR4xI9(+y+za8^EPkoa=eqX;=q^bN2qu~d zo0bDyPE3RG9Ri}`t~hc8B#IVg3+$CB?I*$AG?+FTLVUDiCLYNKt=Fb)b>qjMHh?%5 zi$&ZuMqnAAx_d#gSK`{Y&w}bwugD$*n^I2iQ`o#pw&TFH2k$=l_~mVh6KH!@lYCJ* zNHHeBNQG}}Ij05C*^y+|uzkqMc)zZcHPXE$bFCuv>HDaShPUo*%>0n#wHL0A;65v@bYp zE5nu?9`5@yV)S(rB2>#Kwnuf==OrYJsm-0wEbP51Bi%@Z@PQOw>u6v@)b`5;~L=R$mHFBRODbpVfVfNPbY4tr)2-k^+9E^_>e zJ-+J}w|w$0W~R#@RjljF1(eRTGG4kc<{WIg2!DW2@#0l>$F#2g0nUcOeL<9L>BO(< zq2kq;Ebb5SC&AXgf~Q-2sL2=LJm#TL3*MjuD}yRObC1e<-tflFc5o#Z+z_1?(uzoa z0AH~oRbh_Is&+Q{emMGrOgm44XpUEITjl#Vz?Xap%m?F9DwbmN0b-Vw-C`>B`l9@rnre;A5VT(YN#`mIl1dfW5b2IdKEM70N%asBNr8|Q?90EA6n2j|2ua0s+^Y{#-7EK*fshpZ zBAb?4q{~G0VRBot)^8+rS!uF}Kj6HG0bJ;N<9)k39}+-%8%AcZC^w;t9;{6q*K*}9 zP{weP9xGKX5;ikug9nXf_;b`o=MvVrm~Tw0Pz@-r+RGR^lJZS!XvG5QMLeV_d|>Me zo9y5*l30KbXSrmo?PWYmIF#*VopRQh3|)ivZ3zN1!_w#c!SpH5azwj>#GChu3+1GhK~Ig8U&{!$Wvn7I zSMc-2IYBvKi(Du#MY{2DU6TW7?l^nxO0Yh>~@x1!D@cjx0 zfncpf=M#?^Hau0r`wQ!W+z+uQfWxaP$q|=#19rccH8h05J{(Ah0C?&B)%2xm4O7Kcg_DdM$1a;4wRS zf{$$rKh6ZSrrgwY)x$4Mv?W2l2V8oWYlxIBBr}-B=~~kKU|H-glPILHQF1`om#fv= z_0G3(maFGkX-<$3R@$AyjjVZTQ(UY$Q%;B=oS14W@{d3cCaFGN^&EA|4m}*{nh(wp+2^(tN|R&flei^ z2!}0khJ7;K5*4JVIAu?yt{7bE`q~X)Y;J$1BabbUOsM`yqnQPn2~YoQe7b$3fw>Oo z5~UcFmEfDwVDJ-9O@0Z=dKnzB57}xl{F1BKGfhe_?cOC*g#1Nsy2Qzn2J9@|# zQ4TSa8{!|NhzIq_28nfnVgjFoZWV8cf-klD8AmX1J=%Vj>D&m2MQ*|TeEJm?D$5|h z^vV1GA?+QbEA6(e(Tbf^Y}>Y-72CFLRg$XMwr$&XQn6F9ZRh6Q`+R4keeIlm?`>^8 zf7ZXz)|$^8qxU{~kAvL25;XNLn=!*!UKZYYOuF^-(`*o=4I6h?`t?KV_YrvMEcmgF zHmbyu1O(n}g1m-TL8gH0jF>F5&f%Wxh(*(BM%PKq+(W03a?RL}$1N#n&M%g1+#FXzhf z`B|72!Z00SRT5QM>6BlbShlZ~Rbp+3 zHmgF4G=#6&lvb+Rv|k9T>9{TVSX5TMDr0~CNli~r9sO4M`Z{?z(R%ooHu(DU&k{s9Y*r-smJ(3V3v86GUZz-e&A z9wR|-c(VYGa45{F(V*L#osQ7aZ)jV$b&iArgnHiz^KCQsP09|a>XYfRqb1I-}I1j%+ie@3rxF}tYyAEn%PbA6Coe%B3ttar5AYBKdolVZ1dE$4ZrX{?Ux6>}#cf@xiSELPF zYRUOL^8?&yuEDhgT__VG3&6RRR*c1RdD5lVGaFyeq_;8Yt|ERI5v7h;=lyO|X{XF% zW;Gx05}Cc2jKZm#YYx|iPTVNQARW4TFt&eHXW0$z`avU7&d_A(CN6HqsIo zV0mnvi({Nosj}-|A&B&Z7R=lBm-{4_i!1Dh2^#BCK{=Id#b7)*vEX{uU=+wNq zko@JL>p3w#`9qF6;{Y?05>)6~4X&Kky_ljn)bP!^2>!OVcg5ks2owYXkWI_&R&zAM zvQfwIL;+jz+%+;%or;%~5J@afLp1dS{c}@Q)xeDj=%5oiY9DuUm=n0tyM?DiGRPv< zuv}<@ldl>ZbK2yc$*illh*@|vqKs0Soz(@uatc$Ur^Z_r(y&++NmSR0q+7&EOZpQZ zr8$F3Ixc?3Vo@%KPI!R}DU8c4!yzamAn=6R+N7WX(Wih8`IA7Ql^YvBsbsnTAtcCp zMc&(*LR`8_nhM!WVw{N*T7o3{d-Pn@eAZND*ko{BFe=)#=Rz#6x4M}n0UyD3wT-2v z;h5LSg(A2BQr%zyHSUAM;pL5teXaes6T4BOdjx?;{~xXON_NB*?g{;~J@gZ2&I zmrm6=^(in=ZwD1wDG8Wf37QlE*Ab^Xe|hx1J?s_!@(f-7kO&{GG_@`)3 zWt5-II;9r~5djuA%ydLT>y`cb==%o6VVHzw%G$X^Tx!X9N3YG1lQCPHWTyY2f?9?i z{RLfa3=$umgL)<%mv_yc!J^3F71p7>fNj<4+XlEI8w%BAP?-+K_wEU-aWp_Btp-c`C&U5Wvt5h8caAM> z_jqK#94CWTMyW$3k1T{X!=F*=gKgfw5u1XkMyp6`=?U%mE6mS`fRQ1yqICTl$z9={ z_HrqD9ltQbn8JKaAqxQ-nf@|dYydzgPJq3rd3h~SfM-N;!EUP@U1vg zi+>+P26ZBrLVNNUT@KQ;A9B)AU37Io2i%)i-&;&=#QjB&AEjsXX25E zK}3tZB+3r_DjlG$u!LuvIOUgA3Jzy_NoC5y!uijZo`Z(O)XYbJ{b02bHh$p53uR32z^W|COh_f&V&N9K46KET7k^_{+j)1;Muw-)SC*M!CA*<%B>}8OLhD4`%Qba*z>jkh8?8M+{Ya zf2lP``}8W-aHa*?i+3SO$pc9$9v-DJ@M}mUQ0IYk}`O0iEvR_OscbU z?)`MEY)=pGlfh+ajTw;&zF;Popr&k64)UWSCz738^z+tV5PLJz7So3P5KHsKv zyEl){`8==Xp}P8zt{vp#5!;QaCUGgESiRQyW=J!~x2szXZ)O_T#$mi@o(Oqs;3c^n zI!C;6I-)VXW;3PST94l$QvqTl^bd5L`w9kne<*)UZ5~p-7%>1< z@x+pvua9_9`(4r%26w{gTvBb2{KEC}+^xqO{qqD&>_c?Du&b1}HnZ*0o@cvwazXaZ zA{zVDphLy0Z}`Y|A**D2V+R=_T%!skM%~U#D>K}sdPS2j0CIV*EZP zwqxm|PSNILjf4+>HMGb&-mA^o8Z7PW+}jc>ZxZqJjjvNWktmOW%bvuWh-`{NHZqiO@QV*O5+}=;sR}8sbWOIf(_2*SlNHo z=711ya5*WvFT0d(1nTqaTt-*Wy6}L3 zYK!@xm*v2ys`eY|kkGFPQFU7yu}X!&NHNwX48(N<8o_RbpWKlqwv{V=IPTpCehX&- z$g-6yho1V`N)*CxekcdX-amTYCp;IooA{=O#=q6tfQNA6GD^a4NpViIw2}_GAA=oL(QKTwBYn!tfH* z_RK9j)9U0UqqI{omrAR%_PfmLGJd&v{5d0C)1#an+yK>yiHrBisQRGqyDxCMX-e)- zd_{&;%o!O-4EFrlWoZ$&Ew23dBD-EoBkI)%n`P_ufb${Ow%qX84Sx_Z_8l>Vpa@;| zzVa`h_5(t*Mau@5A#t2r>Q+bo(=tQZGy4psApZHvN0sirbQrz@{CQyf*&52-!$on) z5QeaBizzmr(kU+pjz);^M zQc}O^4h9ORM<`mG-tI zozABP*M+Km^dAEBO@-5Zm+1ybLuuY4n`TohX8hB9UfDjIZ(q>AJBR>nm(DkYxMvFS z?yz_?aA&eYqDn*g!I&@zWuB6qgs@;`o{F7@FmdG!h3k^QX|%lMrcZ4`y#7O&YcOwx z!DJfm*6-t2sHl1><%FotPaIkD*9C#a&=SV-gBqxM_4ZZY%CB8u4qmkdCY+OCV&l@us0YtrA}gX5O-jyA1U)2Ry@#y7R1NMv)?)*B*fY zyXh6^)s*bJ8&fE9r$h}}*+mw3Y7xJ4gJoq&ghds^^PL!ls(Z4ZmoGIs6%u;@fn?c`8o9!|FI2<9zQS)8Yt7qc zehpAyBqXN2oR?nA(_R>P+FRk;T}$k!pZ8Yn7Bo9;+$*v0Bk~p!9;)9I7$S(m!EC5Nfr*LI5s@aN11)%kfbUjB8!~=9Uaq zq(Z^$gS)_LGzLYlal&CsxY1(n4P8g0y%HIz$X{cx=t^8jdg{bJhej6WoE zffRt~PGRq!sonKhqPiDA#-Xd78DD8KH(wTITIRW(Pzkh+0_Q`XCp(J3N!o3lw$PYX z?9h8Y+UtK|ZX``zPf@5}&OB`J zdL6*^f#ylmaWt$Dcp_F#!14OJKTI1o6Y?G~S^r0sb3vEoPAVYMX?gXG#DdPNNK@S% z-ir;|b)whXR5*jZvQ6EKu{Z{dbgqo5yeGUm+vK@!c`XmY(hY#IZ{)`K$QKQAXo)^q z;nlmb;B*}CR8zS=(iM{Et-|B|uAM;R6vd-?JTLW>QS(CCe7j`O!U=2(86_NWgQYF_ zXk`zf7hL?4`ORm=y*0KDRCkQ~$b$dI1N9&u7YOYge(J@BzNBBahhUx?@^N-kR3{B2 z*BNIM=li3n;JSD*B8Y-vy90r9157(qp1v1O&F=bT5#2bLDkr=ie8aAWIr$N*?Qbe; ze#{0Y2pMrN2V`D~i^+OOCKh;V2x~4F*BC)~AE6lR8U27g8P^`mNxL5GH_UZn%w|63 zXLVJsj#TFw5RP=WIZZI@ZT**#J9mS05P!K(BQ_w5=YWlSPv z_TMIhAk%AwNdVX~OIYa=xxmqcKL)PMJ=UHv({L={WP%dKpsK|KM{g|i>n%DYvG|98 zBW@l|syTyx62mTV+)4-qZd2^ zAuWdI5-wxxQ_K6HuWo>o&C~Oeb zDj*k?DCGNlko%|dB?CLsn-$ZlDgK@)@Q3Wf=T_8@xcBaq!RT7F&x5MZ8f3jecrvH# zkWh1&e4Vhtv$FIMgp1&<7C=0;bf^aR6ewUV~{XeON(kS=EI@26PI0<4D+i)UPnU&gaT3>7Y$ zg<%dLD@&$~0$>=b6oNnQM#7wX(HGy+Y8LA(8ytniPUmWqJ?ZOP-Ne+XF&C+V8q*9^ z3|ng?1KSIsPfc)}B)@x+8uvlZIzgdv8PFcuPUh(bzo&kCG^3L-JGl1=U9?oOgHXqt z_jNcwhGQi6D6)dRH5s)fhnZB=3PB&0U1aJ)dC{z3;2JUQoFuUco^e$!ztbHt6>AJs zurX0ytI@O-k$2V4k13uvb4h=ZZsz228P#FDnLJchp?HGs$cp`~Md6F5`zUcFgVMYz zm;tZXOXOR)%KI2swYoc~R`biJ{s7wF0kPSkMtONJ={U0^z%OU2{3kZY6`1#B4hzne zu3#z5rG6J?QtQ)X$2>36l}u%XL2EC5*9-A7U~3Kj$3jrzFs)B-y6`2y`QiJjBD-0U13Z1EWO#>?EOoB=|Sud%R7; zjkh~KXfr_dFN83P=QJJubVi3WOlfU6IHD8#>O_Oub_}#t+_xP+CjP7<8GV788}}>E z)^OY_G<0z3)=>t7KKK1<{8X8q0UPa(s`?HZGDE)T=i^UeOCCb2_)smG32l(8fq41n zpf>$HvpyN49>C8xB)GhRj-2BK8U5g#(dUl-@9!2YW6aWDQSjnf!pYhbcQ4+qnXi+< z#!%hQcLdtnT4o2@Z_?CG@Ugw77x)~%!pT;$jNaf^9*A=m^E~g{a*}H3q zO*gdB_4aqm0ZW+Zn;5h#30sj(s{N*aEYGCbR;`DcpBT@NpR*WBu z4m)HH_;;c(C}5D4@d+)tD8Is5K&c1=9nBN5gCjLawK!e(tR-KoxBR~2JORB?3{)6N zVk<%&*4!?q+L?7>9v)U-@_%b_R~3Ly2UB03h;LH)^-~h@v_x~c=_-V<*wayc(_q;) zP+@5wndUX1qi=vS0bd@yJk9up9?`*j^Y?`2nJK)KCahg)=zmA z)|B~;0OLT5>3eX#ueiu?$8Nk?Evo0b-K~Trw?kT+x@Yy|do01AFES{R<%>7R{DE!Q z(zp@q3CSF4n8CP3=9SV#RKndxOPiGIEwJ$L%tfYu`;7l%u5}J0<*{Oi& zA#5Vlnd8~#ZNQf!`fHVw5W;s!)d(lmq9XMifd94+Ro>k1*^ptwjPs-XUU|9X33(1^ z@mO;B0=(tE!nHQr5i!K3NX$K27HgiNsz~zX`m2Q8SWi#bX{EilOhc`(XjrHCs6xtw zx!~BKZ$T^61Pv9%fKsceMru}JY7Do5nlovg@RLt;e9Z zu?u7pam*wiH61KMd^A+>ie(#PmiZxSw|~;JeE zN&UYI7^M|e{(CZsRMl}pR>AO&wJ( zXB4HBq*-YcyRAuzscl-$jAU%PUX0;KSGaXQDyEuQ-X6$)zVT z>W)leO=8h~9@yz4^q!|)W)V!G)m_<#S;l@Y`6^D*bUIBJDHHpMA&$=S+o|DTx(Hp#5;wR#6_@} z35!V&-zRuT$%zKAt8Jlt#pb2fQHT~OuM>+EF2-|(nT~a&xj8Cs?hL`Xg^4Q9sBI8K zs~#byGZnG&R+&h{v~k|<4ub*#0rbHJmcO)xL2x*g{@rvXaQ8cG-ix{WO#&L>$1+~LsGA8moV zvyQ7L>Mjop>NapmY!7ko`_16QDr^cOpmwY1)l40C3k!j}WP8D?he*plKCoMK>9R~7 z9yM1g*ZDP9q7*|iL>&->K`I>|Fyhg@Tk+5)i8B zgFsmXs6o|KbGnEoU(AJyp%mRV*S8;jXkVUG$?OsMoh^K=&VZ&l*p&JRZ1}wWC!O)k zG}Mp#>`{lTdBB;^j7BepXPjmkY4o8m%r54G%K}kt@a(#sE`GBdl05&CUi42ixOLT^`7+4K)A5^3`7RkKdHBn;zwOuYOP~HK&C~06r z$gfK?LOml!90{ zP0;mhU?u9rIG>pu49}xt)0(i4QTt?QjAR64Ksq5 z3DRHara$%rLUZ9fIq*nbNMtinsywNA+eQ#@%L{Qv(tbHsijA`G2k*F&EAoofp0(&uoD7tq5fcB6+l4x z6Hg^NeO*2wU(Y`(`gdt8|NnkH{S$gdB5Y@EZDQnXVP~sqVdC~*DiKwHlCl~G@8b+J z0&40`2#Dky3mX+utcDOZBnJ=_{87F~A2aXD2F4`*2*Lo)y-@qE#K$?tin^9@Mb%?NqQvj(%@HbQ?s z6rH!G5S!kEgH1JpmV^9tYJ3&Uf=-f|Zj#i3PAVV3OeiCf2C#6psN!JU7X%B+OnJzG z4nkJTbYBUr>1oSS=cou)6r&g`3)*OW(vp;cH@{N}d{NJyUuwZ?^6MynG6bs> z-rvuSRrW*-%$m0rprilphqw@IN`&lbsGbg4Z?-EyQxGWL_=|8YRW==z`gdEHj%5-u z`Ar@rFRA<~ZcCZY5->9*F%H9wabxnLeV3(i0BgY?2~I@Rnny9E&~#uIYVY}!_wcMf zO=l{5#~mu%nQ&f|Mb@GA5o!x=Bu^68%m}KEXt^qG^3;>q76FY#aH(4KyRYQY0pkou z>jT;LOL!&B^p4ihQ5~vVhoYYerXn&BO$FCww!oLj_E@8v5{(vHB@D_ z!h>`yT!>1D;`IW@Ms@NIa57XUTS^|7tYs1erH1_QCFZ?|s5Y|=`NE>)ZOYE${`qy) z5cCqr$_~;GxDdB3u9U09GkelJcv1y-qwx-y^l?X>h_kzOMD~`Gv1Ow^#DF~M=_J-y z6Hqlv(Hx%SsmzqzJxAjjzv`>=R06f-ygQ=0UY=-CkBI%vj3t3#W{Yrk@lmFZCfv6g z>!7VAe>Hy;=<&>$A0`#&eYUGuP4L3o{9D%>KX=NzVI0zF!Mu#KaS-wQX!-hdn^dY| zI~%Wn+0y3|G!~8UUjq}=hE91=uARU$9ya`2e&(^)h%XL-uekk#KL5 zJ_p$Zlgz|0vfoqMKo?=H9pH=`=@n0A2cjVae}>dosQU?XcLzN_CpxRVH1MbSPU(|E zz*m|U4=%5;=3>_2W(V4SW{ud(V0oe58|>W=;`cv*PlVae_`6S{_in%^{_JP+-6!$8 zczNC*%UL@uW*?WvyM@L%wXhQ0D*3Y#Rh%noSr$sV1`1ne%E2Qw#bi37kgQff`TscL#oVZ)y2oMn;)R$@(kTP(|1jc92PULjI&Vp&Cm zbu&}kpF&{4%5elso!*=##Cg|%RY7@fC`&b2`He-^Yc92McUR3EswDh7PZOvGNyG|v zQHH(41u=H7$vcoA=ccJ}GoDPIR zBkzVih}4DJwnpK?t`>6P2}Lilfm?j>QqumB(Z+3hd@(6KA8_B*tlvC&0HeEtEZc0o za?Hjs({@~&PCjRoy9NtUUc99&%e-t>qlGEaE>(LwP zl?Bw%^DTBs6ApkY;fmi#h_~j z6M8XzAhe#qY*sJZ?MV2OH%_l=dH~g8lhZ&nBo@xa-|yhu_l;W7FN4#i@Be&b{kv}a zKZxY`D|=VP*~0q&jQFZnPG7ORI>T+Vi6(>9T(au|hC&u5fGGQ&7!gJw@_~WKv!Z1{ znvg{m=}KEwLAox0P}U<+E$zlP>6bW6AuF@Hd%@Ong2B`L#2qrMiQjP#y?)R(<5gtM zRO@Ubkq-M5MCPNe*SXJwhFbN#vI}8(79bp5(T#&{@BO!zm+pXhE%KFH7 z5ka~k>=lPp{GIBPo`X@Ute`3zMZCw^bBz2F7iNaQdHiUQqE=yyJv^ysa8LT^}n zgl&K~(J#3jB|>j3xrQC)mU+oNDXy$p2Mq#e=beGORB@$Ur8(ftQjgt^*ph@vZz7YV zF$geVV$&HKe55N;a9JpG@d|0x9AXo+`uM~?>BTHI(;Mw$Sq%%~A7eE#oYi!e`xzQY zAw@J^bOssBv#r)dHmK05wF7+F(?#P&I8u7##|OVNRhCrU#+Ja6hsjg38`)#mvm461_F_op47=Y_MTe3UUBUVk>oEo+nWeYHItT ziY7(Y*cJg#l8L~z)S`nOlQg(K9fo_PaRPaKQN*@q5S?lecxXrWn|atuK|M)8=8F?= zF>?-!vCNX39>PXR=Pl=2!{N(P;VQ|`*KPKJs zMy2aE7cX=Q^|<7-pckJjZcyxpDu!l-7&GfD^E?>S9r{*Ql;QBQxTpsM5*f`@NV#0k z56`TJq_Ow0wP9&r)UW6^s9dkr@U9tJM^Xv%^&l#Nc znz?w>MNIF)7NNpFCwnU5;=6`99Db4OAG*0?Y!*^*OUnk>RG>J_Y1|6}B-1!-ZV z<&N7sok!|eMw<0liy>Y{t0^uPjxfVov26pJk$Wa5=qEN~T9r~6T&5jL_LEqJVigIj z&EC^;WwdMkl1$Q5aA`Kbp9w)Wkhl)c?RH&fay{=EnAeXxu7PO|^Ijk8{ZDEFC^!hj zZHhCTzHfPFTKhjMfjfHQeIH(R#l}-luVe;Pa}{hM)V9%E0({|tfdRCu#g#&K+lmyM z#k9okp4SI@JNzy>7a}p|j7_^oJr34|e0N51Rd_wNJQ5x$ipoL9Rrnhi19Y?bMjtB) z4x=+`oQ9MRCLwIJ1ECCk22TDhnM@$FR!BBm9~0nX*~cGakWGhYW{IYv(h|(5uGCy1hlL*+7Y};bY>} zPP6wj7ca|)JDFrza=H!Jx;#x04|6UC4dozmGiOXrcMSm-ZV}o?bm&~_g@3}nlyDq~ zS{w*h^M&STqEC&5N7P4=odFj|R9v8jWj<)We~{3*z>I@dWWox_;y&D2r@gG8qKC^x z6=~6aWV?dc_Bg@WBW1>L}G_P9hC1P(TaDY>UUK2obcMN0M)lG79smd@ITT1YS*z1k<) zeQlh%Zo`Vr)56cZWR}5x8BGRr+%N+!``XLduW{tY)0Xi&36*jqmE#G?tT30iLHSl% zjkIj9z@7gP-SwI{XX9#gJTKW;DQrk-Z#9d&;y%A;soh}FUm$c8@bB2Zh0486SClNB zp4jt?selUJ@JA3E&-aFTM~CHvr-+ZLE^cFNYMFRNy4JNtm$sF*52LQT;PN8FdpyRT zRq&prcrT~#_rnkG*EEB9vsN!9uDNc4Ub$KK@^gHWJH667zOrk)2Y-B?@|}WuqR>a8 zAxievP>mX)fF9CCZTq^QYo$CZpcT`M?$Ui8mPhnWZCPy(poP2Cf!)k&&p%OUQiSe| zXlBDA=Z%z;7scHrk&_~Xl4v}(YT(l)XZ0^@#OaI{rMuV1BJZ@nupRI)$IVbmpa{MF zjvogx)g+d&&c%VS`wo2w;ywU#C=xn)tY6k}KYwH^l1ibeb zIKNwDkpMCj=jQ6_=F9z>-T344`2p82&=lUn`aoZwS*o*=XRIWpBz2ih!HmK950n%) z>>4fqk%srkc~_0~4~DDGn2J+qEv~X3J;Kjn!SBR;>qa9@Upal~v$dhu6W2J;8NF2G z{>ogiFI}Iq3^a{6ayZf8I*1+HI>}K4@33; z>>E&+7p3Zd&T5A&1a=Rhl- z{WTa9qJkAkRHR$65_2x^RYt{-e285S5%UsdQZZ2PAIS5Prj9-ZW}!vI9k;EI1B zOegWvD$e_{6d-Si^eDEC6_XL*TgcOyU+u7$(|XUH&js5Ch6KLELR2t%XZr}Lp7FX&|Q$NaA)3Q`7Ix1n3@a+ z#EsZT`4aC!NrdhoIqw085;AQDFh`|ozQ^@WWrv}$PKaMnCHRnA^$zwI{Lw}#p3DA) z&TIV(I{)wg&i{Zo60vjnvL}>tG&cDPTKS7TV);Alk*Pc__Z718QFLB+UKi%KMK3=P zW}}cK1cb=Ih!H;o4FM}=H+L?PZ0$CBkreV7Ax@9SqQDU6exolPah>xc>U#1*v&Nos z&3Q9D^|9-6^40WlEn6-d2t$2BKv+YcQ8-NP)> z!)rsyq)CPiN|h!Nlj2GNcOHA*pkD2+y3yv=8CaS%is4g~_?yb)f%u92@dW)g*&f

    $|oqsBIX2+Xq?>_lQB-b!AVd)~G!a>B)GBP!Q!-J0{)Dwg(O1K6Vw+KB)= zyUh0M%FY|f@pZ>8+w95>`FFq9kB9_urV0bsaGB-XV?>QoN`U0y2uS1p(oP$!q`fETqSE)3j*SjW$c zVc}Zg&Ip%`Sf;E!o1An;*L7CzHj&PF{BO^?j{uL6EPrq1m&aKwVSW!%k|PN7Kwc8) zUHqQS85;k37FPw>1YX#fYN_n+5Ds($UpZd1zmyxAqxa^791%*JZ6IHViDKp%`%pAm zlj%Aj)&g&eXg|ku-<+v`K=wO)D0&A)OyK_!Rpahi`mWCa9R^h3hN&iW5{sssX&7fL zPC74MBE@L@0_b44gSI?jRU8G0nqv}vj%v68=^UGmu_6(&aEKhzw%~eDNh2L8_QI{7 z`uO8F;SZWtq45l+^6VpxJlhh*7 z85jEu^Vj)Emtaz8|2iKk|B@*2@8{z`ga`i*vHE|92c?`)R4{mbm@iqPV<2wizXPXA zlS!k92tgWzV2;GAL4uRarm_?`F!4?}Gqn6xL{Ca;>%FOsQA9ViK^Kv z3*_(T*Y~iUE?|aYW`F`ry8ZdXd)R*1?t}mKIH&UsQTxsaE()v$?cEn=*bki?*xm%2 z9)g2SJ<5fH@>OK1LR~0g(IVRN~noC}d%HhDDwNd~p<>m+upEJg|phh)8k`@f| zdk|>t^MjBoebMOH`PZT0pnK)6U6rUDRS98lS5}I zL7kez4p)Wn2rV%p!~9XJ>B?>Ig%PlFx$K$_2`YOxlFB<$uzMKq`PKLOEF{ev?Y-Yu z9$b0oZaleG5pEjtvkwLLjJHIXDiHWt+CLPT7KRm}sczX)!aIfdp~)$WB9#0m-!vX) zKoe`p)KgN{3yUz!xN2C4Ex7GXBG{d=-HU;%V~;VUG?LHQc%ODm6{q$}6Q)(qRdmNA zisrD$!G9J*+td6OZv*ox{~2iJbqBMn8NmH2);M9VDq*rZ0x528g95#9%#2gJ1bQpy z!3K3il{2{ONv71^8Jen3BQ^+guhQMZf`q)zU_XH)H+-K$$lAqZ*T)8>ItXs9Tni56Sv4y zLzh7xuZKHGRtbPpLne0dBJa^?C2XcxGfYpCMAuTOUtul3imdKT)>`A~E{XZ7FA8n{ z7e;7C_(`R)_G_}C(fT}Ki~l?1MgS!1x}Rettv_v@TvUka)1a=kiPk>WidHbemLouB z#RR0ORxkEu%%d}q$#=?+IQLY(D*p_|I<~Pl>$R>0WNC}G#jaHy_EF3#zg^JyM}B2G+q4`d+)F%1Taw$w8J;- z0l{CQ=&oV510o3U;axn6;&lb;W~O@*Z&Gr)No~S;D`YcXfBX--A=LCrVmYvFoygCe zM{~uP%3TA^$lTidnXT66>IXb;Lru^}0C=)D(rW{*jO4v~inU&!|;rLrVhZb0|adY0N79^w%+f&b~$KGMi6qO5hm{bgz?4shZ5tf z;p^#3c^$|}65ZalcjMW9ADFXC5&?Wd~UNC2yC4OYw>5;!f&2~3{zP!Qj9d!@CkEu6t-IX7h>@$JIiz2zE zN-qPr%WZxuYTo2o)Q;0cVzp@a#ItPnab2@Dg}Bv7b)+Z9R?3Rqv?~*p><VD$q*IaHu~%0ZuSfqdos_`h!%EBN7Z`qd)2G)t!THw(Cx7hDuc z&TO#uy~eh+%WiDsT-c(`ZvctAsW~cyv;OJ|Tw~RsaZilq*ckIDUKSQx-;Ut1=q;iVgC_4f5m%^!5|z ztzQ2dcjmW?QC=T!H~Gm&iOGiDY2u}j?wg}$98bPr-Q;+K=-WFtM7fPt@lR0p_R!z+l`AR>2W_w#SQ!dchCng2UHNb{e}8%EA{jvoKc&dIv|MbN>E zfj8~t%@4$VF>{D;GTDFeaqk%e9nLfj9nN zSv!#VR47AX6=o*L9PEjqk)FS(I^YPJFR~7nh5!wOI>y*gALMV8-KJ$s@?Uga(bw}2 z%I@Du$p662=5KjUUtQ~e%Sr;H8R7dFU`4y72!BI|8hsOX`sPYP@*RX+BEO_TGM%ab zC(0khp5oUW7#sMS-ouZkH&6boZzPWXtvx~n#Cw$|2)*v88RRIZlQYkfWxB`Zv8#=h zr?%RatX%U7*|?az7m-P_kIB_C^1xEF%)B{HWP6zj*E%)g6Gr( zc;N6Tp&$r7!i1(7kdlKYEBzDR+_#a3X79U)&6nSV&Yma?=YoSLnKYU)RDG-s)`Tbf zasBf!hvziKb2jAa6)2*OSyT-YWXVdi;$)FfQ&Y~>PBO<5qUN1E=8-AzGt8M)$)YGm z^VNqBY6XgI6AKx?+ds}WOX?TmTiqM7VV0dW;*dGlFUk?8!WyG7>uR@YR|%L9#HX&Z zQ^k`_f(H0hsx&2!94p7Rn<G!Y`<&QJgl!TRG8qgm**H#}xEK8Us2p_cRA4L|Aohzc+ZPIdE(CI)5`{9-t zot@%b51aPQpCPIZ?V&gKUzbRmL>qp$f9rD5$6_Cjzx<(Q{>2gO-@DxZFH<1fe@%g3 zdaX4P6ke;*xXKcXqDbL5U|Rh!{#7nlY0WsK)wa;nA%OW@n=q!Sd;+P0SW*Cq8HL;% z+!N4M97Kx0FJpfKI^LI0wHxV@gLe1GgL}90;6SJUh$!04-x>=s}aYs&YkH3A3M|9S8iQWz+WSx|w_c z@A&i-V?ugWvlbIPtW$Kdbn}KQZno#zfvJAzwM}!q&8>`Gu$Q;l28X(#gdML#056_8 z8E2aL6yBC6=?KZ4JXsodhuJpy!s{ zIv7xH6R>q=;3cD!vHkSdp(aB1uQ6G-vQ|?ZhJ-B07V(ST?@^>LD^xXT;HA!)q70_QzU( zl*spQ;KGbn*RT38Nj)bRWG-G;Bt4?WK4i`;6`*g4%}K9uMdzBCYw0|1Mo?P zsFVneua52q2vQr@4gp3BQwU3UbQ%K@c1{c|;ZyU0DxJ8ypqI;=_j< z7&3T$Sx?vu*Szokz9qW*fGov;vg!(ixqC?QYk8Xv=@<0@-^rh~gSPuhmlIPVIf5|{ zG?PFH`{DO4Ru5`gqA~(5iCWLHIEaBYwSE5kklVfaP%tX%9qKqd;12et8U(Kj?%qD@ zyBMBtk(yTA3-(}l>>Cu|xa0|X^j?ZShrt@f7a~7*>@-0#Ub>ezq?A%#mQb=V2f`Qo+Q^V?5^;`z6oPi^FldM#s zY%5-_b#E5-i{Z-q-1ZQe@i*w}tTqFsq!M{7EDnBkIZupbo#%E7`GH9hGZbPxm?4^o z4O%*S5St+G_@u>M#Z3zIn&2p2stuBtkn<;^^tfO%q{UzA^&*5E-ioq*ujg%JXJh+5 zG{t7mcLHaotIX9HWSv=JyElXzQqs=*Ky_ndlfgDI#htI){wplMi>rAIIitP-7jV*P zXH|1;F5x^QGnkit@2RUEWi~MV)F6c8#C40`XUoz=p~>Y$zMQjCH-`jjzSU>Y^%;me z#X#ht%+VP0DaCS|*;*-9L&6`m>S9v+y56%dqCj7hMBeuQIcJ4;}m zJOd{(koI688D1lVvu{01tR1oqBykf{QzVdFmTrq^9|%@aZrno8M!Q-UCrNcbaWzj& zVU8jUVB*XdE0>wH8L=)u^C)$diZWxJ8iIxbzP04fC)xn!AuUHYvW*bRNl3IFifL_a zv=B2YE$twTf81`Fvyz6Db>8H!FE6oH&usY6`O-1#?ZTvV!alhuTk-=GznbDKhdc@{ z5%Rcl%NELE9!iD@vQETfF);Re>Jj5n)_=?;Rwkv+JGTkXo6hukC2F0W{j{T^?%<33 zyBWH56ec!5$FGssuh?G+xyt*{*?=%wFvC05F?c<6TE3WPvy84f!X0x8d3U+0#~EqS zHwRB}l3krnOe4bG4QmRU{CO9})tf|?f^?W_oA6Ur47I&RRV+IBZ@nhLmMPVEO+zqw zk=s;U&pXonJq$@hjvR-$18=09mDZiBTW@K#%OR1R_h|BSWB+xoErX+X;G=-l`9fNc z`cpE=`UYv-d!2>}?V250AU^-kGUZE|zL$P4Q|A9@b@V^*#}+d)2fBWCdA}IHo4Nh> z=+kU9+4m4&^jAAR7a2ZqQqpY%l;Ug+9ds}-?XWaqLw&KCj)ej7X+0&I$Y0v?dWU$?N2cgM{7gEp+)P;q2wxGWacZ=vxf$1Nado#x`BiV_=@M^(M}0v^ ztWgEJqW1J=TB`;_dKvnpauJJTyV*Rk0eje_fD+s1KE%TCWBBE8UY_B+C~oJ#e7~{A z0WlUKx>Y)#1=MlN(U?7A##zGxjgje+E z!%7V`Rjf8H5)DfX1@h7|Xuc(OiUhuJ3`g;GZA=l?CajKAbbWvx``48Bu<+p(T%EY7 zDgQNG+&W1B+P$^qpdbbWE;LKg7B(+-!k1k<$J1-?==U7uPAiAyg~JFEc&Gd=ZUxK3 zq}pt5(9~PE6EpkoHR8M47XqA_d8Ih&Rpy`rSJMXVkaJoX8fn#~tR+TYMxJQS=jvnO zSx6`n8d~2#k}{i3>7PFm+jlWWYHn7rYDH79tHs7XIuj%!9 zWY+*eF&B_wFhj>-@xIcnipr4|Y9QxrUlIHo2iThF7_M7F`=iv$k1#Y1RsE86oWxoL z#a`OA)}@&wICnqFKCM>=fTfdZW?9|i9M0S1s%aiLzzR699;%w>o!;-_2hz%rG zw1qzc#7Y;Ge`zs+fv`>8E0pXsFY(H#HX&SZ;~Rg8sr#_oFHxg9uNt7OB^rTVGMFH zp|Km?CNIDYg8+x5Wtfst=0R64*k)xR10|=95Nf_C;R}PS`$I~S3!-mF+muoSp@lB5 zcRqNZOd1+?fz?jW=kH`dH^i6`P*lnpfma~0JLubT&AF-eF(9Rca01p6N%vVJaCE*y z`1PNud3AlymL+1HBlOItB4QiU-9i89jhGyLSY?!U?wP+N{k1F1@TyBO!JNsdwHsuj z_}v*O{;@L%*nl-qJ^rbU4Y?T&>OB_9<+;nDsPtUiH2nLzqUjicHuoC3f?Cj`!+_ER zvqclgA|J`4o-Bp}uxx#yiVVEB#CR6`r2ot8%|ELm%LGMCl2oWG{M!X>K4-r zTLyx?nAe^Fb_CBc$Utmbt1)U7YKR_Dd zMvJ*NOct7v?t1o(39oO=a%Qfg`(%*WCYx@uI_mpWag0fNhztxyu7<3*bc1H`FZ2?t z-26qnB&%ot;0ZXb2N=rkg4=d&L6JT0(qC}%pKdjKp?)3=p|(cDFDRA5*=>I;_DNN^ zOJ#A0?=#yL)(e9($gMuaBB##I)s>2OGV;h~jd&pe zt2lvjOA_#tB`1$1YOt0iMfm#|+`}9B9L_{Up#_wO$lf}xY+HsE;|ug3NBPYYKJ(-I zQGR;|g@2vFztRPwf9DJ;8e6|hn?;_cjH35+t&wG?06h=dtE76d}hN8P9)^_m=zi* z+_~xMXpjc-32-A${<`DuK6vo4eSLfwM)BuwM&*ueR|T*F?MB@P$QS5m4?`0-&MeKj1&5rB?~(Mi;&1KwxcQN0NPMMS$~6lR@L zyk>#@Y}r(DX7ki;u6BLW!C~NJj)U4AW()iqLezbk6FOgMl$2L}zp+Ql@(WH`mAZuO- z#O18IS)yZP zBAB|_>}PF?uF6Qn7-(`+nMWC8d?w2HK`qpG>HtnXY*aLAhZax*7~;TGSkRq#UT0`9 zOFAq5ifSKm%BB}Trl#%CG+j?H&rIN&TH$K9Qm#6Wc&BQY4(^c%%)o{@)S$0M5z<^M zb5eIB6v4(Q9bvwqCz`Coy9iRw^DDEwgQ}RZcIZ2TC&rR118kggD;mRlLaT2#_GM{b4H!!e|AdM4E-LG6hPnT}$$u5`H`#jvkrSc#rOF;-W zVA|?JD>jnc*Kt|e{JWF8SQ5edDRSlD6gEq3oHIa6NfEeVlyQf(Iwo1VPjEESUUID7dj!JTX~y0Su`dDK6z!J>e=rAVP=3 zk#MVRU2CCg993YHpf`EwGzl%WGs47!eXwIUK9P1kRR5IFu9x z;T^TL5O_p=A~*~)KU3o^)}($9+4${pFgewE2fG2=i`(v{#}khvPCABSR5Ib>I;Qqez*m< zbI~4E*mV`PG0WM8#gm0R*d59H2}_mCHtXh?9*@f1#Vd+Y#pj1fLK4z%IfA#K{rk9* z8!V?Mn?-cF$AQet(oJYP=vpE5tPSwxZbD0Z9;@FLc~^LT`}ST8sFU!Eickj=8;0y( zzPJbU`^Iq<@1Op8Eq;Oz-c5O@wx<5$^!m5D;6GcRxSgx*A0Yq!)Z-srFkw_-<&ThN z=|H4rSxe%8^?a^i;&}v1F7fzscyjVoMjev5wf?9CkuGBIz-J}>MwJS9Onzaa^5b+< z=CTugtQ_b4v2^>_CxLE1Lj$nOtJQ#DZ-lfyU#w4;N}pmsSFSA8UZnvIXyYA|%@OH( zXoL=4wT6d;nCBM}7pmooj@jlqG9?kCTaLnwETLIZLU%lf>tlV8m5VWoNMd6=DDPI$ z@vO<6L;T{*0lB$X4&=X?qj%VcX(ZxdljokAB09M}nQ%b7g=VOAKdVqn@7N{zzoeQQ zGojW=sR>R$h4;w!TbM<-w4CpwBVU;wb`xdI^aQzviV~nhyHsb6V75Me&b%QZu*hFZ zeGat2@G`UvgMq0I^`u|&*xsT^5#R@80w2Cq8fnoQe$DqKd#+hn=uQRJ4%YzcLtdlZ zVDWC*>6Nm(GE!tGB_^c>q6x>FX;>qizvmilP?v3CMt>B~3x#g3l}hKb6-ARp=h$op zJ5?<`cV*9Oxr1oJ8zDVrKS$o9Ab7DBJ(lZ0lD5!E!JO``2cBaqD_rndV|`=up-EdX z-5ZahEmdj?bmPeHxoi@HrG+D?#0@mW1_WL2@5rbwz^gtFqF0y>&1oojL$jG{1>bqa-HikAm9^HC3Y*ZlJy8vppt=OA2lX&E__W2UC|EtTSFiKTmaHg{3x#1$F#ZV+9WL zK*zu=RO!KfzxpLkU$X#YT`uv4mp&_j&x$rdlhVr1M!osrqiAXA^J-(Dwea?V$|UDh zDzVlzU8CgV-es5Ym!f6_#hY+oifOBB)NjAYFsXUWRcVbAv)D({)-*+|@l z$@xOwqZstcBiWdQqTZlf4Unar^7(Kx_}L0;@4N5Mw}ebpwoFyDCKm-oGp*cWo4UuW zB1tY2;*pxM2QJbVg%lwtxk#K@oEe9wkRNRHaILaDuf`c)4j`$`z&n%0 za{c~{(4btdCGdN%b))|nJtq8j>Rrjn-ox|1*Lrs1J0q(6o|IC`pxeHtA|?#UB!&pFZ#|sNIT85{G8ert50&I%baJXL@qFFRhw2{4kFnN6p-0*O<|g z-^mfKIg(j%V9+%x>a@ql^;+S;^ICRUW%yzyF09R=Thc)pN006frE;R74!=8UE^F74 z={@83`IO^uRCu`@J6gYw^J(oZ&FQ3stX8M_G{X)bJGp(1PNTu93I94eq_UL~R4Rk- z3u=zZ2_=uhXdgBamoC)7z`l0Im8d8YT3w;4Z=t16!PG{TT12wYC2TVQDni!ZcA1O< zW~~#q)kbx3>Ct!Y%{^Qz)RQIG&l!&QL~1$Qai8HL7%~?~ILMBqME7lG&MHNWZf_O0 zf9AUP9vzca*lO;U3?mW7+}fllCpD2sOAa`gsrP-Dus#IgAc-fjM;Xigkx0!vu@7Hu z-5PR&OUa$FYZ>8=&P-YR`%RK+ipY+TCWa|lZP&80%*YFsKE+%>lEsROPs-l;JzhO$ zhAT`Fot#-rgW}T|aj-U`YEd@%7QV!LzIx}Ur6RcrbsVLP*T8-v8KMMJtg!kp#1#IS zOX+6C?J%=C*yFrOy@&MW8BOxi*mxOYdfTtRUp^XfelT|g!xA9Q4*8VzP@#t7@lKY0 z0#m%wAaqG8gEotCC!<#GwWAN%C(en(e8eW@kEWPH9zgRd#67MH3b(^$RYsaLhD%&y z|E7$@WDKX;)6eiKKNK;v+*Jhh#E_+NAwXf^C9N6megcI}&EExhIiLuVp`4GbEXgtx z=ml~ZMx(ZWpb}l5&UqjZO%e{<{`3W$t5bl@W$o|*?~myckWu(p@;+Ur{F^xLuhXUc z->HfJ`Y!liV$y#H!>S~kKMEvdL)FrqX3w~ddb`-kcC;81nTa?8wxrG#Trg{kNJsyJ9CGwRc`rxzrW2SjdCVzKzl4=tG0dnXjO9aerskkY(Sr@O(DREyD-hXoAn7zfWsP|TyS7Z1%GzYlSzRNVd~MU@e+ zWc()646Lxzf|iIsU5g!4nW1I<*)Jr(`j@HC^&5CrK}?jbk$XpnEHB~Q$o@CnT04vgfb#datx z{uCimb>bNnEwjj&w2N`ZH@IyI7O9GS+KQB6DqMrn28nn@Q>wK0r!(MBs@Y4@xc*S2 zj0w#k#G-o^dv|N%e;&^=^Ubam?ZNb9hpn?9O?{Fd^U!8;0 z6?>)Fkj|oURdRx+&2dGeaTf&OOvYgeqJtK5g09SiCM0^BsYoKUqHD$2T&UcFs^waL zA#27=qOi*EMBlL`9t^-@+P0b?KsmIL`W^E`cYo*oAf+i9uycxa>0E;ql(u7x9s*v=ul{R zO)sAV3b_(w{I^!o?R?~hm_&&l)c1v`mj(Z?aiNAC!|rZhm^`3r?|1z3Q6mrHt^6Pk z92_;%B&G3L1qP#!C&r%STaF*`Sm8-k5-)>DETC6sAr?)vzU3ZUv|~b-6rT;Om!eN^ zhsZ)(DA7ri%r&nZt-1u}x`LKQ@AIZPhZgaR$cb?uGlf7(FVgkK_I6BM| z1BdM*mkTUC_p+70IF<;t39(tJ-kDvgZ$(Kn7AhZFjKN>AO}{AQM;j@MIls8M@h8zQ z%RycWj|!I23oqugJM_sEoL1#rZ`_Pq{6pyTct6E$F|26>Tg*`YT*{~5*M#Vqcn^#@@5N1e&v8pQwk z66SqX^_O#;vZ4AOJ_PFKf?Jl?qW&DP08U|DCjBjX;HO63JZ8S}6Ht0!M&@LEA2l#@ ztyMeiUIf%F43eyfb@RE(pFqbxje0I(dsU7(uuCz!F*%L$9eQz{c*%N~ogCP`z8)-Y zeArcz-8LJejO%q>?%W9H@tF$8OG}*%R-iYQ<|LwRrO`~`ix)QNVZb1w$OnqU3u!p& z4wR#>DLZQ3=Td9Q77#Vio)5qJC2$_>9japJDM&RCAB02{fae?Oi%9oC0~&iP5GD7y zo;W9M+sxQnepDnPS}$XKbhi!7XClwK(Uc}Lzs?w)Vlio(06^PL)CaN2M{+2e9NLrT zTsK;3_HHiJe_L7!3|Iq(DJECddk2dsay`Xqli{qX#)hV#(=DAJ~4) zq+6vKZR^H%<{B}59_c(wa_St3Mv7-Ul^JNZp35v@UaiL`3ep($G}sH4y%&wA!Ru_M zCRB2mb_wx`(q1oO$}a1$bgD?wrTvT=+qe@$^pPfU^eVx@9+nq58Jcc&l{8!jA*6J+ zDyn%Y=Ij~zd({+55P7Z5fqv=dX$+$fyz7+f4Ni$64QW#j&^0#P z!OBo(NSTjv0cBh4wDq3y0mWMkdQ%Q4sn{{iZH7ozQC4Y5*YN<0{li1q)v=CM47N{* z%E^mA9JYQ0tGz(ZrlV6xjx>*jmIdaq*wW3+A=7jzl+$=39Yx*FFI;j`Vw;1Dz09qU z^>(PP(k580xrrI2Yatj)cVS*0b^5p7#Dg>@j(MhEPBe{XK;V*JM1G$pV;uQYH_ zPXg8<*Uf>n$UHuUv7lp;<`sW!bZ9jp8FK0zhV*MvK+;pYq?wNH*+EegP_Mj>u)!9x z{5fRe2S5i^TTE%(RSUSh8F0A=Ii*V5TvvXa+=KM|wE8vh z*CAA?XTT+NwlIsS13NP}PJhED9)42w+aBKO6;gBT0419`>rT+rS1_;R?&Md7yu&8h+71mCuX4eP1fsI z{ZFGEF`PxF9kNq23;`G4z66;(=EMmF^U&UW~3G~-|QhJUlW{U3VqFWpT|R&`eCeFLwHD@A6!NAgJgO-eWE@q;0; zAhsHQ5L93xp8RMrQsTZ_0{UwEJkj=G@Wc@Fan!lqV>Wwvxu&DF^Ghb!ER5R zrp^q?(+IM?iLi$Y1v+@Htg=Lx*e?%?x(JQN?I<)%=r`f*r1rdi#+SL1}4t*`zci|)N_Cyp~L+cEq$62|aPrVf*W zW*iXP^+GsqO@sl2k{pP}QaubvH{4ZQoD;OIg+P3F9EqL4)Ni12tD2{hNi0KkkHTbk z2~JJw=LsZd0*L9uL>cjtKhDA7w{ZYxCd-X<40GJ4JU5z-P67` z8NEQfxs&)I%Xs^dXMwRYMdow$-l9txJ8Hx14k}9H9N630x_P$atza6{xJ5p3BvVl>8XM)W5BDgd>QqKrQyJ}yv z&1Jl~zR%WL5#-Mzdb0jZMm70mL<9laX)JGqNR1mX%OaMwY1<-Km}VrA0EDfGu)?t{ z!x^U#?}LZ+r0BwuFlgf-{J2G~loPc2`AhbfR5Im59AowdprrqP3WMxZLFB@(p-r%t zdcp!M*}0QK;>h)g*!tU0?IH>s>3D&VSzy-@vCzEEbI`4YDbBj2c74yNSAj2w^&8?u z2&_A}7_p(X2sNS_-LgK>&oqw!fJeIUsHEl2H2{fBC5A#j z6Tjp~M=XYKR#Uek(*Sci%?g)|9L_{N04(-sqC*m7BNC$2&@9D&F8v?I$vNcT`JJAB zn`Qs1aQj=uD`#)-@J{LecZR1}&DMTJ4c*VqAcNh}aHv^jgqkpFhO*EKWB`w}CUGPY zIy|D%?g~!A#S%>iiuqhh>$CgGzdsWD7ubt11-!8uRJgC$Dc27o;T<#|u^&9mCneH( zsMI4@0$rd<=LzSD?+jn6k$?I$0AZc=4 z!+%f5lsc|9uc$UdKx{spfZ;=*SD%t!%SPd5{Rz*~EOyzTA&z#a>Y_@=X-${${aZEm zEoGsW*}RsDZT8Ei*;v(a%#SGJXZtduFvzm(`qR^OxN=rP0-<`r4U52$yu4~px zyu)6tr}Z4Az}753n7o|tKR!ei*etZ~=Osd-bN+lSYq6=SjCW-hjYUHeGKqO* z^v$8wM(U{4U(hb>`A8AVRuBY~gGan5#KH@yGdiLaAGb|zY?au}H~SQ}!Ju7E-?Cd~E*soDUo#J2uJR z6yG8AKBW2Ob_;S1>}y`ij5^9z*E9txQ2mHz`WKL2L4&d;koxQcsDTf;jcDqIfOItd z@T2iVeOpJEMYqUe>iQzp(8v79Q+8wOOZBgajL5U%z1=}nmKHxiy@}j#9(4Pdw}lGO zQBadGtjjeh8{(pyY~;q7Vd5>KIgCuASIiVbyg$(SKZ4ER?oD{3k<8dm2(@J$t&1EJ zewV)xy}oQi+_*ql`sfLbOy!-(onrL@ef3@1vunPe59N9W61sEV-~G4Jx`)f?gBMh@ zj+VS}t)(qmCICO0a^WhDx#@ znec5HAo2W$jIh9_9(5?!D)r5IFy9x|0wNZ|Dq!A2_Gi38XRcikM>XP|G;1isku${$^_7dsB3NnNTxeDVkV1bhFv z7Xcq8gIzJHLmDo|pIJY`u8Ox~+;H7)K9uNq_vuWA67bCyrESD6h`baQ>ZlsbIe+=n zLzR#wWu4*uX7T%7hx9KQ$6uS%-y{I699_*MtUkYMl>TzHP?1*zXF>KAHv)<%i^Uak zA#W23JYpCdi`KJH(mtrr&e1cRyS*6ZuoM0Ud!^nvjp&C6$6hfNG&mTSEA@Tz@P*jS zKQczsWvu_kyX2;1GDJjIbxH#$+}pU3JRi`2GT0c2(?ug}fE4PRI1kJA&E(FuyRzMoUwh?3!JK35hrI>a!cNpe^EcNahUf~%&)G>cdl7dA` zY^t1=e@W1zq`QFo)!TMkiCnIHMK5Kac#CI=rZ7eVhv$?v>vsi9NMG{P7qj&No!`_x z7$fnht228tCRV?A>-7+>+pF&FXZ0PdaR?V#NT0R{)^t`|AHh*Ywt*cJ(!!wR2tJzz5Ektff;KsrM32l)}W;9gE$wfC?6)Z z^)#}A(?YA$sS%$l3T(BA!zdJ&LqJea>jx_e)MRQ@J)~F4e(x+*Dgp^9hxiA4qV9_e zo&$kc=eNmRKWL>M8`_eqRmhlaPZn>HASe{ffuE72^kwLbw5>(P#%W&Km3qn!9FeJN zyLFYDI+%;<_=EM|e6>a7dyt@NsK2r8+RlEm2D@0u;@mJd;s_Zl*wgAk1=Onwm5m42;;9QZlOMioUiZ-iwCC^1l8#moYb<<-TKrz|)*`ZZo$O4+^RrN?MTyVHQ6@#;kyx9jF)ABN#E_-==Oj$&s!`E$nE1K*tI@k6;S}s&noG@x zKB1^5s!n;AW_^QsSIC`w#lVko@*7B7D&8vF?lUk5Zn60k0{GbaVrD;&mWF+ zfR$)G^Xp3@Aqpa>JS48?zrqY*TV4eT4j|;V0W(jQauw)S0xTuTF^!E7Iu8=0qHbh& z6ADoaprSiCD_eC(Wi9R!rgjnnM@cmtH_?|K6O= z?0z4U-DcqEecS*O`&%+{ceFGHS(!1pdh|<7Y=8Ts;PjW$i^td{N(0!2+?PLJZuQBC zgI?aRt;zop8U9wo5w~@4@%(@7UW!%pWx++z1qv%Vs&!MAL#Jiu062|7vEio1#AzZC zQ#-96dFoC^PO)zr3Sjc{h^AsA%sJ1>Y7c?uZ4VOy2L|TnE5B~&K47hIs!*qCwZsdP z6pn?w>l1V-BOo;z){Yi_-a(7BVMOSr#*}fHR%1bna7Um&3*L|~z9wTc_dvf}StQ9R z;Y6qgx&+6zR-%%B`sfWQA%M>us23Tl<&AoqemK)r!}_FgsN5|HwRlBuHAE5%JAvi8 z-{2R&0y}uUwIWg(aWE-S$G0WsaT<6+$S0%}b8#r(YD6aMaKG{Tk=_)xynCVSj*R9T zmC5%u_@3e1ZX=e13~@P`mrdu7Zu6K$bJBf~BFdj?+$g{RLZKtvw6t{O@T$c$Lnc1o ziz?Si^NM6*Yb*H=8en-UsT*sbDQdAa!I!bf?MkEsd!|^)Q=~zSzGgRdw?F@+MHTVC zyDGnf6N~Lj_lcq`hR$_glrrwrkq^^8Hm5t(pu^!L5c0* zA@xAcs*yoLT$$@iw3~JS+**RLzl3A0d+h{Ml8T_Uv0q8zOrEARYoMYvEI063Oz&57*@2b9uII5QYQ6hu^0g*6y{au#bNz{ds?rk zeZu!XQg(?X&7^MJ0QVjzk2(zoNB2JZZ`^^ zNvSrhRLudfPl08}t)l`8(=3x-1iXtpMRy- z;z#HR(BHf$-EKw0FJ}IluHcwlB-lEksOD=Fb;9J(6O-tpmO!VsY7N&#^in-2(5gwM ztKh700@(u9&ql^j_q6*Ra~fr^Kr8vt!K)0U^+b)y(x#NKS;g!j0zyCeDe_vz}}sqxRx zpY$1Z#2#o#F-q~U;=QK0L|*;$Ncn^d3B;_RTN8w!@qPtN*oS>CE(C>T?}K8HC%=en ztJZqOof20;o1^sMuZ?sg$tS zMZ&*J(m&_NQ=y3Q!=>q9>szpT#<|WA&NCiR;uf{kzwT z2+#8wnW{sY$6)FWGrpya!mxQa+j6&fz3d>n>_QkRTpv+Bcup7$kKkLg(j2r|qlk8% z6whMvr_l>@Zqf4W-F!4Zgt7{ef(lhC`Ib4frh_aIi^Ct2k zjJd?FxifbjBXm8=l_^RcMXDPolP4+PoENSnzG93z+q>V2TLou9`!lV%+r9uVNyk309b^fij0yNNl3r z6=VSwxa(*&)n#e((|cr-N3AiQ7#B8=!XQCCj9*X~k+gQ-v{aB=^cLG|ho&uNlW1nhIkx1o~vx5i`)eRH}?vA@zdz zgkB_Hb!rB(3tLYL^*N4LPV46M{5C%sW4o^Y5MFkt#f5=O`F*)ZZdpU-p563>?B-*H zJ@U>2T_uZsKr(ofk>~8^=+PqjgenHEj?fTYv$kLK`aPCE4LD4*qn+k=Le3maf^jJJJ)xPjnn@geBU!fIN&@q7YbTZUCe)tf z6wDVYzFt@>tPNN*g7lyu(6Snwg7H>aMi%tV<0?Y@gWc`O9S~YD@NdKBd_%uogR@cd z_6-jge?DVj)eR}$jAI_;*bw)HE zxli<&XQHa4Ec=uyJ^LUS%LkuT?K{NnUa=Fggitw!Z;XktLy;ivAy^sTP|SYBF7sIl zNjSivpC7*-pbccSfy z(zt=+{0j2s2Tv$F_9sKqH!hmG7HY?qVNm_9@uPt#qxlciu{)3J_)bV;BIKZP*}~d%TV+!LveQ4aE{C0v#|S!o;~>=`pOVoY3omvijJtFU!zES!c$R8#XCRG zL5WR5%dbiEn*^SaeXFxaj`YLhwMm5jbi&)pcDgz1LG~eoOlG@!Ll2ZQIb9dd2w&tK z$?QD_1#TF{psJk%yhud$>?nH1P~#u`=%as-FLdibnbnPE%5Z)wf2u2Wz9D>}fd;xb zM!rSf`aHx!0s1f}C3Y-5yOVoN2e_-{Ac|32?#tLfY0y{Gz}#D1<{CU3GL5Jat4vOGna^C1u5BvJaw zj{TlZW2+P>)=)=vuW?_!OrR;k|8)}w5>?SxSX7F?Q6-R$G+q+<67n};fA*c}8F?f! zzsLT>sldV5D$io~@4LR(57!=&ebfeo!q8Y^F3O0`#ym^~nqrN4)0gEDi|mLlDoj=$ z1gQh}7#NW+t>r*$S=#kONf7|N?DntBz)c1WaSZzkEseSYqi=RkojD+p z?AP5scjXc1j91Y}>ABI#^+-*-Ejd-x4RqoyXk@$1h_`&6U!6|uhdY|OCei2WlX2pzvELkKJHa2>k(1lK>$w0U&c`iL%Tc;1*X*&m1ETKZi!&U_DO_*^U#@X zl{(X8?c*Uh?{8e`WHrZl5VpTOSHJ`Bb9Tzz)=E;~j^On@Tt3P(& z8DGCt(4@WCZ!$8^R-G#krhfr;GOlMt+VMol{+!8MOYr=x`-6AJG^Lz**tBT8@b|Zb z$W#bf!lP2uhtH+Bx2l{Gbme!KkS{G!q#>bKutP_^UvAxtRps1@t{ip7XWfI%$3FvD zOuWO^O4Sk3*gujf>|lr*X52M?Ta{SeP_Zon?`W52;TB9zwROyLn2N#!Qo zk`^o=oXf9K1viI_UlvJQc1Cx7(QwL7NQj}l>Lj90Couh%^f7rxMOus}V!Kh+myzSZ z^h|Z1QSF(cJ0#-~I{eW+-_$Vf5~z5j3Ovf~X-Ke4{7BrDzW;Fe2LJUJww67Bk9pkH zSV4{RJ}=_rbY^F25aRG5M*op{Z)04|X2 zAz@3@cXAZZsX%~lvUGOUh^Zse7dbOKOR~r?%pqbCK5%YqNmO>{(jFc9aTj5rgmClL zapNV(@3-7ljo7tr?2;HYCrZS)*!@HLP|5G?rMJA-SGM}729bN&|4o?6AWhnkzZ0e> z|8Xq-TOH{S)4un29(ERgnW;3r9n>@lUMB>XOdEs^gb6!b!m)cPfnX4}Rx$`ANl3$# z3E&|rm*x+Y+DoT{Yj{B^Kd}VM?~ApdY(%UFV03tA#QO6mxJ@kZ@9bY13RMXz*j_Xx zb-Oo~GdnU(*|HredEWQ5eg_Y}-3L6sRzCST;t8WKzTlU+I}at1OLzBdNS|HPvmdtbFg%81T|Fd{zNl*C+-~XmHNwYgWTkG2LNSiq ztkfUu(fYvD4ADU`JvnIimn^N# zhp}pl_ld^Ct6o|aX!eEHWU!P_ zQgUg^IvnZayH9eZ<3Y&@Z6*-5vZY9L$vCmgxkKf3Rh?HEvE0)6R&eoYLu!#w1vQe? zMU`yu9Vu~4PshmA5At)gfc&mi(o_iyP6n{6sf1^hD5GWd;6urqGsoZB4v4YlT-c2<^=3{9ZS5%Tfbv9hae=zUS!mB9o8w?M{H zIYsGat}(QX)Qi!Z8*yJW2|>G@W|u(1{56~x6`@iRThqb9uZ2{WZ0;S}9~90f4X;b( zDZf+-|J?BA1u7ivn!@dl4WH7KG;rDD@Q94aLV5l)20xT{FsZ(jY0zW^p;7H<+h~~< zM|A4c?Ss6^<>U_F({76m9M_}9(g6y-)z-RtdEf`7b6q@%ct1xpI!h=>$UNU1+;~%& zA4-Y{HJNB@{7U~XO#X|PFCXOe?zUjSej^LP6Vtev#vvKO=PJWu_3SKf9rcUZ|IA`%OL;d; zhuivXqK9CFj|T6KEdup^Pt(>R8z!Ep6i>tV*BcL+9LG=jV@1S4l8-Lw1?F$uH= zQ&d45g@k5o{IXGS;&LrVkNhC^IHK%%h*f#^>~)b78vy-U$__Qbq`+t_G#BzxwX?c* z=k21(`BVlzAX&9qlll8inI!qweRXr`(2P;dDx0Md6p0ovF5R&}^^RR~S+23WSWkq# zk%kkpF*!DZLKwEhWm9W8B9VmLQ$1<6cnV1sdn?@~j}aHr2ao(mV>9WwR2!L7k>JFi z=-!z2bS6eonqR5y84y2oI!I4n3GO7c&raIjC(f7V(hCb}D(7&F)MeVQZ0;joiYK{a z9wRY$Fi8sK{vf0WFu6HlQip8`u1=PITQaL?jiuGo5%=c7_^QTIq+ZDwwoGfcl zk2yKcR05VJIu$xVPaL~dh*!{k?~xX^i9~wlWH1a|L2_6#?zwhgA=WzrmEVv7?j0*y zuk@(qw|&$VN|0r8e?SmEew1`>kH239W%y{?ytINJQAa88{bY1*tRH2eItC zGTlB+)bb{}&0VJ+xrS$fwpB7#K^I__)Z+`NjGN55!BZNYr3udiKXa+>+Usi0D13+& z@Fv|rb9%YU<^-PbOc&Rz;iU233oC63*cqYZHiI=bwXZt29*je~WtiFx^A)%!E2XdM za)fV@KP2$h7k%`ld!YV$ro^~qZQAOtFWSmi{OpDLC`OzDW5+fXftbEzsrG2-neoFu z%m|sr`$UvMoLYNXm!aTMFchi8EVWJ>9Ci{JRlPIxzOC+lCt0GTnyB`n-}^MNc?Uhe z)s277Ap*N(iTcGvP&L0w+>D9&#sD6+5c|AqeX-oBtY>;-zp3B(HmC7c=O?|gxoOp{ z%b#$es9=D=$5D5gX`ty*JW><1k(1n8>}95eY^IvjBKcA)sf<7LlB2O(b6Mb&tqmy1 zVw<9+Y}J%nf*txgu;LbDwyJ26W8O@Xbw#4OG8Pr1ARD9zM zE0qIthv-fF*)U}fAGb)P_el#tpt$F_5HBV$yTY;gm>8dqQYZ$wudu?F5IpZU> zTod|c1|AIiLa>jQDc~`pBr?!s*52)^AJ|D;c`>j}n2qR{6Y}}d5hqdDW)u!c(R@^j z{Ok!jnDhDldE=1*n#)|AT>Gv9_e}}+!A3;RS_DcXY!*duWf`ot1@DzA;EAGrWC=f( zvf!J24XC*D47<#4H3xH)+>pu3RL6rT_Lszl@maxFQs>&XgECu9pFSIG{-;jxEr&`tnVvhV^DN)*jKtPm_;x^$%3MSZYiw)<+&>L@1) zGuE-PRSr(r&8OWfmw)5_L8PnjF;|!SBGKU>{yU2L*Lm`9E${x+TK%PSiy!|Yx_>Ek z?G-qkHz0`%4rN-4$on93lmMK+mnam@5X_qN0+{bbBB(|eW5|}>$x!j_5vbjK<3iet z+)rO{8$8Nn+-LmsI>!C{{k~874VM~~St~mz0Fx$Yk;BA(K2Vcn!^Lj6R~z&R%_0{i z+_Dr6BTMkd#Ct6ap%3Z0_n00pCY79C3azPxOS_f~|NX(=Hf zj&m!-B*%KinSLsrl}iD}^IIsW;4Y{GQ@p(Zd$>@JpklTH(T63m?3S!{_Xb5j1JP70 zY5Sf~v61a*6`MAbhGhaGd<^J^&UNe+ogo>0{BWQWE?8#*>?YSGO|-Ub(fS6fLj^!B zc2UAleJ{Oe#bHVN0->J96VDsE<1cTXeqpVB}C*wcMa}>39{*iZa?q5zCHlq6o#5;iYvo73fs9rN3}dFpea*; z^#yYeZNeFyPk{64F)j)u+=MX@d@k{%^n@#^Q6-RZzF5|@qkO0_Yaii5&N3)m2Wigt zJFoDu$!>@8JKS)1~;UNoA#5=o5~F7-})a&<5f^ZqKkqS4-d_ySMc7;kd3 z*5Twzw$!gvDbn}8y_Uc6U9aR3ek3Gh>>4$r9xKsehZ3{~?xav6gP2P;M=?xO=GpA) zyiA6^LLs820wfiG34%oytL!H=cq#7NN>KRMXh|%Z%!!#cB@*2P>Xn(p?K=!cv=r_h z`Os88+WGq~rSTc$2kfcC*Hc6HV6H^$VH4z~z?sPxkVw#rXb?7+q}p|sp(9jT&H+Sl z*6XmXoe0w;$chq7$J6m;D(!i5=Gt+fTpq)$HbGnR4>gl>&6F+Jk4~szdqr)VLVmW% z8cAOB`qPQfNpLQUuLoqS@DaRYdKc@p({F>nnV#yNyaaAN+>(2^&Xa;+B}Bm*6735C z7lpawzCYM9M5^yi?Sov3U{(~7W|uh4%l>4-^(OWQo=>v{^EQWnB?r+<3!Nrw$`lM| zt+0-({&R(VCx4@Q=9a#t6N8$Wey5eZ-OKA+k@g?OXTp|lM1yN zy6sD(-i;BgNw3%u6Lr>|oKNj#QQ{va3H!K0aaIK~F;EK_Mi(eTT?~Q9+8tH|)ErBs z7Li-PISAb}g3+V)fyRuc=8_}bPJ7f;wbe+Z)Er^GzWDr+(7&G@AN>A8W0?L!!1ULI zuJCul?O#?%{~f6Qiz!lN;;ZZeAKY-ar>(~!K3>-^HxJkxJXn7C09XVhSi&QOu3R|cL1u!DaH^ld81cz<{`?=TkQ`MWZ(uXj$ zw&Bxlmd~3G=giUto}fx?+1C5u*QebKsqF~(EJkafY}534d_X=0g79x=wosrp&x47_ zCOwqdXx$eJlD3>Rk4=I&gEK)Rz-@=^(8qirT%2fBHA~xm_B+#JeZ36lB}Ad&O9iG+V5RIH%wlWf7krN3SqmkYLlyo0XD_ zE?jc&Dwe2_kKL8J36c~jwX7CoMXoCh-|4#z|8hvaJS-zHWtLXFOIFGhtPU@4 zDca+(DH##Bma`B#XT8XmhZ(WpHU z-S^*ucuPn$dg(l^$BZYg;5W?Z5x?P6?1@7QW=G7VP5O!=8{eG^Qd_SsTDrqAcu6`Q#7Mn0Nl_h92HDb2+Z5lxF0;m%;{E~N#ye-&3S?pROVY`Q8O+DG4Y%u=sNM^bbywv~dE&h0&|HT3PYqI-Wl$?L> zE&jXE?JL23NkN9YU27U6@6vq$J^P7$B`&om!@>EmKx9XA9_ksmMOjl%dNthg4xh`q55DrhsQ(1JODTJ@O79&t9 z3m~F%H8a{QA= zU!kl|Cs=APXHH~IA=-cctWs~&URnxoA0WCGN_(w-@k}Qt&uBxIBdlANBb_@AAYi}k z)Zn9F2pgxI!h!v284}KAb}-(O$ctF!@)A0B=pwWBlFea^H#MBb`GeL!=DK>z4X6gp z!WAj~j?0_&%Z01f{EW%JkoDjV;CySEfZdl*o4^qcDj|_xaijG_*N7b~XrLtcRlQcF=wv{+Xe!9+zPJgz33Cs3~ZKvr|0RHQBae{u%3sA*t zm3hkPh(Y?52d;rr`}(OW93uDJC%*_N2%Q+E>gbvXrnztWdsr1=O{LNWob~W3uGy!r z+v5({ZRG_%0_Xu^KXZJ55U|5QrU2{Rz+5O(6uySCMTJLEYN{>wG-aK^gA9Vy*ijeX z#{!;Jz=^6+MzZ+6ZaoteVu7 zT{D6B-5n@>@_4$X@EP}?HCW5bk_Cf?fj)W{ECm|@z9-u!VDIX`0V89

    tyv*0yP}nk-pv4zbBt@DbR|3V7ZQ73LXi z>^2Ui@j(qB;;;t>uiSS%O~e zPUCINC+Jj;)KCAqhTI^YwA|Xdx4=oQ?{4YYW;QNDC-qCtp)&gXkZOH=QE2KcwFqca ziQZox`Pfcp5Q(OwCDa_5y>wEHK0*@8^3ymKD*t_v5$V%A5el($bL$qXzib}4P)ONB z#Yy=DGv(KereqvXFx9AHgJ%#~C(DkMJ#NJVv|u*8dtB5N;bWuP@6cyYj)+)VI}H1H z;{iI^NCXH%YlCGnnRBdRvJf-GnP^9BZu{Xy8!?sEggk7>?-*8B_aoem^6 z%DIwJ?LUY za|6@%!N&0PITQI%S^iPrMGz!FM}$D&rag|*Pp6mz##{D6vhOdeKY;$I@L}L6f%aej z^q&7j~d{b~WKL57jsZQ>exU0H9U;L+cX-*516b02dZ+jRf%`2_D7 zpvHbDJ3-^Cjgbi^BbKjGuy74*rq-jSU~v}b$mbEgc}H@5t!pjUR^g{&NNnat>Kw`s%A5}ky!8f;4%!K*({_0mrIO$GZmKf4>pxYlF_nC{zQ>MJroRb;mb}E>ZK5Gvu5oO#XvxII znsdcAU=dM|?XV5O%}Y1lr0M8((rS4dDs?D(TSq-%=1jS=^V$%pKsGm3Mv3bXv{%|L zj4np!o%!J2174ZZnXFrw6S(^Z{;uAe*y|n{!I0F;Zp1he#t`WRVj5?hn&?nD<1ztV zy-~KLioLaC)6%AUC|yg?FSI<1L9J7t>0lPr0ZKnF%;g%OQh)k_zrAV&feUoPzxDpf zh8`R(D(Jf0xIH-eE_hHHN{jUL_JpZblzs6H0c`+I$w-*xflxMd#Atdj%Rm1oK)w*I z9CmK;tK1264m$BKxQlY2XobbYXO`aU9fGVocqqdbppk?e!+0w$5>H9Apx>ePp@F$g zxo8rYW%3q;=8=tYXLB(K^f$3@D5tP01fP@#Pw+1qNe&6{@}f3G$%v%2y8cs$f#HEE zh46T$UI7li-!0BW&CWgfepX1HxWE)5$ ztc??>KS+VGO>X+8GY3;WvTwQ9?7>9BiJ?l5Y}sHC1xz4;t;ca!E*eg>D5~%~u2;wg ziSUxYp9z{#bQ5g&6y{q>ndmN)_&_l+0NP4F*P|yDl@pcLxtdxeb-@8QcK6eh*q$J) zU|ByMbsXbAs>Elu4)WAj>`44a?EJN*`di)czd}aPOyB&U)_qwjl2(|)Xdgo^bZkp?u7tX(Tpn+*Jzxnw>?&aF;$iXoI z5$(v8BH-EJ+4!>ge#5u%jV0TTWId1C5ADJKj5Iavx_;GVe0jKr z2eR|T=CJ2W517M>KdNDJ6*3z-vj-AApY`P|Y?bWaba=smehStXs=?a-C5A^Hh0YIw z=#adm7i3T6-!yl;?>vG>Y0B=tmTaQ1w^@u|or^c4$8NG^cj4u;R^tE=B{&>Op5J_; zmbQgozGH=KCXRIP&Ug&f#tG^ueqZ2=hNPx*8cfz+}Nu8YzUU$%jt zL%=En(KKy?2qpJI;0-F9KS5H_9X!t*;A%Lhvb1Hwc_<0bXLVA1mJ``FBTiMZj zGpmp<$N43IJ1Pvy0lGhgF?=&-9c)8MmM+oDVo~M*O)`!?PfHoNZLL@~X0so!YGg}e z!m97C%WPOH6AS$2CQ1=XXij!|ol}+`eQl`AG+xQ|- zhURPLv{JdM^4Mm^r#ou}H*(Mnb6~6PNMN5AhUH2Q!)R6JmgK`Kas=0?4p*X)eDu|v zq9s0K8%OmIN||(9AGY*H5HNDM;-yogWSUL6@vV`zEiOgSbVR0S)BN7 z{HbK+YAL(q9Q!`dG4X4*V|ua7dA=KnL{R34#geo#vF%8Lpii7pUy*~-)4HN=x6CQW z1R10*VXE{q9^ARdRU8&324{tNgO`t#v>>6fwwHpY){*0-;g+2rTEhtUwi9wxMS-wg zJnDQij(e~+?sYY?0rQzM2+y>q?HNkwO%Q0v1kMXKmrYt)t0P3ioau$}jpYfrCawt( z;}VRX^^JIxayRQk!8Y3TQGNl?<|QF& z?;tWk4YMjdKMdlImwC#`zOE3I;hI8B>v8`4I;K6ERGfIn=4xw-Yh}z9@YV>iuB2Bw zb*~Rw+eC@$;L@{0IHYq^6ss(n{ji(8DKc=IZ3nPowZs|bGW@Z3=NT2RA6<&4K#ub;@jIPYx{xwqw@TW5T;P zDh=SRGQQMb_(EKPXpe1RoiqZ_@O?=k)2}egEg^t+VXm;SEzK(RTv#5$Lp9bFr*r5P z&n;NZ#uO~s@}I|%tEfC9Ca@0Kpsk9(@MiGvbq(|c?rk~{R#G~ix(G&=d1^pVsfe=m zP%jWww~=}+XmhHO3SHEnpl@Ak;-l!Jl3TQ3rVNz%n*6L#TD2b`K^IAA^%;+ubz%ia zRoxY1?8%*~FX&$QZEp0Xbh&ihg}ntAx93i;)rz+jUtllFvhBX{?%TZeeS9t+PbQ|6 z;nOO=Zq8H~4OT^G_ooAMjK5eaJoR2Td|g8JxodnG59yi{Jmz(f6gqZ%f` z^~34C1uFu=fRd!OOjbuxOW@9(v`8y6Mq*IUH-H}1{SAyEY0PbVz$A$(W;%JNBtmK4 zYR;X&XlgQH5HuvfKdlZjEs8olH)tl$YaAu@GiMtpK03f(C3B3;(;;u`~tN zJOMaMJ(a!EPKXk-BRK=#a;*gHqE*8x!a|whH40$zi*PJiS%9yIp>?}#nUZMVR8V#8 zB{zNyyrwXIc&r;l4wtq>(N9!NjYEtlaxPEK9;VpfV^+o8Tp55YqiZ11e8voSqBihU-Xk>VsYUENtD$aFw7x8#YGFKjDO8nXdAQqV zV4Vl}%W^O=LHTi3-ZqHCP4Y3%(4;YQzEokP|LhQWet5P_ELU`JvPF0hgaxx!d=R=t zUYOJdVMQt7&8}8~I%%S=@K{s=ieDc3=h!LnPcW-rw|r@`>`oqSkrJx24Q*PHJTBao zd*572*g~-Zw3%N*CTlHhJZf^LPlU&v^YS3il`l+(Hn}hbU>Eaa3`tkXajQRs#Jecr zJG0og{IucGC}eiTkvZK>SzW*%K4X3&n>{8s@U{COduW(VP+$&{w+AUKYq%}o{jN|c zSyS8&&g}8<=;7qE1?PVHP6PB?0H_7!BJQDCv<%hrBKaKJL3&Zp5OcG*jv%9Gk?s-_ zLvtPy?sSI>z{=lB;P_Ir(`X%@gwr1`Y%{bSzL=@HkBnu$>TF{eVz>X~EK$3nF;G zj^Sb%o*2Z(#LMP!ey4XAiEb{#RX~;i>t(c>J?NGL`wt{`+G;qu_I+R5LF>8AZ*lvI zvy!2aq?jl(ZmWZ;R`I0gHF-2DNb98xXb~Es2A7S?d|ck&{pP_!j>v*fG9yr%gWS@I zJikudXr{chWV~c`ne_@cq@rH33wZvV(YX=Mk4`otHO}muxP*$IxPUT9$%&@TId$-O z0}#kHthfapsDH4`d&(por;Yax>(M2l*U7Eul90Z|VD3G42KXhhj49T^S;&VuODk?< zB&P3xP$s;0@+P7Uq|fTV*#!@j1!gc#Fv1DX<~)>)27b`n`EgeVmmoZ4q_|56WE0d7 z9DY#pz_IOq5JD((8LuZ>Gptdxh&37Ie!=bS_rkZV;Me$X-2^w)=VpUMX1?9O5Y93S zlAPC4x}m9M=7Rz@M!`|u2{eFZ@`ux!!CxEZJmD|DugTa6-8zM;1s+X(ysFoz*l^AW zJz`SS*^a)titTy+_Il%!-Hv$}{T;UQCdK>;N&KoBf5y7^i}M}$r5`yj2B-h^!XGb~ z<`v%uKm8JQg>oR9Xh4@}V7p5I>j9Zy2Q1FcV;Meg5d4R87M$fL_}7gGOIMsG0|jcbi_XEA;)U3ZZ0vdX%rf^ita_z3VFc(?g*j!WmiNSFZz z0;bb8)9xpqCMVQCZ;z+Dzm4p8qZ6hk(-G#w&cCA#X&Sg|Qq?1Dh3U%#2fE*8CfP9t z1Ebqd4BJDtvTY4o>mLR=iwf|I2;?9WClYlG(=}<4(WXcY4i;X#bsCVjv$ZEuqFil` zCXd%css{`GP+Xs52sWuQ9gD8aI8T5AbWC1#VwzW^{b;(6_|uD>EAk*E`={bV6}rdL-zR*sh+VSLQ0Sx)oV0o)bm8 z^zSH(qPmD`&mV4xx17Zz?Fnd94$;L!C6=kJ7R=KW$11OKX^Bpc;+Zy=ckGhr$Fek- z_}MBZ35>xJbWI&~ z>mvLBd1Vs`{1(3@Ul@*x;Y)wq8-I=o7&K<`^U#??UR)j<9R1(aQzWz~Rrgk2|; zT_><&4L4EE=cwDF{v_AW{F>s_cpcR1A+m6YJD6pc%}ifEaf3Im81q#j1Vh&uW7ol? z{{qd4{8S78U;OlowAMYF?jzghyYB}YUu=vVyrKI$FVyQ)H_jvGK&(5|Izax_uS*@p zRpFN;j$2J%{e@+=QxTbW;6D=FrW0AS{TERO|37@y{@Mrst%!CP+PP-)iWZLTagDW9)w z#z5%}yL@3K!B#Zwks8K?>6FJ?bWS5|(P&oh3C!_MS>=M0?)9SJ`i#W8g(hEVeuz#- z?A3PcMXtVsM`iXu`B5sG!`xvh65I3=+DOvRbKedj{V$BPF&o#ypa;JydBp;~A!XC;aE9F-^HC8eNTqU7MFIAUF|pL5+aiD{Il8ASwJFk33LP z;RmSa-T6M=%pzC`mxD++Mf?I7(=QSCb`n=ng|LN{UZ?~74w>R0je|p*=m-t?oeZiz{Uwgg( zf=U1SR{vJn`iE7D=vToq``3E!UuA3E7ReatQ+n0KrCAZ85tT-zDAb9wvNF^mPT^3Y zMk9P>PN74lSqT?MBgZ}J# z0;=6|6)2MS*lU~h_>QyNvCFpV&G`!Q8#f!0C}mUW3XUkU%YYrFOZbUut>l9ZJZv~x zs3MnAL8-GSro(29Y3BMD!RU-yEnscda88A~qWW}(d%-38Ar%;k5?K_j8J*%?jq#>b2C!Kl~YKW|lI^W$b>kicBElsVfWqX?je&u{Z4n@l+ zclW0mrT^yVw1h@xKuqQ|kSUEloNX$~5am}Z40b{}KTf0neRZ@?m z4wD#!#F1W;FKaA~&0ylT92U4kAs%4!7@3j*!D3b35s)g20pViNV%+@EfkYht%RAr2 zU5llhepcQb%R-A%SIqN+U?0nP;kic9E@6pAb3|PwcgY4kzqf}Qg2TpxYH(K^x>-Ld zn7Jk3q}o)nU!%ctX0}M5*=E^}mZii^qJLhmPg<=QAAg&~s2xO;$x5U;xS)c>xKW4h zw6I5T$__v6OjZ+}Vbh1o{17PFzX@M-nyso(v$wdz#?+bC`1HGF1AI$zFiZobn)05t zZ=rOWxypgM@ohNr$@hpb7;bZu`siX=HLY251y*it66vQ4D8MK1xvft|hYnH5*U>9d z5F>%ejBa`egF#gO-ZcqARdXAHRso(t(B7#hQ->{k8TF}AYP41T>Bf3REcJ%lC`;fF zD2i;Zsc*O|p%1IeR*lu{C|yTz&m8bSu5X^?e`B5$ThWbPij3ZO{aW!|4w;J zFyC~`xf2+>uO^2Ohj`n;^xMiC;vTb364QBlB;-@%Ws$+lw75_n0yFAMRP7Kp`*z72Kt&~yvKLm2 z4GPchM%N6Tz(ag|uxF%yEK3ZiQ~hEckJ4L)gWCD!^%%#$qv+rsT#nx48LjoxP;lCi zl7}!Q+mMz<4+xb$SkmZH(uh9B^cGoXC}~g2h8RCXy#dZXPiz2u;}|xSVA@D*K*R@@ z#S5hw>?|fiZ?Ef>_26>7?r5;jE}W}gKlV6P!K%F)m_4ZN-VDpuEM4#(xO)P;-=S#tjklmBPMRgnLxxNsjTveyfg;|+DqB_VYup+5!S zg`j}$@r6(9JCiqB?hkCBf2+?1$j!i>hzi%Ifc(mPsJWk<_;Ei;*N&TAef)((oy0}zBAtv;?b4=t`-DXksyGX;!}U3^op86s?;3PJbml&=yx_6=rJz!1 zL>W#6eU6zuxoj$yivx!aZE{D3?ts&Qs!h>{td9rRBaz$*AjK09M*@2~AsAycG`Fpy zF!L!QGnrRjwwtuZqKY*ee;u+Ym$Iq=h4%gMC-;r04PgXU|6w=hT1~8eNj23Bnh3=~ zRd^5z1ys`F@`PPipcf%QZlcav9?0v%06B+wsvg;S=_w(R-U+bWP|=BhEPN3KW6kli zM^wcJ0bfuFsT%3@2MK-*v;brVF90Y#;z%dHJ*VIuaB#AItrQ0hCy{1oVRP4?Qf&BF zHgc)2sv7klRrUYZFsNYcV(j2({NKB!LZyEUgVC36*q-}LHW`5=M4DAy4fdJ}c-9zX z_}>FEEHlExQ= zUQDK3AFI24UIF>wpAygp&jZ+E*jZQ=TEg5}npd>NcA+~)k61FASE%aTGbZDM4}rGC z4ZyDJbR~AUb+%=5CeE>;DKS)-E5HY=%C8_Z$*sM~5+trF_S%DFfX}RZJx&3aV z&B#OLRNBnfRGe3TU0te5>q3Nr0^GWP+0p|0)vwBIY@jS^Ih7}}Yc*lD&Xrh8URSkR z&!Mg;u?NbDWj^9wQtGHZm?3e*QwcCGB20TTdddZX}}3ymh%TBHv%b&lLehd$?Eu@fIAxjJj{1&4le(i)QFFo|6hH$(D_+e}%d-ihyd z0M9^(avg49_2yVB3<%#imWQ06PLJOIEmDrTPdHtPUO||@JHwC3m2EX;$GzX;eRrZ~ zt#157lcQ>hC}=9EQ)-_C%_mDDN~szcH%Sq8J@`xSMZ`GoQj;PGYMG_e96w& zE~Kt?N(>SoUruEJvOAE^{0u^^@X``($OE%A?i(FAH2VQEdK-G@D6~t0=S;%J;g3t= zc6bVIc$43aDQD|CQB9l+KVK6c!{68D+efhbCXFxpd`}Du*CVHy| zyFG7`mkMUcgc7C4R4D^Zg1AhYDwB}!0;+U4CIAz5`7F2rPDi<+M*fI~;4SdqMm&L4 zI*`Zo6A;URLukQ~aUf4UQ2R+C^m6LB8xL_o3h>@)?P0k4prf2t{r+bUo?aiu-Sy=j zrt?3_q`Cjj>gXQ`!+*BlSxVcEh{j0Vx^*wJM(e@xAhi_m!U+vEp^N@XKo+wc%$0~C z=wtnJLJPHqcvs@X|hzjq|xd!e#4#%5f%oJlio1O+W`GQ1a6#LNa9osj^WWtEn7or}y8_$F*?#LcN z*^=I;1%X>kM;ptconP55qlwq;rno)RSY@fPCSd0&uV>b2U6BsG$qYmhA=6%ZdhTI3 zIfEfnez<~Nm2AwUrFfMB>xG_L8>M-r@J`YV9{IA9Y{Sa@8I9A=9h1&aT1ya{$!tB} zNd!lmR1HbyI7NXNLzCVlf7x^<@+#SBgN`s`ezN4;X+7p>SK4A}BD&M(Gs{KRmaol7 zeMNYPLkS(vuh7bHGk#A=K(AowQ9PE{d8bxs;2Gjo$|aUJ_&zi(P-nk`Be+JxE>;fa4P1C8C+YePO@;lqfU%KeXX&pMC4e{5B{>$`8nUd5F zGV<_kU3mUTIhrW{pn4_(*<)E1N286Q^%jFh@a5FD1=@LhP`II+_>Pe5I52|MnaU(_ z?TqwJOSM(0meonqWy@e&FSfU;@o!5CiTM5uw!%H?j;uaX3Z6m#o{3K^DnBhBAND?3 zR(ZV+q_n{F^)J#msoAOf;c*5Fi&OczHEb@hqq0u#`I|V_cXU2}sj`V|NhyfS%7q!t zRe&n>-?fAd)ptzep1sV9t9~T|&G7B#FI^&>{%n^}^voabQ~N-&W!F&zj(vh0=y=rh z6hqETLS<4mgj)d#2R++Ku&zlrjyOiWu#k9%GAMXlH>?0R9Nt7}Z~8Z53oMB`!2k#i z*`VlU6E#8=#5Kf)?A=$2fC7zm)H&Z>b5I+;oaDwuSGI`nd{g z(sW~!-dJ|)aklzrqG~5#>RvlSuLY1#Y=@tuZUIe?MW==?!M@Uft_ZR3GJre+Lgg^? zsrCmFxJ+Pg!mb+?=ziQiCTUaL6((!;%yi^O5THwlV-0#*jMhr478|Z28@F%zob2VY z-@=p|zpT9CPigCj+3tij+=9nr#*$Hagbr@Z=()>p-fP#rHG1a8KD-1qWZ<$_223QB z$v|_+L9I!Z+aK;&*U%f{1?H}5gWD4|<01ChQQP_7VAX~NGy8vxl=P&0z-)I^xN=lH zWrqB^>i%OXW62gAI`fq}JpUtg{B?X6`a7xPUy_dh1981DVf!B(=jK=O@4et9WD3Cg zfCUspJbH41GgMT148(iu+OC@tZCgd1+B-gXgQN)351YJWZnn!w#)-c6u zKRmCmdAEH4=xR$1ktl&HP-=?=`x5|`BIukCl%ADDX%-fq*NJbJVLx5JX zw~T-gnb(b9^^1GoU>kNvq)LaV&#)A>Ri^D3DA!#0ZrX<4lf}6$8q>^gWkTBhw6H_e z`&4SFQ)Pjl0Pm#<;dmMcY=#kw7uh<6<;>>wva>?XqNn38L|_#UB`#B4N>AmQjd7Tw ziRD#d#?GF2&eymS?}TZ=MU^xct?LrNl!(!;yDv=5>&5A`yF!)Mr*DR8*DS+LNc0?X zI;J@~D4T!U($@~l6t+RZlp>C4(TnvJGWjuCRjpf&yig&`oO3-;KQ5_!Ockv)R?!)v z^|SfG;|uC@9`RI%sCX{xV;_ZYB1X86dHJ{g$kw-4m0O2~O2Mp9MJ1a8>Aia~!`;Mt z;JSib;<`~PE`ZueF7P`H7Xl+JW$Y5;P-MjLruTnwG*ZS1LUBIxhhXtt`{*_lq+_=_ znMtXH+;-8t8#jS2;mrNP8mqkIHv+a2OBrWra|m^i0mURW;^S=T3#{H2DvloYE8Gr| zxD{cePYFsb;=9Jz3Ad~mhH=0wjXCzHv=&Fiw3Dn4z%_Yt$KZ=<{Jyhq{IX!p)w$M1 z7TYhNmr+WW?Wvs#ufk=Ioe^1UcE>6f$KDfzS?dlKm8{NJC5gO(`fg{c@cKon$cRc0 z-|pke;)WD)A9z-k0=KEI)N4e7H7 z+=dmw&pifL9Utjd0L&fOQGgtD&XGZ%Q)Z8E8;afFJ)uX7(!)c$qh?3A4BJL68-K+y zhN$d0)QO=)AFMCP4Ph{1(`8bbItr4R$2||Z)>Kno&bZWf^$&9x42lFv{83iDaqIar zAd0GgwVUKv55HgTm07$K*J4l`J7H2Cjlw4(YuAmxzY#2GDQ@H*=VGS5_@qGJKQN4? zcskA(9-Kc7OPDk;l1}-jKljkGq*1;tU}EV5-1xyEPekl6L~hU`t^Z~V!blgMJ)`g) zxQI}{LAujMlV}s1Vzu|5LsP46va8(J(3JZhL(^Y#nbiMFF8lYX>A$hiU%y!BU&6HY zr~MkW@9;vDu&01*{7OJT;NdJRdj7qrVLH_r4hJ5hS5<+$W4KJSa7?pbEcE=y`r*dJ z$FlC{@r$Xc2~$%O*RKn9Up}0XjX)mwqV|-*t3Uv$5rjeO;#vb8aIS$Zlmp!OD1j}s z19@;?!cfs$yznG46?B92e(FJb>fqkFE{Bp4XVLk?coRAC?p^(ClDb$zrc7ss(n zy1=DL2ve~nrU2U|OJkc(xiOBc0?DGX6VC8L@J&uAcF*+5n+78dWp#GB1#X&hlS-4X zd*^La%A$y`BEd}^Doxmu@>xp}xb}-y1!-k>jx52sR#l$Lv)qGQ2cj^7bQzw4;OJFz z%b~N#`4qNEPvr1-(U6w2B{zi2-6OFD&&Mdd3lkiR@SJ8go*0_b+y=Ml?jxIQ7K$@R zPSQS2_bAI2$xp(=UJ76oNf3et>lK<5+cQFlqMvIC=-=aJLd5U508vU?m4$Wd%YI?7 zW)6!|@WOSPpqURESvaqcq7@~O-$%+XJM(*x;YUd#h}cQ@IU5me^pphB=SD+13zV?Z zljBEZ29h73v3yJ;GCnl92I=>Fdaq-2T&ktZ7lJ6Zkz?SAIP%F-TjZ8Xw7vd_2Q0WG z5OV~EI*RFq;GMmP_FF#Pp%>u23!(+{A<+DmA`XKm<$!@dfhSU*Hbj**tv}P)3Z>Nx zw{tb1{V+}!S-vIBP#L*o_rchQo3Rq=*>Yk~pa=@vFSOmc<4((l?=K6d|2!k2W{ppj z4&=e)BaoQO9pbDD(AmO^zm(RGsN1L3OtF_0XxbHcYokoWQND6VEag;Au$tE2MCFQWqjBOjMmzb~ghlu@Bq>06Vq0;i~Da+UVYgI8L-z+OUlB zMu7ANyYl+;d!~z_$;Y2j!@()5-tiSN0skT0_-oYsEm%g$LEpyF#MZ(3KXYDI;^rTO z_MziI^S3^YS;HLjUIFm?0@FgkAL zAV10WJ=glxFD;Pj54?VLbl-Cwn?LOzFWY{D+EB>Nn+xHQx;e6dVOMfDEMdwz$hTzI z8ZPiB2cCzpp?g^CI!y1{XFxjFJgPFkcy^grLnwDebLg^c>U18qR&OxRyK2DAAiK%8VLdiTv5zMt|t~|_IN^Ap=a`fT6n-Ms;3H``*h^MVG!M`1qhjIw7Gxr!@lH|R44peFm z5U=IJnaeQo>~HCA68`ljpjCc&5#PEId`LUmPK$kY)#gpxMlCB$Im=e2GIcifNPYKj{Gzt}ZMH5Xv! ztinA+ykkCqFAQrg*%~Q+@gbxC9*SU^>yu{lL->V7NA#_62dr%8TW4L2Qb@dL`WkxP z1_^)t_fn)Q6e6CzJGCAz^3)h}*lH@VBA(h9Cr~aiF}=7o48Q9+{wIKEF*TB1;P1zT zS3JUoV{%xG)E(u&Nef_N^`G%%M?hrH;P15HZ}Ih zZ;8bt!bZKLkRSOvmx2%<4e2h;Z2N&1cr57?^fr!E0qU=OAkd{KwxA3%lhLPBm`~{? zzAezpS>}P8i%Q%XN=XLVG!($`j`~Nl%m{EQ()krC-~Xw9{@SX3watIs%8~qk7Z?L) z6BAb!Q4@B8# zG(Z;;b3r7si08^^ZY9dCeJ58?BI*<5Vu^NKZ*j0XU@NK5%I=Auq^s9wj6g5_J|Ncr z^YSg*@0!B~BT8*ntTo25+jHuv?c;8{*ymg7v-mI?io(c_00e3+nQ9T1ghPA5y@h&z zc(gv%Nu*Z%jWM*U6B_qH8CI2fOVw_0a7JL@KJx&LA4MSjvPB52&m2KlAZi~&-PqoNw4!8kjP(k1P z5uIIsK@w*ykoouScjPZ~*61S?R(IF;t*81eSUNv7*OvsY2@6L{r0r zICJ;YGk#PWvR=345qI2NRZ;7V`9f_BrTcNJk!JGT)bxF~)wH2*5TMuN47mqksTrcS z3uS_5_?!k#IqjL3AOrYcl)VFYrCr)BToq@h;-q5RwrwXB+qP}nuGqG1+pgGl@}=>< zr@O~FJ)Z9;>^;`H*EMm?NpT0(x02iq{>Ipv;xhCO9Sc>!&>*)G#_h8ejC9?J=k^o39^(sohOUkB9j%dx>3RmiayHZ2bsf9R%t=subiV~Yqc>JAKn{sUn=KR9OjQ{pB z{^wHTU!c|gc~$xU^P>Lqnku_HAbmv-UUV9Lg&mWS=>k(iIMhjqK~w=l&hv_`pd%2% zNtz{&To9tAWQsW(d=f`v3U<9!;^yiV(cYU_a=nGn zc4rLOXC>dM!NrEf3$PY-$;I62kAK@!z~hXxzMhHqxU=Mbk!H*4ady3>)OM#1&}W@Y zKXkRn4?wxf4M_H5MdJ_X>!93Ggn+VP47t4iK;CRe?>BG9fz|!0m1*8ezVgTQLgoKa zCE-F40J52IMF43n#!9sl5zvIz4JUol8n;nC(vlIUUpz{ts%6w{r0eo7nGOV5YJ{{^OvL>1a+TsTIh{!r$La!Yy)1v68H@*O zEG;0;;ELQWt%oIHiBSzzhjeOKUmeqjx2?47KzJ3!{3OpaJ+i)6cBSA%+?ku9*uZ(z zAH8DU0gWt|6j3g1Eu7n4kSM}YQ`o6l6+2OZK-_+G*dT=EK26v{ksEs)7Mg73KuTCk zhT>S-ad?^VS4b&M64K+rya32DTwVW2dg)^O3ZDt0IxD__=P?%Hl5e>gc@hlj&t=h4 z-Le7_>!^bXErzmTG~YuxQ}s+JDpPXR6-HKys@S6F$R&Rr2um~xvOIo%$jj-B#ks)O zLzxbq5^Z-b1vb!3JiE+Dgh{|y3>Fbn6A^V z!Ocp|ab*vzc;ll@deRlvWp(d8f;ss;U5pa_pjT_DoT0;vgZRnK(gxl|}a2KGzEiX*Zq0U4ZuzOq{?0`L#Cn9Svp=$&CQ7YIy0S)+7sJ%KDAKmkz+{W-T?nL!| zA-)MA!$^`Tf4Kp1+f%EV%b!)-XI`HAdJNxXXK9E_qIxn?6BUeV#%U>^RS+2J*G;k= z>o8g?Wx?GB?0LBikXKfF?P`Y#x=dyocd=$HQ!+7U8}`$Hbl7}~IUNfCr29^GJuq6b zMwGosv-ZZ7A&N4yqcIsv;~N+Jm`H|fWG54MZ!-HPf|HIE`t4CixfH5RAx?b}hH*Ko zovy)UKoaYD{T)iw@kVtwJ(%9GB^vW8<$|@8o}RqeSjaLZh6VHNmLsm)g2n8UZ%iiW zi=*>#=D=H8GbergZi&>v$=GvLD!$(i^pJneK{-HkRdcC?_i-N2KGDk5=WgjdCU}-q z?WCr@fUyfermRjds!JIk<3W*WA!iC+MSN=uUWL2&kwk&kgNp23WOmrq;^nnyz{AFq z_qZH=A{^b_v=0!9%x3W&hAM9Mk@c2(ChSe#jeV4}h1qm@qijc+>QQL7A{#B<0LS4L z%F9d%+$b(k^aQ6TZ1E+I$VG+)kl!ylG9z<~#~Db*v`!H>L_S<;E?oD!j_WCc`Ca#e zkUOJPWeBzV28+%H%LUT3{w~8hGRvJ4iopgtD@+o&EXvA`fY(yO=k`5;oR?K@vs`hV zr+ZnEOZ+`!5d=9Ot^Ho?qR;g<&n?c6P2|ZfOzeT_ybEb-pFmq?DgxUG1w$7s@FRN= zW_MabALpLq_?7x@#iDYW4d>po{{W^^CAvUAZE|IMgSF}!$*iUIaE4#t5}pR5>xE@Z zG}7Z%OtjPXsky=goi)f#x7}7=nc!aNqM{$wCF#NqCXrAdD{2n5^spx21>}9ytS3DG zBYBuYIu4{LWQT&kk~On<$b#OuZCWjxKpBVI-z%;tDkBzSntBCQQ zn=~)rEWA-`g|iHzw0P?uUv_J)=RMO6D>?jY4w)s2HL^g@+q6sJQ8 z9q{QY5l0FTb^Ca8hXo8YehH|Xhl+6FTfpR&f2U9ZIWLFDviQ!vf}f1gxcY{#7)nXx z@`SNvw5ktox(`2yzc}Dk#W8Q@lBG8`9D2derXB@Y+y$y~VAK$6wMN-~#k@Lac3FUT zVzTQEGuL)we{titCWu`nJG6GlQD!?*VrJj#0=BqIYxv5Oy->1l}bam##-uMD`tKBy^SFFvjqXpH{F+3qV{U*hoIIxBTUWaqCGBlYCsiZ zP{E8(WRD1VfH0JaKC6mf%;TLD9J``?p=s)w8=N*N6=EAxDz@G9>e*5hQuL3Ebg_w_ z8GpLP6t=Mo4~5B^(SB$HF08;O{b@oU#{LYwZ44G;hj)GceLe%;D%N58GLw2C|2OO5 zU+CNUUnpg1ZD49-s;g&V_zxuYPjicsx&7QPI4%~iVYxs3(7rLezTA7mR92=?uJGuX zK!wDGwg~8}v!jbr_`*q?H^_$U@3W~Np&w8wrtyvAch?P{h2B28L}Ou?7H7xc+8b@o zk7p|js?S@8-fxh&(clP`Vo!>LaK8);+V|N3eGVG;PAmrHJB3Z_ak6*qR?)nJ#`NON z1iG4oq@xHI;!hcPbAO_8QrFf^(Hk3-Gz@i`&}Ko`%m5PzYiY+f{R!_|`L^dp96!i1 zmn=jOGj^;R4LICgD{>YdTsw`HPLTv;=Ke70y1brVTu?jzGzP!Z4?(fWj2RLS8d%zJ zOXNsbTOb^B8L5Pqh-{u^qa`l$!t5LGhK!R4G7K>UbJV$66O=f^kO~U)!lUATrYf^K z9jugL8t1&p)Q8Zjm8lUhQP z27{EEScRJYX?&?LckVOuH1_BqQA1HULYo-rgVNjh0%uz_A^5uuTp-uTE)sRHR!dhb zc^{orp{I4b~ZElrdf5ASjV_ zK;hz-yrVbaM8&mBzu^uis=~gtprNoHKAGYn*c8kxMy|lMFmZ~7vok4bXG#^;S9zzPZ4m+w1gkcvM> zu2&B{xZvIGCCu-6^Fx5+1W!-Ktb#OS;ItE`gn?J1a1M?u z-s}SIx(F}qOx+saSDm}JBngFj8@hYTRpky3U$aZ7ELiDB^=u0;q1_3MC^oN~Tf{Qh zZZTZW1cU{9fYhF4yFm5jEVuL&TI-Y^v#2Zp!GM%cyuk3udbkVUm2(I<>>W)1i8+n{ z@nD!&h449I?` zxdqK+3Pij+QhM?5Qz6Ss#G+F_AM^AM0pq7~#c=l+;v54Gfbu0eN8JdR@Rb+^;7A4^Pab@Fjua3>IZbvB-B%$+M=w8m)uPK9z?3bpNj0luAobEy9(;QI@9 zx&Ig7`(I{8N#bk&2I(V;YXr{O1Y1f$Etom5UVNR|DT7-+?x(2eX#HRyd%qMveEhW( z=Rg+Zo^8U_di5^KZ}E^>sjt5?H2M&&D^9MoM4%A$@njHap7aP5Vi%M~1Svy}inTxM?GD>ccgG)OkCZax`- zlZx-K-)LDy$~k7xZ93N2UKVg1+Xyd$0y$c)02go(VHj@F&`!P%s^8Eb+ZmycULe%h zkdFg`-0}kmBF$>8H*-Hw8APOTm57dW5=tRln24fLrR->!w5(vcbB>2Tt;O5|eI!n| zip08d(~x%Z!a-mb+q_r@miEzS~WHdqy6PhG;-UgFIaeX?b2LnB7 zHzlaqqPDr@t8UrcMFED;CW!V=a+TXJvQ$Sqr8-t+1VdeSd-cNQ7^u0cpH`;By1q8K z14@U1RTu>s#xD2?96|Qvn~T*U?Llj`qj4D>l157C|_cthd@ z2mQ*|dBTetZu|4-5#M|n-xO&dgzF9Xl-UJ+&^9m+tixZ=7Uu*anmogg6Mgd$g`UwQ z4IQRt2kNp%IT65dSPnKoZ4IKHosn6xO|aTV8e$4Eq|F#4{VH=nVI^f8V%S&7*qL`f z+LtaN;JIZ|Gz1sFTO;-;k}R-*px+GO47dOOhdB3R*+36g^U-FTq(2FJr+W{?UYW?U zfKPjs$)qhZZpv;c_M=nv5>**w|Mx6Vt7&X#y`$tA^$Y!un06nNjPyN@EL?B4fFp-cl#L1xql6tklZ zKJLu~YQz-JEuCsQ88VPxjG5ummv65kP^1V|JF)~cnNaxXB%aD!=dEh7-?HP)kEVhT z>|@?cXV75|1x~Q_9M!=M;Dc2YIWpd;-As^&M*2<3t8;;jOF|%PV{#sKvh2K}`glk;C~7=Ixd<)2?3Svx}mQ+-_rLxX=EWE$c(%>EvjMWUT< z!BW52xHwg~xau)a9TGAf7cLA)Gyz@n>3}0nH*GbnQ)f=sdZOm``_1wbx!-)NZwYS7 zqEReF{1;zRDx3Sko45TW+QC}%S8i4cEmQds?)pq@Uuo@ynTmqBEx`g4%T`wg`WqVv9c+a17C8dBG&ZDxG*f7UeuRF{|yuwH3$FX!iE@bd4b{ z?($?kf}zr{#8iRN91PuSR=y6s-Yo^(RBiCvhlt-w;w27|%V(&DoePI>T8@e-^p?8R*^A@8tbaHiXOG zX4NbPOkj&0`YEV)(s5mEhzd}Ro%aMY+x}IdI38XK<;AI351wzwIn9&ZMR?`YuzT~B z!L(HU@+M>!el;GT@DJQoW;E&_KJ&`?Lx`LZslq(OdU35CqMx|4r{z-~0m7&xm{D+d z-*c`=_#c#e%eD}b`ij?h{+@kkBA;tV^d)qd{MVqKzy1*ZUqp)k;Xc(ZFqP3hCNEr! zojasGN~Gc&<_hwUjm`(9X9w$@GQ&^1e-5=+oNXsb7&#AZ+BzGLUzFgr&ZPD(-^%_CwL&+QQRZeG3ukb)JlHW{FaeO&k7Xv!CSo{CwZ? zMte>EbUh^Z@oGmH;2IW>jmO6k0xFD3r8UYk;pYoR-g(YIk`a@O$OTb9VYg$Uan3du zMnfjkaQzjj_Z=l)B|%SYXn>X*M+gNV{|d$4i8`2^yBtb$`Xr9T<)SvE>_~a4GIJgA z4Mfj$jd?6jC{Lb_0;mGH&H`Gt)&|w5j-@7!UikWc_w5^jl|=#w>)7&!y@SN5)^7M6tF^Sozt4&>?kSG3 z-8K`2UtdsBp2zd*vj&f#PKwV&3&>w>xSzh|Lz*p;VpC21GOTY9*V)OWN`XwR7c5b; zMO0;=8&jnJ6QE9e*6&k)&*XG$RH-kT!xF^J3D?KX`FrmfRqNZr&{YkpRst?}s413q z^bS$Jz6)BB{u60u&R#m5hXlEoIyrWa=}+yAC&304&V3c;?~Fd{_VbQXNwKLi&C-5E z3DqUZHb@Arf9SCKhWOOLKSk6ycZo;zT?>yiOs)`<4O|)#ei7*+8HQ65<)0E|hvaZf zK3}}g_B(@Mcj_aaUAt*wPyAZ1jkOmsuL7(;dIwHktQ_q`pm#0`S+6=;U>3 ziAbG84slV(G8M1SPh)~5ag`MgPOixiIyrA<(3J{3YV6_uD62_H!dme%hpnxG5;pAB zNa(OAGaOUpU*fRhCHnQ(M>!` z%HDrZ8+Dr@Fh8}+Ic1RI*`wQQejsz_=pdG_yw6PoI|W;nYq-bEgZVi^jIX^j=RD(g z8QU%)cyA^Ec=eF{o)uk!1Yi^Ly!1aotDijc#A$5=P^qxs$S3odk@hF4;c-XFxCjek zn8wg1xo^b_Ei-L=yrZg-ZQ<6lthia%bT2I@ zof>RgCe3h+_aaMfYi0~8c>s6(;sbuFVg%^|%V8`z)p*_5d|A27oA3_nQ1NWVpS%0UXd^k95^k-(0InQk{M(y~V@cpW%I+7H3Kg8W@4qa632% zn)p)egS=SL^(e`9&TTQ}s9npiskra>I8xy`G^Bi}`shyPiOl&{63ogt!qhyqm!49i z3KwPl5$ynqzdMh>+1rIbdrgYoJcKs@e>5Qz^1J^t`y`@_L&42r3g@{3lYUMR8#4OO ztnQj=!LeS1Bs8tJOD0;*&!(Ak)@Y9%?acDg`t&l69B{?U)DT+kg4-#!39)FEBAmhB z+MzR{MYjI6Vr5?iNvS93Mx>MShiLbxhIvZb9Kf%ILXKg?hC1=Img~8rtqDDYmXQTx zWN_;FimPVk&*;4{?;514rBl8mKQryYdcd1*MEg270T)k3PZ>n1e&U~l>T(fK2#CVc+7Dy65V%F3h*G)?W1S`DD%VB-Vqi8K3$EPJCtoXB)w-VHT6a2jv!8R6XXb zdjl;9l>Mh(9-!LyyXIaX*N!xuJ0j3gFIQ44-ebWm2A_qnhlZa?DAw-RmNcDv1J0nh za3TGBK?~S(3S6}yf5BjgCOh|ku6HAU|9-4rCFVOh?xIrRkR zPC@GvTu0$j3W{=tJ%%G-FB^k?ghO}&eVFJmmZ-b2^9dLl-K(rdFg0*E;Uihn?isZz zb#GL+2m73d;sH%w(C-aa*39trt(L(Knvh+J3yz4Buz0NrQ*r6hHzrjEFsBy`!S%*6JtquhcP91GV4h#RKiYe`kwgQIA@NHzr_ojR*k((*5D zi2A?gm(9cj52Pnn677_}ox;aXfcX-sra;_!szf)a_UYTXbI1rr=1Y2~%3bTbjboN( zjw`f0xqmMoV0fd`4*d2@U+UZGRm(TEY0Pe~Gl=f)pl>iaJU-u7G`eAY8(_)WB*$Ny z_ZN3mcAF99zHKaHbfZk8b@Qzpp(bo+BDBwiI~Qv+lXJ|dUVU#557*KFY|~d(pWzgp zWV@)vb&YCLwtrvG25$K7fwRPFrkHn%xquDm?uYkXh~87gO_54z>``2u%{z87PVBCg zDfp95X_Q-{j&*ZTGS0?YKze2nFSNs?keMf@lpF{H1uFiom9*qnhs{mYHyhj(u62WFCHJ5LcATtB=>nu%w`mr^O&8f@OW^);#UAPs)#s zUgPI{CcYU=%?)3A#h8|PsWfd+VN*ULF2`jqeou+>pp-GjZrB#9ZEkv)7`ZE}T0(rm z`=-)UUwdB%9zGu2x7;s>%K)D~14bG{#Vm@!rxB041B5H)hpB{{m>S9)f;mzg;Ac+r zO<9w)@DS434UAQc8F)#z?;JP79ig)3+d5lsN9DE|17guvwcxRQcP8_d5r?#PaqDk~ z!<_+jHr*FY4V=bOu6UE|rkTbyUGaK;IW4@^g$&Z7yb(F(QOh}7|G?aKv2`3SB;}Ks zp2+3qLsoTtZJbtM<$I!p&A_%MjW*z^4%sW_Fj4(&PZ#UC>##M_$<~S-fo*D(&$#Z( zJj_R092~j{?*YNj1^`iluM>ZXGk-~wKrDgSqSUF=g)MP0F%kJTWJhprdej)c;Ts`I zB$qULm4LGEz(CW@&n=qfW>5|&%7;Vu5B;8jwhZz!*;Sx@yvhepow0*XXzyQ*s%Fj~ zf(bnOFduRLDi^pHgV-1|f5^$?HBEqsP__+GV$w8t#Yj1QXKi=uvI`6aD)g$mx0*S; zMIb-;mc3^mXebA}?BkjzSK`?@!w-?nwK5ymESY1)U(%(to#htY!R;@^)YNV(N(=%} zw08O|cBb$Yj$>91e|Ju#+E zDSDtm98z*=ur;}8H-MAbug)~iGrQT>)qhXa#(p3`C~I{!c09$8#(b^PhZUhx3pBXw z@)IIgCug+$&BkDo#XBH`l(`V_E@4kVb(w3Dfx+L0zqYEG(-6heTp}5{v4UjIN4B@t zt+^7SR|9E3U_=Rr4SCMj zF>!QbM@yvGsYkEpNA715)uSb%mcOHs(JqqQcd~g6H{pplyD_hce}>(%Ehz0jRn*EL zOLey4@a2p}mro0kJA?u>bNH8vrya>1`~mMifJlWL953QPFzyci+gs!pNaPnXWVcH^ zz_mBh+7R5*$Z3wSmS$Iv#Y!NCcND1A`Va4rK+In)HVji!Tt;uf;}6kxm7nNCGSIoB z(U{OBZwr6AG#ZD#pWyG6Dv@Lv2RJ9Or*7yr)xP~$$f32ap=`1%$$mm5+HERE=<3tE z7K7Ym8tCB=MN-7ef`V-}0YQ+dr9oB4f#lr3N%eI7E@UibV1ncqDK^9+}tL zj1BNlUlw0*h>GgC_4O}e7Z&Ni%~1b;$lZUPq5elx%KUQs{!LSwbjb)U@{eaV1%R0N zCafZ&v*ZLM1$>i2)U%lbB#Q@14ehPDMs_cgbozg1xMh-V`UpjA_9~!*5+kkMx_1VE{czlrt3x>sQaeW~r zPdwcD`}nZZex!8AqZc|HEmzguB-CTZHTB7JQVrB2F`#G7(3b6}@~>Zu>m~BC_4=4E z^d<|bz;eosGM#hju9QS#<4W$o>#&(CQMFOlHfonVX+_E`Av+xnyVrOIw1`lfg>^ZK~0AxGM(=)rr*|EI@tWL>VyV*10v4=3-4M7if zG2jX2q_^Bn{lna4vinvZZ9uCxE2J5l-O6c%X8!!9oq{}qyUQ%R^lYdbejMJ(88B{J zHkPCgQ6cLPh&9me3)-%u1J4FbBYqu+RlDcCk|u74Abgg9rFhWVWCu5`$A z9k_(|mf9g7XJ}l@t~t+pZXObB zDH)&WF&U@OLN${BOH?sg&r#_V>rh$SHPUO8iJuuBURD6MOLYp`J}0)H+K!wa+xi0e zAg=BVrTN&*(ehot(6r?cXi$xfLu7M^mqKQP*A7|%tHK)k*l8Vn!}i@=)T!S007ODP zxw9V@aL46#41PBkjhdI9QkY#W%Cq<5-4Fjg47oM1>6oQmqHB-f1vvRgMkA-oCh}v@ z@dbq?0o96}+=}elEGjXtY8 z39&EThaz37$^)>~O(M%jMP9tb9V&x2xk4#sLLmkU$ze=y{L#h05PW<4m~8z`G6mi0 zOZb_O?Xe5$P)Glzm>(mAAY>?xJ{r)Hb!WN5n7>uW_4vF<0K`Q!uE^Dd0>NSeQA878 z<-BFp^?ZNLfwvKtbQsQypoMIfwM91|p?fYick|Wy^AG7~-}-LN@^~vd;n!o}nz_4I zvVFM1SF>#C(k{7?c_T&B>qg<-Y3{L&LFa+$dhB-RlQ)tilK_^k;R$eUPcb$BKBMN9 zE3Cy5%pzpuCw&3fBhJ|hS8s<{E8m{}&0=+*qzD+sj7C`Cu?UVamaZ@I>n?9flnuv$ zw0-ui;$i2R8#t%kd+O37Rf}oa^I=qGS807fgE!??H>ieUq24z0FUTp1tuAelmk!5)$=*Clsk;93`iLauHO8+?wvjEOqv0E~tMq8y zAbqrPy(j`>*4ii#k?-#mCQXXmf@hj3EK|$_Y~ARSwG+^_)jsyTNBcHekBDa7@a9mq zAK%qVG}r{+-r@3tccs9%A$6bm(373m0!;Ce_+@nUBle*}s-0bw+>d9$3B7P#>$@{! zOn=zn6PL7w-#HU>XuSl?8=C~=1-zj0;UL_26XZuDYGsJ30O~3~{|@+%Gl;l}zoZ}A z|0@0bg(jbW_dxsu?-NQ}JD3`|npzqE`({{$;@_KmK8)0to!Zu8!@_i^X45S~uOapM zrG38h=SZjQZSg9!45<`YCxqH$@2Ii&Jg1R25C}q^K%tazUqu7zd(krm)0h-Ggzy` z#ee+vMCkl2WEYw;m)97e61DHsgSijJJ$peizWoD=bqK&cBq=#6%!WXWZqDt^zzu z0XV^cTv9*&Id*;FJ3>I7k_;BtwvBgaGy?ItzLvrVb;s~g&-EG3elv}0V6-I5yc6uwX3O5zV8BI!?b26qGi$SPuMwKM;W|n4RJ>N)Iifh}+h3M%@7M~I1Sa>1Py28LG9DB0{;!D6R;Pl_CP#=?ih zWf2vlp%PXUU2?a~D^G_}cCRC|6{W*=uuEBJ2g)sCBa+i(k9`7xs~z3R0C4Wc8iD03 zGX$Km=3{-(GHx>!qV}h%K*UXr9h?OLVe@75y>ie2Juua{AOfL}^aEGtyq`G_#^LdL z#_?4~$R3$b7n62>u&zfA=MX0iS|^~Ujj4@jr)Ktk%&Verqbqyi^#c85!{~N|S~f12 zX`Kj0Nl7K-G@7!KRv}YN(kUfc9~Rl2P+zRXDx7`un}ub~4q{}vjePJyCh^b2oniFmGf+I*#b(i37%+y|GZwG7ptqv)u;%FAc)hZd`WWn7n4_Rs3DEpmv-)5Q zmT^p7wECi%-Uy?xC5K|Wp={TqP?*}0`o`h{EY@s^gR;dzd@;QWcaWiZP)x9#Jl*XU zo$S!IZhmatgWN^zsch8S+jl=$HJBm zJ`7D}v|UB>d}#hI&>3G2{7tKu-6)y{Kkd<`)8b15H>Or7!Nlo8&-TZyrCyG4oQ%S< zH4te3I(=-{_87<(;IB7uxT5QA%oLn#jgru z3Z8)(L-pGWNvyoDdDUpmn0mQC_u-ZF;*NHK{~RD3^mWGXNKvHJR}*| zjjQiu4C&Rmhg-E@rKAbKVV=i`eI+sfTm_`G_-DK-KXm+Mvo6E;ypae88UNA22m0Xi zLY!-hA)X5{TZ2#)2B1*#ZM0x;E!n$@Ghehh@}QHwNnU1iimyP_2_#GM{jl!*Sv>PN z@wBtq9^S9tn($y!9%W}}GqD=Z=nLGKl%Go2OA2=3MqjS4^dC!CF>v6B^Kl|2t+~Ly69g~Wsu<> zznF9OG&7R>K(Q`&JRx_0p>a;0AW$6N060(%pO1=2D%vEms_o%zhLro3WS?0T-qr~7}yCqQ`VG0VZuT!6e@%-HP^De9`IVr}&x0>PG38c1r`kJ@9sP_!NO zf2j9R1-q6ARd3!_y7J>T%wCkF3CKrHu#IUeuBW#fepc2`o>SoeX;4$IQ#>yInp(0CrUeV791np&gIcJ4Uoc<;+2%8E!nr`%}NS zbOM2))QixsDwC2SmH;27>kcz88P^)SMOD)2D##+jlK?;;I+$^wYIp|JD^4Nzb61hB z3M%;sC5iRN=Itc1^1Yzw znD2zlU?!B|QCKNi4yJ4KE?XVGM)E=J3_7k(hh;OiOmR zf314Qz$C-D@%!*=k>Y`n1WZ@pVt(KwX9iQ--f0e?7k1yv1UplnY=ub6JIQ+)3wfvS zau3X*9rRGjNGpRjwe7}PVd4Y0&Hub3pHK(3Hc_7xPSQY9epgWk)`1!jmE$^5hu${L z;ug@)-XBRN|E5myt#Ow&2>F|qGoDY!pF}w`_3qXhB)NJmp>&YyPUev;W%_%1M^XlS zn!{Q`+pIXf^|l!yvQ?owN}axCpw(1)EX$?|-MsZIfkRB@iM&&E<(h-K!|O!5ewMn> zh^mn5+bufd5sM#$taVO89Jv$5G&&xs8M?=FQAe1q0=*KSFJl*lpoFCD!M&F$LyH?~ z#tI~X*6Q64VUrvs3Rar~Rq|==jgn93khK-c-*bVr{`CFPG%{S#?Ngb$CTiU?Tn|-# z%Dz@w+%R`RFs6%QQDHw!DYK3{wQP@a9)A7a@(k#9)i`hojP~WZg}zeO=-;}kv3uhV z+MzFq+$II~^d)kPaHI*p5hm(pvC&X!k3_kmQo0r@>_s)EACBHz)17|25)7(IG%9#H zb;nV=L&$~BUhIF1FHLFsB_8bTN=jN$3u%%dU1Hd&F|dwGKXj$(hF2S*I&Y-@DK)+q zwjwJ$NPGPm7SgS#p9IwHG#DOK<_`DF^0ybc=i<|!;!DK-1N*PD+<(5ve_g~@aJAAm zv9q=^b^CV&oT;!TjVOntS=3}Y_D#G7sR|;uV+7YkFCQ-m{YPOKsg{^OS=;`Mkrfz$5pDdqsnFDoz)V=l9>+Q30p6wCf@I z5T?5HbT8?NF^JqWb}YegJsGrN0j@y|QdXy>atBTdP2&{};6Kjb`)p?D)1%DT4HrzV zuhz1y$-A^JSyz?LvI+m+SY+Sav3pZe(n z!hR(th)A@KWY?o3TUnPP`{U~qN#s#0og{v^_lOSc&vbV}2?AP6IL7LcwkDEGsER7* z&K|+!*xyMpXrwBv)C)htl-m-ayr7aE=7E*y6zdAhl^;k~Ona*9J!^s$RD)C^IVd*C z=}kY^U=X5pGf+JR37D-_!0Y#)f);9-I!nV7WiqlXrDM=8J}#{c@@dJ&sdRrDQ0_AK zl~>^zX!IJQDbo_|krx_{>!j^`e7m@Qt#S(6pzSkgt&2~}!x**g|hAG?^ty@3Z040rlx|2k8UAl&@I@2Zhd6 z-Rm=8bYWAYNNW?CO9^&VxfDQT4w>P~HT^jkiLVzQHbH)&WSb4!S2GZ-+q@N=Gp$r# z4Dl=*Le&Bhz6r-yq1SJOv?}Q0jxA|%uZw}N$CL&okz%PERkB>EtwGx;4~aJjkN_78n*YWO4?VBaUQ=Rv6YRB_D3*O1Qr^$E&%+{5a;`6H=N)(FWvA) z(kRUEolMeA8w%=3$J*&Hk_v+R004=TrW204un?;TCB}M-f74wkHVT$J~;qI#!Z_$TPn;4(s>1I%HB(5x2-(cpVr<T$O0oti;H}l<~l6l+D_wNPy*-wU)5rPeMrGZFLH3p|CQnrTXC!o|&cO z$nP+eNj5i1BbD~1{r5}DxGT^C<k5>}19hz4lV7}IQ_8eaXC?rlyV=tqJEt zY2r|tGU@p$NBkhq#pMT(dGdIX)`2~`D?qCsEUK;}SXOZA!<*9#;77w~piUomB*;VnxMkHN5a?R=BGWNP1^>Ut+?%IJ*7E@fV6py>a{*gHl?7H;j@-LY-kwr$&~*sQ4IbZpxl z+g8W6ZL4FalasyodCz;^J;wR=S7X%}tA4EdQMJZ;=5x*azUPmkR^%u;MP`*@?^{b= z3T$nk57DUHUz(op1PD=Mcz!WY*UYwO!>WOf_lduteFXGV88i+7qw>iuR4pUCQ2c!> zxw+%5FMUl!j^H-)qZtmK4)IrbwA6>#j0u%pKS?K^p<>1aMm5+!d;B$9J+lOAR9I`6 z_gppn0)P&z^^xV?fsDPG@4LQ{)}ELhHv~C7()n2l6Y6(OmPEq=+>Bkv(nn6=KjP>V z$yI%a7Jx~lShBR2Y2Hgga~fNPa}@u0ZwAc?6fbK_WEIQ_ki#CI{zWekG|A3QOk^DC zO;uY1m+;N5o74C}OyW3&NP48#>@JvoS{Oi#dX8WG9BAFfeqn98gH67tO@72peuPxN zqfCCpRQ~vgP10bz(|-781GE2Ld0+3VK{50HDKzB#|4mKQJRJXLah9y2|CNS_#-Dg} zWNl^e_;*)TX9h(CQCk>XmlcdZfJk#wz|eCQBzRA@R}E#}%Wrr9_V5573KP9L7^~MdPJ@WAh%F-bPRgTu!q`GL%MLfk2_#xH8=Tc2xZIV}TjAf1`+@K~dQ* zq}Q^E6exQRa91uLr(lOX!}x=l5{&~4g`lY;+60iSJdvx5E9wiACH-&J-@k&cenzlMfBnb*=Y{`u z=HO((Xyj;QVrj-`;$UazVDHRmY-VKd>SAT<{D0+J{rjc=k9@2DzEr~2)y&>S$;shs zX4#io@arq3?OmK4oE^$i`&P7<~;eCGe%8SLCn zWTTgcD(&vfogV({-FbEQe*P#Z08tC;r^+0J>cmyHhn908!D)`phu&j_p6#ylr@MUT zOPZ_P=G_iCEu)Zwh?&DOxWYWZ4h_MFt&S6^V{FSZC}@2*xo?x+K&2?7v^`x4!J)hqP!ddS9}Jy z^O?Jo`QF6Bz{GAr=oB8W0CT$cmtBOXM6ibPwmn%^t|P|kPy&1@YF%S=k^ZSLhY=S9 z--DMDNqSX*ArJFmA}fAmB^V?erE@f%I=-HKAM`Hf6h}3L*TN!}dr14PQ)pRWo@JBS z|F>mBbzUOK2as2myf?`TTXHP8ad+b6w3E1Q6`S8r<%e8b4gTvUcLP~%H+ouQp03&Q zL@G++fL+@#UWX;upWr|~MV)Gs)Ch^8CVZ01n>Yp&J=V*!bc>Sv{F0zA)jod)e)9Fw zG2D|{gZ6oWXq8?`hATgaSHY!nwIPdLq`;5pyXs>UVbK=#LD@5ivG6~J8Tl5AH#Hu5`$6n%sB;bVcqNg&_N+*nf-I%IdzBLInh@yE@1<+Db8HOK1H29b}eXn~;a=71TiaDmu3fFEXPr zsrtTbyhz)D1l@XcVRV@K)G=gXzCI4YU~SLI=M6^M5qZD*b$bY*)Qp4WGqLZ$iIqF5 z3C^QQRIG5n?sHuT5O47swXh5jzwPk2KK?zeP}`L5p2u4nPPNgfG15EsNo)0QVg;JE7@ z-;Q(+FR&@vez)7FeG_!krG@vmzOUB4N7uk`^Pd>SF#rBX?^4Np4`j;mD}TO ze7gh|mn-Az6~Dg@Q1>c_QGY76kZhGEC`ZT3%Qo&ML)Y4+iGdHtO4>7cEiPj&$A45J za`w1KGy6Aoe!hM1z24h4CpY$<@N1btpL8``K-spDrpTu}rr?~st@|{p%@koqhKTp! z|KO~C$&TTe(M0`C@6*$i>g;LrR%qnPS=Hbs>YbvF6NaisCurLXK45d4s|y>?7`0(?WAkb_R?_iQlfotx0*c2n~k<|qwke#y5D81oxJkN=zCtRitsjlsgXF$ zO6|{KNsxh)?r`~rNT^T_&Ff#Ct0-s3Cp_d0Pw@?eLW8!{zMWIos8p9Yj2q;EN2*;ffuaQF zG%A-+%r|n=6%n{QTS0Rm6zcs0hTZ^K&aeHGU!Jx#J4^{pD+s^NIhJUi6OdYfO1-Jr zM&M-th7y6^g50D>$ujUulppw6EyL&4_?3q13rrTDZ%UzpeHIv8n?3#L zw%ro)LuanWPt)|mbrO@2ZsYmYz-zPSk_?HZXTzj)+_^ZNd z{vQ>V&%Z6WbpL6={l_}_HJgWw^}rS|RurpN$*f@-TnMk#kw0Pp?w!9&upm8Gmo>T&hfGrlMpY+%r|l zgtdVMAE6WJ=5HBKHxk$oM_Fp4xh%}!Uv>-2=2_R+(-b75_b%n?@ljx!&a`(V9^$hc zxvn`6SSeMz<Gc?*2vR{`&S5qZRmw)WYDsu8`_Ihk^u$qEKq z*$*qory34wDd!^PH_f%EUB~;rVF(04S`t0Ak3aNyc0(*Q(vWc7Pe@^q3%)c&WcRkq zCYIR?!!!Ivobw(E;-`DP@q~R$E>liOqP(mDy3EgPsKaZgl6p}zpL(Jqdbbv%XZkiH zAR!MYtzD6}SA>g_6Xp`Won$Y7M)VSdIrlJ1%ejX9`1>X6`}puiUP)z<5h&bE(OL&H z?!qQ*3c-E8s@;H}u$IUP8kHK8HM`0CI)X}G-5x(Z|9;yd#xYQwcu|?MVr*T+!>lsO zK6BNhd9l-@xOW8CtP_b(T%k*s_4{W^h0W`5$J|$OM)^N18UJ2k@&2cK1)P z!V)ucHgU3Y{6Do-l_s>i+9LXg0}JbwnL7~~9M=d7orp#NRVgtEmNKbyPtYKk8i0av zbcfE!oJ3@>eX&aC2XdZu8Ok}18c0OGoBxt^l`f}lm3qhWpDI}PzgIqtiRq?NWx3m& z&f8yD$?MO{^vf0ZQ`hyW>f5&oj4i&bs44(m4+o>feg)2-ImZ@E`;CHqo7*=1;pMJY z%qI`!pZHFNIY$3{y`9cnNY_p!M<6l3^lGmi@+j$OT35x4tVT)icKU(M7R41dSpUcBc265a){ zy}SWB!%|JJAm{p0iw+RG+`((cj@Y?x+Oyn6IRq2N{3`b;d3{=b2RGDxg?cUh$wDV5jG{g zE&}zK+bdYvIYM(LP{3J3{bnO5-^FVIjup>`f`N(;&P@aHR9cg4sgGWaeO`7zxndO` zfw0NCwCRuG%0_Gav3&ZHHAIz3tCsnA9QILd)ewY$$RR_dlX~5hC5w-;NIyG>dSI<- z$=?~r+qKs&=cQeD3rBJ+6+b~ZY)4PaL!*rBrdGJNPVQZ$HoxKpqa8Uq4yDL2e}i3p|IyEeSEwj_sMDk=rPjd+S^fhd z;f7U|lL{JtDjzjurfY&NOe~BraZq6^ptw+f4g5RAIovx&H|w?6>cSo(#0OPo@3rX?kQsdg4m*lk!-LRXH|Q=>gs(ktH0j7;Lka#GPBr2gq_xk^ zodHsCm{?r+7FeYzlMuFSO2Mk^-iABE@2foq*P5WvGp!HxFSs1AV1?5cY$##6^)(9+ z6Yjc1REpst-MG(?87fbuaLh}>zwgX3qNz7SR z2rQcu&gp40j6$#{^%zivj|OXqmog@VJ{3Vf`?}e`Jcy*;bdmzhj!2)(*VJ2!Gd4_v zP@)GT6q>DYyA+T?keTp$41w&G3`-X0Xh(6>{ttPk9b|DcWD^Tzv~p-xBAjA5g_1-j zd`LF%RB~iuLIH9UXlZxp`4gZ?ZY1@SgdU}V<7_z1`F5jj>XfD$$zEdI05`3&ZEp2D z7Omff9`rwUfXB0rQ$L5Qv$Z8L&FP6eSRW4UEoTZJ;lj8VxlMEeym}N zAK5n>S&dq!$Z6#DO+WYwnx^21kEbGxjFP?{YL+_h>MXUo%zhK(DwY+5lN~D8vceqN zKZ1Z^U98{2C@jKP$Pjit%{y^g!>UpFVW4TGjx4?zTv5J|{IfaBnt6WkO^EEEsL*nR z#CjwG-3GcTgiiZ>*bLd#9D82L*vi703oS`k6O+9Rc`G>4X~3lFoUK1xw8yqSaAQV# zKaeB%z{|B9YMfW|LCKpAkEa-B+G*9ISqYQ=jfz2S0O}^kKGKjy&;s*XbSoGyorJhH z%z>LL+Rt2RvF2+eOT9wTk&PqRTT`hhLyF_CU>r7~B(zkhI$Un@w_W;E;Xm0_>#&;p zfL7ce{fRXXLdUf^xx>YckXrl_Hcg9X8I)KN<$wYVmJy01`KVy&%#GDbXP$B4q>}t{=4TJo8*Tv)T#UJTf{su{wn0CgQ(1K1Li)?-|DXk2AD(ZjP?&KdG4GPf7I-4hhJRu;obJB z1@yIKo|^lno8uAmgS{&ysHcRiM4uGS=R`ots@oWkg>b&Sfw-{ z1Btf=Fs}s|L>L(`AQ+H+^=OLsos^?!9Wj2Cg-$)}zu5i^#fj--30Wl-4L{TphF;YT zZ@{)+wGm6qAAW1Rw1w!-NKIL6R5W(SJ+40<^3Y=oQE6_*k<=wcK0x~J$afC_8DE^K zBrZipj__ng%~|+q{X%agY-yQ2(<>pD70fZHmctnud>Ii)oEf;s6LXH&ZG;3#X})jB zb1KCl?3=`W0DRkgV`k45wjU&_TDZEkQR$lp4`htM%DJE60X`NEV=L&LEA_bH?t5bH zZb!4&4%>dIGgtgkXMz(Q1r>Th`P>ob#u2}!HO+IzB0UyFIdT@fVsY#O^&<73VLVlC zYyvdJEAw$i}3U^jxOru4323G6qVK7{hPa` zR1NZL4DxCW2E99n#2$G}ZbEJi>g*)OY-Cjcx_zjwF}G_dITg;O%Z-0Y>N;L)X%kqu zAN$e2bdZooc)z9f`y+CD3JJh+M1@;!L)c~uinmnFv6|CNLN4pLhTWyjXw@g()K1md zeGw@T7w&{J2sUR)XTo9eRISxxASI}Cles>ez0GNH^3raYlf47tJDGA0uYX3Wd|(%K zlCWG?Pg@@Z^-A34r%#T+hO#+{V2}<{VUZA$iuV#nMZq(%Ncw`WWQN&!|8O?90U{PJ z)TZmuo=NqHn=Uu{RCh4zsW5$7j&dQqoTXtDU-jI(7*ExPYg3{6DGLhAKA9lc^fbaO zW%>LOkRNm^w-xj@^G&sR^qH~@$4drv1=FR`)@z1MY~LxP_HZk?ovB*MDuFXrP3Gs7YS={Ul;CtfLctd;$B z2c_Tl(nER0$p4_-CBq)Giqy}I@R4jf2adsX%Cf9yRZRK&S7^&-oP6*;yCI(kHv%j6 z?|)|*otNez==w%G+nWo$p{ZWp^+hq?5e-?b9K2~2Cm^$ob5^M3CStJGyo0%hp##H^ zsWhbf^fxA_CNdH>5;pc9e|f(EqEcMa7qex)nV3cmp3V$lkDx}T@7pkGEEM06|CDuK zATPKDQZwu;6zfc0Vb{DP)t@GqIF5{m;}5z<8Kr3kn3%eo#jkKKC-Q3ESqV(L(LHwf ztX;rt))0QH=+_hEX7;krVRS%@*$lwG_1M7RW(7>4CGa^n8x~$Du5*46xW9Wop=X?& z`2^rjRGpu7Wq*sUp;eX3IG@Tszwz+?bD4JWb6&_z2!;$~w3GG+;XL z#VlsjvmSK04sx+$YqXVDYq9!ZjO=a%{=lf(SRE*nd5}oRksO=tSaZHN0Dx1^#T4ee$@9EL8sA7`&oH$P5E2YfKzAg67 znMi!L=TDh!tfB4n^SGfyOI#vhP=6^qhfU$4gGQqkdppqMCHZd|DS8X=>~|wH1CZI| z2X#o~IFpQC3hm}vABJ!zUyLNw#pAwcF%MMbEt#YieDb;di%C_fimxLb7n8Oy8DUQPK2q#T#*D=45Xa)M>LAp|i+RUs#s+qf2y%l% zh0=tR*UF-EEgGd0%dJ9Z(ZF$h5w%eI#B;I__XxTjlkQQGpX1 zUz1x{TjI`7@PDXZGWJSeOyIwLQ~qM<|E*;H_r2WzBWUTrX}P?ai=~69`ahsM*}u;J zeLt72F6+FmhW0`B_PSP{MFA1YA#~pS-F7uRA&$Z>yAa+(sYL;X%all8pB6_~I3X<*3Gv5Cw79HVaRYf>pKMmm!_MnvBj*>Zoysqan=>@@?5Up=R56B?h8w-ev;uT zGJ6{(AZ2)c2svFz+)xDCS9^_euskHTmZHfu2HwhcY@SSD$R{QuAnni%ElM46fV0mf zc$sNgZ}v0^z0g{rAJvGn7QK@j%Ya3LO5A4EXnuPegMMr@Ypg8Tf1lk{LKiH*>8{aE zHFaX&dCfF5t7~n-m!wk3zrKWM6)pQHqgzoQErYx6z+Is=f5*+YbmtnWU;YWE17@$w z6SE@5!r_OmEAI-jD`(%XZr>)lKk4OfRss%u5vF$Z?|>Fwjh#kOL8V`seA5W|eJCbv zXOQr!jlqkJ^5YIo-ZdsmcDt^k!OAJFCyfKy+a!JcFHYm*7nuZO`3<6kSZOLt=oPMf)fW=kB;yNV+@%gI_u@U~u)+ zCm<04l@%{{)FRpu!AazY_0MBg=`J&|q)P;(t?k77V}l=j#`;<*o2PP96B9_lmp%`_ z`XC#x=-L-2B<(>xc#xZ~o?gH5&^Vd~#Pub8C<=El=VpH=sB#&a2--#_re?F!uC z?2}^R*@|Q0S?X_0EG16CFk|vQrIPnr6`a1DSgc4E;$+&;*c{P7bCO|m=Fy`#3r^-i z45nd>x)FP$^vzxf+I@)Z>?`>oY42}hI*4TpWD@LiWMf)|(%!%WX~L^vmVwZ@>5N~M zAg8HFZ=oPj{X0}nNnFKLl#_3A^7GK`8f4*^@88(V0n{J<_brBX1$$Rg4%mXiw6j;d z6A2k)>>dH}q8mh!iGzxcH%Qv`DyBs_Cih5uAN+fD1!11jljx55=I~inq=OvHeSh|G zyuKy!li`#jgSP?hG||+UWVi9bNvZZlZ_AJiVZ(|(`dEnDC2P#quDty`QDuU1XNg{w z!4%yTq$uA=&VD_iyyB~EL>+)^m6S--vH47I1wQ_>6)P+zT{G|ne(wK=U+mu>7)<{O z{)iYkTbYP?*c<(W82$?uHfefz|AYAaq4QvM2niwsgOiAgFlC7hj2NMiK_QtX3lO#f ztBV~a^#DgH=2Yb!8tX|0d0_C#2L=}a?Aj|ZYI^5 z$+%6r3xMV|b+26vetUNBh6QD~IGERGG36uL6-FGpi3V;|P4)YIGz52%T&q|N?8Y4i8cP)eSEAFi+|`P2e&Vucxyuy;2jB%Me>2QK!*hyc zx$70*{K9SEz6p}sPh{|(4|V`H{J!i{-RLc8yA@^m9cV$uci!vGcieZkvE=o9+`-Vf z)A!U`^)<-?6w`NP`g0_hu;UsPTecO~t#jnXZ!F!9V)vM3s+W=LE;8#fm7p_7Qtuhv z;=L(oTk5$gXj}TZD@c&3mG{+H#z#$>0^57iGoQ6`AXzFEC+1{x(~}MxP(o9elqa6J z8*)Dy3@6Sn!&Zc%=y6vh6N_?0**BhKsu_t=V)r9+30pNvO~fos@MD0)nYw&{r{7LO zB+`{(LWkR7v&ectt2OPwy(8H@5N8%OB99VFrd}*PLSbB=TFY^kguWO%5*q}ZSKo^` zumEtS)P}DkXD9Dkql!wK?5eCoZL>rwb1y=k2VB!}!P3VOM$6I?%}!V#(UZrg2hQ`T z2kIG7JuJrD{ZPrw6XTfKPyxQKu!58BM4T{-&KjE@B}n#j;-`ZzDG*GjKAR9 zja4j{4e~4iAeIK0YM9(_!*3E=;0vISO4e!k22reAwhA!3`O$J7$snJgj_LQGJ=#R& zB~Wzq$TW9Gis=ZDP-dm7K7HTRdK0Ncv;MkeP_vqb&Z_) zL-6v))VpDc#v$n@E0~9owlqK0oWEpp-BpkFIo{+;lSTUGT&xZg7%|x5fhl?ka<^kt zd-r17t)&DlL-Iyyi z{aT(%kVfO#q6;^$sX#|9{p`UrzkMi@^I8&yj4-e&rIhmqWBG}aCWSkBHd1h(5pFm( z!XZLpQGvXjY&QK&!$cwlKDo-1&a^B-7on(WGc1$pz3Z8Ft2lpeaQiw2(@%0N^2ZHg z$e!|xt53+7{0k+2qIS!C5m^${%S6kExHNP7;;#}amgm=QY7og~+=6!F>%*tHAEs-H zBd!@vThq!LmBTzQXS;aRcKV(oQZI<;iUBG~t$K9OLyLIRh*0B^qsyOrc8s7~@mK}t zCe4j0axk~*y!|dQnmSurJ=J^5fI7ZBSDTQff|yxJNc$mrxCY9oYES;90*V9|ZtWHq zxh|B*Q;8;$gt3H*nwldA2x@bLPVsLGYPheZ@`ZD%i9REv5uGO%D4(rZc zS8@(nxne21hNR+09Y(_3BsD#4-g)T*|F<>ZbYB*vByK% zvT#eixs7JFc~T2W5WfX)*FCHI#Z1vaZng~3MD8pT1Uv82TXuOUFl=l6axp}ClDzvv zwE3WR0U3qhs_YEDkE5$#8t<27ZkDQi!p33Mp)`R}9`&8ew_EJQPmk)G!}SqLwWH|9 z3^|%?)4j^RR|c8(3(0ooydQV1V|NVmpS^ddpPBHq!0&&-ov$&IK3aI51EE7AE$#cQ z_4>D`;JPppEq$Q{qz!^KmQYHfhfY6?m;~1mGyT9GAC0&k`%e*(x+Jfw3a-?+PI+_L z*!rT)<$6KXjFCx<6{UnB)r2Nm+12#x2(lZ8U7L_87oG49w?p$qsfguOcu!p~C6Ntq z3i&%`)Z|E8kxHJKyE%jGmxqSSnQovs~AD zqaf#%#kL9htWb%!BHLQwEOwme3f3mOZZaXvuh+t;+Ji%JkqgqJxjKH4D%`f#*sma% zR0l;Dxls8Ro>E8Z`x@U%quBtEpwt1) z!!UHtW{KdBY9pb_B8G$#WkGXq9zwfF2Ay5a?6P)sCnsWheDWs zK$SQI^Qt{i9l@(iOmdpo`!0T`t2JWcJ;Ly9Ev-!BC17|J5RVa%-yz6P^MbJ0)gD_q zo(VWEW9Wp=vyOa0hb>+h_Agrq zIEBO2xZK+SCuyPtU4$zy{zb7iNnwOSJEX^fZBeU|B`dyQIA6abWA?v~h@;3TY5|@_ zMTcnZl#P^eT`_!Xcmk0yklzW`vl;^p{03Rge zu(B7nrOpkjDdmz@-u&vx(wYLWM+D_wKvak$7huC0!oV6Mz!v084#~K|ZGJRER*%m>vV`9sLvgHBa&S+VG+SY{m%c zpFup^*|SX4|Fk6;7}A4j(aNlNqz!8z86Fn|H|>Hf#jszHR9aw)npD*JR|zwAfIZcR zeRISP-ogR-%lb@bHUg30!Y@FX5sr_o^uttW(+HhdfK^n!czG8hgPY}HEvY%!)Uii) zhcC*54^C6|*}D!q(x6tTre0{9@B0ZV1<`OSizCi(OV&OvnRn(TAwQx#k%cmX{{vE7 zCe#Q3k&*Hs$42|FjHxM^=7|AcXq-}P(#{!5J=_1MO981+ZH)~OOPIOxDzmL zhroZI9cv9VqlKvDAj-fdF^4l07jj_{!{huJ^3&2JERFl;JZOF>alZMtkDr!?Vb_Q| zX+KW@VNmdfPC|_gIfknj*^WGJ>pv{2;K@IXnMh7l5GFAt` z)2f)a*OOM)O+7CBJNj%s=I~$bTu$7WJNEtlvG*?^VRf>D{q`*a=l|aO|9j70>pzw9 znr22e5=PE0Qbx{}|LFaTI@sENiR7#t>@}>+e*D|Vf3w|d=qln$qJ5Y%(KTZ_Lo<`h zXMFv@u!Be{DI%Sw;sZw2KR-i$J^vbtN zWrAhpjhJapl za82y9K~D`b+q!`nuC9FjWfGg_obUM4fC3iA}f7=dx+vK#p&Xewkxs|9v5&2SIz7!J+e6q&)m`6PF303oJK4=-k3ha za+gsw4(vTiFk*fl_osMr!tz7m&t6ofHuP&t$z07RxK#2U#6P2^#EFR2T#*?`PD;r{ zKj#pYCvuO@BR01QXX{0GHa?)#1rGw-Kq7NrW0kGUSQaN3phgUU z(X1|YTPqX@xE`2brzNIv8C~-vY9?q?7`%fjh1$!CK;bD&Fz= z%CAHxQ{xLIe>pRR`jZ%wE@3=bA7nJ0Ci_~SGh-?*w(@<+-8H2 z)Sg(j!GE>Sct=f5-sHZ{^MD4Y*40$8q|Dssi*2-RL|Uj*Aq(RrGm~0Cs}yb!j8bv} zy8(McV>{ zwF?Ygp|BR&<#pT?zoa-5$>S|u_wTC>^bC=2bx8DsZ$G`1r1$rO;rs*>_`qI!IflAp zye63}8xU$e5oT=iF-w_WV9{;{N7tSsI_4q6r^g zm#0oC_-D$!x1^`9P~4|hzSS?0`5s~Usjs3b(dB_F-N?6IDQzXr#ZO9HzOdBehobrT zaH|Fuot&Vz-bbNw{>2VdKgQey1VVT{f_6Kf<2+{M$%3k zGzksL30W8m>>tr#0hT(wGX{<~Un{$k} zo`2y`jHapF=r3!&!plnae-$hN!KPv-7|BMzY4bGpah)XSQjg z-CU87m46b(c$1X~?g0gxk}a$ybI{z3ld4N*^=Zna{mQ0N1XQW}vPI}kG$z0ZVolim zdKTNl+Y#>*UUIl&U#q)ewb%;9(_>`x$K%`7)sz18pO#Ob2ecjrZvrvask=iFBzkvt zp*b5828dl+TL9*b1QL62^aQ-*bHdTMB|Tc_Xc63U40xV#mILFWh-fng4;*qE5e_iD zAohCjAaW2hlX0KqmZUl?4GEasTT-UIXm0oyF2G7o3$6lX{}!D)rA3`SMTwqw3Q4LA zTfh0PxXGe>!_yqYmOR%-V0rc0Cfs=+ zINEtV2CiCVr+En)@0Ng^!aa7uKs`&|nG8!VzVgKUZJ31O8LEWNQiz%Aq1RKMVQkrf z({Y~w91bejH2>+m>G_(eSX{VkPOIQra0)Z4IpW;TA%kvc$p{o#EPs?(HoqUwzeoUue5 zWH!oj=sImAUX6Qe*4)<|HA!t07w&Vkap5^repK1j;&O|Tfgj>aw`OCBr28^!R&`lc z2WayeqeSgoS3

    39QcWqU$KxX4l28x&yi-)vAE`Vv_Z-%9On9`dYPLiz&v4$&2Dp zyy&Hi$>F}6^=AC?FMhfM@GR448IFb=DqC&4kFetrZin7TGB3N1X7#B^qRrxrtUYt}#XgQcG)6Yu?=94HrRHav<=;3gW zEfYNCahcRMH752Zq*tQ(Q51-%cQMw;@FZ~A>w;>Kuo633Xb_gYpSUpYx{<@%ZGeu9kVLV zW@X1zhTWJt_^YeerP2C|6S<$ulT39KU0iXiW4O{>m{R;RbvdfaS^Q#|jhxhm|FqFq zoBU5w2G^Zo1do0~=Dlxb8F8f!+uHG=*YmujC zX|9C}7-9Vt(XpBnE_yi@;ydx}$U;v?BMYBq{N%}K+>3h&xHK*sA+nE6keFkjq-|i` z!i*tzr0`G3D%1LVYv+4?wg&kXraKwzozXXNgS^Ij?dVt3cbvi{cc@KP)JJFZChr)- zcBk^;TvFATE?lugPR3<_eSTwZbT8SZE^(Lorivh5XsA^Pg+>j+0G{g3wZ&5Jqdvk% zuRijdvYs$S_z^_<(DY5e{z_`U;M3g{XDjR&IcNm+c}l+j6Uz7=cR@fH{u0DMGJ}v9 z%W4-Qx)05obe3AmTf2Ajj^~eSe#%mA7=?7BsAbQzR;&TlnnBs7?^j+l<*Oi7m0v!r zA20C*^$ezH*uRdBmpv3jiJtEX=e_1qyQs6|BvV*|syGM2cus*)voSV4@u5gpm<^}L zh}ttiQ5vjPdo+r|%wGu8Q;_R22w;0|nn1S)sm2wH4 z<+4!Ficc?{Z|~6`65IM>A|eHTnyFYQCAIC5I_zq!!LQXqlBE=A?osT3jmHKrRzW9B zUV?(&K-MSoKS_rvvs?`tjkWSC6C4GZcD>3@bfe9?beD|v9Hn${(c)RZ0L4Rs5$tSh z{0l77PTiP3YU%cDyHHkQ?MQ$==GU7I^GNoQcJ}KX6r=0j{g*9}?QXGcHqms<&BDkN zOkh^Y2cye-AUZiX(lc%v8Q|xp*pAB~DqBv0g03zgsEb_Oaos~5(XXN78}Dewj{w1X zBb;-B2|@X~iR?#A#d)vx{EvApKR^HehKE>g9YhGnh@U6=SMAC$XgVNB_{9!E5m@>2 zmO3Z*dT{rfD#4!pD#nIf=UUls|McW)0B;>2zW}<{|4`fhJ49#uPs_}IX(#{Lcl&RU ze(4SAt)~9?$^En_M*$560;du}0!ZAX7sIhh6C~*7b6+ z`-LS`xYE;{qQBg9QQqP9x2?iP6znD2c{`KS0R}q$Z_D)OF{H(xj;k%_EB+^M#kMCo z!0W@P{ZLA5xS~7q#IL&inqfEpt-j@3LArn9q=3b-x=)> zV@u$@hd{A4LM{03Z}e#7hK^Mo8UO6h!9x7D+><4+3}w8#qun_7K>YY_z<$GyYQT9N zt#%UNCpRd#n@RA_`g>6AqmR(xF7n6ozP_*bbWeBj-uAT*sNl7b!-n-<==Ft67wmMp~Wf%A0f9h z!5PhEh{IILyUWF&`P&|eVD26+S%pYF^~lBVB3Fsoh??T$M?)S(G{3WqBVF=2hFCg; zA-rF(ic6~ESwtudSk11Y>BG$~qWS7noR~-a;R7J5-rx6#-~>>(bW(c)hiz34((+rV zoji8o=G?+WMDGuaDIL3g-)D0PAswxVQXzm=OsOGQ#--E|e6>?J zW@*$R&VR$-nfpMm!V+8A=0IuFJ!o&Nwj7MNWC+aA5cO@tX5Y;PTL}8AhEW^_M;o7v z@$T&TSc`%(bNU!5n7m}>dwYtnifi=B?sH#{%| zr_6s(?9SC_CzW3=u! znmBtjU=18t)zx}9mEtFwI{F>8OiHL!255A2HGulUb{ah{L9Ej98d&uZ*uZg{Qadg+ zeRZzEKdf+h>f%g#0NnDjifZ`SqZ}xojAB++EG=&*B0Ww4B!C)5DKQSUswiv)i0ebs zf`>;W4QGD$hr>b=b%8l)WBNG> zztxBKLV5;G@**tq`>4b(PFT@}=0;Cqb~#w?@#3c0CG7=w4*W$^N`@E?DjJUQh}oa|iXYn$x{U3`rL#61r`jg;J3DJvH7c_3FIAcjuDta& zhqPwsu{hnq0pVXPA>2rEzxVFj5>?GMRxWzuR7j%Cp5pTgM4y#8URqiQd-UhY>rshT^87NFi+Sgqem{rg5jI<#fcn z%}h$%Kfsdrxhs#+2+t-P2I^r)dskZ`_g(m~goO3)xbk1Vpcl)WUO zr=b7!TjQZ8i;EtZLHW$}s_{ux={FpXs`| z`7v5hT1^r;nRfqSk#zQpoN%RvS8lQtV}pde8%^ABx5i zzx{a+Y(%Q1{vWj!pgaj(T86W!Em=(RK@w?MQyS8S}t#gRD-va~lIBn~l z$&^t=CQYdQn7LEytv}gL_c5w>18ek9OUaBfEC%EQ058Oru}G`Kqo_1R+`N#n^HND= zR%RPV;h)|MSSke-;fv$vVS%`CKkwAawI_TNhpD+o!&se%cvI^>Kudt0 z+35~nEq<~#aT-s|;WcQo2Ml_=IcsheP}A-W4Nf<)u?hcf8(+3&pm{m{7(u@W-6z(Z zi=jPbdE72hmuz55iZ7+OZe_eDT^DG|CGpp5P}R7E*v(_mzV0hP-F3i7&0iZW_>mU zX*p~E0p6%5JqpMm23$vA4$7hxs#+43!l^%trtt2?4hVeM;>gwaZ^kz&HE+`bj`%Yu z0XKVwe6zG4L;&)Vd0GH!EbgA`Rs-jV)Id3C_1^-`cj-=PT&6B-p!!2S&9dS9>okB5 zRhs%SYBq!!pt68?AJH-(Ao@N?yM=Kz;5e_sfvln3O0?J#_x&@`eK~S@_W{a-p6l>B z;%UG@TD}9CV7D>g@!Pp{vbTq6%s||3$&70DqYTYz0=LbL!V#ovMEKw-@MuZ zb5l)}X5wSZSVbhbm+Fz}{C7^3)|Zd6ykuctUjuI;<)9>lCj~xQKwg?4306wQq5aSO z+MqZo<7Tc_5{0piy?Gjdx8-re9mo=oCcIP7KA+Z9He~bis^l#PK97Kf8%I_8)r3}9&Qp8@Qqyi)H28k zMX6O8#*oRb;lk`cHg;y#8$r^IEBRMu&vilBg(r_r!8bNPmb?|+G#{_i)tQV=<7;e1 zSs%JFp%2sh-%0TZ)4!RISk|EIG2vu>$JjN`DW#EqcSy(kJRITM9yi3^X|mgQ!-#+z z(sh0xE?sA*5>GNQ1aV&tVC3q_>O5uQu>nT8t|@f}YLQzU$cVU~0$B6PI;}6t|6=W& zq67=FHJz-qDs9`gZQHhO+qP}nwvEb4+jdU&y*)GQ_N=)*5A$%=I#2O%;_QgMcf|kw z2XGG@K$v?7A?NnMvS+3W!7Bho6k#UEZh0Ypj9xrQa^^@b_J=8NBuLs*R%LKg8%g2+ z#NQye45?>2?N!1CW2mHKeETVm(ph#oe#vQw`*WrQg$n$JJ`@DuZ}3 zUlMNB|8ix={?x#EaJ$9niUbP&i%}A{EsvydLESO?Kv7XJ@4}Y#th&@_dI;ApibpJ* z5pi-3?yceC{s+tIk87~e#c$gMGt?NQ{KT74(5z`tA}+$!r8g$mc$~!?M+vRt&<39N z#j6P$HugTNBSi2sjfq$IaT%LT*?2ne1}h!$9>=3GOG9^vXu2J<1LE7gO{#P@=Z&)P z!chf3jIy1L(B#KmVFu-3S)DMzuFd#pi7|LpOaAS zjFevsq4_syJ0EYshLta6O#&p@b1J7+coir0dFkoHLatuUqUZJKYb2!W`JVmpva|_^ zRh2PVPUgs5ird#Dv&^N`71cT;mGM|~#uI%?CYtA1&-4(=Fp=RT#+Zx;WRWiP)7tAm zztVfc?+B<|6tlGr{A6}C<$tbmQIZOlm)BZ8F?5tC_Q|kI~T6)?i(bCZDi&>z@Ug0&3i63_$^*E+5SL9bV)QYYW zBcv51{r;O!Qy!pxDVZsF28l)Z$%It-o!Fk?Z-bB@%M5jIW_fppJig2`62wwnSEMY( zt|Quwz9onS4&KU$`cr0GlT=8WP$KtW2T5dm(q)b#l52sLc2%e76N!i_ z?awMf;B2bgEGZRIuVX}9B%}5in9*NJ zB6Rt9c*1z53MLsG2Z?Ou{wN{%O;lTFf68`-y1&RB)JS1Bh=HmR!`~jzaqx9jZfk77 zaQfN>O9%z{e#ZtF`$d}A{WJ!E3IXTB>dgW)PV8my@yiP=ndyB;?HpAFz-OUC0CIC_ z8S>L*2*uO*MJzIpSwEW_gegD(Y>>b7a^g44z&|E_lXs{O->EgnwRwcOAM)&p*N6wt ztT)y7Uw`EQbY5V4N;7cFN+`YWeMeaOMBp=j$T+x%ejf((-d`Z^mm{%$1eT_UHlW0= zU}cT10Z$+&?Jpo`ANofoC04+*h;b6O-486$x>kUK)Pc-+R6ON)j57E?a^`V z>N4@7*P@9aYG4#oq0nW4Epl)?YM_61fi(Jp>ELMs;_c|8LLcdnS^A{fKzvGYbS!=B z0DR&p*}+3E+EEu+dl${Dyb~GYnx{6kvzbfpYwgyqxN=cwPC5m*c{0qMc43;5xZaM! zDHC)^q|tZe-?oGfNAtL?;+rk_WlTsdm#&zKvuu1jNsG;Y1~&nF|Ds`=EJmy zE4e{$*o0C6G8TGCl?mXr0BqVJ5W!J4Q7Ruxo20 zbpgB^Lr+N_lA6((^8n8(=u2xGuv`4if$<)Le_?i(Di6-%Y!N&--Mf4XoRqHK2U07~ zaBvqC#_bn%-nWQbn#gr8_OBbDUw1$)gLoyLFv!0MFZ}Vl3NGoACWVDDq=ga}YZ^>8 z_-B;%Ne0tGvTQ7Ej8)eiS2D92U5ePx9cExcQCa&2+m#r(;s;kd*}MuO2Pd&$Y3t8K zKCbt!)HB5|Q2UzgfQ<}Iu|iAdo}pf-ec;xKG^mn1cR>=`q2=n4iwrTxhFazzHU;4> z_^iF>;5Y|BxL`~4NY(tb@uIZ#iQjgAU%;*!z;5|*?~-ugT=nbRkTiRv-tQPrg0)%_J`H`bA%QJ$h3t~Ep-I|<&lF@lx)JC^5Z*v?LDUY!yJ5!+gw~_A z?wDm9Ib$xzjlt6Q=e&DiytDsZkG3iVhQB(!uwd^6LA>_Nzn z;uRs=M`2qnh=Lmo7J6l)yW!Xq#@tI8=!+(Up-*DN^Oq^6QTjb3TCQ;+|Jj7QqV~s( z>dJw#Nm7;*+J_GM!bT77wU+eL(EEup3B#?+zq{-SAZ_@U$u~49P6-61j3vf7o)LPQ zBlrl$S|`X#I%d}zKh^r6<9sXUIYo{nRZd8q$Oc^|jkukqgofKU0P3K}mo%+mR- za2yinL@J7$dPES{Wek#cqzBA}H4TQ#$m5;C1$&ot8vf}DU4L!-?AzVN>($UAg}*Qw zQ8$Q)?>)Xq%umo@5%XcF^CN`vGIs1(ng%saqV!Kfoa162=}=My$Y}x>%eZh=`QTLt z1hhaSZ?W0{R0oUQX!;Fcwxnm_b~wmWN)b3E@{_3p4D-491BB^vk+gJC_}h>;)@*6< zQji+Z;$0a7wk7BTz_2&(@pABn%doX%{myJ7<(o_ZmhC!E^@?yqvQA*(q9$ha$D*$e z`4SS)xB834C<=Y#bF4&bhLAbDQc1~{V(A4vRXABRk1r1td&mlBD z=!A}+D-m`sM1H^mhr&@w@g4k>4I7BT2<8ha&e5BR-8=XwNq?Y6HKo$q5ESk>Yy-tJ z!HW`E1vvbj9F8yTD*U8H+x<~GWS!@vt+EBSLGm4OufO~iMciMZOt{*s`(~Qg7=i%-U=h42>iLVDn;Q&FA*GxE-J5rBA^2Ve(3Y`E~ z4_*4nFphE*;&c6R_ex*TshWcSI{e-y-Tn3p`o7*7^o_gm9qP3Y?RkN4SIr$1e*u*m zp%th6LKJwRRSWnVS9n7Wxbqjp?;0F{w@>8*J!c5G4%65F_y(^lHgpG5LG3-*Pf&m# zUr7oP!vqqW6I?-+0Q4Ok?g_b^O{!=&oB(??OodIRX|%imc;+{c7754RuX)f~RP9^X z-O+bpRxc5!QP$zxm;ABeSs@%B{JUTZNTL^&gcdCbQVHxT1KouYbGCpf7cjD+L^8Hz zdH6WdJ+e77;lLAXdUHddSi^}<5k3iGs3NTdyyE0+^2gQ)#a-mgiN^z~`u#jf@Kk=0 z4$?yB+CVGQSYCi~Fnw_JtwB2jC9r1!^8isywvc&lm5kf^_w}6Eg0nz7NM=dyb-Z3O zoX34E>8^(~CVH8sW`ktEaEOeyH!^1X{vI`bnT_kPjI^%J3?XSPsTD{e^0ETxg<+yG zq{RGCHsoIsr*vvlK?e31QOJ#YS!pnU^r$M~i~7-Qz$_8&H+f{CBK140=DW8_4NZ2X zLex^m>&O=77YN~YFQ8g{f!2^(omH41zdYP0v~Rd~xGYx-EhZB(yxFmn3j zX3@w^L|M~IR^E~a#$D?ZrgDAalNvKp=DTP-&WVm__P7ru?p(14w_XXO&P1`Oaa=lL zcW(61$mjYMYXJQA>`D=oc_La6mBY$)Dq1kD5tcg$_SjtHHbL2YCT==gK(yhSyN33d zA7od4y2ILKVV(0xNU~v`;`rO4+Csoj@Xv_~UI4Q2y`vC&_*~jt0j3esYUC{Y>wENC z)Ga%~dk|eBR>Z|^Fu2IFdy598Nv{}U!OJms=K?aPPXt|&x7(oRfD8)k_1B-sUGGuyz5s z6RXYUBjz6lc}dz8A{aBJ!hi20N!%&iCE+p1uU4-IQxW-ebw47~DV}zNak?d4eU&Z& zzLtW-Cq+CAJGNTR!r&%du#d1Zdu>%D???g@VAIB#P1=Q~T<|x43Szi`P!DLJpukwM z;wf485@>v#V$Os%WkE*~+#iX-bTkpFgo-U*rhjHVh1cxOA=D$>(&w!r0hO(rNh~wV z&KxZ>3vxt99BhN&H-c%Eot-XxyKn0W)%Nvi@}XWWo!A2x9j$Uaa^z2p_!a;E1j0TwgvGtz1=T7EKXJIudR*BzGz)0IDbu z=qL~@G2nw64)TvcjYwu9Q(Vw*NC0F^R)JU25Ufsss7z+D3tvE~QQhdbmH=y$yzN(< zu)nETK;M?@=+jNEx$$3s;Zg1wbd`VuDJJzu+OO|kfa)Y?Pb)m&SSf+78B+gEp18}9 zMIA4|d8$Xb+OJX*Oihl2jm90CHwQVs*~7Jtmn$&FhL$yBIO4wL0;bm z{YF+gAZ831rCK7;&LG)9l)B-X2hJ(j5Hx#Fn5HHbbz+-+yKkO=AYXOYxoF*04s?KKUMV-i#jqH2#2pfV4%uVeAh;81jVMP-ey-tSFoK=1-I8yag>*CO5h z8&*xcP+m-M0!YlG*xeA$yVL)h6@^X#4%Y{T! zHYj&o!)*rxGgFlh&fvQ`XnGSovzO3nn?JyjRR3OQ;K(~@`d0+#btwA;@Ie?CI4U{Z z;IBi3HW_y$8zmeh7@H ziaDXQN!~ZzcR(LiT~Q%-9Qsel4-~d~mWQ!x^6rum{YV>o3=t>PQ!=ISqyg(QuqK?G zX_r=;gVS>1_wluiE&Op8_@Kaba3*@7zpOpiptzz=#!(6&rmJE3J%Lfh64MNK1{h(q zgnZ1q;(~9eG$TmYQ%H$fV_j+xY9cAvC1ZM>)-#YqV-$Z==|&j8T9r|y1S)N~{^Vb* z43~z)>nx6|qv`C2c$a_hH#!Gv@;5mJTVt6Wy^tG0Dy^I!tEy{8K3S&3LX(s;#Kqe5 z5k*W>CRa%6OERFim$=Z%p7Pgv;X^9D^@}`!qLkk`DZ)#3r#!NNKkT2b zU_+Ho*VW?vz>=II4j9ai6LO-J7a1%GCX3vL8~&JoKUe;ubVI{J<&vU`!w3x9Hj5U8 zgEr@3+q=$W5%1Qw4qaBl=_^7RyHAb&P_yM$0I*|3>>##a{b}fxyKz{rpf{UCfQu%D^Rm8uK~TOeD>Rqk>$|FTgUv`g(k!jVhuA3SqdtEutJ zK9g9h&HLk z=)oS~0a|gEY*wMlS`OJFD0?bJd2r{_*9f6qg|mS57DWx=2mQzf#+!#gDvvup> z`Wut|YRzX#EF2=;ma}6&^d6C8+s6remB{Hsn-QBjOIkXh5l~$4oHI?T$i9J1dwaWs zE{#h-*1?u6mbksfZ}4bH5r~wi=Uz-S!-8mtgchFy$5Nb(?-MxxOrbnXVWGaoM1Pjp)axSi`|-Fo?E=modC37>#? z77g(xtSB2-x{g0jS0a5Bn1z&OU|{_eEDMOad*)9FauOc3_<|u=K@bdOk61zc3toz5 zoE-gjwPF!toxc&vo2`GxOOXeR8MjPZQEU5!yMuNex{l&0l3A$AjFuvX9U6+ToFpdD_Kw*>sBXzy&fMFnUiO zBg9eXo^GN9h>+povmq#1gA`d3;wxf;ayJ>Em1RQ@Z?KUqjtm-IBBd2)LpnA?*mbBt z-ZwFTn<3_FWrFZqGf*v+@D;Nl(=3z>N^eND31@;nn>X$PUNWr}WJ7Q^0dQ4<_*7u_`{vngo?4>md4 zwf!JP%#QcOH!#S{Q00PLIUqDKas*=(`BFsW$jKy68H#c)gO(VrGP`g^)Y5`!^?ui+ zu;ExJ%G2lQB=W*uy5!k6~c(L2i&yB4U6`S1|IR;9ah>!7|dW>@2I`;YVOW$ zt(p@J;FHzG+%R$-iE#liXim0EB%2N&qbSn$=#Uaszv2>!6EPDBE_{ZIdF*^+CD;%U zSrZZc5fJN0j&s7qKa~+!&<-l+{ zd;$wX0uCV&w~W|^fY^qF*ap9tM?_pxXxsxd{;9jbf{wrfkH7*{P!TGGI4#0YABd=1 zKKWFo;6{VyY zNK8`V+~~Nt*!1}npRZkGa&la9D-4bSZX+Y<6L(eL)HJn(Oqgp+X2-Y%1G|5yuTb#x zv~CzSIX8czg$CFMa{HVAw#0%y7`P%moWN4?t8)B$%&^w|Y@&b__QBq9 zC@^nueKRtBGqjh7-JpC#d{taP_c!r5SzK{74A8>BWaTv$L-6^e=7A#9syL7w}kSDFjtcAdJ!beK2F<5n(i4Cbop%Zwzb z8GmgQd1|=YIgl(=WrYjUjY}k;iCP?^qN$%1Nnio+Q}Tch8n+1fDu^5L?lg%qJr9S9&>h&^94vdx4Zm;Ep(Ifa@Zp^_{X7dN6J) zdpkOFaBl7==M^C0lK>J;#RAy51|o(MlR}awtd5bHU3h4kN2|Z9I51!u6if>arTZJD zhk(ipM)1*hKTzZLK%%m1bT ze}_=e9~T-M7M%ogFfb%OB0U6k6VrTcU5pfcwhyZi8J13CUyKlO6w~^~pb%Kc`sIeB zkdVj5Y2Y}T<|SZvlr`GsC1xI*m)>J#M?dmai7lU)F}0~RrxwoqL_r}oGt zz5N3c>Artaj(!`b_z1A_wRplU-?FSGI-JrO@@ICElp9@1pv9D*lOc)`Mq_>`J=iY{ zQ@(n7I1&ugfpQT56ZCuie0kVM5zs7KkX;Ewz%2u+0MDq#9Y8~RE=wwZUd-j27I{Gf zUluQmpk2#CSXi`2q9@7v=6dK(v`O(TRfGKc4SICMT@Q4{3OfodLPLq3ud{QZFz;;e z`r1UPrBw!;tEEsxD#hLVbWthqHlW%jUmv|S^H^q^ZDUdC5@#(u=Urct_x!#EX?f$t zNbBT!;DxBtKGTaJoe>(10YUnpPH$&zx2n@7bKYgzw4n`MTanXyO z(>3qK938Hr+VH5-sRjnT;Op;L&unz@L|WhdX&L{I__d>>#NEt}E&Y01vAsaHl85z! z>};-ApjKOZ3I9tCJDT_hswj|I0Yiyd^_<{KS+wx4plrwMx9H%{G&`gT?YYzkFCLBuX=yelTpsShbb9ycQ)Fzs4%T{2x8Q8mw_iQf{7a;G`Gj?Ma z0oc;KPd|z^xkfOQ^mVs_^uS>gTP)KfgTAT3I(0wGDIPa}^|01VZ~H`c0L*Fswn40* z_o@Du5cZ$bq0k5?$F>u_7(1W!M%;)?rwLcRJf_hs>MO^n%31mvp3$~9t30GZ-3zN* zW+dcn(#B!Te5~4J_meH|Oy;~UQwm4ZNKt~!8Y6XCk|DT=!K|I$FSFdHE^E%&R(4)Y z?`;*W=sH)$_>5P9c$GR-ibLB{NS8mL_l*ym{ie1BkC9`j)zbwb>K?t`bL2;dC1a8e zQdg*3E59SffL|ReH_iB-^mGkmZE2g{J-@J3_oKGnz&%&dfm`zJYj7+N|)R}T1nN8A-)20TT~bIj@?9n zLtCv4ZPXz4ukFqZF?-m2TcuWx9B~TIP4l$X!ZYC#=D39fS|K!}(H@v^N%bwA z4m;Rps2-XV&hrSH5?zn4v{HL&K<<&?PZb<#>$Dp>Prp405=B+^yil0k!Ma#8OL-m5M7dV}0$zx|y<6UtVkO;$}Id!vxR8 zx=bgRTJpeK><&B(@l8A!#_6c7sC26b)jAtDzJ=816wR$XI)VF zG<3fpp@ly01Jg(5UTAQ&$A{)c`}eZa9n;mXb3j!zQ$TygvHH#fit+Moh1rb``T{I% zZzx`VKoGjZNx2-mNct{&p)xIgief^0fxN~#n+b)*(iE1*HvFP>xkJY()@RYrB^rE? z#X6G2II1Ls9>jOOpu-|4yf;)wWaac_9qn`9n^LKIXdggio07q+)*{Zyzpkj}%r&#BTOGaHi^Yr{hUkPxn69(eR0!-2=wyRcu>BJrAb2mAtiMnSI)$N zzbs)!lQ*Fo({6afvxC~?5rr|@3kd{w&yE2NxBlMR$x^07&ApUxIqDcwVk2H`L8mD` zYC40**xcz`>_@mK!fHP2%Rd@9NZc_fCfDp8`w$pde|6dsC;(v(ljFG;rY5q86wyX){^X2CWWEK@w zqvlo1mF0md#GxQ5*=5q44!E!qWljut4pd%GvGKU|&!3${HQ~XQ71G`9Ma{llMSg+C zyuG`y>L-Rsj;8-;?p$YHeU813TiPFISyurb_Ob$0u#|6pEAdBDss%UYkyx~w8L*SY zpo1pP8Dpi|3xwq3ML2;d8n7ah)qxBb!-^Uk5wex%p{GP?fw+TG2Q;16VSs`z8mI@S z4&Nq4Ei%lEu~FhDOslI?o93p>H66EcRFl9gPZ5b;X4#m$5tEr)QdAx(ZBB@r*)v17 z*bs$Ecv&pRoS`c=L$ON>SSlC$uc4eRL!Xq`*v7+OoN$rhGZ{(Wi0tG1SrUO%+}E&? z!e(XKjYw9B4z!R#HH}4YAbso#s^M0lNmOdI@KBIk=p>(_SmURKbMEymYXNkv{hI(8n$7P4V6Ze>B6c=Ty~j=^1BaQXI6(mr2AXMv_J#MoRgr_TLrPf=}b{fFT_xS~3|qOCe(F$R4| z5;k*Ds#^|I(b22vTV-rY_I3l~Z!>~rQ(TUe`BM?|t}2Wgw*i7qJ$RPQRKuv+BR1Fl ztb3|ULmtL!1Q0pTM;*v`!W^BBisJ7MRHXo!Il@E>pM^_ImiW4?#XHc!5>Olr=fxF= z5({W#MMMKJ&#h?MxP{-aFj0@w&-Rnq3~K2fr3hN_HpHULPs#bY2+mX^!)3~2#m(6r zW_3pn->hMr@>Qa(QL2S*Ftw3_v1%LzYhhPpI75Q+Rs9=eIfE$ZwnFs~wi0H&s_0^B zKAOh9{Y{VL)1+D&>!6!ZKlGIFjoO&iRh(f>H_iyxy7caDzXgNYE%}vI8vRG^v*;O> z!^qBCP$Wqt&-z$J;s|=IussO76Pk)CI#Ho!B-C}}Q)*zleKLJZ8|Pw^9;1Tq1W6vs=+mFLglPDup#k*l1{kVy|`MA+9fL$Mp8DP3U8F7 z`mP2{4j;is44WdzZ1HJR*+Vd+<`0=ACDCCxMA4L{_Sxsi zz|Zh;m(+ovsO%N(3w1)NI224f3dj+-0FGj>F0;&HtG2{+=`2ixe@KqyMTr`5QS8$r zpt0`6BAOYJGreaG{p?S){54UN=ppY_v^31bsTN1Whb}v;`i-GI(VcO@hPr}Z4In!E zbhEE_XgR5)b`UjipE_xucFf6k*W0LBn1O(IY%E%8r$mSdB;Q>(cO>`7vQzjBh^V8J zW!U0wLb_xt%NV~4;w#HIosj1R9m{Mj(u56HsZi`Qhk+f$QFmhVrf4fz#$q637BzpYj6q8Qa2rtbd;L@FVao>aGsOOUX!(R)& zDXB4@uu_w-LQ{){iD1D-W%!JM?)j2?w?HQ#9OF={_H~m%h8*b|WoJh6#jQb$hm{rX z8@iGt<{t2^TE_(tO5NZ9JZ7SO=%qOu1Vu z@GxBT9MC{B{41D&0WnoBdr)hBC5_ia|JTX--;T|aa5jDTw6`#97eqW$<&Rv)a&xBb z`9|y0mr!o=>#_f7i;K z2FG$vH&CG`f&I*9{{}O*sjqG;%R)rUi3o9;j<5#n_s{wk#|i7!O#U`gx=Hf~vueR^l(@?8*di&DfZWwM3nLtBBH z&;aAChCm2B&2prR+8}ldvQf7?GOL+RkwD=CrBs5czmKnLA$<|CkwcP9d(5HO$$tn| zFExO)^MA54+8?9j|DB=zYaIMP+r!ZR(;h}iQx=i`2mj((OhrHzwg*})03`t4+oa<^Zt31 z7NF4$K@jeUpba-LpdC#Z$7vrQN1Ty%+R!{lEHU1MKcf_ZO5`RAzbo(O*B*lxBXUIx zP`8w&dpL4Zv{I6A*YDkR4uGdacAdA)CV^Y*nM#g|`KR$jP)=$)z$!V@WOzgFFt5;QvS?y0MY*22zG4!;;)}1um?68-z#`=E#6(}a zP1uq);Fy9YFIE4e=-PU*JZUoJGNOCBp{{*M`?V~*!AXfqpFN-|f)Y)Eo@yFqOUWLJ zkV2%GHJlvznNE5m_qt~8MW(ImKqkHb`t}|PQM<-`z<%%4spA!6Dd~b8nGb`4oBTB~ zr7dumz@1zJy*fYq$CT!P?1T{WDFE|?v~uOQ9RzR_1N2IyDY@pAu&=;6x6qEO;^%qD zn^|`b(!)6_xn@4|6L$YNVGxp+xxm^J{4Yy&o`8p%y^PftJJKpU$`u>1s&gKc>BZ5E zd*M@pDncQ&9v1#?OS~0jQW4jDZ$|lIQ2$*13zn-FHANpriM;eUvlD@GSNaWq5mic< zZt7^Zt2cnkB1XKG^ie?Y&u>h@WrrnzJ)?YdDK^` zA_=e}!*Eh=bIst0`jkpVYf2>Urxt)e)e^oo!0>saq>T${`OIRq5N#LQKySd6k8g1Q zs6Z9^`1@~vLJ8r&gwnrizyB>_bvY^($kE^Ey32XrmeRZLHAT zN<%G_z0;SgtWFY=!S@OUS^7+3=T^oz9_c{Q7Tl;wx*)~w`7v$wQnEBf3~47t%`J6N z2N-Q_ka;ha7yVhV-w7v7uezA@Ty_%60D9W$lyt^)%iUo&bHuM4qn2<8WR6~9X{e+%rAUO%G# zj#^U2J$=Xj+9vh!>C5H7`+8{Ii>(V8=S9sGZ!nRU_`o_!G>f#yqkPt_ba&|4a|H*$=tL-lz!BtjTvME4tRF==5{Q$g}MK0m=qmktE1gb>XnQz3HEU=F2acrzj{xMaMoV@Kt!3j}yIm0i%Q zs<{p<;p>yS1NgpK8^8bq#P(Wufap zl}lOcd7<&CcudRion=Ta*+Y%(?*jJl$rcg|qUgdiYN~Dby->!Poaw}Y!m~`!d8SNQ zG#c#_J*_Qn*Mu<+^r%6ERSaoOKv{E*@)$Sa}q zMLDT4^UZtlb|PA_a7oEBcE>BK>G8TWsVlpv--a$g=a`bxp{iQQdsUNl>02sVokLI< zZn1tmNS}Cb28vE*p-IznNeQM0m7KhNJ<$^g>!%1W=x}2rhCr{P2j#d^$$Q*)UmY8p z*J*Fz6RVhSw1l4vX^LmwOtGL9syA*!x=O!SDkkKLomW+lO-If+WO>Xs+{+!dA0oW*a?jhwGl z!RB60#`SEg->}j%TkU^cd*8WzpF10CyYIK|0ao^`L2+ROherqCU);hPLl17k=~j8j zLx0F+FBJ#A(hWU0Bdj;m@Hu^E;C~YaTMuuFuzCnX8693~uyO{nyn-e41oSOF+#^FIY6aScx&78MU&;k z^XvAC{`q#2&oeXJ!tr^0c-1hcK=DI)E?Sl{=BHmrHk6h{@2n2f7&CU&BaJI53l8iw z!5z_GO(utpTD=uc-NY*r@exJoEe}o0hLq&C^a~-&6m+#d9p%cN=2g=dgfMFF^VD?pVse9cmkOFdr_ zTWRyP(yC_0ERzzwHqL90JrzF7Qpl-5GTlcq2x(NFmrgZ`7Zf&D_bZ%62OEptZ+|>; z{d#{8qydX#^!DiEWUJRxmgQOyXdIqkk44S$6AfJ%!_g+!J4#j^3`+6Kj;~0@K}y_t zhrh5s=1_hBItrKbG)laoVn$+!R%NlRF?1y`iv9WUBI%-v`2gbN-1?ublB!$Y!?)n(=IV0+f3CS!J9&7NFEsiUQqdo zW?d`;Q6$FGCnz=TjUd(RsK0mb*N{s79_&LU8jvEpFN)Cb>uv4U$*(T)w~hQgoGep;jt zh5mC$pW>ZW3ZKBg6=S=u6h5)6N?d+mKen;MnGF2CNhn`L+A%UIBjuu*>C;DyDch<5 z9el2yZ*3_IZv~)1BE_xJ^DThf?o=LHvqxm8%-3Nk2}sk&4?ShZB90vI))Q>`qS0DO z?Neqc{WP0JdpcdinfXO8RtBKHTiG&+H8j&yo$EzLo~5JfX5k~SiyQh!i`#B%GDd%y z95fr$tN#cpHfZAF-$vvO|9jL?-H%= z815oXcwd85bA3WbR@!Gb?=2!GS~5%`n)MM~cr+@wBnMM?(xpgS0I4g9slzp7S6b8E zJK=L8F2&L}lo&6&sNN1mV!wjOBM;YCxb;lhrJFTP=j-2q8z>lca1Ow%&CgO3E)yE< zR&oSVx126+nFb-(har!U#MjSCwliwPwI<;NayYbNA*lvD>tgPoCuZ5INW1$5|MIN$PC?%@w+h1;w96>cxB!E&@Mt$JYmmjEVjEK zGG+WYxbvh#i4D8I$!;$0U<B zVvE_x5yHjO4XWv-8#)VPUbibg{4p7y~vW9Y~$k=G93ek z;oi+i0g*!C{?Q=e=HISwG#=03ypX6Wf5b~j%Az&_WJ-V^3b~o|EhYYxyZ6G>$U8EX zJIobzZ^a|Hly#3*>ll6AjC~tQK{37p^~9<5?g;fnh+H#W&`g2pNjtwW+4K}4`mPo0 z!YdRerSlqNqX1hZ^Ts-CD9Z;CMX>YN>CxP1pH=|7zy3wI47V-JyEJCsjK698@YjR&j zecJcijT_D@rz^lk_ORCUCVpg53zR-SD4L2l>7LEsJCj&v~3yGr)~_6+;kDf)yI~b@al9BD)vx@Vej^4~L9eqiIs7V=laQDsg!q z71m_wpOp<~K<0PC`1`cXFiw5#W?Gzd)7~sQi|1hyx^Je!w7vj@r4d4?_Ol=*O!WgR zHLG3{yGJ#AzEb_K)ap0vfop9l0@&2WNalf1YXU#*f+<9+R7|V1YSO`$0}x3godFEc zb?{&Zst(5j$C`U*`cs1st`sSI`Q(c{qs78v)6x>HDPggxK`;5pGPNLNgZk0P4j_lK zIMYF=F7Q59-muP#^u9ky2dGre6OE2z+?=H!)%$HEHihhHX4t|OSn{bVW*k`zR?SfdW9&7`rLB`;froO#kV|14R4A0`f#>juk7g*9c7b8}%0u;vOnR+mL{=Gg zVoZg)RU>g~ft^DdS@7p}wQ8|oL%+C)SoRR+14e}^k1^Pl$9BoL40W#@NE*pw7Yi?5 z&$ldvoL8@Q4|k0`Un6vgaauoxN0Hb^4Wj#vk3QeF7=hwudzj zH@2j-2eAPNV-5YXN2A^YXNfH2GR3G|j|>tkkbKA&J!zAM&QmqwnukRxzP8!Lwzgb zA6pb)5F`L_aPa?Q1n&RG5q{iIjHUi#FhN@z7h?w}V~77tXp2?U9WjOBzeY67iQS{a z`6ICV$nXJ06AZv5hGpk?n58Pe9ow6%QI=q1Hf z*q+P@LI(Oi$)q$5B=A00#?BEPD+wp|?vWW13W<9XT;W_8!POpWW@ZAUs4#m3TS-A1 z=4cyx&0Y@K%I*{0)!`S9&DHS{Ad8pWupk8v3bO<{-iT_8hk)-X#Ak0S<0(g=zf=|1C|*&L zl&kgvWqE6Z3pWu%28Ao!vSQHuz{2!#fV{mTKx+T10Cp%8w zI6Jm&+qP}nwr$(i-mz`lwzE6up4;8`c6Fccc7Ii~YW-NX)}LAP!I;k&!**8=(6ZxT z)6wo8(BzsS8Wusy%oSY9tmPLCVA&ObL(dOnNeeN(sS24Cvk)Vw&PT=pxa>;UFi_;o z-*D;7&;{xHS9^}9B*(qu%ToZ<9XFU9!fykzN8X%Ekz4pHikQU?Ml}W_0Xlu-fHw?B zluodzib5FwNYyIqaJB7VcK2YEqFv>#l3nKqn5t^jzM2N}Ls-o`Ya(3=^hmIRU#WJe zX*-`Qi8D9gTL(wfaPw}N`rC+XjV_;HE!82PfFpE&im5*oR;-e9epwDthBC`OJeL$< z<~8y-=4FAg6VjC1RUjTqLr4@nV+1mA~fFX6xEc%WW67MOI7KB z7mj(nd21s0!$IZ;yK;ZhvD^%m>g;yYdagY+lxEYu%dpqZn!$98yc>9o{}k|hGgBy< z^Z&y&@Q!qjlv9X{Aq2WSe@zx=M_muM4#d6(DGSC-YB)$Ax5{oNAVw%TsAJsreDPRPvUSgyft>%sLD3xCB3 zJ#xE$@b$gKbNLX)=9ZV})!1%qZ@)1M-u?u7Ahp`ga?SQ4uBbqWDe`r7OOVxlN z$`CIt`uwB0m1}FmHt-=@7+vs0wy9#Jmib!Qem~c&q-FHiGl|Cu?TF@>_rf>`fpAyZ zgxsS>gk10(#WV`*bTMj_QuPj`J>%KAaqqmO>mAX;Le7KK8Bu@%NqUChITN0_qgkf@ z74J|-;5}RE;RbtFYL?(T_EfIuUeE?X)*Ltzv=DZLT4)>_g#IkNbXF|mfXBcfcorqg z+Z>Gi4G3=VCWH3K?4-gFfPLAEcHJV_-C(4jrFxf73=zH>sg5(^99tuBr4J>)Ii$33jJ zOGSw%Ub6u3yLZI$=e-L(2$otSnI zd2`~PT|ZxPVy^cgd_Lsfc<=UyeLjRTcu~Jd4{sTHeQ2(AAtz`LZz(bFlel~?hi!x2 zTYWyJVz6m64x*NP-_&?J9(oW3*7Id$>9VHIC5mq`qpoZ2Sz z)W|o-_?+6t_v9P;9m++E%zrRx54%(>mdO`tnKFvyfAyY( z4_6zhPDmA3q3DaWqBatmtZCSm%wbI|^zb;Q$uXK~o5u{yb%)nsHbVMuRZe`Gtc!5~ zEE~-!q2?!ccUOQGqj8(Sp_&4B!ifok^lS++%^5={Z+I%HvoHV>1B%uk#7NPi82EjK zmLU_nH9}s$lchApRf>ui;_L{~8v9PmnjBFMb{7#TH<4w(S;T3Nnww2!3pd>zkUv zZVi#y1DwnEXtzpm0#wjjYp6epf~^%HVQ_E^NFdzrw<_7}DA5n&-sZ*OdCzs*x1*ws z8Yxn9>k2?6=*7gftXHHQ83ym;H>a_Ng{K}h(i~yGQD=Hi42=qQGXrFEnrV3 zUU8H&U^61%9{8cuBLnUfAO6^pNSmTD)IwLINxl`vx25BXGf0YJ0!GUcBp#Ctrv|Q^ z>pjMmilo}I4=YuCXxdH|%^64M#q-UWGFu`0a>Oy|!1A#&U3h%2p2{)F*ZHC31a#RO zNDyOCjZbwPPR1OR$=N-YiLzLN)8vx=dKd}rs1G+TNRdo}bloD=q-8;r;;-j65zZ!Q z#ImiIHsB}kLac&5aq*rMN23D0^*G>lts@i4}hL`Gl?qmN-3@0}sic)KJ8 z^9-W;y0!zP5&tGA82>qdu3S^&v52tLjuCHV&T8t@BE3u5ZZjsziGf!KnN>=1O=-S$ zBebTVTJ>%KHyIv5LYC3kFe>{R5M!{ajvdQkDs^ISQsZOFFr3lin9p+;17P&}L?2-e4?-wX?tX+Mx(hdV&#(r5;3!DI%hVP79$yAIbomVPqFQb*4x*gb|^O3|girDuwL1 zy`>I~E2)T5{VKP(ou^j(+P3^KYQah~ZGs#~3D5r*q z^g;NSclZGcSAGcUt_+LZ(*R9Cx%^piO?b0&rLs@M)WvTS5|Bu{N01N8%X3Q{?4)!D z^O~aSE(mGy1X!wsgYCL}L$k79gPCghvO*Nr@b>z3_7)BcCxrTs>Wu-I?UC=VKUf~U z$!q~@#svC{jw{PFBa$4-)i>$QUVK2Kvo6Vcm=p4&oQGyN; z1XHCK)G)gn;kM;VnY&Je?tYf&!PAVdeS3R#MO&|`+AyR|6U-s4;+-OANHRKwcQ(Ek zXBQ16z;ljmjv99U6<*Cr$tl*gJ3n-te5lT8hPY!UGFK?OBt#T9m$u?ZI@&g5?37O# zLqn_CST!WEvm>wdvIxa$yxBN1C-OJm8$R|eE!EK#)%kom^b=noS;;s|u9xrd!IMxm z6HQhes>`G#Qx5quJDC44)&Gh1gO=iethXAPUHXO-{}|};s33bAuB?w) zEFf-g%gbk6mJRhI@5Ggpk3zhBnj6oroV|Wt`%(dkU ztDH}N^36fYi0Nkw$(RW&yNxo?FhiLyzC3*Tlwd`yk7EX^G0yHU8%i!Sp2SigC+Pw` z-v5!}z~2MCOb?;A67V_>R7{w97NcPOkz$)nm3LPLV{`6HW@=Z=`BLnb&gh2VsCwgR za$i{Wozf9s1Sdbxgt?(9|4;yjzP^G>^;@U;ucO)oaxe8JFO9E02C1(2ryU(WQQCV$ z341@IlD*X=MD#${x`5ZZpgaa2)%|YdSwMY+jBRHXCC;r(K&aiN`q>+LqXA(VJ%*IW zu|UPM-?ohQX3YdqwFXvs1l!gN)Hw@uu1_b6R#gnTVv4FZV?qg>xO8rh9Q$)66K933 zU**nIg-mWZ%^%*jkX3GZ!vl%2%MH|76o%`D?RXAZVoJd?i_$dZdqK+vTZ9WC#HPn+ zD(MM7VZCIIYz;ydR3ci~*kd!@mu14XNXs6s7_~LPrZ^|Q+3ZBOCEwaO7E&a!(jU4M zzh)*6w6Y=98ij9RhgTC5@l+FqSoJ^=NsPDHaIM-ZH(b{l&+CXRr1_A-)Nq7*^sUbj zU(z#K@y0L$H;T-zO!)e*e(b1C#6M~I)TNk$f6FY-QWm{_U8)%m8R} zPFiEvIvM_xOvvkHK%FPBYD_Tl8IzBX*c&4EN#`spCLJ}M^Uj;uHRo4K+s(<*l_0b8>NFQ3_C*Vh!N_wrfe zU+QW<9WAg(kFHI66C+yo1Fb1>DSFoX$k4wPV_u{7{?V)?d3rT?hp_?cgql z2z<7MXjQ&e`&6_CJFmIjawTf}Yf9leb2u(UPU|vtLbD(4Ztg!Rx(V50mv6D|=FaQ( z%4ymdBYIc{n7MY66)vIG**(2ZO5-HEl!Kr zY?s6Bk)-ds>1M5vhhW~lrQYi_=`T!WFq_$k#sQTx=P95cxPxGK39=H6dr0~$oghtk z$`42jv-}eU=WLp~Au1m3Q}E3zvu)7Fd%v^};^qh%hg~@|OKEPXOh;P+E)#9^KCm2b zoR&d48Vg~zL~(L;@_`9CaY+p`Vbad$*4ab1xTb1IW13vKJz2*%8Z_7wutjkXmpZ7(dy{T50W!X!%~8 z5leKj2ZA;i>p028)Sr3tYD4GQhJS`JZhg2$J`DaK`b1Ky*cB`1hIcR+x^E+9?GK1J zYvK+@{d8S>M`;#TC?xLWnoJBA(W;ykXPOya{ZQ;e;EF=q>wUmn&cK}TjcVj4?C5K@ z3`U-9WM6t(RxO(-H)D%_1)%c`qpm}l;&7E?Kg$h8LFaoI%^je0cvC0LQ2V1AwwZM* z@%QYX$Vot`#ON!BIMqvQaECBs&JjmE{8&Pp1k^A`twGwl|f)_x8f0D z<{xe7#vih9UiXMP3!FJr$1d10q3@}WNL^v)|T7(&YwAg8YOls)lI9Z8oan$;oDwXM1<_7lRgZdkEMA`|<&l zWzN+-`irM_ns?{%RkSV8C+hvA)GaM%!0^HGBf-bN^i)+zPJt8TzPgM0*4@eSPmj+ z?x#CG@ubd1eSJK)^8V1nrVxMmkwcRIBNJ2;bQ-b+DhJt1G!NgUu6z;-wqCEG5(C+ zuL&gptcv1!Ut5Nwi&K`saIaAclf{OL%iAgy4mPrM7njgVlfhXyPRlsbX=q>`RR)Ci zL$3T}?7(^9tBHGbi$S{$XYkL{_>UfsGLzBudqT<1Q3w1@D>3l_xamCFurhRF({bbd z=Cs+^mm0AiKT4N-2`X*;F`dNU38@$zL`qehdHwMPwC+>5PS*7fVU=mlsZ^+f3pE_9lc(b_N{!kDcDZz%( z%WU^u&2Za>as?82{B-hJb*;_K@#YUZGT)dUag+*HaV{jPXPzaE6`B8*rZoz+fNV~y zYAGc2CK~M-3$BR4-xhCnJ4&e*C#q+&VO&@nQ6!}6Kks35ZF(q14ynuMyPYIk$!lVX z`j%i_Hxjgz#^Awn7l<&AR8~TWuciSt_xLo`Mi_0gP5|1nmd3I*Pf80+@`U>?D|>0@ z6Ca*d6?&XcKiiX*nB|cw^Av1lw^?OH+2Sif(rY{Es4aszWO{!*9|tNY<`XF|Ch zY*^wy3V*;w{UzZTxnLJ81kdJGi|}z1Y1VU_C*?V0Uyv zbW(K%e<-|!>q`EBSJAg2Uuwee<{hA;(oULbJs0Yd+|Z{UEzBc!AS@&ZY-*BIKd!>)@$`6FC6 zzYsdx)@}r_F+79Od5F2qZ;^2+vM+^d;9O6{15`o)#0VF#c?0D|0b0N6AE3=E8Q{(| zB#nsArt~da_JRTi!_x~J1tE z8!;rf_ODn!5ks;`&_(H33q%94kY1RIO68OIcAuYGsall)RfUE4@Yyu6Fg4rVL^ajo zABjS1t9);TC_8QFJJwaSK4nV{rRh-E-UI<1ltKouE=OEzT-hD^3L$CYGlL^tZ|9B?GGXZ$JlD#dl}+%+3>K04}&l z7Xmx8A*^w!CmjnTj1D=NCnkkGCJHV#jGL@lHY9GV+sxcsphpOeGV0#dKw!a|$5mmcD$we=|P46&}{#8`{ zuij<-6HNP0ZQ!#Ib?|xD)vA68J-w1?xLN zfh4B0G4jteDBx*#u2@uu-F_0KR73KBlTjobn^_oDCm#?$8$K;1uH6b%n+4W7K{a(&>^HnXSsL%hWfUie2VYICP~I6K$oXz56-*-Fw8En%B0k5H9E{K;m0k z#Mo52CvQSI_j={3I%tq$usrt?(rEW==?i+q{@`g4#Vw;)!M*R}$P4bQ@gu5lu&RVj zV=Ug4$xDu7xuyFHONRXhL^MGs9To6%R`=Rb=C{oC3MBr7s$UNqB1ZK0znL0Hx&RYt z2HaBh0{ZLQc(L&cZQF^^zEq8D+j*P~86{hv5xIiW%&+qw5LkQX1N@y2asVcoPJPZx3Ch#V`b6?_mL$ zm+pIZY8KeYG&*b{%`d*nH5Ijn1$Su<`?tyD$jze(Hr%xl$A8st|>1kH01*K!#G_tZL#aW-j z+0rm6<-j)R_>_X5)Th!TPCbNMNNn!zkD8)Iz-t`CyzT<ybDCQTahmH>QFz4=HadbEm8d^X zSj}Q^D;0ldPQ6c^^18&E_`ua~zs@WANC_X70XcV=Fe~Kx`=ml^jI!PuI0u)r8K?Ir zswD^h2rx3kld5P22Qa4!<}FTqijvHTmpr!mTG$?s^#I!}%E&8XX z`BjYg3LVp3I_as>%ERpX!RMAnS_YzcX|QaHE1j8>Eae3eBRn0g-pl^Dk~ZGDNH6MG z`TeqR^^7!WZoJ2q4XOxsCsEC)OQn!R9c|inR-GWB_#}>6W7`#4T~M01>+?iXC~4Cs zrz&L~3`X~~IBjao?mag}GM+3N!BZ25c#^zqD3O^`lWCK-C_+_s0hqQq)PacYW-?mNawkL$8)O z$2)~RGcm8W)-N)bqf>*(l?s^O_`cJZi2~101UT;Al{s)EXxj~nh)KoBa9|&;?IXPs`S66gifetg|B4wc_ zM@TL{;a}FbW%b-bsW}I$((+?REYcbJpC25&x-v203NgW!U>3aIJbDr+mM{>K;cvSU zJocS9=w#C88yL`-)n9Vb_R~cz>S_u%UQ`K@2uI@ z=w>N2Q_Fr)Pg{U&Q*AS+Ddy2>42&T?lddFJaQg6KJK7=8EJBtVTRa7SsG%j%PoP4A z2{<=N6*1!pT6mcLmbq85b;eO?#IhxxVy%YC-kWz?MGTb{&LAcq}cD{~XPwv)@>S%<(r=O{@t zUq2DqNlo;rhF!U@{eF8GCoz7trF{}u{LwXi`&d$p7q|Y5F+1Rp3GMb8Yj?iE`=nhO zZXCKZk@Aa}{J|}HYX;^|{ZOJu3GGfu*cNvTc%v4^g|#Y0u6|&N_j#Ruq!I!iig4ZgnjnZpJU)aeatM%+ z@XUous#i;+Le8kb9=n;vL~b-EIyAH)+-WY~vF(jc5h(2@}+heBUoh-L32hSRrVU2k20vqgDU zqexS-tiE=U|J*Kdas6*YoY`5duWa(_LdSEBjfT(Fv!I=gvOm*`>qbbmvnXhAxkq$Uw0ho z_%>^AW+z)RYZeN{DDoaQALm>+E7LyGNEU?ilD_@t>)e!S_{PoHDHMu_wbZI%r9|F| z8rmgmTx_oRnxj+|%B8^vw@sn|`aaAHgnI|ZH;)O5G`GqNtNkldfgDx006*>5VOxKK zA?9Vp998oCDMQT2(_Aj`vckPoL?z?kqPhL$=&np;KknX6-Zqlrd_7cKw@Z1&rr~+{ z_vElPY_e8rnj3iy@jsTfOf(4w-IWo9Mv-=$6qmYmM=|1rOYJYLlREqeJ*4cWWn+p;x;ePzwf10^ z!__*UnER)AcvR4K-#e>trcQhsk3d(j9kHVU?^p7)ewG7r2?cARL_3&cvS#@5v3%`D zNb(qZojkiA_1NV~z8B)mJJ?jaTp%XL9FlnZr+6vQRsvQz3zNgl&1; zzRIzFH*I%NTgup7?nC>oTI?bAL#Qm(oB`1>MMBxvinI!B#O5*iUBw*4$uatRWp|Ye zg&gF|v3rBuy8yPltho4B4Cpe-oQTk}8;hb|0j?-fvN@4Gb1sQamn>2oykX>-0Up@F zM3ll;?BG!~l934GfU56DlyS(!-5o_wWPd|fSBz~QjBGD~R~xKuv9>hRyjEZFHhGId zM-{BQ0s5qn=uNCsYFl@a$()9JhDyxb7zZqStOwjQig%DafMOubk&F#Ob&I`?SD+`v z5D){w%vI?X_9k1Gm70@SIc>@ni;RCT4kN^Pf3^DJ%Pt1d;kozo)1s+W*UdVaR$rWS zj8b*t5QjUI zu8=nHV-#HuI#$(S2x!V}K_tk#L+zv?r-)0AH1g)1QkQihF#O@WTryr?@du>M;V?#R zSIFp?EZLQhg#9!4W;N?6c=jOnA-Y<@2a@xcrkR{i^x;@-oq#(8&!Kjes!yQwnC-5r zPiWqqXHYV)UhAFch2j^{{(;4qtj(S?Qt3$OJ~>iP%)C)0su6VzJj7^o0N1;;dg4#Lml<0zU860hCYI<-@Ty}@w6FR;jShg{xz3~nOl8IRz(cH zD`yA$1a_J(;X&%HHKRF&;Au2AX#~Tah`Nb|nvA)>!eUaN2rvcX9fW&~j;fQvWg5f| z|mm9&holXo-xqFZF8*Pbdpx}_TEq2v0a?jy&+4*+sgqp z*PMAYY8=0C>dd8pe@?>!iChLz{8E;lJnBk@p!u?FPwpVVY)B5pa75{t%+y=V{Mm3K zKeAH^Rjq{LrkrA_lEq5#l1>Ripdutw3Ef69bO+v<>`Fd#SHJm(?9BD@f&f=3+Ags( zs80U&@4&uGaCwFlN4;w z=kAVEZz{^t{GMpK!Z>wcNIi9+Xdtc6pgqhkiH=N&X-Rojxn(q&Q@5HUljwLMTDrLc zM{X|4bgb?UM)GY@&Lu8rX51QZD6Ox8b10R96L-BDAhSR>5mY`lDC0n|apn=JgrO7H z4wG1n#5^OMP)0B0*N#ZGpk69>UMX7IXS4wMc)(Jk747W6UapK@5&hj-!GkTgyhrm0 z?cj_IUwLk?uo*Ugrd;lB$drue@=N!NvHaWU>{KLxiWSMIL%#Uow#Z6MaVqgRaf)(h zohQ&s)e4VuO-Cu=VUw~U&1?Fs_e%hqou0MR`nhmKs@VqXc)VFVP3{pIy81RewdSNx z?ml^Y$yvW(*&ZOB$rWS7qLyoeBBR&e8Y5Y5qG+EXc-LTEssIRDgYWd9US)=lUGryf zrZuT#HOP5Wr;>Zt5A5JY-GZT8l87ZT9HW^mFIu5e%qPr05L%+LHcpJg+!8gGGD;MmQOb?~3J6CS@f^u1wrS6&7je%$TrLzT32_QITA^sNQ-~&>s^^h-}EL ztoV9TVX16wkPP#r3=L{)C9FDoIV3LYT*|Lih50OMLpTiQaEB1&|p%KL^sL9my zAzS?%0kHZ|g@!FF=*p3br-Hne*2h=1ow7sX;xh2A--WK_j)eJUKkVAZLJtN;REqUP zAE`b3{RdPfs-5S{_YG5teDkCK&tuoT|5q0P{|T!4pG<0LTETBsj(J;Id1VbeNf;_F z0D%$}N_df45=qMZvN-4DIqbFI2Ng?3+zXITQro?n7&F>6G2`=;`}2n5^~URqmp6pm zU_>zNn7R@bkz7mMkO7*cIu)Z4d~rfAqM(Cy_h4Mbd5m6~xfn4`Kfk8ia@Qr2f|Xfl zC-s%M;}?)3zw8_At7CDHs%!f-495~+?R@PchLc;L(}QkitaUx0k}j^swv!~juFz{Q zZ3hbk%hb73WK@cKPOP0kd|_#6zogKJ*x>mUq*c47<4L)bHp_1(yySucHwYJM<8N+H zjWRxNU|D;}5zel#L}+~^2cdUmx!^RS>71506<0wPJX*9tKBRiB@lPRGcdScV@Z;%n0 zMCo*RpAqE}cpI|xa0 zrzdyTf=V9my7io9{QWx3_WE+ZX!#@5zSxhMOz22_pn(&KJTz)%IeHG8!q zAxd$Y&3}CQwqyzbi9%|u2D4#u00DfIbUdn8a21qa)Hu4hq^u4tA%I$j*t+lXpei~C zP=HLWfmQ0XwQ~p0);ZjwiJeUc`V}>u3Kka2&X)r$)qE^o88ahv*gqAbql|QPBHf zLmL&{*WYZE6X_>mDDj4DHDf2M(%9}$9~xMrHkvzziRvYXuBTy2W$=fm2BZfqV5snD zqtMe+^6X=?P0LH|pgJ8wLu0gj^>>Y#>Q8E;YJzUCe!y5uTqAfC+TFDBjI@y}K7yI8 z+zi@mVYjflXDI(AcZ(UG+$>Mu9FIQZX6KxYKXnk?A$^1#ZohHT@Jq&B+YfDbEddpG zts?&Gi$7Bsnk3xP!$x*Aqf0@=p+r*inq+JN;yY zQXq)aru0if4U_Rb`j|q*R(>Den;16VEZKv6iy*B-eY5??dDY6$zvK8mtDpZ;-$LpC z>b(9tE9QTU<`M}RTN#_`I~j}UJ35K!JDN%B+x`0`gQ~SEvM7p=2}ouuDk8LU`I1Hv zfgGU{mB4_2Uj*=4!NS}!ag4rwBUU4p%&F~JsDq4WlFtdkN$lBacOo(Is`h34QGa$T z=QP)IyQ_)p*V}t6FOXDzPA}&RVIYuKddZdvTI@~QBwA+e3YY#pbEY-RcHL{rq^nhr z={-m$-fEha3j^6cIaaz5ak#d>&|(!-mi9X1^Q1ukx7}rjdM2`%tp@7w1C}#6-DZ!5 z75um03JUJU#b^UBdQLhiY_}PE3NP(U>iHkMO{5cwc3EOPYj%f1`OWx8(W4k?MsG`- z)uz^oj=_DshVkuYF8?oL^YMt&an$+y>x``{j(JuU9ML7omQ(kHEZmy*M~U95^h0fR zvd+bdbGKj|a}KW_)jCWav<32p1CIBGE8e4IVF%0@Ha`JOt79iQ&LieTPfB|=zpDo7 zNseOt;Xn<__teY4>K@E;73#488Fttbr=e->W4>`^yL{#k6)b ztR4Z>(v!sc@y86FkXBAK=<9}9Dn5Vd1(bi>3HLXV|LP+?LoK00LRC{@E7wN)txiZZ zQ^7ZPmr}|6moHizI=e_tUOO^>Q#~eJqyI0fe(f=yxHzdF*m{Xw1yk90Mdx(#sXDJ> zA!R%H(!I5lM2+>l&A2n99+wGuh+P88{&E$*b>;ZIRP=xglBd#5_VYOtx}E}R z>C?P3OCs=nDG2h2RY$akdX1WwZb$(RY1(i9NDKo;1HGTuB)1!Xm~p*=vi#{;@C^I% zmg7BG>8y81c$nz|HNj2X^TXD`k1+Qcb+mUDg_9EM;FNYT?Bpf)z?9$qzVksI{Q5Co z{oxVJa{LvhNi4?|J>m4Z&UaeSjTYlte)-_0kes|yt**D*nsJq}+x+_A`c{^a<^BG{ zF1W`YZCL;3-s+*WQqt9^#UHqArH!RWOK(;`{+iBN=sLJ@H zsEXqhquM=TCj(CI3N))Rioqqw2JUy0p3_#zV-|jFyiimV#{(8r8E(hi9q-W>Cn%b>qJ+LF73GLp6-H4g^ zQxHK3ysO0q0#lEvR?vQ^!YlO+xv?_3aM>nRxUmSUa;_eovvD z<4Ia1-dZHSPoqNM!H=-_`NJmMi*44!=Yn`Z9|F_90ObKKCWbkg_Nv-Y5YZ#gg=YXl z?*Wv1c-l-C9PDk~PFq%Scea-G@!ymz;3$kdEx)f$^I-p3kN)q8g#VvP7XMBpH2m-6 zKgWN;DU|##M$Z56GevtVq3>Y%pJ)#Moncs=w5sr}!4>kCWITv~%-|2$b2QaX+fGCT zbeo=*M4Un`wn3yJ925!in5H+7_YZHN?pdsT1!MQpL&g`Xl;ekoAOcu4jS`AY?owG_ z-{)=9qv2Xv-5=O}LE$vmEc8LYxHv3!FrJ5{tM*G^NZZ&)C+UVm;Ij6b*hoCUNvbuzoHYZq znIl7=3(@Vv?`dJ8{-(By?0o1t5E5W5@^HTnG}_!yGkwCu;C1jeII4IU`fNfQHMEzt zPUmHjo61zkj)VSQM{YO2D4L$*xT!@}x>S?34#^3b5&4Cm9?OisHCqP9y^yhRuS)CR ze^M;JHr)qqRg?pj$+U}YK+($m7s%QhZa{saGGlmO=0~=?- zY4>}IKD#t}cl^#Z_Z%HFJR>bQYR;PJ@JDu^RBkLao=6Vt+H^qdI>8~BFF3Pe<1nIx z#k}ytV|@vFmro^8ng+NN#9n$3V4nuC=royoW;?DW3`eG;9=K=dnnmo;wSpc9irG~< z#X)n%y+np_6s+(+QM0e>OZ=N{GdsiwKQKEIr4$(hKQ$N&Bj*e3vj`zheC6ojKf(V| zJk4gLOGkVcPgYR>s=t-^e+U6i4(2wd|N97_qUnetjPk|NIch~BI1(JR0SN?a<-)oO zN#;t2Ua*7ohcC%5b@ZxEedVI6voSu;4G4u6qt~;bz?SPIP(>eD&3HFb+W=>E{IwzB?A!`)jlHjZY3g==&P5M2tTUQp5tX=(Bs60f*iao4ilkX!`mH>*vlvcv zVi8GE=;BLVM#QbHpLP&}PL}(O>I{we*o~pDc zdr#3eM22j(JOGg-T^(WwhwVuaM?N^a&J0&eG-XQq%tnX%JM1HTDd-nRD4ZgaDmh(= za{!-&$z)l2?VlZOl(?OV4t$oU*qoWZ5Is4XMNBY=!{A`dcHd z^Hx{!R;NB#cXbKLc`!OEOooMYy@FvH$b}<4uB>?0mC=cL;T8S1y(r3qnyHG=OOHFv89$ zY8F-&df?83!qFsr)DtEZMrt7@?BUS1UpUKjOq5=@; z`s+;OY#TY`H5rO!2M9HYW>UoGiJR0v3nlwPp?QFv@1!H!Cv}*sQMK^}1*h^ry3j5! zrbTFIN6C?e=^&D zsFQFTxyL-S>Da1co7^kB8e%m%(U^yD^>nd`KXbX!pWeFCF1*Gwd0Kjm%6~Vie>lx zrCedOSz$Vv%IviS#HZBkuVGHmY6^24KGJCIhh{|LCg3rz8umI`GvxsMXog8X1c}*5 z8x8Ujw5yVB2FM^dGyw!Hfz}OI9O6kwJJdkfzQ9l5qAjH+zLyAz7(KR)ZnO;=7@50Q zZFs$3M*Xu~bfe&jZk!E&TGaI3cSzXs`i@OocWlxH&FS@$j_83_Oe)s=P|@&p?Kveu zA5>sGYQZjVUqNUfv;twr4t71Pv|^*rds(bn?OfH`D0Vx{Ye+Uw9i3>I=bYVogxq8D z6n^9o2RxSbvGeaSe*0iAvWPbe_o;5crRJ@lV%W5=L`tGujl%?aqF*)kZ5sLqSEY^c z@E!sScNSn=LvOwgyUWL0bFKF6S86qRW*2fJJS#RFH-Z&p4>IrD>^-Tsg_8Gf61sl^ ziR`LG_}k9ZXSyR!$!<~EwS#3zn=$r%!lPu@2bk11Pn9RNJ*O_ zok8A@<7b+i3$J`XqB?Y;{z^C4oFl*O)om&fRoc$litK3KJpryVM1)QC&@NTwr;nRe z<;C~zGMrg=sQGggtBtVLaJZ^~pe=={Ed>}YdjTy-+E&gwG|uZKuIq65>kOM9w77k7 z#vQQB)=ZLYM59H{YDJSb|7ONOm-{5`@~y5Mf$*=g-G3F@`ws>0|FPOFR{bZN*Ve?H zF)?*e51#-ZBmjyr9C3h*Kc4^!2?|Ks54`Ax0W;y>*u3~{PR*GuEo;JcST)~>Y8VOs zJcUbRbMu_{a!pIKXQlOHz2W=8&vnut_E0z% z^=hZ|7Fv}50?b9Vw-3~Ii;2f`-v0}L3zr8!T;wj55ON-{k-;eJ7l7JA4zBm37 zF~LhPsmkm%8A=Lvf6l{&`bUE6qTim^{3Yb#y(GkzylrokCs@yuVNul<77+hs=1s&- z7bjJ8-adye`LNhZ`mRF$VtD#wMu;YDgtFige3!E1EUmfL>0)hjc4pCCWT<-oRwBuP zI<`j3_yl;g59H)zBnP%@eE#^JZ&H_bW|nNFXv<9OmJd#NQX^cWXPQBlcE;qsEwhpl ziF#4_g_>yVIhTDJTa2o4x4MGNj3k(@rd4$)qb_z4UBWP{)X_6IA|%~q=ID}8(q`Eb z2?aD}%fgT)Ig<()H{-8pZK*;cs0BM?OYW?p+ZQHhO+qP}nso1t{ z+csvB3M#g$lACYsb@#pJJZpXD>@}YGWBh)f`L@woZ@ssEh_l=x+~85C>E5jlLrOXP zCXZf%)vB>!HI%KDyjE<)U4~2Ldm?_|Mhojg7Os?d+L^9W9>ueACG&l`0WWJjFYX%f zezzd{N11ivH(O}Sr+?_m4KObMaJ);kXj2?oGt?8DrJGb!G@tBn&bN9cSs4~&>ILg! zm){ut3k{mB`ayEIm@tXOK8D4ImOMoa?nX7tYz!Fj$5Pc}@~#-`!zdYK(4xoYGPJn- zW3gO*f%?B*P;*r|ti|ML`j$W(8i}e7hba(nVQQ4Ml`BlBC?aQD4CpUm)Xra6{fKAm zB^6xf$3ehtr|1$kPE4+^U4G-u{dx&r|7pwkOu4KI?n#14oGJkxj->VqA%>wUCIUxE zp~(HcRDo5PE-E$J^|vC0MmV(VZ%F^uTd{6QL$zEW0sV_$bn%NW8Jjyba81l$tdGLO zx|giDliQ%UzC(PdXflV*gIkL{M0=@6SlD`|lYX@gX}HqE_>pD)j6@aX7Se|BiG-`N zF*7evd8X*kj2IBUFF0%^whxj9o5PqNYhtqD>jO$w$ff zNYZA0J~c&$6U%;$Qq^vrwK+N3kC}&JTr)vW`1%f5ZSEsrBmlAvLdE`{NDV)RT1B{w zNr+IO*P3O$#j`zTRP(k`iRbz<+0J}2ib+#@9vflmGSDdJE;F9}=nCo0Qd=~?^vrj% z+%*gw6Ia8@BSiKb$=?)5+1&4@P;Epwt`VwU5*R7(+z9}7wWNx6l_%)EN4khRHxu7Jei6o-a#Qqf>>*!&Fzc9A%NB1+J(hc%hz6Yn4 z18Z0SPfA?SFch?{&!cb5_bRlnrhq?NVY$e{)y@q(a<&gng|c0-VLvk+bdK;I%;Fz* z{IC=UU=#M#B7%@L|Hx3fE>1Q5z0)1k7gWdI5?Z|z*ShibYh}ZXH%GTV4#gSwA!H3E3fjJ{P>S zfH&G2Hz2fYX>?~$!aYk7r&jf-$AapH(axJD9I#C>3-oTgZ)2hj(?=H{#ifpiDz7+l z`zaKPQ&wV>R%1l3>angK5#{uZ5oHdSR~FeAbBLNAY%ViHUHvES7)snZw5Vfnm4?`H zY332_qSdyX-T3=W2%gBko_N7pwhvudx<|H=5yyxLYl&zmy9(=sPIUfB$4O{5!2_3> zlwyL^ffz`S4sj~iG<~e~*id}I5djat5KaodkiiG0q=>^b9V``BM6oX~8wPp`E%v|#ijGcuFp!clidjsNH!M^9r?X{=IZDA6xjmFQ`^sik>aoooobcp3 z7&GSNX&HVdRDWHRVx^Qq!DPL_%%Bo0cuge|_KMHP3kNLs3eZCZ0oaPrc0L*)Kr5ze z83{+(d|$F<*~GPHByH%IqsZkDzuj7#+I9f%Y0-!6dc5E8_^n*AW((cX#>4Hq)71^p zEbq$v?~#%bY!;aA$?*l2n=vz`Ap&w19YeSzBu7dpX_%6VfIg9Gg?!1?+e97WM3BZsDbdu&p4*@DbT;!6A=Mo)EWQ#oDR{4y|rdy@$;5cM#~F z;|{jLYPOvbN`7itJ`xU7IAI{34_&9m*ZgL%6Asu>bw5CHlWi-A+e!4;ne4|}3C68NM?@8sxg2<;3d>T(X>*z* zOfiXoKj2GYn>$fLLN@gEV%{B;!X|lN1Jv*|A#I1WIm*r240ARiG9RUIdUg3a#_i*p z{k%Wa)9YDFw!(d8Al15L&I13WrdYV4E73D6KNS_FKa_byYDQO7nI;>eoxm#wXP+8*=ZA$Rk74G^8=UsOnrfooUOU4(q#uLzV#cuseWX9IS zI~mgZzV9Eav$UG`cxS$<&MoMFN1-ME=LI7%8+${Se_bz1)m6q;#TfgXqT8sa!9cW# z(ooXhO!y`!a#W&5LBE1U0W~7zdzM5~Uw?5$f?cY2jy{j=!lm4EFJ}G_#$h`8wCV@C zXWz2`pTByNy%R!01LHakV?M`s!rAxfoO_?$#Pf1;<^Bz9pW<}T8me~Rbya#Q-E@u< zlyTJsKxKWbc@Nffdn}6y4W&X8cJ&AHBiWIb<)LE@Uiae=Fr?q%C^@PPwdu$kWBR0H zI0L)dU6T)c%`n~tMdTqrDvOyJFb_J!v>gpJ?D3rR&2n+}7Z9E_b}FCxy55R&^k$`G zYHD-N!ZazZdA<7{MF+N+UcbxcY)u)9_>|3QMNChRt@i73WvwRY8pAzh@{9@aYFw`K zqYfXd@n+^!;G4+=mstA?RJ33L_($f3D>gw!|F;l3^)xD*tGVYSh z&|WPu*RJ&mQr0U%RNz6(sQiiK;c?mHtQ`79pN@3sweHP2xlRl|B*jv66v~g>dRW3Z zDK)cY>a#~H=`GMIy?&FSl;2_Fa`FzuzRN<_rfy`e;OHH?+>{fP*_*nIv6fexRxiE> z>5iK|UQ!hs^TGHQp zi^ke-EM!Kw*ffmG*N4%vY%15oM!Z@BCO!d1`R_jwDV4oO*H@>7vnlkOs`i|e@2dr< z77;6Ils12UP4VB!l?AMNxXr7r?{*WD?Z(ls#d3VT<5Co*pJ4L?iST=;7v; zs1=Z7*NjDb#CcVoggSG`%Zo+4hd@Sbw-Mgb{>r5hst%PQh>^xwyyARASUndDVt`3| zaIAab;7mjTHfTZ_(gBsB8!~ywUkiVHt=E(Y0med>1n?El68*9cq<-ig2xOdVfw6fA ztR6e4K0N&q-+NFr6loHV(XU$;z(&;$U}D!f4qJ#n@x2O|(!Xf=uatMNVyjI}J!%f^rT9b|(!+q*lD=#J0tDC?JWZG7M{zxkIRZRp;deH`A z`#4mD^}xh~NIXP+M{<`m`a~pIck@Cj>K&F%Du2G)UD_f;Em*elk-x`th!vb;X1FGW z9a*Ee1f>>w<66K_e$Uw*e3(wsLX3Sbn0>q|uoQ`sn(1mojFZyOC!}gA^t2{Hfn~k+ zi~6uAM~(M)!lpXsY48R&e_Ckmj(_?|B-bMH?2w6o>zz+sbid0-H1#00<#=qpi1^CI zRgM&hPf>_}roWLl{=}>|O5Yy0_tHsscWdLRtBLivn(_!AAT;()ME?STTkY5xMN$~E z8Q!CR(s1v~)?0=CJ5-hX zpQEafrMZZyv8An{&A*1$lz&1ixjlBOfhCC4p0F<=NwFog6?92+wh2Ev@^!Zs=_XiIcHDXcw{NNrZC<(>fq*?TI6(BTN{tOJd?mQQVG%j8t_ zs8yiYL5I;U1r4UDa(C50LXV{yMyd12o!BY`=BsS(40>B@lp1N*By5#cR;W}ffm#%# zbyk|KUaiU4bSz{pds|FU@!jp)G6Q2WH4$Qt+6*>ZtR{?2XaRGEw}B0|=D;-9RG6s2 z@IW*S{0y_pYjx6Zy*xzL>XoGkd^iIMJV+AObL|9VcQyQ*Zdz0$ zYoDERv}K6AqK~9% zXecc-%-BVbT5-yi&nP^dWu^TYO%#YBS0Fwl1!E7ey<)Gp-S>t$`7|wqNy~ll^SZp~8VV`KI)YLdME%3}FY*C;^ zmFZ2bFE$#iCaEsWp{OOlfS2NF$U9dc3VUY|X_|C+|Li2kAj?BqiCMa;AqcbMG`Yv+ z=BBS)FqQ6Vi>tt4Yv%>{^ttFw@bzhbwcp~R>mq{NCjzSnpBqPElpwWz<;weg4-Z?W zg!Mi+cb8rAc$mMQkc{YKV{jZ@&MjyY1Stm>Q5wKnS6_zSr)lBh9hpGwrJ&sFO+Lm$4jLAsfDtXg;GB@WT*-JmyLNT&^5dDR4KqqOS{#SN+ZkT412M~ai&J}OH@ z9J-Kz{TTL5g5d6bHs=y%J=KfFx7?9eGMi!(>S|8SfguZ@Bi| z73jO0m_3AY84J6c@%ghaqBvvEyxvGj^$aQ*6Io3s-6zl8@7eC`JbzAZ>A#URlpLb$ zE++~ki8o;#zj*77S;Cb$BoArh>>hJs?k?2l5A}E9C}E+o(wv=+)F7n3zVpIeJ8LW~ z1gpZfxxyI94uNCwp`5mxakqNw5+GpeB16ogHKq#4Pr6l?OuB7S)nuOW%siApVKVob zrP}nWB@4Pw(Lqm_K$Ylh(`07QQs+|I*rR7V@z`d_jkMhV^vHF;3u-b>(Wz32Bgbz~ zJ<@DynZPU*Work?xl5BxJI49mKsb*txx?%}&9QW_+lnc7anrA}73doHJx@2uf5Chp zYa&aIuJ<6-hMXL<*{CL_Hy9Eq(KxW!>=Ny0u;zi6`cMj#*xEKTrMt`Qm|CqVW^%JH zade{;+fwHX`JAd{AbY&3Rs8!(KM(aNxAj=0P4D(63lhjU`O7xld9b-jsJ1T3)@FXJ z^c-Yn%%RN`+8BBHl>a=wHm@$UR^GGHC_7IPD*4f1x4Eq=%(vqe*#Q>js5cZA$o&#Q zPXyFclXCYPBODSg8K)FRXVhA@L(dV6ZTh6M@8x|5S+yD-$HMhlJVr!7Xp@kA>gK_1M*@#Qcc6=^RF9uG2cB{WV^gT4yU%VSXeMg6NCn{yoVn__ybK zd8GF*$|2IT4x*<%LZ+gA&f*NJ9?47_ukkx}3d_tPwl?U;E0}MsG_&1r=)aKe1(v+k zUpo8#l;D&l)lcfpzK@J9ZEyX8d8 z*1Ps)?FQL;&8bphDIe&1GUC_G3FT7@n(-9$(A7!;m@>Rx({ zDadCw)EX7?bY7vLJFDWn13`Xm&edLxChL7L{O(9RAPgGO`B@<{~>b-I8gXM3RK zoo#P#vPlBg#$_UJGuIQWo1z-vKV$-UICZAPl3x~DnuZ2wm6sxJW9Jk2P$bM(+X>2S zYwR#AwkklF#IW{cH>Ev(Esy^In>1P~U5I(-!m?Od}y;IBm;>_ZK3&54smfy=*gD%Wb?H0yIYT3KkX;!S4 zwK77zUi4~8Nb^G=QL*-WQ+w~!^A0+jum0Z@JAseyvm_|(aeba8C zJRMycYnEy^CAfVy33F6SP-1XDCpjz9O<`MRs5mxr=MtM^rkKmIfS{!br-B6LSebDo zE5as}#ydBPKD0)D8Vth36%mR67#KF|?4Y; zmZ3q13h81(;q8vXj0xWaJg)LB`*PfMT+di{6?pA}z8u12;VBN$K9aEke_Vxj$no6# zHpk|92#Z(`Duv!sMQFLCmD34+6}}h%Cl+WnMMwmQAjXf7shf!P)^XwH2lai+FqwgP zX`sb(5GjcG+%f17!|iA!c2Y+xl3$L2x@9;>t_&?;%8pp(Bs4UJ_cusz7V#n}V>fUr z`_^E)#V1kU!m{VF>UDuUhdo;%9uh?6B%Aq>aG%;8V5KZ-;?C)nf0oW)MIEAcXqhxtv;)+4q_@wz{r+PP{T-!!(pBofL7bFbl=l+#4;HRk`JnC0 zKE36Jx+`k!^%_;XY)}>Ng^I_tDABQFqK5?19#1F;ei<<%9jRS%$Xvy{L-m+;;A-_P zam~A=MGSXht!tf?g;J3h+IGl;wy1OUQ?!b7q88{SbOV0=NU!)lo=*dK!`Ny1&68)_ zElk#|JYQe<0Io~T#s0Vy=)iu{)+yT3*6D_rJ*ar!mY{(sh`PhY_ds5v+hmvG{yGzX zVT8USZ2$R^M{-|he*o4;?UqbsYX*v5N|xkAt$IU%^U?kMreyXQh^=YTF*m?7C_f5% z5;>;A0~USatfWNw!CzA4`mXOUjJ(7NEv@;&$b!Gc$p1_aOWL`ZnwvWPYdxI$PoPW- zvC&9PRm!gsz_zj#7Lq8@&@ONJnMMl>5?Z)lM>m0#YR8sgGPGay0sOWO{s;UQaBqT^ zS#vMPFaLcGt|Iuj5BRvlj;^m2-ZUv(W@PTyx!zYN+3!6kyGP-D`2L^<7@nBC=|31l zEqA?T2WdaLX^Ya>dD8(ixVy#eGj?XA(~=TX7DL@IpmkFoz|h@o6oA?gQb_yB(_w8x zn)?$d``u$$PTUi@YYC4uLKj(f*K;mm0(pDGYM3t z%7)@pmk+uaL2F%l=IP=ucBn*Knc+&CL3wl!+LW!cqS9n^CdO%bli}09y)2cgMnyjM zxNW<%=%h7KYK7cVz-T0&q6_;<)!rEe_Azi7s zfHeeB*Av=a0}Jg4|3Zz*`=boD$BRPUzenuzP>0*WS&=qHGME}%2y5__a;4ao@u5pB zn=6;@$6Y0BOUgo2svg5cgXhu$x60yV@n7n=#O!LWQnag^v|F6~OC9r-(ExnC^eI%N zFm1I?MBU%|mGBNADNcttA)isoHGa}FhPhocwfjb}4|QV#W=uip521w1E~P!|x@Kj7 z2Q{;UU>c!VsufqEoHR~QasbnP6{9a`O;`#IfS)~$8Mfd0=n%sy%td6aFnQ~+-Z?IJ?~FJs zvuJFmq-O7xTqhQaER2bo7{NUbYjNHd~K3bqJ1pFVC=+)?7%3x#Gz*@{t zZ9!z0frT0bP%of=u@VZ^$jI*_Wlj|3c|{$DHhJXcW;@6s*by1Lw+`bKRFp*ppgRE@ zIvpg~jVTIvT!Utl!;I-7w5x;4MU4RS)ua4mI1iF^O%I^}1EC=^XoC2H(b$m$%0>c#lkZwwU0pi zNi6ZXQ(n}rVYQ0}ShHSG{7#aO5a}l$PD44kWe(ZjItyv15!x<7n2Eazj;u96ZDb#H zXSw#~9*sCWtMaA|qcK{33PLCRbFqLC|3uv5D3)2My1&}B_U5l-Abh;F zakPGF6W*YG{nG@89NaGA1Q~Y^<^tmeSB*2mFpBc|f+xnXQsg#d4=IQejUa2bHx^ zMBXNxOVl{+gDIFVKn|4XItF2s=mswkFw-}J7-7%4H8`S*=_oE5HEw%K_h@6UCJV z8iB684nqfRwzAbF=$r4kgut=s=xyR!-*yPXehL#O{;Aex>wWIFf7gaJ9qzu<+iz5b z?LyOK-geEU*45Rq@%X+PX8ayJ|M-?VM(sJc=M*##`KDHN?oKkN83BG0q1H1(iGkw3 z17|snj?e~DT3O@$lxoX36O}sSXut^MY}a)RTFR^@`5`kZ!g8?TH>L#*yml?|y$8Ka zaTk|BVFz8pYV@mucx|)oyjh^aV9)J-5r|&9wcEczSyb4{o`kd0ka#50s=VSWDs|f7 z8*29M`oUkDG8meR`!EsQ%R2l=18_AmMrT;;c^we>dM!gSmNk% z&^`f(L#7imrE_T4ntIb5=x@}L2B>@QF;iHt5%;3)f&VD2)OkU<`MdMK?r5J;q}`4 z(XXs{3c*nuuzkqmjN~g-kcQf+Vn1z#sS}RWnY^DWw!IjkU1;p7=13jo9o+6Y!pkVa zICF{2{$tw<<(XdR%JDc;#e;6ikeBv`kn{Hf9vpu>`i~)Is8uC4j7KnBeoP&yd%gnW z4;I4^#skc#u^!vtstvH~13$S}pN8-OM)pRMgH@Dg-O97>>b22og7C4$e~>%K@Z`s@ z?pzd(TEIBKD@;UrD&a3~#}@{IZ%(qHfOMTKLU`xf%J~&|Az}Sn=G-q4%e-)0X3rQ_ z*mBr>KvV*qZl+;#tdfGdm~HsQ>Yf~92H(&xOz3{#nZce7-|zq%2jgHL7;4D`%e3Q& zovU=O;uAdZL&m0qNvbSpi7F?mQai^EIC_+&o1!i69oiI^9GRSS@-S-jy zFEpX8Z@gLmnj4t?+qnVh|G8oD_in}iD`SDOY|tjJ7nQ7RXkjG@Qk1rYq-}wh7X=ix zDqozNGzV8nu#;hz-ts>KKEAK;f5ShI0d>JCi;IKj&(CBJjeTdyw%6|4%APfhC1${Hejk_sHQcFVqJ#%@TEUvf~q{|WQf<+Z)o0i z%=2KJ$H&u+o$sNz9E3-K&Uxmz=QmV&ks>#8Cs_c z6)Yx#%$77HgPLgy$WuFtYAh+iWH_hD(v72s%m9~}Y4hhzQTOt1G91L9u}n=C>J)-H z0(5Ibr`wkVgst=lYt{CF^4sIPj4oN!<($T%Rj3!FH44mblMr>6u^!^?HpAS2yo&W+ z9?pl~y*hvHSwHaCoB+p-Y86UwvzL$?gePeg$E@VB0Msg_BXM#-!lA{NIQ05CbEA1@ zuiMP}XNI$8nmW@C4R!B9cZcH3(QAlFEAO*dq3UEbZsalMxa%%W@R=%N?OoLc|t-h;U*eVXb3VyH5Zth-S}g36{W_C)k<7o z&s__Hj zk#r(+BdZnoACHVts*L{RhwDZ0Ppt>6hC!mLlnXzcg6nUOqw^wY^GNVELT~BSWH=>t zLbMKuGwH*~CKYk$g(4v2ILIMW5Dt3|KG3p%vLIN5%n%1%;m%xfKtnWD@kz8ljUnViD@o17-*%I0%sBCE^iy8Y7Rz^5tyffQ#a)pkp8inl!Ry zad=7Qn}Bem$dkU~+hqWGO%1_zY$r^?62^t>lYy!e+a+wm9l+TvcDPJxL-2}tXy?ZQ z?-2%~Y~IqLM{-B&B*Li|3r8?S+YHR=Qy5PW#WF%B1i8Qn7N*9rLK(6st zn{fw`SkS)VMaOYY?FiDXHAtggCk4qEaT}YwhsiDAB>ThJLUZbJAl0b0r_D)9k?H}9gH=H^lcD^{;@!!hc|6m$R#NO4&=HJa@?m2CVpp5p#ezCOd zVpdrS%V1@S<-|)Useo3>Kf>AHMkJY&lQNE>Mig~X#h=EVO56IO`$^GnfE*O<7@C=7 zI)Hb-VeEz&a+tR`nTQ)Ifz5feZ1TRp&-!^c_kH|175|1_Z@14uht(c3wXMDE7@B8~ zIqvL?qu$XmI^&9$JOhhsf3C5p$eJ+J7zkN?>LEVX1(ZQudjh5o+I;Z4RKTjD*W; zrc+y+G3>=VcZ8EW5EGZh*&UD7Hw}q{J)1H%=cIfzdQ_S%40-}?H1q&M_7rYKTgQli zOqMi6wVLiEo&V=Y(C~^m!UQC8!h;{hG@y(oTresKS2=^0gA8_RfLh9I zyVPb7jaVm**ntN=nX!8ciuLTE8X{2+gK3&ba*3QPLSC3|;W=8!Y-r*4en!wEyc15M z1#^_QQX%shB~9u5-I5S2M!VLznWqlT?f`Vu=jwx9GCL_pbMJ8&XW#=j(lwaFkI*UJ zS)F7kdQz@xcxWFXIDfB*A^O8?r!Uuo)il^J_4Lb$yH9f~FJdbg_(E z;ZqaUBxu1K%_V44dxbpIH@IUYyHe>LGJzk%Q^Qk=AX6Tny4izx;@0KypI`f9ZqpU& zM+K@ul@e5`84RL7P&M2^0I%>nR5ORJ5Y$Ur@#y@)U)b*PpT_F<4o>;)FQ#_(w@gjp zf6mmthP+iQZB3nB3~e3$busP7j?qcY zCK6L<6_pvJ(Gk22=aA_;(9O3?=w@|?U`(zdhn3kI2p*UvXEo}AaVavFUzqqcZgU?W z;-9>W@A3A#Kpe4|kvr*(x3s;73(sJ)caJ#X_he$67o#-c&^UB=+oHf}FI?vPjgg2t zjEQ62fuO+AKpW6M*1A#4YP61&MJ}7(F!z5^&TeD8b|j(t2@xY^e5@BK#EKYxb^fGwR~)P!u!w z^-4Is2m_C#BjHxvR{I+K-cqw_)Ia%hQ%SQew{qw_9o&@1!8%CFn9jcjzgNm!H=b~; z#DUe%{3=$?mw&Q`XPFvBlkrT<^E?^!1zLORjKTJ1AgrU(2b_>|;v6a*DI6#i2&;7L zkk_J49x=uy0}$_H47zryXP#&W#-6DD*_mR43N6lHQdc?ke*@_B;L-FRpWz zKqPPFgld_RN1Z}#qQ^Fy!f?YdI1{?9Gd=^L##z}m&g_!eZa&8QH5B38HT;Ouc64Gp z@DouzR|!hrI+XLWL6J%s(9!f94>(0d$#^?_?a-E;aNDK|j ziJ3V&ysta@J~uvjy8sjX{C|K9V6?&H4q<^QW$rAb##sF4FgS()EOw6VGXUA#WJ9&F z>_Cd$gM?MaI^zKWb~Iv*gX=cV?jges0dzH&ZN~X{Rov@e9`eFlu3IfV*jPfx^Oa#Y zDty!|E+w|=G(XzdMI1*q9V|-8bLKQ=D^;6cwPeG3XuFC5Ze04)q%}b)8%Pr}e%{>I zsY%#_PE)y;Ka$|Ck3ikUQFs+;NX>QSk3tb!#f15f~ z8(OVF1W$((Wsv~=NaZ}v-Z)Fd6#LHuc4i}28ZY(zLbqyyuZ%oG%l7n8421_n%<2z++ST61_@kd9Xbv+iLo6@G-hc=cDvC(*^PI} zK@pYNxe%iV2f@N+P&6TSdny3Kd^)CgLUKdXpLbv$Ub9~r_gksX0nSorzaqo+oFcgk zX7jI(-HL~1A?-K)VOX-_QTJX=8 zgU%_koMJEM)U?N(SfV^OArK>x0J@2a5t2GCZ}AtH6a>pLnIa)dNs8y>RS@uc0?;9c z+S5?3N(awwMJT?t3b4|w4m@DVj7_!Y8ZjPw0+b5X`CE*I&_rFA#ghzieV<5Y?^CTU;b$#SaxX8pTN?VSgCjaG>eF{u z_&?U!S_2i=kVr|QPZImrB+uY~=-;B1t{tW^8Por+AzZM4k|D$ep z%KAPZ{%@jg=3ucoM*dg=o6EQu4U2%!VsV)7cMIJ8PYxW*MayaI zR?EvuT%q(HEy=htDlzF=a$5nI^I|^Zaj^zQk4U+$HlAEA3R|X7IXkB~&15FJbzE`U z%{Y0I)Biv>SxH{WWPM%FaXKy*np`mOOApxS$_|y(wp+)WNdX^T|?&i6g`A{k6sRoI0FNn1>1q{+y1w=Ws4`Bs(ntnE{YrpAs?o<&Ir^O@T;Wi;S2)!U@s*YNbPp*cFb-6a-zg-oAeDBsGhKHk% z*eF6bSuq@BU&Q%QOme~-PPNca!7H!!YbB|B-=X0_bZyV?xMU$#7Ho78V+_=9oo;@m za^}9P5M~5n&SU`AZjc>nwO&^ph6HyxfzF4RbtYC~qPhb`6mH1i+k{qZ|FbdFT(8+A>@EE08Y# ztx`?*iOUSVkXX8GZiOe077GWq?G4kF^yJA36d1V99#US`(zdqBlA~%}=yyT5wzeSs zrB-&r@S#VnfGt*za>G4x zbu3{&lj7^ZunN|ou6?3nc*?KFEm@))tz%}cs{|w9v$|8CcvjeI->qd?s^hu&9FxpU z%!{w}ce>eVv4y7K=W=K2*8_`j!mO3R}N zex-WyUd;B2{j7-n`%g~wZ|+H*)Wlz`ErqN=X0{`scgv;oh*+YRb~f~;vXa0>&IJ)Xolag36+WHVdO zIn_mMGuyy9SDHR(0c8v%xuu!V1~ObMFxWt)l<#V_(P@b~ncAe04#~5niGwJi&fCUS z^OR*bz6IoE;2F)Nq3>tvrwwKlgAhl>JQdWYS{{`8qOZSsjj7}o_IQg1uycJv@+ zs^`_T>Z2*xMOwvU?#Wg+WJ09T=o@$u@*th73#%jFpYDQl7Mn)9m)6YA_0uaFw8|f>B-vbh4g@{@b`19kgaV3Sy;03C7a3TC7vZe;>2<4S0xoCe51)v+@BQgEsWdQ zpC?q@hqWH0o)c!QTf|f_%%Mtczb2AU$3X*Yt*PY<)Q_?+w^)K0#~gvF>m^kJXZh>b zW@9i;hef}x(M-SJ0|v&hAn=gQ+xo*0%X}Ohu&o8-{B$WQEoBTe%BQ^t(9D7&#ic}r z@#lQT4eT2$kfgdR1^akCkBcctFrN0`@QxUkjh;&_ejCI1*$~j(7uo z)n3Ypat^Yz!L1Tyij+M0(|yBgGGR7a3j|=w;DEW%GPBz?N6{Hz0uU5vC+n=#CCV8oLZHfG5u_sbba#L z$^T7e9uhIk0=ck<)_J5#hPj}xLCQ)`!}+kA10}=FIn~T1m0j|bHg<8po=Z+J~VZpdVp`-TE30|?{5$3fA;_SZ=C^k(p7D5mySn81Ea`76?%@q(3G;VrN53#M1XF7wLpjMvM>&|O@vriS$!(g!k|SG3KazQO z9!jQ?{HW1tJqLBz`-O+l`s|M&xHWp^Cb6O(;X@(!rz6QX+^u>sUlQyn(W7tXjM!4W zl5b{~$b~oBZh902oN@J*R>gm+zt+bIl0pK45%^#L#GqZ1PK#?LvyG*rlg(>mpk1`V$EG` zrq7!0A1LQHl{LA`(?2NM3`}dl8@2dp#LC%Cba2w85JWHVsy#OnDMDG}%#_7YmdPTD z#A|OI`WUS&K15NTyjMJ9zf@ISko?kx|@#Eh-T)wYjYUi0(fHoxc5z?TvX3T1cBYH z-4mLT;?69BK1WBfp}|`K;y(Sg+dT3@DdWCBA5G{9LBFdiZbYqU;_PtpujOwCHV2eb&YwG_Y?H!{l3%9M^ zijx)Fwr$&}*tTs{Y`emWZQHhO+fL=n-e~xm_LB?S&cfp`%V;eGnLq_xheV^ z%`TNc_no9!)z69_EY!#EQrvzy%Xj#wT-$1Mufe(z-KK{;Iv3jgI=aW`9>1Lk!t8TB zhkm?CroiQfWKZ#Ek;uoD}X(THR z)jr#Q6{O22NcBvIfDV{o5U-m^Z##S;0`ulN(AhqmAGKuVJuXOW^R}?Zg5BcMQ~+_1 zY^SZvoV>(I|0x>7)aexCTqqSICP9BvdO|TIF?4Wz8q?!xwTW9(@vg>#m!F$DZwL0N zI%kLask+?@(rQ?pYXPa9$Lfvg1fr&Z-x4wCZ)FatJsi;!-SJT|N!QYNMFg3T2rlP^ z=1=KDwt=ISKuO0axXhB9Ef(!OtR;OF+h1gMqxX+ihy2O%W9m2LEE4U1N`!w`SKR+e zBB+@dSp5&$IfeZSWyt{DyQwEalsez36%o+vSG0C!LL)&xSgqTNulF<8i|w92-k$f#e~DIv z{1Jkmje`>o41|r<0;oP{J0{5Qx9yC+) zCs(`9NL3M6E{KW7sW(mcFu%P{(dp!+Tg7sPlxPx8Ka+`f@^S&mmVF3i^(XjpiRx8Daa8MR7Go=V3ZvsGM|IHSmnI0jC`b?k$DHWq|S)ct|J)`fLJT1x|z ze@~fTF&%kNJ#EX>JU=EZsW)iO?IOHLL{Dc|u)47(Qxk61z(z*$Z#q^wJMW9e; zp&BeG?uL(8NT~>H@D!vDKJpj2qfQdJL-40>fYA>VOAg5W7-H}l2L%YD7_r29(IB%x zFoshGB;;}*#OG?>aR!Lnrm)ZtYA!9xYMPArM z%1FB2e_ZbTT;l=Q8ZPzcH+U3Wt7e$dy+yg(HYa(mDN4zbbpNT&C|4qR43a1tNBC|} zHQxY&(ClyFdOaig_Qe{k)DZKToe}pX5c;6t#_Y@WdNz+T`zR*s3(_M5*NS1^)2^8}fg9a~S^Po8xF;FXCZqAZ%^m-MFI*H76+a3EGeDWnC@b7oVygxA!BC-Cm`CG*4v5qs$Ia-3t=^}a<;PLIO}(5Ir~ zU!@}aYe^>yRVIm-2^;w>@sw3_78V@ZxriSBV(={i|{=$AN;6q&9Q^X zIuS_?5SDYkzpn|vgYdl?u*We_6-VXC-ND%Z3K;b}6+wKWd{NEJsdBPrgtwfI9`5BVsnuqb8{z=)D>Tt2d73&7LULY)nYPdPsa1LWBUym_JnJ?36HodQHus8bPX`+qWQQjo%`orEx~lE5U{5+86VuiH^ek05A@(rZXdz%W5#u&xc=I0FuhwDuul z?qZnx7C)rQNekh{@q}vi=4$h)nzJ+>YR*j5ptyJlqGY*4WDLH*y2QfHPFGr*)9h`d zBfHt>0nGe<^z--`^9@aSsA{&l@vK*@Tk9UFUI$%N9oHnap;Vr%JW%sjWt{fV2+HFIU84Vo3b@`l{dZQ9()m7U!KtSE>QW6stBb-HSdCM}T83Urc{{zgwm zGFY4W=(n(L6Fzua%IIjG(&Qu4CTp*cRE^se5IA|X(WZl?^o?i{-LJ3A{3f}G1u?F} z8eLjLPZM9F1?xD#&kSZ_c5qT2);b#eXEA}Dhy;<2Il)JQ40)*ub2gS|GRLH33}GYD z(JQvn0%!YA+Rb9U)U!iS7rNf{{TI5oCgL+1TF z%MdR4mTM|^e^-{Z3D5w1xnj&r#@3&l$c;Z_FX@pJD+T0Yry<{jfh@Uz`-H!+Ay=@H z!}H%Kxx^Lh&TlL`#wac|338j~WUULF52#>*)yP*Hv0!*h(w+PFeru#(p!X*d)GHkd zbtWxYfzc;K{9dnA`b8$6jpLEtM;~L^y!_j0%G6JMrgHjugb-zaNRmb*7#&-=;no3` zuQ(69k?KsLIu8i{XDz67sTm23I_h|h_8_1_xfU=ECN^|cJ^A-h%std(ioUc3O%N5j zMq$u~<|Nm3v#lpwklLqv;bCzZl~=166iYDnoAC%EfsLE?BBhu z#g?=zy@~k8iszHcieW37o9Tsm@Qtgt{>w*7vqS*?2USy@Wd7R(CTflexppjeX_9hB zj8^Hcj)+Q~EIu*?Hb-d$`wcp(-e4uw)_@-BhwR|?Ej+5-ZVuJo!8g6YW|a@@ub($D z5pK75g&7gg4swGYO*GtHwDSOF$i-q9IG?fz)=Y!dTkL?I7vDg06FCRNqY=mOu?%w* z&Q+M$4_M@2CJXz@;4|9VD2t6`k}EErvLd|+U^(0@E`twU1BXJfJD_f={e~0Vs)E56 z<26#FEICJFY5~jKz=pJ}AopJvcZqaBe_CjJelLH1sb93?848gqh}5Bv7iB32`rE?T z@)xFPRk2mQYL0|`kTnMLtUI?Ru%xx?R^#Zd?0e(ggRp9nfDOydx2N~xw)-KMP!$DB z;e?WBI=(WV{M;8`%?e|7&;4s3&c++3L$kvDMK8pBS@zuK*gTW zpOVndl1Igs+|SigC^%jK65P>DfmQ6XR%w@+00rQd)yGg_gIR?cE*5^2Un79sh2P=o-qpGa5Q z*CYdaT%I5wqF>8V%=ym_kYS-B0d%av!Iu386DPPKm9-%j)1b^K=XL?yaADk@x^xG- zG*!Ih@_7wuc+u(YZ#tQ>Q&sDF9=6ceS>|#GQQ9Q+d@ct`bg|+3Tant)x)pCBU)f%A z%3e^u=xOygZAk`IJyM^{qSnFNk0#Od(vV4ITISFjK0}B038`ShP=Yo_F?~G_WMkd% zj2#4a-t;i43xpvt9-D|R-Z7N+2{#dwRvl9hJE;wV*Ddo~p9DwR=xmom zcp=JdsCPo`wibwe%`vJrdkthtj#}(}C3_fTDjTpSWQvPk(AV06xgkAh>rD#T!871= z1-8-!QU!_9_S}f}czRcZ%#~=xT8Q~U-WJ6T^5iVrh{mMDb@UPruu`6Js(Ejj0ofNK zOfI;52jvZ_N;CVM=v7btNle9=_H z;VMJ)fzPpc0!Iv@5XCJA;zKv!3b_8Tvw%B9b~etOYnY=2pZzVQSeW=v61jZ!Ou=w>nEJu}5>$EpLJsI=cL4U_e2Xei zpcbTWhCAH%a{mgUZjbFPQQLqt2aWEK!!1BAQq4iNBcyrY++C}~-)$g+NkC2Muj;JK z3s#rhn)58eA#nXZN09>m)>NrDbt7gMi)QoWRgR?e>m>`ZqC$|_t?b!cX;AsTR>C+O zR`@oVU*Ra|K9r&2oi)R4w=@Itxz~eD{l)RqJx0~eJHXc-ZWVCFAwKqJ!MdO3hE&HZ2Uh4~gJCl}dV!7;y*T|c-9wwy1Jf7}e0e&LV>e6#z;u>LoF z%lM!4t&o9}h0(tW++?*=CG2C&uTF^?p^7M4x(p1h7$X{5;6^!NrHr*lMD~VXI?zVQ z&zh=M>f#q=<*0C{@pxD1zqe!)S$OCAd6D-)8I|N?;Ill7z681Fjo!!~l=w+~vehCR z2v+?KR-Qd$ww=1F|Gq8d=t9^-mj5)qDW&MM*RoJm-nms*tm)ZT;qxGh5Tv=glLX5- zx@89NVT)Gu-E*SdqWJMu??5AZGe&T94Gb^my)bpl<*zhNS`0u=|X)iw$Eiuv)ClucjzD~8}QJ)OEBjl!r^REyu>tm%Mk z3S5&5n;L5UjRzA2KGT$Uxz6mAM$cWN_)M7S5f8imaDI2kM)xAL>BMo_WykbZRfjTK)D(WK;;A3_u+j6dCjroi? zsFidXR;gZBB1lIl9IGFsjfD#vwYo(USAUExtzI`xGt|UOd0f`xde=cg=@j-*$coi` zzAzfmDOh>NYspqw1kHy(~MwGsB1fq7jvte~)oRRrD460|0hmMr-ZF;)}{h=|3u>>y_= zlpJC28wSCaYrDciG1?-O(srhaskWkp5AvfoRR{asbAC0oKJ`?oIADk?f8c~f+@~qt z`XVGP6v-+$L`mC=>l7bCdclXS7q|B8%`9m}+JXc>bdQ~eD~1${$OW&E=aHU1>?TxXkh8g%In#cRNj z9FeNACrbl;A$NdNPa$9VDzs&+Mr!Hc1=&w!yNl|H+adf{iN`AM=m9M8@f_@lnbmVz z2DHi%wc63MGFRr(M!0iE^e*P_6BI;~z2Hv+Y0;F#(chpHcDx#`&P{gCr*AValExUO zwHP(5LcI@%uB>N6%2k9!tM=4y)yc~F5Hj1mIZD6~iLhI|u%v^M4mxd*6;}Ra5^`s@aWNA zWhJ@f+o!zupQP8CYP$ok+!-{!Vq{ob6qoq*Gom|6k=;rZ@>X~@2-q_27@uaTxueKn zc6Ai&qp?XLkw1mZ`@9Ioi`snYe=7DDc%-fCyZ8kyEkGRdHL`OmvX^J)6o|L)@X2h? zfA2LM2MmRg1*r$CrzqnW*nPYHZSvx-#4UmT}jVeb>sDCq{%{Zr3Sll_pN=GB3MhgitpMug^mYdHF0E9GOSc8g% zHC@3bH9JheB8rj`Df3;xe$qZ*t*Pc(HX~-}4mP1Sz<&hq&S|{CY3|YPYqmvQ26k|& z55<_AvN!EetetWTmg8vd=0Qicz{~&1@l}G|Fa0WV~i7*P{Y58%t&$rLJ^LAuXkmV|Kzc_W;h z83F#?sD{|75p5Q^;Z2Azeq>2QAJ+u9Cx-;tKgDecT(KD_-p4IJ@eUMegio4%BwMpp z&2N_#yC~y3!iFVlU|6dvj=?Z_Z170P@Sn`Q#pa!*{-u zzZmSk`SDk$(VRZZ8wNkMLzoY(NkUNRJxECIy&z~4G|N{JdZOn>5S&(-P4i_N98DGY zH*wC~egE_mh_4TAJf_cdUQWLwwiiX>^ANJhMgFBK*531canvVHwL82G-_6FR1^j|} zqrcV({XT)pEG!OAH?}y{h~Q(ROiS^|4o-q^B@8i{l@cQ21xn>iPy~c1OfkiUQXX>K zN^s^$0A*V(f#=EXX5_h{TO)JYio9-i@=u*I)0u?rZOi0Z66*W}rAkOEkbS_>(|c7t zBn&iU$WW+A8-QO>GGUk}I6ixxZ77|9isx@9krn z|0oi^$MoMJnI!E0)c}iDl$Bo>K=6^q!HJUgSCl$+%TNSS)Onl}MhGQ}i<99*aM(^G z)o56aUa~6qO9_gu>97OwAg+=ntBnW*0hgWbbH8;p;r{odvkm+PHHT=S_F(cJa@-wp z&m>HZP?uT8R)ThuOqf=K*BG*CB3|D;QVh05%ZsNp>?HB~lbvO(AXVW$g{b7|{?k`cu!%X}0b$7C2H;BM z{a7Gs)MCv^l9hyBB3xS7oWp5{=5e$pE^6972+8OOd_3wnxL7;c@GA`M^!_V?3hQqjU#!o4t!Dig*}+c>m9e&{8wxYxy3fqkLO7 z{<|XnJrManwnY^j?d(k)ojv~PGx)Ens8n0`LRLY@u~{pUOnn!P6z$1tC}h#B(bn{D zqC_$uFDxX0Y}v$_qaC%~*hGmyuK@;Z-NuyU2Cyq@HoU#|wDY}I`T6I_`{q>pPF>h0 zPL38?ysd_=PF_sd`8t_San9>~eZIo|VCjVyREI(bQ2?O_+cj|y9w;Z#CBEefXP40a zW?hFjOLWNY;UZlpxW^8>lh7r;{2D+-!cTY!8yF_3N@x+=Lq^I;c!?TtL1LHimfM3y z(o1-W7+5B;ecQ$6_onWtkdSY=7chGguAqy07G-v%ekDkI7IUg#e2%Frkb4BAgq z%B;bpq5P|?lX6iRsX~u2$)CeYNo6ug25b{leS?(*R{Bp%!H^JU4jPcDS+FJ1Mn7=a zrcJw>Je8zcBnV~IOkDAspy?{k1nhEg4 zsiN{yq7)26r@T-Z@Wl0;G36HhDd5vJsqiQ_U<132g%>R$A%SN^s4hi9U+fPMSt+Gb zIQE~-wiM$w&bnA%12I%a(-0eQ3=~df3=2^Un;>)Ll8d1Hbn4;sg3xrrbE&xnXHDv? zKjPfrVI@UXn381c_-GQd6xC?CrLLB~9pcc82+1^23h@YNqd{yFf8n_xYN3s3IrnG^ z`WO~f8mmH9Ss8+gXj`$$3x1lWDfeVnzsSy`YVYeGOQw@n%02YE`L-N}GSUbwXg&bZ zI7f>&aA}Da2yZGT%uql90e4EtBu^y8#KiZ-RMJK2Dyc1`i4$cY`tm)=ibU5X(r~RR z0$Znf;^OphO&_RG_ST^fF{115H|P^*x0nFpQS|Zd20s#P+qjE@xhFxrhcSgzkAp_n zXtXvEx%Uzb2-3ts#x!|iY8F8L*d!R(rbY?2R{&9!ABJ-t{+gXlc43JkA&(6W?r^Z; zU99B|MLdlpXObg!Jc;LE8X^dK^`mes zkk=2t=PEMNU>rNL@yHFG;u>tZiLEkBGR)J84`3T-$9w&~%-nrV!6v5yUU4cVHbnTHt z^!y_q1agBBJ}ml;Xb|5ifkc9d!$1)v+(Zc9M?fb8q6#m7lnP&UgCt`+iU)MJDoP*P`{O?>bZ-e3Me*}iD({WVvc%n zC+Iob_(c2}dJCL8?UNAmd0D5MQhPP)sdSgS`9v2vbgE?ATofr~1;`cDGG&qRz7WtHM?&bJ!Fy=3 zw9+hjs)Lq7+-hB=VtE@T=574y7J5Os(NO&&hBQLk5F5t$!u=&nA-euUGZ!@n$Q_i; z$lS52sq05ljPR(eH-K(?9`6rG4OkObmlZh(eJd9SMcZd@;r-|$(@fz;#$NMkpw3F(_F=SBn}(zoEW-h*NtNa#J{;cJU2 z?%aF46714`Y4Fr(#(f~aq)6jk!w(c;>|S_I6+!Z;1u<(pCJ{!+rxbFgY`MCc7;QZD zTaC559o?*I-<{xA!&V;XytVQisQ;AaPeOOcga6R_+2hWB43s?$@}+~qu=Nbbpf&=g zO(;E9tRm4K^gB57fiD)#F-p3OXACX(wV#qZ=Z*+Z-w2U%9TfJ%@(8vj4c^{f49MR0 zPS?NP{o_vsDhCib?L&OWrZYRd{hyM&oH6l=Z!E`!Bn-L0a1MD>P`j1XP%#NwE+-TG z0x!?PcaWAnmP<-`B>!_+D|W?!JY>>`%FP9LVB1DLJcKU!lrIjp)UAev9-I}KJ|+5y z8kAs;Iapb6NOVz z8b?k?+Rt$^*q@@*7r|fu#OKyp%sz;HtF|qS|Lu%s|4*vzA6=b)INiRL+c${A&e6cx z&hcLZ|Ab!Kc>#owFPDJL5CLgQe<6QIf42A{i6lrU)&`_f#}l9i2h~&6r>aI> zwK1*6VksQ=A9w)9b4|iLRKN>EJM-T!JJaRAxA*IAKh{@D{zSN-<3YG1?NA1G6DK#| zhAf%NXE=-~;o(Ly%t_{{puvHuwI(~Dxspd*D=zV^VKFFgpU3N~pGlHF-5XO(5aJIh zYn+~j4TIPgjE@^G;*Ce`K6>Nw-8N7Y*|aPcP1Z0_ox{){;l#^`-OTz&ki%Sr{o%ac z-B`7ZS1s;a;T60(&gew;9qUgkcUWl_D|7I&DspDvL5weqd0aS2(oXcrMtQa$9I9DK zH5#6>n?V?qQ; zmwZ#WPMS;6l1yY^F~$0PYB+BJ+731eQTzJ%X8(RHm)^plzFBQ50XY#Xz)-wPcmyxy zu4;Dw;4ZEV1&d(S^yhzVu! znz9>hVW`kj>QUMf)vZRcZfovLS@+y}>^5?07N$RgiDzTbvbROe7z&`EmoIPNSs8k z4=+f>MVyhYQmWIr79HDY03#ZObsCpJkpWKON#!uql&Z=a)hZGfsEC&wr$n(HA0L10 z<4eH?dA=L$U?;QZ_guI-g?+39ypU(YY&MhLi*l>1%B)}2rPGy!;f~W({I=EgRSWi| zPo;;3VY!QMnlv07M;{A^&|VD1ZfKqm5-t3;Bj0#?1`0+$RF*1o6sqLGEtUb|*|e7( zj>jsx2#!2)O;cJ;Ci_}4Dy`QP}5BLBy(;c9o_S2gfE?b*DxbjDTYR+62mzS%zX$GSjpkMUUQ7G^GhwO4O2P@s0=B zUV?tm5GziEYs+E$Hi!K^Q{dilI!no;SgYXX*D%iW;}EXH`DXd*=A)%8DZI&Q4O{{- zf|!*t<1gC7=r4->YFu4I>|9&D?Ob$uTEku~1^#I)G`PzSfwH`N9$ot6tp>;+qCNArW`-+?a0{^Y#yoO`zMu zZTR)FrKm4d(79Y;&nEb@dSL$Y3E4R(ADzFc%OYdPz7Nf@_OaF|Hy)GrVf_+RFZpC> z7!R*Ec*X&cBJ(uD@sG#U+5THVw`0;fhug5O;DBNGpHo)v_M721w^6$!ej>f^D)Y59{ZSh*S}2E$*(_zbn<|zOb}| zoCsgIy<|~;!>p;0u%46-VuL6be8Rr6A{tahE4}jgXYXj{-T*erjcO{FE@e-=D&i`O zKa0=e%B1-jlgWx);^jLtA?)QQ=Q*m6SRzl9N~`NCdN>N<5r;@z$~RaC4~jI#Fb7`L z41dHT3>$5TAmyj!lZj69bfev%$eY_BqNT(QGL5PCvK7`jZwnVsGVlq|cRuE#{#<*! zM;FAWeK)Tyr;2pC5au@-{cSBa3QjS;WSo*PsG{U*DZAQB-~(w|8x6{L;H}hH^~z7S zKW{JHkB~zS+l+eCx|MzWH^go@HN-p;HjwVh{|GL#$m^l68Blx}f z>}cm?Z({U+&&@&=tA9}DedQ!p;;erSp+soH>YG3n0+m++gyw&s!2-1>u{|oXk26|t zUR+(+avj#^d;$pdX^mRO6ye`g*s7H`9h!`5*IRZOcxp5r zanLzB`treGEhlTr7*N#t%30iHW1=G%xRWQRDfOA{Jm)ed3@R9!>=EN{!Oe+e-(~n6ugjJDUa)H*`ACA5J?Qn zbevqe48njWKklD&kwi>7!pdQkZ00gp!Xr$NHl!-YXuE^Q;%pDNWV8%d=NEq;7t^lG zr+TcFr5_bYxJDk$+J3-Ja_1gF_j^EjG1>0NL^-9!#rI|gB}BEq#GNJHBJ!o&LVf>_ zu5Jo_#Y`;mo{xT8>LFpamf7U_FgimRL)<$}MUy$oT?;<_hc)$OY}v72BWwn)EgJA&*i2SCPGFT;}O2e?hvTMfRA1NXw2rE z6R0F_m1y(Owj_BC*fQ{>PRD0(j>70)8Z;Wf?CRryV(O=tKsi2&WyI-QmiI+pgahRm zCAea9xqwso*$1Pe@1IWg?ja#!=T9=WQKr#L^tpPDI)wO!%m|hGm0Q$}*ATZ0Yq^f9 zO)9BS9tx6AjzLK(j=w*Fn6SOeDd-P|5&{wnM&%K&*(9*W9*DI4Uqq)v3U1!_Z*e95 z|F9JPd+&_?KYeXv3_Lylq0MD1oc?9NO;(5YR$fg1%3)5NFm^;v7>#6rf=L=SW+LPR zr2L`;70i=dfDKrHfEh&?B4c(iH5_PKryDfWD*q;0LZp<{=4qKrEBq`dr!KFuva(rj zYTB&2bX{&!Xf9!7X@-j^zPzgY6%i!ccJSA-sZ_nQWYVV|^UzlU8+9%_{7(I>wIn`y6`X}pe| ze&CDeJ+HgJT?!p1gYXCYr1(esp+qO*cpGPf-H@@Vyf3xr{I|Q#9|~c9XT8+A9}|%| z<0*P!FMhP5#J-g8e`Q6w&w8s5_Lp@(+R?iy2mN;VJKZM(x8G_sWt{PRPY2I+KT^@V zksG&fc4XnV6idQjhe8a)Cpfv0W)}lzoizy;l4W2U#6t6Z){QECM*sXVCfaOcMU#y( z-U~cc4Rvf4S~aKQ%4}x6+tOk`QgZStrS<-d*-aBNSx%lU&#w%e9T2ce$tz&ziwiRq zQ`D}`?&u=gkV`1*Kz3G08mw>^f$@raz`&94h?`#nZyP- zO#`Z7b$%BwgK1SC)V1!^`jEQj2z?_tWDE0Hv{n2sLAC72)}CjtPHH^dfzzg@?gxT z8!uV0-PfFO>#&Cw$!p3%SB*}qvwD|Cs6*j_8?T3dxvC3s+|oFughdchFhFT zjSyw7rCD4vjv#b1pyI@lmQ=L*`Wl}mle&v1=;q?$5aQImpX8Jr=Tz4cktUm}7)e~s zkQ_t?8Hdgdc!voQ$d(KbIxW(J|EuF^)u-<>YCitiI&ex4N2yx4r01_rh^FAC%doWeF0f=A1EYwH(X@8Gohs_Rd zCezLGOM$=qt{seaSY*j@!v*ct{S28D<>UirZypSTaBETq5QEM(W|;&kHBB1Y(w6+N zH8nv)$lVS~|E7YjiXjC){z~|{yS_>p1HIX&oN0&u$xhiqPuR{P6en8W=*tO4IQ-MF zB28%)6fo@;K8unJgK$(c7_3PNlW=l5CV)ARwpWA+xge&0RwlEMlmlzp8lH|xIrz6A ze3=x;`QVw0YbGeELcp!FJw>*hQp%qX{h6usJPK%4vXo+zeo%0q*`Se4Ea)Ob8AxYj zIYxFA3Cal;E5%Y{D)SIB(zRiI#o{~1G%64;hh~2-ha7)8=g76ifv<;kMiAZ>0(nt0 z!s}dsQ!$-97x=!!54C|Xv_P}+;(LX!yl&N6ZxTBBPeKJuBY`qnL`oPaob*@?p zWSj`ow|0?tcIv~afxYX6&~8xS)C+j z>Rd0OEXNU{LMGLkmUwlTYLi^AvB{x7aaTM10Uhb& z4ReT^;l2Z8kjd#bF*86)C$8((e&gweUBbIZ`6w$JxSVTOnrBrG>{r4z1w%e!T0dL5 z%yF`#+czvP7OXgREKl)jPAN^NnW6p2%H;GBx7b_&38rW~Vf#{vR0rnhed3G~tHLuQeHn(mBPtI_lGZkL8d|H)V$ph zpsl)QkBFY!t5YPGHxy_kH^Yb);F<=}w!{@@NhB<&K-C8#dIyIRhr9_QuMdNVDVEtk zx{RkBOngK*nK(OzExQfAR=LXN*168--5DhzOu=^LNa=5MxKgTiFH?h2xKI#Dc5;*g zji`#g@7xGfzCc!?l4_XM2IF()2vbVUP|=h|_DT@HDsC3Dh9S#ICdtVlnLaeDE>7VS z;b4vlx_x9Jb3a)-`3z-yT-Yc>0FB-!<^7eIvu0QS}CtADIC(# zdtl(xFS>`&gv06mkQJ}dpEsa+pvMvqlVZO;EbfULl;ax~Y$TTF0BZKH{IP)OzG!q) zKFlbNTUgi~IlqvoUX*RP@wHLWqPF67 z3JWn-y(2cCsM`^gA(20+kV2wA`i)y~sqf!6%@~fxF>!lZBjktgN=)1DHH$FK4$8^p zfT~1W$QDV5$oWJLi?#0k#1U`axpytOXcjIcMyI0n_%pZn;>YOMsxTTXo*(?We8*s? z@@pIEz8d-7ZU)&7>E7;7^mX#tvj;}C8^hMFen&ic=i=xy9rS+WB2+!Xc8X2N0}a&_ zPwCk2*nAm~Fm!rrLej9k6E5?@6XItuvYoxt-_Sb2SDCQhUc6_16Gs0a6 zsHYS*H@>$NB(q7jx2e7S?3&LwSf0hBr)g`pKfKHnJWUmoxG7~bMfQ;6!#9L}`Hh;( zLeR3BFgU#zvKtLV?0zt2_(ERlBB1bp2KlvQ?3hY+3s9+#6dy56-$ACzwzZSP>Q&+A zL~uD$VIPsWnUEmE=69Dmwk+7u&WJLrB5So%^$Xc%{){`&)em}jg10$?(Jd#BoM1(r zX?ja7?}GCp>&-p3M1psVL)_4Ah7CVh^OPU&L3r}{{z2cN?L@FU7af~1m~XzE;L)+J z6uSkhM|K{=cYLY5l0Qk8mCn=5La zWV>XpFv$VK*R$mc&xO#lDAD4euFm?jY$8knwca*vm+6t`%L+j%(wwjc(cB_v^tS(#B=DD2=MH zSr)o0n`B)tW$f_+sX8xzd;>Qex%_*d0#++|gf<6Fd!SQ>u-``XHAaV8G?E3`hZ@#s zsddklI~7#+BaQcO-4!F~B#NPI3X)}XCNqhXy-zSHy`fFE&2az@*LvE$=^Mz>M-&c0 zy8Xn1yK3h;7tp3ybOmXck4nHb!RGGa=xD|xH-q%rK|l$KwV{s#xoTO!3` zPKe&MP<|KU{iCe&09ivIM7TIBcYA-C>Y+St^Gv?5fQU>$)2@AU@>} zD|0<_lFXRP{<79i+)j%#*6ELl6m#;2o6}>s&MC~wBAY~8>(9IAuH^b0%+G1hH{V*5 z_L}E?8b`%>`fmT`c9BjE%l9w{4LaPH?iwCXrAdG@1ES5l5yI%es&MT67WV$LNAI5l zyWe)yf*tTbejpM4&o<=0+pM_$Q)58H#MHpW+WG&z_n4*j?x%E!`PC)6mYA7Yr0`oP zSD@8mO)(D)Anm`Jvd6U^P@s&6C_gWZE#tH&Nma9Jv$vADXL1I5-BKyDS(683%(M!| z=GJ{b?|Ym23AKJ)4}bBVUC>}56yeKv>E*F??c|el>>-PHehUj0TWZWhfr+nnBa2#Z zFEQABW5dZq7JVyTvc+`o2GpS*=CY`#C>k^iLnP zyF%m(QueW?_K&fA{pTGYrD41Kz+llG{Fi%O*~|-AD*7zJx|eRSy~}o+U$S~CfH~AFsZntpVMUR>Y-j8EH23FiGmtC`pfIOZu6mSm)0|x z({2|7!P~5IgpoMP?$5bwNeX=LigM0Or|Y&ftl{4Vyx3XsBHbdHx^;Q%B_XJDcd4De zt$beOC)a6wy;uolWr|M2gDC+oh};W_qNw%~OgWDXMLZS90)Cg_q=QGPHAt&;lm1R0 z;Z`_t8(9iC00~!D;2{7m43Tj~QwLg1r05h*X;pL8YDZONW&*=+8}x5G-JZAf$-QB2 zC9&uAQU7x{(Y_}a^FUtzR}F%T8(ORPS(6{$!H%DFT^~%%Mc#?ZhX7nVOy;~% z)uHH|9hgnBah#Nqk6eWk_Vj&dwA=qf**OMR7H#di)3I&aw(WFm+vW~Bwr$(CosMnW zPRF=8-#K-0>ehGe{jsZNt=en-+WQ@2uKB*tU?2FUUlWMzy&Cb7VP5SODPeWg4r0}+ zm(fs@2+zJOd-Ys;Z_MjvvjI89d?qKjuw0_xh!qXLi__4?X8+LNSC`~^DEy2(*cu${MsG|D;=ML*`u(J?m;FuaK8|N3s?Pxir&TB5zv@)Ux^A^$f+u86qE0 zv&XjA4$uW2K`nQpI8mJ`knfSNH5vVq&)ad$e_8B{V|2JM7BOXD<4$>E$+mLkN|*j! z#CObC*EXxRhC+3pk~LCEoIj-Z2x%IWXdU}5g{1;#hSkkdj!Ex1eQ8~dSsyEnbfi7V z#`#9yYc*{#fje|@%Q2ncRZSDn(Rb~Q&sxIBU--HRU3yFHtvl$ipd8F|=SpSuf%isK zSSX5q+nkARMoK@G)JdXuH&=NO0l{8aM{{uNImK!fedMUuCdVBN>m5_mNqO+slXCQ0 zc0ZU{or;}3nCcz%IMXh-ooT1Wo~1~^4WxVKKCIed2f zI*M`S+g7IAFI1;%jnZOBI6$X#AWE|j_^}8;fWAR+gKwa~+g&Y?$s9?A0#8GTxj#Tq zd%uh!r#O`y^GKe{?pL@HyXBFMbqt=Pi+iQV=`#ahehpLihp7$8bdnwIxYWVeg@fTB z3wDyG1DerBhCIAm>;@qOfG5-OquF^Al=BiQkciBBH1t_W)g-W2fa)V%vYxA%#1|B&X2*9c zY-|EH1ARfw>M|kM0Z7y?!Q>tk|K4PP3sk)25riY{(1gd z;-t74_k9}T@PGKr|NTVdKf<|$?QC7Y-NY8QW@`V!E&QVg`j=NpSwm@F9)mX}xVWm! z92#m*5%okYDim8;VHJfo0{CnPc#2e8n&B6dMfhEWm+3H&xaq+r{^9ecJc`s%5p&mg zOJ=5B$9A{R3)BwSk)gz%CJN*UqxOhzI5r~%hO&dwP!)#qM)Xef#l&gYLXx+^YX3Vl@S3EVY3MV@;}<*3>e| zWS92FB!VO?-pKx(^hw6O1{&38v65+nic?qPn2udF$d)51+(_-ON#A9;^A*o>I?>OTmKm*vwo#J>DOA%x1Pe8R5;i|*URnTAexRbVwLkd^zs9tMj} zThh%)(+`qb9Jzl7wIVwIQhH|f-~SrX-O<%}M#hKP9kbdQ8m&0?T~0I!V`{;3KhzXm z35mo+RJGQ%fGCsAps04L5F2~$oQ`sv-+*P3G$}G<96ZWOHw%?iB5Ubz->Q~WhP^zQ znTfim5@U@t$RzxNH?T-eX%ltD zNm&8>DXGM`Od`tZRTT~KnN=ht50zl2<>MLVVMfVF3;1N7*jp#{lMQb8U!w>;E0+z{ zyNzs$CZXL8XJAG)Q!BtH85WGIKbwCeE9V7sDLgW-Zo4>%aRs%VLwN?RwU4G6$Aq3W zQM0XFH*gH|?Qwe&1wT$G3>Xe%)KB|Th#h7yH?yaQbiY!k7x!OSX&0x^L%vu6CGg6f zW41@lbOk-y)AhhMW1dXUVL=yiX)^lCa%HVH2%%4bQW$VD1@_qkp+D8CbMux~6*4>J z%*0=RMb3zKrcqkwxu~xS0vy24_SlHRPS6b9U&&=>=8CKZ*M+>W$=%G-HM8=IZsyI^ zPZgnZ99~sY>N_xF!-Wdq$3N)S5TH(uDSphbh%-vBISg9JB&3o=P{Qm|CNsba64!j|aA=q-eqdUGroW)Yq$WR zUVHO9oB3(i)8*p{-&e<4q;xL`ou0U}{~SS@a4Qfn&d^5Q7e|;-QVmku3+43!c;BWmb675;CDWnN%)!HR0|${+(y7|fw}(c#n+5C&a`-&olB0} z|GZx^spQQV_fF8LWt8ENX8EP9?sxFtLYF>z_wv@O;*l)qxVEFC4+LSAGr?UiX?T(X zWTh1uujKBY*2<yRd%oSlqVHR~Z?bnRBCy8BnWg-i)&gLuZ zqf=_Mge+XZ_D!HM&(BzIv2<^EQ>i;Vi!bfV0eYEt!NU>U&nH43gFwoct#YH}J5(P0 zy<-MBE`klB?08fKIt)U)|Js>S&DN85e0u`1{##EV>wnsrDw;TbZ%n^|QU9J4R@HEt zS4H`>y%4F(N3dse-3ZdB_Jy2@D$E=F9=7{4jL=4iT~r}TAUTo*__SNT{UcnK+a|5M z7iNWdQpWv6*z9%X=`&3BZS8S`dPo6B4hhfedbaJ@%dG48^~uNQ6SUXBi?o+6E;n?Shl@_7rUx0QH{#)9cIV=^%id(#}4A2`m`&bSGe zaILoHkaUfvC&d(B+g7B}&EZ9Pe~6{04Vew1Clo}ui={hs2OT^;lhBi|vs}N$O3mFg zh-+$&&1f@^Z*n5Xj{HZ4dC+O9vu`Ge-NqdM#5l(|Bu^)k@Rp*C#I1{-?>j z5ylv|En`Iz>qmXuVwU1)UDris-YV*LW2Xr;Il48inMJmE_n#8mGqF{6$wUJyB_Go^ zVaV||gI3N-Vkhfl11%>7!j7^%OwN(=#EVWgGj*6OP`&w@?8UKuy|~JAn9E|j*7WOE znBS)|KSp>bqeHwL=@l3vnvc}9nLInoX8x=R-m8zCSOF4eUc-ZZY_G!e-b!>zSemp; z{TQ&M8zNTyuhU%}IFJoMr2-LJn&M0QsT{z9W{6Y&reclDl`R~JequgW8v)8>A|oHg zp8u9R@MJ;%iZxmofjNy5h%V*9*WwxIS&^>*XfD(au-QhgXVYSotOT4+6#X?2iUPf>u_FER^V-j}j~A*~Bo#S7l=oDofoTl1WbbU) zB4NAob1~(JU|FFS9sJoblpY!?yEg%*BW0J2D%oX=(dKN-^KHcUHCVYvjU!_Gq=UsxL2iq>6r zn-D5NGfDp)VRgf;k-7KZHGhp0ug7Tq%Q<9Ud78Vq)4I0tr=U!F#elATep2k08gRtX zOT1L}tMAiL^I~}4?2TdyE8a{&Nz!;Q@3g&s)=OhPcnJ2vz@MdfyQeH)(QX!I)?e_h z;odMY^Yl}8bRPxsp<59^jr#b%am6Dk1QfydS!+E-nhAbY(5#3y_K5_Sb_>8zfdL6R za0Gvdj9AD)tpF2VVD1f>+o^%O4O^O940egWwt(7F#a8S$hqPwq6AH~y)8atUZshUG zc9bt6D6Ikyg8K-M5NVoOntPVQAqj83`0lN#9O^2^?eGl-!UIdpyuzMtlb>lh?{Pou zd0LOauLR(ae&XI;lJDkVsh7Q#EPW^me{ryiC`W!)0%`Sr64$l{5+g-3(P6;uQ1ak{ z*$1LLTNonV!GO*>v}6~sIowp#)_@4*eV7GKGz@yejR@t=)&|y>tLDiUW<^Q(h)_{1 z6UQ+|#-XBuYq+Z#G0o zOwr_LKrJL(ROQFC{vP$#d{nDz3b$dk_Msr)hVYP9ulV)zgnsY+m&5(fD-dGu`YRjI*9SFiwdoWS}|>cU?}{1YFJ z$(AdtsYOBwG?(Zlw9bOMWCR{uszn{aI@mvmOgtP_hZxicu9_NCjB;Db!%lgz!~6`S zBv3!W|ABQ#35L9q1^w}(@V}kx`=7B6-~IFdWB~uGlqV^U$__9f{3gruL!fx;uCdV| z@(|3Q0Z!t`g@OYmX>IGXR4RfTQw;0zhn66?{jTALnW`5;3*c{)6B)<109{@D93bPm zVgo7gfkrr3W-g@EMaB?!SZFLXOeD`{s}OfE(j-1JdFZVqeF-!hH5~E3^*3_vtAx|~ zvkk3IQ@^#=XiKnEFMSOfPF_$G^qeZFWX3C&dD$7p{W}!Qx&7P)PGpE6>p8(D?>2&O zgoCq`>xQv6oLjXR<;GYIg4*P={RaXFQa(owPOR<8!_QwyOM}^$QLvxCk-D#caR;rs zOrE*j=@ZDk-A1chc_O{?FFp%2)BalZd5lJQN#m^D)#ugluEu)>SMjf_o3mXKj|-r; zA2u87V^U+O!jjBR*KQ5FF&KYNoBk>O{5-!FJvxvlr6zjE(O;1*T3^Vcw4w%rW;w$; zILo~)k)5qhXo3zx&^ONRrNf)K{c%WV`gf*!9`XWtY9O|f487~5Kq={iGuMO7!{6+k;x2xiU1Sl^q9&fOxvAer#01yZQN&SNj z;t>Rv5c&`VAQ-6#u+Yw9BS&|P$);qKmCIf0!ns{28x@PHEUKV`9;L^3kO?#8`;NP)T%UOXUULYCgpC*vQ@UH zgEeuOHp`(2Brr<^py0m0%C%Ab)is4au16n(N;1BYlKAF$>JHUVX`aF5m<}8!&w8rdy$UGqUzyWRyvR?>+!PAZq z;rYgxW881V@!lDspCNs`&-zAq0e=Gc?{}s(HjpdF=${*Ma9^aeJ>&W1ZjaU8Uz);u z6mDCvL>Q)Su9e@r!hL24hHpeZ0h6#k>9~~Q)3w0+7Y!U8lvCMZ4Ijo64OoG87hbl1dl0*DfwMn~GFkhlW=&Y@NyVw}sl0zx1E5kQz!Fmd} zDzLUj&)+MhTNhYYhR%Rpc4aT6fGn76<7Zmbukt>+U^mA1=5U|+9oyh*)2PS&Z51!^ z0M8qp&(4y)H>{12FMYX>1pY6@+ij}P9PqCKL43ZFJ@AWnc$Lh-l^ErB^`QZX>LzK` z>|lmY_k=GYADch;SEV|5(coM^XI~)PD`f4=wf*JKdf8lG3qG4$2d!-4Zi4(MfEWYI zCgaS-t9sVAmoQ6hBAi`B`|H-CfP7lX@nD85r=gyw_0D33QeKR*N?toGTt3V7#aHmJ z!@v-Pgf+FV7swA{hR%LNAK_;S8!67eKua_tg*y`{8*2%regg+>qMZ>86g+o$eB>y) zDUcu$Yn;V35-viA{I1M%C-LDMi4&_XAV&gp{8;^L6IETPoKtc^@uHakZEa$tF9M^J~G1ZN^78fxrN{WUi`|NXz zO00|s+SlkWotMD}`ksHTiCrhMTDulb;%n~5fMMFqw(eyK-nm`I7QqpBp_^HAjcQ1z zt_VbqcOIEef)Sdr+GVUO?Fm|AuzZQ)4f>f=$yjYSZ9h5|!j1zI~J(ljK)HIM=tb2)}a zp|}kj6OWA2?&+=-kCZa^j0o*5)>K#WBqNhcY=WX3+*8b~gQEHmEo9jT(m7a*I5#t0 z-7}anZKsTs(sfi1kP}oaTs6M$E{Ex$0YPfB#La+6(iK0-Y<5t}rRDPpXHMIj&6R2O zdMgyYIr5mB1@g}0Ur2CZQa4060)R`6@u<%?)~R8wDoz zSa1=oOUkmN3+ceEF*>M%9(yeRR$XV10FQLW#>F3KsNHP{f*}a_m@V~bpaDH0%F2oO zBZ!)vK#JfvuNLuEfRbEMB&A6+hin6#>Wj;KiMfRn_?0_map`BCON@~)dn^gNxz%K4 zGKD(CT@V+Mti6GDa^y+p;@9{PC{$Ka;rG$>-D-jx$B&=R>Z>u}buu6n^ruqkQ@NK7 z7v(3Ht5a!}u@wE4H01gAP(v5(H@4^aUzF}FrJ1=X5)_Km9Ud^;PLxJ@YoS<9Ax8N2)~vPO}jfd?q+oN~2d zkklec9N8ro?G|RJqTn~8ASp_jQqe);FF}&8^53{Yk}PL^8BO{RJ|@`NR4yVk062(T zbx81NTdYJo@vguM6wN>|uHv1^&r}f6PZ(4zuu_IZqREB)&xVY?ar93)Duxh5VAP#c z1r1E*Vcc+$sq53DeFEv%BQIO{4Sr@$C)1hCA*ZhZKI#U~JD>SFzT*g*b26IuiSdMt z!!kQ)jikb6DZEVS058fU)8rtfG{5k##a#=Yd}v=YX8@kAKq;Qoa{d7E4Ml%qCbgnU zE?uC!^E2bS2s#}=J0z!nKhgSh6Nvi08BVU3{$zM;u8i^XH?B7%_$ke#H6q3fK5lkk zNvZbe2`t7_7+lZyK$|AMTtO0=c-tPoka?Cp$1sH#u6H!=k_aAv#z@(XKi$SnKAkd~ z{*}V-*fXjG+T^a3L3Mz0T+AWYk|D(}+6Yy2tj-_?YBR)xJ`^8?AJ=m(Y3GLPBXDqB z@-Ix}YH&w%9LebYBM=QvI&@E?b?p!i5LZpEb9LPqi-gb7PiuATJt6!j`5@5qM3QLT zI0!?+4AOLtrK~a-?HF+M<%WTDQbQ6tkw^ve`Ky(!&KJG1xUdSv;f(DRA?T-#QzV)T z$S_U!xGIK{r3}{>;iK&s)WZs%+-*d7W#;=0{>Q@+kjm(Dxk55CLk>8;$Z2&73J#`` z%d6pP3;~ku9N8AK2wI1O(U4S<-xJ$FEQyzF2p$uH)X&H;y+ z0+0C%!3vJeCXUVPb$Rx92zmD3!xDExypk#Bi)HtL4X7@sSU@m@meM+QDb&K5uR;k2 z%M0CVnWlxvDs(Q6y?KwF4IROWiHAyO@uBQbBfjmcO_ii@!R^KvkqhZh+EX5kZ2`aX zjFCGCEcB*ECd;9PFv*J5tKeK=<4|ibcB)7!)Hk+8O;#j@56DwsZ`3&uYIvPYnENNR zR}q_tF_-p(2?v!t7^lh2u*Kak5&GA4yB4;O?2fs0W#)&R83U##F(H!LRAeELaa+78 zP)=?_u<~(vbr!%m+PmT^OrR~ZIs4Q_)fk3H44J+re?-sRu@x^5g&7vpnTD-GunK!* zNpoLMUa{Cvt%AHpk0o((s>^;fri`+@z8n$9DlrElM}J1jcp}7zuq!zUP-ndCz6|1I z1U$5ybQZx*RwNUY)(K>eONGl;pz0WP-?ggN@FeJ+H}Fzb891Mx22O2DfW|ZtOW`*`MDbnI3_TqDN)KXM<6rnqx*U&Ndl^pPZnqQJbW&&gUov9TiNR!&W%R2mPxigTh5?br@rxcAp$CtQM1OEr_Z763khq+mr;;SVUA8_+SdZsS2 zlF(46%r85sHRM|6;vp9)D%36zUbVC_WcrXC08gsMW4f*~d$8~sJI5^9g^;PuL< zS7G-9M+)1wVCbMDeck|wAI=y9q$p9t_NbygU{6KLJl|6XfcS}0*M4ypnvge~vcMW`Fm%IQ) zmx`pot}aEsgM*c%=ufG~eukfsOZgx$+t9@3+H0DzzHy!gC{g0~{`Fl9!NZ4DFOV1= z=)*7GKWvNehu>Zee#Ypqc+0O%QY{H0{_cUKYXuEA0FMmz9L*-rgWB?I+^^dCf|VEv_~H_K-UJ__U9kNh#l_D*_ocZ=;@8fl@K;V803J5q&*1<_q0hX)5|`}nZT2$OBJ7QivkYy!u7RwjA^Vf;Z{O{Qy}#3NX(1$=M%*5( zAuvkj00jrR0${3e$5=%yeS%g6@Bq~*1=T6GuRx$$dh?1%g!m9~SJ98H!Rn2?HMSR! z@12@?8er!1(5JU+6JgYH7+}G~H+K1aQ(uRIs`T1xmTotV(QeXhpZWzQ`5SdO!J+A< zec;`q`DK2`?#3-X>sOB3&L#~S+<8d33^f15Z2!~F2MropLy+o>S_AI@lKecl(l6*s z%mP4e(8*8SdwrgA`G}VQ^=J6!V*<2K=uaCh3TtTb2jNTLQ?$Jm9NKsO=NKCUyeJvy zsHIU?Dmf!hF%o?b{0RoyMl%@Vh@gZ~A$kptAeskQ!(H%3;8ogp2)?QMkb>9U!8c|a z9!ha&_yKZ_$J$1h_}>DP#-3uN`l|R7Y~OcB&e5RJ5ksdW1pPAJ{iYhe)8mZV65jOy z)8fp-J2B;d=VK;?P)d#K>{-OiTrQ?eJcmj2b@3O{(AJoTPiWAP z0BAJ;xEg>D0yIl?hR`4`G|g9;mPh%^fS?b1$0M|@QwDk7a6eIXYsQQE=GvnlEH`j; zYrxQ>>BFi>vA#pUYX@2AISp8h>#pA9eV_W(JK@W3y+d4Bn_XDdg`Uh^&tY(ElR)MC zh`KfvT_Eo4-BkE#E<==>g?}ybsUNM89w+{;?OYvvi!An5cd%@lRc^vhN2O{{ub&dU zo68Wa2J!;Yex_)>Wu)lC?=ydAjO@!10_B4n*(WR=%t>gL6TszzgndqI92Qqy5+IE3 zRjjY*!;33!4x;5i64yX4!q&dp1sy1|DF}+yr+g0ws|?u8)2|<~1v%reDYl7VFlgx7{UH9Vzf@aAJa8MVkw7ry#~fU$Z0mzIB!e*ymI=s z(xxKq(}pnrxhBq3`W1@&No=2Wu7F{NN^Eo0Ozmf>wG{nFWNcu=CG ziD9D*(V1K-GJYPfIyB|_38ldir*09cU}~YK_D!jRf{sMi=*)R~6Tu^c+5j;c-=5H* zn{p1!Eo4}A3M_|64p8z46Al%YaRNzV*k4Q? zvQ^^y^PMfRy`a2iUptW!kc8;)5qte0Iyk)o(cWRs2PY5{$n;&_f0JNK_Y}(uU`&13H2*6J=&!%`%{sZEy}#H@lyOs*Wk~H}N zK?ODlDo>CvPh`lTIEZVu{~c=-kL%G(A`(|ve=e8lQ~(e;5)wYcixu0~1p%0@gwI@J zN_4AZGnzmi9@2@=PD`zf&dbsmXLW`2R;;35cZkj`Wge7~b$*>hcup$dTNfwyicB-i z&O`i`tl^BWD9JckCG#N5qrYSoN8%k9Sx!4?3+%33#*uvBLGJ1mSw{Ad{{G%cg3JRF z@}|Ve^iw)6YlP)KlRb~;_EsP~B=&x%J+fzkjf+wm zzQ)auyhB?k@$xU}XnDy!bJ@B(h+8&t6epn}4RQU!5~RtgAahwd5ho|Y^b}|X9XgSF zC&Ka)`R^_@H81sv8A@~wXoJnQgJ*WLQJi*3o&U$K>i!*ww!*R0FHx;1YUG=s_Ra;U zs;R7>Y|CY6v1VR%Q^Kd#VE!@|ql9ysVyB;^%w4|cV#YR9 zEipVaO;K)2hsU4`IB02|@si3^RWZag75{Nf3bKHOmKX}4Y;+jF$VH3$j}>WvLUuAV zC{KAEQ=hqnbl^|C#Z(J{<*2ZZaC^PDaNR}CBgx)H3(h$aKiEBQu2Z~Ro>f@p!GK!% z2f>CFV6%v>8RA!i42fP~L;QE4ixBo9;S(hAS|Oguzk4BoW{yyYTZkejuY2--wgk48LPTV!C30MregSB#$h*3^UzOk$vo0QbQe_ zTwedoz-p<8LB3gB_&8jE_|W0FvNadX%R|vD6sKmLL=Zaw#128HA=AoM{#IFb&kIhy zFsRXAA}lyIP#Uz!%pQw-N-Mhe#%S=Y(P+d{)wXg0M}3mdRdbT_`@`#6d4$WY>M|0& z_--^({<(6wbLw24V}OnURM86VV^F7ghki{j&of<(U>G$@@GG*~;Kr99aws&=>Z8*8>)J5=>p$k~)m#LAJ7iyA$@ z!HLkaC{`=tyfRkHlrLphw%VeKJEP+4+5yo@XI>Ie?!rpGi@9Wz8EB@(ZjV&mV7p1u z+1qZBaD#O2%4*QzQ`>6{Zs3<>F^1`pZY$=HZW$a`oTiXooXW`ci@t#87i|HdP6gR{ zdP}cWWoBdVc@;}zZ^nF|R+Vu>@1?4@#tyEkl*W#ZDw@WQTjgM!etAvUPZz)*?wQ$E z5Y#Q64D$8B=pMd(`#1N5`ct&+-tLT_-xqr*q*lob*T5kaDpGF8{Z%+wr_Y$xSM# z(1gdH3J-S!C5qYuJGnd3XLeV zUq}HD-gKQedzHdSP-$2&j|nfB5;<3h6RwylLBH9t^W#b=|H8-sE?fALacuUuQmuzm zQAaddT?gGlm420p^iY+e-i1E?T9`uoZfNe7LyctHzp_Wsi2LaT zqxPUW*-m6I$I}_8xlm#cO@zHu(TP%GY*9}2#B z>w8DjT>pnqyyfr&_~69C(O+?j?A+aKvjBhYSLa(BZ9EcxKc!qE=Znn6&qG-di z2|NE=Wr_G411qy0*x864_O<1{z=~-9qsi2*DXtZpikafx2JbO_vlxLJK}|6NYz%Wp zQB^3e9t-AB2BRty)+n(FCH6d5Q3IYi30A%&6Bu@^tybh#xM2>ARtmgQl`BsNvY+hG z3xb;PM4{h4&e3n5)-d9-koL|-{L^90;~Ep#CfZGNzD(;NLN=c2#gH4OG5>wQ9!Io9 zYhaFt_H_0B5L@ccTHmyW-6Lpcz@qU>H&CA=C+S8~^bgwFztpkqxj3UGG9%vx)0m{< z8M+(&6>kyCM6VxYq+c67;B@t0PrkghX@%TnGVz6&CqdU9Kj;G_wrgW7DpG&- z>GO{hva~8i(fV&P)}Fxs?sNHf&)I(*iS-RWH~DV}S!!XP+A64Do2y&ScXKR$D0855 z&eEo2zar$#v42`1TU*4V%?8j%M(t|xH-xAra6?DD(#?($8h`$q3e?zR`SQCsN zA|LWm@0t_*CR{q=N5$g{F8mCMhm-}*`mUVpgElxV`gB?UCXc#yQw#B#57jeBe8*8~ zPzeRiNEah+G9DN_BBUPvp~7Kk<)uy2CLaBn6kLE6Z2=G>T(K%_M_zp>_3tK(W0*hR z6C*P+ZDnFfXIM%X6Ed)nW8&Q~EsX5TGF{hqG$u*=(+F!%nG!X`Y@-vsgJmm~F+5W& zl6kgZ0_C@PWZsjeQhK^-a>2MJ(jA4Im^q7&EsL?Ly{6332q?QcawlyU8| z;eqdAjiJxr`^9n1-VR!e`b=@G->3kw1f;){t~h&QhOIX9y>w0t9b%6Fw{gqO15q)B z_(3VmAPWp@NyiMjb+(cOO6IJhvp*r%6VNrYH&(E6v-_Q=>ydyd8rB;AjA+te_h|Yd zn?@#+>u80ko{?nuHYXNdj~7Xe-nlmI0lU75r-KI&}1jmhxI8=J#F{dml?jD-u z2yZ5@2pY;!zfp6yo1EZnDs6f11xczr$pOQac&XcJ6cgIyQ#?t@LQ^@eHAyu)D)Fde zl^KpnW`9a{Tn?6}!FW!v;-a>EbW~Olb0IUHDP?oIp@DqRq10uye#uCDM#Ul=(hig( zl|fdag#JCJRmLTuLZkz%>}DvB^gTmc0-I=(CkR0k!{v0EZni zENLjvX)4W=FcXk8Q4^)hq$r*#p;RHeA>0G_BZZW8GR;=^_9&vkyUhW6twE*uP}y5m zm|Ke^kgB_K7n)UV<;C%IE!pDgG{9$zF3%? z4^s*r3w^jGbsE1)gF2a~OXV<^yLRP_vV5~&9X8uu*6HpBghlyVx*#)Yo^kMj3hOXa zRG2moU4~D|ee^x!cXNxw_U@lv6(&QMBvssSG()y$915kD5>3Ak){KSQGs4W(9h@OK z&GqTaf7S}=DY?M)8EEDLvoD4_ofqOq^`my{&jm@)pVR5{XDD0clV=HDCxuTW;&NRA z@v~=U50=i-eR_c8h*W09%&T9yr<2BMrftI9twSZb@&XOTXj3ucC|~(N?>HA<6tzpI zznaD>*Jt=&F5Q81s1oHJXk5D;7hJnBBlbN~p{&zJMk>_Nz4=?TEi{-M6^>)#J^`n3 zr?B7kgCs#i^X2kry$|V}72a#8s)l;qGvOBvujV?tPr;R^&#VoJJ!92W?nDGOXK=6_ z%|Rst5--w{zbJzur3$JBrO5{`sJfiXl ze=3Akl~t3aU`WCZRoB}Vq18qWeTZL?CtOoYQ$K6H+~`k4{W?t|z-PYwT@rW7T(djd z9r%|jD0ikMEN&6ZABUr*O=IY2ozTvb&d!?l5V;%l{Z0dH2%dzVzv_?KyJH2i)c%`C z9#D1GNF8{EJ=91=UGTK)ly*NZUU!rIAUoV&h7jG%X|q4+S3*BFPj<|kX@jBd3H756 zFoI;GUAixun!F-jU7}w*N+-vk-fuW~;`U4VeqKj&WgqaPMdOGO@LV&na4wkPa)pcl zWjtFk^S{yM!GCbTYB9iT(Gp|Xm{cR);}RQ_Y@honER?t+(#z`=0`Xe3p;cQ_2Qh33_zYoYd9Ye>%+qgXwaYKxf5b#N zHOV!56noQ*seW)*dp-a7+wECb-n8YjbS5CI55ro)>X0v((Mtob3Z90X7rf&zafchp z0x}}s0q?!thy8xm8&=W<>XV!oKAjQzq&s0!W8Ob0^H{_D+`>@T(-+y1#Oa3Z4IfqRtTD~bp zWi7}Wtc2TmkOHj!0CDEVVh;PAY|ierz_V`Y^`LsCkmWzvTNL5<``~%tTiEfY83v*m z0e<)^=;6)(;qzz6oU@1&nWcJ3g93zd`^?ZeC?GC}*&jwSnF&mCXjmeAZi!IgA1e4NT=8Zz^0M{Gt0yv2>uMrmGUfhRIccFN8rv`p-WeSFpr94hMKIwHq%hX9TJ zLRZ2-R$GmsjrQ%cg%6pq(bkbOXysTeo2C%4tw|M@>dA)$%c|xiady^P^0ikB-rv?igAe+3WcUHP| zXnf*Tt@dZl+=H6L@0vRMZDXCzA@i=u){jZYJL~pZf8(^6_tJ%O zzPKL*D`=IxR=@xs&3>lv1_bRf==7Lq>wvsgopC?Kn%{mes=m04XC@K7X)NZD%2&21 zPa1TyxGnRuB(APqsO8*_z5WlUiDK;9zEqV<5#RoE@qpGFUO9{Qy&jE2CeGnnlkFyy zrT-+#W=vGRe68Se{7#`i?L*)BjfVJ>W{EzqYG1O8rJ{A7Ja7UO>(1F54&SvhIekJ< z@ld$7rHZkWyQo-+t=??#4v6O6;S13?v$j}&;g23of2^j&J}WWhCjBHRBU+ytHHDPG zg1|vr8|?6AL*Qn@MtdtQl1ck$iYL9TZ@-%1p>}lS++e?b>css$o z^c1LHxV~tZ!idysmM!RqdQBNVi=EPmM|v)ZbyhbZ%XLljeCv5yfWz1)c8zDp`N!OB zSSQXJIq0xcef{BoMlpo-&AY0_FW+|JQi(9zMr{a+>|lYc>Ii)@V=v0gNx-Pv`|;nx)>3-cEx5cKYFmW{SUFJjBiLSGnkOQwwM3a-#5muy&^5g9PC1Uuk?FEA+Ni-6p~R%)Y-)Ayl*MK?={(vg<&L= z%}Pz`GeM)`kDzJ+dBW=K2P~}sCRKcFg4N5`kAUVgq7k8S7z$a1ua}?vq%)qaT&;b| zh&2XUAW5Tu*)E@Gvh8SXX+b(}#8RbFS1!OM9UcGdWP(+#g-WKyr1h(g@;YP4X~2|| zqBa^|P-y)N1#-LW$Wrz^lj zqj5^pQK+xmh9EC~0viBc0+T6L672wdy~pdCC+G*;83UhqhzU#vMHA*n6iVulEULH4 z>NoL)@yoCK%W_li#%r0T`lq?Z?70b}D!6>E`%7u95vm-Vs#(r}tH)6A0+^zWgtOu+ z>&9OlZfuz3E6}m6dI^8!(<1Bk>`EOhkDWJ!zgZ(i)_O;I-DqWC$4 zm3Ev;Nz4kX*epDWTVPd38u;S-u!mS-nJrLnZoj8Aba_3ly?8@es}_h#5l;dgr5)Hn z5Go2tTjCLs+7cx~ZHqi(X%MFWuwnV}cyl2NL!XQJc7wtxwg{tD%j&xwT4EJT+z7Ks z=te0~1!RmrO&oYZejxCpEzeRlKpDj?GWX~7&MFnaoW5#F-nHkAokWQp;S)^3TS(2v z&$XPEDTXy-Id5C2F{9@i@wD3mx9;_?$P@42OU`+lC%LOU^mPmg5wBa1Fi}~Ygop=v zt?PxM$otL7bfGJ23sMfjFW!4|T^Y(VG)+g|mRTzK5h+WMbw%KgC>O#FVJ+PI7;;0V zmk$biPgpO1t<+<7oWyasa3iMMpG%5cV~1Oj78kvo7lFbR@ES7c0XMM$)8YdIm=lWk zJY@EMnobn^M)}_1UNXMB;i>LFN8bK~zvZxox$B z_WJ4ZEPFwIvTT_FG?j>CjCtgzFRRx-?zh*MP6PZ7`;S)%cE?ruKHvDz@c$O*_x+yX zhn=Gty@9=fk+})Ik)4f=ovjnS;kU)s#o5Bz>HErm#n=9!nL_T)CjU3F%Tm_)7Q1h9 zX#HvN>0^Kpg+gpO1ZiVom11L6(i|FyaCxI@o_FnPcC*&puWz**i)4p-X4GZaPukBy z_c;FX6VybLF4JL{`_n(=6J!`Dr$N%lf_R@}H2e3{2Vm>^{%s&91<2WmESUDBX2`U& zJQ@hMM$~}<3^w5G%^pS=LvE}6O^a@6 zWiJiQ}HUyH}7s zn^R7wKAA%qGcwlntc2w45<|w~gGP;s7i80F43SzvX#x5GXdLYbrbK4mni?o;Rv3eO z&S6Cw3h@cE`va^d#_gso%)_xHyn;M!hV*Bwq_}TW?X&AvUUG5+uh_gYQpL~0xdV!@ z9`)SaVpxNEV(222^AWFkF3)}%kiUy{tmdndxJK4h(GGs*JxSE;G;GQA?a4fb6|#-i zl^5QJA(jL6J5u8hhlv7v#AjzIr_3|{Hejy#i@odm zT3k6R7xA7ku}S5%E@@s?v4$0DvB|tP8 zo+K)UZr4fM$pxCN==2Z0J3UO>S%wfQ^c_Ax5>ea`p}_18yJ4*tVgX9G_~CqaAx5h! z0t~lf;TRc@*=!{KW82?sEViH#Mup(%TkoI_eoPAo;*cE3|7dG6Rt;80LH~!|?X@8R zN+VQR6F2R?V8aez1A7D$Yi1VpaY4S`DxgNAao9|!n;vOrO6|`P>w!GmPKbdjI z-3q!iTgj1PoN0VQ07ArwG0xj!o6kd`&%3iZke8OGynKRZ+{rVw@yZLdET&vnxstj5 zNiz`5T`;cT8A7cgM^H!ja)ZWqynh^BV7(%>)c3f*nv_K5G_)kk6xYLTX z1w0hZkvK+h1Psp>23=Exh-U5)XXcQ*r8dDCd26Jc11S0}E#0nox7`l2$16_DEvV`Z zsrQhYU&~KkT$8?>5jv63&!0XWn9~ee^&wGnp_u~MA0fA_>q>JS6Asdb`0i?@Dsvq= zvqtk&Rb4Tz&LGIn_;0HR2#SRx1}uwgJcDq!jJR2QK+U}Q6qNaOOiYp;u5$*4l5!L1L^T)jE zO;?>|m1Xg&YLmR@x2vwSG!kIZr<`l=?UyOH?)&Gg`>eNq?ie08{XFY?BW&3ued=ua zfdor{)WAGf_fZJ?^z$uE_WW&Uw2z_|ed+GGH{7;-gOBR^_QSrYm-KA+<%ru2z2%Ee z)BCbw;B7pX?$S+oerNfvr#Fa$6zsNIBtOMa&u&N&0QRfeyryCo7WONz)u#~ct89OS z>vKFNO)3rj78&-dYPST-yLk5)>vJTA!doHyyZW8ou`jggRjg)=)vCF?iz#d=#(P)n zyIJ1$6g~59Ejeh8e4TO>sG5DG2D&+C?yKcSl-5YY+Oh&zZY}rj3q((AHCb3sEGZNM z^k9ofabSujDRssGIg#^4+9^;ykttF|JJRhkGlfzqzI4bRD-;Rli84zhrK2c<7AbAi zOF4gBFRqzE_t&dqHW4a*4aRRaO@^tH%~MdUB3#Q3*MC@CsYPw+;aLz#2cHbphwmKhs=>``pShZ6|JK7L+p4DrZh!L6II=TqE?T=XJ1be&}a+ zhTD!U(@ByYc|`Xx*psM(2_bH`7G_&&>)>57tEy_%$sbkj8)F13|F)2@RX@+`ER;`S z%O0=|A$=s9-OVjsc5Yovuvs$wvLE`AR(LCpOw-8%4}jY6NNIS`Z5o8>iZy`qb%2?C>{YX{+bY zKB>1yrzsDxIW8pHTZ|@~*HE;O8Sj>Dkh?WwNfRtRdN=HFkwo;;nfV1b8o#ifA~grv zOu}n%)ub4#S~Lj*oN})#XwSukm9%E-4LUi_jWrx@ixnYyu8i14Lm6xo@AT3!#A((W zm`R-u{d4PCoWq!giYE*Z?5c)x(Gu66#aSRR9)Tg-tTKdrOT=2sxI29ut$(HN8SX)> z{jir`>A{wwtg@R=sk}6z%&v6-V=zVEovV~(bU(sX)wrW#5N~o>=s=0iEr}>swr^V5 zLfo`2!}Oxu50Un>?PJNM4aXcu1IX!Bmx2QhSqZA9^cZh5J@8o@dTonV^_a1;)H&Ej zxcq-m_KsbGb=#J1Aj7sJ!?qn6wrwlJwr$(CZQHhOTQ~N;=iaJ%tJBgpD@Lhev_4M2C{{M zwit#5_J%E_a>7~(l@>VKQLVgCtLRTjvTH`t-;(%pgG-HjHbjyGv= zhUW62oejEI6cso-U=TnZJEU?8qKX^zaEB@VF~+O^8ArLz$+;rfs)P1Sw8xwtl_%E2 z_(VL5AdWA!C?QR{5KqaS!geQ1hnzGhXQV||e($eJ>+XpG)srm`D?A0qx||9mxGSJk zDE+0hPnp8o$&sW~GlE3rL&jE$PD4rpqlPa9+T~Y`Stq}ujj_&REJ>P23Ej$nL}sr{ z@0(}XC7;HuW+@sD`O#pWQsZDY;=0H%D_hm8Q5(6kfdHc>lc7EWE3hOw5c5nnJSG*S zS*Xt6x*AhnxES-ykT6Gb*^iHvp5O0P>+Evv##lrkCb5KBCtXE<;Q3dzItWHw6D$g< zsDX%6;Zy9)&}sG-8CCqUuC|P7eFThjfprX?^iSQNc&Q+ZB=ggck0PbwwxCarI#qDv zrh@s>2Bgc1xHihnGniEhPQT52OqW+wu95^3dyVhn#$-PuG*257lJqD?)TX<`{4;o+ z-f;8HpFWu8hAP%TBTNrY%>#$~bV0lQ9*4EAZWc#xu@j_Es0{B^ool~i?jXOO;zgc0 z+JX?Wj?3~&9zx+9o7~8MHf_StU{u;Z>MAx3)O+e*0gmXptIoFiRcg#`Nm#SYZ!(OUK zqQcac8=ny(xf6B$Njt%7Z>N>ra#LYK<~;2L-^DOv`DEtjCbd{1)WYI=VNzMM%&@x} zBgCQuOFcUes9?W#J`M-|Ud;<4?2b6YC&geTsJVViW1}fLNq{{}lol8DcH;G=-sqI9 zIpcHt;@{SKs>G`>QiIb^*iJ)Qh<@(A3pDg*B&&f)F)y+hPlVQG=WKMZkHzrrW> zm~>xz;T$XYrQ##Ng8*!sYE;%^bNfWC-evUPv$sK*YBmf&)@-sp8(2%ZRd zo=P5ac%ibK~_YfDmH7Gi<+;C0$n3eC{11aWqkc=@fzo!@6E4p3B?uMa46~WtNWMdlnVP>g zAeETj2>N9KMogzO;b0C2qeleGg?SIKVH==F8Bl=ILy=M~qOI!NmrYNV@~q2gO)8FT zaQ*J#xhQ_wSzEtiy6#yc+yxP zEm@3D@T^cJ3l{;EzBu4-1LJ(ogZgZUm8z%9CI}! ze_^1%O>S9)P_HD$x)F}beK3_ym?r453a!mNaU58QYMboaxom=W4U1Y9^X}>7Ut(BF zguz8I{=^e6m(lGDBTN}nAF<*!y$hloP@ojzyP{ z$G1DTgIijAoz)`_IsLl|``fXgfSTr;GlgFW4*oHI{Gpy~(WY4ugF4{5VV=u1`VdKv z`L-qvyWkhfYPNlG0H=Ucqq++sV>4TBs37_Y-~?vR#TYv<#d+qSCal999u4=Ql|EpI zx(6h*oL{b(Z!U*=NFWIq6bvN6VVK1tWOlnYl<7RIf!R#It_W}%iiP)#fry66tg(Y5 z=bGCL+Kk^D#6-K4K|wa$8#2IMu68&CQ^=#Rv2N6aAh$P3@>rp1f~#pP-5Rl9r(jfG?ya!*>EvXR#ZW1LOUU|jMQ?0S(fD35{7~Lvl^;F!7X`sqt zQ?8~P_`M15enBH4dl$d2#f^tgCq z1#a#YJmHaK2-*f2L(&?VXYr|Q^z0|)pjaCHOUA(#-FOBJWu1Fta3>NrLqvg~3emy~ zrspX6x4`dry*@G@L0Jx&EXF_zMj=LUhhfvd!(qQOTaW!|JLQy4TaLj&cztNui?~Os z^{dO37cUro^0SBhRad5hGwl;W7oUV5N`N?aIiuL7u^1&#U#-zeYyriVNs5Ns4P}z#5aELpR zD1%RtZTy8ZAkMA`ki8hC#F3;SB+Yk4`BHXiu&e>?6X(R5sLC*~Po?Pi_sUeWRT72Z zJ+Q=LhpP-yK3^*)sAdBMQMo~cG99$$4v$2HvKqao%%3c}jKc9}6cAwYlC(CBxylGC zJ%#xvO=%62cm~x?NlHiy`Urh3YtXoSihKtyPfJY65bHx^2L7h)%KsW16=h*( ztdWVjhtyK*kU5a}#q$-><6uKeoa%hf%}K|#d6L>Dy{rW5m$;;eZ?#`mzBv@_x}wXV zF)Y)8dV04pyoNNr>Uv?iTFWfp!{tRIzJ;CchYZ0T zaB1xCF@9I6q>=MED(et(-Xz@D(1F8ZyZDa@zhyU|W3R6G@17;e{&|bCsJa_Bh;l{? z-rpn-zYQo#Fn43w@+^d+OPL6DGnw`$N>MXB6R7`osjrZNDH_$c1R+&{>?cif1RKo+ ztxxj7kTO9-6n@~=Pxln=#xhDil-a(SEwqULohqe>+Xtn56eCsnT{tsbvAXa5Z&w!F ziy3>oAHPtI-~S!L#Pc6?;{4Xu7C-Ni|BzT3m9%8Bl#stzyxRjn#7#>Y8XiQ}V-kvl zF5zU6ff^Q(Da3johTGIoRWY6BCxcKeD;?i_y!Y)hZwnc5M6ykl&Q3zEd0zKQ;3^rT zrlUA`*rrsuo{h2ik#L4ep>s;&^xQE6glNN>zEzEq*vu*}407`@pHpQT&Eg$5nURTN428o`}s zc;}!f)u+5rFOo>bn?|~bJcC)*Q|lKBa-mshP0U8n1XYqbbI}Dl{i@CQ;`?-(=W)I3Bf2PoBCwg zdF&Fc8QkxmQ_|f}A!}l){Pq37;buyTl_Ckv01tnQ@_E#eZKOi01)r0upj?%c&S{Tu z!50U4G9-N|OUlq3NXV{N#2mJ30w|T3WP{n2NpY1}1a%mqddabK zuJvKyH$|yA>fNCVM;%XaS0j6?M!B-h^7e|iBbTNn>Ef}~YZ7`vq>b7C z-~gem4jA0mj2}=)yCdETd?h%BbVDS+<-;0#2jUT$fDVt8{ip3(b`bkxA~%hFWFj{R z`>*w#KLHcyPHt`R5Z1390q7hw&QSuiC;=>|*@+xM9J2dggF^OuyMIDA_%~th!l`s8 zrLqV?&AAUj&}n=Vd*p~l8TxjaQSsPrR{pXcD&WV<6jOWl{|NhWIQ*|C7|hX$pWdV!hJwFeZA?Io-3?op8hq=9`G1AB`8m5w6* z>8;z$E@Y}97f?yWzw?L)X$>F98rrA97TFv-#F-)90#GR`L@h6eLt!xpd2j>*SqD_O zy9=^5{;ihEwG#Y!F!9nf>x9~a13rPKaJF9*i0Ijt$p~kY4GTFNN>e8fzKc8w{jG`j zXYH>G8gp|^Qf1Zd#uUgev>7(^FLe3f;?eq+<@2p`s5if@^Od;+h_^M)0g~9d+AGX5 zvD|2?9J8-785i$U8p~3x$)rbO4FZR)AX;{zAp^8Bvky#|7f`Gl>e(+?nSFQcqDQ*d(r<_wmKc@I+_3Rh>7`cJ!1Zo<3qvLLeb39=pV;NX1taR5+8EVcCJx# z0{>xoNZ8|gVPVBir2HIKOhCcX088X=m3bqw@O7<~OvF!=FKFvq;SenO}Zn?S~^T`ol)Q#9s6>|b+~LB=Jzv7*J2FR&YK~6jkp0?>DTrqDl5`6 z=OA8&&cB}D=N<{hUV;e{2qG?ye3$Lq^*^nP#^?+dpI`8sxv!ir(K5MrN6PHt)=@b- zu18s(-`c*}QTkm}Mj}<0-fCpZ$j$ZsG+*745v+>NU%qKR3CJT)Q7(xy6B8^M!#}kc zmJnwpcx(LDR0Lx<1Gfg!QAA2WzAo(SEett_Fm`D>S$M(=!6!rl=zkDWE!!5$K&CmT zTT0k)ea^T(mz(jxsGH3B&7nW96lpT0{TK&y7&BM`i6l64aDrzgsZ4X0AOIpkvBJ*P z$Iu`Djl-GI@DK1fyBgBWTVF;9aQ9y5%hj-pEdxFA~EAYAGZ zky{_2R95se=rc}rC#vaP@38R$`{BGD1G=hFghM0yK%2L2+B<^9#aO$?9E3gN7Q001_B zbc+AMpZwGB=Kt!X{y!zIQwSp5se;!q22hBVA%zVd$;MFJbFi}90mMgQ7`y`7l6puGSwa^zooCG7KvRTNgj8vK4*H8II-T<((e{`k0q>0uDZ zWSS6VEGNjqstr3#iPivf zoG-s^lZq7_WNzu~=a$&Y*Ok0b-xUcS9|jOV1*TjdeT5ST|Q zIzG?hJ;o~9pm9Wa82io{D^<+G7Irj%)L&lb{$9M+^_;^b(e+Chf&}H*K356 z;wNUb$7!jX^vu@nS1RANnY{y#JrhE%CkBcXL^QV&ZOl5=J0on!E=vIiCwU{o;DRm} z%e*4m&9^FY8(91s_(xmGW`B~!TKLc9u6w@)WcXTzerm2}h2>Ki`6DvI-D7FM-hjHJ zMwT8=onct$lo<6G8pjl0G6~;31R1u%h;NzdY;9OO$5IUq;IpE|$%-JK2!aN5`FA}I zG?s~{Q}-2AG*;fe<(*7qBlol?+LL8RyPdlCy=D0NmyYr+N`H(^d0%}7X#YX!BSikD z1h&v2Vzi@Uc2fTi&tb-Ca@jTmaX*14ri1$)H0@MV#`lGGYjTSZ@te*Jo;N)myJa1r zgGO%rEPDz!;Jf4$fbi&F2O!2@S%c`VZs2`vBqs^KLPK%{MMEP^>`Bp2j8%(RDFFp2 z1cjjIB=qCh^iv?a#Hs>CBjRME)&y_y8W!;dLPe**QlJFsBg2ssk$;~S&7?|`wHgfY z;HSPr9v*(sgUZ132Dv3n&KjM#&p?dwV(w5bWLxgJVjhSEV_VjmY4#oBIb*7bJ^@rU zEsj_(k4S)xtuR%INOd7VbclUb_OyRO{Y$aq&*cz1E#3DAeyF=J5i*aA;)^#8If4aq78o=VT}BWN5q2x7j$h17tetqb^1*Pg z7wjfCq8FW-12b|Mv0)C?$tqn-Z@dnZa2^qk%g)HZUC!eLE=(_% z`d|^f9PV9^Iz14g>gKi2bc+09A+@LyUwI zu9{~(W|3{@7?U)Q+Z_>Sd#bMwYiSV|o@!K9Iq>%p_+RzDzDP?6{&D*{{i*r?sP{j2 zKmPxqFBG(P)VKIQ5-Ej>TK~?nWm$C)SOEgz$FijU8BXH|HZ4URAjnO`^aIMH_HwAF zs$seq+JyN`xfM45M5pEWFCb-R4QLVeGLUh~WmxBCE_=qdWO@|_!SsS{|Ibv`eb@AR z$F(c()HN1wHQ>pR1$5*|IX|#AszkS+N*)`Ae*~bd7jqC_!Jw5Wp9FNVje4&+KN}UD ziT*-|b|kd$K%5d?*$xbdwRlKGL{TsUBENzeMEjfM_`@4wl2}>agljoG^=~JJdWov0huA0#FM0H|?HfIp z-%q~52{HEe7(>dkW^*%;B{A&ifpyBLDsq%deo!fOjqNmjrP}Toy{520=YZ*+2A)8& zL;g-`lTbnitCp|=T8R*(Jcf9{P`hT%Zk9-&p%kh=kyN#fzUW3T7=j93w`$L2BD-ED)aG#q6sa--{l2 z$8J$Y?wk;RofX|RV)&rMOIEk2sMKbe=lGuMH>WOBV&x^mFhZv=wL_b88!P$E$*bVD zu2@^j1J3-8X5>y4XTg4lmY7%@*W0E?-c)IdzY}4>1k{H;?mU1nH_Adj*Tt}AQg1BCAFW%Jxbd#1INGeSv!C%C~&~a zHGE;|Vy}O>578%z($4$_f+*A_BLQbifgVj?5wsN;WRkdo8+MI zLfR|t;!2fova?`?I-h0T7R(WGOcNs2@Lj^txrQ|0y@b~O>sD1-y9Z#^m;Kn)7G_a!K`+e?DVRQ*<*&P}E(5P1CTyL}s}-9d+GvC5fskeoF+o+#qk(2W zX-ic33u^YBh?n*5zmSyj7og{VBPm@!NJ^%0U-lrr;K&#Dw>r8^8Zr9>|EQsKPU2Vp zOWGlX&GL$s7{4*>7D z@+itPg*h5}&tj0;FHjWAV6v?6DmGLAEZ>yya>l0hn{aPDfW#guuMlIAbA~?L#K;&y zt{d0$Xt!~2Tyk@dK;Hk}@1E+3uKz`(ME|!$3h#fi-|0CR{U17+LNzGegvG?KDPG1` z(s&3l5+c2r;Xi_X69E8sF~8tNU4F&gh#pv;$4K`5cpXkix~Ofh$)lY1w+*&cHKIB- zw@GNhkWuP4*0hOBG*?!>*ELa8MXxo&4U%yme|>+X5+Tj7q`6;vU$q`*xlcJyv$Jx2 zk0K2NNalOeSPWy$WsC~3ZY3Oj7r2fOPOfuo#eQk!ekc#S)3n?KA$7-peHXgw7<*Ok z!*P6_@FRQ`>;t2P-R43CvQe7z#uY7xMi+h$1SYZ#6Y}FCm`T^MkJ1PPhuhtB#XDS$ zmMT<19Uj>I`COSAQOSY6nX1I3h3;7GqRTqpx$Ri1*0bVk3=A?$Rs{*DA?}po*ZGHOq^q zP{oz9i_>v{W+Oi-5GR##l24RYc3NR2lh-$2hS z(^?T^zM~frwl7RQE*Li&^}wgKnd6@=OOldtlvY0|7-Z1gD=3^><}^!vV3t0IWkHpjfe#H#Z{uVQMxxH094e}FkRn5fwT?HHu?($gV}`jE z6j3UnTxcWKT*SP-h!~DjO7G82DTy%@w{U0c6_HS043yWCD`k<=?-ZwCkZ#w%U$QYT z6IQfs4qO-5oLxwhZQ$J4CLuvXir-y80gg7RUco!R=jba%9VaV9iLXm1rcE7HR*sF7 z7&xqJ0i6f#e}|~|h)KUNATLFqz}MHDFyL_OnUxZOir-2+iV=9&%`4ECSN?TK%-AYU zSw|PD8g^sN{qAA!?C#FScLTepv4RuYMBaSBTFhUm!Wz_;P|c1`Pa!GOGyr4VN4)Bh zjM8ygWG^1Ms_0@Op4)4KY0uV#<<-9M++67JL#)Gm)O zlrBwOQD3M#UPXh-K&jBVW=fV?!QS14T4Q&}L9CEFMRU$W+>8+-t7vQsCE-~?j~F>d zoMYqxF*sSa!H z;t+GSh}rl1DE1K!H4d4Hw1mWD2c|@S1jKg-W@gpSLf^4D4cZlFWH|?iJyC z(A6dQjKLmBlk37g$FcfkXs5Bd3Z9zc1$N6!G2yj_>4E_UgX#NsUQfolOR0|AK@6nF zS<@CmWUZK!lPl<9dDN>FU8HYFs6r*#HSqwk;Tl)9K9QvnrUl146DVqdtBa! zCvA7F9v|S`sz7JEfic}{M$B#hCsBe?V?{B$AXsB9_7%-9SO2Hqe>l4#RX&A|N39C+ zn`#^f_8Jmv-b4;JOgji8TmGQ- zK-c0F$7RTtV@Jy@SMbm6g@iHt-@O~g?hHk?h^28`X+~phw4g4x+QM}03|+SP3+(np zZnl7J+ZhD+=gTVS$Q=0BP#Q+~CzVy=yd z&ylc7?+(v>ghZQUuoot{p>#X#^R>-MW#>A?d4)dNOHNSe4woK0~EN3Px ziF)!xAu-KLRj%YKV6DFcmCsF;ryT4n>HU?-F4Vz|tN-zf2eY)@SNoWeLSO;0Jd|lm z%d^TDk|}Ua-ET|hAU`T%bA&jzw^|dn81RrN(yRXPa&I9QBR6X+T&0F4s^^e;ORp`cPP1QC(efDkNJ?1HV7@#Lphd znkdeuT8e?O#-r-+sVI~v=j1GpAH^raaO#M%BC>c}P=B4{Cv7hFo+8|$QY3j<+uJRW z(Tu&gItwF}=cx~p7LfSp<;hCf%^%I^8em3|ibs=vs)SX!Q*RlIAG zBc~TA9dTOftf$08Ee{^pi)R}$ghI7y3$;o*LS=p0r3{Gm)SMI-{7u^(T}K2J^qD8< zheBu0$qt&0Z<6PlvKM+3cw4xw#=l4mSw5q}B50UY?nSu`^Ol$1Mf7Y0XSpkD2+3#! z;nq#Xdd8yvxPkRrDQBYUP?c^~Jc;Pd=Hu$u1y~)^I)U?0Xnxna48E@o+rpRK%d7(K zY=?mMP-x#ub$c07(DYLAyej`WCFin5l#|FPxN z08y(m#W*H3wd}z*|K~>zbZq-T3o4S8goH&^rbV$Mm?QVb03YU%kJ$1c1Y#AA1AQWe zuJW!^ZV!w-0MeezRn*D|aTXt>b0IIcwuT{AK=XQ5i?i=rZxfh3fUo|583JzR`I#|X z;y6jnk{f@i?;fvbR55gS|9R?(SGxMKzagD>p~8)zyKmfvj}l^&)SkgYg}f&mZOj#% z0E+Sy5&c5WDF?fQtO6bj?qWU_)VAlNk>l)FKHe4Qb%9z@B50r1+6sHa-$wTR`A)K> ztp8~C+V;~r0Z+7*^}l>Pl;w=V-&E7Ncrzfi{-&gdRZo1Bi&s7>I*Y`4+Gf&~>G!|# z&y<9%-Ak!>m34;{yk73lL|y`5&lGGN#*ze9oVET@=2jUmJDy8@-^C*@ZtYC%ra8pen*X={QCB72s!ByztIzryU_THgu@I}n)C{hq3V{Vaz zV0dG&Qb@Ol;1yjGitc5RU7|^9bO%?nV~TA=b55%(tMKQBe8-nij3U^|c$C%Df#z8- zsDV>FfYq*d1{WGws=HOWZKMig1EsKYRu<}tYM&UCkQBNTL#YGte$1DcGy_~MrVHG zY4O8#hPzt^1&`g*L>cyRujh{+2v`fLD#J{@)r34SzB~_eOo}=|`qj2z&0g zM-DtsRp0R64VIe|m9mgq_i_M}(Zy0)AM7HflW#M4?%hxJwOrFnP+o`26XikKahDzH z$U@M5*K_G~YMLG)@rI*u!_E)MbgGSzx_1+<$ESQk&IoL-p-^DZj<+g)mH``(n zP64OZwB1wl<151af!X>36Ly0syyMvPiDj|Rm=f76>)*VZbe)5Ht&igs4*L<6zxwVG z>^05s)zf?%{ldf3lm7xAy-($SPMCBPdN=RTWX|2R!{?!*cN}q;$;g%i6h71ecKf`s zyrcI4EU;9>bre{SCdBboTXJBac=nPN6})20yryUj3`O{X)chSG(BYF=LcLSzki|Z% zjJ=KQfqD2&&+dYKxadTS^|rU0GBes8s}?063{T=lk=Gn#%>LmkKddLofvlMIdx{cr zl@w6#Hr*lU55|1>oP*4^Vr^{!8#lA&>?$!gI64;CHD6VBrlRYJ&j@Il6Z#FhUSIx< z4hH-$$tox8ffKKt5jlmejQ)}`CzmkQiG)uZkd7!^N$vv`Pj!s$IQq*NhNu@7U%80O zTbr3*E#v@jAoNibazaWeLdp8LQX)8$J&{&4O(ML}>3Q_{3nh$55FmS?@9elkFoaNq?-CievI`Kh&^| z(jpZUAiu}n*KP|?zyrV0@3AyxQcExcH?$|_Y&$Fr)o8^rlsi*$_RXvTgF&EF&Dk); zEIfj|vyHgQ$#U88zJ14lv-)r~+kOWEh63?)eeXs3n6wFH(kx(rIu;3Kk}s%%Hg4o4 zK|M0~s~40Y5c;r5+wJILX9#W~OeFQt&*z|mKZ2J9Dq7iqkJ|oX=BGf8yX6+aTPZ%! ztlnJmcZDobfJ>$Co4(cefTKw!qtC|bJv+p}_ji=*HS+z1rekcQHUdpB22Rz8x!!8k z>0>jifC|3;O5ooXE3qyo-cFxX#TQdG4BZ9@b&5(=tWg`ay@lTfW9h(&=m6$4ukF>a z9opFd=RB)|?xNG*?|_z-W4*(+85!U3yLyJ(CAuq6yDhoHAsfYFZRRh3I8GucT(mU$ z&h9KAXnxRhO96)&-;m{0rfdvCPJ~Z+LqS0S+CDlCZuC1@(d~YDb(aDMJNp>wXM+`@< zQLH=T1oGKE3?|lJ1g7CT2GB+7!a+_n9rOz9?W2&3tQ{6 zbp|3luxK1=m5b}eE@2F%DP=_z043(xHiWqeJJ|Iuh3jRUU`uDQ2mVeUBX-fQpuZzi zU$X!763W-SMH+#^bj@R5DNYvQ`v!iR3nnY5uaK#p8#EEEalkN33f{Ay{iA@%)_Xyy z3jD0+hR3t2!?Ai<99iw)7 zYQj^gV#1O47}Faf+f*%D28Y*Fs@UiB;*+}X)-&u=9&g$p32zjzsGUz6 zH+yOQ?ZD2&Da^LzFDCUTgSgg#@^K5%!ias-)7~Sm4GfTr9qfD)Ae{so4C4j_capo!R(!F*R*AOD7d!ehW^o{deg1UO7Wn`P}yrKWT7vjV}>5FmN$7bjDQA zpHME@zYZU8DnILLxT}(F91_FpL&w+~q?;iRFtJ7!p<%f}P5_UPwgSdwO>wxu25#-O zz5nHCPoe9OIepbN^Xc(j*!^Itb#P@^)W+M$)Wnv zhYD`{q{lKzfwpV%jv!kA>R-)G7=`MT!seD_%Y8TImnmhAI}DakXAR&<<|+n_sDo~m zNR{dtmdk+!O)%|^MC&wzP3J=@jh8P)O-S2|P8y>n3Hwp1GB)l#eb0biFPF+8Trshb zLA|r#hZgH~bF(H&Zk|%Uw~xI4er*#g)8GU|0suH7`=8Z?f2v9UiMpWRVE2>R_Zdbu0r7A|^j(Nbb8Jamhg2E%F#6R)WZIg{sELpjqY8_p(VTx74Gmc?YEJSEVl=N96pN?@g$^|Ksym?~}x&CAinOsqoL5?U9a z32|kP8`~!#WupWs*-Sz4v;rCc$i|0}+jf2ep7OKQ7cGqO%#*`gnX6^%l*JP~F#PwzUEV|1t~;5O2t z-qg|*Ds~c*Cp8Sbl5c=XOTl(iUHTa9EUFfkWhQ>O)`_>C*&&*KUz8HxKznMMB!|0f z3q?ScZb`PK>5A0{)ki(YXVq?yTTArfIIsH}QNazTB(G-aO4afH?9F71-*=ioZrTWF3( z+21nA&}e$Bot*4Ho1a{*jifULux5y1yFfx2(g`VqO1SpK_T|7cC2Er|H^qhWjCTyZ{uQBHbSIl_>OD9Du}X|k6RvoLr|E;a!w_|#^5z1 zzZT`PtXkTW)2491cj?t*wydKf%u`^Rz~*`KEVdH6DeR*MnCG3Q=r>v*Ou)N2}@_mJBRArUDW)Pev=j-w_n`U()5%)8WCrf zin}-qyIMy_+*}dQv!QTgFTv6txD^7dCVz38w4~G_{J3zRra7pYy|6 z&a}s-DB5QCQF)k2KY@K=USn_`j@z$n%w_xWVWLf` zD1-#Ib!JuxBKiyaB3u{#NX69Y1fzb?+ujv2J_)!-4{##|?KbdtEwy@T7_;00ivajwmzggjYQ$IPR2+}+-7%*!I zwcLV+g3Y)WWjBJ`9pD$)p;bT7UjN$QQ`Y%y56(=_Zx>Hsn~+N;V_8|f#h!nQ=g^~! z!}bU4KhpX6zoc`>|B}uvLw2%QHOmhEc1><_z+opwhqYO7;`f_P!l|QP+qP3vtzSEN z(l%iFxyL$e#87DK{F48b>-d8)DR+9*g)=SK&OS zzh)a;mk0fb=ZbpaP0YJJvR~W$=+a+nY#kZ3(wiQ#;gl(G-ImB;Gp9$3`My>-po3~- zQ89QRL=tZR7lDdE(W{j21;L=>Q*KjQh- z|016M^LYDDU6XN4B`iG* z4>ZpuhC==B31*n0UR1QzyU=$tew%EaZ?(Rrtp94cex^uT`*{F{!@2#xKE5goaLSE)_%Exuy zKe&Mi)0;w_eMLX#*+6J4S!U2&KhzUd&D~$Yjo$MKxfI(YQiz#n)>u%uc(K(Dg(CgD zpO|q+q{WYh!C*0qxc-EW^rrT2dRgwe?KI?2>ZDCpUVQJiM0%G!ojc6;p~1!+G#i7B zB?LJ*A7flWD#eCG4u1gsyP!Y{lQ4vAEQ)WNB84M8Dp#kjwdyK-RV?H`lRuEhF(eOF zdL&DNgmSN%V?Ae)Z08yyFZTmW+=-o1F$Tw_DIyxj{*?$-|N1vX4?ZF4^S{Fq|E%|a zvcv@}^z7~bS#ZU5r*%Q(O(b^Zd@_$YtxyZlxj=?r$Hx6IU`v} zsB`GlwB;uBqO&G*=C*a}aaNace3`1N)D5-cF6!l4M#82GpI!0IdrqUS{z>X`3%B+4 zEUW|#ROj|SC!o8Q_9R*=Ub1Cu++U5Kj)A*2xn9}VcXj=n(y!9zT}EMH3%Sje*DlKl z=NqR%tHH9+!5m2~2)z-%oxzzkR8RT?Tftdo8#rmuw6ft}^#;Ui#dAtk3wD_Ut=n;e z6!H@uTM4iOqppQ9Nz?t(;jHd6Z|oF3M5_Xr5nWp83a$sm;_7jkh}*7in+_Q#;N}Fe zP}E}SW+y`2M~W#$TUx?ib1CT~#2fiL`8^Bw2vL43oYR@I{!Uwpswr)w;L$6oL?7>0 zFBdS0I1$E9_!wAwXzMboT$LZQXycn2LC2X-iS6e~H1km(rd|-si&`%^H{FQ}lX3J2 zns#K;i?PGe(bXCT?J{Izf#19tNLzMXA8kcX`qCl&F?bA$lG-q8c`HL+*6_V)B}YUJ zI_>=uZ_RVh7h$Y>b8w&j7)rYSgill{G@093H=INfX1M{3W%68l>l)A8VZXLxEDVxY z?VwKYIDb!~d|E!GidE@yh~pzgSrUjv^fY`CBiZEIjX`Ncmqrb0jCQ-ihzHv{oMwGQ z5!=>R%=3B6t)^$uzC7)!d1}<#gPfWzc7eQOg(cC*9Kx=onVBePenG!5VHl#5$QNdm z{R0Y>LMRdahb@9@GESF=qy$l3zkYDeAOeO#vmiwRUx0^y5PHrHMkIvLfB6>lQmkrF zH6l*o2{F&&q-}{*AXF?WD1|k2kGcbAd^JanWGwm1=MFr+a69)Q<`v>^Y4B|)-5bVv zC6C#wpgQg_zuEApGChmH?-Hbh1Dp>_BhqVZyAbTw3^Cka?SpnmAd-%@_I<=V`Nc4|4XV@6Y<_muqLLD_yibzD9^8u z3E5PPYW%fpLQ`zdSF?i5r9@Y$moO+{cLl8PF>pMFlG94ynA+;%C+j6mYWV3PZO3UR zJ*hbP%McYEQD~m!QwsF5uV57?NOiOnDk!(kEc}?So@9ffS}nkEEULE>=PJ!^6VTu* z>y*CYv%Rm>w@P1QW55|iBiHaGU6K+9w*PNc$244vm2G=&GS!u9AkB`D zr4G86UeoWm$xdszXhKhqpclYqznKO0j*D$+v4VY;^>W1uWvKK4QKgBX$h2R@v7ke`bN z*RQjPtcVTVw}pJRkOeI#l6iIw`m2{uIZp&D;~3L4*le!QyrL4ylldR4(5- z_XtB0$AE?kuK>U>1_~GvbS~&p6Df;esfI&RPAR&HAhp+jUw^-s$J*n6?mw^ZnD427p+eXn0>2OGhv2V6%=!CgnFld?f5L*;oV4KD! zJE`!2gx%{(P0#0J=ePvfj#QGL^w@Kjl4@v3uX`cE<>yJf4Vf(I<#OGrV8+ zY8WtCtau-g#)i;KBwe;!YL_t-ug8VL_X`P>r?Si2YKIXtOZnaenk!#4oB4+Q@e>Nz zyEG|7DSo=_sJidPocR9!?+q)02cQnqP4nLyXV5R62yfX7HkpkDi`zP;G`A0bpKvE?$-!B<4?@vR7+hUZuD1Xy0sd{|_#|@4<0UuUrR? z;xrx1mqg!tgavSD1OahH)||8)e0%|M7>M9OaEVmBwJyi?BdtvC_jRk2t)*H|@8zjW zBBw25oQAaE$_3r~DNT}8Obe8WzY@iD?39V?mN3z)L4v<_u~?h6x?SIu`E=R1$wC~9 z82u-gN)}lSS)U6&#~OB>)-7( z72D`j#gABQ)8CZZL3*1Uc-2gtNfex(S468bPix(RANL%xnLF0Uh!$6fLG1-bD{>lB ztU8+#F~^C6>kA5C*HSYwM_H_|CXX1Db*iXk@<5dy86V}#QbsRmwtY)}Mh`p?D56wI)RAxZ@A2+-dZ2 z^$h+_Qy7Xe%&2Bny=BGW>nro~ZJ`XulPMvTcNLlJ<=20bnah@g3p41JZx}ElBgloL zax6^j=!_1B7&dY&4P?eA7_HOvC{4BrKnXLioGUlto$x4B)h5ISbFf$4N~Uoqi6H>X zu19Sz^xO6)QzIN-_V~G@h2G}+`!D3nOauZek65CmtJ3n2#$qH1{O<567kMqL{~yZU z!MpNr+xD%hRBYR}om6bwwr!_k+qP{dE4FRhM&+gUIq%+f_d9Rj_G@kZ2V>1|pQFz) z`e(v$7M<^?u&0=eCCnTRZDdwF_g6Umuw1s6Xw7S%-cCPn5`{ZSex45E`upd-o?T_5 zfeAayvAA*lY9*zydhYQ}m8%j(E8gg8>mxaMiT-pxn`??jcbTZC(o_M*3>ipDt zhNMsSAbgK#UL*bA-dm&Wt#$t#UxyZHQ z3rH^ni&-LMStt z6!I8UzVV4wO!j{~!*Q2$;^q(Wr zsD7CKEU?~NVLkd|o!B($M#qIi*;bdzpxcfrwe}71(s;yj9Ak1>`Ew@)nbD3^*j1#| z$SwY!k{HaNfW4=m^IBTL+!l`tQc8`ev4|>(_@_#3huIh8I@Lav3UbUsQjLc4XL7eX zEW|GG!M&fo0Q%dbD*Pgfb(8!`W7#o8PSA(t{zCZNmk$!-xvd6p&tCiU; zRNBbkYlULPlCm|rD9mlz0*i58bn8RnUV25II_TWUpOoUf3$37XFm|tpmQAJWFlfVB z!debxA`Fi6g!!4$&c02CLa`~}XpAIx1!b}IelH091#9DLfQUhF2()TM_8$^uJMmMR z#5eAZP}4tsG)cgaV7w+V*o|*-Kw>y9zUE8h0~oGhna(svs5z-8+*kwjhyaM#L+ZfM z3v*-~@Jsvhu%0hEgQ<8tQ+=O!Bs6TgJ-f;X^5_k5^ZMwqf~uu_j}?PaW5tLEV08l(2K15tO#a~vdPBxz9pSM zk5!_^YZsffy_MvN4zJ+WjlTw@4L-)xtqzTj4tEyK-m6s|P@V-o%yq1XGt5d2ki68c z;o;Bg>+Vh2Qk@{>wv1wGK^1>kI-87|_DFLwr(n7R+jSfP?ZeL_r(Te$NByiHA#C!V zwyljN60FFe5bJCcG1-Mlo&=srRYd;vn7e-OUnEPfP)x&_-U!mF&=Il|jvCrd8+1o~ z-ir5ic^zUY-p<@D^Y7SAKTkIvH%0`m=-tI2VHK z6h~%0iJfsAE#K@TVi(c~fPIjpX(wd|LU?hw_ACU@7?0K&oF>gQnkadR#IDk~eyJ5r z5?VWaAOCsp#Q7DltiKo5)-L8%kA@<|f|oMq>zIG=7W=*)e1B7Req}+udGGnNm?)R+ z4`MrZzn(pJzX_HwyfrV&c3I(C!*4;Fnws`O z^YU>`tX$!u9r$(#xuN~_U}J23p<)TntQq_*#Aw+8b{Ix|XXf3fJb}ZT@nq3y@hL*i zgzEHBg>Ji+2z!z7CHt%#!4pJzWt=MXGWyyL;`H-Bi|sRnoxpc9vbPdt+e%)55!Hj! zbQ_EjAfxm0NJ`jHr1G5eNR~^?R9+o5E|;uoeUjfnn0o`%v6i-osqwdVng0w(6ql4R zRfCf+97)C&nl>UP@Y|L7to-~@K}k}8OwSdC`tU?-HnWxEECCU|yxBX0n~UY5_x*AZ zp#$2k1DmyWaeO!P8R+qE?>BBU_#)g!BeKV<7kjnalU+&YXS zc;E8|o%a=2B)tL6_ITjUVPYclnfO$0ro)k20D1<(;MJTe#Es2PlP3yW$sowXvuub- z0d;x`3PSdskn(VNMa-|pY04ZjJ}NXtSYUfMq%CF7{Fa#~BY9KU21Z|ghF)k1(wnsW z5C+?%t?0U-9`cHm?S4j8HzWznNnInAT_#n|jp&v0c}VHsPGS0~)12f|DvXAHHn#Ut z<{#9GyTIc^&9y0A+F@6E#9cD=f4*7V5LETT)&ld)6w7y+;T>%}8+dg&UwK|!zQDAd z^z67}wk9-Fz)@5tIfMk>JSMYaDpunRrQAYBDTbBY4U9HMPT_eYQNH5?@~8AgNj%~E z3bv0-9oY`uW+nrikc=pBX;Na6atIqLZ=iM+%*b^JM`Et`u9B}d1!VDi+DMh$5G_irwDopBxU)hdttFovBUP;{AbPGk?7|dT zh{6>G(5Z;mN<*y^kysx>zCFl;hew~{hY}Dw*a;r)plx---pF|*RZkol;&)MoUn`Uz zNa)gkCfzc(N^-g(Zrors?P+!BD#9(f@o63b+ht<*mpxg7c=+bmOOpGXg4CYav-5eX z>QEP+p`;#7!w+U>3PkNZF+ADfed1K@hOc)rCfTWI2g;YfyFeNLPS4~ijPOuO-dm^) ztzTZ>R`uDTuZU)i!O@+(z!)mCHoE9gVtwA2-Bne2*)hw;bbj8LK5chIX&3CyW<{yW zC{MKPyqcfi$g%m}jgtPZ-cmt&vr3bV5II*H<0^zil2xRHs5&K?AoIRd>+4$~R9GR< zSRuk+)#ttv0$ul=de;A=4jgp9(KT4}H{$y*@(VTq(;IOs3au!pH__6FWve!dc(QP> zx_d4#r6UC_T_*RrTgM_mpfWrd)i&|bD|G6q@z>TCSpF^7snV$vW5r}8<)lGt_My=Q z22W#5HEL(XH2XQRujcwXpnmHtQD6_Nv|#=ufgczkErzf(od?}T)Z3w6HCAM&IJmdJ zKE6U-76Bn2Mv?zxwQEfGTJbG4V9S?XKUeP6Ht>F~3uu`{phY{btAFc+cu=~zfTM!e zkJq4eWPD16U2GCRO5x(|cKe8-xTt(QKTAvpzaplc^8Uj$MTFDe-Ywo{PW_%2Wtu#LRJ`{IEdE^SWNgrEBe(Q3X1wxV?V%YJ2-{#qY#4-{necXCS}KdUf?ot0JgU2ZDGDOGcnP*c-hMWhHwxd2-NKV5843xb+@dD!N`J6pG02HK^AVb|Td- zlPgXlArVv208`nHP}3u#wy0bR_=`nsM)*#@%>0sh1y<=@l1t6Zkjv?LwYL1yP=Cy) z8M7ErSpr~ls8I!N6rJEP)h=${b?WVB!nS4g0OceH*yEu=yD70Dt)2w9 zG}zPN0X|ga$x(qeF!oCzIckC%K?RTQH)P?M-V~_ zgwHL-VzSvLtvmu(<2<x7F@}a7!Mm)Kgm#=j^M<{5Gu?%p&n3D;|arN-@e`dAHgdB-uM0!*GJmPO5e!-e|bOu<@!{rL3%14Bz|V6kF1aE z^Y?x8yS8^dGLz+{;|d_+&B5nF*aXfbiZ`@nKr|-dGA|D)A#-wSzg)$$Xt!25Keg@^ z0g z(^X}&+iAz;)>{T;%Vp2!It#Kp`3X1R2ngH9F(1wcq17j8D465d>`kq#=kB1Y=jkBZ zed`VSpS-;YOhj;Ng4zAp0fJ%tXiHS~gUYjgdw>x83Z2i=$$nCxCMtRbD75{IE-M8Y z?OVjl+C`q{4%)6Txtk+~xt+GlVBRvc8qT3GG4xU?-kK(t0nODRtQyYFAU{T_Lat|o zJ&oJvcq(gU;f(eCEL!GZo1Dy^W7}|KVnT7e%I4kyJs%F@hN@J&CQ~Z5kb)+Y(xyU_(>re^@=%! zOmpz4$Z+LqJgCaG)3wWTuvdO7WC;O!pL8CE;F!idZ+O0|`vLtwq9NO2x#l54KXO?} zF!muq0G#IU6Mir{bmBRY0UcE(-8Adxkgur0gxFnZz37VBO%YY9c&d7FHBd+Eykv0c zQ>RE)RN70khgEc+7jpsI!ois~2Y%nDjD?ye%#x|l1C(#|i6 z_A=mo5;lfUX5sFbbvoCVO8txH=wdU6X6n3SOE%s#%X0Y~6fsx6y! z1&m=`;20y)_r)p=!z^2?{0~M++^6e|$4RRb!X6)oxVEvP$A5bIU(HPYb3p zCGb4h)oOZr#mR0fA1fIO4Fo(1Hf#o9%q?dZ%A6G>c)#!$?1`hLM#FzCJ zY-_4dJ}jPu3$l}_XvK6-7KsSg*K+{m)?^3jQ=VY@!d z6C5V2VAM?@e$($|wDT#w?)vtPd6V`G5cKwJZ7TsaZ!7;kH4FS=;q*-`n{0oxX1!Kg z7aqRqPWHpyWq0o6qYOOOxu*WDJY$}T0c9@8s@JcE;77MG)*S#tt!+bf&P?8+CFhoQ zeVS=LjiC=|TIPqyW;)HG-W$S4#trL3Kph??H0ZvnyN#A*h$m^ThztYz62N3i*ap2G zfC+s*5E;-rQlB@7dPhovB!jKe#g~2@4q{bAea_q#r#GHcK0KtGYFKedNHV`04yJ|( z)X6uI=LPu!ZC=O%M7v|e--;%O`&bmzFwW4!;n8{M26s?^0GTB{S7fd-{xz^^g)hl@ z^rB-0SsRV{NZRO7<+^}x#KF-sF|BBWH@XSw@!Q^06ssc+>*?Cej8>@ikH7ZsrrCvE zf4u6#pKaV&q3H8`_-c^Ft?TC1P^X3>*QZTPlLNgq(d>js%w)n^{59OvXXbrco|D7x zFp~z%Q#cmYB@hj2CDT3}wfObtOs1$_BRLkwV+^kldKt|ts1Sh$o6b5V#K$srjRlAv z`|2Zl!9PcG&O$VVu2$I933p(w6oq?B!&1NNB0ljj8zUW|H>Af$XnArMi={T}m@q|4 zG>ls~algkZ95N>#fsf%tg&o%j9|SJMjKUC3{s>zaa&`Hse~}a;rTHs;Wz|8T@<>5Vj-W$4HhVinDN#AYDPgWCUhHkb1``uNW3P9V?Ezn0fjYwRRerD z0lYL@IjB6FZY%Q^1>~CNZ|ecRT1AF=%bKH`KlL;WTob>v`U7IKpc&i68X_o%w_$K=exZqsNV(RwxVk?6CJLTf0pPvp>>GWK5(_W` zaQhv^#6k0gSqnZ+Qh;3cHEAW0AitSLml+K>rP68UVMCI>JVz-hW~k|tkdHL-`5klU5E+`38U)MG zBnsoD2^#mIbvb7PA`QaIrW&~z1^Tk9)s&(R-Ze4820e3)ANAFWAWv5?_i|68#(B+G z+6a)=g<5vk%L-Ua&@qSjDiZj&3v*FErRymw^`xmRGi9P~mVaY@W1|vPJ&@y41JsTbi-5Qpjxru9Lv=d(5F;FD0o~`2ii@gCII9tTBE^-JY43O<0>WLCbfxS0@nHP{OkW{7)PJnR<{_D*nYnKKrK^EwxD|)`qIGJ64soqC?dFe6qZaN$Q-Y%U?oED$=%Ztsk%c04q>F?!yj_M43Cz1JN@+~MDa$0H+geo>+oWs;U z>j-8O2oJh4Omzmb=fe*=Mc<5FWlrAWYium# zRv+;|@x2e7A^5DZ-9GK1h1%$c_H@4+JzMrYInLg|`e1gcSGG9`Q_P)902sE&R1O>r zcJz(x(B8YC@^1K2gSW*a>gU-+8eJ*D7%ItorB?U?_Emm#*~gxJr;139$EJtj^vfl07y9*QN~;W3C#{@yw+*zBoN=R znQ?4C{ay;)WXIjM8=48UA=R1C35a$E_Rv8Qf8qynnnNzcL_2RFg-|Z#uBt9YLrpio z5^9<31TaN|ERs6b5Q0Lkop^4pk$hC1QXU+4qj_%DQ4$QGuAPQgB1w&s;cQpcdbFaM zwLCen(5`|GRkR?FD!?*XD?Nq8Rk)MStN{N4PuKePJw3Z_Z#KPSO#C&9=F5i@i zRke~OMR)cvk)G40l_b!*G6Hciv1D8sq)MWe(r-Tz2GMR2a@SRX-UkQ~%rVuqTkiL> zB(LcpJ*N9+57n=DiWrGGx&UKcq=|rJ8UgwVe(Z@skTOBUiQY)2WIdB#04Zdg9CNH( z3@+(#+c=ax?6LvSh6D&xbg2T4G-*mRn#w#1bt#=35C}O!Edh%ckgh108F%*pmRW^{ zz^r1*6C&ohwR!$-(r%Ur^~Rg|DlLA#$~cY&qXsF9oRGu(lBP)gRq4~&#~J4f=ha-V z-_B;R(~YZyj+u)R?Tv^HB5&{;1s_S)i?60SN#WKbX_9ZqKdXYmr)s&`qCR!Yqlttq z#q^`T6MYZo;?VCSi2jMk%*@dbms0qk$I(@-I|Cvhgxh@LQQ>f@j|6oBKo~lgiCOyO zzEw~>iliE*Bpb%gTnko$azSa~F6_B5D_3yM@>BXFb20=@#fVhUUpoSVD6rs&rPENp zA}fSEWZa$sr6gr%S$j4t+Xy$5=!}e32DaNWD(xd+L|0s$SK2O zd1Y26E!qal?g)nC{w@E6PcjccR!rCufir+S|6AQ1tGomi^8_vJMC|7Yx#P@SOOm&5 z`ia_lFU$u^r?1JePzOKlj+eVo;Ski^$YblX9l>{3L*j4IFm}uJ*W*1uW$*3Me_0dr z{<7y17}vpVA`*CqQpl>oJZx4g8V1vtETNRLJ8hGf33tCq=mxEP-!S%ec*EbCHRAc5 zTbT9O@7M%Yu%I;O*WWOi(^AFc;{e-KwTA~S_2`wjKIE?*94`H}rr}3_4=Gv1Dkoe_ z7r)u3`AS@Nq7ngYlkev}G5G<_`Gjp*=%T=}S#!XJx_X`c{2h~&X81d*WM-5};BoM} zDnVims#1msyg?qj31beW5#WLxb97zq9FEl# zberNJ=aNcla8UA$8rrpEuZCiE8o`~1&uj5m$B>zuvi4Xpcr+sD5fC0`mX~E0n-+i`7T|Ye!R-ThDB5p!`2$Z3i=H^Q|r>vo^zjhu7yJ7ToFqzVALh+Iy#V?+zhE^8VSZn0`n`ncH^{Z+bT2~z6n^c!w3M4P#_p1 z>Q`RX&`39Q#opV6d)5mr@#)d$zXGNt5+85|;J$tPL-e0k0{+RIfPkK*k+q@TzdI(G zv0rnOyhwplss&*oVd|gS-)@TKP|fLxiUyVPA;I5rBj^lQ)11wBHBLtR17WuX(6182 zBPtrgIbEc?J?yRDZeAW?w$V6|$NT7w0E0!5)R=2f2axDu8^$#l?OH)`s87IvI9fux z_(1MhM^~9x`KLYKavGU}R#bg4SfkPD+daeWTTmRRK+JwUG?CIZM6S^WMRM|)e9;C` z`K3K^L9Z;=E%|W0&YkFILKoy{kV`8Yq8}R!a%En2Q;db}nnrHEQ?7}wz&r85^7#J*+W_;5ePEOcJo$9O6*Zh#PF&LSH@Gt-A#ka$N(%xu|E!Ij0Z;4 zp^iTPAo!$o?y5T)l9AN2@rV8?ccY?YY1hsY;AoCOWlGgW^zd4WHTtUrPG3z*q7^LP(IGQ;UMc%bvkp?SDY*y z!=&lhT;jVekSM##bv%> zMBht2S!I$(Kzy?`ejNXNpY%B_;PLi)fzZW1GmF@3f^d;sXSSn_B(kTdD2ZW}qmwhF zW6|77L=F{LQ)uF}_I4IY~ zR+GWkHvO&v5DO4L7SQOOt%cvp3UBN=ZHIrcvUW2Ynp==Q-2KtBXfT#>K$Jl z0}Ed}m&Fb{VB(!dGMlGdRi=IijmK1hc22{uRhf4%-FB)VPw-K>o*3+)03D; zL8uYa2?BhY9ec|opiC08i8}QiPAUM~fa(R|Y>*sVpd6*QK$+q@RJ~&bUsynS8RNQ^FpF2{q|gS*am?4p(CieJSZ4Wxw$jMW z*MAZHB&kcCT)+P0FaJk=|Hl<4#WfqGFMjEyHpiNgsl*yE3SXH% zxx^ShvTT#0dGo+-9kP14FRF2IFhfnInu#&w!ZQ&9Ej|9t$n)Xvu2lbNe}vKBp`kV( zsGj#Scp&eS=XH;D2#9l+sar2vU0WaTf3A-_zPZyQi*UYT%me{WkC(2+p+t5=ba^*) zA`RfwgrLoiBMi_)n7{a?gyKi48F5QX_`!Rp!xm@@*FiyuKW6swS8_9WkH>3x1+tAa zyt{c@ES3Uz4X0BReoU~BCB57_^0n;==ZZ>OOwvd02JEPxY8wf^-zAaSvK_T3nB^O$ z92u=T78PUv<(KLudzBx5@k>Sj@=I}OID&Y#+Xm0K|BGMRt~-u)lBXwAC<2LEaAKlJ z_gcVZk`VqUK#mF&zhVYqy6pG|XmUOj3iQ<2ykBK7KGh##)o}DLeraQ-S`o`(dlGk{ zX6vj0Qv#%LylN4H<4OYYUw)}jSkjQGI)%QHpJNmj@r{WD(|QewWRqc0-0my=79A}P zt2mz@vn7%WtBNnJn~`o+dm*V!2q0jm@$7^R4bF^rEWe2~3R=(j(c0!yk*Y zBaW%kAt^(##^yw{gy@SI8>zq{ov#2u$G+Oua?X|ZbLt3wN<2`*2KnNb!XWm?u?^)_ zU#9UM`a~4*e)=@xkhykQq*#1QQ+aR~ib(v9WU9_iajv=&zcPC6uq<7@8gt591|2FT z)*ZIC*jPTPYo?uZUKv6pny4)vbT)EYSOwYzOTXo&Ir@l!X3!eJ=)LJgQ)&kD zLmT%Qi(=HwtXyhUZptci;idxC=vvrL3LvQt%q4Gqg>+ z$sd9=ouTe48ma+S*w+l#C9NDn!b=J5+sWlI6M{M&@ZlPU)u|s;xs1|d(>JFyET^Bt9QeQZr4X*BxRn@W8mE7tN9LuzczzMt)9bV$8Rn5R zIeIrB4Q~ByFK;+Am#vtl6}I_|=k|(Pd;SsrjL^MX-lGwk6;-!Ar3acP=#%A>89_Rh zbZ(eWASj&|{x?4DqV!nnprx=Ty~AR@?0BQ0??f~igvD}kuFBp$I5h1a;LIbSW7yc~n(n;io9eKTTK?!EFOM&xU!M!6 zx4&~|8~U~+IbW0>4%Fd2aR(L|PT45Ke{DHMG?DN8-}$Bg+?nr1vV@kmJueSAWQc z+Qq1F{}q|Lxz7D`zEbbVKFcli4@X$I9iqL6{J{yFSdd}iDNea315@UUHJBzq`FOQ&!DqFAc(*1(r z%GO|v3iEO@>g@R-X(W?ZwMhoqWa&QOOADX422_Uo$Pp}lON~sLa zgj86}-*WQ^e$~(WumcJ> z2Mf=b)b-14TGYHiR=8*t>|Z(}Q6yaq!gLLK8IBW)$abx8TPfIqVro5x$`7W3SIpnh z;8KoWW?t`=2XSGh+RF+;u88aYWM^QqD!$OPdFk5=Vw+9pPFP&OU4M#AHM`U5vHGM1 zJp1eMw!}i&A1r?pQnI(+513*C0r|QZJMxTr8^lK@yxkXUG#j~kx6!{B6E|w_LZBSW z@CLq<>)y(lVdqr~g+=I>xqf?0jQbg6rbO*-fiY

    VZsv@8;$`?4#(?<@?~X5n2E(a6o2b1*pdCyqB}Apw>bBa7 zl$AAPgpk#fScTKdDz>6HoH7k+%lycWYtbS6@<7*qgZcMvd!AN)oc1O8&Hr)MnfD(^ z{@=Z?|4H#P71#borhaA`0>JfJk-(T58%q-TA)s@tkm14ul<5N0;jC_EC+xu_0AIxN z>AbyotD!NrIrMC-EzfDz;6;=Y=bZnIEXOW>;B3dY55*o5dpvL6I(XWcx{CJJ2A%$G z`7`pkS`bJ(cIewsxn4#TZ*R`KH?==L5i#@l3`Q?{#(}FAgGj-oX#kOpB7PvfTLJqZ z`=njR2pk5c3`{ZFkGXs(t|yR;7a zvOU^(j!A%cEg81lFX%6Oi9~aau6{O=8Y?VlKO!&GS^>SQEWE=)mBfsk9gu5!>RC(0 zOCW?rZkK#(*kU7-G9N3%GjIy7GDjP2=2qQ>C8a$!=^!a=<#938E31iJh`;?UDe9mgwNyg zhGOOf4a88k6`alX#Apm}f6Ql#vghej+d;9zTwNWDKz89WG8qdcO-N->JY-&j|D}bJ zT@_SgVYN_e2kLD`ylX_&Y)5irc@~yoNV{%6bzmz^1*Tv<6KiihR`KN;6Lp-0Dl>_a zkNJv>QZclh3|bVF$M5)NQ05`!nYo`t%q-FU5d7YFqg2Dz9?r|; z;6=~st^ehklU_j~+O%?msei)>=KY(l^T${>Z>ub>y3oL&)irVe=kW_pZq&hA36)or zGZ$~bpOeXlH>FPTYeO=OQ_WA9nG}9Oruq7yGKVGp^WY($!Gwc*YtJ90mzqKo!kY4w zB~mV%0@woJltpmMy#&kL=aAdqPbE@(xZvaCctW8ntHQp#A|-dwPWx1CJ0@|i-xP66 zGsd_*Tv59Wt9r2u!HSZYVr-&-LQFs}F;(0l^7uA|88v=%H28zUdJpq@zmuoLeDrLzvX0y4?fwZB@;f^gU&wTJu@2=xd_fXcp)h#>mH_4p?5>4*bhXRx zLFy=j{&q3-u1$5Z=rm>X3lfg$6RByED1~?+Q8;e!#;UqQco;iDwzg$~b05h(JP}qA z*y0ldtS`+^oD7!5#UHinQ?Yze5eg{f*Vyx3z5~DB{wT}tu|Z}9Vp5Qg$)l5Tb9hD2 zenj#J|9>gIemnO;eqY_qf2R2UlMaX9%tXxE(a7ZgGv-nlHz5xAYuYf?);9iGQ2%_I zDdU4jDnnL>56FWogmjr>DJXUC?dBE;2$UiDS?uNejCgXQ`W1ye1;8DkGu&MbkYRX?>2iCb{yv7B|myGec&A| zBEJMQqsWcUh}8%fc6jD?@#wPyc=JH%7gM^%kev(_{DdWtCkV?dx}W?(%mv@r)z1Ow z*y!4WUB7YLW=GxN+$n3rDRLyVcH1q7d5U)o&_Mzukj{$*X>o5NGMiMx+EHf@(dz|D zoB(SQ!^1aj_3M$`x1K^zsM^Sy+%QOfxpCs1I|J~T%Zru7`?Yxh3IU@8RDloN;QpG= zrOWebXs5Kt#$V%QUfib%wLtMz0p3v4PQF5R8D-r2WI(r=gOJONM(jvrC@0YKB_{Fq zISFzpIZ&m5{hpl^EM^NUv_{l@Z}oFT_ZW3WMoZn?dUDD5&`|X8Syrnip+@atGEA8* z;TJ`7m`IiO$LZT~wY{NG#Lf8yo*clG}#$tzUU zP{1@o^ZuI>t~wdO^1l?XQC9t@dMUmsU&DX^>kc6mbb3pBuFw#r#Sq|2@v5<|I;J`Q zOYu-A+4it~dL?}LhjM>ykreRGMKMa(ZFOyVxNhG4X}vk4@U<=wFcq``#;}#g@xqV> zw&VDT{Biq79SjI9VLm1(32t(`B4~-&LG?5PQtnomco!{Jgdb26#LC=Jh)2i3!G@%= zosOkkQ@+$7*(~GN-Dt({#}Si>0AapcM2zs#T2M0-X&998>dIndNCLH%@I;{CWFjfj zTk5(fJrt1Tyw!$_HY1-7dxnUz5kenEi<(maX~GK9zl~i; zNsda92kfIX(l4=8HaHqV27ggn>C&!I5_8MRV;v?cgs7PfI3kLg@RFEA21a5LT<}Ez zZ9{#A3Wt#7%8{+Yr?(-ocj6VfBWJ5_&<5vKL3Y5sn~Fut_0y^>HpTtu3M>XTE4w(c zRVD0X_D!PbRVngt?Agtl4$_h-QDUSYNr_I-=v;^vs|ag^={VT!wIV~`na*4>&n1r( zG_-B6;OZ37oM~gN9_uWf?Fo#e)Ahysy7CFB=CI~&XlRaGLQtUNIW_@r=K`q+XV2eo z#m6K#por9vu*u;hbkmHsR#<^aKbKr7j^C;uKg5O_BNN&YbBsm0n}yWS_<ZDcbgWY&^;8UT#s5c2U5DrcK^zrUc zb*zq@bs!dvJcU^l-4vLOz;)~o^Sm+Hyix4uyg!`RTSQ|bh&fpxyrfgsird7Bdt_Po zBD5)bxQ`y!?KhV2_6bQ{2>W{ArAdD0dv0kl9|2g`c|8qEo}6aP zQH{fq>G~c`eo@E>>HX$=* zKZbtn@D82Af{7?1?C?H8P>56mCuHON!Incsf{j1>)Yy_Y|n~Qf<0bXvQd`di&!`3ObU`I#KJ{0>(@Ql9X|4 zQ&>QD@V+N!LxU#M$xKkD^eLHB;|0rvyrNg_VOVcFc*>lbblL1dy1yb&K0{bMV|4Ff zPH9ACP1bGGZsYwB^oi|88Dtzz!qU%IBoLVv|Md18dqldga#+t}liY+hN4{4Ucehk8 zZ9Fp-31;OxW9uV%gCpdI>1@h#2YO=;VEURDt~tUN@`l#JXk(Vn&f7Wg$+`3V<^`k& zEdm)fA)_c5gS?9M1e7Jid$$Go@#DhSjAIl6C71ByAWQu`qH z=Tc8SxJM6Q4-ip*?d$u^cP7&sCx)Zk29q4$mGO2~my!3Tv zntlP~u!$|uFeH3mNn`oukxTU(Yk;fMkK$pT3=~2DLLuQR;XxWZYUC@?Luw5T?`}>% zditY3kD*^4GI2sTNz!pVS9B|3g=E1Tzp{Ya2h#}g#Ly6inwgw$c_Ddo8lIrR1%cc?pi|m!k^&MqcQun5VTF#=&~l% zCVVA&@a^jSeVW4E7D2yiFa>Lwp|PIg<~|y~$c&z9cKM0}n$(3sR#RrKFjHOn%CG*_ zti{=(D|>IA&S&My-5X=GQq>X~q_wkkS0x~sdyu+r=CGCYk)jCb!luh;pbC(rBrtP7aQh3CmO)c=;JSuF{RCayS|8 zsi3)bDh~v{- zxy<5AFmit0wxTZoPB?KrKl7kX-b60uK3*0%y;!*2fI_=IVq)=1Wd#?V*t94%k`pm3 zIWfaMuu%J9g^)0#ifLB#CXr4qQF5{=9=?;5wzL!h^k5`?sn{0zh*6!t=lpVlUMBFX z-gp18-v1=QMeqv;@bA@*9h3e+|8>YYG?CYU`5W0Y$3Sr^-p1%Lq93v=}KEc#9yDV)GjIWfOr3ejD z-mzpP%Jjk68)G3Rvo4sQ1;){FBu~6`i+$g2XWmW88<@o_k9}RB}%IsbNw|g&I-_lo~-6 z0h|)~xnBdk&LDcJ1ZaMVsyTcG#tMn2NRT|plO;#%WC_NK6*>7z`=W$?%oTH)iyR@r zwYQ6V#j>LbG)IFq`mr5)5Q=MbayQt2tIM_m`0n&o-M0T&-GA~G|9XS`|0(d-aSr;d z1q<5-2L39rtJ!?uQVra0*$i;NM?(~y@v1l{@lB}9LzVO^O z`}wGk%l?{uSl2V|tY~uVD4HpkZO!$YdxkDhtxV{&hb7h76hzzr%z+6Xn#|<86ajR) zjU|tPIm1o}*N_>%m8224aoW%iqy3r?;x>~y=X#@xu!m>l1ewBcTnkk-QDUPcF%7Ze zQ_#P4rbCA~^8BiE-+!#L&_D3w1Wfh*Mh_U-|IZzYmILBf(x7zRNzut{QW8==o)G-n zbe#OpghhTyNafit+FRgj;|k7dpd+FSYv5@FYu+=xHr-w%qqbXaGjJgogD)$`9(8w* z#OIGa->H=VS#jMAJL9MG_N$>g?`)nc%}$scT!tWMG)qBFZRMeuC?Gkk2tEPzk8T73 z5I`8lOf7d13)ZZiD!q;pM?Sr{wnZPj;R1aTVX=Yc(AkgJ+MAu&3SLtZ!f85F&L$or zxXaTllxcyzx-7-&*?7i>sO|pr)U)0 zYRqIm7)`{<&()+$d!|T?WlW-aah}OdQm)|^o>PY}rzoh~CkyRX%-eYl?laUtp(L+L zzn40jPf>#itH>ujUc=-dS=Pah|1rZ?E_08x~^ykwqGrk-|rCgD3F@c!@i~NTSm*C#bNX9)xF+1=tf)PR=>hKrAsDqq2%Zux6CS=2O5Qj@BN{${tVhOX&x_d&g z&qgi4Jd6z?Uk=3He}{)Z7cl-a1{=Aaq9Ct@`zP{pmC z3pn*B#D%KHJ_CleW6&B%jxH_A$N;FIuf?B>~4K4ETb zh{!8|(v-uUg}}Sx&4piMveJn+!KpKO#*?tL1i4|~y*fuJ2PA1aq^UK`8Td?~CA8@+ z$A=pw;p9q5V`SAkLdQ06%T|_-lq`B={?0T{n3Cv)^oC117gI>xtH-_#EhrevbNt#u zKUTE3)C~lfN^XxZ&)eUDE&T2oX={g(>aN{?>f{7cb0GN{T4%?_6Wf(?W=_xD4P^}u z|J9jmh*c6d^M0*Yl?ZcI=u^)V@Thn{X(t}H%(v+_O5v_z;clr>+1fn)ds8>aT91@o zKr}YXe`a;r6Exka-|;?lO?17Gtim8U$~*Ip)Uo3l7AmV*Z=FwbC@XAtQG|kE6k-GO znc7c=7gi_y{pSb26KhYYygwCS9aZu)+?8B*T_+Lxznc?mx9`9HCJkEuAI-_X+cEzn zhD^cK#{S=PRx)FyWWFGML0ezBbGxWu-a1mfrulMAemUTSh%-PzzncpyWEIqBt;OC| z{w58=UW=fcKw`YJp?RcqF?t^W%t%o=d?NG zrO>RMK$)umyeNEta{Uo#-Je($v|Ho7EZEiq`)UiV=BuxxWgaCdvVJq1NPQ`MbHYOw z6j&95YH)t2$E!F=C2i-F9E`75S~U0267hq;*&AV@l%GqxP+01u2p71i#c|%|uq&#w z8iPSpUm=isb&(Y`==Kw(&-Qj{@a90$>GZHtU9-32!z!Q6SDLjN2iozBj%-riIp8Nb zp4zOiu1o=fsGQ^+CYiiUC{ql&LJDEvvYz*@t#DKrv-s*ISm+hXP(YGFcpqB2Dp{ki z5W`GufYEEw_#>GLsF~Wu%^Vqe@?`PhGzrN{%7~m5vGR+{Uxm{VQ?2{ICk_4+2kyV| z?f;{`DXZBk7@={qu1UqO1@gxrCFhlxiHZraXpjZ5m=YJv22tc}OSzlT7PR6&6;bVd zy~R#-kihZsgr5AZ|;lfX;P}G zk9@ITBDkhJsxskf$T{~U{cRGprz@?&FGbg4e#%7COIBkjxbsOQ57nuY=NsQ~nMtFw zGxHQAIo4KVxmU<-B-9*szb23+&U?*aLkblIZe?$j9#qimL@`uc$d0*Lh)yJ1ky^*a zP2;xSCCoReC%0$ew$>%p5ZEh(nwKnny&9<#chbodhVZ@l6LiHHGf0ESP1@kX4hAyC zb9z`%yRF0?by}REn8UF$Nzt^j79&${kjc)+FG>AiWnUs7y+M-ck8G?aBV)T{Q|2)( zZPmh@&(qREr?iZ^jG^b39z#pq)=3;wIYvNZ8ZFFdl1Ak+Emd0@=))uSXw(-QD@|gd z!sn8uQGHEeDM;stB!U12$Oq;}7+yAft2%QeSM_~EUJrjmY6#Q&P5|L}t~ec35)ief zymd2J5NIx~>fbP94!U8E(wNaDuoMJ*P6O<+hcj4?7flZg{Qt1_jzOZW*|O*=+qP?! zZQHhO+qP}nwr$&0t8ANV-P-$h-*aD|7u|8H+{+{v8Ir7WQk%P(*NyoJUu{gkm zN<}Yk?0jjgJz$#*f=kgqn1QiW58D&@a+qgD--MZ@s!Q>=gxXgxhpfO$@3O3sxB;{2 zG_YCLJQ6GLsgqw&2v)hMOp^4s@6I~GbutPpZ@^(b;y1!{#qLZ@)3O_pacQettrBjl zMCKhgQOz%g8e{hvnD=Fwh?P37D`G|shUYM!y6tk>3KB)h<7WD5{0v)t>Q+mpjPe^- zEd$d|j0Etu+7V5E(bquwTwXDoAP}^63xuf?F44H$MzjPo@EAC|RTwl?Kg8@HWNygS zPCLB4o#0?>tS}&_fj}DIdQ3P-aZy~jJ^dL#N`?OO!jwoyZ>M=;uGSx#vS12IvYUF2 zIKhxn20XoY-PwDuXf$0naTR8TW=kN`pv>H?ab%ds1op!as z(6e)0Qw{L&vAw}|R(DShIlU0?k4^p%pUdD0N~f!KEoiFFhH{54GQuFX zwRSOVY(pW!|xd-`1EVNBZ@irnKeB78t?)2nw;W0DEuiC&U*{>yNU9R0yBIwfQ@69 z$b42-2L8_lwuw6)!!`{k5a3Kt93e6QgVcp)+x*trdupgm)1B~hjLKw{I0-d&X6e7cIbSr}>g zH(%0Hp`DZjS!;47>EqYS+m5q2+@7m{K0nT3{DiB_$96q=sLIrq>`-~l*g_u;+WJl+ zxg5;_8B$(Ng$v6n_82TMOYDS)l~E=U7nDaG2Qq-y(=-$F(zZogf}{rTE;qZUTdrEw zHjAZN=9|+xN4!FPN5x6D>;NH_MOJT;)=?W-E*qA&w=O;S+pQUE(Ku}QFl;xU1vlX) zjzJ&Nh4bHdRO9W&%(zT8t1cO86?+zatTgq5E$8vpd+T$sYUo>kB17jBOF3WOdH`E; zZxbrbq+#`?(?9_RNHb-}j1J_;hJDf%Xp|w4AwgL?XXf9y;Xs&*kYkAnvr*t|#xTWz zoq3{bbGhOyPaLd05*m6LKeuy*n6G5%%uy2CiQEw}H?0jrk*$LN#| z^msE*QFEcz57Qt!8rwz=z;XU6K1$8xR5dVXkLAiXsExvV@d_f1L;XpifA)v9B1ke< zvumq_CGXsS1Lz}De|8?R_T>lBNm=2vq^QU>{ z=R{n`z*w$cuqB!5r%uYC#<2+FgnaZT_C#4y->h`+7a1s2sDVE|jN+Zggrk5Q&wXz< z-Z~$?_Y_m#aiFNDsm^S zPSJ`k87mpY)e52;Hj=cGVa z;=qn9Osvo260xa?DF601n-tdvAgTJTfQo|syN{Uvf50+)%iu!BhUV7#R{!!97yp+m zP}sbqQT^g=v784E`2?toX8{EX+VJ7$H)6sp|8r4z?s2rc&?gkZN=*`ULs zCHrhz`}v69Sa!75Ct$jmMu3FWm{w@JVHIi79Vbtp(-R$$?!>_qN>5jAB$eFsMy2`s zw>I!6pAk9!n`Qccs^I^s3H?vFVi9wz|Hc)6tKZ+o$KNSQs0MA#a>JJ0{O10UVc^u+ z`V~AV&Lue5-kTw60R-jas892`d%b;VY4aG~FQV)@+e47n&gc(z&zIw^zkE&-KEKml zvHXmaoKMr@O<4S^V%QIh#xLgRY7GG*IYQ*cc69(Hq3;r|HVUTlj89z94Nz=X4bUq$ zYMz?B=juK=Y}t^-Rk#y5Ik#GmcpyiHa&YLXl(~D=cd2cz)j<|H*>1P;=IYuuQCpDY zhPa!&^xydR!mrele{B*DDz$XX!nybF*)-l()!U{QkQt+Qu2}B448gi?oZsUj51K6^ z#tNu?2}a75Uv80W4e#;u)$L_$JGGmA1c|*6O0+Zhix5UT(-vt=KGQuRY{)80kp+bF zNPxl(S}mALiocd+o#EO)dB~4fLfG`IA6J8y@%q?mQ0psZBdM8`C7ok+8%%JE2YGoj z9tQGgfOPi9&1n5lAOs7O`2$Iy3pB0KL>(>;kM1@9G0yfU?Lj$qkSW zp8HON4Zge2S~COgIVxsxWWFaFd(Xb?1SezN%w+fcxUkOT?AHysLm7;_wHRpKCLKIX z2Y@WxHpCV_LXUM`&K(&%1lVR@ys7XxNPv|`@OW6BlvsH5$^B3CQxmlk zM#=~RoB~47vtl}NY4c&Il_cUNXKxp68rRmgngnbCJjb$ zYTu}}pGEh&`Q2H(BfAj$qhi=c_e~h@H53GIq9{EQPwS*PC+9g*WAg}^{U}<>uBLX; zMsT|xqS0Qifn8AwBPI5X6!+C)yVmzNWH;Bee?gk-^C83HZ@zWv-+Ca0{s(`Pj!IBUP2Zfw)R{ z_XCK5_ZUV#!67Ln>8^4E9L$^t2fs9zr#s4!Z>#^U4S z>HBwYE_k<=yGsxFoWk-cJe0EKh&n8yMBfcX-M7pQ`Mn5 zmda<`*@H2lsX>44m!mr^z1Hh6UwJq!8X%l@iHBGR-*7lDw`@kBQ>3&-G+C^7X`YbV zumKm)H?euYg#wBYSFG==mmf$KLvUQ^->xC^Tg!+t4inXsgiIN3&B?Tt5o;q+^aC=| z+;>rrpk1H3%lf|DvB`2~n9pgabH`VzE$`QDiC`D%c}GRbGX z?~mJ{9E&wamQv%Y;^g2%17Qr#D|o3jGD|py>Zip}0Oog5(cb!=NM{C2yUFoGWgs^Z z7U&^mpsW0vznVOK=TT%FI|8HuNo130lch)-fZ*sV+a;DEa|3YlfG9;*+4`9YJqc+; z1_h)gZ6_IY*MMJ3=7v&=(nUIkkyYYOmf!?Z3ngo-R~yjimZ<;G`|aQ{XA$oCq0ciA z;Bh%)<{==YwrV{z9mO|=1QQe1)sJln|Fw{}OWj31#tFHD!d^zB;NpLPEx5a5(=D0w zP>vsE67u|q)eRc!H;|92JYg$2g@Bo2J@r8=&a%TL!nF7fHZ?K0)#5=2d#I z2Z(a=Ca$EWDe-zph@z$t9+YT3aDIVmbiVhY_Go@B#KJR&44M7nB2gqsC#Ww>|4qTfaq)tHDL?;lEc14J6nuTI8ID~3JjCmIZqdu_E9?MR-XxODZB)CpkZ9z9+&F?i2 zoA)v^@gQ(_bK5clx`G{k4y)5l6d3~#XalC<7mn0jLWLkaAE$~NvC3<*u0Z>PSMNGG zjkzz>GJs5jg-)=2j+wY_MpmhJ=(~yN8+C)y;|D>b(ec`aLrDpjCa)Y5rt%ydfer0; zs18h8N7DnYxXgPLzNkkh@)#+n0`Z9INO&wh%bNddeJyf*1DXFxX!f{$OH-)W~EfW0Xb{9l$feWE!R^~lX8B`XcB?yob zIkECA(anuzM6FMcM#jq(R4QP_RJdaW`k`i>pR;9VxrXFDeH>om8ff)Mskgv1iV?MPwnp~ojOe4Rba&L%mpAs1t7hdhd)}XZ zaJNJ}{jzO-xo1v+r?!Vjt{h)`sKwcs$I!)YKba$h9;uioZ77z=FN;&o3e0Te_qU6{pN}J35qONRs2?X!58^-a19x!dRq80*{oBl2FuT~Fz#`A@dz&vwSd%wRr&0ZjOD8+dpod`)mf z2!Q?q|A1^_L52jQg>(q;>kmMhB^$YFN&ck;7EFSo@-S!1W=~7aN|nmCrIiJ!cr*OZ$qES=96*I2+b@f)n96EOK6yfY>h5fC3O;Wto} zcXRCMm%B$`^-QutaZu@$9YZEa=gNFd?3T}sXT`> zO6ZCyJ_2R%FUC(LVa87<(&?mTb%()AXrnoGpA13Aqm%W8EF$ScN5!&jP1yJ4;bwZyNNvxwDX@_4V4L6Pf z(Fr8G#iZ#rs1ei+l&7WBOBB4DMwVh3k}w;D-knT1pw1F_DJ7CDJ~|m;{PMKJT}xNR z)r6-kwA#nTS2`O6ShTZwl&2E3+9Y4gJX(UQVvf~tokmGAt8aFl%pE(Sn^p5LJeN%( ztnYS}%pK#QoK^GFJX)5~HuR?|fi{e0rTm@H9ov$w=uV}0tYO7lN2AgPd_s*d8`g7Z z&>fq3w3v@1fjw4ps$GxDyw^p51WluP-9B5^U#}UtXTJ_kB5$4^vUOh=D_`EyCqKTX zR)Bnt@A(6J_{D7DT3bMgf(qX4ikd0rP|R$gRG33KIR>)lDb%5zTU3@qHBS&4QiC)u zI1KrBe8=B6m@C2Go>Dsu;@3c8)m>)4kN%w)Tlb&{%?t^LLF*hhp`Yjm^} zCC3_DTEJdSOygbOQ>Yq2iB0L?9cidOboEP__%vBc1~}?^w>2^k zlQ2-HQdz=*DQFiQy9VMUi?LCRz&VE)K!JORpK%0~l5Qa)j|gV>hg`>$=p72M69j~0 z0$qJ8#&Mr5Ke_8$;D2fGd{#gC<7^&HkZ=vM9w$SiC~0qFoPv`QS=8RckPPa^$BB_e zyD<_tT2sw+1<$J@+MlwR;RP;WM%`g!@rj?oqs-uNu^J4!7v$sgC;pHV6;m`xjPmo& zFa+=4#J-LK5y*~mvxh_^534b4wt=uYNdY00l6AhDn^Z`wm279EURp=&`tG2jsJdIqwD7sdvkv1p&%F4YoEn5g#W_{GKPJEt8HS zK@t`&UMf|JI}9Dnh&w8*Yv3~c+a<{xT?|8qf!Xx&sj0puKLsZ506u+^_-P3AK`h|tOBOv_3%-p#28%N#4mp& zNx;fV*(-4a0uBgCV7jAn3f?Xc{n?VWxH6vZuTdl08Xu@DjjEri#y*sNTXEu|`-wU- zG7Re+WRPD?^JXov(ixYAYb{+H(cEtOpc#+}w0%`i@Oiur6^OxcbvQqc;(a00Z8>zu zMv3g)xi3!02qw>ntc@K#F!LdYgVzcu$ef2DPty_7miE5$BbKv1U8&}EZ5_8(FGL?2Z>RRkBl3^IMfWZ3% zibHp%?=dvAYM(34{+b^?IxkuFsl*-;&V#+Dx?UuDmPv|JWJ~|^(Hbc|Arwy!VM1-_Qgqmj)Kd9`(LrZ`&V*mmOGB8w8yUfnwmu2 zAh}8WuGg{G{Q^YMO5uDn`Jiqh#Qm+_;-w-qyC|%8e{o)9hD1aG7N^$MTG-H6oUk^f zgp;9C!Y4rXsQNMtBSaHuOAO|{nd*MAB=L4LnJNe;mk>i?fTIhR?b~BQh#djW&Ni}R z2H>1=GMTE(N5bwQH!CBqojg482ScRVeda_T0jr88d0->$KS|4yyoI?~k5Gv|;#I4u zXRD+#bpsHuoTI4-7|r6uKbhF$4?-jh8pS)PJc{06a1uUzCgVAViTK$HSrGMa+3KS} zI1KaoqO2>-!Z6zH=pqixEDeNZ=P9e|l3GqUl+w>r`d5xNc8bbvqYzuuMn|u5@?>~$;pTW zZC)H(^N2$8DG!rX9JJF$rhquvVS!%R*U=;HToYjP3mWO=z`y_E84M5!ZXXLV@(=#B z=0X?sw7vOG{IRzAP9z>&aODap`@A*WRUPiZ8Brym%##DjPr&uSox>%bGY|jNdWFIG zE0wdcUWmpJQV1fq5g4AGyz^apl48L`gq3J*(Dkm6L&iZ2l42|#;bDHYEW+70CS>9} zS}gwLY6_qAEG74m%1|Zo8Xdyqy42t%d%SF5L9Po{HiAY5Po6rSGwCQ`)>g*q3b$k0 z_d2BCT}oO@>&hX>E0h6&iG8m$Jw%)s?mO*t#x(Ed$OPvt5h%K37N!$cf{0HX?sD!C z0o-R_rVdCF=OLQUBLjDI%2@(qOC)MK;^*$RWERG^6x=!oT}M?3e3Fvqu`q(%0oFuB z$j&ZP70c-R$7XlDy0D^@t0v-A0;U#E;ZDuk;Ty106VQCRyOV-x!v7x4;P zm2%F2CD`U_(cU1I>3IIBu)mmT^?t1NP-C=j_Rzs$q9FzOGxXC-Ky4fO1+t4^htvH&cbe~NqIF7t;i}0P|VtphL zCR$lGgNz=TdS;7)4jEa-!Qx6>sHrXlHPmh15zs?-sVO<3e-XS+=8BBq8YL&=362n? zfzi!$wBw~~T|W~=s_j_mAdor@4-unp;hMs+rTBg_JDat(qJLvGSG%{AitIu)=VW*$lzmDzW zzG65&I7S`cQ}|o?d*3)(&_=f;zYx;)1mUf>eFmil^<~_n#j*R%N4Fck$Gv^ zn5(MX0L-Nuv!t*`UI)|az;+^t(%j^DPwUtcF#uQn zaJ$AYd!hxfO$Xh<67P6Q4r0^%c@1fJh73MIC~px|4h%^|;)m0Leqn0X2D5?jn#?eh zWP~?WA&t@BE@ov>>3m@T>5sek&3d-wIy0)%I zuR|Z+xRH`7kdi9GmMoHGi5ns}8m}nBHa1$B7(YVcnom8m4Y$;+Jqxz3;|_PWQMIJ| zM4W}KP0H59oy4omE2{XQC%zCyyA4H>(tbOPV-;ZyE3EF4lN&{3D#g?$FfQHm%&ErD zsKm)76-E-08i|$3N-)TZ*VAMj>%xu=FqAu$>bBx7+6x0HQXv_3>y7WE=hyNpEyjkh4ZlaXR}r*b5WOA0mzAimPd^G}vk)tF33!Z_h)^i{#CLsDt@XuLyk z_6(Bbh*ai5flm>G${^$|MqDiVnURNNEQVXj4;kVLVUt90fY>8+4_Kj%0l?0Faexlw z9p~@?1#+x3#Hm`z$+q%)6Jso`lk;<1(xP^dhxx#2d( zVHy)DSML=7r9J%laZ%52<{gUD@?EJo&k!zaf@wmcb{tQJs4#js+~LzsQ^6{gfqxfL z0Hzkfn8T)(h~<>j&NFDJ>Eu971BuUS3!Sn2*DjSYoQz{66EDp|JH+p|?y>qSbN>-~ zx1@K1T0vgabFnlHpqr{HCD2wgxDL>|wfs(EnO0I6*E7X{CFG0v^6kiBAhlyF-dVt< z5qekmPp9nQTI+cTgA>gOL+0u^dwIZHl23|2pZ?=F%BcKQ`b?k5#xsn$5pJvUL!B{%JI#g1q+0>JyVRNp>SCGM ziSB@=SZ*J=WvU%)HWvo0n?@Wr?r+2dO&g44AvD-Leamnc*TzS|xZ#D%IRdg=2`2YS zM+jA1e$BzSC^Dm{9&9-(r6?uRWtXCXG$lMQOZLm8>|-n35U1=I_ZB*b7Nn5PR!J7@ zYSl-CWk*C+CmD2rR8%kW2(u1{41|VO6pcgjJnWOBzVn}P) zBwd$ed&ZnQ6Jz%w0>}J>wV^0R!GMt?o>GG|^lUX%`m*UvJ}C;bA1xjuYv=1O33^#o zIf|kOjv>miyF4m(wPjLkH6XiAujqXipmw-GZE*lv13y;i{Fl6aZENU0~6D4=M1c0md`fjRFq?O#+89dHZsyg3_{?^kGJ;qw2*O zMl5EB1Y#wy@cKZgwkS|to5MW$oiUY5(Mq^uCm67ZM`JFL45Tfo#2^>h*7vS*1|EH? zlEXg63uQ1jsLfBYXNS0Efxy)p(IB0WxN|uJW|c}+PlL}qa!$ZkP)cf>5=q$g58aR5 z9=`X@1*WOTpWqCL2>_%HGq7fyXi`x! zw>Dd%5pHY&$!w-^GDlF6MpiYW-zsxHkg=wGHrup|b-}=0YB|ui2J>j1yu*C4HD4t| zxz+S&8NmCy!+5$5ZS zuYR!qAN|EwtSQ;Ho`>>=6JPg$F%A5l3#2R%Sp#AJH`dSXnsA;5$z;-Uv9eGU7Jb^O zEdgAuCNQ7kfk;n>(GFkM=ffJ;KRfuNsKdVAEk9igJ)IR}&uPTVoluh3BbR>Ipw!z1;v6k3F0On=GIlCXaHF7Gs)7!xuSZuP|c%vo$ zowHZsm)%LeU~RS)&uxYBjVM7&n(K(MQv95Dwk?8jAAFV-K+NHG%Ikvz(}RRddF13X zyr9w-#(Z!Dniqz0AN0yteC^NNGjq8^TvzC*=Cg$&A3PS#rgbu&F<%G5TUFgdzi*L1 zuB}G$P`_8ezqU4PdBaY9V5hyT(^L~5JFYp~i% zU2nUQ+2zsXbJ3^lEwl&Hio-l?k%e+FBgRk7OPD-m8(Yqj=krYF_sQn>3FQ9`6!^(P zYI&0<QLovr& zxnCA*7>iCYXB{zG+kuOZOjNr)BCJ_i)Y(8OV^ltx7h_uA#W`eashyB9XQ4iX#Fna= znwCLy%-e>xaY2bIdLl@NE7}$ss%`P=jv=x{M=_X&=`v|oiD{F#XKc}?9m2VE>wuw? zAENp!N9aI3NS5Nx1nmvY@W_?Ij`#MiCba}bCrm38&I60`?l!gXQ?G_6zCJC8#f@0&!7g8@LJ>w(#2V) z?Mn6+i<$0?I8Ww}ogr>qwCfc2X5~YjX1qiShuWRkfQT*2XQEcZmyNH_FfG%!s;4Sw zL;uy-H9*;ellq~0zVE%Kyl4kc!%;pkn!g-Y`rgQvRd=bnaWkJlM6 z=$QrWSp8NizqtI8Zu)J6N%xI<7pD(~Y9%_5!oa)m;-YwUug}tPH~x>NKG8*i6Ov+w zJ6$pLpn^hId@A|-nC*iL)FgH132b@GbSeL5-}otdSbXo19-*R-Kg`z;uAHIJPOtEl zcNMos>#+q|QGXwhlC#w|^o$ESrd1QMA53i&Gn4AX4kmHtlW#d!?eybtG#ioBM-zeG z6JadLl)Z;|t=FRS6Ll#ml)T4ytyiYuNk1QAvp?1yl72nJYJbqzYq|6MY4hfF zm`JuXRXW_cgJ0lUX%&;**R1sc>v*iiFSxOP6PrRH5lOegDH2hS$yNiL+!&qF*fL<) zon)-`wNEx`yk(ymJx$+Qq?7m^asecvHGXG1o$(0``EkGnU3t)0`0!5tkTu)0S2LO9)v;TC|c zm9*thPmg)(WHb^ATCEu_op3;{X!ABy<+dE%J*+qHw)Ej16s$TVp+b~4!{2|i)AHqp zD*UKFet0tef3k1<#Y!vL$~oBD89O++tLR%f8!I{J+c=uoI#?S!{9{>%il*K7fXHta z@kaBG;y4F$%9hFMCUR?FTE59@YBV5eK8=VYLaT2aFloYS!%~a_AdKz4JC87rKzpF( zEH^1e8wO;{aR7bO^}buk2rJ7&_L?h=x!`0zI-fqpZu;lX2kl93_UHX=DCZBBU29$o zgy%w7&-I4cSQ;UTaMUM5Uf8-tNh|iT!p%@zUJ3iLSRL%=J!4#NAF4hbyqLN#GR>I! zBR344eh6L}0fSN>+y*#$+z2=zu6-V2FFAMUd$wW0gWZ)VHn93hx&s1ol5q$UVyy9^ z{8GW8@JbJ^CF7w@HgNJqG4c{-#N-6XP`=eXCgNbG@E_YL;%o!2%WXDk5=@2hCfDF# zH>k?0)z;W4Oj9GQ&knavnDh%O^Tp@HDVM5KxaGQyPgo5_PZA{)J&r=L$#RR>EgbHf zwPGG43e8Ssfim19{#l*f2`Ta(QsT03=q3vE@T^)WXD@-Ib=2s?MiAqkEt94aHRLgS^mx@x0bVTM8 zz@iG2I7LS4;-yf=8BlyB40-YEa%y-5W%PWpMkC1>EGo#mg(9vZGD66d`a_WPI)g60 zCN2-E6tXBGOEh^l6tor86jT!g7+iFPBB-oP9LnK&C4(T&`!;4p5_hgx7>X(`l~l8p z$1?g*iWGX(8fyhmbaDH46+e*70VwMd7D)R9MEWScXTCt6keA*V`QIq09OP4+w(Ev` zgqOw@=jnt=(i=q5=0R}<0c8x+1k<*PEW{(~p*!=^YEd~6s0llZ*@kNHDLSl-oFwU! z)5^~Go9O9D)WcI!P+=z{2AAXIo6`&&*xcH_^q8=>7b$+*9s@`1GPh(Q+;X_wvr+D1 z&pfyZ_GPx=?^0_O&C}^pJE(bznSK#!gpjRs%}bDh97`FBMU&Ha=q~n_sV`*mMut$C zP8E1oNk;~?syUq>ms`V57LFLkf|60uYe>tRy7Nd_yJiV)`leA}qoTS(hvo$etk11A zE4%n4c(FXWn9j-F&y#R6lS>EII*16a3!RrTJI-EjCs<(|gFCa5pBpUxUJp^%z&!E& z(Unm!S{-zyvi9Z>TgZ&_Jzg9ssNQe2TQ{yB#=!+A!#GA+tPp`)cz5!cH$`}~QCbat zL)R90$1|BGBY3rypKp5BWOOcUyVV3Cq4(A0oE)h@?n%X2ETuty-}+M@vs68@nH_Qc zld3)!USe{qo*MqVSX^E54`H?Ph4)GEI%^Y$Em=}bA zA>vno|Gf&F_eYHZi8V=UeV#2MihnSY+7g$4A25ZjemzuSS?f0K&lgR}3dxMpxb5H9=`y*@C7j>b`LE3 zwYVz%jycLLwa-&>OKG#`x;28=X87~NyP*w9*$sA9@k)g-3XNECdRuDC)BXC3%N3e4Y|{d5Jm(M@zIdKgrtJPV^ ziDfy+Y1T)e)}zI`r_c4NehunmzBb~B5I~J-hYr$Qy1+kc(<1iVkadlUbie-Hh@xpQ zN-;sd14E(zT_gIB3CRDHNdMW2r1kB-&4jiN`cAh0XhYcv+LBoO$RWSfSGBcUpDLSI zHdJgs#rmj&Q6-4;UE?(lXKKp$uz9&&}K$2 z*=M^PO?>~ny+QR^R)M4qFqL&t3j2IedBbheamAo(^P=%Dk(jL!3i@JR&^o&7q zaCJL=nnSmKOLVg=Q~)#ER8A+=9C-tsX(&-lO62w-RxAkWG9`!k689X%U$Be;Q4V#! zvlb!yh7qe!!y!+^sNhVo*_w(zphNH{&h^3lv+&rru5hJXjDaG{W-MlZy$`4HV^l1dn;1OSv_VV-wM$Q* z3VG|7PPrHC32C#qLeJq+abyL;GG$o}j#9sedog9<{$<=HrIe*T{|Xy z3gk#7B{wgfePUy(;{aFB(*CZvP3j%f3#IShIXup}waC-o4n)}R;jjP7;rUkwBGrEq z*#Cks-=~F`<$t4|tV& z7##O*u`fa8*sEfE*iXOTWfccTl!Uu|`lchcJB_9$C$qmQEq~zEA>>Dp*yaek#h?-B zgt(#XGY=ldEG=9yC?!lAhUm>^frq50EbUv)-+*r(;|PywO&V$8I8uJK0|TulvI}j{j6s6 znNb{eX63%j3ZG(Ty%B&`E(Z&KAlXigijmT1yc2$Z-@mW6mMyB`xsXcNI=}X}<90+e zU>||p83LD&yhE)dz@%TPlUe4f0t;E+6sEJ&C7It|E{~2T6a2Lk+o8JAMJB@mn^YF{L z*|nG6K73+U^Bqs{Yd=i!+*@fB`-sww;c(W_-;1xS)J;fUs9kU9^Y8KJ1wqK2?(buP z`ETQynEunTP%w6MwsKN5b`t-dd;YJ#NV3YNB9bchZ&(N`aDIG3LbB+v3}8APK9DLj zWaRcR5rid;R3n(mahokGc#qcR)m9$o$L^HSg#w9KXkZo)3jywFYc)E^6*=^qMSZpBR zzsi{YNI{8#i$TVHt_6wX**x$Z4MN`-?`+)_VzPR-T?l62jVtl{p9`+Y?!I`<0Uv&@ z^}}889KM}X>2}cS$@F#kxdL}h;uGIzkdku%b&klTXQ>V?n$xEmve6Y-l&7VkATcUX z<(n{6Bt%L}79^}5InlU?PaG|JXf4bl$2`)z5kIjA4%4g0KOI18@2!r6Nzu8lwlpOqj#ous1WjhHH2SS=p0kl8$;Xny zKe~k%WWrY0wKNq{GE)%APL@zf+xp%i{>8Fp8-MUIX*%rGGe*MlQkSWA&Bjea@5DXYV3LIHOIR$nEc@p@DiB*tY9>M=VCrsDpD$xIRGV87BULe??1XuPx6?&1 z+%*&I&8R94XHf)hCa_Z#SIf9RrA3OqZgQ%-YMrIoPZAq$5>_qISt*E2ozB)2L zNumk;6GEeW{9-ZA3A+h?n%RcYdLi}+dQI5X=@rH|lVG%~pf}_1a13~b%z}6!^rf;% zema2mMxvXVwR|TJaYcrOpbJpyGn9-xgs1yAHA(P=h#V!CdYce{ivpq#lG)PGU3zwB zOv`CvA3%3XMkrChSr%qxU8xk4!x+}S+00uSqm0`xnm@v3*?9x77-{~SCx2sIN8i&G)Hp{8d_ctYi<-@Qdp=8(SJPvdbNC!^sEaeQieZ z;G31g5=kPs%fg8`)(Y5f4JyH?4N@gJPd`7I1=kgPZ^38-M%a9W?KN3S7*hBvHgI$zANuZ` zrqaodYixuExf@-9H>ElQgn@==U4BnCf*2GA*L5|Yj)S`T>rn*E)u6N(&{+ax?}?%7vGJEz#se8=d>{nQ@@jy8PaSt<*_} zJgiD@dVUa$KvzzbFUtjES5GZWcsJ?In5+vVycEpVb^kivw7ugNF$6GvIsxu7m*csn z5DJWh*R>@Zf^Y~TA1Y5c`l>N<|FGW>h{liso@h^!jr@^|fTYF!7I=@o^dvJY=SJ)9lX38=I*A)(wKeX-@7LH< z@8Ser(=%)JZ}Igfw3!3EK$j%5%X$GnEIO;dONtOW9)Jto>vkztk**2jIIDH4-RSVb zWB#_*d-Hw1PxO-|)}Qw>;sz0|%0R)v~xAA0IODQ^#C&#p<`1H>Hw`d2{#LwhC~ye`9d@L z_Yni9w!Tw@ij=xQvnHxc&9bhc9LVm)PXUV6m7$kyewvDqHcPJAal~BDcmDIiXUOg z0JQaqdk7YVIyQ8)XR>nE8nTQ!Ivd$5(t1dp5ja+e)mD)5E;#fqK-!lnfkLf=qzY^r z;`PI#kEqKzgkJ}i79)Tfk(MHvlG9{^#)aJh5QV+(ynnd`O=l-)mA+x{Z@B+ozzoxW z12a}=kmSYGb2m)dWlO?kt$Db7N)^bvd_&vnQU-@>@vD(Tc;)Ym8&FEze?eY?k#Uu1 zKcLWTj9&NIob>Eo)!sip)`mX7mARgd)q{+yg4AH{xQ3uY&Zx_aKc?iwS7Oiua2%=7 zaa)Q}KZf%ttwLQ<2%cKT+c@@B-W?%8YiJ!qUMp7yuE}yv0%F8B*K{UAxh^7^7z6$1 z-8WFQ&}1sOwoA-n;jnTwpc!WzvUAZn^~^}G6n#d%!3-_;X->pc^NNk&H<$_i3(Ukv z!Ak!hFcX_2rhRq(7ns?}vGaDs-Zzd?b;BVNq8`EOf|(DygO#p0_Ti?R`b8C>{{?Gp zl2lOiXn&%+IKaSk{Qy6xU;^S=;K+lFpm2N4rnLHY`i5r4w1&3U*0wf|v}x$o-J*IXl(m+tmZWCW@}d+sE%G2oPJM=ug*?J)dPH+z}UUEvYTF zFX~^&`-pN>L1>80CN?3Ec%?xCU#s82*5lM;mJMLu!6&<7^&uQ9@sJ0t*skowPaB~K z(5vjscoJqrkS<;ACB6GZB$~Tho}NeEu$+Xz9~}PHMN&6kKFFk()G?*@vj&&yf?!n> zo!#bh+SV|1mMwzlndk4jgbqksF!=Y2hWNLcIsY*mNyykl{~I-ar`tK$I@%cb&AgbM;*J4DU4Yiia^VZj!1&MOS8K-So!R_rrzMxBKIX z+OM(-U=;PkyDufw zYTaZdR=_RlC)bD@*U=qGtSPpP=_(84=4?vC+tl%dh`u-DEWxvzv+5SwqOkgs#TkrX z?L>%s9q}r$V0lId{Um?fc?f}}i3o}%vp_wJl00QGHA4C0Npb>dhO^)?-GV!BYSz!> zIT@rxK2Yo8j`FfI=6Z>j$g6~Q)TAzRG7a+B6v9p;dQbw;bdaL$`0ZR&4T>8Mxw`br`Q&)iOJw2N0=K zqMgMqJw*F6GOj6XQX`&+^AkvvsG*MBo`(3g5evA>-=Waw=gDijVJ{X;$E&lS2`*(+ zE0`3>5?!4bh_PYCq$*V#&f5tvBs0{XvRic?A?_n_l@S|2YVa*K7+I{RpVPo_+D9Xu_1s!@x=O`Y`4YVZf6LjQTpxtYCn(&oNmL^h* z(`xcD=FZC8v!ByYZm{v9@_s=$uy-JX@NfpY4UG~>j-&y zRC;KwAea0ob}8IxC;*sFu#10Oui3LWW=1{iQ)$?>*b%02LP`ftsz~w7GapPc;hMNJ zly)t$r%E(E7oK@Hsl}Zl&F+cssVOwBa<GR3OJJhNNZK>76UF$|x~yC9nX{Fbp1ru|eDmV=vGt8NA&>)g%+G zvYv6J=F&OZ-Fag1uYTJ5KjXy}38mn^M-#*KlPK2iiud@te!%yr-u@9o)6r_;^KRP7 zbH@C7g(gbtCrJ>pHuMT()4M`Uc_6+5d2c2`l71oIklrI2bI6*i*S@8md; z&3Wn#xowX9xc=1}s~)9(OgXeqQ$HpzyfSVZW6)_^A0EF$d`1WBL#Yg-W3KhnGE)_O z=a%!9ixB%Ib{T@TjE`kl6B#a&%*c2j90=FzSNy(!8S^%2OesHE6EB(zbHM?6tpzDNT>X-z@-4|5xiu zR@Jt{T1NR@)4U=vA+aWdZ9t+2&>#O~SWG@dAcHe1gHPImM1^P(3cRwQqC-?YbWOqE zbo3pdLw)6Fj+^e^b(lZJ#3Bg#Q`V@&_9z=8%^Yt7Y-5Iw%Za1-WJkMpr6FMhPG>vU zvG*bSCdbj`tMrdg2juP#AIgJpa74EpUYfBs^nSrM_>ys`&$|L><^XuqR~LWY2(OCq zSMl$l&;qZYLBbdw;F1VVoGG;9WTA55d1z4BBVl)QOgP>k{E7gY<}VPwXOig| zMihJjr3}fwFf?CU*CJ z=?h!>U#z`jaAx1OFWl*L)KSM)$F`p&9ox2TKXJ#lZQHhO+qQl4-)Enydr#GS_lNsd z&01A!eOX`Tnrn>lQ(AI`ZFZwwimnr5j%EDRvgFSyMGe75BadLQW07LadZyJ*3gSbq zRUv=%uW?|`zXQ62OwaI>xo9Lk#~Fr zYV(kU=B0pxC~w%6^nkU#464NX7&UIAgcFqUDvv4;^Ebpca}ozi*=g#~AJ}p>KX~+x zHvjVZ>zH!~*-9&Tw#l$c+R0iGrCf$)_en7Gs_q$U$b|R#BxE7xdVp2#!eUrcJb`%@ zZ~feexo+@rzN+xi-d=>!Pra>1*c_hU`ITSj^LT{?rVl8YJJ@7W;C^JnRi>n&ZN+oCncmeh-c8qBxrM!RD2HnxFF z(^8p&xf$5(BJ!5en#g|g4|kWh^SmLjP^p*7;3-JTTOyY*mux6tF~nLXko3DHyVhk& z&@|7Z3COrLS0t1tR8*7n06dI|k0M7PaH4?mvk=LB;u)T;CLZ5jkCOA234WOT5ReO7 z2Uq7E9ArA}!q?8#mZ|W!g(1fzk072InxYjRZXw(Cn<0>yapp}XiYo*gks6#4+|DJ~ zgACj~FXW1N1XROLS(C+2{8Iay3+8U(G6Yo0BF5%~r{2rCo`ydntOMn_OS+98G}*W9 zKF_*hI}@@Qxks1EcgqVqo%v!@ad=K2GMqKTxY6_y9U>Wwd&9S8D?q8_Y?ArMX!06U z*noB$0q8**M6R((5?XAc?BIZKIT^l1SV(xb${^Yf(~i^OQ<(SMtQ^AHQI9-)9T$SA z$e{_BcAV{_IQ_DZS7fU8iQRJ-SW)VZF5wex7p+TK!klD?k({{Z;zUbgd+iMZ5%r{q z7Q{E49Je2uL4XrPj7NrtAEs0e66*pcH0?fD48O~x@DP(D-J`H7{rD@0&#?slY8wIU zAy(y%4J}#&Xdp5W#cZ#My*CLfp1`>hhX+ZIdJ8+&LfkxeHs%NEr(-7E{k5NLy;riy zI{I)6zu_o>6FA)jS^ef%L{jheXl&cFH~8cOdX81E$RxNkZIfvJkdBE0p?3`tiiwo$ zGu*Xd6Lq^w-U@j)?m4)gh#}K-{?#6Q(VUTiV$m6|HW0CS>%Y;Qkxtq4iMroUV^ts4 zF-hPd@p^qcR&uvv3^{J_eff{kJ<{2Pk<#q5f)j>Yioe5O;5Thq0uRYgiVv{XD`hh; zuiVvVPLu)Gyb&HU?+?+oPk(avP~)rg$|a-rCgWns^xqp0)q!U~=14t=0>Nq=v|x;* zi;(EL4Aoa*xkL0&N6H>vGs$#pb zV4bMtY7)8q?FPx=CNM-Nh7cyV$`Q`^8zBL}o3JLZB#kqIu=gwY9Fl>Lb8-qwROA-l zr@F#&Q{E23aBO5~Gz~*P4)^_&L_vt_wJa6!a@I6Mq?bCS8F5|6BxQt5is4?n--%{l zk<2`wBmLQz^iP`jWJJt2eWI=(J7?quOQL`Ysb>naC1~R%Skedxn+U6w;!HXYz0dBy zVTUHCgGu(P32TpPUTz7__z)GmF%^~8hiAX5UA&j5o?L}H2eUQ}Z8Q|V^fy?$9tK)- z# zAE~QBc)6Hif8pG5%k{Cjn+Eu}0OkBPh9vKi6e^j|hQvC$jf&Fv zlC>1Ky0>x8z2-em(Xrp(=t0(>Zn)%gS@cv9(%ROv8u)XKJo)l^+wG|X+Y?{fBEGks z;zItKALa3t4mP!IiR3U0t=DdYCJ+IyKr9(vXD*QODhnGoCX;i|tPtBt^cr5go+kz? zvgoNAejljNZ-wGUbWD%Ja~*wbiz5AG^P44pTl7ug0zf>>6I)lfe`U`O$juS{xkUBo zx!q6O4pgG?A`W)TpKRTG)*jtvX9v&*qUC{f%3kM$Br3cq^iZhtyPT;TXM=k7n&%4``SFN-aM`+F#^c&0tRX`8HKKqX-|E?HFKI4Y9i1ly! zTvo280g;NSMFG)k=fPfAhy0ANp-U=R`b9w^hd@@(7A9PEpSb?8(iS~( z`AC2An(A$`G0h&@jJtGO$0d;@1coA@YX7CF>mXauNeltQS*j1FQpBiY|?;e zGh|Z_fX8u1h!qS&)Cw9CduY}1ELs&Op^U+u;zI`oOZk0#6FF#S~cx zsQTc35@K>{M;ITG;t{Z{pY$TPKF8S-LA^wgUxqF=)N+Y<1t%xL(+@eumWF629P|M+ zglalIf4T4Lgbb4ZN$GP^b1bhpW{Kie=X#!5M1aT`d#%s|nHt7N-^pp9Q~&Y(Z%PD| zw_G8YZTi@-qXp&MfJTUrTmh0pX)u)($$hp}3^5J8H*x<1Dz^Np+_kY52vg9#<3!3R z)#qyHi`SDz&EyP?b&t0&J;t{Uw=yHK%dybyG(v-dS#WocYX=64G>qyOP2R;6%4O!V zu4l}aDhYm8*CdqPptStLg=%k;qkeYG4_E6!TZxE?10 zYl(S;UsKcHQ^kXMYReO5=a^;nu9BAR0gYF98#4Fj^>)wNu-3bJsBr(?a8@!UsmUO z+%F`lu!SNiff&myOa7KpggB3Bg$yDoK_K5j%@X!KJGawU6-ihkhf2RbpA6CZoN?(e zC;Hwgw3LgjuveEbek9a^J2YO!$UtufEJW*%gg-y4DK{Jm_6Yp;&9%^Byk^%%r5TwM z1b9fje|+=O;fCy33kZ2dRy)C4Gg+>GYhR$RW(mrFV=# zN_4um!6TVIm*?zKB&`2}6H2EI+;^3Nluh={WH*KBVDC4J%w*_~>cTHl)6u;u2gt zoMC>RKKQxsvgtv#JC^v3oU)k%jaUO@mcREGfgzR#K{YIK_SfVkV0#06vVEZ$n(c)g zi_Kdf+N*T(F!FZRmVi8k8li_k1?Tx5I*w2ZZFdt@(NA;S*rNi2q{S(k9 z{QT1e@(p>PvF);!g|cQV3bJGqbHJohqrN#0jNNcAsd4mOc#dAY*9;xWWg7l=3IM93 z%&&f-0vc3B*!4%Ep`@xvO5GY#$#THRHTo0PiLq%ntjmWB_9sAzrOIdTTq-oLEby5) zTD1=61E$0^e9f28l|u(fVQs9g1x&Fiy^d4HcRazCfI>+WMkmSV^u71%_spp26^C^{l!&N?!j{Br84~=Yuoee&EYwG_qA>Rt9&dQ)Arp z7GEmqRx`9xR+k?{tkMpFJZ=(W$c-Xz|0Y}5)WTT{x%E2LqMS@9^!Wv~O{3eJ{VEsl zqZK&G(L`4Lx_&J_W-C-C#54u3i=RL z;II3oZrAnTeyXI}BzO;?Ulxy8v0D;x=-`w9l| zMk~*vG0qoSb_=N5`1z?t8s~OR;Jzdl)BXhMYzWR18Yw3aRljMbm~q!v$9GY%htC}l zDL=xz+*0*rs~3G-g^r?MWB?aex?gCI*$We~;yGuJXlQ5%k>rR=DaqYUMSsqdOt%<9 zFQH_sskK4&M8s`)7Y97lMRw5bL@maR6mB3b{c!RX}EW@s~5pVqi>0{O>kf za`p9DKqdRp@Kzjjg<~i+gcclgEz=4vp9^^5MUVS3(=zkQI`3lyi?nDerVMBXr;WxG zj?7`bo8jnBS4N=rlzHJyJ%xXpL#1IRj3%c#>J>$|2W;#W2el{Y;5Dllq;(B#yFZI3 zZ5Q{#D5u4hz6J6t)FXNY!A5hHALP#c6VrBT1PA30s~g1~#ypq&PN^c6D*v@V8f|;e z*xb?@Bm{>3m3}F-gJ>ekX;n)a+C+&kqu5RGLo9ZF{eh|V z8IkYd60}&aMxMiU7(Wp@9ySuV*tA$4G%k;;)TP3`Kp;vltJY&})LN;g{Smdi^ua?} z_{@J&5VEcNmlHAXN29Lh9ROw!W6A_c(ct!OkFfo~Bgq0Im3c)Z21IiZ3q#DPP(i4W zct1u`BEzG?F!eTnn}?vGX>a&tCrw%(e=`j3#>ee*-=8n*Zd%bJdn>wou7&zb}N;*MX`2dE?vb1}CiU0u{@#o;9>UTTM1{ z7Qf=-!6-FVAv?-8(M8YKT}qnm zZSx0QB&(qN=y&(!1QR2Tl3Xyt;M@pJK>JV9sj_bcu9*gE^)BbZz{h{a5uhxz<2MdP zRg!fcT%kIj_Sh=c78`6SfF-&LZvhHTLL2WQn5A8}IeKe*bktu^XfEi9M$NS8!ju5y z4XfiNSK7B`z6`r4`!@r)k6i5$v7*#*-5YUoPy68T-+4!O{vg_kixaJt-Rh`g`@;nD zUE|P?n9!?|IU%z&m9cZqgKh`-NxA>RtB>Q(l<;+`{drdO@!WtC8x zYdPj`j==_%&D$yJRb} znkg^L`tL#{xzyk$B%Q~B5;L3uwl5sKvKZiqOpyr(5#3_9gLGn~BJSC7-lCZDKm23| zko#xj2+771y~$?c!f;PCC7KY+K}zpX2Aqj7xE*aR1vH!>Q0(c~pOUswvK`Zd;d;RW zehOM#V98}l7gNE~YxOX&Op2xk9aH7mg0d2lHx7k=&LF1e@aT5n;BoN2I49PL;hBoA zMaVEVA&s-Ih1a-@?a2A%zTz!=|7%ynMuV}rec@`i|Nrpx*#5n#^5FFRk>>m9T)%!XGG_^Zq#z7l-Z&8}~`GF z8=196KEKtqZ|$esr&@dtt_BU5&+{0W1eP>iM>j95cm!qB+*jFjc>WIrbbqN6fWHX)^J^V5?QT27M8$F$)S(@_ROA1@J$^0QbJhVr~2z+KWqUgMGwiotH}$U9$PiAuM8MihK^qdDqD~>QBZxG42(B`TmRIM>ksOHx_6a?A z$V^xyQaTLD%@uXPM9nAJj^zGDVbr%T|U*CzfsvZxN++kS$Aa8713#8VIlhz<;fZk*A zi?ysi=-(C~!#$Q5*!g}iW5R@8X$en)xb4?<^q^vH-qcKj{F4+hy5QkzMF)Tx-0(B# z{<~^DbA92WrAd*x#|uWNG8FOxbD2uJ6~Cp&c!?sG(p=e>s&`$?>1ncf6MYRiZ5cPL zVM3t?4HBpQg=^V0MHUq{2DT2K9fn7(BxN%3_%-wFu>G z4^%`H*tk1J9ohBXSIbm+NYdd(JGM@XGzbFG^9Re=(8fglV(abl=EshOhFzQMFfgZ5 z>M1Z_G(}X->fN&+Z0NMibwv#m?eu=v#G`cQU<6x*Xqrr-swgqs5zVM65%2De_+;xB zz&roNpjV7RhnYP+l`&@l=j;I$UJ8|2)=6t)dfIDncSH;9NgswJunU!L?Kl3BfEQcS zYh$irDd-1tpr(nlZ4v`*bwgLq#!QW%^3SX$gYq zq1{Dv6W^wLupp>zQP**}mQ3E+mM%`>+Q>l->p3yZPmb#_0cLr75K5w;pPt#L1a>!G z2=+24CE$p7mB*;)4V4NMLDiKi2%FIKG}0Drkj!d15KyM;&+HEL3yeRM8Zg_r-a_>@ z?TvDOq0?K-N*uC=C4KGHJo%;M-o=kD*3G*>x~u4BbE?F#1roupGY-L%tEEc z%OE6aEQEFV-@~c+I2Q2Cb3NdecfODrY%ukSefl`1EgZeqQS~|`%R_&a%x&#&+{RQe zi8a-IvTgL)y8oVs=AFdRMc8Bd49j4_>l6_LlO=Bwv<|ydiV-V`fNqUpmsXUNDvWG5 zs8L|7B?tZd5ul$UA=|t#_L4OAy)FHHwp~)8vRiEol^6wJOcYg<#$Hd~%vvoFFiTyt zgPQ5M>(~NWptSJx@eYL?*@u0gnH)S}VE?exVkQfU^(!!U2^!lZEC5bY48>TMWVEzz_t zYvkULMq1Q|Y~*Q7s%7gP{fvp~U0p^Dg-LM6k=i6DT#@K(0E-AQ-|e1|a^#7=W8xE& zSboJA{ucj}Fc>pK)m(wZs=hixiXsp0DyeR}ys*o53ABFLafMKQo`fgL=(K#Q_BZZv z5D{T&PlLtEmP~yCylJ#95%cU%!u(zuE`x&j^}T{hi}A@d3v!+Lo7n0Bl{pN(S>jg4 za$dfuSu<^p6!`}!>Gy5l-XW_Q1{1CBA0Zp3S_8JEo<*EkAR?`#P-*Y75A-$qS77mI z$pG^Os)9`7*+4a_@#{UARuAvH@({;<{%vA};pMeDN8=$=5^n!dNe%x}NsRzYk`5m% z360>%mi|MDwV@Ch4~XliV4SAezCy!=SVj|3c@1iAT8K6M9d-bL&D!e^lY=|o+{>H_ z5w}`{tEK@J{BCmZtX&$=g>6MJiEFTHL55-jSA0}hmE~rOb|DS(5ZY_+(muz6r<$gX zKC9vjtKu1gVz~rnVK5r0Ztkasp$?+p7by(fnqV+YW{2Gnj7af>X0?-@S#9#5~*bvOwAO4+qu!XeoDS*6#yai)K z!Zxufb*NC!5nt@EK1xc_haz$xSKeLxET>lk@ic@50&y5fH?xueQ*@+>k_9G&NZFFI zLYPg#{-!0rM(PBgH52oo5+!>pHnS2l9o?aX0$Lh!uQ6wN+%(n4`GnRSClxQLGzQbB z204ItOwbsVv{Fo^>|3C!~}Y<3IaurSEEENw&1k(i=buM^1OexYEa(Dm~MPx3E~ zn%nYlhw4>-p>s^f)}@idmtLm61}sYyuw3Uy%Juy_!yvP$mZAX==zBXVi6O1erX7Xh z?vV68DLcBN6XfADzrUji>8BDiIaNU|We?MPTo@;k!vzb21G7OUw48Xv7~N>40e?~K z4pwZgdOnux+$*k={Gw-dUIsw40rQ58*n3be27kW*Y0qIBQ-J^hmK7?-_Uy&tWBwEi zJle|DI17(7EJX%~G#K4s6|r}pZ39L`Bb7~_qujveYP{2SuaCgigA(i9jfJY)@RK>+ zxUcYwT|kIBHi`JY0hW_I4T5=rdNyY@&Un_b6D@%_yUO#mQ?UdBV-K1m*ea4QzC?F7 zNOSR-lF%;~#n?l73rxy*b^4=JL)6t7Yu}m5u>yaT14L-Ms{ze(c3B|QE zE)Bldj>ncW5g+9snI@_8GF6XMEuNr)-YGpgNlj7mJ+3Q4(1FAre%<4Es1G$UP9$~cT<}&YvA!S zgeF*k=bq*|YNTaCmfE6%9nHRp;yAn4h-SN$U^+)gzntBttjsy@NrXW*D30H3nX{AZ zNLzF~j;K|NaYcCjYPO=MvWP`+K+~{^0i`MBx^9WIzAM_yGN0ScjU51N7PT&DBHg5hAMEO}t`&#y=$v&( zg~g+d?d#?SsV;pBtLw^g;5TrE6C$m3&{$n7W8}@k`xkAHvcy<-QS)Ph)t3uw^ROBb z^l=(%=X;&uF1i-yQ=C`Kxy8vb+%r`^h}PV;%*l8ZG~ehLN?|-IO1l)@A%2F0eOGqz zF15oOQ(V=|c|H0{${q;~<2Df8hsj?f3W4w(SeaCH1xW@*V|fM#zA_ZtXhtZ<&&+FB zAP;O|t+k2MoECZI#}w};Uf+>$NZ8Dc2l{MeKa3gNi5?_8pl1-79;w+tI%9~JU~|_G4N}wod{7VqWz6vS4Bbrs&v4BIQycy%9=YNrOtz zu*8tgf`(AcWcX;P1{2bWMe9O%D*rV?_eW(e>-0l17}HQGxKg z5|(F6;j}K{)$aj1x=QoH#e{2f+EY;8T4f zotj&+0}vLeZc#K?I|{M0PvTrTDgS*XJ0N)X+R{Bx?M2o?eUqxf23@+uLy?0`;cJzw zo14xRIXGz-Ka>?CC4W2D40GIVWtz<;%DxzQTzle9{%t>sx773|vwcIDiaolNLqn4< z&7g5Ng%lr$=>4%P_lR(Qx%bW^65a^0=9u>~p-IX=>@hOnR(g(LO)hVDd{Xe3?NCUC z1>LMfqAr%;yc;K{x)fOBe>1*6>YQ_iPazjE;}rgZk#P?y z&m~U1OLN)_WoWlNBE)T^jFEpLayTcSDN*X4V+gXKT0vSf)lTPt$8cw{cfx*k>KQh3 zOD}}y|5q#M_{C&wdN50iwx{{!N8Qn&ZY^#X@e7egiFEh=i-NmSX2j%aev?vW@aes3 zlPC}UIPK<6+6DDbfYy|Y?K^#C7^XC^jl(uwd9{aNVhi=Pue>9U5gp7~=m5bW7!0Ye zHAx4r!Er)5HhnVhDe{n9*$kf`V^zf#-8%#sxQr6=$fX!?R2PwQey? zWLu-DZng|Rsn?ff2_v+LUMU?ml>_vfWxkCM7-_nM8bU5uU88$WPH+Fs#$3r$|r zNMNWBF#Xcn9(gb9YuU61B=#&l;VSML)hB;EdlZ?KEk%O)EFO@f6eAz*DTLHciP@Hz z*1y_@fUkm`I&{yxijkgC*ol&!om9Kq#8VPmWfNW~h>_dn2iv-uo#7tqKIqDpbPfsP z$rubRGKp2##p9)%A}V5F%d77{ERNq^O{(uz+@L(ejgQYArhpmo9^mZM{nqwYRgG7S z6TIw(rCKI1%9|Umyvj79)`~Nvjv;OrcanX`Ze|B#2dh~1Ga4J8KRiI$L)lyNrY$6) zv8&@sUr9jQQ{>37*fL5O88?7GR+h9=!%H~tTZ>yVEp~Z`GutPlzJ`-|SzEILHXcT| zo`W@W+VGmnCWP6!2)YDT1BlIH2q~mTRB7&q#A4;*gxN+756`&gCT}AiA|BRkkQhR5 zN*ILP4qYhTV9nN?&0m7r@GDxSF6*NU9|l? z@y?A{?e1{XvM#ed?xwjP^pidRK3vmT?*5us#Ov;V$$cvM_+hos>C1WFd$iCQ+Io+- zrS%?oH0|Z*@gmQb^@$#MS9sm_0pnTD6UuYK)1Ufc4^;NzMSltHDeWY(yH6DC_y{3e z&_7Hl-jRD>+;Mt$-jRBL%t_V1nBV;6cE=M8`jXjC_@dqCeBT+e zdHngy`p7z@@xHN7_T5r)@l)9TRJacN-L$;x*NO`NED07(`Pvnk+eW`Z37q5zhi1+% z)*a)zGl11$1VRZL$ctpWxO~R zor~d{CJwxv2x}t<3MEWNFmHqr3h}M}X*aY?G&b#^iT9G*O}T6HujMy9Him_PQJXu? zN_s?kPF-t4&b9+mK(TNSmFaL`yPY$vTa_JY>|e9buK7`rmz#Mrc#*P79a$}=)3uYemS^4ty044B+Y81BZqZTidd7K z4asfmEyAAq<)lhjunksh(p+W;w*JrB3sW*CF}jVU2q+guYHwd|v@tg-XETaoXqudsoTn-Ck`QJSs?oKv5oE6;m8 zY*n@KXylq3%LPUY$MgO9Fw6b<{qc%I7Bx`@IHECLihjvtYv^m4(Xf;%M$aF=ixPJ^LtMh z(ly+^na~?Pax}Q3XcQItUnmUbSUe{^)M_>gv)fpPs))@oQro2bAH4 zdm779RJvE}#t;LHiCoGg_|GUc=@Q9jJe9>2Sn|tW-1>4Dj1PwIBjf7S(#F3UHFZ!!lVE%xfW`=@2qGIt1J zH3xHcV1Vp8)u;Z|tBsU0uB>SkJvo3B!E~PxF}`(YaG8iHqShjcDW<4G6;e=_)fG@!mI=tkhnHz2mDJVFM3)G- z34FdAL4m@DxdnH53^6$A*G=>PxF}RS>t=FILkiOxqsPrETnfb0ib!OnHfMU+wb=bO zK@T@04)9~yjjlW06ndF#KarSGceNaS?2a{5`&3oA0>40U{Ru5ANJSj5`0Sg|VdXQk zt9_=B;`%l&MLf4_ZA-C@>y;{RdVX!~KoO1W)hgdyHHha(fx|Uoxj0)qU{J%@K^1T9 zSU_5ccK!E-UR|`KM`ywOEhvdgaN#W}i7R|J+&E}inr;-Bkn|qcaDz?%ijjc9Luxds zUw-|a-VI@VK)mk^MIc9OR9MgPN5C!ltb;vXY zwqRRnmQzL4P`eGqKgehgh>NRAlYcrtFe$w#?!pR%^DvmbB_r(8USWCVCc4i~kNX8e z4Ql0!W~UphF=tgS9*dhML!AeO%w6VrCg%HaKf^zr!NVpNyFt;}!aMAALR8GW2bm*B zN4bt%f(#2!$4@Nt9m_WN!z2c{Cq_)ufDY1!<=u@14$lo0IwTjxq`8|lgss8s;fBTwb+>af#mCT=eRG6#N%G!9_EZv;DJZkuo&-IWAF1 z4O-`aL#!q+=P61VMD<7Cuc$AFgp8!Z9YtC+o}^E&i0ltoAP{!1Cdi%U%0mz<6@JO37*dQSfZ z2F`(*A6nK7FgQfk^Uh#vfSP)Td$!O(${g8as>*yu%DpprU5JdyE`uG;a3kuhE|&#l zIb}PZ+x43QeF*4e;kmPT)_is05T+rcBTZ<(_IipFGZ0q^7+Kv_xN;tODuy*NywU10 zJX}04-rF2=t=YzOEX8{)+@p*HYSf+}m7`u_XjE6~w63OL_AlP%P!*l`EKGH8E2a4G z?pfz#o+$YH__qkZI7l@?L$0`3nGnaGmnmtLuo`L(W{%g|%&yvIoGJ@Xh!r;d%P>&gQCyP0jtGd38HwMQi@wE`w6(yk8LO#@DaRHp--q&h z09i0iucmeMqh*vkbG+RTipCTru@M zeMXGm%(d}QK*Z-PFy{zpiJwcxR&$a{_%rG@j6x9R_Y2lP2<`V|eDIks%)aRVnrFuQ zA3q#JU2`E_dj}C+dy{`WcKEF=EdEOst7K~E{BO`!SzTFu5ar__3u^}*l;sypaJ6rB z)Hj4dTgV+f9|9IsyKqBD+mt7KsXq--$j4jiGwL%$mN5-3N8+Dq=qY53og#>;&?zX8QGvCdM+_A0Njz+=RT|FH(6x*nA@~r@_`k^?~D|jut~C zG^y$}&FA}OIZ*3MabKwoV#6fVsf&iO(UM9m0TvAg_QEXAhW64dkL$oKK~63EU07O< z>jEqu+ucH|H;F74l6a9Ldcq7bn*RIN?EQgjPe-1)94ds zoMR!N!xb`|@=}-gv)t)W)i)=L8TppBB&;#)1Y6jsE?P~Rs_y0_tgB4T5L{qKlI{-V zb;)Qghp7k zLMus`^(pywZGCm3@!8P}ft|Jt*d8eBlb#F3vd9^RfHs@ZV?4ewFw zWk*HTm$}eP!b0?+H1*fM06}`(79*4D)i~zhvB6z+n24~B4b>yE%m0RMgvHvhIQS8< zG{IpdkbC!1^5+uhP$s80Lkb3NKnOpqRWI)4Auc{8ISJ0cDYgu5X&GLQ0Yihw89dZ4 zisT&>P2!gDy;+A#%U{rZeUDU&Od6+SXJ|5!+U&SNbBMHW?5ParV5Hb%cEpXkK0f%^ z-d2?`B0IHQkr0XFBE^R9eN#XG zydFJQ>baY%!5)N$Cd0Tsh9;wfysEhtiWBeG*H@Lttp$Ql}sqSB$f!7M#uQ0+A zb7|{dwgcUs)1Mf9$|g^sFZ(9MZ)nTIpR`*~KPUFPCI+vlemH?Q@(h@YFA?Y4_0n#A zVB&(vQz0&4tbF*nss~HEx`$|ue5fk<(7n1B6&whmGKu-P0^^NmJVmZUrk3ex{l~d;;Dx3qBd| zKEJ5^8G|I(hk$ffTYP4 zR{hh7*qvn8FEFLM(JSx&luA*OfSOSJn=0<2nl>=ny=BLG6Qa-%kByqSHyClku}768 z4GqdTpCS!fu-^+lqCP=7M^4A-xd+0%{F^!opai^1@w>YMbeA&ZmE!j~NSpX?`idZ0 z>kwNx)LrI=-*QR1PMJv*QkQy_6J#tIvT^5QWU&0ujQQ4$_=uBaQXwRZ^7;7Qxt#yl zgM8v`I{?a@q=X-!`Ur`=+4|Cw3IkZ#oEVA$fRo8nsmt8PF!moCmNSP4pN z)bvG-?Y0Ao8}kZCHPXq#RqpNt^NK~`(#6(X=Ec@VAi(+-xUqfRHoEI_nKjspJ-$B~ z+C12Ks9sm;9vor0m-#_cEb&|w#3t>{CcVr!p@v0PR*szUMr-SkD-+Q%xgxAs)~=z% z8dBaKhKE+x-V^PPt+HTLtd2PIM9rc6)Ot`YY<{f^li-aqBRYy7XbsxQr0+n0mz|4Uu{KgxrzqWa5l z?ca5^qNqF)FS-X86r%x1&jt8*AyG&pMAXJ_xMZ@Se<6x&YDd%6rrm>FfClwGT+ zxPXfkv>*7Rm9^b|Ht00%?xSw+?awWTkDYitAZ1&I$P_gQn0I7M2Kqw;c)e6gOl77j zi&uWU_YttH$@)X6mW3s^9F^G6?Rtx54f`jC-Q@wsNfn+%Psec1?W}8D8@u=44Xw}< zwk_%R#4RaQr8^8mKQ;4$}zML6a<2IBiH8OI})Upt2E0{+jGdJV@#$9UFHl4Do4Kgd&<`Z)1SM zFBx>J{ob??+ovK81n|?CaP(gJ_Ym{D>jAxLNp5=UxEF|ni@G`R=v;MJ(?XW$4MwHz zwhRr$u<84DgYZkXU9f3og7iUCF^?81Hnt|{kiQ$=i!tn#`s%h#78WLwB|UI2ak)g# z%|4h4%bRvO+$`s`iq1#r6?ee4WBcLQ-?f%ALbBfU96KgiJ&&@ z;8PuO=RbnB2K;2lO?vFPb^|)v|0Bb@0*gXZisXtt>vpGQBve+B>(l zN}($mJ`(WbxKfp$l>eoqoI%Frsr)LMrT>pe^#4iU{*TUs|4u*u7q9UjDmTOb)@bsg zdu~{*#?SmjF8f&|7)~yz(ksY^C1JAD4-PK~0H#!=G8nXqKja3#Q8bD4bORrR5jK(+ z3hIbemwLxIC%N%1$0j~nJ6=F_u&nKew(^6O+4E#ss*QG-3Dgra!X6-n4BvyIte$vq zdNkx+CwSK^IlHq>TEmc2JE+$P5k%^7{~jNy1o**A@*Jt`C@c*|7{0DoT>2}mB4}ZY zvesdCEZX}VrK+7VwrCP2IpGntl`=^SNUKy_aV#u81nUde-y;;EfX$p%5zQi5m2oC- zA#p2_5EF{@qI`{+zI;`r#%nZforF}9uJGfmGW#lLKMSjwq$-pjlXzxhaHIunyW-Y= zSW?W-NjX#S;I<6+lZ)|D2XCjJ@2PoWFHIO1KWL>q4XKO82&0nddIE?ezi<3%xNx?H zOnpQQ(+uT36qSN8e~UE8%3u<)^cfUxs{xW^FwTolfuWI)T_w%yV6fxfdVDu({=NtX zzzyQ**5Rg8UneW@?0pKIdrs;vXdt^c1%*}|*VQ6LtLnOpTXtq)1hSN3T`r4bU=Rv9 zS}I(~2MCd1q1?M6g{tV4lJ-WR{9S-+&tYI{yky-eEvB=t+{-wWl-dhNr z`y#_u{vY({|LKzPAIY%)?UM1;X8n7=D7(4K?_+p&XiSLC&d#99!{7^4Sf;SRR97XS zK<6N@gdp1r7UIt6L*Bx;f2nUTKRhSh+%{-w(}4$Mf8(DTLwr4%ws3jWY^^cwxlel!o8AG^ zn}hAI&$nQ>++CRvqu0N14<-o#00lU2VMRc}PN=8Ct`=TL-?=Vc$JqI2sel@G35(@I5J#^bNh6>~R42Qu>BLJII(sHn@02EPV4FLlj?OL zrUXoM5n{$^&43K-kpZM+lR{6Or?u_8jeK~-v_I<#QSSEP%#+4BZSkb>9||owwr$(CZQHhO+qUgwqL+hub?>cu_q?k83s&u3z5449x&1-@X}0c^4+Xx3UBPwXR;ARW)>b(R)b5L6doFQiWO&||6!FFp`@qY~n$D*O%M*_F5( z5`X_i^ zceD`f=fG33m&7KY`mtQ^D~{el%#xY>OK}vo!8BkY7U)8p_>|mjzr-+}zm7gV{rp^p zIvcp}*;>+gAyE86lq9P05pV($8Pg?fb4XdA?rcEBC8iJl4b7cwS|K@W`bcDLpALZ=A+8NKf!upH4-DMf7Y-6S)Z z0TL~eiHfW&s|lAA$J&c^R}AQcG%n>^=!;<($rzggDmiEP$#O6o`i05wbeH!xDon?6QJ?96W#`?pxUrAqsS48cW_oKqC#8quKn}hIUur zhLF63)0Nrd1&Qu{c-Er$-U@-q7OybcsHrWSiY5)ZWZ4i$Iw((=-V?6N1p)(lsfbFq&kHlD)wlp zUTR)5dM^>nYW8kA6_qNxgSA5C$}L!9dDK%&kyjbKw*PcbVJ`1sJ1<26L6y7)j(acL zj%w@ZF0RV5OTkJ&b4+d^pGyaYlJmcfV~3xO&C(DGuE|_re);*x4~_0P$sj<=2Alw2B8VAaQ1yrOBNv6>i@l@Ks4MAB{FP1DS%#gi-M-W7Uu z1QXplJP>!5r;e8q9TVmePB@Fo<<3wLAiEQ1Wr~E?5U6W1H>?01IZ-7|p5GZ7N61Oy zwjoL%=A8xv2*;;())`)9k(fY)&}Pt=lp;gJ8a=?NoWKxYQ#~o#zC3gosF8;jHNTs7 z6dhjrmk3P@XG?zg;$NUG8RYc+G)@-e?qt*QCSRN*T%Ap46|27IOsqGv28|gXwf z@*+JGQBxn2nUWpEzqEHS?yGFD1|n`xKbJ{ zni)rh8z2bNiq2#Hi}aK-Cxs1k+yIVCTtCuHTkLMk8+=zx;oLyN5wRk8)>VQh-Pi8?TZ%cNcYVp}ZDf+F%4^x_G?2DyGmJ*+2|eul6$ z+lo`UIxXT2h;!+BgnI>=h7GQ*aiQd4j>2Iyjc9chT~(jD6#7CrXUu_aw65e7XZ3#A zgg;5^D9tN`GX`db9e1V;BU_g+uD`Ou;7y@jRhr56a_PhGFS_<;4>jCe(os9pD_`&x zXORr(s`_#o%w~vN6|Xh*4%GBE?1Kc2)vakX6M(hGFb=#PNlh1gDocAN z`M34b^4K^3z(#4iAC$tA>BVNq24&!YmNf$^DgbNa!{l%1btI{87X^~Ldk)FHo4MMx z2qf!I$QKJ%(G#1W>FI7ECba-<-!9zZ)B#f3-+PM`yH`O;;(IZg?21nSxx^W!Wi|YKU%u3{rMK7@}xin{gID0 zF>Py%To1q@I3wP)j&~*f?5Ge=t+7Y+{Q_8X*d>6|jLafPPccU5uW4=K@DU%yx6~6y zJ1>HCi~P59?Xk;Q1tY@CbY}9#=0*`R)|2JLfozaQzx7e2b%{ylgon5J*9xJ~oS|5r zA!`&HqjH<&%In>=!#5ZT-66BghJVXJiVXQ0fug;UMc~WZqY@XSwYHVAyxbIgTBdg0 zX7&Q%JG_>QL6RiJuVa?4(k^%aXiMATHP7QsNzSjuZzTF#Q3R7h#Aj2 zV0gH8oECzY5k5rbXP;J4&bxsdX=%c;lg{?yBksu=xEwr`S{QcVSv|LBB>5uVa{I35 zlIB)g$`SGeR!GuIgwoaI zv7ymf1vvU?wEK#UB`#B&MZPeA)G?&D5`bKe^DDoHx*$Fj)tT{oKWJhVDm)6*3gWWh z&`cWGDUWe>FBhA#KiY+^JMn=_s4;lwlV+$3xnBBKm9tFva-{-c!`aE0* z8*74#v%nJ)+)7z-Ji9v`zjj1ET^$y`=A?3Vd5^4d1~Oia zRx(!YoTi2QgF7-6S58n-f|OLWhFCEu*6R#W8V0M3LD#TVgRiRqGi zRoI1l3<8VI1&?LT4u6#bPi@+IghccQ^DyC=nP%CUtnB&zxP|Bii7eFJ)kl1{73-$C zXl;k1s1|!|Zv-uJ5)i=;BBD7bJ8vDzr3zCDULF(b?tehBPI+J`64Lw2f*#+Xymst8 zg>uNu!WY`yPsy}C1eI*{CKTK~xgFpUcgY#RzRy{la3(f^y3lkKZ+qfeMnKeLa6iuJ zLfsa_yQEXg89azw6TQ|gfr05_rO`@=a_#2d4K2lP%{Ei9sR{44pr-9?NvngnS^cIw zGy&%z6Is3PnF=3HMN#6)2*PuLYdCE-J=ftw`-9L8~uQoJzM^|@_fWZ__SZE~F3!eBM3_N&@_`{0^Lst%& z6nM$_DWY$h$E6f<$;wq_N?4gyiCG0%b+*Y-tNE=lX#dM5uaiWSPh__o=n_G3IL?rm zkpU?y5DzY951`$*7xJu-I86VPq$6Q@_QH0nq9}V2p}rLFF}ch$LLTGh8}bQ+@yO^K ztyH0nB^0JJWVkl^)#1>z#`3pR>~yVPHB+M)*(MlGdpoF-n^@i=FMrD7WcKU}y;!Yi zKY{xiVs-5}Gx>oN`9Yv4`BZB(5^IydxGNFy$Fjhx**X)S#20T)^mZe?po-?Sa-n&e zrlC@MQM40L|D%%;47nNNy(#5FtE17EMP&NO*Cc zx3Fb19R$^&2m|M&=Un2z0>jNi(t>qKWM>Ync$H|jWatOzTTvOTp~y>rA*F{Cdj2`W zD>b1wnf+*44gXi*hxtF1_P>B1hab;iAy)$<+kcn`|7(;_N|5?TF$eEBCA3Pxz}T4y zyqUHYNk_=Z3Sg9_=zFLOV&GEkn*cWt>B*)#DQ3>oyp>y6=`w3bYVeDS5KGIln} zb~EXGzj%qs0f??$5yaWBD9u|K- zz@#mVf0KYbr4fpJP%Lll@fnuII(13xp-U9+q>c|0m64(l@F*qZ<~S&0^lnp|D4{oC z#XM((eFKRpCWv&5H%$sc>QjoFP(y`nY)3XDX=49E4~xizj^8ICm~ge6`xey$rvO%F zHd1tHXThx+Ccv8vso&b_(W9EGqnQ`Y6kSj(;lDvjIMG9~z{RxH;(WXX?|_#1ZgB|C zqJ$~nKcYvF2=NZ$ofnbneB-E|vam`l=rd@Ca%#tVREXrSH#bbsRnIu=@)y9X#eM7! z0J)^hoH=AyEqP*AHoZd773>SS9ox7B~WaI#iIi~10=E{ra6BE@yWCcE-p5 zK!sijvS?9nzfV2Grc=&8iU4#_cWJQ{O{#h{adqfU8NbRStN)nRMKX5J@7CNYvFljP zigyd2SirC+)Fd$Jq|80tzk#Z)RzElc?vy^TK(nXV%)c22EZ<21bqbwm7|mJHw{7j( z+_&7nZG7Ma-0VKxw<_T7B#mg*Tjx!?K<&JQT3;tgy_|IloZMg}B6cs|zrb|o;LW;~ zczXWHq1nd^-Rm2IduR=C0dZ~VgS(3X`l#hYYEwwQLNIZ^M4h)9TwZj+EYx4NCixa7TH1ym zzm9G*JpQ#D|E$YtdgV_<# z0h-c~-S_e6Us(?ciYzPxzCvmQh!FWW)(R*$GXG-!b;&K=7PBsGe&|!k8tEvlvup@j~#P6^W0cuKtu+mAZ-CW09 z*;;Nvdbw|&vq>GKC?N%h)W-Pvq+RYNI>^3Z69K{z-c~W?C4ECNj@m*NB!AM_a1GcI z##{}=7OZ}&0qQ$dqKAe9@6h&ZWieWmK77MyQrxLMsB)Wd>9@M`~xE zi3mrT-^a(HnYL`r`KJqn8^5msQpzvn;{?f2WJ0a=Q~`hoQV<=mY1{BSLW-*f&7nHiiq3N zq$3NP!fpQu5+(Lla?!kNNmhjtcPMo=N*MymwP-&K+^JF^M-j`QWf?mKG1VGUEkX`{ zDWlY;2IF$IWWn`fj-7%aIIUmkB4G!U%$d9Y{sk^NV$^S5 z|8DV{Kn-cf$vd;`j;y17U{#D_#F)>ik?~OFI7C-q{?CkyemXEzD-Y*t%xtp|=r1j( z6Jo?XtEaibP{sHwN8^-oMy&8k3poTjCG4QK0^OCpKZut?6I}rYX34$siyjz143eWVtXMogl&dVqepkxX`jWDmIlka{E7KA0{tf@r-jUkwh zS0`2bta+c&S!-KpCIlS@W(D&t49l;J=+t5h=EE;jyEm&M6g)O^9|so|GLlM=1oK-4 zSyW5hLb0@B!jA-92{fvbD)=D=xd{u$ixNnr(ia(in!;M!a;n;f-i&fC_+p^O<*-2- z$3k@gzQCTMaF0XeXx18@C<-)zutFynLNrylxRm8Ov{YgfiI#{C%NZ(v*;);n56PCq z%h^Zan9LlvVn*Aj+dOg>T-u|;-?V9&lXjEx>6ycJ=k)2B<96rv>6xQ;=iup?llEuB zES*uOE6FUKNvA8Sgysk?>%!b~rCZSA}45t0(-MhbnJO2|ff^e@)m>coQUE#uU2=NW4`t!_h>tc%#pTMeRJG zHCrqLfQR^dTqDP77JiZSjwqr<0NeB)yh>&5(7#!Ej~M3Plsv(*BXch?v1t5m zwBhCNDc(8#P)P6*&dC*EeADutIm}rIAhEb)Izw?!Dk}#wVBKz>TDMVJhD;7a2_qfh zhELk~aP^RIu%pVRXtp<}%WtX*wJl`r#yv%77Su)!*3LhXY!9<$e)IYQp$I;BG9!^W zAP@Z*v02J(Lo!`V6~^t55|Gq^O`@#gg={-ToC1zu366(vY3%@@fDP%DZ2)Ht3?PBq z?<4s}>>f>U3m5At)H(a0Oz@fN@l$tTM@b+R`|V!8LA}rcf0qg;`8Sc9?oHq{-e;o6 z;5;LaSn@BLS3E=4nE&Go8*Pq$y-f63Y=M#(2~PgIBs)Lc`3G16&puCnKEs>LhsmPj zK9~=}&EP@J2d2310cs$L&!i8-+sy}Df(TutY-$?RJPx@9o6$Ybn-05x70;eeK{cE7 zmfpQ!HT|0c8;?<2iAL79!M(``+q{I=*aY+1i!I8ZtTJe{f zIz%zT$R+x`<(603Y7LkoR!mE&@l=QB69&{=Ly?@cO7C#&snEPA9-6;ZndthP*?OpI zitsOKjJ4RhDsGy{)@Ew+un>8(O`6aaN~?DPE2}v4_WJRI#~8CV>2qe3{FG{*udWma zQh46b23oTB6vGa&Q4z=LhJc2pC+2df_VG-z$6Mw<8B~-Gb{i=4`~gHDyC1S1^a-!` zQDLvBN~1;~<3;%sqvt@B@J`qYB97LPmQrOBG)~{8Bwu9ry~hQNQEHg2l}z1$R!qNH zf(qXqvs$yE@Y)isVw#3C3NDtCy7#MBz1r|wEV^tqI*Fam#hDkOS;!p?Vq;@2PlWTT z8^jp^B})!fQ%ySF5zYe|hV|skyS>=-aaQ9kwWOXk{P|W_-z7hoB7 z%)$#DhX^B@zMC5H6Ko5_+w0Q39yIhH#cf(NqH=a`wZqNPsGE}W8J2aAnk zmBb`HB@_@-M3Vi~i?*f22&;14f zaYKH7o(TbtV?cZeuD93 z?)c*tDV_n?sXgh`rbt6-c^BUece!!v04v7csLK1ef46iwn_$oppM|G5>6BX2!DvR; zXr?>WFuU%Co}#3IUg%O|GQX>il*}B1t49(nt?wH+m#6Qq#gvCKyqCPM&6Hp}9*X1N zQAY%rBfm^R;qrxXB`Mv&tB&^?lSkx3MPyS&=8HJfs}JcMnNsGhG=*Ip*scyC-BT&g zeyhwWa0X=Wi9KS=6vMe;ex{WyjBqNfT>+_9$K9WSJqozqu(ryAT>;sou-E=cnzaVm zfM9V4w>}6cr?8#I1-%q7*>ad>UtNC=0PqsbLdOrEr!|FpcF&DzF{8Z-FurcaS?GTT zcUIroy<+VXR2X}W{CoDeif}HX-MRGr$&T}T`Rwj2;*RVy64KE<|4`w6aXb-LzaX%V z;^PyYulN2+x;L=S?1*N9MRC=cwp!NMhN?nQ_(nllP5UhMV@nINz+t{M8Pb&-W*>yn zAFZD?!W5A7zeW2cd*#RH?6Ktqq`CkxJEs zcE!udYq@FTiY_#lT`wS^Y~yFqZ4jRXsgWrwzwCVP6F!f(Z6Lg2M$0JzQc{ zHqMBE1<3A|?;n_llFvMK3qi9@uRx+8$U>hHN4 zbxqt$4=6S37H?#47bcvkyn?iwZg+3Z#+4n0_(Mw9^?c-mc%2verPUYnu&u{nF_*c> z&T$Xbeq943doyAut5p=2bkK!qc}_M9TC}Qb(yv3<>ZU<_ManSa>pr9 zGk*jX24P%VCMR-wq+3~jEhz83#Q}U!e;MPVV)k|jleXErvHIwGAg`^{1l2h6{{{^s z&bg{%Y>{Ae5ij7hAd=^iN@y>gw!3xb5ZZ%Z4a@Jlx{m@I_t*AR3$MLQazY$OtCDA} z&^s8%OFEpn6|?7tCYU= zi;cSevIE!nGgEjE0t>GXNT=oOr30I{$`y(7ODfyv*AAakB&Y4Qj_$L>-y|>Wl2U^p zPJQCbqcpJlmg;rF-9_A=H`yx6m7|AGch>F8e0b!2(Dwmm;LQ&#%juM=-3F&t76V$ZF4HbB#u>#`f;Ygk@H-GM%=hB=$2Z z!@QXBmw7afOi4we;5+DoZrnl88E}f1Nc;R90M>O8iXLD8DIuNI*O*6A4nzsy2IWr- z!ix=^OQeku&YT5+tgmq3M{;HL51+^y9|852*BlEGF{Dnk1FEb~)~cz+AwiW&MjSBu zJ>G9y^#mXNN7}!G!|wG~l|U{|$zjgP5`k%(+GcR-DjmkS$s8kTO)f+1UWMuQ@21El`-LDVq!K zn%`MhJ*A~uHkl7)Cr(zNoQd$ZX0m5M-IfYs2zyt2hNul*HY)cm_(QZs8u`9=C)}fV+NuDwIFv zdWT~AyOUa#!;V@wIAwRLm&3R4)(|{(4To=oOl45 zy6Y5$;tDC-en4b$(=KMpRyo6-v1nX-U~h8U&W+%-nM+dj$T~T33^>tRzjlkUzU!=U zY{JFuj6J55fso}|`c2p+>b4l@PUag22uos*d%oCk1eT-Xx@6pXlbez zv#VylJ91kg$X~^KpuwWWqfVxpmqsv;l1Vv(b@_Dsb0=>vX&w2l22!as%Y}o!KAi}& zGe*w7NqKHjb#0CeM7c=IU(c?Hq6SDFf)>gh&e6wu=5L$))8_WC@U}D2m7m)cQhd#N zDbzir5yBK#oJ@wYh@dJG)Z&Oyxgyuz3Q=l-WC7ZWBCArW0A&4#9c4UAZ$(lyTW(gw zoYAii(_~sQ>$YCjsFZQhI! zy8w^XjELg`*6v0QO5?cbl~>-W8dXVAv5`cjt_53#;9R1~*L}aBc*Im$a$g^A%{uPA zsL3hceJASaP+m1u+T3~n@VhqjZFrr9$w4=vsTRU=X^|}J_HAj~nn4Vo`sg}2+Po&! zHAB-Cn}Fd|fUK=o00#wUcT;eWC%Sn(9S_c0Y=gHLwdiY|1T)X7*iM~NYIdJd&Z3}f z-A%E8I7v8VPxM*jf-QZdRG3|Nr5>p)c7%Q%qLC;dufc9y=!BI$W8h#Z4=J^X0cokg z2xcyO)O0UP_v-LYGoLj{si+xOB;f=c{bijL5`;1(?0%f5gwOT-^a8dV`ZP#`dYF!V zN_<8WLP+|Mq65>k-a)X>`abcd0E+98RclcJs&30w*& zZ;W$@dt~CWV<4~NZ2vm>)W;n&SGv9M#J2)cup``meTimV0B2mljp9oF%q%^?Co0OP z5bC?g?3M1XyzpD@7BD8uz<5jRX{6(6WaB9^s4M%H-U3E7k&vW+Kf9vsS({E~U=qXY zAypEbiMEimy$UzyLc9OInsjqkl`1}FabE^revrpmeb?hr2sp%({pfR2$Z16f_PIE! z<(yqG6ap9H2GA0xMwi8@c_)(U3ll|21+O!X+V^zR4&~L0?Gv=@tT$Z!&gYd&-X~4% zPVndR#?8dli;Wwg*3rzn&Ohk#DO5mQNk5*>t1SQ9>Q~_Z2ke)%x3M*{cXU(Mvve{N zvUAe2bda?-GBh*Lb2R$b7NAPm>?a!y=evs7!^lVhgsqQ=X$(9aKFSmA(rd zy}N~h`s{{lqCDU7%6T2m{pRe`=lk9DeIHDQ6Gj)yJ2f!uBB2%Bz@9C3kPqAZWD7>j z6EfuJEL4-5I%VdxmCi3CUUa`f%o8@*5Lc#mSx!_RWf&3Oo`)hOUsIfNcUKjWWgw{p z0!JIDJK7$ouv| z-xst1`_%{`ko0~za5ff~%~(pEZG}LW3Oba~_=w;*_DDH{cO@DR$yro(p4{F0_r21} zQZCNiZ1coj=B+)9M*9qkdv#z{2;(5wC(u!eFm{YT$*_=ZFQ&`S{MEcEpu9W!-8A8< zYEOY#9cpi{sjAK7xG8Q;EAx(Zh1XtW-j?*~N5qjILY{fgSa}wG8x0u7hFX@w2p^)Qf=ulqBU>pAPK(WM9btd^y6u~Y2JHPu zT@RJX-YRmp-b${F@&1w77szh0Xn(VoWo%Zg7m$)Hyund((Rb$EK&gX~qCZ~8bg=Pl z9Pqg1_;-z3PbF_Mo<$74+GD3Ojt0SI46G4?zyFd9oejIl3 z4i;_tCP_GthG6M=HtONV!Nha9G`FN#{$#T)mp*gIi5ff^-Bv0ABs|TElKTP}X)qIv zF~QM8@$^RAG4wPbpu1qJWqL2)j18)vQ%=+5sQB~GT4%L{Gjp3zXUbZAcgeX90o6)- zs#mNPX^X@jW()Ih?5qghm(lHS!sho%*Ws#xN{Wi|fF#$HvK# z`})9e<35v*pTy30+{~emuk)*1zxNrx%rG^2U|($*Rof!8%0olc$e`U zw}ksQ!qKD-fFTlh2)tQ^o>Ezb!KlP88dBHLb9UDp^bV$DhQ>t2bw+ijA4D5IC zGy?OzP9JyqY5-PM(q@MuE*pJ-;~6G)>)75jR3P zaW=BXID-X~Be-Ld8eV6w%|7UJq@PCImb~GZ?Jc|zD`02#Ivw3nak?5*xgwZi4n9yN z4I1t#g?j#KtTaDQ7d&Ve5=pQxy|dDU>RDYdEVMG^Xs_U@%sL^=IysqgZz&Bp3GKFH z+Fn?+J|VO|Iccttv#g&_i=ha97E4_sMdXm!lB$fB0p*Fs;|(YWeaXgmA)HVOcU5Av z6GaF?4Mi5#c+*n2;F0ieb20Y7b{XLrntEiXr5lVH=TYy?kvk^BV+ zcHXG0q=ZR)yKe`tZh#A+QMptUN6Y2u>DARKnrbXgOFFMK!pfzPpRDA+OA{*)O?hMX-H6>UIqYVM87cQzS3DZ5j zE@EsvjIa@T>R;`s6NQ9xiV-7>3pVl_b4dSuz8REEgj<_a z3tGm8x?V~J34|3^n%e3=kV5xA*DFE44;lu44?UqfmDI^NlDa(B+`=Rw&H=9)Syd1m zXj9-`p+5?c1|GO89V6&H&Pz~d?7WayU3#V~l?_eVO^p4|{erAX*Af_})~Dw8Rda4U zH)Z@++u*+KArw`5=Jyk!fO|V3_Oe15_yCu|I1lL#l!3zLcRdCKs;X)y!KII?y)=hA zj~_|ev2ovLJMpQwK(?X_XCed~*wdq}=bx7M)Rh7t0l2IcuqUeq6Wq;*cOxi~CW8^z zXYfu|o@)>NHkn>=_U$-HbLjblY=Vtu@DUVO;B&F{++o-+9)1()F?Uw!YDBlu1b^niQz4_(vX%4b=Z`O zoxa-3^=_+FwWjI>iPH418uW3exzo4q9S2Y3G-WIHXQgm5zba!!&JTovHZGJhM?g@} z?wZ3T?&m^XRKFE9hdU^M5FL4epz>9QJX#4fX3AahdSq|?!Yf*f_XRSMN;9QkQSkOs zfF$l^&-WzhchUp&;+&h-pByV3`Q zwXkoG8Oh0>PMB5^HBhI*p#y#pOr9P?s}IEdJSH~qE2+!PzQZgcMs&A~-9ENqWQbsJ zzK9$grxu^uqS~$8%;sl+1B*&f<<)}vSeVLf= zQP_gQAg5rPR$})xj!*qK*$z#e*=9?Tmd%D?VZA}6WvZ1+FYnTodhuiD2>6ZGn+0BOEQ$LjXPR$&eIX_Ki z3Aq;u85EmJKqq8KwKHZOwOgwjA`!St3aK`-&Vo*nl?`GU2&)~2>8Y5ECrA00umwzZ zp*dDm6M`DV@^PeCnUg1v(P`cNPW01i?9-9iufbueP#%YE5}t{`8;Zn>T2RlH?CSSl zmRrfp6&vaet$ZT zFlMC21bRs?ET6&77623@+3a=QGv^rwkTjUhH3 zkE2@F?mz{yRf_IhL%SLdn3@)&uI>T1FkOWOtFuO~(+(?k+J@az)G3v@Tk_1$oc<*r zBy*=V*72@`(p?MeBo?`+5#t@!@)CjFBDP&*j}nYX2FF7x3bnr#c7Cxm`Via2o5cPd zmVx~i=`$d@3d{iY#9K6b<-(r7HW~o`EcB3L0VtR&NtaV%L6TBAAJK3^I&Ts}?--&3 zIsCEhvjmNYXnoSr)!nUNu-&r+{R(pb65sM64fly9&PnidF@11Ye>?dG`Sptp^vf#T zPhm1cKY!By9Ur|l{2ZUE7LxKZFdveGA_$6!e+W@7m_#nRMDXZ4(~A$a5s?r$gpKw| zSvBp_JA&5mFL#7rJ}&HB>_~4o_9f({VML0`4{Nl`Ie4)>Q&C1*yq~#`)4=y^%AYN6 z3$i>#uPUuKzb+S@fnUEQlL6}xb4+nA9I+0Qxf@3x=Hbf_HcJqjKc^3cDMW#3HjERu zjLos!PYfOKux_qMR|R#)`qxf_n&*w2aJA-Hm(+woVLu^KX;-WjEiC*KB5dY~93zRb z74#k{WplowB`IOMEVaKXQTyC)XZ<#Cj9n>J%Bai$tU~M=j65w4gKA2a78STmu!R~eIysG$=U%;9cEOc@%?|embW&otD3gW z8`Rdtw~DMcP$C!Aw~DH+#H;9||2lhAeJW=RT$OsDZ7nmG6ippDx8bPVnpSOHnLpj} z_yt4Rs;+0Q?4mo>p>El6%oOA);~TAOHC4~-Ry(ByTV0t~Mff;bHYWO)q@qGOTVJEA0`-J#SW3kgRmAj*hj)=KUZ;eja2i?xC zZrFDb?u?0xK+G!i-7KF-?VP&IAv#B6E8Ztdpf%C@un7qUH1N0)PQ7eyAma?+tG110 zoe?MrByiA!hY+6F1hMY){}c|=lDrA|lSxhAwWzm#v!7|!L}|j*kFl^!F`kA>!1i<9 zp&n}gxJQpB7fIMkjU!5h*Yi&751zZiC)f+58QANt5TWwYyJYMp^s@%dI|68oz>UUZ~JD|v}4tdLluv5WMrK6 zbovcLquhP}7zcoX3u^6NB|`uJ=>4yWSM>i08Ts!9UH^`~>Qa!fL862I%3QHd;l*p@ zRNvm8RaQz_p_Zd12OmU*6{=#DW>(&JHW2C17Q7MtK$Eu3Llpf0@J80ZYz6}2F9cJr zH{pDrIfH1~$i8NB~+0 zo4;3MyBz-jabk#`Bqk}c46#329_dTRDdo?76SPQkp{IZxn|K;L{7e;2gf+}e->Ic8kvoISj2xoKwI5tEJPqD*sgb|YRZP(kMK>=Yslmb9wqCeb*i?}hQJ zJs8ay{{_eqZ7oy(2_a+QU$_hkmCm!qOt=-3yjx_kPnt-AIF;2w@JIo>k61Pok2IjoqtlSyJ{9v$A0*-{QpfQ{XhA#|8YL}2VYj~ zMcgmlrdvfyd+OaT4T-4?wYcsG)iB~EIe}1RUH|7L6s8t)sN*_v@SXQ(GPLZ)8j1^ zs2y9ESwXl_bmFqxmjRidW1GYI1C$2KA|srKa$3708!xzAzF?~V)8TGmIZv+Tr#vu! z&gTE^#6kQ2TR{IfpMRZ6R*IPm(hA1Nw@N%$Jyqu@y5+AQOTQ?fseb*-Rdh^J?cc^y z0vUCjsdVweNyEJJ#8bHQBvzv7*YErdjC3$@Vx|&0#3zrBj%+1dC7%FSY@g6aiC;IS zjF@44s9p{y=i4XS@0>j*Z7MzAHz7SBwKzQxd2qtu8gbQnHx2b;qji-)3VojNCj7Ft z%CK2bdvu)DyAJq)cWxj$vbRI<=W($65O1II@G|2!3iWR6f$W(|x03KP<4!Z=uH2z$ zhA*D*wBtxU*!)c0h=UULw@1IbF$Y%+Uy^>)jNVl6bt*^H96bH*Mi^u%dTcp-Z9(xA z>2pExl<9i`F*nAQDDyxvXQrIxFg7$cFjtStnb)@?OkIJ&W^y zwD!x*9#1!?sD=<6K3-%nr^+ifHb_`-P~SZCbn3~Tp91tdp3W%ghz19K#$?dc~m0&Of&y@ zY)x-oBlxGHy(OsE&#%o{nuU!zvRn4-UEJKwFu=Cslzc zmvs`Bnq1h$`{Rrex2+uQPC@K?h`KUpYA(#d!e%3#jm>z;*Kj6gV4dVPJVzJ73>T0Lzlb`YstM``40SX7W4=OW})g2rt#mxV&U*VUYiESv?b zwRRR(zAfzZ+n}&1a;z5X5xUjr4TX6(I}d{zYv$B!VU#MPidX{WLpIkB6Ga$S0>kfW zf~{6?TlyoN5$p=)x^wFY(p!+DIPy(WbE9Trf8n&6QiC|}&$V!mr8o94vnAXCQY&TT zfv&xaincB~tI%f1&(!R=KAO5dNyJodKQD#=8m$p>8kuKQKt2$;Zjm2Ezqm%+^j8eM zBzGb9k9T;^970RntKJ7T8VGYcB1_z?@zS8Iu`_pBkz|T|#YBOTtG3LfsiW6Kx8(4s zAVWI)z@F)PG4>Vs0h((-QaNGze0?KRIZAWHv(V9DhF)h-3rISrIEF!UL5t-O?Ok+l zG30n8Z=)i4#j)(K7W*50K3%UeO?j!3i9wn@6}`@oiOM;NcVZp6LX~Zi>AwDay<~m8 zcy|N{0|XW9A*hK?xET zJMp^&r1{9E+M1S@ab!Yd!u1j_#T=`HPM$FRqNZE8I$`vZu6_Vh^Gu z6Ue#Jq)mqion5);C_2grHmj*#PE+FLuet{+iWn3ewRY%h{Np7zwMcYY36o>t(uDz? z&xZCo$YwE9r;8+SQ-{O9OVGc?^ zD<2KjLUjOEkhUN#8-G3<+sF^k*oeFkcy8@`y&55%UdKt@h{(Fr5-es3EZxXXiMgfj zuvbQn02nOZ=`HTcowNFpNao{!RSgupS!E4yTn-r7z*Rly`F`TQTI*7OK!T!dmgs`} zZ((h2Fda6uXZHVjUU%P_xjF*OtB{Qr@sB8NJGL!tj;7Nx55#8TNAKgd;12w}d|Uk{ za%pfziDE1XcSuJkjgfsZ0(Q4A#pwwZK=NX%Tt#UOZ$D6x^YKK0i5tcy$cz?DUu^`n zS4|UmAW+uIxJ@+ITTnqh*V^6V{(_0Vt*QTj)oq$;&Jy%9Vf)KDqLViWW$1xhO0O7cN*{*oy~*@E-gh%HAnhv}Riq+{?E2Ubb!9wr$(CZQFaGwtPYdu`O$;S49Dw;Ku#Y)b`jB;oO+dtrn>ab{8QC;t;Bf4`t+X;sPQ5HXJ#rTRpzby8qK<~FUU7q zORskpw5Qz=ils{9tS|Ur(7h5cufI};EhYV^dR@pLkpTIwRTgWjON6Nk z(e6H?O^0%Zz^bZDC4J*OSpc#-Q&0G(gp%yY(nZ;YDV%Q(cezKQOzjfD&Qjg8V zn`Brgn_k&xd+3$qrOf-q)_|6COoM^7en3%j4CMGmyY)`T+=}3Y0xw4_-_Z>fM2ruE zAd|1m8RUM;sK3Xi60~xJ-ZIHtliaA>FUFzZ55J6{U|L=o-u72{t*uDy&tPh$IZmFk zxBUsm`EEt!F@AaV4lxRK4~e!=lxvi>+vX#vrb)$4|L^3T`3?6Ta+t4kQ^i=>;8j~% zv#`Q1uz#wS5>y>C^q;Eb?SEUfQ2wW+>%Sz0|CMni#db>f(;^4ONQCAEeevS>LJ&z% z)zagR#VD2m7Dh`}8G)!oBMnl|s2J=3xRMS?1t*6C+}L|nb$d8g@o;Z%0c7fp%pRlD z-bjXUq*(;(#Y>~zsXk*@zABK?3@J@L0m6(wi#N}E{vSS}+k~?;IJ8{ySy*KPI>TT~O;^p)OKZb3s;u|DwjAPs_t2BvI%P9i@GkXe zKU-4S{;T2gdU#zu1)v&@6R#RxlHdwDUFRA-cu%RVdy5~DqS`UBhk{yN=NdJ5PPwIP z7deSo7HBT!CSe$RshBLgi+j8 zOUszM{<+2*%{b|$EIe*CZyE5-Wi)}si0L=zm7Ha@e5Ye0wQby-)536s$40!gUgzO}@VUU7|(+S;hwHWb@6X$uY6 zG{s1z;sE21n!432^Ji(zAwA8C=AE`lAq-2wW#L66l-U!9834%rlw4@JS zK>?b%5t`W=;b2Bp_-s@yox;yu^g8g7t}(>!ht8kP_W+#yciHi=lBIu(cTOTXb?uM1 z`zWD1kl1zoM5UlQj;OmFmcnvKy!JxGqn}$57*#uKwWF?fHg|Ec!2KPxfABEF;2pB5 zl9y4VnQl(D9S7>GqS-R@1f|mIfF6}ftVh0nM~`^p++fM+lvy;AFO?g!$k5n9!>rtx zAqc2VKujsmp#cBc4^Z^8{(Y4;NK3XOw3Li&AYzw|iZ zrLW`CeT(hP<|w>=rr<|!i}t^V_Y=B&idc%+Aap9l&h8-2K0aVJpQC0f;}_exhn-0H zi>uvjb?yXX!fz^qm?2Wdhiy;jk*f#YCn|f>79#TyH`er+ZwGV0 zZ2?_t|3cV^d(HZqOvbolUK#f$u2_B~Dv#7(C?9v#0GBVe7$RncFP{Na*apFnj%-ya zDt}8`ruDN&R3OF_D0WFCzxu08yRw=;{K++J0T`!jfCNw8xsW3ZmPp9kwp%B}HJ0@>rd?)6)tmx~|!wiPtGCg@7#IhW~LPlss zJfUYk!{YS5v^S=?EbI6aNv4pW?rfnqTY zJx;#dMfa$LlK&@KjNWgch1XwS@xSIH0>FC`9T96{N!~AsY?oFR90&naK*8;(z|v6C#ipR>)e#IA&<>>EcvRaIs9_g+BIk>K$6Ao8%h8~U zhX`O-oClmce4QeeELb?#KpLd zaPY5Yq6BXtjvRF&vZqegO;WFpxpl^TogN+pNrd!G!XBS8GlEmW-vMx{DkO0Ve#7k} z(9Gm$4>>n~MiLfX_@|tD*_K~IQ*%bY9kFe+hk7`)vc!1Yx4O_hquO30UNzd=;5{o| zQSD_5s!eoC$TZqD>BoNwH^6)SNeB!W)kmKn0GNPx(Tzs$<)njD+6Wum!%dD5P{o5S zP}m4++_QcN^_ZcE)~#q)W$gOmXTpKPTW)maqn3fnsVmuRD z^*H+<@~j=!_)6-k*)Q4LtSm6uzYrOKXT_5Gv}x3O!xB;nxx2U8WEkxeEEU1An3aA1Bx35N_?r8i zwd?HVz;()a-LgrH=R$INtJ7oZ`nml$+r!%X?fKjWfHOQMe{I#KhSg8;31f7M6iKR%Ly}Lbu&qJN$W~If<2+5ppvDk>8 z;odD@varZJ(UMC=60=~I4I4p=mEtn4&KtiFB``t)saG|gC=kYNF)PfJZ9W#0riSE5 zt?%?9a^d1D`%nQm!TE#3+$-V-K|boAkO030z55q_3w9UF4|S4qBByr3zrj*#F8ygK zw*t>sAvsPc1G~5=!Eg|Wk;c~5C^gaQRJaMdChy4Tkzdn?+@Fm}B|kd?s$c67 zY2ZDUwFs4zHh!)?*gSb>-P9n2QbOx_&4YSTT?ed}C@Qjpm;t3n zzyhc;sF|5+G`%*89SXseL@F`fUuACe@#~cDmlNjt&%=4T~d;6jpR1U%da+Z|nR39KQ7u;%8V0JI`Th?J4(baNhiR-Ik zr$O@;x={H_{IdrnEl2iQl;Z;2Z>dIK%#s`5WQXf`(=kf5bj-!HHlwod>tj)nXM+-d zs+He;?U2@c$^NYFD40D4kl8(WAV93;J7mygtigKB1dzgRjNv6Hgl>-Uljs?CnewrF zHDZ}aCmOfp>@T-2Q?XcF3^2=uK}vt$R;3FSgWySH0vx7oA`L{@K!4JDJ2!vtMT zC`r}J#wELTv{6r%JV{4u1!Y_O$l6u7ZA)d6{DXtfx{>8Ta5FZAlMfkT<^j#vFe{*6 z>(bv+jO_v0S`US5xa(3j5bluf%tP0F8%2CTeu-IrAvd^cMHjwWD^kaG?<_g7Ruofw%5xGbbr-3A)y7xmrdd zoL9bgC%938K-+@bh``vp2FLs{NJhSPm?vEzjIXskMBmex7gu#96saO1b^~gH$e)bM zI|g|Umq#lpv9UaO&u4^$lD7~fSOL-l34!8KeT&`;DakcBPsinn4^%~klZrEqG3Dw7X($E>ex!sp>OPYM@mDXwR|OoIw#q}~U+N`pDM zv-Y>6ZF?*)WYpCXAERwORNg!1=YZH1P#b4pU#?m`j-9P0#D_pXY%PpZOvziezCCHI z8;CPafA;0QyuCCNPpe$d!l}7t#ZTv%D+{naFu{SC?+UCLugfQQpC6xscl#%a#kykK zEv=<`#(W&x7T<`f9qZu``xh8?nvH(1OfQ*dwC=X?4neu;T{o69kmlp&;ck&*64Pj( zkSP$$4lG?fK9Y_g6%ua&(T`~5+mI5zMuitM_w2HCx47(-EG)#o)FtAXW~S68$=Q{S zll`q$09r0yi9QI2+k&q#Bw$w5L^1TSN*e3R86S{IO3tUwo4eYvQ2@{J_gk?cBhnmv zZ$AH&ywYMGJFh=xAm{M^{Ym-v`3uGWNy+>F%^0F$C&hv2kb`8*v&<|i90ujpzKUmxADS1j1MZ;AeSBA~0J#pY5k!Kh`{dwG5d>?xT}H zbD1@uv{qqI$FIs)g3ts`y=*AAP7!~ToI>?W7gP4T`O5f2Wur%`)kb=BY5#n1A)pSu2*!RVtlBW|#S|Db)l$ zA7SPMvV#{i|CJ1M0duG?FLWP)5@)c-xF)?#GQgN>Lfz91zTKWj01^PZdTdX`((-jg zi(6i?sGj8pjk?lXIRSsyhU#KQCf`X{uQg7Fl9KNW7$k973^dW1vupF;aj zSpV@@q5FUJqKlL)evFCWxm?~=+bCt-$h#nwO(pVtUk>tob4{UeWbp~pDc3F3EL}1# zlY3-tx?cd0{7A#RpG7c^tH0)_J ztl8>tVv{z!%MKBM&=VU;GU=)Ffipl3awp#k4pm071s7vc;V@xZGdLDEH)2sKIY)Y$ zhjFGGtR_J7nT(SPiC}=vC1**P2}y15k!_MAQ`RT09i)@di~B=(n*&O6z4)bgFv+Fa4TEo>cihfru-H0NRf{-e%hUwo8kMGaeI z4FzKWVx?W<+`>V?UND8!a+duVu~RPXcE*zmPCZtx)a2A<8j4W1r4}8kD?jO9cKkP9 z?}&b5wXTjHRgrQpE!^3$6nsBET$)fxv)>7Yg|>2!Eg2mV=5)}A{FgQ@^q1cA8f8+1 z(73a!a}lXKBc+3$%CV3h?SqOjT7-z?cvxnz@Ro-2fBug_Rn_a(;JX zq4u8*_>D7)`G#WFtLx~vnS3$IgGdB28%5c;+wk!vFmL1wF$n55D$z3^`8 z3)}x(Nz&r1GS(kuCWZe=(Cgn5XxjgiEBRkC?*HmMZK}KdXf!?Y9B=)+fN3I#!NBNC zdeh7R1QEc7P#T1SL>IbtqQQoQqk(A<5ldRgjeE*g`^rU4Whf|${sbaPl?XMS2^vmqeTupN^?$! z=@`_(NONw70c3a21}RNQ44Zocr_B-*SI^ci!FWTr-U4o146#=piv&dLu^<~1L~FcY z>6Mp48MsCxWoXi3G}})z|JZ(8a%8&VRf|UG6!zz|zB+CBBYx;-yM_Is861DHWAoAO z{Y#PMnuO$He{b%s*&m}tdDTd{=EQmHu6_SUx}!I&J+6G?NBsxl-Esr)fyaYwxYzmN8j1sVzmMR3VX*dt5>MQYVY{`%f}=I7hz4`= z>;p;B&p^sKc*euZvF}ZKA@IgLqT-&6A?Uba_;{haf1zv6Hd>0QE#f@x%h{2`im`i^ z$$IJd;}cAC^5Q@eedMHVX!P9|MsxdaMDi8C-Mts!6NJ;fbla_I+iVus%||=-`?r7G zTpKUr??`;ZX${)ueEa?mra$82$I8mdIb1GZ{zl*m;Y|N-bU78}L~z zbm*q0;X!BlND}=pwL4F#d-B+@ieLnXyXCx_(18zQvQh%LOUMxTir*TN#!r$=G3pd8 zgHagurebPnReU!^_yuw4vI3I>ceXH66XlRBmN3Hl5cYv#o#88fzNrs3k%528Y(k>O z3$t4@=hOUG6O|IFwq@B}gbw{-B+w{zJfA!R@ea{|n?Q+|Kz@ixwhCG`~ zhyh)sXqA`XqdDsp5WYiC;Gc!wZqqI?UF`bc6yeS$#w9aLwCcduTvb%EaBmBAa-b|D7LeTq$V-Xf zT8XzK7RqVV?Nvzr5tv=ma=TR ztZLG!YAA2(2|`7dTU+S@@isvbfy~2#2$5OGbX3I1K!pso2TI>c60EZ(hxu8Xr6NCy=N!d|k!4gJMXA`LFDWwps9kqGty;`!X zC@J!ew5il`#u;Ry(GO=3%Ic`VX1ksAxH<+KtG#fi-+0-zFJSFhM^b8#o9s}=1d`{g zl2SBjh}cCMoGU!fF#T~VKaz5R@!XZ8-Ykc8Kbi(m{c-Y;8FnJNW>b-};QjWO16r}} z-9x;DvN%$Os@YCjPm=7Hb7r6c%_k$5w-&A8RL2i^A4Kp9)8LHMyocZP5~w*BKE_H} zL0ei$yTzhPwtAtH{qq0^Xmo!8o_n#ezIAujUtsyYw;h0izC*9$F>>a#=yOrPxzV!L zCiTimAeNq`Sh2nhf7n+hKwV(lEV&@wx;;QQ0_;jaKQsn-P$!`9kvnm+uv}Q2da7HD z7rd{*p6{XV-!BMXlRe${`#2q!cAeN6Wd%Na!@y+Fu9!T#!yKS*wut~deg)tK3HFJL ziy#(&P7VZ2Qjfq5NH0)&u0kurp)7*0oKB>pp0h)`N~Q{=s#58_G6{A@PItDfre1OWAXFR`S`6%I48r<}~X$qU!anaX#O z;EXdYYIxi4ii5$O14A9#Xh`1FJzlrF3eY@l`5Hec02(Ms=*f%rw!YAVI zXYSLIXD!l42~8IzWl~A?dKu_>c`?-^7Mv=5OgUs%5r|z_h4HZCkx60v`v&)75k#$@ zl8&S5EPA9D-eExV4wL)58zspICBn1FM5R)*#`4wQh#PW$!W?_EN}6s6zDU0d5A|j; zBYx+&0v2qvbkx}#NF$&NcxH6+ez8JALaVF(h~_p+*|7}|wGNI-9X@Pk5f>^l?Fi?A zXw}JxS5ZF>54FC6%)koeiAyz#$RlkeWas?Mp`x6$wqX=A@@%CW@S+;rkx05g_J5Nh(nK2*Gx_%?MKO(Tp4Tw$Y zRp4g(Q~R1lEU)R!VwL4i8rX&wVA^Extdg&HGpfT<;M?6wBKe)ZJB zqfuQ_!$INN#hA3XD1ayjMP4^ib*Hd;Vup*kk*Er3TVzK`+SP-+Uevfa$uX>uiV%No zt{6*K%Dx18fdUE_#VY>$@mdAi0#gAHxx7PWULXVdik|z1*p1jSXg-P~Rm)n1wq?0Q z3+Sy zkE-XferIP}K9Ax{mIZlG0p!JTc;~e>{@dWKt>^NzqO&4`d8I;(r4_16qU<3%x&l&_ zO@EpdlGprFiWYXd<=UlYzHAoEkS6L(&kusl6Pq>AA(kCRuEOa?t_?}VhsYlWrnyTb zh*mq)*hbA=LSBK|m3yW9p?{yy-bZdA6TNjQy%iVPYI_x6Ze(f2^T5dEx3Z)1 zlYd3G*}6I)8KpD4g&xQ+5^`A0c<;NT_+GMh6|j*lEHqZFIB3PkisH`2h9<8uznvX` zw6B%^Mec~V6JBV*MPjXE>miM`h4@w23r~Ft(C2b0(et^p%Z}d2r3tBU4Ym{VfZZpC z-x^vk;*&<}Xnl5dvs`?GIYX)A)4!G;O zE_l3lFg~RfKr@@$iadMCZqNf=ek@V4_|>c0|rJ zgEJcDzE_my{w-FZoDAAfxA1+6)wlQi*Kq1P&N+ri6u)(3^J$)}nVy55JQNZ<`3F(D z3I`{Xl(f?UtNq+l4}Nv>J}LEVr#r<#GHa4~$CUDjMeyy1To2CcO<7 zjcm<5+7!D|qcbh$VOAtmvC8pPP4jg)@aMOX8)79zWalkl#54B-Z*NeBJtBsSJ^^|+a3euJee^HT zOFhT7*q#85Gq5TBDK$`C{_DGh7kK;Lz;TsDSg-}4JVGQLp{F-4j=gq{2JF9C!5M79 zjrVLP`Vdxdh6}(<_J3)HuDZe==@LzX@94&xf-~>PZus?!HpR6hkXGfjvh1iDrL~LI ziHxvd5l~2yKoIxJ?7G#RjgLnAfYQX`lm{ioTQ&;;&@8<=#e579kTt#mKnSZ9Vfo;4+wSjdvdPcPNT_aL- zh$niAH1R15caxEv3ZJrnXltRoJ^%hB2#SL}&LKohL&pbm00ce1X@j+y_y7!K6`Put zekJ}i7(=2J4{3IM=|{!d`U0$B_~V3!MYvM$h!uDKeqGUfG@2NYu=d-4*s^qB`JAp>u`;&pUrvWsbfr33?2VH)#I zB!zceeHqe0h0Nip7;6itz#jA2H{%Veb-TiCexxH!9pmT^qb)XE122#M2IRdYK;2zS zLeZ1?*;@)EDe3IWgoYlsPE#MVDsJL;A-Ayv78J;4jS$h%us$F5-9ZIW^k>uLbc06* zy?VrIOjNZl4(Ip-@9HhxpaX;(B-q^HL5w|sLRNWWB37u1!c|#M#o(tx*!cM!`&zDl z@TT@N9b}Pq^EU)*yCBJ;Uf4KtmNHvN$(<_{tN6xyXO%K*idGLDX%oaYo+72e?r6WE z2f3B}+B5q&x0jp#8>IE=g@%eeMTqAR`Ly|!MDy*a-4;as{U>M4$g;Akxbp$)Y2;F4 zj}%drK#h0QGRm=!b|#M%$g#72@*DJA$1kX0!)SruZ}J4JEBD1azN0x}Ss|r?M~3 zG%=4CtmLqR9yfIWkt#%m9h+qjifjZ$9)e1*P|I)Xex@3zo4##JR!z5!prS^7;@eqE}HXxCv&>k_z)Q5|3qu);O#vsw4o+i_Ik z>8J+j3{Se!J!%hk8v)Soy z`2)8T^+LE6DRPVIiDT0bceDON#vCE$8k6e3jo@&@E$6q5cD&~zM6^ZIq#Lmk?lGv; zqN5oA7h!RWFzX)^CUWD;8fdjg+Z0aVD%%kzLstD^G2%xW8RD`lbKq#M$KC+lnnK=`Jtb*AB({ZzXqhh;@LO#~<%i43~x6}TmteD&}ifx!UdfuDn-kRXK zXvZKd~1shuSR1p>DnN!H&}Fg%%k(0L0_auuOnS&4#UO(icTzhX2XjYzdG%LUHnh=f&jq6L;BnVOgR0_(D8J^>EWthD;KE&0nh>vBzu#;F87zBOHB9 zn|1vbFax+`+F|@4fe0ar?Ku~NwnMy2i2HV`3r=wC&1?z-#^`F06|e(Ky=enM$|O9i zhit5{jEBe6|IIGhgA0uqQXj0cpeApquE>YfsmYClKjNNrwmuf%7szno1)jV#nwDLjJNAbRV?Jy2r^EB8QA(?pqb?FK9 zaj8U0x%nP1%(@ZCl@L6)QkH0jT+d=G`Zc~-fp^G`k*P~oXobzsHN2=BQxXrpix3QD z;&wlGrlf5RXT-mu74AC24VsnsTp5S{o(Y7t2>@YP(4rTFn`>grMGSw7&O@O{4uB?$ zAmE0?CEw@dE3rWY1{Tf|q{;`*fRHNSBEb;N?Nnn61ybS#&hbT*pUF+nltEbHAg#Y* zlwyNE6)Jp_H`W3mpW-30*+EcjIWNROvaghC{%W9L5}6{e=?lS*$oSrWjNE>iItpzgAXeYM_geGi zn+9hg(04>GbsMnHBIlIGO7~ohOJfZHW41 zY@3!Nq z__%5#)#^Y07|<~RP24qy-&KcFbrzIbd||i;mF5a>6?yO8$l|~Nzr*MT>7ug6d8}p2P4_!57vWS(zbG8tI=i-FU=gr79rRMp zI@+W9aLYt00lU&&s$N>QAr-~{yv3`eQJ%=5HNcQ7IXA6x4E(Px*K|bsNAUW~sQ!DP zk@9Nqo`$)2lEHD&(P2hpu%lj~a8#gaGG2{%S8pS5b2(8z(05*@;-6xSY`^L73g=nxv22SKX0c(D8rt0xSJ*>wbUGgDV^mr&3$!c2x!u(F0c; zf*g>r2>h)i;8BA^8wG8V4Ax880BoLfsgLaQq6d8*Cw5h}4p45z%1+P;F}TxrRnrEn z9v$ByaAWhNtoD^TP_pIM4#0KEk5ws1T-Gn{fQ34IY*F0`9Y2t2;opk#X1cHnYj=SG7a|GYbH57$L>J?wJud>c~-!V}Na z6LSdk66OiclK{7eW>3>J9ugEA6Y6cBb2Ij-U+F0snE)o(Wr;F)mzzqJ18*|QTr1B_ z26#tS`!hykx-&ya78y9a!>E<`Qr*DKL1`X69`L#&(XZwt#*UwkC^>}MOZ{kd73w10 zN~8&EKA;)&xMSG^deyk4dF7a;)+uuR_DCbvNx*(>!zA901-X+_quh>caiT+m6eTwc*G* zS9$o5$4(h;#6z}zQ#|I4D|OI>4pPoCK#Qz9!_*->!@QPFE;_@E_o* z95lddtW+(9i6WpkS6hT><<#Dcm8d)$qQC7>+Em4hR$q*Q*(0lHLqLp4Uxc{@K;5^^ zcOp8&Jo<3W+9ziH`^-L^N>rkKf{sr=v|^6sri<)H=L*d#VOGuzxYlcj86L`QQo5dS zIgZY`p*Gw2(d)xw`Dx7}_ZbZqEBr-WfOIjR*|d!?zt>H0w|!iKJ9Qzs!9#RwifMqb z&3}&`7U_;`%?jBM8Plh0juI=-X&6OWX&JOx(a?!vU%ep#OpOlNzaxBJ(t;Ox+_1Yd zC)@`=3D(~rN2~b_7VuLj^@D+ZTe1x4GAX<2r^-N&#w+t21uT$Kmb5_1sm?Qn{ zAk}B}(4_GyC*&9F@*A8WO^=7Jw2jPd)YZ=*5Gz}#Fx6Pe=*8-+HAB(mVqP9A@&mK^ zT-6NgfaV0GJ}Kqou=2qs67UUFU2fDBc{zs*2MJpe*?6@|gFKMwj|U$)eK04~(rLmS z3sPMlEhtmw-H8BoL!jq02t9hFK120BLZOj{Fy6LvmJlE2Fo~U?NH9;M*H_}Cqs^CX zwF$dhS8DFH&fZJSomjmmm*Rwtiy1XL^f;lpb}fQ#6aN^M43OS19yj-5#Rns^!1aD( zoL!P6&^F6g`kp}2hb7VSYJjY+nbSux(F$uofvmaTSRC`kJu#(LTKO_G-s|Nx(fO5< zh4swWsA4SrdTjm$zPh9I6=-6p;U&a4MGOL=l$uyFk5-}2Xqx1>D&2$Ye#ZJ*D32O% zbbBo?+T%`dW&$bQI8~B9;PaNPm)QnJ|oghI=nCV3KA;XSI8!|>wTAUxAZrE4m; zetjp9=mWe+A2ZPaZAMz6n>EgOr(;6+_0tC?1$e{pZy!y(c7wiwc$qS=1u7vieJAiu zd#ED1I}I0u*r-^b-mw(?&_;r|_Y<3AJFjr1&p^&A{U z^&Cw9%fb1tnuVj{BFfiPhc!Kh_HGhg7_P9WF)<y3>xu~M`4 zkxZ|v)#HoLORuNZ_l@!Q<1KCgU2gA;7(`Cu$$dUSJKB*gq&ZHqNrgF1Enj|4g3003>j>Lbw0e_E zFH^2cHsq_?i^$vB6|vpStwjvkXP3+<#U}RWOMk1hmgUpe5}xfF|*6eP6j7}C_m z!wylX4k|C!48wN}OIA15YiBRC(Y9Bn;`*4h!hTE>IylItpK@sylL_ZqE!x_e6$hJ# zk*tiB@+%4oD(Xwj3ox#c7rB&J(r>LQN^i7)r)Jm*5?7yV#MOt^Y4WHa#CU& zM;EYvFPHAn*k}^<`%T^omRDp1RG5mnB`+HavyQ9Cg-5T|NsNgYjmaBCq^TEuilNOF z2+O>!s&r`+yEcz>O*IuY40ALqYSr6OxYRe{yM)d+r+Ex)6Vwd-l^R4^2j^>#=rz@y z>5*w&B!D2{*FO=vVq#)^>lb}ubhJdfMkZ`ySGYAanKqYWb}Bq%G}3fWjuv}!C=u#h z_b{6^BB*?eXMU462HR(uv3h!Fia2Ieruh^%JzQ#1e*scd+TN<#5p%w)JY&Mr;sBA% z-;8vS0XmA_a^>ik9nIwyZ6I|RAA6u3ETa}b(^X)f16JXcnp(RTH8lI{mqSNGJGO@I zv&1K7^;=Yhry~I=Ay-K+UPr7mnyMlv8m=9ycSpBZ}u=0?R%b+An zI-K4Z`WR`73@b><IH538a%ag7)+DC&Lvfd)LozzUV{b z4_EtftCH+?T`k~b+^TGI8!=0zhA_IunR-S>UVufrdppumdEvn;nVS3Y*cd#jt{!;G zUL8EOh!i-OZ3&}`m_sw;bD%9u70fP$DU2T1Qs9k}CHO9}*%i_iRSQ$#WD9v<;lz6Q zZ{k|$2>z9bb?6Vy!1)&tI7jeqWVUMq76O~Vebm0{8je660~QA>@O42Y8g&$XgWC#p zLD>o+C8Tr|)F>k-wKr#6eeZ%AUC9WQbuxX+in-?4vVQJ3GHMTH(fOXp*!uGhgh(;8 zfF@^2s5%<~qUUIz$VNIN=i$d9T}|P=gFG4b%87<_ZG5pTqTJOD zDxofggkKRIRYh(WD~I&lOZQyN)wfT*872_deZC>zuI@b}b21UH`+WM{i3XffmKLvx zJ1zKG*ldtCf>?gxt}#7GVbDFpA^nDKa>LHQKP;E~LO>7p%_E1|qc?qtFk#g2Ymmo9 zQ%oWk62kjXn);;2?qgAnC@8UgeSo7_S{b(_!pcCYt zIOm<@LCF`i^sHSUVsyBNET0VYEnd*wuSl1XpcH@okc3b#-vb~?XL>j=> z4{B8i#GDfhHkhp>=3;k-SX?>v!m-`}v2$*6pxYMe6cmL&EQ@&+$^m%5?~5rupx<$x zq*zVf$Ppr6rye;1xI397?-fEFS2CZ|Lig4i(_Q8}4Mtzuww!6JT^TFzEFxKIm%dNOn+hM9GY0a@>>ER4-Y zv!MNBaU)^i6{0Ewf8L(?h}~N9rBYe>%)BJWU(jO^;KX0R%U^Ik9yoLz`UG_L!DaI4 zx54v;BOowJb@(wOz&0bG^ZQK){L_H{JFuRc=-H-#xBIo*f65}s33m}DGKO=?swsCm zs)0Et9DEHRvf?(#Yj%Y$@;QG92SS1i;++EQ-2yNvV7EuiO1<7Fok_wK)NM#?P2M-O z%1}7r(YTC@Xzg7Wh5?l9aquTtnzG;e{BRqo#Rk2 zQ_JMSF+tTO;KIeWaPFA1v?+ZU;8Etr(QaK)OS4s8;-Fw*qbO<$$2soh5Jd8f{xhG= z8PEe?9NANY6e1>fRwBnpISQ>Td)C91hnWnE?HD0zb`FGey93Wuk<9|05WMFOX1 zYz!_H3y;{9zcycwF1Az6KR-yh1XBo8i2;+At(>4+%8y(+nwnpnt12}p$poWR z4j!R|KE4Q|S|FZD&K4v`l%0$@_aiI;p^+)h#A#8>P_dOp#3aF~3i1t~r{=eEWS?Ua z>JiUzLGC!}cqvOKAFv;l{Eg4{m2tusCF4OWdHlGJJ?6MAsHI{KNEfDi*}f|2utQUR zil48;*XBRlhClA&aMEu7R^{Ink*g>~7m<5ZDn6m4q*_>B%Rf2a6=A!HoXt7zQlv>G zM^2VMd#hhSajB}EY3VVWo@0AdGVP$aXDj_=x5Ve#HP^Vq&}k zEO%_4Xa`=Lp}e244AziYB(15^HDm07ra4|;>R7i+xj7WgS15YgSWH`v=|PRkOF3lJ z9Kyf~mp~0)Bj1QRgsndS$XrfWE66^Wzn>XGq?;A%#Mp=9ywy$Q7md$ zwlEdF2+5cP9yU|hj`CtTC1oDHx}8#4Mz^h*22<1l)Yfmv*7Sr)Cnrn5ffjvhtd|lw zSv+cA_;i)`1HVc1{8@uHvc~RrQLU{mx@ZrmJf(iWaC%9esZvO=_Cwsl0iDNjmZ7pI ztO)vfk1r&I(*D8^9z)*Yhulav+5GhOivZmm>!Xq+*u2-(iGa9VIe*g^(FtjKcyi-j zqgHvamd`4%3~{BLS+ASkj<<0aFKK|F94n>_7E^KkHgnC7MTw=cAO!N@xX9USc$j$x+{IMiZ)iy~KF`ZsCC ztieQS41+psz66(_^&_Ekc}b=RZ({pqm5%7WoK))_tO>n~I!C9!gQ29gXO)!A7S+g*%Ohg9l6c{wJqqfoj>T+V3Qkbeo^5z_Fj($o!F zJ8xLU)dzh<8j<^CTk!Xr>rzRW(FauVoZ%);E5sYRR8R=wFy+5EE`a~J% z9KYK}U(i#%$6K!AMDjghB|86dS*xqA;Tb)^8opR6NKK%6m7yMWV~fA1C-f1J=o(M< zjQZTg(;-B|5pruf;b~{)-flHJIQG;WotC|m`g>rlG3x$KAR$XZ#t|NFNrltel@E+X z#dl00PW$r}w|5miZW^3hIQ>E43Kwl^>yFk}d^(QzJU&ayxothrE^nWfTi)~Bj;&@| zZTsRLYmTzi0uWKbRahS2^!&43tH7u9RDuz6K0k36DZ{XhqNM4`gI$BRyyi`ZKl|8` z^BB{z!Ec~C?sUz^C(Z}AyNe(jiBAj!@~A$<>3?nZMmit+5#r^mhVZ+{vnW$S8p90b zlyc5|&aLp?3;QUF-x2uk8|EKOt{jz%BqYoa0|Dn>l@{c$U*Nxf{W~U?^gm&8ja+T* zjU4_l+5OQ^0s=<<1r84W|2u{2|Kb!uBV#=$OGo+thq8ALlC4j+hRyN!NGFRp=*ILGowpK32|4@{wOwzW} zH2qdjvYo7nHslPw+lgo#IZP~c+^yVfrKuOkOe49xPAgE4Gq$d);I5I)oLe0#^~xwj zV!?lK$?^J)h6e_fkgkP9U${mAT}2`f4T8X`<@=0+cjNw3x#8Alsz!F5MQW}dvTN(= zj^}IZuKnt!;c4p^W;c$K-*Nv8-XI-KI5_l>5qIfM=#L`5YeS7kQvf%H5OuD?o#r4! zex@C>AEd_IsNHk5S+D{FjJ0gUt{ICtmTGXmvU>B5xk78x^??jECLsCQ!`=5ly3jOX=<%ql>6H#K#y zwOQk5Dm3iY$x@W8%jqQGSxA-X5|u^~#Oa64+VmAvs&I`vFoB9FqMIHge*QRkx zMY2N7)@P}Xd#`c%5`sbU#@oX|o!HDYVCSo&b(NFg_CrRc%|;1UHkMlRV~8RvEVW;v z>*7`PV^N+hBzj3F194VmNi_zLW+v7$c9mUnnGeYk0`{o}fRdZ~JR}mKntpQw66A(h z^v1tAYydkoU*QJ5j&sN9YUz5}{4=_Xc?^L1)PUSC*XNTak0LX&aA^)Gfct7Y^x%7% z#W7WAl4@&ft&rtn4Z>rA?Nw7v`tB2?A4XAUFf(BNI_@(ly=fi@ zJ45PAWUa{PI9{hWDdVjxNe(jCjx6>NwczJ*38IfEo^u#T8tGkIQLCa#C>P;8SgmxZ zZlFO)vfeLH^d;_4Vp&dnyIkMLI!zuSww?3GrC2MkIQW)4VlKqKq1Fx?Y;r(;x_vkU z+5^LF+(TR*e01TFgkJ7xEw9>|c)e`>$w$%d} zS_MrexDmUtC1B`E)Jb95M(9{hMnrIzaraOz|A1-M3h@=nasdIrE9F#LoPP>}0qVKt z8O86)Kt`JA{l%h7^b8{K@yUFSF}**p%#_*eci5N&EwrB`rb!tNT|a^?|Mgl3QsZ*x z*~g*HlDdsNDvy;~7gC!c1SWeu#wfkXNc2i%JgKm&=!P~#{~Pg{NroV@n4NR#7QGXy z*xcN=adKJ%Wa_r(nZn_j!`c(m6x&F#|CZ{7H)LblOjr~F7Jd;5Cx3%Gz`WKoz|cGE z1?!PP0z%^&0p}p4|4Re8$?Cz88kevU79RUx zUA!B$^jT8roxsaIw6km6@)_c&Q;N1rfK;a+OvhR2k$u%5tFa@iF`<}RxwsNrLwd~x zz7?jc+%g1ATU*^GY0Y*1L}Br5*}?}j?b}*j{i)qL=>6(W`_~)yueL+C`4gKbnJszO zRuE<)f#7{ehhfee(RDm=m`#T~(b}U)P=0${pzKqfdEG_#{oA*n+`lq$tYfy2Z{7Vj z+eaeY!_gfRRm}k3Zd|atWTJJmhis=6>6)2&4+oviXu5WyOH8WDNIv;3yrr0zN)ENl zUcfs($hkeDExbjTd5hCrOAk?Ti_`iVs8EB=rl$f?ZQCwJV+gKl%1@L8baV^1mL4cL z@;Zm#DWZrHO3JcaYB#aZwFmmr{js(Oz(#y6l7RqDr!ji1IBU4w#EBzq7dIlwovPoF z&A&y@yam0wgekp62fB`qPGFUuMaw=AZ9lS8r+xG{zmSKnS$QUWju78r(Vj`OSABN4 zJ|h{Pw7Y$yvEvSd@E+ga2DXj~a70PTy48_`EyJDz3 zghUyyRJse@`#l(S{u~Z=YMPC!gGw0~Fk|94Gh`TtRq|Fsx9NAZ6P>%a+rCBzg^2m19R z!&%W8jNz2#$qBihuRA5QN}Lb7RdHzcMdU^Q#xs759UIZ=! zZa(Qs^nXO0Kc!k}#{`m&J=#4IXA&C(e5e%@NG!hInzDW#-3i+|V20;kq{7zeRrBlbJLdW?(mDUm*ZhwX0RNEA`6sNgj*^Dxr9%oh zdQmOM%Mx%h?2gn6Pxqtj3GCp5%2invimMNH-1*6sfQBqoVav=2wUxg1;Q(CSO~;3( z#|IXm(!dl|ona%}epsr@+I>q}V74AQB0hDa&UA|X>MrBY`PGzs zI()632)eeiJw)tm3NwxR^#sGCj*LBuWlmoAzIJO86e`9u5|a$AO^5cjJ>&QSKWkU4 zwYnlITlOY4YZIzp4bL*bQ!=DQ<6My#rWb`3C&*ZmJv*mOeV>M_<21x3+(VNz#Fos2 z5%5@zb&affIiw1(%2&d`r)oAc2x{jQ%-X|LYLo7c_|np6Ml{Anv}sY)S>X~3nvJ2J zb__>U#N*!^WQ_==S|ss%KX=i57o{_DoJh{t*;#E1xj2)tS-Inoi7b>}l3ujThX5UF%`%xl^k%|AA5GBI z@ue|{C`@f)wSd8Qn8C5ymVzI-oY-xwgr>v779TxnFY24G>GnMYqGVI;6IJ`fmAI%n z&>o&z7{BXz1yp6cX_Z}E;6HTygSnlUEMUf>YNxOmKz(TV)Oxo%oC7XW9pkA8-qUENA^{30FEGAR4xrcS##gapSf2qh_wc0Y@ds|L9QHURp zfF*FU}`wEh63+S~^zI zrI86rV@Qve#OX=eP>}jC@SJ&ypdT67r5AiL4y3Ja7e$9a0P_I3W>k-8ql8TFWEYQM znV#`NghA-25v0^Lux~%fAFhD{5sIU(gxb^FLEUUac?9q9Ilfbu2I^B0ifCVR>&+lN^ZzIq_IWY#mIWvs%P?e`L)R%!6gnN zxJF^~kfRmgge#6cvlsa{-}1}BWCpUMfTBt+ES6x8qngSA1vRKDDg|^0lCI#PEGczM zNBvQK$SI8-IMI+(NUtdad=g`h;D;I*dNKoWM6>HpX%#PyWV^kC9T)+oW(xLl^3Fel zUDmPKl*TW%BJie(_sY#OF5jSohvoPDKY?;V-ouLUnJah%O{pprEV%|3PdZJPF|IU) z?*PpNHMSrCN$5gc!G#iIKvQ7shRp5MV3XY+z#6*!Hcd<*r6#a{trt$A-oIiET^ANG zibccpV(e=wH;RYKAOzbB6|sp&^Y|@2dnRQ0hG9UI=MtRQFtz8D7Wseq_i=2_(dX^4 zAz@#AY1(YavtYS;(xdy(rA@va(=NNbz<(v?Cq9I|Js=!dU_k`=PfZ^#(O_u_pCMYo z>dB~FO{J7%Wrx|IUt3!BaJ$@lsa#{SEH(joN9%RQ*XP$?=w||F=49k6aEluE`E3r- z(U4XNEiO4Bja&+B19y#!KjuWm*Us_@&94@-^S3D~aD4n#{pqYJ&RM>d1yG>=@9O{W zmFj;_f2aFLLRK8Jnd3v^jxVs^ZMMc?YM1n#9weVPhc8!(&7mMrfCyLGh~AKANHkP^ z1Oo321s0QogXH-gEwFA+mC&dz)JqtBg_X_z#C-QQHKqIG@wz>Pi$w~}&CCEh`u=`d z2v8Qv3S-$|xI8uj(>iFv8x0!Ud$J?euHB9c#(&u!7?wohwdO9Yg3x<27yFGNrff`) z6?M%Zn{FSbSFxvhHQCpV6TOXqDAzP*|Ideti5 z{YwRb58f#nK8e6e10_9Li=97q^=zx?)OT|qL7DuzsDB{RH~EwjI%ku-FBXktD*g-4_kD#%HdTVw5P5Jb484S&U+Ce%;D?$cD? zpM=eiMktXdjuslY+OfWD_I&_p4*@2Olp!Py-Kz^CK6u{zrJr3W(9cfzExZu%KkADA zN1XIe@dft32VbPZge)RI(iikbt+6&d+zn(;bQmN_)sBe-S4dh668rQ$k9LsDuv1ZL zCh<+zY&ZsNf1OXl&UYrAANB2PpW3oL>|nim%Fagp;c`PDfcVtjjJxv_CrAzUhO8f? z?>%dNw!_$rXw54~Zz}^VNK?CXpxA&5u5k!7jDS)*-hSao>62#JHQ4Qx*)+QeZrV>{hJvFzE#=b`Y>>%cN{1Hlr2s2BY_+;=ltP zH%3P2xO3wdEIm_U7Sd$0lQ07ZOW;Jm=*e05S(A=Cp7R60>FB-!ENmcVYCK#zJ^$Q1d_hGbTi=QVCc=&N7nsKeDN&-Mv29?Rm}q8r9t9uHmC0LlPk@oM zjPJU{K9#-mp0?D6fw$jAayRA8f*g43+UrD=d0KM#w0|khD?ZRsH-FBtry&!N4hE;KbQ~ z&q5|gwn=DXan@#j8~MH?#^5D>pFTdzcb_lbE8se$dfm0x-EE$ac746S18>v+GES&& z2_U#kB)3Ym$6e!?e+UK@W(so~j`{ZEL8fPV(`RzoS85d;&su1 z#~40g4C-~Hy^ceL@?SI{{xEbWz}5vZJo-3RYY_*T!(mYK*vU0eyY%o~&6XCScqJ3% zp!;FdK)*Y-NXl;wB4iJ8ogwUbrP|6tvOUBx0;irow+L>n>Qp%@E2A@?$^pcM`SzrUES8K`44o?SgwplFnO?T0CP&t~TUok4u<|W)4fWG=FU1`xnJWAEh`oZx8LuI?iRzNzxKRAh37V!F+BO4^M1tpizs8`<7miJl4<-KdxJS6ly)8bqn~W@K#DJ>lg5ryWBM=skzu(CWn@$|#era^8GzmUhhNap&5n^BFEOhoh zbH?v0pD|T94K9*h2Z2Id!G-_HTa%whlqVh_+&*a}+XE1?R#Rkz0dC0Y`7qPb#y<%I z&`;Jk10OJJLQMTR;p75St}!}89WQWe*=W5o!;~n8SIL1&t-LUMB9O@pjHk(I60>KQ z%r53`_#0G;xZyF!a`;?4Anq_+WUtAd2D2g2vh!POs?0Q7-LuNOeBjk za5t7?5#il>?7frfPmgx!$o_1;ro*PrbZC(#_%@ld?NVTz`gaA~%a4|`{nAmD8 zXC*Rlf3!HcXk-KxgT#OZvz+xwZ8!?e9pYH!0VZnE%O#`u-b8B6MG%Eausbd)zr%Pp z`R+-b_*fwqDt1vAcM7#sY(*TS;uvPd28N>i6%DOLY4_3C4229MNy+fvfdi=*!^a|8 zb-?{F^;gl(11?RYU*VMCv^&Nu?F2i@=WsV^0ZTRV{g?=w{hA1ygX9+Ej`FdWZy$C@ zH1U}QD%+EdAP>zb#dXXdkfU)M?;4Ft%!a6$hRzx!?R^Y&RxlQdf~mW4;}Y%>w+N`y zkGL4%GaV_*04gnLO4R%|-vusa{@)l+$z2djktzoTNm%Vj%f^{Z#6doPt*}re^KR)sF>Lm9( zr(N@v#0!~JdYEnOCzeMyavBNV6MEFIy@%4ure;?hMW*Ir4AL*LQe?`sI7XKpS4xd$ zHRQFp#n&(lSj#4y;~z#5KK0~2O=S&y6>yyg3h#XdSTT5j)T0ZoP+={jJ&RyQOfBM= zk`b!l@iEemw{T{!XU}1onLSAHBkYYBBY&p(!iUTQe#7v|-Dy9%Zq@P5?~i}*ns#~} zr;HiyM7luyb$|fkwT_=H7O^z1q4*q-#FQa_i8+=*iF=0UQdGVb60#~h8yZ!1fRlgV z&Vl}Xtot?;`dJ}tvFkP1W?_C7@zPc7yO&izC|A4OqBc*v^vgBNL9ZcY5&$hu;e)5! zW$e%F5NCqL@MXSfhF)F~loxoeKXA1HF-_?LsN~b(*SZ1&WHuuHcLw)=&IRXZlpK%~ zK}qG2J$II}at@o(Yv061UqA$JCC6Bd-R@g7SOP z&_oxT@hoqL&Ft(^8kd0^n}4XJ2QIXBTijLCXVHWzU~J#PQ|;c7OVFivb;oJ_ltF0v z9c_L^k}E17C@U8!3;u-8f@lLugBM1767LEX4DJY|`%Pn=ZMtBSlF|c8B?{x zP%TYZvV+;$=BkQMv>oYnHQMo*{q!Z`-6eh9=%sze?z-*G8sNIE2?={*8_H>#tUtn+eQ4okjOLUewiU({pV}`xx}BZVY7HzfbU$fmzXwRRIY?;9B%Qam%J=e( z7ZrZdfnWO)A&eBt?y8PJaos+FyXn`SpBol$_`pHGu?w^QjhB}>wyJH6t+g1NxUsWT z8V{4zA)}v$o-B!m+%>v2qtNLdek48$;BYf53hB~9_7?-y@PRcp{Q}y`=G!V4XcXX7p)i*MBkg_$@xB5F&$W+o+#8gJ} zo;);^tVQyhUR6N081P&f4qgVx6EH884wHaDc`yLytY)$@sMYV5{PJbwu*lS5+glK<50vkK4!Or35q!<16EhZm%Z8sk0$2C#Y$7or{BlZ+o|+UpMxmo%FPvkjJ*65E zIx*6&LsJa-8YhonCi&;|>{ppV`iqhXZ4^ZPc-mN!jjBWtUmiW@A0gCHmK>R58NwXr$;Nnh33{Ej0JPb#yYidju*|RL= z77{DpycHnO}FuUCayXY&ERZFD%1dr$KuwcuF z&6>l|k!da6fd5#e2&)JpEisMj>+~TW&s}3wK{{RCq%u1s#+lp7Sno&VS)))vliDft z;RP{KZKril``2sccy%3?`F*g|%0u%~|6HJwtwg?%HoZp0$f>0y7CgEtNvx0zGFF|6 zblev)cR)QVPR;EO4O+q+D!R&PVJq?1XOC(%PyBZ|h^>3q#QGnB{;DtTM5jn-w=RcCr;abpA2a&&Cxl@QD7u6VtI+yw~V1$yv`{cO{R zdxWs;@*8(=^(XIAQ*)YG9|dIMbYIA!4oT#kC(kAvdtb5cBMZ= z#LRD&J);a!3*oLa<&d$DU zYqc~Y!;O&gYa?M>vUbJjr6A-Iwur0vE6v!3;U^}-XH*L=*^Vg6XDJDNZ!{9g$dgC! zKFuMNv2tEIr{b71BPlVC?^S*NSUhug6NqJBTTe(k=FKl0+4CG}7yGpv`MnYq^ESYD zN~QO~=PR=zTo_?>E#aI)uLART0_Ui5ITI|FxPh1A}^2;EeTbu)RMT z{NUQo0)31!Cmnuis&Y3>uzTu9?w7oOTjl}i0ioCbZg#%DS9t!r$^Lg3&GVlU+23F^ zzoFsxK9AHle0J71H5PU=G`4g4KAQPQGLswoo5CpfiDiA1O1X2TpMvJ`Z<~IJ+%P}7 z=2EBZLApqzI0o38CM{&G=bzpQZj96r5H#bv>q{+1IJciSuOQn%l^hhy4%7G57y7}u zF1Zn-AW#R7Hz~Oe#<)a+gi0ct2RA|_Po8iM)>Ur~K?d1~DW_9Gp59zWS;9LIRdO4zT_CqFHdcDC1sD;F7df29byQ%OGx_wtP1 zcU>lSud540mnnut7&I_~dXNuN1~`Xx<5yzoCo=f(=Y3)blWx-jgY-MCYZP;eo)im2 zr|{=ix9L$MYc)ni?z-hKue<~O?eQ#y?prW^cR8^CW0xcUpB~Tm{KL-J=%0O#kg=no zgSp+e>mJeHe~>nIGP5;OFg7uEFt#!LXV;_ZWrt*n{>A;&vq_C978L+wHe6W1(n6#a z!cXuz2M4MAOoy_1pe+=<=<7>dn)qqm8!n^<4PJ#&cDeOGNoGpM)@V zR9Q)14c*?X0c9>Ya8ekYRZXgroz{Sa?H*WK#BZ&eQ3^Kv#Wy9XZzE|%h)u%&F4Z1$ zU{fU~JmlUF120{$E7%=CfcKoRU!G#qUTVUaIB+OjCEJAfo=O9P&na$RS_6GZQuUbidhz{F|t2 zG^vD7?Bq-9e>h+Jd*b6s7@d>_Z1Cr42;Lxbhv62nN|7Rvy~rsKY)F|JX>2{$@C98iMGW}oeGzOPh?(gw8#6!Js(4AJWR4~{TE@980n)k?g$}#6jNhe}^ z1OVE9z}0so8FR#`g`i~R)BInGM2pv(ccILXvZr$Ou}kwU&4nJuU=#HP#iz}VpRN(^CD zKft^9Gs_!j^KY*fs!h$LYa}Ph5&vXO+Cyk;8=BN0rU9l}`Auo82$n7tET=npf?W+t zisTvAmO1^4Tg2_LtW`fHRZ3D7^+}@a!I`?Cyl8=S0Aisa(;3Q9R$^Xe&taDpk{$zu zu0$V`r*em}S+vjeh8;R{xdK0GA^^H@j=(&+6*38|amwHarCq!yIY3;Ogo)~iINGl^#j+Xm$k@#K+nll|IRHG3SnkVot;I9Sq=g%VtYf0Z zGYbr2-qPvMZw}}mzxiuyF6rho=ZeEPj%8NQgt_s(Dg(+}Jxk;#e(30?4U!>UBYIvL zq(S#33+oXu^=9kSFps6VIZZecTB^AN4`SXCjWr5woQFbUoqd7Q$#$pCoq#@+CCejb z5K(ddu(Q<$Zl%->;6=f3K$CDZI(?VCX-rNEI;w}mGR6WjLeL>>MblDckwtyejo!|A zLs-hZ@u2&)BukkV;!w>dr>dhNO3ZAXc4QUs&jCfD7r_dDUTEa!ekp@t(!n?__w(P+ z`SRVi`=*vNpD5nHMjxA!F5H*tu=Y(cf4vmI=KR`xLw6)$fz*A&Dl)iWe|7{L$0O@T zW|T8Pg~PDO7Ip)n=%Wk<8lkF3SE8@CsNOTU24AO<<#^w?)oW;ibZa|RyA~};U5fEI7weZf3g-#e;|#1F zEjMI5%{JQyT=5CJmFXv$$6UB}GdAb4;Ugqx4Q9+V_Hv(2SD=2RYV@g0(dt;rLe7#M z1`n{UvRyJ1x-OzljHd^?7#2%wq_xTse1ZAT{p!P^cj##z*@^bbxV6@vD0e11swEhg zapb)1z%bZW+8pm=0E{4$8k$<3VCeDUYlM~_e}4d*eN`At)0ulLVxgGBn4RkdVvdh? z&5KfTm)EwVnO-t<1sF%AoI^Q6Wfzp$Y4q*8QvliD?yKm;f>$>{DaAc|cRYUhl!gJx4MP6xpZs5uG!0ET;Xx_GvzW<*}4z*P|>H7WvLsG5~nnZZja+3?_C)>$O=RP`o4r&QDgo5H@>-65D@mAq{dniZ`AQ&j%(``??P^q+%C9?fUzeb({`A^Q0ccP$LI`v>D^S!<$0u1%PkJPsx;N-s(YL70a^>TLbVZ}1qZEn< zy@8PBPPxi9p43kH^7%)bC+KFaLjipDmltzKp5LY+3mIL{BgH>Bu4Rx|w>!x&?0ldg zNSej$=|=)b2LQFC?CB>0Np{STYW(J)mX7HQ^!xP)`UdF1RgfC0TUKLZA`MVr9VYC- z*)Qz`dIjk#2K%(Q5QGtB>>l#9xCRII5VB&fi3FQf8JUWsa|t%N2IW?4Wy+u^gO~)d zM~X<5&T<%Xx<$fM8u`bM-ozH z(t|QHO|md`4o21*wFa|h%n$8b)VhXR&!6L*v7or7Xc3Vk%V3X@6_vjz`YGZtZx`oZaxc}jXYVG8@l zTV$yOa+J}%ww@JZJ$NUnyG-mk8bsSSRmoaguRVA)S+Tv{Mn5DfO`Wpvaxy-_pfYsg%}`K*dtypGPC<1$%^(km!!VE4P5gE`$+HAhb> z@b@F(k?b&McA!!xRe&yk%S$QlLS@ zi$c*rzv5qNS#z$+5+sX;2y*{TR@r?Nvi%MabBX}=Pz^aNnzYU$ffvd}A^5BZA4v-& z;MFrKyxkT_^Y-YVrtDooJEmvtP-B)i%^9_D(xR2JlP@f%3#?Tkxx6mbdg)L=#9R7j zEM|2#E^h}V0vY^8&C4THZzjU2rX97yghyiw*d*%E5|3{l_F53H`%xi;x1b?zvCQvpj&78v4P z?BNkH?S_$f7geI?k6*WjQVdOyW=*_{Q-&n5fcn)CO&-(sER~td+$GB_mFO|bGwqY1*rL^$G;NJT|@nQ~E$)mt+oJa_88q2{Q(hlvw~ zY75{&Ts42*Qg<3To=*yUb$^WWKJT8g^8PYNP`hAEG969ea`~mxA26->;rREgM(}^2 zZQ5aG%4-~eJv+L7)9U2?9vVZs#?bw!k<&YE z=x3c=;hP@Z?P!E6s@#CXLO@5;%Z{V0H~PD$tt;LikJZ?@QJ~QC*VEym@ZSpxA(3#h zf?S4Rrd*ajiNJ#8KE0+~Bh51LzI77CwrCjs0&O);663jqFM+wAD&_~9^yf}V{z=pu zhC!#k=;A>py5=wT9Ox2nsj!SEa~M5!hBk>yM}uXUZ=O-NbowWCWq*`Nx_>pTN8uJhPKE0$n073$_Z@ zEN1~Z(mS&CI#5wd?pLB0(q}TN(|bt-2Pgk7fZUFR>v`V;OPsY5FuTZe+`B%R@sjz)&iHor^o0AvrP{i$ zcY$KG*<_ES(Q3V0dSj#3Zmky^QaWffL3AQu$S?O0_nQ2PAS*ye*O&numr?1hPAD=U z?x)~Os8qqPQ90X>i`7k2I**eWzHj^R{yT9lxD`vD5C|uXYqM-qg+HhwijhW>KR`@r z#f28b-LfESt=`O0etC}j$6os}Ma>aC{)xzB5_z5JeVR#nDwXt&%Er zpkamZ&6o&BGV}yIX0Spo(gKQ?DocH0h*v~F2-~sAF_I`v)M#zJ@QD%xzrllZ z-#m9|gNjs4WY2W}SceX3kSkFopdGDEpTma4i4VA=@wSO8ZAy+HwYZen2Z4XB(+Yj2 z0@eN%kFwzrs3EPIG#Eae%|FpYtU)_-4qw?YaOnwn)~u`NN#U7PN*fOw(WFK$Lw6CV zTp`$1%)x>ZzzQj_2S&X00X}r$8FYhun2Qr_w{wlA<}W_yN*DQ5f`(gd;YqcP>DUcm zgW!pn3~n1Eo!#NrK*08aD-4nN*W~dU-l+!SJ4Ai|WxeO$lNQteBGCRjbBTXP+}~rZ z(gXZ&_8!;lPaVnb=s0U|N&47$aKocCAnF1Lctk)_y$EpjDN@7TMkJF`YFc(njWi95 zh0V(AyDGqmzjuR_?aZwk8X7d(mQ^&{%s!SHD7L=;%KgrS0qETu+1-`%Y29(k`wCm< z_4TIsM~)KLdC=Cbv(0hvQrk5M>Ss4J#HE9O7;Ec}bvt=-kgdxOwaqXyX4CCa@O#Td zU|UPO_7Er9Smt_jIIrtnvE-0Pb9?g8<=)f>2T%7wG}?;)yL$+)hgNeFEKfvq^EM#K zzI@QiQLhcn6J!5RY}~zD`%kR-8*uDwr#>^!QE2Dqdd%z|!FTs0@=to7%cChru2(KX zcbTC+EgbtDNRH0q-sE*UOxxKTV;Y~`!R%d1t+&)D-fw4uDxQgguEBWko(5fq3ukPf z!o5E&uR&2=GdI%MTeCM!G@fgbU42_^H?Ys5sGWPgye;~`pDWN~H?%aK$)xQ^yh89ZnX7adDWQ=TuQYoMv=U z0nv^kThWF)aI~Qa%7n9MK<*OoThT@j=yn^gPYs%BM2-y#Xhcp7>S+d#dyB(sY*GT- zoakjx_t0r{Q4yW!V{ed;4dQ4>9Bp%H!q%%rknW0wPzzhh<_3_orHE6*&0ABd!qHn( zO2gIH?Ga?NCw_^g$hw3&u&xg+u&?_-_#B=Z;0R7G4FG5>9UJ7*P&msEcrCQ5^*hln z4j=?o?o26Y&!6VWppH4o{|P^^F+-wsvZv5Tfu@-`4m!FfNj7un)31pGRXs6acCDoe zVUB20N40dWkwGm!G3cO?SsDP*&d7!AqG35D$O%W$26CP$3zu#`Vo3&T={Eu5qq880 z)vI7Qj~?>32eRF`9SFBPMYSzaZ_Kj+WHzBXxY|7h0g~M?`BL#wU&dWgT1*KE{H7Y> z-B(74?1K9c)r{g^LYWY#X()3#2Sw^Raoi@3p{TG@RhCpV{0u7o$#mPaiZib|p9Tm< zQ?;nPM5qUC?Tg1!VW!rZ*P2_3uK&BPMc-W;xwj;&we_H!m8z^|$r{7vO-g0Cnc+#*QqOd6e5{>3=bQAGAW*>iV9A=y+ zEL{YAluaB##Zyx})T@2`0Kyp*QJ&Bc8Yp_b2pgJM0{aiJwds5E$Xsc7pFBp9VXjH; zVPQ9W09_QRdSOj9Gw#@QL!jfDpP6JIJ9bWMdDT9e)qyC|Kux4@w^*6tFqdLiItUPh z?=^gw&akoTlShen?gyUnZA3v<^DLJkM5})N`T+!v2273QTU$G@^}u(4GmkE-?mY6X zp>q36!mQM{jEH8b=tF@p4Xy#$iWViIF+K$0c>5U$VF3tta0%k^s`w>|Gbp<UBH9fS=bCK2-hI<%-hvfnxWHr)G%^j)@GGf4xbns503Mf@{cAO2jPC zdi%w>6P;@FEnfyFh!oO_MG9P?on%Y{4T&?E*vreF@RuT=MlwzrpSPuT#+3e`uk3*k=67i5tNH|i}y|&RxKs($7w`8 zPUDc?oydBWNIH7Do1a%VOlu>bhX4b90$us!Fpr(!4i!y|UE&7^?@DSmN@ePhQajf1 zRu>wS^CGcC+W%%}BkTxIO0AinSs+DNPpS>dfbkjM!kG#|XdF(Y1DxQ9NIzbmQ0P!q(i3E{P>ZLk;R zg16Fz4|f4F1i#Iy^HBYy>KsH#ttA!%OGwhA6i<}lB$eD`-gV#oo9Xh9|5F zkLLg?c`_f!qQJMZ12h zhgT1oFMlf(%XE$eREMWCR$oe8sUMeGt1J-|$!u8EG!RzZ4-^H_@M%4~VH_OX2sykL*BrdzdF3L?0$Nx@WzfH7@LcJ>t~5S#-x;t5Z(?5! zJ-ksfGh9{-eKCt~U7o{`DAfCKUyM$^u{Jk~klvnh6&(^tx@@rD-`A`lkZG2PIZX}e zBBFk|D1?qivB9GoZgFNtEoAXAI64qGAL~;gt4X#C>-CjK2DbT9xZloPlwYU{-N%~Z-%-DR+#M=|bP|D%{J z!{q&2I7s~L2B@}w=o6EX^ice%iyBQ9RLhgf^mf8aN{_;)Nd8sN+ApCqQi&1kJa%2> zzDjQ>hwxxj{X*Ci(;dK(?RyecQ6xrLD({~QHGA}tX8}z%L$M(r5=g{ zd&OlY)In6C-xM4jP2F{ao*jD^(Iv!g{lI$dSmw_E;yWfB!fiuBs$X$|QNF>D$ z>nV*3IOKvV1k%%4tXJ^BBYv?5oJR4(kc(nfE#RC+^*m;&a43hoLaH?~CyXxIweIsQUt$kQOcw?7hjQt`9|>w7<+Rm?pSm+lRCuFyTnPD~B#x-r zCsdje&{X)l!a_pOGx(ECLQ?(I6dAjAp#k_D11f@6d(g1GxwGOAhm6o%;K3LMZFm=$ zGk9}$7&kNe(@n$(8z?vQR&*$=-)^AUY??8W>1R?MV_rW&WQ6iN>1H^FQ0+wc1cWrr zR(A63#&$v;1=9FfYVhH~0-)`q*p}cp?ZYH9OhfJlfPUrrqSoi+%9!vXi0nu zkTmUs$^eZ(IZ{l-yL)jc)$@BU5m&MFKlL*^J->a8goZ}h#ynu` zzU^u-NZM=963l7;!LK^XCEq%~&g5MnwxR2X?WehIQ0G2n6=jbsZNEvMN}s&55g^lE zQqyj!%`GZ*@A&4@5yj0s=V2m#%Jnbd&)H-`+LvMnG%lPRgTCT?=s=?pf&(mCFPM9~JRUk09akIIC!E+GZm_`EF4u6CFbPr#mu z>7)Z8>_;tAMJ0I4s_60bT*ytk55ECzYAj*#hy|a0e9^_ z%B=WLCQMFI%T%!^`v!@kRD3MCF&A*hSXZ|c&@bQTEh=Q5ONCpeu8O5XhKcKE4^072 z7Dwr9C8s#)ykb>0930)yD<5%WkZilYNu%4npgQiXP>(((EOx3DL~KMF4X3)|)D+(PG>2L+=X=d%>|s;tO0>Z@7#E z<+MUT`zkxC47b_cs(crkLne*w-F4HrkU~8AJCIT)wwGvhT|CX<;uRJ~>Z$6~bX66* z%wB%|AI{z}$g-~6)~(7)+qP{xD=Tf=wv9^LSZUj~ZQHi(%$x6b_P%%T9r2ww=f;d! z5p(`nF@KC0bM)R@ds=1GUBe%LQaBC2dPC~t@KLGfJ~2!1O#?z=`_uH@J<^U@*z7eE03*4abFWnf+^Dt`ytutduTpA<75Un7g}5nd(K*1 zto`>`u4a+T@bs!BM5u&#q~1*|+)W|Y%H~gZmdcv}g1(}g&0Ennz7A0+s&P-~l`X7U zKHVnj1+jE2%viGUkQZ#dw|tzdkEOq+SV?r`($)+DYzjsj$}bu{0I`2&AO(7;%b;He zg5;=xW#sJOuh47Q)x!{Rj`)>5N1bxp{1!|Ou1DvmnkFp4nt7M;zF%vvAG_)S?Uqf9 zBfmhLsoGIe+50qy29&G8(a;vL+~AD)AtMN!^K`WIvd)az~%)UC&+J+4~cCm zQzo{H6Ntb=)~mS-SV#bbhvPzk{(XP7*T1$?C=$6FUk-oO6u}^y0Kmnw>~GBpn|=JLCq%tN%7`a5awAJif4CSInos#d zl^=@%CxSl%RN`=l8d^r`FAKg>5AUa>k8xz z;h#z`s8}z1)LI#2zAgaly277IGtbU+F^zFc1i}1S!s{@&re2|H>1+D&du1Ax5qld`5=4D8}~r7KF@bg8e(zv<#yHIaYAi*oi`{c@~tLfrh@16KP<@U8*Cn_>4EmEo;@ zR|WXlJQ=+yJWB$y`p|0M={zaMsth%*6EmozQ%Q6R|3KLxVcLtuuPgkkAp}*q!erEmz z)78Brn(l(KFD|mfb453efk_zR_m|4%hDZ?M7c|Yu0n=Tk9j3W=ZPR&NwAa9GO{2NsmXhx)k$DjG`&`zJckoT2ABLN1~dOE`6)m`v~9 zfL^$pX*=(WX&NaA*(=ZT6;uybpkPjc~z(Avde=-od=NSE0Mhf6r3G&LR`{7WCge-t%TSgnoh|4u{1mNqqR9JByO1j}2 zOuFH3@zM-48p9{5@BB* z$YOKlUM3TBNQ-rNbEhD4g2-|sZ>B4#gnL!{?z5!h~zUK-- zw%#Em`$7V@bl*w+i{!bNhyGPs=m$>kCt2^OHR^d|=gQeQeg%_@z?qn8ZK?TG?nm{r zFSOU|v@boI|9Z;GH1*BAp@2g@8gpH3j@oI-MX2!o3CM()SXY=*z1HGQ^$2%fb;xpK zIaH8bcbSE980MLq&%7%Jmu4v(C$!*r&2J9Y;$+aXk&ExjRZC_;VQj&_x_zZA4ql>_ z|E}~c$5$AZAL%K{R)RAGL{`9f!U&~2=HO)7^g@>aIvXbfI0+r(R{&hQKD8wLi!3#1 z_xD`|REP2vwy zfmzHdPC%leS{ZEjsfn&sP&^XVoUzLGZwpq5pd&bT@QDd(K!g3~F*F_NDz-8E4=SVA zfdh zI-KADNMjS8=*qIby`ZGul5sp*Qp}w|s*bG5nsBTjy*6WA3pk~c@!0&UMt%WMMpMn5($OhMSZey(|N=>Ui9MFJ~z7z6Wy`(Cj}Ynu6rhRhRS2hh`r zKlUjJt|`-ciY$G<)2PG~LIjN@tSBW8aAg-kMahO5U;v|;0xNkZm#Y)2B+?@%VatLv*-Ve}w~{7(fwrL+IjnuQ`b*C8={Wi9CVlV+nzQ{G{k3-? zMrggr2Z+fznve&hM%DZ+*r-%n{sp5bvSpeOMU*N%s0ZpHluNNdT5u**Y`uY_R<@z` zNSdYV&?@9j-5aADwpp_va1>7~jB;+%zl4~O;&51c_;GZ zKo}z)Rt@{xX;GAoq*d2dEA?A~4meaV2^G3JHJivbV$$z_y}CMa@)dZzYEXCQ{w(-4 z+Ny`B1rFz27P}BXlu6?pB!tTT~-jK9^HV`(z1nd z$i=#(aCy?)-^6unol~)7BHPNcy8Shjrr95#bqIIx9wK0wOaG) z_0&dtNw3*sp0>H8+7wR_)!pHlb@J?%`%fFrER4tVCQZxxW+vtmh(mmMHq!l$rTd{< z0AF;Wz67GX4rYBBR%->so0V!+W3c>AUU57PMS{?hJgKnBFK#TnoVt1Gb_u}KG(?8@ z$``>p*;~uLH)V@X!gNpEtC84;=IE!{H2J?C3W;h;U>M#0xn~(CZ~Bt&TG9ERvOY+&}^4* z+T%HuUC+ymh%WB4&Emw&k{#OSTd;f1;l$;Whq`fS5JfI6$o)fuWOT~RAeBLDT+Gxz za%x#4n?ZzHRuocT9;jNP96GlkM3_yBO3$@HI(-5g~hJy}{bu2uDcYkBDAO4|* z0<1My+SO0GZ>igKT@oV&E6WE1aZ-wsIk_jr2@FFsv99JbGili}~z$ZQn3%Dd;< zUVU)}IQy`Xr6Rjq%#r0sV6smSL;E{oGB%O{7ddS@J#Iu}(VQa+GYc;q{t{?Ygp3dV zNFSApA6f3C5ei83avP8&r?APTmjNrMZuBxdc%}1Wy0Nb~syW&)R10T2%nzW;#h*VK zi<<QDV;|x$`Mt=G)e%O1D1Uk%BXkEiSkJb&x>JCvYW!t z*Uk~M+#d`_x}2IO~=-t^&Sijb#8{Y{9@UqxIWkq_{|Gs-LhGM-lx$$ zdAwkP3rA*4bkk9PfnH8!^x|G2FJ4V#3p<6|yfqL7qFHBLfiSw-$`8eFeYX1ZCd7%4CZNmTCRW5QurZQU}}X5U~GZzj4M19-P*} zd2=Gl)~;*tSI&LY+LhwK1}|_DtEalk=h3)$dMk9~3xDtf>#z(@u;CSAz9g%+Xk&Z+#4jROs9|KRIb?<7PZL?9L@|#d)9tOX#&Q^Jjn3btiN$BJI3?GExYf49&d{5 zY{J)KSe_1F!byNd(+_Qz8&ML+Ei$|~dWynkh0vYKtV5CMO1j0lru`SV%b$hIT(LV9EH!Hznv^>3sLpu@{J+Grw1uNa)HoewTD`N?y z1?^~>U=J?Od51!N-Na--gjFju9#D>~5%)$x6^K%&y)!kH{K7GLUkXK9`-4NCl;NG* z4Z=1<;m?|NfHIUHnX7gpSOxZ!h4Kqj9rt1sO|gzW#gjgA?JB*!8_-ydw66U*%F*wt zzjq*(^IEpCC0Y_0=zooRK3A#373#Lw32sNzhrQ!*LU}T-9q0Nz^gM7Ye&QtthGU9}%rc=gsPJ1gL_mS-~#nDYGTgz@E(Sb_A?`nz^8u zxv-c$5xRc-pV|dEQy#3tsFtwkS1blZu8MOjXasWA zFSzD3g3`?_?x3uixn?xt+RR7~wbjEs$2fytF16$fj@E+=kdvRLZj zE_;NXNMvbD$#0Om&?pqlUu}xjAqtSa;bK&d>VLYiuN6WW+{wCudxi2 zsbgqVkRc#h_Be(0Tb0z7UxVY2k&rlS11Gr%yk~ivOn|+7)*6LvUh-GDyD0hSe&-2m z5vsuM(CFtv`eE!_f{-N8Pw%_X3X@Mi^2CnWdYg?3kq* zu?BIB4_&io>bk`l`5MI@0F5DzF^(xvQ&E>u%hYlA-BOP^P)~{6{6;oMwvaOf-W8gd zU3iZ(Msb>JrspBWpM+wLNENQh$1EUW>8c2Po3$|?fg{sF3)!F0l&%AY&6lD|l5d(H z4+7*4D6VdzBZ6a?3m}e$(UzMn=C%TwF2O^jkH%Vv(^(#1SPRp&ggkIe zq<~|eo>saigcP7O-I4g(j>t2mf_ZpbDU2mpo|_6#p)RB!Eld0OoX0EI)Hds-B)$A; zOv-k*>TK(eU07^%aJ1b}WjnD`Yk*c?pdQQ53s_o+OGPuC4>!POv$j=N&TcI8SkT5j z;&(|wC1vl^GMx^eGt|VW9tNv|RxOOX^a8c`2!+jSe!i!jF>wl zm>63`201mrX`k4VKgkx7OzkyyIpLb{Ru0+KJ7OSadMeKw7v|d3N5r2Sb3b;3C|;zG zoklOfDEt6=j3XUY^fPNQ`)&I}8YuXy&vzDB{Q`SKl4jXO?5|r9$4SB568G^*1%+0f zB30eZ_eb7oC%LgwK3J*Td3_`LlGe#*zwr|Iul>LkuF}O(GaG>O332QC#mQH?YxA+K z->UO5lh!4-%-L=Ha^WUp&}zl1KkTvp;6p5pXfQWEo_j$ zn%cc_R+}s;)_I0nf`R4!Jf^}LG**67Jj*;GZ7TKDTQ^D+rY+D&+a&# z^l}Bq8}wTc>5k9B>1>FxiHx}}lel#%D&!Uoy;QrIEWbP9xU{{ZmY6dd0GV=XVgR`# zmNEG_<20NV2#1N>D2!;_o;+llXRz)XDXtK^160fxB8nwB9pUq+zj+rX)8VW$0pTd! zc1^y0xXsApBg`( zKYX8Iw9j0IUn$kv+f3el@!y4QzSVexZvkHdKR)^Kz2lc&k!n8^s4FkNaf9G|mlZcC z3(W%0I$+yypu1%4i%r9?tZMJoChs};@5VNfS;d1>0bde7K4tN}!+%IzZanQ)~9t@Va^sBz~JjA&eqKdY^EWX}ZZ9cO)U!s-9wyq|=#@N0j8{U6y zzIS=uOy{i&JA%*?&s0*NGAt=4bT=xb5l1!SI#ia*EA8EfLaY{+i!1H@ z#{LsVtSZZzMh=k^W0u+wI}7mIP&-b(qS6y%N*kl-fqv$Y5ysGUF#tBBg5tu1Cc_Q# zqPs#(`6lSQiF)fQ@g>wOgyZRq`Y5xCay2HPJ)*ZCqSoN`Q&=2I+q%M3Wn&BS$}CF< z<N%AynY8vbbDiT>A?$amEQQcjM9Wuhi&KPM_ z>m=1x4CoY$#t+_9vdgkttvER1)>RC0Q5MvfH&%3|CzPRpN?zraYnPM;I2F*;=u!t! z!yC?^66eK*XkEn}Yk>oVW-&=Uh`BJJF%+fdw%u=QNzUehD$?12TN_4!(3({b-_!Zm zL~m1ZwD%vZlYu1Ck3k954}b{f=~UT_ger7w)mX##2sd+!`H$*zx%vbX6m?xE zic`Z{^KXKl=56-bq2g?@kBG7RvIBw{$ZgL%#}7&?t1#79Fee~6EF-0gaK^C!^7gDgd{r@ z>5u}kG5(Z#&~B^{5HfoS0T9k)%QV#*hE2nlX3j;+8Tu}%8yLAWoXGn*j0{Tvg-3zH#@g3gQmfpwii;xySxVR&^#tSd$72cghYZ;8wuHPrx z00JwCCcHr^**vn9ec>&om&PW+Lecia+$(=)Pz;QpbYQ*AcmC;kT{x+G=y>O9h6_B} zYL6eQ-HHZ5GlkV`E+}egRx9+^eMF&E>rd_|GV=Iuli4wAx>WeWjF8K5BLRq~FF7LVzFoLqE6U;D+;U>xu<| zpwSu|Wrk{R`>7{6u>D!N zIwX7DI{$2--qDY*ARm2!{IfOgyd|l(eQ%99{|z_2XLGj)+H0~VPhgw;V`vH?$IAYif@5@Te4`T*Ip@v`X+vq6D8|OPB$q5x` zUa?5I*ecsZYi>nhMLw&J3~olPJEN#^v1?!2HJ>-+P@d@?_31#t`;ys_91ay3q)Zr-(jLP+_8lP>kg4wdwgYBfi%8JR`iaQj8k!g_)%VTs^ z?_(g#w9_NVbkbL4#zFfzHL@G3$?ZqP=<+*g3vigvJSB1G$GjDLCD|mDbu+&(bi2=FH||b+Jw;L2KSg zW!w)PD0K1W3Ff)!L$`bdgXPfy;h1LFAxF^U;$tD~K#m$g$*%n3|9OlVcwTyH1=)Bg zix;@x^yV*YVrd(Vu(`X2v@I#;QJggRY>GIvm`}sGT?E#Ckz?Dn#I}EiL*L$!(<7jM z3={DB_R+tMhYjgE;Bw{_>sy@8#1P;om&J$9fWuit3F5Gn=_PDaU*k?jaFMi-ONDlF zZyPp;Ran$TD27hL5$VHV3Y=G;mtV?RNrn0V)=ty2oQ?1(B$nAC6|!MDZ4_v>#y)V+ z%S#kG9OjEM7hr^&N8N_N$44e45o|+VlbJMc*gECSPbfw(CSzNt0NWr0@|T?Yd3NT7 z#P+VLI+q=Fyqc~}r@V6fk36aQeE>L8MkKL(NFV)13B8Rt8dvk2V|9Fnm0g-~!HPHs zND2I&!ipdRZt0ZI6(&Ns{va?{!aOoK{bA{>*A{t8PVNbByjvzihYb4NTyHK1GPrE3 zk=imkG)^{0D&H(4J2H=9Ar{d(>dlrxvOjAo4vbadnE!`i4JC@HCo8Rq&(81BVEr9$ z+;+260^J1gepuEDss%Fc~DqR>%puz8Z}Zw&gZ%TWH2%D(8MrwC+K}oEbZlc+^{Fj zKH-?&-Rx5_s+`(ALO4m+f;fD=LV-q1!`eM;m3vA(OJJ+(aG+5x?s2DoMx&k1k?K%M zy#CQ+vIe~i7(0#iXd8(7g$qd(j**Ovdg`XrX?kKY?wog3nDXWWKkeVCIvC>Jt|lbF%HnBLuoC7X!l(3vxtD4lrnxdOb+&Fc#P{?3j{PytME&1!bb_ zZid#?U=;Fe{-&qhFItQXZzWQ7fb85ns_Mt${;Y9Gl4 zw5Gwa>SOun!*Pi~{)ArZE*#?p%F2fIMsc?c+9*_A;}vs3785O_&-!+eKC>4*<10Pf zmO8M7xIWQw`$~iEpI0Ot$$w_+A-v6<5<>y!u?^k@msUHv_eP^OyY`2|Fq996)d0$c zszsjqh3$r_)d5`dQ}Q;cyk-bxA)f>LQB%NvW3)gK*e$2IFhlr? zCRdoJ5QEh@GP&j-J^zY+)-b{oF3fY1M+b6i+u?c3PNxRMA$IX0`l6zKx!jrK78q%n zPzU6@+G?-oTQeEN{m5a1H(~)^A#f3~u{qTUgZF_u=+hf&>p^-mPU-0>Jv8ZR(5(Hy zhjz1REAE=`zdXwjWHR#(j#wlMb$_{djE+vuq^>x~4Srtg%Jg~G)?vA%YCmdB4(}`n z^EiqSWXz6bx~4SkEvTjQt*n?l^Stq?ty|PAXX)02-yV3@2=PNekYCs>MPyT#=mRKj zjjVZOy3r(A9QK9~jhpHD^N5KbrK-d2F72+@%pr8>QQ8ub&N&0L^b-1`1fLR?$%;M5 z0y)_le%ioKrOm&iYCW-*ym4fFK~eY7iS<<_n_baAd0Xjg2_oZ?h9=wWMX4>zBrS`D zkO_!d^u{fKs|J*JXNwK%w|vs1X&-Tj4QR1c5!ygQd4!=xZnr{ZhRU@>tn(DYPtvlQ9VA4~duPvSNm%nGGdn`quY5*9{*{^jtBdkX zly@=}@IedMrDMM5K~3*Mc;7Nx<&!knuycj@bWwYkklCdV=VF1bN$hn%>jmibVXwVt zX)#3!-zwxx?}!zZ5RyP_D5I*UxS%e@=Wh{1EfP}x{1l`A%0>7R#`yFXZ;wuFj!+U$ zkxf$2BQYS)lH(<#YFfs0lvp&8AhncK|z-wJjKa`oHKA6RTtoy zPX9;gqhan)I)4w`TJ)4U(N-nUQ63>fJ_5v?mU4l+SxHQMcAiYKw5eI{HaopHzf=rF zBXKT&0OO1jFJA$?B$GNn>~|>>4cSzI zUNfd;rUXeNRKy9~jq;>+oo$btb`uMfNDVdAzRlaO74zp?9T_<-UWLji@zdltr;`Wa z3X)-C(%(?1CCaYz?(=1^>*bs?rLEHwSFjBf2unugcxmYBE9HOgT+P^0lnRF!$4468 z+#;#8kqh=KLQ`w^kAjTOKd{9x+oXur6e7;At7%(#nB`-Zrg=?FCJI)e{Im^JRjw65 ztm(T-1X_Njp6c~p_G>mkEtRavRa}Y!8zImM3ZxmSbM3s#q+AqXfHPVICjmB0M>Qs= zX^e!lCOv5nzMi{&bNeMmrGEkabC5&8VZ1Vh_zufM`QJ7B{!O~h|7`aChgJ6(nc|wj?+* zeO{vJooe{YEb0Y6v9cVMn`cLu!^^mQC6*Gs8y@Gdh53zw4pI!zk;y7HKBO68NbLwX zX%A7zAXX$(USW^);N;luHCMomTiwhf^<)~sSme@hnCFF)E~wszesk9k;FhhtT-{pX zqUHS^V1fXc390rI_Ble(&Yq}#>rzBlu0qmXE|v^LM#{6qz{6l6p$x_LMpic4y>MB7 zn=pDD>m7~IBZ+++KCWQ~3_cxh3D=nR(td<<@;Lo~qgf)`5NuwshxwY}UPZ8u@s78) z5qmnZbnfzVYO30H($VVaDh5g;#v$eoT%e3>kzMcQTvxQ&n}j}O5#rLB?;sA4c;1rb z>I$-B4Mv!t=U%Va=P94Th_fjnY|)W7$USYurYJ2- zum-+9HdzSdP!POs01o~QSx8GG3MRj(GzqJN$)LmJc#6k?3?Hv2uo#o_HfNYRGRL`#C#|6+ ztERPv^h)ao7pspHdgn_FZ#sI;M)HqbbA(z8fB}dL_=mm6nyb}uV^6V2hLs*@g&;l@Z(H`9O?m8X}%)|q@M zD9jw@%e{IoujzFb4b)3| zn7zw+LC$c2y>U<;ny4M=jquLQX(3qYwMA#T=VE;Fjz8 z4*l5^yz@u@oK^%y=G{7m*qFG5;B=3UnsQ!hY%BJi(5Zbha@p99eX+E=imd)-ahhLQ zPDc<>mV;(&AK~q}(KGdJ3p~sN(mzYK+jy={{Cl~Ed}C1m{gVAZF^YdT>zKv=YsW58 zS<4nn1?98SO0Bjw3TMF1+iw1kG|CDfRZ<-if}+x@MH-ppM#gXLcN<{oww0=)O?^Nb zsJ@){Ud>+rZm( zm*H^5bM(2>)%6PFLyX#++=C>5E`Z!yEXWYyo~-9+&W-kj zdlb#zl_G#HxCYG_oUZPaO0V5d#sAqHUI%LTOu&;UWXaD}E4v|It@S%wvpmikbtvc+ zq@Tg}khe~?b|KeGm}OL5_xi$QlZVOmO$P|(WX?;?SJYUTr>GFRAz3DJ8K6Cmhib|^ z?x|e|+-M?6l_hVouwD-!Jjh8=6qb&a6O^Md1=3rScTgARD#8HbQd!HYb)1{MxU1jg zpOlp-Ku_t%j#r(eMh?-5_=r7A)=p;8-`|<8i5Sz357xn>BTFxgy%X|KuX{-Eu2f2% zwHha>ZyUWwqzZco(VoA^1A4gmFd;AHb%@I~A2}AH(V&$yT`cC*GfgLF5;;+#7-4o! zgn6vjMm)X=x)@BbHxRdzq>zzB?gl)cme<{B-ITr@p7=;UgdLEP8P})N9QlJ(D9Ych zX0)ARf)jfJ+?ey`031VlV$^!^cw1__3?)(tcgP*u>5L~#Me0Jc<^ZGFD3C%$je>c$ z0~QZ6G?&4rC3dk$fHEc4zHOfNsmZY~p+{&|$S)>PcFClL($Oj%nRNsc2#= zMZD@JXsCUOj9VX2kq%gVv21Xkl#EjWyO9F1*|zgNR%Zt01W45uGM_FLViQRh__5sp z{GttFgsS}BuJu5k_Ow9^vM;vk+C7Kq>)Xxm)nDuds8(_D%%mwus8^9_05C+Sijl?I z5r@skst4&->cM$+#wGa*t9kZoc_1Bs<`mpJElVQep?5VPH;p-im%l`={15Mz4Nz`&{eJt-v9LEy}O``0Jk2elVmsm9INzaJHo^|!^C9N zQMiMKP`JC#8a)=paz_dZ=%I+6uR|+C@~phn+>+r;M#XkK`>Awe!H@!19FV zqT(v7*-41$IoH?NvbT$#)!_M5Y(Z3T7(a~^b?c_Y?0dCsKyvFEYT>7SOMdc?0k7_3 zZb(KB3+L(BJ~x%KhbsmZN>ZKOgHrw^1DMNecy{Sjt*95!!oyZL+n&OZ+AbcIE*`Ue ziPTu=O!TzG_s|T2#0ZFF? zvN`fc^To_~X|P#AvJf#624&i(1#5{(7PA1gZSE>co!PkBl`6TFI&h7ph!OLBfD(Y! zNOn_xHod8I6xj;i7wY`(OrlJwIee3S<9_ip=Sc;eE2ftxd+BG#(5Y?Apd#q;msh3O zeWa~g?iFk$^gYZC57}GvPkYDvsF`1xGpw(9yTZ2um@x3I*)|fpoR~-_jtufKlqnxkST0!T8!+-Pa4_y!s zd}qc|(PC&{Mzx2psp9WIJH5_|J(yC|F<#jAp{WhhRjh!3WyFd-p7R)vTj!{FWjEF*c27GUrLnQQ=wOo=3| z3vd*E_Vm!{pLw9rMV6zbaYy1SngPS9EN-1W0$`+XS5a%MNcvgf`hy_*i5Bo1pZU)p z16}LYk=Ilzw~nv|$janQZ*pR83$9Dd;nTeEFYkQ8Zv@lJ(FxBUTSa$4`xD2d=A#u{ zESjUbX<7;eaR0&)a%im{3HK^75Hui|AG}+ux?@NxYXkjt;?Y#^j#@JfJ#Y8b+FPpL zW5g7z3xU(x+uQ0Z>GpdGhsCm_Hm1Tcxr935bZ>8cxR{jbPSY>H&wqHl8DG2;L36!35O!T+tO`ET86;{O*$ zYxuu-9t}!YG8*5pj?x|;Hfvhw&h#p}zi{+h0uvdF;&mwTVU>G0{PnhI546@UX01Ca z?7sRs&HeDkB_qN^Nd-m3G#MX|Ms~LhxsM*@RV#=|ZUndRj=ZKEGQSgvH#?u-nvQgI35}uQPq0^1$_2djW9$jAUhQzwm?+21M+gC%WU<$472zea`|!)i#uk zl*TE0U&e9Xptuf}2Q72ldX2K50{3lkbLSlTpWI&9`CU;HFOSP88W#|!l35|41! zoKUi)jKvQ$M>|bS?kE#!tgI5ltVbyh>_K2Pms^iq6RH@-!gOJAenWWBDYU7^K7Z{> zG_MnelL}zEvXz#WwqyIdEd2U?+=&j37Ui;i7K)%uo34<^vW5_S*)K}P*xIVofb+yx z-!TARAg-NQC1I-&u$LIUY-hWBRnl*3bfAngnQo0S49~A>nP}~CTgU?fq!Tq3Lz=(# zc=Xx!l0EE66-b@5Icc1D23s(MVMk(jtKXF1Sa#AG;T~q!l1~GS zpKkKk<|z;;x^^%0tDbcqf6S5hcT6=8hxrVyG!D`Ug2*eZ$+5@%44ig;52rAZJfHR* z;mE0zrlCz7;K88K6;K!RfE=5Jx!sC>A_6yEu5>u6vtfU6yl@|u=xU0cAJVB`GCtJefr8y1} zf1_a|qU|Uv2LxHtGf()&dv?22r(uEap$PA(I8P{A&Cog&`+kg>&s-(vc~Q?nMITW+ zob)pbC!55yZCeSW>&AMt$i%fnLd*q~V??}yXbz%(eMz`^#2l(IYHX{GW^1fd^kk4~ z;o?#xZ1T^mO}XbdY7T0g+YQtOr;Kp%Uh1`c3&&gVIu$D+;2L2G<||*}%di1lBI@Rj zGWTX6`U_Re%@{D&pbl-vMi$#z#u)d4!1UkPwRL0NF8r- z`*T`&=r;nCP^ z2FOI_Pw2-~c|!FYH*Ba|$6AI`r(>Q;pP}eJ(ehV9cuIl<&yJh)oc#VW!*j#rN;ctp zFKJmBcdlLu@|JS{%rG=U#8D#S#r{p>=J?o&EzRGJti5{sp3xvRa?hiwuQ!*$H#fD77q#O|?3GS7Hld^5(i!#HFLemSoRJ`ug3a|at@VDVE zA{E#oGgfl==Pi+N{y|GMc4i3iNS^?ao)wTY+UzrTHVCI|wqz~IXvfKWUlu0s~n zNx6O}>pz3$t-XTZT>y`W6M0VydKa3S2xA!3GZxw+Bz?QUnU5fi=kBn@m@q-Dw-FCN z|FsTJJZJupd>69?--FhFzYhOT`Y+;!77R?1PFDIx_U3v97XP)Z&G;U+A}yhO3IkXG z+}iZZ_>DirLSvdNn=5|h_b)5XF9UNqOC{lt889_6+vmqxNwTS%#x)Y3;EEpR9 zGfVjf0}rqhl8i)&`=|#JRqWayjQI^op9(v2;Pu4Sk-Zr}^c)Fhd9FYoTa(H9(^2nWP`2)O#nNMwY#^fRZeOiJKXJ^wRK}nBxk>i3l#rA`Lm-Yrg_TgFhZP+W6watL^G zbe-O8U8&cTYa>kao}nFzYc?+16nxj9ha5qaQW$3F-&)IogR83uF=R*x-6fdQC7qZ1 zD48-lTAj#wW9(?6MW3V{@b@gki^hL4a%Fe3#e@yOHk}!`EBbDQ1~@WAnWX7qF2aH= z_)?i!o)C-xo_`1`)ngTI#)dtdg+L`IS4U^XIx%wCF+B=Sx+v>8a-W zr9vkoOvz6^hbnW9s#sX7I$1Awx-~`ABJPA_rcm1L61AF1jz+M!L5yg*rJgdFFgCepTGOus1zhTqSu@Rf^DbB&lw z%8>R6hC8O?WaA&xS8NBlJ+yR3l#wCY(bl-qTL!kUX_I#HyeU<{Shk$H7$y7LfgA|i zC)wJtknkI4!7g7a`%bo;n8u@Xh@`|qBM|)MZ#w7y^x3rS9q&L}!|LzeyQd^yK@BzT zqSQ(Hm}$hw4O@uHwTVeIT@JK{nP^t%W3@CmV&QMRHEQ^08Xr3se>nK7W<_ys*}BZdd}(V8arghMK`k2qNm{&o{jNMde}xcVn- zrS#c12u~j%RFutF@+V93EjDP0zHEolyL^`nQ+ud9EX({EV{=S+{oq7LXG1IMMuss3Cuo`UIQ2;x0e?10$v6b zg)&D=LXGB91PXQ`=qivcNy_LIp|rQ&SG62AmAH-q`y<`Gt}pf^-M*?sM)eVlf4v3i z&tgin1=qo`&b~gwcEUM{E(13gj01nxF*dbrK;3cMF9J8$_>xaUXL%`nWP448l5~h1 zw?9X6R8ZtmHLJgIDu`J~*$91?&mFDV_1s(4J=C9?CZXJW7%SDU1aYh~fMce$HlR1# z9R7+F8?dq7lDc4NHsiSP513mDA-Qtwd@KaIY$qpZG;YY-S#3p~-&LN+gCtEg$TK`^ zj(&VYd&9>(`A3GsR)UF0RN?w_E}3S>FzF zA+S(KeVj*zs<)FX!VPQVJMFj=l2G2XbDVs+KB0>P*CzPUnazn6ntZAXuk^iIjVJiB z5UWgulmc=(du@t0W0UG~o75#pS`)V`Xyxky_bX`g*XF`RoCf0dQd*e5m}O}jOsaE7 zE-DongRO`9d`V56ON|q_UBP9o1d%XimX7}qXWtYgN|bF`_AT4C?Yd>#wr$(CZQH(O z+x9Knp6b^<6EhR>`n{Qm%#V|qABlsVd#$||PoJ^rrs?;4>qpMWJ?GcevyyeejANbn zqbDV>`R1z9{DvU71q3)W+L6mGph3YNg~a&XQlU5pt;rG>D=H>9x=$W z+dM1Vd+#FqSeZuJ-{Y}{+ zQad1VZZPQ5`2GcSq9^@=*n5zi!#>Z!?Lcv}!QMaFYcnrP?1Du)!@4tkeAh?3C=Bxh z?0AKcMP!?~{y*c<~4xJFeV4Q&X|FOkp9U&cOp&jh|8w+C28 zF-;ratL%6@RFVj7*Nz%?K|w6&3?dn$ce|RrT#gwMcydbb8?yAq(-H^-AP@7YjmQWh z?+DJZ@$m=_3t10CCU>dui;d~IXj?*YUYAk#Jrj0IYx-PQ<87@8dSnsrCKFy`wD5Ku zL45yWdWqJ=UPA|UH5v7E)tmGQK5*fRK3Zod) z3}At{-D8^5<1EPOlK-;hzea|Dk>@p|q6&GF^K%=HcH`hZK>*gy4!pD_==y?%Ut^pO8ukn`Wk*#9HQVgBDk zn`)K+C^q0Z*jc?|w@+*;f6oV8Phc09mh^2a?j1DG?vTOig#5foXGb!{^u+!UUsvc6 z2%x!$`;9N(7a}|{Qf;;b3Qeh2Zy35-7s4VIc0XKm(8BbJZ*)5CdA;p=)&9Kop5yy= z+}R1xa$wEJX}=!YjE+KhR4Vpv4`#?X{CTt61V7_xzZ~nxPREQE=0foM=!4$v`5ck|#4UYpj*TKtx1Fpf(@Tk%6@kLDH?46%Hp67eWF81|?Eng?Yrl zqB^%JT598Sr}?tLh4_(}?Dgd!kh##tkmrLzn_?`mDEX4QsoXwgP~gH zP^wKJgrPht>i(^ulDj&U_<;;+$Vw<%nQ1|TSaI|i!z?g0CwEFXgv`|C!h+sOflNPd zgLP4~ou#^{G&0zIZ-@ATpfYRpM=6N4JU!h>e#)#qD`h2$F}o#AJw|)ntkD=3T2U{Y zqA%63s6Qy4$HfOy$+aZKTK1=48I80(t}?rjN!K6>_7X9bv^iYjDL*S#N^6nPmkRYY}n9h`t6jdU#VC)q*qUxB}$bU#do@ z+-a=sqgt`0>UH1+@zRMsFefQX%vsP+#)p;@a~N`QJ-|DtLX zMj^fJC^;p0epOxo2f<%sEd@IaZN?gMHxyNrhkV^W%M-+tS}HfesBPqZ8UofrNr7vq zH$Q!Dud1q6VF1JebIwT~4}t{7YxGZvYJ`=wY!ar@)WJHF*14YJ!9FlG0%&F0{K`(# za)@Xl1-ONF0Z+o7_v|i2>jKec_&^UBW4U)T*HH^Bc{_o zoI$(&9$&0}L;Yxr{?Z=}Z5%$L%;>$ebA}%^#ZxL)g^^kJwM{9I4-*SrsDtE8y?C!mw@H)HTZSj*fJmSKCP zGAJkVs-sJq!S8}awgZk&q=#i(hc*3Jk3qfuOq8v!1>14Q;7%dju3IbcFz%aNg*|b# zP`-;BzHpW8e8iz$-pW;PK-JHtpUULWP0#qhF-i~gn+W@YvW*->(n1uAc*gw{R%4lC z3}6J&k58z-1+?e|GYHo{<6cXN`{P#j*mH(q+uFY&T=p>xY>Iu*29nHsQ`IzgQTA98 z^5%Wf0?`V)7da>AcnjFu-@DwoY0q+nn|#O_rh}F7KTv?WTW1NC=Q`kHc9cx=^*Sid z{X+%-AaU@M{Jd&lIRwN^nT&EljS%)ZQR1{&4n*;XPVm#Y*m;e{*vv+rDF=DF*mnd| zyaHXkc1R9AC;oc68GG%Jy?{&J@N_Zu;33={7~daRs)5I5I_4$v?6rla)SX0Ys?l^L zQ>|dxXh^Njs70*IhRjH-N?2QNp?v>QFUg;x{j~yVXBf`>Q>62cMk}Pd>6$q@@eJn6 zl?SFucxIsSr02l|Sks7-_YU%1g~+I&3p_t`7#r3=af8o{@Y3n&TotIO(5vX&h2 z^N+-GiWisFi$rx03~gd6`G&;z1p9%5*>T)vq{FD@vixR zPDYBE8QHT$uwshDI4NTcDPUkR%CK(}J4B&2oxiirUx~V{GXhVtUHs)uSg7r!eHF{D0&mBNhkO4~V6I#x5S|HI ztM#<`$EnL;t|ZH)eLsz@{qZIMB}o9VRkHy8lh{|O85`)tOrY}^_UJ&qC+5VSr3vRg zLb)86KK8d4u2Oa!GL#vGd_q}+n(K@(BM5g^R7O*)dV-0zHN~>wvMbx8Si*=gZ>d2N zAWZ95`FW+)ydQSrom($E*r2_izTOf(OnEp58};ohEqxJLSB38Gu@%QDpVvF6{;%^n zf*424W&V{}SnVPAkS9{$S-m{b0Tru-S(>7)RY9tk${Q>jxoRbDzQgBXs?An`4M$Nt zG&f-g81?Y^UdH??93ySI$z{Vg(0FJ{vncRy!#?zNOw&JlH4VNFv1YKkueLUf@spEnj~1#fjKS-E}2c}TNs8I5%HQrlPB6jUj9;0 ztfO`8m;2s>>If7n{Te2QL~D)m=&btC_$2Wm;^M>#VkHR6^Ias_cJw$C$36QtSI~%b z_B_uR;g!RP2|ID8p5V!QSah5R$p1C1q( zMq|af>QHy77pi}&Wn9swSB8TFhkj9mD;^?J#OTf<9y-5yt1mDrQUodswpqrQ6X0^2 z=Kx0U_DP*sl6k|O8k8lxJ_v~Cc#995zo2C59(Tg7qK;kWlm!wWvVhz)KH*STs4acu3UZ{0#Y zzz=$)AQeTK6NpuqQ|7N0Lo1xm?0i0>8uE8nV3eB=W*{#A({}mnnQ%&U-U+@y~5Y*^&rrz!j>`9|Il@iE*8G!b6n+|Y7O}IT9Y`Mh1m$GF?zkAZ``rGWX ze7WD_(MB)0O0peuT=Ablx$Y)Mr0x&%OZDF}zy3cyA=AH17yf19(U@tH=xk|WRsC3~ z5}hD&n({^*fgdbjJSQNzLzbw|WXz;!LgpXFC(%dw@*f}4H3i>%E|mJ>v&VF%+tv5; z>lWz`Y|e1mfeeyl+xbv8`g1+T9)D0Z1RTa0l8%#5UtLc2Eu<`T&An6au5mgBZ`>1# z;JsVLmK-NZ+2$|hwKe0_si-MMpXnjFlKvBhyYAN$qAMP_r&;EB%;q`QcF7_i8cVE;h_b(VdG1%sm z7J)?MHO)AMV^C@2^?DPvOPiV7_gTKgetAY-Rzs>o|GS-T_jb>b6*9HqLXed>VzWGq zJ^KLIoLL*R;{G~^WPkw^6v|?B&7+djcx9x5go!@Qy(EHd{grFm%iPN1%Hw$)dny)w zYpo2sFQCApaI+W&_TKt z{U`~zh<&1)_#1(86o55-x>u;nKZX-U-ZgXY5jR*CxwQ|z8Rxc>Z@`;1hhQq=BT1SS z5c_cd7~X3lwkH2z1v33xiv+s=#zOtSyg2^VDb%60lvdKed-Qj8La6r3$mNMJ>FM#s z7AwqfM+L)y$??NTGZ1L$IVa=N`&>7=5=*S-NjF$s-p5O5I;~q+*731Aqop%DGA~&( zoLXy(HbmD;%-639H>@&?F2A{+9oqjWtNZd@aU63UduClb_t<(}$;x^Mhf%%&14b-d z13mOUct&r}o_qr(@%uu=<$j^(v7ORHZ%+@0^MRg_dPq)xshdL4H`4uvoc@FRev}x_ zGd-^cEf>e+v}`UApLRfNl+bakleLrHB7G1Hk$q8gm88C42fYU_S4*1mJRa3ee^di)FjO9{miN zhGneXBwI6RLIuzUdX|=UrA_&m6|m*JOZyl$o6ERa@Sq0ZvXsxFOYuM(bEoKb3iH~8 zkhG8imo2fmUX0SXB<)VYgb_2`Ic-dd8DVEzZDf#*ajHyuQ1MiZdkZ1_S9^NiVNDeD;0&qO@H1r>hqNySx;dSn$nkvT@{Gmy^ zi4vZ@x0tt^oTufCb&opBNx$>^pz4md=nXc=RdAhy-Qm9>sQxBWelE*Rtk8>m{zBfC zmXeizOk{po7VDP%K+^%U2fG<{K=UAal7fK%ETlB7C0XfPf@4J(vVxlW_kI|SN{Lcj z>l4?gk!WL&k%Jn-m!INH^8?Hi#{5Spvm!1Vdu|;&Qlg#dlr)1v4YlNq=%-g~ksV0D zz&A03^w)uXk%RNX)`m}DL%dAZuL0I415y(bC7cqcO7MxjtaC)qkfH}B_p^U=nAULD zu$YDx5Vvj?Ai7X2u|{7s4@nIL;N~9o-UPS)>S4mtARkBoe(^&LG%X9pnMag7rv-k- z=c9j6hEdr_5gV8g^ZJZILMB0p2&lOoFY4mri!M_t=zJd0hQ^Uus-9;CT$TXazZ=wCSWixd3^W< zP^bmlES9)$)tlGykJK|6{u~N!n6w34X-XSwCX%(_*5`6crh-iCJK;U8NAy};-jWna zNWzwhG!(6Y2w0i~T~5#Lbo6asev`A3Q41oe;;pg6wpz<0PDMr;Z}VK17#nfOJ`(L7 zR}+x2vQT-m*$@==s{uJ%7zoSXd1tNS7}cl5Fiwq^jf!yvG8FCdsmHmGKb7Up3R zXH(7&^1)fGC*ThW!>#Dp`9IY!I#;YxsvXfKuuJLP%LMkOfzJ-D{JEtgELRMxMY4om zbn&OZI7P0RPmmm@b7f%DF`qFvM?M7(R=~W2V$hwmcx7kBizu(T0ThYARn<7!`ltI) zTwrVJA~35!6!h_*ubABU1`p8(B+>KO$zX5~HE-=?BIRP&sAMA~W-#K@h%ba}Yx!em zyTP{jTlwdZ?rZs7=e95f`6$H0wIIk=i!D+zmz0*s8JAqdwGF0S8+iTKbGI!=o~IA1TM;Q|_*>L~@kOU6)_jRX$1(^M(ag5Vmb{$2jUB~0HZv5g z@6QEA7dy1sHIGyzUE(UtTbtRH0xwmL%HCi_-}8cG+hr4UbO9w7*pB7R`^zV-W~akI znyXaB6+&I;ZEZt&c|&Qb-TmJ)fB!S3ijL~)>YGsnko{~YkhFt(`V&3O2dK}sR8=Xejv}5vF@*Lr043M@S1y^*HWV3ZQGR^V65p;1&K+xb>8G`{r91pkGCD!YOCc#MK&% zeqv^rRA9$RZm0*e@f%8_5oEY#2TN|-M#O%TnxTaCN`|`J@ywP)6!(NE?MWB$ef&%@ z{e@l{(UFQ~XQzYcY?ppb(=^?Q8M*bCbLR>ivqBvV+lIJ^%(8286Q-phPbF5QuO!jY zIYocnSUTENYk4Rr)3sJS6Vf&JrF~jNDWJ{56**Ryx|4{Rz>k#8Bt<)(TQ!}pK5iYa zRDLJ-Z`B8(lL8N2C#Ce23z>NO<=YRDgB{PP;2I^zu(_4lpG7Kolmju@_FF4&a1YqD zjVvQ=Ee4F&Vxbj6DGJ4ZJRek?b8i~16!Q$9Mie1rKRD%eWK%~jkO$Lleac)&I21$M z@fE5Jr8H30N}T^n<|Rn~jro&>Bm)e@{_VX=W<5xmnHk8?qrOlLB{ReIY6v-3HX*)g zY-SEllg~~vDjMiSb+mwzR6=0DiQhXh%da68dK%Wq8^Ho4IEgmjsdcl3oPr5{U$^+P z8V}&!(&{S(qYeXggkCw{Tn)VO)I5Hw^{zDg;4NRfR^$D7<6n6LR`Z>0_JKGL)jsd- ze-o^E3@w+DP@Oz4A{}g#uTYEXP?BbUW_b07sEqAY2}X{SKtGq&ccwZSr4xZ>$HpX~ z;gepdAT|yaA@?(0gT#J}2V=%LC}hu)O@G-gtts1+0MudvUwOq6<^^^v7&%#3 z1=oLzLL39%h#`=YVy{uw*K*_^RIR zMm_7v@F7%2(IzZ+Q2S;KI(dxRGRP!5UvI@c11F0~z)?`QARS$VTo;5AtJuBol}O1B zC)GDah4#)ngL0e^H9D`@nJC#^ALjd2Gav~^3;$+Upncwc9MahDfF1{y78CddC6CYT z2pwM$kTWoH1V9~X7M>a#*bJ(Uv&{%5kLtI)T{$SdfIF%Ty<0Nq80-<`JW`BI>}>MO z7c}!d%6N$>d1{Y%<0;TosqF&GgKd-lS2pGe*P_r)G431g#|??w<3!j99zlZ-Oz9is z$9t(=vg$51Um;z=HeRvrthxtEcOM=9Da#x0Cse7<$n(kr*W0gd>E0ulH#*~iIAf$Y z&$ocL_{G|)vE5G~v+!SRvwU-qLegM)X75(9?XX*53hOqQD_5|{lUC_4U)iVw8RZfhs)1WE`kcB^8|`GP86Rx=Y#>#9l9j)( zSMv!@)OB@m-V-M~DO=9yk^2ctRyIO4)&5eHX^yG??c4E37XWMOlKKW*kdgK!Dx~}9kO+{k?TS|5Gfmj)* z)MJzV8ap|nb0XJ4{hNl!N!r<@?8l6Tsm%e#Pmbbd!rqPbCa{v)16pSO?0{L-ddkTb zewdG%SF>HtGyg=IpvwEX9mVXChwN4cf3DjHKFRcexFoM+*Y zUAwViQSc>f+kz`S8b9pX%e?&CG(rtlBQmn6OZS-X!C}=K$Gu)GzOqgJ#>UJ z-5`J6Df|!}=6JM(@D2^$(CGw+d|15WCr-p^OX(azvyUa-AXVqEync00QMr@W?g7>O z74FK3bO&C)umo(+v3v!y`HN|D9K9K=3}?IV-KE|xP4{8Xd&m`?Hd>@GxX$;dwDE)+ z^ps+fu^p9e595u|Wa?(gR|wf8oQdPME;mQzi?XrtLHX8XGAF;50Jp)N&O19N82GK2 zskOU(IVLJAQ3)7)3@<-Au|IHw{Lf|0&8U4p5qRGdHNW@lkI+!yDN?As&OM9pw#tFBev*F^&rXYH2s@5t0E-k+_=N8tBxF%`q zlW41rvMd9gZza%MztmJ3s2^=j_v)dixwS4v=|Qi4ur5?aUwK(KtF8?_^Om=`|D_OW z>&NLWzJ4SrzwRox<%P2Ss7!3VIFZ+eYQ1RqAUK(l7w`$UI4YHG@jOz&Az29fRX#sU zRhCTiS)-Ut!&$`CR0!QIzCwP5jh~x3@1@INQe`=P#``1x*~t5 zS)yw#`LK)80a<)ARZ7lvfL#5QTR<5#)VEb?2A5lquuD^jyw;yTBR6|y^1NTG8HL3x zuN|X6R~O(-uC~-fxf%qyr1jp{`6K39w_Fy)HOGtAHg)mo_T29Ug?Hm*_1z0W4Mz;NRh#&G`4>B$Fwu5Q0mdmgX?*+uC<+>p8(Du9Fxh4hmJz9-^EPE?iYImZPS?j&|#A=a07$_t&&M8A# z0fLY_2gOPhtBv~Cs|9u41g92Mvgj+nX6#cx{~$ND1*AwCD7d+YmT+1cxDIuZz|f(L zx;X`^Db)EIx-iDDT_s(%*OLe$^DNYtuPGNM**6#y;h~o=m9sGGs}q)L4ulX$6l)ZJ zaehgyMoLvFrOj_;-B>(gNrEMM?dl#1ru5T?Wn^OkL)rZfwv%^#1ZrGVfi8ehpoEFKuj zh|tc!7L|S?19l>#GM8Odz?H5ukQX8R%e5%d0wn~qqfU1Kk-W2V57?`0k0^=7iyChI z8Az_Yt#prJ;%!kYt^YtZ*NWy;OcE8x6{-jN(>+E;eZsvu; zZF$IyoK|Z08@V$5O~JzCF7?(9`TOtGfPrtoRVa^hocitKmoAy#Vk>+r^ucs)TWrWW z1Ay>xmkHTP7e>FfS-J?Q>_2=TNkF$|I_=FH4vt2i%bntBoVeAx2h(rxM3rcbS zZk%gppE`$Sj&}+iJ6kf0*GzbJOVqZa+Z7LKMW3_q^b*ydO4Ky_KXm|oAsv3!KFyi% zW#onCR3AM4?UkFk=e(>j9a~kEDmX-SbfK(or&u~wED<= zh96VoD_&h?hg+Kd8vI6#4@enIpV8iHJ$-VbC#qpFa?~1qDSag|C23C(G$>un=vNR_ zpD0Z_r)Cv;mY^G8f^c77KXkA7d%QsD*jdyK9sW+)Z}eF%)l*yG4#VWH5?j!0ID~#$ zoe8$nuB;iNzcZ@!1G#AIVESub+<>L04;Z77UCGxateZtz^s4tTG@%EhiVaehq$2uz z*el1cp<)C2o#c1FTBIggU+*aOW3qWfJphd@wh5XC?J->KW2;|!a(f6{W}kFSIx@vC zN^M2$k|1%7@4#*--OVjvcF|Q=K9}rksC^$XRi$iM9vz&4$kM%%kF)ym3+GRU;E61Z zuu*l$=!9O=mk{Sts3|O)>sxeRr!OIbEWyc_fC(EWyFu)hIMrM zw$n#e?*a538e-?}W}oYxut5!dv=07RabS}EA{Y4sej7mlyE*^A@Jjy=$yFI!S-T$& z)IT%o(MdnG^}mrrX4uhE6Plzco>_m*CP;3mK`56&r3x=d1eYa?K?I;6nVv}*dlGKs zBhK_0*69Zi27sR+)eB(DR*_4<90+qirQd(vyIUQf&CKWm$blOoD9A17i-v0BJUNvi zsokcJly4d5%mlw*6^Z+Gk;d^M*Wk&qohWz?GQKUX^xr)9qxxSsUfu1I_$w8!lf>~N zdyD9`4{5t_I(ST;&*nrYFQw2kq!_U4hz>c?@ACRvNV=u)hc05%4EmZ{Vw@HSAfP10JA37q1z?l2*@UJ=`P;5armH;@r#V=4>$(Q9ef`EZW zta$)DhUsX-Clbhegrjl@#&CQ)tScb|*TOK>7s(-EC1W9TZVog+2j43qem(8W#=;wQ z)%PDIo;A65bg0~4%`=IEyu!^hiovq-myNlrriz#MQhSZ%PaI+wiVE+{$h;)YGm$~O zpdV;%=)spFJ8da%tclB6Z-1J}tNn7jGrW)_ZAkEUh7&d*N8#!Z4?qq})f%$=nheB% zP~4S2q5lC7)yxR!+5NzV;6I$c{~Z1OFS_zi5B`^y2r=`&y0Vg{Es`km*RXoSbOZc8 zyba_iC~yl>!`{5YRqC!>C}>4Tgwi(Y`K`yS2kE+`#y9epa2&pn@P0hF541vMg^~rH z+)Py=`LF!``5Y$G=}WHE+s@eD9zc5N9e&7Wgs6O*(WXF*EGDDnkYhdAV{0utIic#X z$Piu1eM|6xmtlz1=%H5Dn$dxp&G}!dk)GUW18)Gbk(Q zA{ySwF2a<+AqDpGU1aDI8`v7=)XHKl11rS|r_v$mXQun!XUdueb$^{R4PxFD!bR0> z)d%_Rj>u;UfN^PV)iB-f=OsEB^#KAmlq3e-z4+N!bVu?>RNZD#bn-lTsuAht^~Kz| zbwi=K#hf>5wFt`u?Mu*MRV+8)d31az1Co-W8l+&56+EX#qIH4l6C|p|T)i>}h_=Q9 zt_0& z^Y%E-F&iPkp_6`>a)vbOuIhyVb8U><5%x+5#SJlDdhU!kB-aHMc$3kOnvp6u!XS0p z!2aSwK7}J3>y#YGskv&9{Q0*}j$e^emxZw?DNh=0U;0U2Y@qHxpeYM#5+-^kgi4S- zKqZ7QTCPs-@#beAQ&9;tyIy?w0(vttH~h(3Jn)k;f)-Pmoa+!zJX^@C8-L^$8d7{!0>) za~z^56gmdK?1^34XgQ5O1nC8O4%O zoBxJ6l&hm(bXaA0{m005jD)c}#(QwN-WRygYRc5I&fz98NIwez%jS?2_OM|OILee> z0Nppx`ZLD<98OBZ*I@k3FL7D7&Gs|8PrX|K~&qgyKr@(0fb!S8C27ov2R@!ckX^8fDmz}eb{{DII3`9R< z9hM1C1n65lABc(`ji&iZktmSD=`Pbsxxpu;1A6s6ra9(dI3-^aTrttpu&lPPab--f zdvvr8@o;}Om(56}?MPzBn$xv%JNcNI7SN7m6`-TTGl#bxT%4S4fwo;lgZ2Ca8sK;p zDdoKzz_KddcjZxQpz}Dhp|vroklhKIU?m%wv@#hdBa578u@ZBk;jmzCFeE0)y+^b@o~YHN3I6@th9V zb>6?WD2+KD-RVflLLh^e)Et%#{@--YkF>bKp+`fy_k zt=O5r&E)iv9I-ur!MS?Y#@Shphp=bZ_xb3F;j`QKJ$VsCqwf3U{1O|%JAXm4d6y;o zN=5qC9Lep_1O1u=owz-g`2h9(NZ|7siq$>8fy41FJg{~45*=~Pe&Is1(i6KreeuNk z&O5+!{z#1RUB3O1fU1r9yW^k_@I4*t%YK`y^-1T`H4_W>a+@E6hX4rl;;%#m!XUw( zC9tQk6g*s+8NeND0|2?#GZN+cKea`$B>kBh!|~f z(5N)6AQA|T7{ZuA8Erue9$~?K83X1oa|n+jnhve$sX+_v-xGrx+P|j;J+x5H@1$|D<{>Xpz;&kGdLCYhde#vT8MmBe-l}0|w$d^X``U#Dk&a;1lkrAOlMP^Rn zL}=XO6_e7{lK|j?AqowQMAp*P!6Or#T9tBOBimfHjG_3seNf87P_5uIJS)z zvE#%sKCQPVa;sytFftN7vb&>A4K4L#UqM@|ByvLCKIU{E%H%z{qfG)$wecsE;O$dh zIoa3H)+&vZJ=^yh_5k*FtjL$ck9O! zw|WYF4}kE{l#ZS`$?a{aD5)+l_7-)NRCKhK#8N&|SGKfRQL(;jMwpF~ac-`Ls99c5 znQ~@n<~m!(N3JTb)L2jl>@@HZjXn3G~B zjk4%x=38pzK)ry`4x+d8Rz81gsj$GCTAaP8v@Wx@s)cNfgK`g^^*4$r4ONB8z$5Qp2}G`g(EJghreGMtfNDKQmuL(=|uX<-ot-P zM?QrPwH{a=C-6jo@}5&u4enjRJAqXJDd6E5ypOPJs*GID>qom}`$w;UPTjk1P(HSSi6%WN>mBiA=9izVqFPOm#pPOzPr&Kr- znDg2&m5|8HSSoLOR*YLz5MAvC-YLF$18E^eL<3>pq+L7+@sJ1q+}QGX36J+J{svt} z)^h*sYB%Z@^Rd%L5{-AfP#Kw->FP(((He62^W&3y#Z#CXG{tq^M!qL9B*E#kt~MYUw; z_nE-l{$|7oUF7j5i&@#IbW7W6O{oA<4S;4P6?)YCA<@Ifm&E?ESXFZx@UiC97=@8^ zB55930vW6cs%x`HJ z>LZKt!qod@%%#pjqhF-U#-Uj=h3c?e33u%tNF_2C2PNX7S8955*+tu}?!l zeHBJQY!%~CX9_WmX&S3po7S2BVHIDid5voF(P2fchXq5@$K!yfS90vDC>Lc=Y2G8V z9~4L#caiaW1qOR1N0939f^1ls0If1id0ctTc8p+BQ~AYiFiT;Ru%GH5m`e77d#WaoljL*8F;Wyny;eC0(kx|E_OW( zzB%{r>Z`^9uyY1v6Zc{F)QBHJx4fLRY4y!v6hD=ZshAij>JmoI7>`*<+_&TOxdkLM z*ko3+_VlOc31dSSe+|jt>Hun6NLazmbe==Is%p3^+^w` zgo+Ux`rGXPJ{_T#2Qkl@`i0dEd7te)C{(>7l|4LkL|IJHfSXKOT|-3F)wsWCMHM6u zWN}CVaW8|2tYIGBcH-niP0V)$7q>lpOsge^_jdPtbyEJ$3K<>SzF7i?ZIOV^7=Hqz z3yUw>F>4>TwGHW-sGBF9pES_j!0`e#7wvtM9ryUg5a@{DP<#B>wStXDs>4EO(ng#( z*eNzw=PhPeia-QX&?$s58NeiLzL(@|FBRl6%@v|9erE;=O`XL8umu}!Khx&EjeRVZ zZJ%a%oOLq|jWo?hH$@fI4_Vc=X#pz^Y-hu|@4@9Qd9z%iPDgLWS zS|t7&)1hJuS+DqvEz}^K*SF2ztdMwNm&&G}6>4y5cbqD9t?p=BZgT?CsU53zmjk)T z#MK4j*y^5zWy#i}C2?1J#<{D0H`u#qq!0E-0Pb%w^6Cag#1N7W?5nXdJ~WWcEs1?E zRa?maJSfAy$r=@j1WG&OC-2`zM|I}4KCuR z%`N@**)X;fftHaVUq_^$m=}!mL&nXMM{9OMm-RDgflforppJM^G{J38b^_}aKYMa& zYNAgLqFf3B^bjU&GPQS>-Gn-j?8XIOFrNm5^XNP!NclfFfY1pd4pnrN11D-U` zNmHWQ>6S=AtWjx1ORDDv4Ea}`6gFc1Rv!#Plw^!74$qztJ72Kt;WvnGQ2R!#CXz4d z2;|g^QL;E+c|3x;``Y!rQI@|)E6ZYwa`F;OP4Oss3zraB*Z#MF#>^XAsl8!P_k7XC zDM$NXYJ%dW5*rIm&6Xsq9=9O8SVVAHV_Cm<-oL2tW2RxXVy^K8@((f+H$lFC2qFUzf*tNt@0{n_2-(D>{DcbvN_Z- z+bRwwfQ{G8&q@@W(j4v@!|SW$w-(AiNqYz=xDo1*R@vKP#5bhpqvjx9Im)_55VWGB z%9aXywKVln4Ny{(o`onpVG!N zf}6*bSH_=<6-rK?-HLu__eGiAxOdG&zp_t9KhI~f2cXHF9Wxni?sjN){jo0)r8HPK zlc-~=_Vh2tQ|I*T!kN?4Is>N=q@V9Y9ialIbcE*sE>}HG@xEv|t6eMKlJgA+0lC26uUGA-de7F^QZjeBr@0j<@E znW&ud-u1;3X)+G_gMsPJNWZeFUHLSSJn8Iag!7_Ia;ZU2fe8UVUJaRLq7Z_vp1N)V zm#GvQ+I6dr7yU~5`0Gq@mxl(knp|8XsgTDIgS@--oQP!2{E0kLL^(l39l_VNgTJ8F z44*hU6()gk)5<-gl-?1vQzfmQ?D77`1TiLIG3U1}BTa%er7b4gQ3m*hN=Fv(KH6GW zE`LE|wTYsorefgAO4GEZ4%#X$uzIICw1+F=@dZfY$Qb85%@s18JatMx8_l}jkqr11 zp7v=N29shCDPT$CV@Q=5c5AAj&|rZl;XLH6iXfw{`lJ&b%p&Z(m`lQ~(M^#`&!#5YObS${ zyb1N`{JVYt z*1KJ+VpQ7@!z~LGjEJ;043g+__J?+kzD8BIcRR_Ga}Y)$ENh7LjmVhw@Muk`vaD=* z%94$(j<*0x!?l;3$BKMkW>iUfyc~OchHHV)_ByJ)#p|)YYRP+4#!b2 zXCm5}a!>-25q*oL?9s4$;PQG)i8&JJY;C@U*HTLpz7)nKNFbT}7HLw;J)F&3h_+6q zm49+T1s03j4$bx-4x3w2Ta_f6O6$$8EzJoNURs)7Zs63`>@H!Lk}NF%0vydhlvgb) z_)6%7l~(o{i%jh_`cbU&IyG?scZ`$>6~E9^xb2h(TBXPv)~zp`h}q|_8UHMBrfaH= zg|l0)htXVE%@fFnG%*R~mm426a4gGU=(I)0vzRpTZe0n*JTH)tE*;7pWZm8WeKmW6 z=HF9;;(x4B>)U@oCDV(PjVR0>E$YNHo#+-54B(fr(Aq9oep+r>4*@Nz+cDa0-)?9~ z-dSkqh>M7vwJSSd38v5`rj0BkwQ zr7IVz4#bskzzVo!Z>Qm8S6oQ>^jZB~F*5(m{<|{+91SVjEuPVYR(S zL5}vx$q@|~5M)NJlHPvLf9xcex73DkfDe`NIZV?~J>bk4BsqySu9_+fO)l?5JPmzQ zz5_{sD>9HDk6nv)5mF@kEPoFy)CC@mD3R`n0%q)S@83X<4|>d|Z4;r%)j@h@ikXrw zD;>?pZb2v_ro z>O2kDxzOQvI;hVJ7r-Gu;0N?Jco5u)_=8u*9o@f7#l-DoXn z-pw4Zw`@@@69g0iw8bqvI~+ZGmXIu(KPWmNXw04wn3YpM1xU)UA)rk15px#p1cnzNu%XUN_+d}(K>GX_^h4Yb zhD$;E`W`m`w-D@tVbDZ9Sei|>#BC9D+5f@XI{?`hY}uk^+x98jJZ0OiQ?_l}wr$(C zZTpn%`gObS>+aw0zwV9~KO`2WbzE zSKzJR87!awX2)4#g8=jeCJy8Ui?N`SEGjpz$YK?t1) z{hH8&(lN@&<=dB4yAK13%7;w+;|nGOROf>Mbq={xXV2p}qofhDua|mEg$dYX$hSQG z8)m^w*w|GDJ1}kWv`8PpSYCF<@-0*GB8>~?9xEJMQdHNt%;bvzMTHV{9KsbUQI8xe z5Y)x*o&bd{-68R2Q~?d6U;{~=cO|_jvKO8F;U@9EfSE(nPeEisIW|#!l{Rs{p-Uld z=bjp(Bm)5rb^sGb-wsKLmwNKTvv}>5y5U}7!*eEqyvJ8q6wc=)x0d2urzrI^qgQ($y}?FVpb$~Tv0PuoQGXf;Eyh0Lvq|4 zMwHV>>EXy5ihu?w@HvUJQ2|5l7dsdNKfgxt)UhkRauQ?26sjiqUlR>mta!;eSAS*G zcrmpUy1O7V1s3LjaP+cz{S?OrQAOt zB8No9>9PsBFbE910b~Zq^k{#BQi(xWxZ-$cMcz=&M%Ki$c)&IvV9!R`2x9oaFnmB> z^yT!SzBsgk`2e!*)9o>Qz{2cv-B5Q!(?Njh4DSp;d;#hV@b+JyzQez;y&!u7eD}iJ zrQ7bB^+z=fVNfF()JeJ8hNb!@sO=(^V?ws4@q^(P4-g_S$4`y_I>6< zAp=ui|P_S zG3d2#KSx)M5ECvdmQjyC+{Zx=I73oU)Qf5;ITLR~EEgy_=1h4*R^KFfYq{@D<$78b z52HiuxX-91;Q>a-B@xwv{Qg##a)o^JCTzON}LT!q8 zP`MVsVsx5n@r!<0f{asmGumR!s~@Zmc_r=KqR*oP%3<8B*; zP4o0{Uw&;byN+vNf%byD#YPxp3F!eoB}Cy*{Ll3CfcO^%ihW5KBuQ$dkpcHovYW?Q z63KwUBouuATnJ%LSo@)hSTdb}+kGdb0-IjyTd=q{Ql-!q-MAOhOp0#Ui6NI<4Nvst z@N52v7w`Be@naP75o06?{@9gN#H`I@hOthiU^oD1$g^p{KkY?V`$xEe*0P~G zg@b-y}&d=zHJ4TZh2qt^mRoNYVuZ^f9|{T7!aD{kd;ggPhte z2~!7b0ih|2L6#WCNRw&1zf7ak=ft;+_9H#UbsnA zQE&rwpg>UZg`HC)FDwf=%=y`u1)~dKH={W*4p!qytYD^0Vnwclm5K;EL1!4&v@OgJ zT@?_*Ij6A+;uxKXh_M_3`Rs)FTprdF9Xribv^Tb()*VkEGfEX0BWQ{?!Xnc9oL2g__z!O2VI_^ihg|FHo(&WNxqwb&FyuX z4Bbm7o&P7Xnu?=iY`?0mB|zIoG!V||ZGMo$#1XZSIV_FXxdU+cf(W=`Y72lZA#%gR z>g|CI*FQ8u{z%YHXT}SHu9z&qg5sss4lk2Z**>hlWHg!0-I(@ z5X~_f`irWPKc^8)dnN{3ftZJFJ!F9D_y!$vPByD7b%4Y4aZ?JnMb0fk9xWrM1?vd% z^gt))*gn4=US)p7%J|4+@~*+ytwY^=n);f4f~&1?Fjj}xM&G5| z3*w3~&^uZ96W#J*JFBpTJt+aHM!LrV9=wlOj=MZ{b7+}v?y9ZD65A7HEp zEP!69e&UEr;Q_1;#F~g77sY`b2N$Wq$PD5>W{(3}Q=>m#uq%tqDx*4l{X zcWLFo=eWD4LfL>x60ED#?H;xSad#E-K}=%Qi$f9Ycj?7&50%Ft$&o&TbeqtmJT0n2 z(u8oGeNd@fHInrBl75AKmeRb#m_N+GnIWn((x2@hBNPBIvFn-Ok~-jkLzW6X04@q- z6$%R6yk%?K&^8nT>LP$yLgf`DTNVAXU4a({k_0>SKWz*x_|^H_mM(A{$>=e?2N&Ad z5;6SMCz1-PE$&w(Ntp)}PI9+=2AEBM+C9^0W;%Cf;me}o*AqQen&JL5JC&N%x^o+n ze-ddPd>9@Kh#U|%4`+hS6g)6m^`N9dXo-ErOlao*Nsg(*Ow6yxWS8tg4!m=lP3$00 zeFZwCa2YT>(n-zR1iw$D;}5gvRU(JyYq&!YN-VI=yCWY=1Z)l4wvmVHuS%5Vk-CnF zlet#a@dpmC<7&)i{C1NI=?E=?8w~;oE{cne6V;$};k8b(;dyAzNj9UP`K7rnXpiU$ z{nuAZV*4{xcaeDyC&{7aW8fzBLF?V9^d<>Lv%1r$;plbM;!S{f*(4NQe==~j&+c~; zGTguc(mrx$kkIxG1dL&;{ZY%V0tJ8~E|Pm411+SNKWNtO2m_%Y%aW~_(n3hb6y{$k zHs&jO98)?x|A5XgVIdp|X|k5}Meb4glvN1K5RV(8-6%qB8DIJ&A5%SF)E*K?a>_wE z-GS8~rFMI;55ppr+%d0wpeYE4xd|J_X|M8m^_QvuAF>7|;OQ)%dT1x2Eh7sV5eInEBlU9CQBQ)eSifY);+A9=5??)kkcis;@-a}RM;vrJam^&xn zI?}Ql(MSaM;uFw}@n36q`Acu{Eb?C${H|-Ks^cC}GVuw@jlIZrZPZbqK8b~pO85{> zfGACfndVH9%9^^J>rlu`Q}l{kK)=kns1;iJ)z4YginF0B7BA(hvca(zad#DGLZZs? zn@e$PwPE|0%-OUmf_Kp#fm)@vKwV1pT1BJ!1I+2T%XJ`n6rOvz&V_HX+tI)Bb%4GV z=!P1WEbQ9ciK`WA1}GmBT4lQMyv|E%g}X4>Dq3^}KAEo+ZBl^T7{b=U)WTC@2Tx*+ z++gUEY+CvTTrqWI9Fum{D5_=D0%bb=8I7~-o9#Q}<1wO`f2nE!P9dlX2Ap0}mhl5U zr*SmE3ZUdG0*HWc(?m%DgfCpf%5SpEL{a2x)}kd5Q!rh_YzH@E!y$jTaB`m|j z*ep?}lLJU5h>>*U>%mjfE8}9K#4egcKO*gJGL{(X)D2-9E6`>h`n3j938ue=(H`Yd zdvtc#z0@BE5QL$$XFMt6piamA69^=o!l5O>AQy;t=0sP;Sg z=sUk4uare2*hfg&o5;x_3~wWKe+**+QN>716&^1`I(sfV0nHGjnmCXmcvLNe8AZ8x zC?7U_IxAr2I&*4~bcoTqlv>%8ukyNCtw;u_(>k~5Vz^!bE51e}(djZ8pBPn8MkC|t z%6LN95+#zUpsj{(z30JaV#risH=OhCr2;;-Ud5t3T-5InmsIYqtx2LB1~&;e3y!(l z95m5ztG-(wJLlByAugD2tCJilBJcEle12%#gsxW;k$Z%X&brCK&Z5ExLfa%aZ^9k$ zy_9b6(F&z;?jA<{cM7BIKNH0U_+9eHuTk=62&oo1`6LIRrsX&27-%%{NFOs8xk zmcd%gu=g4?pf`(}`gzukUF9}_;4Myiku|t*7N>(sn(pK06n;;RaE0x_X*gN1{FcO_ zi+|68EFGFr8zD*M5+Pk3|1?jLa(5588{ z-9C5lyT+)+BVL>GWu!% z#LT77{!&NbsY9>H8Gh09xzBAKJx}l*NvnKIcK;bbtA+=H%>w=x&!GNz6kZ~cqJVrM zA!8!AIC>=WyGVobZpzU;;S1SKa|4(t?C*ZS2G31ue5Q$1^()5le4`81EtX3_O)2y*YH}1AX^d$g zcQq&)DEJaNpYr=@EQ7N|i$OdN)jO}pnXj*ZM<{%?xx?i8E-6)PM+%oxwm^PRZ(U_UhJ@b%sqSPxs-ST^8Dq|+pT$e0euWLys|1r;p zJg7i-kqMdVuzMU@C1PAV2fH9xltD#4$_~^nbc7*&Re!bH&}Dt#H5(=)$bx!kkdjUE zw+2hmRT@qwstjg6R^vxuGwo799%<#F4DH3rcU^1*avxq-F%&Gf5G1UR(>(D@&7MhZ zt;EBMZPEp&8Qmz{X{AfIpHp^r?&2B;|4oya){jIqV&*>98D5|QS_xDBssz9NBilcKiKm+^O&veTIr{&SI_7`A zDp>xB4OX6!#r_92_{nw389HzW0Z0ZYEGkNxA`djaanLVtnGXxd%oNE?9jsyWLZib% zshUTbsAT&MTq!PHLOf|%C~AG%{S;pg@-bGhki6szQhBEm7bsd;-^}E=>-s)}?b@s1 z{iLVo1B@W3gHj`|S`a!|sWU_m_1ZuP?gS;W9D) zyHVA2Xc?W{9vB29%htI1)ZeQ#~rd52@1<`jh{I9aVT zQ(A{?{9`ZQRiXO^9`#l@F1=Km%sUH zViMsQ3~mTq#+qm-x-*aHX-0^1J(RFbpUVUvwDTOpU}M^|MMI8{#5{}RUU;yxBYA7N z9#{_fi;^H(1J*IUtY}42cCf{ZRG$+pbZh^t)0haZ?1IOlkZ6qD@<}mL1#bZxs*EtjBbhpt2237_3 z(Ck5nmL3Z3!bY(}x~5WPrdn2IA}>b5-8|frucO3LEhBjP;-ds;)B2(cc3x@q4Vrdb zTv-C1K%G&Ws+Wu_`1BQP&sU`f>TOU>}p1QlbHjAq-`ykY3Iyz_-DR*$;#m`SMi{ zr3qZ_n-de)X!OIKft_yctG;K9Ts&sN-i^FFIOZFf#v5A4n}g6h>xX;f(0e=*S2~3c zm|!=U0`4FNyb%yt-FUJ(sVCfi$9|Bi6-Xw?2FUmH3tVrc=NAgk0oenUr7I?H;eiwy;(x#8cDUZbY+vsUsY!OX2Dvs61gduXH@TjtyH2t>8g{&WzJPSGwK-&+q3s()blOBAviVaLRJ7|ZV=p5p_773`bRuE~%00VOa=eNt<6wT$}Y9cV*} zeR6-yG1Q2arJ9ON6vW>%^(yY+J9|3X!C|(m@eqxx=#pGH#6$W!j|NC`@`BnG zW!;^rnZW2l-X$Ot4xq;!-`58TdH3hk0^?*9tLo|J?4%s}yQ8074V%)M@Q|1C)5wFV zvaXN{R0jkR)j2ES9tMTxp7YAEb?d+?vDrf|W(Vn74?XS2n&!}7_${nW>Kbe0y zwbn$FJ~bxNcJo67s2dBrqk+eqir$IeGeVViY%F{cZK}F3Qs)ExD29>i6m21gM;uyo z#prg0kdZ$$%gA}ApzDxo<_oy)K!Sh_Xi;FbLOpl>ZDkE{<6pX}T=R(OR}~-@t#|?4 zuDj2%-E#$O+b4DB-Syy|yYZ&sXFHh%wLE;{TpsPnNVLB?;{C@;ItDRSx&GPO1pa^8 z+WyIP7$vVQ3B-@WQ&3@%QIzJDI;R+i*7|4(LWt3)z`yt23io%k9l4?4u&2BvKg64l zm$Ka&={NzH>3Q4Xx((l~exw`CWHPQ->XL9u96B1wEc{jPa&+wq1j(;7oz5cHlj1dro-sLa(`Gz4;~l z28O69V(1N#UokvNn9(VfV{%%RgSN4JbvL3K>0ursse(#TRme;Y#eL20BT zu*lIotrmVsXBZwB3!3rE1MXalqT(}k|AiJEhslkM<~@7C^LfC(nX&!2nqrlfES_cd zc+U2?dhNb%HDT-ddftKuAab3F;k0jS3%n%g;;OCrAmy zOE#b%kHAT+Z(hE7B8pT%so)JlPntY3^s9-$Xdd^yJ3N57*OjMA6z#A6X z8>hE0m_qM5H&_r0PyV(P$Yx#Q7_~Ao3iCb6v`@UKzy<47egs1%V+-oMb(3W|W2b&c ztSCszuRdhIF77r;8+x#5@nY(59&)4}wGr*ID9V!2JmY=dxIgSkZLQM)JrIay#ZtmZ zaoQL(Tla*(?Lm#Wv7RV-JRLY_vexXHdL4GKGB6I0`64m3L!gE!o#^i)!-R}TRAw9o zO93QR0--=6cRWS^aHZiUB)2PKD-A0Oh1=HX$U68}cfV@(;~Nq>&pzjpXRSXz$Iu1GmoH1L4j>1MDk=67#qXN}c6fC>`b5y1*`!3QkVl%Te(G zM6Hqomd@$}SSh+%b(r{YHmA;@gNS{ta9zP5k=z1gLR`H-6y^l+!ch{U48g!!@dOj^ zq*Y8rE@IlId4*QX1j(L4;#1M)2ye!ct@=P#QB<41uHe_SRpbG7G}TnY*5bBo&glFJ z8rmBtraE>EQ=B8OU*_xnSU^9_k#vad(I*?h>PxPbe+__Cx!ZCI1-F1 ztRl`Gd+nRmgDl(pp4^h+8&h%;6By^qC>ET{O5dqH__DvB!nXzruG+RkgLZ}E;tjbKh z_Zx0AFb%cVb_83_s$O*H9Yn))P|V z6F|1h6Ls$DI$*Y#>CXvFQ*6sk5v3L06d&N*mg%BvQ8io<=ov+)T;uR5ZQkjJCgt!+ z1Bp)*XI?q@*y_hRSg{e+8pf(YemzWT=7MWIY#iMp_NKELPSXm@6Mu0@yT-488qETk zT~|B7ghG3l>B8Il*$Y1SfiQ7{7{{B;ogUut3m!4reN2#IV3ShbYhQd{#C34UG9!r2 z5$g+I9$T?LCqEl-!9YOl#i(OoCvi5z6!Qh9=_NDUoBx6C>@18C%&JxKO=F@-$C50b z@4^AG#@V49(fU=rGPOmE_^82%VhJIk`(?0Tc8gb9R!BlHQei8W4COi}Xk2R<`kbls zOtldBjRPcDjTM%`9=#cBu9Li>XZETl@w+c+rxvP*slz89)u&G2o7QMqlozZvfJ^n3 z>Q4QaYWQ!~`4bNO>;A2xc2v$@bFdp`tRttRXVW*dDdiW$iWj;~mGRB5ki@GrD$k=o zSO_xSUT`TeS$#z%yZ4#>=H4rz8p=Qx>N7cfkJG(WXljFA`bt1F_IWapjkL3B2j-RX zZ$MTicItmlOO5JrPM+2MqMW*B7mFu>V!M?R~!V@WE%ZwxMYr! z#w85m5xv_lKz151_?E@k3h9O32YcxKFOs&PDU^bKwj`2>{pO2|n#;Dm7n1Ut2gQUC_*pYb` zIPT{r`HFkx;D_|f)jqG_Zcn`wLUp@m2p**-+-_7>^UV!JKCq_qbmryUJx6P8(g5HM z6Sea8>>_OG0q))QGghoZ;hK(QqlMaXi@0X54JaOBg0YzG)J_U0tl#O^a!t6dfqzgb z3&Ebf2EvE4f$60VJ7|eHn`k3>`YXj|XNY}L$5p`oY#ifMsKAREXI zk?*j}5HX1v-+7>BG{QvVsRVe<`mu7skim8unvGbefV}*B@WaGGC~JW+MPf8T#itSu z|7%N#3TIQ~4U#J#5!+~zlWD0?fCGb(hizR`Y-u3K-UEx4jrc6F_ygX$3CZu~v4y!K zm5{Zv=CuYy^DDZ4c=LvTlRV;o976bi-k^m70QkAiUa2Xi@Uz(et^6nz07wff@zaRQ zh|pQ-IU8C33Tp@l+5sHWqiUHCdK(3xN$!BMnABo#=!r9ox!s0}a$dT<$qyYQjCS`*} zM6w@LdQHz~W#f#v-=DdVn)9M3BOBKH{G0I{wg(%={WKFS5E6+fji`;_lzag2gGv0v zK8S?o0-GIPgk5>0+XLYRD4_<9+V;>bJ`vUBqmvyGXbNtt{Je%Aq7Tn?Jwbr4WW_q z?t8`3_<)8y-BH}1)uWsMGCHyn;37--E&~Qcpw4?y84g#+W)XH^Wgu=~P=ii|xp{`U zIIuk`xGSSMNfOIakEU299m)qF3vHkqWaCmFX8r?l{I1{Wkz{lprvt8U8%rG&Z?=wJ zUXC2NIWn_LES%l#+?cW>swuUcf}$z-bJqtG2`QnzF?>*MQ?2uON`>P-B!PTr9Ezc; z9C^z`#DG}~0FnCg(Zv4wDE3)DSMecaOXV0)a+`9U77yrUCWqXtQ z3E7&bvR`QSkhzMd{(WsxMgQtzdvJlG1a<@K+`G)53373K5`MwGp`#EJIpT!n;8 z_hkz9_G3y+mE;`p1Mw}wz>pE#;m6d_R1$? zMM7&QmA6>fS*)F64QHg?rO>8*9n$U$LuP0Q|52wGu&rvztT7iP1d?eyeDzs^|zckVqsV0)H18c-VaF3gftF7!f>hh?KDsf0S*fb#kVftx$(4aaY1HZzOSo$dyfF|3;LXaT_EoOa{Z&$>yqLJ{50gCk? z0}Uh%fWJkJhG*GqiAQW8)=6FjjA#Nf6-wduuy7s2*iy-;Z2bwH=4x>0Z0D2lMbPHr zZ5U*ed4n9kXhM`AH|EjNwvnt6WRtzJre`_)HVOn;V`%b!ZR+nji^wYPrW#=7MeJf= z__J}<)5)QT&n5wao{w3(0)Hc)`b+F0jacFSCi_)hBor19ZGHE2s-GaK3+zi@;B#Ki z$_Y!%_^WUK7gohX^&VdF=dU4xPa1LKz=_6zASpz{q$~J`3Fec^zortC9{cbWXU{9FK%-?;(>@uklSfQXj>2*~48CI!F?{l!(g+%MY_ zvqvHs6f@LmniVcnex6GbEwpstx&HYOP!og>gvG#pg+|kzbwMj%m0U$=AwFh~$t@?h zHf1()zFmny$Zy<{R9K&!r}7a#iBg>Jy?l^<{EMROZk_q~oDgstB0;yF>C!Q8YWNxq*ijk`5d}HA2s2C2 z)an2wgj~_Uo>uoa2j7?iuOc}sIA|Xqa;aHsF$ft$A3fPhaJls8@N%w@7XCG7hrcv7 zH5W@`WcG#&jNf+VM|8Fq!$1vV`f#8J(tYS?4c+?q>6X*5`SeY%^mOE$kdx&oKxfCZ zxr@p7$>(rzWmAEx7WP?7Q+Q|K^Z7$;tj+z}tv?8x8Le#ZEI@t-URfsQDsx4vW&YLv z>ond@5B*d|I7QrYw@9iG)CxU=`a;zCrg8p8+f@D}>$~N_+1!Rbx0TSoOgbm_5k8BS zFrF*N#1W|q_L(KOQf8pm$l%02cYfvMGmp))sO`2$r<-6I6wo}XfQ7Z&fZr@yXniMY zEKn}AWgNjw_vEfr?^^|>KvN?_Oa0TaCN+9N#KPH}uBRJVivwsSx!z&qeQo?-Akky_ zm4p@r_yeqEVH136HiYC{iP2e`^p>iw?p?q`IHO1r z9yn+~#__H^^o5rvOdh6dnIar6q&fXq@5YMGoVcmQc|lS>U~7&UgG&>#OE^|DAZRWO zc6*PWzLOlX>W*M!k3>PUBGfBqO2C}ASB^lLzUeU=wAZeS%*y>>6}OFRxTNIT0n|A| zO4NAR6j*hM$WC&D%shVYqVd5ERN?WvOgj7YuzX{1hEo$R_1`m`HI#ZT@73g%Gu@Wd z?td&|8lT@bb;DO2*n)5&Io+@mX_1#Gw2_d~=?Dqa6h&h5zEMi}*T7JJGo!kBxo7AV zvs9VFZ~Z_l9oGEcG1=enjemU7ByogjA2XhO}paO$U6;Z0iuOmnSQYTUP0a5feS|bp|=3-e!$| z9$q#p$eTd5Ewvy?7(70XDx98pJi^kG@JDh$f>T7S$Q;8wvVIbdLmER?8Vx^f`zV1V zW^jSnlu2cZ#H!CNmnS}GQttZ>CdBI}a;F3&Bo+d2Enge5b5`4;HBedkYwL zHBk3Oflc&cN7+N-D_>#1p(*WLyU>&SvY5fujt_vdXwnnMgH8vf6y_{=ATf$9iNfAY z_ZA*Ezp8b^u3i2dN7F6x6ld;KJb&J4o-j%FU*g=3zu)Se%t&?G^k>W!hZO5msxW^) zQG*S1EUbt>SOSmvSOg0?L7BLb;KlFObmH24`^9PZ^7Z&mTRE0}dBaeef|e!Ky=t{x z1y0)G4MZ8OM7^1F@naa}WhntyX_iYyP%r6Lk4bG=UpiLYwqzdp4)J8O1p*UzUTj)K znf;bkv%Q2}`2KpIe{lzEPUAM7x8n@TZd+W;IY^3OGgh}($T<(4WO7(4ar-==VE3iX zAY0q20eq{O;M4gmYWC$EUL<+9I=<@2M&5qow+i-DT)qD5oGz}LQ=WSGx)ma8;}~2R zeP9wG3-sw#pgkm^gls?*&kv*Ldmb6~Hw+YqS(uw1-+!`Q8og-NyKxVV3CN?5=UmmJ zqDSxgxIj)pjM|#BNaH=u&i_0V?p=TEZL5(}3^6>=Mb428u!&DI1HM z=KABW8y7v+!l&Wmk)u_+3tXWBGBa%(Z-=YXV5gtw-(x1vyd$BXhJP#g zKehiujAChHVq#`(@*g6m|2+8T%lhvI|F7`oKTh_q(USdtvg999NB@l_|9P_i6)ACB zIUF?4?L1P+NtW+4M0K| zKR*`jWo?|E_98_6gxV1?grx8d-=%XBFG{UUO{#&wV|2(~fcU|LV$hWvALkHP!my-O zcqltEaBl;_%_uH3&M6Sz=1UPL)^u2)HNdAohR7KgIi+5%%r_d#Ao%`ve6@cV8R^!~ z$)Jh`sYchD-49YdDlm$P35<(1f|E8Mc!L6VED{)Ph)ijaE#qs}oao88Bt)%1x|C?r zdj`jXk&UiTF1bVx@|jHJvhR`3349Ts^K-!GhHw$b+ZQOa;@7_8X(D&xD6WtvUacma zQaciAgjEO)k?rtt1u_<&n%c$aMV-4}NT@R`NFvJY8_d;r-Coj*WLGaZZelO-#)-?R4F`q4p88R0UUmeei#w%;FlH#sLE5omlx67P;^EyzDaXL} z?H{p9iPW_8l0q&YG4TYn&?vb>=IMmM(#!xA{fp5#@NwjWUGi2`rrO$U22n7^5_jF; zH)M*t3nDyUKxj>Y(&;{~H$A`xrm{s(DPmY)Ympg+^ANnzX|LKd{hO;=e6*Z6C$-zF z8R1E!6jdO#zSGW7mXY`dFE|u0BSe0O(@C{(od!_<=Uo#-m>PV-` zC44pic5*UN4&9tM1#XPFz!N4Ylzscv%F_|84*}Fyx!wpPRwjbyo5J2t%_14z##sGq zl-eW|*(rmAD`%7?g+v7`7^!=$0Il?Fs(}(^-q4rhb=^Rc zW5#CvH;^j&JRLwqTvg;_?GEe9hQJ}oG#DR@mBKA8azQT)6dCYZtOV@FlMfv@@}?v} z-&C0rpG{fcyI1zeoqcRdRYv4si>~}Vp=y);K9vjei&ZW5ZpFjF@dhBN3TkDosJXE^ zS0wL|m(venB<7!Ro_uctY`&#-J0X-Eg-|oGgGebBG?PM7UU4?}vqc)}lS_7Gk)nx* zm+1mHQUOHbaicCr2D9v@w(-{Rn z0D#3T3c4S{W!=p2+DRlsqAIY^PPY!lwXmO?rI843b?|F5bH}#WhQH4cs%C zrG%InP<=3uyD2b%{}#hyB{(UL#LZtvI)h@M{Nyg#d}cJDOQZCg|}U9 zwqNZaiq|z|ULdW!=VLyf>e0zL(D75sLj>a+ZO)hRr9UFr~tcRAUVejiUpobd3E1^x!`(~klM4sqQ&HjrOo83 zy4M`-a`;I4OtRu-wOMF01{^$QTJj7+%;F7OX#Te6(OzZWzmJzAk0NgPo6 zQ|R#!0;Z~hRo9e7{u<9FxG=3V^NUssNH*)^ngI|*<_j}5-!TdW!Rr&>1sDhqHc6B# zB1n=B;4IUTwx=HT%xZ$wlp9wXwt0vQIDzMq}+LPPbOLDC5y<2WTayaU4f6MJJK zV&YR`US9Y9?(Z1#lH#{YCw8x~X-Fq|Yrwt1JBY@Suz}pg*}-+Ct(AjL_XzY^niFWU zQ)Vqh1vnK-@sx-r1IN6&2B}RBrpP1vHuQV(a9-x3s3CYG#%HH&fZ`VQKE!S=i>&qC zr^nC=V{UqnabvimDsf z)JLF9t@EEwl5Xq*eR>zd6>b*~_ESLQb9+K)3{B2sb{g;QHacV;h2~-A4pSl#sT0pz z=506Jl($$?1ol}+ZzwYGq=i10tY!eH4!(xFpUIODg8?y@2^EH7wSu?Z9v;qa&fMI8 z`9-*~^#v~CYm+2TR~t(a^YNxO=Zl}f{%qi|)}CtyPf5OAm{b0ZGpOpblkTT@68Auw zVJBr#-ZZltx$Nh;^^Im5J+%+Qn$-I7F6_5UNBvz7EXU_riH_?NG7iaDc#En)Fth1P zm{t3r)u;4x(5DJIuyZqPQ2t2K~s~B9%aI~N{ zk>pL6x2^nTan;`z_n{Zh!1udN>F3go`Gv_*IjcR%wJS zk?KrJZA3sGp&AMpSFTQB?nP!P#3MH*Ts<0IK5o>_QBYQX^t*g7hR-e1@E!-MHLlC8 zMQ~)-lk15!2l|DUL1zEz?6pzlRHsl#%%Msl6}rx$b4XpsjYp=5xB+0CK~>G$<R)XH zWlTPGP>vw@*S0f*i5WeU6J5_yP=(FpV!EQzUX1;&rtogt$!q%E#IW{a?Ij;j^tO$Ub> zTxgZ!ZaIJx=W%4=kxEZU<|8?XflS109b2bssHCQqT0)P0{;cCL@2yU?&<~{+>N~Rt zRW!ApqWP+fqN4dNxnb723@1wl^uptVBT41DIqc0f zNS7p?tj$x;F2=2H;Jmh7ETvLsBtsE?aZtW3 zcre#8KaL~Qvs3f1*-d3nwu3!@-@yAPaBah@qv5x}J^&SZEsHBtH4T<0yZv`!D1_yJ zqSS8^DFY|iQPZ!H-Y8r*dePCGEe*+T0XU!#}V!#$fta*R~^v}|3<_-e(#NY z0qnY})b@lqbatP!%;sdvzldO)BbF$YhMFTSJ4|&WI5y72p3UL$JIbO651BFXN6zYB z1g_7GSOqWBA*FOt;F#o?K@Q^!wFsm*{Bz%-Hiez)vV0+N(x+c9=iR{Db`R8(@Ly)t7YlEmDQL(~Rlk?;VXkCM2*TB=mP zZa_Jev7L{{8Es}uJ<|dVnXipr$@k3PHXBGnXk_bUNj3kIjgunl=(o&s$CC_g35+ZOEV#I?#FH(#!{ z{bU|at6Q%WA8)gz>G$Pc-KX+g^)7gN9IZhsO^Y8G*Y4Qe5tt8*433*(_aim~&Utjz z>Y7=Et&Yc=Q}kI}GX#a%Cr=zGQvw(+G;~kULSxvCP^P_q@Q#1%oq3^W8{|B;`ZHb+ zISmiyxy$U5Y+nnXwZLQh;L@w#%z?Hwd%V&^J-QGV8du_bb);oVArIt#%gZ7^Y@lgc zJ6@f*yfw?etnp_}9b77Tue8@#Dq&h!dn~_W%#3>1_CWi<)gA;}=_i?_4ykGN%qise z>O57ug2%*s6$X|x`0$-wNoo9kb1<~ld0vs_v0ja_ul1Lv2DL0&G@oBHpE5s6N@P0BsSI)aR}b9` zwQAJs-M4?DCml{t+?-Z_00@!mu*^x{UN* zipwz}0xfH$NVy35%eqUMZg{N91XQzKF?-&ttn{(w4*-$Ot1buLC^e(&`n|jLwY~QT z-U32B%>YYo^>{}qFLsCm$civR!sCix$;J0AZj0m1Wsmw@>1GCMNV@;8)I z^7Qn|^o+HP%#DmJ^0v;faDaC((yikP5#dbt_m;4ak*)I)caqTDik1oY4i5MC;Z6>B z3kyv5^KD2G5{wH-36iy9fd7)$c_2*{*8efp{^$AkypAHEmFQ2yzZK%2+W#S&^8b+b zR>75QNw%PvnVF>&vy@_HN-;Atvy@_HW@ahH%*@P?VrFI@-Ky%Uy0`01_q++SZ59@0 z?y*mN`0=&eeQg69OG_hzKl(!){*BxDtAp?VI|u(o$^6yn-#H%gHp@Tlis%2{=|8xh z4)s%;-DbqktS&zmsJlv4$raIX=hOQhJJu$*W%1p!qT^&>nn=$YDT_8nMao=-Zu${vJAb$Zu4#Y2w$pkH0z3-WjJTNYx0au!6?JiZbYZfyLp3_=S{) zg#zs7BK74gLo}h+^v302YzmhlrM`I4FwWu$I`VF4P#$U*S?HY z9;4QEWPb{?ie*m2BF@H02?nxofy7`1gf+({Fi`@PoLN!<-`lCs$2thwaXWDm+RJH) zl(1JPJajFm+;v=5Em=f!v}Y;C>R3;8@fFIL;J>2Pkv>zinMQ`aa2r4^aBd=`5#{+z zB7Q5ju;4NwFmV;CRxU9^>>z5bZZ}eBn2zt2aBV(60aC<7E%=@mJEss zemqe;HuZha+3_cL+D3*~M(mgcV`m0l_C|)b%=K|VM3Kwho1^<%7(f~Hez#!R85{yx zU0J~NN`qrQlAjaOYqSkXLV(qpF~Py(n1JR{TiEOiXCm? zW78q--75xJY24%R^a|jv*b#h3FB+tlZ;ATuiTzI3EgVB59iW8Li>g)z4trn>DEK(>fim=T}XFm;AvUgix3Truuq8 zG8+W)jFLb42x;jkX8e)o$GYhbZxR(T8*_YneD#HS51Fs16rO(*?Za$-IBX?%RhWK? zKM=$cUJ>mCS>pqDu{z88sz{V$v;Jmjx|W19$Nls|4l%53DU;8OOIK2*JLz03xaflQ4%{HahaSim236MrV*G znB3-lzxq{<<0o~kr}wVEs`RSDyan&s#u{AV1cppWFA?|c$27JT0pmP z+iV(4+eS83%i>lv9UU!Cl$I&_PWi-R|B4)L!rC1}m(@(EaWz`ia7TY9MQs==6bO>zlOYOA4Fd&#)eMR8R2R3bM>uxU#mH zwpDDjA(4wgCSWs|-WTL?qau)m3ypGpLi1e4k=}EZ1A@U|VBSxSC?Z?R<$OtLHZ_m& z+$T=etUgw|`aKM`ED=Q^*lDCD5>GYNd0mXkk#DW6HJ0IR}pZ4WHpe9DSeL z$3JS`O|PzAb5dO8<|ghC5VRPsnvj)QPGe|>u~`SMO^}L_Q35{MiPf4j7-77 zv}CvT>O=?eFlnx;ThwsS>7`_o}gjpa|xMcz`>iUw1Do$X2SWcJ~ zpfs|G&ihzT7=($jksj(|QanE`<4wXGC}N*c#m*52OM_csJK|e97<$m?>=Z@u30Gi7 z7zCc@OIdXVM<~9YOHrWBm7py9m{06QK&i$NV;c3;c7zTx#H|j)s8w4|>|=Pa+83~D zojD}wtx{8?(4VJ@#h#+g;a~b4q>&lo)WwiFgmp;0BG9MQLZIQ4bvX0t+Y_j^k(3@+ z=Nr5}0B9|}E7>ok&7iWeKCq}P%h3%zu&BPWwHotBaMeNx&eoea5F^`Xgf^$AqAQBo z`we_QkLwmLsgB~UsUkA-(D;O+9IOR?77JlFFYTx?8?5QLjKR)$%o=G{xZ!EC!D?kp zm0iFcneR-H9A;Od$P!geZ!%#CPmQ^SajP)%NKO??znn}R9EAUEptn3ljE+oD@?i4S zLLB2zbG+ri#8udHGaY0c)JSJ^BjrRJozwA}C6228UIym|B^eEBulqo1_L?$@5lu*l z?kHRrYz_Dm5Rv6PT!-sIEktTIp+SW@NmeQbx-?}5Hv{ywO16fyXKN$mp;Dgg3i79C z0w5Uw>rV=eD;YnAeVo$)IMggo;#kzHAvjH1K6N~GgLtHVNa$4+734HMMw7U4F2>l@ zpNGF$vlSw>a8en!v^a`Wdy*7aF9nm+AlGx@@UGd_&!JRFRKbmYEF;B)Go&Z*PZQ#{ z-5gPZWi>t?D|Bkg+ZU>?ZOAs}EbfIbME1+%zDHSOI)A9BmN|tu268;R3|3Q|$Fxp& zW@yg6jHTgIao#RrE?Lq#Yp=X7d)2axs5N|NFy?)1xEdv9!d^oVkgB64yce&u+II!C zD1uZbHv?Y+oWB)ma_P)V>&~314=it40PzqR$DmHa-I$lE zu5O~MH(s80DrpRxqFHawSb5h4q-=f4s*4xBarhArr+bDyohrv1!s#gIY9FU&tU5ih zxEFL??XO(a&DQcZ7MalA@tM`5&u@M9So@IWA%kBBOPYOo&3A13z)7xCG8>K1z+27W zU(C=_D3^@8A9zN?YF8#1?>VlSZ#Nd#Vx`5Q=(*ff2ixMGIKm9JU;8uCOQdFulnQ3- z)4J1ZegVw!xdN?C!|}II&)m{)ebYKr#SNq8sVjoD7I%L0CG0TNHWym4d-*=z_N4|% zSZj4~#=u-atFvUo*S2LLT$%k9!bZX8CbQdm|F^Qxj?;cNS1jmdfS{^#rLe(NG9tm5 z&Z5wg6pD&C9gFICc^~?RIsJPMkvTt(QlO|qSXa(uo~-l@LbyicrQIgfvMo$McI0JV zHx3Qz<-Tg(CL5Nt!xP5`qQKx~i)3==Z`fk;I9~4u=cj!x-k+;*{Amg>Z(;8tOh-7J zTX7oJ`36O@h4NNG>YyLo&Vxs!oJ`N|r~GwbX=`<9#ty9sCWy{x8s6jCW1_RJ=oBsy ze)e?KC%&)B?Ps%^jU`9Zh!r z92j<9!v3U@0Fm4EYDh~)&#%3jXe;2s#^q*~I=&vGIlbD1&t;TgR{;D6wo7+)xEnp` zgBVnO%$ryO_R;sGI&u|G_+`l+X$@O}gill2#c$INA1h6r^~>7c?qaUddoA07msw>S zJn_Yf4TP-H-bYq-0+Kk5tHx4pKx{zx%PD%`1rluB+7J!t)ItO(gs4=D#Uo0{&gH@oyOV*!TE}^Nz|dV zcPpDq3XiImzGMHmF1v$0=-1}ziv6wJ<8q4NU_zGpeb~>c#f3DP7<=YN5(qZQnlw8! zbAn~Kk0al@{F5**cuikD?YV=oCdPH2B z7Lbzs;GgAaLfF5-7T$x(XzQ=-`+co{!IoiGyFUSh|6GoyHLaP#?{_+y0T?KPt-vD*}82l!aqSMgTmKb~k*0h*C)6_S15-h5=#QSIS?4h@$H52b-b%{C*QNSh^UbOql^BTtb+w zhk>1tvZY|0gkU06c_hSRKibkfXJ_bD=OMC-Oy-yn3OO>-7)9Kj{r9WoM-#f>tc+}g zK*1lfdFXNc(Yv^@zim9`lQU52YfQY%)o5;;OYH~CtllFC=q-W!(0&nOjV6>G18k}o~gjVtv0bC(4 zBKvk~YTm1ji_VAV+fF;S<)|X*ibI7cN|;g@1iTO{*cx;%Zi1C>LEMK9(*PxUZR*k! zl*kQbZQttn00wqx0gW~h8@RD~Hi4!f;1Vsk4Fh5b@tQ)NvwUlD3wdd~M>c=Z1aeb}N!DEgy(_nBz+F0u+MSuy=dYpQ$z*+y11{)31b~%At4%@0_j##6y zNfM>d_e*jV7?e_T@#0(7WDt9f4aY%>;|e4%7)9>%9`f+S@6dI3o;{Nf=1HBmAdM(N z$#OSHce{A;%QLDr6m+47rfWzmPge{pWBZt_ug{(r2{O&8vvD^l+Kodxy2UmYol_lt zgVtNSwwg^u;1scyaAA$Buoh=-0vUPrqFKCO7ysV&B6WUA{Sb`Hxyb6Y0!T z;C@p!fxT`{+P#nX`O4mVp@z^>#Q2DL{&H5{$hEPc$;%{Ck2k$SRMcVjvqfav(V))& zW`i46=j@Wq*N(ZkcMkqNK#YP?I8>_9Mih&ytuh0~JScRUxj*+E?ky!}>0`4!t zc%EtR-$L<%tj)$Jj5d02zhgKFN*_LFSNRrD1<9saSrx; z`CahDin}A-GEAdBL>MlZsgLlmC-xu|1$}(U5IwNw<>Nx+bg%SK_%3XKR=T81uQJBs z@;u$)($`}rYpo&XOXMGYdi8v9JqxpWEarOE1k)A#eE;_NOW=c0<=SQNMCyi%W zONgkHNGpLeWp!kfufz89#SWZrmm3KX+Q(>t9|c;G%f-TPYE=Q!@P?oCuoe`vdtYLu zca=yC3$Gvt^5z%&+@#crX;mdvh?*2bJ82$?2S^W;=?^n&ZDn#>O5)^2kHULk%wgY| z;T|Gee%+>deM?-Mp_ULROXVQRNqL*kY}sUi1hCVdWr) zCpMfMH_Dx>N8T9rLt~4$=LMer~9c`nt{>>3m@rZjzsuu-B^i9zW5wT{R zJOr4G|L74`i&7efbuT>NEG#fAL`fQHbRr?2a)EQj9gyr{Gl2@u78RBWThHzwtL4Xm zvkD59GJb46A|$YI>2`PIfjWC%k=s$$WQVx|q$?mL&}ttI%W3SZ?FCEv7~mI^M5}-Y zR$V85T!&sm2c%dRjjzoS9XpAag0v7e)WfJnwFHH&%40Wmpk3F3vlUKiniH@>N^-yebx9$t-Na+DAx^g`lO*xO_KLOeeH5l=W z4a_VzMbEDo!1wc0HqVm-$Ou$Cl$|eAh>)u-l;U@_k;4RwRuitCjI*rXBd%t=fZuJ* zE44C9;Y8YK(#>=)&0BsA`d)|XF%3?`UIS>?4@OBonHkoEZ!0|lMnx6+F7`z2OI2AN zPy6rCIgkAdZ3jqddiI5+Iz>S?Y~dhc1-}(lubvlv)zb+PEV}rfAt8v%^&jPNgR>T!ZJPetO9mw6cQRfu{ea zQhf|ex(lNkI;>u9EX+ItnxyVOqB+8yTqq20eBVUr0?jW9 z+VeN8U&`!+jM*)pfQrgVlgI~^JYBF?0NR0RM^M4hX8|XdqZ)!SK*QFa(^`J4fy3H# zp@@NB>qM6hi)nL+hq%8;Upb23i(KqVx6WaZ8jf2XtM?PHFjdPGH4wW2T`puwZ`T21hlS6qF`cV{c&DxfyR`Q=zIFm7_zH< zLyy0{&Wo5`Q~1cUAgCOBLb5Q`5&BVCE3mc&?dTV zTwoP2+iZIOF&W64QY#GXj`qCV5pG5|LQEEjl)F%wA64)*`w?@ooNqR(Jjk`v*I6;X z3mb3S3LcJnh8wi4vSGU>LN9b+He&v9uq1=k8E|IP4+Y{!Hn+#!N21VFKLmmB?PvU5 zMkUw@U6f!}9jdh8IB*a`0OHWGuTIhFA<7#7y?J8fM#zGuEfeol2c_kA5q#$lto0r0 zUl3y{O?NPH5qZ{1VkJSZ*_rW}Z{Q`2&DK&2n);y?vo9^NHfMt*jdtXwS7-&Y!V4!V zZR~fV#AUyiFDO`v^u=*IP@QIGxLK$269jJ+M=!s9PEOa8MVhP9V+2)Su+T3M^!Cwy z3xM0Vc0`%{O%CUh zA=cE@L%@VoUk8Zc1|qpDkS1zxzBo1M@q??pM!fsE|$aMXT9U3&oW3?oocM+uwTO z(}1!;bB@_J2a+wq^S*Jp~pmW0uFB|isU2RUZL=CI(Z^GkQ@)*j1ddI=H<#90S$iUXM z3HfdiwuxyEVJ{$Mz=J|X3DXs(&}e5Tx9S8(g_*O zG=@rl(svrEOv#5fTv>nO;X5L#5QeT#MKGR$wN4z?naHnkNZpp zo%%l^B{(2TVP!!uk8qPY#YNvG@(9|kq4a0s(OMViRznL0G z!k^s0iD=cn_i93qbHB0sjcKFF{@_r)T*I@>y}wtlWm$L@ zwtDuIz8%359z4s*X$Hfa(ds8^k4vqvE4?jtK8hJi{uv5#HuYV zpk1`6FCX&pN*QR2^RCpOvb2cTrtD=q)x9BcU8!}IEO>ax(21sB2elN@e`G_EA%1T` zLxgSwns+Z$pM=9mh#|5k)_h;3e|v+piW%@#SfAh3lJepw7&jS(r*&K}S)WL=GPPz) zMF@a!KS}@PUR;e(YO0F7kYU?4!=SMvg}jw)-uVcd+0X)3lhcLtoZ5Q!IO8P{B(R*O zlSPp2@{`AAfQ`8RC{}P@lf<6$Y`Q&bH*sUJFBJrPlVb*xG;rB*caQnNt$sJ^2{t2F zp4Gf0-idLh<>gaPbL;sfK_eFLrY(Uty`j|d#)FHk5rglj!NEA{6>j7!E$QlqSGL}l zXl0jl&QsthmMDpQ0ewW!eKxb5-VL!Iy+A<{EG6ow(+Sbpc zg>+}Ed-ai%z4M1Ub-&97Y)NV$2B*FUNQg=4JVh z1yf^nY@2nJziNFvN=0sjR zcNB}5M`pJ4w6W;)MwiQRjDHg-+;cM%1Rq7jyU*v%y7`w*pV}0f>bqU7^k_7(R5M)1 z3KgEOX@K=7s9J*Z%Q{w~vNb5~wlzj9zpivIDzG6p0W}wAyS_ez5vIr&kVt&duwr_fn!B+j-1NYgc@0 zfVr!nT~cYGWy~MMNvW>bOtF8X&Q;`T>f1dw8$&V^^J@>-Y@f?Ek5dqJt}eVYE+6;U~3BWvB{qDsnR zno4?QBqOP&*;1->RrN?-M=4GJp@<;Me1*fZVtvDBSeGK zWR{a@`-nQyCRPY*s|QY*g=#m@kT0p`w^O;-nr>M#_Sg1PAkQPl2LxN8Am9XJv1s)n z>DB@o5ovM4)H{?}R#pWTO2GvWk5!;~%zG!it6)s@)iqD5w$AWnkd z_7J~$@1zdaOb-s799U?GTJA0Hy@RzBuqFC0%|^XfFJVNjf4f-OwYcTV$_}&fP0%mIYYwitu%|WG z8R!EvU~hXYy$P+8Vd1t{%2t?Yhv(AYBlaqTTVE`776qA~@zERCrqKgm;W>Yb8{Bqh z8FLATZ=kt&ga3n3fcR>Z&HiE&*uHcR{($3u2f>qn0l~cgw;=dm^aAcAKb#*u0^iKf z9}JKdSS1obkerb-723L{;HI-O>9bfZ9sTFt={oD76nbR9b8v(-NW>?Jds35L`-;nK zVU^TL!uOOgQ#(2A{B!Whw>j?3TAMj(jmY>C>9AasE2A>h6bVoC`Ec4;ckM*!TDqgo zBAM_{!L1}3CO0#<;OS3*fBal;%?RZ`DB#Gi^)L282{Kyx>%l)Sg0H*(z&@CmIhs1@ z(;C^^IOzWy0r6Ms|19J{`zLE7XCr$vM;dbn8*3T|15+a_y}vp9``0G~{PTAHvyj98 z=Gh$*O7N2f;S~eUR3s!gTj!d1ux(6bzu(8@U=(;%XX|IKouik5}$E zoFN&@ArOhf$qA`qRgS}>_G5O@+F;(P9f)-~Ld+jLcVNw%g3Q-$-EmifmnSzWhgz2= zHYQJ*yJu$vPq^2Pw5qNZ)4%eUOsjY?atw4$pxzmjFgjY5DSuwJK0ZFCq}h!NKmESR zqR%Fa10$CNqKs)RI-)1#c}t!;%j2yeGlhSgp^}~+D|WB)W@J3z5@blt51>jAhZ0B; zQb3avGU1U%)rY)s%Mghm;Sqk6(n=4sXIO@K{)XQBEewDgFbXBB$VfscVZr^HN=+nU z@i*i5+WA>-OkCXTsA$~jwHqx`#6%>>7g7VDh^%o$aelgNDZbT^HDX!>NYFs`frgF8 zE!wMB+Bna$i_jbqneGB4%ed08T{LySdm|uQTyfb;+X#_eycbtCyhxYGgf5Zfu1qbh zye>F8TDTu{qC*Cb&c0ETGQ5$rq9(;xcT^l)@8ItY9Pjnv6t_LCB;#UYa>Im>Nc2#Jiv3b2TN1Ji^!7w(Ou`A68ceX4XKZi< z+LTYQ_o#kC(tE+$ctI&^GX*#yw{=q&*lSCWmgJjLBvd6%(-)7h>)Ktswx1uKj9`N) zY}Bz5CK5K77P_8v6K9Z*kn%NV3B)3kK= zZ4Q|f4_~11dGpVF<1d0*@1SUGBVC$Nl%8*-O+bmhTn-8VYxh2Elmrog|UthT_N zmj5=IMV^9&cMP_yI-xj15tsm^*6^F7qdVqiTHdKC&*PdLnr?GO47}0OnnBg%O0;Zj zi9raVgVD}Y%i50pw7vz0@)cbS;6Dh1p5)~|UeS(*!{*_x?cjK&cZ@PY}ivU_i%Ewl~{tVE(7#V7#CzQot`gwwPXHNE;} zFc&P1_MW}6YC0M3e(XarQE^ z^l9cD2ip!e^~aFa9i;A~G}SIypyk@T<)_PSevP-|h!?Qwvw>Hco|5L@uAn zrRx6Bh?Wfc+1}*r^9$jt;_N)1Vk+rurrYMlmz^$r&{U8@_-a~#IkgKJob{yWQoZ@v z##TcU>4DMeR50PUT@Dn?eYln(Uiv5~X4P%_*)%lT}mnQT!jw+1|R19 z<(Tl&E}Yk- z(R|B*D1FsCm@1}+HIlsa=Z*v2@MFHWQ~95-c@NEC-P)I@x)71KyqB!IBt=Zn43p1P zf$EA%6TPH@4_G}1m6a!3*=@%!&B&QM?hTs1aB)wlaL}mJzh}2{1Go}l(c-x|#7wJ^ z;g*hbwpdB@0(^pZ{ai7~F91rKbC#s2)H9*UN=JZ`YNyoN1zw%idU1*xjL0a;jU7Rm zqDz7=j=2;?3>MPR)~uT1Zm3X;pw|A?T=*Sg?6>MqtKW*SWkcB2?S$VcrTqvkMtzKu zm+{+A;U7-b{a#M$)x;Hs*x`x8`Xbg?63=UE+1HJ&(rws+W`hO&ic1ttAd#E;x3{ zvp=g#3?2G8%R2)M#rxB+hNOB|Dz=f;(CH?^nlHT=_q?7nQHNelBnKG0kouDi-Kj)4 z1NtZhMe6zA8t#VgSNWQo1t{?MVw6=YYOzjUs`yMEw$7b5evPN98#p$=h-GNTlccy* z4^FeE>PF?+VIc~)sWt?k^1oo3x950#$GvMb)LPpVpO_6f&OOWd;1C7c3o+MGf~iXD z`>OC2@|yKURO#d^cjA7X*~5c0i;t_gpDYqVG_Yj0G3ouc%*?zkJt+T6g3IEo2>!1` zROv6N(0?9*|6ip-|4Kz+C&r+9|CWk&>gSxog~G=Os3`Y0d~}nf7R9nsxP^RlsOi8p zwK;4F1=1Yh_wU6xGeYl<|N6|U?5S+8T6iXC{f3&d?8D)&=pWa246(Ed4JWVFAFS}e z5CN4aM4=hxPUS3H)(2`AH-1pUzuji z*ZNm3ijI@b{`KIW7s1!vf6qn#rYdG=W@6;vX!P%*Vt=*%&&9AmTmM%N^`G4RJrhOx z%Vz#_G3`S$BBujGzYyPZ7T1LR+Sf@2#Kx(3MXXsKs!?>mSj z5rPSboi7q?2qLm=5lE&Hlur$6s4WSEIE2Eips7GethX}{E^PGQ6~)xaWV`ar^+-xV z6HNyOkS6%i-~`JOcQNF^eEQRf!~y~zAW@1f`11n=JO{eZL8ZBgP0BJ;Gxiq6sFsgF zRl2Un-Q?|l5A3kK%nibyd$frxR;88fPG@d@L@st`ZL#QU=1RqdS=uAVDEijus>KbW z)cGi8Qq}WGb+S`<7SYq|?!xTcQeyU=>_hkc@pL5;@3F_{bw}6Cz|MS$Qj}&g9UC zhK&k7r=XiHu^E3wlhys;^!eq*#q%d-wu}!$kJf0xY$}ju9G)03*S>Gf3Et?m6$;pN zhu7=R$Ja_1;yxLj!$6)lQ+F>%udAB@xHC5d6T%D;RDmxhM=UGUM=UbKh#4*x1+cYO zpjG#%`d(fPw&;bG#Uu8Q-1jwyc?teGn@`HaE6SljmHbP93@C*7SY3^~%g?^QGVcEI z!QJblP3{u?WrA^=Fm%1QC=gV7A(Rze zVl)W35PE~N>L9R3;4W7iU<C!hi!p^O7$2AX-E@WQy@Cx zJNS_wY*|v#boM`gpGZ4_(fSK;SppN2dHwXk8@6!Xs_&^%Qt~U%d{LcrF!@Q&CR-sP ziW+68H}KeTdD$sgq`1c!Nq8nv&K`VTwqJK_Jy(yp5L9U)p}f@7hmr``6zc@uYnF_i z^>}+ao9W_f7BJX@Z~@%jU2eYtix?dtgJx$ z1Otc4F&;o*7ZJs#G0W;9bVQ$iz&7uo$^_XgZ|ZlS`AwrdhTV7$D)=R*xwl5Mj!)%P z6#EA9Bi1wzqbE>WHZfUtb-=|wR@i~}l3hBf&r2=?jkD^PBZfjq4qlXm zdQidZ)B(%1E!im~2tTz)AwGrPTwQn}0L~4xXm;n4Bp zz82z3IM39<7<9E5ut{9n`ZLb1ES>j9>Vp)uUuw;_6s>bHqv{6@RX59&WjdgX)sM1U z^kf#y57VN{kxp}lzkW7OH^X10AkM}+L?bRRTPh5oRrCe=pacGJ0{50!j!s(yA59a0 zzGj%q>{lqj*|vbP=VD%jh4u(5i4K4a3xd8Op~$8umUJA>r&gUUh5!mqLLi_-ek1Yk z)E%DsF)hI(JnTckR%$?P;6;;sTKo+9I7h$uyjjizpKu4h7>KCdE~pi^1^9%brvsUR z!Yt0F-I!fSWm?Z$&YUcH;mBCtQ*)fi9jV!1HA8>)_{jBpL3n7km+rYZw52tYLGsK&VE)Ds^ zK;BApTe$PwN$w%5=ye=6IL%YT^K5R}u^}ujk7G5sB@051zPqz(o4hd>|CI|mRhpOG-Qyfi4o<)Y(rSSdW6oM2 zs@$KP;rH{Aj7;Fb7Nm|21FPiFssk+EeNCM0G=iHacNv2*UDLhyhgUm3w>m%<=a-XF zUAuvlp5^eQd`YWik8k=87QePuaU0EUA2~eZ`yZW~2TnMucU-Yd5RFi+p-ak!c^R9t zX|V{BNSWT>yWv_C_*;vT2rEE(7NlfFjVaK}{QWSj&0R5QeE=A4MG{8utYcG4@+q!d zoj?`1Lzeog#-rXKYj=#uwu+DlaQlRpU_)mWss+rzCz#Nd;b9dk?ys;b#I%?lnCwk! z8Jl&M+~;k;igQRy(`PEcav9<4cbC_aDq&T}mglbaiMcdW%h?j&Dj&6m4iGkM zv$z%5jXC>-!J0+{G0B9uLre~nGimNX6&LLrxG`kEM4wmV0*s$KrYI@{*WgYiFJK9OuKx~OKZ{u&q8;rHscj z5GeK%)f;_Z-;}cS-;{42{}!$=nxqg{zz_sJ@oOx6PNnnkxk@B{WdEA#Q7vD@!Nr$6 z53Gql9|ZNvxTP+{7?1|xoeRTx8)w zbAdFWW!fI0@z76rKRb2%naf`W!hI&&t8{&X6L!>{uJk=ZGzW(L->Tt6i9ce){K=c-etzSSWcS|&;jt@5*T>!cSt0^NJ> zKX~KBJQCZMul{K2Z~u-?(EgGh|7V)~e~}*l3!D5Wd9HnVIB8weNW)$GFi zd3&@vg8xZB$=*g7`?iaZ@CKM6)$UrK!03$^M4=r^-OV1AM5617sQt4QCL8pJPZH?I zoAxx;{>24tvqzclk8Cb>$WNzdJ*Z_0ycsF64B-L+)Vr2x7JSu!!i&8{V>$c)T8xUU z_qV;nZ#^9$_<&zP!fsSQ?#;A-eujB4SD`2uEd%v=)z!XFpDT`;bhnyv_Wlor+*n8c za(P(L^_BtXn9Dt|Tf1e?lix7KhBq>LIu@4i6&9oXX&GRjFjes6mS>i2ttWr7}LK_pGL@{1a{Z7&LKA zA5DlFHj$o}U2CadcmO~*sPkYDWnMOXZxiGe^5~cXfWt_{gqq~#l$p>=lwa~*A|n^ z{E2LL`pr8Wr-&p!BLB7we${ZM&uVVfOS!^E&=#jg%C8JPjzvN@v0>Q@)1p&HgssOa z%cIpuRsyEYWL=q+`K?GbKN)hoX4%YHlro#G$JyIZW^`T(ZFx!(?)WlDl-_>nAs9kwmVGn{@U!o#6!0|0Qn@`Fj_{);nv z^)+_m_=lS}Uti5|X@uWGuu(OMtz+z(A16=sbx6Xr$9HLYD`#*E zMaT{pk4p#>-3#R$C3G&{{=4=T4PaOT61cCE#qK~mWI_VYp?CwP696P_AT+2)fK0%h zLW_=IsnGnDcyut1-tVIgTKQ~DGh*+%MT+?-eM7zYeo3~Iiv@-I(y(rMG(B;*`SZU_ z?qc27kD&I}?slFvYF1lbYxyF+{c`@M#ruOpSjI$`GcWZ zSS}VNc>ES0RIMgp;D}~iwh?QYgJ2sGtqGj@ja38W2-o%l&$Df%+qtTQBsk()vZg>E zQhJm{1}^nA`D6>|1&*f#z&Wg4GPIGEPceCeI}*LQKMk!(q8>rGzkX%pxm zI0~~pb1fgsceAPC?nSNTQKgA33&Nw~sXpwH=;Se>e$5tluam==Av}DEUF+d7IZjYSNJzn@so)eJiB4ZRWWZ^ysY%IG@9VwZhGV?bX?OQ> zWy5nLhg{CjuWZHx(tbudaLvDl+cvUpy{7Ye!h4)$Cj~##(FL!zTTV2cnPtQUhgXm= z6Q!0+o&UOIHQ{g%mw9cb0!~nlY0AU)a`kY&wsU9TfXxEA(f%z3?5o=19wv%a#VfsRz z&>svYaSmZNaDpKe!SsT;3UWGJgax1y?Ey5xdW<#@JkzMgA5SU5a?s!Zts+HENimr( zwSOyYgo-*jek}YnIll>CCtC2=G*Bc3I3`nP)|ZM)Dkb80HG%BMFZuGaMS)zk1e6-& z3v-EYg*R9O6;K^9_`F)cmiW3_#@ATRDfhKqp~bRSVu89$s#VIaba42*aQNVS=!%N+ z4YQX^&qX9vEWK zL!;LOk0e;BLdb$`@qqF>ijX+pdYBTe^$#5q5W*5zMQ9)w_hlGn3Dr`D*`yc?@~X@9fbIW15+>38UY9y-d|uIWkdD;SzU zq6tKYu@e2B9hvI+K}~E^$Ii(_ZI_8D3&hDxq?FLto+*;!5DB5a4+jS`8sY0hLKlKZ z^uF(tf|Kw|J$hB&?qo@;bR*6woFcJ1Kh7J)1dyQ8w0v3K2lotB25J^{6n@DBHqX~A zdNIhWfpS&Kw~-Dik!)_ep)4h$n~S`Ij`y{jx-IX(EH&6(dnHb%k8)qEm^t9afi2>K zoRyt~lXVIz72RIpmLbU%K#%Ki%Lg8CT$kOq!40E2$G;ouO5c_dAq~Ym1{}aRVvLmf z44BP;ofTwiA1e0PPP0QivrtDNliCSWwtGHb zpPz;wJJ~*~(^R7kgCU`tqp!%7BZ*bm5;ycm>UQ**M~Eubo~v|qBcUZ1@*iXPVs`)z ztoE-m|8V3fPU<~M8!c#1juNDc2rjn8RyfZXDDv!EyL}PW5aBV<$l#2ZYtMEV0)KU0 zO_btP)?I+Kd9h49&riT+8RblHqP#yM#@70D{5biJVbATOoo~J*-M%6G^i(q&R%x^z zwD#ctJ*L!xgSfS>@?v}JQ7T?y8LuN`*TLX?E%sN?0Ndee4r@&2fshA2cB#AX@10x5 zZH0IP)g)y$s~q>K}s4HtD*fk8N&x`eO^vs?~06dSP>? zjq8yt2$*!@gq$d=I^6asu$2Dr`$c=qCSjXRHqpU2sKIznTrs((l$7^dU6TCzcX>P zcHp$4Veg%a?olh32Bgi&)Dy0rWS*_gkV zIu^b;@+scob4)$G%xQro8WCs;qpgSGl}A%_SyGF!>`SG^}$$D@^!;~XefpADsr^P=>f>$?n_ z{XdMo18{Ba(k&c2*|F{H*tVS=+qP}nw#}XF*tTukcK)1mzWcrBd++)0y{l?g%{A-k zx#q0Z^;Gxh(W6;Nrr}k8hqdOx0NW(7168adBLi7X*Uu~rH!of3A<5+z}`kz*ko)3W)MaTEQtPkjGlM8Tw~?b%bTGA5h~RO1bdZxK8PUHhgTcq6i5}jcs7khgjoZF;j4n9ySr~6~rj8wj`CR6&^?Z{f=>F*frE*k)K#|n^ zXukv;_~qOsV)5m16d?P58{*_PAyU`zVF=b<5`$X$L(Jp15KkhYCHWKI={5;c>8Hcy zu3YF#A7=`kk^i#uBUpL?sMg9 z<*P9xyWQ@qsFThdnb=mYW<=NZptkJmlW~O{-<9Q@Vnd?o^xz z1?*%Ze`L1J@G{1UK!vp*CKw&$;U&)2lsqWaB?GN)m5=jKf@)KKc}$6h0mG19jz(5R zC(K&j7Ppc?sIVl(YH!ZRQuoaCYz&+*%VlI?w|rtmcKS}&su-eM?%g2B`Xkx8?(Ng& z?$RbyLpMDwei62&xZO%%)Y~a4rYv>Yz;HKzJ>hr_Ogl!()&{!WyWNeLJ=*$VwiC3y zy|)9U+EdrnaMN@XNHa_o@j=+}@{`ysf zg~iIVPuIE2Dy3Ik)@<>34M|(ZH&ILoCA>+}GVKB(q6Wl@>b|cM@bM0QqvRyxuB3Q~ zDH}r7>wtrdsN)>EEa&y913|ktPj-&tXOEnqL*E^mR4Mp6Y@;`TU{SMg6f_bTrKjpF zl(geSGgpb;8GR&3jT%9Pq|r7)`jx~i&gLLtA3IFW`(__=Y zhJF6jIVMz$tS*`EW04IfCxj6wv?k`JB0$b&1*7ia1fGYR(2wfBl2B7aOn%F_r?%AV z@NiDIcIi0OZW6M+O(4ysCC{0oG@`Y9O#b$an7*E)n$OTbS#_rCb)x@5au0{KcW%ll&KbuQNxIXB;?F)X)e_TIlK*tbD?(4Dc z+`^jXex;bn^&E%DO6nyWJM3q*@xC#BNIWmv4~VQx zMMrl&bwhVV6qKSGED0|;8hTj{t)#Cuz}})AS=|gS*z83icRp;6%}V;?NFJ3{klEs0 z**W=LH+_UtKl@N8#=>s6C5Fd&j^)ol;wpA#QEoc8ENjwO%=~cwlE$EmHD3!eCg6GC zeZWe!4af_rlQLV=Nm76y9^>;U&%haAZ3ncX#=y@-1owEQ4BBSZ`^%n z)Aek>kYM?TAuZKnlFDG*5>R7GT5frb&%0`qHiav1WRCnxb9RjH+og8JYuIu`lgE(4o~Sze)$a$z*I!CP#6>wCwrA?R_EN?Jy)kCxEV(47{F9L9a$(OIafLa- zerv@T)hB1#@>YHA6(#n z!&Com^&dK-|J&-nP5*_YE(`t7AN&u(6#vuozcADRRV#;GHpI`&7nJgOujMKr&XM!W ziDEW$NH(M^gk0b8F;P8exxq$qNw}Tr%dV}tcq^%3soyRhtV(x;P3p3|8>iOdjw~&$ zXmNTmX7MLoS=CW1ny=oYctVFaurZ6h3NNEMkv1PW?TlCF^JdyS=4uu;O&T_Di>F$d zSy^v6)**~kQf?Z?tJhSBsznDyjlFr{&2c|Hg6JPJ2MeOJYONl)Jae44G9BenBK8A@ znXlWN%lGhxH~GwxD)f;CwE*0n)Qxbu;&tPXL}=U$uMZ9}fuwj7+0aamt|q@x&5P$G zkc920pc=!*Q<`up8KI#q$zj_;g_#d87F_zYx~&)Bt7qlFGSy@96s)~inap_OOcMJ) zEEiR|U+PplE9KjifWE4hAfF@nQ7t>M=y9SJcc|mIE>-K zKLrzEG$86x2pw{{A}|n(2CNV7AZ-`@ksKo)l3ocx!3t;aV7P}+?k)N3>yX*enN?RE zZ_(dJgfW=2`=Tnv&KtCh@lkSt+23{4< zn@p6SR*N+Ux=V6+zQr53(2YN=$`vYPCA7&K{;`Jpa!ayrAcqWo#sy~7XlBv$o@=+_ zMLuIm53`}T;fHA#P%-~%nM01y{zp84L&#Q4{*eaCf(H!?R9`wyDIc+S^VnL)%9)*+ z?osfbs1L!er(8rx*xug%r&LifchPMTgZBCI&m&Vay9jCrCVFK0bgc4LVVocn&R}%Y zp94WV41y6xiVYb!W~)#YXOKx2Rkl@1#O!oxmHGLX*hWb2e&%0}%GDenGnnC^vYH;q zmFd3+ilF8yca+sOxAm-)euhaInFZlnA~OLNG-@Q?DZa4oR6cq$v)%pN*_F@DWXr%*Ei{4;AmA>D1fclI*0$)vjzDP6qxV+S9- zc5V}9tAzTIK65Mb>JSEVZqxKLEviP%=05F%8yi-g>X|7GtR4ePR?U?YBN)(drpN0baI7?Lv(dPJR2ZNI8oIB z_Yb#FIAE98y&2E&Db)6?$+H8zKDBB64l}lbZB5xBI{v(Y@H)_*)?eFlU6&&B=pSAtl|!qKQ>|U6eUlrD^JZqChG3kx^7@u5O}Fs6kTt*oDHlVZN7!j&S6eiaE<^zl%5w^Ab2>N_B)y zC&STTq9K}X_@crAnQc32quyE>dkfBZU>)W!xKPX{a^1g*C;WyUdVJ9d@g0*gbo6@x3>v5*VwGm$c=pqfu{sN6S6*Yz-h{m{QJbL4Dvs&jK zHFc!(MujV^$W(7eTXrWnsAUb4npDguKKO7hu|uMHl=*SKdDos*#xm(kn=2d70iJRC zO@tZ51p45O!Q!U1CGnQt{(RjEs%p3|Z}y_p9#Tm3jMykjBy+{MZCLvRaR?h9HwqTz z)bwD`DZrC{xoV}Xm^eMaVfS(8X?GWG&@{S$da@N{v50O%kh`Jr3wb=#$PkwMN;$9g z5prb@PIIMl#JU1|eW|)2d<{4K-0k>Cm?WdN-)_cZw%6o4y|Uj#Y`1t<2J9HDA$IlL z(^fl4v~bm%S0o0)n$^IJdqN7TQX`yAToonjk|ZjwezL5M5s5gOQRg|IqdG{_+>J&u zbOnwO>3!HX3NQNgraS;Dqw8^d=`+U7qf>HVr>VbE`z7C8Ue~Bnb!)7&)zfD43Hy&4 zGFq(=65Tg#R~hZ!12-+<{~3Y&2VtxKJp%bFWFr~phw8)s?iK6U#sT|{Can<5hf0z- z>*N54M7Buy6N&obB4hd@TEF2}^E3`!fi!S8UbH6g}XKxXQ z91i)4i~7y7+W%AvD-CBB|GxO&pZ~+KUwtDzYbQrD%YT&joD zvHRbi=Rfy|{a-Ug* zF34uVE4aer$gN^Vukg>&2&X52SbPBa-@V0_+y;`(AI%@F8{E1ZFE=dF!+{hNMbCOJ zQ)XA6%Nr-}EeopzfthwWkP|@q#PkLtaEPaUKV+lF6Mu@x82$t@_f7P4+RpNn-j1Un z1SOJ>Q~epN=}8f}+c)2>o@htRq!>9Mg?<6QOK-fQqX{SDF=W_JBmz{;NVx1ZI)RRn zM!#hEa{(3ukP;IFyQvsq2MBdn3VuMK9Ee6>nKg|9HySoh0T46VZ5KZS(0n%w`S)>T z%?8T7C+(bORQzBIL3V6YTG4RloQSdx!K5|Z#>cA%1Mq3;WN2(~VS18ky+#fRm=I{o zF7dA7b7kR*=a1T3kIOnNT}Z)+i?muDcHEKC7Vcwx0jCBa|aoKZZ6YTc$zRWG2HemWF2D>1#>+o z2cTS8u>lcJ`$uyT1!RGKExLHl8RYW-{rjd8-xCy2^%O&W`TeIj^my>>@D!2sBm_kS zAQ5QkL=cPht7nQZL11E~`wgrusZLt8CuJ%?kBENVroRMt?;yN}Y^(#)XVLv~?pZi! zc^fzD%NwQB*)-=F5^<5vQE&fn_L%xOcpnGuO>JzR2I~VZW%4Pz*iE~yl6qQ>tn96Y zt{SQTaq+|INEy6MYq}}HmpABSRrfSdqIkq?8uZ>Dv6mT4!*LxbSx?^RIrJ3_)jm>r zuxu}x55qcJr*-O)!}^BP`hw>1vY$bBW(^48;ka4Sf|KMX9490)eE!;0t(9~|B6Vzc zB52J)n@u+50Ex+XgA4SYL1Z5uy<-GjjSjaA4$ZaM@0`1!9QqPuCuIqqQg>Bly}D{& z0>6P2o9?EauH1y0NF!Bz8$0e-zcoAVY?(h2beuSfu`b&vz>U>w0Ddr%MPh&H5K75+ zN3<}zJc<*&2os37b&h?iFG%-VmD=P*vzQsmq%Dj|Ylcal461eNI{pTQ=$PUQOy#Te zkQG=JK9ge5I1}Pwu77PT&W@Zz;0}M&{t>Bdl42c1|NKH#VTrD>jPqQl{ z8}}V*A!unFF<|%R=Um5Qz0E30e4!Aq5u2navGMn`Iib6l*eU#}30BLCuI0DvY4Ugl zDk}QtE)+YeZv1+GKEl*miFcYjVtexRnaFcqULT;IUCQ~H!`Gt=hj%~`QZ>VeTxW;4 zV)~OT0f<|2e4^0;?pC> zd%_&Ej8>}a!hHZ0=L7+X2FtTFL3D`Cf+QvBEhJmZ*8?9GZ9CWbEy4TYPs!D8CSk&l&29T%;+GsG7|D@& zQ^zBrutw!V0kjP|K#S0WK&_y!?fK>++7ze~%ofdZfuM!nCBys{j^rK1-AyM1mPtrE zl3lY4Shlb+E23dF#n~?FFMW8Xu=iNrQ)OMP*DxVO$Ktp!VbQ`qt^ zT(z_etJfu2;g3`st7 zhB&*ZoQuaQ4()ff+?fvq3bqz(3DZobUFtiylaKiNO@$@<4e6V>lZZ5I-sK}(=P0fQ znpO4Q`Sel351se6#UF}vKx)}gJ&si`Zfsk)&3IcyZWOt;J_eq&h2eSSv#^6oIU*ye zuC`-ax%KV_1I+AV0ij9>_gAsVn1x8kq~32O`%#b={F?Rh0z zTv>;hENoBYY%W2z>*DuO79ck=-=^4u6@=PTGbW14RbWm5>j}0UU@43foI41PBEd2^ zm4Pu7q&MxwfEV6g`qDZ}C=^pL*pFDvK%Sl_IL{40F1iol_HqrjQ<&t**1fvycQ zGNgu`ZGF~_y#5?i1Z8`qFMPf8w=m;J%h5svLxI;%qULGem#k;sIt39R?wjsxQcI7< zk79&ySU>dzp^zmwr=7qzs-?Af#L?~eHMh<5Mg=kLHzj%AYHA{GoilX5c$2@;j#R%z00-e=v;w=Y9;30K}0-J zV0a>g>5wu4be8Qt0akl|o*AXW+&DmZpyX3oWUS1($ZvM4f7-u|6l5D6j8J2`A>H4tj<<=)Wc9-!DpUrU?? zN1ij{uz&gby3#qvx$^-}=`BDB)C^O9$x7u$lrI)wwDq>*AQC5NV1YdZk`AV8_Kxl^ zLc2+Wej5u*NHc_dlC)hZedM?^2rY6!()*s6Bs(x~e%e^$xanoac;XQxGj8{p!C{cZDyaF_|i%G>N__D7dWHKc3 zvQ#0fZ%2xMRsZHsUePFLipQy7PuM2dCig|4G z`ca)jJC)_{`b-Nv-e&l`KJmv0MpmXwT13H-Iy+TeOnDV8u zLNH4ao!~+mG661S#)4p+^ZM!TZ>LM=@f=Giwq48(On6fR0xN#we)03ASfycB=WEPk zz)nqE$#V(ma3leH$q;yLhR;V(!{WdMm`s7}@n z%TDX<)DzjZ&2S+1M=as-U-X4#6T0U}Kc^XklenTRi$370m$z}?At z>7E>>yw0r|g;_$fnZ1jGn2{%H+1sDr{Y}>5!e8U8R5X!w7+t2^E*q$)gA}ifGd2^9 z`f|NbL?YkS-9%K!SXJ(QMxNNFQ5inmL>+!9IovKN{SorY8Lq3}v*m2ZpgZO)(^HXh zE1J0%$!}-8;BlYh_1Nd(cxY!Gim8b!b#SQW0|Nkn z``s=1S6cM}(0p5>#?@jGyS~ z8W6P?HRcNk~(4lR*BNg^DVj3)p^VoBt~d{TH%t^tXx7-xZU;nnPt|6~zUGX&hZ0 zy~gX{dhy|Xcd|;Fe}Vfs)7x33KLfE`qIC-humgqkH#N;PxB7hX8ZmA5NUe#K_2L-R z4u1;1Zck}=mHJ(>#GGmew}60 z$UCFP4t$|ub2)U9FL&1_jN6WYWvldbV^WozA{dm8>kH7w(zrO(TzrTRg_v6bb z{PPVq)HNK|22s49YL@Mb70kejvzW}Vj>78pgR2D1gj%dg6GBL8@teSEhiUM`KOVSK zI{XR^U0#)?iFtQdleg zxVkuy@l@78+qrmoxHvrQPVqMxelFWkgghejkQt5CTqokrYcJ4yo>ov8_fs z*bS`BUxjT03x-o^21QT>g@-BM+C8`3WT4XXd$ytKq@DOHclk_j$lkTD#npuBWG1GO z6`p>id}gOdl#$j*MAU9qK<8GzUZoM>N$nc(XCCLL3jr9B1f2%=wo^z|H_@C;Y^p4*o;hoQq4_CBi zoWO^Aec=3i+hDaEuK??YNzjP=`yx)df${;AWV4Li31dDids3R+>hCF8T8G*pU(=*N zS}}hmqqupx0-ho?EWn`vc4%B+gK`aEkO8(F5YI2xYCuvzoGjpqs@o`4RR$g0TS%jR z1!^=D&)PDHtD#_5w*AH!L5>Z~XACfPtgv&rE?|799lEw}AYdy3Ity7R;@5`Zl?!~Y zd2nvH=WH(eh2gnw`3ah5Ti$vO_m0zSU`ftvZlV7C9b3aSz(E52nql{p5BANs!ThR2 zm9KRZ)1>FlO|f&763fsw5WtY1#B+d-12FNeAp@VBftGpgKE9BHJF>3$Nj+eDd}rXp z^f(7ee!e3)n`#R|L|x>2*-NhvRD1GXr>+JV%O$okERA%_+gAiMgA81o$dhQ;ALMJT z3+Bq!i=_dDyJ)D)4x_3uEWocpy9)%Di)*yjH(3jxi_@Elwwn;qsZx7KM66)&m@)#T zGI|PLyBmOL3eUa4rTu{}z2i!(y#`bHkNnWPVn+iqg((_`NJXVNTrBto8N)hQKImRy zLRBk_%o2c5V=@U!7-2=+OevW}o>O93!qOID;v1&V;@%KDyaLM_E#@?tW@*u{AIK~> zkOQ^{X=1U4%Pb90-aZm9gp%QazqYy;rG2eftpPZ>TtPPZXN1!e+<8z;iF$94)DhaH z4lY;B3Go|SHDKAU+dC>Am<=Ug&(00U1iF?n zl?~|zo~Q|O_5RYV8JmfOi*HJLL=wo6J|~x>Ik;~mIuDT(!i&?J5+U?oumpWfCY)M$ zIcExrd3NG*9`2r!&tCTpjk%a9)(0Q8MD9nD6A>1JlQ?=SBz8P)Lf9?ov62LSJhYDr zWR>Iv%da`wtr4rRU2D2|_EQUc7#>&{I$bd)m8{23LQxct!w|y{^quVA4MhWB4^#l^ zJ6ixqhTH+4UQ+ak(kx)yki2aVK-wEh>2^Oy#UgWvov?LP(*Vt3f^P#?AdJmXblCdZ z3C>&dM~OAy9=w5^C1JZ7f~^Fl6v%yy3gnB~@}1N)$MM<=6W(k(VB*!Mk2^@fnM!o% zMRlIWV+7xj0NMBgzS8VwSoo2uJ8ci+N9gAtjg>DsbEn351*iqC$N7>QdH@}Rw~#8urn3LON%Pv1BpW!bT4v_N3H zkh2Qv(kWt_^2{y$m}-bW)-=h?ue^@}aIsJZ92`c|8p{0EB%f0FM_5l0inWAIje{*I zhICvaW+MBt?-*RP!bDHj^T4=&ereDE>DJ|X?t+MxK4W+PlGYu_viXyc$-sUDAC2-p zgQx&XFEvmc_g#@P74a$#6d^iDrFHXDvUBQ27QPBnjiZ5YgzALpL92qEt(C1rhw4m= z;7pPYK5THJ`~kTV{R_fY4&0itr@%xNw*|zE$dUzU_!l-of!`Nv9ii-+G0l!FzFM3* z0fQJ+l`_Sny%pwhSaT=%xjWM7c~JX)LNvUY#yr}>o;UD%`A#T=I{QP^2Ek_*wxYZj z+a+;l2?OTix}nGIHt8?3^MYERqrB(=c>hO!7j&|9?p8~Wz-IJWawLr>Y7D`;%#%r@ z#(E`SVpRlJhi_(p3jih#9?cq?bt+JPH;m*$-SvzXK9w?*n?hV1B-9K+Q3fwo4F2S? z15DX-N-9=?Ni6@UQZNLyA_f;}dIIAlT$$~SxQyh(yy*gozw&*T&HMC1{ldh@?ZpF3 z{FNQPhr#L#cdWh1+x|)te|MS`dmYsaB@&9dEF@1N%0nu}@w{3+A-Q26PQV*BAyWx0>m-EiW>g3GVM)l$Z-bT zk;60{QJoxO`t%!)i(aTsiSgvS^uC|Q3EO@EE+KQxuw3!!^EzQahm`SMo#k+OuaCyL z%Wdd*A;>~UP$w}GRAVQw=)Ot5H`EZ8QcB?bl?LN7MHV^qT1?PAF)y-O z81(5^wBpL9Oce?n%F5KZxMsrl=UP%Fh<`Lq7JuvYCajf3Pd&A|J-PFlOLt2bHa7 zgUc*O)&bGOG^Dw~qHo&IuzJ0hd) zUH$VgOSRG))kmkg+V|456VSW=q*Rh@CXiBzg;W|t$Uz>%_7p&xCM_J3&;zPYcl_<( zyzD;{%~V^S#!ytNklY;CSQK+o|Jl2^>{>@M0GZ z`*G)ES7zP2x$RpP$KlVxS}&LlD&H3_%Yx$>A1mWJicB9Umx;6u^Q;4hE$mECjNCg( z|HNStmz5(N8v-tC_aEoL^T|Yx#u1p)&+P9}1TVs8W{hKXPbuu4aHIpmSAW)zgK4Hx zRNX+QbFA^XRlz(LrfZQL17$d|{sd-FLF5wPVK|zvnd<5kwNmX`xzJ-A4312h?0xu$ z0Zraxbr1-Mj#}B_B3x1TCIff+Z67@?44dq z@VT>hKR{hA)~}g}k>fXdCi#K{o3y$T90h>|4yIupN9~!9xg4qv7*q{v?Cpu9RI-ai zV!U8&xS1F?r^~|7WOpF_P~WM;>H}aC8a@N=_FqTEn1zIG2wEsKHxVn4IT-X&z zP84&rTG2B!dngz80}k1x{Nj2co(bNdo`v5`k-e!4HIJbB3)7FOhx|lRifkjFSV%S@p95m*P%1P>eMttVqv=a8cKI?A#J9mftuhK{?bf1MV6?=oK;#5HZZB6O7z6f zAHO2zT5b-vM?^TL0jXmxF-P8cA_gN_M6}p^YgANJRi-+?M7wCMZFb@gc(-z)&C~%x z-LGqC_iHY9YzjwtHc5K6KG0~$-z|{m%mi{5z@ixGVD}r5P%@%m0!Jn^IU0Ys->Pno;&%H3;3U}Xh5CL=8HLU(cmHZ zZVGTaIfqA`omnGVcHw-FVr~c%)7_N;Y=KZ&;Al&q&3MUR$z`VO*ZC3&3=SG2OpWov z?V8m$O7BOZHe$h~v1u~>?3tQHV6ye9Qa3$cQ*`8{A-Hg^_BsxFJ1nrL3JF3Q4&ZDm z+0kc>c4@(%-;~}3+yk;jn<~3z_jtt0D^1daW#hWwf6`q0Jx?ASJdqRL6G4DzcD_Gz zO}lQquq5WvizpVd5juSs3(hgHW2^-6B@044O?BA6;x@mTdwn1(7L(}oPUr06er7Qu zCq&K5Y}xio2E6-~pg(_!bphXy)>kE^m%{sJn!@(OU{|e0!`t#f=2AHh**w0OiSM3W z-fP~Wef=|CZ)n&Jw)z18piT9!bp5;6{ky7PsUh{P3;WjxnB zo-h%w`|moQDf$c?2zEU?Ux*h3!K_%1ZG#VzkM30Z_%lMTG8?ylmv%e#=OMW>WLum6 zCI>4xdE@%tXp!xpBqMHB8p}jF`hr+@2_DRGnT3;EP*9eSz`GYef^-p?3ZWlrgF>Hmu|YdS#aZZp)2wr zGoh|qH;!mvjjRyvUkVRD@~#*RP4bgKT~BWdj$E=KdupvGE7mI~Wwn`$P+RU)gB_VH zMHRYCS-v*1yf7u}J%x@OIp&{M_7mV-%JFOiaLu5EV3|`ARsjvgJL^dJPn0O{r*;VQ zZudKKRf#le&B=5Z2O*Iy?m)^PKvzrX-Gdg1^YY$>{N8s{^L&*Oee1~FFuaU3(|>pJ z>qq|780vR{`BS`Tq5i>$s1v7n{h7#4WH(Bin7C!KJodFR)*MOMU%q?#Jjtv{R-qT= zP92|8!i|%llkUtKpVsvc)DRuI+JgiL0H722-%+W*dmHwD@HTO42S;N1f4Q4if|cx? z9P-dt3b&)|u+YA^P~d0)p#m}pzhN{YT9dUNsDLZI!@U zjW=nVYWT|bSlN2j>hD~mZPFJfAsk7H*nQ3x$qEx04_Zxxdg{GdAjWhVd}K7lwm%#o z$M-tdT#;DAaMX4~7QN|%16_Dh8 zGGcd03*SlQ3J}$X=sO~-mduT%@mJOxYwJxgo&2hm%YeA4DPOIOAn{I}11RAlWi5|B zk=pR#)iqR5++#W!^@*1%RHLom$ofSG*$*08g{ePSsVhLMDi6ttv*t=K3J*Nh$GD2` zrCLj?YAAs0NOa~KM>AGXq80_orUEKXsL0BL2m#Tg;AWJ#WK|T1JzjKOgCSaNS_sp#s|df#-+M zT>Vn^YpyYEhPQTcHWPfh$*|+VOMk*YW-y8`__1JmF&)lyP~_pgpyp>&DBj2Gm;$7X z1fUal2p1$Q#_x-X9IxT^Zyap${==n<@^t&czFk`3dvpE^X#KlO|ARjMkDdG9w_9mF z15-0=qks8ylp3_I;z82qWc%g##6&4i1EnAXF>s$$ zrj%>h`Kh^5dDWV}hAC+B;vi~yXsj>!Vyn_xwUySN)5bQZ4P}?N>OWOQ_#czJg5AXU z1W#Q@K3PjXoerOpollzvq5w?8ZYUh<}k}IPidoJwC{Ek~`|Ba>TtIat_ z}*Xb5IZ~b-U5d7l;f~Qn-mRi9uG@jSTiyRY?y* zlp3bq@!xkzDjZqJiQ{T08dw!qqonZ<4v1N5GNP!&tMYZ0D#78*_ZiuCB8TkI#X1sT zi|MM3McgtDhGqDc?$mW~P}-G&m7U3>6B14G?l;)>*-L+ng}LhK z8VN_@X4y}YRc}{SN%KD5b@A7-a~V4rPehWS&a3fkQrN0F%yzYo zAvU$BR08%!$tq%*P#Fsv!dujyJk+J))YwvH$TE*`F{W7RtpTCr9ZoiNRAYMe3-N%v zNn`;hboa%Xr=Hfo|BY7I#z1{Ti3CMT)>R?nceTy&t}f^N6H+sKq@Tr<)RqoUh4UHx zkS%n#z(2fxRdwe^{WOhde;Unx-4<~RRrY(S8z;S3Jp zw{CODGw6W{w2LSZq9ZY}wO}{d1`fq9?yK&sXqY&8 z@SGvSg{+7%!%`xe-DntvHt&OB+Z!s3lVNh}IQueNLnc(lg$xJrL3yi(8AFCmR7r*j zqrLj2rhd-fVN3*=+6Wdn6>5RrDfH2iN}qef08gW?qNHL)3^`(!&PA&RWs8RG3vuG* z`iK@FeN(#hXM+?o6O_sW8mYzYj5sL#n(jaS^H*F+lNUVccCcef(K%Fai8jlT+kr`s zGN8~-^pqAHz{<-WD!CWgW5`+7nJ9{-OpZq$O5FS^ zE>;|lXf^G<95;JGuN>z5VaGM^&4`QP&Ba}&8`I1Eu=4|8(q55|r7Y*$1V}qcJCXy( zelw>6UE)hAUBr8nFZ%ysh}$Q@SNuao>rZu3o&TI3eI9%WS6o#|&#a2VjHEm^f%=m0myxeS+jx3>m!KHI1~v}?U|W+q91Ej^wkJxCQQk_Q72Hek>EVl;UN^iGnF zYdpT(VrO1|aQN~vZh(lr9TMg@gj4=Pv`0W>7<4=Hh9!(Xj8e%b^_Wp=r&KctaDOzIyCM&sTT=f@L%QXX3KHS0GmRYO2-* zV9EXmWbmhFXBy3xpz60Q-s$5&o=XZP-2}+chcY~Yh&{?MWb{JU)QOWB3=&S%XFNB? z6Q$njKLlehsNeltP?DZaGDFr%Z!SdU>NFL449tWxk%R6}G-HxX$IdhXw&<5pS7T;1 z@%@zCHW&=6ie(C|g+&{CRzvbUU_Y9Ynv+| zVvmMrR%3oe0kUqdh2{Fl3hRRRqV!~iCfY1`!xGS|S3TkMqjy55`&(ue%UQYo7-Uhe zMp<1(cdkOTP%!9UGJV5>UUqW<7g zTD80nRw=Ear{G+wp}1)(*uu_D_NY6{LS=WM`P7b+s<9SOUe)|tS#-F(wQidFouO$v z%D&0=g(Set4QxPhnMJC|v_c=Nd_2sC)s*Hog>}ib2fNy0)T!U85baOIMy&;wB-=&M zXcB!$X1IMhvm03@A1lzOwv-*wnqrCDiySSN8M^UtvZQ9lC<>FvdhOMC^qs$Skaj7> zF$zmi>y}3kv>DTVu8iBoNyJbSeZU3q^j8$Q2rI$0Q)G{IWFIR%!4 zO3Op-FXRq~-o~TA>sx(dCnTnD46kqo)VO5#G4PgKhefw$o{(F5k=&A(TLS^lJfb;6 z4$lPI{V~@+wYz1-I-*mqzi~91RGqCJO4lDX5&$(f`L7BXVL2nN?KBInf;4?o2Sm?7 z4Lj1}yVT-$9xh0{;MP4h2MNzvmV;LZbI$>mJ!`*ld=hJRaaN*u$NJivc*9*zKDtH? z*nZ0H*^r*PhIuZ`jz5CjM95x5B?cek6N8y-Sl0r$hI_ew=9^dNp_Now-QS6)k~?zX?h_s|V=Y%=Er%^hxphurkyBZtJ4MV?pFLhE2DEN$Y2;7WqQ#L#8I!Su$zX zbvo2Xl<=FapGq^{oV%^w2CHcw?L*?TsXfk+=-dX9r}q9`x&=KiO0!--*^vxXn;bKG z`WzpiGID9fauB^Shulo2LN9sZTF>wNTHbhikv+AHJoAII8`vFoU5?O%bYS;G+dDp z$%)$Q5yjsSS{1q)quP^<3$O@3>puH9{ppU0oM-Eib$!uWN8qm=#iGrSk!dV`p%lt<>6+v|e z6n%&ws#DJT_;xO&^#+*n5X`H|dNsHNY-J&8BOrRygvH&DsEuv{I#ou?fLKbP)P!w{NwnBNputCyJr5VBKJV<__pb?mYCf^w1Qfz*c?x zG@yUJIQJTOzJ^;_5S0L5br8wYO>a9$(QlY+&rID{kktcsLqpJ3Ly|jptWM&KWts}e zY~t*Atm}Bg>u|@q&MG5njSyb?d%@rQ5{3ndBT<2~6M-{Ufm0VClQ;|tm+>#Z)v8n4 zAX7acQaxbFl^MXiC!n8L6qL|mz5KEaQ6@p1<5`zA45 zVnA7NR;s#u#p38>X=QsCePQcx4SeqxXN%YM}teQ?` z5ss$RI=D}C95Xb2Hj z90`HK>7rpvmN;`f5q!!<@AFVwGR2r|)V$bNe*N7PT^4GuNT^|hh> zi)1#1tPa>)=czsiW@MYbUJk6jKfJGSWp06(VWxXLkwtS7)J))$i`Aq|$}FS{$p^Cn zzPun2zX1?mD0+>Fwmj{QV4^gSH0f!1`ElEH6*L@ffRRN^toe{RIl9a3U@azsxd!y9 z9L}hZFdTgItrEVzhaU_)l;L)Q4dBNQ+;4H?{!9nj690C{NbQqLa3hg6tw{20&l-g2?!13APRS2A+l0|?dq>++$Tcis1sGv|v z*y+G+*;t~X$PjV;y4tI=s5&+Ht_tc!Ly~d6tJZiL-DeASR3Q?K-tBQ76rB5sAC>@a zRHZvw$BeM9gD(0bJG9mp#9srDMn6wo_5FGG-_L&^fd3{fv;O_r@><_oADZ`+baPZy z&ohE7DVai(wI!RJESw#<-RR5!0LkT0Rk?s9yl6lQfK0x!Y~z$egGSSaol z`2etLe3y>bTgUWU#@+sOv)~WnibwpY2s$-ACJ?WYQCZ{z`eZ%;Ve~tOs&O)Up(iKK zP2G@%ap*8nuKBAq0KvMo*{276)|zwu#an-)Ak~?s_j|5>)kWKLu zUoCvCJ2vKY0tJmEzFY1!G)?4OuozL5w1jFP5Au|vgwAzTRtSa>s&=5EGu?VpW^9f(wgOo>DU=9kcGmN@e9l%D&WM2Aa93#HXSHJur zIgX2$H;Mh*A{*Zey#3ecPzffNAAQ(#Ab9=(>F@6gEshX$p?AY2xcI>(7OnjyAK0_h zU1?*uUHz6cY38U~`V84~JopI4eWKG)I&kHkyXPO<+4q6R-2zcNrMf+WpvmCyngSWW zVh`vgZP7u(P+R;wxZoM)O^XB`0cqxRm_B%inG3*u0|pU_L<_-b6dG~gS&`6HRwihL z{v@Z`?lM)yCELQ(qZON`nA>4-Ln_$}B>4Ol-tE{u=}F&f8~1+-e;EI;zGdxgO#U6+ zUdkG_3d_h^Ds8uo1C8fvD7r*osG7@3xZ+ZxYOfUy@_hVYeX?`J#9EVu6k5{ zusyvW`uMye_2BVb=R%P}XWaJ&B5HerOo!F5=mCU-CLN$Z_4bgX6L(-`KI-FI!kZjC zRGg4{Asq|R5<{7(jf|YMGmK%3yub-))23l$gKBXP*h7R7hiV|c>6Ya-ZdR|Ksi7*PvS>GMpDkq^drUbPq?rxMM?&_{c zufCLky0}ckb6`u+&YJHBWQNHgPf-ul2Ui3VnWT}DrQB#k$`{K$Pq=^b{GQ&7Zn*;&3Qc7hu z!6=#1yDUvfh9(&=_i6Ia(&Ol)k(}F*&P{ zB%yg*U{cZ=tqw&y&_;ohS~#9J^1)DV_gKo!@o-_t%9BJzlSR0hEQDGeeCF4vJ4v*J z86iQ8_AAmTBX+_|Z_G+=W0>`?2?Ym*exLb^`*+}9hc@7Q9 z4r2=fK>Q#OsrjYsW4w1vQp(4cBaGhDwR5m zBq_E_61Gd&zI1SF>=ex^xzcz=ztCqx3ibylm9X6jJj;warW}t^K?X zWd-JGzW=cYYB!xVlLRN9Anms1Nxq?&;3vUpYv|WGu{pFo(-byFw(m8z>8^(@b|=u2 z)rsD;l`D@NiL)GwVDX0dYJ^C`Z8LJT-4K<{kTqA8rYE)sMbNL7`N3jdPbl|mnp4eZ z#t6))L5{|HEwxq6CC7^A8yJDahfcJz6^{s+)SJ-G_LAkAj-jQfV7M17jegg@+%igD zYW-cDi2P2MoldB1s5_-Rp2E4xJk`LZy%dXBLBUouyOOS7*v-E`uog$VG*%oDkA_Xj zqA{xStuljrT3TM8x-cmm+7ozT4}S>4;phHRDtfdPu5nE0WK(@q?mI9^`gJ3fho%6% zL3xeIwt}#;-h6Eca>(1F@mSmsJgX`&Z>R&I(-wMkMh8)FsPF;QkPzFX9h{4r+n$V_ z*i|3E!&s$QbPwHKe*Uk$-FD;5x|NFK)sv*mj}!(U~7=l&!2Hn zB2IrHD;duh0o=j%05?d2MhPCP-|uaY2;jM1n&2ZRQTAZ=R71B(N)O8&^0FXhc|qET zum;v+9i^>wQYmRi}igMG!gFdzQRDr=VP0zJY4AT%Xp(Dd}dS_WHKtKGTN` z3R@b5V?+jy`9@_@fE%1dlnzVApvZ3z^eJp{v$uSu5p*;`V2(%*>k@V|s5=BSwALL0 zN#*M`6sR(s9E@ge0jl7Wpy|f14LjL2yK~~8W1`A6P_~*a*YZ&A7B8V4d#9bU$LJoL zGy!HohaWX|J6L7SBZ-|d|BDtz6etR;x))LXryOXq|E#SC#5&G0&?_@JkPTlnipm%D z!CLvj<89#i1WV_{L^-H$usHEpK4M4qiEHAoC5!WgWqcJ_UK?}(ZHA^@m^#<^U2iDP z8j2Jn)?w&#w-TMGH z^wZsE8MF+`K6sZ#B!39825~bpf}dO2%bs6Ue;+F2?}-bYj(((YaE<*6dSiTs#v=Vg zbHQ6dh^isIc7dMtI0s2H6{^pjZ;aRGbM|kO1>bp3xjER69}O`7H-MD!KY-N2X6_r1 zN<$%uZ^qR6F1zsu*3FJ~5Hph0MT+_*pRgdlD6SDEB(VGm9N;z5WY|0O=k38Y@|0;V zSvQ@((|*l3_S!zq(CPMh2cGHM$3ogb8mF$^P>vN=8pPh1+{ZD8JcV=wfdO?gZ(IBw zT#HGMOPdSd_*vH`?UT56tvJ};}A5MwSS{>W7y-*?XV+Xv~ov1&rJvPYk+h#!PJlc z%pC`|NsAGhJ@C-&p)7qNUf*Fk_4c=M=|g*-w!6N_lIX+&F~HV~o$gH(VM~2ODY<)r zwKMnlgWxb`*TL*aGjfH6Y2QrEZ($gUTMQ=68QGp7zc-B1uF@UfpkP-az{!gsBxzt< zDI3!coQPK8yy_|cORT4jQ0{Pi9}4v}f6|Fx!}Zzim!I0l5Q)_f>zl7H^9dIEpAM53 zhyhF!K{q|nfOm+kemNSb!Ckg#fufS@D8%k2CaYyWJuq$7YIFy9sE`80zo{S+RpX*A zi-mLmP$86vu0RIK>xet)f##QuW9}c&4L>O5gCX2Qm!Na;y+lIa69aMsj1qhY5IZ8a zAZapdy7)QxmF@}mIQ=$a(jyh`Fz2>oW3NAP>nUvKP!kIKzg8%HRw@5-I#BGJ*BxV2 z#Y^cW8f)QKi?V|Z%S6>#pg+L=g$_Bo;im|{(P7B{bUG0H6FSthcQCRiQgGBWu=pD# z%1Ozrf3t9dVR|+*vD`vW;55MC1i?-F5@3E&@X|Qq@-opuF9;2n-Wz2LutMH)Qlg*l zzduXL>YIdNrB3@hQde1RwnnQMIQ!a^23f%m4-4OaqM6ni$Ai}pfpwy zR%SxfTk-K-nfPrftYJ1_dkBGp#~FO{D^prEwKlniWtv6L=@HTWU4?sPI?#ancTJDd zh-k#tCw4}52Ak@^3ROBToUNq_aKm*%Y{i2+n?8N=?DqEgR__NV4jo`Hm4l-AJ%u{8 zUcHGbjgeP{?UCd87;57=e!hZ7-fEUIWnX^IaAxxRrGDi>wL$)X6qnusi03DZ4#G}r zp$p3AzbOCUkl0P(H|4+npOpXG;`RUW0?6t)es>bIR&cX+)N>VfH88SuG_$e(_w+}~ zuUpUa!EvXTBW?t>S*gzfS__(5M@s0#K<@dbE0&hQ@h7^LpH)mKhgw--A$=$6`SL1( z5pa8c;TvO93Wegv9Ij@rvZF>nJ!Ru||G?Ul!!d@3=EQJbRA0R26O^*TMX3$w1aw?b zGBq_lnjOoZj5(Bljq7D=ZQxx~-hR|9#}wafl{t}h?IklD;YQ8^&!#_LL|sRrjARU& zfa)Gb7bor8FV61;NxnJ{=TQ;pGI*M{Bv-^iW!wd$H!R6!`|Ppz+P-j*xb2rXi^LAn zbl;TGHjUPa#KsBedm34D_d_f!Z{^~8boZQysbY;nPb$5RgT*E%AnRA}jJ>ZEJ`G;qF(d$oK8aOOxQhf>l#7IT#RCJz$6Z;M zu%%PKXf>mKWxsoDgc4m$jg`WZf^o#MQb*<_;{}aSkaam}$x>Q{E=|Q!VXW5!rlXv8 z;SIzBWWxH%D>BbaAQ$7FRq|(Rf)+Md?+oxRRHw}^sJ}Lza|oRqitqU2{hzcH_a9>L zZ$HZad3SF$|#pI`X)R^^>6R{&ZY%wVO;$WTakP@$xW_NGO3%$H6rYP#3TtTX<$T45$BP^L__X(ZB7 z?>0rKZN$#{GcsK2OAm2xprRe%i)px+i!D+&N4PIBT$m5tY03<71#|1F>AH>7jl}7@ z4a6C%>5uA4>;68Cc~=Q0TE=&)VF(-}KE@ippKIDOO@Z-k;dQWc7-vcY{1}c%is9ZX z)X`6xsj_ZnyP6p|5cy0|U9&a8FD%TS5tj*x)vPvWZ`ix7>;NOH7q40$4Ca z|IYybC&QJJwV8p9;opXQRdH7T3o2f+{il=tF5z4(7N z5C~>a7c;7m&SRc727*@~iK7hoYMOZ)5ROZTWZ(Mx8Sc8l+p;E8hBIFlg||L1WG9*p z%_ob>KEa!_CfC2%r`<-Fjvx&}(d-4=F>4{PF=`s0W~F(ORae;O_L^$#pgknoTVTGN zyW)3CZr?$h5H)8}{z8}Dj&<;q)gGm9(q&Lk#q5wL`|hv=7QULh*!%LJ83dk{7q;5h zs87O~g}D3?#Z{N)9p&x3eVB?1n>XDThRa^@YKJW74V^z7-BDxFR|Q25z6y5>gD;Fv zjBkXWpOd}Yo+7)Fd@z@SyL|8pJoQRXb09{fCcL+&nNz}1dwhGEhL|g}o&Ez@=IbZh?e!kqqt7kS&mULY%RN4U?;kMlK-c}G z=(z{r#9skFS(n|s8hlvS5Vr*CNH^*&kCKBTKY!CZ&OxWS6E#G72=LE`SmtvQ`5oq% ziLht~8=d#eP>MH!*z|;4_8`(l6wYR@y}1j!qkR;7FhOG6+b#PBquu^!t!6OrN9*sO zn1d^_%c%bYEaOX-dAjrGhZd{r8~j#ekKqrQo50CMp|C5<5xA6LxvtaT*VyY3fvoE|AcGeYiR#B_ZJ5e!yx zMaN8s^dcz3=wsP<9AX)RjG|(Un4 zfL|n7{ChjS`Oj&HUraYMEufaj-OJuDB=_RTL0*VQUG-o{GYXE*7?UY-Q_p9xiF#!H z89kE=-nSBs?WLP-@sCgopG=Lko~@4x9&7PYk4o4}(%hmJWzuEgg49$6}SYG0r-}f=bV)?fptji!Pf=&u8sN z6lq3J-GjCvIN}J@(xYJP7&5jDJVU)HJDM4XsvA!pwY@gHT-cKwjP8mdGDU{mKQ7#w zA{#cG-e6oe9$7Xnz$n}ubzN4#!6K*)Mf=MpCw+gjJI-M{p2g}>p0E(~XZ;=w!UYH6 zT6e`eVYw(AsbSr*vT=jD;DS^guWZ(-iA2>_FAD(F#$Q751aMf1Ibw}0JdwU2&HY#z z3T3{g-utq0e@DQ)Ygb29unI<6#5C; z6^cs^xoE?K4jy^o<4e;L6R4*kcLDhvIq^QM0u~D@ORC889_YKX zTRBl{>)db&(I}rFl163%WDeAjpbJ(vg-5Nos4PSBAKk`|-Fm+7NmCy`GoQJ6%YAmv zKM2Q9WE@|oE%UqK-lJ0jFgAjSu2r*p*9phtoiQBTFp zeFQe+b2xXqKqNqK@uT!7jlN$ewJFYl2W^jBGVuvJ^Kpqvad-uznpW{$YcO(?ptirZX+*&Ljt zx*Q^N2kf|^7Q-dec;8i7=s*GN2f&A1q|5IH^`~6U)mB`GqYVd>qvb1HUI3=r`X4|x z_YFz@p-xbkC}k+-(5v*x52Bv&(1laKqgyH6PTG_0kODrzf+Rh$q0io+52K2$HFd~! zAXyP6eLZHa&3lINp!Z~;r3vA0G8~)7bsH3Q=#V)0$)-eDx#6{LvXImRZd=Z8$!2c2 z%uL~-ACu{jx%2asqq>`*dJQ^H|V`X_uWdwzNr(@a`^G6VeeQDB(ySO8X zb1!D%%|%xf;C0Ho0;w_AOV(BSrh)=1BDuEa=!wns$v!LHwlKkIjY~-QX^qFCf8`Fx z_#jjg?TFoUEKkQ(UDM@mesTSFG-wXT;D$$ZEEPo#Z=?K8)hIemChUX5Qb`lHoW~~B zw9}FPoBfJZl>JF`TiREG$pjqy5gFuGr8pgmEDuo){ z6EgVBrI#ZKB+67~>heoAgz4zBpo&+?%kW)I&OJ9KdHWY#olhRqtoWv@i2qZg_-_eX zmjCEs|7NFWni(9{4&;R!8h9Y2w8Elf4ROS%M3BOHGMFA>SXP#!$>2Otp<&}d zxINu?&wv9J{-zQJS<^i!`Z_da6{^&^9uiDpjlnGDI<2z@sCwvXL!_{uBrSWFYOVHo+zTc)L_{Y&?MM4_KRoGBa3DHZ zU|$`VF11nIp%)pqZn3z?Z&<)TNaZ$QYgyH7u z;|zgthTpkUiPHBQ5>+Kk)ItK@cw#eX*fFh(KS0kMmmT2%8r-$WL1(0IXT26qGzJhd zmqt$Gb#gkF{^0mKu|(%O@#J3PgDsg+Bf_o0GL3YlkS@;*fZ#PF5$C%EP8kRM3}Y{w zeF3l3AoCKrffC2i&X&c1%=r+~dUFbEx`}S`RnjDA1Ee`-SFufeB&gcuNE$VluZUPx z$SqM~`L_%L*oXHA_8XyF{?E9=`3DNBU}j}&X=ePl`y^9Y$1*_)*g5b44W(X~`y$1M?4G zAFedNK_ehmNe#PWjz3)an{<%ud!qdTDtc0Iqj2}VCCO5N{x}jWXWQSt2x;eXTuGZK zSl_k?xR_WHFk)wp85YThn$paAv9)p1C#H;AUzRoG>fW1>AVNCPvu1{%77rt~!kcgj zPwlB1_lZSvu&XQ?6|w4IshGNjv^FHk(sToi6+0|2j1Vpqt>_(>AX1}jC^pb0J46j{ zc=Dgk1PLg0rAW3hW*9m^a6=@JG%Y=b6cTp>J8^NsQoZ7>Yf$WNh*vi{_olKjoESEO zY!P1x<{I;4oV}+M%;#1J)X9JMyj`6HO7wikb=e)A(O4JEAb*Y{Hwl|9S=%ex>{AwL zskcbLr^2!y)pF0S(&G841ms+lk}k@1A>Ltr%(^7LAxRX&R13mQQe- zz1LLozK_`sO^i1xMO1HXKsiA29VK0=z$ghm4mrN_IWsh4;#L6iM9$Q;$1C)J1yLA_ z*-lb-;L@ul9ot2`^sDbms@R zp&1K4b{nxjC@fDZ&`N!MtHL~h87_(fIVxH~*1>{*4gG|EjJ&^6RK2NLSPnIbzP~u4 z!&*0Bq9Z^Zk#gPkcLhjSIchPe!0jJHBF`&MyMMsFptIB3fstRqxKwtuJop2+oruD+vvr=c zt`@krIdfB*P0$}AFpufT_UkTNoM5`7MA(?Zr>Ctc%2ez4!laxGz^yONp;(6XNrLiq!4GGkGLO@mLT_!^| zX4Siv5~=$@Jg93;mSdU(ww{<6kB;f9qjy9F)s~w^c(9^L1)*ed1#?h(f=GGDpa(dQ zx2Y(tz>l~25##2bLZ*F%qTrA*Toozj*naym5`>1|8I=>cq1~HlP=8kb5?|_U_)H`N zf8)~b2w2K~A873LHwiqqTLqR?wt6trihPR)w^>aKSH-xU zoGVO#9;g&OP$8`uqgN{<8^GP=azWA?MWRTwfE1rmGH0Rm-2C0xMsA z!qM~5@Q**~qXge|8tVXnvbn_#VswQ@T?MP2Uy{1tQLyYcaYgtN=C#%X>*|#*gi{~^ zRU+Ig0}?EY-&a4E?_8;L?p06We{cU*Z0Cux3Yz(R86*o4|Zn z{ql9;ZAEd3Et)NFFVYp`rsVOh6oW=1s}D@|7bQ-q+K?R#J7uodw0_^*lup=MH z{a@i+rvE^m)o(!_iF=<)8oOCdoZJHn*fvf+xd%ud9w9)a&XCWqN%X)>A2u{Ul-ezH zr#_}c6~~qT`dg2`Bmy_Z)W~Xmno4Cn#+jbh(dhy_*||grYsm|O0pehR(Hv}KsLIdX z4~k0Xu%<^-puwyaWk_XE+@#O8=ac|4Yv+%dV{Fnn zcS73XhXeg12s*AF!X~!LWjNyUjd&FQgLvLN@k-@g2&2aZalk0P6ecJkpod4PC&xih0>c61?1~d-5JFF zY@Zbi@<*0unPvsnh0u#aiP1=sY76(9LakOfoFzB-gEQ2~0yZ+7Xx!KuvSEk%2>n@6 z__HStAM0ie$Z*G%QFlV0rQlwp3%FLUHeCdCI*4JEziQ{XKHlt;PQMcRfc#>D3yCnV z*^aKrh{~~wOQF@-rv!*Lo)+ORM}wTxt82xcB*5VL%9Rr(eoPvoZ}LZW8CA@f2jq*IpcL(_%-g?1vBjskw(GAdR+0H|}S zJO{j+ATf2k{xT!`{fMn}G3?XO*xkTfv5z%-XzSf{{B0J?7$(*nq7Zf}L#Fo;S8NO$ zviVDo{0hbihWti5y8jdH5d8z%`H$ePXlieyXZUxnFNR;Hj}9$p+j@Sq!mlJJFUTM4 zU5>$LDuXLPU!H1$tk$2B)YtLz5=;V7`pRz57 z?kNc&wd`f8>NbtBVCLf@oqpk(ga9&(qWSGd-N^(g31I=RSR)3+2ws%aTBKr<*;0CU z+g6FK!0l+X?}zZj4tM99VQkRr*nw(mLZ;MWd>mOWeyyJpYB1pN7a<5m>u9th*W*=? z0`~2LGo_FE2P|pYJ7=(u8T|_Ai*4+St=Nzd3SwgHYQbKC(y5nD-BcukwC+*Eb$M62KJHw z8PZ@(t<_)fxu~x*GSJa5;_tzPiA3@a{D|Y5=%DkBh9uY-1{))e$F-&tG}C^IJXniabhLFG zjMdrV)wz`Q$18-Si_2TdHJMWRW&!7T>G7DHLNXWm-9DDyzclWfsZ zv1c)H8UxU&v&aZ50}YoYEcjs;OXk$$4xQUYkv7d!ui!4|Nio)gdBGhocF*J=F~&uva&5-EJm50nj^`1JW?`{NaQaU{u!D zn*eX|r+j#@cU9jQT*}#xJq z4K|{1^ql>>l3Cl8XhLu^w$tHtwxeN=j-z2b@XNNZp;EsfNB4UH{!%N!j;B8~YiU{R zWlSQF1O>0`%goMQoP{*S6EutVFseCydoZP3W(F%YFXs=ph#f@$ogD43eX8c=^|+uBXHL#O zySpTW=Zj3rX0mf!dxFPY!Z>&q+)olV>Gno+3F``a@IVL^N5~);=!IahNn`hqy(0F3 zR8s^1P+Qvl2&(#rrc-*bq<2|JZaAg)Wioob)WtCjj26n7cyx(vj3{}suK;WHGfBwGnZpGaMfDu_G2C>XQ=Sq$0r~l zre;xETo&Ve0i9M^IF=Q#*AC1Dejwa}X|EGg)4Q*5$W;oxW_S#0JXcm3A(pD{p)9Vf zG7YgeRV+d}*P^g`Md-M1Yr0lxuv8-~HuSS$IAK>vI!C6G2w42Y(2O!9a))}5!MO4T z{@}v=O5ladzWJl0dzW4RPP=lMY&xi7I=n2pi;30W>{HcjEjOQ2NUt4xi45V&CQoJx3e+fA83liPH}2ig3f-ambu;Mx;b`rtrMtW~KWH zZAfIiX+gmJVWw-KabjT7Bd6v01F;NofL}lR1EIiDa(#DuaC=hqf`G8t9@Kx@l4Cm; zny4|KO2T^EbiQqwbhlHk^7204kp4iuj`aoAp4ZzWpsmJq1+uxlP4bmc)jzA__cdzT zIx-4OUc@-Z*iw=WjTh~mc&&O%UB_NzHY1-K0qhq_@=xxG$dDr4-G#nI>*U2`wGPcJU)vG>r$mpZm6&1iCr3*!8{^cNQ_s zA~xjDy{1QQMeEuH*~am>w3+Hv=z4*dKPg>mfS}xvu`8OJ{^T*>sT$|hjT0iH>+}Fq z7TxTCB8&w|RS&}rPX-1LogH#isFNn+4Z>7vOH@6H^$r&;CbMVB&bPeLQyD>FixC{40MP^USW>WE9N`r}cq*fC}e84fP#;&^c&a9Q9Y$Af($_EAURT9k)D`svh$;)W0(J{ zQ&f4K!Uy$W%BnBc9aC0pa&lpr`7nVnAw8(a;x>KmryQL8B*bEaND)u?G0}J~<9Vt9 z{(UJH{~H4H1*IwSk`npJYkiJ|w7g6K#$qb6Gf(!ii=4ic2*WEl;=a)q_0ELm!DxqM zdYl8m!_+Wv4G(qc0}k{Yad%c##sBBRS$bP}xMYh?9xTxL3+)H(M1C8BwhvLOeo7Y~Q+Sj9Ak_k48Qb^I7;U zxl#jQQ=)}UuD@{DxZ7lvA^Ox9bg~g>r$d0)X#@{TMVNNZDZA1%rvNWyG*0KuBwD2! z$1Ba0#8BC}xj(uxXlb#1Db-tyRHar5oD^vQ)+FeOFmpuJ+1s*xUGcOJ4tRbi$bP?^J z)vV^wY((2e)0|&|{c3+cZ8Ms*{b*x7e$>=6C#IENM<#J978LIrW zpfPNAVHc)xS**y*G8MCmlZM!^+9kzgG>S-N3p;)#llM_sy4jt60I@}sbB45 z4rU@obXW@yWw|il+0_+aE1{8aDIc5ln?)X*P2*$XnF#gjI%T^q~Le{Ay*%t&UbN)t?@n9@zN z8d{1y0=#5Ae7$78$UJCnyv|<+hF5+e(AJ?MY)|u~J+r-a4Un!3BV-%Wl6+#leGb6Z zM3Z{Qc;#Jf8vwFP?%@TQr54i*ihaqb=5RrQAd5$Cv8K=U249nDtcWDn1BxGAR$nt8vOfQ8Ci5AvdCt83`Psug_U8IKIKgL+mMhPb3Qryl#Y_$fF(F=GTvB0d zFM&<)Siv=xg|k0BJUxZr=j;svHjS||aYw|Og6=zQ&S>!);+Sh7gA^2yW`RM5Ik7lW zeS<7xi6+&@zp{W#vHp3=-zyaQTOs-HEA*edV}ho7_JV(vg8TOgoT=(ztGMj-Id$3T z;gZa(UfCircd4(3qvjlVFd`CF84SaKwkpu~8y^qTA{NDLRGhLJrN#iyP7?Qq5SCL+ z&@R4@n5^KS8QJ_s= zY=V;5y9nHN(yJy~cj&U8s}_gNNF6!U@pp0NUe=lX9omDTRU^uoSlsF4cBF{~zUiV5 zND&u1wqn`Eblm9&Y+TMb%8PLva$BM$4XiPgM-vIRKkfb^ZcMzTa97wAQH>Eu;e>&j z66DM76@?y58mBadq@?R^>f*rF6Ol4Fw1;i=h^x7tFX)$2e}KFSmCNX}I9Dk-Hk+C= zuwOT-&I3GtE74d}C)T;YkjQa!DUKKoH<|_-n$Hhsol_#IMI5=Qyzq*>tcHeeJlooI zWl$PHK{gk=yYpxVxu@-5Q5*gu5ew;q{MD0n{tUi&mwW*1BNkQSZ0w8#)!#bS!7=uQ zZdR z{pxfl3Qm2Dx_b#_r}3;B*zMtL=L@`iv+~q?fMBFpr{iEt((zWVF+3a8o@<~?+|kxc zuKdk&KwoF62F+6aMKF)=LF{3~%4!uHmpDyZeZ0UazCM#;N`id^7?`lasrVUFeN=4_ z$t`KvA$H*&nv`nuQ*8c-Lj0h7t4T)(XL>QEx_h>Bo4qtJdf>(^Ltw%!VSYuwyTSCc zZ4^mK)GS311;rKRC9%c+f_o#-eC>ItrG&4@@}A^KW)#`NHdF0|YZi-=xyeS(k&(<) z*#dQ7z!OSza*#deZQq+XY@M+h20v&eyeDKSI19ejt^hD-daV4Vmx# zFI3=rT=pbP0+UB6RPy6N`M!0R?E9zJ^8TP7r<+%O`TQ?hn`L-EoNG{_rU z4&nG#9J{0MXq_qqfr#=RNxlOQaliK&Aww0PCL>fT1oa$FjUAp_9u}b#n65WOqd>dz zG&fQ`+Vu6DPnDg+M2dO5mj>33d_bjg7%VTAD1V#2YLz&COU!er7FRuA z9`3&w$I+mZ9;h(k1hAAua{>t)r+79(Wq{gmPbSzlRjCXW3RdcpV!q` z7~HB0Q#c!*L+WRduMqv61G@kbz1^q^x?#5)pP3l!n%<92nEIsi2|vAElP6x&-x=(Y zjoU(hjhA|Ronoj`vEB-pEy(VIifi|$l4O0DeTITYYPJW}Yq(NpduJ$Ct%b2%DzpS! z0d)nbFFAs!bnh?7EEOM^R_=oU7j_W*SFWzReCL zP)=~Mw7BM)OT+OT;h#C-)V?1PP?A7}8&|W6K#cG3Wr?rguw)PT=H68R?mslNmTr;A zl$FxyrZNPHu%oB(*}`M215m2!NW%SkBK?3Axr z!vlzhIH#WGV*o@+LZB;Z) zhp751OC7zvSubuQsTP*hHl!nR4;^d24Z;&3`xx<4m@9bsh8RW-)uuD*MlblNIuY~> zPJ=`bdsY%MM*$~CAT{z7&_vbx zM(KK(qjx1z>y{%qRwuKoFWH$7<*P5L*l(tw>}6aZ;XaIs^{9fr&8`HVBRo0 z=9*nwZRXjgZV+r{h>L1)kIgJlQ|_i2t2%s5UVuy3`u3s6xG}ndA?EvOOpCc^q&;#n zwSm(jWhcYRX4nE*&TXfTXr>=sFoYgO41l)gK3->2w6Xq<*Co6URFd&Ri?L0&(aJsb12;gCd8buweQtlxMv zZ`eNQkYs&jym>k4xv_n9gA;fI4;|`rmhk#xcir*UXTd2^DgpjzWOt&f$U@88YH8lJ zVU$Jvit$X!$3Y`!iz#ir!hPP-8fuMyA5bt7yN0@Ti)v}jwKYz}dEj znu+skz8=(T*9A2>N(1?fGc=}U0!dD{%wnPJC~ zt{^-ySk=Xp3h4}J2La|$b5Lyb5r({fjeDRHc{_?w%3E0nuxb23^^D!FuUQKxNUH1xioG=_A18T=BKPl#p)JzQxYtT=Ch7if5YZqv)$r!@3*p`%^A4n^tG zL@s+eb+`22yZgkYk&pdK$TVen{phx)YN(`p{GIuqcqq{5&D!%46bfY`;wVLA=%^`> z`aIrmp9D1BTn2kZdyY@vyE*5r)rI{Jp5_aYn;EeTBpR|@gcw4FTcBQ+d-A$DP-*qEJXMO7a9drG9bu~Tf+YzrJ966BUpUuD4ltwgj>*W90@0WLZ)PqJEeOkY7+T*%zNWC{32cIcS8KG4VLV4htBwy zrVDymdoq$xTz<0tC=el2r~1~CiUtx)ms&MR(T!jB^%`9+Yu2=qt}k1LHP4txu}8Vt zJE8K7y=_p)C^SN!8g(KRc#9@ms0}XLO7ry-*v`gJZTCeL-AI?@%Q!0P@&Yp}Rn(jF zEhEdfcsc-{9Eq0m0vwz27izk*(EdIFu`Zd!+|;Yi%lDJY22lOsChJgYy^L07IgMFz z@wt%Zi7Y!8)~gM&?2)L~na1Hc`7Gct6B~bX+TJmYS)SMeRa@Y=ThjqQ z2u{5sxS>V9AltgJBG`vT`SxXlC5L9h84jgWIK(UViKgp#RYYC&KOe-gl$8n$@I z*x(Y`6WT=8xWIn%0FKtmE6meLST7Q`sA*sKX3 z8(?#JePA@tkIx;gYxw_vCT-Hr4sMSBC(tFUtgeME6p;VI&2{?=0fuUr z8VZvLLm4&_8uf<_RV*;1Ft5~(FzZrrk(qD*>*#L@&Pp%KD@s-)s?z03=(zjzeKf@A{rz1Uf*br5j~V}-91SBF8lVzP5u8pm)ZwT^ zfXXqvg+KnsDtL@qJZjG_oNI_)Jp8LpusFaBZ~%xvh(jl);gfRA-USQ*24sWP0A&a> zY}pokqmH?IP(za8^2lifwQTwpo)LS5LvG@)haA)P48kArFWEOOJ@fXU z!_f$YO~L7VSiGe4bJAw>p-?3XLAY`849YK_nOKUbQkqfPRQn7tUKd#cuP?2x0QWXH zoT(eMtcY($JXp~$t(isQf>Y{AP)eZLAKx2Ke+Hv)l1!_qZ+?^T8~7%W`jh8rXdJ_c zDVRp-Sk zif8A=+lt`s?FV3e%_x6O6@Tha3tdmu?Uhx{`CmS534%D-V6(`vne#Cq^_CUtFu&S~ zQuwrIT1K1-vy2cY_Q4zTd;B7U@$_E1wiII-w{yt2tpM?F;-W9#`B!k3Bv{3EuW?tr z8c2z{*JS48>Jf;rr*h|gS$WKmK1O_CahP6L{pPxR41J?!$JXV5cxFl<tyV&|a=|(B7^c)dc zios#-rOt?$jgi;Q#(4Vp3K@GpnfYMw8Y`CW2^9yP2}cu8MfXnITrLSb+;d06PAAge z{g9B6r3VT8TU2%8Y$o1V8EaH3E4 zMF%u8{VRHk6dG3x$?62OZm8#pUDuO z3H2RbuFS`L)dcE361!<38Wvrh81I>5`EjJhFHaF7mpvH-SdK1GP%S$47-n*BO7{QzU_+4lFWYo zszvV0k7)^?H#LnboHmSum^U5i(qlVGYnRc=KWgW-l2n%VmDWop!=^=+$|N}LZgWxL z7Sxa&vy}N{KiVD|ih%iJEEtc_fJ-Ay#V>djsmwabTGwe_-N5?qufpRM2r`8&8MV41 z==*ud2R$JX>wnp>$ud4u0rv6HE{A4{`zaqU{Au0Y8Cf~sNq0+CkF(N*By{$w_KBvQ zdR27xRBvLtyz~ zv4u1AD14D6zayjpjUF`-@Hv*5j_$K+J?dD{y74kP9& zxi7~my{|lVtt{BQRtGFcV_$Rqn^?#_>ff4>WY51tg7kQSno`$S11Y| zD2q@{^+`re{xQUrqdBU-!HzEFIqAQV&@J_`6`b-_;Or%9hAplOWX}sYX%Y?cU*ON! z@H&dVK;gAqIm*7^q_v1RO8SIX34B;;vkq|g5U&2y+??}qREs}I^~Y@cC)hru#AhsY zwiocZ4hIKs*L3ud`WYp={$Ei`l>bAN?EeNf{C99HX+srD6g~W7+$xC%2mzB&^b;gu zPD4*A$|57WtSMOlPz%$yOQq1!|L)Y(;K|fen9M-dPj@SKo?-jNS*H6m_w@Ar=<4D( zS>LBrgK~dn95ynFlAA<5xq|4BDPHbgM;u=&SNB}~RDR#amcBN}FIi4wnJh8KzC+zu zSO>P^6I=eTQTDcW9BfGiU5AlU#*z7^9SWp9?d{-kkhWVWR<(*DkCw^Lly2ymIX!nk zz~a|h=YZA9PV7@wpVmK`OgjlLZ1_lLs0O@-tvzN%M_$}%M8d4Z1a-_^iU68|G0@lh z9eCUz#vN$C~3Nk?WCPC2*9 zojtNF{k85j9e|trRjYM)ir)AK1>Xuh7@?y&qiEoMEtP(`h^w_lcnfU}}sT3udRzoW%gc zgem_o(}+X1Wr^1+*7T(fQT#d&Q6|j>1mZ_mZJU*(PFZ43PpT)f)-}Aqs(~yKzJHg_ zDoAI@W*6bAkqVTuB6z?MNnY=<#|4&PWY^n!NqP<-W5`!3ve~>KKb0>YW3=k^a315O zdIu=mNS_jQh=G;_NoLZd=bM;8 z+8g^B^of}g{_NEM-wVzEUpo&t{<|luPAYDE!tj#ToMey@AmzLkF_j%v3@kL3Dzkpd z$Uss9b(*Up2{IyM;9^O7t7P)!n7|Oii2oFSdU^*j&-zVexXkwCcD-cjK`7Y93=9VA z;L6uG92)-~hzijN--n4m)6JGfZc)rLaunHjIw3339oa(*7xQLFdgcw!P|TlsRjy#e z?8Tk#4QOBF3e4k3J!OThONjK8@BD31uX`rJrY^vN`x4TWJ2%>mhd?C;^YzS`S>dak zt`s1oi)d7=jq($EH~72S+pTDv9pxra(VmOr%<`Yr7iRJBg#^MAU~|bAJ?h>%Sa~sz zeR5RM7ohB(-M_snx^gx0dTpdi@nyLyqWZpU2zB<0fAGC5&=pADA7D$W4DQ0*S~a|6qbRJF@DP*r4Ws@RV2X zu7?=lSTk3fH2-h#X=IX_c8{oxX?+(L@cE=RkAsBSGe+LD>Q8 z>_V(vQ@a&@4^?M_p-9leHBI?yX z&gjfjb)a09*6j2tQpVD~L!KR%tqbl)YG5!J!lPH(O3UfUHTpOW0 zxwOBYQ7q@@QN=WLm|MtlO4U6@(GtvCIp*MREEP|f!vCrjCDz+J+RcBZnd1F6U%kNB zO8;jh@wm5uJ#cVqp$F5vAf72YN=K6K0JBLJJ?exqj@k~+L3`wD;!>@2+ zRca;{zkI+7u?TjO7Mjj1D9F+&HONAHrkM~iB?!r}Am|vK`?|Y6kGTl%x-cls{GP*5 z1wTL{3%NVW2q|+F`Bh4yn`PReA%4^%U$XdBF*606>Zo$-ZvqzDW&=qr^plyd$GX98 zC(l3eNtzr&e6W;rUE^-^T*tB1^y?s+p;}tYjTBYe!oJgg4M;qi-CruR80r$(=DhAT zek%p?D*@dO^r5Rnsc`qPq06E!Um;Dq_9GRc4e}SY#%nb=o*`!OPq3laOLUNqP67NG zQ4-X@HC2*ihSw<(XzjFY2ReUL7cu6_HOduF11lKL6l)`?^{^UN3V#%HYGNzl{@$Ze zd{(9a;VjQJ^59xX#S+~Tm!j+=cL}3lQi_>Cp^*+UxiN;b46YBJ5pJ_ys`Ju#o>dYZ z=S}odE#Mdo88*hRMoX(Ey9zC=Tc0v~6?-#afa&VmGCh17RxL|Oci#Mm5-pQ$)KlJI z#qPk~!@OeA00YOE3-tJrOYgb&W715O)Pj=$_+5(+7LK;hMcqc z#_(yncruPMl(C8>dI#e&VhlzeNR!I`vUWUNsjejlvZ>c4^!rJsq-2Knhq4bYT#Baa z=Sti!5JqCv1j>9lP2SE74`$*7<#VL%nVgP~Vn`Q(bkJ9g7sVaQlRRjI8|WLDF+hAX zEnM%!V@?7Cc${8j3lQi*^zmEPy!(;I+2DhZ-@St zdrdSQ#bUo-c-88D)KYf(7FIDbUx?#18uTH3YRs@pl?t-A0`*#OIym;q@yz6Xrphb1 zsm3QCxX$=jDRqd;M0axVGkO?)iMThMyx|Jq#x9|nz&jeAyt?*-$W+q zFLzBr$Z0^GzsBB?HkhIROt50gnn%U{AUw`x!Q6lE0WvoEYL~#k&`@=-{fM|vZ}gvg z>tf3_WS!hcVc+ggS~x8uHie&~^I8&)11pj@Rt$4QYdJGxmXgrv{vZ}SBN05a6C6p9 z{(5orj@8a7ie$Ut>|1Vi&ao<2%(`vF?E%h)I0|1#wDUoKS{}jwGO94t%w02KJ=!A|%M}Ue zTIh0P?NdHW?5BmeikERl)vR7bwHMT-^*q7;DHMPwdx3!%Cu>PY+Wgd{)sa+iPvW1m zO8@UX{Qqq${NHB;gEMmCGUU^9Fpr=7o-h#czB}6T$UdjV{(YvA>V>A-2}*DnavX0O z)ts|WOB}yH0DPf|zyaA>e3`Cna=w*XcfoRq%hKVrKP~faEb``XS+2x^QA9ZYJEiF- z@J936L2G;PPkM63NgKL38qAZA~GI7BzLQCtba~ zCJ$@7%5LCieb*}ncGDJ=k;!iKKbK(LJqi`^mFY2xyNfZTtADlw_#6@3w`geAf{yyE zaXTZL(-kJplptnqh{Qi~xmOBd~gg4gIAuNzyeEFOY0 z8_cs#i(XxJ$4~85tSnb&cxj_Rkw7a=eQTJZx6$zNsd%Kx*>ykjyPNhX4`A)+f&o2a zUz$r$^%Pse99%Sy=M&^(7DEsn*eAD7>uJL>m3i0TU3mWr%RXnyh&y1jh-Lrk%iqDV z{O$;Ah6i0O8L#-nRcT4T-`fP4KH+pbNp*ITRyw_9zTv#dS2T9ku#1)V3uSvqXB+89 zC89zh6P=S^tv3c%<$S~%w@eum_eHks&=i|tbzwQZ#YjJue0g@8Is=z+GDv8A74*^u zrUVFPoV9KZ)E(-qiP{ZI!o*4}mWYdoCvufj6_VkiRvdzB?Lwq#MoANN-6YOr_j7b2 zye(G>w!aj3FjRFHj)z1P|gh^V6pYsBy7o$16GjaZ&( z_|`rg1bQREEepP;eti3a_hI1W+Z3yjX_I}MVdcu4N8ZLxQ=EAw!B4vL{nj(mt5#!k z%;PHyhcs12`CpoXpR{;8doo3eKCBo3Sqm$=Tn3vudH$tY;!nJm`glX{{T~^_F*!_i z1<~=o2D!zU5cPxQ2GP-9-#ZNp(*xnyRGeBteId^Ae6G7j%HgxeH=f;wS4$zj*Ii77 zTS;Uyi7l+9n?~F_5KC#g<)eC^L_8l#UE1X=pIV@}>5q79l4;SSTXWSg&V-plK_)2E z+ue!b5$s!w(rjgP_PmU`4`%!9x$_6aeyiOzETg<@N`-UQ353@-^JQkjUbBa4Jzm?| z_w`&&AOFQ&N84;#Wcaz%AcOb6&CdQOh8+bHSF<1g$5D^fvT;>k#(96}wsgj#MMwgY zvH?MC6bJ}h8l>~+UVtD8QBzND-lQyZV-74!S}@akYHO4(qg~A|QV4Tlxw5S4uw08q zRg2PJ-S;0_FJ&T~&s9}#^DR*eJ+nO-1aw%bB1fBd>pSlc!ai3nMO1k$8E6|3IkgQJ&)S73O&{GGT}?)7f^H?p*WBp6Rb zCHX6Y3?I!*tc9<1)9GAvTb|poWKYULRHU!ky=BE-qM3`rQ@^O}yH5t>g_+n+voUB{ zeXgU3>JSHY&}JfY^JH9fzZ)hUb)zw|Uk(9sQ@^WbCXv3XuduY=bTW}83`kmSgN`gY zJl11*x7sBf<4-D*6MkYG*&~cb5WyYX43y8Ovt>T=x@X8&A=C~?__|Wd)?ZwbgO|#M zgbC#_e$pXQH6+Y0xgR{JP~q~xyR@FKqMgO62=T0~2^Z6qYT{P_?Y2yZVb#O|b;2B` z!_Qs&$QJ|)NqYa()61;zSZ^GQN|wt;2gPrO!^?%o^j9QI6Vw?CD&3_<*TBM))1_gAPfd8PaW|ru7uAGEv2ou4s!P8OCeEW9aJT?wB&myi!KL%fQ zGHpt&fwj>qM09h5`zX*{j=jzkHZ~oHVrCtc`;P|K>Q>4=m1~9yWm1u!Y)PszEz#Zl z7as8|Tr=v*h*%SGQ!l@Z=A6G$aIk9>ix{;>U!!D`|ES2B@Cf{Vd_sQ8rknvu@X(m{ zfrc&Bl_uB*`%HMZ6N{B$&*!LA#O`9I%82q-4x6}IBnkF1PvO1Hb>y0gc_c6g$LvrL zD`uG$lV>`(zb>@pHQ$YM!-ZUnlw`WaH>trBi4UA@!Z5Xp^mKpsQ{n|BZbL4GWZ>r*?7B7DSH*cNb19q)G|2 zhreG|v@*-it@t2NbL3J&Id9&X{po}^7(Wg7HFrpBi0oQ=W=6X{C5QQ!PUw`LR4D2} zR(Ga|Gq(g=`JTJumGI^)X$}Pz!aK5<<&Hm9_C!;M%^B4FaitoLRhfG8*NTC=KVE0G zUIfWmJZ`AXf2k@|Fw#3GCT>?vYYkQYD!OKPDU^SR5m-siT6dt`sdr8_(&6NBO!C`m z&ckpTqL7e~bWJ1b_5b1;YGf$OKH9vT>?OCTg6J4zsy+Lv<{*vLr>J>{G#!m8YkZj^ zGg8S~#u{Lk7*W7b+U^)lUd3fF1ovPN`2?UvY8)bpb z%3IXFV%7OC*^P=nu`61p9UJ{%x+cuD7TZQm3f6F?;T>{uTt)e zY2nLYX!%E39QIe4CYfo3aJGfE%6dIzZ_N5q!KJ*JeIwi3@ASBBt8yi_vj!&h0K(-w zsf)1O*_qqTHG)YSI-}&&`_+u3P${?aM89s$b)e0%+O?(#3|$V2hK7={;*sxUI^i{k zc+X(|CzyNYX46Jab_^hwRMR@v$v6GrI6H#*>pYHUB=OEYL|Bp_lAE_!iCGZiYe&R` zRIWt*__71yA|(s-;NFivN%ZB|p~vi3lt&Nx5|Xpj4Dyw<%G0+B|DS<}FeeIDS1? z+MBvUVP3Ju;l$Zd8HFuT;?SPaHJ(`?n!O>g-O)Br4ECch`mMtILIL|{ckIV!bbO&A zcaU#k;^%dq$N`hLxAVDL{vUsP5%b-GXWOTAKx`}mdL^6J=yY)}>Z z-O}mRt=h27S2Gyv*;~`Z$CP-c=mc>S85x~YOU=w9qkv5_Y#o!`Dk{J8O81p98A~b4 zxagcyk0jz4Limf-6G~Kna1qIu6Hoq7#LYN=p%V{Zw#Mn6spE~FSUhLs-!H9JR*U&| zr44!1oR`qwi0HS>XH85%d4~_hMTXN1arc8FSUu!dGd@KpY^-_~j`6$d1hI1u4x4A*&FRPSasbt0}FgFXa zUW}qvia+L~y0s|##1%}4=-76K^QV24Cv`h291>oaDo2&|@l=IsZLofvpu()hX7>ED za&Wq7*NiM*?Au)#JFVocwNorUO^?bMr{rrit4i9W-|*@_kbrYOf5yXGhPWf!a=MZhx@P z5ywV0H`S=OaL20!-w9@D=XiQa1yq0r^d(shfvqlMSG(|CIRBcl7|V%lPI%rKS3~TY zk-DtV9_9`2=Y{c?CIjYOHx>Lm0|z~mpKtgG_+&#oGs4*vF?_$h+#pEac;vp&{kkTL zO3Je@<4?}Fey1`N{~T)ID&j8lVb4laT+wPueXOuZR1??-%RcCHB@>4xCattbG&p{( z{@vo6WzFL8;#)YX03L3OZWioYb6y_$@wD0rU8?eGKpM=d+7T;JAnuc1^8X&R-kcP| z+t8V5DT=*Qa5l$46tU2nv!tgjq}f(#NF7^IS9KvMu_u0JH3FAZhktz0VfRncaF?4- zPnKyLY-ITa1gikiIF1skomDdxi&Ue9_H2Ch()+7w7S2$Yoh%F!vf|?{Av+d<_7>d` zepF;2A+)(QjUe0G<9R3n6CtiMjnnR*Da5%(>mwnlX8Iy$PXix+E-MeT-hZj!SLXG% zY;EeNAqf0iDO2-hW6cLCn(_4fl=F^^ekZ8?Q&*Te^F5{InJdLRI_kc+#Bd@^KVsPA zyUyL9J3*MeuMdxdH&Ews_y1)g*Tul%$NTiKb8-JS51Z z@688%LmXdbKa_Uc-;e#zx?In2KcZtkNcXysE90vOC)NBT{ zo(&0KeRd{8K6ZU@cB@{OW_LxNEAsjSZq=#=0v>t{cdPvB2z_I({=t6yQu0H1ugZId z@~z2xChp!)dZRnE8hupVt-VSKrt_@>d_DD%y~f;;4@`T`MasPuLfgDkGYWa}w?^?? zS9*gY1sf80jyyK*>g-Ggrac)#7+(4i1#5u~aXe>~Y5=o7rxV2on~f$imtcfLOOTN` z2P=}Zx6F}N$USrhjI*c=ZZA%vB>1YZFT9vY^-+PG_h2?WWD3BKb?5RFI5Uo2kRyp|MwrJ!?*|tHD}mShTb^l`Ly2*E zjr=ldGN~(pwkRB^=9FWipZ0WyjLGG7zs(48Yz*ygq&0c0!pC?BA@{x zUN`W2>n;xDj|mvCP2|J5T%;k*z-FV4I`kMn?QagPF=ofOzF zaN{BOP@;nENU{G|x+e`#$UXZF$RZByyH63zn{j?bG8)2)GFSIYf5cQ(&5vju_-KhY z)rLoaV4E%lG z2nL?MoMa1cFOAASgDJ>5`C|JN9N<;q8mYW_>&f8~;VPg8m_@l|$k1a{2Ik34Cfzx~ z(a8SHA#|44hsd?x=VqJQGq>O>Au4Gi@FsFlFnKK6P_I}3FJQPafy*)@I)SO_#f&jMJfP z+d^Xsv)=qz!^0GT)QdG_MEG6Yvav&OXh`P^bFDuTjQ6N6I`aM91dvU6I%GS?gAiW*@@u93{Ur=tU^hZ=Z5M?5 zK2$m^Qo#`JV6omBa&Utag}}=oFYx`7juP<(9(}VBevQ)D!w;1kD)#>Gr7|h~T8nb3 z%}Zc@+zKfK2SzcBImehQ$P5@KsR8`sZuaeTBz+;);qQp!LM-c9Eo22uko&om*~vBm zV4{YoZ^MsoEP>p!&prlr3tyZazmr8k0#k?_fqS1UM&JxCc$*|Y2lgc--y2F@4%Y4~ zv|q~JTCDYysKy^-;889h2r|P56$b{|4kGFeH73ymcv>VRc*kx$HTriZLO3UYVoZ|W z{p0}#-whAg#=3^_EAmW-3onWY#SaCxmm8mdHDB02O!FOwc5PjjTn(rznxD7Yy5}Pg zWGi-m{LkkRPO}($b~+L`A4_;Hj0gzV;uTPP>=W&UDmaR8I~WvmD)7|*frDqUI|I{! zeu#*Uzrqr=7)J8KGx2mmCe{d8z@&ep2?3S{5<_!91EOrl`N`7)^B3xygLT zPCMAu2MPA0#}Cz=0@<2jqUulF7&O|78kj;w%@r=6Y;H&Fe zibQvls(;ltJs6`~Q@2ZP)u(isD7g=T{)P*je^_RPl=q4}!$M_^{vK+~mozCWND{nbg;r8oaNHMz> z@f}Y?1gQvLwJ8VFKRkK9JUQ|miT|CBVC5$}Sb4nzvcPnp0B9v-PeeQA*-cr)5E`&M zJx^WHm*y8DfcY`0g?3DgkU>YfusKc0mkS)O_5T?RdZ^1GtF-tK+G_9WZMf-^ku;SFAW z-qzdo^Sko8j`h8Ay^i&}g1z?d^W6#Yw%g5m*~Z!p@x4;GX7;`Mq&oJyLcSj8^`Hc!@A!~(4?NC5?o2#xLpt2| zAPq!3Z~xmJ@^!!fuk?EGgL!&AFu|?8j}Tz@US2$3pB*0rU$`AX6kq9`E?8f>9YHi- z%bhM%U%Z_zGGDD7A4p%`ofjeSW$z;~n6%g93)pd|i^wt~ygUzK;d;9uExd~jbs zpO5(pzvF}PDznoC_e#Ix1K<7oF*Stj!sl*4&-aSuTDJF*9&Enj1MM4iWdOT<<`V#s zcjj{ytaR5?vb*T#fZ&;RWdP+LbM*%Ms=XtK=No<{1TDPy_$dkZ*uyy>=zHa{+vIy? z?HCTvj-6th4#r*ZAWrrU>7UXYN=Om~me;}DuPZ+Kg-Z(hk(q4W+wQQ!UEO}39)ta9 zz&E{*j9`S`hY&#HTO45p0gn>N}R&|G0K6!91@* z;RdtUZz%n<_d=m5iEQgSydT-#`MpK&?Dh4Z-r4$FoZk3)*Jn9;o?*PSK^z^#JGU>s$tCcR z%zm(kf}j*-+xqTQQ9Ty%de`53pYsB8`*viCAq%$H)EcOur+Qx`bmZH~c&H$s##aVV zRY5&lw!4{aRvRWxF#3QP01~$s7AL~QjCl~fZ*cD!Cr*bqJJEiLnHoN8<}CWK;4 znG%p3Maich>IM2LBTP-EO8A)|z62%*eWtMFFm>1pWL5rRXBiw21NooN#9zgZT^AnR zK*%y_4am|G@2CsUYakRqwjO5Fq6+UIWS?3Nxt?d!#2pAvkAP$H#jyyapd=UlcgPmZ z8XDGszMK>iRF5v%4LC61C7!>`L;oRJJtG@<5B=%(vtEX`C2Q5UsE9YbC_gqFsC3oa zsLZNl=ts;fV-)9Ji=YjDsLpRgM2i1X0P(eNLPZV@+JX4cw;&@c14yYEqG3Sg;kcrO z`|U)S8dGHCPS>4in9EnDGU~f%Vugs__?Rg>MWFH#(uiTmKe95!>$%|)G`CFDl^4ep zDg}M;k>UfBpz;`_uwj!EHyPsocR(b=g@Oz*@lLqJzkjII46P-g@`*HYUC7f}(00f@ zp3If_GsJ=s#T&{(1V}je-b02g#P>h*j)34-q(e1OK!`8wUi%^Q}h`FQ)7AdQ`db3Sg8AigNdW=K@X!$6NH2?K`SE`tcxT^ zA=&^Sr7rI$M?sL|8UqFsB2AEs4#47o^7n(kQq%v=N5ot*t*4--FV82${5};d46-I) z7CS?-qLLvJKZC14RTU~$ApaM^1+h>H;tAnGUpNB6impQ~q=I0@385+=7c@bH6ewX_ z$O|i=)}UtQ;tO&+G%Gk6L9um&g&B~0P%~rk7WoCL6`ITtMQk7!<^sKpkJviW!Zzq3 zh>LKc7xWOq1-qavb3o25N{D6^AOi=?gs`G4hNd6^oEpnS00poYOhBj+u7F}H3KEzK zf`xgIF1bQ57r_FyObw`1EECpBpqNKy6exhZfGopF(IS2p$c41v1QMW_4qt+?LM=X^ z$bmq>HDtrXv~Afnm#NnbR-+gYMpBFbM6>Z>VcKTy+RD_!hPY4+*dxtE0FXG_(f?Cv zDpSuAEKe~&iog;9kY{Sg#N;w@n|4FhDcwUc62@9s*;)E9+h zQ4AC!*@po(c-l!YtM_&lW$Nofo2}Rq}x&)OUDlKoyHNEW(3HJ=8)TMGxF5D`-37 z9mebZ3#J@SZmfbezYt?ufi~QWRn(KlRtnV$~qzob?b2HgIj*8>1wYKUp<#b9sC$H<|b#lN;pD#{b9I6Eb zq$$pNv^llrZ!PKh6pTJ(kr4;`OrfR{KYJwmZHMP?-7@Ig#JJ*mS~lPt z!@J=X0+-Th$gc$!-{s*C#!rthNSXw`yMIFw;oSM^{T&Qrx91Y!5#H9UFp_t%x`5jY z<8NXs|AHNyGOfT_8meHdxazveU%~9X;J+uW;6RGCon=S5>MeFRoZ4D1^r=%y5w1$> z+m<>L_j~b4hSfHi)6%{9VDF`+xvlM+)c~_6c$hzDbiYh>FK@;+D@c&G^_xw`JUdDN zPhpeA^Ecr@5fOquQp4P(1%EMcC`zVuIE)aDZ`ILWl7PU_2re#8-W*Rwicu^XYBVUI zO-auZyz7p;nckX_^eN_9?=@@XGW2&3`oYTP;yj(l?6Uf_=_Yhr&@xx6r*>-Btv=xvJM4_lU_ZUM)twY>rF6lfqN*A% z{mJH;>m2z^G;6CNW~w3DB_~@OMlzn*Ix=D88iFfc6ZrA%G`F(5oClMf> zV*I+tV$3y$-DqpWo=5Y+a$zE(h@GO3G~954i=|tun`;CA3_?}3L#R;(e?$p)soToo zDO3D)MRgUE-Z*$==C`lz+*fBsADfM(IK}M%;9qu=j++`?L4mT2%8XAPtMcd3shn>W z#a^2YOXd-`Nu$lKyYVBT4s#2?zYcPZ%o~_+EAo)JD-$7#V6BL2yPGVY+D7N{Np2aN zZY4AoB45^P7&nTw^&VYHTwdvE`|9xcMW znZF+Dv-{O`iRCxGO=99!SgN3OeXw%!Ynt0%rb4b|X{o@j)V~^0wKd|m(fvW@7Y)5i zT?Y~Q474wigk45+!QTRue!pvJJG2sjod~>IJK(}#dIthd3!Dxf4l2>ST@lnwOU{!0 z^%49xetSp~6Vq4+e|gzcoj%}mmy z#j6we>${KjMDl!4E=j?wC!1VG!EAg=Az4*|DvHAwPJyzRaK^~{FiSXQ5ltrlYOO@| zMTC>OsOusV`IZRXj-IMN669Q=nbPsrxpO$JEHSZ1xgli{u}wOu3W~f7XPMuIc!*M8 zmTHewNDOR;MET5f)|e)lSHJoWj?EV#QJf6vAfj*;ywFm=kEyP;$?C?_{fVv!2W*FqkeXYw-v*u#&Qghnjq_MZ@{K--}3%__)(n9 z^U7+GZKOoR!g}eA^VhW@zdk{;dNFPyy31wR`^DbNDeczwfJsAq>i%ScsJhSLXmwGR zVRiM2L&#s4(-|Bpl!b;bY=0#r9#6mfk%@}W?ro~Qp(gnKTM)DsY=JS5>DR|-RQ!DG z^)VFuh>XmE2w`!N^fbE|UVznpt`9E>8=;6E`%${%@TRq*)<#UtNbA%(0b-Y(u8;g` z_RKX7?_V#sw39y0!Fl5<1OpSBtX7wk&wWXp_itm+Qt^2|ukZtai(nzNbbKMdx>9zN zW!zW8a2Z!#Lz;7lMKPpuZZ6T=EHvF?3%R+U*QtAsL{Al1^R0uoB#RiD*hu`Zef@`1 zsdEnJ%XbT#I!CuhzeKJ@dM&?CHq;<9CEE-CEP$cFccPEw8q}tWVISn9is2muP!WG8 z1xV{Jm@~EzAqdwO>u6@$6(=+-nUqv$HqH_`)D7CCnO_k(?0o*fi@^>T4lzwyqrck- zE%Uxoq<+^u)n@#CTmU0?)`4L5=Z@=V(NX>~jY{tS$bL{kEPj zis{38n+2;{9BC4`^c3Y8bR8z26Wn2mgcS++J0ecTIJxtf(wYO&9jTU%ST z@YXrFl1!_aCVX4%^q7yA%PTEo7|}eM zB&m}WT2%G($(8BoTr+~%R9Zy~frAu@@IypnX*uNw`*WR}+wyX?gWYzhu=hRfh>cnq zC;-${v*|5AuY~8hG;f4IDs5!CWy+0raDFm+_#sInoyM%{60yEttfW(F&HZk+c^X59 zho^pcre1C^tl0hZ>kEuEg}Za%$7rtNy05=}29KOE!#LmVnLnb0y3C)EnS8k|Sjk2y z1o{<|%BioP6ez(rIV1&`=le27I6|#!GSP^IW8lAA2iv5uORz8j%ErV;{|{?l6%|*| zb(w_V?(XjH?hYZi1b3IpN?dAaA* zu6?SiZ}(cg&OW#53h)q;xF7zkT`5X^{zz%Mo%PYR;67u(qI8@1n`bNTdc(29h@ac? zOi&QQkDvBu8;PNU^UuWc{pEXxbo?TJw}0i8FN)kym*1E*<1ZLi+=N5X%IiCsysb`& z*LHM-v;Op34NJyK$?H)gny2Yy`G%Ia{XA_}__gu9BEiJ(K<8I0b>~-VJ>6@nGZ+m5 zI@hxYH&akFl^ahV@%iO=VsS&W@M!SPW6e;Q3c0Imq(t=|_86J3p5uHjsZ8{{M}8l) z7leJPEBtl6vY8%r(_qt8_cE*gKVPEdY{bqJt**|5?Y+mQo2q?dZ0ybqikrTtuCuuc zWPYEk%$E>v4}1E+G&gU7RED}J+T+_SM7AyI?ivB52(xp2e}!+L;Ar6Rr2QCftGioe z{+n;YwVFY( zM{~UDK|Nqi52O)}>PNhh7(b=~R3(K0rll%jP z^i|o}*MZ0fa_MKXM3H7#-gx5(G(NKCZ$vQ<$kK0Rz9RHcA0VdhMoS=jvyN}ma7UXV z-Y|@>(-^|*JU3|LeCfBcR7j$P2m0x|QIDtxxalC8)hIIzZ=!Klc+qqRDG=j;F5N-) z>)Sxw1FH0RnVjfpLy?TwR55|s<`FpJ_BNq%+mXrJNw}PfAqMf-?S{|O32dDpzgUb^S zGC|afjw;kL8^myx;sW{9BYjlnFAh9UrGpEY5zAOk>?)LSePSj`fB-HC z#L51QX&04HbHtVnio~N&sz2)JLpJN!ns`CvKHv*$wi=KX6^+ zdmgM2UE;_LLUQ39_Q zf21?X^&%}sriUS%(x?o^!q5KMl@)utctuNzc50#$FWZZ?2u}a{PX{5Vp+r4ZQc;%e zMSag-Sx8HXc}k?hneHAdfV$|G&LrPU371CvWt?L_GFR56AIZWM5~<45bRrq&=yse% z-gF{axK#2X-Cm}bd{IN?UdB284jF!*E@R=cNoaa%^hfDREtMp=dUE%wl1l|!t^nbb zR%J{+h-48pohnvA{}%~Eef=1%j=m&ZKKrSvqNlGdTV5YT1{b6F(`)NX{!u946u35~ z|Lql=q6nvO|D%w?DeQ2H`9BI7oU%$QtN$lF=I!nH3qFI9`ZIaDrNkc(xhT%VK}6J` znQ(GE490L&hFZ}VN)?_TkN&iw$WE-4+37iO@#QX8J}UOOIieknXj$oHX?*%G&(9DN z-{)ZPE-d_YAoT%4`e4)}=7D^An#?m+TkN3S%I?Tj=`ZZKcG5~^8qAnG2bDtkza)z^ zgW-zFCV+}ktLk^k~2brFGVbq`(hUYj~ zA;cqLkaIxckrL_;%1z|Px8NF(dz^z@CA=s;hC;DNUf7<6q1Yg4yq7-M7^L*mi~M6L zYiQ&ux?;nGq)FXxoFD%cQusKKrX!X+z z-E#xX1bX@D`!TIQ2p^&f#e=?wW_2@PCe?rtpveIS{Tlsd{c;k_CB)4H&3L;qA@Wdj z$PdW3iktY?^5*pB>^p`b^w1R0L&9ppYLW-tjzvfWtQu07fK9M#7LpDlf|w>^6H(Lc z&1xyPfo^(Yw&;WCX^d()^k@Vnh46zmLELIBxD1^E8 zsgy;^@R0$U3DU-u)_)X$E`jE7q;(%Tpa9SuuC(E!1oRffjWhV}kq(*!;>I1+d*p*o zftqm!-#@ZJ8$ivtFDWn&P&o5*Fw_Oqj6Z1phy*1EdEgBiKN3MrK_2*nA0Dxw;-KS% zIbsW%fp;Mpun!Rbq+R-FWN0wx3V+Zdq!oq$!A_KBcy58wL(&qZnV!30_z>+xX~ySv z7(Zk#QJVR=ABGO$P8?)-ZiBHy{vSV^RoIo&H4LR@G0DK;YFDH@5>jem+&FfJ-nEkJ)G`O!=`%GMB*hGPav(0@nLIbn}c)fn(6Vwq+&GsVsCNj1~Ru_97&H=Dz)eD3OUa6u%#Ngfyv znoU*OacTtsGW?Ct&z%ppiNyQJ1JgjWp7d!(=g9&$wV>G&r5%@6Kv%}S@p-b)%|KG| z6T>d?ipwH3-r`x&j9h_F2=kTeo}QSmRyMy#mY=84M=P%A& zFWoOOyt}+QJ?}j`KaPn+Z_5|aUJ}#{7azJFmOuo0iAChMU5czOIcHZcw`YYeD`q>x z6!TSBpJyRb}M*Q7G#Dd&cfe^0pGWbq%(+y0!` zo41wnvREo({4?UC8K09QpefR>a5ANki^56x7k42XMHBTY>co)Ngsj{=hN&-tNgHj! zj4kE~g-epa(>V=iR=hMWKucToDU^zeF5#`SmLLcUj zcfAAjpi8x$qD1UZyS7MZ7EG(7H4_z5U>|F}mVRwUKCBrrRv7%CwDq!s?Hg&1v~mcVh<7;XNRzp24uV15nO zhO2G|e5uu~rjmVg85rKu(z3^vI;sUBFif_~D_kCC;?pIT5=;p`OAR$H0j6Tv_w%dwFm9`IiPdRFr-J?xvv<(U^ zXt}8V$;H)?@WAZT6_oVA1je2&tOaz3Gd^}iy1WgS52y-MY1*Skd2!w8Yu*#o8!#=5 zcV#H<#{^Rb|IQ1sCIB1P0ex zVAjAnl7QO1W7I*XJ*%kQH)dkG;L&9<;xUSc60Jy z$LufNJB)GjC!x>#t~02ODPeH!A2TR?Ei&AI^5VExjq(-y)oO0xJr#F%lxKG2J+TI$ zGEAA@k%A^~qdv^=_8c|po=#$82p=(xJ_IX>hO-C34x_aULuzs>EZy?==i#O!eJmo0 z>}!lATWnknPN6mDR(ZswamtYXNNjwKLm?Q!ZDu^WROU7F(Ix%cm*{Ka0I#s;4B%in z;qj~Hw_$oQ*jCgOZFPY`KDHASsOm>7x91h~Eu?!3NUjMoA%TYs2wI6l6R&FW9JEr0 z3?g)AigoEc$%amkW>-*L5dxBXe4O7>q0bW?wxblGwroc%(YGM%afCQwIhw|l&$Elq zG>s|jxkh~8IbeGCnwosr=M}ZbjvnfODug&d-GU=|JBUVYS4^T!N&HtDpl;A}U zBEW(XO2{Ht-?SruoNxmqWzKSos3L{m^s8F#h|wWDbA(6Ga}9oZ#hB44dR}E;0Usc z*}?wUs>q!nIhp^qw$e>}xs(wMo}JPM?I^0kj(fs1V`mjp4SIcibg}2Q z%4oBqzK-W=IkpWbCic>0yZ!{5Ryqa-5uSK_FKG19d7|0-8L!cFO6p5G`=i(m>-dsOZX}7HQ#(Qc0ofWXAlosb{L3x)}M%#WN*JyBlFT0{Dsny zB_)5?Q%zNt^S&UyiW^NZBPaLMfOUJK6K;FkdqKsH{EakEA04-9N7SmEisfn|J%>ba z#xk;G1Apn?^lRxL14pS}tl)5RqXFxm(lLYQ##Mpbb1UnPE^4#o%DNkyT@D>b-vVRc zIqq!vy(l}OQsc~1}V2)=v!j$oyFr%xRwrJ8b4Nx9~!(qX}bxL|`$eU=X z@pt=a^r*4Ml|le9oTqW6)IISJf57iVYAgZ?G~M6X{==6RRZ86~MUzgMQKh$+my9(4 z`c-bhxq!T|*y{$Q96;VPJy;k%GVcsg#&fqSFZMoXwe)MM?jd0$E`MGXoUST5f8H-M z#OEu^OCK=&m?eN)oNyqX?A*q(C+Ri056{Zb4G}_)70;9q2OLQ0vrOehJmf;+7#Sie z-vUL%lB~&P^^vsTMCVR#dlMrNSzi}K{&#;rXwL>%N@BEQ9cLn8Go=Q%cG<0Vj2^t- z+a{Cw{HIK(TN?Q~8xJ_`jSNUl4Q`0|k#RdOG~v7pPMgibe$cdWj1E)Jhlr^U(=G4# z48Bc%n4Z_3Sj%Db=e-rPGG*~5=65wV?)<_TF=a8`hG^$jHx9Q5b{EI+_M*%9#$4`T z-ga)wQ^=pBbp%vuTgyL5#$jPAVFQmK4ryr@(?qy6Ra@yKfa64JD}KWNWr_ab=!`Dt ziqF-@^ZRdvYdC+LIoDHDJ7~Yz!sBfR7_H0d>R6k9W{RrYC($D8)`;%mc zj9+3aK0qpzLPeMCz#zpEcF`_c32dlxX`aV5_TgG!oI@3Lmq>7Y5GQK z^3T?wz!;YKNQEp-hKI-%;?pB$0?on zSfkSDLfRuu5do%$jWZ(p*8)I(ObJaMY5rBaz0;_5RG(b3Zq4h%m}bDtEeUuPzl*kE zJZ0K&IAzw*SllsAV_&Ucl$<1>de17Ri`TPn4*^A+$1{FU3kblJQ0I}C{vjmcQ)EeY z`i(yTinNzun15BwXm0Ob%1M%{IiOAHF8w;-z~ty*8NbVFP&A5^@Du=uOe3B?(JOVp z42iPr+>r7kNHUua(G=V(FhQ6j)HpP@q32>ot#){4Q+%F@xKvhGbp|O)K+gc=Hy_p- znp$5<>+{HOb{IGnGr^32ou1mn(|I47yk=6C@|(Y92b`mnus&Lh7@A0UOWcNvwyyaH zCzWy*wRQ|#89h>f)e~MeA;)Mhp95;ENq+KSIfhj@M0(tD2fzFQk{a&RZbCBf3!3+@ zRzhu{ZbAZ|jfr}=R$J9bHcoTBv;3Y2OWXD-Jy5VvyhyXzTWeC`C!sJ4EF5s){`sxyU;JxMt2)1ipWim zg^JBd@498Osg3XcqA0Q&hPf_~(-CxfG4@xP6jiK^2XM^^z@DMZLwEx$z}EH3f0u#4`|7BPYcLq!JN|Sy(ePIujWD>r9Mzj2pGq^G zUkL$!N+VWUdF{?JmZ?Y@UvTM&X#jVoa5IDmf0sqgkr$d$o=k+l!=mQI3r=CEpjCAV zWa-b4C}}B{(+!}XaQYp$vX{}88&DNXIpWc#k|Ifx;+a0+p3V&{Q{@hj2N4Txx z9Vg)gup`)3DJNC}q{I+zv-F^NI(dDp$Qt#o`xQ#C{fWE8lEml~~sUNhIg65Is z9l<7;I1wYPCfZ=)+@6T)Q7JN!+tx}MEByW<#tr@|gA@YJp{$NPf*q9wW;wcyYFvU{ z6)z3#P`h2T*Qo?!lgrL7WNg3;NKw#F;@bd4k@xc=f!I%ixgLr16jW~VbIDmuL*Nv~ zkeW!sz3UUjfREvS1wgo1X}GWFa&qY?K!3CoJy~8RcqKtGA|V?Z1I6Mfpg)AX>2D6bw8NL(4QJ}?|;`O&IOBV$8QQY|+j86W4fKS33(}_f{ zx988pxJU-c^k0;TEkAR0$?8%ZpxEPg)xVcbjp!gXV%GeRHFL5=6n(Q|Z|S1@pZ3~@ zUOK&{8xl5&5xo5z_}_TH8+lVX#cSo5A%ntl3epwrQH)Eb@eHdcTh}L+(f?^j{*P9X z1&(`6eW5GwPPC>V4f>jI&;K4CQ?{DjTKtYT6+_$#iMGMf+gLUggPp}Do)%G*FBi9S z8@|A4{g`kY_yYOvaQXbS-oXi(S&a6e&l!js)pNN zIsa{AwPt<@fpk(i#0`jeGbp6>tWr7f3EIZ{rZ627_bH4wu#FpV2#?3x;@Udn2#)?^ z(OIW6?1(2f2FiJqb3z$i)OFxN4{AhTwZ0Cprux{f8@6>ev&?2Z<+M=l!_OPHA!Y;E zeHBqAo$8;?=>byMaoqBe7wYC!Bv%;;&9Yg=icYRgPr33N!Vw{(d`dlnBNiKWZotwe znokxlW$Squ0{gVi?^j@Ej7A=1QuQi~6}EUwc$8yP&NtUfgS?6&dY_()2Q=?2z*X+1 zP$iAB=u%!@iw68V_103&+EhS56rG%-4H?)OK@y$JuP_eN$@C&6JYaD+X?`SII&jUZ zC=v}hWMXoxpg26AKNL1K(@FJK(wX$=>Mo}^^v5gp2seTwLVY)V=TC{=Sw4SzB}()R z;bCmw9$zQ1PwLE;bBC{lwZPdN4>!aYPiWo>PCJL!dp_R^(BL3OoBn+2&s{y7qgqQu zy>qwHkNKX}%LdaeutT8nGGVTf1e))GPtoI)n-!Ej*5@;m@J_o8{?+)gh-$X@{PXY+ zAU1tiC0tO|63pNa)L=TvnB&c0U3E`3$G;yx77MV-37x-+nWGJ>28DAMB{KRak+N#Q z=u2%5kImb{J&QemZke6$Sa27WHTK)=3ZO+D+@6zWKde1eu&4}tzQxS8;S9_4Ji5`R zvV|7LE^XPS`Y)fj7NsoP^X8?i zl%S#q7RFi1(fv`2`Jzr#vNs# zE4*3JxccuLVO^eaDh*s+FiBwkkP%^gPqhe$(?=<=p2;`J zC-4*S&!f5530q>)LBqOT{l3T~0#Njw-ZAI%7tg<`Kjb-|(>?vbKjG(Sw|K4u`#wIW zq0|73DgBd`V*w%cHjH<9p0nx(@^uQ7=TMZZnfuewsBbT*;1I1V5&BbAuwLS~g|FTj zLcwapCv3l;ho6U+aChPnmus3qrMR=H3l7zwQo`95#Zs;$Y33sCW#*O9IrJK$i`zty z#iwhsXLn5s#~>XM>2CXSkOkgs2VaN4Kq@3Qw*tMReZaY^GyFR7S~B6v0csfQGua|E ziyN#dk}|Ln%=z5w`MYH!+~hG0cPE#6zH1O(^CCZv@>em+)mX`f2Yu2YyM$Wo&JsjD_DWu2C2K0? zemZDYd@6S7;M~D1wjUrDkcCAVepMQ)oG^!N@+b+`S-i=FZv(zAF`f!M4h2gt<=oC9 z11tIu1C;iffx%2%$HjxFX?(f6U9fmy#qwddxfI?GzrX0!LPcbm}$a&>-*_ z|HDbo4%^iuJ@8C)(EQ3+|5_WYL-sNI+lvKIm|ZEBf| z@lXx<^zB6&xF7Qq<;5%@OXpi3Xb@*M)j_xZb~YDSQREzyuz3SC?3GFK;bFdr(hWE~ zJDIdh#fm0BuNc7H;l~ue3SlpDbHA46crNxl^1w`GW;alR;ru2od@AxEAf7$OcItp( z14Y>|Md^jw4Nl+0SJ4i3gkM*9VyVkRJ}#EV_~b97i%{MH*KJB+*zxz@j{{(eG&2D^Z=Lzd(roo^nm9&ap0=)ey)GD*OnEWVup3eMl2+d6-`gVOOMK`HAhZ4!`8n_CNU{~ zmkatWVJwoMvQFc^#1(8i+n^IWBE#-5mIl|8eImpDFcup(`Tb*d%R$V|c_WwBp2W2@ z1oOj<%VQEe5DFhb6`V+eZ(`OYzraov>QVFOKx^-vEHPrAn+kc3il zm@|hcL&S~y&0(`63*A11{VfSx@H2M$)}>FlL;NAZMj;W`;1Ok`5M3~RLRwn@LErJ4 zA8f?Y0q!i&$lh>n^A@g}zMkvQPo{_GSa<{6UM`$HrYO|%TP6sXIlwVok2b$*aUq_x7d zfN6~GPw4&*VE%-$Z!W}O%8{mB@Fm-$2*m3p5%|aG0k8SvM4yhp;PLz1{=WDUT;EYH z)4T7nbF@^_b}`rZpT_1$Swpy>nH*ATu!#}v*126>Slx&=0A>!+OK^QN*$n~v8CEufA22CfZPmW8K5zg!MtwF&2F1m3pEKUr%}|wA{Zf2 z8r_5BD#774wD&=6Co~&g3=9*5x^RR=T<_wfjr~9chAThb6P2<&nm|?nesF)bBanA$x$Lp%j4DP=EGtzW?MnxM! z>s1(YNX7cd1@V(i4bHj_{$z?j4L_@f+lxHkD~%{j+N+Ok%nkSXmDkx^cV>*V!d8Lz zr7buOCwv*A8zZeG(J5{cD=oYASMgF0tc@GK(fRBIETw&J{1)DOef&w<11bdO#tC0w z+p~!oga_wbwgN3^-2s3tQlJIB`z>HAANZm|@l3+Jch|Fr4K*`*E(9&sDU5m$yijJS>F1ovML;&llD zf}^gn6E+(;?-jt|%L7Hto|}8%Jc8& z{W|t@q`%>ZZ-!V$YG-gs$s+<(pGevQmNw!RmKPj(U79e46-~6RxZ$4?%e{Cpi1YFT zLX2*qF46f?Q5&uwqt|z$ zv$Lua{%tmY!q%4&Bmg!xI!%!@6zEm+sKnD;6A(1~lOmZb&^zf-iKJP{+4y#>#D(kw zqlmX=MM`k*>S-T>6uk}fEY=|**Z2_$d^p0+5ms?c;RW(Zx}7oid*ez#eOMScDSZ2T z=E5S~9Vu7ZA&SEOico2v@^*y@e9l|0UC*9p#;ZjyI;tqF4kpP^=|B}^2cM`{hY>k1 z&PW8^mdqrt@GlmHs&0-jN;1r7RNk#3<-8Qwf7afRGQD&eihui?_Qo7RilGHN1nS`ac zi6R;F8jDtB9QtWSz!B12mhibDHQ@%!MgUMNnQfC}>`T}z*Rx@#acX4GRtJ(nr!k?% zT}Za3C>-J*bqdZuaLRNun7Ow4qt8};!alS+pgQftV2v3- z>Ty!azLKxbUNE_FB@a}}^rJDZRM$pYIp4m6W7xzrYEq!V?rr_b><0T%BX?4LGbbBk z!LLL4zwqTRG^S?0_5HAzzy$XIQNBJi+mrka`@yU0_XZ`#lBFL!j%%{*4dzaN2L*Sv zO(V5bV7BzVuuQqW%8kY1G1;`u$F$8kl3hZwqZOsS>JxkpPb#Y`Tm?MPp2_PlP}w*z_ObyG73|< zk*UzZAbTx}_&kVEv^rrp1{crvYyZu3Js#$W+fCKuq5{1YKXa`Fpnil0XizuKe(0{M zkJ|T;U$i*l7jr?xf1`>oj??)^(i?7ZJK3ENGQ6j%>SMM?6tJAEg@JykxsN)RBYN2+ z?v_0jYXz(^%49}6j@ATLee0T;mPnuRn9?f+0QGP8RT37?C_OUWzyW;~q#n@^6;PpW zA>kU!e#NxO{2;?1VFQ)TyEw=8!-AHgy3dYZrprEhS9_N0d=|wK#n(=X8>fhp7MhZ+ zaK*wcq4=Gc=oh|N>XR#uEIO|fm8FVtJZga@gfni3u4Ej~epBR75Oj%|CxPjC6SCPR zFrDLl)4crK3lmT^y~Ndl>P=>^E_$f{*Hw3}@$&s_K=uGf-**f^6+7zY%twLg>cw_m zSG?M|bppeXs`Er{OaSXwV{JFrk|rymA89y8xq#U;^NAQD7 z?kDGwrb9iQCP6d-$nQf8eTxPqLC9~r(o2`6=d88u`wu3Zq8n&^qc-jXsis=X>#}P3 z+rF+pd<`zx0DY-|DqkjZcfP(eCY;VGs_gX-%7Xe1ZVq;StGvj~vzHqc)0fX%Cgp=V zwM>BEy^mzlE0qTJ_cE7I-uWXkHb5}V#ZBZ2m!bVVO|=e2+rvEzAQxS2d{9SMkyEBPCYfUnM)5=s@?VL)kp^esLD^OA5;E24|ob3FPSM9>xGC_FF z%d~DgrN6H=;3=p=d(HN3{_^E0Cd#H??ewLRR3EMhtszlb&mX1Exluub<2>2iTXt0b zL2Kj>TFngSd;$C?-hQ!#j7nrP$-PBps%xX=IG#~H?5KSTM!0)#YYgz19<+P5^-*UV z8P44?5?`1^T0gf`_X7tLzN5$+EA@4#dduB>ya^-g>e9+XO zbM2COcOuLi%Tv93`(T4WXXkIoSbYN&=zQg#*RbbdEyhhEZ2D(gKfwlt+Ql+944)rm zb3r|0S3%qg)?l_?G2~%Q1m2(CPJCbzL){bvqCGJ6qHNAq)p|ezfGa)*^TJ+qR%f`Z zM};B@*AqwvMX$h}2ixk(~dCCGjAQZr3G9&QL zNMMZ9f@Pe}I(&NcPZs0#0ffW^SDI!c=)^vG_68l0ZwcxF!(6NHx`n++!Bc;}jCsjI zcSZ>NEmyr*whFrwTYR?(E;P;L*Z!KJ{bmYNUvt;^V&nn2k7@oe_~);NC(pGt0@3fD?LiqNjvxj2PAz6~0>XTLd=q;+h?@W_@oyfh+u3b} zm-%I%W5#21pitkIM0B6KXj(zvjC|gQ6H6NqmADym_qs0dlAoSk2#RIZM;({E_SXN0 zR*1Rn2vawjq*a$hHg2J1CB0R4w{gKZiOgqlb^`*VR@Dt%RRv$4F~Yo7#;pWe5M#%s zXlz{L7&?=l6Q;2{PYxTmkZn&V(=Xx9wk|YIzuhNdTl|7o_-ELe;K0>}OL)LhDbHwo^I$pg!PX z>@j-sI+}fw{@TJc3BXK1&q^}HW}1(=5twQ}ns+FKLMWccCeX?8l#aG3k<2;e_K8g+ zuDI2Xy_??)WUAQdib(w4An%mOX5y%u(`UBwo69b=u%-O9i&+NjN@ zVYdc4PPw;`O;j0{y)l_A9LHn)%_-r(V(p39wU?(orc5KBbsr|3)5pA2z89565G?6Hn&-TozW%bGm$(6M2 z*ECB*S7Fe2dQ(lazK0tp9MOzfhr|&Zwf%DSdb$wfG;Vv!XI$U)3pZ{*u%kgQ&rX)14v z0gL-Y_hrt?{4yG7nBoJ{rr?xG+1e0~WAp{gttr%} zvyHpaEON&m|({R4qDv<8!a4Ui%IsR!KEv=T#6_Iw|p`%gXB3rgu zCX8ByaXYC!FxE^_Hd9cOUk8(00p3lMwfN(7x*Vju7Ef#07Ta8FMn~a3hzPPOd+Pl} zJS~Uh@@+?RO^GD=*I#7deSy23>*@oF>FxB|*CbTwA?j}f^Fg8M#NF|V1M?xFdEMI+ zn|aM?cwy6z^?ZbQY4~BlAvHY}3Dq^%mpa5m{e&9S&HT4jtPCZLuFAr8tn+$}YW?%J zM1ySVv`{)P7kU=eNK;!q#`8f6z+S;sV2^-887%tG_O@J3p=Xx)!n@blh>Yb{cpen4Xd^t2zsnfJr5~& zw+Ta$Pwa%|#e>UjH3KtxrqJQG>rU2ztJNY?SK&#rbrAK-6@+P%EhY6(Lj32=Cxh=o;stU&YsT(4 z00OyU>!G=tRM_&Qe)M*kqw>t+ZvLtQX)GH&>k{svBUA>nv{ z8-`LluRE$gzYzzS!q{4L`wg4lh;KBk3ZWzVCEowkw^R=PWg@K=NqO;ON;0tZ&9s7F zJ2Uq*U@Na$q+NHkv5K$HrGQS{u822Lcvs)HCgAo1$T!iyLEo$<%8NhF2A4O5UVP&{ z(PSR&8$~~FjV&v**M&uN;>o+-gX`l$d}YNH(t^Yu>Wyn!shfCX!82@~y8Ww-*5aZ> z8nf4JS>~fEC*}8RSxIVaD_#pb%ulLrwoxS(0 z(GDL9btRD>E|w}%Nxl!&_f&ou*gzFR^#ALsxyDh#H(U(4uq51K-N7DHYR z(Y^S3bc%Ml+{U@G@koZ~@2rg1sU|yIY{C|6VxQ;Pz^Lf&9C#qp^h=v?yY5i#*<|CY z=z~E(O%AGC2b0HUjK6b!tWgqyM!i9-zcZ=*rT9=-21GoR)bY%PT@PA3kc@EO(W9Pt zb$8hLb<08MMyul;B4zL5?_-w!=ukcN7Jp}_%Xud9?O~~U#x?N{fiB-n%u7ASo+2)% z+hYOwe1*VG&iC*SQaP8k1qw@KV#zeK%H5i|^PJIU>KWqdiLc{_du6Q`srB|jd=pu< zmBodtcebBdbyN!raNys*pPs%Ma&SqG-bV470C&FaZ@oo(Z6|ZS1l+mHxcVA{v1~phYKa?bh|k&*82g7s>Z&S zDJtnXu?dv>0hVlZ1to>J1k7Hv=a_jP#GhY|Gatk6Lht}KmqD}4teh>Si|wV0D|eGK16vuM%ZdJ=|)Jxh8YDK@q9If;sXLe-wKk%ZfSSu%i-lFpY^3Pj`;Xn9M9V5+p13{=staJcqfehtJaNgJ zgq5=t;*%sC1S&+!VkB9l{&DdrxvV+g_{gD7F@Bl?QRo1@Cq@qG@YRk#t?A0z$=Vrl zKt<{JzVJ1kPRsg52*qa+P-0qRu_mM?DPR!8SKp#}6)UR}vW#qSp>NQvlTTR1&uG7h_~ ztU_esj>f&W8abqBPw&Fpv!;B*57h(oSirdV92UtqWRPAeuQCf^tE^8_QXMgu|jw(rR2w5=!cR;<6g!NIo}EB+`i-mggpsH2c7_8St|k`>gUGjN!kbD>E%r zvOr5Cazo#k;O`|%9_X$hU$aMm<95(9%Sy8`u3Hl^!mR5^Jtr0v?)&1(_n__s_lb;# z>u5K|e2R7D+tZGFYvLT~=X|v=7nDlQipa`SBvwTQ70`nMol%0snJ+F{^G_~C7%K&Y z`&dh8zGu)fiZCe{C)$T$#K&dreZg@XsG4YHKw7Im5P2vxnMrz$UlXp7pX=w&kx=3DlAO&|3laoS0wl zCrCm0nuq{vRr}Y>`xjeq(3Z?|(Y?~z0n|OH7IN~*;1?0KShCbYdMbN%NWUfE6SGLajJj%6#Sog&)MNqE3J$ph#SG;Dcp%=w1mjuJ zfBWlHE zJG=9dY}EXQRq5=>I5tk1c2Jj#EZ>J%e-a(8gpJ_%M5#g(Xpi1zLh$9MQJG%OM$#9J zwf3&uYf?K`mUY}zWk+Q3^$VNtU)RliM?Qy!-@Xd!wXbe~y~c#U7J3ue>??B7-pioW zu7LocIuGn<3l2}s6>ho}z+Fs|M>%g{S-yBuoO(HY$dHUUx zH2x~#szZ*aru`c2Zi)-L#pHJJzFk4$ol`zjgVjU#=!$W=lYuW0=eS;NbAW6$T_^~h zkMNY;{68r7xWM|gB08U@PzW?i1N1kM*p_X@u%BjWfO_PQG}Ogpa|Fg)c4>4 zh;J4eoL8aO-W)(#RUT@h>~xc&(cUb)DnByCu1OcNaHFR9keF-8wqe-c|9*G?a+sa? zi;%lnudz8Gu*y0VG{sK%lil3B?p z;gWbO_>Nf6=tHH51%j{6ccRWh_W9KzfB}@i z&Pvc!De%9p&6NV;|3UuuYm!)!!TSQmVnue=netgkc9y-4!-AR`pcdfBSY^Cy-2Qoy z<0prSsuPi~5<6>;eoi^Q-s^UYTmuW`vkYC`$%ZxsjKy0McuCw9vvxTjz3J6C1~4`e@Bhx1 z&)T-vE{(=bmur0;)7YpfR4m>C@U6R-xD)w$PpLId>iO_Ci1pYp=GZCe&;aT)#SOea z^S7x8giivV>OYU=W7&L$^t`s~zgc7eDYJ9CiEJ={d`#6E2QlKy3q6M`K|U60977x+ zy`M26yd~ti)~~B`{^U;wTvie__Y34h&l>v$dZ3Ez+?w_w3zO=Zq!#Tri?*Z0P5(My zTn_D=ogJMn-BMP??fT74@_y8EivHX)I(nE%eu@@zt`qb59O>0oTltg3swv?q8cAzc zFiYT9o|*fXgq3vtZxd#&C+h87^^Xw4XPS`1&~tW+YD1|V?hqR-ujOB0a%%nSQF7dx z!#V!L?oAj$qqAMao9qQ1kel%ot041D}v@638KMD94N2 zyI;$KU7ut|&ye{Js|JQrsmF27W%`Env`I(Y_InUyogy)%KmDfir(uzB_rW1v5xjG# zS#KQrPK`V);`SF)_n!Rq$6z!aC20|E^V3*KAQMD#aoqS57VCuocr(9qC6(TJk5y;Ee7 zDQ8jr{5kp)13n$;TkzS#&VA9(-lb`&xqHdo(y(f+Qqd2-y2UUmf1Umva{}^{sL*Ki z-*qMyW92-S|AVl%42mmix<+x=;7)LN5`qPHcXxt21b1hE;O_43?jB@t_rL(bUBAim zyl>t6Ro$xlXZ6~vSNA?Ob!w{SaM-r*u<^c$u%XFoXtXzTp1=etmJ{b#589tBrkoPK|wwf?0}}Kg6ZniXgE^{4PbxF>w}r zk({G%eTRPP^?D~~zrB{~+FN7hP|Z>JrG9@aI<*px+9cGZ*AMT-O?_&zn&bt?3A?X1 z>49+~K=Q|>8_oKnNIWq^r`85#g#WajgnRwDCV;X4pw&`2jOnS}T7UN38(8D(Xx^(s z9?!Y)W*sP&^NGW~682Mit5|(ZyWvrO<#1Q==9{&$fc3dwa~Y{>h+Ls}zv~ouHjj;@ z`?+QpK)zM~2j5uOaAn(ZFXIaitI6$l^NZFOCWE08)LQc+KU4?|yIGPn(pG%%1cMsL z9f;~+j~B?T_5ShA<=Lrw!ZoEOCC3nb(f+U2jd+1>AaeC6@9Jo^Rg$s>K7~WtJ~fpP zfTT153n_JIn@5r!A54y#eGLhoM}p0$c-q0l=Yb-C8;C;A`LGQkQSX~rnwstR4ja7? zX|Ml*DJfnXJ;(nA1hn$6QWi1DXwsVhK=B_){$DUoiprw)S(mGAC-`i3CkVYkI2c)Q z>>Y*Wk$jyKEZR>06Tb!n9!8f?EE6{&OGl?s%met{zt(JR#TaUYKZy0%3f8FeEr`Mk zC%x2%zLj03Zu}DK#g_B(lpJ{cN}jASo}AYIiF~pk39lMjXZ#@<8Hb*gNmsnMTIi7a zRD|w6{#=NThANc}ep7g@T0jc_F?|v-q`i5bG)&qB|*|MMnHwKfMECj z3L)eVambPh(@9v>!+LQx^*fr&73=;+yE@hNi~CVNv>NJoCBwe*>mBD^HBZNO#|r*7 zrmPBKQM=wM#Z#V+6j9bcP~^#ysmO5?g_E#Shv1WTims2HAyrllM?(3tMH-;FCf+$9 zGnlc33Y}eJAPJKPC;tP12w?XA4TrmjA|VsIuo1ID88WlO{BX!g^5!G3Z)e}yx&dDk z^!Xi&H;17u7P{woTiHLQ36%egvx_!k2q3=uX=~bL$3HKezXaJNFGfzJ@FrZJI4bli zrPB(yq#WNh#qbmR1(}4-=6&-1o~;uB`!~J|a#5sj8~py(g}W^X(lx&|PvG5&By$b+ z?{3OZVehtL{aI3bE4(I2E=>5QaH4;D*grl0pKgiQ6u$0>Vu}9Hh`cuV#!qlEV8*9> zwQKk(bSAy4&G7@60itG7Kz^+5skgD-H8vi$>CwP1oI0iBr$F>k#42^}pV}h;El28(8 zx9HFkEdK+XgZjs0kdSWq{xGl$|LZXlA~`1e6V{3UeG1i`-7k&s+~k#wdt>;~*t!jH zHMro2w;x`<%QAwlI;bB_R`Sm%_s>YBbzt<008<7%Ly3_WaD=EPiH)GNo^$ZYGOr9| z)I?Wj3|kEVOI##~3WI!iI5(j~00;}LECmvgeR0chwRU-09X6pkwDN%Vc*pqA_BjS; zM7(@yl|X08T?+U^i2`x7i5M{eaS~BKgqxB*m6n=B`<#(7!GT1uxOp@YDo*ledoCq4 ziMBZ&Wr7`veKB(%qL@$ZmtP2J84A}ev&y1b3!Mr$x}rxSCyqIy^3>o`m0ycETA~MN zlk?571u(5!#7?>{sXOeHu5^?3*eXkr2r>2yDv)wnTPw{5m#2Xmm0%J2hBNNYj-C|XOs|ncGaq`Sq{p_7f~R_vhH`tBB$yvxHTKjUH|lQdlfK2 zha`}Pi3^o+v7=F2P2Wqv0+U&C3qe-144X!!BJRm9M;ps(QE$5?@4QoHph0Gg#=2~N z)$q25v2i_fXhRCreFAPKvbQwgcW8G}|DOQ^piyI8sw}8`)<_r5S~)OG+WWWoU{U*@ z0%M?Fqh;D;g{_W_OB@cjBpzOM^S3b`#yZYnXj5h6n8G5`ss^RM+~gQxBmu#;r+jdl zady7?dcr^N+#q3A=f4U~&i09|Rj*Fw^g!x_!C4E|7uNzzBopmWB1r67*ztdIt&Iq+ z%vrl&o@EtQx&OXbzQ;i=P%r`xhBpuM#WsARY30d}JFpCB{;L{=R}rvqP9Mt&|1I+< z4m#_%>e%paTue0kmN7@i#zQGrr$)~d?G4*tHR8om-;RAQ8;X~9A^JbYe+sZ~*j$vO zJX6}~hWRJ;l1vbDc_T_uays&IqqF}PP_i{_Ekr^Olhokh5fkI*A>?g>8#{W=ywI&{ zjX)VU3}!Lh4-0NT9kM}O!kz9Dk*#a z_UPP_ZWR{b%8tCc(96&wZ*$l#1qOkyri9tlw~-If421omR=_C)h3ZO!pN)7Xx3S^d zzoE-;@`jx@xwy{dM9W?f>YttkOEm%{M%?CGR-9ECFLyIU z4EJ)-iu<@e*(YA$!G_8}W;`$X{+=jM*?}(ET+YHcfw5%Jl{{T;6Q#Y($F&aEoI~(= z+?KBzM#`56fROG+h*P30BM+}GNZ(#SU{Jco$Uh6|lcXv#P?p5yh7uDwp=k&2L@Bgo zLGomv94>)D&i|uP(wc-p7@}@aXx(3#n(gVc-Ss#{Ck&ihYEZlnX}oMCbR(PR>b}MazsSeoiEBsD+}SJ(5;d9KB{kF zV4=P$;{^0i5PAR8;!F!x;{6vFhH${eD`~$oL*(G?u>uI??*!)p*N3pbF1Cw;g>fDE zP=Z2mTl4Pn4rY=z=AlNN5q8LJA~5a3)73E-gSSV1Vq&g7&4+FcU6@!h1K&n{cAuXY zfq}(f1<%z+n*i(CLD%uN6}vj(d>yyxECtR4)MMB0yY9T%%Is0AOXD^(Fg5GX7Zu7; z5sG@d9cx1Uiy;r{t+lYvfM5~Z``JMf5{;*$(-HYqfE*<8@W~#m#OJVeP0e)zdY-GEJ{`_g{>tO2x@Dn zJ1OUjNJ;nZaokDNLRJv2=r!0JzO9fDo6ya*Fm$Mb^7FErTZrHmJ{fCb`aZ1+=x$e= zyvz&3?f|rtL16~7XZv831Dg=JZ97Ni5X-sGzO4$4u3$?yaMoCi@`v-y&+%vwsUrR+1rT;?T_!ZH#bQkB`QhMS33<+zK;(+-5yPrh}nQIvBnCeoL6LZy{2gh$oLL^F!DP$ zh~b{#4n$LRP;!P|F)yEI!2OZOr*1~B-}+>{Obg=Velkp^O~23aO|bGWf5|=f!Nyj6 zY`xl~_yy(L_wjci!6{HB$;(Ve^t9gsAQ`DdNcdLxN{7kx_c-RdaL6%e_*nsChVph$ zYp^}RHOQ3jr+4FMpH>t%F{MWPh9+w@Z=hl2 zFpST)YLU}vB*^wEeKVTGunN&9+;b5PmcsCGzetc_R6RFU$j`!D-Jj0ac&ZqpsMac) zW(UzAXiDXFxWUR}c)8^E;KImbXy|O4i{Nqz@6_B|^{LIm7!%#;)0Ufty+tTo6{&$(e5)%!RV*kG~I;fyH zIi6gfZ_cVPS$X(X?Il!>u`ueX{N#0ZqRhmvg7RAk2ekifCf##v*FBCxbjV;5F$Hn6f#+r=(F`B|8) z9Gb4Pn54Kyp#C^pc_LB*7F3J8VmChjjb_NASVT6*15TGwXqS7X$AOFD)wR0y%;v#L zlggs@KQsNR!`4kpKPqaB-@=!>Q&-^ZF&T_@X=0ef_t+i3Yz6QgmNxB|{q=*B?^Xh!Mi#~ic~I}j$J(9bHL!9?S!4}*%82I=!?lSLOjG*9^m*9>tgwH$? zc$ay9PCf}cV))Gn-+BL+^qU?kM3D0!C@$1FW#ZJ*hm&Lm{Awe(PsU?Q|rM*kB6On5M?`6dIUVEPFe zvaM;p&)y@DhZv#OFJ(NFB9Lo|j+N86#UPPu4L&IkzBpEgk{|?em#sEK3CAD=x$)bW z3KU}r*Fh@!nTq}+fn5C~n#l?<{cue~Be=-a+`$k*sD1ZbNXMK|2w&>viAL$O!O9~( z5iR|j2Qa>6xlIN{8y72HvZ9&5paS2as?VNDrCzipbN~$@e=n#=LE<4CvrYdoUNp$P z>>&sGPDRqwz6%xgyCiBM+-V1uwd7V+DjeO}1GzX?hW8VFxPRF#St6SM@ujXzYdOUo zB2NJBM+=ZS#mLvGDsdQH^BGjMU!~mzVa6ZqI%e1<^xCKubQh_Gj`fo4M+4&7ro}Cn z_)bYevpPfp`-chWbSuw9{%MAWgCP>OfDL;6SmqAka)_$yS)YEc1ghB#i8 z;>ehMPRT9!q|4a!u1+8;H3?+o_zS}u2hd40u~zAsRcaLS+Y?K%u4Df*_Um~P)WHQ3 zkeyQ%X+av9MJqQ7?{R_R8%VQgu#xu;AoIZuqJzru$^q6=k#wvrFedxqfL4rE4OKc| z!CMXbDljH=r~r+j6m`pPqg}Id=c5oi!(11lJnJ zw|DWcz15W(MdW&bEZ&ykP1BF9m+eClZnHr&Z>&-2*X zPC$$C3*^Z>-O4VaoCYh&ud%Lef+>I~k{j=rVduxg!#^kAH^g~GgeSABZabw%rC8ky z|DB~N@!$-L|F=8koxZ9H72w|IoAPen#{EV?a)q9U{_=(7%D#Bp0n{(B!wSSEBkz?5 zzZL^RPuPNb6DPZ0RQu&(C0;+GZLB}}zwH3Fe(jO?t zTF#=6djx)gBW&+Sw`4igB-zHV+)3{iz-5?jo`qb>x0}4$>f7G99<<|AhBr^3GWAhy z?QL%Y+73f6&x-*$$(Xuu{e!^)3_rrV2%lHvYe3UA9qXoO^?yvWwY{wilk4YUv%Pw71#>%p&{d+d|NHN zEdlzV@ztGeReiQ8(iK}HNqQ#(y2JR=7WXRf_Eo&rZ=%3Jg+uV6%O8@w0jjTqN$;4TfXvHZO3$N3WQZMU32xhzB#s*I zb21Oo@LF)rHcZ_jynP%#>Z86Clg~nvmx@YWQoOSquVi%D9*lxJ96ka-UyZsKx;50M zk6Knwm9iKFFqz>hhZx3uFPE`M!M=76!#aO9Bl2);`GEv{-T@Om0tu>w!rFsc( z)j&*(_n5o4waUCU&Avo?YUZOB^)0`&@^cxp7uWg=^G+GJEb6~d$PB(aBu!h}k?o3n z;A(#ePB!}vA-}CB<=(AD2&2BZ(`Cc13yK8OU{2&z3Np4}CK27MKV54#{H5GDs;t;) z{IT9z5mW&q2xyVls+C_h(%rOJZE-MMeWtle=RRBi8c8}Um>BjJF8oml1PdRCw~|TI zRmR(BW!Axh^I>nJ!kTT~xt@dXiFu4W-7{UrWDyTNKM60>dCs7(w=}DP7JGH*Q{Eq} zGGOw-e~ct^!RfT(4|$81JUwLmK|R|{8Pp2}sttJmTCA)1?g)#+h4XjptX7Iw#*#rt zWWQGIe~H{b(qywqSJr?2u5&?LYf_MRm2MEA&^)ts@RVtIq2AMW=6I<^$nO`72fMYr zhNoE6pXha^M#x`{H&fK#=yi3(<)Og(o&Yyx{pWX}yC2z5 z-%Ihxiu*^MF}K1{wFUwSabfGIwV^Uh?PE2|i< zao&->TZt_>~Lo`kT>B|7Ma27JCjVV z4Gq>7*}=beCgEHg%B(+S2D9%>Qn@zNS$pEcwif`Kz)M}PtG`?u`mFa-g93LZwOp^U z24~q}FUP|@R&BWkXSreU$HReE9&rZ5Sz+6Y08!wjQa2A1D*7^j5_l=q&BK7&TZ$)H zy8Cdqm&V1f!5S+&xPP}7!o{!5>K7MA3mP7`dKB$`R3^+Rz$-1;{pD#K+t)`N_|Cp{ zpOcz(dPj5Q37|gmmZie;xJg9ro}t0>Jf+3+Hk4<%`YFe9cQ31G>WhSPSAYH&smZgl!6^*CzN6o`_h42wtQ3p^c};Rzat-Ug^{ijV?`AGDcEQaL84rC0RXf3Ktj2@+Z=Yqsq#hfe zo~TZ*^VZcg!x@0Ep7b(#SejU}fh5f=Vmqa}o1gwm?3fR>hGBO}if)0VK*u|x1-~^B z$(IkR@Gla+74nJ-Y?UJ9qyCEwy*;%VmbcoXDKZ5y|{HNyf{z%8b1e^iAQko1Zhc zeb$(6l9vPof%a@us2V_)sOe*J0416* z5^7z>CgZSPC&!0k{?_iKR)Zll`gM&4QJG`Inw6L}lU4#lTMwP_AGr0@Vq%(S%V0&l z{zdt0Df_7`x=uj%)9IeR^TjtIj}4y0e#RB0b7tH5p3uLp7qt`Jy<&F20zMVWUP}HF zAM`VfZtW*hlN~6VZA)p$X1l`SzqECw2rHQ>!^LkGEw6F>K)Tqm3RYLfMa?)f3ZDDVJ5^iOj%*s9 z*Nk*KWL8?4wD%pP=*CG`m(B;uSqo&tnRVPuzKyz`{#yP~)nVgJVpm)1f8T$-%y3tF zBI(+-?fLewf461;RhE}!7kL<+w)$960Pqw|l79at|7*~yL&Uv4wQ2ag z3*io_`n{+*h;c{L4ziQU#MTaYpEA8dA>8Vod2Z6!vZ9aYWOzxW(E+Wh>0pceIPwUE zaNp_a4%yla>*MnJ5S_T(2cH>D_jKSr(I}gDP&(o5!oi?I`+fNh*KfNgbaRAEmlj9V zK0hg9H_Eq;`Cgad9x|%CX1=7s!0_+a@ptb-`@~OV_1!dNbOLFoFt|2lXHd9+ij8Cy zCWiH-1_(Nwh#eJg%!gG{oA2wbhpS;dCb@Q&iyaSuz1^vq#U(m{jKDVZW_RvDa|oA< zw*r3C7P1I;QBePi%V1~otx?d|8;_@c2q97Yj06od*IlTwis+*}3_pH(NV7%AjlOv< z2s!gS&|iLeXthgNBk9t5nnAnnkq)%hJHk_5n*NmBqC<QU(4bH9O5_P+>(gm3^|K`L1~HwI(>2vF zq_|;V>rj-aEbZ>eAl#RVE2&qi)_tEF=qf&*3VK5{Z7Q||1--R{KL}@V8kSj|$)f*# zNW>l_@Uo>QVa3CkW$C2z`56!Q+N_M-5kEG&wNGCX83Hf^dni7X^- zs}P)ta=17ggOQik!tS14LzyXQ8vxCc>BR9fgZ4syY^@hUV_7i0hK|Qr2HKYnd`u1- zUR)tV21iEi`Fe;LVWbV26xTKg7ABAoGOmvfhb%9y5j4x}30I0M#;ZzWpEhu}K(C=F zIBmOwTnkvwPmDatD2FP`s}W$W1EJPXGzeRkq~U~1E`Bkj;mT#Z`~_AnP652ut2`)D zCQguMSbLHq9R9qdKX+nmg&mHa7?l$Xq_h7T*ZetyE2@!svMEA{aCmjv;>4zYk+@~B z3Tj9uwXM6qvabb5eU1_5W+9u(v#umY6t}7q3#a1^(2Pzd9xJym14xs9ha{(zVuwAT zt^3LtMPM_@Ll`lMhmjfdXtkbgm0j%`?h>~GdoeG(h25kGZ=yOYND?6r`Ql3c1@>${ za0R1_A^1M?5)sbCiI2x=2&$Yuem}dnhS1MpTEC}?Pg&thz z)L}R0#WitU74h`dX9e_K)rB9Ljw`T|SdMcXgWU2eb0j(dHD0_RmW~sGqR!)r@6?;( zngWTgc=~r1|JD}q_H*i~YR{`#?oFX6+~Kj*M1!B5j|VuD{m>4lg0i4u?(~5ATuV1n z?sHl*w3`L>u?%lez@s38ym|wv4#0>PCWwXbbhxO~vMM#sK*V%Y59y0-?}Ki#^(42F z;w|FaRwZlG-_uRJ!v+`@x!$gaVRJ-X)k)D|bL|>59Dmbx9<_~_!!@O=FTBP16j1n> zZ#q7-9J6=zh7H>b=ANu$&l9+*)VBS8cFD{vvL1HN)Gl)RDJ>^zZVFD?yfJ-4=GqJr zZX@jEAkw8HURP5r3gYl!^b`?{|Ni^I$Wcx?4;mNPe^!Kz6!;^y$y z8tzNBI8XT1#N5x0Jz@js1@2A&_xotK8|vl^x2v69+x}0}4g0epT9dRGr{=D(JxHa} zq-CXO`;x2ZYeMG$Wf;&MjMnb(4sk^Td*fr02? zzMZ6_xF>46_6fK201IvTG8KGhRv}A_o?VoeIC~KlbZ1sR%UFp*PzOb3iWghEs<*$l z^#j58pSug(6CzBS+%niWv-DUGpm$T&W`Eo5E6q0;CQ9b}gJ1GNjQU7e`t`Lf!{?j&_JO-lcDMp^&ytJD>5-5TQ%#l z1kcr;Z0R9a7Z;#YJ2JUhOvqCus&;af^qf6yEnUpf-nb*)c#Gu$%y9)qL>fusvv z{MvUK<6D|KF$H{s%udl{ggUUg21Sb+M2lO?;1)Ipq2;!x9*I)+$Jd=#bOB!Ot*0~l z^9i(&);9Ds#+~rniRvAoA{*c-z8IUPS&^aIY}&em-tp_^`LC0p9#JS7`|qPooyr@t z7W}T4q|x+C5PZ_;H;6v~E2^z;(~xW`L4}k1#1L|{JSF_oEFrZKbr?P09Y+YVGx_Sg z#3P1Je76XWAe;jG)cs3{R;HhC&9j|y(3DC+>wNqCBp`x$cb5@Q-r3#K%2ADgO($z^ zoP!vKCS?1`028cHf7Q1{6uJ(&78JTK`7PYs+{uvQLF?94A&|o~Yyuex1>|6o(@-8j z3pT{3FD6AMfy*xTOH9l;@>YgeEKi&*gz6C~i^}H&;IK1!=#WD6;IJdpY9*+kqvQeg zWd`zKIiQ9G9tsZNNvbuR z)RU;?sR`~0=`~?O^hz;~g!Hn%cK!-&_Pn4HFZKjd-oY8{qVj8k>wlY66q_;dCJ@=P)q?k0WX;#m$J}8rEoVnU5ZE-Heoc}+ck`PFUE}?J$ZMCK>zv+l z%j;O-UA!Eqy1_V7sJdP`V%pxM88fP4UduOKk_vnn{aQn8MvUgtj@ibzbf8F5Xp&mG zLQieJLRH0u273Q!ZTv>Rvx`Dd6W* zk9OIjrCY}-(Royf$`8c#9-z?h#`y-JKB~S4!4uV49lcH0)4<_V*fue79J5F7(nlm7 z0=-4Yfl*Lfqi^u{j)4$beVMWL-U|nDauId1vfCh(sN}i%+8Un93;};Ep+;#~x2eO_ zvw68v>2r~I2j8?}>*&*vQ)==Kmm4cQ!K1rwA3B$NCS6~0?}7v`71soUNfsUa_h_uc zyl|(aNRs=zYq8I_`sCqG(Igve>2&a4@Q4=Gbg$B(Eh^N4kNZ95dIW=gzFl=^k z4iW{NyBrWJciH&|vtS?!3sY|@Eme_3VYeHRDV~Pp_*6XI&klybe<1u1Apb!>+du6e z2>$~}wuGJwG_%MQ$0SVIqSH=jEeic@lCDq6Clij;=PYc3rHQUYcE9bK6vAi9jT2#7 zSpEi%EDL2BtU(PX+X-#9oGPL!*ncdH@Ao2z2q{aUYib5K`M)}1I(+KGMMQ~bG%9Zi zAdB(;kyH=TgDesHlXL~k6r0@c;ofZL7}^q`ig(4*h;QnUGSVrCvxu$Q$#(-6L%B1$ z?~Uf|m~@AdG|UO1yP2b!E& zplafAj{ipQ(GqjFPZEFvFQ^l;Gi)I!3vUr*KoWTp#m|G)g^uM*cD*BaDJXaAI~L3- ztgb+TA?@tg5wXb66RB0bo&z>N7&jO`XlvIBFqXz#$WdEweL0j)4{DuG5}ioofQ@ui zjb&Aw!0vJ>$=u^;>)!X|dm40qtL;TY0!CoEkK-TSl2qD?#EZ^&vJ-FA5-5 zdM6nAHAxEv=VGUj*?kgGNrapH^#yU$m`0xE`x+HWIt8P1Ifmxd_4z}m_luu@2g2_m z3R%C3&H(6jsA=MlKz%lX`f}!^so%x$a7}XXanV|Q=J*8cKbaz?9Awc^ln6v7UE8+@ z*B)LPuh6-nzA3n+kV5&XW^4|VZsU3{QDhxUb(YzlMT;Oh4CA~MwyZRcerH5HYIAC&_ z`^DQaRsESG-nwq~BnjmYr_R6MPu~B^ZbdK*mF{=o-+#r0*kaIiP4$x3J$c%PugeKPwB?rN-r65Z1bB>i$Hj4ESb7H`{BVEJ>|r>O<6Q8ZEZeBMpjqYgqHI)Ap_-j z`F0Hq)sbLWy(5e65E3ip*f^3Q9HWndX1yql-#b7&LLZ?%lP}m*v6-Y3@Yf2^tv8&b zSU;MYlr2asbNpkz-s$-Zq}%BA2q+l1(rV$kfBU&#m}osIFABxoh;4ax?9rc&w!x$wFX%9fkJ*6t13gzHy?ezO*<|ypf9AQBx z3O&I|9Bjc;(y4`|@p1R4gUQEIrQ-+pQ)8t8EaCR53>zrcAEh|!i!jAq9ye@YSXefx zdD@l~y6oP5JA~yRF<+RUoQr+dJK&yvTUky1VtspfU1OVO+||BDwM2~^@GyjESg>Ya&#>!Gitr8`$Hj$FZkwL z6L0(SN7yje{m0YDpZpNJt;|EWZ)Ck+KIX1F^dP>D1(kKN;N1qSsT!mrLp=2w5m@N6 z1fZMtTV%O`@A#7)ea$$Y|1L4X{+)pII`+ODv0Z35Y@kFB_|vm3#rTG?6*lJ zi+ZWKfhxIN142ySb@Af9Rx@1^u6b98;8@Re8SZm}5PjC00xu)*+ z!nnGWS?y&8x4}cStvmn*8yR7(py9t(9^nSBUr;X=0Ncg87k7I#TwS`X=hB1TcY8ft zufYZzxnbzX!@*XMaR&TZVg3t%@5Q^6URRccf+cvrN_VlmuFMDpi}4gocR9VTYzg02 zhyUIvT&7sg9Bp@P<@b66P~Qf1O^$Q7Ui1Aub4k1wb^VXGw=}~IZhjI!|7u;HJ>AL| zb?~4?=>}!9-=?_F&8}}Pie7lMqI92be!b0k7@B?Ak`?{9+roeDd+|6H?e#zQe?Q3o z^|~rb_QJTp?;n$K;h+I>n| zMR=id#CA1XCwGNb9CD$6X=ceu0-BpbLiE#vCV z4g`(AOQ@WE*a5_6z&oER)TZSl)cwkJX0g9Ii89DdTOvUcHU?IayoVd-zkb_%ti(K< zj$V)6pE;^6KToYOOEOrGnCcMGf5gF?&%XFseMNBXSF-xPAUTWaYnFcg)f^j`c{|)o zWB59`0LS~;r)~g8^p~hopl{9M2oSRcrHU5hX(@_TrP{;!13JYe0>)PH=A?u1PlINu z=@_7k7wI#3&W~)z+LpM=6(H@nw0azK2AI{Z-_An?66$e!#Bz4$I4; zZVip~f>3@$oPmdzOdEwE9EKaZ!zEsZ^YH|KdvlFbbcb`{^^#ENE#ptS14Sq)F4IH= zMOjWjUTO0_{^-j~%Rl_%eEH2NlK)X>3}8EcIo|)(3!y|E`n(Dk5z>p4fhtSj(Kg+^ zth^vZ0{H`}VU6K_!$#-<9Y;N3%<}Wbb^hKECIK@Hn{}Cyi9W40~d$Pt*Tx|bYxL3)q75bBFDv*P$Ca<8Gqp@iU@f^QLSLaXPPhzy~ zQ@_HOR)<^M?z!Kdg*NZKTct0Yk}dv!G~Uwj9yuS98`ynqE$!4Pi%l%Yh%Qv0tDob_ zG5aiz{*VP#PWb$^e~*;1%+b0hMEVhf>#sZ{x4%_6v*7b1g(```xczRFF{C=3ZPD(! z@2bvs=Qw!nNdK@#om9)EXIWwr+Qy)?*|S)(S!TyV20h9?hP#wvTKs1M=X4-_*N z1S?d`5(i)UQITD_vtC{^gz^6Nan*MjhfgbZ)kwye#o5I#K2~|(N;MRQyS!1a7^kXOc=D@ zYsEOU$5&?`%+QrNw0ANMTE^4F%9_YVrWroVkHqhf%uu7kS5*vTif~37NeYri9Kj~F zNDxAnlHp-2;406-S5>_<$tYk)F_DuWR+3-Lrx;mKqjHj0ze~ecjm}~?LuW53F& zP|ryD^(b7{N{kMa8Xp6$Sm!!pSE2Nm`zVry)N7 zWyOOEW+FT+HIkj1SjQ2On_%TM1uR?%}nKLsxC7 zR-i>(hh=Kxq5GNPIoM0W7~zANI+(#knJHLN)*#ueEe%TDNKo`M_4m$yeU&(M=MwF> z6PTxpe<=IK9wdmWuz{<->#Qg{(t$ zhTE*;KZ-oib?{sA2zg*9XOY-Jz|MI!)}$}B+N$2es3B&IoylQPU1+gpaZhQ;sZ)r= zWiKfUt%3B=^(j0+oW2j1`eBoWO+K?lE#r>ODm{ie-~+4KJMCmKYTY_G{95B0Mr^r*@r5gd|fLJaU4AWq(hVJ zJBr=|UK7Q73H@be?%gdzUnuH&4WksAlz2Nl{7Q@(z<(fC@xJBDiUB;Mx` zOT#nC3gs$a^!WSMLK3{j?oEF`v*Z{H(jtF9Ll`8J_HB4}5=l-5l@+2jkv6W!z420YV~cQ;q? z-43(THp_1#Uo$7B^WjNOEiz%WKVzj6{|K9lSGwjOP_0z?7lku46g}Zit6|In z<$-9>fWRt(%RR9yl!h?VqQSlda%744<8)@88l+d*lk}lpwPlFADO`R!SSFe~xd9Uy zchxygU8QE7iZtaJ+kQoL50o;C76oW+m#cD%7KkGt5S#D>T%M_$u##UK?ikR-6&mLC z1DT$S*-c&*T*1Am(j^LZwC(Af*p}q11~s-*v%-LTMl7{(y~_wRh91rX-HK1{aaYPq}a<~~2N1B}s@YF~)K<`V@sp5^qE0wTBQ|8N&;7bC`PWpIs zh*jZ7<_gj}*kWPW!S=5dtAS2b(dEedmd0}W_>%w0WG0;T@z{^dxf>C~jxPi{HA$7A zMei?N3M!B7>*-2R_t9<2YFACtzQl=X&S|EFve~8G zwC2BCARDa-om+_ukm2?=8QaE%g~2j=Sq(zXS7`PJrGAmq>Y-C^Tq#DK_iq*|#XbOj z;w`R(;a-=S)vp+fRf*4@wGwR~M^_8Z+JIL!vk*B-FcXMGV8|(Onqh>bw4d;A}WSO+Rb8+o4 zZfOM2TqNqtr5u(qe>EVQQt?m;Y-?v@QQp7&1OBcB-7=eC8IEJ)soN20vZ= zEr3uQ$^j7?JhDyrIXS)YW;#>JByO){`4?E4P8Jhph3SrwRw1p&uNbBp!L7Yd_u?++-PvTxJ2n7c_S(w^$ ztR9)rURwt4A3X~WRI=rCaMq1x{xUsEn=T8i9?LE9 z3J?m`aHfa-I+X)A=1sJEY?}uE8bCHe!JRe>!;B$npHH7+GcoH-Dd*H4h?wOT$u{ZN zTlFv=AC;TJSstAt-LCnS&fKF<#>wXc-BLL?ItBMndF$4<;OO+$3~*8ANnG9FYZz-h zk;8@W+?Oi}-n=86??3Md2N}6<4!YJ!GVZjg;sx`p>{iB5L8=pS)FjZ11B8exSocYQQDLTDeY0DA>nU0Vf!f^^E zX7IWsa2Qo*@YWfo|F#hn7O8m;TS3%rFeyNL^x-o=uu%uVqsvsKWWZb+l@Ak^A3c34 zWY()%3V^vh;Q=1p)k5-%op>!A_T3a8eTq|8Pl6!LlJBlyzVrc!@6>As?K$_{PD5#P z_ImW(QUKQ(>ox2?nNHH(N+r^;R|Zv;H}e}lE5UD+9>0RgEOUcHzDv*TXWuGCi|`{^ zG6l=(xwxC*eoL%T8L~WTWDhQ04ZVMW@T-JG>{!cbckWmV6dYr)lQ&ntw_pb_9cB(H z`7eZu&+@9dR<()Gx>iwXWkkaH9&1SlWTjZjkdQDcs0Z+9d_qx=k5e3t$^-)v*0oz1 z*uX|3{zrg>5lsicqfvpM2t^kfi-Y$Mpo)*vX6yH$if8LphI#2Rl#jJO%QdP^MVb!7 zeg$v&4?=fFo-e^$(v7%Q@#w=3*8_irvpz!r>-X*>&?J;TDPbcw3qBCeQWcNW>0bBAp1?WfRjNqa*K?Q)t-j zDG%MGTVj&jEpPo+Std-VoBBXj~S^9Q5&8ezJ4Y+pDW;SR!y)oFIwoB9}Hp` zoz{^&HO9Q$q6~fIPQVmZk~4hP(o+J%3AdW~q8jp6kXe%c!a__B^|+F>O@?m+&iKj( z_u@ng4S`qnADj7Qm0IH{n~H7+S&pWM4C{;a_~_CqE0~|&3H9XGC+h2gW^Knd2{_WZ zvcC9zvV#>&EB5Snkr3zUWpmNl(h?yS1qHTeBG;Ni8uD(M39>@7K$a3g%s*RVo2e~^ za=xGb4_{vy6-Uslo#0MzcZWp+i!YwVf)gMM0YY&1-~ocWyN1P`MMH3RcZbDY13^FD zd+(3$$31sv&*|Qp>YC|2RefrDx}WFqF#(9Y`ZvPS|HmS?Z0rwL@-}7INn^42$*O{^ za(RQ1Nq6c!p%6V`ydS6Wp{4^Xn>%}X)&|>1y}|yz z_t*pu78VI#mj(OipAR74{`3LW=BW3-H!2>i{R~RMv>SR#e{=OPlKTz0oeFlaycL zVU}b$D7H{DqUZxg%9f(Vzjn+>GL?dxbygt4GF2!5;iF<%YA~7dl~k!M;WSV6Y?LqS zY(tnOX`>t5P_bV58@cSbZA^buOtq z`W1J4h4n)e&3CT(Jo!0{;~%Om!}0Y_OvSJJ5wuv`QQbAHIKV6dvogkH@rcn>G!_RX zNR{eLq)iR#e#do^s-HXm)MxQ(O(&wH@6>tQ=31(I)@w4`Lf=j1sxgq%MWMx2RK2mx zwcM2F*Opsmm3}VOP5wq9Tv)Im8*R(hfEV>qD>UD~u%4v;eG_mZuno^zL(~>Z$}?DF z=07bEjwch7MR@8Nx!YG09A-f=IWtX-T^IF5Gp0cu7vVw-X5J%k2qxC7+PEyXMQT^c z@$~Nz_}MnOcW02#(JZ7jD*!V+xAF|NH8CpDV#&3gLG^*E-eA{6QLeDoL^-e^<0mf2 zHaLAYjj%;p1c&k1GW>jBYO^G(HNd4tVo9Mzmv5mbynFKo z3k%cOdN|{&ApZ|G+XBgJW&cp-Feuj+h;(BqpYeS{fE)qkHrDR-YBJUDgMkK0%f-Q> zB?nm(0;QWOR`)~swx490b(JTnEGcHyChf#I(;C#VY5&&O1}ZIEY>7>j0^g}FThPZ7 zFk3kx*g^-J2y7E+8zu=quV5fCH{iu}%+x3@Td)&8mmEeyZGlAD>m^o5lLG1YoUvLI z`LBZdyYOZ9hRM35+~Iw+DS`Chr6Nn+&=1QN$ zxcBLe0&0k4IO)I6qqx%PPI7|7uz^5q|5e^qB%JTVAH2?^nak$x9h*yZm-`Q1sasra z{Qe?&h8`>Ms?GT*H>^aMU~-fWCQoq_3?{cR>nXM?G3wo?+psZ!Bp1#O7e7Eis zmhEcuZmpMsTyj|Jm^#Hp#%jY1AgEaSr{cP267e?^RG4s& z$8xhXrc~+qm3HrZQJBT`&f_Rr$IQfh&s8Ahq0lDu33WI49N18JluY!2MDhCs)Y z_e_LzvA1W3oOvmK;TqL>dZ+|5xMWApxs3frlY~z0{fPi(eEIrJ)`5C8Ch7KP-8AEX2fl77j4(hM9UeO&P8!u}Z+x{?Zq5scIk-Vbl&G~#>d=E=?c9^4>+kwgR2T9aZVBx?|y@4gT%ePorB9Bl?>uf9e> z4Lfh?&*b+{O}*W_Oh13W-==^Y9?rkXz_nHNfxT!tB<`f@V`(`$jgdqhUbx5{(mmSj zBsuHhX9DrO)o1mw^z+St4+N9N#>%;27OU4-^(NV`xMFi{ZSOn`{#jt`TJJEdn_7I* zCruUN7;t+=-`M`1ty#(*ngu+8s-n(ImU+w(=SV5Jx)hsvY2Lc9rM z^w2-eRZ<+D03V@t?~3r;{;81P_UXLKIr;rlaypO%2K&M5&-ZW6IbiVD_HoYPpzjXT z#$lkpo^kyuF$K63g|L=a0Yr-ZBbZ9;`m?q+B4qvNYv~t=WMPi>s~?6CqXGudUA#)z z5oY9Gbq5pKpzyg}QW5>+w_X07&%7Hh5ZIqpNBSVH;Ws78U@y^Tz~b5~X;k4buU{2F z2t42dL9tNKcWH$V$LpT~(c@nAxF0(1-YwZjE6m5=27z9l20f^g< zC{}~h=42fn1c!?%Ii{hJ3;#hUc&%VltTDf8$lN`2zitH1F}27@eMKkmNmdzFd7Z_M zUD&G4^iQzuQ~iMUy1slO-m6bex^NtZj^-{FU2V}f?Yh`tS>65HnCudW7nx&4HVR$|9)_C&MJh@Nu@o;1LG5$S3Z$Q=}?L;3j zOJ$h&r%K^Rtxu{r{Du>@!r|pqwqKa+hSkd(C#g){9W+p`;+ZHv<}W)DrlCUrU<$4# zLkB3RwK$Srb!^TjpG;)_)2ePool_9Mk%{sI>Pxifq8Ck%0=zGcg#eB5%mSQW^Ktfq zJ%8`EScm`|I!FHsHjt4(5j)ihmi|vp-i>sxvJ`LfRS`7>-GgH&8xhu4`kIrwQntNM zu;!Op57yv9eIV*;<6N}$kGqBx5KK3yQ{Xhq)Nq+u{m#+2@kK0c8Fn*UKs|?}^zkid zJ8AV=cI8^FP3fO<+5T32@r|`!`U>J}!`2t#C0` zv;MiRR>{%%l~Sw-UpqhWAPc|6`eyPli6)B3(MGSw@RR;(+TmeveTC?ZRtG@gQTRCV zhzwraU=z|7?v0~5wAK^c$p%-rmUdC5#CZcbn$c0GJFYrDd|hv%R5b=`3%7vz`ju7D zo7s`;>caNR(CGeoqJ_4F!-rqm%Br@`W!)aKReXr5oTqsvsd@6MzM;#j_DCD{W(@lc z>)B1dE;0 zlwFo}U+Pb3ouK1zJ&Pedl{CAvSyH9Fp(nU1rFd_J?7uN2O{ZyCK`RB#yKsLs&7-3( z5xHOHeyh_!NS9Z&Ws9Pe+4O2!53$M5v8WB>&AY_+E{A2TB^5et3?`*ztj5JU*S4~* z^$6YwgsHt$hwQZGheWo2lw9kbtQ=9?Aw^x`Er{3QTx{ijB7CP(q7r%42*p+BB;j2c zSFCCkuiePkMp=qcxz>t6`PF-xSEVb2c2gSGcF#D_Tv=R&&n#_AbXfLwPV3x1GJL=6 zJUsaD_d6e=G?&e|=r-~$TZ+TeU$135i8!svVHsVW>x{|w!?I(ss)LvroucmM>>tHg zfSXw|AvE($X6fRpG0A_+Sk5jpTR1_kC}YuNG?;%_%hj?nbX7SpIJ_6ZAFb6t$4xHG z;3KPley^<@Yv(HSfOL3?M$tWhWY}+m^m%p({Qwm>Fq++-J?P2w+`rDSQ8!=m6b)Hx6 ze&eepd4K4`@K1suqP6%*k}p9whO}kKazXVgOLBzT(+PYwHViG=`nIGrl%8ZRtYz5F z!`QP06{SmW#_Z~hAey$RwM8|0uk=o-iJ`&b0)F-#ATYD5oj<^@KmFGzxDbp z2*dTa#3%c21-C(KB*NNP%j;yQR&~cWlPOgw0nfu*zeL!Uv0Axr+H87m+vs0fzL}tU zKA(Ej@k9s=L8EH-IXvnVh;7s5GE66RuJ)}V*EgUgP(;H3l(W{N474N?(J%13zJ^(sJwF$QNeulsWU93Vm;6Frg#z1;VLxVTXJNJK;r zLXB(pn?NGs5h?>vg4%sl4;KyMtV}tHkvy86Nj8X!74?%)#E*EnBGbtO%R2jA&IDO6 z^ED02I-T87MW`6By%{-G7T7#h)jkP$?@9bL+?RUEgo#1u3E(s z)s_yH;L9=KkNQ5;GH6*Rv#YEG)#tUhBBx65$Weg8dF|_gOY{+Ayg6%X>JdGPMo- zQU2s$+U-B!E2T_Dnk?@cx&&JMFv1*-rKX=@;U(^GVbkpR5V!vacTQ^ zJ*Nz{H(9#|E^%I^TV9`xSno_CLtKog^%KD)dy`BM7fWjWWN`Zcbhvgu9CU9={KOvf zBMYpvJE;Y6aiuPRB<@V|LtJdB^;5v}d+OO>!R^T?h>Irm6LW;!7*r3oKL={&jIbMr zio*6AJzUI*pSWUvqfx67xfcE#B-Y5%TV5{yRAd6b*Z0NA`Hf%g0THp9zu?YwK1q0Y=0Hx$sMsa4t+73 zMD@5fB7WkI5g*Enxmp&g%WRb1?;JQKII~=ykqy2S)7eUbFzRbNVr1?!Q3>;t@Ina8=WbaE}%Z;;PL4 zoUtvfOZQp8vl8_yH-OGCeBAWn(4$3`xGJsR+Vo=Y%KhY(b~UCww)bfF!V}W+gW5i} z*Kh>RZF&*x@wfvpNbRREz3B6JOaiPi#t4pXjb7fBK_2Tt&z{8g+5LJZ7s(ziTEzBQ z{mUj74VKsL#0_qp61CN>$p(X6C6+B7#My~`!zP<^mZ0~T%U*l+0Gl%y1#Dv$=n2Gp zm~tNmJQ|U6Ck5#hIvTz<9h!y+CH7^QZeCbkn-Oy*^>srQ49adzJNqrKzYyaTT{uCS zoXN+Bx<;qn;ef{<3x2V**SJ%IHIcEUdW+ns**qy7&^`Te=t#gR*7YM}N9a?`H$<49WGgkhu#k4k1md zQ;{_L)0GpUuOo-6?sQHnur>TYUE~07oB*2PT)ckmt%=G>iz@0bBZuF<%^!_R! zGoh~numXsB&JH?Rz5fGnmxz)`2=Xet_y%eEK`vP9kN|x4CZ>+1NYrN=U8?eF?^_&=V;(RvvYAf8$v=h}5B!(%d0(XU-=K?*2FrmO^ z0nF#@KIdA82cSV}(E3NHd2MxepW#SX_q2OA0K^-01Zh$suSyPDAB3O4+#f(|bP;YN z@GO}79%zjz!fh08Z*uXvsjLz3tWE7J8sRn$7lXNvgVs1AmS5`Kh|d!GAIvU(c(nKu z)5P|pnq5eFcsmgL3dZ0LZpmETRRhF9F);&M3|Du>fM)}0nylXSakw$;ZUH3D6%jKI zCxG4cfS#p@a}xVm%r9`S?&Kieiqtvjy%J;a9Fq%64{uN6oVb38(Jj8KJ9CJ)Hg!%` zuf#aq8Fsett^mL(QX?(;I+teUXm#Nu&%MW&k!mXEJKXiV-afqA9`KQr5mvh>y^GPEJ2VD-3SFdwNy|p&k(NrnWDY5(|e*mCF@>zxfo!8s83eLQ#E!%5B#y`I5a5K%&*!A*&A+)vvbNSYZoj7je9vYcx9s!GjKoB8$x{ z!$`bzSRsC}q)R_}NF_|WoRW~b zQ~lzyed(sDfp6V+<}s}aOoM(c8a@9wyP;h?WsTG8o;W|YS)byd8&(Vv${0dArXXhC zWcqH8!_1RQ;Ku~?S(yR4YK?4sw&B=LGlDO3`a>`i=~gxk97;Clfv*X;KW6oZSkwF} zLa~tLhQ9DFd^KD zgHJV*SqQ>^PDr+3PGguzry)|V77{LT9jkWJEi4~^n-XsE>)S)<+UeUHs2vFcD(l*D zc4T$7=G%2>KAbRwS9NH>I27&oRmDb96IDURXsy}JkHvrj6- z@#swG^1C%|u=K|XS(9o@G3()lDu#9Yku$su{+z!Lt~(D^=U#;Jw6N(NE&;lPs4JVm zBFn>R;HEAUruSk;dnvc5GNiC`QjwSzD|K987|S&6Z6gOHmL8|6{J#I{lUyb$4FDp5 zJY4t{VgN}FkxK@EA4{GuFos|VkF_Q>HN~Tyuy|NUZ!0pS0ckk-D?}Zl9e9=u5OAs2 zZ=_iY2gnaex|BU%I1RxvjTX}Z0#o&Tg&PR4*Ek0(#}-(`YrVL)DW=(fZeWVQj`Se_ zI47A_8ZAZxiq~Y0%iBi&bWJ^%jl#qrHk7vGb{gMlG4l-2>ffTJXgr&L{>~VI{pSRm z&G{1s{@{0d%u+(Uv@+k8a#-qTcUyDV0_*CpJG%PJ3G&h|mO0Uz019}Mc>(M6m{V)- z49Zt&dF^+d#?Xb>)R+L!11;Hrcx!x4kjUPa^hgKKAT(=eC*- zp#~4@5c>2(;s-9~n=~1w>81vWc5Wx6;dPphGuz`?lf#+p_(|^}9!hzX+#-4*Juh9- zYym9PxXxfpdm8I6G)gE);-luDybMUQ1+mtdy6rn1)<2_%#J+8of1|%GVAM3qL#c?u z%78{RZ$}cmjNNTyQY{>ZJH&JSYIE$&R*kHtOY}nr73SMLDVz`3c;72mnJC@-;qp#| z*yvWcnEl-wLgAEtoV+>eCkC5MB$Vq6s8%xXdMjI5D9`-i7ET=`_%8FQhikWkrtsxL z{Vyj@an8a*(R8SZ>_Ek0eI`mBfB0u7$tvl{mN^DWu??YUN&(kvPO@21;ZoN#cisi} z=E(}B=0YMzY9SR`RKlW-R#o>*fc67au_5wBNm6Jz%LFJbjT!vpnO4Zaxxp%=^yUiX>d<$ihuuk$$in$Uos!{Y8%^1i zYQyQWoMk7Bl%oC&EU2Kl(SY0ps$U|DcpJa{LGo)h>DRSO2K1)f4lD9FCV6xT19ilW zlp+3bW+y@q>QleRU`nu68y~IUYd0|*!7H!bj9SNYQmAj`K?1$80Qc zq4N{6I&jo5c#rE+QoYWDZ!Bs}8Aor*A?I;q=brC2_H8Mn6?NuAQwo-Q6hF-=@0Z)S z?m0P-@OPePNfg4RTt5UXbB^vO6UmOD?Tn~@QK$oN-PyPEemBntY*+7)`qFrj;KsdG z(;oH3=#EL;G~%Vrz(S^q*0_=5B|MNnb$AJ*Y`BxTfiZmQVKDJCn0u5Yjn)X38+-#o zO^gw`x=1zsN;hcZ<7QAy8Iyph#>2}0w%@sT`3Bu-p)^5w$PwxUQospZRZID~oLY#b z8rNy|Hl4m^DT0@n`zPGeiBS11ZC)XLHl565S<7Dj3-d^A;O4b-8<05tY-TarpJ+_OA#aOi?pctc!z%=BqeZs*wI)$a}HVw5{p zkU^@f;{+T3C_HSkCK@F+)1FnhuD?k0h?@Dz{P2qB zkOVi}?y!<_jNiE{b830Li=vs;arN70WiI!$Sfiz=BYvmFt-|h`dAoVT2VCKE@ehht zg2Gh^!^vV#4+KqX)nBO4%Wg<|xPZQ7*@B(M90jp$OUe^^$>^?{^5!Rf*8)swS8oq0 zR#Vr0F~V7D4k}lh)|gV*YNYS21q*KnOtw55a5&zKgGG|h5)e7V#VymGQW|Y>I1|9j zNe76E(uU9tl6yUpBYPkD_l3Eb9!;w~k1 zd^`X*;Z7=kFxFzdc<_oAd|0cjjjEtwVC*C$4}04qiftLoSh69YK+dS}Hdz5 zqICRBEOSEO_RkGnnRIFVnJrqu{1Qe5pUgpPTJ*&?ol(KSEXI=We7`Xnr2=p^IBnux z#O2R%qhn20^ZVdB)^UO7-hKz4e=_zgA!1!C#jBOmr0N*kD#RZjdM?MB#UVWj^Ne*Y z*~HuBwpqha>I{AzM!;$55RJIxXqkIcXg zJzwIh+Yqku%10Rvs1Nm+tyJS(qqD8#G38-v6OCAw!tvz~SNJlz*^EbLz&%e}2}EA*cN`{_41ee$FcI|*|izcAJ2~{f?mVH z9A21RFYX*cH10W3()JY=xc05?4Yxb)Gs{4OwPpI}@<#oZ86WTzxBch&c>A3%PBDqwr(ng;sb_f?s&?#qv_-C39Qu89d1Lyfawx ztTh<(bQGU+*RG&)btbQJd!{mWP9y*0P$E9_KqBdJPx^I=p zzVD|jb@Z~2+VO{(iWT=eLtC?>?9-)sTFJ$yUm(q%pG*yI>V}F+&2_XZ3_d}ip5PtK z*)k5p(%q!0Pxd9=t)Awl8HZ0vS*0=m=g89T@jjhr7{QY zd9730nN$uC)zBX@_YVm7Q94Ke?n`}dzEAEf%Vnq?DZHC1Vr~%{I*@@D>K7Ul`XNv; z|HJE7)+AKXq-P|}xg6qrS~4eb@$UrMg_xrCVWTu0C$coP1DlAVscH+cmVI(WXK+_I z>6^hP%Uz-*I|CiEUF;-N4Xp-9rPBy`lJ%Na#)xc^c|$3JW^qG?m{lX2R&Sw3Qktih zX}VSxdMWdC!P1DwtP#qmMly|7vkx~J@A)n4N{#r+WR>Nk0%jSzW`Vn9UZLu^ctzBk zS~o}vguw+s68pH$Wx_B@UB6okIsr|}@9GGDr|7+vBGi>i7UYK2q&cc{c-0ll9Q@|; zBIh<~Z6$?mJL!hxkZom{PCgJ3{YqC9ll|wp}iv!`x+lGpAsF&YvB=JLVv6UaeHv1G!Ys) zB6B%%ayc`g{3bGV77cE~Tt657vWeL=l)^KjbIxhljb_;I=8ZXjhtszAhja(^&i|!{ zRH8427j+(do)BpKh2B9X?>*i7CbpU;ri&)du+&78M*v%DJn)hJpoxL(P7B7vxp=4S z#KZ7=Y#KJG5DQ{az{vcxcxp0a$6^?sMWwNO9LHXyahSP0wGE0D*yBEMke)gTziu8^ zY}aE9u&c-VQ^9+fo$Pp9uGCCo`ik`Fb!zNEs?Hp94D$G9IAQeHRBWDWvafO`?t8t# zSHYv82DSc0{H(9HN8pA}+zqHMrJU2l$5O3b$wx|F@>MV*&x(qfBb%hPuVpvHdeEyA zqt?;6!>qrdTrk(>p1C8ZP3}i}Q>p2yfIrA|esKK|@1( z(QA0^PR{jtZMPMywu1M!Zvr(EwXXU$Gl zS}mXXc;xL~)tSVb>kD@xl!jTSerci#^6w7wJz@m6%5`MrVA^H2af~!R;3K3OZH1m> z>IR&A#`o!}WMD~^OyH3x?N0(@n*3>Di-hw!^xW;Q%;bv`J}E*r*sQK9q09 z2k&aW*L!3d{uO|3d9Oe^kU&esE{@8fh!Akn`(725cYs%Aa~C$fYj)|wo{-?%zO2qD&M;M>pEtIIhyfw&?t(q{Oo5I}#m99TtDczn2h-3BT63E1*7Y*r%H8kF94g$sQOnPfIeNOiGE;umyCut9EgpisU{4t4DSlXE~s=J!Hn*O)rL}}@35||VI zSX*VJ=(;2#D*f;)6v!ONYLSGZ_OJR|cL=hSlwL}8Z-G(5qK$~LXzP*vzLJ-g7aW`9 zB(l@e*2~iT9@BHuaLZzOZx!&XOHzS(Pwe4G<`rm9_-r?(-S-(=QX kF-h#lNtCW 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 diff --git a/main.nf b/main.nf index 42a3a13f..e417dccf 100644 --- a/main.nf +++ b/main.nf @@ -11,66 +11,96 @@ nextflow.enable.dsl = 2 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - GENOME PARAMETER VALUES + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// TODO nf-core: Remove this line if you don't need a FASTA file -// This is an example of how to use getGenomeAttribute() to fetch parameters -// from igenomes.config using `--genome` -params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') +include { ASSEMBLYQC } from './workflows/assemblyqc' +include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_assemblyqc_pipeline' +include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_assemblyqc_pipeline' + +include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_assemblyqc_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - VALIDATE & PRINT PARAMETER SUMMARY + GENOME PARAMETER VALUES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { validateParameters; paramsHelp } from 'plugin/nf-validation' - -// Print help message if needed -if (params.help) { - def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) - def citation = '\n' + WorkflowMain.citation(workflow) + '\n' - def String command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" - log.info logo + paramsHelp(command) + citation + NfcoreTemplate.dashedLine(params.monochrome_logs) - System.exit(0) -} - -// Validate input parameters -if (params.validate_params) { - validateParameters() -} - -WorkflowMain.initialise(workflow, params, log) +// TODO nf-core: Remove this line if you don't need a FASTA file +// This is an example of how to use getGenomeAttribute() to fetch parameters +// from igenomes.config using `--genome` +params.fasta = getGenomeAttribute('fasta') /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - NAMED WORKFLOW FOR PIPELINE + NAMED WORKFLOWS FOR PIPELINE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { ASSEMBLYQC } from './workflows/assemblyqc' - // -// WORKFLOW: Run main plant-food-research-open/assemblyqc analysis pipeline +// WORKFLOW: Run main analysis pipeline depending on type of input // workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { - ASSEMBLYQC () -} + take: + samplesheet // channel: samplesheet read in from --input + + main: + + // + // WORKFLOW: Run pipeline + // + ASSEMBLYQC ( + samplesheet + ) + + emit: + multiqc_report = ASSEMBLYQC.out.multiqc_report // channel: /path/to/multiqc_report.html + +} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - RUN ALL WORKFLOWS + RUN MAIN WORKFLOW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// -// WORKFLOW: Execute a single named workflow for the pipeline -// See: https://github.com/nf-core/rnaseq/issues/619 -// workflow { - PLANTFOODRESEARCHOPEN_ASSEMBLYQC () + + main: + + // + // SUBWORKFLOW: Run initialisation tasks + // + PIPELINE_INITIALISATION ( + params.version, + params.help, + params.validate_params, + params.monochrome_logs, + args, + params.outdir, + params.input + ) + + // + // WORKFLOW: Run main workflow + // + PLANTFOODRESEARCHOPEN_ASSEMBLYQC ( + PIPELINE_INITIALISATION.out.samplesheet + ) + + // + // SUBWORKFLOW: Run completion tasks + // + PIPELINE_COMPLETION ( + params.email, + params.email_on_fail, + params.plaintext_email, + params.outdir, + params.monochrome_logs, + params.hook_url, + PLANTFOODRESEARCHOPEN_ASSEMBLYQC.out.multiqc_report + ) } /* diff --git a/modules.json b/modules.json index f3c7519d..1d7adb5b 100644 --- a/modules.json +++ b/modules.json @@ -5,22 +5,36 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "bba7e362e4afead70653f84d8700588ea28d0f9e", - "installed_by": ["modules"] - }, "fastqc": { "branch": "master", - "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", + "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "4ab13872435962dadc239979554d13709e20bf29", + "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", "installed_by": ["modules"] } } + }, + "subworkflows": { + "nf-core": { + "utils_nextflow_pipeline": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": ["subworkflows"] + }, + "utils_nfcore_pipeline": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": ["subworkflows"] + }, + "utils_nfvalidation_plugin": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": ["subworkflows"] + } + } } } } diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf deleted file mode 100644 index 7a776dbd..00000000 --- a/modules/local/samplesheet_check.nf +++ /dev/null @@ -1,31 +0,0 @@ -process SAMPLESHEET_CHECK { - tag "$samplesheet" - label 'process_single' - - conda "conda-forge::python=3.8.3" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/python:3.8.3' : - 'biocontainers/python:3.8.3' }" - - input: - path samplesheet - - output: - path '*.csv' , emit: csv - path "versions.yml", emit: versions - - when: - task.ext.when == null || task.ext.when - - script: // This script is bundled with the pipeline, in plant-food-research-open/assemblyqc/bin/ - """ - check_samplesheet.py \\ - $samplesheet \\ - samplesheet.valid.csv - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - python: \$(python --version | sed 's/Python //g') - END_VERSIONS - """ -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml deleted file mode 100644 index f0c63f69..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: custom_dumpsoftwareversions -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::multiqc=1.17 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf deleted file mode 100644 index 7685b33c..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ /dev/null @@ -1,24 +0,0 @@ -process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_single' - - // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' : - 'biocontainers/multiqc:1.17--pyhdfd78af_0' }" - - input: - path versions - - output: - path "software_versions.yml" , emit: yml - path "software_versions_mqc.yml", emit: mqc_yml - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - template 'dumpsoftwareversions.py' -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml deleted file mode 100644 index 5f15a5fd..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ /dev/null @@ -1,37 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: custom_dumpsoftwareversions -description: Custom module used to dump software versions within the nf-core pipeline template -keywords: - - custom - - dump - - version -tools: - - custom: - description: Custom module used to dump software versions within the nf-core pipeline template - homepage: https://github.com/nf-core/tools - documentation: https://github.com/nf-core/tools - licence: ["MIT"] -input: - - versions: - type: file - description: YML file containing software versions - pattern: "*.yml" -output: - - yml: - type: file - description: Standard YML file containing software versions - pattern: "software_versions.yml" - - mqc_yml: - type: file - description: MultiQC custom content YML file containing software versions - pattern: "software_versions_mqc.yml" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" -maintainers: - - "@drpatelh" - - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py deleted file mode 100755 index e55b8d43..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env python - - -"""Provide functions to merge multiple versions.yml files.""" - - -import platform -from textwrap import dedent - -import yaml - - -def _make_versions_html(versions): - """Generate a tabular HTML output of all versions for MultiQC.""" - html = [ - dedent( - """\\ - - - - - - - - - - """ - ) - ] - for process, tmp_versions in sorted(versions.items()): - html.append("") - for i, (tool, version) in enumerate(sorted(tmp_versions.items())): - html.append( - dedent( - f"""\\ - - - - - - """ - ) - ) - html.append("") - html.append("
    Process Name Software Version
    {process if (i == 0) else ''}{tool}{version}
    ") - return "\\n".join(html) - - -def main(): - """Load all version files and generate merged output.""" - versions_this_module = {} - versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, - } - - with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - - # aggregate versions by the module name (derived from fully-qualified process name) - versions_by_module = {} - for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - - versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", - } - - versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), - } - - with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) - with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - - with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) - - -if __name__ == "__main__": - main() diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test deleted file mode 100644 index eec1db10..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test +++ /dev/null @@ -1,38 +0,0 @@ -nextflow_process { - - name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" - script "../main.nf" - process "CUSTOM_DUMPSOFTWAREVERSIONS" - tag "modules" - tag "modules_nfcore" - tag "custom" - tag "dumpsoftwareversions" - tag "custom/dumpsoftwareversions" - - test("Should run without failures") { - when { - process { - """ - def tool1_version = ''' - TOOL1: - tool1: 0.11.9 - '''.stripIndent() - - def tool2_version = ''' - TOOL2: - tool2: 1.9 - '''.stripIndent() - - input[0] = Channel.of(tool1_version, tool2_version).collectFile() - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap deleted file mode 100644 index 4274ed57..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap +++ /dev/null @@ -1,27 +0,0 @@ -{ - "Should run without failures": { - "content": [ - { - "0": [ - "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" - ], - "1": [ - "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" - ], - "2": [ - "versions.yml:md5,3843ac526e762117eedf8825b40683df" - ], - "mqc_yml": [ - "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d" - ], - "versions": [ - "versions.yml:md5,3843ac526e762117eedf8825b40683df" - ], - "yml": [ - "software_versions.yml:md5,1c851188476409cda5752ce971b20b58" - ] - } - ], - "timestamp": "2023-11-03T14:43:22.157011" - } -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml deleted file mode 100644 index 405aa24a..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom/dumpsoftwareversions: - - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test index b9e8f926..70edae4d 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -3,24 +3,20 @@ nextflow_process { name "Test Process FASTQC" script "../main.nf" process "FASTQC" + tag "modules" tag "modules_nfcore" tag "fastqc" - test("Single-Read") { + test("sarscov2 single-end [fastq]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = [ + input[0] = Channel.of([ [ id: 'test', single_end:true ], - [ - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) """ } } @@ -28,82 +24,189 @@ nextflow_process { then { assertAll ( { assert process.success }, + // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. // looks like this:

    // https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 - { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" }, - { assert path(process.out.html.get(0).get(1)).getText().contains("File typeConventional base calls") }, - { assert snapshot(process.out.versions).match("versions") }, - { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" } + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_single") } + ) + } + } + + test("sarscov2 paired-end [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, + { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, + { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, + { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, + { assert path(process.out.html[0][1][0]).text.contains("File typeConventional base calls") }, + { assert path(process.out.html[0][1][1]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_paired") } + ) + } + } + + test("sarscov2 interleaved [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_interleaved") } ) } } -// TODO -// // -// // Test with paired-end data -// // -// workflow test_fastqc_paired_end { -// input = [ -// [id: 'test', single_end: false], // meta map -// [ -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) -// ] -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with interleaved data -// // -// workflow test_fastqc_interleaved { -// input = [ -// [id: 'test', single_end: false], // meta map -// file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with bam data -// // -// workflow test_fastqc_bam { -// input = [ -// [id: 'test', single_end: false], // meta map -// file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with multiple samples -// // -// workflow test_fastqc_multiple { -// input = [ -// [id: 'test', single_end: false], // meta map -// [ -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true), -// file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) -// ] -// ] - -// FASTQC ( input ) -// } - -// // -// // Test with custom prefix -// // -// workflow test_fastqc_custom_prefix { -// input = [ -// [ id:'mysample', single_end:true ], // meta map -// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) -// ] - -// FASTQC ( input ) -// } + + test("sarscov2 paired-end [bam]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_bam") } + ) + } + } + + test("sarscov2 multiple [fastq]") { + + when { + process { + """ + input[0] = Channel.of([ + [id: 'test', single_end: false], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_2.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" }, + { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" }, + { assert process.out.html[0][1][2] ==~ ".*/test_3_fastqc.html" }, + { assert process.out.html[0][1][3] ==~ ".*/test_4_fastqc.html" }, + { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" }, + { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" }, + { assert process.out.zip[0][1][2] ==~ ".*/test_3_fastqc.zip" }, + { assert process.out.zip[0][1][3] ==~ ".*/test_4_fastqc.zip" }, + { assert path(process.out.html[0][1][0]).text.contains("File typeConventional base calls") }, + { assert path(process.out.html[0][1][1]).text.contains("File typeConventional base calls") }, + { assert path(process.out.html[0][1][2]).text.contains("File typeConventional base calls") }, + { assert path(process.out.html[0][1][3]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_multiple") } + ) + } + } + + test("sarscov2 custom_prefix") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'mysample', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + + { assert process.out.html[0][1] ==~ ".*/mysample_fastqc.html" }, + { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" }, + { assert path(process.out.html[0][1]).text.contains("File typeConventional base calls") }, + + { assert snapshot(process.out.versions).match("fastqc_versions_custom_prefix") } + ) + } + } + + test("sarscov2 single-end [fastq] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id: 'test', single_end:true ], + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out.html.collect { file(it[1]).getName() } + + process.out.zip.collect { file(it[1]).getName() } + + process.out.versions ).match("fastqc_stub") } + ) + } + } + } diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap index 636a32ce..86f7c311 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test.snap +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -1,10 +1,88 @@ { - "versions": { + "fastqc_versions_interleaved": { "content": [ [ "versions.yml:md5,e1cc25ca8af856014824abd842e93978" ] ], - "timestamp": "2023-10-09T23:40:54+0000" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:07.293713" + }, + "fastqc_stub": { + "content": [ + [ + "test.html", + "test.zip", + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:31:01.425198" + }, + "fastqc_versions_multiple": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:55.797907" + }, + "fastqc_versions_bam": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:40:26.795862" + }, + "fastqc_versions_single": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:27.043675" + }, + "fastqc_versions_paired": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:39:47.584191" + }, + "fastqc_versions_custom_prefix": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-01-31T17:41:14.576531" } } \ No newline at end of file diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index bc0bdb5b..ca39fb67 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.18 + - bioconda::multiqc=1.21 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 00cc48d2..47ac352f 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.18--pyhdfd78af_0' : - 'biocontainers/multiqc:1.18--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.21--pyhdfd78af_0' : + 'biocontainers/multiqc:1.21--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" @@ -43,7 +43,7 @@ process MULTIQC { stub: """ - touch multiqc_data + mkdir multiqc_data touch multiqc_plots touch multiqc_report.html diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index f1aa660e..45a9bc35 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,4 +1,3 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: multiqc description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index c2dad217..f1c4242e 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -3,19 +3,17 @@ nextflow_process { name "Test Process MULTIQC" script "../main.nf" process "MULTIQC" + tag "modules" tag "modules_nfcore" tag "multiqc" - test("MULTIQC: FASTQC") { + test("sarscov2 single-end [fastqc]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) input[1] = [] input[2] = [] input[3] = [] @@ -26,23 +24,20 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report.get(0)).exists() }, - { assert path(process.out.data.get(0)).exists() }, - { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("multiqc_versions_single") } ) } } - test("MULTIQC: FASTQC and a config file") { + test("sarscov2 single-end [fastqc] [config]") { when { - params { - outdir = "$outputDir" - } process { """ - input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) input[2] = [] input[3] = [] @@ -53,9 +48,35 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert path(process.out.report.get(0)).exists() }, - { assert path(process.out.data.get(0)).exists() }, - { assert path(process.out.versions.get(0)).getText().contains("multiqc") } + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("multiqc_versions_config") } + ) + } + } + + test("sarscov2 single-end [fastqc] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.report.collect { file(it).getName() } + + process.out.data.collect { file(it).getName() } + + process.out.plots.collect { file(it).getName() } + + process.out.versions ).match("multiqc_stub") } ) } diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap new file mode 100644 index 00000000..bfebd802 --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -0,0 +1,41 @@ +{ + "multiqc_versions_single": { + "content": [ + [ + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:48:55.657331" + }, + "multiqc_stub": { + "content": [ + [ + "multiqc_report.html", + "multiqc_data", + "multiqc_plots", + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:49:49.071937" + }, + "multiqc_versions_config": { + "content": [ + [ + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:49:25.457567" + } +} \ No newline at end of file diff --git a/nextflow.config b/nextflow.config index 3db97ece..c89ce932 100644 --- a/nextflow.config +++ b/nextflow.config @@ -15,10 +15,7 @@ params { // References genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' - igenomes_ignore = false - - - // MultiQC options + igenomes_ignore = false// MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null @@ -44,7 +41,6 @@ params { config_profile_contact = null config_profile_url = null - // Max resource options // Defaults only, expecting to be overwritten max_memory = '128.GB' @@ -229,12 +225,12 @@ dag { manifest { name = 'plant-food-research-open/assemblyqc' - author = """Usman Rashid""" + author = """Usman Rashid, Ken Smith, Ross Crowhurst, Chen Wu, Marcus Davy""" homePage = 'https://github.com/plant-food-research-open/assemblyqc' - description = """AssemblyQC is a NextFlow pipeline which evaluates assembly quality with well-established tools and presents the results in a unified html report.""" + description = """A NextFlow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '1.4dev' + version = '2.0.0' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 1a13c92b..dda3a0f5 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -2,7 +2,7 @@ "$schema": "http://json-schema.org/draft-07/schema", "$id": "https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/master/nextflow_schema.json", "title": "plant-food-research-open/assemblyqc pipeline parameters", - "description": "AssemblyQC is a NextFlow pipeline which evaluates assembly quality with well-established tools and presents the results in a unified html report.", + "description": "A NextFlow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report.", "type": "object", "definitions": { "input_output_options": { @@ -16,6 +16,7 @@ "type": "string", "format": "file-path", "exists": true, + "schema": "assets/schema_input.json", "mimetype": "text/csv", "pattern": "^\\S+\\.csv$", "description": "Path to comma-separated file containing information about the samples in the experiment.", diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 984c0910..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Config file for Python. Mostly used to configure linting of bin/check_samplesheet.py with Ruff. -# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.ruff] -line-length = 120 -target-version = "py38" -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] -cache-dir = "~/.cache/ruff" - -[tool.ruff.isort] -known-first-party = ["nf_core"] - -[tool.ruff.per-file-ignores] -"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf deleted file mode 100644 index 0aecf87f..00000000 --- a/subworkflows/local/input_check.nf +++ /dev/null @@ -1,44 +0,0 @@ -// -// Check input samplesheet and get read channels -// - -include { SAMPLESHEET_CHECK } from '../../modules/local/samplesheet_check' - -workflow INPUT_CHECK { - take: - samplesheet // file: /path/to/samplesheet.csv - - main: - SAMPLESHEET_CHECK ( samplesheet ) - .csv - .splitCsv ( header:true, sep:',' ) - .map { create_fastq_channel(it) } - .set { reads } - - emit: - reads // channel: [ val(meta), [ reads ] ] - versions = SAMPLESHEET_CHECK.out.versions // channel: [ versions.yml ] -} - -// Function to get list of [ meta, [ fastq_1, fastq_2 ] ] -def create_fastq_channel(LinkedHashMap row) { - // create meta map - def meta = [:] - meta.id = row.sample - meta.single_end = row.single_end.toBoolean() - - // add path(s) of the fastq file(s) to the meta map - def fastq_meta = [] - if (!file(row.fastq_1).exists()) { - exit 1, "ERROR: Please check input samplesheet -> Read 1 FastQ file does not exist!\n${row.fastq_1}" - } - if (meta.single_end) { - fastq_meta = [ meta, [ file(row.fastq_1) ] ] - } else { - if (!file(row.fastq_2).exists()) { - exit 1, "ERROR: Please check input samplesheet -> Read 2 FastQ file does not exist!\n${row.fastq_2}" - } - fastq_meta = [ meta, [ file(row.fastq_1), file(row.fastq_2) ] ] - } - return fastq_meta -} diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf new file mode 100644 index 00000000..ac17938f --- /dev/null +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -0,0 +1,255 @@ +// +// Subworkflow with functionality specific to the plant-food-research-open/assemblyqc pipeline +// + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { UTILS_NFVALIDATION_PLUGIN } from '../../nf-core/utils_nfvalidation_plugin' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { fromSamplesheet } from 'plugin/nf-validation' +include { UTILS_NEXTFLOW_PIPELINE } from '../../nf-core/utils_nextflow_pipeline' +include { completionEmail } from '../../nf-core/utils_nfcore_pipeline' +include { completionSummary } from '../../nf-core/utils_nfcore_pipeline' +include { dashedLine } from '../../nf-core/utils_nfcore_pipeline' +include { nfCoreLogo } from '../../nf-core/utils_nfcore_pipeline' +include { imNotification } from '../../nf-core/utils_nfcore_pipeline' +include { UTILS_NFCORE_PIPELINE } from '../../nf-core/utils_nfcore_pipeline' +include { workflowCitation } from '../../nf-core/utils_nfcore_pipeline' + +/* +======================================================================================== + SUBWORKFLOW TO INITIALISE PIPELINE +======================================================================================== +*/ + +workflow PIPELINE_INITIALISATION { + + take: + version // boolean: Display version and exit + help // boolean: Display help text + validate_params // boolean: Boolean whether to validate parameters against the schema at runtime + monochrome_logs // boolean: Do not use coloured log outputs + nextflow_cli_args // array: List of positional nextflow CLI args + outdir // string: The output directory where the results will be saved + input // string: Path to input samplesheet + + main: + + ch_versions = Channel.empty() + + // + // Print version and exit if required and dump pipeline parameters to JSON file + // + UTILS_NEXTFLOW_PIPELINE ( + version, + true, + outdir, + workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1 + ) + + // + // Validate parameters and generate parameter summary to stdout + // + pre_help_text = nfCoreLogo(monochrome_logs) + post_help_text = '\n' + workflowCitation() + '\n' + dashedLine(monochrome_logs) + def String workflow_command = "nextflow run ${workflow.manifest.name} -profile --input samplesheet.csv --outdir " + UTILS_NFVALIDATION_PLUGIN ( + help, + workflow_command, + pre_help_text, + post_help_text, + validate_params, + "nextflow_schema.json" + ) + + // + // Check config provided to the pipeline + // + UTILS_NFCORE_PIPELINE ( + nextflow_cli_args + ) + // + // Custom validation for pipeline parameters + // + validateInputParameters() + + // + // Create channel from input file provided through params.input + // + Channel + .fromSamplesheet("input") + .map { + meta, fastq_1, fastq_2 -> + if (!fastq_2) { + return [ meta.id, meta + [ single_end:true ], [ fastq_1 ] ] + } else { + return [ meta.id, meta + [ single_end:false ], [ fastq_1, fastq_2 ] ] + } + } + .groupTuple() + .map { + validateInputSamplesheet(it) + } + .map { + meta, fastqs -> + return [ meta, fastqs.flatten() ] + } + .set { ch_samplesheet } + + emit: + samplesheet = ch_samplesheet + versions = ch_versions +} + +/* +======================================================================================== + SUBWORKFLOW FOR PIPELINE COMPLETION +======================================================================================== +*/ + +workflow PIPELINE_COMPLETION { + + take: + email // string: email address + email_on_fail // string: email address sent on pipeline failure + plaintext_email // boolean: Send plain-text email instead of HTML + outdir // path: Path to output directory where results will be published + monochrome_logs // boolean: Disable ANSI colour codes in log output + hook_url // string: hook URL for notifications + multiqc_report // string: Path to MultiQC report + + main: + + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + + // + // Completion email and summary + // + workflow.onComplete { + if (email || email_on_fail) { + completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs, multiqc_report.toList()) + } + + completionSummary(monochrome_logs) + + if (hook_url) { + imNotification(summary_params, hook_url) + } + } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ +// +// Check and validate pipeline parameters +// +def validateInputParameters() { + genomeExistsError() +} + +// +// Validate channels from input samplesheet +// +def validateInputSamplesheet(input) { + def (metas, fastqs) = input[1..2] + + // Check that multiple runs of the same sample are of the same datatype i.e. single-end / paired-end + def endedness_ok = metas.collect{ it.single_end }.unique().size == 1 + if (!endedness_ok) { + error("Please check input samplesheet -> Multiple runs of a sample must be of the same datatype i.e. single-end or paired-end: ${metas[0].id}") + } + + return [ metas[0], fastqs ] +} +// +// Get attribute from genome config file e.g. fasta +// +def getGenomeAttribute(attribute) { + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey(attribute)) { + return params.genomes[ params.genome ][ attribute ] + } + } + return null +} + +// +// Exit pipeline if incorrect --genome key provided +// +def genomeExistsError() { + if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { + def error_string = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + + " Currently, the available genome keys are:\n" + + " ${params.genomes.keySet().join(", ")}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + error(error_string) + } +} + +// +// Generate methods description for MultiQC +// +def toolCitationText() { + // TODO nf-core: Optionally add in-text citation tools to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "Tool (Foo et al. 2023)" : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def citation_text = [ + "Tools used in the workflow included:", + "FastQC (Andrews 2010),", + "MultiQC (Ewels et al. 2016)", + "." + ].join(' ').trim() + + return citation_text +} + +def toolBibliographyText() { + // TODO nf-core: Optionally add bibliographic entries to this list. + // Can use ternary operators to dynamically construct based conditions, e.g. params["run_xyz"] ? "
  • Author (2023) Pub name, Journal, DOI
  • " : "", + // Uncomment function in methodsDescriptionText to render in MultiQC report + def reference_text = [ + "
  • Andrews S, (2010) FastQC, URL: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/).
  • ", + "
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: /10.1093/bioinformatics/btw354
  • " + ].join(' ').trim() + + return reference_text +} + +def methodsDescriptionText(mqc_methods_yaml) { + // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + def meta = [:] + meta.workflow = workflow.toMap() + meta["manifest_map"] = workflow.manifest.toMap() + + // Pipeline DOI + meta["doi_text"] = meta.manifest_map.doi ? "(doi:
    ${meta.manifest_map.doi})" : "" + meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + + // Tool references + meta["tool_citations"] = "" + meta["tool_bibliography"] = "" + + // TODO nf-core: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled! + // meta["tool_citations"] = toolCitationText().replaceAll(", \\.", ".").replaceAll("\\. \\.", ".").replaceAll(", \\.", ".") + // meta["tool_bibliography"] = toolBibliographyText() + + + def methods_text = mqc_methods_yaml.text + + def engine = new groovy.text.SimpleTemplateEngine() + def description_html = engine.createTemplate(methods_text).make(meta) + + return description_html.toString() +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf new file mode 100644 index 00000000..ac31f28f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -0,0 +1,126 @@ +// +// Subworkflow with functionality that may be useful for any Nextflow pipeline +// + +import org.yaml.snakeyaml.Yaml +import groovy.json.JsonOutput +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NEXTFLOW_PIPELINE { + + take: + print_version // boolean: print version + dump_parameters // boolean: dump parameters + outdir // path: base directory used to publish pipeline results + check_conda_channels // boolean: check conda channels + + main: + + // + // Print workflow version and exit on --version + // + if (print_version) { + log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + System.exit(0) + } + + // + // Dump pipeline parameters to a JSON file + // + if (dump_parameters && outdir) { + dumpParametersToJSON(outdir) + } + + // + // When running with Conda, warn if channels have not been set-up appropriately + // + if (check_conda_channels) { + checkCondaChannels() + } + + emit: + dummy_emit = true +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Generate version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Dump pipeline parameters to a JSON file +// +def dumpParametersToJSON(outdir) { + def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = JsonOutput.toJson(params) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() +} + +// +// When running with -profile conda, warn if channels have not been set-up appropriately +// +def checkCondaChannels() { + Yaml parser = new Yaml() + def channels = [] + try { + def config = parser.load("conda config --show channels".execute().text) + channels = config.channels + } catch(NullPointerException | IOException e) { + log.warn "Could not verify conda channel configuration." + return + } + + // Check that all channels are present + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean + + // Check that they are in the right order + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } + + if (channels_missing | channel_priority_violation) { + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " There is a problem with your Conda configuration!\n\n" + + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml new file mode 100644 index 00000000..e5c3a0a8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NEXTFLOW_PIPELINE" +description: Subworkflow with functionality that may be useful for any Nextflow pipeline +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - print_version: + type: boolean + description: | + Print the version of the pipeline and exit + - dump_parameters: + type: boolean + description: | + Dump the parameters of the pipeline to a JSON file + - output_directory: + type: directory + description: Path to output dir to write JSON file to. + pattern: "results/" + - check_conda_channel: + type: boolean + description: | + Check if the conda channel priority is correct. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" + - "@drpatelh" +maintainers: + - "@adamrtalbot" + - "@drpatelh" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..68718e4f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test @@ -0,0 +1,54 @@ + +nextflow_function { + + name "Test Functions" + script "subworkflows/nf-core/utils_nextflow_pipeline/main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Test Function getWorkflowVersion") { + + function "getWorkflowVersion" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dumpParametersToJSON") { + + function "dumpParametersToJSON" + + when { + function { + """ + // define inputs of the function here. Example: + input[0] = "$outputDir" + """.stripIndent() + } + } + + then { + assertAll( + { assert function.success } + ) + } + } + + test("Test Function checkCondaChannels") { + + function "checkCondaChannels" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..e3f0baf4 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,20 @@ +{ + "Test Function getWorkflowVersion": { + "content": [ + "v9.9.9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:05.308243" + }, + "Test Function checkCondaChannels": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:12.425833" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..ca964ce8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,111 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NEXTFLOW_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + workflow "UTILS_NEXTFLOW_PIPELINE" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Should run no inputs") { + + when { + workflow { + """ + print_version = false + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should print version") { + + when { + workflow { + """ + print_version = true + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.stdout.contains("nextflow_workflow v9.9.9") } + ) + } + } + + test("Should dump params") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = 'results' + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should not create params JSON if no output directory") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = null + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml new file mode 100644 index 00000000..f8476112 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nextflow_pipeline: + - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf new file mode 100644 index 00000000..a8b55d6f --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -0,0 +1,440 @@ +// +// Subworkflow with utility functions specific to the nf-core pipeline template +// + +import org.yaml.snakeyaml.Yaml +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFCORE_PIPELINE { + + take: + nextflow_cli_args + + main: + valid_config = checkConfigProvided() + checkProfileProvided(nextflow_cli_args) + + emit: + valid_config +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Warn if a -profile or Nextflow config has not been provided to run the pipeline +// +def checkConfigProvided() { + valid_config = true + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " + valid_config = false + } + return valid_config +} + +// +// Exit pipeline if --profile contains spaces +// +def checkProfileProvided(nextflow_cli_args) { + if (workflow.profile.endsWith(',')) { + error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } + if (nextflow_cli_args[0]) { + log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } +} + +// +// Citation string for pipeline +// +def workflowCitation() { + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + + "* The pipeline\n" + + " ${workflow.manifest.doi}\n\n" + + "* The nf-core framework\n" + + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + + "* Software dependencies\n" + + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" +} + +// +// Generate workflow version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Get software versions for pipeline +// +def processVersionsFromYAML(yaml_file) { + Yaml yaml = new Yaml() + versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + return yaml.dumpAsMap(versions).trim() +} + +// +// Get workflow version for pipeline +// +def workflowVersionToYAML() { + return """ + Workflow: + $workflow.manifest.name: ${getWorkflowVersion()} + Nextflow: $workflow.nextflow.version + """.stripIndent().trim() +} + +// +// Get channel of software versions used in pipeline in YAML format +// +def softwareVersionsToYAML(ch_versions) { + return ch_versions + .unique() + .map { processVersionsFromYAML(it) } + .unique() + .mix(Channel.of(workflowVersionToYAML())) +} + +// +// Get workflow summary for MultiQC +// +def paramsSummaryMultiqc(summary_params) { + def summary_section = '' + for (group in summary_params.keySet()) { + def group_params = summary_params.get(group) // This gets the parameters of that particular group + if (group_params) { + summary_section += "

    $group

    \n" + summary_section += "
    \n" + for (param in group_params.keySet()) { + summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" + } + summary_section += "
    \n" + } + } + + String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" + + return yaml_file_text +} + +// +// nf-core logo +// +def nfCoreLogo(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + String.format( + """\n + ${dashedLine(monochrome_logs)} + ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} + ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} + ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} + ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} + ${colors.green}`._,._,\'${colors.reset} + ${colors.purple} ${workflow.manifest.name} ${getWorkflowVersion()}${colors.reset} + ${dashedLine(monochrome_logs)} + """.stripIndent() + ) +} + +// +// Return dashed line +// +def dashedLine(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + return "-${colors.dim}----------------------------------------------------${colors.reset}-" +} + +// +// ANSII colours used for terminal logging +// +def logColours(monochrome_logs=true) { + Map colorcodes = [:] + + // Reset / Meta + colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" + colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" + colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" + colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" + colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" + colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" + colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" + + // Regular Colors + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + + // Bold + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + + // Underline + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + + // High Intensity + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + + // Bold High Intensity + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + + return colorcodes +} + +// +// Attach the multiqc report to email +// +def attachMultiqcReport(multiqc_report) { + def mqc_report = null + try { + if (workflow.success) { + mqc_report = multiqc_report.getVal() + if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { + if (mqc_report.size() > 1) { + log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + } + mqc_report = mqc_report[0] + } + } + } catch (all) { + if (multiqc_report) { + log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + } + } + return mqc_report +} + +// +// Construct and send completion email +// +def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { + + // Set up the e-mail variables + def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + if (!workflow.success) { + subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + } + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['Date Started'] = workflow.start + misc_fields['Date Completed'] = workflow.complete + misc_fields['Pipeline script file path'] = workflow.scriptFile + misc_fields['Pipeline script hash ID'] = workflow.scriptId + if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository + if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId + if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build + misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp + + def email_fields = [:] + email_fields['version'] = getWorkflowVersion() + email_fields['runName'] = workflow.runName + email_fields['success'] = workflow.success + email_fields['dateComplete'] = workflow.complete + email_fields['duration'] = workflow.duration + email_fields['exitStatus'] = workflow.exitStatus + email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + email_fields['errorReport'] = (workflow.errorReport ?: 'None') + email_fields['commandLine'] = workflow.commandLine + email_fields['projectDir'] = workflow.projectDir + email_fields['summary'] = summary << misc_fields + + // On success try attach the multiqc report + def mqc_report = attachMultiqcReport(multiqc_report) + + // Check if we are only sending emails on failure + def email_address = email + if (!email && email_on_fail && !workflow.success) { + email_address = email_on_fail + } + + // Render the TXT template + def engine = new groovy.text.GStringTemplateEngine() + def tf = new File("${workflow.projectDir}/assets/email_template.txt") + def txt_template = engine.createTemplate(tf).make(email_fields) + def email_txt = txt_template.toString() + + // Render the HTML template + def hf = new File("${workflow.projectDir}/assets/email_template.html") + def html_template = engine.createTemplate(hf).make(email_fields) + def email_html = html_template.toString() + + // Render the sendmail template + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit + def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") + def sendmail_template = engine.createTemplate(sf).make(smail_fields) + def sendmail_html = sendmail_template.toString() + + // Send the HTML e-mail + Map colors = logColours(monochrome_logs) + if (email_address) { + try { + if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } + [ 'sendmail', '-t' ].execute() << sendmail_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" + } catch (all) { + // Catch failures and try with plaintext + def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + mail_cmd.execute() << email_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + } + } + + // Write summary e-mail HTML to a file + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") + output_hf.withWriter { w -> w << email_html } + FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") + output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() +} + +// +// Print pipeline summary on completion +// +def completionSummary(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + if (workflow.success) { + if (workflow.stats.ignoredCount == 0) { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + } + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } +} + +// +// Construct and send a notification to a web server as JSON e.g. Microsoft Teams and Slack +// +def imNotification(summary_params, hook_url) { + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = getWorkflowVersion() + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + // Different JSON depending on the service provider + // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format + def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" + def hf = new File("${workflow.projectDir}/assets/${json_path}") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml new file mode 100644 index 00000000..d08d2434 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml @@ -0,0 +1,24 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFCORE_PIPELINE" +description: Subworkflow with utility functions specific to the nf-core pipeline template +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - nextflow_cli_args: + type: list + description: | + Nextflow CLI positional arguments +output: + - success: + type: boolean + description: | + Dummy output to indicate success +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..1dc317f8 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test @@ -0,0 +1,134 @@ + +nextflow_function { + + name "Test Functions" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Test Function checkConfigProvided") { + + function "checkConfigProvided" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function checkProfileProvided") { + + function "checkProfileProvided" + + when { + function { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function workflowCitation") { + + function "workflowCitation" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function nfCoreLogo") { + + function "nfCoreLogo" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dashedLine") { + + function "dashedLine" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function without logColours") { + + function "logColours" + + when { + function { + """ + input[0] = true + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function with logColours") { + function "logColours" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..1037232c --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,166 @@ +{ + "Test Function checkProfileProvided": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:03.360873" + }, + "Test Function checkConfigProvided": { + "content": [ + true + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:59.729647" + }, + "Test Function nfCoreLogo": { + "content": [ + "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:10.562934" + }, + "Test Function workflowCitation": { + "content": [ + "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:07.019761" + }, + "Test Function without logColours": { + "content": [ + { + "reset": "", + "bold": "", + "dim": "", + "underlined": "", + "blink": "", + "reverse": "", + "hidden": "", + "black": "", + "red": "", + "green": "", + "yellow": "", + "blue": "", + "purple": "", + "cyan": "", + "white": "", + "bblack": "", + "bred": "", + "bgreen": "", + "byellow": "", + "bblue": "", + "bpurple": "", + "bcyan": "", + "bwhite": "", + "ublack": "", + "ured": "", + "ugreen": "", + "uyellow": "", + "ublue": "", + "upurple": "", + "ucyan": "", + "uwhite": "", + "iblack": "", + "ired": "", + "igreen": "", + "iyellow": "", + "iblue": "", + "ipurple": "", + "icyan": "", + "iwhite": "", + "biblack": "", + "bired": "", + "bigreen": "", + "biyellow": "", + "biblue": "", + "bipurple": "", + "bicyan": "", + "biwhite": "" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:17.969323" + }, + "Test Function dashedLine": { + "content": [ + "-\u001b[2m----------------------------------------------------\u001b[0m-" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:14.366181" + }, + "Test Function with logColours": { + "content": [ + { + "reset": "\u001b[0m", + "bold": "\u001b[1m", + "dim": "\u001b[2m", + "underlined": "\u001b[4m", + "blink": "\u001b[5m", + "reverse": "\u001b[7m", + "hidden": "\u001b[8m", + "black": "\u001b[0;30m", + "red": "\u001b[0;31m", + "green": "\u001b[0;32m", + "yellow": "\u001b[0;33m", + "blue": "\u001b[0;34m", + "purple": "\u001b[0;35m", + "cyan": "\u001b[0;36m", + "white": "\u001b[0;37m", + "bblack": "\u001b[1;30m", + "bred": "\u001b[1;31m", + "bgreen": "\u001b[1;32m", + "byellow": "\u001b[1;33m", + "bblue": "\u001b[1;34m", + "bpurple": "\u001b[1;35m", + "bcyan": "\u001b[1;36m", + "bwhite": "\u001b[1;37m", + "ublack": "\u001b[4;30m", + "ured": "\u001b[4;31m", + "ugreen": "\u001b[4;32m", + "uyellow": "\u001b[4;33m", + "ublue": "\u001b[4;34m", + "upurple": "\u001b[4;35m", + "ucyan": "\u001b[4;36m", + "uwhite": "\u001b[4;37m", + "iblack": "\u001b[0;90m", + "ired": "\u001b[0;91m", + "igreen": "\u001b[0;92m", + "iyellow": "\u001b[0;93m", + "iblue": "\u001b[0;94m", + "ipurple": "\u001b[0;95m", + "icyan": "\u001b[0;96m", + "iwhite": "\u001b[0;97m", + "biblack": "\u001b[1;90m", + "bired": "\u001b[1;91m", + "bigreen": "\u001b[1;92m", + "biyellow": "\u001b[1;93m", + "biblue": "\u001b[1;94m", + "bipurple": "\u001b[1;95m", + "bicyan": "\u001b[1;96m", + "biwhite": "\u001b[1;97m" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:21.714424" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..8940d32d --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,29 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFCORE_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + workflow "UTILS_NFCORE_PIPELINE" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Should run without failures") { + + when { + workflow { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap new file mode 100644 index 00000000..859d1030 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -0,0 +1,19 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + true + ], + "valid_config": [ + true + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:25.726491" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml new file mode 100644 index 00000000..ac8523c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfcore_pipeline: + - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf new file mode 100644 index 00000000..2585b65d --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -0,0 +1,62 @@ +// +// Subworkflow that uses the nf-validation plugin to render help text and parameter summary +// + +/* +======================================================================================== + IMPORT NF-VALIDATION PLUGIN +======================================================================================== +*/ + +include { paramsHelp } from 'plugin/nf-validation' +include { paramsSummaryLog } from 'plugin/nf-validation' +include { validateParameters } from 'plugin/nf-validation' + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFVALIDATION_PLUGIN { + + take: + print_help // boolean: print help + workflow_command // string: default commmand used to run pipeline + pre_help_text // string: string to be printed before help text and summary log + post_help_text // string: string to be printed after help text and summary log + validate_params // boolean: validate parameters + schema_filename // path: JSON schema file, null to use default value + + main: + + log.debug "Using schema file: ${schema_filename}" + + // Default values for strings + pre_help_text = pre_help_text ?: '' + post_help_text = post_help_text ?: '' + workflow_command = workflow_command ?: '' + + // + // Print help message if needed + // + if (print_help) { + log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + System.exit(0) + } + + // + // Print parameter summary to stdout + // + log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + + // + // Validate parameters relative to the parameter JSON schema + // + if (validate_params){ + validateParameters(parameters_schema: schema_filename) + } + + emit: + dummy_emit = true +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml new file mode 100644 index 00000000..3d4a6b04 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFVALIDATION_PLUGIN" +description: Use nf-validation to initiate and validate a pipeline +keywords: + - utility + - pipeline + - initialise + - validation +components: [] +input: + - print_help: + type: boolean + description: | + Print help message and exit + - workflow_command: + type: string + description: | + The command to run the workflow e.g. "nextflow run main.nf" + - pre_help_text: + type: string + description: | + Text to print before the help message + - post_help_text: + type: string + description: | + Text to print after the help message + - validate_params: + type: boolean + description: | + Validate the parameters and error if invalid. + - schema_filename: + type: string + description: | + The filename of the schema to validate against. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test new file mode 100644 index 00000000..5784a33f --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -0,0 +1,200 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFVALIDATION_PLUGIN" + script "../main.nf" + workflow "UTILS_NFVALIDATION_PLUGIN" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "plugin/nf-validation" + tag "'plugin/nf-validation'" + tag "utils_nfvalidation_plugin" + tag "subworkflows/utils_nfvalidation_plugin" + + test("Should run nothing") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should run help") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with command") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with extra text") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = "pre-help-text" + post_help_text = "post-help-text" + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('pre-help-text') } }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } }, + { assert workflow.stdout.any { it.contains('post-help-text') } } + ) + } + } + + test("Should validate params") { + + when { + + params { + monochrome_logs = true + test_data = '' + outdir = 1 + } + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = true + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.failed }, + { assert workflow.stdout.any { it.contains('ERROR ~ ERROR: Validation of pipeline parameters failed!') } } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json new file mode 100644 index 00000000..7626c1c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json @@ -0,0 +1,96 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/./master/nextflow_schema.json", + "title": ". pipeline parameters", + "description": "", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": ["outdir"], + "properties": { + "validate_params": { + "type": "boolean", + "description": "Validate parameters?", + "default": true, + "hidden": true + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "test_data_base": { + "type": "string", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/modules", + "description": "Base for test data directory", + "hidden": true + }, + "test_data": { + "type": "string", + "description": "Fake test data param", + "hidden": true + } + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "logo": { + "type": "boolean", + "default": true, + "description": "Display nf-core logo in console output.", + "fa_icon": "fas fa-image", + "hidden": true + }, + "singularity_pull_docker_container": { + "type": "boolean", + "description": "Pull Singularity container from Docker?", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Use monochrome_logs", + "hidden": true + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ] +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml new file mode 100644 index 00000000..60b1cfff --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfvalidation_plugin: + - subworkflows/nf-core/utils_nfvalidation_plugin/** diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index db0a1dd5..42da5dd5 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -1,54 +1,15 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - PRINT PARAMS SUMMARY + IMPORT MODULES / SUBWORKFLOWS / FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { paramsSummaryLog; paramsSummaryMap } from 'plugin/nf-validation' - -def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) -def citation = '\n' + WorkflowMain.citation(workflow) + '\n' -def summary_params = paramsSummaryMap(workflow) - -// Print parameter summary log to screen -log.info logo + paramsSummaryLog(workflow) + citation - -WorkflowAssemblyqc.initialise(params, log) - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - CONFIG FILES -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() -ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() -ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT LOCAL MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -// -// SUBWORKFLOW: Consisting of a mix of local and nf-core/modules -// -include { INPUT_CHECK } from '../subworkflows/local/input_check' - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT NF-CORE MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -// -// MODULE: Installed directly from nf-core/modules -// -include { FASTQC } from '../modules/nf-core/fastqc/main' -include { MULTIQC } from '../modules/nf-core/multiqc/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' +include { FASTQC } from '../modules/nf-core/fastqc/main' +include { MULTIQC } from '../modules/nf-core/multiqc/main' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -56,50 +17,67 @@ include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoft ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// Info required for completion email and summary -def multiqc_report = [] - workflow ASSEMBLYQC { - ch_versions = Channel.empty() + take: + ch_samplesheet // channel: samplesheet read in from --input - // - // SUBWORKFLOW: Read in samplesheet, validate and stage input files - // - INPUT_CHECK ( - file(params.input) - ) - ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) - // TODO: OPTIONAL, you can use nf-validation plugin to create an input channel from the samplesheet with Channel.fromSamplesheet("input") - // See the documentation https://nextflow-io.github.io/nf-validation/samplesheets/fromSamplesheet/ - // ! There is currently no tooling to help you write a sample sheet schema + main: + + ch_versions = Channel.empty() + ch_multiqc_files = Channel.empty() // // MODULE: Run FastQC // FASTQC ( - INPUT_CHECK.out.reads + ch_samplesheet ) + ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}) ch_versions = ch_versions.mix(FASTQC.out.versions.first()) - CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique().collectFile(name: 'collated_versions.yml') - ) + // + // Collate and save software versions + // + softwareVersionsToYAML(ch_versions) + .collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true + ).set { ch_collated_versions } // // MODULE: MultiQC // - workflow_summary = WorkflowAssemblyqc.paramsSummaryMultiqc(workflow, summary_params) - ch_workflow_summary = Channel.value(workflow_summary) - - methods_description = WorkflowAssemblyqc.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description, params) - ch_methods_description = Channel.value(methods_description) - - ch_multiqc_files = Channel.empty() - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) - ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) + ch_multiqc_config = Channel.fromPath( + "$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? + Channel.fromPath(params.multiqc_config, checkIfExists: true) : + Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? + Channel.fromPath(params.multiqc_logo, checkIfExists: true) : + Channel.empty() + + summary_params = paramsSummaryMap( + workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? + file(params.multiqc_methods_description, checkIfExists: true) : + file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value( + methodsDescriptionText(ch_multiqc_custom_methods_description)) + + ch_multiqc_files = ch_multiqc_files.mix( + ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix( + ch_methods_description.collectFile( + name: 'methods_description_mqc.yaml', + sort: false + ) + ) MULTIQC ( ch_multiqc_files.collect(), @@ -107,24 +85,10 @@ workflow ASSEMBLYQC { ch_multiqc_custom_config.toList(), ch_multiqc_logo.toList() ) - multiqc_report = MULTIQC.out.report.toList() -} - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - COMPLETION EMAIL AND SUMMARY -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ -workflow.onComplete { - if (params.email || params.email_on_fail) { - NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) - } - NfcoreTemplate.dump_parameters(workflow, params) - NfcoreTemplate.summary(workflow, params, log) - if (params.hook_url) { - NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) - } + emit: + multiqc_report = MULTIQC.out.report.toList() // channel: /path/to/multiqc_report.html + versions = ch_versions // channel: [ path(versions.yml) ] } /* From a1fda61aa44357e072e691989d6cf18d05601a68 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 13:00:56 +1200 Subject: [PATCH 04/76] Merged TEMPLATE --- .devcontainer/devcontainer.json | 10 +- .editorconfig | 10 +- .github/CONTRIBUTING.md | 9 +- .github/PULL_REQUEST_TEMPLATE.md | 4 +- .github/workflows/branch.yml | 2 +- .github/workflows/ci.yml | 7 +- .github/workflows/clean-up.yml | 2 +- .github/workflows/download_pipeline.yml | 35 +- .github/workflows/fix-linting.yml | 59 ++- .github/workflows/linting.yml | 74 +-- .github/workflows/linting_comment.yml | 4 +- .github/workflows/release-announcements.yml | 75 +++ .gitpod.yml | 6 +- .nf-core.yml | 1 + .pre-commit-config.yaml | 3 + CHANGELOG.md | 2 + README.md | 7 +- assets/multiqc_config.yml | 16 + conf/base.config | 3 - conf/modules.config | 8 - lib/NfcoreTemplate.groovy | 351 -------------- lib/Utils.groovy | 47 -- lib/WorkflowAssemblyqc.groovy | 100 ---- lib/WorkflowMain.groovy | 57 --- main.nf | 71 +-- modules.json | 138 ++++-- .../dumpsoftwareversions/environment.yml | 7 - .../custom/dumpsoftwareversions/main.nf | 24 - .../custom/dumpsoftwareversions/meta.yml | 37 -- .../templates/dumpsoftwareversions.py | 101 ---- .../dumpsoftwareversions/tests/main.nf.test | 43 -- .../tests/main.nf.test.snap | 33 -- .../dumpsoftwareversions/tests/tags.yml | 2 - modules/nf-core/gunzip/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 55 +++ modules/nf-core/multiqc/meta.yml | 58 +++ modules/nf-core/multiqc/tests/main.nf.test | 84 ++++ .../nf-core/multiqc/tests/main.nf.test.snap | 41 ++ nextflow_schema.json | 4 +- pyproject.toml | 13 - .../utils_nfcore_assemblyqc_pipeline/main.nf | 219 +++++++++ .../nf-core/utils_nextflow_pipeline/main.nf | 126 +++++ .../nf-core/utils_nextflow_pipeline/meta.yml | 38 ++ .../tests/main.function.nf.test | 54 +++ .../tests/main.function.nf.test.snap | 20 + .../tests/main.workflow.nf.test | 111 +++++ .../tests/nextflow.config | 9 + .../utils_nextflow_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfcore_pipeline/main.nf | 440 ++++++++++++++++++ .../nf-core/utils_nfcore_pipeline/meta.yml | 24 + .../tests/main.function.nf.test | 134 ++++++ .../tests/main.function.nf.test.snap | 166 +++++++ .../tests/main.workflow.nf.test | 29 ++ .../tests/main.workflow.nf.test.snap | 19 + .../tests/nextflow.config | 9 + .../utils_nfcore_pipeline/tests/tags.yml | 2 + .../nf-core/utils_nfvalidation_plugin/main.nf | 62 +++ .../utils_nfvalidation_plugin/meta.yml | 44 ++ .../tests/main.nf.test | 200 ++++++++ .../tests/nextflow_schema.json | 96 ++++ .../utils_nfvalidation_plugin/tests/tags.yml | 2 + workflows/assemblyqc.nf | 86 +--- 62 files changed, 2458 insertions(+), 1039 deletions(-) create mode 100644 .github/workflows/release-announcements.yml create mode 100644 assets/multiqc_config.yml delete mode 100755 lib/NfcoreTemplate.groovy delete mode 100644 lib/Utils.groovy delete mode 100755 lib/WorkflowAssemblyqc.groovy delete mode 100755 lib/WorkflowMain.groovy delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/environment.yml delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/main.nf delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/meta.yml delete mode 100755 modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap delete mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml create mode 100644 modules/nf-core/multiqc/main.nf create mode 100644 modules/nf-core/multiqc/meta.yml create mode 100644 modules/nf-core/multiqc/tests/main.nf.test create mode 100644 modules/nf-core/multiqc/tests/main.nf.test.snap delete mode 100644 pyproject.toml create mode 100644 subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/main.nf create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/meta.yml create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config create mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/main.nf create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json create mode 100644 subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4ecfbfe3..b290e090 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,15 +10,7 @@ "vscode": { // Set *default* container specific settings.json values on container create. "settings": { - "python.defaultInterpreterPath": "/opt/conda/bin/python", - "python.linting.enabled": true, - "python.linting.pylintEnabled": true, - "python.formatting.autopep8Path": "/opt/conda/bin/autopep8", - "python.formatting.yapfPath": "/opt/conda/bin/yapf", - "python.linting.flake8Path": "/opt/conda/bin/flake8", - "python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle", - "python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle", - "python.linting.pylintPath": "/opt/conda/bin/pylint" + "python.defaultInterpreterPath": "/opt/conda/bin/python" }, // Add the IDs of extensions you want installed when the container is created. diff --git a/.editorconfig b/.editorconfig index eb77d1dd..83ee163c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,16 +18,12 @@ end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset - -# These files are edited and tested upstream in nf-core/subworkflows [/subworkflows/nf-core/**] charset = unset end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset # These files are edited and tested upstream in pfr/modules [/modules/pfr/**] @@ -36,16 +32,12 @@ end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset - -# These files are edited and tested upstream in pfr/subworkflows [/subworkflows/pfr/**] charset = unset end_of_line = unset insert_final_newline = unset trim_trailing_whitespace = unset indent_style = unset -indent_size = unset [/assets/email*] indent_size = unset @@ -55,7 +47,7 @@ indent_size = unset indent_style = unset # ignore python -[*.{py}] +[*.{py,md}] indent_style = unset # ignore perl diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index edd71437..b8059542 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -23,8 +23,11 @@ If you're not used to this workflow with git, you can start with some [docs from ## Tests -You can optionally test your changes by running the pipeline locally. Then it is recommended to use the `debug` profile to -receive warnings about process selectors and other debug info. Example: `nextflow run . -profile debug,test,docker --outdir `. +You have the option to test your changes locally by running the pipeline. For receiving warnings about process selectors and other `debug` information, it is recommended to use the debug profile. Execute all the tests with the following command: + +```bash +nf-test test --profile debug,test,docker --verbose +``` When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests. Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then. @@ -81,7 +84,7 @@ Once there, use `nf-core schema build` to add to `nextflow_schema.json`. Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels. -The process resources can be passed on to the tool dynamically within the process with the `${task.cpu}` and `${task.memory}` variables in the `script:` block. +The process resources can be passed on to the tool dynamically within the process with the `${task.cpus}` and `${task.memory}` variables in the `script:` block. ### Naming schemes diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 50053a1f..86930edb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,8 +16,8 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/plant-food-r - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/plant-food-research-open/assemblyqc/tree/master/.github/CONTRIBUTING.md) -- [ ] Make sure your code lints (`nf-core lint`) and (`pre-commit run --all`) -- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). +- [ ] Make sure your code lints (`nf-core lint`). +- [ ] Ensure the test suite passes (`nf-test test tests/ --verbose --profile +docker`). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 752ea1bf..9186934e 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -19,7 +19,7 @@ jobs: # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets - name: Post PR comment if: failure() - uses: mshick/add-pr-comment@v2 + uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2 with: message: | ## This PR is against the `master` branch :x: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ff4e1f8..6cacb7d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,13 +31,16 @@ jobs: - "-profile docker -params-file ./tests/invalid/params.json" steps: - name: Check out pipeline code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 with: version: ${{ matrix.NXF_VER }} + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + - name: Run pipeline with test data run: | nextflow run ${GITHUB_WORKSPACE} --outdir ./results ${{ matrix.RUN_CONFIG }} diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml index e37cfda5..0b6b1f27 100644 --- a/.github/workflows/clean-up.yml +++ b/.github/workflows/clean-up.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v9 + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 with: stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 69574376..2d20d644 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -6,9 +6,16 @@ name: Test successful pipeline download with 'nf-core download' # - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev. on: workflow_dispatch: + inputs: + testbranch: + description: "The specific branch you wish to utilize for the test execution of nf-core download." + required: true + default: "dev" pull_request: types: - opened + - edited + - synchronize branches: - master pull_request_target: @@ -20,16 +27,19 @@ env: jobs: download: - runs-on: ["self-hosted"] + runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@v5 + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - - uses: eWaterCycle/setup-singularity@v7 + - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: singularity-version: 3.8.3 @@ -42,13 +52,13 @@ jobs: run: | echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV} echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV} - echo "REPO_BRANCH=${GITHUB_REF#refs/heads/}" >> ${GITHUB_ENV} + echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV} - name: Download the pipeline env: NXF_SINGULARITY_CACHEDIR: ./ run: | - nf-core download ${{ env.REPO_LOWERCASE }} \ + nf-core download ${{ env.REPO_LOWERCASE }} \ --revision ${{ env.REPO_BRANCH }} \ --outdir ./${{ env.REPOTITLE_LOWERCASE }} \ --compress "none" \ @@ -60,8 +70,17 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline + - name: Run the downloaded pipeline (stub) + id: stub_run_pipeline + continue-on-error: true env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + - name: Run the downloaded pipeline (stub run not supported) + id: run_pipeline + if: ${{ job.steps.stub_run_pipeline.status == failure() }} + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 41963bec..52217b84 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -4,7 +4,7 @@ on: types: [created] jobs: - deploy: + fix-linting: # Only run if comment is on a PR with the main repo, and if it contains the magic keywords if: > contains(github.event.comment.html_url, '/pull/') && @@ -13,10 +13,17 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} + # indication that the linting is being fixed + - name: React on comment + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: eyes + # Action runs on the issue comment, so we don't get the PR by default # Use the gh cli to check out the PR - name: Checkout Pull Request @@ -24,25 +31,59 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + # Install and run pre-commit + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 - cache: "pip" + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit - name: Run pre-commit - run: pre-commit run --all-files || echo "status=fail" >> $GITHUB_ENV + id: pre-commit + run: pre-commit run --all-files + continue-on-error: true + + # indication that the linting has finished + - name: react if linting finished succesfully + if: steps.pre-commit.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: "+1" - name: Commit & push changes - if: env.status == 'fail' + id: commit-and-push + if: steps.pre-commit.outcome == 'failure' run: | git config user.email "core@nf-co.re" git config user.name "nf-core-bot" git config push.default upstream git add . git status - git commit -m "[automated] Fix linting with pre-commit" + git commit -m "[automated] Fix code linting" git push + + - name: react if linting errors were fixed + id: react-if-fixed + if: steps.commit-and-push.outcome == 'success' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: hooray + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + comment-id: ${{ github.event.comment.id }} + reactions: confused + + - name: react if linting errors were not fixed + if: steps.commit-and-push.outcome == 'failure' + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + with: + issue-number: ${{ github.event.issue.number }} + body: | + @${{ github.actor }} I tried to fix the linting errors, but it didn't work. Please fix them manually. + See [CI log](https://github.com/plant-food-research-open/assemblyqc/actions/runs/${{ github.run_id }}) for more details. diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index f807f5e2..a225c816 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,12 +14,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - name: Set up Python 3.11 - uses: actions/setup-python@v5 + - name: Set up Python 3.12 + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" cache: "pip" - name: Install pre-commit @@ -28,42 +28,42 @@ jobs: - name: Run pre-commit run: pre-commit run --all-files - # nf-core: - # runs-on: ubuntu-latest - # steps: - # - name: Check out pipeline code - # uses: actions/checkout@v4 + nf-core: + runs-on: ubuntu-latest + steps: + - name: Check out pipeline code + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - # - name: Install Nextflow - # uses: nf-core/setup-nextflow@v1 + - name: Install Nextflow + uses: nf-core/setup-nextflow@v2 - # - uses: actions/setup-python@v5 - # with: - # python-version: "3.11" - # architecture: "x64" + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + with: + python-version: "3.12" + architecture: "x64" - # - name: Install dependencies - # run: | - # python -m pip install --upgrade pip - # pip install nf-core + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install nf-core - # - name: Run nf-core lint - # env: - # GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} - # run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md + - name: Run nf-core lint + env: + GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} + run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md - # - name: Save PR number - # if: ${{ always() }} - # run: echo ${{ github.event.pull_request.number }} > PR_number.txt + - name: Save PR number + if: ${{ always() }} + run: echo ${{ github.event.pull_request.number }} > PR_number.txt - # - name: Upload linting log file artifact - # if: ${{ always() }} - # uses: actions/upload-artifact@v4 - # with: - # name: linting-logs - # path: | - # lint_log.txt - # lint_results.md - # PR_number.txt + - name: Upload linting log file artifact + if: ${{ always() }} + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + with: + name: linting-logs + path: | + lint_log.txt + lint_results.md + PR_number.txt diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 147bcd10..40acc23f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@v3 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 with: workflow: linting.yml workflow_conclusion: completed @@ -21,7 +21,7 @@ jobs: run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment - uses: marocchino/sticky-pull-request-comment@v2 + uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml new file mode 100644 index 00000000..03ecfcf7 --- /dev/null +++ b/.github/workflows/release-announcements.yml @@ -0,0 +1,75 @@ +name: release-announcements +# Automatic release toot and tweet anouncements +on: + release: + types: [published] + workflow_dispatch: + +jobs: + toot: + runs-on: ubuntu-latest + steps: + - name: get topics and convert to hashtags + id: get_topics + run: | + echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT + + - uses: rzr/fediverse-action@master + with: + access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} + host: "mstdn.science" # custom host if not "mastodon.social" (default) + # GitHub event payload + # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release + message: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + + ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics + + send-tweet: + runs-on: ubuntu-latest + + steps: + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + with: + python-version: "3.10" + - name: Install dependencies + run: pip install tweepy==4.14.0 + - name: Send tweet + shell: python + run: | + import os + import tweepy + + client = tweepy.Client( + access_token=os.getenv("TWITTER_ACCESS_TOKEN"), + access_token_secret=os.getenv("TWITTER_ACCESS_TOKEN_SECRET"), + consumer_key=os.getenv("TWITTER_CONSUMER_KEY"), + consumer_secret=os.getenv("TWITTER_CONSUMER_SECRET"), + ) + tweet = os.getenv("TWEET") + client.create_tweet(text=tweet) + env: + TWEET: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} + TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} + TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} + TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} + + bsky-post: + runs-on: ubuntu-latest + steps: + - uses: zentered/bluesky-post-action@80dbe0a7697de18c15ad22f4619919ceb5ccf597 # v0.1.0 + with: + post: | + Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! + + Please see the changelog: ${{ github.event.release.html_url }} + env: + BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }} + BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }} + # diff --git a/.gitpod.yml b/.gitpod.yml index 363d5b1d..105a1821 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -10,13 +10,11 @@ tasks: vscode: extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting + # - nextflow.nextflow # Nextflow syntax highlighting - oderwat.indent-rainbow # Highlight indentation level - streetsidesoftware.code-spell-checker # Spelling checker for source code + - charliermarsh.ruff # Code linter Ruff diff --git a/.nf-core.yml b/.nf-core.yml index 61d19b4d..71f34ac4 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -18,6 +18,7 @@ lint: nextflow_config: - manifest.name - manifest.homePage +nf_core_version: 2.13.2.dev0 repository_type: pipeline template: prefix: plant-food-research-open diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bc85d767..9b0780ba 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,9 @@ repos: rev: "v3.1.0" hooks: - id: prettier + additional_dependencies: + - prettier@3.2.5 + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a3aa939..5c8791d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## 2.0.0 - [22-April-2024] +1. Updated nf-core/template to 2.13.2.dev0 + ### `Added` 1. Updated modules and sub-workflows diff --git a/README.md b/README.md index ba0154c5..fa4fa1e5 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ -[![GitHub Actions CI Status](https://github.com/plant-food-research-open/assemblyqc/workflows/nf-core%20CI/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions?query=workflow%3A%22nf-core+CI%22) -[![GitHub Actions Linting Status](https://github.com/plant-food-research-open/assemblyqc/workflows/nf-core%20linting/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions?query=workflow%3A%22nf-core+linting%22)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.10647870-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.10647870) +[![GitHub Actions CI Status](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/ci.yml/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/ci.yml) +[![GitHub Actions Linting Status](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/linting.yml/badge.svg)](https://github.com/plant-food-research-open/assemblyqc/actions/workflows/linting.yml)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.10647870-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.10647870) +[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) [![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A523.04.0-23aa62.svg)](https://www.nextflow.io/) [![run with conda ❌](http://img.shields.io/badge/run%20with-conda%20❌-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) ## Introduction diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml new file mode 100644 index 00000000..759adecd --- /dev/null +++ b/assets/multiqc_config.yml @@ -0,0 +1,16 @@ +report_comment: > + + This report has been generated by the plant-food-research-open/assemblyqc + analysis pipeline. + +report_section_order: + "plant-food-research-open-assemblyqc-methods-description": + order: -1000 + software_versions: + order: -1001 + "plant-food-research-open-assemblyqc-summary": + order: -1002 + +export_plots: true + +disable_version_detection: true diff --git a/conf/base.config b/conf/base.config index c7f00271..0e066d52 100644 --- a/conf/base.config +++ b/conf/base.config @@ -72,7 +72,4 @@ process { withName:DNADIFF { time = { check_max( 7.day * task.attempt, 'time' ) } } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index 0b1ba155..3185b2ad 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -12,14 +12,6 @@ process { - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: ASSEMBLATHON_STATS { publishDir = [ path: { "${params.outdir}/assemblathon_stats" }, diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy deleted file mode 100755 index 4ce590c0..00000000 --- a/lib/NfcoreTemplate.groovy +++ /dev/null @@ -1,351 +0,0 @@ -// -// This file holds several functions used within the nf-core pipeline template. -// - -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - -class NfcoreTemplate { - - // - // Check AWS Batch related parameters have been specified correctly - // - public static void awsBatch(workflow, params) { - if (workflow.profile.contains('awsbatch')) { - // Check params.awsqueue and params.awsregion have been set if running on AWSBatch - assert (params.awsqueue && params.awsregion) : "Specify correct --awsqueue and --awsregion parameters on AWSBatch!" - // Check outdir paths to be S3 buckets if running on AWSBatch - assert params.outdir.startsWith('s3:') : "Outdir not on S3 - specify S3 Bucket to run on AWSBatch!" - } - } - - // - // Warn if a -profile or Nextflow config has not been provided to run the pipeline - // - public static void checkConfigProvided(workflow, log) { - if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " - } - } - - // - // Generate version string - // - public static String version(workflow) { - String version_string = "" - - if (workflow.manifest.version) { - def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' - version_string += "${prefix_v}${workflow.manifest.version}" - } - - if (workflow.commitId) { - def git_shortsha = workflow.commitId.substring(0, 7) - version_string += "-g${git_shortsha}" - } - - return version_string - } - - // - // Construct and send completion email - // - public static void email(workflow, params, summary_params, projectDir, log, multiqc_report=[]) { - - // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" - if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" - } - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['Date Started'] = workflow.start - misc_fields['Date Completed'] = workflow.complete - misc_fields['Pipeline script file path'] = workflow.scriptFile - misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build - misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp - - def email_fields = [:] - email_fields['version'] = NfcoreTemplate.version(workflow) - email_fields['runName'] = workflow.runName - email_fields['success'] = workflow.success - email_fields['dateComplete'] = workflow.complete - email_fields['duration'] = workflow.duration - email_fields['exitStatus'] = workflow.exitStatus - email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - email_fields['errorReport'] = (workflow.errorReport ?: 'None') - email_fields['commandLine'] = workflow.commandLine - email_fields['projectDir'] = workflow.projectDir - email_fields['summary'] = summary << misc_fields - - // On success try attach the multiqc report - def mqc_report = null - try { - if (workflow.success) { - mqc_report = multiqc_report.getVal() - if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { - if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" - } - mqc_report = mqc_report[0] - } - } - } catch (all) { - if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" - } - } - - // Check if we are only sending emails on failure - def email_address = params.email - if (!params.email && params.email_on_fail && !workflow.success) { - email_address = params.email_on_fail - } - - // Render the TXT template - def engine = new groovy.text.GStringTemplateEngine() - def tf = new File("$projectDir/assets/email_template.txt") - def txt_template = engine.createTemplate(tf).make(email_fields) - def email_txt = txt_template.toString() - - // Render the HTML template - def hf = new File("$projectDir/assets/email_template.html") - def html_template = engine.createTemplate(hf).make(email_fields) - def email_html = html_template.toString() - - // Render the sendmail template - def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] - def sf = new File("$projectDir/assets/sendmail_template.txt") - def sendmail_template = engine.createTemplate(sf).make(smail_fields) - def sendmail_html = sendmail_template.toString() - - // Send the HTML e-mail - Map colors = logColours(params.monochrome_logs) - if (email_address) { - try { - if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } - // Try to send HTML e-mail using sendmail - def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") - sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { - // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { - mail_cmd += [ '-A', mqc_report ] - } - mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" - } - } - - // Write summary e-mail HTML to a file - def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") - output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); - output_hf.delete() - - // Write summary e-mail TXT to a file - def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") - output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); - output_tf.delete() - } - - // - // Construct and send a notification to a web server as JSON - // e.g. Microsoft Teams and Slack - // - public static void IM_notification(workflow, params, summary_params, projectDir, log) { - def hook_url = params.hook_url - - def summary = [:] - for (group in summary_params.keySet()) { - summary << summary_params[group] - } - - def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp - - def msg_fields = [:] - msg_fields['version'] = NfcoreTemplate.version(workflow) - msg_fields['runName'] = workflow.runName - msg_fields['success'] = workflow.success - msg_fields['dateComplete'] = workflow.complete - msg_fields['duration'] = workflow.duration - msg_fields['exitStatus'] = workflow.exitStatus - msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') - msg_fields['errorReport'] = (workflow.errorReport ?: 'None') - msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") - msg_fields['projectDir'] = workflow.projectDir - msg_fields['summary'] = summary << misc_fields - - // Render the JSON template - def engine = new groovy.text.GStringTemplateEngine() - // Different JSON depending on the service provider - // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format - def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" - def hf = new File("$projectDir/assets/${json_path}") - def json_template = engine.createTemplate(hf).make(msg_fields) - def json_message = json_template.toString() - - // POST - def post = new URL(hook_url).openConnection(); - post.setRequestMethod("POST") - post.setDoOutput(true) - post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); - } - } - - // - // Dump pipeline parameters in a json file - // - public static void dump_parameters(workflow, params) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) - - FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") - temp_pf.delete() - } - - // - // Print pipeline summary on completion - // - public static void summary(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (workflow.success) { - if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" - } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" - } - } - - // - // ANSII Colours used for terminal logging - // - public static Map logColours(Boolean monochrome_logs) { - Map colorcodes = [:] - - // Reset / Meta - colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" - colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" - colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" - colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" - colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" - colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" - colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" - - // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" - - // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" - - // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" - - // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" - - // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" - - return colorcodes - } - - // - // Does what is says on the tin - // - public static String dashedLine(monochrome_logs) { - Map colors = logColours(monochrome_logs) - return "-${colors.dim}----------------------------------------------------${colors.reset}-" - } - - // - // nf-core logo - // - public static String logo(workflow, monochrome_logs) { - Map colors = logColours(monochrome_logs) - String workflow_version = NfcoreTemplate.version(workflow) - String.format( - """\n - ${dashedLine(monochrome_logs)} - ${colors.purple} ${workflow.manifest.name} ${workflow_version}${colors.reset} - ${dashedLine(monochrome_logs)} - """.stripIndent() - ) - } -} diff --git a/lib/Utils.groovy b/lib/Utils.groovy deleted file mode 100644 index 8d030f4e..00000000 --- a/lib/Utils.groovy +++ /dev/null @@ -1,47 +0,0 @@ -// -// This file holds several Groovy functions that could be useful for any Nextflow pipeline -// - -import org.yaml.snakeyaml.Yaml - -class Utils { - - // - // When running with -profile conda, warn if channels have not been set-up appropriately - // - public static void checkCondaChannels(log) { - Yaml parser = new Yaml() - def channels = [] - try { - def config = parser.load("conda config --show channels".execute().text) - channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return - } - - // Check that all channels are present - // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] - def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean - - // Check that they are in the right order - def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) - } - - if (channels_missing | channel_priority_violation) { - log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " There is a problem with your Conda configuration!\n\n" + - " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/\n" + - " The observed channel order is \n" + - " ${channels}\n" + - " but the following channel order is required:\n" + - " ${required_channels_in_order}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - } - } -} diff --git a/lib/WorkflowAssemblyqc.groovy b/lib/WorkflowAssemblyqc.groovy deleted file mode 100755 index 5ec2cc32..00000000 --- a/lib/WorkflowAssemblyqc.groovy +++ /dev/null @@ -1,100 +0,0 @@ -// -// This file holds several functions specific to the workflow/assemblyqc.nf in the plant-food-research-open/assemblyqc pipeline -// - -import nextflow.Nextflow -import groovy.text.SimpleTemplateEngine -import groovy.json.JsonOutput - -class WorkflowAssemblyqc { - - // - // Check and validate parameters - // - public static void initialise(params, log) { - // Check for ncbi_fcs_adaptor_empire - if (!params.ncbi_fcs_adaptor_skip && !params.ncbi_fcs_adaptor_empire) { - Nextflow.error('ncbi_fcs_adaptor_empire must be provided when executing NCBI FCS Adaptor') - } - - // Check for ncbi_fcs_gx_tax_id - if (!params.ncbi_fcs_gx_skip && !params.ncbi_fcs_gx_tax_id) { - Nextflow.error('ncbi_fcs_gx_tax_id must be provided when executing NCBI FCS GX') - } - - // Check for ncbi_fcs_gx_db_path - if (!params.ncbi_fcs_gx_skip && !params.ncbi_fcs_gx_db_path) { - Nextflow.error('ncbi_fcs_gx_db_path must be provided when executing NCBI FCS GX') - } - - // Check for busco_mode - if (!params.busco_skip && !params.busco_mode) { - Nextflow.error("busco_mode must be provided when executing BUSCO") - } - - // Check for busco_lineage_datasets - if (!params.busco_skip && !params.busco_lineage_datasets) { - Nextflow.error('busco_lineage_datasets must be provided when executing BUSCO') - } - - // Check for tidk_repeat_seq - if (!params.tidk_skip && !params.tidk_repeat_seq) { - Nextflow.error('tidk_repeat_seq must be provided when executing TIDK') - } - - // Check for kraken2_db_path - if (!params.kraken2_skip && !params.kraken2_db_path) { - Nextflow.error('kraken2_db_path must be provided when executing Kraken2') - } - } - - public static ArrayList validateInput(input) { - def inputFields = 5 - def assemblyTags = input[(0..input.size()-1).step(inputFields)] - - def tagCounts = [:] - assemblyTags.each { tag -> - tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1 - } - def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key } - - if (repeatedTags.size() > 0) { - Nextflow.error("Please check input assemblysheet -> Multiple assemblies have the same tags!: ${repeatedTags}") - } - - return input - } - - public static ArrayList validateXrefAssemblies(xref) { - def xrefFields = 3 - def xrefTags = xref[(0..xref.size()-1).step(xrefFields)] - - def tagCounts = [:] - xrefTags.each { tag -> - tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1 - } - def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key } - - if (repeatedTags.size() > 0) { - Nextflow.error("Please check synteny_xref_assemblies -> Multiple xref assemblies have the same tags!: ${repeatedTags}") - } - - return xref - } - - public static String jsonifyParams(params) { - return JsonOutput.toJson(params).toString() - } - - public static String jsonifySummaryParams(params) { - - def summary = [:] - for (group in params.keySet()) { - for (subgroup in params[group].keySet()) { - if ( params[group][subgroup] ) { summary << [ "$subgroup": "${params[group][subgroup]}" ] } - } - } - - return JsonOutput.toJson(summary).toString() - } -} diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy deleted file mode 100755 index abfc7acf..00000000 --- a/lib/WorkflowMain.groovy +++ /dev/null @@ -1,57 +0,0 @@ -// -// This file holds several functions specific to the main.nf workflow in the plant-food-research-open/assemblyqc pipeline -// - -import nextflow.Nextflow - -class WorkflowMain { - - // - // Citation string for pipeline - // - public static String citation(workflow) { - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - "* The pipeline\n" + - " https://doi.org/10.5281/zenodo.10647870\n\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" - } - - - // - // Validate parameters and print summary to screen - // - public static void initialise(workflow, params, log) { - - // Print workflow version and exit on --version - if (params.version) { - String workflow_version = NfcoreTemplate.version(workflow) - log.info "${workflow.manifest.name} ${workflow_version}" - System.exit(0) - } - - // Check that a -profile or Nextflow config has been provided to run the pipeline - NfcoreTemplate.checkConfigProvided(workflow, log) - - // Check that conda channels are set-up correctly - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - Utils.checkCondaChannels(log) - } - - // Check AWS batch settings - NfcoreTemplate.awsBatch(workflow, params) - } - // - // Get attribute from genome config file e.g. fasta - // - public static Object getGenomeAttribute(params, attribute) { - if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { - if (params.genomes[ params.genome ].containsKey(attribute)) { - return params.genomes[ params.genome ][ attribute ] - } - } - return null - } -} diff --git a/main.nf b/main.nf index 34f2ebb3..7a002146 100755 --- a/main.nf +++ b/main.nf @@ -11,55 +11,70 @@ nextflow.enable.dsl = 2 /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - VALIDATE & PRINT PARAMETER SUMMARY + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { validateParameters; paramsHelp } from 'plugin/nf-validation' - -// Print help message if needed -if (params.help) { - def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) - def citation = '\n' + WorkflowMain.citation(workflow) + '\n' - def String command = "nextflow run ${workflow.manifest.name} --input assemblysheet.csv --outdir ./results -profile docker" - log.info logo + paramsHelp(command) + citation + NfcoreTemplate.dashedLine(params.monochrome_logs) - System.exit(0) -} - -WorkflowMain.initialise(workflow, params, log) - -// Validate input parameters -if (params.validate_params) { - validateParameters() -} +include { ASSEMBLYQC } from './workflows/assemblyqc' +include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_assemblyqc_pipeline' +include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_assemblyqc_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - NAMED WORKFLOW FOR PIPELINE + NAMED WORKFLOWS FOR PIPELINE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { ASSEMBLYQC } from './workflows/assemblyqc' - // -// WORKFLOW: Run main plant-food-research-open/assemblyqc analysis pipeline +// WORKFLOW: Run main analysis pipeline depending on type of input // workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { + + // + // WORKFLOW: Run pipeline + // ASSEMBLYQC () -} +} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - RUN ALL WORKFLOWS + RUN MAIN WORKFLOW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// -// WORKFLOW: Execute a single named workflow for the pipeline -// See: https://github.com/nf-core/rnaseq/issues/619 -// workflow { + + main: + + // + // SUBWORKFLOW: Run initialisation tasks + // + PIPELINE_INITIALISATION ( + params.version, + params.help, + params.validate_params, + params.monochrome_logs, + args, + params.outdir, + params.input + ) + + // + // WORKFLOW: Run main workflow + // PLANTFOODRESEARCHOPEN_ASSEMBLYQC () + + // + // SUBWORKFLOW: Run completion tasks + // + PIPELINE_COMPLETION ( + params.email, + params.email_on_fail, + params.plaintext_email, + params.outdir, + params.monochrome_logs, + params.hook_url + ) } /* diff --git a/modules.json b/modules.json index d817ded9..564e7abd 100644 --- a/modules.json +++ b/modules.json @@ -8,72 +8,100 @@ "bwa/index": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fastq_bwa_mem_samblaster"] + "installed_by": [ + "fastq_bwa_mem_samblaster" + ] }, "bwa/mem": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fastq_bwa_mem_samblaster"] + "installed_by": [ + "fastq_bwa_mem_samblaster" + ] }, "cat/cat": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "custom/checkgff3fastacorrespondence": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] + "installed_by": [ + "gff3_validate" + ] }, "custom/restoregffids": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "custom/shortenfastaids": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "gt/gff3": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] + "installed_by": [ + "gff3_validate" + ] }, "gt/gff3validator": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] + "installed_by": [ + "gff3_validate" + ] }, "gt/stat": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "ltrfinder": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "ltrharvest": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "ltrretriever/lai": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "ltrretriever/ltrretriever": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fasta_ltrretriever_lai"] + "installed_by": [ + "fasta_ltrretriever_lai" + ] }, "samblaster": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["fastq_bwa_mem_samblaster"] + "installed_by": [ + "fastq_bwa_mem_samblaster" + ] } } }, @@ -82,17 +110,23 @@ "fasta_ltrretriever_lai": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_bwa_mem_samblaster": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "gff3_validate": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] } } } @@ -103,57 +137,79 @@ "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "de45447d060b8c8b98575bc637a4a575fd0638e1", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastavalidator": { "branch": "master", "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastp": { "branch": "master", "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", - "installed_by": ["fastq_trim_fastp_fastqc"] + "installed_by": [ + "fastq_trim_fastp_fastqc" + ] }, "fastqc": { "branch": "master", "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", - "installed_by": ["fastq_trim_fastp_fastqc"] + "installed_by": [ + "fastq_trim_fastp_fastqc" + ] }, "gunzip": { "branch": "master", "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "seqkit/seq": { "branch": "master", "git_sha": "687ad41c14008d3d55cf7c2ffacebe6a057211a4", - "installed_by": ["fasta_explore_search_plot_tidk"] + "installed_by": [ + "fasta_explore_search_plot_tidk" + ] }, "seqkit/sort": { "branch": "master", "git_sha": "ffcdfb354f8c8e59bdccc1a4249f0f3b232c2a3d", - "installed_by": ["fasta_explore_search_plot_tidk"] + "installed_by": [ + "fasta_explore_search_plot_tidk" + ] }, "tidk/explore": { "branch": "master", "git_sha": "fad335b31b32d78f89a8340373d3ccfc0f2b18b5", - "installed_by": ["fasta_explore_search_plot_tidk"] + "installed_by": [ + "fasta_explore_search_plot_tidk" + ] }, "tidk/plot": { "branch": "master", "git_sha": "d54cd1d823f151854825da8ffe7289bcbf77206b", - "installed_by": ["fasta_explore_search_plot_tidk"] + "installed_by": [ + "fasta_explore_search_plot_tidk" + ] }, "tidk/search": { "branch": "master", "git_sha": "669a329f4aa37f5b7f03776c2ed1cd0ef122c626", - "installed_by": ["fasta_explore_search_plot_tidk"] + "installed_by": [ + "fasta_explore_search_plot_tidk" + ] }, "untar": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -162,12 +218,34 @@ "fasta_explore_search_plot_tidk": { "branch": "master", "git_sha": "2b21fbeb20ad9f17612f4a3dd7b12971513f08d5", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "fastq_trim_fastp_fastqc": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + }, + "utils_nextflow_pipeline": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": [ + "subworkflows" + ] + }, + "utils_nfcore_pipeline": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": [ + "subworkflows" + ] + }, + "utils_nfvalidation_plugin": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": [ + "subworkflows" + ] } } } diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml deleted file mode 100644 index b48ced26..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: custom_dumpsoftwareversions -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::multiqc=1.20 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf deleted file mode 100644 index 105f9265..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ /dev/null @@ -1,24 +0,0 @@ -process CUSTOM_DUMPSOFTWAREVERSIONS { - label 'process_single' - - // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.20--pyhdfd78af_0' : - 'biocontainers/multiqc:1.20--pyhdfd78af_0' }" - - input: - path versions - - output: - path "software_versions.yml" , emit: yml - path "software_versions_mqc.yml", emit: mqc_yml - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - template 'dumpsoftwareversions.py' -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml deleted file mode 100644 index 5f15a5fd..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ /dev/null @@ -1,37 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: custom_dumpsoftwareversions -description: Custom module used to dump software versions within the nf-core pipeline template -keywords: - - custom - - dump - - version -tools: - - custom: - description: Custom module used to dump software versions within the nf-core pipeline template - homepage: https://github.com/nf-core/tools - documentation: https://github.com/nf-core/tools - licence: ["MIT"] -input: - - versions: - type: file - description: YML file containing software versions - pattern: "*.yml" -output: - - yml: - type: file - description: Standard YML file containing software versions - pattern: "software_versions.yml" - - mqc_yml: - type: file - description: MultiQC custom content YML file containing software versions - pattern: "software_versions_mqc.yml" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" -maintainers: - - "@drpatelh" - - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py deleted file mode 100755 index da033408..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python - - -"""Provide functions to merge multiple versions.yml files.""" - - -import yaml -import platform -from textwrap import dedent - - -def _make_versions_html(versions): - """Generate a tabular HTML output of all versions for MultiQC.""" - html = [ - dedent( - """\\ - - - - - - - - - - """ - ) - ] - for process, tmp_versions in sorted(versions.items()): - html.append("") - for i, (tool, version) in enumerate(sorted(tmp_versions.items())): - html.append( - dedent( - f"""\\ - - - - - - """ - ) - ) - html.append("") - html.append("
    Process Name Software Version
    {process if (i == 0) else ''}{tool}{version}
    ") - return "\\n".join(html) - - -def main(): - """Load all version files and generate merged output.""" - versions_this_module = {} - versions_this_module["${task.process}"] = { - "python": platform.python_version(), - "yaml": yaml.__version__, - } - - with open("$versions") as f: - versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module - - # aggregate versions by the module name (derived from fully-qualified process name) - versions_by_module = {} - for process, process_versions in versions_by_process.items(): - module = process.split(":")[-1] - try: - if versions_by_module[module] != process_versions: - raise AssertionError( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) - except KeyError: - versions_by_module[module] = process_versions - - versions_by_module["Workflow"] = { - "Nextflow": "$workflow.nextflow.version", - "$workflow.manifest.name": "$workflow.manifest.version", - } - - versions_mqc = { - "id": "software_versions", - "section_name": "${workflow.manifest.name} Software Versions", - "section_href": "https://github.com/${workflow.manifest.name}", - "plot_type": "html", - "description": "are collected at run time from the software output.", - "data": _make_versions_html(versions_by_module), - } - - with open("software_versions.yml", "w") as f: - yaml.dump(versions_by_module, f, default_flow_style=False) - with open("software_versions_mqc.yml", "w") as f: - yaml.dump(versions_mqc, f, default_flow_style=False) - - with open("versions.yml", "w") as f: - yaml.dump(versions_this_module, f, default_flow_style=False) - - -if __name__ == "__main__": - main() diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test deleted file mode 100644 index b1e1630b..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test +++ /dev/null @@ -1,43 +0,0 @@ -nextflow_process { - - name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" - script "../main.nf" - process "CUSTOM_DUMPSOFTWAREVERSIONS" - tag "modules" - tag "modules_nfcore" - tag "custom" - tag "dumpsoftwareversions" - tag "custom/dumpsoftwareversions" - - test("Should run without failures") { - when { - process { - """ - def tool1_version = ''' - TOOL1: - tool1: 0.11.9 - '''.stripIndent() - - def tool2_version = ''' - TOOL2: - tool2: 1.9 - '''.stripIndent() - - input[0] = Channel.of(tool1_version, tool2_version).collectFile() - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot( - process.out.versions, - file(process.out.mqc_yml[0]).readLines()[0..10], - file(process.out.yml[0]).readLines()[0..7] - ).match() - } - ) - } - } -} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap deleted file mode 100644 index 5f59a936..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap +++ /dev/null @@ -1,33 +0,0 @@ -{ - "Should run without failures": { - "content": [ - [ - "versions.yml:md5,76d454d92244589d32455833f7c1ba6d" - ], - [ - "data: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n\\", - " \\n\\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n \\n \\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\", - " \\ \\n\\n\\n\\n\\n\\n \\n\\", - " \\ \\n \\n\\n\\n\\n\\", - " \\n\\n \\n \\n\\" - ], - [ - "CUSTOM_DUMPSOFTWAREVERSIONS:", - " python: 3.11.7", - " yaml: 5.4.1", - "TOOL1:", - " tool1: 0.11.9", - "TOOL2:", - " tool2: '1.9'", - "Workflow:" - ] - ], - "timestamp": "2024-01-09T23:01:18.710682" - } -} \ No newline at end of file diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml deleted file mode 100644 index 405aa24a..00000000 --- a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom/dumpsoftwareversions: - - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/gunzip/environment.yml b/modules/nf-core/gunzip/environment.yml index 25910b34..3c723b21 100644 --- a/modules/nf-core/gunzip/environment.yml +++ b/modules/nf-core/gunzip/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - conda-forge::sed=4.7 + - bioconda::multiqc=1.21 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf new file mode 100644 index 00000000..47ac352f --- /dev/null +++ b/modules/nf-core/multiqc/main.nf @@ -0,0 +1,55 @@ +process MULTIQC { + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.21--pyhdfd78af_0' : + 'biocontainers/multiqc:1.21--pyhdfd78af_0' }" + + input: + path multiqc_files, stageAs: "?/*" + path(multiqc_config) + path(extra_multiqc_config) + path(multiqc_logo) + + output: + path "*multiqc_report.html", emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def config = multiqc_config ? "--config $multiqc_config" : '' + def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + def logo = multiqc_logo ? /--cl-config 'custom_logo: "${multiqc_logo}"'/ : '' + """ + multiqc \\ + --force \\ + $args \\ + $config \\ + $extra_config \\ + $logo \\ + . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ + + stub: + """ + mkdir multiqc_data + touch multiqc_plots + touch multiqc_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml new file mode 100644 index 00000000..45a9bc35 --- /dev/null +++ b/modules/nf-core/multiqc/meta.yml @@ -0,0 +1,58 @@ +name: multiqc +description: Aggregate results from bioinformatics analyses across many samples into a single report +keywords: + - QC + - bioinformatics tools + - Beautiful stand-alone HTML report +tools: + - multiqc: + description: | + MultiQC searches a given directory for analysis logs and compiles a HTML report. + It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + homepage: https://multiqc.info/ + documentation: https://multiqc.info/docs/ + licence: ["GPL-3.0-or-later"] +input: + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - multiqc_config: + type: file + description: Optional config yml for MultiQC + pattern: "*.{yml,yaml}" + - extra_multiqc_config: + type: file + description: Second optional config yml for MultiQC. Will override common sections in multiqc_config. + pattern: "*.{yml,yaml}" + - multiqc_logo: + type: file + description: Optional logo file for MultiQC + pattern: "*.{png}" +output: + - report: + type: file + description: MultiQC report file + pattern: "multiqc_report.html" + - data: + type: directory + description: MultiQC data dir + pattern: "multiqc_data" + - plots: + type: file + description: Plots created by MultiQC + pattern: "*_data" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@abhi18av" + - "@bunop" + - "@drpatelh" + - "@jfy133" +maintainers: + - "@abhi18av" + - "@bunop" + - "@drpatelh" + - "@jfy133" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test new file mode 100644 index 00000000..f1c4242e --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -0,0 +1,84 @@ +nextflow_process { + + name "Test Process MULTIQC" + script "../main.nf" + process "MULTIQC" + + tag "modules" + tag "modules_nfcore" + tag "multiqc" + + test("sarscov2 single-end [fastqc]") { + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("multiqc_versions_single") } + ) + } + + } + + test("sarscov2 single-end [fastqc] [config]") { + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) + input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("multiqc_versions_config") } + ) + } + } + + test("sarscov2 single-end [fastqc] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.report.collect { file(it).getName() } + + process.out.data.collect { file(it).getName() } + + process.out.plots.collect { file(it).getName() } + + process.out.versions ).match("multiqc_stub") } + ) + } + + } +} diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap new file mode 100644 index 00000000..bfebd802 --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -0,0 +1,41 @@ +{ + "multiqc_versions_single": { + "content": [ + [ + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:48:55.657331" + }, + "multiqc_stub": { + "content": [ + [ + "multiqc_report.html", + "multiqc_data", + "multiqc_plots", + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:49:49.071937" + }, + "multiqc_versions_config": { + "content": [ + [ + "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-29T08:49:25.457567" + } +} \ No newline at end of file diff --git a/nextflow_schema.json b/nextflow_schema.json index f16a18ba..6f4e61ed 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -14,8 +14,10 @@ "input": { "type": "string", "format": "file-path", - "mimetype": "csv", + "exists": true, "schema": "assets/schema_input.json", + "mimetype": "text/csv", + "pattern": "^\\S+\\.csv$", "help_text": "FASTA and other associated files for input assemblies provided as a formatted CSV file", "description": "Input assembly sheet in CSV format", "fa_icon": "fas fa-file-csv" diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 7d08e1c8..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,13 +0,0 @@ -# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. -# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.ruff] -line-length = 120 -target-version = "py38" -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] -cache-dir = "~/.cache/ruff" - -[tool.ruff.isort] -known-first-party = ["nf_core"] - -[tool.ruff.per-file-ignores] -"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf new file mode 100644 index 00000000..7013d07c --- /dev/null +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -0,0 +1,219 @@ +// +// Subworkflow with functionality specific to the plant-food-research-open/assemblyqc pipeline +// + +import groovy.json.JsonOutput + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { UTILS_NFVALIDATION_PLUGIN } from '../../nf-core/utils_nfvalidation_plugin' +include { paramsSummaryMap } from 'plugin/nf-validation' +include { fromSamplesheet } from 'plugin/nf-validation' +include { UTILS_NEXTFLOW_PIPELINE } from '../../nf-core/utils_nextflow_pipeline' +include { completionEmail } from '../../nf-core/utils_nfcore_pipeline' +include { completionSummary } from '../../nf-core/utils_nfcore_pipeline' +include { dashedLine } from '../../nf-core/utils_nfcore_pipeline' +include { nfCoreLogo } from '../../nf-core/utils_nfcore_pipeline' +include { imNotification } from '../../nf-core/utils_nfcore_pipeline' +include { UTILS_NFCORE_PIPELINE } from '../../nf-core/utils_nfcore_pipeline' +include { workflowCitation } from '../../nf-core/utils_nfcore_pipeline' + +/* +======================================================================================== + SUBWORKFLOW TO INITIALISE PIPELINE +======================================================================================== +*/ + +workflow PIPELINE_INITIALISATION { + + take: + version // boolean: Display version and exit + help // boolean: Display help text + validate_params // boolean: Boolean whether to validate parameters against the schema at runtime + monochrome_logs // boolean: Do not use coloured log outputs + nextflow_cli_args // array: List of positional nextflow CLI args + outdir // string: The output directory where the results will be saved + input // string: Path to input assemblysheet + + main: + + ch_versions = Channel.empty() + + // + // Print version and exit if required and dump pipeline parameters to JSON file + // + UTILS_NEXTFLOW_PIPELINE ( + version, + true, + outdir, + workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1 + ) + + // + // Validate parameters and generate parameter summary to stdout + // + pre_help_text = nfCoreLogo(monochrome_logs) + post_help_text = '\n' + workflowCitation() + '\n' + dashedLine(monochrome_logs) + def String workflow_command = "nextflow run ${workflow.manifest.name} -profile --input assemblysheet.csv --outdir " + UTILS_NFVALIDATION_PLUGIN ( + help, + workflow_command, + pre_help_text, + post_help_text, + validate_params, + "nextflow_schema.json" + ) + + // + // Check config provided to the pipeline + // + UTILS_NFCORE_PIPELINE ( + nextflow_cli_args + ) + // + // Custom validation for pipeline parameters + // + validateInputParameters() + + emit: + versions = ch_versions +} + +/* +======================================================================================== + SUBWORKFLOW FOR PIPELINE COMPLETION +======================================================================================== +*/ + +workflow PIPELINE_COMPLETION { + + take: + email // string: email address + email_on_fail // string: email address sent on pipeline failure + plaintext_email // boolean: Send plain-text email instead of HTML + outdir // path: Path to output directory where results will be published + monochrome_logs // boolean: Disable ANSI colour codes in log output + hook_url // string: hook URL for notifications + + main: + + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + + // + // Completion email and summary + // + workflow.onComplete { + if (email || email_on_fail) { + completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs) + } + + completionSummary(monochrome_logs) + + if (hook_url) { + imNotification(summary_params, hook_url) + } + } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ +// +// Check and validate pipeline parameters +// +def validateInputParameters() { + // Check for ncbi_fcs_adaptor_empire + if (!params.ncbi_fcs_adaptor_skip && !params.ncbi_fcs_adaptor_empire) { + error('ncbi_fcs_adaptor_empire must be provided when executing NCBI FCS Adaptor') + } + + // Check for ncbi_fcs_gx_tax_id + if (!params.ncbi_fcs_gx_skip && !params.ncbi_fcs_gx_tax_id) { + error('ncbi_fcs_gx_tax_id must be provided when executing NCBI FCS GX') + } + + // Check for ncbi_fcs_gx_db_path + if (!params.ncbi_fcs_gx_skip && !params.ncbi_fcs_gx_db_path) { + error('ncbi_fcs_gx_db_path must be provided when executing NCBI FCS GX') + } + + // Check for busco_mode + if (!params.busco_skip && !params.busco_mode) { + error("busco_mode must be provided when executing BUSCO") + } + + // Check for busco_lineage_datasets + if (!params.busco_skip && !params.busco_lineage_datasets) { + error('busco_lineage_datasets must be provided when executing BUSCO') + } + + // Check for tidk_repeat_seq + if (!params.tidk_skip && !params.tidk_repeat_seq) { + error('tidk_repeat_seq must be provided when executing TIDK') + } + + // Check for kraken2_db_path + if (!params.kraken2_skip && !params.kraken2_db_path) { + error('kraken2_db_path must be provided when executing Kraken2') + } +} + +def validateInput(input) { + def inputFields = 5 + def assemblyTags = input[(0..input.size()-1).step(inputFields)] + + def tagCounts = [:] + assemblyTags.each { tag -> + tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1 + } + def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key } + + if (repeatedTags.size() > 0) { + error("Please check input assemblysheet -> Multiple assemblies have the same tags!: ${repeatedTags}") + } + + return input +} + +def validateXrefAssemblies(xref) { + def xrefFields = 3 + def xrefTags = xref[(0..xref.size()-1).step(xrefFields)] + + def tagCounts = [:] + xrefTags.each { tag -> + tagCounts[tag] = tagCounts.containsKey(tag) ? tagCounts[tag] + 1 : 1 + } + def repeatedTags = tagCounts.findAll { key, count -> count > 1 }.collect { key, count -> key } + + if (repeatedTags.size() > 0) { + error("Please check synteny_xref_assemblies -> Multiple xref assemblies have the same tags!: ${repeatedTags}") + } + + return xref +} + +def jsonifyParams(params) { + return JsonOutput.toJson(params).toString() +} + +def jsonifySummaryParams(params) { + + def summary = [:] + for (group in params.keySet()) { + for (subgroup in params[group].keySet()) { + if ( params[group][subgroup] ) { summary << [ "$subgroup": "${params[group][subgroup]}" ] } + } + } + + return JsonOutput.toJson(summary).toString() +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf new file mode 100644 index 00000000..ac31f28f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -0,0 +1,126 @@ +// +// Subworkflow with functionality that may be useful for any Nextflow pipeline +// + +import org.yaml.snakeyaml.Yaml +import groovy.json.JsonOutput +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NEXTFLOW_PIPELINE { + + take: + print_version // boolean: print version + dump_parameters // boolean: dump parameters + outdir // path: base directory used to publish pipeline results + check_conda_channels // boolean: check conda channels + + main: + + // + // Print workflow version and exit on --version + // + if (print_version) { + log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + System.exit(0) + } + + // + // Dump pipeline parameters to a JSON file + // + if (dump_parameters && outdir) { + dumpParametersToJSON(outdir) + } + + // + // When running with Conda, warn if channels have not been set-up appropriately + // + if (check_conda_channels) { + checkCondaChannels() + } + + emit: + dummy_emit = true +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Generate version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Dump pipeline parameters to a JSON file +// +def dumpParametersToJSON(outdir) { + def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = JsonOutput.toJson(params) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() +} + +// +// When running with -profile conda, warn if channels have not been set-up appropriately +// +def checkCondaChannels() { + Yaml parser = new Yaml() + def channels = [] + try { + def config = parser.load("conda config --show channels".execute().text) + channels = config.channels + } catch(NullPointerException | IOException e) { + log.warn "Could not verify conda channel configuration." + return + } + + // Check that all channels are present + // This channel list is ordered by required channel priority. + def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean + + // Check that they are in the right order + def channel_priority_violation = false + def n = required_channels_in_order.size() + for (int i = 0; i < n - 1; i++) { + channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + } + + if (channels_missing | channel_priority_violation) { + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " There is a problem with your Conda configuration!\n\n" + + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + + " Please refer to https://bioconda.github.io/\n" + + " The observed channel order is \n" + + " ${channels}\n" + + " but the following channel order is required:\n" + + " ${required_channels_in_order}\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml new file mode 100644 index 00000000..e5c3a0a8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NEXTFLOW_PIPELINE" +description: Subworkflow with functionality that may be useful for any Nextflow pipeline +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - print_version: + type: boolean + description: | + Print the version of the pipeline and exit + - dump_parameters: + type: boolean + description: | + Dump the parameters of the pipeline to a JSON file + - output_directory: + type: directory + description: Path to output dir to write JSON file to. + pattern: "results/" + - check_conda_channel: + type: boolean + description: | + Check if the conda channel priority is correct. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" + - "@drpatelh" +maintainers: + - "@adamrtalbot" + - "@drpatelh" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..68718e4f --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test @@ -0,0 +1,54 @@ + +nextflow_function { + + name "Test Functions" + script "subworkflows/nf-core/utils_nextflow_pipeline/main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Test Function getWorkflowVersion") { + + function "getWorkflowVersion" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dumpParametersToJSON") { + + function "dumpParametersToJSON" + + when { + function { + """ + // define inputs of the function here. Example: + input[0] = "$outputDir" + """.stripIndent() + } + } + + then { + assertAll( + { assert function.success } + ) + } + } + + test("Test Function checkCondaChannels") { + + function "checkCondaChannels" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..e3f0baf4 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,20 @@ +{ + "Test Function getWorkflowVersion": { + "content": [ + "v9.9.9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:05.308243" + }, + "Test Function checkCondaChannels": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:12.425833" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..ca964ce8 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,111 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NEXTFLOW_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config" + workflow "UTILS_NEXTFLOW_PIPELINE" + tag 'subworkflows' + tag 'utils_nextflow_pipeline' + tag 'subworkflows/utils_nextflow_pipeline' + + test("Should run no inputs") { + + when { + workflow { + """ + print_version = false + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should print version") { + + when { + workflow { + """ + print_version = true + dump_parameters = false + outdir = null + check_conda_channels = false + + input[0] = print_version + input[1] = dump_parameters + input[2] = outdir + input[3] = check_conda_channels + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.stdout.contains("nextflow_workflow v9.9.9") } + ) + } + } + + test("Should dump params") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = 'results' + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should not create params JSON if no output directory") { + + when { + workflow { + """ + print_version = false + dump_parameters = true + outdir = null + check_conda_channels = false + + input[0] = false + input[1] = true + input[2] = outdir + input[3] = false + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml new file mode 100644 index 00000000..f8476112 --- /dev/null +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nextflow_pipeline: + - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf new file mode 100644 index 00000000..a8b55d6f --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -0,0 +1,440 @@ +// +// Subworkflow with utility functions specific to the nf-core pipeline template +// + +import org.yaml.snakeyaml.Yaml +import nextflow.extension.FilesEx + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFCORE_PIPELINE { + + take: + nextflow_cli_args + + main: + valid_config = checkConfigProvided() + checkProfileProvided(nextflow_cli_args) + + emit: + valid_config +} + +/* +======================================================================================== + FUNCTIONS +======================================================================================== +*/ + +// +// Warn if a -profile or Nextflow config has not been provided to run the pipeline +// +def checkConfigProvided() { + valid_config = true + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " + valid_config = false + } + return valid_config +} + +// +// Exit pipeline if --profile contains spaces +// +def checkProfileProvided(nextflow_cli_args) { + if (workflow.profile.endsWith(',')) { + error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } + if (nextflow_cli_args[0]) { + log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + } +} + +// +// Citation string for pipeline +// +def workflowCitation() { + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + + "* The pipeline\n" + + " ${workflow.manifest.doi}\n\n" + + "* The nf-core framework\n" + + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + + "* Software dependencies\n" + + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" +} + +// +// Generate workflow version string +// +def getWorkflowVersion() { + String version_string = "" + if (workflow.manifest.version) { + def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' + version_string += "${prefix_v}${workflow.manifest.version}" + } + + if (workflow.commitId) { + def git_shortsha = workflow.commitId.substring(0, 7) + version_string += "-g${git_shortsha}" + } + + return version_string +} + +// +// Get software versions for pipeline +// +def processVersionsFromYAML(yaml_file) { + Yaml yaml = new Yaml() + versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + return yaml.dumpAsMap(versions).trim() +} + +// +// Get workflow version for pipeline +// +def workflowVersionToYAML() { + return """ + Workflow: + $workflow.manifest.name: ${getWorkflowVersion()} + Nextflow: $workflow.nextflow.version + """.stripIndent().trim() +} + +// +// Get channel of software versions used in pipeline in YAML format +// +def softwareVersionsToYAML(ch_versions) { + return ch_versions + .unique() + .map { processVersionsFromYAML(it) } + .unique() + .mix(Channel.of(workflowVersionToYAML())) +} + +// +// Get workflow summary for MultiQC +// +def paramsSummaryMultiqc(summary_params) { + def summary_section = '' + for (group in summary_params.keySet()) { + def group_params = summary_params.get(group) // This gets the parameters of that particular group + if (group_params) { + summary_section += "

    $group

    \n" + summary_section += "
    \n" + for (param in group_params.keySet()) { + summary_section += "
    $param
    ${group_params.get(param) ?: 'N/A'}
    \n" + } + summary_section += "
    \n" + } + } + + String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" + + return yaml_file_text +} + +// +// nf-core logo +// +def nfCoreLogo(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + String.format( + """\n + ${dashedLine(monochrome_logs)} + ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} + ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} + ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} + ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} + ${colors.green}`._,._,\'${colors.reset} + ${colors.purple} ${workflow.manifest.name} ${getWorkflowVersion()}${colors.reset} + ${dashedLine(monochrome_logs)} + """.stripIndent() + ) +} + +// +// Return dashed line +// +def dashedLine(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + return "-${colors.dim}----------------------------------------------------${colors.reset}-" +} + +// +// ANSII colours used for terminal logging +// +def logColours(monochrome_logs=true) { + Map colorcodes = [:] + + // Reset / Meta + colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" + colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" + colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" + colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" + colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" + colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" + colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" + + // Regular Colors + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + + // Bold + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + + // Underline + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + + // High Intensity + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + + // Bold High Intensity + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + + return colorcodes +} + +// +// Attach the multiqc report to email +// +def attachMultiqcReport(multiqc_report) { + def mqc_report = null + try { + if (workflow.success) { + mqc_report = multiqc_report.getVal() + if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { + if (mqc_report.size() > 1) { + log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + } + mqc_report = mqc_report[0] + } + } + } catch (all) { + if (multiqc_report) { + log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + } + } + return mqc_report +} + +// +// Construct and send completion email +// +def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { + + // Set up the e-mail variables + def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + if (!workflow.success) { + subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + } + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['Date Started'] = workflow.start + misc_fields['Date Completed'] = workflow.complete + misc_fields['Pipeline script file path'] = workflow.scriptFile + misc_fields['Pipeline script hash ID'] = workflow.scriptId + if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository + if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId + if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build + misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp + + def email_fields = [:] + email_fields['version'] = getWorkflowVersion() + email_fields['runName'] = workflow.runName + email_fields['success'] = workflow.success + email_fields['dateComplete'] = workflow.complete + email_fields['duration'] = workflow.duration + email_fields['exitStatus'] = workflow.exitStatus + email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + email_fields['errorReport'] = (workflow.errorReport ?: 'None') + email_fields['commandLine'] = workflow.commandLine + email_fields['projectDir'] = workflow.projectDir + email_fields['summary'] = summary << misc_fields + + // On success try attach the multiqc report + def mqc_report = attachMultiqcReport(multiqc_report) + + // Check if we are only sending emails on failure + def email_address = email + if (!email && email_on_fail && !workflow.success) { + email_address = email_on_fail + } + + // Render the TXT template + def engine = new groovy.text.GStringTemplateEngine() + def tf = new File("${workflow.projectDir}/assets/email_template.txt") + def txt_template = engine.createTemplate(tf).make(email_fields) + def email_txt = txt_template.toString() + + // Render the HTML template + def hf = new File("${workflow.projectDir}/assets/email_template.html") + def html_template = engine.createTemplate(hf).make(email_fields) + def email_html = html_template.toString() + + // Render the sendmail template + def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit + def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") + def sendmail_template = engine.createTemplate(sf).make(smail_fields) + def sendmail_html = sendmail_template.toString() + + // Send the HTML e-mail + Map colors = logColours(monochrome_logs) + if (email_address) { + try { + if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } + [ 'sendmail', '-t' ].execute() << sendmail_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" + } catch (all) { + // Catch failures and try with plaintext + def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + mail_cmd.execute() << email_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + } + } + + // Write summary e-mail HTML to a file + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") + output_hf.withWriter { w -> w << email_html } + FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") + output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() +} + +// +// Print pipeline summary on completion +// +def completionSummary(monochrome_logs=true) { + Map colors = logColours(monochrome_logs) + if (workflow.success) { + if (workflow.stats.ignoredCount == 0) { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + } + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } +} + +// +// Construct and send a notification to a web server as JSON e.g. Microsoft Teams and Slack +// +def imNotification(summary_params, hook_url) { + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) misc_fields['repository'] = workflow.repository + if (workflow.commitId) misc_fields['commitid'] = workflow.commitId + if (workflow.revision) misc_fields['revision'] = workflow.revision + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + + def msg_fields = [:] + msg_fields['version'] = getWorkflowVersion() + msg_fields['runName'] = workflow.runName + msg_fields['success'] = workflow.success + msg_fields['dateComplete'] = workflow.complete + msg_fields['duration'] = workflow.duration + msg_fields['exitStatus'] = workflow.exitStatus + msg_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + msg_fields['errorReport'] = (workflow.errorReport ?: 'None') + msg_fields['commandLine'] = workflow.commandLine.replaceFirst(/ +--hook_url +[^ ]+/, "") + msg_fields['projectDir'] = workflow.projectDir + msg_fields['summary'] = summary << misc_fields + + // Render the JSON template + def engine = new groovy.text.GStringTemplateEngine() + // Different JSON depending on the service provider + // Defaults to "Adaptive Cards" (https://adaptivecards.io), except Slack which has its own format + def json_path = hook_url.contains("hooks.slack.com") ? "slackreport.json" : "adaptivecard.json" + def hf = new File("${workflow.projectDir}/assets/${json_path}") + def json_template = engine.createTemplate(hf).make(msg_fields) + def json_message = json_template.toString() + + // POST + def post = new URL(hook_url).openConnection(); + post.setRequestMethod("POST") + post.setDoOutput(true) + post.setRequestProperty("Content-Type", "application/json") + post.getOutputStream().write(json_message.getBytes("UTF-8")); + def postRC = post.getResponseCode(); + if (! postRC.equals(200)) { + log.warn(post.getErrorStream().getText()); + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml new file mode 100644 index 00000000..d08d2434 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml @@ -0,0 +1,24 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFCORE_PIPELINE" +description: Subworkflow with utility functions specific to the nf-core pipeline template +keywords: + - utility + - pipeline + - initialise + - version +components: [] +input: + - nextflow_cli_args: + type: list + description: | + Nextflow CLI positional arguments +output: + - success: + type: boolean + description: | + Dummy output to indicate success +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test new file mode 100644 index 00000000..1dc317f8 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test @@ -0,0 +1,134 @@ + +nextflow_function { + + name "Test Functions" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Test Function checkConfigProvided") { + + function "checkConfigProvided" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function checkProfileProvided") { + + function "checkProfileProvided" + + when { + function { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function workflowCitation") { + + function "workflowCitation" + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function nfCoreLogo") { + + function "nfCoreLogo" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function dashedLine") { + + function "dashedLine" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function without logColours") { + + function "logColours" + + when { + function { + """ + input[0] = true + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } + + test("Test Function with logColours") { + function "logColours" + + when { + function { + """ + input[0] = false + """ + } + } + + then { + assertAll( + { assert function.success }, + { assert snapshot(function.result).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap new file mode 100644 index 00000000..1037232c --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -0,0 +1,166 @@ +{ + "Test Function checkProfileProvided": { + "content": null, + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:03.360873" + }, + "Test Function checkConfigProvided": { + "content": [ + true + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:59.729647" + }, + "Test Function nfCoreLogo": { + "content": [ + "\n\n-\u001b[2m----------------------------------------------------\u001b[0m-\n \u001b[0;32m,--.\u001b[0;30m/\u001b[0;32m,-.\u001b[0m\n\u001b[0;34m ___ __ __ __ ___ \u001b[0;32m/,-._.--~'\u001b[0m\n\u001b[0;34m |\\ | |__ __ / ` / \\ |__) |__ \u001b[0;33m} {\u001b[0m\n\u001b[0;34m | \\| | \\__, \\__/ | \\ |___ \u001b[0;32m\\`-._,-`-,\u001b[0m\n \u001b[0;32m`._,._,'\u001b[0m\n\u001b[0;35m nextflow_workflow v9.9.9\u001b[0m\n-\u001b[2m----------------------------------------------------\u001b[0m-\n" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:10.562934" + }, + "Test Function workflowCitation": { + "content": [ + "If you use nextflow_workflow for your analysis please cite:\n\n* The pipeline\n https://doi.org/10.5281/zenodo.5070524\n\n* The nf-core framework\n https://doi.org/10.1038/s41587-020-0439-x\n\n* Software dependencies\n https://github.com/nextflow_workflow/blob/master/CITATIONS.md" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:07.019761" + }, + "Test Function without logColours": { + "content": [ + { + "reset": "", + "bold": "", + "dim": "", + "underlined": "", + "blink": "", + "reverse": "", + "hidden": "", + "black": "", + "red": "", + "green": "", + "yellow": "", + "blue": "", + "purple": "", + "cyan": "", + "white": "", + "bblack": "", + "bred": "", + "bgreen": "", + "byellow": "", + "bblue": "", + "bpurple": "", + "bcyan": "", + "bwhite": "", + "ublack": "", + "ured": "", + "ugreen": "", + "uyellow": "", + "ublue": "", + "upurple": "", + "ucyan": "", + "uwhite": "", + "iblack": "", + "ired": "", + "igreen": "", + "iyellow": "", + "iblue": "", + "ipurple": "", + "icyan": "", + "iwhite": "", + "biblack": "", + "bired": "", + "bigreen": "", + "biyellow": "", + "biblue": "", + "bipurple": "", + "bicyan": "", + "biwhite": "" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:17.969323" + }, + "Test Function dashedLine": { + "content": [ + "-\u001b[2m----------------------------------------------------\u001b[0m-" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:14.366181" + }, + "Test Function with logColours": { + "content": [ + { + "reset": "\u001b[0m", + "bold": "\u001b[1m", + "dim": "\u001b[2m", + "underlined": "\u001b[4m", + "blink": "\u001b[5m", + "reverse": "\u001b[7m", + "hidden": "\u001b[8m", + "black": "\u001b[0;30m", + "red": "\u001b[0;31m", + "green": "\u001b[0;32m", + "yellow": "\u001b[0;33m", + "blue": "\u001b[0;34m", + "purple": "\u001b[0;35m", + "cyan": "\u001b[0;36m", + "white": "\u001b[0;37m", + "bblack": "\u001b[1;30m", + "bred": "\u001b[1;31m", + "bgreen": "\u001b[1;32m", + "byellow": "\u001b[1;33m", + "bblue": "\u001b[1;34m", + "bpurple": "\u001b[1;35m", + "bcyan": "\u001b[1;36m", + "bwhite": "\u001b[1;37m", + "ublack": "\u001b[4;30m", + "ured": "\u001b[4;31m", + "ugreen": "\u001b[4;32m", + "uyellow": "\u001b[4;33m", + "ublue": "\u001b[4;34m", + "upurple": "\u001b[4;35m", + "ucyan": "\u001b[4;36m", + "uwhite": "\u001b[4;37m", + "iblack": "\u001b[0;90m", + "ired": "\u001b[0;91m", + "igreen": "\u001b[0;92m", + "iyellow": "\u001b[0;93m", + "iblue": "\u001b[0;94m", + "ipurple": "\u001b[0;95m", + "icyan": "\u001b[0;96m", + "iwhite": "\u001b[0;97m", + "biblack": "\u001b[1;90m", + "bired": "\u001b[1;91m", + "bigreen": "\u001b[1;92m", + "biyellow": "\u001b[1;93m", + "biblue": "\u001b[1;94m", + "bipurple": "\u001b[1;95m", + "bicyan": "\u001b[1;96m", + "biwhite": "\u001b[1;97m" + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:21.714424" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test new file mode 100644 index 00000000..8940d32d --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test @@ -0,0 +1,29 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFCORE_PIPELINE" + script "../main.nf" + config "subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config" + workflow "UTILS_NFCORE_PIPELINE" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "utils_nfcore_pipeline" + tag "subworkflows/utils_nfcore_pipeline" + + test("Should run without failures") { + + when { + workflow { + """ + input[0] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match() } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap new file mode 100644 index 00000000..859d1030 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -0,0 +1,19 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + true + ], + "valid_config": [ + true + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:25.726491" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config new file mode 100644 index 00000000..d0a926bf --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config @@ -0,0 +1,9 @@ +manifest { + name = 'nextflow_workflow' + author = """nf-core""" + homePage = 'https://127.0.0.1' + description = """Dummy pipeline""" + nextflowVersion = '!>=23.04.0' + version = '9.9.9' + doi = 'https://doi.org/10.5281/zenodo.5070524' +} diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml new file mode 100644 index 00000000..ac8523c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfcore_pipeline: + - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf new file mode 100644 index 00000000..2585b65d --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -0,0 +1,62 @@ +// +// Subworkflow that uses the nf-validation plugin to render help text and parameter summary +// + +/* +======================================================================================== + IMPORT NF-VALIDATION PLUGIN +======================================================================================== +*/ + +include { paramsHelp } from 'plugin/nf-validation' +include { paramsSummaryLog } from 'plugin/nf-validation' +include { validateParameters } from 'plugin/nf-validation' + +/* +======================================================================================== + SUBWORKFLOW DEFINITION +======================================================================================== +*/ + +workflow UTILS_NFVALIDATION_PLUGIN { + + take: + print_help // boolean: print help + workflow_command // string: default commmand used to run pipeline + pre_help_text // string: string to be printed before help text and summary log + post_help_text // string: string to be printed after help text and summary log + validate_params // boolean: validate parameters + schema_filename // path: JSON schema file, null to use default value + + main: + + log.debug "Using schema file: ${schema_filename}" + + // Default values for strings + pre_help_text = pre_help_text ?: '' + post_help_text = post_help_text ?: '' + workflow_command = workflow_command ?: '' + + // + // Print help message if needed + // + if (print_help) { + log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + System.exit(0) + } + + // + // Print parameter summary to stdout + // + log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + + // + // Validate parameters relative to the parameter JSON schema + // + if (validate_params){ + validateParameters(parameters_schema: schema_filename) + } + + emit: + dummy_emit = true +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml new file mode 100644 index 00000000..3d4a6b04 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/meta.yml @@ -0,0 +1,44 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "UTILS_NFVALIDATION_PLUGIN" +description: Use nf-validation to initiate and validate a pipeline +keywords: + - utility + - pipeline + - initialise + - validation +components: [] +input: + - print_help: + type: boolean + description: | + Print help message and exit + - workflow_command: + type: string + description: | + The command to run the workflow e.g. "nextflow run main.nf" + - pre_help_text: + type: string + description: | + Text to print before the help message + - post_help_text: + type: string + description: | + Text to print after the help message + - validate_params: + type: boolean + description: | + Validate the parameters and error if invalid. + - schema_filename: + type: string + description: | + The filename of the schema to validate against. +output: + - dummy_emit: + type: boolean + description: | + Dummy emit to make nf-core subworkflows lint happy +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" + - "@maxulysse" diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test new file mode 100644 index 00000000..5784a33f --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -0,0 +1,200 @@ +nextflow_workflow { + + name "Test Workflow UTILS_NFVALIDATION_PLUGIN" + script "../main.nf" + workflow "UTILS_NFVALIDATION_PLUGIN" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "plugin/nf-validation" + tag "'plugin/nf-validation'" + tag "utils_nfvalidation_plugin" + tag "subworkflows/utils_nfvalidation_plugin" + + test("Should run nothing") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + + test("Should run help") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with command") { + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = null + post_help_text = null + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } } + ) + } + } + + test("Should run help with extra text") { + + + when { + + params { + monochrome_logs = true + test_data = '' + } + workflow { + """ + help = true + workflow_command = "nextflow run noorg/doesntexist" + pre_help_text = "pre-help-text" + post_help_text = "post-help-text" + validate_params = false + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert workflow.exitStatus == 0 }, + { assert workflow.stdout.any { it.contains('pre-help-text') } }, + { assert workflow.stdout.any { it.contains('nextflow run noorg/doesntexist') } }, + { assert workflow.stdout.any { it.contains('Input/output options') } }, + { assert workflow.stdout.any { it.contains('--outdir') } }, + { assert workflow.stdout.any { it.contains('post-help-text') } } + ) + } + } + + test("Should validate params") { + + when { + + params { + monochrome_logs = true + test_data = '' + outdir = 1 + } + workflow { + """ + help = false + workflow_command = null + pre_help_text = null + post_help_text = null + validate_params = true + schema_filename = "$moduleTestDir/nextflow_schema.json" + + input[0] = help + input[1] = workflow_command + input[2] = pre_help_text + input[3] = post_help_text + input[4] = validate_params + input[5] = schema_filename + """ + } + } + + then { + assertAll( + { assert workflow.failed }, + { assert workflow.stdout.any { it.contains('ERROR ~ ERROR: Validation of pipeline parameters failed!') } } + ) + } + } +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json new file mode 100644 index 00000000..7626c1c9 --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/nextflow_schema.json @@ -0,0 +1,96 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/./master/nextflow_schema.json", + "title": ". pipeline parameters", + "description": "", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": ["outdir"], + "properties": { + "validate_params": { + "type": "boolean", + "description": "Validate parameters?", + "default": true, + "hidden": true + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "test_data_base": { + "type": "string", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/modules", + "description": "Base for test data directory", + "hidden": true + }, + "test_data": { + "type": "string", + "description": "Fake test data param", + "hidden": true + } + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "logo": { + "type": "boolean", + "default": true, + "description": "Display nf-core logo in console output.", + "fa_icon": "fas fa-image", + "hidden": true + }, + "singularity_pull_docker_container": { + "type": "boolean", + "description": "Pull Singularity container from Docker?", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Use monochrome_logs", + "hidden": true + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ] +} diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml new file mode 100644 index 00000000..60b1cfff --- /dev/null +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/utils_nfvalidation_plugin: + - subworkflows/nf-core/utils_nfvalidation_plugin/** diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 38217ec5..ea228334 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -1,31 +1,22 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - PRINT PARAMS SUMMARY + IMPORT MODULES / SUBWORKFLOWS / FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { paramsSummaryLog; paramsSummaryMap; fromSamplesheet } from 'plugin/nf-validation' +include { validateInput } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' +include { validateXrefAssemblies } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' +include { jsonifyParams } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' +include { jsonifySummaryParams } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' -def logo = NfcoreTemplate.logo(workflow, params.monochrome_logs) -def citation = '\n' + WorkflowMain.citation(workflow) + '\n' -def summary_params = paramsSummaryMap(workflow) +include { paramsSummaryMap } from 'plugin/nf-validation' +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -// Print parameter summary log to screen -log.info logo + paramsSummaryLog(workflow) + citation - -WorkflowAssemblyqc.initialise(params, log) - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - CONFIG FILES -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT LOCAL MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ +include { GUNZIP as GUNZIP_FASTA } from '../modules/nf-core/gunzip/main' +include { GUNZIP as GUNZIP_GFF3 } from '../modules/nf-core/gunzip/main' +include { FASTAVALIDATOR } from '../modules/nf-core/fastavalidator/main' +include { FASTA_EXPLORE_SEARCH_PLOT_TIDK } from '../subworkflows/nf-core/fasta_explore_search_plot_tidk/main' include { GT_STAT } from '../modules/pfr/gt/stat/main' include { GFF3_VALIDATE } from '../subworkflows/pfr/gff3_validate/main' @@ -39,24 +30,6 @@ include { FQ2HIC } from '../subworkflows/local/fq2hic include { FASTA_SYNTENY } from '../subworkflows/local/fasta_synteny' include { CREATEREPORT } from '../modules/local/createreport' -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IMPORT NF-CORE MODULES/SUBWORKFLOWS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -// -// MODULE: Installed directly from nf-core/modules -// - -include { GUNZIP as GUNZIP_FASTA } from '../modules/nf-core/gunzip/main' -include { GUNZIP as GUNZIP_GFF3 } from '../modules/nf-core/gunzip/main' -include { FASTAVALIDATOR } from '../modules/nf-core/fastavalidator/main' -include { FASTA_EXPLORE_SEARCH_PLOT_TIDK } from '../subworkflows/nf-core/fasta_explore_search_plot_tidk/main' - -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' - - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN MAIN WORKFLOW @@ -72,7 +45,7 @@ workflow ASSEMBLYQC { ch_versions = Channel.empty() ch_input = Channel.fromSamplesheet('input') | collect - | flatMap { WorkflowAssemblyqc.validateInput(it) } + | flatMap { validateInput(it) } | buffer(size: input_assembly_sheet_fields) ch_target_assemby_branch = ch_input @@ -130,7 +103,7 @@ workflow ASSEMBLYQC { ? Channel.empty() : Channel.fromSamplesheet('synteny_xref_assemblies') | collect - | flatMap { WorkflowAssemblyqc.validateXrefAssemblies(it) } + | flatMap { validateXrefAssemblies(it) } | buffer(size: synteny_xref_assemblies_fields) | map { tag, fa, labels -> [ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ] @@ -424,9 +397,13 @@ workflow ASSEMBLYQC { ch_synteny_plot = FASTA_SYNTENY.out.plot ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) - // MODULE: CUSTOM_DUMPSOFTWAREVERSIONS - CUSTOM_DUMPSOFTWAREVERSIONS ( - ch_versions.unique().collectFile(name: 'collated_versions.yml') + // Collate and save software versions + softwareVersionsToYAML ( ch_versions ) + | collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true ) // MODULE: CREATEREPORT @@ -444,28 +421,11 @@ workflow ASSEMBLYQC { ch_hic_html .collect().ifEmpty([]), ch_synteny_plot .collect().ifEmpty([]), CUSTOM_DUMPSOFTWAREVERSIONS .out.yml, - Channel.of ( WorkflowAssemblyqc.jsonifyParams ( params ) ), - Channel.of ( WorkflowAssemblyqc.jsonifySummaryParams ( summary_params ) ) + Channel.of ( jsonifyParams ( params ) ), + Channel.of ( jsonifySummaryParams ( summary_params ) ) ) } -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - COMPLETION EMAIL AND SUMMARY -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ - -workflow.onComplete { - if (params.email || params.email_on_fail) { - NfcoreTemplate.email(workflow, params, summary_params, projectDir, log) - } - NfcoreTemplate.dump_parameters(workflow, params) - NfcoreTemplate.summary(workflow, params, log) - if (params.hook_url) { - NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) - } -} - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END From 082df60946c8b399012a10372ed393684521c778 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 14:47:40 +1200 Subject: [PATCH 05/76] Moved input channel init to sub workflow --- main.nf | 24 ++++- nextflow.config | 1 + .../utils_nfcore_assemblyqc_pipeline/main.nf | 47 ++++++++- workflows/assemblyqc.nf | 97 +++++++------------ 4 files changed, 104 insertions(+), 65 deletions(-) diff --git a/main.nf b/main.nf index 7a002146..eb7e9e94 100755 --- a/main.nf +++ b/main.nf @@ -30,10 +30,24 @@ include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_as // workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { + take: + ch_input + ch_hic_reads + ch_xref_assembly + ch_params_as_json + ch_summary_params_as_json + + main: // // WORKFLOW: Run pipeline // - ASSEMBLYQC () + ASSEMBLYQC ( + ch_input, + ch_hic_reads, + ch_xref_assembly, + ch_params_as_json, + ch_summary_params_as_json + ) } /* @@ -62,7 +76,13 @@ workflow { // // WORKFLOW: Run main workflow // - PLANTFOODRESEARCHOPEN_ASSEMBLYQC () + PLANTFOODRESEARCHOPEN_ASSEMBLYQC ( + PIPELINE_INITIALISATION.out.input, + PIPELINE_INITIALISATION.out.hic_reads, + PIPELINE_INITIALISATION.out.xref_assembly, + PIPELINE_INITIALISATION.out.params_as_json, + PIPELINE_INITIALISATION.out.summary_params_as_json + ) // // SUBWORKFLOW: Run completion tasks diff --git a/nextflow.config b/nextflow.config index c110c029..84ddfb0c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -72,6 +72,7 @@ params { email_on_fail = null plaintext_email = false monochrome_logs = false + monochromeLogs = false hook_url = null help = false version = false diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 7013d07c..e3433f54 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -41,7 +41,8 @@ workflow PIPELINE_INITIALISATION { main: - ch_versions = Channel.empty() + ch_versions = Channel.empty() + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") // // Print version and exit if required and dump pipeline parameters to JSON file @@ -74,13 +75,55 @@ workflow PIPELINE_INITIALISATION { UTILS_NFCORE_PIPELINE ( nextflow_cli_args ) + // // Custom validation for pipeline parameters // validateInputParameters() + // + // Initialise input channels + // + def input_assembly_sheet_fields = 5 + def synteny_xref_assemblies_fields = 3 + + ch_input = Channel.fromSamplesheet('input') + | collect + | flatMap { validateInput(it) } + | buffer(size: input_assembly_sheet_fields) + + ch_hic_reads = ! params.hic + ? Channel.empty() + : ( + "$params.hic".find(/.*[\/].*\.(fastq|fq)\.gz/) + ? Channel.fromFilePairs(params.hic, checkIfExists: true) + : Channel.fromSRA(params.hic) + ) + | map{ sample, fq -> + [ [ id: sample, single_end: false ], fq ] + } + + ch_xref_assembly = params.synteny_skip || ! params.synteny_xref_assemblies + ? Channel.empty() + : Channel.fromSamplesheet('synteny_xref_assemblies') + | collect + | flatMap { validateXrefAssemblies(it) } + | buffer(size: synteny_xref_assemblies_fields) + | map { tag, fa, labels -> + [ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ] + } + + // Initialise parameter channels + ch_params_as_json = Channel.of ( jsonifyParams ( params ) ) + ch_summary_params_as_json = Channel.of ( jsonifySummaryParams ( summary_params ) ) + emit: - versions = ch_versions + input = ch_input + hic_reads = ch_hic_reads + xref_assembly = ch_xref_assembly + params_as_json = ch_params_as_json + summary_params_as_json = ch_summary_params_as_json + versions = ch_versions } /* diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index ea228334..2b25993e 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -4,13 +4,6 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { validateInput } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' -include { validateXrefAssemblies } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' -include { jsonifyParams } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' -include { jsonifySummaryParams } from '../subworkflows/local/utils_nfcore_assemblyqc_pipeline/main' - -include { paramsSummaryMap } from 'plugin/nf-validation' -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' include { GUNZIP as GUNZIP_FASTA } from '../modules/nf-core/gunzip/main' @@ -36,18 +29,21 @@ include { CREATEREPORT } from '../modules/local/createrepor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -def input_assembly_sheet_fields = 5 -def synteny_xref_assemblies_fields = 3 - workflow ASSEMBLYQC { - // Input channels + take: + ch_input + ch_hic_reads + ch_xref_assembly + ch_params_as_json + ch_summary_params_as_json + + main: + + // Versions ch_versions = Channel.empty() - ch_input = Channel.fromSamplesheet('input') - | collect - | flatMap { validateInput(it) } - | buffer(size: input_assembly_sheet_fields) + // Input channels ch_target_assemby_branch = ch_input | map { tag, fasta, gff, mono_ids, labels -> [ [ id: tag ], file(fasta, checkIfExists: true) ] @@ -88,27 +84,6 @@ workflow ASSEMBLYQC { ) } - ch_hic_reads = ! params.hic - ? Channel.empty() - : ( - "$params.hic".find(/.*[\/].*\.(fastq|fq)\.gz/) - ? Channel.fromFilePairs(params.hic, checkIfExists: true) - : Channel.fromSRA(params.hic) - ) - | map{ sample, fq -> - [ [ id: sample, single_end: false ], fq ] - } - - ch_xref_assembly = params.synteny_skip || ! params.synteny_xref_assemblies - ? Channel.empty() - : Channel.fromSamplesheet('synteny_xref_assemblies') - | collect - | flatMap { validateXrefAssemblies(it) } - | buffer(size: synteny_xref_assemblies_fields) - | map { tag, fa, labels -> - [ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ] - } - // MODULE: GUNZIP as GUNZIP_FASTA GUNZIP_FASTA ( ch_target_assemby_branch.gz ) @@ -398,32 +373,32 @@ workflow ASSEMBLYQC { ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) // Collate and save software versions - softwareVersionsToYAML ( ch_versions ) - | collectFile( - storeDir: "${params.outdir}/pipeline_info", - name: 'nf_core_pipeline_software_mqc_versions.yml', - sort: true, - newLine: true - ) + ch_versions_yml = softwareVersionsToYAML(ch_versions) + | collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true + ) - // MODULE: CREATEREPORT - CREATEREPORT( - ch_invalid_assembly_log .map { meta, file -> file }.collect().ifEmpty([]), - ch_invalid_gff3_log .map { meta, file -> file }.collect().ifEmpty([]), - ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), - ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), - ch_assemblathon_stats .collect().ifEmpty([]), - ch_gt_stats .collect().ifEmpty([]), - ch_busco_summary .mix(ch_busco_plot).collect().ifEmpty([]), - ch_tidk_outputs .collect().ifEmpty([]), - ch_lai_outputs .collect().ifEmpty([]), - ch_kraken2_plot .collect().ifEmpty([]), - ch_hic_html .collect().ifEmpty([]), - ch_synteny_plot .collect().ifEmpty([]), - CUSTOM_DUMPSOFTWAREVERSIONS .out.yml, - Channel.of ( jsonifyParams ( params ) ), - Channel.of ( jsonifySummaryParams ( summary_params ) ) - ) + // // MODULE: CREATEREPORT + // CREATEREPORT( + // ch_invalid_assembly_log .map { meta, file -> file }.collect().ifEmpty([]), + // ch_invalid_gff3_log .map { meta, file -> file }.collect().ifEmpty([]), + // ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), + // ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), + // ch_assemblathon_stats .collect().ifEmpty([]), + // ch_gt_stats .collect().ifEmpty([]), + // ch_busco_summary .mix(ch_busco_plot).collect().ifEmpty([]), + // ch_tidk_outputs .collect().ifEmpty([]), + // ch_lai_outputs .collect().ifEmpty([]), + // ch_kraken2_plot .collect().ifEmpty([]), + // ch_hic_html .collect().ifEmpty([]), + // ch_synteny_plot .collect().ifEmpty([]), + // ch_versions_yml, + // ch_params_as_json, + // ch_summary_params_as_json + // ) } /* From 15fdae0e2be7111a4728d9122b610ae0c63c8fd1 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:04:06 +1200 Subject: [PATCH 06/76] Fixed null versions.yml issue --- workflows/assemblyqc.nf | 44 +++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 2b25993e..efb6cf15 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -373,32 +373,38 @@ workflow ASSEMBLYQC { ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) // Collate and save software versions + ch_versions = ch_versions + | unique + | map { yml -> + if ( yml ) { yml } + } + ch_versions_yml = softwareVersionsToYAML(ch_versions) | collectFile( storeDir: "${params.outdir}/pipeline_info", - name: 'nf_core_pipeline_software_mqc_versions.yml', + name: 'software_versions.yml', sort: true, newLine: true ) - // // MODULE: CREATEREPORT - // CREATEREPORT( - // ch_invalid_assembly_log .map { meta, file -> file }.collect().ifEmpty([]), - // ch_invalid_gff3_log .map { meta, file -> file }.collect().ifEmpty([]), - // ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), - // ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), - // ch_assemblathon_stats .collect().ifEmpty([]), - // ch_gt_stats .collect().ifEmpty([]), - // ch_busco_summary .mix(ch_busco_plot).collect().ifEmpty([]), - // ch_tidk_outputs .collect().ifEmpty([]), - // ch_lai_outputs .collect().ifEmpty([]), - // ch_kraken2_plot .collect().ifEmpty([]), - // ch_hic_html .collect().ifEmpty([]), - // ch_synteny_plot .collect().ifEmpty([]), - // ch_versions_yml, - // ch_params_as_json, - // ch_summary_params_as_json - // ) + // MODULE: CREATEREPORT + CREATEREPORT( + ch_invalid_assembly_log .map { meta, file -> file }.collect().ifEmpty([]), + ch_invalid_gff3_log .map { meta, file -> file }.collect().ifEmpty([]), + ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), + ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), + ch_assemblathon_stats .collect().ifEmpty([]), + ch_gt_stats .collect().ifEmpty([]), + ch_busco_summary .mix(ch_busco_plot).collect().ifEmpty([]), + ch_tidk_outputs .collect().ifEmpty([]), + ch_lai_outputs .collect().ifEmpty([]), + ch_kraken2_plot .collect().ifEmpty([]), + ch_hic_html .collect().ifEmpty([]), + ch_synteny_plot .collect().ifEmpty([]), + ch_versions_yml, + ch_params_as_json, + ch_summary_params_as_json + ) } /* From 177c007156a069df5c058f23b8c5bc15bfb2e876 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:10:48 +1200 Subject: [PATCH 07/76] Updated modules json --- modules.json | 12 +-- modules/nf-core/multiqc/main.nf | 55 ------------ modules/nf-core/multiqc/meta.yml | 58 ------------- modules/nf-core/multiqc/tests/main.nf.test | 84 ------------------- .../nf-core/multiqc/tests/main.nf.test.snap | 41 --------- 5 files changed, 4 insertions(+), 246 deletions(-) delete mode 100644 modules/nf-core/multiqc/main.nf delete mode 100644 modules/nf-core/multiqc/meta.yml delete mode 100644 modules/nf-core/multiqc/tests/main.nf.test delete mode 100644 modules/nf-core/multiqc/tests/main.nf.test.snap diff --git a/modules.json b/modules.json index 564e7abd..2428508b 100644 --- a/modules.json +++ b/modules.json @@ -134,13 +134,6 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "de45447d060b8c8b98575bc637a4a575fd0638e1", - "installed_by": [ - "modules" - ] - }, "fastavalidator": { "branch": "master", "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", @@ -225,6 +218,9 @@ "fastq_trim_fastp_fastqc": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", + "installed_by": [ + "subworkflows" + ] }, "utils_nextflow_pipeline": { "branch": "master", @@ -251,4 +247,4 @@ } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf deleted file mode 100644 index 47ac352f..00000000 --- a/modules/nf-core/multiqc/main.nf +++ /dev/null @@ -1,55 +0,0 @@ -process MULTIQC { - label 'process_single' - - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.21--pyhdfd78af_0' : - 'biocontainers/multiqc:1.21--pyhdfd78af_0' }" - - input: - path multiqc_files, stageAs: "?/*" - path(multiqc_config) - path(extra_multiqc_config) - path(multiqc_logo) - - output: - path "*multiqc_report.html", emit: report - path "*_data" , emit: data - path "*_plots" , optional:true, emit: plots - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def config = multiqc_config ? "--config $multiqc_config" : '' - def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' - def logo = multiqc_logo ? /--cl-config 'custom_logo: "${multiqc_logo}"'/ : '' - """ - multiqc \\ - --force \\ - $args \\ - $config \\ - $extra_config \\ - $logo \\ - . - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS - """ - - stub: - """ - mkdir multiqc_data - touch multiqc_plots - touch multiqc_report.html - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) - END_VERSIONS - """ -} diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml deleted file mode 100644 index 45a9bc35..00000000 --- a/modules/nf-core/multiqc/meta.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: multiqc -description: Aggregate results from bioinformatics analyses across many samples into a single report -keywords: - - QC - - bioinformatics tools - - Beautiful stand-alone HTML report -tools: - - multiqc: - description: | - MultiQC searches a given directory for analysis logs and compiles a HTML report. - It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. - homepage: https://multiqc.info/ - documentation: https://multiqc.info/docs/ - licence: ["GPL-3.0-or-later"] -input: - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC - - multiqc_config: - type: file - description: Optional config yml for MultiQC - pattern: "*.{yml,yaml}" - - extra_multiqc_config: - type: file - description: Second optional config yml for MultiQC. Will override common sections in multiqc_config. - pattern: "*.{yml,yaml}" - - multiqc_logo: - type: file - description: Optional logo file for MultiQC - pattern: "*.{png}" -output: - - report: - type: file - description: MultiQC report file - pattern: "multiqc_report.html" - - data: - type: directory - description: MultiQC data dir - pattern: "multiqc_data" - - plots: - type: file - description: Plots created by MultiQC - pattern: "*_data" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@abhi18av" - - "@bunop" - - "@drpatelh" - - "@jfy133" -maintainers: - - "@abhi18av" - - "@bunop" - - "@drpatelh" - - "@jfy133" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test deleted file mode 100644 index f1c4242e..00000000 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ /dev/null @@ -1,84 +0,0 @@ -nextflow_process { - - name "Test Process MULTIQC" - script "../main.nf" - process "MULTIQC" - - tag "modules" - tag "modules_nfcore" - tag "multiqc" - - test("sarscov2 single-end [fastqc]") { - - when { - process { - """ - input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) - input[1] = [] - input[2] = [] - input[3] = [] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, - { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("multiqc_versions_single") } - ) - } - - } - - test("sarscov2 single-end [fastqc] [config]") { - - when { - process { - """ - input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) - input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) - input[2] = [] - input[3] = [] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, - { assert process.out.data[0] ==~ ".*/multiqc_data" }, - { assert snapshot(process.out.versions).match("multiqc_versions_config") } - ) - } - } - - test("sarscov2 single-end [fastqc] - stub") { - - options "-stub" - - when { - process { - """ - input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastqc/test_fastqc.zip', checkIfExists: true)) - input[1] = [] - input[2] = [] - input[3] = [] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out.report.collect { file(it).getName() } + - process.out.data.collect { file(it).getName() } + - process.out.plots.collect { file(it).getName() } + - process.out.versions ).match("multiqc_stub") } - ) - } - - } -} diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap deleted file mode 100644 index bfebd802..00000000 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ /dev/null @@ -1,41 +0,0 @@ -{ - "multiqc_versions_single": { - "content": [ - [ - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-29T08:48:55.657331" - }, - "multiqc_stub": { - "content": [ - [ - "multiqc_report.html", - "multiqc_data", - "multiqc_plots", - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-29T08:49:49.071937" - }, - "multiqc_versions_config": { - "content": [ - [ - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-29T08:49:25.457567" - } -} \ No newline at end of file From e9a4637f58e08146fe35016c15e7d3ac7c20f7e5 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:14:04 +1200 Subject: [PATCH 08/76] Updated modules json --- modules.json | 130 +++++++++++++-------------------------------------- 1 file changed, 33 insertions(+), 97 deletions(-) diff --git a/modules.json b/modules.json index 2428508b..a4a1f973 100644 --- a/modules.json +++ b/modules.json @@ -8,100 +8,72 @@ "bwa/index": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fastq_bwa_mem_samblaster" - ] + "installed_by": ["fastq_bwa_mem_samblaster"] }, "bwa/mem": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fastq_bwa_mem_samblaster" - ] + "installed_by": ["fastq_bwa_mem_samblaster"] }, "cat/cat": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "custom/checkgff3fastacorrespondence": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "gff3_validate" - ] + "installed_by": ["gff3_validate"] }, "custom/restoregffids": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "custom/shortenfastaids": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "gt/gff3": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "gff3_validate" - ] + "installed_by": ["gff3_validate"] }, "gt/gff3validator": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "gff3_validate" - ] + "installed_by": ["gff3_validate"] }, "gt/stat": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "ltrfinder": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "ltrharvest": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "ltrretriever/lai": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "ltrretriever/ltrretriever": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fasta_ltrretriever_lai" - ] + "installed_by": ["fasta_ltrretriever_lai"] }, "samblaster": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "fastq_bwa_mem_samblaster" - ] + "installed_by": ["fastq_bwa_mem_samblaster"] } } }, @@ -110,23 +82,17 @@ "fasta_ltrretriever_lai": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_bwa_mem_samblaster": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "gff3_validate": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } @@ -137,72 +103,52 @@ "fastavalidator": { "branch": "master", "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastp": { "branch": "master", "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", - "installed_by": [ - "fastq_trim_fastp_fastqc" - ] + "installed_by": ["fastq_trim_fastp_fastqc"] }, "fastqc": { "branch": "master", "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", - "installed_by": [ - "fastq_trim_fastp_fastqc" - ] + "installed_by": ["fastq_trim_fastp_fastqc"] }, "gunzip": { "branch": "master", "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "seqkit/seq": { "branch": "master", "git_sha": "687ad41c14008d3d55cf7c2ffacebe6a057211a4", - "installed_by": [ - "fasta_explore_search_plot_tidk" - ] + "installed_by": ["fasta_explore_search_plot_tidk"] }, "seqkit/sort": { "branch": "master", "git_sha": "ffcdfb354f8c8e59bdccc1a4249f0f3b232c2a3d", - "installed_by": [ - "fasta_explore_search_plot_tidk" - ] + "installed_by": ["fasta_explore_search_plot_tidk"] }, "tidk/explore": { "branch": "master", "git_sha": "fad335b31b32d78f89a8340373d3ccfc0f2b18b5", - "installed_by": [ - "fasta_explore_search_plot_tidk" - ] + "installed_by": ["fasta_explore_search_plot_tidk"] }, "tidk/plot": { "branch": "master", "git_sha": "d54cd1d823f151854825da8ffe7289bcbf77206b", - "installed_by": [ - "fasta_explore_search_plot_tidk" - ] + "installed_by": ["fasta_explore_search_plot_tidk"] }, "tidk/search": { "branch": "master", "git_sha": "669a329f4aa37f5b7f03776c2ed1cd0ef122c626", - "installed_by": [ - "fasta_explore_search_plot_tidk" - ] + "installed_by": ["fasta_explore_search_plot_tidk"] }, "untar": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -211,40 +157,30 @@ "fasta_explore_search_plot_tidk": { "branch": "master", "git_sha": "2b21fbeb20ad9f17612f4a3dd7b12971513f08d5", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_trim_fastp_fastqc": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} From cdeae208944060dc7907b480c7f82a6b69e55cc5 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:21:29 +1200 Subject: [PATCH 09/76] Restored the original version of nf-core/subworkflows/fastq_trim_fastp_fastqc --- CHANGELOG.md | 3 ++- .../nf-core/fastq_trim_fastp_fastqc/main.nf | 13 +++++-------- tests/stub/stub.config | 2 ++ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c8791d1..78fa449e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0 - [22-April-2024] +## 2.0.0 - [23-April-2024] 1. Updated nf-core/template to 2.13.2.dev0 @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Fixed` 1. Fixed a bug which caused NCBI_FCS_GX to not resume +2. Restored the original version of `nf-core/subworkflows/fastq_trim_fastp_fastqc` ### `Dependencies` diff --git a/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf b/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf index 39a086ad..4f1c84fc 100644 --- a/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf +++ b/subworkflows/nf-core/fastq_trim_fastp_fastqc/main.nf @@ -68,14 +68,11 @@ workflow FASTQ_TRIM_FASTP_FASTQC { // ch_trim_reads .join(ch_trim_json) - .map { meta, reads, json -> - if (json.text.readLines().size < 1) { - return [ meta, reads ] - } - - if (getFastpReadsAfterFiltering(json) > 0) { - [ meta, reads ] - } + .map { + meta, reads, json -> + if (getFastpReadsAfterFiltering(json) > 0) { + [ meta, reads ] + } } .set { ch_trim_reads } diff --git a/tests/stub/stub.config b/tests/stub/stub.config index 4f753187..0eb35b5c 100644 --- a/tests/stub/stub.config +++ b/tests/stub/stub.config @@ -24,6 +24,8 @@ params { kraken2_db_path = 'tests/stub/kraken2/k2_minusb_20231009.tar.gz' hic = 'tests/stub/hic/Dummy_hic.R{1,2}.fq.gz' + hic_skip_fastp = true + hic_skip_fastqc = true synteny_skip = true // GitHub action runner runs out of memory synteny_xref_assemblies = 'assets/xrefsheet.csv' From 0da90dd1f5178ea1463317cec15c4a26255a5757 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:38:27 +1200 Subject: [PATCH 10/76] Fixed linting issues --- .nf-core.yml | 2 ++ nextflow_schema.json | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/.nf-core.yml b/.nf-core.yml index 71f34ac4..c00c6830 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -13,11 +13,13 @@ lint: - docs/images/nf-core-assemblyqc_logo_light.png - docs/images/nf-core-assemblyqc_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml + - docs/README.md multiqc_config: - report_comment nextflow_config: - manifest.name - manifest.homePage + template_strings: False nf_core_version: 2.13.2.dev0 repository_type: pipeline template: diff --git a/nextflow_schema.json b/nextflow_schema.json index 6f4e61ed..96e5b50d 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -386,6 +386,12 @@ "fa_icon": "fas fa-palette", "hidden": true }, + "monochromeLogs": { + "type": "boolean", + "fa_icon": "fas fa-palette", + "description": "Do not use coloured log outputs.", + "hidden": true + }, "hook_url": { "type": "string", "description": "Incoming hook URL for messaging service", From 8f5f2bb163c06345149026b7be75978d09f865c6 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:38:56 +1200 Subject: [PATCH 11/76] Fixed linting issues --- assets/multiqc_config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 759adecd..0b995135 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,8 +1,8 @@ report_comment: > - + This report has been generated by the plant-food-research-open/assemblyqc analysis pipeline. - + report_section_order: "plant-food-research-open-assemblyqc-methods-description": order: -1000 From ab869d95c009ff1a7a693f995e8cf92961f7eea7 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:44:14 +1200 Subject: [PATCH 12/76] Removed .github/CONTRIBUTING.md from linting --- .nf-core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.nf-core.yml b/.nf-core.yml index c00c6830..29866681 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -14,6 +14,7 @@ lint: - docs/images/nf-core-assemblyqc_logo_dark.png - .github/ISSUE_TEMPLATE/bug_report.yml - docs/README.md + - .github/CONTRIBUTING.md multiqc_config: - report_comment nextflow_config: From be0a452683a7224dfb7b2b425e00a01fa1ee6b5c Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 15:55:35 +1200 Subject: [PATCH 13/76] Now using git URL for nf-core/modules --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index a4a1f973..bed29810 100644 --- a/modules.json +++ b/modules.json @@ -97,7 +97,7 @@ } } }, - "https://github.com/nf-core/modules.git": { + "git@github.com:nf-core/modules.git": { "modules": { "nf-core": { "fastavalidator": { From 5267bab86c43d2b401abdd10b556f370e01d461a Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 16:02:29 +1200 Subject: [PATCH 14/76] Fixed n-core linting --- CHANGELOG.md | 1 + modules.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78fa449e..b04f13c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 1. Fixed a bug which caused NCBI_FCS_GX to not resume 2. Restored the original version of `nf-core/subworkflows/fastq_trim_fastp_fastqc` +3. Fixed n-core linting ### `Dependencies` diff --git a/modules.json b/modules.json index bed29810..09fd711b 100644 --- a/modules.json +++ b/modules.json @@ -2,7 +2,7 @@ "name": "plant-food-research-open/assemblyqc", "homePage": "https://github.com/plant-food-research-open/assemblyqc", "repos": { - "git@github.com:PlantandFoodResearch/nxf-modules.git": { + "https://github.com/PlantandFoodResearch/nxf-modules.git": { "modules": { "pfr": { "bwa/index": { @@ -97,7 +97,7 @@ } } }, - "git@github.com:nf-core/modules.git": { + "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { "fastavalidator": { From 26cf668a6ba5e198c530e59f104e9b6c8ce4fffe Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 16:22:36 +1200 Subject: [PATCH 15/76] Template update for nf-core/tools version 2.13.1 --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/download_pipeline.yml | 22 ++------- .github/workflows/fix-linting.yml | 4 +- .github/workflows/linting.yml | 12 ++--- .github/workflows/linting_comment.yml | 2 +- .github/workflows/release-announcements.yml | 6 +-- .nf-core.yml | 1 - .pre-commit-config.yaml | 3 -- README.md | 2 +- conf/base.config | 3 ++ conf/modules.config | 8 ++++ nextflow.config | 3 +- pyproject.toml | 15 ++++++ .../utils_nfcore_assemblyqc_pipeline/main.nf | 4 -- workflows/assemblyqc.nf | 46 +++++-------------- 16 files changed, 59 insertions(+), 76 deletions(-) create mode 100644 pyproject.toml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 86930edb..12f22500 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/plant-food-r - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/plant-food-research-open/assemblyqc/tree/master/.github/CONTRIBUTING.md) - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nf-test test tests/ --verbose --profile +docker`). +- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce5b32ae..bd73a829 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v2 + uses: nf-core/setup-nextflow@v1 with: version: "${{ matrix.NXF_VER }}" diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 2d20d644..08622fd5 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -14,8 +14,6 @@ on: pull_request: types: - opened - - edited - - synchronize branches: - master pull_request_target: @@ -30,14 +28,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v2 + uses: nf-core/setup-nextflow@v1 - - name: Disk space cleanup - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: - python-version: "3.12" + python-version: "3.11" architecture: "x64" - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: @@ -70,17 +65,8 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline (stub) - id: stub_run_pipeline - continue-on-error: true + - name: Run the downloaded pipeline env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results - - name: Run the downloaded pipeline (stub run not supported) - id: run_pipeline - if: ${{ job.steps.stub_run_pipeline.status == failure() }} - env: - NXF_SINGULARITY_CACHEDIR: ./ - NXF_SINGULARITY_HOME_MOUNT: true - run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 52217b84..80625a8f 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -32,9 +32,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: - python-version: "3.12" + python-version: 3.11 - name: Install pre-commit run: pip install pre-commit diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a225c816..073e1876 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -16,10 +16,10 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - name: Set up Python 3.11 + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: - python-version: "3.12" + python-version: 3.11 cache: "pip" - name: Install pre-commit @@ -35,11 +35,11 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v2 + uses: nf-core/setup-nextflow@v1 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: - python-version: "3.12" + python-version: "3.11" architecture: "x64" - name: Install dependencies diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 40acc23f..b706875f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 + uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 # v3 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 03ecfcf7..d468aeaa 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -12,7 +12,7 @@ jobs: - name: get topics and convert to hashtags id: get_topics run: | - echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT + curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: @@ -25,13 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} - ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics + ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 with: python-version: "3.10" - name: Install dependencies diff --git a/.nf-core.yml b/.nf-core.yml index 71f34ac4..61d19b4d 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -18,7 +18,6 @@ lint: nextflow_config: - manifest.name - manifest.homePage -nf_core_version: 2.13.2.dev0 repository_type: pipeline template: prefix: plant-food-research-open diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4dc0f1dc..af57081f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,9 +3,6 @@ repos: rev: "v3.1.0" hooks: - id: prettier - additional_dependencies: - - prettier@3.2.5 - - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/README.md b/README.md index 5ea7ea72..19194afb 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) ## Introduction diff --git a/conf/base.config b/conf/base.config index faaec489..fad3aa91 100644 --- a/conf/base.config +++ b/conf/base.config @@ -59,4 +59,7 @@ process { errorStrategy = 'retry' maxRetries = 2 } + withName:CUSTOM_DUMPSOFTWAREVERSIONS { + cache = false + } } diff --git a/conf/modules.config b/conf/modules.config index d203d2b6..e3ea8fa6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -22,6 +22,14 @@ process { ext.args = '--quiet' } + withName: CUSTOM_DUMPSOFTWAREVERSIONS { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + pattern: '*_versions.yml' + ] + } + withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/nextflow.config b/nextflow.config index c89ce932..cbc0aa8d 100644 --- a/nextflow.config +++ b/nextflow.config @@ -15,7 +15,8 @@ params { // References genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' - igenomes_ignore = false// MultiQC options + igenomes_ignore = false + fasta = null// MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..56110621 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. +# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. +[tool.ruff] +line-length = 120 +target-version = "py38" +cache-dir = "~/.cache/ruff" + +[tool.ruff.lint] +select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] + +[tool.ruff.lint.isort] +known-first-party = ["nf_core"] + +[tool.ruff.lint.per-file-ignores] +"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index ac17938f..0e9efa87 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -140,10 +140,6 @@ workflow PIPELINE_COMPLETION { imNotification(summary_params, hook_url) } } - - workflow.onError { - log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" - } } /* diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 42da5dd5..cd30a061 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -40,44 +40,22 @@ workflow ASSEMBLYQC { // Collate and save software versions // softwareVersionsToYAML(ch_versions) - .collectFile( - storeDir: "${params.outdir}/pipeline_info", - name: 'nf_core_pipeline_software_mqc_versions.yml', - sort: true, - newLine: true - ).set { ch_collated_versions } + .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true) + .set { ch_collated_versions } // // MODULE: MultiQC // - ch_multiqc_config = Channel.fromPath( - "$projectDir/assets/multiqc_config.yml", checkIfExists: true) - ch_multiqc_custom_config = params.multiqc_config ? - Channel.fromPath(params.multiqc_config, checkIfExists: true) : - Channel.empty() - ch_multiqc_logo = params.multiqc_logo ? - Channel.fromPath(params.multiqc_logo, checkIfExists: true) : - Channel.empty() - - summary_params = paramsSummaryMap( - workflow, parameters_schema: "nextflow_schema.json") - ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) - - ch_multiqc_custom_methods_description = params.multiqc_methods_description ? - file(params.multiqc_methods_description, checkIfExists: true) : - file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - ch_methods_description = Channel.value( - methodsDescriptionText(ch_multiqc_custom_methods_description)) - - ch_multiqc_files = ch_multiqc_files.mix( - ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) - ch_multiqc_files = ch_multiqc_files.mix( - ch_methods_description.collectFile( - name: 'methods_description_mqc.yaml', - sort: false - ) - ) + ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty() + summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) + ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false)) MULTIQC ( ch_multiqc_files.collect(), From e1ca2d7ff20d59ca38b7f81fb41ed9ab4f07c79c Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 17:20:16 +1200 Subject: [PATCH 16/76] Added pfr/modules key --- .github/workflows/linting.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 6324793c..d2b8cea3 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -52,7 +52,10 @@ jobs: GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} - run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md + run: | + eval `ssh-agent -s` + ssh-add - <<< '${{ secrets.PFR_NXF_MODULES_SSH_KEY }}' + nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md - name: Save PR number if: ${{ always() }} From d36c50aff6a16691d86de22fdbebba519a7065d0 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 18:11:41 +1200 Subject: [PATCH 17/76] Updated linting checks --- .github/workflows/linting.yml | 19 +++++- .nf-core.yml | 4 +- assets/multiqc_config.yml | 16 ----- docs/parameters.md | 119 +++++++++++++++++----------------- 4 files changed, 77 insertions(+), 81 deletions(-) delete mode 100644 assets/multiqc_config.yml diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index d2b8cea3..b4aba658 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -53,9 +53,22 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} run: | - eval `ssh-agent -s` - ssh-add - <<< '${{ secrets.PFR_NXF_MODULES_SSH_KEY }}' - nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md + nf-core -l lint_log.txt lint \ + --dir ${GITHUB_WORKSPACE} \ + --markdown lint_results.md \ + --key actions_ci \ + --key actions_schema_validation \ + --key files_exist \ + --key files_unchanged \ + --key merge_markers \ + --key nextflow_config \ + --key pipeline_name_conventions \ + --key pipeline_todos \ + --key readme \ + --key schema_description \ + --key schema_lint \ + --key schema_params \ + --key system_exit - name: Save PR number if: ${{ always() }} diff --git a/.nf-core.yml b/.nf-core.yml index a2b94011..42acee5a 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -15,12 +15,10 @@ lint: - .github/ISSUE_TEMPLATE/bug_report.yml - docs/README.md - .github/CONTRIBUTING.md - multiqc_config: - - report_comment + - .github/workflows/linting.yml nextflow_config: - manifest.name - manifest.homePage - template_strings: False repository_type: pipeline template: prefix: plant-food-research-open diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml deleted file mode 100644 index 0b995135..00000000 --- a/assets/multiqc_config.yml +++ /dev/null @@ -1,16 +0,0 @@ -report_comment: > - - This report has been generated by the plant-food-research-open/assemblyqc - analysis pipeline. - -report_section_order: - "plant-food-research-open-assemblyqc-methods-description": - order: -1000 - software_versions: - order: -1001 - "plant-food-research-open-assemblyqc-summary": - order: -1002 - -export_plots: true - -disable_version_detection: true diff --git a/docs/parameters.md b/docs/parameters.md index 5be39404..f02e854a 100644 --- a/docs/parameters.md +++ b/docs/parameters.md @@ -4,36 +4,36 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and ## Input/output options -| Parameter | Description | Type | Default | Required | Hidden | -| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- | -------- | ------ | -| `input` | Input assembly sheet in CSV format
    HelpFASTA and other associated files for input assemblies provided as a formatted CSV file
    | -| `outdir` | The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure. | `string` | ./results | True | | -| `email` | Email address for completion summary.
    HelpSet this parameter to your e-mail address to get a summary e-mail with details of the run sent to you | +| Parameter | Description | Type | Default | Required | Hidden | +| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- | -------- | ------ | +| `input` | Input assembly sheet in CSV format
    HelpFASTA and other associated files for input assemblies provided as a formatted CSV file
    | `string` | | True | | +| `outdir` | The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure. | `string` | ./results | True | | +| `email` | Email address for completion summary.
    HelpSet this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.
    | `string` | | | | ## General stats options -| Parameter | Description | Type | Default | Required | Hidden | -| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ------- | -------- | ------ | -| `assemblathon_stats_n_limit` | The number of 'N's for the unknown gap size
    HelpThis number is used to split the scaffolds into contigs to compute contig-r | +| Parameter | Description | Type | Default | Required | Hidden | +| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | +| `assemblathon_stats_n_limit` | The number of 'N's for the unknown gap size
    HelpThis number is used to split the scaffolds into contigs to compute contig-related stats such as the number of contigs, N50, etc. NCBI recommendation is 100.
    | `integer` | 100 | | | ## NCBI FCS options -| Parameter | Description | Type | Default | Required | Hidden | -| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | -| `ncbi_fcs_adaptor_skip` | Skip NCBI FCS Adaptor checking | `boolean` | True | | | -| `ncbi_fcs_adaptor_empire` | Empire for NCBI FCS Adaptor checking
    Help'euk' for eukaryotes, or 'prok' for prokaryotes
    | `string` | | | -| `ncbi_fcs_gx_skip` | Skip NCBI FCS external organism contamination checking | `boolean` | True | | | -| `ncbi_fcs_gx_tax_id` | Tax ID for NCBI FCS GX
    HelpGet correct tax ID from https://www.ncbi.nlm.nih.gov/taxonomy
    | `number` | | | | -| `ncbi_fcs_gx_db_path` | Path to NCBI FCS GX database
    HelpNCBI FCS GX DB path

    Due to enormity of the DB size, the pipeline does NOT download the dat | +| Parameter | Description | Type | Default | Required | Hidden | +| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | +| `ncbi_fcs_adaptor_skip` | Skip NCBI FCS Adaptor checking | `boolean` | True | | | +| `ncbi_fcs_adaptor_empire` | Empire for NCBI FCS Adaptor checking
    Help'euk' for eukaryotes, or 'prok' for prokaryotes
    | `string` | | | | +| `ncbi_fcs_gx_skip` | Skip NCBI FCS external organism contamination checking | `boolean` | True | | | +| `ncbi_fcs_gx_tax_id` | Tax ID for NCBI FCS GX
    HelpGet correct tax ID from https://www.ncbi.nlm.nih.gov/taxonomy
    | `number` | | | | +| `ncbi_fcs_gx_db_path` | Path to NCBI FCS GX database
    HelpNCBI FCS GX DB path

    Due to enormity of the DB size, the pipeline does NOT download the data. It must be setup by the user manually before running the pipeline. See instructions for DB setup: https://github.com/ncbi/fcs/wiki/FCS-GX
    | `string` | | | | ## BUSCO options -| Parameter | Description | Type | Default | Required | Hidden | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | ------- | -------- | ------ | -| `busco_skip` | Skip BUSCO | `boolean` | True | | | -| `busco_mode` | BUSCO mode
    Help'geno' or 'genome' for genome assemblies (DNA), 'tran' or 'transcriptome' for transcriptome assemblies (DNA), 'prot' or 'pro | -| `busco_lineage_datasets` | BUSCO lineages
    HelpEach input assembly is assessed against each lineage. It should be provided as a space-separated list of lin | -| `busco_download_path` | Download path for BUSCO
    HelpBUSCO DB download path

    The pipeline automatically downloads the required DB if needed
    Help'geno' or 'genome' for genome assemblies (DNA), 'tran' or 'transcriptome' for transcriptome assemblies (DNA), 'prot' or 'proteins' for annotated gene sets (protein)
    | `string` | | | | +| `busco_lineage_datasets` | BUSCO lineages
    HelpEach input assembly is assessed against each lineage. It should be provided as a space-separated list of lineages: 'fungi_odb10 microsporidia_odb10'
    | `string` | | | | +| `busco_download_path` | Download path for BUSCO
    HelpBUSCO DB download path

    The pipeline automatically downloads the required DB if needed
    | `string` | | | | ## TIDK options @@ -60,62 +60,63 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and ## HiC options | Parameter | Description | Type | Default | Required | Hidden | -| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ------------------------------------------------- | -------- | ------ | -| `hic` | HiC reads
    HelpPath to reads provided as a SRA ID or as a path to paired reads with pattern '\*{1,2}.(fastq | fq).gz'
    | `string` | | +| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ------------------------------------------------- | -------- | ------ | --- | +| `hic` | HiC reads
    HelpPath to reads provided as a SRA ID or as a path to paired reads with pattern '\*{1,2}.(fastq | fq).gz'
    | `string` | | | | | `hic_skip_fastp` | Skip HiC read trimming | `boolean` | | | | | `hic_skip_fastqc` | Skip HiC read QC | `boolean` | | | | | `hic_fastp_ext_args` | Additional parameters for fastp trimming | `string` | --qualified_quality_phred 20 --length_required 50 | | | ## Synteny options -| Parameter | Description | Type | Default | Required | Hidden | -| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | -| `synteny_skip` | Skip synteny analysis | `boolean` | True | | | -| `synteny_between_input_assemblies` | Create syntenic plots between each pair of input assemblies | `boolean` | True | | | -| `synteny_many_to_many_align` | Include alignment blocks with many-to-many mappings (dnadiff .mcoords file) | `boolean` | | | | -| `synteny_max_gap` | Alignments within this distance are bundled together | `integer` | 1000000 | | | -| `synteny_min_bundle_size` | After bundling, any bundle smaller than this size is filtered out | `integer` | 1000 | | | -| `synteny_plot_1_vs_all` | Create a separate synteny plot for each contig of the target assembly versus all contigs of the reference assembly | `boolean` | True | | | -| `synteny_color_by_contig` | Synteny plot is colored by contig | `boolean` | True | | | -| `synteny_xref_assemblies` | Reference assemblies for synteny analysis
    HelpFASTA and synteny label tsv files should be provided in a formatted CSV file HelpFASTA and synteny label tsv files should be provided in a formatted CSV file
    | `string` | | | | ## Max job request options Set the top limit for requested resources for any single job. -| Parameter | Description | Type | Default | Required | Hidden | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | ------- | -------- | ------ | -| `max_cpus` | Maximum number of CPUs that can be requested for any single job.
    HelpUse to set an upper-limit for the CPU requirement for each process. Shou | -| `max_memory` | Maximum amount of memory that can be requested for any single job.
    HelpUse to set an upper-limit for the memory requirement for each proces | -| `max_time` | Maximum amount of time that can be requested for any single job.
    HelpUse to set an upper-limit for the time requirement for each process. Sho | +| Parameter | Description | Type | Default | Required | Hidden | +| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | +| `max_cpus` | Maximum number of CPUs that can be requested for any single job.
    HelpUse to set an upper-limit for the CPU requirement for each process. Should be an integer e.g. `--max_cpus 1`
    | `integer` | 16 | | True | +| `max_memory` | Maximum amount of memory that can be requested for any single job.
    HelpUse to set an upper-limit for the memory requirement for each process. Should be a string in the format integer-unit e.g. `--max_memory '8.GB'`
    | `string` | 512.GB | | True | +| `max_time` | Maximum amount of time that can be requested for any single job.
    HelpUse to set an upper-limit for the time requirement for each process. Should be a string in the format integer-unit e.g. `--max_time '2.h'`
    | `string` | 7.day | | True | ## Institutional config options Parameters used to describe centralised config profiles. These should not be edited. -| Parameter | Description | Type | Default | Required | Hidden | -| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- | -------- | ------ | -| `custom_config_version` | Git commit id for Institutional configs. | `string` | master | | True | -| `custom_config_base` | Base directory for Institutional configs.
    HelpIf you're running offline, Nextflow will not be able to fetch the institutional confi | -| `config_profile_name` | Institutional config name. | `string` | | | True | -| `config_profile_description` | Institutional config description. | `string` | | | True | -| `config_profile_contact` | Institutional config contact information. | `string` | | | True | -| `config_profile_url` | Institutional config URL link. | `string` | | | True | +| Parameter | Description | Type | Default | Required | Hidden | +| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------------------------- | -------- | ------ | +| `custom_config_version` | Git commit id for Institutional configs. | `string` | master | | True | +| `custom_config_base` | Base directory for Institutional configs.
    HelpIf you're running offline, Nextflow will not be able to fetch the institutional config files from the internet. If you don't need them, then this is not a problem. If you do need them, you should download the files from the repo and tell Nextflow where to find them with this parameter.
    | `string` | https://raw.githubusercontent.com/nf-core/configs/master | | True | +| `config_profile_name` | Institutional config name. | `string` | | | True | +| `config_profile_description` | Institutional config description. | `string` | | | True | +| `config_profile_contact` | Institutional config contact information. | `string` | | | True | +| `config_profile_url` | Institutional config URL link. | `string` | | | True | ## Generic options Less common options for the pipeline, typically set in a config file. -| Parameter | Description | Type | Default | Required | Hidden | -| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | -| `help` | Display help text. | `boolean` | | | True | -| `version` | Display version and exit. | `boolean` | | | True | -| `publish_dir_mode` | Method used to save pipeline results to output directory.
    HelpThe Nextflow `publishDir` option specifies which intermediate files sho | -| `email_on_fail` | Email address for completion summary, only when pipeline fails.
    HelpAn email address to send a summary email to when the pipeline is com | -| `plaintext_email` | Send plain-text email instead of HTML. | `boolean` | | | True | -| `monochrome_logs` | Do not use coloured log outputs. | `boolean` | | | True | -| `hook_url` | Incoming hook URL for messaging service
    HelpIncoming hook URL for messaging service. Currently, MS Teams and Slack are supported.HelpBy default, parameters set as _hidden_ in the schema are not shown on the command l | -| `validationFailUnrecognisedParams` | Validation of parameters fails when an unrecognised parameter is found.
    HelpBy default, when an unrecognised paramete | -| `validationLenientMode` | Validation of parameters in lenient more.
    HelpAllows string values that are parseable as numbers or booleans. For further inform | +| Parameter | Description | Type | Default | Required | Hidden | +| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | ------- | -------- | ------ | +| `help` | Display help text. | `boolean` | | | True | +| `version` | Display version and exit. | `boolean` | | | True | +| `publish_dir_mode` | Method used to save pipeline results to output directory.
    HelpThe Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.
    | `string` | copy | | True | +| `email_on_fail` | Email address for completion summary, only when pipeline fails.
    HelpAn email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.
    | `string` | | | True | +| `plaintext_email` | Send plain-text email instead of HTML. | `boolean` | | | True | +| `monochrome_logs` | Do not use coloured log outputs. | `boolean` | | | True | +| `monochromeLogs` | Do not use coloured log outputs. | `boolean` | | | True | +| `hook_url` | Incoming hook URL for messaging service
    HelpIncoming hook URL for messaging service. Currently, MS Teams and Slack are supported.
    | `string` | | | True | +| `validate_params` | Boolean whether to validate parameters against the schema at runtime | `boolean` | True | | True | +| `validationShowHiddenParams` | Show all params when using `--help`
    HelpBy default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters.
    | `boolean` | | | True | +| `validationFailUnrecognisedParams` | Validation of parameters fails when an unrecognised parameter is found.
    HelpBy default, when an unrecognised parameter is found, it returns a warinig.
    | `boolean` | | | True | +| `validationLenientMode` | Validation of parameters in lenient more.
    HelpAllows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode).
    | `boolean` | | | True | From c21e2688ebf1304b60fb7f882cdc6aacb59096c5 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 23 Apr 2024 18:19:13 +1200 Subject: [PATCH 18/76] Updated tower.yml --- CHANGELOG.md | 1 + tower.yml | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4686763b..9888b17b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 1. Fixed a bug which caused NCBI_FCS_GX to not resume 2. Restored the original version of `nf-core/subworkflows/fastq_trim_fastp_fastqc` 3. Fixed n-core linting +4. Updated `tower.yml` ### `Dependencies` diff --git a/tower.yml b/tower.yml index 787aedfe..96116b57 100644 --- a/tower.yml +++ b/tower.yml @@ -1,5 +1,3 @@ reports: - multiqc_report.html: - display: "MultiQC HTML report" - samplesheet.csv: - display: "Auto-created samplesheet with collated metadata and FASTQ paths" + report.html: + display: "AssemblyQC report" From 22bab61cc1dc175fcdee61cc4a06f450f5722285 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 29 Apr 2024 15:57:00 +1200 Subject: [PATCH 19/76] Updated LICENSE --- .nf-core.yml | 1 + CHANGELOG.md | 6 +++--- LICENSE | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index 42acee5a..b8a0eff0 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -16,6 +16,7 @@ lint: - docs/README.md - .github/CONTRIBUTING.md - .github/workflows/linting.yml + - LICENSE nextflow_config: - manifest.name - manifest.homePage diff --git a/CHANGELOG.md b/CHANGELOG.md index 9888b17b..26bb97f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,13 +3,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0 - [23-April-2024] - -1. Updated nf-core/template to 2.13.1 +## 2.0.0 - [29-April-2024] ### `Added` 1. Updated modules and sub-workflows +2. Updated nf-core/template to 2.13.1 ### `Fixed` @@ -17,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 2. Restored the original version of `nf-core/subworkflows/fastq_trim_fastp_fastqc` 3. Fixed n-core linting 4. Updated `tower.yml` +5. Updated LICENSE copyright to Copyright (c) 2024 The New Zealand Institute for Plant and Food Research Limited ### `Dependencies` diff --git a/LICENSE b/LICENSE index 96e3eb88..2ef2204c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Usman Rashid, Ken Smith, Ross Crowhurst, Chen Wu, Marcus Davy +Copyright (c) 2024 The New Zealand Institute for Plant and Food Research Limited Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From f7d5dc363ac43dc92cf91bf5dcc29e9f1e21f178 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 30 Apr 2024 14:35:51 +1200 Subject: [PATCH 20/76] Removed release-announcements GitHub workflow and added a list of nf-core contributors --- .github/workflows/release-announcements.yml | 75 --------------------- .nf-core.yml | 1 + CHANGELOG.md | 4 +- README.md | 21 +++++- docs/contributors.sh | 5 ++ 5 files changed, 29 insertions(+), 77 deletions(-) delete mode 100644 .github/workflows/release-announcements.yml create mode 100755 docs/contributors.sh diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml deleted file mode 100644 index d468aeaa..00000000 --- a/.github/workflows/release-announcements.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: release-announcements -# Automatic release toot and tweet anouncements -on: - release: - types: [published] - workflow_dispatch: - -jobs: - toot: - runs-on: ubuntu-latest - steps: - - name: get topics and convert to hashtags - id: get_topics - run: | - curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT - - - uses: rzr/fediverse-action@master - with: - access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} - host: "mstdn.science" # custom host if not "mastodon.social" (default) - # GitHub event payload - # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release - message: | - Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! - - Please see the changelog: ${{ github.event.release.html_url }} - - ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics - - send-tweet: - runs-on: ubuntu-latest - - steps: - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 - with: - python-version: "3.10" - - name: Install dependencies - run: pip install tweepy==4.14.0 - - name: Send tweet - shell: python - run: | - import os - import tweepy - - client = tweepy.Client( - access_token=os.getenv("TWITTER_ACCESS_TOKEN"), - access_token_secret=os.getenv("TWITTER_ACCESS_TOKEN_SECRET"), - consumer_key=os.getenv("TWITTER_CONSUMER_KEY"), - consumer_secret=os.getenv("TWITTER_CONSUMER_SECRET"), - ) - tweet = os.getenv("TWEET") - client.create_tweet(text=tweet) - env: - TWEET: | - Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! - - Please see the changelog: ${{ github.event.release.html_url }} - TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} - TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} - TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} - TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} - - bsky-post: - runs-on: ubuntu-latest - steps: - - uses: zentered/bluesky-post-action@80dbe0a7697de18c15ad22f4619919ceb5ccf597 # v0.1.0 - with: - post: | - Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! - - Please see the changelog: ${{ github.event.release.html_url }} - env: - BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }} - BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }} - # diff --git a/.nf-core.yml b/.nf-core.yml index b8a0eff0..5d078e43 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -20,6 +20,7 @@ lint: nextflow_config: - manifest.name - manifest.homePage + template_strings: False repository_type: pipeline template: prefix: plant-food-research-open diff --git a/CHANGELOG.md b/CHANGELOG.md index 26bb97f9..5b22f9ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0 - [29-April-2024] +## 2.0.0 - [30-April-2024] ### `Added` 1. Updated modules and sub-workflows 2. Updated nf-core/template to 2.13.1 +3. Removed release-announcements GitHub workflow +4. Added a list of nf-core contributors ### `Fixed` diff --git a/README.md b/README.md index 39c6bfc3..5332e400 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ nextflow run plant-food-research-open/assemblyqc \ > Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; > see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). -### Quick Start for Plant&Food Users +### Plant&Food Users Download the pipeline to your `/workspace/$USER` folder. Change the parameters defined in the [pfr/params.json](./pfr/params.json) file. Submit the pipeline to SLURM for execution. @@ -112,6 +112,25 @@ We thank the following people for their extensive assistance in the development - Susan Thomson [@cflsjt](https://github.com/cflsjt) - Ting-Hsuan Chen [@ting-hsuan-chen](https://github.com/ting-hsuan-chen) +The pipeline uses nf-core modules contributed by following authors. + + + + + + + + + + + + + + + + + + ## Contributions and Support If you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md). diff --git a/docs/contributors.sh b/docs/contributors.sh new file mode 100755 index 00000000..8dbfc364 --- /dev/null +++ b/docs/contributors.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +module_authors=$(find ./modules -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '[-" ]' | tr '[:upper:]' '[:lower:]') +workflow_authors=$(find ./subworkflows -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '[-" ]' | tr '[:upper:]' '[:lower:]') +echo -e "${module_authors}\n${workflow_authors}" | sort -V | uniq | sed -n 's|@\(.*\)||p' From a537e1cb1e9c3af78d532115e6f7bd02f24a4b3e Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 1 May 2024 13:14:57 +1200 Subject: [PATCH 21/76] RUNASSEMBLYVISUALIZER is now single threaded for successful execution on both Linux and MacOS --- CHANGELOG.md | 4 +++- conf/test_full.config | 2 +- local_assemblyqc | 27 ++++++++++++++++++++++++++ modules/local/runassemblyvisualizer.nf | 4 ++-- 4 files changed, 33 insertions(+), 4 deletions(-) create mode 100755 local_assemblyqc diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b22f9ef..6af70942 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0 - [30-April-2024] +## 2.0.0 - [01-May-2024] ### `Added` @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 2. Updated nf-core/template to 2.13.1 3. Removed release-announcements GitHub workflow 4. Added a list of nf-core contributors +5. Added a launcher script for local testing `local_assemblyqc` ### `Fixed` @@ -19,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 3. Fixed n-core linting 4. Updated `tower.yml` 5. Updated LICENSE copyright to Copyright (c) 2024 The New Zealand Institute for Plant and Food Research Limited +6. `RUNASSEMBLYVISUALIZER` is now single threaded for successful execution on both Linux and MacOS ### `Dependencies` diff --git a/conf/test_full.config b/conf/test_full.config index 4c4b5151..c93ba771 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -20,7 +20,7 @@ params { ncbi_fcs_adaptor_empire = 'euk' ncbi_fcs_gx_skip = true // Skipping this step as the dataset is humengous (500 GB). Please download the dataset manually - // ncbi_fcs_gx_tax_id = 35717 + ncbi_fcs_gx_tax_id = 35717 // ncbi_fcs_gx_db_path = 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/database/r2023-01-24' busco_skip = false diff --git a/local_assemblyqc b/local_assemblyqc new file mode 100755 index 00000000..f8dd29a2 --- /dev/null +++ b/local_assemblyqc @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +NO_FORMAT="\033[0m" +C_RED="\033[38;5;9m" +F_BOLD="\033[1m" + +[[ $1 == '-stub' ]] \ + && stub='-stub' \ + || stub='' + +[[ $1 == '-stub' ]] \ + && echo 'Executing with -stub' \ + || echo -e "${C_RED}${F_BOLD}Executing without -stub${NO_FORMAT}" + +nextflow run \ + main.nf \ + -profile docker,test_full \ + -resume \ + $stub \ + --max_cpus 8 \ + --max_memory '32.GB' \ + --ncbi_fcs_gx_skip false \ + --ncbi_fcs_gx_db_path ../dbs/gxdb/test \ + --busco_download_path ../dbs/busco \ + --kraken2_skip false \ + --kraken2_db_path ../dbs/kraken2db/k2_minusb \ + --hic "$(realpath ../test-data/assemblyqc/hic)/SRR8238190_{1,2}.fastq.gz" diff --git a/modules/local/runassemblyvisualizer.nf b/modules/local/runassemblyvisualizer.nf index 7b628d08..8a0d6713 100644 --- a/modules/local/runassemblyvisualizer.nf +++ b/modules/local/runassemblyvisualizer.nf @@ -1,6 +1,6 @@ process RUNASSEMBLYVISUALIZER { tag "$sample_id_on_tag" - label 'process_medium' + label 'process_single' container "docker.io/gallvp/3d-dna:63029aa" @@ -15,12 +15,12 @@ process RUNASSEMBLYVISUALIZER { task.ext.when == null || task.ext.when script: - // -p true/false Use GNU Parallel to speed up computation (default is true). """ assembly_tag=\$(echo $sample_id_on_tag | sed 's/.*\\.on\\.//g') file_name="${agp_assembly_file}" /usr/src/3d-dna/visualize/run-assembly-visualizer.sh \\ + -p false \\ $agp_assembly_file $sorted_links_txt_file mv "\${file_name%.*}.hic" "\${assembly_tag}.hic" From 4c5998be5dc5790901cba379d1d77260a3365ff7 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 1 May 2024 14:39:24 +1200 Subject: [PATCH 22/76] Added a custom BUNDLELINKS module which respects direction when bundling dnadiff links --- CHANGELOG.md | 3 + bin/bundlelinks.py | 267 ++++++++++++++++++++++++++++ modules/local/assembly2bedpe.nf | 2 +- modules/local/bundlelinks.nf | 47 +++++ modules/local/circos_bundlelinks.nf | 39 ---- modules/local/colourbundlelinks.nf | 2 +- modules/local/createreport.nf | 2 +- modules/local/dnadiff.nf | 5 +- modules/local/hic2html.nf | 2 +- modules/local/relabelbundlelinks.nf | 2 +- modules/local/relabelfastalength.nf | 2 +- subworkflows/local/fasta_synteny.nf | 10 +- 12 files changed, 331 insertions(+), 52 deletions(-) create mode 100755 bin/bundlelinks.py create mode 100644 modules/local/bundlelinks.nf delete mode 100644 modules/local/circos_bundlelinks.nf diff --git a/CHANGELOG.md b/CHANGELOG.md index 6af70942..a47c6aa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 3. Removed release-announcements GitHub workflow 4. Added a list of nf-core contributors 5. Added a launcher script for local testing `local_assemblyqc` +6. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links ### `Fixed` @@ -29,6 +30,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Deprecated` +1. Removed `CIRCOS_BUNDLELINKS` module + ## 1.4 - [04-Mar-2024] ### `Added` diff --git a/bin/bundlelinks.py b/bin/bundlelinks.py new file mode 100755 index 00000000..1cc28a46 --- /dev/null +++ b/bin/bundlelinks.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python3 + +import argparse + + +def log(verbose, message): + if verbose: + print(message) + + +def dir_sign(end, start): + if abs(int(end) - int(start)) == 0: + return 1 + sign = (int(end) - int(start)) / abs(int(end) - int(start)) + return sign + + +def is_same_direction(link, bundle, verbose): + _, ref_start, ref_end, _, target_start, target_end = link + ( + _, + bundle_ref_start, + bundle_ref_end, + _, + bundle_target_start, + bundle_target_end, + ) = bundle + + link_ref_dir = dir_sign(ref_end, ref_start) + link_target_dir = dir_sign(target_end, target_start) + + bundle_ref_dir = dir_sign(bundle_ref_end, bundle_ref_start) + bundle_target_dir = dir_sign(bundle_target_end, bundle_target_start) + + log( + verbose, + f"Compared directions l: {link_ref_dir},{link_target_dir} and b: {bundle_ref_dir},{bundle_target_dir}", + ) + + if link_ref_dir == bundle_ref_dir and link_target_dir == bundle_target_dir: + return True + + return False + + +def within_max_gap(link, bundle, max_gap): + _, ref_start, ref_end, _, target_start, target_end = link + ( + _, + bundle_ref_start, + bundle_ref_end, + _, + bundle_target_start, + bundle_target_end, + ) = bundle + + ref_start = int(ref_start) + ref_end = int(ref_end) + target_start = int(target_start) + target_end = int(target_end) + + bundle_ref_start = int(bundle_ref_start) + bundle_ref_end = int(bundle_ref_end) + bundle_target_start = int(bundle_target_start) + bundle_target_end = int(bundle_target_end) + + ref_within_max_gap = ( + abs(ref_start - bundle_ref_start) <= max_gap + or abs(ref_start - bundle_ref_end) <= max_gap + or abs(ref_end - bundle_ref_start) <= max_gap + or abs(ref_end - bundle_ref_end) <= max_gap + ) + + target_within_max_gap = ( + abs(target_start - bundle_target_start) <= max_gap + or abs(target_start - bundle_target_end) <= max_gap + or abs(target_end - bundle_target_start) <= max_gap + or abs(target_end - bundle_target_end) <= max_gap + ) + + return ref_within_max_gap and target_within_max_gap + + +def get_bundle_directions(bundle): + ( + _, + bundle_ref_start, + bundle_ref_end, + _, + bundle_target_start, + bundle_target_end, + ) = bundle + + return ( + dir_sign(bundle_ref_end, bundle_ref_start), + dir_sign(bundle_target_end, bundle_target_start), + ) + + +def add_link_to_bundle(link, bundle, verbose): + ref_dir, target_dir = get_bundle_directions(bundle) + + log(verbose, f"Bundle directions l: {ref_dir},{target_dir}") + + _, ref_start, ref_end, _, target_start, target_end = link + + ref_start = int(ref_start) + ref_end = int(ref_end) + target_start = int(target_start) + target_end = int(target_end) + + ( + ref, + bundle_ref_start, + bundle_ref_end, + target, + bundle_target_start, + bundle_target_end, + ) = bundle + + bundle_ref_start = int(bundle_ref_start) + bundle_ref_end = int(bundle_ref_end) + bundle_target_start = int(bundle_target_start) + bundle_target_end = int(bundle_target_end) + + updated_bundle_ref_start = None + updated_bundle_ref_end = None + updated_bundle_target_start = None + updated_bundle_target_end = None + + if ref_dir > 0: + updated_bundle_ref_start = min(ref_start, bundle_ref_start) + updated_bundle_ref_end = max(ref_end, bundle_ref_end) + else: + updated_bundle_ref_start = max(ref_start, bundle_ref_start) + updated_bundle_ref_end = min(ref_end, bundle_ref_end) + + if target_dir > 0: + updated_bundle_target_start = min(target_start, bundle_target_start) + updated_bundle_target_end = max(target_end, bundle_target_end) + else: + updated_bundle_target_start = max(target_start, bundle_target_start) + updated_bundle_target_end = min(target_end, bundle_target_end) + + return [ + ref, + updated_bundle_ref_start, + updated_bundle_ref_end, + target, + updated_bundle_target_start, + updated_bundle_target_end, + ] + + +def bundle_len(bundle): + ( + _, + bundle_ref_start, + bundle_ref_end, + _, + bundle_target_start, + bundle_target_end, + ) = bundle + + return min( + abs(int(bundle_ref_end) - int(bundle_ref_start)), + abs(int(bundle_target_end) - int(bundle_target_start)), + ) + + +def bundle_links(input_file, output_file, max_gap, min_bundle_size, verbose): + bundles = {} + nlinks = {} + current_bundle_num = 0 + + with open(input_file, "r") as f: + for line in f: + link = line.strip().split("\t") + ref, _, _, target, _, _ = link + + log(verbose, f"Link: {link}") + + link_key = f"{ref}:{target}" + possible_bundles_to_add_to = [ + k for k in bundles.keys() if k.startswith(link_key) + ] + + log(verbose, f"Possible bundles are: {possible_bundles_to_add_to}") + + # Check if the current link can be added to an existing bundle + link_added = False + for k in possible_bundles_to_add_to: + bundle = bundles[k] + + log(verbose, f"Checking against bundle: {bundle}") + + if not is_same_direction(link, bundle, verbose): + log(verbose, "Bundle and link have different directions") + continue + + if not within_max_gap(link, bundle, max_gap): + log(verbose, f"Bundle and link are not within {max_gap}") + continue + + # Add link to bundle + updated_bundle = add_link_to_bundle(link, bundle, verbose) + bundles[k] = updated_bundle + link_added = True + nlinks[k] += 1 + log(verbose, f"Added link to bundle") + log(verbose, f"Updated bundle: {updated_bundle}") + break + + # Create a new bundle for the current link + if not link_added: + current_bundle_num += 1 + bundles[link_key + f":{current_bundle_num}"] = link + nlinks[link_key + f":{current_bundle_num}"] = 0 + log(verbose, f"Created bundle: {link}") + + # Filter out bundles smaller than the minimum bundle size + filtered_bundles = { + key: bundle + for key, bundle in bundles.items() + if bundle_len(bundle) >= min_bundle_size + } + + # Write the filtered bundles to the output file + with open(output_file, "w") as f: + for k, bundle in filtered_bundles.items(): + bundle_nlinks = nlinks[k] + f.write( + "\t".join([str(v) for v in bundle] + [f"nlinks={bundle_nlinks}"]) + "\n" + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Bundle links", + epilog="Author: ChatGPT, Usman Rashid", + ) + parser.add_argument("input_file", help="Input TSV file containing links") + parser.add_argument("output_file", help="Output TSV file to write bundled links") + parser.add_argument( + "--max_gap", + type=int, + default=1_000_000, + help="Maximum gap allowed between links for bundling", + ) + parser.add_argument( + "--min_bundle_size", + type=int, + default=1_000, + help="Minimum size of a bundle to retain", + ) + + parser.add_argument("--verbose", help="Print info messages", action="store_true") + + args = parser.parse_args() + + bundle_links( + args.input_file, + args.output_file, + args.max_gap, + args.min_bundle_size, + args.verbose, + ) diff --git a/modules/local/assembly2bedpe.nf b/modules/local/assembly2bedpe.nf index 48e99f6c..66865ead 100644 --- a/modules/local/assembly2bedpe.nf +++ b/modules/local/assembly2bedpe.nf @@ -2,7 +2,7 @@ process ASSEMBLY2BEDPE { tag "$sample_id_on_tag" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: tuple val(sample_id_on_tag), path(agp_assembly_file) diff --git a/modules/local/bundlelinks.nf b/modules/local/bundlelinks.nf new file mode 100644 index 00000000..d22cced6 --- /dev/null +++ b/modules/local/bundlelinks.nf @@ -0,0 +1,47 @@ +process BUNDLELINKS { + tag "${target_on_ref}" + label 'process_single' + + container "docker.io/gallvp/python3npkgs:v0.7" + + input: + tuple val(target_on_ref), path(coords_file) + val max_gap + val min_bundle_size + + output: + tuple val(target_on_ref), path("*.xcoords.bundle.txt") , emit: links + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + """ + cat \\ + $coords_file \\ + | awk '{print \$12,\$1,\$2,\$13,\$3,\$4}' OFS="\\t" \\ + > "\$(basename $coords_file).links.txt" + + bundlelinks.py \\ + --max_gap $max_gap \\ + --min_bundle_size $min_bundle_size \\ + "\$(basename $coords_file).links.txt" \\ + "\$(basename $coords_file).bundle.txt" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | tr -d 'Python[:space:]') + END_VERSIONS + """ + + stub: + """ + touch "\$(basename $coords_file).bundle.txt" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | tr -d 'Python[:space:]') + END_VERSIONS + """ +} diff --git a/modules/local/circos_bundlelinks.nf b/modules/local/circos_bundlelinks.nf deleted file mode 100644 index d8f5d9f8..00000000 --- a/modules/local/circos_bundlelinks.nf +++ /dev/null @@ -1,39 +0,0 @@ -process CIRCOS_BUNDLELINKS { - tag "${target_on_ref}" - label 'process_single' - - container "docker.io/gallvp/circos-tools:v0.23-1_ps" - - input: - tuple val(target_on_ref), path(coords_file), path(report_file) - val max_gap - val min_bundle_size - - output: - tuple val(target_on_ref), path("*.xcoords.bundle.txt") , emit: links - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def VERSION='24Sep2013' - """ - cat \\ - $coords_file \\ - | awk '{print \$12,\$1,\$2,\$13,\$3,\$4}' OFS="\\t" \\ - > "\$(basename $coords_file).links.txt" - - /usr/share/circos/tools/bundlelinks/bin/bundlelinks \\ - -links "\$(basename $coords_file).links.txt" \\ - -max_gap $max_gap \\ - -min_bundle_size $min_bundle_size \\ - 1> "\$(basename $coords_file).bundle.txt" \\ - 2> bundlelinks.err - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bundlelinks: $VERSION - END_VERSIONS - """ -} diff --git a/modules/local/colourbundlelinks.nf b/modules/local/colourbundlelinks.nf index 6d753984..676a8941 100644 --- a/modules/local/colourbundlelinks.nf +++ b/modules/local/colourbundlelinks.nf @@ -2,7 +2,7 @@ process COLOURBUNDLELINKS { tag "${target_on_ref}" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: tuple val(target_on_ref), path(bundle_links) diff --git a/modules/local/createreport.nf b/modules/local/createreport.nf index 820f106e..afdd15a2 100644 --- a/modules/local/createreport.nf +++ b/modules/local/createreport.nf @@ -2,7 +2,7 @@ process CREATEREPORT { tag "AssemblyQC" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: path fastavalidator_logs, stageAs: 'fastavalidator_logs/*' diff --git a/modules/local/dnadiff.nf b/modules/local/dnadiff.nf index 772244e6..71bb93d8 100644 --- a/modules/local/dnadiff.nf +++ b/modules/local/dnadiff.nf @@ -9,8 +9,9 @@ process DNADIFF { val many_to_many_align output: - tuple val(target_on_ref), path("*.xcoords"), path("*.report") , emit: coords - path "versions.yml" , emit: versions + tuple val(target_on_ref), path("*.xcoords") , emit: coords + tuple val(target_on_ref), path("*.report") , emit: report + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/local/hic2html.nf b/modules/local/hic2html.nf index 0b907cde..d45e19b3 100644 --- a/modules/local/hic2html.nf +++ b/modules/local/hic2html.nf @@ -2,7 +2,7 @@ process HIC2HTML { tag "$sample_id_on_tag" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: tuple val(sample_id_on_tag), path(hic_file) diff --git a/modules/local/relabelbundlelinks.nf b/modules/local/relabelbundlelinks.nf index 0b95fb05..ca3431ed 100644 --- a/modules/local/relabelbundlelinks.nf +++ b/modules/local/relabelbundlelinks.nf @@ -2,7 +2,7 @@ process RELABELBUNDLELINKS { tag "${target_on_ref}" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: tuple val(target_on_ref), path(coloured_bundle_links), path(target_seq_list), path(ref_seq_list) diff --git a/modules/local/relabelfastalength.nf b/modules/local/relabelfastalength.nf index 6c9615ab..b376b5de 100644 --- a/modules/local/relabelfastalength.nf +++ b/modules/local/relabelfastalength.nf @@ -2,7 +2,7 @@ process RELABELFASTALENGTH { tag "${target_on_ref}" label 'process_single' - container "docker.io/gallvp/python3npkgs:v0.6" + container "docker.io/gallvp/python3npkgs:v0.7" input: tuple val(target_on_ref), path(target_seq_lengths), path(ref_seq_lengths), path(target_seq_list), path(ref_seq_list) diff --git a/subworkflows/local/fasta_synteny.nf b/subworkflows/local/fasta_synteny.nf index 219b3da7..bec3f77b 100644 --- a/subworkflows/local/fasta_synteny.nf +++ b/subworkflows/local/fasta_synteny.nf @@ -3,7 +3,7 @@ include { FILTERSORTFASTA } from '../../modules/local/filtersortfa include { MUMMER } from '../../modules/local/mummer' include { GETFASTALENGTH } from '../../modules/local/getfastalength' include { DNADIFF } from '../../modules/local/dnadiff' -include { CIRCOS_BUNDLELINKS } from '../../modules/local/circos_bundlelinks' +include { BUNDLELINKS } from '../../modules/local/bundlelinks' include { COLOURBUNDLELINKS } from '../../modules/local/colourbundlelinks' include { RELABELBUNDLELINKS } from '../../modules/local/relabelbundlelinks' include { SPLITBUNDLEFILE } from '../../modules/local/splitbundlefile' @@ -109,18 +109,18 @@ workflow FASTA_SYNTENY { ch_versions = ch_versions.mix(DNADIFF.out.versions.first()) - // MODULE: CIRCOS_BUNDLELINKS - CIRCOS_BUNDLELINKS( + // MODULE: BUNDLELINKS + BUNDLELINKS( DNADIFF.out.coords, max_gap, min_bundle_size ) - ch_versions = ch_versions.mix(CIRCOS_BUNDLELINKS.out.versions.first()) + ch_versions = ch_versions.mix(BUNDLELINKS.out.versions.first()) // MODULE: COLOURBUNDLELINKS COLOURBUNDLELINKS( - CIRCOS_BUNDLELINKS.out.links, + BUNDLELINKS.out.links, color_by_contig ) From 5660e89a0aca6d174f1f4a93553e1a4c9f1803ce Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 2 May 2024 12:50:06 +1200 Subject: [PATCH 23/76] Added the ability to create linear synteny plot in addition to the circos plot --- CHANGELOG.md | 2 + bin/assemblyqc.py | 4 +- bin/linearsynteny.py | 199 ++++++++++++++++++ bin/report_modules/parsers/circos_parser.py | 52 ----- bin/report_modules/parsers/synteny_parser.py | 108 ++++++++++ bin/report_modules/templates/base.html | 12 +- .../templates/circos/dropdown.html | 10 - .../templates/synteny_circos/dropdown.html | 10 + .../report_contents.html | 12 +- .../synteny_circos.html} | 4 +- .../templates/synteny_linear/dropdown.html | 10 + .../synteny_linear/report_contents.html | 25 +++ .../synteny_linear/synteny_linear.html | 30 +++ conf/base.config | 3 + docs/parameters.md | 141 +++++++------ modules/local/circos.nf | 2 +- modules/local/createreport.nf | 2 +- modules/local/generatekaryotype.nf | 20 +- modules/local/linearsynteny.nf | 51 +++++ nextflow.config | 3 +- nextflow_schema.json | 63 ++---- subworkflows/local/fasta_synteny.nf | 33 ++- workflows/assemblyqc.nf | 7 +- 23 files changed, 600 insertions(+), 203 deletions(-) create mode 100755 bin/linearsynteny.py delete mode 100644 bin/report_modules/parsers/circos_parser.py create mode 100644 bin/report_modules/parsers/synteny_parser.py delete mode 100644 bin/report_modules/templates/circos/dropdown.html create mode 100644 bin/report_modules/templates/synteny_circos/dropdown.html rename bin/report_modules/templates/{circos => synteny_circos}/report_contents.html (60%) rename bin/report_modules/templates/{circos/circos.html => synteny_circos/synteny_circos.html} (92%) create mode 100644 bin/report_modules/templates/synteny_linear/dropdown.html create mode 100644 bin/report_modules/templates/synteny_linear/report_contents.html create mode 100644 bin/report_modules/templates/synteny_linear/synteny_linear.html create mode 100644 modules/local/linearsynteny.nf diff --git a/CHANGELOG.md b/CHANGELOG.md index a47c6aa6..e5f2036b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 4. Added a list of nf-core contributors 5. Added a launcher script for local testing `local_assemblyqc` 6. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links +7. Added the ability to create linear synteny plot in addition to the circos plot ### `Fixed` @@ -31,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Deprecated` 1. Removed `CIRCOS_BUNDLELINKS` module +2. Now the default value of `synteny_plot_1_vs_all` is false ## 1.4 - [04-Mar-2024] diff --git a/bin/assemblyqc.py b/bin/assemblyqc.py index fc42eeed..0a2e0b8c 100755 --- a/bin/assemblyqc.py +++ b/bin/assemblyqc.py @@ -24,7 +24,7 @@ from report_modules.parsers.lai_parser import parse_lai_folder from report_modules.parsers.kraken2_parser import parse_kraken2_folder from report_modules.parsers.hic_parser import parse_hic_folder -from report_modules.parsers.circos_parser import parse_circos_folder +from report_modules.parsers.synteny_parser import parse_synteny_folder if __name__ == "__main__": params_dict, params_table = parse_params_json("params_json.json") @@ -46,7 +46,7 @@ data_from_tools = {**data_from_tools, **parse_lai_folder()} data_from_tools = {**data_from_tools, **parse_kraken2_folder()} data_from_tools = {**data_from_tools, **parse_hic_folder()} - data_from_tools = {**data_from_tools, **parse_circos_folder()} + data_from_tools = {**data_from_tools, **parse_synteny_folder()} with open("software_versions.yml", "r") as f: versions_from_ch_versions = yaml.safe_load(f) diff --git a/bin/linearsynteny.py b/bin/linearsynteny.py new file mode 100755 index 00000000..1bc2cd46 --- /dev/null +++ b/bin/linearsynteny.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python3 + +import plotly.graph_objects as go +import pandas as pd +import argparse + + +def load_data(data_filename, karyotype_ref_file_name, karyotype_target_filename): + data = pd.read_csv(data_filename, sep="\t", header=None) + data.columns = [ + "ref", + "ref_start", + "ref_stop", + "target", + "target_start", + "target_stop", + "color", + ] + + karyotype_ref = pd.read_csv(karyotype_ref_file_name, sep="\t", header=None) + karyotype_ref.columns = ["chr", "name", "name1", "zero", "size", "color"] + karyotype_target = pd.read_csv(karyotype_target_filename, sep="\t", header=None) + karyotype_target.columns = ["chr", "name", "name1", "zero", "size", "color"] + return data, karyotype_ref, karyotype_target + + +def insert_offsets_and_return_dict(karyotype_df): + karyotype_df["offset"] = karyotype_df["size"].cumsum().shift(fill_value=0) + return dict(zip(karyotype_df["name"], karyotype_df["offset"])) + + +def insert_midpoints_and_return_dict(karyotype_df): + karyotype_df["midpoint"] = (karyotype_df["size"] / 2.0) + karyotype_df["offset"] + return dict(zip(karyotype_df["name"], karyotype_df["midpoint"])) + + +def insert_figure_data( + data, offsets_ref, offsets_target, midpoints_ref, midpoints_target, fig +): + for index, row in data.iterrows(): + x_ = [i + offsets_ref[row["ref"]] for i in [row["ref_start"], row["ref_stop"]]] + + y_ = [ + j + offsets_target[row["target"]] + for j in [row["target_start"], row["target_stop"]] + ] + + midpoint_x = midpoints_ref[row["ref"]] + midpoint_y = midpoints_target[row["target"]] + + fig.add_trace( + go.Scatter( + x=x_, + y=y_, + mode="lines", + line=dict( + color=f"rgba{(row['color'].replace('color=', '').replace('0.5)', '1)'))}", + width=2, + ), + name=f"{index}: {row['target']}:{row['ref']}", + legendgroup=f"{row['target']}:{row['ref']}", + legendgrouptitle=dict(text=f"{row['target']}:{row['ref']}"), + ) + ) + + fig.add_trace( + go.Scatter( + x=[midpoint_x], + y=[0], + xaxis="x2", + line=dict(color="#ffffff"), + showlegend=False, + ) + ) + fig.add_trace( + go.Scatter( + x=[0], + y=[midpoint_y], + yaxis="y2", + line=dict(color="#ffffff"), + showlegend=False, + ) + ) + + +def format_figure( + karyotype_ref, + karyotype_target, + offsets_ref, + offsets_target, + midpoints_ref, + midpoints_target, + fig, +): + + xaxis_range = [0, list(offsets_ref.values())[-1] + list(karyotype_ref["size"])[-1]] + yaxis_range = [ + 0, + list(offsets_target.values())[-1] + list(karyotype_target["size"])[-1], + ] + + fig.update_layout( + xaxis=dict( + range=xaxis_range, + ), + yaxis=dict(range=yaxis_range), + hovermode="closest", + xaxis2=dict( + overlaying="x", + scaleanchor="x1", + range=xaxis_range, + tickmode="array", + tickvals=list(offsets_ref.values()), + ticktext=list(offsets_ref.keys()), + side="top", + ), + yaxis2=dict( + overlaying="y", + scaleanchor="y1", + range=yaxis_range, + tickmode="array", + tickvals=list(offsets_target.values()), + ticktext=list(offsets_target.keys()), + autoshift=True, + anchor="free", + ), + paper_bgcolor="rgba(0,0,0,0)", + plot_bgcolor="rgba(0,0,0,0)", + showlegend=True, + ) + + fig.update_xaxes( + showgrid=True, + zeroline=False, + gridcolor="rgba(0, 0, 0, 0.1)", + griddash="dashdot", + ) + fig.update_yaxes( + showgrid=True, + zeroline=False, + gridcolor="rgba(0, 0, 0, 0.1)", + griddash="dashdot", + ) + fig["layout"]["yaxis1"]["showgrid"] = False + fig["layout"]["xaxis1"]["showgrid"] = False + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser( + description="Create a linear synteny plot from `nucmer/dnadiff/circos bundlelinks` bundles", + epilog="Author: Usman Rashid", + ) + parser.add_argument("-v", "--version", action="version", version="%(prog)s 0.1") + parser.add_argument( + "--output", + type=str, + default="synteny_plot.html", + required=False, + help="Output filename", + ) + parser.add_argument("bundlelinks", type=argparse.FileType("r")) + parser.add_argument("karyotype_ref", type=argparse.FileType("r")) + parser.add_argument("karyotype_target", type=argparse.FileType("r")) + + args = parser.parse_args() + + data_filename = args.bundlelinks + karyotype_ref_file_name = args.karyotype_ref + karyotype_target_filename = args.karyotype_target + output_filename = args.output + + data, karyotype_ref, karyotype_target = load_data( + data_filename, karyotype_ref_file_name, karyotype_target_filename + ) + + offsets_ref = insert_offsets_and_return_dict(karyotype_ref) + offsets_target = insert_offsets_and_return_dict(karyotype_target) + + midpoints_ref = insert_midpoints_and_return_dict(karyotype_ref) + midpoints_target = insert_midpoints_and_return_dict(karyotype_target) + + fig = go.Figure() + + insert_figure_data( + data, offsets_ref, offsets_target, midpoints_ref, midpoints_target, fig + ) + + format_figure( + karyotype_ref, + karyotype_target, + offsets_ref, + offsets_target, + midpoints_ref, + midpoints_target, + fig, + ) + + fig.write_html(output_filename) diff --git a/bin/report_modules/parsers/circos_parser.py b/bin/report_modules/parsers/circos_parser.py deleted file mode 100644 index 0df2d037..00000000 --- a/bin/report_modules/parsers/circos_parser.py +++ /dev/null @@ -1,52 +0,0 @@ -import os -from pathlib import Path -import base64 -import re - -from report_modules.parsers.parsing_commons import sort_list_of_results - - -def parse_circos_folder(folder_name="circos_outputs"): - dir = os.getcwdb().decode() - circos_folder_path = Path(f"{dir}/{folder_name}") - - if not os.path.exists(circos_folder_path): - return {} - - list_of_plot_files = [item for item in circos_folder_path.glob("*.png")] - - data = {"CIRCOS": []} - - for plot_path in list_of_plot_files: - file_tokens = re.findall( - r"([\w]+).on.([\w]+).([\w]+).png", - os.path.basename(str(plot_path)), - )[0] - - if os.path.getsize(plot_path) == 0: - data["CIRCOS"].append( - { - "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", - "circos_plot": "", - "is_plot_empty": True, - } - ) - continue - - binary_fc = open(plot_path, "rb").read() - base64_utf8_str = base64.b64encode(binary_fc).decode("utf-8") - ext = str(plot_path).split(".")[-1] - plot_url = f"data:image/{ext}+xml;base64,{base64_utf8_str}" - - data["CIRCOS"].append( - { - "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", - "circos_plot": plot_url, - "is_plot_empty": False, - } - ) - - if len(data["CIRCOS"]) < 1: - return {} - - return {"CIRCOS": sort_list_of_results(data["CIRCOS"], "tag.on.tag")} diff --git a/bin/report_modules/parsers/synteny_parser.py b/bin/report_modules/parsers/synteny_parser.py new file mode 100644 index 00000000..0f871114 --- /dev/null +++ b/bin/report_modules/parsers/synteny_parser.py @@ -0,0 +1,108 @@ +import os +from pathlib import Path +import base64 +import re + +from report_modules.parsers.parsing_commons import sort_list_of_results + + +def parse_synteny_circos(folder_name="synteny_outputs"): + dir = os.getcwdb().decode() + circos_folder_path = Path(f"{dir}/{folder_name}") + + if not os.path.exists(circos_folder_path): + return {} + + list_of_plot_files = [item for item in circos_folder_path.glob("*.png")] + + data = {"SYNTENY_CIRCOS": []} + + for plot_path in list_of_plot_files: + file_tokens = re.findall( + r"([\w]+).on.([\w]+).([\w]+).png", + os.path.basename(str(plot_path)), + )[0] + + if os.path.getsize(plot_path) == 0: + data["SYNTENY_CIRCOS"].append( + { + "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", + "circos_plot": "", + "is_plot_empty": True, + } + ) + continue + + binary_fc = open(plot_path, "rb").read() + base64_utf8_str = base64.b64encode(binary_fc).decode("utf-8") + ext = str(plot_path).split(".")[-1] + plot_url = f"data:image/{ext}+xml;base64,{base64_utf8_str}" + + data["SYNTENY_CIRCOS"].append( + { + "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", + "circos_plot": plot_url, + "is_plot_empty": False, + } + ) + + if len(data["SYNTENY_CIRCOS"]) < 1: + return {} + + return { + "SYNTENY_CIRCOS": sort_list_of_results(data["SYNTENY_CIRCOS"], "tag.on.tag") + } + + +def parse_synteny_linear(folder_name="synteny_outputs"): + dir = os.getcwdb().decode() + circos_folder_path = Path(f"{dir}/{folder_name}") + + if not os.path.exists(circos_folder_path): + return {} + + list_of_plot_files = [item for item in circos_folder_path.glob("*.html")] + + data = {"SYNTENY_LINEAR": []} + + for plot_path in list_of_plot_files: + file_tokens = re.findall( + r"([\w]+).on.([\w]+).([\w]+).html", + os.path.basename(str(plot_path)), + )[0] + + if os.path.getsize(plot_path) == 0: + data["SYNTENY_LINEAR"].append( + { + "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", + "plot": "", + "plot_folder": "", + "is_plot_empty": True, + } + ) + continue + + plot_filename = os.path.basename(str(plot_path)) + + data["SYNTENY_LINEAR"].append( + { + "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", + "plot": plot_filename, + "plot_folder": plot_filename.replace(".html", ""), + "is_plot_empty": False, + } + ) + + if len(data["SYNTENY_LINEAR"]) < 1: + return {} + + return { + "SYNTENY_LINEAR": sort_list_of_results(data["SYNTENY_LINEAR"], "tag.on.tag") + } + + +def parse_synteny_folder(folder_name="synteny_outputs"): + circos_data = parse_synteny_circos(folder_name) + linear_data = parse_synteny_linear(folder_name) + + return {**circos_data, **linear_data} diff --git a/bin/report_modules/templates/base.html b/bin/report_modules/templates/base.html index bb753a67..2fbb47ce 100644 --- a/bin/report_modules/templates/base.html +++ b/bin/report_modules/templates/base.html @@ -33,9 +33,11 @@ onclick="openTool(event, 'KRAKEN2')"> KRAKEN2{% endif %} {% if 'HIC' in all_stats_dicts %}{% endif %} {% if 'CIRCOS' in all_stats_dicts %}{% endif %} + HIC{% endif %} {% if 'SYNTENY_CIRCOS' in all_stats_dicts %}{% endif %}{% if 'SYNTENY_LINEAR' in all_stats_dicts %}{% endif %} {% include 'params/params.html' %} {% include 'tools/tools.html' %} {% if 'FASTA_VALIDATE' in all_stats_dicts %}{% include 'fasta_validate/fasta_validate.html' %}{% endif %} @@ -50,7 +52,9 @@ include 'busco/busco.html' %}{% endif %} {% if 'TIDK' in all_stats_dicts %}{% include 'tidk/tidk.html' %}{% endif %} {% if 'LAI' in all_stats_dicts %}{% include 'lai/lai.html' %}{% endif %} {% if 'KRAKEN2' in all_stats_dicts %}{% include 'kraken2/kraken2.html' %}{% endif %} {% if 'HIC' in all_stats_dicts %}{% include - 'hic/hic.html' %}{% endif %} {% if 'CIRCOS' in all_stats_dicts %}{% include 'circos/circos.html' %}{% endif %} + 'hic/hic.html' %}{% endif %} {% if 'SYNTENY_CIRCOS' in all_stats_dicts %}{% include + 'synteny_circos/synteny_circos.html' %}{% endif %} {% if 'SYNTENY_LINEAR' in all_stats_dicts %}{% include + 'synteny_linear/synteny_linear.html' %}{% endif %} {% include 'js.html' %} diff --git a/bin/report_modules/templates/circos/dropdown.html b/bin/report_modules/templates/circos/dropdown.html deleted file mode 100644 index 0cdafbb7..00000000 --- a/bin/report_modules/templates/circos/dropdown.html +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/bin/report_modules/templates/synteny_circos/dropdown.html b/bin/report_modules/templates/synteny_circos/dropdown.html new file mode 100644 index 00000000..9111391c --- /dev/null +++ b/bin/report_modules/templates/synteny_circos/dropdown.html @@ -0,0 +1,10 @@ + diff --git a/bin/report_modules/templates/circos/report_contents.html b/bin/report_modules/templates/synteny_circos/report_contents.html similarity index 60% rename from bin/report_modules/templates/circos/report_contents.html rename to bin/report_modules/templates/synteny_circos/report_contents.html index e3355169..e1d975ef 100644 --- a/bin/report_modules/templates/circos/report_contents.html +++ b/bin/report_modules/templates/synteny_circos/report_contents.html @@ -1,15 +1,15 @@ -{% set vars = {'is_first': True} %} {% for item in range(all_stats_dicts["CIRCOS"]|length) %} {% set active_text = +{% set vars = {'is_first': True} %} {% for item in range(all_stats_dicts["SYNTENY_CIRCOS"]|length) %} {% set active_text = 'display: block' if vars.is_first else 'display: none' %}
    -
    {{ all_stats_dicts['CIRCOS'][item]['tag.on.tag'] }}
    +
    {{ all_stats_dicts['SYNTENY_CIRCOS'][item]['tag.on.tag'] }}
    - {% if all_stats_dicts['CIRCOS'][item]['is_plot_empty'] %} + {% if all_stats_dicts['SYNTENY_CIRCOS'][item]['is_plot_empty'] %}

    Either no alignments were detected between the target and reference assemblies, or all the alignment @@ -18,7 +18,7 @@

    {% else %}
    - +
    {% endif %}
    diff --git a/bin/report_modules/templates/circos/circos.html b/bin/report_modules/templates/synteny_circos/synteny_circos.html similarity index 92% rename from bin/report_modules/templates/circos/circos.html rename to bin/report_modules/templates/synteny_circos/synteny_circos.html index 4b9c8c1b..2950621a 100644 --- a/bin/report_modules/templates/circos/circos.html +++ b/bin/report_modules/templates/synteny_circos/synteny_circos.html @@ -1,4 +1,4 @@ -
    -Synteny plots are created with Circos which is a tool [facilitating](https://circos.ca) the identification and analysis of similarities and differences arising from comparisons of genomes. The genome-wide alignments are performed with [MUMMER](https://github.com/mummer4/mummer?tab=readme-ov-file) and bundled with [`dnadiff.pl`](https://github.com/mummer4/mummer/blob/master/scripts/dnadiff.pl). +[Circos](https://circos.ca) and linear synteny plots are created from genome-wide alignments performed with [MUMMER](https://github.com/mummer4/mummer?tab=readme-ov-file) and [`dnadiff.pl`](https://github.com/mummer4/mummer/blob/master/scripts/dnadiff.pl). -
    AssemblyQC - Synteny plot
    AssemblyQC - Synteny plot
    +
    AssemblyQC - Synteny plot
    AssemblyQC - Circos synteny plot
    ### Pipeline information diff --git a/modules.json b/modules.json index f9c0995c..f8f52b45 100644 --- a/modules.json +++ b/modules.json @@ -12,7 +12,7 @@ }, "bwa/mem": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", + "git_sha": "26eca75b7373d582569353ed70817072f908b2da", "installed_by": ["fastq_bwa_mem_samblaster"] }, "cat/cat": { @@ -86,7 +86,7 @@ }, "fastq_bwa_mem_samblaster": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", + "git_sha": "258dbf212876e040e0049809ff0f9fc3f032b8d9", "installed_by": ["subworkflows"] }, "gff3_validate": { @@ -171,7 +171,7 @@ }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { diff --git a/modules/local/linearsynteny.nf b/modules/local/linearsynteny.nf index 1296a658..c46f6793 100644 --- a/modules/local/linearsynteny.nf +++ b/modules/local/linearsynteny.nf @@ -1,9 +1,8 @@ process LINEARSYNTENY { tag "${target_on_ref_seq}" - label "process_single" + label 'process_single' container "docker.io/gallvp/python3npkgs:v0.7" - publishDir "${params.outdir}/synteny/${target_on_ref_seq}", mode: 'copy' input: tuple val(target_on_ref_seq), path(bundle_file), path(karyotype_ref), path(karyotype_target) diff --git a/modules/pfr/bwa/mem/main.nf b/modules/pfr/bwa/mem/main.nf index 54ec0f16..d8bd2815 100644 --- a/modules/pfr/bwa/mem/main.nf +++ b/modules/pfr/bwa/mem/main.nf @@ -8,13 +8,17 @@ process BWA_MEM { 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:a34558545ae1413d94bde4578787ebef08027945-0' }" input: - tuple val(meta), path(reads) + tuple val(meta) , path(reads) tuple val(meta2), path(index) + tuple val(meta3), path(fasta) val sort_bam output: - tuple val(meta), path("*.bam"), emit: bam - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam") , emit: bam, optional: true + tuple val(meta), path("*.cram") , emit: cram, optional: true + tuple val(meta), path("*.csi") , emit: csi, optional: true + tuple val(meta), path("*.crai") , emit: crai, optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,6 +28,13 @@ process BWA_MEM { def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def samtools_command = sort_bam ? 'sort' : 'view' + def extension = args2.contains("--output-fmt sam") ? "sam" : + args2.contains("--output-fmt cram") ? "cram": + sort_bam && args2.contains("-O cram")? "cram": + !sort_bam && args2.contains("-C") ? "cram": + "bam" + def reference = fasta && extension=="cram" ? "--reference ${fasta}" : "" + if (!fasta && extension=="cram") error "Fasta reference is required for CRAM output" """ INDEX=`find -L ./ -name "*.amb" | sed 's/\\.amb\$//'` @@ -32,7 +43,7 @@ process BWA_MEM { -t $task.cpus \\ \$INDEX \\ $reads \\ - | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - + | samtools $samtools_command $args2 ${reference} --threads $task.cpus -o ${prefix}.${extension} - cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -42,9 +53,19 @@ process BWA_MEM { """ stub: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def samtools_command = sort_bam ? 'sort' : 'view' + def extension = args2.contains("--output-fmt sam") ? "sam" : + args2.contains("--output-fmt cram") ? "cram": + sort_bam && args2.contains("-O cram")? "cram": + !sort_bam && args2.contains("-C") ? "cram": + "bam" """ - touch ${prefix}.bam + touch ${prefix}.${extension} + touch ${prefix}.csi + touch ${prefix}.crai cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/pfr/bwa/mem/meta.yml b/modules/pfr/bwa/mem/meta.yml index 440fb1f9..1532c261 100644 --- a/modules/pfr/bwa/mem/meta.yml +++ b/modules/pfr/bwa/mem/meta.yml @@ -37,6 +37,10 @@ input: type: file description: BWA genome index files pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" + - fasta: + type: file + description: Reference genome in FASTA format + pattern: "*.{fasta,fa}" - sort_bam: type: boolean description: use samtools sort (true) or samtools view (false) @@ -46,6 +50,18 @@ output: type: file description: Output BAM file containing read alignments pattern: "*.{bam}" + - cram: + type: file + description: Output CRAM file containing read alignments + pattern: "*.{cram}" + - csi: + type: file + description: Optional index file for BAM file + pattern: "*.{csi}" + - crai: + type: file + description: Optional index file for CRAM file + pattern: "*.{crai}" - versions: type: file description: File containing software versions @@ -53,6 +69,8 @@ output: authors: - "@drpatelh" - "@jeremy1805" + - "@matthdsm" maintainers: - "@drpatelh" - "@jeremy1805" + - "@matthdsm" diff --git a/modules/pfr/bwa/mem/tests/main.nf.test b/modules/pfr/bwa/mem/tests/main.nf.test index 804f23f7..1fa9b56d 100644 --- a/modules/pfr/bwa/mem/tests/main.nf.test +++ b/modules/pfr/bwa/mem/tests/main.nf.test @@ -35,7 +35,8 @@ nextflow_process { ] ] input[1] = BWA_INDEX.out.index - input[2] = false + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = false """ } } @@ -75,7 +76,8 @@ nextflow_process { ] ] input[1] = BWA_INDEX.out.index - input[2] = true + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = true """ } } @@ -116,7 +118,8 @@ nextflow_process { ] ] input[1] = BWA_INDEX.out.index - input[2] = false + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = false """ } } @@ -157,7 +160,8 @@ nextflow_process { ] ] input[1] = BWA_INDEX.out.index - input[2] = true + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = true """ } } @@ -170,4 +174,133 @@ nextflow_process { } } -} \ No newline at end of file + + test("Paired-End - no fasta") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = [[:],[]] + input[3] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Single-end - stub") { + options "-stub" + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + } + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.bam[0][1]).name, + file(process.out.csi[0][1]).name, + process.out.versions + ).match() } + ) + } + } + + test("Paired-end - stub") { + options "-stub" + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + } + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = [[id: 'test'],file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)] + input[3] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.bam[0][1]).name, + file(process.out.csi[0][1]).name, + process.out.versions + ).match() } + ) + } + } +} diff --git a/modules/pfr/bwa/mem/tests/main.nf.test.snap b/modules/pfr/bwa/mem/tests/main.nf.test.snap index e4fd8cc0..0d1bdb41 100644 --- a/modules/pfr/bwa/mem/tests/main.nf.test.snap +++ b/modules/pfr/bwa/mem/tests/main.nf.test.snap @@ -12,6 +12,15 @@ ] ], "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" ], "bam": [ @@ -22,6 +31,15 @@ }, "test.bam:md5,a74710a0345b4717bb4431bf9c257120" ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + ], "versions": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" @@ -30,9 +48,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-19T11:11:48.440661587" + "timestamp": "2024-03-14T14:14:56.820798254" }, "Single-End Sort": { "content": [ @@ -47,6 +65,15 @@ ] ], "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" ], "bam": [ @@ -57,6 +84,15 @@ }, "test.bam:md5,cb1e038bc4d990683fa485d632550b54" ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + ], "versions": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" @@ -65,9 +101,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-19T11:11:56.086493265" + "timestamp": "2024-03-14T14:15:20.271428534" }, "Paired-End": { "content": [ @@ -82,6 +118,15 @@ ] ], "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" ], "bam": [ @@ -92,6 +137,15 @@ }, "test.bam:md5,aea123a3828a99da1906126355f15a12" ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + ], "versions": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" @@ -100,9 +154,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-19T11:12:03.474974773" + "timestamp": "2024-03-14T14:15:38.264256823" }, "Paired-End Sort": { "content": [ @@ -117,6 +171,15 @@ ] ], "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" ], "bam": [ @@ -127,6 +190,82 @@ }, "test.bam:md5,4682087bcdc3617384b375093fecd8dd" ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + + ], + "versions": [ + "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-14T14:16:00.528642686" + }, + "Single-end - stub": { + "content": [ + "test.bam", + "test.csi", + [ + "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-15T09:50:33.238543011" + }, + "Paired-End - no fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,aea123a3828a99da1906126355f15a12" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,aea123a3828a99da1906126355f15a12" + ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + ], "versions": [ "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" @@ -135,8 +274,22 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-14T14:40:16.345342005" + }, + "Paired-end - stub": { + "content": [ + "test.bam", + "test.csi", + [ + "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" }, - "timestamp": "2024-02-19T11:12:10.721510817" + "timestamp": "2024-03-15T09:50:42.268673302" } } \ No newline at end of file diff --git a/nextflow.config b/nextflow.config index 9aa0e97b..6fa14fdb 100644 --- a/nextflow.config +++ b/nextflow.config @@ -264,7 +264,7 @@ manifest { description = """A NextFlow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '2.0.0' + version = '2.0.0+dev' doi = '10.5281/zenodo.10647870' } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index a8b55d6f..14558c39 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -65,9 +65,15 @@ def checkProfileProvided(nextflow_cli_args) { // Citation string for pipeline // def workflowCitation() { + def temp_doi_ref = "" + String[] manifest_doi = workflow.manifest.doi.tokenize(",") + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + - " ${workflow.manifest.doi}\n\n" + + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + diff --git a/subworkflows/pfr/fastq_bwa_mem_samblaster/main.nf b/subworkflows/pfr/fastq_bwa_mem_samblaster/main.nf index 50e824a9..456f36c7 100644 --- a/subworkflows/pfr/fastq_bwa_mem_samblaster/main.nf +++ b/subworkflows/pfr/fastq_bwa_mem_samblaster/main.nf @@ -6,7 +6,7 @@ workflow FASTQ_BWA_MEM_SAMBLASTER { take: ch_fastq // channel: [ val(meta), [ fq ] ] - ch_reference // channel: [ val(meta2), fasta, index ]; fast | index + ch_reference // channel: [ val(meta2), fasta, index ]; fasta | index main: ch_versions = Channel.empty() @@ -43,6 +43,7 @@ workflow FASTQ_BWA_MEM_SAMBLASTER { BWA_MEM( ch_mem_inputs.map { meta, fq, index -> [ meta, fq ] }, ch_mem_inputs.map { meta, fq, index -> [ [], index ] }, + [ [], [] ], sort_bam ) diff --git a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test index 9c3e2b01..0a84fd8c 100644 --- a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test +++ b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test @@ -41,4 +41,35 @@ nextflow_workflow { ) } } + + test("sarscov2-fq-gz-stub") { + + options '-stub' + + when { + workflow { + """ + input[0] = Channel.of( + [ + [ id:'test' ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + ) + input[1] = Channel.of( + [ [ id: 'genome' ], file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), [] ] + ) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot(workflow.out).match()} + ) + } + } } \ No newline at end of file diff --git a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap index e5a9b18e..83f6bc6d 100644 --- a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap +++ b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap @@ -8,12 +8,12 @@ "id": "test", "ref_id": "genome" }, - "test.on.genome.samblaster.bam:md5,496319fc81c383a9ae6ab52592876c9b" + "test.on.genome.samblaster.bam:md5,8c47b2669f5250ad2d24365b42566d78" ] ], "1": [ - "versions.yml:md5,2ed54ca5e54063cb579273d0792465a7", - "versions.yml:md5,49d22cda9beaf6ea1a1ad838ef4a4255", + "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", + "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" ], "bam": [ @@ -22,12 +22,12 @@ "id": "test", "ref_id": "genome" }, - "test.on.genome.samblaster.bam:md5,496319fc81c383a9ae6ab52592876c9b" + "test.on.genome.samblaster.bam:md5,8c47b2669f5250ad2d24365b42566d78" ] ], "versions": [ - "versions.yml:md5,2ed54ca5e54063cb579273d0792465a7", - "versions.yml:md5,49d22cda9beaf6ea1a1ad838ef4a4255", + "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", + "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" ] } @@ -36,6 +36,45 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-02-08T19:37:23.464854" + "timestamp": "2024-05-03T15:58:33.221762" + }, + "sarscov2-fq-gz-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "ref_id": "genome" + }, + "test.on.genome.samblaster.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", + "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", + "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + ], + "bam": [ + [ + { + "id": "test", + "ref_id": "genome" + }, + "test.on.genome.samblaster.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", + "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", + "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T16:03:28.825915" } } \ No newline at end of file From 23017999db6ad6ca865e4d2782a763c4f9d9a6a9 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 6 May 2024 11:44:01 +1200 Subject: [PATCH 28/76] Updated docs --- docs/images/synteny.png | Bin 305494 -> 0 bytes docs/images/synteny_circos.png | Bin 0 -> 339304 bytes docs/images/synteny_linear.png | Bin 0 -> 108201 bytes docs/output.md | 16 +++++++++------- 4 files changed, 9 insertions(+), 7 deletions(-) delete mode 100644 docs/images/synteny.png create mode 100644 docs/images/synteny_circos.png create mode 100644 docs/images/synteny_linear.png diff --git a/docs/images/synteny.png b/docs/images/synteny.png deleted file mode 100644 index edd8bc4ac73120f9913767efc2943bd0cfd22b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305494 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

    YcYpZ2bdgy?Lev&* zr&)>B57u7-FHR&Bxq2m;?)N&Vt6CNDHIw`)RN=dnL{~dNtKji6aJFMckj{%&l@#ZF|j0J(aY3Le$Lck5$lqmHbGy?=aVZ zf9uIM4S{TcT0^&Z7f7eDRY-p?Erdb}6@Z9E*pRe6gd_s_5YRasKY0r2=YaG)x;WYr zHw13b5Hhm~*%+JeOmDs%!vnbx#dr3*McPj`pR!Oa*WP{Y*%at|#Q5J%WL0tT&9E>g z6H*gBj+S=^nUW1!z9lOE;!iZkq$y$&0<-9nt0hi^JFDRG=mjw+@&4|i0g?(fQU7b_ zt@dWyPV9lFnia(9fQbg+5b`@OX*}7EUcjLoBV2)20-s==92s-(ZB(Z`>>%j$ERT!@ z62$8Y3ZiGf83Jq{sxhT%p^`GZ$~TOR`3}_D_x84d^*^?UZYvv}{S;Xi#NZ>a&l9%p zq?#H)I63I6O^7N}#Jo_TwwV)i`djg0#O_0@2gCj@z26TW3JjvDCaPwQTg9riON zreWcbh#8YjguM!>qw6bmxe_h{!xVNEIiP7s&G>e|S_5qKbBnhNbmm8Zm^m$TqIMV_ z{hT4?D*B2_MVvLxqIE(NtWq1{K$H zm+3YYu7uxl;FA0a!h)2d;MWj^fREQc__T9``@+@%^!4BQNvJ#|z=(Vd#s<@-e_BBE z0^wp%h+~SaLW5do(;`yDJIzGgj)}Des17|MIc3QFIM6Vtcch;sBgNyYE+2EY2a{~v zRbxZehxCU2foWOwj??2+(Gn#=@gptyBduhoZr6N!c|AtoKDbjGcD2;8KQ1mVDGk5N zii?r)B~*;A&d!6|j^L2=y6_6kKe!cah>jLy4#%{_Ma9IJl#me(8>C)7MrgfX7V9Zz z0C<8qIuc7*A-@`TZJ=gVQL+=4-~L+ltJwXRWm(8h%~&`RzB*z$Iy#iuPGZc_A@V9Z zYdJgK@aD%Lp`!FXMJ}JtkPFa{1aE~P*LK^le01qK#3WkHk2t%yfMw-H;Nbuj0^}tZ zKeNljk^#_;Gkg-v%rc#~5%mk8wh?H^5gG2N1+x%%iV{lJ#SZY7p-=fbnp;_?wHkL7 zWo|}E0&iAK;oJ6y`k!A5ulZl>8yLg>a?*{ToJ}{o)s6GDVyeN8z$H}iUQ&ZFDE;5Bc+sp#%S2z(7(j$yotiiSqpl_O=mT)uyw}nXwS*JiR zeC4+f60Zm}j4ZZS&Hj7867VNi%J2=RVJHnMYQzJ&qUK6`@FGfZXPL#OCQs}R^|gYY zeZD&dPtUh{WDLuS3#p&%FBK7;&lw6#GaMv@Z#O1Y-egEg06Y8MS*(Na;Bg7|mt;4U z-*KHZJ4t??IF>vC#yD`jCMM5ZWO@;6IjGfg!1M@0{=UPEYpypI5KZV@oZtBqObra) zKzcb~dXq2@g1j~ruGxTA#(pqE%S)>u3ARQ~VGe|8Iepwg1ff#%>pU(hxg7t%o5JU75U8OU9y$ISCUA(HM#?>o40Q>qxx(sE$ji%v z>fPrq2ZoZ=aMc#uX*SI-p?|Ix%N2Jk-B7c6XLh&uTz;1JQV8!~_Hnw01z2)YBRO9M zxKc$mw+PYOr#a9s2D&L3?5qB*_)dOJCG?a9(0uY}jFu-{RwTw~}lKWOyH?B7i zV8oe=xAV|;a6-d>p4^=PC4MU!SOv8A*{D&Q0{W-oNl{JwyvBzx!UG7mJLs~0Og)>R znHLehctdEZN>O8EohrIyBKg#5F)3G1^Bu*HfAjxK}HMZRQFENscm?g?g+;NNLyF0|Q^!#D&lEaa+;VFZ< zMWbbj#V{>60Z#H~9uvt7KSe@n`=o9&Hs)Rpln5pc4vT=x{-c*vK6}>kC6qFeW*O2T z0LZ=WJ4==u2iB&4fXmMYC?wF1H=%pUxIYZmxnR(U(25bxDd=L5dp!qZVH8V#b+v)! zWiaMM@*)I_1xvdVLl}}%iSP~s{l~p$;zl7Tz_`F7W}l#w@M4Tw9;FpqZGra78WvMWDRLw~9Fcr4P0E6fd~nA{ydPlLPJBrEKtKFOh2Ta#N14g1n+QoRSbK%tEqK}ZH7OyUP!yI z438F?!{!VTiUd~lmwz6Yt<{UOdCQW3af<=-0U7Ql)UC3!50i8R~hM zdjacaJDNYo3`S#6M@hjJ3Cjo&_*pO;-a3Nahv=F(k-{n%i-EJ9Slbk2cz6PtWh^to zvW$q(6+>ks@{ajZ^b2vqCx1d<*dgy-K}Xh?lXQI4vUe%ca34GfhXv5ew~{$v-CB}s z_7cagUm3)(xTbL5Yf^RJ=FPn(E?w9COY6c7|AD9|s?Dk!wOOvus%7Y`;SLjbPfN5x zTMnnO{Li|#P~dFCX)OEE_J3aMmu6F#KOwgITXH2kd|I%K+5k2# zmZ3o1v{|MQMD@hPz#Mh15qW7rd)J5)9@Lu9o6)StUG?lV<3HFOvRpL&@wzrCJ7mDT zg`1a+!QaO!W1$JZ)w_w(Q8;IsP@Qg4)N|=9xA!l?jSrQ>0>hi}pY_$QFC@q?maM2uLoQJs*L$JSJ)9%9T4DP zJCFl41gIhRK{b%HB><0I%NT{0Ft2Ai`xh?vd4-31j}=bP>?J9lv0C58Q;4^yAl0<$ zuB9enuqeenfw$5VJMj|pB7e6L9bzQ4uKD214}D(YuLFafeFT)OZ`ji-xEbyqbRkKC zDSV;k=1)rj&iDWue(u8sZJ-^%Q4D!-uz8R6Ya+n#aE|OXw@g%C#y+DmO2Ha*WiW9B zL*h~wR?q6GW|6WQqQ0@9l-R3&4+3&s;m}#))8VuSpKrs-{MSL}nVZFvlf@QsUkSOj z(+PJxmHGWIC_x0J(pkauueMA3K@j=I2IHJBU2O28dtQPo*}L-9KQQq zM3Eo*O9G{%^v}k!GemGP(NqJj#3j_oIa}*vFjqAf@Dy zv>JJ}*OIQgJeawQJ^ciS4iKV(JE2rxkQ)#_>2yb+cPxxyBGLbK8!A4dj551nZ{iKp z(idOTlA1vCKn>|2EAl*y3($RS}SWUL~>0{V$i#UcYP6ojYb;HfUB;q@rD`I@m zuisjUqFTx{v}{w3$qz|~li29PeHeU?{ef0oH2mhRTaaR|Wi9X9eNqaPOdXTZ*Z=~( zesT(>Ab>mt8v&izxKrmf;g|8ff=PP**g=`XGEq$<& zRaAIzsz7lMwZeZD;E&_rfIHS6c#pFO_I|R_%Th$a1Vo91O8(k2bw|*DXXTNI$S_f# z;oW>n8G3YbL86_!JX=N+UfEUE$|+;vM)7ewEXBMZ8{uTSG4j!s_!u}aC(i1ijSJ)P zY?c-9IEW@;o|Do5#?8+w)_|I|_4A`C`5Gv=7PrEH1&&|>P-7u>fZ~DQw4D8qqZHTc zeJN0@YF4_fB_(PGL*!ZYGB1gf^a9M#5*X%7f;?Yo%F6Jg!w-k97z_^f;HHT+$P@O< zRg7HLH*|hw4tZi9Z+p|tY7;obaSmuv|WY4_;S$dtphb?ya zVDVu*HC2OE!|4hvKX*Zla?SZ!QK7P1%eXt)Ye=0;NEF&&HpAgrR`r#5S$(Nov46X^(>3GU)y)k?AcOSd4j4qFv z2ZA3PMVgb&MROMn{9K}p1!13NOksjT=mks0T3a>dlkkgde?BVcUMTi`amKKfk|YZe zy1@VsZq>n|xF9tG{TU(?%Y$SfN$@)x8A>S<_>wn^#ZHfuXnAzcMKFlW5b=3+=nGf3 zD69XthT{nw;_>##$ik)EfI4+qU!HIAnxD*+%7dz!>O~yB;7KVy=9FlNYh=%+_~{#W z@}XM23B`zP6JI35Jn`*$$nG|J-xOJ%O(C}!UT$t=;E1+&wqj;s});DVjLkOr5Vfu zCBcE0PztAMp59JtN)LM{aAd|pOtln{?^VGvd;7H9oAJkne!V)uor{47Hnrq1$SBpV z+YzxyGTruczn>hfY|i}r^x<}mQzv^#yqzU#W*?5Z)90O&3;Mh& zHXL8{e%TL0*zjQeeCyU3;MBt5xY7pCi4*x6b)ZROM7|JoncG0;lh3GbkNlyu2kE+{ z&xbC$ck_(-*lDK7^3EH=AhgkRG|Nt+CcLf`-|{KV^A}_9mc;3=p0Jf84@U!e)4bX)qJM-)p$?(pL)A~UX%jst zZxV~@c4&R=SAp;(?x~a%;9naW^O?7A8HAP#B#qSs7Hx^Fv_n}P-IFk?YD?#2B>sL8 z*Ryn;mqyiLA;(y;*9a>|S?uk=5Mi+*9Je{LBqGF}zU9zwIf4V&6REKGc_{?@$T%WK z-W_JeEq*=r5|~0TW)up)c(C~vnE^E4L!mLqQ#pf7IVLXe7uHePG$q~t>rmk>=A`?5 z;i^qvmf<<+Kc;j_42%JEk2F{b8HpZWy=tFz7Mj*9(=0EPy_tL1Qh;3zi_XeG22^E9 z4>5&?tuEBaFDJA(>@Ey$x;-0cS|Nal;-9i&8TbPI>_IC}B2nm*$fqmqohb&DMYA-% zH@3-kR+-`$wM|p9%bCXKuW0)Y(ra#YZ%&y)D5ZZYpD6Eq$%BVd2^s_({n*KL;+}v} zB6{h!09K4#D^+9DBB`iGUP+Nx^Tk|9+oPDh#Fb=fz4YkvFEfDkVVLSUZg6GyI~PiY z7>d(i&ycjF>NE*oEmo;AYmJwkL{yH~f3OOv_4xeY%@5ozW|*QV^<7SkEKifcnZRz9 z81y~qxK0Jv+dsRbnG2X?jUYwKU+qP|EU~w?i(Nmj>p?o$2Y|1f&eDIqN1fiA5j_51 zl_!4*xvX)6#`WL$doNI5*a5Rw5cT$2gg##?lDE>Xs(@B10B3~U`o(YWTcY08kzXjY zznXT!AS7eqRyzDPcBLNI7TKV5xn+=$9^W*^jUP33I_x{ihx`y(Y#WSk`7@nY>KUx@ zlnR1rTAOr>*Hpos=Opq|`9MH1rtCg@W70HEzW=>y%INB{ry)&WLjo+U>(3sY%_rZ%htGe6Jvjxe@TaX zl_hH%wqc-h*d#5diuNkjr~T}4y^!}hpQTUwH)$J+CmGomU+Ti0jYY?T7YpO(xTuyF zJo9I0o(-UaDUOMz6D#xprOL=^9w@=mafIg7mobLZW*sg}&HFavsC=7GbtZR>SP!Qb zZ5e)ET~K@wb3Q_;E}GTbAx7@uP|>aK1=tWg`Uzpgdv@lkj?UzB@4!^!%> z<)x#{-OOX!Df#qEna=w0RM09~eKM~D~GlGd8^u<}x7}aay4sI8o>JB@CwajU) z*j|`ky1F=d`Km;=$gzzmG!ttSH(?wuNu6DH+NQsJe*3~l<8Y@OlCSRH(dNOrD?f{g zf^?K(6p2WStE;O)ZxeHB>4F$az;5sfNM7ucffbpVNSi$NkllIpZ+|I~Qb=|>RkG;s zF&L&CUSB8jbQ#43kaNnhC+seS$OnGT5-zoOa0u`zgTnFe#?`MpEnQl@F3aU2OkOg_ zwPzT>vM+n`qt^ME?+=*6h{@wK7yUb<<)H?Es=ktyG$!r+tu#-*p_j5^ehIM5B2#%FXBP|*6g^C07Gt2 z4K)}9FFC4t(#yomiGPAmh%cz zRA`Dd5mEZ?CuQM`j|7Ewc*N$pnv9_Rl4fHVr5|gfmc2|?BWiq3;)Pdd-K*1Fl&|qd zx`L^JU9n2o;A%^;FZcApsE)PSCdAIWeZAeAY8KBvyF_$WaQvY|48gP$@ zQBkCz#Wx!wUK2B)wKz_aaMcDoHsh+O!Ysk8%}E`DkgF1X(j>S=`?4b)T|u%OyoRks zkZYfhHi=;M=@K96^x9_IcUfOlLV+xhToAAAD=84Hf4dp~TL%(WTl$DN+z<uob_cLCN<_Ih+>T+CEWK@1j>9563iM`-CU9ET|x z+;H*EHMBJq1&1XP)R?b;yiv7JR82r{d}Yhq{YVt!=^U%t$U&8xCyU;n|c)stOVC$6c1I3&aBMO3XW z8IxC6tRhi(!ccF3I}B}*Ra=did@Sf&{Hdy|JGUhHCo%HC)?^MFAIgZyWf2dSo}TV} z6ky4R_8cS#cu%gK^~*5Ce%rFgx^*WT>h{UKC<{tY-Iv&1kZN|feOWX@R9laO+hT{? zYU+tVwg^F~*xj6y>~fY?^FZfAih)PaX$m?|DW6w;UWeD$-;>2?iLSj&EDpjmb68&5 zT*0}TlM7>e!=cxA3r?3OB2_}Zt~wa zM_!hNpTD7zn>6qu3tziAh8=mQzw-M57a5m9`{?@x%Y^ekOy1ON-pF_(9kpTn5GGLe zmAu8idl=+>VJ*d0{{JFLAufKZhKh;~4Q>6M*R-%MlA;l z^4MRB6gPE6o|-3)V)4Fv61GG>y_~YrwY&hxwL&~u zfWM&qP{ce}Jg=Cs@IgYXR-6z?#*!u}BfyQrIgk&Ur4LERuF5bp+h|3^+?x$NT#K{Fs*ur@M+7-2Qep5~>TJz#94C6iviI| zux5J^_1Ya^Fu&xiaj?J?uJ?`3<(%Zpk*PyTv*7seFn(B#DM=2-2?EJX z9O3ptYcfXT3q%=k-g^(FvVpj=c@8qLVbOqJ2Ta4s zCM9EAq}`O2m96{l?V)1ozf`oe;0sc1Psx!j(if)(uhu*pVo8rak(!vSo#$DCOQa;= zF0)&vexx#O{y#22s>YEZt-d$Lem6j8{MCJu1wXEr3?t@~jyIFz6@xDxjL#m}Pr~%W zjBxjA3@s|u z!XUsI2);LlSt1efwzY}Lf0h%Cw?39Ubwt?(=TQZ(0!z{f#(7O1_Enz%;7Kb;Js8*8 zw6rLJCg7RYP*pNLy~y94ej6gChs0;O#ustx0kK)8DtzV*V_0de5q+z^J}pk>4JpUj z$2qhKioq~Abj-U`_BtA$B!rlP8hA_AhySe3H9bzgfh@#|R zRN3YDGL-Dqt5-0>JXuAvwY3#vQSt2A`sXNu2S!!2`2c>VCAy)-5=3O|&doSPMSfR>Dl?vY7I9a&lkA!OF-55I~U;4o9cG0gt7C6$00 z#r)5xz__Zzzj5(RH#cBp;m?kMd0ZB{prqt0tfz@LXHk;+3V7OJ0utm23Bg+k{w*k2 z-R=oYJ_N>xj}0EzJOD`S#{J{3_WHlQxM?_3-kd|*Ol1E3ui5zrUSEyMez9ediRZ~NBnb8cq6r|wd zTm}7)cGksea8!ZAghkqO0R+b%>s^>_f|O1j{Ap;l`=q4rZy$FxY{%x|DE~3aFNqn9 z4z2ZhQ7{;B9wLyxXLOh*bx6GTI5BZ|v%lOE>sK7LKYpb;ws7Yun!CD1TL60LR#}&3 zqiI)0hw!4cU+s-Gd{o2JSs44uV&=ROK2)?zoiB<>)BB%oS{_+)h3ka-*=MD38n8I3>;H)9s2NC>&vt0bg z3>c<1pZs9Fl-Cv*-zz3sSogpEOJ|XuU4XPmqNprZn(W3Lue~PU<+Q6f+&4I9QWDpu zqT-W1463t}F0F}_7BalO;7BwwxDxsGZaB(dP@Q&WQx&Dfj$$osBD?)oM=IhRFR;hq zR7MvxH~WEjO`3*H!lo0%A|l~t0Ga|L0OC%s3sFmPa_!y?%kQ-lg2YV{ton}bPM_=uemFxuVTv&ws5tOH4SAu7= z!Gwb=ssPJ$!;Si!9-(xGi2gR4P*?8-aGy1gy1j< zYumDp+I+FIg`n9}`dgx9ZG`nSFLoGyDn=sTb-6;+wzbr`@TVx%yURAjKf;$}k{|WP z-?X`jx~(zsFc`QcB0zLm0UdEq_zCa;1`yb9_2qFdHW}OiT3BEMXnaDyF~OzCIT+Ro zI5j-~HSmji`_$-xUMQltH!9IKhj}Z;F)N|=De~4T+x~n2-!cC`D}v!WpdCQ`ZXp8; zd9RRadKrw@Wbah|H;`bv|N3EGMc>SX9e@#Ij6oC3b75qPxv;|3M&2{YGCJ%Z2Dmij$RD=c@*-2=5u9A$Q(EX#!g2g=G7 zh;u}0MhLz<+TS=k^VVY?*va4DJ{g6A6LzaMFyR9DMVj6H6F;32xN2J51(@SBG{F)B zz($b1v-}zg(i{7~{u!Pw19f}E#{>)qK;Z$#j~_OQz<(3)(R*+nLFpmCHEz^a+)$X7 zNNY`bZ?f1S*(A+i9ILJDjmh2FKxK@-|}32If*53za}q0_G3(=?g0$h9FE0yoX8z*i*L~`K&41wFb4Xuu&IfxPQGrd}1!DjV3J-YP06r>HnxJ6VlGdYwfa;Pb& zKwDJ-#UZe=bis8HN=)|qJF|ezK|mHldtiXF?t554$wib8#-`8Qi(o^~I*#^=m$Ml+$Hg-Tv_ zwUdO|^0wl7<1avV;CVc)ulEL?5CAY)k+;&z^fW0s!H&XfNVM@HdjO#NV2CrUENJI5`hLuzvSdR-QJNX8TJq&f$)G zOR~E@->&bE*l6w%LCmbv4_?MSF=-XEqJD>InXF4fc4}go?=Z=<*c$8uQU}u7^UTv7 zhdgvP47%!!O*hm?lu3du!5R(U7OSt8X5}-5L@IZk;J^7JF$}TzJ#(oJYCu40Fp!%5 zmk9A=fm+Mr+BF~=B6bS_ALRpfR^bTx3mzVjOuY+BU@5JAlQ%L9+$bAiPdLuz`vu`M z|KFp*r>gTj&dl5pn%IVC1d(k>4lu+agZ{ z96jdNikQd%g{V-h;Pf4AvLa?yOgKrD!v4TD^|yr}hW0@o9$bV8fAaDv2g%=`);i&* z{H`+(&ml}-msKerP0A8MZ%8JV@}~1ODle)#5OS0+P_fCFIXY%p!B+}&v218Hp`=Xv znU0A50Gv{af{*h$m>KTM^?+UIZTRRL>gyk}NZJ7b4$0*5orDbwVj(9cCXl#ne8L&j zZ7>H9UiI5uOanLxvNw-Q9p|Tu1{*cd^&GrB&c6BQw$B^+Z~yURjq5~cJusxPS5@Kd zMuGSGH|)e4kBc)pCVauk_}jF}f66g99gNE{J6(M|~| zp)_$lK;O-|5};ti1qKEpt{S&KZ1#%Zm;8LCc`@}Gm^xDbJM<9E>{>b`ARjPy?5Kjy zV+ME)0UwVCBfR$TVW2}HR-N#V3hTBHi`qZHUXT6Kon`pptRGtr^rN0wL79Gs$>(H-k};KO-iKA2*u`(w(kJrSf9*cg`3g4`aYQAlP4I=kaG* zsqbyQGaVWn1TIeNtxjCviXSkvl%h0}_y9`-t|%}2Dg@*Cfqlqv8n&{hPX!?fq%jbs zZj!!-MoAE$KLXo~BY2_3ML0l`vwmLj2dk8ci9f(9@bkUsEtml^Jyp@?Uu?bepe=)8 z<1H8|9lZ*6^%*&m64saW7}M(*rb}U`V(LLNKg@#J#K(L`{=JS(5*b(dqN@fk9gmui z5=0V>u(miy^P+z96|e3CH_Na3$sH${W$963&C&-yYP=`peamgAfBfx~7Nm85!4<|! zj=E&dUeX5T6`Wmmu9|>JRoh?TQ~}}DhOHwcsKMI&*YF}fbM0}4#>Sg)%pk-Ma!F8n zgKQBF+&P#vM61lPAMNxbzIy(f%gBzLc>zMEP)9Jw$wMG+ z{PFki-XY&UFeu@VwXEaDCMPGKn~GmQ^Gd8J?YfVhQk9v{X53on&h3spLmA;gv#i|M z>=tzzjb-puk?cs^$fvx_P{N+H7CXfzP#GUTcJ9Gm0rtjE^~epNU_Knx8zTHHI^uu2r*yH;rOR5EFXJk^x~dZcy#P8jI@_(wG2l^oBPZ$Z5ST(PTlWtevkXpvOz1N&Bv4}i7Pr{-yo zEG0_XqFvRylqF9`dSa&xv0^_;N@u3|KO?=u%>!jSn%ZotLziLFL+s$GDltGRmYGtj zd;Ai=9Fu=IvV$}ove&<8byLiI~1kSGa!8axD(szNSu%883U`5Ts2YDrz z2H7LwrgCm~osj!T6wL5ucY!td;t!DZ>FB%y6(z{Yj-+;fApXSgWX7haAtjhWm^aCw z?>jce5UUh*vj`Xd`#aY8Qg45=UHIs|U6_@83Hes6Lid#D=8{fY!Jv>RcX+&+6`%bC zkI4BO3@MX}YLZ#`emgR#w-U>^Y)1-j&2K(> zcp2V8aVZzK>4Lb++RG*sil%)%r4orh1j!ddE*=R3#sgwv!Px^7Gq;WdpRG2M;8tW< zCI~x)UeMpSh@}{07lX_TA%j9rqo4mRmZdVhA#MA2x-`WvX7!uVYoSq`0`rDNp;!}X zjFln=06qWL#KJ)pchk zJv=39wG1q1YibP1tHF5$T1kBXOr}j}@5pd+D zQ}74_cn;Ne$&rWmdX?`&zP?|(+3{#b6Nx~(Rt_xrVAI0aZ)R)c^oH0jP62!OmQ5%9 zJ}*r*6-l_p8wcH9nQVU~Jd@H-?Dr;PZ|G1DlGk9d>Tv@+_SDDBqXyI&iiKHNm{DKe zg2D^YeZf2i(13g3Z~~=(m)s%vbv}j>8oB`bH>ijOKZB|h41~3yngx&IKM;q@>OF4o z?C(jG`NeW7Vuf&o*cxOgv5u5&VM~d&{T4&7kVCQ6HvZ)0sD6sr>vAxP$Klj9`(&3` z@f&x!5p>zaut#~O_v~d}`!4gMjp)mi23aHgH125aLe44iCUzPOm?x}okDyycV-m^t zd5KZ<$muv%q@ffA1-v-uHkQ_)m~S|&27TA&?;O}KVKp)-ff4gPFqJmEM}ey7x#NLG ziCmgTx@&*70a7+5j?Eqi<8zcG)f8XZe{@B)?o1b?D(ThJT&K&;d^07@@+9!_{+mCD zFN21ELwC$j-O9y0>GO2Hc6_9co_8WV+)DV_lkg{4WVpGwX}Kje%~(;WW;YP({^M33kb6GK+%YpXhp0Jz89+)$ZD;oP+g$=U{rBhHf5qWno+*DTdECwMx0@G)Nu zIAn%XNscnvVxrC0DNh?0VOKvhbVWqrMJDdCAG5(#fpM@9D^#~{pXf0wwSxNv)D6;c zzu!KIL(f5I4yNNWB>f`7e3(|of4G9W9lNE7+UbG81VVPI@K6;!J)-wtxANTnP!boM zUTa9^Q^TnOJ$gc7Vzi-cV&1bMvy~0ajl$E3Dbco0!e{w!@P*qOO6-N6R>9$HdsOim zK`xM+LLry3-wRHf`7mNribCwR!GqezZ5Fx;r6}0tEv)#7IuR3+Rg9`4Mr!K&O>VKU z&T2yhdA&UvzgOmw;P94rfp@YAzZ39B-J89vU(=64m0tHP%leb)aPy3i+4MUP_SpWC(&=OIGs@U`OKXU(np`OP=>1)B>Z7m#u2-5kdXX>5UpYd#^%DN z6%0z+kIy{?0Hw54U^f`aVt}&;L zWx*;W<62``$C+fL15@v6Xc2DO=f zb16ks!A8>{LqrfGtTtZ@4UM${Uuhm5W{}eCvhf92%&wnDV$g+BIJ*8oIwhW9mMqlY zWcx*&)-xe4A*%7-n{Eh?HlLnm@@R?!^(GdysL-E%ye=pv=637We_jO8wSf;%ZSsBM zUKNMM94zMlG#AawV-mISTq5e`I>OzpBis0`gig{<;jt*@&sjPhM0h;uUM0lH_#rrhusE)i<8u zw8-(PyA^FfQix9W5a0D%q*5TwN!b+MOk@#f^&Ff75c-EM-u`Vp0o z0C(#R2QH>$+NsKqe}2&SQIntEmFU(6n*s_se+59RN9u4t&u$E2U&nw}DIAkM&1 zmsJ;WO)Y{8Y?z-jy(eKa z86R(|tA?W(BxN&{6cVs^nwd_PG+20e=$N*jXmLa>A;3Kc?ZK|+EpL2Ax|G_1MFJQq z2sT-&Fha}#1Hnf*{PHQ(oZ5#(CRDfq)L5^r6inDs2g>(IW9G0Tc6}$MoPb@$k)!lD z5k6mft~ZV+(zOLM#_a>ZmSh|nwYN1`A5FeD<3f^>g*t<=Q^5NhpO?B$RWg3XMKbxZQ|^C2Wr zb*Ng^8=8GpGhjTCt8g$nblocq1ajKOCF>vqj4&yXQ6wC^c(1KD29)3o?bsjm7->@u z7V$g}=yM2f`(Y znAh+u{+Q-IhIT~Ww`t)2BkH^3schr_ZzC&Z%R$Bwj-6xg5wZ%Atg>e%N*UQnR^~CY zvWsLD6;W1XWF=*1mdcjd?{j;;-|w$~p4aPnp3b??eO=e*`i%Do*auCNi#1(^7wM+) z6wFtv4#eG1lIvDkD)u>NA3LGa7+?vG_K72En13%EAX_2?e)Wm{n6^A+?z@~QLmm{6M@+xv+@7-uJiSXr zONUWm`Rm!VfFPRaFbC~ipz{&sm~SnJT{M~}x?Q`r1ano``sHqu&uU`0L`i(jDw9J) zNQU4?C+rn;QFj)ci1a+(`PZO>!uTHkeSMjJ&#krqtG3MfSry#(c^?{c%#d0-07S2U z$hpR6bAVYbjUibT4?O+FK9qx+_L{-=FzC*nElg}}urb&WO&EpPwRs<0fz*?vDj z0;OxKxXzfGD;qtM0+1z$KHZ^94WTsa--rt#VVWUxv>IuUK>by6gor^g6j z62x&yvKPL*(w;tJ>3jTE9@|U9c7=Jv|HT53J6;>1mk3vUVRH|!zWZAbTN4zN?$<%z z&(OrK;ZSc&(N0A|iVT`pIdn)3TYaylb7v-r;D*G=uK2%!3fuuvtg_Si(?mz#9*BE@ zZbbSu_UvdmO~DTXdYDJvgWo7xjxrsjsieHfW&36$}*xiP$Q=(p%{Y-}HQGq3LSuf`v6N)86yN%!tx`jMnYgT-&# z#kVoo!_Rt!Cd030nO|MM*~p?g3WN??F&N7?KcKnPhfg&gphee{ZWGoshoZCK!?v*g zw*Ubim=aM_UN49?Gi*z7ar>oM(GsL^z)LgZKmR}tqIi8YKzF=#PJ~pei>`|M+G@99 znn@ADg>@YpcMl|jEnO%Qu~F6(Kv9xR-S6W7{XXlT>a>L4b@OXcw`KR0rAe>@+L^?i zTy02uiVBaJ7;niO7w31xncsFSaB%mxD+ps;6J1OTA3+IBX6HYIA%R&4CD1!L;w=`}r^!Gb1f+s=8Au&uwyw=JW9M#R*GqXD||?n%G<6b!RCt zsVrW!F^tG3J)@Gs|Bc6p4HvpUH2T&n4+XXKH9@4Yj+*+Nd{q!NXWcwIK>$F6J(hjG zLu?Y#xTN8e-fQ00Rn6iZk(gIBwl@v6NKaxrwBd?&myUPNz^9BE9Hs0`yN5}Yr&G9y zNAo>TpNzoMEjG3Vh$`1#?bD#11Y5)k22Lm;+$H^}YaOf{x0(57+!Tq77nx&TLL!|l zPB32{XKZrenguoQ{SY;%qJ_RM7f7niu1_u9JdgAKp>5j6Uu5}Ib195&#@@=t>|L7; zaJ*KY*nsvH#JIX#R_;VN;oN2}DWP!X(DYkd>elNO7!J>AS}r z3GP!kd#)l&zp(uoZtVA9wJ=6%X5_Tm|6Ldl?GbTwUkm^LR7#N5t;NxXA|<=fhLk)1 z+V_ud3(m^ozH?*kR~WpPQ<4P)1vZ!OMTO#lU#70d*c|tT%<%$;-eUA50P4TM340x6 zknZlvP;MOIuP;rFDX_0Vf?XK{r0ak%3=-a&9}ycybY;}~2nl*Fl83J-27XEyVoN)mhNwi|Gd%xegDSXmbV|icf~$ESO2_ztrvdJ3X4q&?IR*b zf0VJky*;pmOlrCw(jcCO>|W%E>MIc0AR9Zv(rvNg*(mHXA%4;8%-|2opN8TN|N6}f zHk$)CSTrIeR0J?NtGW$l2?Y4wE3X~(cjG_Cepnby)Vb~Sl_qJ|DFUU2@L7CKlM||5 z6W7`h#8H#W+NUAGQxF^gr*`?WlJBa6=0lQTZnVd`!+4ki8p<$e8kUHX+^V=Ha^xPx z1;Ng`t}K?DK^D5YT4#(fDgx=vZ)ghr^-MJ}yWG^mpA$o)puHnHo9xNbcU(f1Dd|j9 zXGxQWkl9YJ_>Xoo*|jP9@4&kXbK5~CQC&eg8IV^87s(Qr^q+-h>lc$B?k||D}=ZPA5bxByHc5E_M?K%b~Z7tfude!#)n4Nu-$_Hp_9- zT1Q*<*7%pX`UL3Gc^bAkqZ!s$fYa|?2I_(a3z}SmGQV0nA=}4&ARZ=N&R!q=*3I@? z9r7HxRGhiCS=4-zPZaD@`sB$IaElpVLfJvo7;J+%WHJDm*GSJhbsL1;e0^U*CWGHP znqZO|;wBvZ@x5WxJy{ciQ9|O1IirR{~eES3ckz@MA87F}W{Tz;r?K*_g!SyT@u<>fAj#IHu;Giiie_CMXD5LlUR)8GfrX z^cV6R%QHP8YoD_jvtkavP_s?bS;uH%sC8KcvuKVHK$EvqJh<=Yu0*E8l|t%>4Hih* z9;L3K&1%ZL`AJwKp9Gn_^56L`l==9K7NOIE^X(weX$UN4R7OVgBLyUhr^%20q!-V? z3IxOyObn&0s>1#MwAM0_jgXL*NJj<3syIg{g!c&Ki#LCF&N#UgJN&^i5a?D8K7L^Q zC|O08I#->+K&chEcJU-Kt=f7l0a)dz48319VnYnaJMYPVtv=0$HP-%}Nbu5U!V#-%ioFpP{f8J2b(1eeo>p5}pd=?|^ zb*nBSE$CeooVI=KWEZ%Bh1=+4alU^*9V; zgqvu_`w-PKR9DF54hm-pr#9-tBcy1Jjx7OY0MJW;-z1Un@Z%A$>oP`W$D`$bFKD;8 zP$|HLyl(YP>a4@wB?1Z;8jI)!*uv2cCP&62j$Oh7iLp_5U30PLABo&ATbdYbt`FBu z|H-}IkxWL~gP7NOk*H=q`4SxY4U1sWKu>W&`~;&qNFpD$k1+{qR%As}MX?&xCGonL zBa4?ND@YxQ1y1qs{`>?jj?u$6*>r>1j4jvz*&3 zs-mKU2=eWJNO-V-u}B0*C|)&Y2|9luJ_ysV_9R@UwJlLE7k_45rP}?|%g%b0B zhp90ocoEn|3eigLKR&buQ$=T@cV}eYf-Z-RMqA>IPuxn=HZLZt@?t*1t2jaE*o=7p zp-xMh)Y0TtY->SK-_+RxE}Z>wzDvH`>?GRl8$c;Yh_XBdT~L6C_CGojj6eo&R{-5z z(D7zerv@QGfHAbQ-|7OrK`8a#pm1gl7^jv#eHyr$ltVgp&icPiSqO(VWjVZ#TEF?^ z$yY3fa|5)5NH<-r8H^XIJNp}6Ogg-so|t2u6b9xPlAP#|CsUXHz1fY-8haa**e|*` zK_A-)YnhNuO$f7)s02d>gjTebe+PbKTJpLXJQiN78xCiS6@F#U-?dB%!Ew zMAx(92=cf67d_&EBIO5K_BWP`)8u2#e>}l@kEF=Xq{l0x=lfs$%PqN2TWXWFX~7O`;T5-5lnLd&3fh2 zSO?9vOIU{MkRxf1%{|&sOS{g~Z@sDvzGoJm>=$^7V<`8~*WGNLI^t<8+tPzV0{)ia zzVpGq_jv$8QsY3=vCCidH~HPpA-;+2N4s_sjLDQ)pSsJayV8ggT85aATnbcnj|hTS z4rn@_F*hFpHC2cjUtw7NBq{Raz;TnVZGbiWPr5P!d$3a7+nQg4#qlYIi9mTtqs^(1 z-CxV$8nl09ySTr4nP-LB@npDrO}Cm!r% zWkiHL6`<<$m>^Y^tk|HZ6+>G9TW_}-0OPd`Mwk_iKA@cl!YelbA_l+%M)j^N1sN}a zbZBChx}=P7NJ?Cn;9FTN7iZ<52+v3ABL!c|XEilm0Gt5Z;BSpVjT^1#Z2aa&5w$JJ8w6U7^}5EZ<-hWC zglFDqJv}4PmSOdI@rVDDE}vmJXABefjT?+f$xTM(J z7_vZ!zSdg;zF~ZgJ)0l34f%u%3`(`zknqVWN`%7j|4N~K$3uB+7`vz(`~}_r92i2v zq?hkp1}Y8+BKm*7*zcF;qKH+P9HHKb`^j)AfcZ=yn1KOSPMOVHRSu)U;fYC$Yl(4- zk?oZvhmtRjE+@$C`182C9nT#Mp(Q7PvGp)*R&%Jrw<#aZf#$&t-<0aPq^K6^pk%_T z^fN3o3CsPTr;sN0QB|Vg7)ZERUVwn;4G;zcd9xspun%~i;JZ&puF+tTo=_+#RW%NJ(P9xvVWR7*O2zk8myV9f z?u%xDh|DV-CFSZYeIz~csl9`=J8!z3yq%qUx-!!PlsNb35<5ncM#id>_UqT=z-6!h z!4dub?IJl(jO_io7$u+a)g{2q~cPPNM zT_7O*fLG<__5++b-gqtA`DDUW*9&ef^$4&?;s@IRb%6Z5==}!*3U_A`&ca+_0G9G0 zo6NXJ^Rb(ACqpGA>1jPNC9sayeKuPiZX34gZL`q5a^rBlk(!3hYGx+ygG(bk6z^H+ z5cb~uAx;r;kcHhAcbjWW_e`iv>C3B{ViNPZipxdvS2K**i3v=fF+f#UNhn};m)I@x0 zTxb7*W2j_uU-g{qkV#uta5vc$(^;$tZT|deHa-$n{uDJNI2tWNz_-5t!N%@B*muFQ zA$Q@(DlPy(n?`ZDiSuBYT!|dYY(H?Rf&2a)pjwlXlD;=Q1A>!^g2J0ayp>qL$mjo{ ze?vn<5PsM|aK2uK?ueXAa2@q%Xn*X!51-qehb!$?$OgHi`p3Oa=G9}Le4}RWkh)4| z900*5@5$qiegMhM@9P=1kzEMI%g04Vujj^OKN<+1oz+sw3Q0@5r=3oXkeIC?$Zt*Y zBS=Q%4Fhka98g1{;MOJf_OE*HyTwIt>0{tOf9=~#k#RO?4ztU+TY>B@1W9lLr(LW7 zBSUmYs7HX;w$BZ06!dZ<^N)Zhu9>*7O~QI)!;7Fknxm#?mqxG!e&bih-<_54<0y&O zyUVxgFUeJtGT~97yqhjP35ox!q9Y-dK?%%(E-hc=hq~DqtA~LjwR|_p=s-s6?F20>c z4tP85-AQQfuZ(}n(~Lf}14@&-<8Oyup6YuF-u={?|R!nW5Yg2pkaR z6?wvd0W}QRGq(Lnpu`zafFfdKojW!P%qBmw3JwCNri_KT;$f&~`lP>44&7tzE?Hc^ zoWTtLlaS7aZ*LwiSpR!bbYf@im}eHoj=|&PquOeHTF(YVXQbhSUR@FKjNN@A#K%lW zN5|d0d{i9V`}7UTg7se5ZOJwzUGZOOZRfZvEF^RlioA}Fj)dc-rKP~_LxJP{5DcLC z3i75`{++7_tyl|Xr-Qxi@9lAMfy=0TINvZs`hl-Z}sI@}E~*j_;f6%7~}m%abA6 z?52#Sy1Kdx12jz!7jPs#0|4;?XutWDE6Nc20h#*(X1J}*U}@?%^MQ_A1DvR>P_6@j ztnSl7;{!k{cFO5i)KZPohJa?-KLGgteY1E#Qd+?&E$-Z?VSCRvI)5+U(df$9L_bEyhW z@YXwnLQvl1orO>D7R?bux|5DbFBB}Vz!?mpv4l-iFkJm0BKT^A$RhOwcgv9zRuvEy z^+aE3{F?*}AnR$HU|Ot-N+V3o=T=Y#28zPy$=n7p_m;IYH8FSa!9;%JytR$zo8Kfw zKx85R@{gS+;ET)EjO>~RwF;ddqCRN+A-4M)#_|)FpEPv`|Nf%4r^F9(#|0eEtYscG z)1sbavW|z9Igzj_f>2!T6oRh>k=sP&G7O4c1`VBhz;&UHE+C>@HZVYxil|&;7=xakg#dI(PIgjX-depi) z&Kt!51N<4KhXJu8#&-{-eL(6uF(U)uhLFX5t8*7(|K)(JdA*f$zjZRg`!pTH?UM^9 ztlmxkzzqnO(>>vgoL0j~=y?+chU}`|%{+6Jn_wv0|Qzsv3SGxa<@j~Li#5+hvlLQ%rW$;lWDrvJgvAGn?%(SqEuq`aI1v_OH6 zCiZ#(OFmDc8sG)jl&GBCHcSLFPTQ*M=yZSu9cae&K>RNN;aw2foSTErMpsiBaJT_X zsvZH-nQe-HQDI#apb^6&{@!1gkCq~h{jnx|rz!POoZfs+64}+RJ9pr6eHQsaos(_w zHm&CS&AX?!jnC3B-S;L+NKUK_?I6UIx^5As)fmDCUPkG4y*PS2uba9)%=#1&@@Wyy zTz@rQ$#30b`FX-sH#hLLf0U82^JrqP&1~eTDsf&uboJrlH-@~@Kvx&q4u)O&zX7aw zsJ;st{J#JdgZ*86RG^OCzyDucYyuv%T+*NzBTh0c<6l?q8L10(Bo@gRV{ zI?hNZi*pi;)?z<*FsY?4=m@mV-_SgZS)2HFEt6U0#@H$7^M!=K1acF75(?P_OOo_qW$9{K>rS2by2! zGiA}!BQHyi{C>|CfgCie9IV7;W@Z8sb9R2-d+E!~zFELNt4Dy&bSwLH5ZnYn6SF!T zws(7@QPI)eH1wjt1ccZ&+&AtJV?JY}!iS4)Ac;405P45_0Y7)6rj?-oXj4c2QRjjR z{qI5_WA;sL^-z~PM|yaf*<1eH14WhO^z_Ab##6v2MAJqnVV0w<_tbawK}j?G7#n1p z!{81FQ03bY@J2AihQ~l`=`Rh+{f5gsj1~Zsfq zDFLJ`_|F1$ z+Kg?3oMsk00yO3t*RuZXfy1*uaKWJo_!WKzFqzmD?x3pbz&F%_!=9DFfed{zB5P`t zl9qf;TM*7UoLFae&bV^wazw0;tbl;u~ zPHuX?DOKi-?k1|eJaQyB3;bc9QFO|>0AvkvCopH30Jaxu4F+JQQLlk>>Ji|R2Fq>> zSv_iD1%=wc0BJ52MD4#c07XQZhyXZ7-Fh=KN2kT%vJw*$%Ym!}Q1NuGnb5Wd733mF zvW<(+10U?@b+=(V`?R#H2~58nATa|`=2NgBcL$e5d3<=7!VN#HR4m`u4mz8@>>rLj z=_ve^z?OZlqfCGOI9A=-PCz$X%TxjL*k2(j&5Dk&;&v9p{hT*uyGL>=r{D>7S=$R{ zFFWAGH+h;8E{DYw;nCt3;xr^5*$D}#GcxDiB)NR!3P4P)!08peUEIg~fCE9UGV$e$ z4-l20Kimjnbt=0fz53^Af@RS8aV?1d+QA#RM|R8)nlspw45RO#)YYMdEzSM~!qw+E zp+u%j*Mx&r>j(9_mdS*u^W(pZo02;&34gP!iD!*?#iCG{&_dlwand|pTMZK_06#&O zhwl=pqsHKau${G9uPt7I@3e#vs=85i+Mgr{@|2R4SUJaFr@~1PonEVKcNjpvstgTX zC>OT(4}gcZ_3N8=YZMb)xd5}bbUN`*9Q!qzy2ZkA3(5ie{-4S05Icl{43QXn8nVnYh1|?IXC`In88Cz z3K|45S8R`8WUsyIIpTTQu&qCNK%WQGd@rmYcqycgrvNBSvT+ZeS2$mG?2?OBA~(Hg zEj^VU5rUNGS{SE8Pa;dv_a@LwASW48t_B9m(h}ZTP3T2$J-EfBjLy=Qj+6v~>5AS5f`B zwQUf3|0F!O3chd0!2So`ou;Oylamza=>knpN>VZnLmKQ1yU0cZx+8!^1pv8N7z^A> zz#jvP>jOY(iU5lpCLxFRCeJ`~1Ol27Ssx~7Wq1GS?SCY+QFYYy52qgr)yd%On^$q- zy!O{5VP?7e3X9{xsz?v!)GMiB*7EyI$V6ME(x!bf;0ZB5B$H8B1h_9%0A#Z)2F8R= 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 AAOHXW diff --git a/docs/images/synteny_circos.png b/docs/images/synteny_circos.png new file mode 100644 index 0000000000000000000000000000000000000000..d4200c0b7271fb4f1262c6b2284f629bd208dce4 GIT binary patch literal 339304 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


    B0D$7^Y*4+m9KRHF!- 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

    @*5A!~Kx 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 AZ2$lO literal 0 HcmV?d00001 diff --git a/docs/output.md b/docs/output.md index a9e77f7f..8115e697 100644 --- a/docs/output.md +++ b/docs/output.md @@ -109,7 +109,7 @@ GenomeTools `gt stat` tool calculates a basic set of statistics about features c - `tidk/` - `*.apriori.tsv`: Frequencies for successive windows in forward and reverse directions for the pre-specified telomere-repeat sequence. - - `*.apriori.svg`: Plot of `*.apriori.tsv`. + - `*.apriori.svg`: Plot of `*.apriori.tsv` - `*.tidk.explore.tsv`: List of the most frequent repeat sequences. - `*.top.sequence.txt`: The top sequence from `*.tidk.explore.tsv`. - `*.aposteriori.tsv`: Frequencies for successive windows in forward and reverse directions for the top sequence from `*.top.sequence.txt`. @@ -170,12 +170,12 @@ Kraken2 [assigns taxonomic labels](https://ccb.jhu.edu/software/kraken2/) to seq - `*_1.fastp.fastq.gz/*_2.fastp.fastq.gz`: Reads passed by FASTP - `*_1.fail.fastq.gz/*_2.fail.fastq.gz`: Reads failed by FASTP - `fastqc_trim/` - - `*_1_fastqc.html/*_2_fastqc.html`: FASTQC html report for the reads passed by FASTP - - `*_1_fastqc.zip/*_2_fastqc.zip`: FASTQC stats for the reads passed by FASTP + - `*_1_fastqc.html/*_2_fastqc.html`: FASTQC html report for the reads passed by FASTP. + - `*_1_fastqc.zip/*_2_fastqc.zip`: FASTQC stats for the reads passed by FASTP. - `hicqc` - `*.on.*_qc_report.pdf`: HiC QC report for reads mapped to an assembly. - `assembly/` - - `*.agp.assembly`: AGP assembly file listing the length of each contig in the assembly + - `*.agp.assembly`: AGP assembly file listing the length of each contig in the assembly. - `bedpe/` - `*.assembly.bedpe`: `*.agp.assembly` file converted to BEDPE to highlight the contigs on the HiC contact map.

    IJZ_s_uYWt9NS1pOB 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 zËQnR)@T$w&ix`q#BUDda&L3PQ?qW2QR+^{=Fh8~>{FRgF{16Qa5DWJyO`KxyVFd$k^kfpZh}$$e-|%Z zyS%xrU(N8#L9rL#Y(4W_bGYB}5hgKbMd$^ks<(Uk?i}B*U!V1|5GzN`z)7!6Cay#ux$*H171yZ=o!W>Q~ zE%`EMsBL8l$~p8hCLjS#2&`E2ygoE7Ci+xrT-%KmI_HgOg>lKYmp4T|9cO@M=)IYMZ&r_%sr8ZAm+(0u@DseHvRbV$Tw+?)w(*z4hzdkJ3eoaX^gGj)ZHDN9UGTSZ z$NjywhA$U-P5_j;52|&OP9IOvL>_)LtnX+J)$dhGN(sT5l1$Z6X8DF@jbXtxT~n-V z2UrW2^?C+9$>6?xMCpWL!D-6zONO=_J*7w1yt)2y#haR$Jzj)oY$@|$yCRin-sbEq z79yw;0$pdwAB}*Iq%-{^rc7ECF)S;oQ44?p=Gkg$;-Lt1=(v znV2i>10Cuszh5pprn&G%ue1zDdOcMOI(}PGY6+1$hJe{8~!A+deOjtOMu>=S2N4N17@_x6BD+UCuhm&S37-FnW9c^KFK zDYvD0xUS*(?!6z4o$A8~6*FC`j1520;K1N5@k&=y^y8s@ZN;q_`?W%kxp^1PbafeI8Q>JF=> zZ46K}{r7RaN%W@;6Yf1|#g27&lYIGoUd724^bU^CIJjJU!AuKTdG>Tgg z!zAsA704+8&P>nvvw1N|;}C% ze&{pZZ03mb8hHh`5Wy_Woy;OW-FV`m4?FIX9Jsl@{eN8yt@ZxhQ7`RZprzaUK#WY# z@I_3ilGnxzu4r^qGSZiKiMAbds?Th!4NFdHGbuO(1{_7YHMk>7ATp-&vE2`tt*Oiv z)AZA)9f(^?Qrjfhy+I#a)s!YjP3E@yc^$)skmjJ$qCzWr$=okWt%E|zNA8z6_pe-z8LFoYxV8pQm+dGkUCj36+}+ccW^J0okK3cXZdHyn<9?=okAo;& zfe`QvnUUM-z!1AXzdL<-dde?6$8G7z9VplB#412l4yiYMY&C2@S0XxE#wi%m#*i4S z^Nj!YtnLeb9_uq<4n3@$gBksjf%AQ9Vv5u`MxgJ~{-U$)@FqVVG9->_b-lpUjAuXh zitWV%lO3;)th7_upzP5fBOja5MQ|}Be9JxUq4qL1z-_`j z!dk4h2A|0Rhy!{N)jREz@5OD7cxkRvZ;~9ZzD$WKNwh2{+Tyi7sO`Vm*XOaR1e$Gc zI=KEtHw(=N?fA`|KPhd%4P?4E?g|q=#iz!$(yyJMzBaLr_cr ztu4A_g6+{u`Yxx+?3A&^)IUbl>xL=D$6OAaf48!`oKQ^6E|nZho+&Jqq7cF#NTc*Q z+5UDdFZ2c`CKyDi_s!}@JUybz*njU0Xe$XF zmn)u%RJk~&e5bTSknvm8+Nv%}oUpO2$K(O|HHm1$slZ$td@+&SZF| zB*lzm%FrAxEXtauuDZbA(qt#e(xTrZI%_V5Ot(MsCWoQx2=n z0M--t1e40z6S*0YKx0;-vLgkZERv?;Gmp97|J#;8UG%*DgROJVi}$1ZSWZyy_i+-@ zr;10SeIxuM?`Etjq7k){svesE!Z^O1_j-N-c%Y}k|MfP=@5rUNLD*w_R4Pftq3F@; z^7;<174(LW!BAv%szb;8tUyg%LEQcn%S72Zuuzi%C zJ-)m_B!?vIyZy~H**>K~?{Ln;i(Zcr_n%g7qN~*m)z97#o;iakmND+k!S0^(&3g}2 zDO5eyk&c4lP8e+?UU%QBuDp9g$hu;^c3?OOo?yFs$tt8r4CGtkG$F%{&%&-aQgW8$SNioPW6;T#=dAaEPe8z z@)uWMFU3)WrW(B})Fat=3B(tW7&EF6Cih;uf8TzH0*&o&;;nnT>fPPBP!96s=saaT4Ibl_>Knl6LOgxd8sX zXMHoTUk;b`@UC%e`FBJ_O@u$RJ&2nq?+x@El@KA;r$4%2=(v!d`b(*L2;%xsOCFPZ z*xl{^|30h45{T(VgNVvbkNt9^e9p-%mfT$*Sg-w9>-ig1 z?8}LfH#d>y$D30-3Bywa)jQCK(v+^qVfu%C zpv9Qy1~o61j1jCO-&gsUb$L~2OBd(oDQuB2d6M8m(d`RT-Q(5I&)8b$l@BXWMhouQ z_B+;SKy@BOF@mfSuD%;yj*RWudF52tQxk|Xck7(w4v`e=^&A_=cY5S($Gn%re0t!Y z<6kr7;Z<)h$F;ehvNMnzK1Q|ImEE!8*ztEiS~kX7m#eOPEFD^*{A7)9lTFgL`SFhH zVuSqjF)ONP{OZ#-#7=+Dn#F#?CT`r&K(GyW@+ZGtV5H{fvm%0EU^WLmXG z$0etw^}s#DQybhaxg1SZ>Us$s7(-_&T_Kl`)*wtC7`i9kVi+)egem_L>F75%UcXVG zUfDm>!!1$K9TmXyaW$nYF}Up7CFa)7xA4O*uHn)K(SDLmwd*o|Z*Ik*S;iW`uLcq|%Zp6S!tAIaM1oqc%q=B$+K({YJ zJV28?b&`F<2IC^D6^Y|Ff^W{pJ~CB19rDkgr95UbNRkDtLN^|zQ_5jt4;161Vk7y( zk2~aUF7x#cmY!f9U)L_j2vtw*=91q@F}eEwsTPq7eK@x=bjzF9e4%XR5q~Klu5h(S zQI>V=?CsSoGMq$lLsvLA!+K8JZRwj7il$jG)f`y_1LX$s6IIK7z@<1Eo?_68R`x(yY$wk`Z>cQ-$yQc%d@h2;y1;;2fg7JB+F~Jp6U*yhuo_ z8~>q0VprO~j+_>mVr^B9dGFrTsMuRkF%YraT9+!i8kF;B&XtcwJ(mRjo^1QR?tV(D zZKjA0=TY`7p}yTtPnfEN(l>|X-Cy}zA!I<5p1&b)!k|*G^;mDBWNLN-s+|NLwdmlj-p)=8@N(8xbDlJ5?uSheHDm=5^!A3e zM2z_XA0HJIIHB~-zZH2m|2A1iyi87Rf-b9}LLJ>s-fpU>`6%tAo>vw`SQg>D9si4x>v)8nuT3H#kbX zXecnB6ss4RN>S;Yxib&S2SSrPYUJvdblq(|6XWVBDq6gewOWC*nD$R7WeHCaZSi5g z>Sc9a@rb~F>77~3PB{aj2!T9ER@-GKCJG|vj>T{`^YC9#TW(#;bvovdBwzSi=Wdh5 zF+w3bp6qJbV?|ukAeX3!#u)GsyDY#LL#;MM_*)uBYFU#V9kKM#x8DYqto>Rha)NwG zF`HAFNmKGai$6!nzaYkzJ@3xc?=c=**=#(qW|d5{ONp=55 ze$s4;Zhp~K>xfCzozNyzi{>EKDK#(57=^w4wNo!dtaYU$HB%>*@?uGQ} zjx&m}q5GHcpYUUQd7mrJh{jkp)p^u!-5HUd%1tc}cZeAcxm34BwF2)NRw?%cNXb>x z>bzP7mufIlKuiFCg`tRdA<1SP=Eomb5D$4f$=JF_ON1FRPo`Ij+|{!&F|A?BJ~L)r z?Ck|T$s~|#SbU6}IH-ssKJE@Sxi@brDJY!D(V`Ozr46G$^aO{vqZDt_2gd2zg8Tk1 zXGA=7sh-v4=gZ2)QYYxUsdjg(I{GSRoCI|*QzF&wL^VH-S7g<5yN{Swn(^g5#$;L` zdehzA4blJJqo1c;I$u!ukRJP;bfoN{ulu7O-;(hs%Z^f{c5ZKuYUV}x2hu@%S>4!t zJ#xN(d8+#H2XAiBCTyoPFQWpyCYxWNz~Mvx&CO1q5q7TuaY>qyQz1_RHM;2!S{6KvSZTftfJXBZ(0sf1Y@E)S;H=sAoBwmhEmuR)Y zG3#W#wPO%)!|Z4919_zY3nqYQ#48mL7-)WOxzL}&LluADVR{2d*rll#c&{X18Llbt zfAVYSK_q}@>CME%#L^5xl+mpo%^~=XA?;JnCMkQPrPDXU@wEPq#^ftEF~D@8o$^}U znteV`oprB8m??E2Hk|al=zEdz9?VWmxHyG$1w#VNC>mr7+{D_=yCa}XM$WSX4iyKg z49|{WSRSs1xeo~N=%L_+^aJ}{GkclhjzW}f_sTdI@dPH90dd@QCkHr8Vvs(@tA@*K zPj3ICK6JYqD%*sxpIVd{>}@Bwd^9<>EpGhr!Q7czz2uXlPn`~j*tNq#sucQTO?V>% zjE8B*tp^YO4i>+3sR(-@kdvJaW}J(QcwZq#G_F9849^NLm`ae6 zK=%Q)ffO|Y_mX#f1+g42N}vfsCQ#%us08r;Dr6u@oOb8-?WCi0N%v)OhGS{j9LYJC z_=tYVaKe7MUaa~S&YrY@UnI*aS%}XN9~9%M1zwPn1Cn2 z|M}Mjv#(JXk#IUF)zF3^)tf-54d~qb({`ayB~D68MD7S3T@tjOF1D4{=Uy)yy)~7x z@#)Z}=u?rII}5vc9=cpT`l3mv-I$0~FF56v7(-R%p(m3X2IGwItx@aWz{C~s*Ta)1 zPl9!G`S6E*pR}KBPo9Kv*eu>LkCZqp%hnuw{S+jd1<$P=5B6{SlF70c6D08uAd-S< zwk}{hAmG5n5Z+Ng(0#&IC1<2y<~IKd}8#AFG1!ah7Wfa(w=30GU&ui>LOhNK4F*HumV zJMI~AjgT&MF36O#55h@&Znz<8<+o+McSUB z;8|lw^h60jh@$4W0BN;HKMdW13xMGuL39xGDyTNt{+T9?Ku{!B%ua%%BECT*<<+Ef{;OcNt5L_<%!NstiwZ>WgByvKz$>-DKj_GbvacXAcu=!)?$^Gxa{Ax+m{b{U- zYv2p5xDEeyr1i{T#IUnG_`sGeEm#jMK-%0%NHv82M-&DVgl{x***+hi=HISI)*II~ zJflmXBD?goY|WC};f%I&=9zCVvsT!tcDyR4sYI{{dwBB|;Tcs9LxTXSSWwFJgfa_6 z$eh8kvGs=H4796i&JU*~QSqM~9Uc3&1B-R#x(5=Dn*moV+Q03?Aev}*`aOYi#Kapr z>mxG9-S8rpE(mja)Q?RNftd2)k-`)PWHCRVnRGOY9y{P-VV`U`m}o~dv(N?ch|;;+ zbg3<~KI$XO_0}DHoafFiv~tkC207%>XLRxgQ;bycX=aO(4PUZ4!2-%^_`@;%9YRx= zz?p#D1W8L$$UH`yWrs6ib+2cX07grVqM>X6h7;)oY=R-CFPZH9;6V?Tz})6P7UJ3D zRh~7#yLpYG;YsWjy4lq9REVi#iLY~7rrd&VNrOyKLK&j?;;*86qoc7A%j|-!X79VzQfuPC!H`sC?ZE9zv2Zm}UcLHn zW&fbzl!4`J-$`~}k`4(>nbd~>OgpgVpYR4;rjc3&ckUbnAHgV^98aBcFSuZJ^ytyT zOm_014~~PCvYiVWRD4oV+TENEyLKr@>EIJIs(e7GG>Rre2k`yoIP|v{kG_13=+wAD zGM@6(BTM7oP8KVXxnP6&DW3H2n70Yweg35ALrs{%b~ujm$1 zu>w>pVI#~@jl_fd8L3|XjBC(jA+eHj~|tL&XNSrplAZ`7vKur>HY`w zM_TW^IVwx@vkmxN?j2%F&F_S{;xRRkUE?>z5e9(3UBZ@YmN(NWs`7B9%=KmTb3DRN!9h`PnKb~cISM|-NeTpaBp~N z*3PL7RwW6BzQJF(cF7bk+sE2!`o&7B^|ohK_s|jxp>Wf5K8L$bpzO7rK7AVOsp0vx z+S+ZWTJxycEerRQbS4;FK4`}ENZ)~*#uY9VArGfyJS-;g*XIc;EC5kDplfQ z=&AMM3`knT#-HOlky`hfuG9Ueq9VNplB$yP14#Mh*X zT}9ydL1wlj;r%_B{{EC#16$Bnx0c37xt!Ba&owmh-CCJ=@WTD~qqQ~1Ss0~!$s2#| zbaH1bv>2nR^e_cOD%idmzW?CC^*(QO*t>rnfY(|%zSd>E5FV*qtMqOI#lSDsl;K$1 z`QFF9XqVxNcIE9M3Q5uTc^J^UQK}AFlej#i1XwxvCP0*a-0enLwrp9bE9?}TvXR@8*`5mS(Lxzd2Q<@6Pw9+hA&an9gqYK~y*GgrsuP`FuWxFY8W=qQi-0=#eIxLNX_OItzSSWnof$Wtp>}Y0I z8d72Fm)F>scoJfT1BvXks$c3ukJ#o*8%vfxT0=3ja*t1;NZS7Cd>=6u*@maIfGypf zv58Oay_ldUrI|1nb`UzL9pc#tr$*6W9E~Bb8&zJgSjMBkp>0 zb8|1RUb$4K?(jW8=8U4Ng}mxMpN$LNrI5>e$e;>A4J*Vx=fBG0^X?@N|8%oQ@wut? zou^FuZDs90x!W+|+lozHx&6AOzXy!YMG-f)7IZ9s^jV##aBo_iFtWeOzl*|>rnxWi zRnJjF>LFcP8Xk&E3Kp+N!@Uk3yd&U_-wMh$&rA=QADy^N8V2S&KXTymM`k2jHNfu0 zvORf8#G_9Wy0ti!kJro$zJ8O`(z0dvgN*G$K3yvx<>AIT+;-WQuODEVaKp^Ql3yEy z9XFNx9h|-L={C1a({|CQM0>86$zKzo)GCx#XPiuCN_2)bMmp`ojuoiV)3TT)JzF7+ zh?Gs^F`mieleqQk8`k_Y|AnE;Ag#Xs@L?U;H&6$XBgd;$qe7tvXnkcpb+E9f{+yr@ zHl2jtyXT4Yefw^XKLxGFuIh6~NBUfMi#V4Q`fw+;9w^|F62apNO4Aq)-&!u8GI&5; zc};I;pkjfKTjw3((z{;`@?H~O&CGHIXz} zWU~B+zby>3w6(Q;{Z*f8i2Xc%DrCgs?LkR-8rT$P{PECC7hgoVl(J8$y0b3%!sSf9FmVf@eWq-t`*?4ZV+Oo ztL-*2G(0i!v1Q|ik;A`5F<#o6>MEYo$T-Z^RBePD>42}VxVCR6CcZPKWnJqGP3-8DUF^nKFvk6*1N5Q@`Xt65W?DvGlzBi(eW&fVnScKEX#kpKw&svC!= zdiTzP?kM-&OX;inW(8!7G}N36p6}U-!~46kK_K}E0x}fvHeew^Rt}mz`S|f;Br0dC zOm~-KMETIc5BDv($QcGy80?4Cvm_8KTOoTMC4kYokksMS)YPMsDa~4Sv^1Jm6VBZ! z0Sp^A&XA<%;aJao>D4gdZIG$->x-sw>dmRUw|YR5DD%016D56_%%)$B`I#LQQ}xw11P z=BF58u0!hts41{0mouBSskzz_^R`>VNdES4NYyl1Dulqs@88%(SWUJ-))G_LI2%6) zw7{)%De{aFaEA{g(n07@Tg=_)dKBUcnJA>r-~m8HYC~_b-M2X&`XF}2T4aA&0^La8 zf55+dDgqT=zCcc8~F3w<2%Sx#_RLhyDUisF1EDO9L;12cM zuC+1{>-i#RUF8SEkZL6q%0!KgeLYLdT?I#1dou)7fz|SS+1y4Nt&YylmpfT8MPfTd zVTHr%h{ntHqu3G7NR}~lhTk<$y5Ay3U^UFnubjj{-B)r#78Akb$U*SWcX$9ur4E6C zem1{@?itYIOGw%|J9nWV!w(#Jy;)nXstmgioH_h~H1Ls(e+Qv#56S385k9eXWBJ7` zer0bz!QekFyf92XTpjPus^a;=YhC7dwxn%omv}3+*E8#4WUnW~ z<)-**&TWeaf=}r)uWFsqd2qD*%a*Gy5sOD-cO9FrZe)>U{?_ZHEWLi%^!?D`EQJ9> zYVi!oS4Fx*ig6;7I23Njm5`Ja_*7^+YA|=)BqMA2ZKAUH@{1O3TSP^X)jN}|>Y?DK zFi?P*?v*ff#NT4K6*mQ=hY-?HG8_3CGX? zM#f4fS%N7O-jotRQ*WB-Q+B4E2~s&D$rr1^S(vtDcI^(f)qxJD&&U%MU<56a)05q< zUI#zaRYUT1ga6Y2`yASH4ygi;g0P5)HGE7_E1Y}e%rFXvtU!-1tK>6Czi5IL{qNsD z)z2V*l!`<{CtwgG7>|z6f^-hKGX1|dt=Z=s=VxBd&pcyce6&4@Dg~^x#$;gMuS=m@UoEoc@>^M4!B7f%bjq!tOJ?-OkuM_Wj(D-k z9I#r&IiIM1%=+E0&Sb?4uh(DDOLB?WYn@q?oV!;4@vh+YEj4y}%8OmvuKASguj>~X z{MK{~b^LCE&AZNqTiajPxbBCnKyeOY!Z%@yX|| zVTS40N2j=(@I}9(=4(fgfciJ-my5a?JF5c4FFBM1rnq!en)ab9`N_;69H8__n%T@i z%HPnX1RH8%v)!-dGWJgQ6(=ti3uR6A9aq?R<^{&ZACF$&Y0Al2-rI7S2=*fCVp%j= zg^y|gp$F1=6d`3CGq;U17fEfrSZr!CNj?$rj#Rw>c^~ik=-(f25h1ZLHvKU`w>jeH zuFqtoWtCXp^?xKIQ1MAPGXJWfu+>F6|WKzsfE zxwE6sJM>v4MZ0OOE3>J2@7}yw2DqyZBio&c%ahSCfCAz!u$nMOg*m06t_}L)m_$Rz z!5H=I4B6@XaG>BpNr{MvNG8f9kfs}+KTrBN2+6)O&M5iPJDjg@voN0o-SWCWOLsIe z7wKF*QR7~wwQ@$WB8}HE{mR(#HGzdM;h|T`$E5G&Sf#mkZPNxf>4f;BbYc~C=0O;}c&YOK|Zk0|fs0x#4-$vXp&XO*{`@$B2s5pa>H zPtZHE%1gja7Idk5cXkzAaxM(=G_H3`NNrX)UmVWCSZ3v2E9oM%ZaBifgxxIB#nx;p zN1PBsc-BR;R;WVG4Gp9bvJHb`T?cxTIs3QEzj|_m%`181=KA03xyQ~%BVQcQu(8_r zbj!y$MpYUoOH!~)=19-Yt>;-ipWb}NMxqmSWAaSny&M!wR{MeWr}ON#Vlh%!oNWwL zp!qUCK0gPZwqw+ahT@iYobT z+GtcZ*Nf^Ks5wxs0^X9r(ggOs%$!Hmet7>rIiA=hEXwrc6X3w*z_Q%8JSu+XSnmJc zeU|!7%>NLUi&aNMwYfdLXfn#Ik}S=qYWD*5CY;I70)x0^{ixMeTKY(J()l8FhRQkq z;XYXws~g{QH!)Xlw8fRiF5}Tzg(g^!wF?!)?$xM7FJ7G<}iz8_R-F4z^%dJHuu3tnfvSZA2t2J zM^8?ponq&DK|l2$MN<=wLcR>u zvc_rNzYi;({b}N;?-C{q)w&K*wGC|EtB!-)QY~q9x0ZG@n|k-kyQIol7BGQGKPnC8 z0u`@4vPhk-8QnnqYYPmE_LpD3!NBqB;a@!K*0N}nj~4nfBR(wdx}__0PfnS&TF0uS zc4L(HVEsSd|8STqo8vTPJs8nAnnXsS@1nZ9W9QW`S~aD9Qm^l2Tj8!SvgAqf4IoK` zRozMz6|=qd`aV^J4%D~4+y$!|#1^^oI``03tT`t5CTX3zl8&tGtXo2xhiXhNO;h}e zK0bT#(%#*-IXNK;Rf4g)I`7YW#)7Zpmd2phUcClbggTV8@j70GxG;I|iPAX{rXE>l zj`;8Y%%*q$*M0$Mu01M(zMe4o_fypVs9_@+_^{G zggcbmiSB2COWcGD%(VBY5@{{-m7D%MR`#Ezt3^Mxtm#~ADCqmotn5a%(nnqPPmxNj z+SB}mm@KD+jF}t#l@}!(8dcTb zWtW6_Gg5F~S{KPAsyJ?5hq4xX%*NS+FlmnN_1owwsp{!f`+%3YmR-%)DtH!qV}l}V zwaWhzAchJ=In0MBN5$A)Ntl+7v*bVHQ~IJ)CYVqpd`UD_wrT(8>(P<4^J~sM|MgvX z&8mJiNt0t$%O;)$e_V9!ey3hh`B~ceIF1toeuqu0rzZC{O;9J;n*ENKb(|vlUnVC| zqnC(`_?T98a?q7YfRcU~rO%kb8)c=08P_rBH&PFMI-w!vmp(RWF0UDUbyT6YT*qzY zmR()_>l>8iHuNcv?ES%}PtlO|x%A5j0;O*>TW_Oex-qwAs8454S9vg^5gipGar!14 zawZi1Oi*-ABH(9_yyCiQmyD?!R>|cb&i|vUtr`-vDjSzX+|a7?A~LyNnE1T9X8C_V z9;1)f5{BcdSX-SVby=Yy5A+7nT|rm-zilhIne;bE{Kwmb2XC+1fybdH;!l-SUY23G zeWBLI3Mb=MzeSFnRPRH0_x7eR%s*~U70vy^RpxxT!#ecMqHMmF!YfLboosiU`^iPj z-jfg%;47nMgZ}ZKNU`6tQ=Y`NSBJf$c5jq6$fSWMtDo*tS=(QKb-VBJ%2h2J?S_m& zreq^Hq*Pg>zIyxSF66pIG^Q!5*TStU{vjhWYJ(O^X>B{bkNjwyK?p{PmDQ|G#voXjJ-&wvL}lFh_-#q-eO&`Y2NV= zhuq%UWT}gYb)lGLUz(6XaZ|?bJMxXgD{l=a`Jx$D_UgT;iI+=#C~-eanB6V^&54VG zj>hZaW`3kquHI?k=>-l3eksr4Z{8EE0R#s9VIwFb%__+nsGue3oGMiGznkK%DB-MA z`H$c8Y44&mHe7xd#!ehI&ssZ~V_8=J$8JWh-H@12$F63WACGN#*ao7G9 zs^H`Gh$h0t58EUh^$6mz{w~K8yi90!!0u9c>=fU@XKW^o(XGs7fF#JR@(w%A425t! ziCQx@<4JxuPFeEEvQOl9gn%^EdDv*z`8{5>Z11`9D1H=d6ZhO@8Qc(~W5kd@nz$l4 z!NqGaeJs&hWc@eR-;tYBv$(NP(t7+9kL1HpbUlQ;8j?Sv2TQ?#(aq zCSLo479vlMpD;QUrC23*t&*1n^>f#8{pE9ho%$-CEDRe5`+CV$MF-ATT_=1@oj9Vm zCznzG?I6CO=qDIA@vH>Xte2ZVH6ZXFhs2`VV_S7TZWsH^u#77G;H~rb(yuK67S`)0RLe)7q zaE#wgI&x?i4hJ118e(URf2OCoNX>Ee=YHqg%sm$*``p z=*h-cNq&3|MSfo|v}EnRgiXo@h16C@hq81GxDG7BW)US_=5HZ-;(C_kY0Nk(-ay&G zl-eQzidOsPwxLaG(HWT!%5!M7=RS(o?k6M_)mV3A-@B)d*xw3!@@jkZ(V`K(-{eH` z5i#vSjanBAB0*boqnZWu$K^A*LS}y{DPNsj%}M0ZojBA|&qB+F58}gW+x-1;r@njp z7I`J38ZSRSc5`a$>bZ3*8SB1%4XQVFVz(3jjQ7P*!6<^}o1aQbz(D@n=LuM`w2i>y zvBwsZKe}b~IM(vJ2`tG4WEsb7wn zv#Z@>K@aUHaB-v3BQP=w7#vSfhK-w>D4t9a5W&a1NvL$MaXS^iLx-Ew=i zeiN=^rY$y~Vz#go;@ucJ>n9n;#E3c{JMS$Zpxlw~a=DUPj(XG8=ds|a?0f{hUeolVpAx*OjcfoWA!W-$R3 zotmqYT_@M!UPHP~%z@9Cvt-uM0lcRXYc@$JwN<+z91c;qn-G%|AZZ-qA@U?^-Nn?T z-Dm=~E=uPxwJQ6_9k?&IL6Dq2;d4v3Op+&Mj%pCX`5bI*kwT!0NQR9VggC{0mFUjV zckMQt_8ktkY%sK5GMM4r^g8owKHvB`BA&wT%_#LjQ*ela7L4LJgUG=Yk6PLoUV;#o zFFLJHS&(_=N7Q7$OnXSo(*Q}?vYs2+SJj17>|1AA48@9QmSmh1mi1;tLyct95XGD+ zif35(9D>+Je#Vu)155d0?s=SZ6uiXi$D^w|yYKisgA0q#5XBoHB*PHkW+H*dleCXD zx+@w+R}+%7iv_0lti-7=jv85XI+;Eha$&oclV?TJy#(~SX>_-WD|#x&Dg6k`ZVwky zr%q*JH~G>ZYr39w3uS@}OI+Kku41nCMk84%XVN(e?;Y0(g%ATN(q=b=8Uy%C(Uc^a z!|K>A9SdyI!iDmSVort*y%!=W4NinbM%&f_Zs5ZXxCDK^MDM@u! zi~Bwuv@*_1fC4&MS)$=gS?vQ(Gf{-Pg0WcB^|)L78$+g+=nl!@lNu~juV;!_8ie5a z{B`Eb%RClhw?Hbz2tp5u$D85sve7`Ep-A4ylF{EZCE{*ELq|2%JH|Od@sL+zGqt9( zW#v-Gbo*6jF;r5EbWNbW0NrT3JGvfTWDqo#$o+T6)`)}QtLggMz1n{BXn5+5<(y7} zHH9xXu5b2g3SY89jlyWb(Q_UPTL-5#)7MLJJ0t9@Nw8?xAZbX=+J$UDUYeC|d~uDg zn)m*brd|ZY`r_xEc^*N*ibCY+pF_0t=PpwN3FL5Z%JwV3ya2nW<;znV;15(CN)l)I zE$$2VOQ*+uZ4_kq?(kvsg#*MGD80<^4f~O_>a<8bo88{y{_2+vMOd(~ZfuC6={F~O zeyi~YVndQ5aAcze4k3}8{2P6Q82JdsOa(FzH0DN;`8p!~#E6|BwW%@h6E3l!DgL>( zEE{3_==?mU;W!zXt0l2DefJ3^>!K%)){zT{D-dwwmCA+2;REM|$Y5I37lcwLJh9hUdC9V1csR_n;eTe(z&zDnqkA~Me#XhC(%-6k8q5S0Le zzY`!hlz6smIsYf&ku-3C%;Sy#b& z51+?RFwG-v@_J`E7`yN#*K$2x;cjhjpTny8t=9wRUM+S`nTMG-)!?)x_u%lo$3-X3 z9@oT~EH=>%dcIu3JwKSU9E$h<=>nwnE}k7;w@gYoN%dR$Cgeduba#%$XM11PzAh%m zzR*5*zQ4EaebrpBR2?u>;6TdC%HiUL4awR*?K9VBh#b)0x72SC?JHnc9<6L7W{zbwp zU4yap#55?7y$gJKEBY@mSA1Wu9aATwT>`#nb+fQVWj~qY4(arN2D`5?@XY{T9sPXs z&K)5m&uzA(Hyz6I&Byn^WkbZt4~B3~k`)gadU#RGkAUET!~XElXBRuWVsx6&3Wptw z){q(HA!@5?rzvYU_3~O{U20x6mq$|k^Ivqf$G>@GtVPaZ6EaFex38Psvw~4=KbYCt z(b4gGZsS1ZzXt_(z$rs(on*fJ$pD)JpaT|dBruAUN5C7Iv(qAux&M@t+=7!uS}#tM z_KQINpiE5)2^^mr%|z31jcesGNQOCH_k<&A=feSkVs_a-4|gn$P*z_a5{OyymhZCO z%xTr^U7aU(G$-#DNKbD!wft!E6+wlXD4aGgV}!lzwCfUfE7#Vw7$P@^{{sjF=2uUye)w1L4_lm?`MUSNeUsj zaMfonY8|-H>E?s0Qg2<&;^cUW8|UnMe$joD>Wyd5?g#3j^2Q;CVVIyN^nFb@9}!f2 z!HQl0o2-<%7i0NMfo_sMh0nw89fEZEo8giN4}QVb?(_=Z-;;tE1C0^@PC@#YLgx$S zW&Pl{kUCD&4_PNT!N}5qJn7}|e;wdwkmhs^#+W*`*tc~nEFfnlM|;HuqqqL?KVP<% z5N?e)d$wjRZ7aCyPcQKJw?$+z4)E>#%Ne$Ggu{yCvexb*+J=MGV7d@vhVC4PZSDo0 zoX6~aXXo47+Yw4X!SWM?H0VI3tqb0dJ}Q81_(?77b~Fw((D%lpVV0Vd-Nruzdy*tU zvCb_9{TcDU469v1qDzH^ez1}wg%(Dwp}zp<-7fT!tc zgGA|lpd}UaWB%o*%g?qucTP)4a1|wQv+YROc}qx6Qeo>_C7W1L!3WFinyz+lT>M_5 zNiCO=<`!4o= zQ_=W5tWxm(iGiAKx<>qPNM%xbh(4OGKxp+Lag6L~5!BJZ%NXr@5!-t}CcDj|_kO$9 zR7gzF^1>|xkDU|db+(EyHZymebAR)fuh+Br=|PsON@1dwRCS#y?tkk22?@>4PM=>K zs2da^oCFN{9ITpx$vDgz8cR!|lhAO4)VBZA-p>F$p{WTen%S8*;M!<%2Ntb7!Z9lzK* z5(3Jc`KACV`gYEQF`ix z2m!1!!|iuvQ>@{rGNQ_tWlJ?$&yJ_MOA1(2CV=R3BRBVx-;+glH@1X>mk7_JM7HH+ z(4iv9rVvh+|144Mh-2XiIBYZi`DY-ZxR_)l_5liUadE+g*w=FT;}`e`P4*%H0)cM> z?W}UTYj{DM3c_gH3&eqxXhz1Px{z zdwbj(IS2#W=1DC$z%|>T=C?@(%9N(2rnvG*p>Fb(K~RO13j;fjgr))T+}h){UcO?L zm?SSQ&{D=PisIJFdHZ73)iXovjJnA`jMmAUbpx9UQ2;e*1U8heD>7U z6Fr5giV7Z@zQV*>b@vN7C&x{__{e_3O4P+5NZZKE$jD5Z;oXxi=gSS#p|YEM;|54k z!N8NYNvNz@GY>872|)92I$9tDcS?Y~zbZE^w5Ki0pnPJSZSyM*B<66?kVzGm>j@dY zAN!Je#I~T{vasrZe=T>L~_L(aX$T`f_*IBix{}7RuZKi)(qMT@d5xtsn+MOs& zc_y=7T~CmzzTNf&Yg&#?GSZ&3Q%`sG8^6>LJX!Mv48O4PA?Mjh47H2XJT2g=OZqw9 z;>TM$2D}}h{H?AA&>BEugVfeskHq|rBXN|YNSVLk%5QfD^Bc-qTQb(JzVMzTgJKi^ z0VY(d2_Q> z%pJ~A}%#1GQT|&*l!#9vV-?iYDQPqO%e2&=!;Z-)h-Se zSIyoD${j2~JF&Pp6XeMqhaeaD(eGgTg+-~v0)|~^rjRqD@qMJ-#X9VCNb7@=4lgoW z=(?3n{kTo?6+Az{h^})V}N%coa!7zr{a}9r@K^idb%C zLaAoi7FnjmuO-@aG0VyXi%|t1j_Gz}5damg?ZaPe+i1qs25qm;^K;`QEgVZ(9{e*W z;uplAtbrTN%7Ejrh$9jQvHAJ)*xM_hwHN*K?;?zHBz=^$5i?hz(Aktt@&rXV1Zq^; zjt0+VD6Ca{`sY{An4Gch^rb(_#qOza0IJh3*B=7EF$8Mu;JO zDF9+awIbiOsuC9zDd9w##DVD)_Vxuwa!LxW_r_tD>ZRLm?`-y>(6!2@wV5A3c_=rq zbn4It6W8Bn_d8>_M@{Z(3u_wN9#ogtbrQMP@t!g|9ztOp!^?fMZed#?57{Ph1m_cK z$`e0b=gX&_?|kU9K=}r*n2gc*our_e=T=%9Z@a9dfq|=Uq@MtyaF+g$cZ?m*0Vd4p zrrv35t)H)qhIWBVUYJq$I@L{kPXUhvt8(s))#Y#YC(3cBNuKvK`U54@-nF7!Y~R*$ z(UHgz+*>ZM+xGbeNTwY~dO@hU@k0hVXxycn*X|mS9EgvSH*}?UKNwY?iDxC=rWZB6 z?EkgF?(U*~#%=bg(LP-x!{rjXdIGvzJLRY-Fo~Gm>QruYq9uh_R3pAdmE+$UM9rI6)C8IIWtN*aZ+ovJAai~P3xgxQsPd)7U5&%1 zDD6?NQyJ~lDZ;Y>;Go49v}bzc=`@_EZg_}+srIdW+b9Qb_nI6 z$VyhEh-9URBocZGMIP~FO5Ss~_E zpR?1)xs}yg8DxFOmx}AA$UBg`F@o+m4%l0dKJR{VbPyd*aQ*oVZPdSn1Pk4u8=AY$ zNM599e5|wHN(tLKS!lAKV=CV5C|;h~!nn4-kNH)Ol5TZpW0?S8z+M$?wS({E%1bF4 zd+c7utLW#89zjoMhpOkNrGyH8Lb1c`OKKHk{rP;`_Li6_?qi36hKd+RC5@ zoWe76^_vdqvc0*yWzl19#@7UYE=tIH5n)$bL(#^P@?6@*e2kTA_$!n<{(1NQ6JwFQ zI$W}O*7mOc zHaGMRV|G1M$!kJ&GhE{wzv@!BuijvBzl$?0rfMti?q{&d^0iSOI8N?wIqXYSG=Igy_4SkJ4(jyydRZt0f!tcreP ziI>9CwxfbPTgq;IIY;;=_JjBTZnNX+@UamOMV39)s5c$9iux8C*1mHr zMOR&vENRXC=u2=2NyFVs<7{4p7+}53_E(S^fp=zAq?gD)pB>M=-5h$pa6ah$DY+x@ zv^;BP8Ci+b`|CPSaL*ky>3YI(_Qeqq<{S|~to@9q=pC%=^&Yni!nqRtsgdZGoq?9h zP3HniQ~Xk>=*Mb7D$LK1y14f0V|<-B_e%7eD+~x{xmcqs77uYn;hry+*lR+i6hdYOx>iCiTAp~;L8uGr=|5>Uy!#z4WI7%ScQax-A~VK|#dsyZ<8>Yy*3m@k>vA?1KGKu5 zkBj6@IXC<&ox{==Pol~HJMn#Y`CdiA@w_#d5VW-Q#bVPA7`oK;)Q1go2?L!IDzu-e zOp+3RE0@xTRoBT#n%v`*1O)Oh(TCwAp|NTi$KOtt)u*SGfVkGz(PWo4 zJD^#deaYkQ#p`TK-5+s{3Ufa$Q@OfBuR5pZ;uVlgzf5?kZiRO8yL@oPyi39ejpw%ta@DE{-aG6lKGe zE|h@P-hQsibnNP3Tca*>rkpic7<^ZC-nX{2;E>kc%t~=>HAV_Y`Mv?a^LobI0dql# z#--la5jHRV+{t`MYiSb03Sv+gY(V~RR~y*Vn>(1D@k^Phlv{jT=|{SIfc*~n9sc*z z2ZfGm$=25o{C)}x3e>_-cYq+r<)G74d8v~cLW7fP+mFGPPv7ivnI7(=b}8IGC4b7D zPiS+)h|Ak>T|RwWj;R1^DL1YlOD4K5Uivm0jvA3y&CMyFa$v?s(OInTTs1jK8>v!? zFP~V_e(v4MJwe^VR7~DZ3!!~)j}ldWh3;y%?^Yx+)*ak)V4=sSPsF&@@@v`uJk-fU za4)e`KGJpiTdcHpdq{jB7L#i2oo}2*n;S|lnW20`kvxX`V;i@;=jC~jVvOHXr9R?p zDLH+;Q~?h`p~fbZeMWDiP_beoQ$g!*-LJzX=LW{h+&Wxd^PR^dP-aqY-z8_&pL{T8 z>L9_f7a+~d(CKI76_S(WGjAH!jR>|dXUJ3LYqG3-R;(IyA>m!T@`17nB~B>CRV~dn zuNER4OTjy<)C5L)2%7zfL?v&E^B-CYXjjrhxzcZXsf+K%^qf6528lgV1|$~bKhLX* znLNoknBlR|8r6sGF~2|g*$Hcfl*EK0!4vC`_3dTyZ1w9vj@&qS{6k<^p{a5$_zm+l z0`;#9b;jx2RV&uvWIB8F`&*-+jOyy@mQSiA5c!0Ek2sPgncq9SSzcc_N94@5w`WH= z%fpgfT>8x==ZE);#dxLV>z zhg9n6TUrCT&(@gzv|ZOMXYG63r}Y-}?7u#*#vw(MvqxPDr9{R(qSBZB<};1T)k~=k zU1Qe0@PY9y=`>%%tzLGkD&JKqWmuH^?BZfEKQaK3(O;v|Shb{QOTv6Kum&h%eOMyJ z!)AE6xUkSPC}TP&kc%pbN#aV_x>1OFeXjiY){3oejqB?$1aZ`shF7Tj!O2klM~KSA zJt3}eW+u42R9vVU`(6y~S#O!AGSDg$bVAtkoBCz9p>tH_eIaRF$*6>V=FV>a3xprA zdYdpB?5tr&M8-MEhud!K<#vD288jLieZ!Bcuw$QRGpKF0k>8P6TfZ9Sd=ypJTJ|bt zJZ$mLe-SxN7^N)JSWIIKkqqAoAXE zwg0M2!-h$?dnwc{ep;DYy;ffSPbueUkB<~ZTUKCOu~R!J@KRb+*ZDoh%9MFk*mhR~ z#XXNN8NM#YuzOV+k*z;CzD{L-qwXRq804gn#oA>FpK{je3Z28U7yhDaY%slN#J-hV zYpwY?PA=hIBj#Ft8v{P_`}r57VZ&ia=s5kfw6r54Z#O@PUBH=!P9Ty-?GdYqOiI-)^aOnE7)1={u(vF)|>fQzQa5 z3pgi-2I#V5=hLeMpR^F1U~cHWr5UT{{zw(hE(MxqX0b9W!MW&@WeO^ZTnLdF`2E-f zvB&F41a|tVVb4x=OJ@ZMj~yxBT92H@X_50ue#z*ZHO10b$jgt!cT~k(*keJ-5etN* z@$kaQVm>lvE=s%Nw$MejH>5^deLG9F3|7H@SD*`O*$+|QA zxs*!5q7&bS!>8K;r72+bCt4n!Tg1OacT>@J#w9*!mo+A@(j>e6$?w1jnIC07f0k|VMJ9{`lz*!%YL6;D_>at6HTS&r(yzO%xq{9Nm zRT*x)$8G&v5`bvxzR79pWMvaSGYr-!P>LiHIS2^}g$7(^_<|*DeEjaETfOT8<-SLC z@&@=UVPtoT+d5|d?3`-z-i!$svT^ATg)dp>PfZ-gFcRB~ID`5RaVu^!QzK_CbAHfX zajR$e#!BRsIfe<%H&&Nl!fjINp7K(XmsOZQcX~Z6Pu)dt8>+>{%}pBZFE21qfpxE? z4rL{L9Gg04jEAQ9yDw9Vgft`k!tKJ~&;ed69Onc{KMvyu%`(7VTo^VZudBf2Q1;c1 z-462G3W3ksCxv6_l}H zM@Dx6zJ)=c=;^NupOGK!?n*7y_Ik(4N);SGcHcKGO-DuQI!hbZra>KTC=4 zEk|$MGw{L$kU@Z*&`B0r2gd(46!Y;NtYOb{aI>I%67BYIE_QBaq8&9jwEsuc8ga^T zVWsVmX>v#ylkEaPN30i6o^tB#+qdv@-=3=2Ll^^;zmBbE8iCtsg+HbQc{D|>ttwC* z?>XEFSDMvPnI~u*%~=gxLGnJq>F!&Fn@g^*A*(_4YH!E2n3$N=d#1))cc6iX#6q_s zAYvxQ#=tQRE{KJIB;;DTdFE01?0Q!>su5exJ|#U}=IQq3qv$lbwEKC`{VQ!J`_z`( z_chpTOZX}xlv`D(X%GrIWa0iDZ3fY+s zd)lqqPiA$sk%c)RxdB=B;9qFY`o7RkGF)(jr}gjD9O637pdv!jU0M63f z)O7JRn0*qnlvPx&J*pdoU-!zi(&+R9h87uMa7Ro%#yd*B!f~cY? zO*YoBf-Z?uC9m?fXMmZJ3pd=c7 zN$O=}qQc^qG2hp-$>XpxMh|#C+f!*^IXG9Pt9fa{?5=v2F^2;SM>`udA^{g+wP1Ki zWzCvx&Ic)Ks(N6#d*89eE0Wq-E(UK*b7^vLP86h{IeKF6zde(jmIKEuj=xI6MyU`| zAPdT#&%`>rK1C{QIHhWra&d&jbnUK-igwnam+{w05vNss}q=@YbGfGr$hgI zaIaHuBE!Kc`1IYOjx2`m#ojx__tkZ5zURGZ?DUXgkW8xfJ>~CYJ5(qvq*=IQ*vH%{ zRFL-rhz+WTa~04esbcqucIW{Rr%06v7_RO0XT<4|(xCwq%@jR@GEs1!bnzm`Dnd>B z|N1xqHxTFqF>FLGihR5E&hL60CYS2$+sA(i_5r7v2Q7h z_t?!#rpoPN58*9s&nUQ@p~9QBI!I#oq>f|#)uHyh=7Xlq#@~MR-dIG@Ladoxw>~H| zm0PqPZu$8yZEVpA!qxQ}k25SA8d4OxK)HdFB5j%hm!XY>xwFpv_;sC4Q{7<%nV&X< zET|?%h!o$Uhi2Q-E;b)ND5;r(F}k3I?9wR{e_c}IzWstDnRZ(5 zgnQRTG5fSCjjbif0u|ksmU?5f97>2(4PWQ~%>QRDoSf+^su3#%vAzafVv*c#5KAx$r>rq99GZQ7>T|Qh>NaXl;Py7It<-WCW4P>KS{`_oNWUcf;rW^e?3x6urjOal6}m^D-nL)bg_6*hJBz=LW5| zUQg9n2_-K@SHHT_j_04R{h_iu@gcfh{ah6j4>Bc^p|P zBm?N=G(Oxlk2kvcdjseoM{svIZQu}<-d+lAt1C4df>+UtL}BN)$Yt5CmG8KeO!{W zY$MY?7*!As5XI62`(=I>jKB|&Hg;xJeFJnH;XH)=%D+H`gBBaO11nKB!V3>5WI#H{ zT*3U5jE18H)^aNf&}(e54}6nJ=7VHUW_9{ zx&Z|W=PC#!a?6jrN>xJn1n4Capq=X>SD2XGyYBv9V}CX#RCOQV z@AEzu)w-S>PjB7E_pzX`npY1DiqvNX6pq4ik5^AM@Q4*e1ra>(oiWT0TX^HOM-W3% zN{hCZCxd{4*Eclqd0$6%9Ipcl3-xJPg(m}7uv6GqVV-R!o-<1*XN0Y6zL0YT zmivtMR_jHgMcP5+&Tkxr4v>bomlregKtL(}9`TTHE;#6jvlFHPFc;b>&O^8412>+b z55;Rvv7)6sIu$vus>1p5wmTY*UQ*%2m||}Fefi4?`ELalz6Se|u#KxRph=q3)AkZ> zYD%id56rYAXMn7DytMi<$*TwDQZ=Qc3S&GMp4J5c?1%^#Go#VN5tLb1jopLT#2|EH zlclZnG54lRcEl*l8C}58^*Uy*7aNju;Yg{T;HL@@-VA@EbCLh>=MYpxAb=li&1*!U zJi{$=3=~tA_VFX=+y$Ed1lB*F$Dci2(-#+38TT{gO`A52ovo~_WOcOPw8Cn(udaEy zCnsxI%O_?^qxN*NbKk`|(QO-rDg?NaZx?m{U7YEADn8j_0ZM5ZJZ7p3mJ(Yg7{M2* zK*4hX!VAaFTn0n#`?P`dNgW@sShe-bROGqu?#=~6usYc`JVAMF$eA(@?|qkXbr=xkh<4G1hH?qu+H$_bE1YyN?M_L z)C0yh+|L5vT+xr$Q4I{X3oYl ze82Ujq}8(;Mil+vF7Y$G@R2r}>X52+?%)@-cdM6dN&0lI(&>*9REVTu;5-5 z55I!h7UD(2uzBrU?~-g4o)VCNjB5WCFf zW`2Hq*>S(J!`4!Ng|>L%SRpH-P?@*rmt|n$tJjY4n)vaxTgg!;r;0d{1i>0OZuh?=&^G}FW@56|#(l);4YkD%GOPAL5nW_3}D35+# zg8`-`T+J?BJz5op$a5c894IVEtuZObMgpLUGt`WRaabM#9(-korGSqp}rpGC!x4Wko5_@A@K`AUZXG= zj81k$Yl5y+url2HjT0*RaGqPc9~9h)kb$6>M^DweL*s}b3q2f>?=7+KP*GOKd5b~; zC0N^qfBIXuBUB3A-70}bQD*OA6fxd5VMHj3R_S?LBVmsp5t|nZi@X8 zqnTNj5mE=d^E3K}l2+e1@U)J6F@!1?hIdG+QhW}g9vcg4nVxC(=1s;HY0WzGWeeE~ zdL@T<$?8=Pnn2}6LPL8^tg9oR?eBd94{%&OE;-Jy$*5d?V@Ms`Du<+$i-2SPX4sCT zlU{;8uEvK|2<)rEfF3yUIv9d0O#%x!3pu5+qYMtL!P6cYvOIR|;m^&CP1tRIF|Amrw-7e;5alLt@NI%B5Pd+u;{LV%lp4-wI3vi1x8ox5Doy3b3A@!sACX@ zk>_CaCx5&@j9262m#b}ToW)ePK%{_Xhu5xO$F03f2arlx32*kB83tlzg{>U}2D zA%Nm>3OsBbSj&(i<&Tc?uivc=k51gSF7P-*Fc+Vj)O+NOz5u*e_aMq|IzILVc?6_# z@EB2db8|a3*wT+4zX;HxsvfT)wBCI`uDJS&^Wyllv~^_jvHaZid4q48Slvj-lH}cN zlpJ5k<_bUlBOjFJP0w7`cMVU=J=Jjl3kNNke?J`#8OHVPR(`%9Zu>-bjo;MYyw}F& zPqgEVGmc&qhQQJ+6_yy~v&@A+Cr3UKtr74qwpBRiPe2nKSU!_rBEL>XCg@B2HhDM> z0>Xm8{RxahpfW`GhYZ>d*EW3thpRd72?$pyKU2M&jcStcWvf9HTfkty=l05-#_{)b zdmFx23zs9vzabnX4rbU%BorVkBUJT&V6p1u(-Pdh_E>`R9jTd&>W@wd45h4ue7V*13_Mvn!=L42_NJA*3Z;5m(NQoW+X0 z`1V1%^{ds^msHu&Az?%GV`=$T$;$L-of^G5cYBe7trgnrCkMWwXip(zB%OYz49hbPMes zZ8+*6W<=1+kX?UQ_l`>iHm85Mk-;U(p6uqzY`cM~Sb^C~{OtB0fZc$!uIvv|Qdn`Y zuRe|&VGoWe1NLl^*+r=)d>dK_oY` zI2(XjU&bQ$e8NuA4Ze01MkSlvAJx@BOFlLe*rYo-Z z&M-8oQaqgCNr=5GQoi?FmTV%{)gQA%emANw;u5^;*;W8_6q(=MJ&(LUPbww(ocQsXAj&YpHoS zvu5vS_$ukMn0~Y#%|G1L1nhQ613e9d}p?1YQT|tFVcQ9)X;|9)Z30=7ohi|uuyr(+@0F|c_#Fuabcu#qtnV>|l-r?Zn3G$92) z;RyyMB=Az?>j3CXwr_t5%iEbD>t2BGL?`i($Te}v-06)a&7D?a=CG1KWqr<$jY7Qc z`a<7@)?WD*;?-I!q_wGBz%u{#T1nHn_qq98sxCv^Qt^Y2Ikse9MTZDVBLcZ!Fsg27 z$zVBfU^fo$HRNMszWOLFIk`HCg#tCjv7!4^V6y`wm2Y4nv^6!0_f*bplquY7-#$^o z^!r!@E@^$v&W&j$=5-YPR$v)pkg}?WGs9r< zGvVL6p53CT?fDu3>$J4?0A@S{#Xhaj`jw*ft8lPDcMq{#^wQ?^@ZWxMSf@WgK%DuJ zT8{dymtG}j8g`^+Co4^^+kxQOeHuI$)PNNS5HhBs(s-!$`g;#-{RBR&inww_xhT67 zVE_AFYT@uuKcV_w{mb;;-CUpdt3ISZZVe>ZO_l75#s4~4C}{*V@x`xHD5~i0p|-Y; zet&EC53cO(HABzejTdlHmt3EZxDNeBa|f!zS;kBRx)(B8s2ZhubDXo{GcsgJjJP1T z=kSJreWLgB*RC>uHcuMJRd6r%kf?7QXec{&;@BM3wFz z3JeYbq?fcmy68FdWTR*6@9CJ)4kzv>iY>ee!IJR(%=xX%QdoiP`}MOJu_ zVE)NTV+90H)HVe3IJV{26|gCd5UO)xlYdy|}JZjI%<=k59Hq^ZZJJRV~M~6LjBsGs)Dt#}OCwYS$ZyWgw>80X}mj~bBp=}ge z;`5&A>)1h=%I+9VyN&8*l%0?$xpD~VLY%pv!K5zX^R!;v>!hDH-oLLp2wXqGy}vRa z>~j8vCIL@5EJkpm4NRSrhop|?{H|h(Qkq;u?6#=J8&jf#D5bz>d5gWp&`^pi#Y zN^d)s`@G%u?I2wJ(qGTKeE(ONwQO0xO~2YH?-FUr+IkOiu%SmE9EhoeE4|~_Akrbv zy>$N%<^0D7yUeR5`Bd|FQq;@Q*$)ic+co#aqKIQVd2x@m>gu*Z8UGRI3$Jd8)MFVJ zE7>iE^jn-cUvCFVo^z46y{46^l!XmrcxKU(fTic@2Vc$JI7J>^T}CYg>PjR;8WF_8 zfcozAqviVJADxkUzZ)Jr_e*IHo?v~Xk%|?yo(z=ln+QReR+PswA^_efD*_TZ46eD?fI~NK}<=-kltxn zGtNKsu0Ou{$-F+ynBvA;Zf)0`VPub<9GA+P7!j3xT>VOP-!fO%g61oa#~3IJImc%m z+14cad(E zTE=Zpo}s9=zCHm_fqNab7z>?t8kH-c+`ri{QdgXO`Cb~0UAcyg?_g?a$U%lBS<>_< z%=E%RAT6VIb-|5>+NgIqZXujD^}25NODW!m*1nKy_ihTQ6N&j8+0=X7zwG}$bpjd# zXIYMg{xr4mnVIXKHbRU@)`@3vpl)kN#35C~`6J4&7j0os-PfO`ME_XQ`pa#oY$0pf zj}KcGEoZ6N&g@DJ$m-~H;r;2ea(nAl1K355MTQP7WnnkZtlpy3EmbZy8?Im>!gM11 z7K5(e$=4&&vitkhMKR77F+;R;qC|V{q`3BxF6xN*?>MEG2A<#LvDZxcB9ypPQTMo1 z1%$Xq`yj5^HJeE0k*Fh{v9naT;>SsrFoQiMzL@`xLwe~Ud^9T|ibbn%uQLs7c4cqf zF}(7?84^gD$Sd=4(6{1qwaYjnzNl%S%K*esRQRv9yNwQa&xlI&yIje}vQ~6B@8u?H znff}e+RA%t>c8BD_2ql@unvRI3hZTNS9kXYFCPF3kQ7txPj?*{vfMx@{R-unPlg7+ z&NA9A%UQDrQkulGFsGm>|Aiw5#n|lhK63J9o=cQtsIZf>ViZFYB*gwwMsxj7B5B={ z&d;pTRN)au)m=>~xAIMpqDtzfS&aQ`^LZs_8|t<;Ih;G~u=B0k zY&VyN-q|bYjnfwlgEnEyl;j(mWj;=aETZ1tC@I+$lyRw)nTEb#IBm&}aDy2!c4@_i zcM99nOV!Q`+WBxNCNNNga)FxE-LS_x7xFW5i2zG|;i$2ye#uAG06G)51K4u)(MF$c z8deM4s?ae>HDIT3)@UIqUK<|7#p! zQ82CsB9QFx*t?+{TRJ8@s+vwWq&8YZSK#*Cg=n{e$Uz(@p|1X(>@ebD5Vu30w+vY# zIsNRNX7#QI+6$^U)S5K?8ltHz4hNt33mO|nl#7IbLz z;8U~;d?OX^}XxzGMG*4Cpaw2#Z!XYnM%oa9hbPonu0qe8~4#UCYU-2n#r%s8kGO1&R!J zS65VSnX>s#wAq3sD7|{s1yDb(=c1c}?k~z@c4EfjGrf}UgU7ClxMq->lEJH`WvQH$ zILeaCOkGg=C@C-hs@*40p=jATp65gG&|^UpdC&Jmzl>d3)bJ=Z0cE`NH+WPpe`| z%u&;4z9%V-&dIl`!p6l_bsLh6*E#6>xV$k-D?tACdt#LgH36=woq*r4F5=rW03WCo zDKIJnN;W7z=`pNoh+q%?i7;*EV3YS!$yDYu z3)Ow<^l8RHF9WsIrVy!%3U*MD@i>FH>zaP|2$$AiK!PtzP5eRXMk_p<8Y&%zDaIqd z0hNVUd3_fOEFCZ_qzD=g8$#~|+}z!74qUi$2pu{aA||%xrX=$!VEs^(K#Ah{ZT<%H z=DFTSi2a3}qSr?xJ@49`3RIM=`c9(S6aaNCv;$chfU%3p+Vp<)t-5At zVq*11juNboNZy(YTXKak`2%E8+jwg0mSyW$|C0C-_ntYXPY)y9S1V}TW1RzI4m;M0XMJ7WU{`rLk29>Kh|@Uf zomG1&M|bbn{TCG+hn|;G^sn~2HmL^j3b88=735vwTI$x(wwN*xU!w;-#5h@<=35pb zAh4h|YhWpGQ{4>r1Xjn#K0SJ?s?e+8=1D~p%DGBWou(>=_-OXv*fudQ6)9%6@9WEY`pKA#@WNE1k2@fJx2wvCMpIWe$%YT7^ zSh7OnF6g>~3zx9ANi_e|HD^O$_Jg266F-*Dzkp(`<4cp?l;Is@yVH*lSd)-LbblIlJiy& zcZBu$ZvE7q+j`^V@>N^0*ghMXIWl&O2V7)3zgOXmqsA9TI&a5^*@@`Q^JUtpbe9s9 z-NLiQJATZ4lRei!4rIyvsgSSC4->tC*}^R-R#1t&`K`H8JRjLB2N`@KUs|O=!H=^=r0g6n&<2@J!mp zdszVgqVs##891+96ZR!-!_g9ztK0Uydt`dM<#?&}%*65yH*c+-w3s-#$kF>z!M3H% zEL9CRN=tOjxDVzvb1&Ooee=SVA$u;$iRadz5Yl~(bhKK(e*LCRPeB6p_ypp70e@@< zM|wmsK93RfZ2;UA(tT=CDEhfczmuXgi92dBIs#1m{NRTZ149FNybWe9fc`dsHbj_J zpL#&Nc)-V?npqR;3>?lqfOLA1(Cr;2s(tD07@KruSL3$m=ABlKVKV35V$)Cosm~4x zYuV_Cx}b=Ny5Da$5m7Rw`~bbl!hHp7zrDTdHr=dCpt41XuDH>soxh64dVVOfB_|EB zLs~8iW^^-3=~0y{eKCPo@BZPgIpV+pP9xqYg&K%~h2jITpn=N}Mj=vP1t=ST0bKMk zaK8}3?byDZ`|JydZ1yIB`BNB%DGjIy*jkwP{e0QH`ClQ}4xkBmFHfj>e>$|tU^rQQ z-F07&x9wZ~vLwg!@0=A{)W_K|MQSmfSmqYe@Ws+r^3-=u-VJlSYh{>x30VWunR*7b#6V_8yV?*8cEqi6F-0YieD`(qaC5FF-{LbjI{-{KKCPROn zvMfWTnU_m+yF1IsyREdXI-J zyn3~2SiXw1c8ca-kGZR_OI&mFqz`hOiI6%x}w`BpFD=X)A{csq|+OF;#*= z5vV4oj#hkO;8!^s%e>BXWruccJ=+j35HoOyS0CMQ=DhI)XBZs0f-rk+Ctql9+7$Bq zG>iYUIWVr^bTP+6Z*tGJ#4?PKLIpG6#6J)rGqaz-fkC09`!o>aHLalw!Z6au#NKf^ z8*{?(R!x>LU6R&Ici82U(62Lyhvpf`nFG$Y>5wd=T2~fLmm2tWb3>}R6 zyU7m_9Uz&IPy55k$$1CXBFqvmE}O4So4jSUfW0wP1Pm2Ur#<6{2^R_&u-uy2@6xSs zhL?IUsFFN3XTh=y0xmn8xAabH>uKAfdNx+*z#x-bC z1N<0eq^%I(B0aGEh8U^|FBVP6m%~MtMCc*>WU9EEF*;^sW@e83d$$I15x{-j3IXr_ znL5tvSDKd967=B7J_&}>Gz~|~bN_pS>i<1KF1Gv_>_{FD=4E)7jlP86##gj+oJaG6 zW+)sOC%HTN z3;hBQI|6Tw+ht?M2LOp#_ca-356YI0h?eIrNsZn{tt}w9Q1^pQdmp@todC zs(Vv_&7`U0uZYFkpN|#}cSzw{G@fnEb7N~l$6ujU2De2kR+|bATp><59&zWqB&kTq zv$`+BUn2%v3Px!YPrKoxk_jmRPQ-$fBal6m!)^#acsS z5|SxklyKz6zpq*<9ea!#Wu6@B( z12Ofd{A^XB~gp*zkm*eGFAnpR6}++ZI>8WCFTRSBJ$+T;EB z8k7tLTE#GkM0YRBz{hJ<^LW1lY32mgjnjJOYtEM(rZm`l;!k~1@_5VhIM?ByyVC60 zbx5w9G?)9&evo187C?BDB^FSSl0jMUc4`XR29RY>3+5Z^>W(AKE?Od1_(TU@fH%k0 z@Pq3CoSWA_kkW1yI2ONpi$dVSEkjgLGug7HaizTJ{GJmRlY2rTIJSN}VOzA5nJNO~ zUE&Od^5EcLTSMIpZg`KOLxYqmD<$QdNeWEj);;EiJlhToMNZN|*?>HSK?$RK^7!f; zj$97ZHFp@p4MjCgLmwEnRgI2469|Mi!J?s4Rh`D)9 z4qK~YbleD6KK#LVyW zYg?4y#;IoK=X3-7&?`OtlM7Iq#y;$4B0+oL*#-e0kQKM)EQI;Pn^5V$6aP(qhk>7KiI#E1Om<6b2^kP&@Bj;8=hBd zXub1{*CuOK^>TA?OlyjG^k&-!nWuW5G7a&=u%rbmejo%=p{_Qk&Cjf|w7 z5;c;2ZXKvua-54ZEWZ8xLy>XxmyLm=Ow^2P)#~tesnyO;c4qMQ!OVN6`e_}GbWtku z?3L-+Q#2ZRdM#Y~X0AIM{||8=J>oOb7&~F-QJvCNrqFfr+!5uE&X<%#yL2hKW#;^E zk;QZ3(ua;$7BtoSaPi^#E`euwt%v%?&u;%6pW??B-!A=7q|CX_R0sVTow5tu6Ngp! zyR@hbjj1i$VmfA0iuMOuWSSFoW095hV;$JskSD=Tr|!osjN^Z_2Q6lWy>IdU?fjOh zp|eO&WKu&Nsklf6h9kcEZTx>fR5hLy(h8L)gPCrQ?^(c-{`(%3&}=Mu=T_q>cN8Vg zZ(n*a9n?6X9O)Ue)Q7Ln$jimml-yH;w>5@R$G||+1QyonISwX9+OoyB?|mp*%xPy@ z&Qd>_T`KEwug$Zr*v+p1C%jZUt)_qqBE)>rzKU;G29=Q`Wzn%K&&1YfmWFQ-}ktV0{wl1ltGAXoDJhtnf|B=6x^u9M5 zeRei4KbWvko>tbk9IM56C?aB}&bzqdhH7PToJQq0HMXf9v~gG!&7!V{v>AaeF5#3M ze+OW3K_nDi4sl!jZO*iy6gljQ=d8>hI+TfJn zlQF#By!`g^n&Axx=cWs+eqvwbaQII%ln~_jY50qMgI<6?3B}FR^OYlggY2!i+S4aa zfkN8RibT--`cP$oO0ToTF%!WG$MJwfGg)Ss;)qd^HQx|1Mp3*X`8u z{8$`2-HS!te0jk->W@FJeX#U#r~O<_ky{1Pm>91sczwsYYY~+ISr+}+z2ah&p(ZCw z;dkX*_dWfIYOAMR4UgOoEME$nEiuKQkvBbPS>nUJBU>{*St-bDCouvu-)0dJy8Pc} zDh`Fql)Z(u^%n%!_MD@iMFhBAZ1NEv zT<=1&CwsLgD|$|@@RAOY{!(Ak>bmT2B^Q-Sv-FxvN?Ingk3pPgHGo|U;1{mp{*UdI zD;a&*{NGjACY+MMd;7g+VR)UYDQW5v#aC#2sA9FMuw$BH(DnOV)VDb6WF3%!2D>OW zo+!YU8&1vzzu0fEb*rElAAO6)aedPaDQiKKjOf#t$sAdc^ZO3HwWclkQqOiiDC>3V z%R?`isWaqDHgDeh|Gy+THPyqPkLo_DaeTdLMzvLb3>c==#9{Gd-yNqcJ5ttMm%3k* znXid&c{)uy;!26r626aq`}VDYjgvYhX~9Y_#wOYWpK-OmFFO@8FK*u_=cPv2^XY-e zoT9s<7G`2@Ib7?s;?Cb@6&rZ_Hx6s*RGjq%9W^!3M-bwtml-~$!GN4HU?IeNA)V8+joTk<_lwlB|0z(sGV z_G9q%iRtN{fv@0lDJ;eZLlg4gfWz8uJM3XAf`%4q(faRSHEf-oue5Eax-}L%es4K& zeA&5NaE%qrFyQ z{f)s9Cf6e@YP&}`nManVaOG@nyKTj~KhF38-(JyW$?I~h6kK-Sj_Llw;N-{7&VHr_ zdL_&NL&YvE)HY)?vt#8%WQZ$#p;t^Iunr+HKa@kAsbS7xID5xy@cwEJp_r#MfIz}; z)-i-~imdD(u{eKcz^8k~(Zy}6Z1ZBw93=4G=D9%3h4$fk1B#gvjKuTqMk413_#&L= zTXS}EU0uU&MtJm##kngyMGf~mS{ZB56o#mQP3Tz?j6FN7MAhW-RzH6{l+FD6(j3?w8Z7H00uR-uZ-xVSh-|4JR*U0im354N-84P#&)JS zDf_z_a7ftZX*X(0wH|S0zRpAK^y+%%V9;JwwH2G5#!9|(0t_4QWxdG%DpOv6|61XM zR3DLpe&em(HH_@S_NwJq+iaW}AN9wxBP2>`DHX_rf4&}?fW@#_0DB#Qvceg=V(-EV zbDESoh=Fb#Nrn3Y*$&dzzKbPFF;(C2D-yg0?$u8DTx)Jd%PoecPcWzizeRY=~6hl zl}|Cj1Q=U*+F=Yd&RddngEG&u^pk4Cs!cQdZR{tFZ>7w)qeLL)Zck4SP8a%WJn#mz zwbZ|}_o=h9GbXH4=W>3`12lxg&WMa;!_F{2XUS>lQb!A!_Id)!oT8myCZr_O!bQ2( zCf_i<{y_@+cZJ8oT*2N*U0a$mTnM%TIk-g~;mxP!9!E>`Rtpg9HEoDznlYBDLgX*Pv2yTXXX`L`f%Y7TX*gp{)z4 zPX)hqhNf>DjX8ijQ<;bn|(cKxbwgymCm_{za_7{SCjFlN&JsT!7BF$ zMHotR^G%bFe$TB%U@FHZBj@6X5F*DE!J9zjpc@1!^aS)-Fyf6DBY-}FiVj5iqobq1 zNcr>#{tM{)tNLhQxmO;RgRjstO~E6I|0Vq&QasRqX}hWJ_A z?G4H6KAouxzraKvYiVuezL0kDq8ql2B14q2&wcQaq_|-T1`-rD%5-e!Zn1I;$H34Z z^}ix&he+*VeP~uv(w9)^`ww{T89mvUt>b9Wz7V(>QcZ7EOLOwE9Nm2zxK!$>#IVPjHGRz zar*gw)28H}ql`|mWo6noAsOVr3TqncyP!kdtK;M2aR7otke|2l@$ms03J@Gi*%9SV z_OK4#X^`(&K8G5j&O0bna#0ujy8kX)dy3~x6PLOQgQJ~C!93A9N@R66TuP+78#fj> zNv2QS#!1a~TZ_swG&EGy{t9t08HlfBAc_!@NZA_f5wVew4EA?{JCBvn0x?(yKJH@5>cQlw9l1`pCOg@Kws*f3ssS3UAmItH4~F|YRsoJ z_hrd9V%;*AW7i(FgiD^}p@nplh2o1_%hZTUPhu7h$|Wi`b}x9?2#1TiA9yCm$M+n0 zjB1EaPy7!m>^IQYpZN93mdyf_g2fP=+mksm;$sw#sun4IR`Dp$1|z)nUaZ1~HvtUh z9GOe$!iepnjZe%GhwC5iQ|{@bG~jG@Ddw)Ot}cm0?1o9F9-`6kD0BkYXq(4sC1DY9 z{O_aFVPXF!hs(hffUvpn|M+_Icr4%bYxqJWbD=U1MdmT0Oi|`!rZQ$oQbc7)++}Ez znTVnyW2Po#Y%r&iN*N+ULXr|PJ?pZ6`|~`{`@Wy|`^Vn<^WAmd_jO+9d7Q_w);iV! z&Sd-c&X4^NWlnBFlQViLn9LB ziqV-+c37qz7r$heI_B}=RXoOWO(Gp|4c!CV1d>_Aa9J*P_Jq{b3b@3B7P7Ai{xs~1 zPG>LpeUq$M<*B^$_h|{J)KB4poQBHf3%Y#d<>jw#lC3%Q-F)7^`{7ai{XiHzVDN>y zL<=SFpt*Vc0_{`T1Cpy{1g6A{?Ly}2c~uW@@(kW2=bNzl0kNe!qLrcqeXKiQ-h71u z6D!dbC-7YX3X1(|zxIIafTjO?bZUX2+O%<_1L!$&um&zF(2s0V|W$S&f*fC1n&5c@nW9A_45c+mW zf==GkachRg+g4Um&Oo7}!7mdG->eZl2XdP^|}^vm&%tY-4yC<9k1-D31 z>cq<}_ark-TtW>-Y;$3w4KS#mzwX(T^h@hOdomJ<$Ai8VuHiQ|Lzm&^p)O$IQrQOe zLyzOBP1-Q6UqDNZo`;7=k{)^fvE3jweg*sMr4x#TC7Y#-9$lBdnVA_@l6<|1iQ7Tx z(u_A+9>rh|+#ZtB(#$L@8ooo9);(3bvoqfJ4*WwfNm4+W4%Joux084$W)ck-ova^d_UT>D=+@i}~>(eAkb@ z6PT@v{LMi5vQ>Sj_=?Y`w3ys!=Rd$TkG#4e5}pEf0_`}SOunGj#}tkdb*z?&=dH1; z5#>t(Jj3>-shuQ2fdZlx9tbKDi!186XOj>JEICu$~ z+zqGQ)ZTcjIr$#t!mC||JGj85;^ZM0f;%$-3t)eU9&jeIqVjG+Lr3 z`b>SSnr;f~;4SJ8`hv1Nc7ml8Kae;}&m)lCFUW4nzBivuaH+BfMfFHqSkG0~L@Db2 zwFY0-6e&nIEb08r_z07b+h|7v8HiS}Q!7KrHXu$D4PMJn^uTCyO}G@7w_Ul<02D3E zjEp?czJPqgJP(|!!!9mhG}_VlJID99flr2c_kBSvT85%~2W<6qOSVVWjouXbJ^uD; zVnXTqS3!!jKdp&}SqHwY;~6lqfjv^dJ;zx$Uwf|lPqcNL0s{j_LUVV#cME4j5a}&- zxyVMg*#S8ZL0@ACkZv4>C%ePw$kubRJb+U{i?u3wB&a=B~*6_AT!r+&JtAQ~{55k^B->IZem2r+=i$3l-k! zU$bxb5V@$V?(V4EmS29N&C~@tV7+4?w8Kqe+pD2(->{7ik@sW}Haf2KYG@8gbrDF% zX8Z;|RbN-g3~+_xUtG?z6CixZ)z$jH0EJu;Ny!4VFyhZ6|0pWqb4QFJhbSRGWfUSO zUBRa*h-G-+m8cyRZ6WBNjEX8DJhS>cSPv+aDA5*+yO^0YIE=m{aw#?RQ%Qey3{$jf zYd*F`Py;3j*aGWgU0WUgdQb&*OaJ3|K}Bj9)*j02)LRcCq}{ z)uY28^DkC}#xm1VmFsrf?DBvyL*HX!v-YDjzD(-LASH}%yY?q-AhKb*av+bWl8p%_ z4t zWEi>eHyG7%El&RF14>U+WAd-luA!DrF|Xjn5c|~T3WW=POj=f!GTTV0C9Z4(deS%H zVq|2HN*ThN_9YyO`K1F$UN(ch#fjM@ebCa@HUK?&*rTLr6#k3s6vioAie}PcMOD(E z|9_(`!qAV%gwwOI)PT8GjMf&vyV?O92hfXTS>TEfcr*_470wy{pFvk;QP!ldihkDO*#`&1S9fIN5s=-$5- ziX_`e~JLd8OgXFymZl=JcPlcNAqQc_T%{M*D!;Royz zbrKl}#yae#KMB?=J)O58?QS?a$0{8c|BV;liopmxbG)GlHsrc9qQ0la6;8w>T#3=p z*NL^rOp@CJ4Io5czYLwa*x8SR8^RtX-mDRiu;cO`{g{@TDrxbUIYBjpUhCXy^x!r( z(WO5*)xTS4?n0NH_&o_b6V-!Mb;WAHp8dWR;cPfLO8no8)Y&&~9BIsfzh5w_Fci=2uU?VnOOjQG z5RmZ#a?s!mwT3O`SquF7&(46zm~FKS_L$jxd35KJIFIobN}^J!Ii zjqD~4PR{uc)<3;SaKx7IEE=(W+8h7od3Jx8`lA<+%En_Z%8-V)Je-!&(uq_@Y1@!HYC z{vWTe?cO4#H#^Mi>sFQJnBi_v#B_wa-*)n_w8G}Ox@^d}wJ&van7_VQ4Q0oq3yfJN zEEZt{RiWsFz_;V{m?f(o$((Cn0;*$Q;rlWthR9^bj@W{0L`Fr$b`_pQg>tBucYL)r zDn%*-Q?Jf|sql5|J+fp1Jf{b2d@cVPikGL%7wqZdxq+9tE^**iAzF`Wj%;63fhG0c z=@kOR)tDw-Vzsz;5qMNC`2ro)AD_zu5vX1eGJ|3dn^hy@D=cHiF*AZqyDeSy0iYrN z=u_ToW_EVLe$)k4)W9CT9y8l*dr~L|doEkM1dVyP`s`=b^KxwEUkOU;d zfJ%Jb)ZOY&LmjODDa+ckMxHSrPLtXn2w$b%;-FitN5S@5+H1W8`v!*#86D(}Y6IuJrIr`I1U;m)2tUW_hHe7$-zWcxWpFPtS+Jjr;#`dFM-{lZ*=#YohqfB^PbMCCr3#hpe z?mbTX1^Yqogr~{JbxtZtVCDkn9E6nkgoIs?HQ|&a?fSRg4++Dnhrp2|M?MAs7Yge= zYlG^pIp%e~poWIVlwgv9gcH5W#TH2=pmRK^eQrFQ7`3b^t{*_bdopBacyhI**F}~_ z9*(46x02P<=DX!imQl6KpZj+T0D+ooDwLuS`@+_s7XmLxoMxa9pUi;0&k-OElRxjk zp8!UajX5QFqs=WX8??hCB1E=s?F?ANnTTLR#rbDmfY91R-cHaj_|}$uoHT;_&u&}@ zcp!jf-Oz0zgJj0UF=b_x%az)fpu_ZsbA)&3LRzsiDK~|i1cML)sb`OA9+@ocI>Vto z(O2DF9J*&O)ZCFT@{s#z>Dtz>oG~`2~NJw}p)dFyvH0LTv8%#p3z|6gU6p~Ct zV&u?`NJgRcMk3sSKECU%O7Obs@9zhi7{j;g!^coFef>+jXi03r&!+9S)Xtp;6TA5p zv~ck7oPshkCc3s-XQf_Q>a`AQYVl9I5Qq9F>ALfNWm!od=P+ef)R0|$+>7iZWI4M- z%Rj!QSwE;sINSp}7V(M9hjDMg{bwpCBV;F-4-_>dXh7zk7}bPoXIg0l8xD?A4rlM5 zy-xF*EGFUEKraNJ$RB5aQ+ZrKK-Px`&nSveL~$@%3)>!xN&Ln!h$hXs$Q%o?gLJ$Z zUagd&@GQf>!*k*_;uYFg1-#9f+poFw@M&%v1deE9`8x09pS^2VH$F0UyDnTF6V`8h z!|CWWt<@T#Y1_1J*fpFDHOm%^_I!MA?%YL;3wo5 zOvsJ=VAF?N2a66z7`?so?|x+L^2e(@t$hh^K>387pTGh%^7KO7+dZZ*4{Gk$N#YL> zbSKLHFD%_=1m~_vZhzz=1(PWVtz9=So`sGYu1Iqnn%lRNvr@G$q29+$6`;{|)8*8U zM<4(FSPfte~M zW}8h~FF!z<=+-Tl`u8?r?DEuCAt?gs;e!M5YjJoggXhcG4g<|m;$MXJ@IIO8{%YD1 z6CN2!H(fz^UE9MYD2Px9v7K>10BP^m8}V5JE~BqnS`@17YXZTYMX&)Iyv3RZ^D`_< z1RM6j@0l$KG5`m*tXAZ=b#C2rMfSj^{m}D$%g2~0tqy&8b#-I_T8b@2&vH$pwOe0m z*y?u--_tfcKr3NaOAykZf@Vb;k}1^~ow@DcnUlBWuf39$elEV&L)Tn26(Bm7^U~iR zPri^ANvJCCpJ=@R;OvX`CDL0D<^&BMuwXeE>by%{{%zM8>XJ>kLPPD~qBcK04ADPw zEuAxG{>s)anlJal=mDYV`n9dTzP>PyaN4U_?F)4(GP99aX{6;H(o*>MA$^WugIVO? z8H=KdksAQxK$k9ngC)&hPW--y=7e&^KwyYJ$MpgP^Ky*=I!BdIOcL!w%?8AuCbtH^ ziSdk~k*@U}*s)WcAkuX{rDl?#%;lm%10!EIm2u*@{=ayi;NYsLk`N7dRzwd$8hZp6u+PgD1(OV;B7zbrzN2uB-7jI2^cDBqW+Y!&bX zx$@82m1T6)khY+6b8|Sl>x4*#0j(at)5fwf(GS+9q#Zx7mwg(*84>ZarDF4AdFWiyi817MyxnQnm-~q@bmL)9PP*gYEra#2vKn}AS!^>BzpEn zhc#)b%1iMs8muk4$FBDGI|+rKU1$J=-yrl>t3BPmX;&fzpLPnh9AX?-(w75SiMSP_`gT z<@#huD3j!S7-nL@hXwsbkDxyUP6?o9_zUT@he&59^AVQ{YRp3e{;(w*Xcrg%FB$Pr zmedmCmRv#I*T*}dfk^-PXAH{sK0qRXv@t^QJrf9IIq zK19k4{roeImX=$$cu`K24@7=LaoZ|e%d~D?-ZU|rP|m$W2i~<`al(YdQ-G}uTwCL` z3wPW5f1rOzw_lvP@bGZl($_;J0lT2@3u*-L+Qp!0aH&>GZ0Rg^3`ITCjbs#7zs8|t$H8Khd3j-h&05^9-k75wIhDD(E(KdL!^?l)i z2X!=P9z21#qq+3Q0wvGgyLXwtoX9IfIM&aX)Ny1eDfyaOR1i>-u0tj&F8-B&&-W~- zy_wOhRBIgJkN>5Yz+rv%R`H2hd-I4x=BHOqe!rQ?5hV1pLe^pVaNoN}PZa}qj?~;e z`IYLga9(=UIRQUZX6ie4lF14(w*0F3Ft)=$bT=Z6r zY=hGaU%a0%C>tFeMNG76ia!c>C|%u1uxPvdi>@C4c$u46RACb3JMRBXEtrJvkNVVaKI0Sp%3#P$^_B+3hxhc7p(Vpc0Y3s7_;J~(h*63``322%0S896T@BC^-q_5E@-WgW*# zO&mkadnJblVZ*#hA~a(9!@C5Dyz(7XA^kPq)!pN2I_6~EeT$3_9OZha!9fuidjA-W zLJzW=u*2H>ZIPfAu6be;11G%Ak0a2xd--JEz#N+K@Z0_@F-)S-hHn{bhl0O4| zXW(!Uq94Fs8y9?1=o8##NSbiU&jLn8=TFKp{J{#xF8|qV)Mgo)p&_`W9r$ZeO(V7d zvxI@=60$<`?vaAkgaKyr(DNi_FLzuXel54%;XaM=J?%c8MV zmF${1(qs6x{GDPT|DGa9l?)#JfHX*UOJOsJ1hO*)l_rV}CGS2p1TGvEAPqMF;J|hr zzxnuS8miogJzOfCh!5B{ve$s8G3{{2mUYj_VM`tdyDksOTZv=>b~CxkR4<-aU`AhEAcSja_!^yObm8F zU0>&rvNtG(Ib|{P7jHW5BDW!RioUUNBFCp-P+Ny;g6GL@7tj!($;g?yuho7VqeOWB zgF2I!Tyx+e=)ja&sKq5{xNo02vIjJjRDC(vboTb`+go&_d}^_(a%weRexBkPKu{5M!r;L{3|k`fkf#7G(=yk`k(ZLrfY~8-K0YOEhw%sy zs!VI>N5X#|jhiQNLuf300QN!Z&NX3Ojo<70dAJrAu|eGM@%0dDS#9w4s8U{A4NYj| zyK>E;6Z9(S3!>Sd??0fvw#&Ir2&st9aK|+zZhI$0%wmO#kqbx z4oNgxKY$W6)Y&KJzr(RZNMk|Tj~omjZy9~FBz#T&qXp1x*CH`&9Ijo+JH|ZU;i(pv zeuiRrePBe!#qe;DKzboGOIyY54LUa7rZCv@{)#Lz@-@AP{6Ye1=(^}~p8PFd!5lg& zwI@Ys6yAu>hud+jjD9|!rl}}wLuY!W%2$C@W&qT&)V;&R`y+bSq}=a8w3Sr^&rdJ> zto_o)%G`tcOUAKA4VY<*H~#b_{OK-7Me!mTLjP!+_aVV&&!3Czh1qW`;w)RMaNnEL z@+@OM?MeE+QFNmlsOot6BiEjKX`0~I@G!Dp`)^E9=o3IO*2kZ_j$EY9HFgkLK&ohj zWx7Jr3Hxz23Qt_n1fPMJ>FDg3kMj-}mkQhq_+R)Pwm7~y`!i0M(Jc96*fp0ksiFv{ zm3ndE(vDO1kzwq))+YD7hOd*v<;%P?th5ssRPPnfU7g=OXi!ORm5Y>!A*-_e8Y9+ce7KUrZ1L6BVJ zzj47UYUytRsPMp_?_uVIZTs`hF_tF8J!cxx+M{Y#J2Y(|wZ`|oFG1f2ZX%*{_4|N0 zAiw@p?5HX90!ZQD;2=qZ-n@D4dq+0lLo&YMs}S2tD^r&xB_trPA6|3q(H`a-n)Z0jC0DAr|DtA(7p9^7 z1IA{0AE0Y79tW5WY4?V_18OR=2Euj}6&2-I@exFiCeo*}%4_EtSXrM`uA|(sotuhp zxO&3$V%2yYxv*<4rHS|NaKEV`WYgfyy}ujsx^yjvnSTh9260q%8&|&wZMk>B$86bh z7eoR|MeO6ZXhlb1u7GCJT(NWRDR7uoct%G{+f2`xqP6rRnFDvT;oz{c%J~bdf5n7o z2-9nHPi5s@X&>$`iu$sBa-DQr(tzcfHlgC6bE{#DaAHJ8xRKN)$vRYdoR;)_eDs~D zPp=)2*^Qj(unwJHsUfwXV5qU_~EAP0BC8V9-iAw?Wm$ZJyKNuYH+P zkUk-o;YY{xhAF40c(cd+zCq2Kkc=fJQ%#t3%wD9b)5UWcKf>+M$bVJ};R^aD>nGXn z2zw{c!U^6JcIm%!G?&C7{21HVES%SnS!L&~wPB-5Ro1V6+?LPp8BsjTZKw$+smc2x z{V^i~*S<}oF8vg_?oE7E<;--ACKGW6VhE>5jM#Ma@ zC5Hx#7Xbd0R!aLe7s%T}A0w{dq>`+RuWI3T5<*P>+^_rn38c$Wjb4UG|748CqWfNN z^Qz;ZuU^pcbt7Ii71)ybH<->YdSo$nm=+O$-gV5XhM24p`EOaq&+aEbQ7}C&aqi2t zDoB36Pi{YyG*KmBo4+y zY*MZP`+vUQp4(t{0G1vYn57(9X3DE*;TR{$PG9|W4=P`TTztd*e<%P95ljARV+~8N zhNP3ajEsz^s5`vik;+M&9S1i4>eZ{>>a+f|76=b%kf5TeqT$*?d8S z2@e*H4g`vpSjt6)E|%XGj`Bv#;eDa%Mm3O?GC4^ZJQ@?R`mmPRg!dTW;Nln-q#c zzIg`h03m+v;(&%W6Y$nM)Q7;G62G|RAqzo%xd8V27H)ai*WZ3t+ylz{Kbk-wJgAcI zDR1I$mXu)U;K0`FmrRxjzB8N8mB|6NkB?83xM(3K#96Y%y|BhNrhe|}{Jw?Vh5tE* z)I!A?|2_A5IQQpC3JgMn)@ARzy4RrGcnC-jF7y7t4)Z6U;QjZ=Vth;1j`cOMmX^Bo z5Qc5tOIOt>9I^kQqiom(lGdl(n1BdwR>Xr6SWw)Qv@Z7Vxh>stWHqC4ZdIy9I6300 zASX;D7qJ^k4ZP`}10_(?plW{V2+0)L+ew~Qbv=GGBjcxpvmrt1E^!VsW7h2-;!L`H z=@Rb8DLOarbJeBNRss`a^;06)bS{H)wZ{_ZGZTl zKC$W!X^V*Hf2&ktK=Q}OCZaWN<6W+8r_y?is|Ugrsd5V^?%fM<&+p$EvCpS_hQ`L9 z@^FRbV4CFfz03hR4*UK=q({c|8pJ-eKwyaBY{*0(xWAeXc7?(RYFy00A_f0|%@|gB zFQ9(`b4h@DNa*ARI7?*WhXxN`(<0wF$`!nGs;ld3Izmn}dHPzarZN~kBu{mnR@BPv zwe7B&rhBEZ6m+&pk~&AZ>Wrp6J1#=eLY`_;ta~4n18j^Lgo3ap05oJn$I({lh#!RW z1`}({H6l6EvFNBPSH?(-lRFO|VysktoQqeb*&PIUyUCQwkLaDhxHx#)A`Pd)u*!hpn{5Uv!6$$(NpQ}ItUXwIgG4PqOfhG{y zCUD#e9Jbk4FsjU7LCQB{nLz*77!gNXo)s|@LW`7e%O{t!A`_o;*c<*7z;QmeY z+fKy~wGa$zsu3HZh>0Ws$^;Ep@4#yyAkFbPKtdkYe zp_N)H&gUq0Tw3DOV{b?wfP5WtJ+WQN9p_5Vxgg8G$i($Eq&j3Nh*d9{GpQNobu$)% zR)&UGvYMb+#4b8fs4~~G&dA9$`JId{SvGj>OFMa2d4)~o{5!g~$bN3tboS*)>*1F4 zZr>{sOvJvdWMYuHK*Hy3EZ7ZxLW z$YlhY=TkeC{@wg$*`FI_;b{^8tJ|S8Ku$#hv518ejca$`nwtvsp>Z1WWI-6 zMfSo=06B|uGeGJXPUin6XT_lNw*WV#KnC?E#AT7a(W_^_{YA?Kf%KAo+9cHj zjZS5W#r&pXx&11y=#}OgmVt-$56lpL(%FMr|C1kYEw3C1nD%^4z9}{2#<|wGzj|bm zpMP&G22tIxbjOQTw9CxPtFWpcXMFm?b2D3usWA5B%1i~ab&1IR;1`*?|-~@o&8p1pm_) zz6}pIGqU_Bz0fbPt?>BnlXg{b0HNs>CmQpMXoe=~ni{k|Ych35eGRYOiVN{*?haPs z1McA|SB!pH)fwYLBInulEw*I98wT=}O(ew&dBIM%7LJO2;o?KXj@wpG>yOeiT*sbc9|T5pYsZ0^Vj`H=(iP0AS|coI8+B>$5VEYfv^Isoi2dX5RwTXhvYo3 zC+BrwNR<-Q1K`k}hQ`Omy)BpDAGsZ~T15Znnt#LDEj|Bg-S`2Dr$lin97g{>Q{O}h z?QCQwD8_Qr2T<6M@vXH7y^XkAjtEiJQZALM?Sp6A6 zECHnIoPglvGcatRQ(<8%-{Mta76xu*$MMf_E-GbM`^59TCrTL7PUico@KeaPrY}6T zlL@T9O_ksNPa1M39qZyu6&YtDXz&ChA;(4IwNmc=Y4z)Vv0?`e482de{*V4Y58Iz~ ztf;~rbKF4I@MD}1KDj{c9!>+0ciimbFhFU36?XLhIN#h(W_8{y2Od)6R!?~Ql=|;8 zT^?(*A-Y$g=Lk-@WW`vW<&=#ht6@<#X1C&WerxO504m}jLuJrR{`=#E*9dZa%qIGR zcmgxJ*BP1uxaGLGJ^^opeMRrsy?Q3|wPjG-#9w$`W6L;|rjuOY#OPHyq=5%!{?QV*J{#kBZ?sSDr*PY=10a)1ZEHC@O+($gLS-9TEYlJUlK! zOzjH@D6i^=mJ^Z6A-&|8FzdLe4+~EcdH0{^sIXA1AWTIrX8ET)7h+tGsz|yg(!fVA z>=pd%n;2zgN@)oXa5%(NYE`8yv{Q&hx?Mr4S}X_BFW9U2yvvpVI74KL+|<3bbLmk3 z_O?u#7Xoj@+P~|gXjFYN%rWj>QVeNkU_Hnt{4?}&?dsMdmf;VVz@Z8{(cHC*+G2@N zJ#v8IaetfSjquIYs`+WBM?{$F*m{`J`SkH`+Ff0LQJ?lN@1E`A%XV|J80n1PW=}^{ zk#+st7839rLPl*6cUwbrp31lV0>`Su0A-(;Z|h(8qIw_h#|`11y}jyOrM~^iMgpKA z{~)<)_PYYY;pY=A{x}; zrRjeDCCWA<=n@Q`WqK@Fd}VP}18%BnGXf3$x#{L@i1O#rlSA6P12zFcPflzh9jibX zfwuxSYi)jvN=qEK0%hg@I7Ru+3Ic-P3f1d%(^FA~5G|4`{ibnecL3Q~mvVUR1v@Sm z)f_$MYe$Wd8PWvK4EDxsgNXW|OQmrjIMj0xXuxeT8!j|G@U(H$^u`n!^bJBfPC`Zj z7F1fh@s(P8L7nV`vC7!q2mKbHLN)VCAh}R;^wBtmZ%`HNO z8n0C_oJ|kYcHxN!MUWhHI;cRG{ywRl2@Xb9)hWgGq^e5olK_>GoHuLwUF#c8TcTgB z<~>A`cz}SbDD}mDOV%|!a$GWqntmJQ3#(@<(B^plHcOt;;PdCt3(k&vst$*0z^x4z z9rPPM08mNw94JFI=u+|6{&2On4(5UMY>}>Lm)2%WG(p`sdGJfCG!LbC`}j7c zg>S?ZO@)GjN{+vX4IP_8!ONWN?D=1Z;8V$_?dtBn{4sRNWfe!*d@hP=8Sx8lPJPs z`(Gk%^}&_2UAPaa98!BSoOqT;w1AtSPksNDG)I}ckDeN&10+nG^aT>3Zrq2}tTX6J z!W-y}QHGTVwqm~>ieYkS6nInxhy!2i1+~YY^!}TgmUhfzylUxGZp@Elrh)WFTeWDA zVlk=9sSPqwsfmT^SStVEe6u;>*Xj?s+hCG>J=xie#X8PrTVHJ>8%e-Iuf)#IUJ(4G zynGHS28YOh-!xZLQK*38*ayKnsFRTGbOZ+wEkbV`&;(diNXu+PSlertet08yD#u(N zXatJzNoVz=&*U_fJ2o~pwjRqt&+;Z-b9tT};dia$ob(bC#ADE;XUevJ=YXVcKOq=% z_n&Pmga8G8B^Ro8{#sU#R6)B4+a08?Ry7My%7QlQ^bYo)RGo-r_i zEZq;~iX5FU)Oy&W4{BcEQ$<%dK_oWja+|6m^pq!Lw)Wx1&;hp!3K-~Muja3wxJReD$A>Hr8&05##kH4X!yOefm zYxJ1AbVfIn>?7MF*V&;?@~-~3q(6&MiA;=)eie2gH6>SmBM(ISbrP=?iPG{b?~p;& zCUn@Jc>3cp!aoQ4s-TZ`!vNxU`+L9WIKa=9&%bBDk&&t{7}PKE3$ssPTjvBV4YDfe zRU}tFpnNAM2|_UiB;4}A-g_5F0ODHI)vLhIBmFuRE?O2k63N9|t@YwA1|tKBNfXVa z9{EmnrzmP`^ugJZ#mLbj$>*s|pOAm7nI653DQR#eP6fLbk+B~zG};_caVWVr)02A7 z83gfHkfa7DN3q?3zJVNaiIWMR*Mqf(=!p>&Uc??`vZ5yGa}XzBv>*+BUEb6rFaXpN z$lk`V2%Vc-TC3HTbf|O=In^BJ(7V5}{$AIqyj5b2H+sDkaSewVn}Ux_YraGpl$=?c z3JdxnTGpwzI+%0(Z)RNJ>_jO7$2uWQYPyA%3oIiGmx3$yrqc31GQWp02l#P#Ls$jY zVU8Xz=Wr$qGldREJQG`@h@7hzviKE03m4w(Ge%j<5Xr4uT`>?2bU1FmzoLm%(mytA z*syhPq|lu86*!e@N9KEFonJULDDLFldj^>&efCmxdGceBA`Ys)D9gg_y_> zNz*V~(hHF9g4xy3)U2(XmP>;80@LWuAt*o>gds>g7zhR{mf?NOA%v-QY*ouz!l?}G zHaR#K2CrZ)P}ki)A4gVqP+e!}Rzhw}r<|$w?>MdeBjqdaHby!*n)IE@tEAnx!R^mr zn?~x{N`dsi{H8NrlS0o|N)!&?F|_)-b=Z6IN{@WCrobrAZT6sNbtiS=TFmT=h7}!W z`BHy#>6R|ApNC~eJ~%@M{$PALs6nXEet>U_`z%4kUc3U!jguf8fI{`6G6#`p2W|j; zx2~2$fW&I>q%cSP_5H~Zv%@fR`M}!8hZNWt*-IF=InKB?qo1aG2Yx7jM_seZZyG%_ zt~_3)^0MHK&C14du~mjs)A=8-&jOH!;58ffH4=!KkvZ%n_-K*CoJl$N#AB+}F8nvU zfd_zv^M-B+mo0{9bQam4MV1-axwL==XApN8ad9W1TmAR%>2xI7?{Drp7k>F6w%mp_ z0q*nH$AGF^_KZ^KX9@`>YAc z{0=4r$N{Jp$w$tFAS;6RDYlIplarEW&^QWCbk(#I)Fh^g`T6=T(w}bR^9K$|9u0JY zEFuX>NJ&Av+A}oq&8;`=V=(G?j{QD;L+&Y#XJ~ zD~hs=9t+UHHLP)Ws|_7hybTR@lcV_%!z93UNQB6>$0aMV;2abb1O?9N+ONyXKhX(l z?7>eoLCQ(+b%F{<)1}+WEaY&=k?NtXf>5ykSS}bmM7IjO;rXaS=vb=OJX&1ulr%a^tU*?sm;U(R;rVMFHzl8o zGixr6JFdiUQUllJFvUO$4N3pQ#r+U~*CJevMLRzBf43ZL5 z32)i4Bq4v|Vn|9a&+1S5Fndtr5%Ly}Y`6Z4;QNiP*pXyY*>!9ye<0SRm*4au87=#iycaO4;6KpC7Q={Trw+_L5=N}dUwxeSMC8U^Swsz$lF57Hn-3~hA z)!v;uhL3Lv6_m7??gsUrbAP68(yMn}6S#Mzuda7XWx{w>c&}^qi%D!ryEZ8vY3dw} z(>B#Xa#9es8`O)aTTEG@I|fYv7&Sfff_;DR-%m%NO+ZW7TT7b6|7rnh`7x#z0u?Y7h>^3@kkyCqTJ?KwtFH$1(L^qmOTwLYYGT}sxA!Bb2fZL`+PXv-d_>JaQx_liR+}9MpzN4c~WcZ6#S0I&k z#OZK}(lTOKnYRrR7m;|D>>{r(GE>A=M>^Ew z$_;0OdI*BH1&FL(c^j@jBh{uCqIK{1##c?Dw^{(GQ0Lq) z4F@t4Oc!*bRot*OGpe)re#^pRX(E%F-0t2ujOf!fHZ;6}J`0GN;TPKW=~!ObssQE_ zrCF>k03Xi4@^D~^rG7d>zs{JYwhwb?qJG?#Z=fkzzxHo~gt1w3()qNi;`?RaHxMZ# zP;+A!y1F5B10RO}Bz-9F>aiZ{wpeAHdE{u@Yy9k!u9~a({GbbRdY3)c2e++;(NZ`z z_5CTh618?>7bkVp%STT1S6Wh@pTFzRdGF3p3s#fR;z3#Y=9A;{^mTv;7bn5J`?|Fa)LCufJaLy?a-SoI z--!@!){(c#2N0Rq*vqrK;rhlc4&baTvjHUH(&IF5H=6Ms|TOxz7q$G&g`e+xL zhDD-kPf?U=`X}iEIZY9p2Gy((b*sMT)C6TM3BM>I`iPJ}%DXFQL&5X|&m%Igh(3!& zgOsv!jIMWQ=?KM>&uKf4jPIp^J&y~^5ti>(<=MBoeLYtM9-oXqw!iPA#jv_4K?FcV zgt?1wWpkK95!1|g!k^pgN!Bw7t)%n{F`AoQ)qb&t!yJ&UJJC02YX#b^FX1~P(<-K5 zmi;iQFDpdeYRu)oKgw+t6C!=4vzpE{CR*_yk!jT0<^`gBS{T#wez~U?&I#T&j9M93 zQz*1K;*P?-lkVRNn_S^cU|&I^zQgLk5ISMbMU)t?5+q)AmgjpJn{%s9@hfYzq%z7= z_FL9m*}IPs4d`#vo-gW?kOo6Af8%P~pB3~a(E+zHCdF+a7F12s7p8c2s zSeBUl)?gKBG8X`}VJohtX6G;kt9vU4AD*{Pp83zzY7N`%&YTbFB5hbqboa9m zq9t!9jWn)ZEx%kRwB6RqbZv!#yRWOaH=F+NO& z`^7Go7=tT?8c$#EANGcoJ)CL_Xq%tPckh4~m#8 zakr^iwa2dmx79VwIeJkll{>EoL*t!fqwY{KdzAENviQ0gk92j%3R@iXb(;`F`?$HQ zGF%n+lE7+ytj$R?ha~;?qw?P@U0EDcU2Lo}Mbs;=65`$6SScRo8$_MvP)kZ%Y40Op zMMr#s8%CqV3qQcw&Lz_(Q(A;EZQv)6tZj?7-%qu8Z*H&s;6cd2AL=!-sIbLs9S~_} z&)jLp*YLH$RiV*@iX*lAzh|et`x%t9IC}^`rX(Jl$)@Zy9Yd#R{8B)F*BKGo%ERxn zxyAd$sUqJvEn;6uu;xpCIevU+xKj2`%H6pnizl2a6gYR(N{H(Wn1doWzc7?Nv!%>Qm%k88=`$OLuVXh%*PqZ@}tXY z!{{|!J@{v{QH&D9X@tUc+lr~h%XXqZuz%6m=vWk338m{>&u>JW>IIX?HBoWNF`{Y$BHk7ea14Ar!apF@I(m8)u zoYUUlr`SNd0=v5JOTWxF&7WV1sXiMMbEk4aC4_pNzwmWowlx>b%+~NTZio~9bX;E8 z`~>TsA#R!M#0@P!Za-r*(3Up;vraJ9d}uHA^qmXVRN{y8x3=!P(xfBpS)xTxZOt*n zy;~-5xhp5I!%q3ZQy_$?^HnPy6BBI)`XlMT(|+Ef5#)t6tdOwW~uItGxQb_Na5tpWX&Zea7i+JJvHcHw}!O%Nq!g+U64b^@(`hp7zZL z3Ce{Oi@KYe52j!Mj&x5jtIZLaHf3XOKsb=8`u6iiWe=Ytv{K*+OR20p^TV^ZnUpn- zo1EC#*v7;ex;QanPR|>Y7$uMWTkkDKsoG$y8Uke@3|&-+^bNt|3> zFe64UMr=M$qm^W9*&rkHGpjRI;{kJmE{Wp+$U5-AJ!!r&I|9FRj{Kb+Ks;r}O&}?9 z?QMQOko6-u+|X}g+RkB_FuvWiw&wZmfLp8-^UZ36wU4=8n>}^WaMaF7^QM-rm&5+P zr+2#Hx3&UrUHKIgnz(%Be}C{8JZSFknunyWa95xQuOf}*O8tXYMgbo+W&3H1Mcp;2 zMGKs+ zY8c<&NMs^B&ciI&!wL2Lhns4`!p|xbc)n%L-}<`$ri=MkJBJC%puy9O+?6@Q;j`|@Qevcx@-!PJU!A$`o2=Wlk3MX_3C!_t)!D}#;;d8?QR}871*gl zJW$ypayOs^m-wt{h2ELAVCL8`O)iyn8IR3#!thfFq75T>iHFX;bjI43z<}UY65Z0x zL(?5}cF*LWaIEXBJw`?J`;M*klYHJuBhy&;;*^wxi|q9;?~`t*JYa?mwmaqu5}!*> z(TEm*Jl5MRIhYlA^WW<$qaS<1^ts5L}kuZM@3%GZdeZtz0NpUbqLYyAzjkmD&~b;ISK4xV>t zbC9Vm{TSn&+rIS%lt~1=05;^CsB9j&=H?cayxiL_6Wp(FQt01cQdvq+$~IdP$@xC+ zw?niyX}P6j*`6hx7`^_PHJ|oRJT)az#c(sFqBGR? zrLTfm7-p9dbuuRT=W{X1tUAR}Oet-3{j}lKO#C7Lx*yP! zbO@EmLA{CS6*{V}2>iYBYDudNt6!^)S-$Z0!MdB|J9?CEpiyEhUn`#40sVp78$ROT zpt#^72Uqx1H+^_yEuYE;cINl@-ji=ztAu>p$%TCsAU_uFH(LxCo9XxQ%URr~oK^Y$ zcZ0^vPZQM0a^Ge~+V&Ck4_|V>FgV`GR}&JflfCl<Ov=3%| zPu5(yqQo)3)qn1x{sP`Pe^ejUbszJD#5K`n9h_>6TxoHf27*)om8FVa&~~ zD-xC~TgYc`D&BTCoV_05=yEgqAmWKhM!q2Fp|%2WqJ5s2(=`q|V*&e8YHbk{Q)$iQ5i)-`+H8-Lq#8 zy$}SMi!0FY2I8~o))jVBj(&c4lrH8}o3ZWP#^&hxRGNm;@8(>UJ;j1td}|1gYs-8- z%9}JwBMaoX){mVYKGE7j8lwDJDZ>I~YLlNLgga7d=Ys;@*~%=}!{%RechyDcHzztz zg=DwhM4J7vmyt(grL+OsqlY53}e{Uc`5NUJqC0%8|pm^A6X zn1av8Wuy}KCWyQ33^e@&VR>(F>?UGjueI)aj^ahjg6);gM^nMPTK(N%)JhPBb%nD69yhLVYF?-O`n;a z*6(Dr4R@5*T7PhB5Y^^J*T$W$ZXD|qHZ>fIhl&MPOePZ zxw(OhXm1JvHxD&*9L(OJ{s#y5cl7Nbx=b9OoB-GLL)p8}Ye?-e)9}s2q_@Xz(@KYA zQ8>5S9Dj(OaS~qCvS>R-H0`n0OxArmX}*y zb0lF0WxI(Xq>ZLrx455iEN-N7A1H1%{}VKpSvj2ZIjhg0TMqTDbhv*hc47HOytPd@z-WqtJXqj8KpL&tL!=q85OY)<_ScH}?7Fe^*#84dk5 z6LgLD-o(W9AIZeErov8~NqLjIDuTv)ip_2*GSm=uciN7p7x7{ov6Rm`QK=AyGrw4D z4~n*xFk<^r7|CrL2qptk4@*ETuz9co2)IavTe}Z3Veo0>a775CmoV`}e903}jWj`W z(OYu#DOG~Q{%FocDr$xA4tGm0==x){z0>;Mch$yz6bAXFQkJVNVi68?#fYfyMduD4 zal=|Z*IY+_Z#M=Z5P@Wt4~B;vxrlawB)-AdEoe0S0`V#=0nnzFv@&ibv(;kcsVX_uLhKT2F)I)*u$hpcM)||cD{=K%}>^?F?xFOU67FEU5=d>HZZjR zd35Mt!{D!!v(GwCdw<2Yaw50YE%X_p*&PnD!*S@!;elL|O?cb3Z(wHfrcxL-#fwWT zDJf;Sb7!}rT)1DzmayT-!hWWbn+}{@s!?AW|5SdbO8)9jt>vFI^S$y#Fx8r?Z?9$} z2t-WVtfS4D;&yWz%Cc?3@!YcdDghU53s>>!r^JO_mp=3%b2p993sh09wcIMg>=VvH z7NInv)%=?+wh(L5WFqv6)A)_|uu>cSVx-Gds8riav;A2{((1?WcE9}Z7qeAb>#K;%+21*Z)~du_qs6GIKlaw`B=g>A~OgB*NvGh#3be>sG%8 z5(ToAn(Z(|%ev75&^X70F1iT40O5(Q<;`Au8f1lp>N`}!ZoH%U@xd}vhR9SPGa*XB z=5+4S_*q&uYBvF+U33SyvQ60~_thIzmmT1WX>{prW@KQHIBW3gunHl#X7%*LOoKrP zlK`(lO1fE91I;oD3ex}wA(vSSBgnDR17ySn9tz zEJLg@TFTqkG<)cutRSJQ;KO;vC0o2}MzWka;r-F1uC6X3;{dZW&pmv&F`7cjF5YQ3HW?QznfQlePTy5wIJRUH_sISEpE$hx>eF;@qbbF=h0MuZ}>3&GLO|!nI(smnam_fqoFcS5eh{S zku-5CN>YX#Llh-LhDa)8JL_rHC8(hueAb0YX}6thF%ZIpngas@dL6hb z;4ZK)?#{QCn~msxcyvYc=YpGTwy9d%zKSFYS$;pZ??Z~+zgPDCIM#;uL@>|(dR?O( z+(os$DV#_e)`}MkB4*4K#gZ%6RrhBN_X3d z6mBY&gnu!p?YgIh-G;~}1UgvCU}zCfU}~C6pQy{2M&mJc0=o65Ew(;jJKuR;s7N;Tj*<{ zz=?l$`NMNOmaGtjbAl&^tY57QbUO ze*P(8q?tdg)}_jJZgqkvV}C_0W&eK750};erAO+*RL_f51!k3VU-+S{S8`f(3wQH= zUAKZZNami2iHW3vEfIihlKJG*hY!4TjAJ2A1vp4j6gSq0Q2@>7g9r(x(ZnVC#5`k- z@n+y{y%j+_FgX=T16dt2O*o+PB_v(JtvcLU_zJ-j3LS59EJPQm7eD8=l*>iis^p=R< z?FhkB zqk!x3uP`G}7-2VAhyL**Ny!yZ-oA3>3he5p!LHO9zY@-^w~;^Xv}eSkOdhRcJW6X} zxQc&F*PL9#UZ&Y}rNiOmg~v9*H#Lnj)j<|5y2%v%j(7XLgvT8j8%V2S2H_CX2bD_1 zbOKTnbv_g&NUA`4BJUvr;v5K!P>!ds4G*8eQQcJ4^ey~XCE=0{y;#E=gp><>4FB$m zag@vWqv##>AQiQ&xkl`9B(99b*sd|rx3M@q~Qy`uR1_c8$~>S zzLcc0ZlRyQ8;^kgHG(?~l6}At0ii%zT>LIhaIl`KlC_gl1qgM>Jv#HP2QHtI9zlnv zQ!>frL1W?gx!maqvnR_QHNQSaIc?6>yy`_;`1=ACcGXiY{LR83pW)^0v#Le<%ZjXi z-xl%k$bSA>CZkt*w4brMyLvFI#7^Yzx`TcWt8jS=eu~?8vEY`_wh}#bo`Jq$)`*Ne zGoMsJR}44!LQ@SyvIIFCX?21Zl!B%!k115)*-3a95`@u^i{+ey>5P|kY zN*+l=O*xr4JGD6df=?M5L4}{Bxo_$NF)=jeIA?ZxNBG?Q^(p9%R1RQ)(#*GLvkOXw zh)<#F5b+Bd>;%x|kVJAT zHJQU6UEiBSV)C3`?|(eRCACs)s^QTUO{HuFM|#g^?nl=*NvpKmYMS!Se%C<#R`R_8 zGhR6By!0#C*?+eHR|zFI_3FczV0v;^a#*u;0O`+&6m)qr!i)xz7AXV z?RgX_l|NtpF%?p>ZME_5MHJ&Vl9>3DZ<3_|x2%6+P3J0{!#$gW`byOwqCeM#^Uj_- zCt?b*NVzdj_z;Uh_8t1}ku-$#^~ssnnn5puK=BNQExVC8#Tk9y2>vsq3QUb9sR{yH z^FFpve-MHqlaCIMlv&VMR_6cuedHnLbBIqBX0OX~_g}_5Yj(~j@M~V72z|QHF(s5; zw=5?$|LH!>M=y&3(P1B(h;!$6+LE2hui4_1vy6lUkG#hH zi$qj468gW=Pz&Dm3iL=n5Ta1u1E#^ZMnGc{%A@LAZxhpJ3>^OXZ|h3G?cgB*X`{tJ zOKJzyIZUI$t~WL?AOiQ?ySd?oX~PwBY;v()JrJ zB7`y6*6+w{aeT9!00`f1A$aCBH#fJcO~4HRItf8w?P4ec-RLK%&4`yf*o~lPLIY?o z_9VFG$|@>?<7gSCkR3rkgaHUNhf$USYC*~{=V2jo5}b|#WLc=teVS8+goVAmCD%OS zwzS{=evZr$rH+EEMTS|`VF8|o;e!;_%APIbi_Gm@|L&+S#jC`&G&;Fy-!315z{>!F zg8&^=7iTLgtB;*XZsR0$lwgX;8-#g}yc0Y`KiUlgGH$W3#3>;14G zTzru@S1*M2Iwhh z;i!_=4zovnRU1)r<~%FC*R2|v3TYkC_O^f%j&ecWx$MK|k}45XSGX>q9vnb_s2n4< z^tG6R!Gga4Iga*x_D3C$(1}ukBXDHlAU@9y; zJRB4`I8qa(>{e<142V_XKS6>N!rU)$RT>@`b?x^gzU{0VlT=-w)7hv4qzm9VjA1W8 zZ)k1)`u0mbb4U;s;nju@$;Ic`1~xWw))UlAMoJJ!FmJ5vwkX_dNd_?*4~G+<4BRM} zcM!d2L1>piB)~Z$(o7%~f|L}{`*6{sMJqAo05Y+vOSu9};mfr!+BuDM%`_S;vQ@yP z*v>&M6WXOcm3rj@Y>Yy(fPrZ6eSsL&Lepl95du!}-u4%>1YdR~@hyDAFym^z4q!h? z(1W&kgzNa@ynaue@JH0tWaasj0d`02ekjT1HFy}w@0cD)x|~qOXKiX)LmabFV&J;J z2oqx1iD31HA)DB+%oY54l%Y{H2(JDH<63&Mk5yVA!d-W-lKzh3Tprb!2{hmW?!#D^ zUI*S2Zb#eiKXFe&O(Am>13`?}k0=rzMEs*vNYr$Jiv#s@OmA?qpXgtmkz*ZN+b z$djzs+p)pXMw~B)@5HJje2cFpp;hCJ%IgIRXN@iUKmmj}k^mh7e@SU+&V%Ea7F`uZ z1H}#hcy5!Rq~dVjrIO|qo_0Q2v;&YEG>rx<{{Y!F%12zs9|1pn3Gj%1%{VQtLtAL0 zd5kcCC|>d41r&F}yZDnua1vapyuQ(U(zbz@FQFD5o<|Y^SMTya~Nx;I?)D+1? zPD-ianFZ{*tqe8XAq<&(LN)j%wx|&Z?$IMsYE-cDyn0*B=O9j#+uSn9HKO^j(4-YXxAE|WNZolPwQ~HSMvYw znpfPp`DwE_FB_`w^&dc%ifrk#TbB(dw9mAjco@5ji$U0 z$h9a#NsZ+@xlK)0w}z-JJ25}RlH!c(&C&{WXWz57m%iZQEs-Gyr5)ycHIrsVSct5w z>b4)JhEZIsjF`DkyMojc6EgWcj2um zwM>Efh>52)yg~~WzzsYsSW=MMOxmn9Hn`}BdZJ$k8J;D97_$65s%7T?|NDbF?2ARWd8!fi#e%2BpmP|vJ1Pa4> zM98U9HQ8d*rdt!!NaFhvK5pKXCe3jusO?1NcUIQJnKkes>PbE0!K7powv1ZHmn}Jb zmlZsxKl%R5wScKp@}*u^#U%1S3bm;dwF9tGic?Wh$(I=FOoKGpq ztSDeE7#R!p=|WTUljuQ7TwI7|=`TUap#^M1Xwjbb8%OTIb9M1wY7fS~ z2|Jm6t(nZVkdAv&@KQgdJ!d}91_+67z-|iTrJag4 zkDjVxTkvBm)m92!4+{Q}X#-=K3$*TXWGR+u9=cq~S3NoJNn28E;6$#4H?&*s!}JDa z`3lTpx<`#_l_nork@T#o?rPogn_QNU_Gzw%ySC!cUBUNe98`+( zu)3H9#mlxvajKzdDC)}gs1CD6{lo1!O{6x(Z5eupoys_Y!&A-4Iy0*x8-;H=SF2q8 zhyQ!>`ZoY+UtuS@<~(qM;i;Zd3U7^H3z85qvc_*X8KxFJJb^omzf^ zOUk5V(5s;m``de1r-+?;0_=K`(%G7^d5=E*fW^VqxAPAKAiXbT$M0tN7G25*o9FGw z%1cxd2z@U-4a8-nj9e(ndL)6_#Vu@9%4u0w+9cxTT|V&r`jfsp?oLia<6$cPW+-QK zKJic${N!`eisqJuJ$Q#EiPIrID*URK;J&VGMW-i&w;UCY_pYHF2Ht37Nz5quuf|GT zU$jhewjO=k;yuwcQ>R6BZ2$Wd46+ryJ9!(8*yKx#8CiCIPP-JvlOZKQY5Iz;<(3g& zU{X1D{?!?Qo0|1igRlp+*ed&)tb{IEiSs#RCHVMk)vKTFQR%$fuQ(T5(1drg+d%0< z&9cz&>woLn^iR(^te?G}g8K4z7BQkMe#nVG#o{1Q&C5JTOdYrbrN7!}esJ@UjVZ1l zS7D=?+IKtET$Hk+MWo*L5Xn+ZnXVO|);(&R+4=bl1}R()ff~4iK*vtoF(l#OE{mjX z#DY@uay-}}|9^gfMwErL4Z9||R9t83eVfL6;>Y*4;?jFVGXnv!f<{(RoIj zQ>gBf-=#bRp1g8mqi(mWB?(rGSn`qOvz>eCiTLcxB}G%uNRQ$S>DW4f%1J$V?UdR+ z+BoMa%4KTZuHQ-LHq=m763*hAeBTPB%L6+du^5ORMOTN5!^JUqolsgbsU2b~X16FU0qOI*1E zbt^}L-sX5w?FJ>+`Hzlw@#;$sr~xN_Rm%Dp--Z6uhsVQ=9CX*V$x~DSAsl(A@+o^A zda$ifolReosXst2=e{LI@xk1iGF#HVSLO}>nwuZ@?vYx^vkNh1r-MyWyr#Ftm)7W| ztFci?b9W3>19lGG+>m( zU^<^8n}-NqEq#Z9c(sa=2F0i@klI(Vlj4>+BKY9T`xfP~AFq;f(U!E)ynFYqgFASz zgk9yK*w_zOP@}XI4k<=kdQhYrzNq=}s0HJFs>WMfx-X@=mxIr2Q4#ZGAR!Q!3sMv6 z_-%}J0$x&@cfP9b%&X7LBkN3d@44sY+Ca9%YHIHFOm=EX_7*k|p)!e3^s99q{PsRk z>~_;<6LRgx{+{jf6vK%8g4MW;>Py0Z78(S9gjT(LwI>KXq5hF|+?I^hSG|^iGeS{I zfn55oAQ7U${g&ggP}IaWm+ zy|$`a_ceZ>DPI?zm;#aIVziN8E_e{21@tffObp*d5d{D!yR248;2LKB{;XP{;n$(S zR~YhfaM1ZEAEow)>|zsvkyU3ovee5YbY+#ZZ{cuyuh=y(=gir&x60_Iyr|h;+}iC} zSi(-3_>vW|KMWxpz$JH42hqw~GPKzZk1|KEol17dLlPMKu%5k<)wi%h$UyG4TIcSD(F4`JQW8aU<|mExX64Gw3M2>@#H?nD`g5PqNx0U!nG7plJh z(Bujp{&FTkN)VJWhQKvjX)a1%&`ppk6zV8lG|TB?dpS?{9XFaL-fL#u*RJK1ccmCd zSPLBXF>NP?f+vWu;>8uOW}#G@go#uriS`v@q!lSQQCmP`4;8;2{NX0u1uq#P?iGa2 z3M^11UHIcQ1nj7OWG8uPyjzrt9oryPvD5F_yQ0|f!l&x_HZ@$-Mskv^Zb4rg?@`sM zv=7b=Gwqo(+zljsF7a|cu%)oQ@~>|S&I9DQGmRH^i_CJ zg##HO0>)^jci>k}un{{^Ou+%5fDoS0mqutrKilp5czv9-s^_qTiSt#jtGFud%>E`S zP$s)Ww5cUBIiBiensY%ESyuH_H*8&I%d-9*XPLztp6gmtlrQUCV5sjgQYrY6>;q;B zNRPS70{{q&v_1i8Fx9_1UVOpy=($m||E)b3M`z;E85+Z4Y=>^zn0i$vi92l@AFkx&Aq!B3CH_Z0} zT=4Y;50_O%(jswU2L}hy&#kCczX;nwFF@F?}P-;z8U*;P86hys#2WA&Sd(W;@z z=Al#Xds{C0o1nw&ih|@s#mv~{WiKZ&Uo$u!hQWG#-LF3wX1$ho35|kYfRM)cXpAe7xVtzU@-u(T4NmS=jYe(P3K&ZVE2h6%hIq*fIX#5dOziU zdC0lzR8j0#C-LXvMW63>Y-!}2xz|f()1Y4fypVKx&?%W`QKgNcPgXyF)1D<13*TZ` zK=)KdM`u4UD1feq5DROKy3lAsydnZuNJLKsOUo^m;a%)3UctsJ^FXywRKI2g#qiUf zqsL*zAH1b2ff>ZDyfn7HB@H>_@6M-BpFNv1=9lK5YCglVVZ|r|Fm5;+y+upw``*~N zxZVec@7&$QMOCmNl?coRyZr{xc*0-Xv*!!OkD=*7h%IQ8MTXucCUFC#p|}i;n(5mY z^@C)m&)c0Y63lq^PC|T(D`ld7wSvmq7aX6mLXvW%D-Q^M4Bb}WavO;=(t!o)Zs62MT3yTTzhtAj2@|2>DH-I206tV`z`ZN~a0Wxc=-mdOX9GIi93O8~ zxoC0EU$6j;??J+~f^)j|4Pwqc-$n(Z!O7&nUqpalUX1%r)z5O zq3JdHCYI)|scxy`cQD^5;XEjRXjr+A>wfRy` zm1P`!lWW1xQ;W5ys_hXzPIoS7B)NObw-n$~E>fR>KLKSi+q^lPcncc!Aw;e@DX6HV z=1 zKl=`I<$Jtd(3p7Cjg7eDu)=JM!&yld)}+3C5XQ zYLb7MM&sg+?>&sB1OV9C$++44G2+pJC5Czqln#E-kzw`iV|}~dtLrO4dBv6Z7y9uf zV+>en;Ie|Z2r=+!wg80f|8L6{@BLVnaGqtF5hz^Ee_OQ5?$5%q)uhF9Tt$@18&KnE z*!gFn@bRM9n_|OHkB@va-8Lw%;OP+Z4H7qOJ5y5&K1|0qe5Ryb3wZAlimsBGmfw&{hH>Z&oDR%<@nG@W z#}7Tg6&|=mG?&!N<$V!8K3=c0-$tKXR!Px}6OV7+{=O{jbVZI18vy5 z&98dl{{@|em)C5`21QpyV_yLj2B2Ge1&I-mO#YkpK;8({be(WTu#qFs)%fRLP*kED);Y^WSe*T+S2c_!gb66x zxxZ=`&$Koi42K^TCjNinaIaXgLQ&CoxGnN&H%12jc?9J2-h-rAB?T6Eat6&51HN>nnyr7YNKoKz?h8pXilgHl=DHWoLiJ=cb1tlsSc_&)9-QC^%alY7fAtB`-PICFYU#m>< zbs4ecmOkjn@%36V{n!I_9{0G@T#6C@#`q-{wR5b+yyBXn*>IYV)y>VwXTo>SxM7<1 z?lQ!$Wv~Z_dC(Nv-w@RpLmL{I3T6wgCHx8pUku26418IBJk$GIcom$OLkQ2P6M#!= zJ-9|uUrAk@;)jF_EjuDo4^CjBu!@B%(n(w^M20`dpKasD8~=)h$d>zUc9v;?-;n;Q;Xb!6N6+IVji?&?qDv+3NOm1a)sR_N*J>FU0mXa_9(1Nh@?$?WeE zBo&bVZ|kc>F013!5RXj=_YK9L-~WBx9a!j?M$~?Dg~V2ANk3Na7s)p-F`L*VG(n{K+Cs6GNGyJ_ZjzT;-}IJ(U<9yY*YuSY+b+J zcp{Ar>W<@r^kfQ|m= zH~v?Uyh7B0)W}qpVyOFfISF1053zCcLEFvOZkKZjh=2_QQJ}xrpM&nj*r=p&iP#E} zNMbMqCf30Cm$$bp_Q|nPF=xsv0W!%$SZa73sPmbgXNloE*7FO8@rX*lnwcixY5$ zKrm0WkudijuRljbTV(>8<9U&Z>k)FQw&G_t8=BzXNvRFY| z^UoA@h_s|z?a`b;aUUs=z&ysE@A+n3Zx{_JK&jXiRXX>k%l>#~kkQUOFC{X;fw0J> zF9VSG*ji0W2kGL2CWY9bSQxBaGG-X7}01&+Usb@(Edivh*3nk+Y@Omt=*o~F;C zvN+pCc+T6_tH3xUPM>sMycw(&Ek~d~kkuv?&N!jAc;2 zi$KpL5oy60R3!mK!YNm5e7@rBvT$4NoSL2%`!G{M84d1r)CUh*z66>^W?QzT1k(++u3-B=e^<+Fs}SZREU%g> zntwhen_I+LyHAssEe$i&BITo{c4A5#rR)(s1pxWDfD7zg=TBO-`XsAm>@Z7jKsDTW zmzHr>HtDO{x7lPsvS^EQ8-=?(IZ2)JG%UiGj-0>QBtU@b6J($3r)3Oh08$JT)=!rm zT&AbKEc@rLxrfJ7=P)?X$57OiIA$oeh>ek+z_d=w_*onbIS^MaimD{HqJB5vza_4~ zjQc2;RRV~iCc8U&*{JoY@7&`!Hw*Fsq46v_T64Dt9&B< zniZ|XP=0}NO2i*5>dNSolvOgn?T)1SE1LY@r;Z>8oUg_r&_5v@zQBj@^CKmjXyW;X zW3^WM_%jvL)zITGtsPiTCEnOD-_kSi!zlC@aEHFqK#?~rYsm{hgldyxnQ|B{;wNMyR)uCjE1|(d#;P+F0@;=w` zD;v|yJ||gDy3Tx+vovziijvh^Lj}(JtxhTJ2+WrOnJoT%BIK;klHEiH%tk=&KG|e$ z=Z&CQ#w<(?i95~eHBmKd_wibtmHpwJv>rpi`)o8(GVHq@3Mi3_eCOzP>kQCoLe`qE z|CNc8WzrxxH)o-g`gp2HAjeFb@LGp@HT)%#>U$Z8{_k&H-*G4(f9v=U-B@z*J&ck7LP6~&v*z=4$f42i)^yKpQ)MsPfNzD#gl+`>bX| z6N)y_11-odtFU8T9ijR=JtR(hDB7%hZ_R^+$4JCBN~$_0NaxN5lT9(r+18lkDP(<_ zA8QeasV0)j)^|_wWmm$zMA+5vTl(ejgLy$x{k+kl5n_W4cX18z6MkCYElfqy-kF+n z|86^KAbwNVP1gTJ;F#A76}wJ06VZEdbhce*S7(PYD5V$S}+n zZCINq##ld8khIQWsT35)aq;3sGspxmH5q{+2lXG!Eyhz<5$JDgb8AF#u*k>xIu4!K5?0F^@?Lnaj_s~_444~AG3Py#>P};0G)I^Xw(UL>aF$8k+a_$n#AbEbN}7v zA6x|}>MRL#Ceh|Td0%?YcwDpPmX#m)#K`1W_-NTv;E=+0i}U*W%r6S*BWZC?tM&?a zL8rv|E%sC^FNw-s>(;I%U0?<3+DRyc=mg!tAb(t}N|y0@W{jM&t$5nMLutpl!aJ4H zFKC{Pe7SJ?>fTZ;gQAhr39Yg8FJjnQQHBYf=k;VoaePCLv1uQ5)Ah*w$Tj#mkH7k=~_h(P>&Osif73i7-6M% zZOC2FYv=-L1*i)c`nmb}LztFD`uq;OF61z`U|A`i?5FdXhguQ?MTls@}&MB&0k< z2Wppbow_J8=c%(DcWabQaBvo3a7>BHD`Nwa5l`yE6qv3cZ@D2O0A1tpV`i}niXozf zNoc#)+4VpKfQlY9b|21vdE|ddMKwqyHc^qH%K&&??L1R) z&8?(n;^}>5oxr0#B98)1%&(1n`zC0;Id*QAjPcgJ zhWke|D29fjKBxCDc`8=7^HV{QB@$gGm*ve#0 zccLAmqYF(j2yhu3a5DNk`Aa+-Uq;e-F^#Nd(X^(5MtPk@zR|ZSMrT;7K$bc7d~6dn zbneZ)-`(e#r*WkQ)8#rh^T%R$k(x6r4eQ58pS#$2&xby=Bf%eb<_*HEHNc#A6+vrw zt*6zKZ)-V$6?sY9*CtARIn(~EO{Wyss;9d}f%o3sD2%AQYCRWYThfJ_*`@&vO&be8 zGD`wk>JGf5$?+`Y^UF=VH@u&UoOl9W@>NVpnMUI!K2057$8`!P^nt>D0WPb{=w{B?d1h#x%%-GHk6H?Beuf9` zgCrOC>z-?6gXME{OG--vk!|;eTe#1o0##T)0pXy&D!&>32J&pc2UVnBgtmo)5lLhE z@AXQ_TH4~}&EO|wktcHz@(!R;zQfX0t zI21aWr~cbkrg__{z-tYpY8EaQ=RrolGuC3x_DG5n30jXwc%b(Biv_Q98UYVL(*u?8 z%(-*#fZqc>!t?ZEUt{wf#bCsvOVE+vB6rv>f>@#jmq*)m7L7^wU#aIG82t2UZ+C??uQeJ*xGPpczL}1}Au5MlLPI0VR!y0~m6`S) zo?bX2#-T+cr$Zp4JpH+qfNRNjN@UgVkJVu1nhn9@;eLm@HqN8#jm#mem z&XOG&)GqT|*H$WJyE$Nib&z1a9jq~HjQohkDn9k$zQGvUb_g9~U^l)SUtUBS*;zNx z*kw)M0JQGHc}FmCoJvLp!bgXJs>i{BCU~r+t~`8u_>=apNUJn0Y14n_6xXyHWO-3+ zmp^UX(wJd<)NuLo7qh;#J2Q`l0(wf6#LDKd_V#Tko6KIFzy??~Gagq3bc^DNfQi*>zjL#MY$JLSVMdieu^*MdDW|VojG^zz>fDK)+3?(RK5*zs8J5pd(xD5 z;MUeCwKGkqAcggRr%!K=PG8Rnw_d;D-}x#QD&(4YtnDs3veSEs z`k2Zp`C!nf3621^D~mvlhJ)!oq(bqmx|t7W9k2jBQa|`(?300mXqNy;t8C*zV`Lzu zYI+cW!RY-T&w=tZ?n#eq#N71Cp!boTjzPkmP0OD*L}76kJ_%N*4q5wGutkU}s)uz|2!MF)}XhNE$%%vnp(S`{d35Ak)yDATbvsu{a`FjK}r$$hy>k z;Q*lqGR!wS{}DJ^cq<)GHq^4Ac=Gk3B&?T(9aFk?o|)hrtgN6g7G~6@=J;N(YU&v# zA0lbXmoEo(8Y{`{MWT82bbQq#I#vCQq;g2uaQ;&w6b%i3!&)^{Kj?~_-b1Fr#oXX| zY5dHTHmM)?AJt_6<8g}2irsHldFvjn>fPr37}8Xp2~ssw4GHlXzL9k@+wWX^(VwHa zCpbbjMC1w0s=lg^&}>vpgRrb`it;!{2+=d+GmXYJ`GVnm0N~%da2zd*kjlh=8tE*A zkP8ybbLY-oLMst?DH-F$^#>XVx)H#f;W9x`CnASine%anoA}Rb4#P|3ZBOn9m$9PB zBcE)_jsQ+r^KL)UF3E9I##~f#QZwoN!_u9;7MCQTcvMnUA2&$_zr(S`8~p*4J*c-b zbap!c9)dcyI7G;?D=-Lq1kFCvXiTwTYx<&v7pnJP#GA@r)wv^oW(P8pZd(O#+!ajq z$P!GTm&U~2i#av-Mqz_exMZPgY;>$*u~lmc2mN%dCw^A zPHcDilGv}v@((!h`~UbOSGAnm|3XGa#@0)5RX&HGPu+LKXm`uOi@!FYM4gCDvP>-< znosMW2o2?;IOX#T)!SVkaYxGtd4#xLlQ`qxoCc61ul?F{Cy-71w*?I&Yp(iz3fIL8 z2;&qK7J@k|ARw?8-q@ueb1^oPbCB4a?ilqln3Vp4l#h^eZ?6e|~*d8}9>J z(h;2$%fA82b$^RX+dRdDD4N6X`xgd(@G>GYb=MHFF#iNP?(|1B4Z4#fr;$t|fGbY*1=-XO3xKx~=x6+54jqKDoU zhCCojGL7L^bNfP!xnF4Sa!obl(0LtM$!=b<^}!%q-+2zoA(CZ*s@DuS8hLpxWLig&ylo; z^84pR7R8>N&=v5>UCaB`%VS~p8+Iyd^AT6}XxgE4c}7J4ZlxWgNwF>J=%yecM)cjn zdjtOgP12LTS*VE6-61RiOc{RNq}QVjHXNiH3knJ}=J5Q}0-@|+;YW{DP*fx&MUHN7 zynPJh&`beEe@4E0Jt!R;ncP~4$tXtv?JQyzIOt#u;nB3?q(bU$g9lTDF^npMYrk1; z%e3CBS<1t>zoBWZsd@b;Q8dL7;@aEV(B{6BkueQ&i_+m~Bsa!CnzbM`P}=nsuUA!3 z@eLq3aAy2<5$bxtP0{i`h0>LqwLjs%^5T`<(iJNzuUwIhcf%B$9oow{i<;kh^xm#{yMv6mJnBg19wOhZ*$6I!p z`~ccff8n7BOqGbZqKE1N?xW3y8F*acasESF9u-XyRusnxoQyZPPLTscf|H2RU`Ub} zP?=*b{}EG14x&vPMMHi~Dm6x>D@Kmd_JlM=*X?IplrMlIploy5!R|RZtk-li-VFu5 zeQJ4{CIa-^t^b`WwJuPTjb;#{?@P@lH8rhuF|W@yF zen(_4MB!;CboJRrnHMkifc!+S15>lcDdT0wbmE>{E-R(u{AwS~v(ePq{z4uvc%bc* zyqaDW8)tNTRDWbD6LU&unvwRr+0VCK4)RAE@?1P`EB4Ns% zBPVd7Ic_`X4H*#-ID%1pMdKc)5d}`l9-$EgE*IYAAcdhVsvqwLWaScDt2@r>KQ2Jn zdp>#{b`yu|&Bm;b=>ioq8+6D0YKJ4=`BY9E6j&WR?VQDaDR!RTgNu9FD7tLjm&GaQ zEvvp^=_%cEVXEhg7+N+?8eu&2PEY98Xr6<^IVrHcQ6RQOgLvg6AAEbexv`OqnxX^{ z9`*#}&!Qa{_;ua>iXDm@1etZ9r-L^B z`p<%1=@vPW?ik|bTuT|TgxKcoc;qE!p7}XG_ck>uyoXooM2;6RumEFc0(MC)^(ah6 zkoxc6{}W5vp+ut?%A_#M|4Q)9&705B-ea$#SNP}GtCfFR3+$EM7heEidFp|2@wKU2 zZ-zq(-ncoeG0ga&Y1_NdThz^F#LC1!?4u;b@JJhI*D7-7ZysO99(a0go{&{u*5=1* zDNh6LoGMOM7GExJYj6J(tW)l?K^SykyNS`);#4H7xs9xnA83cZq>#AQ1B&Wl;V>pX zJ|A(@MA8rxB!S$?xZi_>n0n+c@Bm()X=h_r8KoO5XV(s^YCT@Pa7$w=nY1@Kb^P8& zt@c4RMs!YXBd5aS?KkuGJ4$wj#e$vHsRcb~CMkPI0Nk)L@iHij(4e>{?E7-Ez%RA{x z?P=8j$w?r6{q^ndlv?{w6Dlcn#O@NO)-H46cZXpfLI+r4hT6Eq|0d!mZUMLv+wd;O z7%Cyg#h;k{Cj~__4f*=k{@QV5p+p>y;REvj5$7}nNr2eD&ToO$6Q(0#`@G>8B@b=*#C zAMOT?k)T6_^Pm$d?l>gsy|Etp0lkvC7&hB+&q=BXYT zlY#=mJ#>X}BYed1bx^E^qY-lnECq}YcE5|~`K{W{G*Z`Uz#Sg*Tivro{SYJ?gqHa(_&RxOGy z6Ghk3&eLb+R3}x`>G0TSJ{p151{g&b5L&yqfru0q741RAiUD7*HkvUgBEMmCMAFbkK30;2V16rTU_HGK z!q$5Z5PIW$DoCa2$vY zWuODD^PVfW&{ty2R=^3!J*=OrxUf~RbPTB+4$QhSG%Vf zE|)K67jZi-v^=|b?&ccG?wF1mCI$vpKqsHZR(Wq{wU z0)y?Gxn7Ypd>9gGly)-^1>fEE5eMK;PEs@OSZNqU>nL+Vd7s>TVu?-eHUF-R;JU1# zz~rVQt64b#KE78+^+ zwro^Zk;kg7&r)P~s7J1mYA~3n?799iS|~knoY=~Ny-7&Z^XFee7zApQ0ect>K3vfB zHb*U$qT(zYiKMv}I4AJng8err%2mWKGok&7%oqJfoozH{ZVb)0 ztDmE^cImb$s^;tuc;F5NZj)t)tT2g}7gACVAoybR1Lb=-R7fNKboGMyU$P%#QIiDM zqqLCZ2He^DOh~7tX(&*)>4>7Z_xLYtnrKU*!;3av;f>}r%(xh>ptNO+fz(`dxTfEW zRz;sa{o)=!MX{3>6m>p+$+hxwJA6cQlg7N9xj227gLa$iWSnQCxF2s2BdOzyn5G4` zD1$fW**+5j5;?hcH<`?`itY6KdFX-P<^@hFB0n>)zW5}VG$noBo0ZdbJ6kWCdN2ivlt+gbd<>DOknS@;_o$^m>-ZikxIr2~4hoa+0b zeSYMM#7|pIheCVutPFnE;&0Av#sa-;O!^mnN&n4OTxK8srG$%sR!*NWPtl z9pauWI4Ad6OTN}MLS`3;WhRqDKP31xMBZ(n7S<`sTQ)T{b+}Jo zSt2w6lUC*$=cQSuC3?P)Po=(UcU*1x0Z*<&wLkf2))gBaGM)@rNBoszX0AlEQ6h{F zM%uO6^0Ty>fIBej&N-Lc!nc&H6Ge%}!;tFeW^XY&aH0X`b2h(};df&EP)YikXDdc_?s9%3pHfV3oGk zrW`!;c>eZmmyb-rm?S|OpZ+>L4y4tCE&Z|ajm~OV`KO!U2!)F|BrbugHs>vi%I2`Yb>67V=^gCttu4c{ zrW!rO2gk%2u6>D1m^}OSr5sxl6Nno61Zy8spgW3Tvsk-$arDgH3Q@d6U{JqtVT)*Ok+`_A_Eo#5kFO?{Mn+=Nir zPiQpMgB2JC0sIRr6skJ&JI?J7&v9I(JP=~&Z4{9`wWll~@B4nxU$n1IIpZ8|4E?+H z!7Yq=PQV*tv5V@R522N~D>CP>XXxQ-*@kiyqv=48^Or#r*s2io_1@|FaS%x;~g+jX%p!r`@QCxt_4}sVX1c+`@uGT(A1tZDjv& zh8zPfy0<;|8Aj0ZFz~r92DnfEg5v$yL0Jy=_V&yA3y#shruuH-{-d6`t90KNegRzSu0ez%z)$hSbIhg{BQP!oYF zJa1?q3aFSnT^a9i)cbg`^Ps_Qe4DI1hkuZsz*zqS%G)>5`eYE-VVzwsmHnx)xR#es z#buFu0~P_)@$uuw|3-TbBR@pj&;AH6ekrQ~IppZzK=M`~)ad!EsqUM`1Y;a@aljvU zKQjIp!(|~K8iXo)!jWVG3CC*K{pWN6{V}tBcU@P1ZA0vnJceHk$ndoE!WmbSC73wb zk((5|_ss+(fy@)34)qqgPYT9ZWGkYgKusvCsRf`vk7c$T#{y5Gy#8A;Q~b^aljE%`@Ff9v5V@7ZUlUhT46>r_ zA`K1}v{H6#-@b4$PGTg{ho)ltQLtp_`n#Z7L9OQ3odt9YITK_Tc#otm|iCTqRD zwapqKAn;Z~i)Rpi--Y@46%(20#UeXLYSD`}&R^IHM}@;1ILnxoLpBn-+{NxcLi_>( zh_dk3@?B`&vvMSb{pDE=sVl9$lHU}4_1ajDis}xh>$wA*)Jop}%G!%kdMR4PMv!rs zOkZZA^@tUbpPHR+nYFXG=cAK}7Su=Zs0=|l4a$nOA2}47l+VSh~Z!r?-lYm-u(3Sv10vT9GjsR zkBqa@VM?LEi9Keh%e1^7IS317?YK(jEPQ3J))Zp-@a#aVEp2m@PtT zjF~gz$-Wa!bFuU6$nY(77G1Ck5YmAF%=0Tj87;Z@{&HjEhkyXV#|J6N76&3#DT!ob z+Lk=Owrtz`&Lc0~tdWx_2T;^PulE)~6mN#&O-&Z8QfRab0wnFjf=?1a{H_9>3AG@Y z-;>Cr6OLw(QP;D2@2pBS5V%>JvU~zBk`V7vMeDr_+hMf=bfB}+D}RG5(2ZA*3b^Kl z#m9X}oW`F7v0vTnz|A-|#?8Zcn)dyrMC?<`%YOUcxw^il#+JX~x%YTGpRLE^d3U-N zz1+1KjYVkU-UYV+1Apt^3E|giYHCVj^aVqHTi?9J!k7N5AshB1qXqwDE({aj71TqS zD<luC)|{9OXZYI&Qduks@i!Jf&xBY?p6bzJp|xsDFNdqLn?6 zE}+#K+T-M0A%6xyUtLwj1wc*_D0{eYGMgb4kY z>^%M%Sq)<7Vgyt+gJEhp4uwc?~d`c41w0~^j%N9RQ4ytS8(!R%|@If(>J?25^Xfh%gxv08ZRX_vypT*p{@)e!u#pz{Xdgeu3U-sP@<8wK~$7v zia_iDhGzF(cWHGf*a6BEP_?aX&gUNKn^!p&*uUj(CUJ1q;XfDBs=N@mpI2%0HafUS z&In{s9p{MIoi0Je6Auj~;3m3vu2~YiR+qWq$%G3&lN8dp{l*cK^z`&BBod{_>HI34 z$f-dE5l(ky1F{7r^k;Q--BVTrhr)D8jQjA`vAR1_he4% zApQrE~iaBls3PTG;WJ79m(qxQU`9RLpyG?cGxVZ0GTkgjQsO=lFq0_Xrd zeszmOx;oP3PDMIwBbwi&$tOxAPO0*arxTYY~{z879&$tNS*+Z80IoSG=2W-djE{R{NX<&X_^?;oW)}bV&Orf=RURjD|1PB(_X^+Pi>#>1p}?BR>jJXIGhZE z1EDP!X5oVQY4F}#KL!X{s8-h`5YwL7HM-eoUqLQ>Jp_Xu&G!!9UUM!#noQWIg7mDe3j(Fnp zY2)dI8~lGq3&yeQqlApO-qlD4-dwdFX+X(GcMe3DmHL8|$lmgMVPUqMDumeuiB?`2 zF1g)^w9j9>_ze?nfSvyZatB>ed4B#QC}YEzph^?d+=Os}pMD*2Tu znzkW6MN|)jy{F}nw*w;INC7Ce`$6s%b={UnNWS?<#hP*zL{@-f3U>NucoYb79BDhm zj2-qWSrWW!@}gTpQUa5ZeerReO38U|!o zSj9Op@~x9C{j_Z4xjCJ|Y(48jE4y6f%6C*Z@hq87D$6NL$emCUM5-PWldhPB)Bi?% z^lyRJ!0)kx@2mKfokQ`gH;=;oN^>rbH9>K-K_C%{j_Q<0`Is;bbjL||I0z89PstQ<=2TjFCyOZ zZ8=G+h%I`Vi|yPjU++1eyZr?9sshnQ+<`a!8^!Qa^g?Z#fiR;^SjkH?No|_KN(J9s zn+a07W6rmw4Ayp0D(tMimZxmp?6daQBU+4L*!h^ynu12adW@VW-0Y3K)@L)slEY3fcxpL?+kkJ)dg=F|2?hXFtve>C7lMcD9k z-_o;{O1Cz4;c-J?)a+!jflB^#HbU|7fr!@fkP2m9`#Js}7oaj1!F;P@v1D3_&oUG5 zAg2YEN9p&#&taP`99(yEUNb6q)ZaZMl{id!#SL&gHw`-P&a78lduiU;%Hnx;cClRh zUx6UtJ@L3RJ~_qyU|pu^Rlhe|#G~Tkz+ctm+I|SQ zwz$Q{BkD7CbV_?x_&X}#wR4SR(Fe!rS!;5Mk*uR{?_~N(1C`c$n&@+W?3oN3g{#H3 zMwDw6%b=y}*;a3gYI;x;*29!pZmKZrwq*rgdsWHvF%&=X5p*4dLVTmp-55Z({rIzIG>5%B1dbCVW z{W(Z=#UH-i*Vo&cP#cq&DCuNwb?lK^RhdZPi`g&By>U9rdOz>ja&yo{V@dG(%fGVo z&DNt-$)`j=z^pmUx^-&0wzhZKDjThV!Q}Er>89tCuHC1)!wWos(J+v*TAAjOxaQ>L z$zSHJ-7!duS$HS=xA9yhhOmSba;ayjh-!%BD2Q{;4WLpvmoElw^AhIY0Re&HNXD`K zEPmWocKKc;w1cFeG>U!Agz$a4vMI<X$V8F(Y`Z^QMf`n}z`+b%A_V^52g~a9R zKb}6f+FMnoX%XD~e^T`gsnfT^z@cjb0}9ZHSwuR;g+`!;R0}6RA0W^Wp3FDWm|!p4(iW8ItNTe|LWe8 zHfV!9!3(Ch6w=>BUmDOLX&ykN2PE}!WMnR|7=Rn334|ZBBq?VZ+P@t^`BNMkLTyFE zD41t`ix|f!mcOV^V+O-f%Aj!mz2MBN>vM>l<-jkfuLRF*dy(nS--~^e z!)X8xzG4pyv!`f0PF-l_4F^Bdg4RJ-xfR=@|8&^3c49`&-x~9&w@55&{Qg1eGtXrITgfJ{5#U@p7i_hFI5h=l7$Np;I!6N7B5Lg%easdpm+{eHoVQB+dM>H@n5SVk? zy?aCu4V4$hYZjT;)gr}$&E(y=?+}pKHYm z!GM1rd*(Ig;|UJX<|>*n`yquR*fElo)hTzj>sv*#l^v}EKFYZlcWpl@9i3W z!PE@VeC*{G=-m!xzXjGwZh18v=*nfwOC$?i^XZudVC3dY&B106d0Q$)y7+@sz{{$t zZ70@+h<+u?Z+Hc89dO*aF~6(u!uVD?Pgwa)XM*)Kmk?qaSn7Ig#L1nj<#J#8KQwd{ zy@!@JpO4Sx^6x%={NDe1_~itt17V35h%?}gor4~j?*axtII_^UM(dHHeA8qwok)CK zTX~5Qd*l(o|LSJ&ZMHcEviR%N7cCB9NE9r0L@M`V@)AystqCwiX|9>e1twxV2H-Mo zpfMC#F}qy{kqEY1WNoW#<2}-*ic_SF@5&e!@@+;AK+LMtx5&pMoM zER(!8_ucX94`Os4uA(CRU$o7lg514MGVC9#vXm}I4}MXqTnTh>h^g5A{c#@ThQQ(G z+B1r$J)o-#A}tobx*B~ZNpEFPA`IcAGnTSzz_uf!qaVQjg0O|NWC;il;K`Y<9=J^C z#2E!|5Mpi^i?Qfbq5=S#KG#R4Qf@&Rh(;hUroMkayZfGw5uSpQ>&M#A%S6c_K=MOs zb9+%Kp=!h``HKeTwngS%d71J$N*UjSs=!F5=ify_D}QHOTxbw^=cDNd9}XWff^s2>VwivuJY51e4payu5Fu5z z(yjmT?nnV}u*NnWdJuD_YDgl#-8lxgsI0G6`09vl7J%|~Az#1CAgKsUy*LrIwTjOK z9A?lyW3Z2yE0j?C`^oh9lUQF+eJ1TeW5f1IfGZ8RfM>vC>VMkFz2$fulv`ZM49IMQ zk67BXhK;uQFrDiRR8#^#IBt-TSgyQVMP&zC-GEE}8kVkCoF1z~PXeJ@0&ftD88hE( z9#pmGw;T7Vr`N^jSd9c72srV>QQ5)g`@sEDWy9U`jtDya65KV%s?q1u5C?m}rR#J~ zGKA?F8B>K$C~Tot4(57Grpdw9>i4J(g9R;xCq>BuEiH627@>ut>jZAP?Qzkp*TXOg zDRj6h^B4qSR3{!ee>}^$f$M}_=mXoYDFI51H{ggdv<%b4PJ_s#w_#Wjw&BhoQ&R!J zGN3~L$EV{(g0-BF>O0A9TeaLtkfcYdd$d(WeX3_)h?0oBdUUfNcBcI}W{A zA%D~po}fI1Y9nr*2QcJ(so&G$$SP5}c*J%j-?&?HE^_{)IC3dcR;)|+-&r-a1@O}G z97D`wSg}D=1QA{z2;%vfJ6Uzmqk!lJ@9O|l0b@(su_0cG64?4i0|Nts_Cq^rlry>X z8r&WlMcoS7^6@@CNgAvrRrNrIZe!Ducm@+fZo+-Ekb$dsMw}RdXP( z+YekCb&q@H(P8!b?77q;*ZK_Y9F>_h`M?uL5eH<@q9I4v_Qhm1m|kN z1-~CaGZ&S#U4Qzl%Ct)Hv&?f1+2nuyN77kd*XT0~UJi(?w-GzAOyS2YPx48F?i!J| z+*agYg*GMv@m5?muwhNXnx~g%-I_JXQk0aKn>LYWa$E7fVZS|BY>nX2J;s$+GJCo0u13!YU-8PSbH<*4urUpltt;o z)YP9R|4#6mK!ETdOT`=B+pD*#$5l>}GxYK4qD1o2W*=Er_#0R%?(cFb8o9jhO^=I) z43UR~8P-r&hj!UrH}G=#-sX%fMVfW)#V0QCvr*>;fBk#$cZJNFHyn2wM6)wPb1gTN z3-nfBy#Mh~?2;e8TQ|2KNQ+|ASfBHE>9g>r*yR;H3Jkt?-}k*^&l1t-sgX2u089wE zxFQe%K+=Oqv})>-ari<=c>RWzee>oG+Sk^|dpN^_Uy(xsBb{oKiINHR$Q|75gjxe5 zqirX;cIz?^I{#S+>lH|_sJN3tYSK8WFpXk#-MzM| z3NA|yEe_p^Xx;0=FduZ04Y-57Gow~YOrlUi&I%Uw&P0pdu+AVE5WfySSJ8bnX=`na2jU$H*Q*bLaiKZvb$2P}X)t$m|| zy=z45tb-<(LC|K79J#J58V`oBlu>SlWvwlsgS9b7fH~$0*Vte(2+l6M&L$;cWl!O& zo%~!UM^P)pXvT*S+oXy4P;&!#*o074V>Q&LO2RdH7K5*cfSH7FnNKtZ7Byx zA1ZdAOmYH&=1c7gZ`G5yU8I#8Nv*by&h^HPzse91d~nRnU~EZ{jE>*_@?2$rIDLF)*Z;Otr?|K!XzdHwoE2B20|#9w4^%%@X_-B=z=r z1K%`C`+M=h4pc10zh~dON3?lSv@`p(1^50{O-(V_9QZM-97B}GV4}C7&vSBoQbux> zyvKb3^iOiESH+xhd7eu9thBVf>|A`tHA>4K!y+k(AQax(chhi_M#=T3t5dEpR#(0B zWvGZ+I|!@~kcH2|E~0;i4B>OQKK6`2!Ee*G?+n@No5>| z&`+>864Z_*fHR_^^3VxKI@uDoWTFhK90D#Ty2TY_Wb#q=eEtE$wzp!T5&i^!pFXQq zZ#*v|=pa5DyeiKi)?*{8Odx9a!Y!q?Vi^ybpLRn#0H7KfM;!5usBXa)u<_%k3!p() z7Rx$~a&jO8$(~-iF~UghnH7X+BqG{Gk`VO3Fa0GNpq2ALb&^GN3d)@t#6y340t1UQ zmLfU&j#*SBK_ufWQPh17;;8xK_TKb-!2S^h8#1viREiM5AI7?6n%5H4@1`^`cL}Bt znwa7NBnm)~Tnw=ajVER~7L{m^k#p_6PXG`Qi2=G`ZWYo@9B<5%(xa!ESyZxJ32hNh zd=L{MP}S{H)lSQLPn?wdJq=pwT5eSLV3q{bj1OL4h(OOBHjA+i zyK(=%blOw};+gEMEHban6s!|A#0{#X?}9SDi_8~!&+2V1w-^?PT;Vf3(HiUXQG==?^W0+xd>q(O9pA_)AB4znSB6s*FC%qNwmk0vTq6^$`h%gk&NVGkx}@B%ppi6B2es>l-7 z38@MI355Q7cl2(;Ym&G|OxY|*t^Ol59o~W`(Kd)usLhvpDqpB~t|)M6#19X7&QKNM zcgtf;9=*q$?*Im_92#hjb$S!E4^dH3(tn5C2%%EBKG^uuvNU#`3`E@l7Y0PBrOIF+ zdP`@z#N zU!Anwl_T*MoYkwBFNY?3aK-+7eRrVe5I{z{lRlt8w)|}!Qxi|KsGHT&s>~j{q101& z_}o~)&(EqSPUN8BKrNdiyCoqh33-;6D>N25Ug^RPqRACdFqQy}ePphr(*uUQ+=vgW zKo8DIaYWJ#J9t&$v==(h02pRrZt-;MG&}}k?{K<%pjd7NcZ62Vk?Pm4XM9rbB_(?V zvM@w)$`kYKh$l)o`|G9Zdah{I*gL*JGXx;!J;plpNME_J=#@o|joC9lHBHS2 z?~a2&6H%}oc23FYn%*qX`!~&1UD;)Cs0c&+rZvES34(dFcET|rB76TZe)}m$q=G1z zV-zEl?TIb>^F8~}c`UZie!MZoSQn`TnOsw^B0@eAVQq! zs}Q+;@1BI9pcVMOr0VYLTiV>+`=JSve%S@^*-;i*(nv-b$Cg%A?`D|-LtM$Q%H(vF zNTd1b^PyW;Mc8szfn9;vBr`)g4l@>4aB?0(u?t#`*jceDhpyv!TJ$ZN*<* z0|R#ineTm9fA#u|qzwfX$cDyuDId*yr+l1kUl|L0uSKD7&Jty<)b?tqFx_w9+V%L@J|uD*{z z1F04Q&rA?33I88-5h5k8tpV>}_Jl5oYZGO+LL?fvRkd|nV(S8{JQ_6*W?G@OqozBu zWV;d9`Y!W*(~W-8m=k{A?(LnTX2H0{2VLvWF?f^j8%pd<)qPew@T+?7;AlLrEIAqxvj^zgv6%o(MQ#IgcKO31rnqRUaSj&Y}-^M2;XL=6Xuw%p2b* z3#h$4$F3maeX0u;R@{mO$`k#^M!I8^355*?m}nOFF9KwD*pYKm{vsamuqop4BxD>w zyH?BCx%LHP+1G5es6bOX#)6 zHSLLaY~3!(M@{_@VlHlXy!;XE7Uh%GI!9PL?Mn9-z+1okr$wY@i|xu;xwA$hzUs!~;vMiT6U^0Np3JVR}zagc-O0HP<@$cnVY_B9oHh966 zH|ncHu5oXaQx`c_$Z8vT(W6~9b94jj2%>Q13KU;?6n%Y$|Kg<1=mPiv<^;DB)hL1! zNf?rzc>djpVZN1)e?x(abVo)~DlP!&ZLLKPjDuSHw+gF~^M1?mUYkDl zFA-y%tTCg5hpN}F4bpGbd(!3HeL)B;3xqzwE5^|*ZGY_#zT<<)p8&QXcr!p>GujA6 z176nE`C*a(Gzw0Q#h~#}OhQ6)?_SKO)_pjSWeWb;pb&w_`gs0bn&PWiLI zqRL%*fs8E-gzXV@pT{3dg5~JLprIy{=M@#`i^9O{(-&GgO@h=igj?+J#+x@*u*`Ll^uDbB}lj=i?{(cR3fdF26$63_T6TJ)h7fgjp6HkBr8 zwYq9_GX`)1v_v}B4sl6@@ql!V3=QMZV~s*4hOB);xnzTg$SCfzB526qxO<~T6{mu9 zUjuR=0mpGc@_?eIrwAWsU4xVFa6)auR#-X&TrDv{K(EaqAn@$qE^u#J2J+t>e{|Jk z#O+ngj*{Mlf82zEK+9b0X^#lws+pJkhUY$F%ONTraD?f<^ zpx-m4`1{+A((`iT)1${yqKnV2i;Y~Te7DSCw`d$+jRVIl6U(vqke4iC3F|l?hO>sS z2C7&_IGqjIyIzcsPiuJur=F6MwJ_`wNAv<#AE~no zc;%um{rv7<;ODobG%wg($3}T6%`p-^sdm2UN zvnQLt2SP2?x9Km)guvw3U(AWE1Li=c+~cFieOt)8&?%&U3pq*1Or&DP5i!F$H>WQG zl#-B;Q5E>a!O3Qpks7`D7v6Yd18U@eIdE2fA_ssNe zMpfOiP)o13Yks?UF{;Uc#kxH{;rc`7R|dBnIc3Hn5S^9o6AC-!?2Y;&j3kfrVgENa zuj=YHGqQQ^+ldHGeMT8S-U9vzZ%5|rl*7oqftkQAdf{oHY~$Cu6~eH?IBTfXjqHp_ zx@`5XLue!NS+z*yw8E=Dx+r2vr58lp-2T3D=gGCImOM*>dybuK?@SK2R3C*l1%z~B z;^GRC->lAZhF&s=^ErqWQ6PrC(hrctb&K5{Xtg0rqbZzM9}~>DR#KujNn6Z1Zw$~l z{M_s6>VBZF5KJ%zT<$6tnmvqhb<2?xoBt$3+2c3$po?R~A*cJgrp3>Ko_$pZp_{i8E^lBh~JMiE!Dt|!dz&b$$_Dd%dn>mZVcS?5~5uPI*LgaGKAoD%W z9qBFudkQfSQ9H&fuTX}5OfIgcRBXm*vDm>Z)D%;6s=7Z0XIcd?grd|UZ!J}9W%3g^ ziLp7Z^s^w3bg*pQ{;MdPO>MESve}G=RO3v8%!Q)okOZH?Vgko|{4oR93Pzu{eK9N-4HHKCgzC2~HmuAg#(q z&3&%MD|LP0zp*!FKLm-w3&I|>w*7-e!E->PcBP*i%rLYC|8|9L@G(KWrsN+n;U^%B zuw~i^>if?+%{qJ-v{k11l~~I3*A5z$)1&$looU9RNAIr~y4|*WzJF&* zwQU6NmdG6A%&B(*`96q>TR?b7D3OD-l2Ht9o4L;sgpq1h*r_(U9mAj5+wsH?8c<;M z>G*sky&=$*0fhk`>;c+*z%F^4F7I^TI1}imuSdiii=4fYpPgl^OXhYlTRzRl&a)^} zGC`tSm2HRC>T3l?&tE0KZT;}PX`g?}m&ql5LkzjqJ0G$6!7Nh*ILYjUK*2hXwo=t8 zaG3vgeTClMfL-whvLA;+C}eaB0MtTyO&(%!D2eAjbW7K`(@>TB)m08Qdmio3aLU_E zXl#@rSG^-o)YbVoPn+Jh$rG|Xkpe~%ocijzHJIguRwP(_GIJ9@fHw1>Y{Uh)B;X9z zzR<^cn?n!hq^vd}=VDtSCbG{8(*;lAQUVqKXvg*>uc7nWC$+{)mG7ApNTEk%KBnwPJx z8__z5d@HY6-{TFKI>>fRZd45*v1~&igIkMol8ycpN5#z;W7Fr0-xV%mnR^ZoE>e(Zvfs{3nQLedZ})BWm0aCz z)lqvm9t(%OkTk2a*^D0YEud$>Z9qgI861HtV)~fu2~E>0YJ_(xvW&K9-5*_w@c&kC zwn=g0=RP2`aqNga7k@yNWhAL(;AJa_!<|?*-?shve%TaH-*sq4(G)s>*Ys1hjOM)a zbcbV~7yFKpdKfH(_m7a3Kx`GT0t6t>kTzbWu>e~louZ`l2t2IGlXAsEmPYQfJh0aT z%8q4+rB{WkVqY8jstW>dXuR4vA-iF#GX6MU`nxRm!}-Cp9;;uu=@ncKKE@8u_Oc9l z`J#m^FyC8S*5Om-X+}DgR+em1BTJtPbi90Yw~?N$$Wak538-fM{Vo~f$-bWYt^R2) z=@xnK1k{-En!X8<2y$~Jf?ena7CSmRqncjkO4Q^w>$kfHB?EKkD9~K*HVLH zPu^n*%%)BH7#* zjk<`Pl1_26*EciI7($sviDQX1LsxHG-%LcERCnXoL)4o{e*~f!`WgJSkC8Qo6<_Np ztn`Vv%^^Qcb2h8=Yc^?aU>0IIX3#_QdEp#dFNkRRby9}q?+#ZN0H zAWaGyw2a>1DwilxqjjgDN99V))5Fs7npm?WrwfIP{9C)s7tDzX`MB@=r!v2QM#bws zBg(-&!W{p5QBk=^44(Jyo{x#^GsA$}^g=A1IVsT(N2`HDXP?Y zvf&Kd%{RU7#Tq9A^_D@REm9z~Qu!1%)4%g19kQ`5;;H!SFDAUOdMvco`ar6{2KovN zxIP*%fAr3FJw7HyYUTmoNd`%M2zz^SJ7NWU70(LmJQY>dtC~U}Z;Ul>zEtC!JexYZ zV*1(o&4Gt-}GJL8Jkr2mLeXdf`q;o0z z&D{F;_Nbt^d{}yKN2fOQXQ+~OXqYP z7}))PyhGjA?j7B|YpW>)QIrR*EJ3B+=GhhNxcA?@sY#^T1Z&>;oZMbUO7EtX^?LH7 zz;$sQ(p`&3mfn05myiG!M$L~y^Q2+C%Q9$0xNJXHxGIEgN(a&vZldt}L_X7?<5%mq z%8b_FSZ76v!XHoPP<20??m7*f{2g$?%(C&qSMMw6!Lu^D(_m|ch>3EZO}|>olKl5o z(b^ZaK9t^BbQG#5IC%4L0V##&BZ3|YVtYoB)LAmID}OzAtHz*#G!u&JZAoAVedBdC$Ne!^z&*G^YE%{m;4A4euMf{gfDM>AUZ;9ySY( zh6H{1BC8}Ru79x~by}SMRg0$NZPZv{g<<;)jyWJiCE4iyB!NFTfBvmAcYpObs=-qz z@vH9MjR}b*e$!LJNTH?t!W|-we8Yf493Qc6^Ho4EBZneqJt56HS1V z@GXz_{`>Y_=BzDQfqfcNYMDDVW^qJtpzg0_6a%R2;2+(q4MdN69OWXCBZ4hXLUnW= zh=_}40J}l$j^EM%` z^d;#IDi$5SY`&i;eb66vUR*=U^uafVGEYaG~gVZVrsz2Wr#2B|I3anGbG{trdv~tKyREv^vv%O4v&>I_Q2h2LL_#oHw z&n`t+UzeODP0h<6H=dw;#VtGzOog*3o3gI;O!s&>_+MN(y$6jf;Pk{;C2IAIoAH8s zj~;Fs<~u;uhgAddL9C|#ULrciyp@@Wtftxv#*k_2}WD$3Cxhf+trXliLSKVm@g^EQfW znCZNu!0;G~X++b?rCS}d?A^b$c}}ubYqq2F#Yukw_Nt67$x?oAQISFt#>)T7`sCQ7 zXCf`@@^W*3fBkWD`{bFWv5*l#6$~)IpgY}8UOzFVcDxh;3XMcq;yYpAtAUl=e)l zr%sqDm{N}k_0TV`j*!3@Xn=}ggs%2tVUwqTb{FdK0ReN|R=>he1+cImSfXhz7L{Tv zcGGbo7l#c8(xw07!Cy{;4|$fcPF{ZEp*`W3<4QsN&?`UC2w&w1aU z@8Dc)ji;(U)2AUK=r+7@9krgBD}lJPfjrqNgKPU4Lt_70{uXzNx!R{B6~F}|GzQ(0XUhOf73FA`u=y$ zS{q;n2Jh_+SJeEcR1V~Pg&pV?+2OyAiJ1yR)0_zi8Va$MOohH?a1^6;_9=&8BSyfg z_XO#SsMLYZ)lq|i-^wahFz`w+MpkF790q}AeXpRsc9Rp_P_&Wwu3dCo3 z5|}T?LZzdrf7butEN_vM5_JNp%!RnLLwja%fADuo`)BX-ZkKq?+n8QO^^d3Rwq#k? z(10m-{1sRy$CCFDumXg32%ur|a%`PHAKlGP6~JzR%#E6ISn;<<8mtjfQ4QewK#Sxt zA`JwEqNQJe`2bnQC47iI77`S+)pOcL2d@rj-j}-d0Cum+lBhpCVx)!j;pV2@n8`x7 zzhA33N1drw83Mya+edzXuO0KWcdKqhA1FT45z!u};%A7siU}uGHy+0MOo^Ux;lITU z?v0Y}8yp`L{4;fK2GMn_5b#s}@NriS*s!70di0}b+T+uelrXfg z4y89pc9A^?N`;19C>$wWdKum6QiT0#){j1e!l0o99aL#+y)t84bB3A9GOMR^ySLA9 zYj@t7S>3lM^d(Py7Gwx-wH?1Zl2N{Dh2L_d5_b9X>O%wro9wPL{kP&sQ);_+>Mf4m z5?^3oXbAPrvdYkv;vEKebyHL5Up9f@Qb6MB3#pK$Dd7R<+>)kS6O>X=%f`;_^bOXe z(c?;a^^7G|eI~J^LU-jzMD-^lGi4P18h7Baegw150tI`;4U8rh4 z@Yir}jSuQ^Pw8y!w`;?GN=J*GI?E|S>i@v&hqft{p4L!jFph{CdVvKSr zkyIcG`kGY`Yt)InRi;kJ|1jklP3km8^)F(l6hGI(RFyU2@?}0XUECGY`$M`_l}_*6 zG|}7a&A;yG|HN_Rt7p-@vXr*gEbiFrPs98yzAZ(K@p)9vKJCQ*u~i&#|9P-@DH53~ z717p=l3$u~g6qegb6la7k*uzq{9cDv2pDurCNXsOvy@p*Im{}1F;hZSSi#c}`#Abi z6=szgN}NHG1z-?mx}~Ty60JvY4vK+RV+T<&urq`15an}$;0j86M=@dqMD1o6A23J8 z;AxYb>Me3!C2ZY*8KaoWk>s@a>PcCidFOUU3P6d3ewV4UeHx`b;XYvui2l+xb}#sV zf1iImst8b?wAd3i+plm$@xEY%Z^sZ{+&MTWP(CG*o^08I2^){HAOEZdz+0k2mS=*@ z3!Wo4-(N=*oYF1K+uaw#ajys9zC7 zfU=kM4FUsH2YApZjFuO;g-Ik3H3d7*J(UJK5i7f7l{CQGG~?q#^#i|hC7?MeBrI%i zrV%f?rVm=?=-|rFf)7fWi0+)*5IYec`*Wi*YeKD%nl9h#Rf*C^&bAINsUOpBM>-T8 z7usYu3C5#S@f7SzhsURItgB|imO()E%B&@arjeXNKWqs3c?at8U@Rj5YQ;mqvm;(X zCeSf3O+bSBnKIAi6#3()upB7o_5SkW-woY71mb8bMXBd{LdgJU)O)D-2LcH<$uw}% zTkV|Xm)kJtE^dw;fwaAQ@$8LK(80vCDnT_M{>Clv>i#KRC7etI!w8A#dP~#RZw`X% zm@0QxsMv@NU-Fx{iP{<}&dH~L8zEJ8D)~t!Dqt)fTCQQ!7x2rS`u5eO=$cj!0^=4i zG;cJK`3NwLcm)){=XPb2SE&B?5ceY4#IzpJ+hLfPcN(^#3INYzj_NMv2!ToCher9V zx(d`lnPOu7WNyT}ErbA%yuP(2a6UVYtgQ|y2PLaIaUS<854FQPh8I&xY1@i_-D(z` zlVtM3{Beu2YL(}U=g;R^yiSl}rV7`%fC}W}Ga=brRaZAny8fX-*jYA2!x7*52gt{{Yu>(diiCTC5g#KjXenlk>zdgN^Dw7QO z@}y)czT%hr!gy-2yZ9OrC(elLcVGQNgRUWJhbH&#V~G*rgB-=ikCNk_aPEAhGX&{s zP5?9777z+%zkwRdl);2C)JW;5mLW#Sb^r}lE?+JnD7b(hV@<}IO`O2j#GOSOCO!i` z6~m*tU`aTXp{xwG-sP9$Hd&0C_>ZJ!Fz@|=t4@V-3A#=3suIzHVX|4+Z+!Hh{k|1OPrs=AkN%{qknaaJVkjwIm@Dy z)A{i7M(%Ln+=K41F4E%rtkj*5Zv)HNhGqrqA?z2!JYd_D&WB42c~CGFI{K@J4U zc{XMm+rY9t_mod9vixH`SxRam_KT-!(|V@L*s7?iFiF)CLR+`fVLsdg|?fHk0()>1~>>y z@CR*CMlPrkV!v_c>~(JYfj#qv=oh@bXH<=&8CUxSm4>jeMS1T`FBXh1=)N6@Ze0>` z`bR!~(>O-mHgudOb|^CNm&j5pwaO)L(ZL*pULm_@FggA)}rh zB!g5CY_|H`9i3~>zTpre6CoKHnfleQ3?*X92G4x=zN*->m`Vy+)gJBlf?)`+YWD39 z^K{i8m}VGgmL0t7r$Syv+w>bPDcJE#7F5LGVpbcHkP#@$0xL1^-1U1-=y2bhPz&~$ zH=2G>P9F#))yaSTMF1hf0-CDqb|I>Sf`{ItqX7p*TrX`1FN-D=cxymIwT=aQFq;|$ zKm7OA<@Y3m%XPrxhp0i@@wtC^8{Z!VLF4~U@+Vj);mj2{Q*5_%A7*aZvZbC~sOiGX zT%rTgvWh9hd zo(~JtTe=E9SL_E!Rixh*W{B5s;sm6S(DRvTvX#FAveh8zy@8j3v9;IExs45x2k&qo z_B+}SKshGL4@7|8$@ILGopjW-Yxn*>KdtJ?8b<^3g_$=vnLC|F(!6$mc}TJs2t8w8 zv1KLTt^oJ_^Db+$0tYdGLApc+NM|(+rGittJbwi!lt55!c{$)<3~i;6Bjq=!MFUID z0q6=qg;R0@ATh!RFXZ%qlk|;<#tiZzqT~z|nZ~#P&f4kTHy}4+XlMv2_2bcJ(EC!v zh%U4W@nA+XqENujxSJzLg1qm}`>z~R^58UY3aJ3pUwhkJ6V<0Nl$2u2zy3kUOA#`H z6n%(jFR%ya7{LNks*p)T-50~k2>n%`Yyc`zIl!So7cP-eOyWH79Lg1pM6nOD(4 z5dcixKnCI!gBXyGkZ>;Ge-11jyyhowGVirofC^D|Ij5a7J-E=trAuE}la8+rR1d$Ic;i=5Bh-L__-zgb+D!$$EB z&_Ejaxjru=Vq=fx7@oZuh>#B|c}pWiuY;ihYIr+#@zjJ#<;Qhjs~JyEiEla{3h7Aj2nn#(PV*O_CgD3Jn-)z z<1{J84Zu}9Tt4sRuR!{RL7uneM`ZyjAZD~Rjqd<*=mNCrf?_M4y9t3@Z12YP0Ulp- zUZCq0t=xeCn!Jm}=%OT0<$_b69saHOfnqcB4hlDT=5Q|x;*(|F{I3fdKdjl0^@4cM zOO&f#F9F}NbMgMgBVLohDIS|$G2a-kiHgYw#3nfZjt^hsOHg|lgjN@XT9z+g&dNV; z(W=WpJo1k1=OsxrHAp8ktY%Opt}aK75Nz%P2qXzx3f(W}*A)Fq5v>F0M|0@uuJgjt zrQ1PPI)G>&lcJp`|6(Adx!0d>i4hSW6MkZ%DhiQyc6KNl`{eEUj>m}0e85b`>F4I1De&+IxedV+s9p~7aF zjf0$R&Z~&iu2eshggt_ujRF}sSAnm|(7U^I&OUWLJzPR`X>W$CJ~|0-X5S9{BBE7yy1vfS|6y?x? z@fMS2JFuNlWqSfMGd?w=sS~Wju zcdA}-D75nJ1JSJ~H0&__7?$r^RMapU{K05yx5xni`h^U${a8KIbNKT_pmGS}50RFE zb16?XG430QG$LN$zz~-HQFIWehE)QZyKqBWwm@Xt-YoP^bikw5!Dg}RYw2IU<+11( zPKb&^_nEEq^|=ym{B2|1f>dMHBE3= zOS3T*HwQ5f==w#d?rj#$-U~PY1n0BG94Y|TA*G88-yE3seE)OavKJuZC2t#jy*7EW zbj-!v-xxT?i>L+aNt%vtW9k$#ce=}7y?V8ueQ-5+YNYamDCW@gTQK`jm@~je!r+VT z3WW1Ozd%~-A+M?)tG}VhEH^-28{rDpHd8lM9o?~O(J%~pUI&P7#<9p{sV6fm1(9>; zng`MI``>Of$v=Ttk@1`I>4GDZDD zc1eqWI=A0mdX3-JS^zU&6(_l$AS#A~CC>S8ETT3)Qj$U|7KifZFJFQJ17&RL%X;SG zR#0aG-p~XUF4N@5A_UPu*kU)BLwd$_pZX)NR7D@ej*9Xu8Egr)oLpR>;Xv1&##H76 z0g<^f?dh}@aw8x@J2Du>{QyPYJi4*krr~zD-=TpGTj@d*WIJSej9YZqVm=1qpw1ef zuqsQo`q_D1(a}Y%gTGs&#}NOZ0|zkfEgus@!$NcsBlE|bg1NW9^*vtHzwBABApV&$ z0R~$tGOzGe8*kwB;bX;cSJgFqG8gKEH`#%++5G4NlTT#X)wq4L%`HZjI-Bg2KV3DS zSM3Gw&?S*Uca#Ko2U?ObD1iM zGDSrsN`)dSBBDrxj2SXzD5OH>NFhy9h72J>gDDzNk)23nstiSuP|xS8{GR7Mj`#j! z@6G1!J6zYg);iB~oy$vctCsr`nuc6grc}-T0}3!dE95dwa43J#WC}wM(1)jq8hp1( zN&_rs9CZ6NIh`nCjKyq&ZtA+l2|o?Q8rk2hTwU4E_I|pGwE0x4dveM~>dFU#gG)a5 z_+^oDxwlaDgvGVA>%zY!Mmmt_B~SvB1z9n$^nPY0T=TqoB#uOz6VT4KvTwa}uU#)+ zy{d&1`snEBsH%<`5#2H*Fkk?qJ&)8+rjXYAS4kxAD$!88*>BN@WgU<~l`>}aqm-oy zX=!P4`7cTGi$4>*M|V+fYo7IUuwulA;C~nYUDk zoWCJVt$E~CJ2l;O?50h%G~K))MPV7Ozdr005-*Co&#O;HN7sCQ5%JA>=?`qlb@gx} zHHxWNJ^DR>+ZZKnj`xRISqEKa;>T;hGo4vGlrmg*IX`cOGy1&1?VfR@j+nKzbPyn%j79sC)j24CmWURp1gR;`8 z54bOPI0Nq{GB@l|HcF(@`W2<}1WR7g!-JJT|Ne_0!-d-%Q5(Qxec773X=z_6oZvS(V^olZ|Jd_ZyywLN6GSru>QDmPdhK?Bu?*gm!zGGURe=f=|fcz#AqhPYH*w%mg8ULL-1%yV$Oc2o)UXN5t=%edE zZaA7^tuJgEvpu6(u2b4rv&@u<_oXR6c@HOE_Z_43ZAedTHf;Qe`}!)L_g^mqI-yzf zJQWV{yt}?fjP{@(RAqo+teEv!i(QIqw=fZd&~H304A>YmiPsk;3F!!#KoZC>y&KuW zhh5^;KnSaT-qyu|$`}2IM+J*w+w0e_2|bpUmdbRz@U_f;en!#XlbJF=KV&|+r|jz5 z-D&OGY`ap-E`=r=_Jk=|bq$qs@nN$0w;`deE_c>G@skFMA0@ec4GcDLo{71y6+wlZ zN@UrhU&QXI>?*p3YjFbjo{#?Nsi*;oHPOIqMR(dkQf?!*D2DFk#3 zE(SCzX21w+Eb|wOlXyVJ=-pP;I@e!@(wMNSQ(=2NdX>fJRoEDr|d`-J~Z`=C8+ zf1(ddcuRHaixmu7C~JQs4imQtZuf%h|C(nulWW@SG2ZxLfg3smR^-p`?LXexVNb^M zvGg=#i(U+R#-AnQr&mf{ib0Zz(#Csz> z##x<7sU^CvxzlrA_b*aC znfNM*=_ng#geA9PE{(L8j?PNhntG{#I#be4p8P%cB>8vezmMduQ^1sd%YRh?V*q{s zPD5Q|s&;+&ioA16I-=#kT~y1ZRW;p`D*toZLyEeP=AFA;$bD%J5dKenpQiRlzo68m z%gHEb&>YvxcC@(vr74KP1nXGN;6{nh zC1L^a;XtJJ)wei_spP--)(h=fM58qaTEXwlJmkLm!f5&bKL4n$UTePpO>r^ZaFhib z&QEQR|z%}#6Hs(LoDtfUztp_`XW(3q+lqUU> zgp3GTz0k?snA7!!*ou}&bQ+8HhwoOX_w8$Y$|m;CLLeuMR(5||HD*jIe`=#WN3XYX ztK7!dA-GW{O*qVZEnv$dXOme-pw#QH#dt6OyYO-? zaGoZ0&$RJ)wky>FmF1v$Yjd}L{RB+9`d74;=E|TAN1aD8avi@bJG&5fyB7<_9&(Ay zp0Qzj!RJBC%Qem0%Yb9U)jfRp5bl;f6Ld6gh%~lu6Ei_?%;|DNK#Qa#osFMRFOzXY z(!9#b+dx&v>JB^<1DjfIznvAeiO9getn4UyL-pJX+3lAG^&SjUF!K;b^GIq0tk+#D zJu}nBRi}keq>#LjI47*J`xDwd9GGr{`GE}rqWoT;DceAz-Tue5SAMi%@wY4 zTpUV)kKmf*Lnt>ky>|WVJb{y5^{LKr@c^5hK!)>dvF-2LJx*WihUW!&tv>i;)&Aah z@7<$%Y_@y?%`+qP^nT`bFep)8X+m_p#)}8-nJ}P^@({n94QxJon-*DjNiQMd3ra1^ z!5)Z$EZ;}kSP#2jzZ{X8>gZ@N6qvYtPWNu&&`VhJ?X7uy{)Pq_-~#)JVGW0YjtkiLKiOZk{eGo}lDSqYHb4>A!P- zhaUc*`_L9?{(F_;Y)s9qgNB;VPLK9grT_Y`Fd?8c-g$_G)QM-Ob+dB6@3inrLP9Y8 zc#gMa--!mOr1D#>o}J5seiT`2?9>k+RS7TO1MEP%tt`n=uZQc2=&?()xa!S2>-+vw z&VE7y0|tpIX9G>Im*Vd3neDYR;*9ax)PRVOhI!R;%AW#uYu>bWmdWM+d5YphdFQ*T!?Ib4dcM2cat^{ zp%G~POjJFn2FX@lp~{=(E;w2cNhrQBfyKcjo}M*=)zjF<5VrV+=gMABeA{%)9y}yc zMX$KEsa#m6E!y6%T4rqsNQ~^;B3)%TQ%*+>8M2%+a_mI(8v5igltwS!*uxNn;E4mK z;ebqM))^EGZrZ_^)%Np2i(_tS`RL)p(GAgr!@fXFH5(&yxz>c&)3luc>Ej|vXcRuUwYGdjlv4d5rK4O)T20S=!L{!BMuguo_4vsMz ziEjn7u}Dr=LRY$MpM3HNXSOT-g z+oaZQ+geVT(3LJ}5V>jjwSqte0s(3`==zR|oD$%$X!urX)Xk$UMDI4 z*c|JPu497t9@bP|A@dk6+sGt*#CYwYL!T}l_It%1^)?f(rMIs8NebEx(toqzGKJp^NuoN z!hv*QeY!8vkny_Ow_QkU*N!1=UE9BPov`Z#S`RDP@=@yDJ1pGpQ11dYv}DtVwsI$o zG#R`_8N+70Hnt*=N_W!n(J$R}PhAaq@!|!-m7N`kr;Znb*>H0dsiLub=Lja=RRHyocN-Aer#+k=i{jQ+-L3Dt9R!qf!Eo^AKGzb zu;VRYe&9O;AXGtAc3#9}q>1OA9UrlB+^^Lz7Znv1r-TDpQN!2>iBu>NSVk;eyUGBk zeb69eATOP@S8>~ zk*GYOryzVqC4WKI14wmtMKNv@xsdNM16C1tFmy8dgr zvaF7#d=`!Tk2|uU2L8W$>RDpvfxpcAb&>CgYQCF}YbK)d9ib*MR^i6k&v-`bFx0wy z`b#ns-Zy{xv{=;?B9BVzM#opg|8jAowc-=@eyy|6SE{(C>W17;CF(Dr)Jw#G zQ$+XR^?ZGpJW7|#1)uM(&%|70&Ak96BxR#DzG^?45 z_czDT$nul2tBg|eZ>(F1Paz5Tjzf3u-p!(^oLtPa0O->F``MT@^J@G2V}>NRwDUG@Sfp9HHP(Ki3FK6mSU{^P+dw_mNOL z5xMZl{I=;tsK|=i>)3UPI5EsCdesQyW~-L^K9*bp+tL`-HMqQ)lc9f-230;{2XbUa zZn(*rP9nUdOuXfKpLwjjJl`F(73T2B8krFmS^2dF{)&*Nm2vUgX9{+XzmLb7J{`X` zxYt|P8#@{<@ajO{{+))1!ZqKrjqHRHl3SoM+op14%A7vJp$!;AtKjUB-kk_OS7G6j~fu4se zd9A-_aDIi3k8Ie$SA7BDQrunYL*h20#i}cB*8P1|w}c}WCWSUc5R&s%Z9!J(mDWsh zway5Rs8kp@KWqo_5>`>@U(yo@)P%$LPJ2eJE?a|<_BH-zx<*02X{Vg$&(~XWDqqA%{Ep5bFTzBB zf?FRoH79D>3BAIvBCjHyPOi$Em2|etn2(gD$Kk_xQG^a?#tHfRT#&+m@LMH)0XaY$ zbYo`mq$Mw|ULXdf%SCONG>!${v`c-$q2jTT$)w1dPftDh5alB~*gk2OV0}I(aDP+;^8$`KF?~f~C(C%aa?{Q@Rl8cPZ&a zQ|q62MMX0nuwmyo--FjvPxfVQiV(6QoK`g@tTSoiqcC-<4-NcF-k!(L8~nu)0cR_m zNmo3I`kHe>xb1ftG`pH^uv4?beSzq5b8-lPtSYq?Itk-uOG4B%wo3N}2gm-o8NJe? z#f0H~m>NvCkKMC3V}(sPb6+WA5yFa-p&)KR#y281nEgdelr^z9KlL-iw47lH*<3L_ z*EH3Sdhw*dJ^5H*VAO_}9KzVP$8tSAyUef?+#&Z5?x*1sgYg7V=hmXlqN_wZHf$Ad z2*K%8WUp90`1tvWp{~3eZnxj7)wt>TND)d*y{x|rBjpp((TOj=pcg?2S{Ja@jY)sh zM+|SjbMM}S{T-E+-4hBj{{Aj*EdYwT6W^k`@k=CM{@7SS3 zuEUOO9f{|247oGdsE;&Z@-V!hSJK+hu3bBET2Ijy4oLZn+eB;HlwZLfcy;NM1#o)+ zS*x$j#)VB@)Ecf|qip%^Z*|*0H@6n|>1}S7lhym_OuhZiuD-#JQ%*-uckOdvXl(EU>=n)i zJ16Ss#4qfpqiQ~S{}Z~$gM-ai91mPSVt%q=+^dH_70ib}TeZ~Tk)c7{_oOclBm18! zTUGe=VE^@=p5UAW*w@9yz{=k(Y!L(M0Z>i`BtqxdQZq^;D=wZtA9kfv$ByuT)&2Eb7oeDI->uuC z`Sa&5T!=roFozCR4+sq{q*62(HENoTjqi%3>(^i3z55}1kw%blweHv7G;O6b>LAB9MAD26 z)7L*)uM^WsQfw92WVxSfrj^-B!*P${6IZNUiT(?9nB^{%nf<|X5u=_sv8}81v}v@5 zT@DI*25A>OvE`c&Frk${f4aN5g*jZz{{+srgmTf}%i8l4KpfU@N1v}=u|l6zU0&dTiepFGh;sWkO|irckKe-roY*;8~5;QuslhcQOG-qMB2_U3WGx;{_d`10+abas0^SNFMe<;ubZ3s!k}#Kgurwp3EQhIph|^X5H9Z#bN6 zx-TwnshQb*G6cm zK(kF?dx7cWAa)1Nw4GnXaBpGEj&#W3D*63=*!8;!F=#pvSf+&$K#`- zazTR#^uTD%`aVkOs6Dv7@DwvLGMYNILlvp)@0uD=2m7_jM|&D>G63M&zrTIyJB}^k zK^wKc{&_1mu9m^)xk)eqUEEGDUi@aBrlFzHOiqr!6nt-XM8u=pr)s?tDBrt2JsdtH z@V^7zg$jvHReJH(vX_Ho;5CTJmyMaf{`WVddvt^q~cxM2fHN3~jBULN6+T(0AfvpAm2b#WQHgn?j;KPAM>{7(cpl%Bb*oMeq!awJU>&t1; z7*f3F4+}`M;R@c~iPMuwQQ_xrdRDu$WcZu#M{g!rs=pf>{Nu-JLK~cXJL5pw`$&b} zy&L;?UlDCfKg-Jp>*!qH@Jl;)$e5!HH|jlj@cC=kf<5s!`TOV3mMvS{91_boFnoP| zSrbn(nA6a$TQ_}<2#Lh3TSrlN@d?d0>pVJT<(=#;g$gMuys@rDeV>dg zDX1B?RSdL_bP&)p41ctt*nr-FMvWV>C||y+$x|>s7A2pZJ9dmK3(0A5Q%NkOlo%r& zSDzTyfU{?jJu01DG+~{!tCXyOoElbYP^`7JwS)oI zs*SC0mMgrGsHQ5@M#3%eHJ8txIWybNP9GEX#s?wuzX#EJ)Wn`oo;~Bxz;3LT5fbh1 zRh?+J7Y0ZN?+(D>=MY176yF)8p|QnSGZR3$$uDl`WSc)Mr#@ZqF3 zXn+n%ztPS!Zv6PE#aFIeA+vGn{g#>u@o3Cv3dPXj%eU+k1g)ff+yAXYle*kk=1MFK z35LdP_1j@eQ=YRcboX*a@vwj|2{4vY>?HFs>YGU1@g$tV{w@h-@KlWc_`Vbz* z^XJb!3WHJ&cS!u(4GQYkuH6MnC$@{V8eg$_^Jc=<=eiGnu((68XH~%FgpS^^W5=a? z>ORtMcvunVtqbThfUD#uR;Gz-+q<|ikVq<#$ntV|wa7>_Jr4C1F>YE2{tuCDctR45 zbTb``_9ilpT5-)JYHKRqj72%kTCatso#^KFF;H`=tU+kTyRO~3eShZ4*VK^Em&n)5 z;h+?&Q%mclgRhSdJxtqb>)*-#){XB(@f3m~aGcw$%m)w5(YBNfH}>EM7#b$`9W|Rt z4yu&IZ)KuoPMtlA5=4B=%^mf3Ivcyo-f6c(drI>xMbF3AuC|v1SV0wrhC0~VcB#sF z{CKc|!HawMT+8DJ%}HA9=$KkuA+O4n5h!y{>Xb)*rph2nKDl!06o;Z_*2?MPBrr2* zT&ixKUR@5k9$c^X6Yce+5@;FC@#PrGH_;)2CGc_5pY5U!KjsQ(*7^&UL9V zu!Q<`<-rW_+@g1n_5(6abvPI}8&l71(F&d{H>KHFr3+Ju`ctQ> zRZlBd&n=1CrZ_N8z=8PlcQEF4$g3_MRzR-LbK~~0#<&=CKZ=IPjdZt&aSV>(<{Rq)cbTpj zJh@r>R%4ag+0L0W$HvB^_+IN;+vpDFL-*OwULfVTYTc$y68Q!9%`h*zX80$oT-9{a zq^z8r{r$3pmzzc3PRJNLbI8ZfI78f^tQgWmuD4uJhW+`uP3lH|2f)LXUT54qGm{c1 zHbz|iyNip^S!}SQ(s_uk=FOYJJkq^;9~Tr%lyA|n`GebN?0En17z^bZodmV_c}N-Q z>7Xi)>*g*Td+O-XqvAk1ygcgs-~%7eU%1fj%tMw^Z@Gp2Bcd$_MkghOmY7bN)O30l zMBIhwXjex0&i!za-|m+Mw!*lf^0gEuqqMZnS&shYlNxhNB+P{Nwr%%-x{l7>4rMqC z_LFcys!1wHV_^Nt8Vc`7a)kBh-lkg>uX&X0-?pv!<+EX7R#T>YJCmF#-j-2dxKI?6 zkY8X}$Rc<5N3QW~T@)=V7M4?Uvw4`s=NO+)klj*ORPgepJyUnGv%^oHhD&kwoucyz zLQZ$^;PQ$Je)|8KdZ8^2E6%-oLuyDJC!%P2h`KYmOx+G@8Lg#-5EwrEiSkq+jig(@o% zvF92%S!P473Lt+^POhVE{kGB4aqzVda&r&ZT{AK-lZErTGWd_8)!d#yi%3V86GWW>oshj7h46%*r61-5f%am8BF zUI34Ig9rO>dH&pv3lyiM7RrM;>pu^5RTDuz#f@WDJP{*pDkw@4?omt|sC)iHm_eGF z`mj=juwR_^g9q=m+Y{S%8;nx zjvf;q+D#sL=)Zq?ZDm?P!N{RQ4~oiEiWDyvSOz=sTr61^Ot-HL5d66cjU-OMubIg$wt4s$Yz0T zyrzGb0R_#B#&jY!F6nXp%9UYgsri5aFpBx^yx@?K#H&|_j~odLaIC~5;tknGTwEL# zgO8NqjzAmh)~|27{I4b|(X1|qgMtzmv7y?xxiy4dbAI;1S?1=kmo9l=7nC_p;FR9` z8tZB!?NNkoDsnzDqqTpL@GG=#-9nWO!-*p^S+(%_a}t`FR#suLu?!X(h?uwX@ta}_ zB=T3d1X57=pZWT2bQ+3kh{P1$So4@{@7~rj53R#Qop;U8R~0h_3}Oq^s)zh-=)k#XM&S3kK~(U9q1%o1oXl z^}BdKDfb^}i-s~jKE~6hACl(q%8Lr|6kJ#gf@A4b@}qSdzud=<_XY=xgR!ON zsp0)JG=_uq(p^gjZtLjy!Q*Dly6!d66$13|f^prS=H<1SqH?%ei(H^d!pT;9Vu;@L zz5pcwEeBtvwR?Ao{NNDw(AoOWu3fEbKeRUnngQT1A?q(HGCF7o<&Qee0W16H$n852 zwI^P?M!{G5@uSeW#qW4c(obZhHtV zutc%lzr5x^Qqm?4$ps5a=okL|b&{nemO8U$3BTpNJ2OLuW;}nck9jxyS|eSaYWz|{ zLeRc_j{5%hX>#rBGyAtzv`MPj(`Vw-c7>!*R1@#)DzNqf8cLr(Z!_gCpw)t-{bpHP zS0L=}+?@l*e8L1{Yu`r&1=mlXUPR%-!a$JHwQww*Ao8l5ijiGg-w_iNDV{~;8iY)M zy!h}^A?r6f^Y54l9x!kqXm@>NTSwnH|1GatSXgLzb2rKazQ*4EnAMaWI+vVliVe?W zCB?gF^{bd^E}R}kUOjHCX!6Fbyu|`pzx}NxR{v^Da`)jC<>hlP%&<5q?L=C*9)#%3 znZ*!>=VxhCFpx9)NLQ}>ZaqnEp0MiH*H1iiCP2!NmCjwe))0DidWc3DiSNIEV5o;sf9`I;$S^@;Bmd9F&;hYbzou>QX;74+DzYbY~IO|JT@UDaM}fWfM# zCsQ30Lu$w6cqmbm^r83+FKlZ1B7T^YBy^fc_3qrdHSa%LL0rI{wE(M8jqKd2_ZGf` zn$6g_scO{OvssTGeI=Q+@T(6oj{EPO*ie79QFlP>S<;_AfA;%paP{U*dt2KC&fJKI zd0ca3H_I~v=Oh_0YJyHH4izW;R!%itT*j4Y9sZalF^j^Wty|ZwEq@Op*3eHY{b4`X zf80$awHwN#RFn!m%g%BF@B@wak0r+OZ2{Z9JzM#O~%}Kd2{`<$B)lP zMsD>C-nXwJz5ltv-Gp9P;wz`qfPR^sL6&_JGEwcCF}-6GC+;MXv(w&aV{7|;tpS;H z^j819)*Ec{KdkEq?6N=n!i9al5t)>#J{wypHhUisK7P%bH5_Mv1!N$%JvwL4Tez@m zmoA)u%Li;dUNYWY z*2n@u=;OhyY>5(3+ddn+6h$U0<$jRc`=qwuJr9|hjSfs}v-Tdpe=LD|m^SSx)jimc zVO4!1fS8#q0Bq4mie4QMnha3hP}Bc3r#lQKhTc=POpJ}8c5f~2Ev`{f_FthZVMTBp zl1>o?K$i#RF8BGu3?I?NIBi-dRUgyqP2&LV@xwSl+(Amm#ybc* z#~(jC`x+<5En+E_&JGS#54WoDW$^X$J97B&;gFEkt5(s^Vmp2MLN_;30&?7-5|3UJ zoR3e9(34TQD6-X*6r-+7pCmt!Q*(53`hKgG7T{oM|J>!KKjrqy!!BToPJiFRogG( zH&@mN66(=WLy61KD@Z^+R;>cs>s{MJvFGx2lV>&-h0khgJfk}_F&pZcWE-ZT)BcaK zLe;cp^PfqNX=a(`kvg%<`G5&|u3wLjIh&mDzz2CPTFb+2G&~4$mo8r9=;-A`wpa4; zBT3;6gEhh2lv>~1~uT%pNwEqW~h2|QVsx5Hp!3tRlv?XNJa_liwo#A zeuMIq#sGdy-Y79lLv4%VoCzf}w|{-4qRM=c2!emnVhvKbpH)>Z@%g04q|*EoZeHDo zk%L_o6~S)J|2S{<*^45VS29#pH9R39;n5&=Ixf__r*D0aG*R^Br{gp}*3>jJbkvcO z0pd=|GaKW%cimTnqP(1=biT1W11%y~Ac`V_F{tRl{ri=#euK|)7+eQmLT9$6n5u+{ zgMT@{N_J?j=v|_!erRFSuns%4BaA*#@ompIbIWDkF58%hsJ;t^G`p1=u9D{PM?f0~l7`{lRwzY`rk~>Ws^M93_0?7aN zZAI$*iCeDD{sIjx3^TATm)|W0Pg6M&%OlkzHTDI6hd)J+9 z&2*h=_7*9dJSv40@6)FbKXv1Tn?8FFy|GMQP7=yh||{GE3WMFX7s+Zts+f z%9cOY-3usG@SgEFH`hsj%d$y-f`Gog3oPV1>X-Z)QfY(rF5^4R*Hb4rk`&Jf#1G>l zFeDvKc&D3AG^+p65^J9bh5G+8(;~k&rk;5w8mXh4n##xk0cL2Wqf?ylz_dBPI88dV zV1cR+Jlz5}H>_rMz0%nKQ0~A+Po1hdcsG{7v7&vjJ7>ah$d5hFkhT1JGbcVTRK4&rkYQWnp!vhn@p{Jx0_1dfBtOn zOmgzKw~n^diGJkJ(Pdl&$Sc`6fXLb@J*L0dSj#Yp;9xcv4BeJuur*lgReT+6b*9a* zhPRvj@9m~crO_QC2vsNGv6E9V_oaQzOk)$@f_C@YS_AG;OG}FgTN?a^B#75ZmkX9{ zgkZo~4$J12y2Mm@`L*nFrIrtGsCIU#F>;rUqW$3c>2paFZtpTp*3en26Wz9>OXxJ9 z$A`%=%CjhE?c-fr=U(%PxPHALGt+`;>$Q#Xz${WK^wo^qDhX(~ z@c(U1?~|lbUxis4C$*K;VAz}J;(#P%7fM~bQsOk1lk@uapzqf1`4on5u{@G}`>bco zxUYb9(|b|V=Q^j&Hy3?$nD&NDc+KDm-edVzM z)~qW5B`U@h-4%E!Y4^~8zK-^&8d?3nU@0qfRHB))#3 zuT*&F!q{Z|&yYu#X5_>ic>gqLQ{CS+5OO?6D%#Omco;3kSZ-z(1bxGzP=IaT~Vl6K^ z4QO}%Ts+`5sR~R1&O0TV>6NO3EYDr8{~W*6WoTFF8aNjp>HkANJd`(C0atG9@8_3x zppOBqmpNeLAZvMX_GNG0u=#S5-#RZ{I$54Ugq>I0H9nJ8|9d86&DU@_2DN8c^afgq z)UE|?+a^kTa!fZDnQ;mZk*SH32e*GTYJ6_xy*D{_TT|b?eM_tEv14+Ei&2ZRbrB~Z zb!Q%)(eazeHwJV*jZtEJ{8Z|Q88hoo1c{NwzoboaCo5|p1<>HZkLhoUEjy^NCCjyg zF$v>%t&o^%-U-u>Zh5raH@Nzg?#9mk`4^nz`b2FW?N*lV-Hdmq>hrOz%&_V{S`X;j zw7YkyHSkGl@ulm?)dT!)L+dhJt=qCCeH!j{Z@+){DygWfG}utR3>fW75wLqXIg4TRR3B(PBUx}^TAgvSwu#{4LbS1aT2{Yxh+@?&^Atz;GnN6#e z%P>9B9y}N$aXv@Tsvf_IvWDy72>IVn{m0lEVRc2~2?}!h)G3x7=^?8FYUj5_mvy+h z%$wIs^$w)v@F7Z5?d&Kl{`1GFW6@V9EVXZxs!#cc z(AQpfeRLz--y{>mWMA}5Ki69Es7;kqH90)j#ZN;$T>C_*w1|;hyzGEoT|?gdvS z4L5ImL5u(Qfir7KuD`<14&d9=%rS zyhc1yNr)fd$gE%;zqDemm9|7W!u51@VcaTbR?GNKChp9dwf?`8k@Iy7ESDq>?jel| z+`M^=fK(h`TWz{%Gi_QsV|GBzSLA3aK4hd!08mm2wtiG!uuCNKnk_P}r&A;;UK@y4 z^t!n%UHX0x)x^LV=Tqo`pzHC;6OUUyEjCU@O;tl$N-KN*;vb~qkn(2k&fx_&*2R-| zi8EJOgc^#JrAwC{pP#@3pLJp0T~HY`oo4GT-d6<=HBGO}YVy@rU0U!S7Y#slKZ!o%T1|M!37b> zXA)PAIz=0zdZ9l6jydPhuE}_HfJ~D0e)y$^dSL=&uD9h9NN!NyBS(&?yD#)RY5c$I z48MH&;O*DVWMz|pegC8iO4H8|T5XCJ^Xb3@$P9qgPM1N--wp1KyBQ{LJhAbShqi3Qrz8@E_tZ&H=TCGNP@OPXw1e^J znvap>;nbp4hDpTRsZ-;xU7HDp^y9q3?K7%d%9qNQeqSn$^)m6Dhh!O{jp)_T+4Soh z%=8CV7RE*2otz zDe;;%eL7Fx-Tf2Vgivs^ej%ev<#7M4AaP!E8IIjCqF;-)TtV3k|sY# zZ>YAKGbcGVRwzXbhtny*9XHuIw0&fJJRw7e+ysKl-24GLHCjUfD=j`W6cUo6 zNs3O{moJ0*_ovk*V*0!YIi-_Ee3`}G%en_-bi zIQUaQjuqoM?Jkl{;wiH|&b$8hh;iHR{!0@i6>6xsup>-8q@a4|;lnrtbF|^LoTdFY zT(-$zV<-cNTbVD38-HUg(s}U%sWA)=NyUQgjcZ8d-v3HgiHa)ljJ#^Sluuq_))cUX zqnI**oFcV?DB!tn9j<_tBYHOG$4qWd$q^1RNTgHWtpF2*fMLeSwCH#&A)2%*tK6&? z)%J$!?Q#Y|91IGAiain%(%u;IhBr&_Yfy}XBsS7Q7siKjtFi|9qPfzo_o5_(`b3>iA z95QVh*M{VRZ^N7Mwi+-e>8PF0HoB9~oIOj`Nzztf?Y_4+3?aZdWl=(W{E-nW`{XY7 zZbRVD06WacI2{w?h6bsmMAe5uPf+BraixbLte8DFabkv$X>>j0$V=S4Yu6-FH#fJ( zIXNqqEnBu~)j>hDbkVU2RJuY+OJ>5V4*$bog++S*dXN55$j z@B*fuzb?=04^2UG=Pp+~boA&a@|{ng{(!bsIRZjZxTKE5L?NM89LkCQV-f49^}FWM~$S%RK9T$5ys~=z5}9D(2)s3deT{L z#N)ko?H4sRj3nPg?nUvdAnV#PFJg;hZeCv8>CF|czQ@PhzL51B0wL~?* z?SU0HOQTG|Efb)k0>W3kgWdw%1&5$W-M@d!2_pu$zo9fNEBlQN?O^VVww4Mmi4&HR zkHrg;zEv62>MvLq$0Jb|A&Id(^d@QudJo1;bV%HV6WFO!6Uq}(XokdMT7W<&rBmn3 zaR~i?rQEWVkFD2rqOkg2E+S&#cT}8Zi z{rYdH530`KbXkeoGuHjnr|OQ!!YLGiT_8SrFHE*6pJ|!A`f~_MD_7S(s&Bc2_A{kQ zBUdk8wd!(_f+Lyjj(~vf=bNn~>LHcjOvq7`-VyGhIJr^6b{S}Q$D^|^-E+3!o`|^V z_B#+6sg^6u5BV4cG!lO)-h>qrNL`pW(1K;NQEU|!7T&&nyRguKxEs5c$!moSvLhr%R^VH%1?L0@a@c*quMU%W^wVjz0g<0G$nLQ%Pw8q z?oWcKtE(&D*@aU}xm!0x^Dmn0;WfK2T2vO_??AKD=gwjJsEIC|wa)G(;^3Y0@uP~* z{q%I|4`6ZX>_;r9oSgQPpo!GeR@)4Bk03MvvRMN(n1!!3TC&K!*dC5FNKZ$GTE zSd41q+c@-SaJZTRigKP>>Om>)t-#axiMxIsc@MOcg910}9sUKoXzkJ!fXU{9-Ua0KoOLB1NnWx-cG>)*! z%{~OqMfMI<#Mzl4cHh`J$|PN|1yIUBqL=PA)OM0~|JJrsX;~Qj+aA056g?~Y2l=LH2qvt(;K-_`XHXI;_JAsCauXqJ5b3=x=* z$Xdm=;G#>bJ!zbKM_96td+8L@2}htB_UBycaiNKM#CAZ4uCqk7S_G)kWyYHIvOo+-(z-@%g)7Gh;IjS3D%ecJxNLzNu>Z1d>W| zyQZdQW-v3iiKlw8ZyM^99V(`Bnw{6qr;BKyu9hGQSJ`iZG{|`OznI2e0V(F|L(k! zk`ngY(?L+}3*%kL!g-@Q`QO?fIjVE;TxpZkmPLwIx;hI&ehzj3+ z{20BgNMhfZs~Yug1V~a2)00(USYr@4bdueySvVytb?S8R$dUfTFW;vAMUW@2O4iFB z1yi8pY`1WQbkWYv1JfTpGDLxncb2T-iU#oZWMjQq>fl3^F4J1)Bb2HdGb`GUf1E`;6Hs~@y4aqKDMD>II40&C#7XLaE zg9gz0|4Iil868%ylU=f4!8%kv;m6mbLjVD)ZPt@jX=!Fw^ws6U45ZRLLxS0iNs^ki zG^Egwrw&$ ztY|J3eTf(K36b4uz51%A3WI{m-oIasG|X5iK*eJ8JmwYHrYH zFFFmunCfnmeQy131fpkX)pic0gizuZXDmK*FJqiLEW+0B2gfwR?&B5Q2pjxlRFwRt zok=8Vc-1%4`Z|`e=@cGX8X77-AP;P&Vu;;Mc{{B-rKHZUYK(mk)c%1Mnw@&|$a?jo zynJo+N?P;Pt5>iyfDU%<+O@>ZO~t2t?G5+{NDgFxY)j9zYt7y|tyk>1u)P`u@X0IA z@~R}m2xow0iCv_%NGd2F_EMu;}*A%fs&{&Et^uxQ%|{n;ZkI#*S^SYC3i5O7Sdgo-QU?lKCPSK_eqcPzD8M z_&B}|hJv4cVDdgmgHBu3=MH)oef>7S^$7?*dr2X)TQ;Ux^O`hP?y|JF-azs69I*;W zZ1-P7DFF{@%|Unm4a(v!83x@>mP##DIc)gQFhUXmhPM`X!10?#N~b=V%A}L`;m6w( z(v+2jlaA^+y523UQm!NZvx>t zr}osTxgfK=g{M!EH&gk+dl8agDqy#Wfe$^FwaX#@D=5hDXckhMi>88CX&=uK`&mu9RKqT^)#p=gk8ZP&@jUJ-n~W}?<7;t z2p8mGd8CCeUv4DCahyf2UnJegbEi_J)}*DHD*ThxT}#Y0uMdzL83ev3z2X+O`svHz&yo6B2B{MITW05t*Rf&kvlYKwm%3pX(r% zT1}shPl51$*imsO2=bowDh8f-JwvyQxMuD|-#^!D_BZR|0s2f`c~zRE zl-AV?vnb@%21GZ66|-YVP?`T^U4W)`*41U;;+I93SI&hLLW`|@ypO|lwwdYE!()#g}^=*7$GCW^5~)#Tkb zZ``QSDl+Tj@^M0%WZ^YEe#XApQ4pwjs5$Gl)N6QwDh~gO_gOYJ9lZ)}-!}O#fyMBN zWx(K*=~h;A7cb6K{`&dzr239H*41CeBvIa3I`(bSu3g8DQ72A_!7LD8s-Y1vF;^+< zIM={YE97F8T*SAJAwUo_fq9`Js;i6lU_YP}7|-P2Jz{nOYGh6$Xxzoa;KE(8PrNm` z{~$V7@4jA!PY{UaDgre%5#E>;NDELnVW9;NyXJT?-MN6Vx6N!kq4lN4L{Hz1+ekf0 zTWzOJLvtgB=|*;GjBa;QR+5dj&26Boqeu=DV4G<{Q8fka2K{@qqQ$M-?^aY*R>qv1 zKsTrKR&hnMwxly`|(V5X})IM*`6$hBS{U+U(jsH7wY|7mxeV|qCufk_8KNVm*t{P@1As*ar27ANMV1FWpU{NVk2 zVPm9FTq#NsoV5}Yu`(FQp-vNAWT+T3&&O2hAK;-+pP84h7wA*!uMs{28PZJy!E<_& z+Ca=u-R;_SHZHESfdyI;K5SZMU|n*Nsd;&I`E6QDE?%5sZZ3qT097?pEolb3c{DdsT1VWGwG@d-<9*bKqWy z8w*;s@L0HH2?frDOP9LWoV$&|4-y>CVF=03`SE>eAfm-Wy3kBAB!}o68oCLeLALv$ zLx(6csH8dKc!nsNs2KCCjt$~s$*jE1>tJH_X-Vpz9ixqQe>*(t2V z!;chvzhJSnYxnNF?CkA(_9#0a6s|vfzH@Kyk=DPfRG&>t; z+PZY2`MxToP?Xq2r#KoNVO($+U@nJ~enX$r^!>}GI zzQTb?6$|u-7@l{P8t?4lLUKuKxok;&A3ON(odYfn8VT=?+jsAdw!@B?MWyc!4xHgN zg|sxUZp1qTFz9P3RmJGchC=Nkpof$!0<{cB%H;WW(wRUy6yv;e>MfeKGBX28OjUYb zjE`q$jgfDmpb&UJA``G2GJ{LtsNEG10EVJ=73e#j2nKn@Ee;=kxL>gO{5hujb*IND za!9c%5D>7~1pO8oI{JPpc^!BX+l*u8-hc)-42ic=Lp%IO9flsAI@M34(u*lO=ml`Q zUWN3ydg|Q<;B{kpF%Rm0r4ks(b>>aJp5LtEF(O+;@id~f@ncST>*!+dwg2JxHDiXN zYVU^r4~sM<7h&aWW@ff}^$#o8!Wsq|Kv+PZ3v-697n_*f0NuQI=ME2>T%)4wJ~F!c za7A~ilcSiN$mgR><1!05I&uwV#qQ@6;f5>UD=bN%x$*z6AbCfBNUOeG{ZFufalh}- zK}3y^k^w3`8M?aWb&y5oRUOqM8P3XRI*(#x(Aqc@X| z4!;l;<&0vRsm%Zy%3X>@ufqa4*F>8rL_8+9vgPr`VfD_i@<#TA6 zhqGiPW-{zE;9s1YEKNp;!CPQiE#>84c^gHC17Q7GD+=|9~kQi(!bzr6G_w^_{g81@{7NGN#bN?&(}RG{F^p?-P5++ z4HsQs)OXUr6EEhCjUKL~oj0)4zJ2L^mik{U8s=oXuTze0$l^C`FFJ17*;RL;cbMu< zwdiZ9OBb4iY>S!YJ)q#uf*E&rKYlnwCwlJGw1IPD%kpm7C3zW`-(KU?s{azLvUN9W z-5&m}I%?UWsn-j=N3kHs!BvYYR5)|~yy>!XhW)^V7upYtcb$ayc3zGW|HWj1kS}uxLLEQs z8Q!ZYrpTi8Kv~FD)qR9Oos^x4Bo+CdbLY}&@EpMKQPWjTlLW*cp4 zW9o6NLChVxei$Zy)p-=YYhv;yPLhFTW5k#Hhgeb5-LvX*K*?dxO6~m*oVmAqo@H=6 z^kYD78jL7jKrpB6zmh=p`}c1Xd5$FFxznYg@)r;DpjMMJDp( z7+^x+cF!mkCH@NuT?M;ECY|W9;GzR( zA_F4yOJ^A{I|>YZ(wFWXjIRQOdDY||7Xae#Pw^Z94-Rl&-5%vedt3kf#WaZvX+67b zVqPHEc*s=8y(<3FrOF%IO^6V~j(jdH^~501aCdT(Yd^nw)m^`EVL4q9T{e|ZXGhiR zqhInA(maGZSH;+vO#HBSQsoIP1XaDu#xqrs{yF8lJCD;i@%dhV%jOXDE&FA9=-=cA zbz6E>b$qd?{5l*E>!?o%`87v-?^hETLrT1{{$p2zd`Ju`B$@uUjOq_!neFcKt(3F++OVMhj#1oG=afACaR7mdVeOKk>e z@(A&noXN2-ACCJ2CDO!01A_5sp;Mr+)+UK%On#yK_v3hBDM!Bn2l~hHhWZXu>o59v z!$lwe`)R&-&3U}yul)FN?=Fh%RQNL~fdKP%eFZf%z*nENfvuB2JWH;v0pmpulJI!23UrQSg<@PdJUW;S)k^Ee-ko!{R1AYq zXS~e+Y42K_nmmJOETYj$L+f~%4(LQKWheqtD+oa-q6kDNLd6S$I4Be?#HN}cN}>c5 zp(05mAdab3t5(ISZHJ2(;sqJ71LF<6AW@1%bZmkU5=ja@`=;&mC-g(|1;~WFPu@Jw z+1;~ecfmdaqrhblxu+XSks%BCDC^QIaQ`VNN=IZHO_&IZ9C4ZCnF(^~d zPN)p^NHc*PR_q0>iDZY$+|}2uClWsmqb$EvPT^0{ics(VQWGDDE*ev)|Ua&VSE`{KNClAbx?#!)rg!&ZZGk z5xbVrx?*yy>ssE<8|1@*yh!o_q|$sw4|9TtK+@k6xc!6=3cJ%#CtrvqBRo|YGVB92 zC!b(Xakvdbx1(LmChUEb0)?^rzuGasxn~8uMH8@+C(~=}I3?%gk%;w4Bq7sdmcZ8! z1-N$Tkc=?<*c9y@*p8GGNm-&0rV$1)5kd&s4+RZj;sWpG8Axg$BVuxx{fz7V#CFpYJ9D{kkoq;a2CcU3M%7Q zBAFfc94`lo%)y!249#nY6%A(ye@Q=@v#DwSv}?wL6=>dxaMM!RzVr8n>{(7uTQW1F zI^fi*D|YRUUJi~BLA|H){efxnPj5JHoP+GZ)UeYKt(c{3EVDLL%sxr+~;FZs4OSy>vz=3>)_LIoC5SKm3($8npz?Z;L5OFiyIXVg2*>d zITA5)>)CmORW9nQ@S^gATEkuX*T{2A)}828af?WD<-5O&$^hLD+zJ%+--?*M4&3rZ zbc`}x;pFKb>++1RLSPrqHzgm^$S-Oh zFX%Zxu41Oza6Y@hQH`lrW9TvLe5Dy`p+?IyAM~|YsEmSV^g|l1A&qmTFK7}9xX8m` zOnPFXf6vPkE6$)o%ynYA>#$BM!Qh0%goJZwGg&IJ{8km>x3l*S5JWq8)L0_k%yI{; z6=JppOp*7RpPvV5-?Txp=G_|)>HF0Sd4{v_(uHt_a1YKTWWwb5cL}boiX~Sqyom;H z`5r?7Hhgrnfql{AV*m@a3GLVq9fHdzRH;7RjP5oxT^J{RF`GtAz)@F}zcY&`Mu)#- zO9!jr(KeBYI9u?FE!Q}^o-al`4{?zXvOpdlVwhBD73cv7hPnzSy}n*vrEtT{!$0AU zypC6mBpkRw9=N;LF(d``+d)kkAn;80tAueCs*s6T1(XIjBAW;SAv?9ZA;%?XgPn8| zRhYxA#JIs|$o=i}T$NFClN)Mb;^1@%df-p6e5cbv*VyL_KS)RC9LZpn79qzGqXU>! z^TST{g0}c^f}$Ysk@2y?faz**$Y_=r4IoC+S#~grx=KMggJTcLLg!uuefk)LVSw%nwq)tXDUBNn|b0~_cN;^pD7Y&ukK z_y8c{x`T~fisQHN8k8Mcn9s`I=vSFG4`|!g7TX`y!eYJc6dC?WLL1y{ba%-$(J;uq z3~%ON0zzn`vs|`fxC1hSV5kZlp(_@{q`0+@!6nSxvZV{I4f%bTro}t;5u;PljJZ&m z_tG8$O{5FM$ZG<6ptQSB9SGZ{QmOu3l+$GdlO@-YsZ}(=pBgEQa+iHeGXk;V_vj3; zx_<-_i7;~hYUr?gw_EGjYD3A7dE$IC&94P+#0C^W)j3;J2;K+D^or9F<5IugG|W!S zJmtl_qdtqvykn(NZM=-p#~P@(faJ)~3xlmyaY?6d;x<&#@C2#oByDLr*}`CgXBI2T zgT74bBTm3f|6u-zb8P+RX-E72yu|i2b6afp9?O-|mlU}qCcHXq{hq%7;EtU? literal 0 HcmV?d00001 diff --git a/docs/images/synteny_linear.png b/docs/images/synteny_linear.png new file mode 100644 index 0000000000000000000000000000000000000000..368274193102a41d112279608543f466d814853d GIT binary patch literal 108201 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

    @@ -191,7 +191,8 @@ Hi-C contact mapping experiments measure the frequency of physical contact betwe - `synteny/` - `*.*.all/`: Synteny files corresponding to all contigs of the target assembly with respect to all contig of the reference assembly. - `*.on.*.all.png/svg`: Synteny plot generated with CIRCOS. - - `bundled.links.tsv`: Bundled links file generated with MUMMER and `dnadiff.pl`. + - `*.on.*.all.png/svg`: Synteny plot generated with Plotly. + - `bundled.links.tsv`: Bundled links file generated with MUMMER, `MUMMER/dnadiff.pl` and [bundlelinks.py](../bin/bundlelinks.py). - `circos.conf`: CIRCOS configuration file used to generate the synteny plot. - `karyotype.tsv`: Karyotype TSV file used to generate the synteny plot. - `*.on.*.*`: Synteny files corresponding to a single contig of the target assembly with respect to all contigs of the reference assembly. @@ -199,7 +200,8 @@ Hi-C contact mapping experiments measure the frequency of physical contact betwe [Circos](https://circos.ca) and linear synteny plots are created from genome-wide alignments performed with [MUMMER](https://github.com/mummer4/mummer?tab=readme-ov-file) and [`dnadiff.pl`](https://github.com/mummer4/mummer/blob/master/scripts/dnadiff.pl). -
    AssemblyQC - Synteny plot
    AssemblyQC - Circos synteny plot
    +
    AssemblyQC - Circos synteny plot
    AssemblyQC - Circos synteny plot
    +
    AssemblyQC - Linear synteny plot
    AssemblyQC - Linear synteny plot
    ### Pipeline information @@ -209,7 +211,7 @@ Hi-C contact mapping experiments measure the frequency of physical contact betwe - `pipeline_info/` - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.html`. - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - - Parameters used by the pipeline run: `params.json`. + - Parameters used by the pipeline run: `params.json`
    From 7e9872e2961ea310b25672881516dbd34c7813d7 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 6 May 2024 12:18:01 +1200 Subject: [PATCH 29/76] Now pipeline can continue if contamination is detected --- CHANGELOG.md | 13 +++++++------ docs/parameters.md | 15 ++++++++------- docs/usage.md | 4 +++- nextflow.config | 2 ++ nextflow_schema.json | 42 +++++++++++++++++++++++++++++------------ workflows/assemblyqc.nf | 8 ++++++-- 6 files changed, 56 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3d67040..32347afa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0+dev - [03-May-2024] +## 2.0.0+dev - [06-May-2024] ### `Added` @@ -11,20 +11,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 2. Removed release-announcements GitHub workflow 3. Added a list of nf-core contributors 4. Added a launcher script for local testing `local_assemblyqc` -5. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links -6. Added the ability to create linear synteny plot in addition to the circos plot +5. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) +6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) 7. Updated modules and sub-workflows +8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) ### `Fixed` -1. Fixed a bug which caused NCBI_FCS_GX to not resume +1. Fixed a bug which caused NCBI_FCS_GX to not resume [#80](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/80) 2. Restored the original version of `nf-core/subworkflows/fastq_trim_fastp_fastqc` 3. Fixed n-core linting 4. Updated `tower.yml` -5. Updated LICENSE copyright to Copyright (c) 2024 The New Zealand Institute for Plant and Food Research Limited +5. Updated LICENSE copyright to Copyright (c) 2024 The New Zealand Institute for Plant and Food Research Limited [#81](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/81) 6. `RUNASSEMBLYVISUALIZER` is now single threaded for successful execution on both Linux and MacOS 7. Fixed java memory overflow issues in `RUNASSEMBLYVISUALIZER` -8. Updated `FASTA_LTRRETRIEVER_LAI` to fix a pipeline crash when `ch_monoploid_seqs` was `[ meta, [] ]` +8. Updated `FASTA_LTRRETRIEVER_LAI` to fix a pipeline crash when `ch_monoploid_seqs` was `[ meta, [] ]` [#83](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/83) ### `Dependencies` diff --git a/docs/parameters.md b/docs/parameters.md index dd749c5b..e9a4df43 100644 --- a/docs/parameters.md +++ b/docs/parameters.md @@ -18,13 +18,14 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and ## NCBI FCS options -| Parameter | Description | Type | Default | Required | Hidden | -| ------------------------- | ------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | -| `ncbi_fcs_adaptor_skip` | Skip NCBI FCS Adaptor checking | `boolean` | True | | | -| `ncbi_fcs_adaptor_empire` | Empire for NCBI FCS Adaptor checking: 'euk' for eukaryotes, or 'prok' for prokaryotes | `string` | | | | -| `ncbi_fcs_gx_skip` | Skip NCBI FCS external organism contamination checking | `boolean` | True | | | -| `ncbi_fcs_gx_tax_id` | Tax ID for NCBI FCS GX. See: https://www.ncbi.nlm.nih.gov/taxonomy | `number` | | | | -| `ncbi_fcs_gx_db_path` | Path to NCBI FCS GX database. See: https://github.com/ncbi/fcs/wiki/FCS-GX | `string` | | | | +| Parameter | Description | Type | Default | Required | Hidden | +| ------------------------------ | ------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | +| `ncbi_fcs_adaptor_skip` | Skip NCBI FCS Adaptor checking | `boolean` | True | | | +| `ncbi_fcs_adaptor_empire` | Empire for NCBI FCS Adaptor checking: 'euk' for eukaryotes, or 'prok' for prokaryotes | `string` | | | | +| `ncbi_fcs_gx_skip` | Skip NCBI FCS external organism contamination checking | `boolean` | True | | | +| `ncbi_fcs_gx_tax_id` | Tax ID for NCBI FCS GX. See: https://www.ncbi.nlm.nih.gov/taxonomy | `number` | | | | +| `ncbi_fcs_gx_db_path` | Path to NCBI FCS GX database. See: https://github.com/ncbi/fcs/wiki/FCS-GX | `string` | | | | +| `contamination_stops_pipeline` | Skip remaining QC steps for an assembly which has adaptor or GX contamination | `boolean` | True | | | ## BUSCO options diff --git a/docs/usage.md b/docs/usage.md index 1f2bd37c..0f4214ef 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -48,7 +48,8 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p ### NCBI FCS GX -`ncbi_fcs_gx_tax_id` is the taxonomy ID for all the assemblies listed in the assemblysheet. A taxonomy ID can be obtained by searching a _Genus species_ at . +- `ncbi_fcs_gx_tax_id` is the taxonomy ID for all the assemblies listed in the assemblysheet. A taxonomy ID can be obtained by searching a _Genus species_ at . +- `contamination_stops_pipeline` when set to `true`, skips the remaining QC steps for an assembly which has adaptor or GX contamination. ### BUSCO @@ -70,6 +71,7 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p ### Synteny analysis +- `synteny_plot_type`: Set it to `linear`, `circos`, or `both` to generate CIRCOS or linear or both synteny plots. - `synteny_between_input_assemblies`: Set it to `true` to create synteny plots between each pair of input assemblies. Default is `true`. - `synteny_many_to_many_align`: Set it to `true` to include alignment blocks with many-to-many mappings or set to `false` to only include 1-to-1 mappings. Default is `false`. See the documentation of `dnadiff` for further details: - `synteny_max_gap`: Alignments within this distance are bundled together. Default: 1000000 (1 Mbp). diff --git a/nextflow.config b/nextflow.config index 6fa14fdb..5a8128aa 100644 --- a/nextflow.config +++ b/nextflow.config @@ -23,6 +23,8 @@ params { ncbi_fcs_gx_tax_id = null ncbi_fcs_gx_db_path = null + contamination_stops_pipeline = true + // BUSCO options busco_skip = true busco_mode = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 6e683bfb..432f3f82 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -59,7 +59,8 @@ "ncbi_fcs_adaptor_skip": { "type": "boolean", "description": "Skip NCBI FCS Adaptor checking", - "default": true + "default": true, + "fa_icon": "fas fa-forward" }, "ncbi_fcs_adaptor_empire": { "type": "string", @@ -69,7 +70,8 @@ "ncbi_fcs_gx_skip": { "type": "boolean", "description": "Skip NCBI FCS external organism contamination checking", - "default": true + "default": true, + "fa_icon": "fas fa-forward" }, "ncbi_fcs_gx_tax_id": { "type": "number", @@ -78,7 +80,14 @@ "ncbi_fcs_gx_db_path": { "type": "string", "format": "directory-path", - "description": "Path to NCBI FCS GX database. See: https://github.com/ncbi/fcs/wiki/FCS-GX" + "description": "Path to NCBI FCS GX database. See: https://github.com/ncbi/fcs/wiki/FCS-GX", + "fa_icon": "fas fa-folder-open" + }, + "contamination_stops_pipeline": { + "type": "boolean", + "default": true, + "fa_icon": "fas fa-hand-paper", + "description": "Skip remaining QC steps for an assembly which has adaptor or GX contamination" } } }, @@ -91,7 +100,8 @@ "busco_skip": { "type": "boolean", "description": "Skip BUSCO", - "default": true + "default": true, + "fa_icon": "fas fa-forward" }, "busco_mode": { "type": "string", @@ -106,7 +116,8 @@ "busco_download_path": { "type": "string", "description": "Download path for BUSCO", - "format": "directory-path" + "format": "directory-path", + "fa_icon": "fas fa-folder-open" } } }, @@ -119,7 +130,8 @@ "tidk_skip": { "type": "boolean", "description": "Skip telomere identification", - "default": true + "default": true, + "fa_icon": "fas fa-forward" }, "tidk_repeat_seq": { "type": "string", @@ -146,7 +158,8 @@ "lai_skip": { "type": "boolean", "default": true, - "description": "Skip LAI estimation" + "description": "Skip LAI estimation", + "fa_icon": "fas fa-forward" } } }, @@ -159,12 +172,14 @@ "kraken2_skip": { "type": "boolean", "default": true, - "description": "Skip Kraken2" + "description": "Skip Kraken2", + "fa_icon": "fas fa-forward" }, "kraken2_db_path": { "type": "string", "description": "Kraken2 database path", - "format": "path" + "format": "path", + "fa_icon": "fas fa-folder-open" } } }, @@ -181,11 +196,13 @@ }, "hic_skip_fastp": { "type": "boolean", - "description": "Skip HiC read trimming" + "description": "Skip HiC read trimming", + "fa_icon": "fas fa-forward" }, "hic_skip_fastqc": { "type": "boolean", - "description": "Skip HiC read QC" + "description": "Skip HiC read QC", + "fa_icon": "fas fa-forward" }, "hic_fastp_ext_args": { "type": "string", @@ -203,7 +220,8 @@ "synteny_skip": { "type": "boolean", "default": true, - "description": "Skip synteny analysis" + "description": "Skip synteny analysis", + "fa_icon": "fas fa-forward" }, "synteny_plot_type": { "type": "string", diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index d709575d..7a6e7243 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -172,7 +172,9 @@ workflow ASSEMBLYQC { | map { tag, report -> [ tag, file(report).readLines().size < 2 ] } - | filter { tag, is_clean -> is_clean } + | filter { tag, is_clean -> + ( is_clean || ( ! params.contamination_stops_pipeline ) ) + } | join( ch_valid_target_assembly | map { meta, fa -> [ meta.id, fa ] } @@ -223,7 +225,9 @@ workflow ASSEMBLYQC { | map { tag, report -> [ tag, file(report).readLines().size < 3 ] } - | filter { tag, is_clean -> is_clean } + | filter { tag, is_clean -> + ( is_clean || ( ! params.contamination_stops_pipeline ) ) + } | join( ch_valid_target_assembly | map { meta, fa -> [ meta.id, fa ] } From eaa0cf9a2528c6a01f42ea32124b47a3cbe96683 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 6 May 2024 13:14:52 +1200 Subject: [PATCH 30/76] Updated fcs-adaptor to 0.5.0 --- CHANGELOG.md | 1 + modules/local/ncbi_fcs_adaptor.nf | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32347afa..14cfc474 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) 7. Updated modules and sub-workflows 8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) +9. Updated `fcs-adaptor` to 0.5.0 [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) ### `Fixed` diff --git a/modules/local/ncbi_fcs_adaptor.nf b/modules/local/ncbi_fcs_adaptor.nf index ec1b3dd0..3db1b3ba 100644 --- a/modules/local/ncbi_fcs_adaptor.nf +++ b/modules/local/ncbi_fcs_adaptor.nf @@ -4,8 +4,8 @@ process NCBI_FCS_ADAPTOR { // Warning: manually update version in script and stub container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/releases/0.4.0/fcs-adaptor.sif': - 'docker.io/ncbi/fcs-adaptor:0.4.0' }" + 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/releases/0.5.0/fcs-adaptor.sif': + 'docker.io/ncbi/fcs-adaptor:0.5.0' }" input: tuple val(asm_tag), path(fasta_file) @@ -23,11 +23,11 @@ process NCBI_FCS_ADAPTOR { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "NCBI_FCS_ADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." } - def VERSION = 0.4 + def VERSION = 0.5 """ mkdir "${asm_tag}_outputdir" - /app/fcs/bin/av_screen_x \\ + av_screen_x \\ -o "${asm_tag}_outputdir" \\ --${empire} \\ "${fasta_file}" @@ -46,7 +46,7 @@ process NCBI_FCS_ADAPTOR { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "NCBI_FCS_ADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." } - def VERSION = 0.4 + def VERSION = 0.5 """ touch "${asm_tag}_fcs_adaptor_report.tsv" From 50a0b5f4e9bd9a69dc9bf2478778900efb8ac0f4 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 6 May 2024 16:31:20 +1200 Subject: [PATCH 31/76] Now fasta ids are sorted in natural order for --- CHANGELOG.md | 1 + conf/modules.config | 4 ++++ subworkflows/local/fq2hic.nf | 11 +++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14cfc474..7541902a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 7. Updated modules and sub-workflows 8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) 9. Updated `fcs-adaptor` to 0.5.0 [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) +10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) ### `Fixed` diff --git a/conf/modules.config b/conf/modules.config index d7f07a80..c532b809 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -240,6 +240,10 @@ process { ] } + withName: '.*:FQ2HIC:SEQKIT_SORT' { + ext.args = '--ignore-case --natural-order' + } + withName: BWA_MEM { ext.prefix = { "${meta.id}.on.${meta.ref_id}.bwa.mem" } ext.args = '-5SP' diff --git a/subworkflows/local/fq2hic.nf b/subworkflows/local/fq2hic.nf index f8a3eaa9..38761473 100644 --- a/subworkflows/local/fq2hic.nf +++ b/subworkflows/local/fq2hic.nf @@ -1,5 +1,6 @@ include { FASTQ_TRIM_FASTP_FASTQC } from '../nf-core/fastq_trim_fastp_fastqc/main' include { FASTQ_BWA_MEM_SAMBLASTER } from '../pfr/fastq_bwa_mem_samblaster/main' +include { SEQKIT_SORT } from '../../modules/nf-core/seqkit/sort/main' include { HICQC } from '../../modules/local/hicqc' include { MAKEAGPFROMFASTA } from '../../modules/local/makeagpfromfasta' include { AGP2ASSEMBLY } from '../../modules/local/agp2assembly' @@ -32,10 +33,16 @@ workflow FQ2HIC { ch_trim_reads = FASTQ_TRIM_FASTP_FASTQC.out.reads ch_versions = ch_versions.mix(FASTQ_TRIM_FASTP_FASTQC.out.versions) + // MODULE: SEQKIT_SORT + SEQKIT_SORT ( ref ) + + ch_sorted_ref = SEQKIT_SORT.out.fastx + ch_versions = ch_versions.mix(SEQKIT_SORT.out.versions) + // SUBWORKFLOW: FASTQ_BWA_MEM_SAMBLASTER FASTQ_BWA_MEM_SAMBLASTER( ch_trim_reads, - ref.map { meta2, fa -> [ meta2, fa, [] ] } + ch_sorted_ref.map { meta2, fa -> [ meta2, fa, [] ] } ) ch_bam = FASTQ_BWA_MEM_SAMBLASTER.out.bam @@ -45,7 +52,7 @@ workflow FQ2HIC { ch_bam_and_ref = ch_bam | map { meta, bam -> [ meta.ref_id, meta, bam ] } | join( - ref.map { meta2, fa -> [ meta2.id, fa ] } + ch_sorted_ref.map { meta2, fa -> [ meta2.id, fa ] } ) | map { ref_id, meta, bam, fa -> [ [ id: "${meta.id}.on.${meta.ref_id}" ], bam, fa ] From fc858a27fe394f1f75101816f28be531d6efda60 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 7 May 2024 17:04:49 +1200 Subject: [PATCH 32/76] Added merqury params to schema_input --- README.md | 6 ++---- assets/schema_input.json | 41 ++++++++++++++++++++++++++++++++++++++++ pfr/params.json | 11 +++++++++-- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5e520c33..0b73d8ae 100644 --- a/README.md +++ b/README.md @@ -69,13 +69,10 @@ Refer to [usage](./docs/usage.md), [parameters](./docs/parameters.md) and [outpu > [!NOTE] > If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. -Prepare an `assemblysheet.csv` file with following columns representing target assemblies and associated meta-data. See an example [assemblysheet.csv](./assets/assemblysheet.csv) +Prepare an `assemblysheet.csv` file with following columns representing target assemblies and associated meta-data. - `tag:` A unique tag which represents the target assembly throughout the pipeline and in the final report - `fasta:` FASTA file -- `gff3 [Optional]:` GFF3 annotation file if available -- `monoploid_ids [Optional]:` A txt file listing the IDs used to calculate LAI in monoploid mode if necessary -- `synteny_labels [Optional]:` A two column tsv file listing fasta sequence ids (first column) and labels for the synteny plots (second column) when performing synteny analysis Now, you can run the pipeline using: @@ -109,6 +106,7 @@ We thank the following people for their extensive assistance in the development - Jason Shiller [@jasonshiller](https://github.com/jasonshiller) - Marcus Davy [@mdavy86](https://github.com/mdavy86) - Ross Crowhurst [@rosscrowhurst](https://github.com/rosscrowhurst) +- Sarah Bailey [@SarahBailey1998](https://github.com/SarahBailey1998) - Susan Thomson [@cflsjt](https://github.com/cflsjt) - Ting-Hsuan Chen [@ting-hsuan-chen](https://github.com/ting-hsuan-chen) diff --git a/assets/schema_input.json b/assets/schema_input.json index 2aab4188..1fd88892 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -47,6 +47,47 @@ "maxLength": 0 } ] + }, + "reads": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ] + }, + "maternal_reads": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["reads", "paternal_reads"] + }, + "paternal_reads": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["reads", "maternal_reads"] } }, "required": ["tag", "fasta"] diff --git a/pfr/params.json b/pfr/params.json index ab1ea360..d6f32ff5 100644 --- a/pfr/params.json +++ b/pfr/params.json @@ -1,10 +1,12 @@ { "input": "/workspace/assemblyqc/testdata/default/assemblysheet.csv", + "assemblathon_stats_n_limit": 100, "ncbi_fcs_adaptor_skip": false, "ncbi_fcs_adaptor_empire": "euk", "ncbi_fcs_gx_skip": false, "ncbi_fcs_gx_tax_id": 3750, "ncbi_fcs_gx_db_path": "/workspace/ComparativeDataSources/NCBI/FCS/GX/r2023-01-24", + "contamination_stops_pipeline": true, "busco_skip": false, "busco_mode": "geno", "busco_lineage_datasets": "embryophyta_odb10 eudicots_odb10", @@ -17,13 +19,18 @@ "kraken2_skip": false, "kraken2_db_path": "/workspace/ComparativeDataSources/kraken2db/k2_pluspfp_20230314", "hic": null, + "hic_skip_fastp": false, + "hic_skip_fastqc": false, + "hic_fastp_ext_args": "--qualified_quality_phred 20 --length_required 50", "synteny_skip": false, + "synteny_plot_type": "both", "synteny_between_input_assemblies": true, "synteny_many_to_many_align": false, "synteny_max_gap": 1000000, "synteny_min_bundle_size": 1000, - "synteny_plot_1_vs_all": true, + "synteny_plot_1_vs_all": false, "synteny_color_by_contig": true, "synteny_xref_assemblies": "/workspace/assemblyqc/testdata/default/xrefsheet.csv", - "outdir": "./results" + "outdir": "./results", + "email": null } From 45d180e020c77cefe2409adddf09ee77b0e9b3ff Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 7 May 2024 20:55:57 +1200 Subject: [PATCH 33/76] Expanded schema_input --- assets/schema_input.json | 52 +++++++++++++++++-- .../utils_nfcore_assemblyqc_pipeline/main.nf | 35 +++++++------ workflows/assemblyqc.nf | 20 +++++-- 3 files changed, 82 insertions(+), 25 deletions(-) diff --git a/assets/schema_input.json b/assets/schema_input.json index 1fd88892..cd19ce8b 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -48,7 +48,7 @@ } ] }, - "reads": { + "reads_1": { "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { @@ -61,7 +61,7 @@ } ] }, - "maternal_reads": { + "reads_2": { "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { @@ -73,9 +73,9 @@ "maxLength": 0 } ], - "dependentRequired": ["reads", "paternal_reads"] + "dependentRequired": ["reads_1"] }, - "paternal_reads": { + "maternal_reads_1": { "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { @@ -87,7 +87,49 @@ "maxLength": 0 } ], - "dependentRequired": ["reads", "maternal_reads"] + "dependentRequired": ["reads_1", "paternal_reads_1"] + }, + "maternal_reads_2": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["maternal_reads_1"] + }, + "paternal_reads_1": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["reads_1", "maternal_reads_1"] + }, + "paternal_reads_2": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["paternal_reads_1"] } }, "required": ["tag", "fasta"] diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 95702cc6..978ad199 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -83,13 +83,16 @@ workflow PIPELINE_INITIALISATION { // // Initialise input channels // - def input_assembly_sheet_fields = 5 - def synteny_xref_assemblies_fields = 3 ch_input = Channel.fromSamplesheet('input') + + // Function: validateInputTags + ch_input_validated = ch_input + | map { row -> row[0] } | collect - | flatMap { validateInput(it) } - | buffer(size: input_assembly_sheet_fields) + | map { tags -> validateInputTags( tags ) } + | combine ( ch_input.map { row -> [ row ] } ) + | map { result, row -> row } ch_hic_reads = ! params.hic ? Channel.empty() @@ -105,9 +108,13 @@ workflow PIPELINE_INITIALISATION { ch_xref_assembly = params.synteny_skip || ! params.synteny_xref_assemblies ? Channel.empty() : Channel.fromSamplesheet('synteny_xref_assemblies') + + ch_xref_assembly_validated = ch_xref_assembly + | map { row -> row[0] } | collect - | flatMap { validateXrefAssemblies(it) } - | buffer(size: synteny_xref_assemblies_fields) + | map { tags -> validateXrefAssemblies( tags ) } + | combine ( ch_xref_assembly.map { row -> [ row ] } ) + | map { result, row -> row } | map { tag, fa, labels -> [ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ] } @@ -117,9 +124,9 @@ workflow PIPELINE_INITIALISATION { ch_summary_params_as_json = Channel.of ( jsonifySummaryParams ( summary_params ) ) emit: - input = ch_input + input = ch_input_validated hic_reads = ch_hic_reads - xref_assembly = ch_xref_assembly + xref_assembly = ch_xref_assembly_validated params_as_json = ch_params_as_json summary_params_as_json = ch_summary_params_as_json versions = ch_versions @@ -210,9 +217,7 @@ def validateInputParameters() { } } -def validateInput(input) { - def inputFields = 5 - def assemblyTags = input[(0..input.size()-1).step(inputFields)] +def validateInputTags(assemblyTags) { def tagCounts = [:] assemblyTags.each { tag -> @@ -224,12 +229,10 @@ def validateInput(input) { error("Please check input assemblysheet -> Multiple assemblies have the same tags!: ${repeatedTags}") } - return input + return true } -def validateXrefAssemblies(xref) { - def xrefFields = 3 - def xrefTags = xref[(0..xref.size()-1).step(xrefFields)] +def validateXrefAssemblies(xrefTags) { def tagCounts = [:] xrefTags.each { tag -> @@ -241,7 +244,7 @@ def validateXrefAssemblies(xref) { error("Please check synteny_xref_assemblies -> Multiple xref assemblies have the same tags!: ${repeatedTags}") } - return xref + return true } def jsonifyParams(params) { diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 7a6e7243..fea4a1e9 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -45,7 +45,10 @@ workflow ASSEMBLYQC { // Input channels ch_target_assemby_branch = ch_input - | map { tag, fasta, gff, mono_ids, labels -> + | map { input_data -> + def tag = input_data[0] + def fasta = input_data[1] + [ [ id: tag ], file(fasta, checkIfExists: true) ] } | branch { meta, fasta -> @@ -54,7 +57,10 @@ workflow ASSEMBLYQC { } ch_assemby_gff3_branch = ch_input - | map { tag, fasta, gff, mono_ids, labels -> + | map { input_data -> + def tag = input_data[0] + def gff = input_data[2] + gff ? [ [ id: tag ], file(gff, checkIfExists: true) ] : null @@ -65,14 +71,20 @@ workflow ASSEMBLYQC { } ch_mono_ids = ch_input - | map { tag, fasta, gff, mono_ids, labels -> + | map { input_data -> + def tag = input_data[0] + def mono_ids= input_data[3] + mono_ids ? [ [ id: tag ], file(mono_ids, checkIfExists: true) ] : null } ch_synteny_labels = ch_input - | map { tag, fasta, gff, mono_ids, labels -> + | map { input_data -> + def tag = input_data[0] + def labels = input_data[4] + labels ? [ [ id: tag ], file(labels, checkIfExists: true) ] : ( From 29b76a5ef4bc60371cab83f3e8dc8c3d7ce54a3f Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 8 May 2024 15:40:08 +1200 Subject: [PATCH 34/76] Now using FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS for SRA downloads --- CHANGELOG.md | 1 + assets/schema_input.json | 12 +-- conf/modules.config | 4 + local_assemblyqc | 3 +- modules.json | 20 ++++ .../sratoolsncbisettings/environment.yml | 7 ++ .../custom/sratoolsncbisettings/main.nf | 23 +++++ .../custom/sratoolsncbisettings/meta.yml | 28 ++++++ .../templates/detect_ncbi_settings.sh | 45 +++++++++ .../sratoolsncbisettings/tests/main.nf.test | 42 ++++++++ .../tests/main.nf.test.snap | 14 +++ .../tests/nextflow.config | 14 +++ .../sratoolsncbisettings/tests/tags.yml | 2 + .../sratools/fasterqdump/environment.yml | 8 ++ modules/nf-core/sratools/fasterqdump/main.nf | 55 +++++++++++ modules/nf-core/sratools/fasterqdump/meta.yml | 53 ++++++++++ .../sratools/fasterqdump/tests/main.nf.test | 73 ++++++++++++++ .../fasterqdump/tests/main.nf.test.snap | 78 +++++++++++++++ .../fasterqdump/tests/nextflow.config | 5 + .../sratools/fasterqdump/tests/tags.yml | 2 + .../nf-core/sratools/prefetch/environment.yml | 8 ++ modules/nf-core/sratools/prefetch/main.nf | 35 +++++++ modules/nf-core/sratools/prefetch/meta.yml | 56 +++++++++++ .../prefetch/templates/retry_with_backoff.sh | 65 +++++++++++++ .../sratools/prefetch/tests/main.nf.test | 49 ++++++++++ .../sratools/prefetch/tests/main.nf.test.snap | 80 +++++++++++++++ .../nf-core/sratools/prefetch/tests/tags.yml | 2 + .../utils_nfcore_assemblyqc_pipeline/main.nf | 8 +- .../main.nf | 39 ++++++++ .../meta.yml | 52 ++++++++++ .../tests/main.nf.test | 43 ++++++++ .../tests/main.nf.test.snap | 97 +++++++++++++++++++ .../tests/tags.yml | 2 + workflows/assemblyqc.nf | 20 +++- 34 files changed, 1033 insertions(+), 12 deletions(-) create mode 100644 modules/nf-core/custom/sratoolsncbisettings/environment.yml create mode 100644 modules/nf-core/custom/sratoolsncbisettings/main.nf create mode 100644 modules/nf-core/custom/sratoolsncbisettings/meta.yml create mode 100644 modules/nf-core/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh create mode 100644 modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test create mode 100644 modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test.snap create mode 100644 modules/nf-core/custom/sratoolsncbisettings/tests/nextflow.config create mode 100644 modules/nf-core/custom/sratoolsncbisettings/tests/tags.yml create mode 100644 modules/nf-core/sratools/fasterqdump/environment.yml create mode 100644 modules/nf-core/sratools/fasterqdump/main.nf create mode 100644 modules/nf-core/sratools/fasterqdump/meta.yml create mode 100644 modules/nf-core/sratools/fasterqdump/tests/main.nf.test create mode 100644 modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap create mode 100644 modules/nf-core/sratools/fasterqdump/tests/nextflow.config create mode 100644 modules/nf-core/sratools/fasterqdump/tests/tags.yml create mode 100644 modules/nf-core/sratools/prefetch/environment.yml create mode 100644 modules/nf-core/sratools/prefetch/main.nf create mode 100644 modules/nf-core/sratools/prefetch/meta.yml create mode 100755 modules/nf-core/sratools/prefetch/templates/retry_with_backoff.sh create mode 100644 modules/nf-core/sratools/prefetch/tests/main.nf.test create mode 100644 modules/nf-core/sratools/prefetch/tests/main.nf.test.snap create mode 100644 modules/nf-core/sratools/prefetch/tests/tags.yml create mode 100644 subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main.nf create mode 100644 subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/meta.yml create mode 100644 subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test create mode 100644 subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test.snap create mode 100644 subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/tags.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 7541902a..40e49026 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) 9. Updated `fcs-adaptor` to 0.5.0 [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) 10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) +11. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads ### `Fixed` diff --git a/assets/schema_input.json b/assets/schema_input.json index cd19ce8b..759ea3af 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -49,11 +49,11 @@ ] }, "reads_1": { - "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", - "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + "pattern": "^SR\\w+$|^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" }, { "type": "string", @@ -76,11 +76,11 @@ "dependentRequired": ["reads_1"] }, "maternal_reads_1": { - "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "maternal_reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", - "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + "pattern": "^SR\\w+$|^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" }, { "type": "string", @@ -104,11 +104,11 @@ "dependentRequired": ["maternal_reads_1"] }, "paternal_reads_1": { - "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "paternal_reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", - "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + "pattern": "^SR\\w+$|^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" }, { "type": "string", diff --git a/conf/modules.config b/conf/modules.config index c532b809..dd8cc10c 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -215,6 +215,10 @@ process { ] } + withName: '.*:DOWNLOAD_HIC:SRATOOLS_FASTERQDUMP' { + ext.prefix = { "${meta.id}.sra.fastq" } + } + withName: FASTQC_RAW { publishDir = [ path: { "${params.outdir}/hic/fastqc_raw" }, diff --git a/local_assemblyqc b/local_assemblyqc index f8dd29a2..858acea8 100755 --- a/local_assemblyqc +++ b/local_assemblyqc @@ -23,5 +23,4 @@ nextflow run \ --ncbi_fcs_gx_db_path ../dbs/gxdb/test \ --busco_download_path ../dbs/busco \ --kraken2_skip false \ - --kraken2_db_path ../dbs/kraken2db/k2_minusb \ - --hic "$(realpath ../test-data/assemblyqc/hic)/SRR8238190_{1,2}.fastq.gz" + --kraken2_db_path ../dbs/kraken2db/k2_minusb diff --git a/modules.json b/modules.json index f8f52b45..d387fde5 100644 --- a/modules.json +++ b/modules.json @@ -100,6 +100,11 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { + "custom/sratoolsncbisettings": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools"] + }, "fastavalidator": { "branch": "master", "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", @@ -130,6 +135,16 @@ "git_sha": "ffcdfb354f8c8e59bdccc1a4249f0f3b232c2a3d", "installed_by": ["fasta_explore_search_plot_tidk"] }, + "sratools/fasterqdump": { + "branch": "master", + "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] + }, + "sratools/prefetch": { + "branch": "master", + "git_sha": "1fc29f92e439d5631fdf34b8ac4687297d70f5ec", + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] + }, "tidk/explore": { "branch": "master", "git_sha": "fad335b31b32d78f89a8340373d3ccfc0f2b18b5", @@ -159,6 +174,11 @@ "git_sha": "2b21fbeb20ad9f17612f4a3dd7b12971513f08d5", "installed_by": ["subworkflows"] }, + "fastq_download_prefetch_fasterqdump_sratools": { + "branch": "master", + "git_sha": "1fc29f92e439d5631fdf34b8ac4687297d70f5ec", + "installed_by": ["subworkflows"] + }, "fastq_trim_fastp_fastqc": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", diff --git a/modules/nf-core/custom/sratoolsncbisettings/environment.yml b/modules/nf-core/custom/sratoolsncbisettings/environment.yml new file mode 100644 index 00000000..44a1b008 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/environment.yml @@ -0,0 +1,7 @@ +name: custom_sratoolsncbisettings +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::sra-tools=3.0.8 diff --git a/modules/nf-core/custom/sratoolsncbisettings/main.nf b/modules/nf-core/custom/sratoolsncbisettings/main.nf new file mode 100644 index 00000000..577117ed --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/main.nf @@ -0,0 +1,23 @@ +process CUSTOM_SRATOOLSNCBISETTINGS { + tag 'ncbi-settings' + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/sra-tools:3.0.8--h9f5acd7_0' : + 'biocontainers/sra-tools:3.0.8--h9f5acd7_0' }" + + input: + val ids + + output: + path('*.mkfg') , emit: ncbi_settings + path 'versions.yml', emit: versions + + when: + task.ext.when == null || task.ext.when + + shell: + config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" + template 'detect_ncbi_settings.sh' +} diff --git a/modules/nf-core/custom/sratoolsncbisettings/meta.yml b/modules/nf-core/custom/sratoolsncbisettings/meta.yml new file mode 100644 index 00000000..46a6cd32 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/meta.yml @@ -0,0 +1,28 @@ +name: "custom_sratoolsncbisettings" +description: Test for the presence of suitable NCBI settings or create them on the fly. +keywords: + - NCBI + - settings + - sra-tools + - prefetch + - fasterq-dump +tools: + - "sratools": + description: "SRA Toolkit and SDK from NCBI" + homepage: https://github.com/ncbi/sra-tools + documentation: https://github.com/ncbi/sra-tools/wiki + tool_dev_url: https://github.com/ncbi/sra-tools + licence: ["Public Domain"] +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - ncbi_settings: + type: file + description: An NCBI user settings file. + pattern: "*.mkfg" +authors: + - "@Midnighter" +maintainers: + - "@Midnighter" diff --git a/modules/nf-core/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh b/modules/nf-core/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh new file mode 100644 index 00000000..cfe3a324 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +set -u + + +# Get the expected NCBI settings path and define the environment variable +# `NCBI_SETTINGS`. +eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" + +# If the user settings do not exist yet, create a file suitable for `prefetch` +# and `fasterq-dump`. If an existing settings file does not contain the required +# values, error out with a helpful message. +if [[ ! -f "${NCBI_SETTINGS}" ]]; then + printf '!{config}' > 'user-settings.mkfg' +else + prefetch --help &> /dev/null + if [[ $? = 78 ]]; then + echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\ + "missing the required entries for /LIBS/GUID and"\ + "/libs/cloud/report_instance_identity."\ + "Feel free to add the following to your settings file:" >&2 + echo "$(printf '!{config}')" >&2 + exit 1 + fi + fasterq-dump --help &> /dev/null + if [[ $? = 78 ]]; then + echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\ + "missing the required entries for /LIBS/GUID and"\ + "/libs/cloud/report_instance_identity."\ + "Feel free to add the following to your settings file:" >&2 + echo "$(printf '!{config}')" >&2 + exit 1 + fi + if [[ "${NCBI_SETTINGS}" != *.mkfg ]]; then + echo "The detected settings '${NCBI_SETTINGS}' do not have the required"\ + "file extension '.mkfg'." >&2 + exit 1 + fi + cp "${NCBI_SETTINGS}" ./ +fi + +cat <<-END_VERSIONS > versions.yml +"!{task.process}": + sratools: $(vdb-config --version 2>&1 | grep -Eo '[0-9.]+') +END_VERSIONS diff --git a/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test b/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test new file mode 100644 index 00000000..b8b95320 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test @@ -0,0 +1,42 @@ +nextflow_process { + + name "Test Process CUSTOM_SRATOOLSNCBISETTINGS" + script "../main.nf" + process "CUSTOM_SRATOOLSNCBISETTINGS" + config "modules/nf-core/custom/sratoolsncbisettings/tests/nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "custom" + tag "custom/sratoolsncbisettings" + + test("Should run without failures") { + + when { + params { + settings_path = '/tmp/.ncbi' + settings_file = "${params.settings_path}/user-settings.mkfg" + } + + process { + """ + input[0] = ["SRX6725035"] + file(params.settings_path).mkdirs() + def settings = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + settings.copyTo(params.settings_file) + """ + } + } + + then { + assert process.success + assert snapshot( + process.out.versions + ).match() + + with(process.out.ncbi_settings) { + assert path(get(0)).readLines().any { it.contains('/LIBS/GUID') } + assert path(get(0)).readLines().any { it.contains('/libs/cloud/report_instance_identity') } + } + } + } +} diff --git a/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test.snap b/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test.snap new file mode 100644 index 00000000..5e314f0b --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/tests/main.nf.test.snap @@ -0,0 +1,14 @@ +{ + "Should run without failures": { + "content": [ + [ + "versions.yml:md5,3d6ee88cce1ee517e198633f062589a8" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:47:15.824443" + } +} \ No newline at end of file diff --git a/modules/nf-core/custom/sratoolsncbisettings/tests/nextflow.config b/modules/nf-core/custom/sratoolsncbisettings/tests/nextflow.config new file mode 100644 index 00000000..df5def04 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/tests/nextflow.config @@ -0,0 +1,14 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + +env.NCBI_SETTINGS = params.settings_file + +process { + withName: CUSTOM_SRATOOLSNCBISETTINGS { + containerOptions = { + (workflow.containerEngine == 'singularity') ? + "-B ${params.settings_path}:${params.settings_path}" : + "-v ${params.settings_path}:${params.settings_path}" + } + } +} \ No newline at end of file diff --git a/modules/nf-core/custom/sratoolsncbisettings/tests/tags.yml b/modules/nf-core/custom/sratoolsncbisettings/tests/tags.yml new file mode 100644 index 00000000..fb4a08a7 --- /dev/null +++ b/modules/nf-core/custom/sratoolsncbisettings/tests/tags.yml @@ -0,0 +1,2 @@ +custom/sratoolsncbisettings: + - modules/nf-core/custom/sratoolsncbisettings/** diff --git a/modules/nf-core/sratools/fasterqdump/environment.yml b/modules/nf-core/sratools/fasterqdump/environment.yml new file mode 100644 index 00000000..4011b691 --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/environment.yml @@ -0,0 +1,8 @@ +name: sratools_fasterqdump +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::sra-tools=3.0.8 + - conda-forge::pigz=2.6 diff --git a/modules/nf-core/sratools/fasterqdump/main.nf b/modules/nf-core/sratools/fasterqdump/main.nf new file mode 100644 index 00000000..d4ddf268 --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/main.nf @@ -0,0 +1,55 @@ +process SRATOOLS_FASTERQDUMP { + tag "$meta.id" + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-5f89fe0cd045cb1d615630b9261a1d17943a9b6a:2f4a4c900edd6801ff0068c2b3048b4459d119eb-0' : + 'biocontainers/mulled-v2-5f89fe0cd045cb1d615630b9261a1d17943a9b6a:2f4a4c900edd6801ff0068c2b3048b4459d119eb-0' }" + + input: + tuple val(meta), path(sra) + path ncbi_settings + path certificate + + output: + tuple val(meta), path('*.fastq.gz'), emit: reads + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def outfile = meta.single_end ? "${prefix}.fastq" : prefix + def key_file = '' + if (certificate.toString().endsWith('.jwt')) { + key_file += " --perm ${certificate}" + } else if (certificate.toString().endsWith('.ngc')) { + key_file += " --ngc ${certificate}" + } + """ + export NCBI_SETTINGS="\$PWD/${ncbi_settings}" + + fasterq-dump \\ + $args \\ + --threads $task.cpus \\ + --outfile $outfile \\ + ${key_file} \\ + ${sra} + + pigz \\ + $args2 \\ + --no-name \\ + --processes $task.cpus \\ + *.fastq + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sratools: \$(fasterq-dump --version 2>&1 | grep -Eo '[0-9.]+') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/sratools/fasterqdump/meta.yml b/modules/nf-core/sratools/fasterqdump/meta.yml new file mode 100644 index 00000000..b5e0175a --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/meta.yml @@ -0,0 +1,53 @@ +name: sratools_fasterqdump +description: Extract sequencing reads in FASTQ format from a given NCBI Sequence Read Archive (SRA). +keywords: + - sequencing + - FASTQ + - dump +tools: + - sratools: + description: SRA Toolkit and SDK from NCBI + homepage: https://github.com/ncbi/sra-tools + documentation: https://github.com/ncbi/sra-tools/wiki + tool_dev_url: https://github.com/ncbi/sra-tools + licence: ["Public Domain"] +input: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - sra: + type: directory + description: Directory containing ETL data for the given SRA. + pattern: "*/*.sra" + - ncbi_settings: + type: file + description: > + An NCBI user settings file. + + pattern: "*.mkfg" + - certificate: + type: file + description: > + Path to a JWT cart file used to access protected dbGAP data on SRA using the sra-toolkit + + pattern: "*.cart" +output: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reads: + type: file + description: Extracted FASTQ file or files if the sequencing reads are paired-end. + pattern: "*.fastq.gz" +authors: + - "@Midnighter" +maintainers: + - "@Midnighter" diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test new file mode 100644 index 00000000..cb81496f --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test @@ -0,0 +1,73 @@ +nextflow_process { + name "Test Process SRATOOLS_FASTERQDUMP" + script "../main.nf" + config "./nextflow.config" + process "SRATOOLS_FASTERQDUMP" + tag "modules" + tag "modules_nfcore" + tag "untar" + tag "sratools" + tag "sratools/fasterqdump" + + test("Single-end") { + + setup { + run("UNTAR") { + script "modules/nf-core/untar/main.nf" + process { + """ + input[0] = Channel.of([ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR13255544.tar.gz', checkIfExists: true) ]) + """ + } + } + } + + when { + process { + """ + input[0] = UNTAR.out.untar.map{ meta, files -> [ [ id:'test_single_end', single_end:true ], files]} + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Paired-end") { + + setup { + run("UNTAR") { + script "modules/nf-core/untar/main.nf" + process { + """ + input[0] = Channel.of([ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR11140744.tar.gz', checkIfExists: true) ]) + """ + } + } + } + + when { + process { + """ + input[0] = UNTAR.out.untar.map{ meta, files -> [ [ id:'test_paired_end', single_end:false ], files]} + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap new file mode 100644 index 00000000..14a6429d --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap @@ -0,0 +1,78 @@ +{ + "Single-end": { + "content": [ + { + "0": [ + [ + { + "id": "test_single_end", + "single_end": true + }, + "test_single_end.fastq.gz:md5,674d78c1cc3c1308d6d39d6369a42887" + ] + ], + "1": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ], + "reads": [ + [ + { + "id": "test_single_end", + "single_end": true + }, + "test_single_end.fastq.gz:md5,674d78c1cc3c1308d6d39d6369a42887" + ] + ], + "versions": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.01.0" + }, + "timestamp": "2024-02-28T15:25:52.837288" + }, + "Paired-end": { + "content": [ + { + "0": [ + [ + { + "id": "test_paired_end", + "single_end": false + }, + [ + "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", + "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" + ] + ] + ], + "1": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ], + "reads": [ + [ + { + "id": "test_paired_end", + "single_end": false + }, + [ + "test_paired_end_1.fastq.gz:md5,8573015c91d099b6e30789f8bab2f43c", + "test_paired_end_2.fastq.gz:md5,37e6f719a022dc3c9994c80fbc20c311" + ] + ] + ], + "versions": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.01.0" + }, + "timestamp": "2024-02-28T15:26:42.466223" + } +} \ No newline at end of file diff --git a/modules/nf-core/sratools/fasterqdump/tests/nextflow.config b/modules/nf-core/sratools/fasterqdump/tests/nextflow.config new file mode 100644 index 00000000..23e4100b --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: SRATOOLS_FASTERQDUMP { + ext.args = '' + } +} \ No newline at end of file diff --git a/modules/nf-core/sratools/fasterqdump/tests/tags.yml b/modules/nf-core/sratools/fasterqdump/tests/tags.yml new file mode 100644 index 00000000..5d1ddcb3 --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/tests/tags.yml @@ -0,0 +1,2 @@ +sratools/fasterqdump: + - modules/nf-core/sratools/fasterqdump/** diff --git a/modules/nf-core/sratools/prefetch/environment.yml b/modules/nf-core/sratools/prefetch/environment.yml new file mode 100644 index 00000000..0abad336 --- /dev/null +++ b/modules/nf-core/sratools/prefetch/environment.yml @@ -0,0 +1,8 @@ +name: sratools_prefetch +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::sra-tools=3.1.0 + - conda-forge::curl=8.5.0 diff --git a/modules/nf-core/sratools/prefetch/main.nf b/modules/nf-core/sratools/prefetch/main.nf new file mode 100644 index 00000000..170f1753 --- /dev/null +++ b/modules/nf-core/sratools/prefetch/main.nf @@ -0,0 +1,35 @@ +process SRATOOLS_PREFETCH { + tag "$id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/sra-tools:3.1.0--h9f5acd7_0' : + 'biocontainers/sra-tools:3.1.0--h9f5acd7_0' }" + + input: + tuple val(meta), val(id) + path ncbi_settings + path certificate + + output: + tuple val(meta), path(id), emit: sra + path 'versions.yml' , emit: versions + + when: + task.ext.when == null || task.ext.when + + shell: + args = task.ext.args ?: '' + args2 = task.ext.args2 ?: '5 1 100' // + if (certificate) { + if (certificate.toString().endsWith('.jwt')) { + args += " --perm ${certificate}" + } + else if (certificate.toString().endsWith('.ngc')) { + args += " --ngc ${certificate}" + } + } + + template 'retry_with_backoff.sh' +} diff --git a/modules/nf-core/sratools/prefetch/meta.yml b/modules/nf-core/sratools/prefetch/meta.yml new file mode 100644 index 00000000..ff54229f --- /dev/null +++ b/modules/nf-core/sratools/prefetch/meta.yml @@ -0,0 +1,56 @@ +name: sratools_prefetch +description: Download sequencing data from the NCBI Sequence Read Archive (SRA). +keywords: + - sequencing + - fastq + - prefetch +tools: + - sratools: + description: SRA Toolkit and SDK from NCBI + homepage: https://github.com/ncbi/sra-tools + documentation: https://github.com/ncbi/sra-tools/wiki + tool_dev_url: https://github.com/ncbi/sra-tools + licence: ["Public Domain"] +input: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - id: + type: string + description: > + A string denoting an SRA id. + + - ncbi_settings: + type: file + description: > + An NCBI user settings file. + + pattern: "*.mkfg" + - certificate: + type: file + description: > + Path to a JWT cart file used to access protected dbGAP data on SRA using the sra-toolkit + + pattern: "*.cart" +output: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - sra: + type: directory + description: > + Directory containing the ETL data for the given SRA id. + + pattern: "*/*.sra" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@Midnighter" +maintainers: + - "@Midnighter" diff --git a/modules/nf-core/sratools/prefetch/templates/retry_with_backoff.sh b/modules/nf-core/sratools/prefetch/templates/retry_with_backoff.sh new file mode 100755 index 00000000..bfee6070 --- /dev/null +++ b/modules/nf-core/sratools/prefetch/templates/retry_with_backoff.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +set -u + +retry_with_backoff() { + local max_attempts=${1} + local delay=${2} + local max_time=${3} + local attempt=1 + local output= + local status= + + # Remove the first three arguments to this function in order to access + # the 'real' command with `${@}`. + shift 3 + + while [ ${attempt} -le ${max_attempts} ]; do + output=$("${@}") + status=${?} + + if [ ${status} -eq 0 ]; then + break + fi + + if [ ${attempt} -lt ${max_attempts} ]; then + echo "Failed attempt ${attempt} of ${max_attempts}. Retrying in ${delay} s." >&2 + sleep ${delay} + elif [ ${attempt} -eq ${max_attempts} ]; then + echo "Failed after ${attempt} attempts." >&2 + return ${status} + fi + + attempt=$(( ${attempt} + 1 )) + delay=$(( ${delay} * 2 )) + if [ ${delay} -ge ${max_time} ]; then + delay=${max_time} + fi + done + + echo "${output}" +} + +export NCBI_SETTINGS="$PWD/!{ncbi_settings}" + +retry_with_backoff !{args2} \ + prefetch \ + !{args} \ + !{id} + +# check file integrity using vdb-validate or (when archive contains no checksums) md5sum +vdb-validate !{id} > vdb-validate_result.txt 2>&1 || exit 1 +if grep -q "checksums missing" vdb-validate_result.txt; then + VALID_MD5SUMS=$(curl --silent --fail --location --retry 3 --retry-delay 60 'https://locate.ncbi.nlm.nih.gov/sdl/2/retrieve?filetype=run&acc=!{id}') + LOCAL_MD5SUMS=$(md5sum !{id}/* | cut -f1 -d' ') + if ! grep -q -F -f <(echo "$LOCAL_MD5SUMS") <(echo "$VALID_MD5SUMS"); then + echo "MD5 sum check failed" 1>&2 + exit 1 + fi +fi + +cat <<-END_VERSIONS > versions.yml +"!{task.process}": + sratools: $(prefetch --version 2>&1 | grep -Eo '[0-9.]+') + curl: $(curl --version | head -n 1 | sed 's/^curl //; s/ .*$//') +END_VERSIONS diff --git a/modules/nf-core/sratools/prefetch/tests/main.nf.test b/modules/nf-core/sratools/prefetch/tests/main.nf.test new file mode 100644 index 00000000..f59de7cb --- /dev/null +++ b/modules/nf-core/sratools/prefetch/tests/main.nf.test @@ -0,0 +1,49 @@ +nextflow_process { + name "Test Process SRATOOLS_PREFETCH" + script "../main.nf" + process "SRATOOLS_PREFETCH" + tag "modules" + tag "modules_nfcore" + tag "sratools" + tag "sratools/prefetch" + + test("sratools/prefetch") { + + when { + process { + """ + input[0] = Channel.of([ [ id:'test', single_end:false ], 'DRR000774' ]) + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("sratools/prefetch with sralite") { + + when { + process { + """ + input[0] = Channel.of([ [ id:'test', single_end:false ], 'SRR1170046' ]) + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap b/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap new file mode 100644 index 00000000..67795ebb --- /dev/null +++ b/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap @@ -0,0 +1,80 @@ +{ + "sratools/prefetch with sralite": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "SRR1170046.sralite:md5,7acfce556ca0951aff49d780899c105b" + ] + ] + ], + "1": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ], + "sra": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "SRR1170046.sralite:md5,7acfce556ca0951aff49d780899c105b" + ] + ] + ], + "versions": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:49:02.309737" + }, + "sratools/prefetch": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "DRR000774.sra:md5,7647dba20c89c0e3d7ad13842f060eb0" + ] + ] + ], + "1": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ], + "sra": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "DRR000774.sra:md5,7647dba20c89c0e3d7ad13842f060eb0" + ] + ] + ], + "versions": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T11:48:37.428307" + } +} diff --git a/modules/nf-core/sratools/prefetch/tests/tags.yml b/modules/nf-core/sratools/prefetch/tests/tags.yml new file mode 100644 index 00000000..52110bfd --- /dev/null +++ b/modules/nf-core/sratools/prefetch/tests/tags.yml @@ -0,0 +1,2 @@ +sratools/prefetch: + - modules/nf-core/sratools/prefetch/** diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 978ad199..52d742bc 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -99,10 +99,12 @@ workflow PIPELINE_INITIALISATION { : ( "$params.hic".find(/.*[\/].*\.(fastq|fq)\.gz/) ? Channel.fromFilePairs(params.hic, checkIfExists: true) - : Channel.fromSRA(params.hic) + : Channel.of( [ params.hic, 'is_sra' ] ) ) - | map{ sample, fq -> - [ [ id: sample, single_end: false ], fq ] + | map { sample, fq -> + "$fq" != 'is_sra' + ? [ [ id: sample, single_end: false, is_sra: false ], fq ] + : [ [ id: sample, single_end: false, is_sra: true ], sample ] } ch_xref_assembly = params.synteny_skip || ! params.synteny_xref_assemblies diff --git a/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main.nf b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main.nf new file mode 100644 index 00000000..fbeacf4a --- /dev/null +++ b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main.nf @@ -0,0 +1,39 @@ +include { CUSTOM_SRATOOLSNCBISETTINGS } from '../../../modules/nf-core/custom/sratoolsncbisettings/main' +include { SRATOOLS_PREFETCH } from '../../../modules/nf-core/sratools/prefetch/main' +include { SRATOOLS_FASTERQDUMP } from '../../../modules/nf-core/sratools/fasterqdump/main' + +// +// Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA). +// +workflow FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS { + take: + ch_sra_ids // channel: [ val(meta), val(id) ] + ch_dbgap_key // channel: [ path(dbgap_key) ] + + main: + + ch_versions = Channel.empty() + + // + // Detect existing NCBI user settings or create new ones. + // + CUSTOM_SRATOOLSNCBISETTINGS ( ch_sra_ids.collect() ) + ch_ncbi_settings = CUSTOM_SRATOOLSNCBISETTINGS.out.ncbi_settings + ch_versions = ch_versions.mix(CUSTOM_SRATOOLSNCBISETTINGS.out.versions) + + // + // Prefetch sequencing reads in SRA format. + // + SRATOOLS_PREFETCH ( ch_sra_ids, ch_ncbi_settings, ch_dbgap_key ) + ch_versions = ch_versions.mix(SRATOOLS_PREFETCH.out.versions.first()) + + // + // Convert the SRA format into one or more compressed FASTQ files. + // + SRATOOLS_FASTERQDUMP ( SRATOOLS_PREFETCH.out.sra, ch_ncbi_settings, ch_dbgap_key ) + ch_versions = ch_versions.mix(SRATOOLS_FASTERQDUMP.out.versions.first()) + + emit: + reads = SRATOOLS_FASTERQDUMP.out.reads // channel: [ val(meta), [ reads ] ] + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/meta.yml b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/meta.yml new file mode 100644 index 00000000..1b968acc --- /dev/null +++ b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/meta.yml @@ -0,0 +1,52 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: fastq_download_prefetch_fasterqdump_sratools +description: Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA). +keywords: + - SRA + - NCBI + - sequencing + - fastq + - prefetch + - fasterq-dump +components: + - custom/sratoolsncbisettings + - sratools/prefetch + - sratools/fasterqdump +input: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - id: + type: string + description: > + SRA run identifier. + + - certificate: + type: file + description: > + Path to a JWT cart file used to access protected dbGAP data on SRA using the sra-toolkit + + pattern: "*.cart" +# TODO Update when we decide on a standard for subworkflow docs +output: + - meta: + type: map + description: > + Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + + - reads: + type: file + description: Extracted FASTQ file or files if the sequencing reads are paired-end. + pattern: "*.fastq.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@Midnighter" + - "@drpatelh" +maintainers: + - "@Midnighter" + - "@drpatelh" diff --git a/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test new file mode 100644 index 00000000..5f74ed20 --- /dev/null +++ b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test @@ -0,0 +1,43 @@ +nextflow_workflow { + + name "Test workflow: fastq_download_prefetch_fasterqdump_sratools/main.nf" + script "../main.nf" + workflow "FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "custom/sratoolsncbisettings" + tag "sratools/prefetch" + tag "sratools/fasterqdump" + tag "subworkflows/fastq_download_prefetch_fasterqdump_sratools" + + test("Parameters: default") { + + when { + workflow { + """ + input[0] = Channel.of( + [[ id:'test_single_end', single_end:true ], 'DRR000774'], + [[ id:'test_paired_end', single_end:false ], 'SRR11140744'] + ) + input[1] = [] + """ + } + } + + then { + def pelines1 = path(workflow.out.reads[0][1][0]).linesGzip + def pelines2 = path(workflow.out.reads[0][1][1]).linesGzip + def selines = path(workflow.out.reads[1][1]).linesGzip + assertAll( + { assert workflow.success }, + { assert snapshot(pelines1[0..5]).match("test_pe_reads_1_lines") }, + { assert snapshot(pelines1.size()).match("test_pe_reads_1_size") }, + { assert snapshot(pelines2[0..5]).match("test_pe_reads_2_lines") }, + { assert snapshot(pelines2.size()).match("test_pe_reads_2_size") }, + { assert snapshot(selines[0..5]).match("test_se_reads_lines") }, + { assert snapshot(selines.size()).match("test_se_reads_size") }, + { assert snapshot(workflow.out.versions).match("versions") } + ) + } + } +} diff --git a/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test.snap new file mode 100644 index 00000000..1a34e0b8 --- /dev/null +++ b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/main.nf.test.snap @@ -0,0 +1,97 @@ +{ + "test_se_reads_size": { + "content": [ + 19996 + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:56.176292" + }, + "test_pe_reads_2_lines": { + "content": [ + [ + "@SRR11140744.1 M01472:285:000000000-CYHNP:1:1101:12117:3295 length=251", + "ACAGGACACGAGTAACTCGTCTATCTTCTGCTGGCTGCTTACGGTTTCGTCCGTGTTGCAGCCGATCATCAGCACATCTAGGTTTCGTCCGGGTGTGACCGAAAGGTAAGATGGAGAGCCTTGTCCCTGGTTTCAACGAGAAAACACACGTCCAACTCAGTTTGCCTGTTTTACAGGTTCGCGACGTGCTCGTACGTGGCTTTGGAGACTCCGTGGAGGAGGTCTTATCAGAGGCACGTCAACATCTTAAA", + "+SRR11140744.1 M01472:285:000000000-CYHNP:1:1101:12117:3295 length=251", + "ABAAAFBFFBDBGGGGGGGGGGHHHHHHHHHHCHGHGGGHHHGGHGGHGHGGGHFHHHHHHHHGGGGGHHHHHHHHHFHHHHGHHHGHGGGGGEFGDGHHGFGGGHHHHHGHHGGHHFHHHHGHHHHHHHHHHHHHHGFFGGHHHHHHGGHHGGHHHHHEGHHHHHHHGHHGHHFHHHHHGGGGGGGGGGGGAGGG9BEFFFFFFFFFFFFFFEEFFFFFFFA.FFFFFFFEFEFFFFFFF.BFFFFFFFB", + "@SRR11140744.2 M01472:285:000000000-CYHNP:1:1101:20752:3564 length=238", + "GTGCACTCACGCAGTATAATTAATAACTAATTACTGTCGTTGACAGGACACGAGTAACTCGTCTATCTTCTGCAGGCTGCTTACGGTTTCGTCCGTGTTGCAGCCGATCATCAGCACATCTAGGTTTCGTCCGGGTGTGACCGAAAGGTAAGATGGAGAGCCTTGTCCCTGGTTTCAACGAGAAAACACACGTCCAACTCAGTTTGCCTGTTTTACAGGTTCGCGACGTGCTCGTACG" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:56.166207" + }, + "test_pe_reads_2_size": { + "content": [ + 2011460 + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:56.168869" + }, + "versions": { + "content": [ + [ + "versions.yml:md5,1a2218ff913fc33408bffccb081b5048", + "versions.yml:md5,53d6e983afde3a28add2ffc6b7eba4f3", + "versions.yml:md5,9c558ff624585a6eee82a19c8c0136db" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.01.0" + }, + "timestamp": "2024-02-28T15:19:18.755939" + }, + "test_pe_reads_1_size": { + "content": [ + 2011460 + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.01.0" + }, + "timestamp": "2024-02-28T15:19:18.677234" + }, + "test_se_reads_lines": { + "content": [ + [ + "@DRR000774.1 1 length=421", + "ACGCAGGTGCCAGCAGCCGCGGTAATACGTAGGATCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGGGTGCGTAGGCGGCTTGTCAAGTCTCATGTGAAATCTCCCGGCTCAACTGGGAGGGTCATGGGAAACTGATGAGCTCGAGGGCAGTAGAGGGAAGCGGAATTCCGAGAGTAGTGGTGAAATGCGTAGATACTCGGAGGAACACCAGTGGCGAAAGCGGCTTCCTGGACTGTACCTGACGCTGAGGCACGAAAGCGTGGGGAGCAAACCGGATTAGATACCCGGGTAGTCCACGCCCTAAACGATGGATACTAGATATAGGGGGTATCGACCCTCTGTGTCGAAGCTAACGCATTAAGTATCCCGCCTGAGGAGTACGGCCGCAAGGCTAAAACTTAAGGAATTGACGGCTGCGT", + "+DRR000774.1 1 length=421", + "FFFFFFFFFFFIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHHFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF:88FFF888???DBBBBB666F222ADDDFFF::;FFFFFFFFFFFFFFFFFFFFFFFFFFFF9:::FFFFCCCFFFFDDDFFFFF<<<<<8888886623//38><83238@B@@<;855557,,,,,,,0/0;;8:==DDDDDDDDD9:", + "@DRR000774.2 2 length=126", + "ACGCAGGTGCCAGCAGCCGCGGTAATACGGAGGGAGCTAGCGTTGTTCGGAATTACTGGGCGTAAAGCGCACGTAGGCGGCTTTTCAAGTCAGGGGTGGAAATACCCGGGGCCGTCAACCCGACCG" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:56.171227" + }, + "test_pe_reads_1_lines": { + "content": [ + [ + "@SRR11140744.1 M01472:285:000000000-CYHNP:1:1101:12117:3295 length=251", + "ACATAGGGCTGTTCAAGTTGAGGCAAAACGCCTTTTTCAACTTCTACTAAGCCACAAGTGCCATCTTTAAGATGTTGACGTGCCTCTGATAAGACCTCCTCCACGGAGTCTCCAAAGCCACGTACGAGCACGTCGCGAACCTGTAAAACAGGCAAACTGAGTTGGACGTGTGTTTTCTCGTTGAAACCAGGGACAAGGCTCTCCATCTTACCTTTCGGTCACACCCGGACGAAACCTAGATGTGCTGATGA", + "+SRR11140744.1 M01472:285:000000000-CYHNP:1:1101:12117:3295 length=251", + "BCCCCFFFFFCFGGGGGGGGGGHGGHHHHGGGHGHHHHHHHHHHHHHHHHHHHHHHHGHHHHHHHHHHHHHHHHHHHHHGGGHHHHHGHHGHHHHHHHHHHHHHGGGGGHHHHHHHHHHHHGHHHGGGGGHGHHGGGGGGGHHHHHHHHHHHGGHHHHHFHHHHHHHGGGHHHHHHHHHGGGHHHHHHHHGGGGGGGFGGGGGGGGGGGGGGGGGGGGGGFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFB", + "@SRR11140744.2 M01472:285:000000000-CYHNP:1:1101:20752:3564 length=238", + "CGTACGAGCACGTCGCGAACCTGTAAAACAGGCAAACTGAGTTGGACGTGTGTTTTCTCGTTGAAACCAGGGACAAGGCTCTCCATCTTACCTTTCGGTCACACCCGGACGAAACCTAGATGTGCTGATGATCGGCTGCAACACGGACGAAACCGTAAGCAGCCTGCAGAAGATAGACGAGTTACTCGTGTCCTGTCAACGACAGTAATTAGTTATTAATTATACTGCGTGAGTGCAC" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:02:56.161354" + } +} diff --git a/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/tags.yml b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/tags.yml new file mode 100644 index 00000000..03028c32 --- /dev/null +++ b/subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/fastq_download_prefetch_fasterqdump_sratools: + - subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/** diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index fea4a1e9..892c142b 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -19,6 +19,7 @@ include { ASSEMBLATHON_STATS } from '../modules/local/assemblatho include { FASTA_BUSCO_PLOT } from '../subworkflows/local/fasta_busco_plot' include { FASTA_LTRRETRIEVER_LAI } from '../subworkflows/pfr/fasta_ltrretriever_lai/main' include { FASTA_KRAKEN2 } from '../subworkflows/local/fasta_kraken2' +include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' include { FQ2HIC } from '../subworkflows/local/fq2hic' include { FASTA_SYNTENY } from '../subworkflows/local/fasta_synteny' include { CREATEREPORT } from '../modules/local/createreport' @@ -356,6 +357,23 @@ workflow ASSEMBLYQC { ch_kraken2_plot = FASTA_KRAKEN2.out.plot ch_versions = ch_versions.mix(FASTA_KRAKEN2.out.versions) + + // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC + ch_hic_reads_branch = ch_hic_reads + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + + DOWNLOAD_HIC( + ch_hic_reads_branch.sra, + [] + ) + + ch_versions = ch_versions.mix(DOWNLOAD_HIC.out.versions) + ch_hic_read_files = DOWNLOAD_HIC.out.reads + | mix(ch_hic_reads_branch.rest) + // SUBWORKFLOW: FQ2HIC ch_hic_input_assembly = ! params.hic ? Channel.empty() @@ -363,7 +381,7 @@ workflow ASSEMBLYQC { | map { tag, fa -> [ [ id: tag ], fa ] } FQ2HIC( - ch_hic_reads, + ch_hic_read_files, ch_hic_input_assembly, params.hic_skip_fastp, params.hic_skip_fastqc From 6cc2e845a04bc9cb02b0f6c5267740fc77b875aa Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 May 2024 13:40:11 +1200 Subject: [PATCH 35/76] Added MERQURYFK module --- CHANGELOG.md | 14 +- CITATIONS.md | 6 + README.md | 16 +- assets/assemblysheetv2.csv | 2 + assets/schema_input.json | 6 +- bin/assemblyqc.py | 2 + .../parsers/merquryfk_parser.py | 74 +++++++++ bin/report_modules/templates/base.html | 150 +++++++++++++----- .../templates/merquryfk/dropdown.html | 10 ++ .../templates/merquryfk/merquryfk.html | 21 +++ .../templates/merquryfk/report_contents.html | 36 +++++ conf/modules.config | 34 +++- conf/test_full.config | 4 +- docs/contributors.sh | 4 +- docs/images/spectra_cn.png | Bin 0 -> 90113 bytes docs/output.md | 17 ++ docs/parameters.md | 7 + docs/usage.md | 6 + main.nf | 3 + modules.json | 10 ++ modules/local/createreport.nf | 1 + modules/nf-core/fastk/fastk/environment.yml | 5 + modules/nf-core/fastk/fastk/main.nf | 41 +++++ modules/nf-core/fastk/fastk/meta.yml | 49 ++++++ .../merquryfk/merquryfk/environment.yml | 5 + modules/nf-core/merquryfk/merquryfk/main.nf | 58 +++++++ modules/nf-core/merquryfk/merquryfk/meta.yml | 112 +++++++++++++ modules/pfr/bwa/index/environment.yml | 2 +- modules/pfr/bwa/index/main.nf | 4 +- nextflow.config | 4 + nextflow_schema.json | 22 +++ .../utils_nfcore_assemblyqc_pipeline/main.nf | 101 ++++++++++++ workflows/assemblyqc.nf | 87 +++++++++- 33 files changed, 851 insertions(+), 62 deletions(-) create mode 100644 assets/assemblysheetv2.csv create mode 100644 bin/report_modules/parsers/merquryfk_parser.py create mode 100644 bin/report_modules/templates/merquryfk/dropdown.html create mode 100644 bin/report_modules/templates/merquryfk/merquryfk.html create mode 100644 bin/report_modules/templates/merquryfk/report_contents.html create mode 100644 docs/images/spectra_cn.png create mode 100644 modules/nf-core/fastk/fastk/environment.yml create mode 100644 modules/nf-core/fastk/fastk/main.nf create mode 100644 modules/nf-core/fastk/fastk/meta.yml create mode 100644 modules/nf-core/merquryfk/merquryfk/environment.yml create mode 100644 modules/nf-core/merquryfk/merquryfk/main.nf create mode 100644 modules/nf-core/merquryfk/merquryfk/meta.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 40e49026..96759b3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## 2.0.0+dev - [06-May-2024] +## 2.0.0+dev - [16-May-2024] ### `Added` @@ -13,11 +13,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 4. Added a launcher script for local testing `local_assemblyqc` 5. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) 6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) -7. Updated modules and sub-workflows -8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) -9. Updated `fcs-adaptor` to 0.5.0 [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) -10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) -11. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads +7. Updated modules and sub-workflows: `bwa/index`, `bwa/mem`, `cat/cat`, `custom/checkgff3fastacorrespondence`, `custom/restoregffids`, `custom/shortenfastaids`, `gt/gff3`, `gt/gff3validator`, `gt/stat`, `ltrfinder`, `ltrharvest`, `ltrretriever/lai`, `ltrretriever/ltrretriever`, `samblaster`, `fasta_ltrretriever_lai`, `fastq_bwa_mem_samblaster`, `gff3_validate`, `custom/sratoolsncbisettings`, `fastp`, `fastqc`, `untar` +8. Locally bumped `bwa/index` version to `biocontainers/bwa:0.7.18--he4a0461_0` +9. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) +10. Updated `fcs-adaptor` to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) +11. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) +12. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads +13. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) ### `Fixed` diff --git a/CITATIONS.md b/CITATIONS.md index 63cbdd2b..dcd44eed 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -112,6 +112,12 @@ > Marçais G, Delcher AL, Phillippy AM, Coston R, Salzberg SL, Zimin A. 2018. MUMmer4: A fast and versatile genome alignment system. PLoS Comput Biol. 2018 Jan 26;14(1):e1005944. doi: . PMID: 29373581; PMCID: PMC5802927. +- MERQURYFK, [Custom Permissive License](https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE) + + > https://github.com/thegenemyers/MERQURY.FK + > + > Rhie, A., Walenz, B.P., Koren, S. et al. 2020. Merqury: reference-free quality, completeness, and phasing assessment for genome assemblies. Genome Biol 21, 245. doi: + ## Software packaging/containerisation tools - [Anaconda](https://anaconda.com) diff --git a/README.md b/README.md index 0b73d8ae..ceae669f 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@ flowchart LR Run --> ASS_STATS[ASSEMBLATHON STATS] Run --> BUSCO Run --> TIDK - Run --> LTRRETRIEVER - LTRRETRIEVER --> LAI + Run --> LAI Run --> KRAKEN2 Run --> HIC_CONTACT_MAP[HIC CONTACT MAP] Run --> SYNTENY + Run --> MERQURYFK ASS_STATS --> REPORT GFF_STATS --> REPORT @@ -47,20 +47,22 @@ flowchart LR KRAKEN2 --> REPORT HIC_CONTACT_MAP --> REPORT SYNTENY --> REPORT + MERQURYFK --> REPORT ``` - [FASTA VALIDATION](https://github.com/GallVp/fasta_validator) -- [GFF3 VALIDATION](https://github.com/genometools/genometools) +- [GFF3 VALIDATION](https://genometools.org/tools/gt_gff3validator.html) - [ASSEMBLATHON STATS](https://github.com/PlantandFoodResearch/assemblathon2-analysis/blob/a93cba25d847434f7eadc04e63b58c567c46a56d/assemblathon_stats.pl): Assembly statistics -- [GENOMETOOLS GT STAT](https://github.com/genometools/genometools): Annotation statistics +- [GENOMETOOLS GT STAT](https://genometools.org/tools/gt_stat.html): Annotation statistics - [NCBI FCS ADAPTOR](https://github.com/ncbi/fcs): Adaptor contamination pass/fail - [NCBI FCS GX](https://github.com/ncbi/fcs): Foreign organism contamination pass/fail -- [BUSCO](https://gitlab.com/ezlab/busco/-/tree/master): Gene-space completeness estimation +- [BUSCO](https://gitlab.com/ezlab/busco): Gene-space completeness estimation - [TIDK](https://github.com/tolkit/telomeric-identifier): Telomere repeat identification - [LAI](https://github.com/oushujun/LTR_retriever/blob/master/LAI): Continuity of repetitive sequences - [KRAKEN2](https://github.com/DerrickWood/kraken2): Taxonomy classification -- [HIC CONTACT MAP](https://github.com/igvteam/juicebox-web): Alignment and visualisation of HiC data +- [HIC CONTACT MAP](https://github.com/igvteam/juicebox.js): Alignment and visualisation of HiC data - SYNTENY: Synteny analysis using [MUMMER](https://github.com/mummer4/mummer), [CIRCOS](http://circos.ca/documentation/) and [PLOTLY](https://plotly.com) +- [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK): k-mer based assembly evaluation ## Usage @@ -126,8 +128,10 @@ The pipeline uses nf-core modules contributed by following authors. + + ## Contributions and Support diff --git a/assets/assemblysheetv2.csv b/assets/assemblysheetv2.csv new file mode 100644 index 00000000..505e312c --- /dev/null +++ b/assets/assemblysheetv2.csv @@ -0,0 +1,2 @@ +tag,fasta,gff3,monoploid_ids,synteny_labels,reads_1 +FI1,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/814/445/GCA_003814445.1_ASM381444v1/GCA_003814445.1_ASM381444v1_genomic.fna.gz,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/814/445/GCA_003814445.1_ASM381444v1/GCA_003814445.1_ASM381444v1_genomic.gff.gz,https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/tests/stub/FI1.monoploid.seqs.txt,https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/tests/stub/FI1.seq.labels.tsv,SRR8238189 diff --git a/assets/schema_input.json b/assets/schema_input.json index 759ea3af..f415c25e 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -49,7 +49,7 @@ ] }, "reads_1": { - "errorMessage": "reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", @@ -76,7 +76,7 @@ "dependentRequired": ["reads_1"] }, "maternal_reads_1": { - "errorMessage": "maternal_reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "maternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", @@ -104,7 +104,7 @@ "dependentRequired": ["maternal_reads_1"] }, "paternal_reads_1": { - "errorMessage": "paternal_reads_1 should be a SRA ID or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "errorMessage": "paternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", diff --git a/bin/assemblyqc.py b/bin/assemblyqc.py index 0a2e0b8c..73f7780c 100755 --- a/bin/assemblyqc.py +++ b/bin/assemblyqc.py @@ -25,6 +25,7 @@ from report_modules.parsers.kraken2_parser import parse_kraken2_folder from report_modules.parsers.hic_parser import parse_hic_folder from report_modules.parsers.synteny_parser import parse_synteny_folder +from report_modules.parsers.merquryfk_parser import parse_merquryfk_folder if __name__ == "__main__": params_dict, params_table = parse_params_json("params_json.json") @@ -47,6 +48,7 @@ data_from_tools = {**data_from_tools, **parse_kraken2_folder()} data_from_tools = {**data_from_tools, **parse_hic_folder()} data_from_tools = {**data_from_tools, **parse_synteny_folder()} + data_from_tools = {**data_from_tools, **parse_merquryfk_folder()} with open("software_versions.yml", "r") as f: versions_from_ch_versions = yaml.safe_load(f) diff --git a/bin/report_modules/parsers/merquryfk_parser.py b/bin/report_modules/parsers/merquryfk_parser.py new file mode 100644 index 00000000..22f8be27 --- /dev/null +++ b/bin/report_modules/parsers/merquryfk_parser.py @@ -0,0 +1,74 @@ +import base64 +import os +import re + +from report_modules.parsers.parsing_commons import sort_list_of_results +from tabulate import tabulate +from pathlib import Path +import pandas as pd + + +def load_image_as_base64_str(file_name): + with open(file_name, "rb") as f: + binary_fc = f.read() + + base64_utf8_str = base64.b64encode(binary_fc).decode("utf-8") + return f"data:image/png+xml;base64,{base64_utf8_str}" + + +def parse_merquryfk_folder(folder_name="merquryfk_outputs"): + dir = os.getcwdb().decode() + merqury_folder_path = Path(f"{dir}/{folder_name}") + + if not os.path.exists(merqury_folder_path): + return {} + + data = {"MERQURYFK": []} + + completeness_stats_paths = [ + item for item in merqury_folder_path.glob("*.completeness.stats") + ] + + for completeness_stats_path in completeness_stats_paths: + + data_id = os.path.basename(str(completeness_stats_path)).split( + ".completeness.stats" + )[0] + individual_id = data_id.split("-reads-")[0] + haplotypes = individual_id.split("-and-") + + completeness_stats_table = pd.read_csv(completeness_stats_path, sep="\t") + qv_stats_table = pd.read_csv(f"{folder_name}/{data_id}.qv", sep="\t") + + data["MERQURYFK"].append( + { + "individual_id": individual_id, + "completeness_stats_table": completeness_stats_table.to_dict("records"), + "completeness_stats_table_html": tabulate( + completeness_stats_table, + headers=["Assembly", "Region", "Found", "Total", "% Covered"], + tablefmt="html", + numalign="left", + showindex=False, + ), + "qv_stats_table": qv_stats_table.to_dict("records"), + "qv_stats_table_html": tabulate( + qv_stats_table, + headers=["Assembly", "No Support", "Total", "Error %", "QV"], + tablefmt="html", + numalign="left", + showindex=False, + ), + "plots": [ + { + "hap": hap, + "plot": load_image_as_base64_str( + f"{folder_name}/{data_id}.{hap}.spectra-cn.fl.png" + ), + } + for hap in haplotypes + ], + } + ) + + return {"MERQURYFK": sort_list_of_results(data["MERQURYFK"], "individual_id")} diff --git a/bin/report_modules/templates/base.html b/bin/report_modules/templates/base.html index 2fbb47ce..31d52c4c 100644 --- a/bin/report_modules/templates/base.html +++ b/bin/report_modules/templates/base.html @@ -3,58 +3,130 @@
    -
    AssemblyQC {{ - all_stats_dicts['VERSIONS']['Workflow']['plant-food-research-open/assemblyqc'] }}
    +
    + AssemblyQC {{ all_stats_dicts['VERSIONS']['Workflow']['plant-food-research-open/assemblyqc'] }} +
    + + {% if 'FASTA_VALIDATE' in all_stats_dicts %} {% endif %} + {% if 'GFF3_VALIDATE' in all_stats_dicts %} {% endif %} + {% if 'NCBI_FCS_ADAPTOR' in all_stats_dicts %} - {% endif %} {% if 'NCBI_FCS_GX' in all_stats_dicts %}{% endif %} {% if 'ASSEMBLATHON_STATS' in all_stats_dicts %}{% endif %} {% if 'GENOMETOOLS_GT_STAT' in all_stats_dicts %}{% endif %} {% if 'BUSCO' in all_stats_dicts %}{% endif %} {% if 'TIDK' in all_stats_dicts %}{% endif %} {% if 'LAI' in all_stats_dicts %}{% endif %} {% if 'KRAKEN2' in all_stats_dicts %}{% endif %} {% if 'HIC' in all_stats_dicts %}{% endif %} {% if 'SYNTENY_CIRCOS' in all_stats_dicts %}{% endif %}{% if 'SYNTENY_LINEAR' in all_stats_dicts %}{% endif %} + {% endif %} + + {% if 'NCBI_FCS_GX' in all_stats_dicts %} + + {% endif %} + + {% if 'ASSEMBLATHON_STATS' in all_stats_dicts %} + + {% endif %} + + {% if 'GENOMETOOLS_GT_STAT' in all_stats_dicts %} + + {% endif %} + + {% if 'BUSCO' in all_stats_dicts %} + + {% endif %} + + {% if 'TIDK' in all_stats_dicts %} + + {% endif %} + + {% if 'LAI' in all_stats_dicts %} + + {% endif %} + + {% if 'KRAKEN2' in all_stats_dicts %} + + {% endif %} + + {% if 'HIC' in all_stats_dicts %} + + {% endif %} + + {% if 'SYNTENY_CIRCOS' in all_stats_dicts %} + + {% endif %} + + {% if 'SYNTENY_LINEAR' in all_stats_dicts %} + + {% endif %} + + {% if 'MERQURYFK' in all_stats_dicts %} + + {% endif %}
    - {% include 'params/params.html' %} {% include 'tools/tools.html' %} {% if 'FASTA_VALIDATE' in all_stats_dicts %}{% - include 'fasta_validate/fasta_validate.html' %}{% endif %} - - {% if 'GFF3_VALIDATE' in all_stats_dicts %}{% include 'gff3_validate/gff3_validate.html' %}{% endif %} - - {% if 'NCBI_FCS_ADAPTOR' in all_stats_dicts %}{% - include 'ncbi_fcs_adaptor/ncbi_fcs_adaptor.html' %}{% endif %} {% if 'NCBI_FCS_GX' in all_stats_dicts %}{% - include 'ncbi_fcs_gx/ncbi_fcs_gx.html' %}{% endif %} {% if 'ASSEMBLATHON_STATS' in all_stats_dicts %}{% include - 'assemblathon_stats/assemblathon_stats.html' %}{% endif %} {% if 'GENOMETOOLS_GT_STAT' in all_stats_dicts %}{% - include 'genometools_gt_stat/genometools_gt_stat.html' %}{% endif %} {% if 'BUSCO' in all_stats_dicts %}{% - include 'busco/busco.html' %}{% endif %} {% if 'TIDK' in all_stats_dicts %}{% include 'tidk/tidk.html' %}{% - endif %} {% if 'LAI' in all_stats_dicts %}{% include 'lai/lai.html' %}{% endif %} {% if 'KRAKEN2' in - all_stats_dicts %}{% include 'kraken2/kraken2.html' %}{% endif %} {% if 'HIC' in all_stats_dicts %}{% include - 'hic/hic.html' %}{% endif %} {% if 'SYNTENY_CIRCOS' in all_stats_dicts %}{% include - 'synteny_circos/synteny_circos.html' %}{% endif %} {% if 'SYNTENY_LINEAR' in all_stats_dicts %}{% include - 'synteny_linear/synteny_linear.html' %}{% endif %} + + {% include 'params/params.html' %} + {% include 'tools/tools.html' %} + + {% if 'FASTA_VALIDATE' in all_stats_dicts %} + {%include 'fasta_validate/fasta_validate.html' %} + {% endif %} + + {% if 'GFF3_VALIDATE' in all_stats_dicts %} + {% include 'gff3_validate/gff3_validate.html' %} + {% endif %} + + {% if 'NCBI_FCS_ADAPTOR' in all_stats_dicts %} + {% include 'ncbi_fcs_adaptor/ncbi_fcs_adaptor.html' %} + {% endif %} + + {% if 'NCBI_FCS_GX' in all_stats_dicts %} + {% include 'ncbi_fcs_gx/ncbi_fcs_gx.html' %} + {% endif %} + + {% if 'ASSEMBLATHON_STATS' in all_stats_dicts %} + {% include 'assemblathon_stats/assemblathon_stats.html' %} + {% endif %} + + {% if 'GENOMETOOLS_GT_STAT' in all_stats_dicts %} + {% include 'genometools_gt_stat/genometools_gt_stat.html' %} + {% endif %} + + {% if 'BUSCO' in all_stats_dicts %} + {% include 'busco/busco.html' %} + {% endif %} + + {% if 'TIDK' in all_stats_dicts %} + {% include 'tidk/tidk.html' %} + {% endif %} + + {% if 'LAI' in all_stats_dicts %} + {% include 'lai/lai.html' %} + {% endif %} + + {% if 'KRAKEN2' in all_stats_dicts %} + {% include 'kraken2/kraken2.html' %} + {% endif %} + + {% if 'HIC' in all_stats_dicts %} + {% include 'hic/hic.html' %} + {% endif %} + + {% if 'SYNTENY_CIRCOS' in all_stats_dicts %} + {% include 'synteny_circos/synteny_circos.html' %} + {% endif %} + + {% if 'SYNTENY_LINEAR' in all_stats_dicts %} + {% include 'synteny_linear/synteny_linear.html' %} + {% endif %} + + {% if 'MERQURYFK' in all_stats_dicts %} + {% include 'merquryfk/merquryfk.html' %} + {% endif %} {% include 'js.html' %} diff --git a/bin/report_modules/templates/merquryfk/dropdown.html b/bin/report_modules/templates/merquryfk/dropdown.html new file mode 100644 index 00000000..d257b4e9 --- /dev/null +++ b/bin/report_modules/templates/merquryfk/dropdown.html @@ -0,0 +1,10 @@ + diff --git a/bin/report_modules/templates/merquryfk/merquryfk.html b/bin/report_modules/templates/merquryfk/merquryfk.html new file mode 100644 index 00000000..8331fbd3 --- /dev/null +++ b/bin/report_modules/templates/merquryfk/merquryfk.html @@ -0,0 +1,21 @@ + diff --git a/bin/report_modules/templates/merquryfk/report_contents.html b/bin/report_modules/templates/merquryfk/report_contents.html new file mode 100644 index 00000000..6578a6f4 --- /dev/null +++ b/bin/report_modules/templates/merquryfk/report_contents.html @@ -0,0 +1,36 @@ +{% set vars = {'is_first': True} %} +{% for item in range(all_stats_dicts["MERQURYFK"]|length) %} +{% set active_text = 'display: block' if vars.is_first else 'display: none' %} +
    +
    +
    +
    {{ all_stats_dicts['MERQURYFK'][item]['individual_id'] }}
    +
    +
    +

    Completeness stats

    +
    +
    +
    {{ all_stats_dicts['MERQURYFK'][item]['completeness_stats_table_html'] }}
    +
    +
    +

    Consensus quality QV stats

    +
    +
    +
    {{ all_stats_dicts['MERQURYFK'][item]['qv_stats_table_html'] }}
    +
    + + {% for subitem in range(all_stats_dicts["MERQURYFK"][item]['plots']|length) %} +
    +

    {{ all_stats_dicts['MERQURYFK'][item]['plots'][subitem]['hap'] }} spectra-cn

    +
    +
    + +
    + {% endfor %} + +
    +
    +{% if vars.update({'is_first': False}) %} +{% endif %} +{% endfor %} diff --git a/conf/modules.config b/conf/modules.config index dd8cc10c..29f2e933 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -187,7 +187,7 @@ process { ext.args = '-harvest_out -size 1000000 -time 300' } - withName: CAT_CAT { + withName: '.*:FASTA_LTRRETRIEVER_LAI:CAT_CAT' { ext.prefix = { "${meta.id}_ltrharvest_ltrfinder.tabout" } } @@ -298,6 +298,38 @@ process { ] } + withName: TAG_ASSEMBLY { + ext.prefix = { "${meta.id}.fasta" } + } + + withName: '.*:DOWNLOAD_READS:SRATOOLS_FASTERQDUMP' { + ext.prefix = { "${meta.id}.sra.fastq" } + } + + withName: FASTK_FASTK { + ext.args = "-k$params.merqury_kmer_length -t1" + } + + withName: MERQURYFK_MERQURYFK { + publishDir = [ + [ + path: { "${params.outdir}/merquryfk/${meta.id}" }, + mode: params.publish_dir_mode, + pattern: '*.qv' + ], + [ + path: { "${params.outdir}/merquryfk/${meta.id}" }, + mode: params.publish_dir_mode, + pattern: '*.completeness.stats' + ], + [ + path: { "${params.outdir}/merquryfk/${meta.id}" }, + mode: params.publish_dir_mode, + pattern: '*.*.spectra-cn.fl.png' + ] + ] + } + withName: CREATEREPORT { publishDir = [ path: { "$params.outdir" }, diff --git a/conf/test_full.config b/conf/test_full.config index c93ba771..9c7b5ad8 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -14,7 +14,7 @@ params { config_profile_name = 'Full test profile' config_profile_description = 'Full test dataset to check pipeline function' - input = 'https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/assemblysheet.csv' + input = 'https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/assemblysheetv2.csv' ncbi_fcs_adaptor_skip = false ncbi_fcs_adaptor_empire = 'euk' @@ -39,4 +39,6 @@ params { synteny_skip = false synteny_xref_assemblies = 'https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/xrefsheet.csv' + + merqury_skip = false } diff --git a/docs/contributors.sh b/docs/contributors.sh index 8dbfc364..f3839348 100755 --- a/docs/contributors.sh +++ b/docs/contributors.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -module_authors=$(find ./modules -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '[-" ]' | tr '[:upper:]' '[:lower:]') -workflow_authors=$(find ./subworkflows -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '[-" ]' | tr '[:upper:]' '[:lower:]') +module_authors=$(find ./modules -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}') +workflow_authors=$(find ./subworkflows -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}') echo -e "${module_authors}\n${workflow_authors}" | sort -V | uniq | sed -n 's|@\(.*\)||p' diff --git a/docs/images/spectra_cn.png b/docs/images/spectra_cn.png new file mode 100644 index 0000000000000000000000000000000000000000..1a4951571e7d737782e18e35feb8fd4e516bb113 GIT binary patch literal 90113 zcmc$`byQXD+CI8aN)($AC45ynrKCYA>F$zlkOnESNhL*6Is~MQ7Fb+$p0~1k_DVlC<@d=VId`#=*1CNtS)Te_Vig`KaaWkkia9bJssmzpgH+B;8Fd9v(Olz2%TgQ8gPWzVJ z{Kp5kiG!K7T41@Nl2q?~)KcsH+>rn{^R2LL=x zoDXSC(kkmVyj!}Th^cCjKaix?-OwP03`Cut(1^L|6?qAk{ME{e3fd<&s1lO7%BS7i z>+8Q-sfK-IQdvm?C_~;*lUob9*-#YXV?SFE=$hZ!)2JX(oWr=+ygZQl>628Z#K|I= zzt+3zoi8k}^T%Mxo*}n{D13JpX^av#dG^2)w6ZW(30Wp+kTFzU+s5y6IBlA1ANz zxa5CI?&;sTp$B#N`V1Jq zW9NusprN5*V31z8Ka4^)J+w9r?xc~`1i1-?8usfk_c&NnVHQ#@4kdHQV(_dFi zK`+(cr9dy7UU5D3UvG>;w*S=McmHL3^)~JxGeG@W^MBo_W?B;cx0(~Hx+-E6@pn|{ zG1gjtqyA$nwu*?Y{I8q+>+9f0=$oB5+rM4!^WQLowz$9X>csx^0{#R6^xVKV(RVp< zz5fI&v?CJ#2{j76K`eq|bi_P{Y?jmH;aV0c)V zYyW91)f#ew;Y(h{wmb(NkR_cpiOhH854VSG8Ujh_3Qc}Q?|wPU)cvatBTb?5xLo@< zvdD?1>R95!r^y-z&J^X6QRMP4}DI%OgCK7r%~d^&*mJsoxQvu zZBpPQx>Z(v(QROya(Fp1EqTf&NiNgZ&yRu7uU2n-1Mx+nwr9*Qc1mMcK>ZV<#`5*o#qH8-CX^;jzlpgor>9&74j>{#cI}>q*Lj}<*M5d zM6O%uwv{3s^&^%qDl&2)O+IlJef|9UD(D86LMdKk2t8r5F9F?U_#P|k{?3YkS?BFS zRa89Q{|v5M*xGtI#(C6ryapqEsLXL;X{cCCOf0kVN6pjI#WrJ%xL?L=pK;oZM#se+ z&n5U{r zjS}0Ri9!6_CO>ZI>gwV+$3#Z%t~WC=X%u`1N5Jv(^}Wl=>bx>q>9Y3g`}glOiYdHD zzbBg5RMMf`d-LXv4~0K5%dhg4sw++E`NV_tMd#5SIk5~Z39TPj-k3w?xMHK zo7O4a6r5*Ep<_K_X{5YZn>M4sxb*`LnM;jveikfTd%RGSl2W62q38C1iA~jR%CmiL z+i^iyd?H4zG%1m#Xl}>(Myj}I=0`pui4V6|#spke^|%PI*4zQn_a*Vs(k!{}5eZwUzrJ;TO_5f4uuNbYUOOYs*v}Gw-(h97@BjR$$>LNRIYh$lN9fSwZB8BMYdu!QclU1I zwCd4Rgl>|klvK-?7iXXBEHebmd~bsh?#>X=t5L+2I?O4gcfg2_4_CaPrVS~JjEoH8 z+wLDMv`DsAS08|Xn{g5$d@(Z0$S^x{k4Q3AZcazpkOYYCMtkgU2VCb|o@@+JaE32$ z%(QvUr>D}=jT-0kt$)8YFfh=GWmCD;+uz^6y1L4!U8c106E)6;_|xZlbh<;Mip(U+r}!@KbmhwS%!W)6fE_avj{@G-Ar zk03HW&%-U%x$n6K4NYTppVade6cmz*;^M}@kg?AZ>p9Eh=u`%WgiQSU<@x(3&fNC` zv#$Cea`LNJl^zXf7Fp6zQ(wev>a(@(=a&#uG&RK5*JF zI@;UW8UKh@SD#X#<+dI!aa`zq=X+|)9}+TmlV0daHG3mpQsmaHTh5F99pKS}l@Y0N zo@IF!PIH|iyEM~zvtUT`3Ct;CQ8_rC~8#o(I2cY6Kfp zPs#VG3wUb)?OefkBZX=nN<6W{>vlf zs@4FU%A0~6xV7W>Jtmh|s*iOBBArJZRl|^b_Pd|)<~}L@@2wiRNX>UQGzxSmM{9xm?c_O{cs6c0z#Qv1gT3PYxB+p`^CBQ*<6 zJMLRIcda%Xn8^#$q1^;sp?lL-9v|&b;V2}frdA*AE!a=Dq_0v!dIAqPpKX>uV4lSv zw!X136(o?HoXpS9Z=UluEKGSIX!6<)YW^COx@lie3K!*I0earwH zU9ik#$q0#&KAk64li%M#K9l0vDO)V`lAjcOJ?-EY;NiNW^PM^AqG_njD0;OeTa~3D>NQTp^ z=LwrHZ0%9Sx+L&RV8&lY?h|@8jTH@oy)|;GkK6zQbQhg$dc;j4R^t}a!GiQ|8A-|V zrJ^B~Y%Q7#XTv6^rli41VAEAHmAThpH^oFnd!4gT(R%G=D3rA*mwqVP`Mfp2Ldm@j za(T;nX=u!rhfCY|_dgXWbKSaqdosU`|2n&Q=v6mkLqmTO_6+4rmDAYgaL=5fp{M8d z*xLkm+yFz5LUL{8&S+P*Au14obg#70c&@vB#CeR*X|W#y@5BGMi4@VA40|0Pj=670 zYiUIfScV508XD4Tmlb>od9pRXwbiFfC-4Bnmgb=Cj3DU=tdz3{KRbhm7d!}A_X$MN z!Yr|06BAbm341G_>_CoIcKR{fkvK6iu~IT|9;a_@Ys+J+N7ZY0ibz*?jGOw3;1W`) z|A}bv_YLa(udy2Yhfoz;4&3GBET(iWwi@D~YU6dB4-GM)HL2xkhx}X&I9cM ze}VJ`1hJEz)O0A+e|z^AWS{))-|zkcF${D>_=~I1?-KhKrkvE(BU_ETJ`*Fxi}Ica zelI?d+P5jY2db_UcEsBp3jO#%yKiYVe=!^%g5ktU>;Kn(X<#Ha`U^_L5O4g;7Ls`* z9`YAxpS=4Iv_=r;pJhg&c+v0F4E~@g6q3UKQWyXKQ~z5z|F`G;`{{p6>XT3Y``v#= z<}I{v3RQAV{%V*uvi$MkS@H3k?JLuvp`Bx%tf@(A`HZe3y>zpc&RYx`rrIPZr7oN5 z!|>qX1V@5G%f;CQuqOb^g1b_l3tsUGjkZ@J)M^JnaiIBHdtlm^a})d(8A3QUNLTi1K&e!o}SnaE~Leg_M<8a7j@PK@~T z2>D|Ba%;XP`plJ20|QOZ;2Rzbavr7@bJb-iFQJQ{TwSpwt8=6IJtm5{xVRo)V9g@) zj=CEuwNkMW*sH80=I(v~v7sRQl;Gh{E5eh&=baH2HpPD=JeNDMj?vN3aJ<&A$?%{l zF4Ll$dOWw9=(wQNrQv+7@%}_wkK0x?dF0NL#lf1EM|1d=B0H)ZPyXuZ)29ow6Sx5> z7BXT8R_Y_!48hQXVc8Y@%3MS`-E#-^0!oi)_i!plpUjSUUO86zS+Ljn_0>YQ5*R-= zLT{n1v?kX=m!4X!LfG}&e%1att05KF2L}6^r(!)s$5H~;OktsKpYw#jUmpjJL(#ub^O>@e6Ad>Y(rb^#^WtU^{Y9E z*PP2shd<#g?&`i~^z4-KlEnvX{L2JP<-7Sa{SuNEN(g6i6`9p7-vqmMG}(3$^XASj zQA=Z^o$BWLdel83qN_?F7V|zn{(Ls{GUg9unY42AD2aeM^hQ!pPv|}qnyaBkVQSi%v&d)bZPz~Ab9@vbgrv;E7ce|?C{YpeMQeZEt0}wf^G8?+i>aov zcnX6Y9lJg|#!B0P;zBzk_&ky?0+7#sr;m)RTj2bz{Xi*nZhOdLZEy4$wlDUx;mW-Z zt*8Mlzdj(POg|&@s7LB2Lo7eSp{u%A-0JFkm$w|BKGi9v!48NOXp4tGdTSts3p)}! zDRLuQvBunQIXemo>5y8dZ#`kbzd=nBV7D`mLq6#1XK|KO_r2Q>H zmbyV@D1)=K$3CvFYU3cXyz?GW!-ZNEYQJ0aG^#;aG4G3HHTkvxlzXxxS0NKrFMCV( z@82)T#zNO1Cr_tQD-pN$6HQcYi*f6p&)mqGpIjqQW1E;<%a;PzD=#N{pY6wAhp z#_V`w_%u39j0zm}gV(3--~vfD@SnA!S6BbLv{gnU*-VssyOC~mH~~6v=S=QOF<5{$ z7=|D_l5FGkI`pG{4GAe)j=7a6u3$J*!v_y%4K#&>_=b@|h#}Vd;SWpejs0CkLt}L- z;0`}5aQ%7G`JbL5y1F)X&pj+;WNI&C2SB7zx`H;MTcT%xy2Y0R6Z#a92UA@c_4!qo zD-&s5eV8JYxG_B>Au&Ib4O}p(L$GwM{hOf`j3N`EMT zs#7&bXJ^>HP4{S>DCF05VJc94jDQQtRLy~^*iuwf)Q^xsUtfQ)*ygz3Ajom9Gnvuz zYzZ!6o`}E^f0LDpD(b=!t#iQ0(e1t69utg|qeID}mCx!~3dN>}Zty|dvwTmsrKF^; zVm|uz`qG%kP7DR^!-o$6qlg9Gcqj9{xtWgK-`Lo=>R`PYo|ZRYxn2w0A}q~Fxib() z_wL@cYYL?a5;!Wc>&RaRFdYZTABd0o<&pu*DyOAEAfS+X2`X`z-;X$fvBxAXKfk<~ ziSzOt$TMnsHq#a-;C18r392S8Y0V2Q-~;Gg%*9>uDWSlkoeKz#{1>s zpbt}+wxXpa9}&gg9?4)~Sb3d*RZ&=YuRT7>`vZb(fy0_oD!7kx{>JQJ;Q|mLVd-fx zim5VuyOSYTD5Y$fEvEoL<>uxBK3)gg>H=gz!~LlpD4gSi8390`5*$%hFyPZT=aobQ z3iV-8Z;1sKNTL}d08;Wy6{|iWeeM$hoMdjZADbi!HL`R)cc*}ri$0#r>|22SqH$Ku z)>5C6u2P}bI$HgDfyY%WjQ|o&JPCrS@Wb!WWx5<xs`r<9o_+L5oB8;POhQsJq#Pg}l*C}`XV0Ji(bU8Z7;d!k$dMhp zj#q0mm!j)!ZtgPKIR4t&+6YE%-=H8_Y3VR8Ht>cRnH>O54QuQ`YaaD#+B`%QQ0tL0 zEF7FTF8k@ikwfLqnmq4J1o6z2oL=2UthQAk5T#cPfH3+8ux*_=ETo`28U~ z(s5l!jt(6ff%5mp&eU7GJhdvNI9Bx`^k+}0V#m(d**<|$Os^1Yan6loB^W2*quyG)7GOQ@>K54X95g-R|Y#jP-Hdq_U5)^ zA)4D%D$uR=1fzeGw+KjdCiaO831zACijMLHztcR<%StKHmo8m`<%fMM51X+BHw5y> z?uZ9`6kMbjz8t2#(GtlT#J`u;9n0&w4$R?oPHTF{9PM%h|6UL{kUOg3fn8PAajk1^ zZjLlZ78T@c@e4|Jc6J&X8lZg}Q857>M|PgqxP{op#>Qm%RN)ICqm&RzHU3dvSU4dq zW%=Bx)A%vmW(sd+7c5>^tX;}Z8I_-TO2G#r$|2n1+F}K6)#|N)2U%qVI7Rv|m zfoG*ck>8~ElR7Xo3ZQ@6Ec9jpw3SN%5@&P1hmMPD_xNb#c=A?PiZq=7-qw&!b=Z*C z;esyEk$Mrncs>^i35#rheu0}diG`|X7*5m&z%4?`f&CfHHFz~*o&-y-1Kc>keAT)K z@tumYd`6X3B~A_w4)^c-Xw%Z7Icorr2KxF**{#NOahK>~?mhkm5ep!)WCUXjt4Uxq zJZXGoMZkVq%9R=P83^WK$6OgnU2~y+(b*7wY8zV;`v{S2hm@+O?|pj@^cu@NG``_*~UrZ_nj6%OZRtx_J?6O7Z? zN-pU&H8moBgzPq>TJzJBll`rnMAl@byCA=)7Kw$(q+S>BtQc->X({0O3E}SD5P(+Q zJi|BH!F{z*pKQ-{rG6n-{t8%qN=_lQ%VU43m_ef;ZM9{5d>l4dC3_wMa6nMbudOwp zd_7ldap(>@{FthUuU(^YULw3`YY84@H&lB!5$6IKulw)M-GRQozF9jjn$aZ|q#MDn zN~_f`>@>Rqm2dbCDy#&O!{7}fszU+m+!0&vxUrGv{M z`KcUr8|Q0Ry0KHEFW{ho8#>RJEM+EX6YB>ITH)gf(NZ2*c$|%<81=C(*Rw>7p+kV< zcQ@jW7sn?dECgI*P5CkuPITkO;&^V)!WJkU!Q~nJ2ipsMOp|-Gll$9CVBeN6QdzW= z>=Cr2n9YJ{lY*xo@w>FUuf`9vJFQUe?OUh?5s%xLc8M+%S`FS_O*n^IHaPgb_Vnq~ zutNt3E_P4AYYCQ9lh}a&0v=9c38MPs^mLQJWsx-qeZY6Z1&T%(K2ezX19iHj;h1z_ zaKFC9x7Sjzw6uhQkj70UL4a&rI&+0m$<-5hkm2wh_KbGe!fO{Vj*mZwkgTk&D-s=a~3@7^pP6 zK5b{N-|2SiPk_P5tN<2OQAQicv$0Ioun|+mJ5$k{wa;)=IeL}nn7no+x0>Xdnwxo? z7T*s$evS;bg!Et+>i&E65sukP+|edgLqx{iV5j(|flc^~xU6i%;NjkuUtnPNw#Uao zki5Lj5$wYzSf}X~KJ>EpPDuxZ zs(w~Xea0pte*?-+9CCLGT%T5BO)%mvSpkOQf}|v2GEwupk&woeox^I7CV&heZcrp2 ze#LnzI0Y1U|41-npXo_f?AX%l4t8ve4qfb#Y-ad~Ldn=Mudl67HM3W^fbO*WELA4v z1B*dDfcDT!sT-kd3C}*pOZ=F5FEeW6;!+Y)tdKo6PqFQ2d|)Q+PsXQ#Ckjn6sLNou7&C7(`_I=r64#;4eyF zKrPqSQi`*ad*}nv9$2yQg9rFeM5>{c6nSv}KCr=@kb0W3&F)4{7EO>w8=f!9a*pM7 zP`Zc-d4|fys8D07Xo73sF#}}3M~@yUJb_xfNhohoY~>$BWJ9AZlB+{K7RGf|qV<8K zm^1trdrxa8ioWd4YW@)uQYNy{%jss2u@H)bO2eKSuT4u!gR*v@wozF}=;Cvv3I#<| zo{S|@iqCCxcBFiVp?DZX&@PaPpbkCjv$~K|t>V-Q%ip*JMPOZhy^4B0L|EGWju&T% zGAc@icgrVdW_VobrnEV&hx;2fd$`RwDz9>CX7#RA?JvKfiUrus#AE}W)5!%hOAa5D+y)^R}`~CEm0$Oxn(7KL>k9%;#3Xd)^r^ zhyrsN5K_N>>CcUqJf1j*4da032EgmCR}lYosrbd9IaQR_cYUb$rzn1por zH1a&khgk~(2(S8mDm|qgQs2Zb>(`q@M0>1u7QhWK&+kZ}u!j2S$M9`FzQY#BrirE~ zaO<(jRb{D2s=>K|jrwU%fM|~|erzhD(-F*Mpr%fPaH}w6$#D!qvht`Qh)H(kFh+X(y9-aY)A-R2%wo0q*)99l^t0n1@22t{ep~d7&+P6q1xNf!Q+g`6iqyzb3oub zJ~|9+1Im48>Si>A-LN3dER|gsXfc^^orPtLLh`eKRd-s)>r1yLm(Ma)=y61mYFPnZ z3AAt;1(-Ft4dGHzLE%QU`*_V$AoLqYK+f+~xz^L0Z_@VtyLkHHMw@^a=;I2Ssa@dA zGUa6yxahS5ouS1l zn_2KMzun~bv7>EH*U7{fsCrbnlDb_1)0gx1_UPvV-A_qHmHLG>KQ9ls|68g(>58d5 z%O#0LO=)Lb+f6~U1~NZ+8!#W_ib6U(A1MFhNzhds1@I@yudJmcom*WuFB?Q$&!21l z5zWBouJ%tfh6p-fI30$&e%<40UZY5 zkTn2sg`ID2t^kN#1SJ>buMZqnA7Wx)NvvIOr%cun={mgoiQtLZj$7Q^d(eKce#y(r zYpN5o9qDc9nY5Y5L>NO}jkVtE8?z$hj-eWcEQW$%-DOnj0?NfQ8|7T{leER8Yu+CJekB zW{25!2&1xqz-oQ4I^PwbuhmssE@J#MXAsB-Ei_Y>N*A949-o{vEYI9p9(e-XO4Fqj zb~Y$~{p!{MZ8rfvXBC@YXQZ>*4Pb}PzS zja60Vxgp}|1^(Z9V8sAU&&xo$s8eX(v%gZUOXr-?H3!=>2=o!iWRPF`CKa6W=OX`R zb7;x6;)t?4M}tDeel%>;0czZ?FKnhm(qFsms?DMLGGUf3`9)Usuh5q3lrgMTbsx-e z4DJRv$LsgcR}k2Z3=Or)92yPpf=c@dT3Em?ZU}g~%gMccM)x}5_hg7{Ai2O1c!>GNx(TJS)_*fq^;6uud9!R>Zy|Xhf3D94 z*9GJQ6t6IV5V)kXFA@{~hJ46lp8`MT#qLZlwv>H z6B!l%p0UzU1_Id-)+V$#6R>z617kJ6>{m4QJZ#mJMbt#zAiI(@3f%g@;nJWAk^?0@&Z21C5%)sOjqNZ%C`{;w;6dKN#GCE`wZX7^=w+ zJE)N6YVYi?<(ux11Z9f0{7$*kldZ*cWflc!xPl7T{;BYgfy1Kge#W77Gq-nGFJTkp*Rps!|JnBk_<%<^y zIXOjlFi`FB=SbL0p?~ew1#%AJb1W<@z+F6nZelnmP>_9g8&~uv_T9U83m7ptb2San zB9N@Uj7*VE6}>Y)>7a$0)E4nj5&KF &dU!p4zs7iqDDCagGq)7zU5UY@%KT5B4d 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 - Circos synteny plot
    AssemblyQC - Circos synteny plot
    AssemblyQC - Linear synteny plot
    AssemblyQC - Linear synteny plot
    +### Merqury.FK + +
    +Output files + +- `merquryfk/` + - `tag1-and-tag2-reads-*`: Results folder for haplotype `tag1` and `tag2`. + - `*.completeness.stats`: Assembly completeness statistics + - `*.qv`: Assembly consensus quality QV statistics + - `*.*.spectra-cn.fl.png`: Spectra-cn plot +
    + +[MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) is used for the k-mer analysis. + +
    AssemblyQC - Spectra-cn plot
    AssemblyQC - Spectra-cn plot
    + ### Pipeline information
    diff --git a/docs/parameters.md b/docs/parameters.md index e9a4df43..b1fd54d3 100644 --- a/docs/parameters.md +++ b/docs/parameters.md @@ -81,6 +81,13 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and | `synteny_color_by_contig` | Synteny plot is colored by contig | `boolean` | True | | | | `synteny_xref_assemblies` | Reference assemblies for synteny analysis | `string` | | | | +## Merqury options + +| Parameter | Description | Type | Default | Required | Hidden | +| --------------------- | -------------------------------- | --------- | ------- | -------- | ------ | +| `merqury_skip` | | `boolean` | True | | | +| `merqury_kmer_length` | kmer length for merqury analysis | `integer` | 21 | | | + ## Max job request options Set the top limit for requested resources for any single job. diff --git a/docs/usage.md b/docs/usage.md index 0f4214ef..f700ba4f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -9,6 +9,8 @@ You will need to create an assemblysheet with information about the assemblies y - `gff3 [Optional]:` GFF3 annotation file if available - `monoploid_ids [Optional]:` A txt file listing the IDs used to calculate LAI in monoploid mode if necessary - `synteny_labels [Optional]:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) when performing synteny analysis +- `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of a genome by MERQURY.FK. +- `reads_2 [Optional]`: If `reads_1` is a SRA ID, this column is ignored. Otherwise, this column should list the second file of the paired reads. ## External databases @@ -83,6 +85,10 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p - `fasta:` FASTA file - `synteny_labels:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) +### Merqury K-mer analysis + +- `merqury_kmer_length`: kmer length for merqury analysis + ## Running the pipeline The typical command for running the pipeline is as follows: diff --git a/main.nf b/main.nf index eb7e9e94..04eef6ad 100755 --- a/main.nf +++ b/main.nf @@ -34,6 +34,7 @@ workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { ch_input ch_hic_reads ch_xref_assembly + ch_reads ch_params_as_json ch_summary_params_as_json @@ -45,6 +46,7 @@ workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { ch_input, ch_hic_reads, ch_xref_assembly, + ch_reads, ch_params_as_json, ch_summary_params_as_json ) @@ -80,6 +82,7 @@ workflow { PIPELINE_INITIALISATION.out.input, PIPELINE_INITIALISATION.out.hic_reads, PIPELINE_INITIALISATION.out.xref_assembly, + PIPELINE_INITIALISATION.out.reads, PIPELINE_INITIALISATION.out.params_as_json, PIPELINE_INITIALISATION.out.summary_params_as_json ) diff --git a/modules.json b/modules.json index d387fde5..90ffadab 100644 --- a/modules.json +++ b/modules.json @@ -110,6 +110,11 @@ "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", "installed_by": ["modules"] }, + "fastk/fastk": { + "branch": "master", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", + "installed_by": ["modules"] + }, "fastp": { "branch": "master", "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", @@ -125,6 +130,11 @@ "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", "installed_by": ["modules"] }, + "merquryfk/merquryfk": { + "branch": "master", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", + "installed_by": ["modules"] + }, "seqkit/seq": { "branch": "master", "git_sha": "687ad41c14008d3d55cf7c2ffacebe6a057211a4", diff --git a/modules/local/createreport.nf b/modules/local/createreport.nf index 8deb0edb..087bec70 100644 --- a/modules/local/createreport.nf +++ b/modules/local/createreport.nf @@ -17,6 +17,7 @@ process CREATEREPORT { path kraken2_outputs, stageAs: 'kraken2_outputs/*' path hic_outputs, stageAs: 'hic_outputs/*' path synteny_outputs, stageAs: 'synteny_outputs/*' + path merqury_outputs, stageAs: 'merquryfk_outputs/*' path versions val params_json val params_summary_json diff --git a/modules/nf-core/fastk/fastk/environment.yml b/modules/nf-core/fastk/fastk/environment.yml new file mode 100644 index 00000000..54c932fe --- /dev/null +++ b/modules/nf-core/fastk/fastk/environment.yml @@ -0,0 +1,5 @@ +name: fastk_fastk +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/fastk/fastk/main.nf b/modules/nf-core/fastk/fastk/main.nf new file mode 100644 index 00000000..fec5a4d2 --- /dev/null +++ b/modules/nf-core/fastk/fastk/main.nf @@ -0,0 +1,41 @@ +process FASTK_FASTK { + tag "$meta.id" + label 'process_medium' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.hist") , emit: hist + tuple val(meta), path("*.ktab*", hidden: true) , emit: ktab, optional: true + tuple val(meta), path("*.{prof,pidx}*", hidden: true), emit: prof, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + FastK \\ + $args \\ + -T$task.cpus \\ + -M${task.memory.toGiga()} \\ + -N${prefix}_fk \\ + $reads + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/fastk/fastk/meta.yml b/modules/nf-core/fastk/fastk/meta.yml new file mode 100644 index 00000000..7c7f4260 --- /dev/null +++ b/modules/nf-core/fastk/fastk/meta.yml @@ -0,0 +1,49 @@ +name: "fastk_fastk" +description: A fast K-mer counter for high-fidelity shotgun datasets +keywords: + - k-mer + - count + - histogram +tools: + - "fastk": + description: "A fast K-mer counter for high-fidelity shotgun datasets" + homepage: "https://github.com/thegenemyers/FASTK" + tool_dev_url: "https://github.com/thegenemyers/FASTK" + licence: "https://github.com/thegenemyers/FASTK/blob/master/LICENSE" +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - hist: + type: file + description: Histogram of k-mers + pattern: "*.hist" + - ktab: + type: file + description: A sorted table of all canonical k‑mers along with their counts. + pattern: "*.ktab" + - prof: + type: file + description: A k‑mer count profile of each sequence in the input data set. + pattern: "*.prof" +authors: + - "@mahesh-panchal" +maintainers: + - "@mahesh-panchal" diff --git a/modules/nf-core/merquryfk/merquryfk/environment.yml b/modules/nf-core/merquryfk/merquryfk/environment.yml new file mode 100644 index 00000000..44a5ee9b --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/environment.yml @@ -0,0 +1,5 @@ +name: merquryfk_merquryfk +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/merquryfk/merquryfk/main.nf b/modules/nf-core/merquryfk/merquryfk/main.nf new file mode 100644 index 00000000..ac163dac --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/main.nf @@ -0,0 +1,58 @@ +process MERQURYFK_MERQURYFK { + tag "$meta.id" + label 'process_medium' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' + + input: + tuple val(meta), path(fastk_hist), path(fastk_ktab), path(assembly), path(haplotigs) + + output: + tuple val(meta), path("${prefix}.completeness.stats") , emit: stats + tuple val(meta), path("${prefix}.*_only.bed") , emit: bed + tuple val(meta), path("${prefix}.*.qv") , emit: assembly_qv + tuple val(meta), path("${prefix}.*.spectra-cn.fl.png"), emit: spectra_cn_fl_png, optional: true + tuple val(meta), path("${prefix}.*.spectra-cn.fl.pdf"), emit: spectra_cn_fl_pdf, optional: true + tuple val(meta), path("${prefix}.*.spectra-cn.ln.png"), emit: spectra_cn_ln_png, optional: true + tuple val(meta), path("${prefix}.*.spectra-cn.ln.pdf"), emit: spectra_cn_ln_pdf, optional: true + tuple val(meta), path("${prefix}.*.spectra-cn.st.png"), emit: spectra_cn_st_png, optional: true + tuple val(meta), path("${prefix}.*.spectra-cn.st.pdf"), emit: spectra_cn_st_pdf, optional: true + tuple val(meta), path("${prefix}.qv") , emit: qv + tuple val(meta), path("${prefix}.spectra-asm.fl.png") , emit: spectra_asm_fl_png, optional: true + tuple val(meta), path("${prefix}.spectra-asm.fl.pdf") , emit: spectra_asm_fl_pdf, optional: true + tuple val(meta), path("${prefix}.spectra-asm.ln.png") , emit: spectra_asm_ln_png, optional: true + tuple val(meta), path("${prefix}.spectra-asm.ln.pdf") , emit: spectra_asm_ln_pdf, optional: true + tuple val(meta), path("${prefix}.spectra-asm.st.png") , emit: spectra_asm_st_png, optional: true + tuple val(meta), path("${prefix}.spectra-asm.st.pdf") , emit: spectra_asm_st_pdf, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + MerquryFK \\ + $args \\ + -T$task.cpus \\ + ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ + $assembly \\ + $haplotigs \\ + $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + merquryfk: $MERQURY_VERSION + r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/merquryfk/merquryfk/meta.yml b/modules/nf-core/merquryfk/merquryfk/meta.yml new file mode 100644 index 00000000..7d4af796 --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/meta.yml @@ -0,0 +1,112 @@ +name: "merquryfk_merquryfk" +description: FastK based version of Merqury +keywords: + - Merqury + - reference-free + - assembly evaluation +tools: + - "merquryfk": + description: "FastK based version of Merqury" + homepage: "https://github.com/thegenemyers/MERQURY.FK" + tool_dev_url: "https://github.com/thegenemyers/MERQURY.FK" + licence: "https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE" +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastk_hist: + type: file + description: A histogram files from the program FastK + pattern: "*.hist" + - fastk_ktab: + type: file + description: Histogram ktab files from the program FastK (option -t) + pattern: "*.ktab*" + - assembly: + type: file + description: Genome (primary) assembly files (fasta format) + pattern: ".fasta" + - haplotigs: + type: file + description: Assembly haplotigs (fasta format) + pattern: ".fasta" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - stats: + type: file + description: Assembly statistics file + pattern: "*.completeness.stats" + - bed: + type: file + description: Assembly only kmer positions not supported by reads in bed format + pattern: "*_only.bed" + - spectra_cn_fl_png: + type: file + description: "Unstacked copy number spectra filled plot in PNG format" + pattern: "*.spectra-cn.fl.png" + - spectra_cn_ln_png: + type: file + description: "Unstacked copy number spectra line plot in PNG format" + pattern: "*.spectra-cn.ln.png" + - spectra_cn_st_png: + type: file + description: "Stacked copy number spectra line plot in PNG format" + pattern: "*.spectra-cn.st.png" + - spectra_asm_fl_png: + type: file + description: "Unstacked assembly spectra filled plot in PNG format" + pattern: "*.spectra-asm.fl.png" + - spectra_asm_ln_png: + type: file + description: "Unstacked assembly spectra line plot in PNG format" + pattern: "*.spectra-asm.ln.png" + - spectra_asm_st_png: + type: file + description: "Stacked assembly spectra line plot in PNG format" + pattern: "*.spectra-asm.st.png" + - spectra_cn_fl_pdf: + type: file + description: "Unstacked copy number spectra filled plot in PDF format" + pattern: "*.spectra-cn.fl.pdf" + - spectra_cn_ln_pdf: + type: file + description: "Unstacked copy number spectra line plot in PDF format" + pattern: "*.spectra-cn.ln.pdf" + - spectra_cn_st_pdf: + type: file + description: "Stacked copy number spectra line plot in PDF format" + pattern: "*.spectra-cn.st.pdf" + - spectra_asm_fl_pdf: + type: file + description: "Unstacked assembly spectra filled plot in PDF format" + pattern: "*.spectra-asm.fl.pdf" + - spectra_asm_ln_pdf: + type: file + description: "Unstacked assembly spectra line plot in PDF format" + pattern: "*.spectra-asm.ln.pdf" + - spectra_asm_st_pdf: + type: file + description: "Stacked assembly spectra line plot in PDF format" + pattern: "*.spectra-asm.st.pdf" + - assembly_qv: + type: file + description: "error and qv table for each scaffold of the assembly" + pattern: "*.qv" + - qv: + type: file + description: "error and qv of each assembly as a whole" + pattern: "*.qv" +authors: + - "@mahesh-panchal" +maintainers: + - "@mahesh-panchal" diff --git a/modules/pfr/bwa/index/environment.yml b/modules/pfr/bwa/index/environment.yml index 5d3cb323..126e0034 100644 --- a/modules/pfr/bwa/index/environment.yml +++ b/modules/pfr/bwa/index/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::bwa=0.7.17 + - bioconda::bwa=0.7.18 diff --git a/modules/pfr/bwa/index/main.nf b/modules/pfr/bwa/index/main.nf index 24b5a2ea..2e48b6ca 100644 --- a/modules/pfr/bwa/index/main.nf +++ b/modules/pfr/bwa/index/main.nf @@ -4,8 +4,8 @@ process BWA_INDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : - 'biocontainers/bwa:0.7.17--hed695b0_7' }" + 'https://depot.galaxyproject.org/singularity/bwa:0.7.18--he4a0461_0' : + 'biocontainers/bwa:0.7.18--he4a0461_0' }" input: tuple val(meta), path(fasta) diff --git a/nextflow.config b/nextflow.config index 5a8128aa..82b2b89c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -61,6 +61,10 @@ params { synteny_color_by_contig = true synteny_xref_assemblies = null + // Merqury options + merqury_skip = true + merqury_kmer_length = 21 + // Output options outdir = './results' email = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 432f3f82..36f7556e 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -266,6 +266,25 @@ } } }, + "merqury_options": { + "title": "Merqury options", + "type": "object", + "description": "", + "default": "", + "properties": { + "merqury_skip": { + "type": "boolean", + "default": true, + "fa_icon": "fas fa-forward" + }, + "merqury_kmer_length": { + "type": "integer", + "default": 21, + "description": "kmer length for merqury analysis", + "minimum": 3 + } + } + }, "max_job_request_options": { "title": "Max job request options", "type": "object", @@ -459,6 +478,9 @@ { "$ref": "#/definitions/synteny_options" }, + { + "$ref": "#/definitions/merqury_options" + }, { "$ref": "#/definitions/max_job_request_options" }, diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 52d742bc..489b1c36 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -121,6 +121,23 @@ workflow PIPELINE_INITIALISATION { [ tag, file(fa, checkIfExists: true), file(labels, checkIfExists: true) ] } + ch_reads = params.merqury_skip + ? Channel.empty() + : ch_input_validated + | map { input_data -> + def tag = input_data[0] + def reads_1 = input_data[5] + def reads_2 = input_data[6] + + reads_1 + ? extractReadsTuple ( tag, reads_1, reads_2 ) + : null + } + | groupTuple + | map { fid, metas, reads -> + validateAndNormaliseReadsTupe ( fid, metas, reads ) + } + // Initialise parameter channels ch_params_as_json = Channel.of ( jsonifyParams ( params ) ) ch_summary_params_as_json = Channel.of ( jsonifySummaryParams ( summary_params ) ) @@ -129,6 +146,7 @@ workflow PIPELINE_INITIALISATION { input = ch_input_validated hic_reads = ch_hic_reads xref_assembly = ch_xref_assembly_validated + reads = ch_reads params_as_json = ch_params_as_json summary_params_as_json = ch_summary_params_as_json versions = ch_versions @@ -264,3 +282,86 @@ def jsonifySummaryParams(params) { return JsonOutput.toJson(summary).toString() } + +def extractReadsTuple(tag, reads_1, reads_2) { + if ( reads_1 && reads_2 ) { + return [ + [ fid: file(reads_1).name ], + [ + id: tag, + single_end: false, + is_sra: false + ], + [ + reads_1, + reads_2, + ] + ] + } + + if ( "$reads_1".find(/^SRR[0-9]*$/) ) { + return [ + [ fid: "$reads_1" ], + [ + id: tag, + single_end: false, + is_sra: true + ], + reads_1 + ] + } + + return [ + [ fid: file(reads_1).name ], + [ + id: tag, + single_end: true, + is_sra: false + ], + [ + reads_1 + ] + ] +} + +def validateAndNormaliseReadsTupe ( fid, metas, reads ) { + + def tags = metas.collect { it.id }.flatten() + def endedness = metas.collect { it.single_end }.flatten() + + // Validate + if ( endedness.unique().size() != 1 ) { + error("Please check input assemblysheet -> Following assemblies have different reads_1 and reads_2: ${tags}") + } + + if ( tags.size() > 2 ) { + error("Please check input assemblysheet -> More than two assemblies (${tags}) are in the same read group: ${fid}") + } + + def individualID = tags.join('-and-') + "-reads-" + fid.fid.replaceAll(/\./, '_') + + if ( metas.first().is_sra ) { // SRA + return [ + [ id:individualID, single_end:false, is_sra:true, assemblies:tags ], + reads.first() + ] + } + + if ( endedness.unique().first() ) { // Single ended + return [ + [ id:individualID, single_end:true, is_sra:false, assemblies:tags ], + reads.first().collect { file(it, checkIfExists: true) } + ] + } + + def reads_2 = reads.collect { it[1] } + + if ( reads_2.unique().size() != 1 ) { + error("Please check input assemblysheet -> Following assemblies have different reads_1 and reads_2: ${tags}") + } + + return [ + [ id:individualID, single_end:false, is_sra:false, assemblies:tags ], + reads.first().collect { file(it, checkIfExists: true) } + ] +} diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 892c142b..f90e4354 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -19,11 +19,16 @@ include { ASSEMBLATHON_STATS } from '../modules/local/assemblatho include { FASTA_BUSCO_PLOT } from '../subworkflows/local/fasta_busco_plot' include { FASTA_LTRRETRIEVER_LAI } from '../subworkflows/pfr/fasta_ltrretriever_lai/main' include { FASTA_KRAKEN2 } from '../subworkflows/local/fasta_kraken2' -include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' include { FQ2HIC } from '../subworkflows/local/fq2hic' +include { CAT_CAT as TAG_ASSEMBLY } from '../modules/pfr/cat/cat/main' include { FASTA_SYNTENY } from '../subworkflows/local/fasta_synteny' +include { FASTK_FASTK } from '../modules/nf-core/fastk/fastk/main' +include { MERQURYFK_MERQURYFK } from '../modules/nf-core/merquryfk/merquryfk/main' include { CREATEREPORT } from '../modules/local/createreport' +include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' +include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_READS } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN MAIN WORKFLOW @@ -36,6 +41,7 @@ workflow ASSEMBLYQC { ch_input ch_hic_reads ch_xref_assembly + ch_reads ch_params_as_json ch_summary_params_as_json @@ -407,6 +413,84 @@ workflow ASSEMBLYQC { ch_synteny_plots = FASTA_SYNTENY.out.png.mix(FASTA_SYNTENY.out.html) ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) + // MODULE: CAT_CAT as TAG_ASSEMBLY + TAG_ASSEMBLY ( + ch_clean_assembly.map { tag, fa -> [ [ id: tag ], fa ] } + ) + + ch_clean_assembly_tagged = TAG_ASSEMBLY.out.file_out + ch_versions = ch_versions.mix(TAG_ASSEMBLY.out.versions) + + // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_READS + ch_reads_assemblies = ch_reads + | combine( + ch_clean_assembly_tagged + | map { [ it ] } + | collect + | map { [ it ] } + ) + | map { meta, fq, assemblies -> + [ + [ id: meta.id, single_end: meta.single_end, is_sra: meta.is_sra ], + fq, + assemblies + .findAll { meta2, fasta -> meta2.id in meta.assemblies } + .collect { meta2, fasta -> fasta } + .flatten() + .sort(false) + ] + } + + ch_reads_branch = ch_reads_assemblies + | map { meta, fq, fastas -> [ meta, fq ] } + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + + DOWNLOAD_READS( + ch_reads_branch.sra, + [] + ) + + ch_reads_files = DOWNLOAD_READS.out.reads + | mix(ch_reads_branch.rest) + + ch_versions = ch_versions.mix(DOWNLOAD_READS.out.versions) + + // MODULE: FASTK_FASTK + FASTK_FASTK ( ch_reads_files ) + + ch_reads_fastk_hist = FASTK_FASTK.out.hist + ch_reads_fastk = FASTK_FASTK.out.ktab + ch_versions = ch_versions.mix(FASTK_FASTK.out.versions.first()) + + // MODULE: MERQURYFK_MERQURYFK + ch_merqury_assemblies = ch_reads_assemblies + | map { meta, fq, fastas -> [ meta, fastas ] } + + ch_merqury_inputs = ch_reads_fastk_hist + | join( + ch_reads_fastk + ) + | join( + ch_merqury_assemblies + ) + | map { meta, hist, ktab, fastas -> + [ meta, hist, ktab, fastas, [] ] + } + + MERQURYFK_MERQURYFK ( ch_merqury_inputs ) + + ch_merqury_qv = MERQURYFK_MERQURYFK.out.qv + ch_merqury_stats = MERQURYFK_MERQURYFK.out.stats + ch_merqury_spectra_cn_fl_png = MERQURYFK_MERQURYFK.out.spectra_cn_fl_png + ch_merqury_outputs = ch_merqury_qv + | mix(ch_merqury_stats) + | mix(ch_merqury_spectra_cn_fl_png) + | flatMap { meta, data -> data } + ch_versions = ch_versions.mix(MERQURYFK_MERQURYFK.out.versions.first()) + // Collate and save software versions ch_versions = ch_versions | unique @@ -436,6 +520,7 @@ workflow ASSEMBLYQC { ch_kraken2_plot .collect().ifEmpty([]), ch_hic_html .collect().ifEmpty([]), ch_synteny_plots .collect().ifEmpty([]), + ch_merqury_outputs .collect().ifEmpty([]), ch_versions_yml, ch_params_as_json, ch_summary_params_as_json From 9baec0f9b18aacc268a0fb20479e55b09522cd69 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 May 2024 13:51:25 +1200 Subject: [PATCH 36/76] Template update for nf-core/tools version 2.14.1 --- .editorconfig | 6 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/ci.yml | 4 +- .github/workflows/download_pipeline.yml | 22 ++- .github/workflows/fix-linting.yml | 6 +- .github/workflows/linting.yml | 19 +- .github/workflows/linting_comment.yml | 2 +- .github/workflows/release-announcements.yml | 6 +- .nf-core.yml | 1 + .pre-commit-config.yaml | 3 + CHANGELOG.md | 2 +- README.md | 2 +- assets/multiqc_config.yml | 4 +- conf/base.config | 3 - conf/modules.config | 8 - conf/test.config | 2 +- conf/test_full.config | 2 +- docs/usage.md | 2 + modules.json | 4 +- modules/nf-core/fastqc/main.nf | 6 + nextflow.config | 178 +++++++++--------- nextflow_schema.json | 7 + pyproject.toml | 15 -- .../utils_nfcore_assemblyqc_pipeline/main.nf | 16 +- .../nf-core/utils_nfcore_pipeline/main.nf | 8 +- workflows/assemblyqc.nf | 46 +++-- 26 files changed, 212 insertions(+), 164 deletions(-) delete mode 100644 pyproject.toml diff --git a/.editorconfig b/.editorconfig index dd9ffa53..72dda289 100644 --- a/.editorconfig +++ b/.editorconfig @@ -28,10 +28,6 @@ indent_style = unset [/assets/email*] indent_size = unset -# ignore Readme -[README.md] -indent_style = unset - -# ignore python +# ignore python and markdown [*.{py,md}] indent_style = unset diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 12f22500..3da295ca 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/plant-food-r - [ ] If you've fixed a bug or added code that should be tested, add tests! - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/plant-food-research-open/assemblyqc/tree/master/.github/CONTRIBUTING.md) - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd73a829..81e48363 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,10 +28,10 @@ jobs: - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 with: version: "${{ matrix.NXF_VER }}" diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 08622fd5..2d20d644 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -14,6 +14,8 @@ on: pull_request: types: - opened + - edited + - synchronize branches: - master pull_request_target: @@ -28,11 +30,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: @@ -65,8 +70,17 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline + - name: Run the downloaded pipeline (stub) + id: stub_run_pipeline + continue-on-error: true env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + - name: Run the downloaded pipeline (stub run not supported) + id: run_pipeline + if: ${{ job.steps.stub_run_pipeline.status == failure() }} + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 80625a8f..31ca9786 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,9 +32,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 073e1876..1fcafe88 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,13 +14,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - - name: Set up Python 3.11 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Set up Python 3.12 + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 - cache: "pip" + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit @@ -32,14 +31,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - name: Install dependencies @@ -60,7 +59,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index b706875f..40acc23f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 # v3 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index d468aeaa..03ecfcf7 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -12,7 +12,7 @@ jobs: - name: get topics and convert to hashtags id: get_topics run: | - curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT + echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: @@ -25,13 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} - ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics + ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.10" - name: Install dependencies diff --git a/.nf-core.yml b/.nf-core.yml index 61d19b4d..12896981 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -18,6 +18,7 @@ lint: nextflow_config: - manifest.name - manifest.homePage +nf_core_version: 2.14.1 repository_type: pipeline template: prefix: plant-food-research-open diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index af57081f..4dc0f1dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,9 @@ repos: rev: "v3.1.0" hooks: - id: prettier + additional_dependencies: + - prettier@3.2.5 + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index 59ee0da8..c0ebecc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v2.0.0 - [date] +## v2.0.0+dev - [date] Initial release of plant-food-research-open/assemblyqc, created with the [nf-core](https://nf-co.re/) template. diff --git a/README.md b/README.md index 19194afb..5ea7ea72 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/plant-food-research-open/assemblyqc) ## Introduction diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 759adecd..0015bfa8 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,8 +1,6 @@ report_comment: > - - This report has been generated by the plant-food-research-open/assemblyqc + This report has been generated by the plant-food-research-open/assemblyqc analysis pipeline. - report_section_order: "plant-food-research-open-assemblyqc-methods-description": order: -1000 diff --git a/conf/base.config b/conf/base.config index fad3aa91..faaec489 100644 --- a/conf/base.config +++ b/conf/base.config @@ -59,7 +59,4 @@ process { errorStrategy = 'retry' maxRetries = 2 } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index e3ea8fa6..d203d2b6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -22,14 +22,6 @@ process { ext.args = '--quiet' } - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/conf/test.config b/conf/test.config index 2bc1ad8e..6bfdc87a 100644 --- a/conf/test.config +++ b/conf/test.config @@ -22,7 +22,7 @@ params { // Input data // TODO nf-core: Specify the paths to your test data on nf-core/test-datasets // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/conf/test_full.config b/conf/test_full.config index 63d2687c..931bacf5 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -17,7 +17,7 @@ params { // Input data for full size test // TODO nf-core: Specify the paths to your full test data ( on nf-core/test-datasets or directly in repositories, e.g. SRA) // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/docs/usage.md b/docs/usage.md index 1a98b70a..9b9c7ebd 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -154,6 +154,8 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) - `apptainer` - A generic configuration profile to be used with [Apptainer](https://apptainer.org/) +- `wave` + - A generic configuration profile to enable [Wave](https://seqera.io/wave/) containers. Use together with one of the above (requires Nextflow ` 24.03.0-edge` or later). - `conda` - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer. diff --git a/modules.json b/modules.json index 1d7adb5b..8558f6d2 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "fastqc": { "branch": "master", - "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["modules"] }, "multiqc": { @@ -26,7 +26,7 @@ }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 9e19a74c..d79f1c86 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -25,6 +25,11 @@ process FASTQC { def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + + def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') + // FastQC memory value allowed range (100 - 10000) + def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) + """ printf "%s %s\\n" $rename_to | while read old_name new_name; do [ -f "\${new_name}" ] || ln -s \$old_name \$new_name @@ -33,6 +38,7 @@ process FASTQC { fastqc \\ $args \\ --threads $task.cpus \\ + --memory $fastqc_memory \\ $renamed_files cat <<-END_VERSIONS > versions.yml diff --git a/nextflow.config b/nextflow.config index cbc0aa8d..6bae5f67 100644 --- a/nextflow.config +++ b/nextflow.config @@ -16,7 +16,8 @@ params { genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false - fasta = null// MultiQC options + + // MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null @@ -24,15 +25,16 @@ params { multiqc_methods_description = null // Boilerplate options - outdir = null - publish_dir_mode = 'copy' - email = null - email_on_fail = null - plaintext_email = false - monochrome_logs = false - hook_url = null - help = false - version = false + outdir = null + publish_dir_mode = 'copy' + email = null + email_on_fail = null + plaintext_email = false + monochrome_logs = false + hook_url = null + help = false + version = false + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' // Config options config_profile_name = null @@ -68,103 +70,109 @@ try { } // Load plant-food-research-open/assemblyqc custom profiles from different institutions. -// Warning: Uncomment only if a pipeline-specific institutional config already exists on nf-core/configs! -// try { -// includeConfig "${params.custom_config_base}/pipeline/assemblyqc.config" -// } catch (Exception e) { -// System.err.println("WARNING: Could not load nf-core/config/assemblyqc profiles: ${params.custom_config_base}/pipeline/assemblyqc.config") -// } +try { + includeConfig "${params.custom_config_base}/pipeline/assemblyqc.config" +} catch (Exception e) { + System.err.println("WARNING: Could not load nf-core/config/assemblyqc profiles: ${params.custom_config_base}/pipeline/assemblyqc.config") +} profiles { debug { - dumpHashes = true - process.beforeScript = 'echo $HOSTNAME' - cleanup = false + dumpHashes = true + process.beforeScript = 'echo $HOSTNAME' + cleanup = false nextflow.enable.configProcessNamesValidation = true } conda { - conda.enabled = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - channels = ['conda-forge', 'bioconda', 'defaults'] - apptainer.enabled = false + conda.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + conda.channels = ['conda-forge', 'bioconda', 'defaults'] + apptainer.enabled = false } mamba { - conda.enabled = true - conda.useMamba = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + conda.enabled = true + conda.useMamba = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } docker { - docker.enabled = true - conda.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false - docker.runOptions = '-u $(id -u):$(id -g)' + docker.enabled = true + conda.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false + docker.runOptions = '-u $(id -u):$(id -g)' } arm { - docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { - singularity.enabled = true - singularity.autoMounts = true - conda.enabled = false - docker.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + singularity.enabled = true + singularity.autoMounts = true + conda.enabled = false + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } podman { - podman.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + podman.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } shifter { - shifter.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + shifter.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } charliecloud { - charliecloud.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - apptainer.enabled = false + charliecloud.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + apptainer.enabled = false } apptainer { - apptainer.enabled = true - apptainer.autoMounts = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false + apptainer.enabled = true + apptainer.autoMounts = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + wave { + apptainer.ociAutoPull = true + singularity.ociAutoPull = true + wave.enabled = true + wave.freeze = true + wave.strategy = 'conda,container' } gitpod { - executor.name = 'local' - executor.cpus = 4 - executor.memory = 8.GB + executor.name = 'local' + executor.cpus = 4 + executor.memory = 8.GB } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } @@ -231,7 +239,7 @@ manifest { description = """A NextFlow pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '2.0.0' + version = '2.0.0+dev' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index dda3a0f5..971d65a2 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -265,6 +265,13 @@ "description": "Validation of parameters in lenient more.", "hidden": true, "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." + }, + "pipelines_testdata_base_path": { + "type": "string", + "fa_icon": "far fa-check-circle", + "description": "Base URL or local path to location of pipeline test dataset files", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", + "hidden": true } } } diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 56110621..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,15 +0,0 @@ -# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. -# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.ruff] -line-length = 120 -target-version = "py38" -cache-dir = "~/.cache/ruff" - -[tool.ruff.lint] -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] - -[tool.ruff.lint.isort] -known-first-party = ["nf_core"] - -[tool.ruff.lint.per-file-ignores] -"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 0e9efa87..e8fa98a5 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -140,6 +140,10 @@ workflow PIPELINE_COMPLETION { imNotification(summary_params, hook_url) } } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } } /* @@ -230,8 +234,16 @@ def methodsDescriptionText(mqc_methods_yaml) { meta["manifest_map"] = workflow.manifest.toMap() // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + if (meta.manifest_map.doi) { + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + def temp_doi_ref = "" + String[] manifest_doi = meta.manifest_map.doi.tokenize(",") + for (String doi_ref: manifest_doi) temp_doi_ref += "(doi: ${doi_ref.replace("https://doi.org/", "").replace(" ", "")}), " + meta["doi_text"] = temp_doi_ref.substring(0, temp_doi_ref.length() - 2) + } else meta["doi_text"] = "" + meta["nodoi_text"] = meta.manifest_map.doi ? "" : "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " // Tool references meta["tool_citations"] = "" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index a8b55d6f..14558c39 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -65,9 +65,15 @@ def checkProfileProvided(nextflow_cli_args) { // Citation string for pipeline // def workflowCitation() { + def temp_doi_ref = "" + String[] manifest_doi = workflow.manifest.doi.tokenize(",") + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + - " ${workflow.manifest.doi}\n\n" + + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index cd30a061..b47addae 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -40,22 +40,44 @@ workflow ASSEMBLYQC { // Collate and save software versions // softwareVersionsToYAML(ch_versions) - .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true) - .set { ch_collated_versions } + .collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true + ).set { ch_collated_versions } // // MODULE: MultiQC // - ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) - ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty() - ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty() - summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") - ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) - ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false)) + ch_multiqc_config = Channel.fromPath( + "$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? + Channel.fromPath(params.multiqc_config, checkIfExists: true) : + Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? + Channel.fromPath(params.multiqc_logo, checkIfExists: true) : + Channel.empty() + + summary_params = paramsSummaryMap( + workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? + file(params.multiqc_methods_description, checkIfExists: true) : + file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value( + methodsDescriptionText(ch_multiqc_custom_methods_description)) + + ch_multiqc_files = ch_multiqc_files.mix( + ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix( + ch_methods_description.collectFile( + name: 'methods_description_mqc.yaml', + sort: true + ) + ) MULTIQC ( ch_multiqc_files.collect(), From 62e58966cefd7105d3d1c0512f7167640c0ca002 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 May 2024 14:25:16 +1200 Subject: [PATCH 37/76] Fixed linting issues --- .github/workflows/linting.yml | 3 +++ nextflow.config | 2 +- nextflow_schema.json | 34 +++++----------------------------- version_check.sh | 2 +- 4 files changed, 10 insertions(+), 31 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3c80a33f..05605419 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -57,10 +57,13 @@ jobs: --markdown lint_results.md \ --key actions_ci \ --key actions_schema_validation \ + --key base_config \ --key files_exist \ --key files_unchanged \ --key merge_markers \ + --key modules_config \ --key nextflow_config \ + --key nfcore_yml \ --key pipeline_name_conventions \ --key pipeline_todos \ --key readme \ diff --git a/nextflow.config b/nextflow.config index f28a80d3..9203b2a6 100644 --- a/nextflow.config +++ b/nextflow.config @@ -277,7 +277,7 @@ manifest { mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' version = '2.0.0+dev' - doi = '10.5281/zenodo.10647870' + doi = 'https://doi.org/10.5281/zenodo.10647870' } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index f58a28f1..28754b9f 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -35,10 +35,7 @@ "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" } }, - "required": [ - "input", - "outdir" - ] + "required": ["input", "outdir"] }, "general_stats_options": { "title": "General stats options", @@ -67,10 +64,7 @@ }, "ncbi_fcs_adaptor_empire": { "type": "string", - "enum": [ - "euk", - "prok" - ], + "enum": ["euk", "prok"], "description": "Empire for NCBI FCS Adaptor checking: 'euk' for eukaryotes, or 'prok' for prokaryotes" }, "ncbi_fcs_gx_skip": { @@ -111,14 +105,7 @@ }, "busco_mode": { "type": "string", - "enum": [ - "geno", - "tran", - "prot", - "genome", - "transcriptome", - "proteins" - ], + "enum": ["geno", "tran", "prot", "genome", "transcriptome", "proteins"], "description": "BUSCO mode: 'geno' for genome, 'tran' for transcriptome, 'prot' for proteins" }, "busco_lineage_datasets": { @@ -240,11 +227,7 @@ "type": "string", "default": "both", "description": "Synteny plot type: 'linear', 'circos', or 'both'", - "enum": [ - "both", - "linear", - "circos" - ] + "enum": ["both", "linear", "circos"] }, "synteny_between_input_assemblies": { "type": "boolean", @@ -406,14 +389,7 @@ "default": "copy", "description": "Method used to save pipeline results to output directory.", "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], "hidden": true }, "email_on_fail": { diff --git a/version_check.sh b/version_check.sh index e23860d3..23cf619c 100755 --- a/version_check.sh +++ b/version_check.sh @@ -10,5 +10,5 @@ fi # Check CHANGELOG version -grep "## $config_version - " CHANGELOG.md >/dev/null \ +head -10 CHANGELOG.md | grep "## v$config_version - " >/dev/null \ || (echo 'Failed to match CHANGELOG version'; exit 1) From 3f5bb21d427c3c760a07e3411cbbaf873fb28603 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 May 2024 14:31:34 +1200 Subject: [PATCH 38/76] Updated fasta_explore_search_plot_tidk --- CHANGELOG.md | 2 +- modules.json | 6 +-- modules/nf-core/seqkit/seq/environment.yml | 2 +- modules/nf-core/seqkit/seq/main.nf | 4 +- modules/nf-core/seqkit/seq/tests/main.nf.test | 4 -- .../seqkit/seq/tests/main.nf.test.snap | 48 ++++++++++-------- modules/nf-core/seqkit/sort/environment.yml | 2 +- modules/nf-core/seqkit/sort/main.nf | 4 +- .../nf-core/seqkit/sort/tests/main.nf.test | 4 -- .../seqkit/sort/tests/main.nf.test.snap | 48 ++++++++++-------- .../tests/main.nf.test.snap | 50 ++++++++++++------- 11 files changed, 97 insertions(+), 77 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cfc2050..90c44b94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 4. Added a launcher script for local testing `local_assemblyqc` 5. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) 6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) -7. Updated modules and sub-workflows: `bwa/index`, `bwa/mem`, `cat/cat`, `custom/checkgff3fastacorrespondence`, `custom/restoregffids`, `custom/shortenfastaids`, `gt/gff3`, `gt/gff3validator`, `gt/stat`, `ltrfinder`, `ltrharvest`, `ltrretriever/lai`, `ltrretriever/ltrretriever`, `samblaster`, `fasta_ltrretriever_lai`, `fastq_bwa_mem_samblaster`, `gff3_validate`, `custom/sratoolsncbisettings`, `fastp`, `fastqc`, `untar` +7. Updated modules and sub-workflows: `bwa/index`, `bwa/mem`, `cat/cat`, `custom/checkgff3fastacorrespondence`, `custom/restoregffids`, `custom/shortenfastaids`, `gt/gff3`, `gt/gff3validator`, `gt/stat`, `ltrfinder`, `ltrharvest`, `ltrretriever/lai`, `ltrretriever/ltrretriever`, `samblaster`, `fasta_ltrretriever_lai`, `fastq_bwa_mem_samblaster`, `gff3_validate`, `custom/sratoolsncbisettings`, `fastp`, `fastqc`, `untar`, `seqkit/seq`, `seqkit/sort`, `fasta_explore_search_plot_tidk` 8. Locally bumped `bwa/index` version to `biocontainers/bwa:0.7.18--he4a0461_0` 9. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) 10. Updated `fcs-adaptor` to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) diff --git a/modules.json b/modules.json index 90ffadab..59b548a7 100644 --- a/modules.json +++ b/modules.json @@ -137,12 +137,12 @@ }, "seqkit/seq": { "branch": "master", - "git_sha": "687ad41c14008d3d55cf7c2ffacebe6a057211a4", + "git_sha": "2be41ca2cc780eca4293d1b0dd3850b0b7ac40a3", "installed_by": ["fasta_explore_search_plot_tidk"] }, "seqkit/sort": { "branch": "master", - "git_sha": "ffcdfb354f8c8e59bdccc1a4249f0f3b232c2a3d", + "git_sha": "2be41ca2cc780eca4293d1b0dd3850b0b7ac40a3", "installed_by": ["fasta_explore_search_plot_tidk"] }, "sratools/fasterqdump": { @@ -181,7 +181,7 @@ "nf-core": { "fasta_explore_search_plot_tidk": { "branch": "master", - "git_sha": "2b21fbeb20ad9f17612f4a3dd7b12971513f08d5", + "git_sha": "2be41ca2cc780eca4293d1b0dd3850b0b7ac40a3", "installed_by": ["subworkflows"] }, "fastq_download_prefetch_fasterqdump_sratools": { diff --git a/modules/nf-core/seqkit/seq/environment.yml b/modules/nf-core/seqkit/seq/environment.yml index 9019d269..74e0dd76 100644 --- a/modules/nf-core/seqkit/seq/environment.yml +++ b/modules/nf-core/seqkit/seq/environment.yml @@ -6,4 +6,4 @@ channels: - bioconda - defaults dependencies: - - "bioconda::seqkit=2.6.1" + - "bioconda::seqkit=2.8.1" diff --git a/modules/nf-core/seqkit/seq/main.nf b/modules/nf-core/seqkit/seq/main.nf index 7fc742b3..d7d38fc8 100644 --- a/modules/nf-core/seqkit/seq/main.nf +++ b/modules/nf-core/seqkit/seq/main.nf @@ -5,8 +5,8 @@ process SEQKIT_SEQ { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqkit:2.6.1--h9ee0642_0': - 'biocontainers/seqkit:2.6.1--h9ee0642_0' }" + 'https://depot.galaxyproject.org/singularity/seqkit:2.8.1--h9ee0642_0': + 'biocontainers/seqkit:2.8.1--h9ee0642_0' }" input: tuple val(meta), path(fastx) diff --git a/modules/nf-core/seqkit/seq/tests/main.nf.test b/modules/nf-core/seqkit/seq/tests/main.nf.test index aa9c283e..3ed23945 100644 --- a/modules/nf-core/seqkit/seq/tests/main.nf.test +++ b/modules/nf-core/seqkit/seq/tests/main.nf.test @@ -26,7 +26,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -48,7 +47,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -70,7 +68,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -116,7 +113,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } diff --git a/modules/nf-core/seqkit/seq/tests/main.nf.test.snap b/modules/nf-core/seqkit/seq/tests/main.nf.test.snap index 91b4d17a..e6910966 100644 --- a/modules/nf-core/seqkit/seq/tests/main.nf.test.snap +++ b/modules/nf-core/seqkit/seq/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ], "fastx": [ [ @@ -22,19 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ] } ], - "timestamp": "2023-12-18T10:34:00.37449" - }, - "versions": { - "content": [ - [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" - ] - ], - "timestamp": "2023-12-17T13:56:53.318962" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:52:18.220051903" }, "sarscov2-test_1_fastq_gz": { "content": [ @@ -48,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ], "fastx": [ [ @@ -59,11 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ] } ], - "timestamp": "2023-12-18T10:33:53.528342" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:51:55.607826581" }, "sarscov2-genome_fasta": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ], "fastx": [ [ @@ -88,11 +88,15 @@ ] ], "versions": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ] } ], - "timestamp": "2023-12-18T10:33:44.757686" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:51:27.717072933" }, "sarscov2-genome_fasta_gz": { "content": [ @@ -106,7 +110,7 @@ ] ], "1": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ], "fastx": [ [ @@ -117,10 +121,14 @@ ] ], "versions": [ - "versions.yml:md5,03e95c09e4faae889c3d516b2d4b9d7f" + "versions.yml:md5,34894c4efa5e10a923e78975a3d260dd" ] } ], - "timestamp": "2023-12-18T10:33:49.115171" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:51:37.917560104" } } \ No newline at end of file diff --git a/modules/nf-core/seqkit/sort/environment.yml b/modules/nf-core/seqkit/sort/environment.yml index 820c5707..3a02d156 100644 --- a/modules/nf-core/seqkit/sort/environment.yml +++ b/modules/nf-core/seqkit/sort/environment.yml @@ -6,4 +6,4 @@ channels: - bioconda - defaults dependencies: - - "bioconda::seqkit=2.6.1" + - "bioconda::seqkit=2.8.1" diff --git a/modules/nf-core/seqkit/sort/main.nf b/modules/nf-core/seqkit/sort/main.nf index 08f86eb1..c12e35ac 100644 --- a/modules/nf-core/seqkit/sort/main.nf +++ b/modules/nf-core/seqkit/sort/main.nf @@ -5,8 +5,8 @@ process SEQKIT_SORT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqkit:2.6.1--h9ee0642_0': - 'biocontainers/seqkit:2.6.1--h9ee0642_0' }" + 'https://depot.galaxyproject.org/singularity/seqkit:2.8.1--h9ee0642_0': + 'biocontainers/seqkit:2.8.1--h9ee0642_0' }" input: tuple val(meta), path(fastx) diff --git a/modules/nf-core/seqkit/sort/tests/main.nf.test b/modules/nf-core/seqkit/sort/tests/main.nf.test index 0c2f4e2d..e6f143dd 100644 --- a/modules/nf-core/seqkit/sort/tests/main.nf.test +++ b/modules/nf-core/seqkit/sort/tests/main.nf.test @@ -26,7 +26,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -48,7 +47,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -70,7 +68,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } @@ -116,7 +113,6 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert snapshot(process.out.versions).match("versions") } ) } diff --git a/modules/nf-core/seqkit/sort/tests/main.nf.test.snap b/modules/nf-core/seqkit/sort/tests/main.nf.test.snap index 94e2cb35..4d3a862b 100644 --- a/modules/nf-core/seqkit/sort/tests/main.nf.test.snap +++ b/modules/nf-core/seqkit/sort/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ], "fastx": [ [ @@ -22,19 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ] } ], - "timestamp": "2023-12-18T10:07:19.28815" - }, - "versions": { - "content": [ - [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" - ] - ], - "timestamp": "2023-12-18T10:07:15.341516" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T10:15:12.840547526" }, "sarscov2-test_1_fastq_gz": { "content": [ @@ -48,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ], "fastx": [ [ @@ -59,11 +55,15 @@ ] ], "versions": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ] } ], - "timestamp": "2023-12-18T10:12:25.704893" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T10:14:53.190928013" }, "sarscov2-genome_fasta": { "content": [ @@ -77,7 +77,7 @@ ] ], "1": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ], "fastx": [ [ @@ -88,11 +88,15 @@ ] ], "versions": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ] } ], - "timestamp": "2023-12-18T10:07:15.293713" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T10:14:29.745582222" }, "sarscov2-genome_fasta_gz": { "content": [ @@ -106,7 +110,7 @@ ] ], "1": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ], "fastx": [ [ @@ -117,10 +121,14 @@ ] ], "versions": [ - "versions.yml:md5,ffb1083944323f1b40bd5699cfa8b998" + "versions.yml:md5,04ac93fea9e0019536cfe1445ef15472" ] } ], - "timestamp": "2023-12-18T10:09:20.306713" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T10:14:41.460601093" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fasta_explore_search_plot_tidk/tests/main.nf.test.snap b/subworkflows/nf-core/fasta_explore_search_plot_tidk/tests/main.nf.test.snap index 6e4e99c6..40bd469c 100644 --- a/subworkflows/nf-core/fasta_explore_search_plot_tidk/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fasta_explore_search_plot_tidk/tests/main.nf.test.snap @@ -56,12 +56,12 @@ ], "5": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", "versions.yml:md5,83a6abbf9b68ec1e6152c5b6eb12f0d7", - "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b", + "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1" ], "aposteriori_sequence": [ [ @@ -117,16 +117,20 @@ ], "versions": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", "versions.yml:md5,83a6abbf9b68ec1e6152c5b6eb12f0d7", - "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b", + "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1" ] } ], - "timestamp": "2023-12-12T15:33:35.106116" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:52:52.0126754" }, "homo_sapiens-genome_fasta-genome_21_fasta-no_apriori-stub": { "content": [ @@ -181,10 +185,10 @@ ], "5": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b" ], "aposteriori_sequence": [ [ @@ -236,14 +240,18 @@ ], "versions": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b" ] } ], - "timestamp": "2023-12-21T11:15:42.277945" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:53:21.817193592" }, "homo_sapiens-genome_fasta-genome_21_fasta-partial_apriori-stub": { "content": [ @@ -308,12 +316,12 @@ ], "5": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", "versions.yml:md5,83a6abbf9b68ec1e6152c5b6eb12f0d7", - "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b", + "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1" ], "aposteriori_sequence": [ [ @@ -375,15 +383,19 @@ ], "versions": [ "versions.yml:md5,02d48eb43c3882d9832c88b9e080b420", - "versions.yml:md5,506585e66b23f17620bf582ef60af56d", "versions.yml:md5,5f9958ea613eceae4b09bb42ecaac656", "versions.yml:md5,6713d71b01fe0402e5d32f1a5a181e0f", + "versions.yml:md5,702fdfb5f74070b208b10384021f3f28", "versions.yml:md5,83a6abbf9b68ec1e6152c5b6eb12f0d7", - "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1", - "versions.yml:md5,d0a1f1950f8dc5eb106b04a9364c8f04" + "versions.yml:md5,95dde1750b4171bedad83c5340cc712b", + "versions.yml:md5,b900c2a21c17ac2d16e33641e64fc7c1" ] } ], - "timestamp": "2023-12-21T11:15:25.633714" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-08T08:53:07.119615485" } } \ No newline at end of file From 22ca108fe792015cb1374c41b868c92854aff48e Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Thu, 16 May 2024 14:46:43 +1200 Subject: [PATCH 39/76] Replaced GFF3_VALIDATE sub-workflow with GFF3_GT_GFF3_GFF3VALIDATOR_STAT --- CHANGELOG.md | 1 + conf/modules.config | 42 +-- modules.json | 24 +- .../environment.yml | 9 - .../checkgff3fastacorrespondence/main.nf | 25 -- .../check_gff3_fasta_correspondence.sh | 70 ----- .../tests/main.nf.test | 70 ----- .../tests/main.nf.test.snap | 72 ----- .../tests/tags.yml | 2 - modules/pfr/gt/gff3/main.nf | 2 +- modules/pfr/gt/gff3/tests/main.nf.test | 2 +- modules/pfr/gt/gff3/tests/main.nf.test.snap | 4 +- modules/pfr/gt/gff3/tests/tags.yml | 2 +- modules/pfr/gt/gff3validator/main.nf | 29 +- .../pfr/gt/gff3validator/tests/main.nf.test | 61 ++++- .../gt/gff3validator/tests/main.nf.test.snap | 39 ++- .../gt/gff3validator/tests/nextflow.config | 5 + modules/pfr/gt/gff3validator/tests/tags.yml | 2 +- modules/pfr/samtools/faidx/environment.yml | 10 + modules/pfr/samtools/faidx/main.nf | 50 ++++ .../faidx}/meta.yml | 61 +++-- modules/pfr/samtools/faidx/tests/main.nf.test | 122 +++++++++ .../samtools/faidx/tests/main.nf.test.snap | 249 ++++++++++++++++++ .../pfr/samtools/faidx/tests/nextflow.config | 7 + .../pfr/samtools/faidx/tests/nextflow2.config | 6 + modules/pfr/samtools/faidx/tests/tags.yml | 2 + .../gff3_gt_gff3_gff3validator_stat/main.nf | 155 +++++++++++ .../meta.yml | 15 +- .../tests/main.nf.test | 53 +++- .../tests/main.nf.test.snap | 144 ++++++++++ .../tests/nextflow.config | 0 .../tests/tags.yml | 2 + subworkflows/pfr/gff3_validate/main.nf | 61 ----- .../pfr/gff3_validate/tests/main.nf.test.snap | 115 -------- subworkflows/pfr/gff3_validate/tests/tags.yml | 2 - workflows/assemblyqc.nf | 20 +- 36 files changed, 994 insertions(+), 541 deletions(-) delete mode 100644 modules/pfr/custom/checkgff3fastacorrespondence/environment.yml delete mode 100644 modules/pfr/custom/checkgff3fastacorrespondence/main.nf delete mode 100755 modules/pfr/custom/checkgff3fastacorrespondence/templates/check_gff3_fasta_correspondence.sh delete mode 100644 modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test delete mode 100644 modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test.snap delete mode 100644 modules/pfr/custom/checkgff3fastacorrespondence/tests/tags.yml create mode 100644 modules/pfr/gt/gff3validator/tests/nextflow.config create mode 100644 modules/pfr/samtools/faidx/environment.yml create mode 100644 modules/pfr/samtools/faidx/main.nf rename modules/pfr/{custom/checkgff3fastacorrespondence => samtools/faidx}/meta.yml (51%) create mode 100644 modules/pfr/samtools/faidx/tests/main.nf.test create mode 100644 modules/pfr/samtools/faidx/tests/main.nf.test.snap create mode 100644 modules/pfr/samtools/faidx/tests/nextflow.config create mode 100644 modules/pfr/samtools/faidx/tests/nextflow2.config create mode 100644 modules/pfr/samtools/faidx/tests/tags.yml create mode 100644 subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main.nf rename subworkflows/pfr/{gff3_validate => gff3_gt_gff3_gff3validator_stat}/meta.yml (80%) rename subworkflows/pfr/{gff3_validate => gff3_gt_gff3_gff3validator_stat}/tests/main.nf.test (56%) create mode 100644 subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test.snap rename subworkflows/pfr/{gff3_validate => gff3_gt_gff3_gff3validator_stat}/tests/nextflow.config (100%) create mode 100644 subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/tags.yml delete mode 100644 subworkflows/pfr/gff3_validate/main.nf delete mode 100644 subworkflows/pfr/gff3_validate/tests/main.nf.test.snap delete mode 100644 subworkflows/pfr/gff3_validate/tests/tags.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 90c44b94..45250fba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 11. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) 12. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads 13. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) +14. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` ### `Fixed` diff --git a/conf/modules.config b/conf/modules.config index 29f2e933..0359b8a1 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -12,6 +12,28 @@ process { + withName: '.*:GFF3_GT_GFF3_GFF3VALIDATOR_STAT:GT_GFF3' { + ext.args = '-tidy -retainids' + } + + withName: '.*:GFF3_GT_GFF3_GFF3VALIDATOR_STAT:GT_STAT' { + ext.args = [ + '-genelengthdistri', + '-genescoredistri', + '-exonlengthdistri', + '-exonnumberdistri', + '-intronlengthdistri', + '-cdslengthdistri', + '-addintrons' + ].join(' ').trim() + + publishDir = [ + path: { "${params.outdir}/genometools_gt_stat" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals("versions.yml") ? null : filename } + ] + } + withName: ASSEMBLATHON_STATS { publishDir = [ path: { "${params.outdir}/assemblathon_stats" }, @@ -92,27 +114,7 @@ process { ] } - withName: '.*:GFF3_VALIDATE:GT_GFF3' { - ext.args = '-tidy -retainids' - } - withName: GT_STAT { - ext.args = [ - '-genelengthdistri', - '-genescoredistri', - '-exonlengthdistri', - '-exonnumberdistri', - '-intronlengthdistri', - '-cdslengthdistri', - '-addintrons' - ].join(' ').trim() - - publishDir = [ - path: { "${params.outdir}/genometools_gt_stat" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals("versions.yml") ? null : filename } - ] - } withName: FILTER_BY_LENGTH { ext.args = params.tidk_filter_by_size ? "-m ${params.tidk_filter_size_bp}" : '' diff --git a/modules.json b/modules.json index 59b548a7..f8bc841f 100644 --- a/modules.json +++ b/modules.json @@ -20,11 +20,6 @@ "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, - "custom/checkgff3fastacorrespondence": { - "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] - }, "custom/restoregffids": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", @@ -37,18 +32,18 @@ }, "gt/gff3": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] + "git_sha": "84f31d4be03e2ae6bee8e0b9fdea466be8e997bb", + "installed_by": ["gff3_gt_gff3_gff3validator_stat"] }, "gt/gff3validator": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["gff3_validate"] + "git_sha": "84f31d4be03e2ae6bee8e0b9fdea466be8e997bb", + "installed_by": ["gff3_gt_gff3_gff3validator_stat"] }, "gt/stat": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", - "installed_by": ["modules"] + "installed_by": ["gff3_gt_gff3_gff3validator_stat", "modules"] }, "ltrfinder": { "branch": "main", @@ -74,6 +69,11 @@ "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fastq_bwa_mem_samblaster"] + }, + "samtools/faidx": { + "branch": "main", + "git_sha": "84f31d4be03e2ae6bee8e0b9fdea466be8e997bb", + "installed_by": ["gff3_gt_gff3_gff3validator_stat"] } } }, @@ -89,9 +89,9 @@ "git_sha": "258dbf212876e040e0049809ff0f9fc3f032b8d9", "installed_by": ["subworkflows"] }, - "gff3_validate": { + "gff3_gt_gff3_gff3validator_stat": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", + "git_sha": "84f31d4be03e2ae6bee8e0b9fdea466be8e997bb", "installed_by": ["subworkflows"] } } diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/environment.yml b/modules/pfr/custom/checkgff3fastacorrespondence/environment.yml deleted file mode 100644 index ec0e86d1..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/environment.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json -name: "custom_checkgff3fastacorrespondence" -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - "bioconda::samtools=1.18" diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/main.nf b/modules/pfr/custom/checkgff3fastacorrespondence/main.nf deleted file mode 100644 index c1abb6f4..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/main.nf +++ /dev/null @@ -1,25 +0,0 @@ -process CUSTOM_CHECKGFF3FASTACORRESPONDENCE { - tag "$meta.id" - label 'process_single' - - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1': - 'biocontainers/samtools:1.18--h50ea8bc_1' }" - - input: - tuple val(meta), path(gff3) - path(fasta) - - output: - tuple val(meta), path('*.success.log') , emit: success_log , optional: true - tuple val(meta), path('*.error.log') , emit: error_log , optional: true - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - shell: - prefix = task.ext.prefix ?: "${meta.id}" - template 'check_gff3_fasta_correspondence.sh' -} diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/templates/check_gff3_fasta_correspondence.sh b/modules/pfr/custom/checkgff3fastacorrespondence/templates/check_gff3_fasta_correspondence.sh deleted file mode 100755 index 611c64b3..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/templates/check_gff3_fasta_correspondence.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bash - -# Bump VERSION on edit -VERSION="v1" - -gff3_file="!{gff3}" -fasta_file="!{fasta}" -out_prefix="!{prefix}" -task_process="!{task.process}" - -# Record versions -cat <<-END_VERSIONS > versions.yml -"${task_process}": - samtools: $(echo $(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*$//' ) -END_VERSIONS - -# Requires -# samtools faidx - -## STEP 1 -# Check that gff3 has no identifers that are not in fasta (fasta can -# have ids that are not in gff3 since not all assembly units have gff3 records - -# Extract identifiers from the GFF3 file -gff3_identifiers=$(grep -v '^#' "$gff3_file" | awk '{print $1}' | sort -u) - -# Extract identifiers from the FASTA file -fasta_identifiers=$(grep '^>' "$fasta_file" | awk '{print substr($1, 2)}' | sort -u) - -# Compare identifiers and find any that are present in the GFF3 but not in the FASTA -missing_identifiers=$(comm -23 <(echo "$gff3_identifiers") <(echo "$fasta_identifiers")) - -# Check if any missing identifiers were found -if [[ -n "$missing_identifiers" ]]; then - touch "${out_prefix}.error.log" - echo "Failed to validate gff3 file for: $tag_label" >> "${out_prefix}.error.log" - echo "Fasta file: $fasta_file" >> "${out_prefix}.error.log" - echo "Gff3 file: $gff3_file" >> "${out_prefix}.error.log" - echo "GFF3 file contains identifiers not present in FASTA:" >> "${out_prefix}.error.log" - echo "$missing_identifiers" >> "${out_prefix}.error.log" - exit 0 -fi - -## STEP 2 -# check that there are no coordiantes in gff3 for any seqid that are -# greater than the seq length of the paretn fasta entry - -# Compute sequence lengths using samtools faidx -samtools faidx "$fasta_file" | cut -f 1,2 > sequence_lengths.txt - -# Check GFF3 file for coordinates exceeding sequence lengths -while IFS=$'\t' read -r seqname source feature start end score strand frame attributes && \ - read -r seq seq_length <&3; do - if [[ $start -gt $seq_length || $end -gt $seq_length ]]; then - touch "${out_prefix}.error.log" - echo "Failed to validate gff3 file for: $tag_label" >> "${out_prefix}.error.log" - echo "Fasta file: $fasta_file" >> "${out_prefix}.error.log" - echo "Gff3 file: $gff3_file" >> "${out_prefix}.error.log" - echo "Coordinates exceed sequence length in GFF3 file:" >> "${out_prefix}.error.log" - echo "Sequence: $seqname" >> "${out_prefix}.error.log" - echo "Sequence length: $seq_length" >> "${out_prefix}.error.log" - echo "Start: $start" >> "${out_prefix}.error.log" - echo "End: $end" >> "${out_prefix}.error.log" - exit 0 - fi -done < "$gff3_file" 3< "sequence_lengths.txt" - -touch "${out_prefix}.success.log" -echo "All tests passed..." >> "${out_prefix}.success.log" -exit 0 diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test b/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test deleted file mode 100644 index a45992c2..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test +++ /dev/null @@ -1,70 +0,0 @@ -nextflow_process { - - name "Test Process CUSTOM_CHECKGFF3FASTACORRESPONDENCE" - script "../main.nf" - process "CUSTOM_CHECKGFF3FASTACORRESPONDENCE" - - tag "modules" - tag "modules_nfcore" - tag "custom" - tag "custom/checkgff3fastacorrespondence" - - test("sarscov2-fasta-gff3-success") { - - when { - process { - """ - input[0] = [ - [ id:'test' ], // meta map - file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) - ] - - input[1] = [ - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() }, - { assert process.out.error_log == [] }, - { assert process.out.success_log != null }, - { assert path(process.out.success_log.get(0).get(1)).getText().contains("All tests passed...")}, - ) - } - - } - - test("sarscov2-gff3-homo_sapiens-fasta-error") { - - when { - process { - """ - input[0] = [ - [ id:'test' ], // meta map - file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) - ] - - input[1] = [ - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() }, - { assert process.out.success_log == [] }, - { assert process.out.error_log != null }, - { assert path(process.out.error_log.get(0).get(1)).getText().contains("GFF3 file contains identifiers not present in FASTA")}, - ) - } - - } - -} \ No newline at end of file diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test.snap b/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test.snap deleted file mode 100644 index 261e0dc3..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/tests/main.nf.test.snap +++ /dev/null @@ -1,72 +0,0 @@ -{ - "sarscov2-gff3-homo_sapiens-fasta-error": { - "content": [ - { - "0": [ - - ], - "1": [ - [ - { - "id": "test" - }, - "test.error.log:md5,8a119170625dc95fb2faa6843fad2c3f" - ] - ], - "2": [ - "versions.yml:md5,c8e0bb60f7422aa6c15db35013620802" - ], - "error_log": [ - [ - { - "id": "test" - }, - "test.error.log:md5,8a119170625dc95fb2faa6843fad2c3f" - ] - ], - "success_log": [ - - ], - "versions": [ - "versions.yml:md5,c8e0bb60f7422aa6c15db35013620802" - ] - } - ], - "timestamp": "2023-11-29T12:24:08.677505" - }, - "sarscov2-fasta-gff3-success": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test.success.log:md5,5cad27984e6af4889f7dcf12264fe47b" - ] - ], - "1": [ - - ], - "2": [ - "versions.yml:md5,c8e0bb60f7422aa6c15db35013620802" - ], - "error_log": [ - - ], - "success_log": [ - [ - { - "id": "test" - }, - "test.success.log:md5,5cad27984e6af4889f7dcf12264fe47b" - ] - ], - "versions": [ - "versions.yml:md5,c8e0bb60f7422aa6c15db35013620802" - ] - } - ], - "timestamp": "2023-11-29T12:24:04.530428" - } -} \ No newline at end of file diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/tests/tags.yml b/modules/pfr/custom/checkgff3fastacorrespondence/tests/tags.yml deleted file mode 100644 index 708130d8..00000000 --- a/modules/pfr/custom/checkgff3fastacorrespondence/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom/checkgff3fastacorrespondence: - - "modules/pfr/custom/checkgff3fastacorrespondence/**" diff --git a/modules/pfr/gt/gff3/main.nf b/modules/pfr/gt/gff3/main.nf index d27e2bb9..6324a391 100644 --- a/modules/pfr/gt/gff3/main.nf +++ b/modules/pfr/gt/gff3/main.nf @@ -27,7 +27,7 @@ process GT_GFF3 { $args \\ "$gff3" \\ > "${prefix}.gt.gff3" \\ - 2> "${prefix}.error.log" \\ + 2> >(tee "${prefix}.error.log" >&2) \\ || echo "Errors from gt-gff3 printed to ${prefix}.error.log" if grep -q "gt gff3: error:" "${prefix}.error.log"; then diff --git a/modules/pfr/gt/gff3/tests/main.nf.test b/modules/pfr/gt/gff3/tests/main.nf.test index b57439ef..cb44bc8f 100644 --- a/modules/pfr/gt/gff3/tests/main.nf.test +++ b/modules/pfr/gt/gff3/tests/main.nf.test @@ -58,4 +58,4 @@ nextflow_process { } } -} \ No newline at end of file +} diff --git a/modules/pfr/gt/gff3/tests/main.nf.test.snap b/modules/pfr/gt/gff3/tests/main.nf.test.snap index f31e8d1c..6e454f18 100644 --- a/modules/pfr/gt/gff3/tests/main.nf.test.snap +++ b/modules/pfr/gt/gff3/tests/main.nf.test.snap @@ -32,7 +32,7 @@ ] } ], - "timestamp": "2023-11-28T13:43:34.620429" + "timestamp": "2023-11-29T10:42:11.408352" }, "sarscov2-gff3-valid": { "content": [ @@ -67,6 +67,6 @@ ] } ], - "timestamp": "2023-11-28T13:43:31.065832" + "timestamp": "2023-11-29T10:42:07.817894" } } \ No newline at end of file diff --git a/modules/pfr/gt/gff3/tests/tags.yml b/modules/pfr/gt/gff3/tests/tags.yml index ae040309..0ce15a90 100644 --- a/modules/pfr/gt/gff3/tests/tags.yml +++ b/modules/pfr/gt/gff3/tests/tags.yml @@ -1,2 +1,2 @@ gt/gff3: - - "modules/pfr/gt/gff3/**" + - "modules/nf-core/gt/gff3/**" diff --git a/modules/pfr/gt/gff3validator/main.nf b/modules/pfr/gt/gff3validator/main.nf index ae7ec9e7..8c6899ca 100644 --- a/modules/pfr/gt/gff3validator/main.nf +++ b/modules/pfr/gt/gff3validator/main.nf @@ -24,22 +24,22 @@ process GT_GFF3VALIDATOR { gt \\ gff3validator \\ "$gff3" \\ - > "${prefix}.success.log" \\ - 2> "${prefix}.error.log" \\ + > "${prefix}.stdout" \\ + 2> >(tee "${prefix}.stderr" >&2) \\ || echo "Errors from gt-gff3validator printed to ${prefix}.error.log" - if grep -q "input is valid GFF3" "${prefix}.success.log"; then + if grep -q "input is valid GFF3" "${prefix}.stdout"; then echo "Validation successful..." - + # emit stdout to the success output channel mv \\ - "${prefix}.error.log" \\ - gt_gff3validator.stderr + "${prefix}.stdout" \\ + "${prefix}.success.log" else echo "Validation failed..." - + # emit stderr to the error output channel mv \\ - "${prefix}.success.log" \\ - gt_gff3validator.stdout + "${prefix}.stderr" \\ + "${prefix}.error.log" fi cat <<-END_VERSIONS > versions.yml @@ -47,4 +47,15 @@ process GT_GFF3VALIDATOR { genometools: \$(gt --version | head -1 | sed 's/gt (GenomeTools) //') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch "${prefix}.success.log" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + genometools: \$(gt --version | head -1 | sed 's/gt (GenomeTools) //') + END_VERSIONS + """ } diff --git a/modules/pfr/gt/gff3validator/tests/main.nf.test b/modules/pfr/gt/gff3validator/tests/main.nf.test index 9addd7d8..766e3e74 100644 --- a/modules/pfr/gt/gff3validator/tests/main.nf.test +++ b/modules/pfr/gt/gff3validator/tests/main.nf.test @@ -8,18 +8,31 @@ nextflow_process { tag "modules_nfcore" tag "gt" tag "gt/gff3validator" + tag "gt/gff3" - test("custom-gff3-valid") { + test("sarscov2-gff3-valid") { + + config './nextflow.config' + + setup { + run("GT_GFF3") { + script "../../../../nf-core/gt/gff3" + + process { + """ + input[0] = [ + [ id:'test' ], + file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) + ] + """ + } + } + } when { process { """ - input[0] = Channel.of( - '##gff-version 3', - 'chr22\thavana\tpseudogene\t16572027\t16574637\t.\t+\t.\tID=gene:ENSG00000233995;Name=AP000547.1' - ) - .collectFile(name: 'sample.gff3', newLine: true) - .map { file -> [ [ id:'test' ], file ] } + input[0] = GT_GFF3.out.gt_gff3 """ } } @@ -28,9 +41,32 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot(process.out).match() }, - { assert process.out.error_log == [] }, - { assert process.out.success_log != null }, - { assert path(process.out.success_log.get(0).get(1)).getText().contains("input is valid GFF3") } + { assert path(process.out.success_log[0][1]).text.contains("input is valid GFF3") }, + { assert process.out.error_log == [] } + ) + } + + } + + test("sarscov2-gff3-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } ) } @@ -54,10 +90,9 @@ nextflow_process { { assert process.success }, { assert snapshot(process.out).match() }, { assert process.out.success_log == [] }, - { assert process.out.error_log != null }, - { assert path(process.out.error_log.get(0).get(1)).getText().contains("gt gff3validator: error:") } + { assert path(process.out.error_log[0][1]).text.contains("gt gff3validator: error:") } ) } } -} \ No newline at end of file +} diff --git a/modules/pfr/gt/gff3validator/tests/main.nf.test.snap b/modules/pfr/gt/gff3validator/tests/main.nf.test.snap index 0b6f065a..ccc83f90 100644 --- a/modules/pfr/gt/gff3validator/tests/main.nf.test.snap +++ b/modules/pfr/gt/gff3validator/tests/main.nf.test.snap @@ -1,4 +1,39 @@ { + "sarscov2-gff3-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.success.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,5927673eb73a8c22408643d224414215" + ], + "error_log": [ + + ], + "success_log": [ + [ + { + "id": "test" + }, + "test.success.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,5927673eb73a8c22408643d224414215" + ] + } + ], + "timestamp": "2024-01-11T09:29:13.14468" + }, "sarscov2-gff3-invalid": { "content": [ { @@ -34,7 +69,7 @@ ], "timestamp": "2023-11-29T11:09:23.708792" }, - "custom-gff3-valid": { + "sarscov2-gff3-valid": { "content": [ { "0": [ @@ -67,6 +102,6 @@ ] } ], - "timestamp": "2023-11-29T11:09:19.530068" + "timestamp": "2023-12-13T10:34:54.485391" } } \ No newline at end of file diff --git a/modules/pfr/gt/gff3validator/tests/nextflow.config b/modules/pfr/gt/gff3validator/tests/nextflow.config new file mode 100644 index 00000000..c69915da --- /dev/null +++ b/modules/pfr/gt/gff3validator/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GT_GFF3 { + ext.args = '-tidy -retainids' + } +} diff --git a/modules/pfr/gt/gff3validator/tests/tags.yml b/modules/pfr/gt/gff3validator/tests/tags.yml index e247d55e..98c39ffe 100644 --- a/modules/pfr/gt/gff3validator/tests/tags.yml +++ b/modules/pfr/gt/gff3validator/tests/tags.yml @@ -1,2 +1,2 @@ gt/gff3validator: - - "modules/pfr/gt/gff3validator/**" + - "modules/nf-core/gt/gff3validator/**" diff --git a/modules/pfr/samtools/faidx/environment.yml b/modules/pfr/samtools/faidx/environment.yml new file mode 100644 index 00000000..9c24eb0a --- /dev/null +++ b/modules/pfr/samtools/faidx/environment.yml @@ -0,0 +1,10 @@ +name: samtools_faidx + +channels: + - conda-forge + - bioconda + - defaults + +dependencies: + - bioconda::htslib=1.19.1 + - bioconda::samtools=1.19.2 diff --git a/modules/pfr/samtools/faidx/main.nf b/modules/pfr/samtools/faidx/main.nf new file mode 100644 index 00000000..cfe7ad95 --- /dev/null +++ b/modules/pfr/samtools/faidx/main.nf @@ -0,0 +1,50 @@ +process SAMTOOLS_FAIDX { + tag "$fasta" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : + 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + + input: + tuple val(meta), path(fasta) + tuple val(meta2), path(fai) + + output: + tuple val(meta), path ("*.{fa,fasta}") , emit: fa , optional: true + tuple val(meta), path ("*.fai") , emit: fai, optional: true + tuple val(meta), path ("*.gzi") , emit: gzi, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + samtools \\ + faidx \\ + $fasta \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + def match = (task.ext.args =~ /-o(?:utput)?\s(.*)\s?/).findAll() + def fastacmd = match[0] ? "touch ${match[0][1]}" : '' + """ + ${fastacmd} + touch ${fasta}.fai + + cat <<-END_VERSIONS > versions.yml + + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/pfr/custom/checkgff3fastacorrespondence/meta.yml b/modules/pfr/samtools/faidx/meta.yml similarity index 51% rename from modules/pfr/custom/checkgff3fastacorrespondence/meta.yml rename to modules/pfr/samtools/faidx/meta.yml index 69bbd053..f3c25de2 100644 --- a/modules/pfr/custom/checkgff3fastacorrespondence/meta.yml +++ b/modules/pfr/samtools/faidx/meta.yml @@ -1,12 +1,9 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json -name: "custom_checkgff3fastacorrespondence" -description: "A custom bash script which checks the correspondence of a gff3 file with a fasta file" +name: samtools_faidx +description: Index FASTA file keywords: - - genome - - gff3 - - annotation - - validation + - index + - fasta + - faidx tools: - samtools: description: | @@ -17,40 +14,52 @@ tools: documentation: http://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] - input: - meta: type: map description: | - Groovy Map containing sample information - e.g. `[ id:'test' ]` - - gff3: - type: file - description: Input gff3 file - pattern: "*.{gff,gff3}" + Groovy Map containing reference information + e.g. [ id:'test' ] - fasta: type: file - description: Input fasta file - pattern: "*.{fsa,fa,fasta}" + description: FASTA file + pattern: "*.{fa,fasta}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" output: - meta: type: map description: | Groovy Map containing sample information - e.g. `[ id:'test' ]` - - success_log: + e.g. [ id:'test', single_end:false ] + - fa: + type: file + description: FASTA file + pattern: "*.{fa}" + - fai: type: file - description: Log file for successful validation - pattern: "*.success.log" - - error_log: + description: FASTA index file + pattern: "*.{fai}" + - gzi: type: file - description: Log file for failed validation - pattern: "*.error.log" + description: Optional gzip index file for compressed inputs + pattern: "*.gzi" - versions: type: file description: File containing software versions pattern: "versions.yml" authors: - - "@GallVp" + - "@drpatelh" + - "@ewels" + - "@phue" maintainers: - - "@GallVp" + - "@drpatelh" + - "@ewels" + - "@phue" diff --git a/modules/pfr/samtools/faidx/tests/main.nf.test b/modules/pfr/samtools/faidx/tests/main.nf.test new file mode 100644 index 00000000..17244ef2 --- /dev/null +++ b/modules/pfr/samtools/faidx/tests/main.nf.test @@ -0,0 +1,122 @@ +nextflow_process { + + name "Test Process SAMTOOLS_FAIDX" + script "../main.nf" + process "SAMTOOLS_FAIDX" + + tag "modules" + tag "modules_nfcore" + tag "samtools" + tag "samtools/faidx" + + test("test_samtools_faidx") { + + when { + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] + + input[1] = [[],[]] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test_samtools_faidx_bgzip") { + + when { + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.gz', checkIfExists: true)] + + input[1] = [[],[]] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test_samtools_faidx_fasta") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] + + input[1] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test_samtools_faidx_stub_fasta") { + + config "./nextflow2.config" + + when { + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] + + input[1] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test_samtools_faidx_stub_fai") { + + when { + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] + + input[1] = [[],[]] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} \ No newline at end of file diff --git a/modules/pfr/samtools/faidx/tests/main.nf.test.snap b/modules/pfr/samtools/faidx/tests/main.nf.test.snap new file mode 100644 index 00000000..3e651ef6 --- /dev/null +++ b/modules/pfr/samtools/faidx/tests/main.nf.test.snap @@ -0,0 +1,249 @@ +{ + "test_samtools_faidx": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ], + "fa": [ + + ], + "fai": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "gzi": [ + + ], + "versions": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T16:22:39.412601" + }, + "test_samtools_faidx_bgzip": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474" + ] + ], + "3": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ], + "fa": [ + + ], + "fai": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "gzi": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474" + ] + ], + "versions": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T16:23:22.427966" + }, + "test_samtools_faidx_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "extract.fa:md5,6a0774a0ad937ba0bfd2ac7457d90f36" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ], + "fa": [ + [ + { + "id": "test", + "single_end": false + }, + "extract.fa:md5,6a0774a0ad937ba0bfd2ac7457d90f36" + ] + ], + "fai": [ + + ], + "gzi": [ + + ], + "versions": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T16:24:04.107537" + }, + "test_samtools_faidx_stub_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "extract.fa:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ], + "fa": [ + [ + { + "id": "test", + "single_end": false + }, + "extract.fa:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "fai": [ + + ], + "gzi": [ + + ], + "versions": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T16:24:45.868463" + }, + "test_samtools_faidx_stub_fai": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ], + "fa": [ + + ], + "fai": [ + [ + { + "id": "test", + "single_end": false + }, + "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5" + ] + ], + "gzi": [ + + ], + "versions": [ + "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T16:25:27.550554" + } +} \ No newline at end of file diff --git a/modules/pfr/samtools/faidx/tests/nextflow.config b/modules/pfr/samtools/faidx/tests/nextflow.config new file mode 100644 index 00000000..f76a3ba0 --- /dev/null +++ b/modules/pfr/samtools/faidx/tests/nextflow.config @@ -0,0 +1,7 @@ +process { + + withName: SAMTOOLS_FAIDX { + ext.args = 'MT192765.1 -o extract.fa' + } + +} diff --git a/modules/pfr/samtools/faidx/tests/nextflow2.config b/modules/pfr/samtools/faidx/tests/nextflow2.config new file mode 100644 index 00000000..33ebbd5d --- /dev/null +++ b/modules/pfr/samtools/faidx/tests/nextflow2.config @@ -0,0 +1,6 @@ +process { + + withName: SAMTOOLS_FAIDX { + ext.args = '-o extract.fa' + } +} diff --git a/modules/pfr/samtools/faidx/tests/tags.yml b/modules/pfr/samtools/faidx/tests/tags.yml new file mode 100644 index 00000000..e4a83948 --- /dev/null +++ b/modules/pfr/samtools/faidx/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/faidx: + - modules/nf-core/samtools/faidx/** diff --git a/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main.nf b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main.nf new file mode 100644 index 00000000..3891fc81 --- /dev/null +++ b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main.nf @@ -0,0 +1,155 @@ +include { GT_GFF3 } from '../../../modules/pfr/gt/gff3/main' +include { SAMTOOLS_FAIDX } from '../../../modules/pfr/samtools/faidx/main' +include { GT_GFF3VALIDATOR } from '../../../modules/pfr/gt/gff3validator/main' +include { GT_STAT } from '../../../modules/pfr/gt/stat/main' + +workflow GFF3_GT_GFF3_GFF3VALIDATOR_STAT { + + take: + ch_gff3 // channel: [ val(meta), gff3 ] + ch_fasta // channel: [ val(meta), fasta ] + + main: + + ch_versions = Channel.empty() + + // MODULE: GT_GFF3 + GT_GFF3 ( ch_gff3 ) + + ch_versions = ch_versions.mix(GT_GFF3.out.versions.first()) + + // MODULE: GT_GFF3VALIDATOR + GT_GFF3VALIDATOR ( GT_GFF3.out.gt_gff3 ) + + ch_versions = ch_versions.mix(GT_GFF3VALIDATOR.out.versions.first()) + + // MODULE: SAMTOOLS_FAIDX + SAMTOOLS_FAIDX( + ch_fasta, + [ [], [] ] + ) + + ch_fai = SAMTOOLS_FAIDX.out.fai + ch_versions = ch_versions.mix(SAMTOOLS_FAIDX.out.versions.first()) + + // FUNCTION: checkGff3FastaCorrespondence + ch_gff3_fai = GT_GFF3VALIDATOR.out.success_log + | join ( + GT_GFF3.out.gt_gff3 + ) + | map { meta, log, gff3 -> [ meta, gff3 ] } + | join ( + ch_fai + ) + + ch_correspondence_status = ch_gff3_fai + | map { meta, gff3, fai -> + checkGff3FastaCorrespondence ( meta, gff3, fai ) + } + + ch_correspondence_success = ch_correspondence_status + | map { meta, success, error -> + if ( success ) { + [ meta, success ] + } + } + + ch_correspondence_error = ch_correspondence_status + | map { meta, success, error -> + if ( error ) { + [ "${meta.id}.error.log", error.join('\n') ] + } + } + | collectFile + | map { error -> + [ [ id: error.baseName.replace('.error', '') ], error ] + } + + ch_valid_gff3 = ch_correspondence_success + | join ( + ch_gff3_fai + | map { meta, gff3, fai -> [ meta, gff3 ] } + ) + | map { meta, log, gff3 -> [ meta, gff3 ] } + + ch_log_for_invalid_gff3 = GT_GFF3.out.error_log + | mix ( + GT_GFF3VALIDATOR.out.error_log + ) + | mix ( + ch_correspondence_error + ) + + // MODULE: GT_STAT + GT_STAT ( ch_valid_gff3 ) + + ch_gff3_stats = GT_STAT.out.stats + ch_versions = ch_versions.mix(GT_STAT.out.versions.first()) + + emit: + valid_gff3 = ch_valid_gff3 // channel: [ val(meta), gff3 ] + gff3_stats = ch_gff3_stats // channel: [ val(meta), yml ] + log_for_invalid_gff3 = ch_log_for_invalid_gff3 // channel: [ val(meta), log ] + versions = ch_versions // channel: [ versions.yml ] +} + +def checkGff3FastaCorrespondence(meta, gff3File, faiFile) { + + // STEP 1 + // Check that gff3 has no identifiers that are not in fasta + def gff3Lines = gff3File.readLines().findAll { ! it.startsWith('#') } + def gff3Identifiers = gff3Lines.collect { it.split('\t')[0] }.unique().sort() + def fastaIdentifiers = faiFile.readLines().collect { it.split('\t')[0] }.unique().sort() + def missingIdentifiers = gff3Identifiers.findAll { ! fastaIdentifiers.contains(it) } + + if (missingIdentifiers) { + return [ + meta, + [], // success log + [ + "Failed to validate gff3 file: ${gff3File.name}", + "GFF3 file contains identifiers not present in FASTA:", + "${missingIdentifiers.join('\n')}" + ] // error log + ] + } + + // STEP 2 + // Check that there are no coordinates in gff3 that exceed the sequence length in the parent fasta entry + def sequenceLengths = [:] + faiFile.readLines().each { line -> + def parts = line.split('\t') + sequenceLengths[parts[0]] = parts[1] + } + + for ( line in gff3Lines ) { + def parts = line.split('\t') + def name = parts[0] + def start = parts[3].toInteger() + def end = parts[4].toInteger() + def seqLength = sequenceLengths[name].toInteger() + + if (start > seqLength || end > seqLength) { + return [ + meta, + [], // success log + [ + "Failed to validate gff3: ${gff3File.name}", + "Coordinates exceed sequence length in GFF3 file:", + "Sequence: $name", + "Sequence length: $seqLength", + "Start: $start", + "End: $end" + ] // error log + ] + } + } + + return [ + meta, + [ + "All tests passed..." + ], // success log + [] // error log + ] +} diff --git a/subworkflows/pfr/gff3_validate/meta.yml b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/meta.yml similarity index 80% rename from subworkflows/pfr/gff3_validate/meta.yml rename to subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/meta.yml index 5dea12a5..0d12d5fd 100644 --- a/subworkflows/pfr/gff3_validate/meta.yml +++ b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/meta.yml @@ -1,17 +1,18 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json -name: gff3_validate +name: gff3_gt_gff3_gff3validator_stat description: | - Validates a gff3 file using GenomeTools gt-gff3, gt-gff3validator and - checks its correspondence with a fasta file + Validates a gff3 file using GenomeTools gt-gff3, gt-gff3validator, checks its correspondence with a fasta file and produces stats with gt-stat keywords: - genome - gff3 - annotation - validation + - stats components: - gt/gff3 - gt/gff3validator - - custom/checkgff3fastacorrespondence + - samtools/faidx + - gt/stat input: - ch_gff3: type: file @@ -32,6 +33,12 @@ output: Valid gff3 file Structure: [ val(meta), path(gff3) ] pattern: "*.gff3" + - gff3_stats: + type: file + description: | + Statistics + Structure: [ val(meta), path(yml) ] + pattern: "*.yml" - log_for_invalid_gff3: type: file description: | diff --git a/subworkflows/pfr/gff3_validate/tests/main.nf.test b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test similarity index 56% rename from subworkflows/pfr/gff3_validate/tests/main.nf.test rename to subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test index 14c33ae2..f15972fa 100644 --- a/subworkflows/pfr/gff3_validate/tests/main.nf.test +++ b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test @@ -1,21 +1,22 @@ nextflow_workflow { - name "Test Workflow GFF3_VALIDATE" + name "Test Workflow GFF3_GT_GFF3_GFF3VALIDATOR_STAT" script "../main.nf" - workflow "GFF3_VALIDATE" + workflow "GFF3_GT_GFF3_GFF3VALIDATOR_STAT" config "./nextflow.config" tag "subworkflows" tag "subworkflows_nfcore" - tag "subworkflows/gff3_validate" - tag "gff3_validate" + tag "subworkflows/gff3_gt_gff3_gff3validator_stat" + tag "gff3_gt_gff3_gff3validator_stat" tag "gt" tag "gt/gff3" tag "gt/gff3validator" - tag "custom" - tag "custom/checkgff3fastacorrespondence" + tag "gt/stat" + tag "samtools" + tag "samtools/faidx" - test("sarscov2-genome_gff3-genome_fasta-all_pass") { + test("sarscov2-genome_gff3-all_pass") { when { workflow { @@ -38,7 +39,7 @@ nextflow_workflow { } } - test("homo_sapiens-genome_bed-genome_fasta-gt_gff3_fail") { + test("homo_sapiens-genome_bed-gt_gff3_fail") { when { workflow { @@ -79,7 +80,41 @@ nextflow_workflow { then { assertAll( { assert workflow.success}, - { assert snapshot(workflow.out).match()} + { assert snapshot( + workflow.out.valid_gff3, + workflow.out.versions).match() + }, + { assert path(workflow.out.log_for_invalid_gff3[0][1]).text.contains('GFF3 file contains identifiers not present in FASTA') } + ) + } + } + + test("sarscov2-genome_gff3-test_fasta-correspondence_fail-out_of_bounds") { + + when { + workflow { + """ + def test_fasta = new File('genome.fasta') + test_fasta.text = '>MT192765.1\\nAGCTAGCT' + + input[0] = Channel.of([ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) + ]) + input[1] = Channel.of([ [ id:'test' ], + test_fasta.toPath() + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + workflow.out.valid_gff3, + workflow.out.versions).match() + }, + { assert path(workflow.out.log_for_invalid_gff3[0][1]).text.contains('Coordinates exceed sequence length in GFF3 file') } ) } } diff --git a/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test.snap b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test.snap new file mode 100644 index 00000000..57aadb93 --- /dev/null +++ b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/main.nf.test.snap @@ -0,0 +1,144 @@ +{ + "homo_sapiens-genome_bed-gt_gff3_fail": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test" + }, + "test.error.log:md5,c096494c3cd02864eb54434c294ba382" + ] + ], + "3": [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ], + "gff3_stats": [ + + ], + "log_for_invalid_gff3": [ + [ + { + "id": "test" + }, + "test.error.log:md5,c096494c3cd02864eb54434c294ba382" + ] + ], + "valid_gff3": [ + + ], + "versions": [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T19:41:05.240982" + }, + "sarscov2-genome_gff3-test_fasta-correspondence_fail-out_of_bounds": { + "content": [ + [ + + ], + [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,c89b081a13c68acc5326e43ca9104344", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T19:41:16.606045" + }, + "sarscov2-genome_gff3-homo_sapiens-genome_fasta-correspondence_fail": { + "content": [ + [ + + ], + [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,c89b081a13c68acc5326e43ca9104344", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T19:41:11.28855" + }, + "sarscov2-genome_gff3-all_pass": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.gt.gff3:md5,2ae900237ace415557b8735fac088b85" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.yml:md5,762d733791108d9723989c3bbc69fa2b" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,80555fe6e28e9564cb534f5478842286", + "versions.yml:md5,c89b081a13c68acc5326e43ca9104344", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ], + "gff3_stats": [ + [ + { + "id": "test" + }, + "test.yml:md5,762d733791108d9723989c3bbc69fa2b" + ] + ], + "log_for_invalid_gff3": [ + + ], + "valid_gff3": [ + [ + { + "id": "test" + }, + "test.gt.gff3:md5,2ae900237ace415557b8735fac088b85" + ] + ], + "versions": [ + "versions.yml:md5,0cb9519e626e5128d8495cf29b7d59ff", + "versions.yml:md5,80555fe6e28e9564cb534f5478842286", + "versions.yml:md5,c89b081a13c68acc5326e43ca9104344", + "versions.yml:md5,d81758cb7178ee32a1fb78f8639504d8" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T09:03:38.938037" + } +} \ No newline at end of file diff --git a/subworkflows/pfr/gff3_validate/tests/nextflow.config b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/nextflow.config similarity index 100% rename from subworkflows/pfr/gff3_validate/tests/nextflow.config rename to subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/nextflow.config diff --git a/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/tags.yml b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/tags.yml new file mode 100644 index 00000000..2b0b9279 --- /dev/null +++ b/subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/gff3_gt_gff3_gff3validator_stat: + - subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/** diff --git a/subworkflows/pfr/gff3_validate/main.nf b/subworkflows/pfr/gff3_validate/main.nf deleted file mode 100644 index 5437c5a6..00000000 --- a/subworkflows/pfr/gff3_validate/main.nf +++ /dev/null @@ -1,61 +0,0 @@ -include { GT_GFF3 } from '../../../modules/pfr/gt/gff3/main' -include { GT_GFF3VALIDATOR } from '../../../modules/pfr/gt/gff3validator/main' -include { CUSTOM_CHECKGFF3FASTACORRESPONDENCE } from '../../../modules/pfr/custom/checkgff3fastacorrespondence/main' - -workflow GFF3_VALIDATE { - - take: - ch_gff3 // channel: [ val(meta), gff3 ] - ch_fasta // channel: [ val(meta), fasta ] - - main: - - ch_versions = Channel.empty() - - // MODULE: GT_GFF3 - GT_GFF3 ( ch_gff3 ) - ch_versions = ch_versions.mix(GT_GFF3.out.versions.first()) - - // MODULE: GT_GFF3VALIDATOR - GT_GFF3VALIDATOR ( GT_GFF3.out.gt_gff3 ) - ch_versions = ch_versions.mix(GT_GFF3VALIDATOR.out.versions.first()) - - // MODULE: CUSTOM_CHECKGFF3FASTACORRESPONDENCE - GT_GFF3VALIDATOR.out.success_log - | join ( - GT_GFF3.out.gt_gff3 - ) - | map { meta, log, gff3 -> [ meta, gff3 ] } - | join ( - ch_fasta - ) - | set { ch_gff3_fasta } - - CUSTOM_CHECKGFF3FASTACORRESPONDENCE ( - ch_gff3_fasta.map { meta, gff3, fasta -> [ meta, gff3 ] }, - ch_gff3_fasta.map { meta, gff3, fasta -> fasta } - ) - - ch_versions = ch_versions.mix(CUSTOM_CHECKGFF3FASTACORRESPONDENCE.out.versions.first()) - - CUSTOM_CHECKGFF3FASTACORRESPONDENCE.out.success_log - | join ( - ch_gff3_fasta.map { meta, gff3, fasta -> [ meta, gff3 ] } - ) - | map { meta, log, gff3 -> [ meta, gff3 ] } - | set { ch_valid_gff3 } - - GT_GFF3.out.error_log - | mix ( - GT_GFF3VALIDATOR.out.error_log - ) - | mix ( - CUSTOM_CHECKGFF3FASTACORRESPONDENCE.out.error_log - ) - | set { ch_log_for_invalid_gff3 } - - emit: - valid_gff3 = ch_valid_gff3 // channel: [ val(meta), gff3 ] - log_for_invalid_gff3 = ch_log_for_invalid_gff3 // channel: [ val(meta), log ] - versions = ch_versions // channel: [ versions.yml ] -} diff --git a/subworkflows/pfr/gff3_validate/tests/main.nf.test.snap b/subworkflows/pfr/gff3_validate/tests/main.nf.test.snap deleted file mode 100644 index 4d2a59b2..00000000 --- a/subworkflows/pfr/gff3_validate/tests/main.nf.test.snap +++ /dev/null @@ -1,115 +0,0 @@ -{ - "sarscov2-genome_gff3-genome_fasta-all_pass": { - "content": [ - { - "0": [ - [ - { - "id": "test" - }, - "test.gt.gff3:md5,2ae900237ace415557b8735fac088b85" - ] - ], - "1": [ - - ], - "2": [ - "versions.yml:md5,10fe5c201e5fcddb52c3607ab3fdfb34", - "versions.yml:md5,856745cef2fff087e50ea4c0ffa3addd", - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ], - "log_for_invalid_gff3": [ - - ], - "valid_gff3": [ - [ - { - "id": "test" - }, - "test.gt.gff3:md5,2ae900237ace415557b8735fac088b85" - ] - ], - "versions": [ - "versions.yml:md5,10fe5c201e5fcddb52c3607ab3fdfb34", - "versions.yml:md5,856745cef2fff087e50ea4c0ffa3addd", - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ] - } - ], - "timestamp": "2023-12-07T10:33:21.09887" - }, - "homo_sapiens-genome_bed-genome_fasta-gt_gff3_fail": { - "content": [ - { - "0": [ - - ], - "1": [ - [ - { - "id": "test" - }, - "test.error.log:md5,c096494c3cd02864eb54434c294ba382" - ] - ], - "2": [ - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ], - "log_for_invalid_gff3": [ - [ - { - "id": "test" - }, - "test.error.log:md5,c096494c3cd02864eb54434c294ba382" - ] - ], - "valid_gff3": [ - - ], - "versions": [ - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ] - } - ], - "timestamp": "2023-12-07T10:35:26.549003" - }, - "sarscov2-genome_gff3-homo_sapiens-genome_fasta-correspondence_fail": { - "content": [ - { - "0": [ - - ], - "1": [ - [ - { - "id": "test" - }, - "test.error.log:md5,67686ea1ef271821f1218a8fe0207e1f" - ] - ], - "2": [ - "versions.yml:md5,10fe5c201e5fcddb52c3607ab3fdfb34", - "versions.yml:md5,856745cef2fff087e50ea4c0ffa3addd", - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ], - "log_for_invalid_gff3": [ - [ - { - "id": "test" - }, - "test.error.log:md5,67686ea1ef271821f1218a8fe0207e1f" - ] - ], - "valid_gff3": [ - - ], - "versions": [ - "versions.yml:md5,10fe5c201e5fcddb52c3607ab3fdfb34", - "versions.yml:md5,856745cef2fff087e50ea4c0ffa3addd", - "versions.yml:md5,a89255422a163684b0c80ebdd8ad28ae" - ] - } - ], - "timestamp": "2023-12-07T10:35:32.53584" - } -} \ No newline at end of file diff --git a/subworkflows/pfr/gff3_validate/tests/tags.yml b/subworkflows/pfr/gff3_validate/tests/tags.yml deleted file mode 100644 index 60ffbf0c..00000000 --- a/subworkflows/pfr/gff3_validate/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/gff3_validate: - - subworkflows/pfr/gff3_validate/** diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index f90e4354..eb68d088 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -11,8 +11,7 @@ include { GUNZIP as GUNZIP_GFF3 } from '../modules/nf-core/gunzip/ma include { FASTAVALIDATOR } from '../modules/nf-core/fastavalidator/main' include { FASTA_EXPLORE_SEARCH_PLOT_TIDK } from '../subworkflows/nf-core/fasta_explore_search_plot_tidk/main' -include { GT_STAT } from '../modules/pfr/gt/stat/main' -include { GFF3_VALIDATE } from '../subworkflows/pfr/gff3_validate/main' +include { GFF3_GT_GFF3_GFF3VALIDATOR_STAT } from '../subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main' include { NCBI_FCS_ADAPTOR } from '../modules/local/ncbi_fcs_adaptor' include { NCBI_FCS_GX } from '../subworkflows/local/ncbi_fcs_gx' include { ASSEMBLATHON_STATS } from '../modules/local/assemblathon_stats' @@ -131,30 +130,23 @@ workflow ASSEMBLYQC { ch_versions = ch_versions.mix(FASTAVALIDATOR.out.versions.first()) - // SUBWORKFLOW: GFF3_VALIDATE - GFF3_VALIDATE ( + // SUBWORKFLOW: GFF3_GT_GFF3_GFF3VALIDATOR_STAT + GFF3_GT_GFF3_GFF3VALIDATOR_STAT ( ch_assembly_gff3, ch_valid_target_assembly ) - ch_valid_gff3 = GFF3_VALIDATE.out.valid_gff3 - - ch_invalid_gff3_log = GFF3_VALIDATE.out.log_for_invalid_gff3 + ch_invalid_gff3_log = GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.log_for_invalid_gff3 | map { meta, error_log -> log.warn("GFF3 validation failed for ${meta.id}\n${error_log.text}") [ meta, error_log ] } - ch_versions = ch_versions.mix(GFF3_VALIDATE.out.versions) - - // MODULE: GT_STAT - GT_STAT ( ch_valid_gff3 ) - - ch_gt_stats = GT_STAT.out.stats + ch_gt_stats = GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.gff3_stats | map { meta, yml -> yml } - ch_versions = ch_versions.mix(GT_STAT.out.versions.first()) + ch_versions = ch_versions.mix(GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.versions) // MODULE: NCBI_FCS_ADAPTOR ch_fcs_adaptor_inputs = params.ncbi_fcs_adaptor_skip From 77e752a60fb3e9a7cf9082c9e922981c0261cb52 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Fri, 17 May 2024 11:46:00 +1200 Subject: [PATCH 40/76] Replaced local BUSCO module with FASTA_GXF_BUSCO_PLOT --- CHANGELOG.md | 1 + CITATIONS.md | 4 + README.md | 38 +- bin/assemblyqc.py | 4 + bin/report_modules/parsers/busco_parser.py | 135 ++-- bin/report_modules/templates/base.html | 8 + bin/report_modules/templates/busco/busco.html | 2 +- .../templates/busco_gff/busco_gff.html | 25 + .../templates/busco_gff/dropdown.html | 13 + .../templates/busco_gff/report_contents.html | 77 +++ .../templates/busco_gff/summary_contents.html | 37 ++ .../gff3_validate/gff3_validate.html | 35 +- conf/modules.config | 34 +- conf/test_full.config | 2 +- docs/contributors.sh | 2 +- docs/parameters.md | 16 +- modules.json | 20 + modules/local/busco.nf | 56 -- modules/local/createreport.nf | 33 +- modules/pfr/busco/busco/environment.yml | 7 + modules/pfr/busco/busco/main.nf | 107 +++ modules/pfr/busco/busco/meta.yml | 98 +++ modules/pfr/busco/busco/tests/main.nf.test | 419 ++++++++++++ .../pfr/busco/busco/tests/main.nf.test.snap | 230 +++++++ .../busco/tests/nextflow.augustus.config | 5 + modules/pfr/busco/busco/tests/nextflow.config | 5 + .../busco/busco/tests/nextflow.metaeuk.config | 5 + modules/pfr/busco/busco/tests/old_test.yml | 624 ++++++++++++++++++ modules/pfr/busco/busco/tests/tags.yml | 2 + .../pfr/busco/generateplot/environment.yml | 9 + .../busco/generateplot/main.nf} | 25 +- modules/pfr/busco/generateplot/meta.yml | 35 + .../pfr/busco/generateplot/tests/main.nf.test | 72 ++ .../generateplot/tests/main.nf.test.snap | 37 ++ modules/pfr/busco/generateplot/tests/tags.yml | 2 + modules/pfr/gffread/environment.yml | 7 + modules/pfr/gffread/main.nf | 60 ++ modules/pfr/gffread/meta.yml | 55 ++ modules/pfr/gffread/tests/main.nf.test | 223 +++++++ modules/pfr/gffread/tests/main.nf.test.snap | 272 ++++++++ .../pfr/gffread/tests/nextflow-fasta.config | 5 + .../pfr/gffread/tests/nextflow-gff3.config | 5 + modules/pfr/gffread/tests/nextflow.config | 5 + modules/pfr/gffread/tests/tags.yml | 2 + nextflow_schema.json | 9 +- subworkflows/local/fasta_busco_plot.nf | 37 -- subworkflows/pfr/fasta_gxf_busco_plot/main.nf | 168 +++++ .../pfr/fasta_gxf_busco_plot/meta.yml | 106 +++ .../fasta_gxf_busco_plot/tests/main.nf.test | 104 +++ .../tests/main.nf.test.snap | 231 +++++++ .../tests/nextflow.config | 5 + .../pfr/fasta_gxf_busco_plot/tests/tags.yml | 2 + tests/stub/stub.config | 2 +- workflows/assemblyqc.nf | 75 ++- 54 files changed, 3309 insertions(+), 288 deletions(-) create mode 100644 bin/report_modules/templates/busco_gff/busco_gff.html create mode 100644 bin/report_modules/templates/busco_gff/dropdown.html create mode 100644 bin/report_modules/templates/busco_gff/report_contents.html create mode 100644 bin/report_modules/templates/busco_gff/summary_contents.html delete mode 100644 modules/local/busco.nf create mode 100644 modules/pfr/busco/busco/environment.yml create mode 100644 modules/pfr/busco/busco/main.nf create mode 100644 modules/pfr/busco/busco/meta.yml create mode 100644 modules/pfr/busco/busco/tests/main.nf.test create mode 100644 modules/pfr/busco/busco/tests/main.nf.test.snap create mode 100644 modules/pfr/busco/busco/tests/nextflow.augustus.config create mode 100644 modules/pfr/busco/busco/tests/nextflow.config create mode 100644 modules/pfr/busco/busco/tests/nextflow.metaeuk.config create mode 100644 modules/pfr/busco/busco/tests/old_test.yml create mode 100644 modules/pfr/busco/busco/tests/tags.yml create mode 100644 modules/pfr/busco/generateplot/environment.yml rename modules/{local/busco_plot.nf => pfr/busco/generateplot/main.nf} (54%) create mode 100644 modules/pfr/busco/generateplot/meta.yml create mode 100644 modules/pfr/busco/generateplot/tests/main.nf.test create mode 100644 modules/pfr/busco/generateplot/tests/main.nf.test.snap create mode 100644 modules/pfr/busco/generateplot/tests/tags.yml create mode 100644 modules/pfr/gffread/environment.yml create mode 100644 modules/pfr/gffread/main.nf create mode 100644 modules/pfr/gffread/meta.yml create mode 100644 modules/pfr/gffread/tests/main.nf.test create mode 100644 modules/pfr/gffread/tests/main.nf.test.snap create mode 100644 modules/pfr/gffread/tests/nextflow-fasta.config create mode 100644 modules/pfr/gffread/tests/nextflow-gff3.config create mode 100644 modules/pfr/gffread/tests/nextflow.config create mode 100644 modules/pfr/gffread/tests/tags.yml delete mode 100644 subworkflows/local/fasta_busco_plot.nf create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/main.nf create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/meta.yml create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test.snap create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/tests/nextflow.config create mode 100644 subworkflows/pfr/fasta_gxf_busco_plot/tests/tags.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 45250fba..29047314 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 12. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads 13. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) 14. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` +15. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) ### `Fixed` diff --git a/CITATIONS.md b/CITATIONS.md index dcd44eed..4de821db 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -40,6 +40,10 @@ > Manni M, Berkeley MR, Seppey M, Simão FA, Zdobnov EM. 2021. BUSCO Update: Novel and Streamlined Workflows along with Broader and Deeper Phylogenetic Coverage for Scoring of Eukaryotic, Prokaryotic, and Viral Genomes, Molecular Biology and Evolution, Volume 38, Issue 10, October 2021, Pages 4647–4654, +- GFFREAD, [MIT](https://github.com/gpertea/gffread/blob/master/LICENSE) + + > Pertea G, Pertea M. GFF Utilities: GffRead and GffCompare. F1000Res. 2020 Apr 28;9:ISCB Comm J-304. doi: . PMID: 32489650; PMCID: PMC7222033. + - TIDK, [MIT](https://github.com/tolkit/telomeric-identifier/blob/main/LICENSE) > diff --git a/README.md b/README.md index 20540811..febc6ddc 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ flowchart LR - [KRAKEN2](https://github.com/DerrickWood/kraken2): Taxonomy classification - [HIC CONTACT MAP](https://github.com/igvteam/juicebox.js): Alignment and visualisation of HiC data - SYNTENY: Synteny analysis using [MUMMER](https://github.com/mummer4/mummer), [CIRCOS](http://circos.ca/documentation/) and [PLOTLY](https://plotly.com) -- [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK): k-mer based assembly evaluation +- [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK): K-mer completeness, consensus quality and phasing assessment ## Usage @@ -114,24 +114,30 @@ We thank the following people for their extensive assistance in the development The pipeline uses nf-core modules contributed by following authors. - - - - - - - - - - - - - + + - + - + + + + + + + + + + + + + + + + + + ## Contributions and Support diff --git a/bin/assemblyqc.py b/bin/assemblyqc.py index 73f7780c..f5d9d6bc 100755 --- a/bin/assemblyqc.py +++ b/bin/assemblyqc.py @@ -43,6 +43,10 @@ data_from_tools = {**data_from_tools, **parse_assemblathon_stats_folder()} data_from_tools = {**data_from_tools, **parse_genometools_gt_stat_folder()} data_from_tools = {**data_from_tools, **parse_busco_folder()} + data_from_tools = { + **data_from_tools, + **parse_busco_folder("busco_gff_outputs", "BUSCO_GFF"), + } data_from_tools = {**data_from_tools, **parse_tidk_folder()} data_from_tools = {**data_from_tools, **parse_lai_folder()} data_from_tools = {**data_from_tools, **parse_kraken2_folder()} diff --git a/bin/report_modules/parsers/busco_parser.py b/bin/report_modules/parsers/busco_parser.py index 74c6fb05..44d52d0f 100644 --- a/bin/report_modules/parsers/busco_parser.py +++ b/bin/report_modules/parsers/busco_parser.py @@ -11,70 +11,64 @@ class BuscoParser: def __init__(self, file_data): - self.file_data = file_data - self.stats_dict = {} + self.file_text = file_data def parse_report(self): - self.stats_dict["version"] = self.get_busco_version(self.file_data) - self.stats_dict["lineage"] = self.get_lineage_dataset(self.file_data) - self.stats_dict["created"] = self.get_creation_date(self.file_data) - self.stats_dict["mode"] = self.get_run_mode(self.file_data) - self.stats_dict["predictor"] = self.get_gene_predictor(self.file_data) - self.stats_dict["search_percentages"] = self.get_busco_percentages( - self.file_data + stats_dict = {} + stats_dict["version"] = self.get_busco_version() + stats_dict["lineage"] = self.get_lineage_dataset() + stats_dict["created"] = self.get_creation_date() + stats_dict["mode"] = self.get_run_mode() + stats_dict["predictor"] = self.get_gene_predictor() + stats_dict["search_percentages"] = self.get_busco_percentages() + (stats_dict["results_dict"], stats_dict["results_table"]) = ( + self.get_busco_result_table() ) - self.stats_dict["dependencies"] = self.get_deps_and_versions(self.file_data) - self.stats_dict["results_table"] = self.get_busco_result_table(self.file_data) - - # include busco results dictionary for use in json dump - self.stats_dict["results_dict"] = self.get_busco_result_dict(self.file_data) - # include dependencies dictionary for use in json dump - self.stats_dict["dependencies_dict"] = self.get_deps_and_versions_dict( - self.file_data + + (stats_dict["dependencies_dict"], stats_dict["dependencies"]) = ( + self.get_deps_and_versions() ) - return self.stats_dict + return stats_dict - def get_busco_version(self, data): + def get_busco_version(self): p = re.compile("BUSCO version is: (.*)") - result = p.search(data).group(1).strip() + result = p.search(self.file_text).group(1).strip() return result - def get_lineage_dataset(self, data): + def get_lineage_dataset(self): p = re.compile("The lineage dataset is: (.*)") - result = p.search(data).group(1).split()[0] + result = p.search(self.file_text).group(1).split()[0] return result - def get_creation_date(self, data): + def get_creation_date(self): p = re.compile("The lineage dataset is: (.*)") - result = p.search(data) + result = p.search(self.file_text) result = result.group(1).split()[3][:-1] return result - def get_run_mode(self, data): + def get_run_mode(self): p = re.compile("BUSCO was run in mode: (.*)") - result = p.search(data).group(1) + result = p.search(self.file_text).group(1) return result - def get_gene_predictor(self, data): + def get_gene_predictor(self): p = re.compile("Gene predictor used: (.*)") - gene_predictor = p.search(data) + gene_predictor = p.search(self.file_text) if gene_predictor == None: return "None" result = gene_predictor.group(1) - q = re.compile(f"{gene_predictor.group(1)}: (.*)") - predictor_version = q.search(data) return result - def get_busco_percentages(self, data): + def get_busco_percentages(self): p = re.compile("C:(.*)") - result = p.search(data).group(0).strip() + result = p.search(self.file_text).group(0).strip() return result - def get_deps_and_versions(self, file_data): - list_of_lines = file_data.split("\n") + def get_deps_and_versions(self): + list_of_lines = self.file_text.split("\n") for index, line in enumerate(list_of_lines): if "Dependencies and versions" in line: all_deps = ( @@ -88,44 +82,28 @@ def get_deps_and_versions(self, file_data): dependency = dep.split(":")[0] version = dep.split(":")[1].strip() dep_dict[f"{dependency}"] = f"{version}" + df = pd.DataFrame(dep_dict.items(), columns=["Dependency", "Version"]) col_names = ["Dependency", "Version"] table = tabulate( df, headers=col_names, tablefmt="html", numalign="left", showindex=False ) - return table - - # get dependencies dictionary instead of table to use in json dump - def get_deps_and_versions_dict(self, file_data): - list_of_lines = file_data.split("\n") - for index, line in enumerate(list_of_lines): - if "Dependencies and versions" in line: - all_deps = ( - "".join(list_of_lines[max(0, index + 1) : len(list_of_lines) - 2]) - .replace("\t", "\n") - .strip() - ) - - dep_dict = {} - for dep in all_deps.splitlines(): - dependency = dep.split(":")[0] - version = dep.split(":")[1].strip() - dep_dict[f"{dependency}"] = f"{version}" - return dep_dict + return (dep_dict, table) - def get_busco_result_table(self, file_data): - list_of_lines = file_data.split("\n") + def get_busco_result_table(self): + list_of_lines = self.file_text.split("\n") + end_index = len(list_of_lines) - 1 for index, line in enumerate(list_of_lines): - if "Assembly Statistics" in line: - stats_index = index + if ("Assembly Statistics" in line) or ("Dependencies and versions" in line): + end_index = index break results_dict = {} for index, line in enumerate(list_of_lines): if "C:" in line: - for i in range(index + 1, stats_index - 1): + for i in range(index + 1, end_index - 1): number = list_of_lines[i].split("\t")[1] descr = list_of_lines[i].split("\t")[2] @@ -135,28 +113,10 @@ def get_busco_result_table(self, file_data): table = tabulate( df, headers=col_names, tablefmt="html", numalign="left", showindex=False ) - return table + return (results_dict, table) - # get results dictionary instead of table to use in json dump - def get_busco_result_dict(self, file_data): - list_of_lines = file_data.split("\n") - for index, line in enumerate(list_of_lines): - if "Assembly Statistics" in line: - stats_index = index - - results_dict = {} - for index, line in enumerate(list_of_lines): - if "C:" in line: - for i in range(index + 1, stats_index - 1): - number = list_of_lines[i].split("\t")[1] - descr = list_of_lines[i].split("\t")[2] - results_dict[f"{descr}"] = f"{number}" - - return results_dict - - -def parse_busco_folder(folder_name="busco_outputs"): +def parse_busco_folder(folder_name="busco_outputs", data_key="BUSCO"): dir = os.getcwdb().decode() busco_folder_path = Path(f"{dir}/{folder_name}") @@ -172,27 +132,28 @@ def parse_busco_folder(folder_name="busco_outputs"): ext = str(plot_path).split(".")[-1] busco_plot_url = f"data:image/{ext};base64,{base64_utf8_str}" - data = {"BUSCO": []} + data = {data_key: []} for file in list_of_files: - file_data = "" with open(file, "r") as file: - lines = file.readlines() - for line in lines: - file_data += line - parser = BuscoParser(file_data) + file_text = file.read() + + parser = BuscoParser(file_text) + file_tokens = re.findall( r"short_summary.specific.([\w]+).([\w]+)_([a-zA-Z0-9]+).txt", os.path.basename(str(file)), )[0] + stats = { "hap": file_tokens[1], "lineage": file_tokens[0], **parser.parse_report(), } - data["BUSCO"].append(stats) - data["BUSCO"] = sort_list_of_results(data["BUSCO"], "hap") - data["BUSCO"][0]["busco_plot"] = busco_plot_url + data[data_key].append(stats) + + data[data_key] = sort_list_of_results(data[data_key], "hap") + data[data_key][0]["busco_plot"] = busco_plot_url return data diff --git a/bin/report_modules/templates/base.html b/bin/report_modules/templates/base.html index 31d52c4c..d2478dfb 100644 --- a/bin/report_modules/templates/base.html +++ b/bin/report_modules/templates/base.html @@ -40,6 +40,10 @@ {% endif %} + {% if 'BUSCO_GFF' in all_stats_dicts %} + + {% endif %} + {% if 'TIDK' in all_stats_dicts %} {% endif %} @@ -100,6 +104,10 @@ {% include 'busco/busco.html' %} {% endif %} + {% if 'BUSCO_GFF' in all_stats_dicts %} + {% include 'busco_gff/busco_gff.html' %} + {% endif %} + {% if 'TIDK' in all_stats_dicts %} {% include 'tidk/tidk.html' %} {% endif %} diff --git a/bin/report_modules/templates/busco/busco.html b/bin/report_modules/templates/busco/busco.html index 4f6f9b3a..20e8fc04 100644 --- a/bin/report_modules/templates/busco/busco.html +++ b/bin/report_modules/templates/busco/busco.html @@ -11,7 +11,7 @@ viral genomes. arXiv:2106.11799 [q-bio] [Internet]. Available from: arxiv.org/abs/2106.11799

    -

    Version: {{ all_stats_dicts['VERSIONS']['BUSCO']['busco'] }}

    +

    Version: {{ all_stats_dicts['VERSIONS']['BUSCO_ASSEMBLY']['busco'] }}

    {% include 'busco/dropdown.html' %} {% include 'busco/summary_contents.html' %} {% include 'busco/report_contents.html' %} diff --git a/bin/report_modules/templates/busco_gff/busco_gff.html b/bin/report_modules/templates/busco_gff/busco_gff.html new file mode 100644 index 00000000..654a59c9 --- /dev/null +++ b/bin/report_modules/templates/busco_gff/busco_gff.html @@ -0,0 +1,25 @@ + diff --git a/bin/report_modules/templates/busco_gff/dropdown.html b/bin/report_modules/templates/busco_gff/dropdown.html new file mode 100644 index 00000000..982255f5 --- /dev/null +++ b/bin/report_modules/templates/busco_gff/dropdown.html @@ -0,0 +1,13 @@ + diff --git a/bin/report_modules/templates/busco_gff/report_contents.html b/bin/report_modules/templates/busco_gff/report_contents.html new file mode 100644 index 00000000..55be556f --- /dev/null +++ b/bin/report_modules/templates/busco_gff/report_contents.html @@ -0,0 +1,77 @@ +{% for item in range(all_stats_dicts["BUSCO_GFF"]|length) %} +
    Process Name \\", - " \\ Software Version
    CUSTOM_DUMPSOFTWAREVERSIONSpython3.11.7
    yaml5.4.1
    TOOL1tool10.11.9
    TOOL2tool21.9
    WorkflowNextflow
    + + + + + + + + + + + + +
    EventValue
    Search Percentages{{ all_stats_dicts['BUSCO_GFF'][item]['search_percentages'] }}
    + + + +
    +
    {{ all_stats_dicts['BUSCO_GFF'][item]['results_table'] }}
    +
    + + +
    +
    +
    Parameters and Dependencies
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    ParameterValue
    Version{{ all_stats_dicts['BUSCO_GFF'][item]['version'] }}
    Lineage create on{{ all_stats_dicts['BUSCO_GFF'][item]['created'] }}
    mode{{ all_stats_dicts['BUSCO_GFF'][item]['mode'] }}
    predictor{{ all_stats_dicts['BUSCO_GFF'][item]['predictor'] }}
    +
    +
    + +
    +
    {{ all_stats_dicts['BUSCO_GFF'][item]['dependencies'] }}
    +
    +
    + +{% endfor %} diff --git a/bin/report_modules/templates/busco_gff/summary_contents.html b/bin/report_modules/templates/busco_gff/summary_contents.html new file mode 100644 index 00000000..d99344d2 --- /dev/null +++ b/bin/report_modules/templates/busco_gff/summary_contents.html @@ -0,0 +1,37 @@ +
    +
    +
    +
    Summary
    +
    + +
    +
    + + + + + + + + + + {% for item in range(all_stats_dicts["BUSCO_GFF"]|length) %} + + + + + + {% endfor %} + +
    AnnotationLineagePercentages
    + {{ all_stats_dicts['BUSCO_GFF'][item]['hap'] }} + + {{ all_stats_dicts['BUSCO_GFF'][item]['lineage'] }} + {{ all_stats_dicts['BUSCO_GFF'][item]['search_percentages'] }}
    +
    +
    +
    +
    + +
    +
    diff --git a/bin/report_modules/templates/gff3_validate/gff3_validate.html b/bin/report_modules/templates/gff3_validate/gff3_validate.html index 01fa2754..d43fb8db 100644 --- a/bin/report_modules/templates/gff3_validate/gff3_validate.html +++ b/bin/report_modules/templates/gff3_validate/gff3_validate.html @@ -1,22 +1,17 @@ diff --git a/conf/modules.config b/conf/modules.config index 0359b8a1..028955ff 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -66,17 +66,43 @@ process { ] } - withName: BUSCO { + withName: '.*:FASTA_GXF_BUSCO_PLOT:BUSCO_ASSEMBLY' { + ext.args = '--metaeuk' publishDir = [ - path: { "${params.outdir}/busco" }, + path: { "${params.outdir}/busco/fasta" }, + mode: params.publish_dir_mode, + pattern: 'short_summary.*.txt', + saveAs: { filename -> "short_summary.specific.${meta.id}.${lineage}.txt" } + ] + } + + withName: '.*:FASTA_GXF_BUSCO_PLOT:PLOT_ASSEMBLY' { + ext.prefix = 'busco_figure' + publishDir = [ + path: { "${params.outdir}/busco/fasta" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals("versions.yml") ? null : filename } ] } - withName: BUSCO_PLOT { + withName: '.*:FASTA_GXF_BUSCO_PLOT:EXTRACT_PROTEINS' { + ext.args = '-y' + } + + withName: '.*:FASTA_GXF_BUSCO_PLOT:BUSCO_ANNOTATION' { + ext.args = '--metaeuk' + publishDir = [ + path: { "${params.outdir}/busco/gff" }, + mode: params.publish_dir_mode, + pattern: 'short_summary.*.txt', + saveAs: { filename -> "short_summary.specific.${meta.id}.${lineage}.txt" } + ] + } + + withName: '.*:FASTA_GXF_BUSCO_PLOT:PLOT_ANNOTATION' { + ext.prefix = 'busco_figure' publishDir = [ - path: { "${params.outdir}" }, + path: { "${params.outdir}/busco/gff" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals("versions.yml") ? null : filename } ] diff --git a/conf/test_full.config b/conf/test_full.config index 9c7b5ad8..e3c9b3c9 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -24,7 +24,7 @@ params { // ncbi_fcs_gx_db_path = 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/database/r2023-01-24' busco_skip = false - busco_mode = 'geno' + busco_mode = 'genome' busco_lineage_datasets = 'fungi_odb10 hypocreales_odb10' tidk_skip = false diff --git a/docs/contributors.sh b/docs/contributors.sh index f3839348..e694e491 100755 --- a/docs/contributors.sh +++ b/docs/contributors.sh @@ -2,4 +2,4 @@ module_authors=$(find ./modules -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}') workflow_authors=$(find ./subworkflows -name meta.yml | xargs -I {} grep -A20 'authors:' {} | grep '\- ' | tr -d '"' | tr '[:upper:]' '[:lower:]' | awk '{print $2}') -echo -e "${module_authors}\n${workflow_authors}" | sort -V | uniq | sed -n 's|@\(.*\)||p' +echo -e "${module_authors}\n${workflow_authors}" | sort -V | uniq -c | sort -k1,1 -r | awk '{print $2}' | sed -n 's|@\(.*\)||p' diff --git a/docs/parameters.md b/docs/parameters.md index b1fd54d3..9c8506c2 100644 --- a/docs/parameters.md +++ b/docs/parameters.md @@ -32,7 +32,7 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and | Parameter | Description | Type | Default | Required | Hidden | | ------------------------ | -------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ------ | | `busco_skip` | Skip BUSCO | `boolean` | True | | | -| `busco_mode` | BUSCO mode: 'geno' for genome, 'tran' for transcriptome, 'prot' for proteins | `string` | | | | +| `busco_mode` | BUSCO mode: 'genome', 'transcriptome', 'proteins' | `string` | | | | | `busco_lineage_datasets` | BUSCO lineages. It should be provided as a space-separated list of lineages: 'fungi_odb10 microsporidia_odb10' | `string` | | | | | `busco_download_path` | Download path for BUSCO | `string` | | | | @@ -60,12 +60,12 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and ## HiC options -| Parameter | Description | Type | Default | Required | Hidden | -| -------------------- | ----------------------------------------------------------------------------------- | --------- | ------------------------------------------------- | -------- | ------ | --- | -| `hic` | HiC reads path provided as a SRA ID or as paired reads with pattern '\*{1,2}.(fastq | fq).gz' | `string` | | | | -| `hic_skip_fastp` | Skip HiC read trimming | `boolean` | | | | -| `hic_skip_fastqc` | Skip HiC read QC | `boolean` | | | | -| `hic_fastp_ext_args` | Additional parameters for fastp trimming | `string` | --qualified_quality_phred 20 --length_required 50 | | | +| Parameter | Description | Type | Default | Required | Hidden | +| -------------------- | -------------------------------------------------------------------------------------- | --------- | ------------------------------------------------- | -------- | ------ | +| `hic` | HiC reads path provided as a SRA ID or as paired reads with pattern '\*{1,2}.fastq.gz' | `string` | | | | +| `hic_skip_fastp` | Skip HiC read trimming | `boolean` | | | | +| `hic_skip_fastqc` | Skip HiC read QC | `boolean` | | | | +| `hic_fastp_ext_args` | Additional parameters for fastp trimming | `string` | --qualified_quality_phred 20 --length_required 50 | | | ## Synteny options @@ -85,7 +85,7 @@ A NextFlow pipeline which evaluates assembly quality with multiple QC tools and | Parameter | Description | Type | Default | Required | Hidden | | --------------------- | -------------------------------- | --------- | ------- | -------- | ------ | -| `merqury_skip` | | `boolean` | True | | | +| `merqury_skip` | Skip merqury analysis | `boolean` | True | | | | `merqury_kmer_length` | kmer length for merqury analysis | `integer` | 21 | | | ## Max job request options diff --git a/modules.json b/modules.json index f8bc841f..0fff3420 100644 --- a/modules.json +++ b/modules.json @@ -5,6 +5,16 @@ "https://github.com/PlantandFoodResearch/nxf-modules.git": { "modules": { "pfr": { + "busco/busco": { + "branch": "main", + "git_sha": "c3ef9317fe867609f5927588fbf17e3c3ebf389c", + "installed_by": ["fasta_gxf_busco_plot"] + }, + "busco/generateplot": { + "branch": "main", + "git_sha": "c3ef9317fe867609f5927588fbf17e3c3ebf389c", + "installed_by": ["fasta_gxf_busco_plot"] + }, "bwa/index": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", @@ -30,6 +40,11 @@ "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, + "gffread": { + "branch": "main", + "git_sha": "c3ef9317fe867609f5927588fbf17e3c3ebf389c", + "installed_by": ["fasta_gxf_busco_plot"] + }, "gt/gff3": { "branch": "main", "git_sha": "84f31d4be03e2ae6bee8e0b9fdea466be8e997bb", @@ -79,6 +94,11 @@ }, "subworkflows": { "pfr": { + "fasta_gxf_busco_plot": { + "branch": "main", + "git_sha": "0e4afaff4964485d2d93f1115c5254a99765b9c1", + "installed_by": ["subworkflows"] + }, "fasta_ltrretriever_lai": { "branch": "main", "git_sha": "8088445a270d324cb06e085f18790839c9684754", diff --git a/modules/local/busco.nf b/modules/local/busco.nf deleted file mode 100644 index 1c8b3f46..00000000 --- a/modules/local/busco.nf +++ /dev/null @@ -1,56 +0,0 @@ -process BUSCO { - tag "${asm_tag}:${lineage_dataset}" - label 'process_high' - - conda "bioconda::busco=5.6.1" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/busco:5.6.1--pyhdfd78af_0': - 'biocontainers/busco:5.6.1--pyhdfd78af_0' }" - - input: - tuple val(asm_tag), path(fasta_file) - val lineage_dataset - val mode - val download_path - - output: - path "${asm_tag}/short_summary.specific.${lineage_dataset}.${asm_tag}_${lineage_initials}.txt" , emit: summary - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def lineages_path = download_path ? "--download_path ${download_path}" : '' - lineage_initials = "${lineage_dataset}".split("_")[0] - - """ - busco \\ - -m ${mode} \\ - -o ${asm_tag} \\ - -i $fasta_file \\ - -l ${lineage_dataset} \\ - $lineages_path \\ - -c ${task.cpus} - - mv $asm_tag/short_summary.specific.${lineage_dataset}.${asm_tag}.txt \\ - $asm_tag/short_summary.specific.${lineage_dataset}.${asm_tag}_${lineage_initials}.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) - END_VERSIONS - """ - - stub: - lineage_initials = "${lineage_dataset}".split("_")[0] - """ - mkdir -p $asm_tag - touch $asm_tag/short_summary.specific.${lineage_dataset}.${asm_tag}_${lineage_initials}.txt - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) - END_VERSIONS - """ -} diff --git a/modules/local/createreport.nf b/modules/local/createreport.nf index 087bec70..b072b184 100644 --- a/modules/local/createreport.nf +++ b/modules/local/createreport.nf @@ -5,27 +5,28 @@ process CREATEREPORT { container "docker.io/gallvp/python3npkgs:v0.7" input: - path fastavalidator_logs, stageAs: 'fastavalidator_logs/*' - path gff3_validate_logs, stageAs: 'gff3_validate_logs/*' - path ncbi_fcs_adaptor_reports, stageAs: 'ncbi_fcs_adaptor_reports/*' - path fcs_gx_reports, stageAs: 'fcs_gx_reports/*' - path assemblathon_stats, stageAs: 'assemblathon_stats/*' - path genometools_gt_stats, stageAs: 'genometools_gt_stat/*' - path busco_outputs, stageAs: 'busco_outputs/*' - path tidk_plots, stageAs: 'tidk_outputs/*' - path lai_outputs, stageAs: 'lai_outputs/*' - path kraken2_outputs, stageAs: 'kraken2_outputs/*' - path hic_outputs, stageAs: 'hic_outputs/*' - path synteny_outputs, stageAs: 'synteny_outputs/*' - path merqury_outputs, stageAs: 'merquryfk_outputs/*' + path fastavalidator_logs , stageAs: 'fastavalidator_logs/*' + path gff3_validate_logs , stageAs: 'gff3_validate_logs/*' + path ncbi_fcs_adaptor_reports , stageAs: 'ncbi_fcs_adaptor_reports/*' + path fcs_gx_reports , stageAs: 'fcs_gx_reports/*' + path assemblathon_stats , stageAs: 'assemblathon_stats/*' + path genometools_gt_stats , stageAs: 'genometools_gt_stat/*' + path busco_outputs , stageAs: 'busco_outputs/*' + path busco_gff_outputs , stageAs: 'busco_gff_outputs/*' + path tidk_plots , stageAs: 'tidk_outputs/*' + path lai_outputs , stageAs: 'lai_outputs/*' + path kraken2_outputs , stageAs: 'kraken2_outputs/*' + path hic_outputs , stageAs: 'hic_outputs/*' + path synteny_outputs , stageAs: 'synteny_outputs/*' + path merqury_outputs , stageAs: 'merquryfk_outputs/*' path versions val params_json val params_summary_json output: - path 'report.html' , emit: html - path 'report.json' , emit: json - path 'versions.yml' , emit: versions + path 'report.html' , emit: html + path 'report.json' , emit: json + path 'versions.yml' , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/pfr/busco/busco/environment.yml b/modules/pfr/busco/busco/environment.yml new file mode 100644 index 00000000..06a5d930 --- /dev/null +++ b/modules/pfr/busco/busco/environment.yml @@ -0,0 +1,7 @@ +name: busco_busco +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::busco=5.7.1 diff --git a/modules/pfr/busco/busco/main.nf b/modules/pfr/busco/busco/main.nf new file mode 100644 index 00000000..f7c1a662 --- /dev/null +++ b/modules/pfr/busco/busco/main.nf @@ -0,0 +1,107 @@ +process BUSCO_BUSCO { + tag "$meta.id" + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/busco:5.7.1--pyhdfd78af_0': + 'biocontainers/busco:5.7.1--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fasta, stageAs:'tmp_input/*') + val mode // Required: One of genome, proteins, or transcriptome + val lineage // Required: lineage to check against, "auto" enables --auto-lineage instead + path busco_lineages_path // Recommended: path to busco lineages - downloads if not set + path config_file // Optional: busco configuration file + + output: + tuple val(meta), path("*-busco.batch_summary.txt") , emit: batch_summary + tuple val(meta), path("short_summary.*.txt") , emit: short_summaries_txt , optional: true + tuple val(meta), path("short_summary.*.json") , emit: short_summaries_json , optional: true + tuple val(meta), path("*-busco/*/run_*/full_table.tsv") , emit: full_table , optional: true + tuple val(meta), path("*-busco/*/run_*/missing_busco_list.tsv") , emit: missing_busco_list , optional: true + tuple val(meta), path("*-busco/*/run_*/single_copy_proteins.faa") , emit: single_copy_proteins , optional: true + tuple val(meta), path("*-busco/*/run_*/busco_sequences") , emit: seq_dir + tuple val(meta), path("*-busco/*/translated_proteins") , emit: translated_dir , optional: true + tuple val(meta), path("*-busco") , emit: busco_dir + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + if ( mode !in [ 'genome', 'proteins', 'transcriptome' ] ) { + error "Mode must be one of 'genome', 'proteins', or 'transcriptome'." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}-${lineage}" + def busco_config = config_file ? "--config $config_file" : '' + def busco_lineage = lineage.equals('auto') ? '--auto-lineage' : "--lineage_dataset ${lineage}" + def busco_lineage_dir = busco_lineages_path ? "--download_path ${busco_lineages_path}" : '' + """ + # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) + # Check for container variable initialisation script and source it. + if [ -f "/usr/local/env-activate.sh" ]; then + set +u # Otherwise, errors out because of various unbound variables + . "/usr/local/env-activate.sh" + set -u + fi + + # If the augustus config directory is not writable, then copy to writeable area + if [ ! -w "\${AUGUSTUS_CONFIG_PATH}" ]; then + # Create writable tmp directory for augustus + AUG_CONF_DIR=\$( mktemp -d -p \$PWD ) + cp -r \$AUGUSTUS_CONFIG_PATH/* \$AUG_CONF_DIR + export AUGUSTUS_CONFIG_PATH=\$AUG_CONF_DIR + echo "New AUGUSTUS_CONFIG_PATH=\${AUGUSTUS_CONFIG_PATH}" + fi + + # Ensure the input is uncompressed + INPUT_SEQS=input_seqs + mkdir "\$INPUT_SEQS" + cd "\$INPUT_SEQS" + for FASTA in ../tmp_input/*; do + if [ "\${FASTA##*.}" == 'gz' ]; then + gzip -cdf "\$FASTA" > \$( basename "\$FASTA" .gz ) + else + ln -s "\$FASTA" . + fi + done + cd .. + + busco \\ + --cpu $task.cpus \\ + --in "\$INPUT_SEQS" \\ + --out ${prefix}-busco \\ + --mode $mode \\ + $busco_lineage \\ + $busco_lineage_dir \\ + $busco_config \\ + $args + + # clean up + rm -rf "\$INPUT_SEQS" + + # Move files to avoid staging/publishing issues + mv ${prefix}-busco/batch_summary.txt ${prefix}-busco.batch_summary.txt + mv ${prefix}-busco/*/short_summary.*.{json,txt} . || echo "Short summaries were not available: No genes were found." + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}-${lineage}" + def fasta_name = files(fasta).first().name - '.gz' + """ + touch ${prefix}-busco.batch_summary.txt + mkdir -p ${prefix}-busco/$fasta_name/run_${lineage}/busco_sequences + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) + END_VERSIONS + """ +} diff --git a/modules/pfr/busco/busco/meta.yml b/modules/pfr/busco/busco/meta.yml new file mode 100644 index 00000000..29745d2c --- /dev/null +++ b/modules/pfr/busco/busco/meta.yml @@ -0,0 +1,98 @@ +name: busco_busco +description: Benchmarking Universal Single Copy Orthologs +keywords: + - quality control + - genome + - transcriptome + - proteome +tools: + - busco: + description: BUSCO provides measures for quantitative assessment of genome assembly, gene set, and transcriptome completeness based on evolutionarily informed expectations of gene content from near-universal single-copy orthologs selected from OrthoDB. + homepage: https://busco.ezlab.org/ + documentation: https://busco.ezlab.org/busco_userguide.html + tool_dev_url: https://gitlab.com/ezlab/busco + doi: "10.1007/978-1-4939-9173-0_14" + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Nucleic or amino acid sequence file in FASTA format. + pattern: "*.{fasta,fna,fa,fasta.gz,fna.gz,fa.gz}" + - mode: + type: string + description: The mode to run Busco in. One of genome, proteins, or transcriptome + pattern: "{genome,proteins,transcriptome}" + - lineage: + type: string + description: The BUSCO lineage to use, or "auto" to automatically select lineage + - busco_lineages_path: + type: directory + description: Path to local BUSCO lineages directory. + - config_file: + type: file + description: Path to BUSCO config file. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - batch_summary: + type: file + description: Summary of all sequence files analyzed + pattern: "*-busco.batch_summary.txt" + - short_summaries_txt: + type: file + description: Short Busco summary in plain text format + pattern: "short_summary.*.txt" + - short_summaries_json: + type: file + description: Short Busco summary in JSON format + pattern: "short_summary.*.json" + - busco_dir: + type: directory + description: BUSCO lineage specific output + pattern: "*-busco" + - full_table: + type: file + description: Full BUSCO results table + pattern: "full_table.tsv" + - missing_busco_list: + type: file + description: List of missing BUSCOs + pattern: "missing_busco_list.tsv" + - single_copy_proteins: + type: file + description: Fasta file of single copy proteins (transcriptome mode) + pattern: "single_copy_proteins.faa" + - seq_dir: + type: directory + description: BUSCO sequence directory + pattern: "busco_sequences" + - translated_dir: + type: directory + description: Six frame translations of each transcript made by the transcriptome mode + pattern: "translated_dir" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@priyanka-surana" + - "@charles-plessy" + - "@mahesh-panchal" + - "@muffato" + - "@jvhagey" + - "@gallvp" +maintainers: + - "@priyanka-surana" + - "@charles-plessy" + - "@mahesh-panchal" + - "@muffato" + - "@jvhagey" + - "@gallvp" diff --git a/modules/pfr/busco/busco/tests/main.nf.test b/modules/pfr/busco/busco/tests/main.nf.test new file mode 100644 index 00000000..16b708b2 --- /dev/null +++ b/modules/pfr/busco/busco/tests/main.nf.test @@ -0,0 +1,419 @@ +nextflow_process { + + name "Test Process BUSCO_BUSCO" + script "../main.nf" + process "BUSCO_BUSCO" + + tag "modules" + tag "modules_nfcore" + tag "busco" + tag "busco/busco" + + test("test_busco_genome_single_fasta") { + + config './nextflow.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + input[1] = 'genome' + input[2] = 'bacteria_odb10' // Launch with 'auto' to use --auto-lineage, and specified lineages // 'auto' removed from test due to memory issues + input[3] = [] // Download busco lineage + input[4] = [] // No config + """ + } + } + + then { + assert process.success + + with(path(process.out.short_summaries_txt[0][1]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_json[0][1]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + assert snapshot( + process.out.batch_summary[0][1], + process.out.full_table[0][1], + process.out.missing_busco_list[0][1], + process.out.versions[0] + ).match() + + with(file(process.out.seq_dir[0][1]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains('Results from dataset') + assert contains('how to cite BUSCO') + } + + assert process.out.single_copy_proteins == [] + assert process.out.translated_dir == [] + } + } + + test("test_busco_genome_multi_fasta") { + + config './nextflow.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [ + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true), + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true) + ] + ] + input[1] = 'genome' + input[2] = 'bacteria_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assert process.success + + with(path(process.out.short_summaries_txt[0][1][0]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_txt[0][1][1]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_json[0][1][0]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + with(path(process.out.short_summaries_json[0][1][1]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + assert snapshot( + process.out.batch_summary[0][1], + process.out.full_table[0][1], + process.out.missing_busco_list[0][1], + process.out.versions[0] + ).match() + + with(file(process.out.seq_dir[0][1][0]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(file(process.out.seq_dir[0][1][1]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains('Results from dataset') + assert contains('how to cite BUSCO') + } + + assert process.out.single_copy_proteins == [] + assert process.out.translated_dir == [] + } + + } + + test("test_busco_eukaryote_metaeuk") { + + config './nextflow.metaeuk.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + input[1] = 'genome' + input[2] = 'eukaryota_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assert process.success + + with(path(process.out.short_summaries_txt[0][1]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_json[0][1]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + assert snapshot( + process.out.batch_summary[0][1], + process.out.full_table[0][1], + process.out.missing_busco_list[0][1], + process.out.versions[0] + ).match() + + with(file(process.out.seq_dir[0][1]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains("'use_augustus', 'False'") + assert contains("'use_metaeuk', 'True'") // METAEUK + assert contains('Results from dataset') + assert contains('how to cite BUSCO') + + } + + assert process.out.single_copy_proteins == [] + assert process.out.translated_dir == [] + } + + } + + test("test_busco_eukaryote_augustus") { + + config './nextflow.augustus.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + input[1] = 'genome' + input[2] = 'eukaryota_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assert process.success + + assert snapshot( + process.out.batch_summary[0][1], + process.out.versions[0] + ).match() + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains("'use_augustus', 'True'") + assert contains("'use_metaeuk', 'False'") // AUGUSTUS + assert contains('Augustus did not recognize any genes') + + } + + assert process.out.short_summaries_json == [] + assert process.out.short_summaries_txt == [] + assert process.out.missing_busco_list == [] + assert process.out.full_table == [] + assert process.out.single_copy_proteins == [] + assert process.out.translated_dir == [] + } + + } + + test("test_busco_protein") { + + config './nextflow.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['proteome_fasta'], checkIfExists: true) + ] + input[1] = 'proteins' + input[2] = 'bacteria_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assert process.success + + with(path(process.out.short_summaries_txt[0][1]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_json[0][1]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + assert snapshot( + process.out.batch_summary[0][1], + process.out.full_table[0][1], + process.out.missing_busco_list[0][1], + process.out.versions[0] + ).match() + + with(file(process.out.seq_dir[0][1]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains('Results from dataset') + assert contains('how to cite BUSCO') + } + + assert process.out.single_copy_proteins == [] + assert process.out.translated_dir == [] + } + + } + + test("test_busco_transcriptome") { + + config './nextflow.config' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['bacteroides_fragilis']['illumina']['test1_contigs_fa_gz'], checkIfExists: true) + ] + input[1] = 'transcriptome' + input[2] = 'bacteria_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assert process.success + + with(path(process.out.short_summaries_txt[0][1]).text) { + assert contains('BUSCO version') + assert contains('The lineage dataset is') + assert contains('BUSCO was run in mode') + assert contains('Complete BUSCOs') + assert contains('Missing BUSCOs') + assert contains('Dependencies and versions') + } + + with(path(process.out.short_summaries_json[0][1]).text) { + assert contains('one_line_summary') + assert contains('mode') + assert contains('dataset') + } + + assert snapshot( + process.out.batch_summary[0][1], + process.out.full_table[0][1], + process.out.missing_busco_list[0][1], + process.out.translated_dir[0][1], + process.out.single_copy_proteins[0][1], + process.out.versions[0] + ).match() + + with(file(process.out.seq_dir[0][1]).listFiles().collect { it.name }) { + assert contains('single_copy_busco_sequences.tar.gz') + assert contains('multi_copy_busco_sequences.tar.gz') + assert contains('fragmented_busco_sequences.tar.gz') + } + + with(path("${process.out.busco_dir[0][1]}/logs/busco.log").text) { + assert contains('DEBUG:busco.run_BUSCO') + assert contains('Results from dataset') + assert contains('how to cite BUSCO') + } + } + + } + + test("minimal-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + input[1] = 'genome' + input[2] = 'bacteria_odb10' + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/pfr/busco/busco/tests/main.nf.test.snap b/modules/pfr/busco/busco/tests/main.nf.test.snap new file mode 100644 index 00000000..1b6411bc --- /dev/null +++ b/modules/pfr/busco/busco/tests/main.nf.test.snap @@ -0,0 +1,230 @@ +{ + "minimal-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + [ + { + "id": "test" + }, + [ + + ] + ] + ], + "7": [ + + ], + "8": [ + [ + { + "id": "test" + }, + [ + [ + [ + [ + + ] + ] + ] + ] + ] + ], + "9": [ + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "batch_summary": [ + [ + { + "id": "test" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "busco_dir": [ + [ + { + "id": "test" + }, + [ + [ + [ + [ + + ] + ] + ] + ] + ] + ], + "full_table": [ + + ], + "missing_busco_list": [ + + ], + "seq_dir": [ + [ + { + "id": "test" + }, + [ + + ] + ] + ], + "short_summaries_json": [ + + ], + "short_summaries_txt": [ + + ], + "single_copy_proteins": [ + + ], + "translated_dir": [ + + ], + "versions": [ + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:28:04.451297" + }, + "test_busco_eukaryote_augustus": { + "content": [ + "test-eukaryota_odb10-busco.batch_summary.txt:md5,3ea3bdc423a461dae514d816bdc61c89", + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:26:36.974986" + }, + "test_busco_genome_single_fasta": { + "content": [ + "test-bacteria_odb10-busco.batch_summary.txt:md5,21b3fb771cf36be917cc451540d999be", + "full_table.tsv:md5,638fe7590f442c57361554dae330eca1", + "missing_busco_list.tsv:md5,1530af4fe7673a6d001349537bcd410a", + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:22:45.07816" + }, + "test_busco_genome_multi_fasta": { + "content": [ + "test-bacteria_odb10-busco.batch_summary.txt:md5,fcd3c208913e8abda3d6742c43fec5fa", + [ + "full_table.tsv:md5,c657edcc7d0de0175869717551df6e83", + "full_table.tsv:md5,638fe7590f442c57361554dae330eca1" + ], + [ + "missing_busco_list.tsv:md5,aceb66e347a353cb7fca8e2a725f9112", + "missing_busco_list.tsv:md5,1530af4fe7673a6d001349537bcd410a" + ], + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:23:50.255602" + }, + "test_busco_eukaryote_metaeuk": { + "content": [ + "test-eukaryota_odb10-busco.batch_summary.txt:md5,ff6d8277e452a83ce9456bbee666feb6", + "full_table.tsv:md5,92b1b1d5cb5ea0e2093d16f00187e8c7", + "missing_busco_list.tsv:md5,0352e563de290bf804c708323c35a9e3", + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:25:38.159041" + }, + "test_busco_transcriptome": { + "content": [ + "test-bacteria_odb10-busco.batch_summary.txt:md5,8734b3f379c4c0928e5dd4ea1873dc64", + "full_table.tsv:md5,1b2ce808fdafa744c56b5f781551272d", + "missing_busco_list.tsv:md5,a6931b6470262b997b8b99ea0f1d14a4", + [ + "1024388at2.faa:md5,797d603d262a6595a112e25b73e878b0", + "1054741at2.faa:md5,cd4b928cba6b19b4437746ba507e7195", + "1093223at2.faa:md5,df9549708e5ffcfaee6a74dd70a0e5dc", + "1151822at2.faa:md5,12726afc1cdc40c13392e1596e93df3a", + "143460at2.faa:md5,d887431fd988a5556a523440f02d9594", + "1491686at2.faa:md5,d03362d19979b27306c192f1c74a84e5", + "1504821at2.faa:md5,4f5f6e5c57bac0092c1d85ded73d7e67", + "1574817at2.faa:md5,1153e55998c2929eacad2aed7d08d248", + "1592033at2.faa:md5,bb7a59e5f3a57ba12d10dabf4c77ab57", + "1623045at2.faa:md5,8fe38155feb1802beb97ef7714837bf5", + "1661836at2.faa:md5,6c6d592c2fbb0d7a4e5e1f47a15644f0", + "1674344at2.faa:md5,bb41b44e53565a54cadf0b780532fe08", + "1698718at2.faa:md5,f233860000028eb00329aa85236c71e5", + "1990650at2.faa:md5,34a2d29c5f8b6253159ddb7a43fa1829", + "223233at2.faa:md5,dec6705c7846c989296e73942f953cbc", + "402899at2.faa:md5,acc0f271f9a586d2ce1ee41669b22999", + "505485at2.faa:md5,aa0391f8fa5d9bd19b30d844d5a99845", + "665824at2.faa:md5,47f8ad43b6a6078206feb48c2e552793", + "776861at2.faa:md5,f8b90c13f7c6be828dea3bb920195e3d", + "874197at2.faa:md5,8d22a35a768debe6f376fc695d233a69", + "932854at2.faa:md5,2eff2de1ab83b22f3234a529a44e22bb", + "95696at2.faa:md5,247bfd1aef432f7b5456307768e9149c" + ], + "single_copy_proteins.faa:md5,73e2c5d6a9b0f01f2deea3cc5f21b764", + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:27:53.992893" + }, + "test_busco_protein": { + "content": [ + "test-bacteria_odb10-busco.batch_summary.txt:md5,f5a782378f9f94a748aa907381fdef91", + "full_table.tsv:md5,812ab6a0496fccab774643cf40c4f2a8", + "missing_busco_list.tsv:md5,aceb66e347a353cb7fca8e2a725f9112", + "versions.yml:md5,3fc94714b95c2dc15399a4229d9dd1d9" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T13:27:12.724862" + } +} \ No newline at end of file diff --git a/modules/pfr/busco/busco/tests/nextflow.augustus.config b/modules/pfr/busco/busco/tests/nextflow.augustus.config new file mode 100644 index 00000000..84daa69d --- /dev/null +++ b/modules/pfr/busco/busco/tests/nextflow.augustus.config @@ -0,0 +1,5 @@ +process { + withName: 'BUSCO_BUSCO' { + ext.args = '--tar --augustus' + } +} diff --git a/modules/pfr/busco/busco/tests/nextflow.config b/modules/pfr/busco/busco/tests/nextflow.config new file mode 100644 index 00000000..1ec3fec0 --- /dev/null +++ b/modules/pfr/busco/busco/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: 'BUSCO_BUSCO' { + ext.args = '--tar' + } +} diff --git a/modules/pfr/busco/busco/tests/nextflow.metaeuk.config b/modules/pfr/busco/busco/tests/nextflow.metaeuk.config new file mode 100644 index 00000000..c1418445 --- /dev/null +++ b/modules/pfr/busco/busco/tests/nextflow.metaeuk.config @@ -0,0 +1,5 @@ +process { + withName: 'BUSCO_BUSCO' { + ext.args = '--tar --metaeuk' + } +} diff --git a/modules/pfr/busco/busco/tests/old_test.yml b/modules/pfr/busco/busco/tests/old_test.yml new file mode 100644 index 00000000..75177f5d --- /dev/null +++ b/modules/pfr/busco/busco/tests/old_test.yml @@ -0,0 +1,624 @@ +- name: busco test_busco_genome_single_fasta + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_genome_single_fasta -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: bc2440f8a68d7fbf931ff911c1c3fdfa + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/bbtools_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/bbtools_out.log + md5sum: 9caf1a1434414c78562eb0bbb9c0e53f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/hmmsearch_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/hmmsearch_out.log + contains: + - "# hmmsearch :: search profile(s) against a sequence database" + - "# target sequence database:" + - "Internal pipeline statistics summary:" + - "[ok]" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/prodigal_err.log + md5sum: 538510cfc7483498210f01e53fe035ad + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/prodigal_out.log + md5sum: 61050b0706addc9498b2088a2d6efa9a + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/.checkpoint + contains: + - "Tool: prodigal" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/predicted.faa + md5sum: 836e9a80d33d8b89168f07ddc13ee991 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/predicted.fna + md5sum: 20eeb75f86842e6e136f02bca8b73a9f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.faa + md5sum: 836e9a80d33d8b89168f07ddc13ee991 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.fna + md5sum: 20eeb75f86842e6e136f02bca8b73a9f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_err.log + md5sum: 538510cfc7483498210f01e53fe035ad + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_out.log + md5sum: 61050b0706addc9498b2088a2d6efa9a + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/.bbtools_output/.checkpoint + contains: + - "Tool: bbtools" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/full_table.tsv + md5sum: c56edab1dc1522e993c25ae2b730799f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/hmmer_output.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/missing_busco_list.tsv + md5sum: b533ef30270f27160acce85a22d01bf5 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "lineage_dataset" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-bacteria_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/versions.yml + +- name: busco test_busco_genome_multi_fasta + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_genome_multi_fasta -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: 8c64c1a28b086ef2ee444f99cbed5f7d + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/bbtools_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/bbtools_out.log + md5sum: 8f047bdb33264d22a83920bc2c63f29a + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/hmmsearch_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/hmmsearch_out.log + contains: + - "# hmmsearch :: search profile(s) against a sequence database" + - "# target sequence database:" + - "Internal pipeline statistics summary:" + - "[ok]" + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/prodigal_err.log + md5sum: c1fdc6977332f53dfe7f632733bb4585 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/logs/prodigal_out.log + md5sum: 50752acb1c5a20be886bfdfc06635bcb + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/.checkpoint + contains: + - "Tool: prodigal" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/predicted.faa + md5sum: 8166471fc5f08c82fd5643ab42327f9d + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/predicted.fna + md5sum: ddc508a18f60e7f3314534df50cdf8ca + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.faa + md5sum: 8166471fc5f08c82fd5643ab42327f9d + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.fna + md5sum: ddc508a18f60e7f3314534df50cdf8ca + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_err.log + md5sum: c1fdc6977332f53dfe7f632733bb4585 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_out.log + md5sum: 50752acb1c5a20be886bfdfc06635bcb + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_4.faa + md5sum: e56fd59c38248dc21ac94355dca98121 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_4.fna + md5sum: b365f84bf99c68357952e0b98ed7ce42 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_4_err.log + md5sum: e5f14d7925ba14a0f9850542f3739894 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_4_out.log + md5sum: d41971bfc1b621d4ffd2633bc47017ea + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/.bbtools_output/.checkpoint + contains: + - "Tool: bbtools" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/full_table.tsv + md5sum: c9651b88b10871abc260ee655898e828 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/hmmer_output.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/missing_busco_list.tsv + md5sum: 9939309df2da5419de88c32d1435c779 + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-bacteria_odb10-busco/genome.fasta/run_bacteria_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/bbtools_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/bbtools_out.log + md5sum: 9caf1a1434414c78562eb0bbb9c0e53f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/hmmsearch_err.log + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/hmmsearch_out.log + contains: + - "# hmmsearch :: search profile(s) against a sequence database" + - "# target sequence database:" + - "Internal pipeline statistics summary:" + - "[ok]" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/prodigal_err.log + md5sum: 538510cfc7483498210f01e53fe035ad + - path: output/busco/test-bacteria_odb10-busco/genome.fna/logs/prodigal_out.log + md5sum: 61050b0706addc9498b2088a2d6efa9a + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/.checkpoint + contains: + - "Tool: prodigal" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/predicted.faa + md5sum: 836e9a80d33d8b89168f07ddc13ee991 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/predicted.fna + md5sum: 20eeb75f86842e6e136f02bca8b73a9f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.faa + md5sum: 836e9a80d33d8b89168f07ddc13ee991 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11.fna + md5sum: 20eeb75f86842e6e136f02bca8b73a9f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_err.log + md5sum: 538510cfc7483498210f01e53fe035ad + - path: output/busco/test-bacteria_odb10-busco/genome.fna/prodigal_output/predicted_genes/tmp/prodigal_mode_single_code_11_out.log + md5sum: 61050b0706addc9498b2088a2d6efa9a + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/.bbtools_output/.checkpoint + contains: + - "Tool: bbtools" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/full_table.tsv + md5sum: c56edab1dc1522e993c25ae2b730799f + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/hmmer_output.tar.gz + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/missing_busco_list.tsv + md5sum: b533ef30270f27160acce85a22d01bf5 + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-bacteria_odb10-busco/genome.fna/run_bacteria_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-bacteria_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/versions.yml + +- name: busco test_busco_eukaryote_metaeuk + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_eukaryote_metaeuk -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt + md5sum: ff6d8277e452a83ce9456bbee666feb6 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/bbtools_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/bbtools_out.log + md5sum: e63debaa653f18f7405d936050abc093 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/hmmsearch_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/hmmsearch_out.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run1_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run1_out.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run2_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run2_out.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/.bbtools_output/.checkpoint + contains: + - "Tool: bbtools" + - "Completed" + - "jobs" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/full_table.tsv + md5sum: bd880e90b9e5620a58943a3e0f9ff16b + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/hmmer_output.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/.checkpoint + contains: + - "Tool: metaeuk" + - "Completed" + - "jobs" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/combined_pred_proteins.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.codon.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.gff + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.headersMap.tsv + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/refseq_db_rerun.faa + md5sum: d80b8fa4cb5ed0d47d63d6aa93635bc2 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.codon.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.gff + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.headersMap.tsv + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/missing_busco_list.tsv + md5sum: 1e8e79c540fd2e69ba0d2659d9eb2988 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-eukaryota_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/versions.yml + +- name: busco test_busco_eukaryote_augustus + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_eukaryote_augustus -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt + md5sum: ff6d8277e452a83ce9456bbee666feb6 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/bbtools_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/bbtools_out.log + md5sum: e63debaa653f18f7405d936050abc093 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/hmmsearch_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/hmmsearch_out.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run1_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run1_out.log + contains: + - "metaeuk" + - "easy-predict" + - "Compute score and coverage" + - "Time for processing:" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run2_err.log + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/logs/metaeuk_run2_out.log + contains: + - "metaeuk" + - "easy-predict" + - "Compute score and coverage" + - "Time for processing:" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/.bbtools_output/.checkpoint + contains: + - "Tool: bbtools" + - "Completed" + - "jobs" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/full_table.tsv + md5sum: bd880e90b9e5620a58943a3e0f9ff16b + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/hmmer_output.tar.gz + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/.checkpoint + contains: + - "Tool: metaeuk" + - "Completed" + - "jobs" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/combined_pred_proteins.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.codon.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.gff + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/initial_results/genome.fasta.headersMap.tsv + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/refseq_db_rerun.faa + md5sum: d80b8fa4cb5ed0d47d63d6aa93635bc2 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.codon.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.fas + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.gff + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/metaeuk_output/rerun_results/genome.fasta.headersMap.tsv + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/missing_busco_list.tsv + md5sum: 1e8e79c540fd2e69ba0d2659d9eb2988 + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-eukaryota_odb10-busco/genome.fasta/run_eukaryota_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-eukaryota_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/versions.yml + +- name: busco test_busco_protein + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_protein -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: 7a65e6cbb6c56a2ea4e739ae0aa3297d + - path: output/busco/test-bacteria_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/logs/hmmsearch_err.log + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/logs/hmmsearch_out.log + contains: + - "# hmmsearch :: search profile(s) against a sequence database" + - "# target sequence database:" + - "Internal pipeline statistics summary:" + - "[ok]" + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/full_table.tsv + md5sum: 0e34f1011cd83ea1d5d5103ec62b8922 + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/hmmer_output.tar.gz + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/missing_busco_list.tsv + md5sum: 9939309df2da5419de88c32d1435c779 + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-bacteria_odb10-busco/proteome.fasta/run_bacteria_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/versions.yml + +- name: busco test_busco_transcriptome + command: nextflow run ./tests/modules/nf-core/busco -entry test_busco_transcriptome -c ./tests/config/nextflow.config + tags: + - busco + files: + - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: 46118ecf60d1b87d22b96d80f4f03632 + - path: output/busco/test-bacteria_odb10-busco/logs/busco.log + contains: + - "DEBUG:busco.run_BUSCO" + - "Results from dataset" + - "how to cite BUSCO" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/.checkpoint + contains: + - "Tool: makeblastdb" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.ndb + md5sum: 3788c017fe5e6f0f58224e9cdd21822b + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.nhr + md5sum: 8ecd2ce392bb5e25ddbe1d85f879582e + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.nin + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.njs + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.not + md5sum: 0c340e376c7e85d19f82ec1a833e6a6e + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.nsq + md5sum: 532d5c0a7ea00fe95ca3c97cb3be6198 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.ntf + md5sum: de1250813f0c7affc6d12dac9d0fb6bb + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/blast_db/test1.contigs.fa.nto + md5sum: ff74bd41f9cc9b011c63a32c4f7693bf + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/hmmsearch_err.log + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/hmmsearch_out.log + contains: + - "# hmmsearch :: search profile(s) against a sequence database" + - "# target sequence database:" + - "Internal pipeline statistics summary:" + - "[ok]" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/makeblastdb_err.log + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/makeblastdb_out.log + contains: + - "Building a new DB" + - "Adding sequences from FASTA" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/tblastn_err.log + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/logs/tblastn_out.log + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/.checkpoint + contains: + - "Tool: tblastn" + - "Completed" + - "jobs" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/coordinates.tsv + md5sum: cc30eed321944af293452bdbcfc24292 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_101.temp + md5sum: 73e9c65fc83fedc58f57f09b08f08238 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_119.temp + md5sum: 7fa4cc7955ec0cc36330a221c579b975 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_129.temp + md5sum: 6f1601c875d019e3f6f1f98ed8e988d4 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_138.temp + md5sum: 3f8e034686cd240c2330650d791bcae2 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_143.temp + md5sum: df3dfa8e9ba30ed70cf75b5e7abf2179 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_172.temp + md5sum: 7d463e0e6cf7169bc9077d8dc776dda1 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_178.temp + md5sum: 2288edf7fa4f88f51b4cf4d94086f77e + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_188.temp + md5sum: 029906abbad6d87fc57830dd548cac24 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_195.temp + md5sum: 4937f3b348774a31b1160a00297c29cc + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_210.temp + md5sum: afcb20ba4c466479d6b91c8c62251e1f + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_232.temp + md5sum: 2e1e823ce017345bd998191a39fa9924 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_268.temp + md5sum: 08c2d82c34ecffbe1c638b410349412e + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_29.temp + md5sum: cd9b63cf93524284781535c888313764 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_44.temp + md5sum: d1929b742b24ebe379bf4801ca882dca + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_58.temp + md5sum: 69215765b010c05336538cb322c900b3 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_72.temp + md5sum: 6feaa1cc3b0899a147ea9d466878f3e3 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_80.temp + md5sum: 13625eae14e860a96ce17cd4e37e9d01 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_81.temp + md5sum: e14b2484649b0dbc8926815c207b806d + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_93.temp + md5sum: 6902c93691df00e690faea914c71839e + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/sequences/k141_97.temp + md5sum: 0a0d9d38a83acbd5ad43c29cdf429988 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/blast_output/tblastn.tsv + contains: + - "TBLASTN" + - "BLAST processed" + - "queries" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/busco_sequences/fragmented_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/busco_sequences/multi_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/busco_sequences/single_copy_busco_sequences.tar.gz + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/full_table.tsv + md5sum: 24df25199e13c88bd892fc3e7b541ca0 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/hmmer_output.tar.gz + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/missing_busco_list.tsv + md5sum: e7232e2b8cca4fdfdd9e363b39ebbc81 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/short_summary.json + contains: + - "one_line_summary" + - "mode" + - "dataset" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/short_summary.txt + contains: + - "# BUSCO version is:" + - "Results:" + - "busco:" + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/run_bacteria_odb10/single_copy_proteins.faa + md5sum: e04b9465733577ae6e4bccb7aa01e720 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1024388at2.faa + md5sum: 7333c39a20258f20c7019ea0cd83157c + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1054741at2.faa + md5sum: ebb481e77a824685fbe04d8a2f3a0d7d + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1093223at2.faa + md5sum: 34621c7d499034e8f8e6b92fd4020a93 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1151822at2.faa + md5sum: aa89ca381c1c70c9c4e1380351ca7c2a + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/143460at2.faa + md5sum: f2e91d78b8dd3722840378789f29e8c8 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1491686at2.faa + md5sum: 73c25aef5c9cba7f4151804941b146ea + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1504821at2.faa + md5sum: cda556018d1f84ebe517e89f6fc107d0 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1574817at2.faa + md5sum: a9096c9fb8b25c78a72871ab0463acdc + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1592033at2.faa + md5sum: e463d25ce186c0cebfd749474f3a4c64 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1623045at2.faa + md5sum: f2cfd241590c6d8377286d6135480937 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1661836at2.faa + md5sum: 586569546fb9861502468e3d9ba2775c + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1674344at2.faa + md5sum: 24c658bee14ad84b062d81ad96642eb8 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1698718at2.faa + md5sum: 0b8e26ddf5149bbd8805be7af125208d + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/1990650at2.faa + md5sum: 159320712ee01fb2ccb31a25df44eead + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/223233at2.faa + md5sum: 812629c0b06ac3d18661c2ca78de0c08 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/402899at2.faa + md5sum: f7ff4e1591342d30b77392a2e84b57d9 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/505485at2.faa + md5sum: 7b34a24fc49c540d46fcf96ff5129564 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/665824at2.faa + md5sum: 4cff2df64f6bcaff8bc19c234c8bcccd + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/776861at2.faa + md5sum: 613af7a3fea30ea2bece66f603b9284a + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/874197at2.faa + md5sum: a7cd1b13c9ef91c7ef4e31614166f197 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/932854at2.faa + md5sum: fe313ffd5efdb0fed887a04fba352552 + - path: output/busco/test-bacteria_odb10-busco/test1.contigs.fa/translated_proteins/95696at2.faa + md5sum: 4e1f30a2fea4dfbf9bb7fae2700622a0 + - path: output/busco/versions.yml diff --git a/modules/pfr/busco/busco/tests/tags.yml b/modules/pfr/busco/busco/tests/tags.yml new file mode 100644 index 00000000..7c4d2835 --- /dev/null +++ b/modules/pfr/busco/busco/tests/tags.yml @@ -0,0 +1,2 @@ +busco/busco: + - "modules/nf-core/busco/busco/**" diff --git a/modules/pfr/busco/generateplot/environment.yml b/modules/pfr/busco/generateplot/environment.yml new file mode 100644 index 00000000..1ca5babb --- /dev/null +++ b/modules/pfr/busco/generateplot/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "busco_generateplot" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::busco=5.7.1 diff --git a/modules/local/busco_plot.nf b/modules/pfr/busco/generateplot/main.nf similarity index 54% rename from modules/local/busco_plot.nf rename to modules/pfr/busco/generateplot/main.nf index e8f70189..6a4b3393 100644 --- a/modules/local/busco_plot.nf +++ b/modules/pfr/busco/generateplot/main.nf @@ -1,26 +1,30 @@ -process BUSCO_PLOT { - tag 'all summaries' +process BUSCO_GENERATEPLOT { label 'process_single' - conda "bioconda::busco=5.6.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/busco:5.6.1--pyhdfd78af_0': - 'biocontainers/busco:5.6.1--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/busco:5.7.1--pyhdfd78af_0': + 'biocontainers/busco:5.7.1--pyhdfd78af_0' }" input: - path "short_summary.*", stageAs: 'busco/*' + path short_summary_txt, stageAs: 'busco/*' output: - path 'busco/*.png' , emit: png + path '*.png' , emit: png path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: 'busco_figure' """ generate_plot.py \\ - -wd ./busco + $args \\ + -wd busco + + mv ./busco/busco_figure.png ${prefix}.png cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -29,10 +33,9 @@ process BUSCO_PLOT { """ stub: + def prefix = task.ext.prefix ?: 'busco_figure' """ - mkdir -p busco - - touch busco/summary_plot.png + touch ${prefix}.png cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/pfr/busco/generateplot/meta.yml b/modules/pfr/busco/generateplot/meta.yml new file mode 100644 index 00000000..796f32b4 --- /dev/null +++ b/modules/pfr/busco/generateplot/meta.yml @@ -0,0 +1,35 @@ +name: "busco_generateplot" +description: BUSCO plot generation tool +keywords: + - genome + - fasta + - annotation + - busco + - transcriptome + - quality control +tools: + - busco: + description: BUSCO provides measures for quantitative assessment of genome assembly, gene set, and transcriptome completeness based on evolutionarily informed expectations of gene content from near-universal single-copy orthologs selected from OrthoDB. + homepage: https://busco.ezlab.org/ + documentation: https://busco.ezlab.org/busco_userguide.html + tool_dev_url: https://gitlab.com/ezlab/busco + doi: "10.1007/978-1-4939-9173-0_14" + licence: ["MIT"] +input: + - short_summary_txt: + type: file + description: One or more short summary txt files from BUSCO + pattern: "short_summary.*.txt" +output: + - png: + type: file + description: A summary plot in png format + pattern: "*.png" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/modules/pfr/busco/generateplot/tests/main.nf.test b/modules/pfr/busco/generateplot/tests/main.nf.test new file mode 100644 index 00000000..853dc5ed --- /dev/null +++ b/modules/pfr/busco/generateplot/tests/main.nf.test @@ -0,0 +1,72 @@ +nextflow_process { + + name "Test Process BUSCO_GENERATEPLOT" + script "../main.nf" + process "BUSCO_GENERATEPLOT" + + tag "modules" + tag "modules_nfcore" + tag "busco" + tag "busco/busco" + tag "busco/generateplot" + + test("bacteroides_fragilis-genome_fna_gz") { + + setup { + run("BUSCO_BUSCO") { + script "../../busco" + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + input[1] = 'genome' + input[2] = 'bacteria_odb10' + input[3] = [] + input[4] = [] + """ + } + } + } + + when { + process { + """ + input[0] = BUSCO_BUSCO.out.short_summaries_txt.map { meta, summary -> summary } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.versions).match("versions") }, + { assert process.out.png != null } // PNGs with same data but different meta-data. Not sure how to get around this, yet! + ) + } + + } + + test("stub") { + + options "-stub" + + when { + process { + """ + input[0] = file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/pfr/busco/generateplot/tests/main.nf.test.snap b/modules/pfr/busco/generateplot/tests/main.nf.test.snap new file mode 100644 index 00000000..d9773ec6 --- /dev/null +++ b/modules/pfr/busco/generateplot/tests/main.nf.test.snap @@ -0,0 +1,37 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,726fa3440ea3a0b2e9d032d7e4d25e74" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T15:40:01.523993" + }, + "stub": { + "content": [ + { + "0": [ + "busco_figure.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "1": [ + "versions.yml:md5,726fa3440ea3a0b2e9d032d7e4d25e74" + ], + "png": [ + "busco_figure.png:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,726fa3440ea3a0b2e9d032d7e4d25e74" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-03T15:40:11.864276" + } +} \ No newline at end of file diff --git a/modules/pfr/busco/generateplot/tests/tags.yml b/modules/pfr/busco/generateplot/tests/tags.yml new file mode 100644 index 00000000..b6548a64 --- /dev/null +++ b/modules/pfr/busco/generateplot/tests/tags.yml @@ -0,0 +1,2 @@ +busco/generateplot: + - "modules/nf-core/busco/generateplot/**" diff --git a/modules/pfr/gffread/environment.yml b/modules/pfr/gffread/environment.yml new file mode 100644 index 00000000..c6df58ad --- /dev/null +++ b/modules/pfr/gffread/environment.yml @@ -0,0 +1,7 @@ +name: gffread +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gffread=0.12.7 diff --git a/modules/pfr/gffread/main.nf b/modules/pfr/gffread/main.nf new file mode 100644 index 00000000..da55cbab --- /dev/null +++ b/modules/pfr/gffread/main.nf @@ -0,0 +1,60 @@ +process GFFREAD { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gffread:0.12.7--hdcf5f25_4' : + 'biocontainers/gffread:0.12.7--hdcf5f25_4' }" + + input: + tuple val(meta), path(gff) + path fasta + + output: + tuple val(meta), path("*.gtf") , emit: gtf , optional: true + tuple val(meta), path("*.gff3") , emit: gffread_gff , optional: true + tuple val(meta), path("*.fasta"), emit: gffread_fasta , optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("-T") ? 'gtf' : ( ( ['-w', '-x', '-y' ].any { args.contains(it) } ) ? 'fasta' : 'gff3' ) + def fasta_arg = fasta ? "-g $fasta" : '' + def output_name = "${prefix}.${extension}" + def output = extension == "fasta" ? "$output_name" : "-o $output_name" + def args_sorted = args.replaceAll(/(.*)(-[wxy])(.*)/) { all, pre, param, post -> "$pre $post $param" }.trim() + // args_sorted = Move '-w', '-x', and '-y' to the end of the args string as gffread expects the file name after these parameters + if ( "$output_name" in [ "$gff", "$fasta" ] ) error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + gffread \\ + $gff \\ + $fasta_arg \\ + $args_sorted \\ + $output + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gffread: \$(gffread --version 2>&1) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("-T") ? 'gtf' : ( ( ['-w', '-x', '-y' ].any { args.contains(it) } ) ? 'fasta' : 'gff3' ) + def output_name = "${prefix}.${extension}" + if ( "$output_name" in [ "$gff", "$fasta" ] ) error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + touch $output_name + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gffread: \$(gffread --version 2>&1) + END_VERSIONS + """ +} diff --git a/modules/pfr/gffread/meta.yml b/modules/pfr/gffread/meta.yml new file mode 100644 index 00000000..c0602820 --- /dev/null +++ b/modules/pfr/gffread/meta.yml @@ -0,0 +1,55 @@ +name: gffread +description: Validate, filter, convert and perform various other operations on GFF files +keywords: + - gff + - conversion + - validation +tools: + - gffread: + description: GFF/GTF utility providing format conversions, region filtering, FASTA sequence extraction and more. + homepage: http://ccb.jhu.edu/software/stringtie/gff.shtml#gffread + documentation: http://ccb.jhu.edu/software/stringtie/gff.shtml#gffread + tool_dev_url: https://github.com/gpertea/gffread + doi: 10.12688/f1000research.23297.1 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing meta data + e.g. [ id:'test' ] + - gff: + type: file + description: A reference file in either the GFF3, GFF2 or GTF format. + pattern: "*.{gff, gtf}" + - fasta: + type: file + description: A multi-fasta file with the genomic sequences + pattern: "*.{fasta,fa,faa,fas,fsa}" +output: + - meta: + type: map + description: | + Groovy Map containing meta data + e.g. [ id:'test' ] + - gtf: + type: file + description: GTF file resulting from the conversion of the GFF input file if '-T' argument is present + pattern: "*.{gtf}" + - gffread_gff: + type: file + description: GFF3 file resulting from the conversion of the GFF input file if '-T' argument is absent + pattern: "*.gff3" + - gffread_fasta: + type: file + description: Fasta file produced when either of '-w', '-x', '-y' parameters is present + pattern: "*.fasta" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@edmundmiller" +maintainers: + - "@edmundmiller" + - "@gallvp" diff --git a/modules/pfr/gffread/tests/main.nf.test b/modules/pfr/gffread/tests/main.nf.test new file mode 100644 index 00000000..4cd13dcd --- /dev/null +++ b/modules/pfr/gffread/tests/main.nf.test @@ -0,0 +1,223 @@ +nextflow_process { + + name "Test Process GFFREAD" + script "../main.nf" + process "GFFREAD" + + tag "gffread" + tag "modules_nfcore" + tag "modules" + + test("sarscov2-gff3-gtf") { + + config "./nextflow.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gffread_gff == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-gtf-stub") { + + options '-stub' + config "./nextflow.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gffread_gff == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-gff3") { + + config "./nextflow-gff3.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-gff3-stub") { + + options '-stub' + config "./nextflow-gff3.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-fasta") { + + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_gff == [] } + ) + } + + } + + test("sarscov2-gff3-fasta-stub") { + + options '-stub' + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_gff == [] } + ) + } + + } + + test("sarscov2-gff3-fasta-fail-catch") { + + options '-stub' + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'genome'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert ! process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } + ) + } + + } + +} diff --git a/modules/pfr/gffread/tests/main.nf.test.snap b/modules/pfr/gffread/tests/main.nf.test.snap new file mode 100644 index 00000000..15262320 --- /dev/null +++ b/modules/pfr/gffread/tests/main.nf.test.snap @@ -0,0 +1,272 @@ +{ + "sarscov2-gff3-gtf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.gtf:md5,1ea0ae98d3388e0576407dc4a24ef428" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + + ], + "gtf": [ + [ + { + "id": "test" + }, + "test.gtf:md5,1ea0ae98d3388e0576407dc4a24ef428" + ] + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:48:56.496187" + }, + "sarscov2-gff3-gff3": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test" + }, + "test.gff3:md5,c4e5da6267c6bee5899a2c204ae1ad91" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + [ + { + "id": "test" + }, + "test.gff3:md5,c4e5da6267c6bee5899a2c204ae1ad91" + ] + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:49:00.892782" + }, + "sarscov2-gff3-gtf-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + + ], + "gtf": [ + [ + { + "id": "test" + }, + "test.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:26.975666" + }, + "sarscov2-gff3-fasta-stub": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gffread_gff": [ + + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:44.34792" + }, + "sarscov2-gff3-gff3-stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test" + }, + "test.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + [ + { + "id": "test" + }, + "test.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:35.221671" + }, + "sarscov2-gff3-fasta": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test" + }, + "test.fasta:md5,5f8108fb51739a0588ccf0a251de919a" + ] + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + [ + { + "id": "test" + }, + "test.fasta:md5,5f8108fb51739a0588ccf0a251de919a" + ] + ], + "gffread_gff": [ + + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:54:02.88143" + } +} \ No newline at end of file diff --git a/modules/pfr/gffread/tests/nextflow-fasta.config b/modules/pfr/gffread/tests/nextflow-fasta.config new file mode 100644 index 00000000..ac6cb148 --- /dev/null +++ b/modules/pfr/gffread/tests/nextflow-fasta.config @@ -0,0 +1,5 @@ +process { + withName: GFFREAD { + ext.args = '-w -S' + } +} diff --git a/modules/pfr/gffread/tests/nextflow-gff3.config b/modules/pfr/gffread/tests/nextflow-gff3.config new file mode 100644 index 00000000..afe0830e --- /dev/null +++ b/modules/pfr/gffread/tests/nextflow-gff3.config @@ -0,0 +1,5 @@ +process { + withName: GFFREAD { + ext.args = '' + } +} diff --git a/modules/pfr/gffread/tests/nextflow.config b/modules/pfr/gffread/tests/nextflow.config new file mode 100644 index 00000000..74b25094 --- /dev/null +++ b/modules/pfr/gffread/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GFFREAD { + ext.args = '-T' + } +} diff --git a/modules/pfr/gffread/tests/tags.yml b/modules/pfr/gffread/tests/tags.yml new file mode 100644 index 00000000..05576065 --- /dev/null +++ b/modules/pfr/gffread/tests/tags.yml @@ -0,0 +1,2 @@ +gffread: + - modules/nf-core/gffread/** diff --git a/nextflow_schema.json b/nextflow_schema.json index 28754b9f..44d71353 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -105,8 +105,8 @@ }, "busco_mode": { "type": "string", - "enum": ["geno", "tran", "prot", "genome", "transcriptome", "proteins"], - "description": "BUSCO mode: 'geno' for genome, 'tran' for transcriptome, 'prot' for proteins" + "enum": ["genome", "transcriptome", "proteins"], + "description": "BUSCO mode: 'genome', 'transcriptome', 'proteins'" }, "busco_lineage_datasets": { "type": "string", @@ -191,7 +191,7 @@ "properties": { "hic": { "type": "string", - "description": "HiC reads path provided as a SRA ID or as paired reads with pattern '*{1,2}.(fastq|fq).gz'", + "description": "HiC reads path provided as a SRA ID or as paired reads with pattern '*{1,2}.fastq.gz'", "pattern": "^SR\\w+$|^\\S+\\{1,2\\}\\.f(ast)?q\\.gz$" }, "hic_skip_fastp": { @@ -446,8 +446,7 @@ "type": "boolean", "fa_icon": "far fa-check-circle", "description": "Validation of parameters in lenient more.", - "hidden": true, - "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." + "hidden": true } } } diff --git a/subworkflows/local/fasta_busco_plot.nf b/subworkflows/local/fasta_busco_plot.nf deleted file mode 100644 index f6cc5dc7..00000000 --- a/subworkflows/local/fasta_busco_plot.nf +++ /dev/null @@ -1,37 +0,0 @@ -include { BUSCO } from '../../modules/local/busco' -include { BUSCO_PLOT } from '../../modules/local/busco_plot' - -workflow FASTA_BUSCO_PLOT { - take: - tuple_of_hap_file // Channel - lineage // val - mode // val - download_path // val; Use [] to use work directory. Useful on AWS - - main: - ch_versions = Channel.empty() - - // MODULE: BUSCO - BUSCO( - tuple_of_hap_file, - lineage, - mode, - download_path - ) - - ch_busco_summaries = BUSCO.out.summary - | collect - - ch_versions = ch_versions.mix(BUSCO.out.versions.first()) - - // MODULE: BUSCO_PLOT - BUSCO_PLOT ( ch_busco_summaries ) - - ch_busco_plot = BUSCO_PLOT.out.png - ch_versions = ch_versions.mix(BUSCO_PLOT.out.versions.first()) - - emit: - summary = BUSCO.out.summary - plot = ch_busco_plot - versions = ch_versions -} diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/main.nf b/subworkflows/pfr/fasta_gxf_busco_plot/main.nf new file mode 100644 index 00000000..555087d4 --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/main.nf @@ -0,0 +1,168 @@ +include { BUSCO_BUSCO as BUSCO_ASSEMBLY } from '../../../modules/pfr/busco/busco/main' +include { BUSCO_GENERATEPLOT as PLOT_ASSEMBLY } from '../../../modules/pfr/busco/generateplot/main' +include { GFFREAD as EXTRACT_PROTEINS } from '../../../modules/pfr/gffread/main' +include { BUSCO_BUSCO as BUSCO_ANNOTATION } from '../../../modules/pfr/busco/busco/main' +include { BUSCO_GENERATEPLOT as PLOT_ANNOTATION } from '../../../modules/pfr/busco/generateplot/main' + +workflow FASTA_GXF_BUSCO_PLOT { + + take: + ch_fasta // channel: [ val(meta), fasta ] + ch_gxf // channel: [ val(meta2), gxf ]; gxf ~ gff | gff3 | gtf + // + // Meta and meta2 should have same id + + val_mode // val(mode); BUSCO mode to apply to ch_fasta + // - genome, for genome assemblies (DNA) + // - transcriptome, for transcriptome assemblies (DNA) + // - proteins, for annotated gene sets (protein) + // + // If mode is genome, annotations from ch_gxf are evaluated with + // mode proteins, otherwise, evaluation of the annotations is skipped + // + val_lineages // [ val(lineage) ] + val_busco_lineages_path // val(path); Optional; Set to [] if not needed + val_busco_config // val(path); Optional; Set to [] if not needed + + main: + ch_versions = Channel.empty() + ch_db_path = val_busco_lineages_path + ? Channel.of(file(val_busco_lineages_path, checkIfExists: true)) + : Channel.of(null) + ch_config_path = val_busco_config + ? Channel.of(file(val_busco_config, checkIfExists: true)) + : Channel.of(null) + + // MODULE: BUSCO_BUSCO as BUSCO_ASSEMBLY + ch_busco_assembly_inputs = ch_fasta + | combine( + Channel.of(val_mode) + ) + | combine( + Channel.fromList(val_lineages) + ) + | map { meta, fasta, mode, lineage -> + [ + meta + [ mode:mode, lineage:lineage ], + fasta, mode, lineage + ] + } + | combine( + ch_db_path + ) + | combine( + ch_config_path + ) + + BUSCO_ASSEMBLY( + ch_busco_assembly_inputs.map { meta, fasta, mode, lineage, db, config -> [ meta, fasta ] }, + ch_busco_assembly_inputs.map { meta, fasta, mode, lineage, db, config -> mode }, + ch_busco_assembly_inputs.map { meta, fasta, mode, lineage, db, config -> lineage }, + ch_busco_assembly_inputs.map { meta, fasta, mode, lineage, db, config -> db ?: [] }, + ch_busco_assembly_inputs.map { meta, fasta, mode, lineage, db, config -> config ?: [] } + ) + + ch_assembly_batch_summary = BUSCO_ASSEMBLY.out.batch_summary + ch_assembly_short_summaries_txt = BUSCO_ASSEMBLY.out.short_summaries_txt + ch_assembly_short_summaries_json = BUSCO_ASSEMBLY.out.short_summaries_json + ch_versions = ch_versions.mix(BUSCO_ASSEMBLY.out.versions.first()) + + // MODULE: BUSCO_GENERATEPLOT as PLOT_ASSEMBLY + ch_assembly_plot_inputs = ch_assembly_short_summaries_txt + | map { meta, txt -> + def lineage_name = meta.lineage.split('_odb')[0] + [ + "short_summary.specific.${meta.lineage}.${meta.id}_${lineage_name}.txt", + txt.text + ] + } + | collectFile + | collect + + PLOT_ASSEMBLY( ch_assembly_plot_inputs ) + + ch_assembly_png = PLOT_ASSEMBLY.out.png + ch_versions = ch_versions.mix(PLOT_ASSEMBLY.out.versions) + + // MODULE: GFFREAD as EXTRACT_PROTEINS + ch_gffread_inputs = ! ( val_mode == 'geno' || val_mode == 'genome' ) + ? Channel.empty() + : ch_fasta + | map { meta, fasta -> [ meta.id, meta, fasta ] } + | join( + ch_gxf.map { meta2, gxf -> [ meta2.id, gxf ] } + // Join with matching annotation + // to allow one annotations per fasta + ) + | map { id, meta, fasta, gxf -> [ meta, gxf, fasta ] } + EXTRACT_PROTEINS( + ch_gffread_inputs.map { meta, gxf, fasta -> [ meta, gxf ] }, + ch_gffread_inputs.map { meta, gxf, fasta -> fasta } + ) + + ch_proteins = EXTRACT_PROTEINS.out.gffread_fasta + ch_versions = ch_versions.mix(EXTRACT_PROTEINS.out.versions.first()) + + // MODULE: BUSCO_BUSCO as BUSCO_ANNOTATION + ch_busco_annotation_inputs = ch_proteins + | combine( + Channel.of('proteins') + ) + | combine( + Channel.fromList(val_lineages) + ) + | map { meta, fasta, mode, lineage -> + [ + meta + [ mode:mode, lineage:lineage ], + fasta, mode, lineage + ] + } + | combine( + ch_db_path + ) + | combine( + ch_config_path + ) + + BUSCO_ANNOTATION( + ch_busco_annotation_inputs.map { meta, fasta, mode, lineage, db, config -> [ meta, fasta ] }, + ch_busco_annotation_inputs.map { meta, fasta, mode, lineage, db, config -> mode }, + ch_busco_annotation_inputs.map { meta, fasta, mode, lineage, db, config -> lineage }, + ch_busco_annotation_inputs.map { meta, fasta, mode, lineage, db, config -> db ?: [] }, + ch_busco_annotation_inputs.map { meta, fasta, mode, lineage, db, config -> config ?: [] } + ) + + ch_annotation_batch_summary = BUSCO_ANNOTATION.out.batch_summary + ch_annotation_short_summaries_txt = BUSCO_ANNOTATION.out.short_summaries_txt + ch_annotation_short_summaries_json = BUSCO_ANNOTATION.out.short_summaries_json + ch_versions = ch_versions.mix(BUSCO_ANNOTATION.out.versions.first()) + + // MODULE: BUSCO_GENERATEPLOT as PLOT_ANNOTATION + ch_annotation_plot_inputs = ch_annotation_short_summaries_txt + | map { meta, txt -> + def lineage_name = meta.lineage.split('_odb')[0] + [ + "short_summary.specific.${meta.lineage}.${meta.id}_${lineage_name}.txt", + txt.text + ] + } + | collectFile + | collect + + PLOT_ANNOTATION( ch_annotation_plot_inputs ) + + ch_annotation_png = PLOT_ANNOTATION.out.png + ch_versions = ch_versions.mix(PLOT_ANNOTATION.out.versions) + + + emit: + assembly_batch_summary = ch_assembly_batch_summary // channel: [ meta3, txt ]; meta3 ~ meta + [ val(mode), val(lineage) ] + assembly_short_summaries_txt = ch_assembly_short_summaries_txt // channel: [ meta3, txt ] + assembly_short_summaries_json = ch_assembly_short_summaries_json // channel: [ meta3, json ] + assembly_png = ch_assembly_png // channel: [ png ] + annotation_batch_summary = ch_annotation_batch_summary // channel: [ meta3, txt ] + annotation_short_summaries_txt = ch_annotation_short_summaries_txt // channel: [ meta3, txt ] + annotation_short_summaries_json = ch_annotation_short_summaries_json // channel: [ meta3, json ] + annotation_png = ch_annotation_png // channel: [ png ] + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/meta.yml b/subworkflows/pfr/fasta_gxf_busco_plot/meta.yml new file mode 100644 index 00000000..9226357e --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/meta.yml @@ -0,0 +1,106 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "fasta_gxf_busco_plot" +description: | + Runs BUSCO for input assemblies and their annotations in GFF/GFF3/GTF format, and creates summary plots using `BUSCO/generate_plot.py` script +keywords: + - genome + - annotation + - busco + - plot +components: + - busco/busco + - busco/generateplot + - gffread +input: + - ch_fasta: + type: file + description: | + Channel containing FASTA files + Structure:[ val(meta), fasta ] + pattern: "*.{fa,faa,fsa,fas,fasta}(.gz)?" + - ch_gxf: + type: file + description: | + Channel containing GFF/GFF3/GTF files + Structure:[ val(meta2), gxf ] + pattern: "*.{gff,gff3,gtf}" + - val_mode: + type: string + description: | + String containing BUSCO mode to apply to ch_fasta files + Structure:val(mode) + - val_lineages: + type: array + description: | + Array of strings representing BUSCO lineage datasets + Structure:[ val(lineage) ] + - val_busco_lineages_path: + type: path + description: | + Path where BUSCO lineages are located or downloaded if not already there. If this input is `[]`, + BUSCO will download the datasets in the task work directory + Structure:val(busco_lineages_path) + - val_busco_config: + type: path + description: | + Path to BUSCO config. It is optional and can be set to `[]` + Structure:val(busco_config) +output: + - assembly_batch_summary: + type: file + description: | + Channel containing BUSCO batch summaries corresponding to fasta files + Structure: [ val(meta), txt ] + pattern: "*.txt" + - assembly_short_summaries_txt: + type: file + description: | + Channel containing BUSCO short summaries corresponding to fasta files + Structure: [ val(meta), txt ] + pattern: "*.txt" + - assembly_short_summaries_json: + type: file + description: | + Channel containing BUSCO short summaries corresponding to fasta files + Structure: [ val(meta), json ] + pattern: "*.json" + - assembly_png: + type: file + description: | + Channel containing summary plot for assemblies + Structure: png + pattern: "*.png" + - annotation_batch_summary: + type: file + description: | + Channel containing BUSCO batch summaries corresponding to annotation files + Structure: [ val(meta), txt ] + pattern: "*.txt" + - annotation_short_summaries_txt: + type: file + description: | + Channel containing BUSCO short summaries corresponding to annotation files + Structure: [ val(meta), txt ] + pattern: "*.txt" + - annotation_short_summaries_json: + type: file + description: | + Channel containing BUSCO short summaries corresponding to annotation files + Structure: [ val(meta), json ] + pattern: "*.json" + - annotation_png: + type: file + description: | + Channel containing summary plot for annotations + Structure: png + pattern: "*.png" + - versions: + type: file + description: | + File containing software versions + Structure: [ path(versions.yml) ] + pattern: "versions.yml" +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test b/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test new file mode 100644 index 00000000..8c8ac7b0 --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test @@ -0,0 +1,104 @@ +nextflow_workflow { + + name "Test Subworkflow FASTA_GXF_BUSCO_PLOT" + script "../main.nf" + workflow "FASTA_GXF_BUSCO_PLOT" + config './nextflow.config' + + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/fasta_gxf_busco_plot" + tag "busco" + tag "busco/busco" + tag "busco/generateplot" + tag "gffread" + + test("candidatus_portiera_aleyrodidarum - bacteroides_fragilis - genome") { + + when { + workflow { + """ + input[0] = Channel.of( + [ + [ id:'test' ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true) + ], + [ + [ id:'test2' ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + ) + input[1] = Channel.of( + [ + [ id:'test' ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test1_gff'], checkIfExists: true) + ] + ) + input[2] = 'genome' + input[3] = [ 'bacteria_odb10', 'archaea_odb10' ] + input[4] = [] + input[5] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + workflow.out.assembly_batch_summary, + workflow.out.annotation_batch_summary, + workflow.out.versions, + ).match() + }, + + { assert workflow.out.assembly_png != null }, + { assert workflow.out.annotation_png != null }, + + { assert workflow.out.assembly_short_summaries_json != null }, + { assert workflow.out.assembly_short_summaries_txt != null }, + { assert workflow.out.annotation_short_summaries_json != null }, + { assert workflow.out.annotation_short_summaries_txt != null } + ) + } + } + + test("candidatus_portiera_aleyrodidarum - bacteroides_fragilis - genome - stub") { + + options '-stub' + + when { + workflow { + """ + input[0] = Channel.of( + [ + [ id:'test' ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true) + ], + [ + [ id:'test2' ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + ) + input[1] = Channel.of( + [ + [ id:'test' ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test1_gff'], checkIfExists: true) + ] + ) + input[2] = 'genome' + input[3] = [ 'bacteria_odb10', 'archaea_odb10' ] + input[4] = [] + input[5] = [] + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot(workflow.out).match()} + ) + } + } +} diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test.snap b/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test.snap new file mode 100644 index 00000000..118ad7ed --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/tests/main.nf.test.snap @@ -0,0 +1,231 @@ +{ + "candidatus_portiera_aleyrodidarum - bacteroides_fragilis - genome - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test2-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test2-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test", + "mode": "proteins", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test", + "mode": "proteins", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + "versions.yml:md5,36b11c442943567e471af0abd474a10b", + "versions.yml:md5,9435355f913e283f60b4fb7ef77dd52a", + "versions.yml:md5,e9d65e2f2f13175e99c5b7f4ae1013b9" + ], + "annotation_batch_summary": [ + [ + { + "id": "test", + "mode": "proteins", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test", + "mode": "proteins", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "annotation_png": [ + + ], + "annotation_short_summaries_json": [ + + ], + "annotation_short_summaries_txt": [ + + ], + "assembly_batch_summary": [ + [ + { + "id": "test", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test2-archaea_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test2-bacteria_odb10-busco.batch_summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "assembly_png": [ + + ], + "assembly_short_summaries_json": [ + + ], + "assembly_short_summaries_txt": [ + + ], + "versions": [ + "versions.yml:md5,36b11c442943567e471af0abd474a10b", + "versions.yml:md5,9435355f913e283f60b4fb7ef77dd52a", + "versions.yml:md5,e9d65e2f2f13175e99c5b7f4ae1013b9" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-13T16:39:45.021811" + }, + "candidatus_portiera_aleyrodidarum - bacteroides_fragilis - genome": { + "content": [ + [ + [ + { + "id": "test", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,1397d74518a776ad75b16a843bc5b6c1" + ], + [ + { + "id": "test", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,a1186bc25448ac1949bf7790810f7161" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "archaea_odb10" + }, + "test2-archaea_odb10-busco.batch_summary.txt:md5,946582b353a8dba7d6452a71856eca06" + ], + [ + { + "id": "test2", + "mode": "genome", + "lineage": "bacteria_odb10" + }, + "test2-bacteria_odb10-busco.batch_summary.txt:md5,21b3fb771cf36be917cc451540d999be" + ] + ], + [ + [ + { + "id": "test", + "mode": "proteins", + "lineage": "archaea_odb10" + }, + "test-archaea_odb10-busco.batch_summary.txt:md5,95172bd5b1a30e632fc79084ea0ca585" + ], + [ + { + "id": "test", + "mode": "proteins", + "lineage": "bacteria_odb10" + }, + "test-bacteria_odb10-busco.batch_summary.txt:md5,995127c0caecb36205dbf21aa2f9f8a8" + ] + ], + [ + "versions.yml:md5,05d8022e3afb0d5642ed17147b991730", + "versions.yml:md5,36b11c442943567e471af0abd474a10b", + "versions.yml:md5,53987b35fc275297efdaf525937fdca3", + "versions.yml:md5,9435355f913e283f60b4fb7ef77dd52a", + "versions.yml:md5,e9d65e2f2f13175e99c5b7f4ae1013b9" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-13T16:39:04.376704" + } +} \ No newline at end of file diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/tests/nextflow.config b/subworkflows/pfr/fasta_gxf_busco_plot/tests/nextflow.config new file mode 100644 index 00000000..ddbc644d --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: EXTRACT_PROTEINS { + ext.args = '-y' + } +} diff --git a/subworkflows/pfr/fasta_gxf_busco_plot/tests/tags.yml b/subworkflows/pfr/fasta_gxf_busco_plot/tests/tags.yml new file mode 100644 index 00000000..b8786a59 --- /dev/null +++ b/subworkflows/pfr/fasta_gxf_busco_plot/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/fasta_gxf_busco_plot: + - subworkflows/pfr/fasta_gxf_busco_plot/** diff --git a/tests/stub/stub.config b/tests/stub/stub.config index 0eb35b5c..7e300f59 100644 --- a/tests/stub/stub.config +++ b/tests/stub/stub.config @@ -12,7 +12,7 @@ params { ncbi_fcs_gx_db_path = 'tests/stub/gxdb/test' busco_skip = false - busco_mode = 'geno' + busco_mode = 'genome' busco_lineage_datasets = 'fungi_odb10 hypocreales_odb10' tidk_skip = false diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index eb68d088..2d8dd5b0 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -15,7 +15,7 @@ include { GFF3_GT_GFF3_GFF3VALIDATOR_STAT } from '../subworkflows/pfr/gff3_gt_ include { NCBI_FCS_ADAPTOR } from '../modules/local/ncbi_fcs_adaptor' include { NCBI_FCS_GX } from '../subworkflows/local/ncbi_fcs_gx' include { ASSEMBLATHON_STATS } from '../modules/local/assemblathon_stats' -include { FASTA_BUSCO_PLOT } from '../subworkflows/local/fasta_busco_plot' +include { FASTA_GXF_BUSCO_PLOT } from '../subworkflows/pfr/fasta_gxf_busco_plot/main' include { FASTA_LTRRETRIEVER_LAI } from '../subworkflows/pfr/fasta_ltrretriever_lai/main' include { FASTA_KRAKEN2 } from '../subworkflows/local/fasta_kraken2' include { FQ2HIC } from '../subworkflows/local/fq2hic' @@ -125,7 +125,7 @@ workflow ASSEMBLYQC { | map { meta, error_log -> log.warn("FASTA validation failed for ${meta.id}\n${error_log.text}") - [ meta, error_log ] + error_log } ch_versions = ch_versions.mix(FASTAVALIDATOR.out.versions.first()) @@ -136,11 +136,12 @@ workflow ASSEMBLYQC { ch_valid_target_assembly ) + ch_valid_gff3 = GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.valid_gff3 ch_invalid_gff3_log = GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.log_for_invalid_gff3 | map { meta, error_log -> log.warn("GFF3 validation failed for ${meta.id}\n${error_log.text}") - [ meta, error_log ] + error_log } ch_gt_stats = GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.gff3_stats @@ -267,28 +268,53 @@ workflow ASSEMBLYQC { ch_assemblathon_stats = ASSEMBLATHON_STATS.out.stats ch_versions = ch_versions.mix(ASSEMBLATHON_STATS.out.versions.first()) - // SUBWORKFLOW: FASTA_BUSCO_PLOT - ch_busco_inputs = params.busco_skip + // SUBWORKFLOW: FASTA_GXF_BUSCO_PLOT + ch_busco_input_assembly = params.busco_skip ? Channel.empty() : ch_clean_assembly - | combine( - Channel.of(params.busco_lineage_datasets) - | map { it.split(' ') } - | flatten - ) - | map { tag, fa, lineage -> - [ tag, file(fa, checkIfExists: true), lineage ] - } - FASTA_BUSCO_PLOT( - ch_busco_inputs.map { tag, fa, lineage -> [ tag, fa ] }, - ch_busco_inputs.map { tag, fa, lineage -> lineage }, - params.busco_mode ?: [], - params.busco_download_path ?: [] + | map { tag, fasta -> [ [ id: tag ], fasta ] } + + FASTA_GXF_BUSCO_PLOT( + ch_busco_input_assembly, + ch_valid_gff3, + params.busco_mode, + params.busco_lineage_datasets?.tokenize(' '), + params.busco_download_path, + [] // val_busco_config ) - ch_busco_summary = FASTA_BUSCO_PLOT.out.summary - ch_busco_plot = FASTA_BUSCO_PLOT.out.plot - ch_versions = ch_versions.mix(FASTA_BUSCO_PLOT.out.versions) + ch_busco_summary = FASTA_GXF_BUSCO_PLOT.out.assembly_short_summaries_txt + | map { meta, txt -> + def lineage_name = meta.lineage.split('_odb')[0] + [ + "short_summary.specific.${meta.lineage}.${meta.id}_${lineage_name}.txt", + txt.text + ] + } + | collectFile + ch_busco_plot = FASTA_GXF_BUSCO_PLOT.out.assembly_png + + ch_busco_outputs = ch_busco_summary + | mix(ch_busco_plot) + | collect + + ch_busco_gff_summary = FASTA_GXF_BUSCO_PLOT.out.annotation_short_summaries_txt + | map { meta, txt -> + def lineage_name = meta.lineage.split('_odb')[0] + [ + "short_summary.specific.${meta.lineage}.${meta.id}_${lineage_name}.txt", + txt.text + ] + } + | collectFile + + ch_busco_gff_plot = FASTA_GXF_BUSCO_PLOT.out.annotation_png + + ch_busco_gff_outputs = ch_busco_gff_summary + | mix(ch_busco_gff_plot) + | collect + + ch_versions = ch_versions.mix(FASTA_GXF_BUSCO_PLOT.out.versions) // SUBWORKFLOW: FASTA_EXPLORE_SEARCH_PLOT_TIDK ch_tidk_inputs = params.tidk_skip @@ -500,13 +526,14 @@ workflow ASSEMBLYQC { // MODULE: CREATEREPORT CREATEREPORT( - ch_invalid_assembly_log .map { meta, file -> file }.collect().ifEmpty([]), - ch_invalid_gff3_log .map { meta, file -> file }.collect().ifEmpty([]), + ch_invalid_assembly_log .collect().ifEmpty([]), + ch_invalid_gff3_log .collect().ifEmpty([]), ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), ch_assemblathon_stats .collect().ifEmpty([]), ch_gt_stats .collect().ifEmpty([]), - ch_busco_summary .mix(ch_busco_plot).collect().ifEmpty([]), + ch_busco_outputs .collect().ifEmpty([]), + ch_busco_gff_outputs .collect().ifEmpty([]), ch_tidk_outputs .collect().ifEmpty([]), ch_lai_outputs .collect().ifEmpty([]), ch_kraken2_plot .collect().ifEmpty([]), From 32efaaf21b619f735872a7bdc47dcd534c568288 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Fri, 17 May 2024 13:18:53 +1200 Subject: [PATCH 41/76] Replaced local NCBI_FCS_ADAPTOR with nf-core module --- .github/workflows/ci.yml | 23 +++-- CHANGELOG.md | 1 + README.md | 1 + .../parsers/ncbi_fcs_adaptor_parser.py | 4 +- .../ncbi_fcs_adaptor/ncbi_fcs_adaptor.html | 2 +- conf/modules.config | 6 +- conf/test.config | 2 +- modules.json | 5 ++ modules/local/generatekaryotype.nf | 14 +++ modules/local/ncbi_fcs_adaptor.nf | 58 ------------- .../nf-core/fcs/fcsadaptor/environment.yml | 7 ++ modules/nf-core/fcs/fcsadaptor/main.nf | 87 +++++++++++++++++++ modules/nf-core/fcs/fcsadaptor/meta.yml | 64 ++++++++++++++ .../nf-core/fcs/fcsadaptor/tests/main.nf.test | 73 ++++++++++++++++ .../fcs/fcsadaptor/tests/main.nf.test.snap | 57 ++++++++++++ modules/nf-core/fcs/fcsadaptor/tests/tags.yml | 2 + tests/minimal/params.json | 8 ++ tests/stub/params.json | 27 ++++++ tests/stub/stub.config | 37 -------- workflows/assemblyqc.nf | 35 ++++---- 20 files changed, 385 insertions(+), 128 deletions(-) delete mode 100644 modules/local/ncbi_fcs_adaptor.nf create mode 100644 modules/nf-core/fcs/fcsadaptor/environment.yml create mode 100644 modules/nf-core/fcs/fcsadaptor/main.nf create mode 100644 modules/nf-core/fcs/fcsadaptor/meta.yml create mode 100644 modules/nf-core/fcs/fcsadaptor/tests/main.nf.test create mode 100644 modules/nf-core/fcs/fcsadaptor/tests/main.nf.test.snap create mode 100644 modules/nf-core/fcs/fcsadaptor/tests/tags.yml create mode 100644 tests/minimal/params.json create mode 100644 tests/stub/params.json delete mode 100644 tests/stub/stub.config diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 803c1acb..89f347df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,10 +25,14 @@ jobs: matrix: NXF_VER: - "23.04.0" - RUN_CONFIG: - - "-profile test,docker" - - "-profile docker -c ./tests/stub/stub.config -stub" - - "-profile docker -params-file ./tests/invalid/params.json" + TEST_PARAMS: + - minimal + - invalid + - stub + include: + - OPTION_STUB: "" + - OPTION_STUB: "-stub" + TEST_PARAMS: stub steps: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 @@ -41,9 +45,12 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - name: Disk space cleanup - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - name: Run pipeline with test data run: | - nextflow run ${GITHUB_WORKSPACE} --outdir ./results ${{ matrix.RUN_CONFIG }} + nextflow run \ + ${GITHUB_WORKSPACE} \ + --outdir ./results \ + -profile docker \ + -params-file \ + ./tests/${{ matrix.TEST_PARAMS }}/params.json \ + ${{ matrix.OPTION_STUB }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 29047314..0488e6be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 13. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) 14. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` 15. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) +16. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module ### `Fixed` diff --git a/README.md b/README.md index febc6ddc..f30501ce 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ The pipeline uses nf-core modules contributed by following authors. + ## Contributions and Support diff --git a/bin/report_modules/parsers/ncbi_fcs_adaptor_parser.py b/bin/report_modules/parsers/ncbi_fcs_adaptor_parser.py index f896577f..8451d767 100644 --- a/bin/report_modules/parsers/ncbi_fcs_adaptor_parser.py +++ b/bin/report_modules/parsers/ncbi_fcs_adaptor_parser.py @@ -14,7 +14,7 @@ def parse_ncbi_fcs_adaptor_folder(folder_name="ncbi_fcs_adaptor_reports"): if not os.path.exists(reports_folder_path): return {} - list_of_report_files = reports_folder_path.glob("*.tsv") + list_of_report_files = reports_folder_path.glob("*.txt") data = {"NCBI_FCS_ADAPTOR": []} @@ -22,7 +22,7 @@ def parse_ncbi_fcs_adaptor_folder(folder_name="ncbi_fcs_adaptor_reports"): report_table = pd.read_csv(report_path, sep="\t") file_tokens = re.findall( - r"([\w]+)_fcs_adaptor_report.tsv", + r"([\w]+)\.fcs_adaptor_report.txt", os.path.basename(str(report_path)), )[0] diff --git a/bin/report_modules/templates/ncbi_fcs_adaptor/ncbi_fcs_adaptor.html b/bin/report_modules/templates/ncbi_fcs_adaptor/ncbi_fcs_adaptor.html index e62678c9..4c95333f 100644 --- a/bin/report_modules/templates/ncbi_fcs_adaptor/ncbi_fcs_adaptor.html +++ b/bin/report_modules/templates/ncbi_fcs_adaptor/ncbi_fcs_adaptor.html @@ -5,7 +5,7 @@

    https://github.com/ncbi/fcs

    -

    Version: {{ all_stats_dicts['VERSIONS']['NCBI_FCS_ADAPTOR']['av_screen_x'] }}

    +

    Version: {{ all_stats_dicts['VERSIONS']['FCS_FCSADAPTOR']['FCS-adaptor'] }}

    {% include 'ncbi_fcs_adaptor/dropdown.html' %} {% include 'ncbi_fcs_adaptor/report_contents.html' %} diff --git a/conf/modules.config b/conf/modules.config index 028955ff..e63a0cdb 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -42,11 +42,13 @@ process { ] } - withName: NCBI_FCS_ADAPTOR { + withName: FCS_FCSADAPTOR { + ext.args = params.ncbi_fcs_adaptor_empire ? "--${params.ncbi_fcs_adaptor_empire}" : '--prok' + publishDir = [ path: { "${params.outdir}/ncbi_fcs_adaptor" }, mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals("versions.yml") ? null : filename } + pattern: '*.fcs_adaptor_report.txt' ] } diff --git a/conf/test.config b/conf/test.config index 3ba5bef2..b48e728f 100644 --- a/conf/test.config +++ b/conf/test.config @@ -14,7 +14,7 @@ params { config_profile_name = 'Test profile' config_profile_description = 'Minimal test dataset to check pipeline function' - input = 'https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/assemblysheet.csv' + input = 'https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/assemblysheetv2.csv' // Limit resources so that this can run on GitHub Actions max_cpus = 2 diff --git a/modules.json b/modules.json index 0fff3420..d2896927 100644 --- a/modules.json +++ b/modules.json @@ -145,6 +145,11 @@ "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["fastq_trim_fastp_fastqc"] }, + "fcs/fcsadaptor": { + "branch": "master", + "git_sha": "28adf00792d7dfd1b9ecbde9d7a8f22ec78ffcbb", + "installed_by": ["modules"] + }, "gunzip": { "branch": "master", "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", diff --git a/modules/local/generatekaryotype.nf b/modules/local/generatekaryotype.nf index b5ed48fa..e3771fe6 100644 --- a/modules/local/generatekaryotype.nf +++ b/modules/local/generatekaryotype.nf @@ -70,4 +70,18 @@ process GENERATEKARYOTYPE { rm "\$tmp_file" """ + + stub: + """ + touch "${target_on_ref}.${seq_tag}.karyotype" + touch karyotype_ref.tsv + touch karyotype_target.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + awk: \$(awk -W version | sed -n 's/mawk //p') + grep: \$(grep --version | sed -n '/grep (GNU grep) /s/grep //p') + sed: \$(sed --version | sed -n 's/^sed //p') + END_VERSIONS + """ } diff --git a/modules/local/ncbi_fcs_adaptor.nf b/modules/local/ncbi_fcs_adaptor.nf deleted file mode 100644 index 3db1b3ba..00000000 --- a/modules/local/ncbi_fcs_adaptor.nf +++ /dev/null @@ -1,58 +0,0 @@ -process NCBI_FCS_ADAPTOR { - tag "${asm_tag}" - label 'process_single' - - // Warning: manually update version in script and stub - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/releases/0.5.0/fcs-adaptor.sif': - 'docker.io/ncbi/fcs-adaptor:0.5.0' }" - - input: - tuple val(asm_tag), path(fasta_file) - val empire - - output: - tuple val(asm_tag), path("${asm_tag}_fcs_adaptor_report.tsv") , emit: report - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "NCBI_FCS_ADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def VERSION = 0.5 - """ - mkdir "${asm_tag}_outputdir" - - av_screen_x \\ - -o "${asm_tag}_outputdir" \\ - --${empire} \\ - "${fasta_file}" - - mv "${asm_tag}_outputdir/fcs_adaptor_report.txt" \\ - "./${asm_tag}_fcs_adaptor_report.tsv" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - av_screen_x: $VERSION - END_VERSIONS - """ - - stub: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "NCBI_FCS_ADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def VERSION = 0.5 - """ - touch "${asm_tag}_fcs_adaptor_report.tsv" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - av_screen_x: $VERSION - END_VERSIONS - """ -} diff --git a/modules/nf-core/fcs/fcsadaptor/environment.yml b/modules/nf-core/fcs/fcsadaptor/environment.yml new file mode 100644 index 00000000..b11cd415 --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/environment.yml @@ -0,0 +1,7 @@ +name: fcs_fcsadaptor +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::false_flag # False flag to pass nf-core/lint diff --git a/modules/nf-core/fcs/fcsadaptor/main.nf b/modules/nf-core/fcs/fcsadaptor/main.nf new file mode 100644 index 00000000..5772afec --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/main.nf @@ -0,0 +1,87 @@ +process FCS_FCSADAPTOR { + tag "$meta.id" + label 'process_low' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://ftp.ncbi.nlm.nih.gov/genomes/TOOLS/FCS/releases/0.5.0/fcs-adaptor.sif': + 'docker.io/ncbi/fcs-adaptor:0.5.0' }" + + input: + tuple val(meta), path(assembly) + + output: + tuple val(meta), path("*.cleaned_sequences.fa.gz"), emit: cleaned_assembly, optional: true + tuple val(meta), path("*.fcs_adaptor_report.txt") , emit: adaptor_report + tuple val(meta), path("*.fcs_adaptor.log") , emit: log + tuple val(meta), path("*.pipeline_args.yaml") , emit: pipeline_args + tuple val(meta), path("*.skipped_trims.jsonl") , emit: skipped_trims + path "versions.yml" , emit: versions + + // Downstream handling of optional cleaned_assembly + // + // ch_cleaned_assembly = FCS_FCSADAPTOR ( ch_input_assembly ).cleaned_assembly + + // ch_input_assembly + // | join (ch_cleaned_assembly, by:0, remainder:true ) + // | map { meta, input, cleaned -> + // [ meta, cleaned ?: input ] + // } + // | set { ch_downstream_channel } + + // FCS_FCSGX ( ch_downstream_channel ) + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "FCS_FCSADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '--prok' // --prok || --euk + def prefix = task.ext.prefix ?: "${meta.id}" + def FCSADAPTOR_VERSION = '0.5.0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + av_screen_x \\ + -o output/ \\ + $args \\ + $assembly + + # compress and/or rename files with prefix + num_contamination_lines=\$(cat "output/fcs_adaptor_report.txt" | wc -l) + if [[ \$num_contamination_lines -gt 1 ]]; then + find output/cleaned_sequences/ -type f ! -name "*.gz" -exec gzip {} \\; + cp output/cleaned_sequences/* "${prefix}.cleaned_sequences.fa.gz" + fi + cp "output/fcs_adaptor_report.txt" "${prefix}.fcs_adaptor_report.txt" + cp "output/fcs_adaptor.log" "${prefix}.fcs_adaptor.log" + cp "output/pipeline_args.yaml" "${prefix}.pipeline_args.yaml" + cp "output/skipped_trims.jsonl" "${prefix}.skipped_trims.jsonl" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + FCS-adaptor: $FCSADAPTOR_VERSION + END_VERSIONS + """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "FCS_FCSADAPTOR module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def prefix = task.ext.prefix ?: "${meta.id}" + def FCSADAPTOR_VERSION = '0.5.0' + + """ + touch ${prefix}.fcs_adaptor_report.txt + touch ${prefix}.fcs_adaptor.log + touch ${prefix}.pipeline_args.yaml + touch ${prefix}.skipped_trims.jsonl + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + FCS-adaptor: $FCSADAPTOR_VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/fcs/fcsadaptor/meta.yml b/modules/nf-core/fcs/fcsadaptor/meta.yml new file mode 100644 index 00000000..54fca1bb --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/meta.yml @@ -0,0 +1,64 @@ +name: "fcs_fcsadaptor" +description: Run NCBI's FCS adaptor on assembled genomes +keywords: + - assembly + - genomics + - quality control + - contamination + - NCBI +tools: + - "fcs": + description: | + The Foreign Contamination Screening (FCS) tool rapidly detects contaminants from foreign + organisms in genome assemblies to prepare your data for submission. Therefore, the + submission process to NCBI is faster and fewer contaminated genomes are submitted. + This reduces errors in analyses and conclusions, not just for the original data submitter + but for all subsequent users of the assembly. + homepage: "https://www.ncbi.nlm.nih.gov/data-hub/cgr/data-quality-tools/" + documentation: "https://github.com/ncbi/fcs/wiki/FCS-adaptor" + tool_dev_url: "https://github.com/ncbi/fcs" + licence: ["United States Government Work"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - assembly: + type: file + description: assembly fasta file +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - cleaned_assembly: + type: file + description: Cleaned assembly in fasta format + pattern: "*.{cleaned_sequences.fa.gz}" + - adaptor_report: + type: file + description: Report of identified adaptors + pattern: "*.{fcs_adaptor_report.txt}" + - log: + type: file + description: Log file + pattern: "*.{fcs_adaptor.log}" + - pipeline_args: + type: file + description: Run arguments + pattern: "*.{pipeline_args.yaml}" + - skipped_trims: + type: file + description: Skipped trim information + pattern: "*.{skipped_trims.jsonl}" +authors: + - "@d4straub" +maintainers: + - "@d4straub" + - "@gallvp" diff --git a/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test b/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test new file mode 100644 index 00000000..9d647490 --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test @@ -0,0 +1,73 @@ +nextflow_process { + + name "Test Process FCS_FCSADAPTOR" + script "../main.nf" + process "FCS_FCSADAPTOR" + + tag "modules" + tag "modules_nfcore" + tag "fcs" + tag "fcs/fcsadaptor" + + test("bacteroides_fragilis-genome_fna_gz") { + + when { + process { + """ + input[0] = [ + [ id: 'test' ], + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.cleaned_assembly == [] }, + { assert process.out.skipped_trims != null }, // md5sum for empty file not allowed in nf-core/tools 2.14.0 + { assert snapshot( + process.out.adaptor_report, + process.out.pipeline_args, + process.out.versions, + ).match() + }, + { assert path(process.out.log[0][1]).text.contains('[step all_cleaned_fasta] completed success') } + ) + } + + } + test("bacteroides_fragilis-genome_fna_gz-stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id: 'test' ], + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.cleaned_assembly == [] }, + { assert snapshot( + [ + process.out.adaptor_report[0][1], + process.out.log[0][1], + process.out.pipeline_args[0][1], + process.out.skipped_trims[0][1] + ].collect { file(it).name } + ).match() + }, // md5sum for empty file not allowed in nf-core/tools 2.14.0 + { assert snapshot(process.out.versions).match("stub_versions") } + ) + } + } +} diff --git a/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test.snap b/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test.snap new file mode 100644 index 00000000..ddc9ca06 --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/tests/main.nf.test.snap @@ -0,0 +1,57 @@ +{ + "bacteroides_fragilis-genome_fna_gz": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.fcs_adaptor_report.txt:md5,27375be4671e01d2d2674ddd1d44414a" + ] + ], + [ + [ + { + "id": "test" + }, + "test.pipeline_args.yaml:md5,a0cfbaa79a18acf6dc6b67158f448720" + ] + ], + [ + "versions.yml:md5,5cd44cb2972a42e74144373ce3307c7f" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T11:54:31.333434" + }, + "bacteroides_fragilis-genome_fna_gz-stub": { + "content": [ + [ + "test.fcs_adaptor_report.txt", + "test.fcs_adaptor.log", + "test.pipeline_args.yaml", + "test.skipped_trims.jsonl" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T11:51:58.777173" + }, + "stub_versions": { + "content": [ + [ + "versions.yml:md5,5cd44cb2972a42e74144373ce3307c7f" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-09T11:45:31.030126" + } +} \ No newline at end of file diff --git a/modules/nf-core/fcs/fcsadaptor/tests/tags.yml b/modules/nf-core/fcs/fcsadaptor/tests/tags.yml new file mode 100644 index 00000000..0e774e58 --- /dev/null +++ b/modules/nf-core/fcs/fcsadaptor/tests/tags.yml @@ -0,0 +1,2 @@ +fcs/fcsadaptor: + - "modules/nf-core/fcs/fcsadaptor/**" diff --git a/tests/minimal/params.json b/tests/minimal/params.json new file mode 100644 index 00000000..c5683622 --- /dev/null +++ b/tests/minimal/params.json @@ -0,0 +1,8 @@ +{ + "config_profile_name": "Test profile", + "config_profile_description": "Minimal test dataset to check pipeline function", + "input": "https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/assets/assemblysheetv2.csv", + "max_cpus": 2, + "max_memory": "6.GB", + "max_time": "6.h" +} diff --git a/tests/stub/params.json b/tests/stub/params.json new file mode 100644 index 00000000..4f11914c --- /dev/null +++ b/tests/stub/params.json @@ -0,0 +1,27 @@ +{ + "config_profile_name": "Full stub test", + "config_profile_description": "Full test of the pipeline in stub mode", + "input": "assets/assemblysheetv2.csv", + "ncbi_fcs_adaptor_skip": false, + "ncbi_fcs_adaptor_empire": "euk", + "ncbi_fcs_gx_skip": false, + "ncbi_fcs_gx_tax_id": 12, + "ncbi_fcs_gx_db_path": "tests/stub/gxdb/test", + "busco_skip": false, + "busco_mode": "genome", + "busco_lineage_datasets": "fungi_odb10 hypocreales_odb10", + "tidk_skip": false, + "tidk_repeat_seq": "TTTGGG", + "lai_skip": false, + "kraken2_skip": false, + "kraken2_db_path": "tests/stub/kraken2/k2_minusb_20231009.tar.gz", + "hic": "tests/stub/hic/Dummy_hic.R{1,2}.fq.gz", + "hic_skip_fastp": true, + "hic_skip_fastqc": false, + "synteny_skip": false, + "synteny_xref_assemblies": "assets/xrefsheet.csv", + "merqury_skip": true, + "max_cpus": 2, + "max_memory": "6.GB", + "max_time": "6.h" +} diff --git a/tests/stub/stub.config b/tests/stub/stub.config deleted file mode 100644 index 7e300f59..00000000 --- a/tests/stub/stub.config +++ /dev/null @@ -1,37 +0,0 @@ -params { - config_profile_name = 'Full stub test' - config_profile_description = 'Full test of the pipeline in stub mode' - - input = 'assets/assemblysheet.csv' - - ncbi_fcs_adaptor_skip = false - ncbi_fcs_adaptor_empire = 'euk' - - ncbi_fcs_gx_skip = false - ncbi_fcs_gx_tax_id = 12 - ncbi_fcs_gx_db_path = 'tests/stub/gxdb/test' - - busco_skip = false - busco_mode = 'genome' - busco_lineage_datasets = 'fungi_odb10 hypocreales_odb10' - - tidk_skip = false - tidk_repeat_seq = 'TTTGGG' - - lai_skip = false - - kraken2_skip = false - kraken2_db_path = 'tests/stub/kraken2/k2_minusb_20231009.tar.gz' - - hic = 'tests/stub/hic/Dummy_hic.R{1,2}.fq.gz' - hic_skip_fastp = true - hic_skip_fastqc = true - - synteny_skip = true // GitHub action runner runs out of memory - synteny_xref_assemblies = 'assets/xrefsheet.csv' - - // Limit resources so that this can run on GitHub Actions - max_cpus = 2 - max_memory = '6.GB' - max_time = '6.h' -} diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index 2d8dd5b0..ea2729d7 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -12,7 +12,7 @@ include { FASTAVALIDATOR } from '../modules/nf-core/fastavali include { FASTA_EXPLORE_SEARCH_PLOT_TIDK } from '../subworkflows/nf-core/fasta_explore_search_plot_tidk/main' include { GFF3_GT_GFF3_GFF3VALIDATOR_STAT } from '../subworkflows/pfr/gff3_gt_gff3_gff3validator_stat/main' -include { NCBI_FCS_ADAPTOR } from '../modules/local/ncbi_fcs_adaptor' +include { FCS_FCSADAPTOR } from '../modules/nf-core/fcs/fcsadaptor/main' include { NCBI_FCS_GX } from '../subworkflows/local/ncbi_fcs_gx' include { ASSEMBLATHON_STATS } from '../modules/local/assemblathon_stats' include { FASTA_GXF_BUSCO_PLOT } from '../subworkflows/pfr/fasta_gxf_busco_plot/main' @@ -149,54 +149,50 @@ workflow ASSEMBLYQC { ch_versions = ch_versions.mix(GFF3_GT_GFF3_GFF3VALIDATOR_STAT.out.versions) - // MODULE: NCBI_FCS_ADAPTOR - ch_fcs_adaptor_inputs = params.ncbi_fcs_adaptor_skip + // MODULE: FCS_FCSADAPTOR + ch_fcs_adaptor_input = params.ncbi_fcs_adaptor_skip ? Channel.empty() : ch_valid_target_assembly - | map { meta, fa -> [ meta.id, fa ] } - NCBI_FCS_ADAPTOR( - ch_fcs_adaptor_inputs, - params.ncbi_fcs_adaptor_empire ?: [] + FCS_FCSADAPTOR( + ch_fcs_adaptor_input ) - ch_fcs_adaptor_report = NCBI_FCS_ADAPTOR.out.report - | map { tag, report -> + ch_fcs_adaptor_report = FCS_FCSADAPTOR.out.adaptor_report + | map { meta, report -> def is_clean = file(report).readLines().size < 2 if (! is_clean) { log.warn(""" - Adaptor contamination detected in ${tag}. + Adaptor contamination detected in ${meta.id}. See the report for further details. """.stripIndent()) } - [ tag, report ] + [ meta, report ] } ch_fcs_adaptor_passed_assembly = params.ncbi_fcs_adaptor_skip ? ( ch_valid_target_assembly - | map { meta, fa -> [ meta.id, fa ] } ) : ( ch_fcs_adaptor_report - | map { tag, report -> - [ tag, file(report).readLines().size < 2 ] + | map { meta, report -> + [ meta, file(report).readLines().size < 2 ] } - | filter { tag, is_clean -> + | filter { meta, is_clean -> ( is_clean || ( ! params.contamination_stops_pipeline ) ) } | join( ch_valid_target_assembly - | map { meta, fa -> [ meta.id, fa ] } ) - | map { tag, clean, fa -> - [ tag, fa ] + | map { meta, clean, fa -> + [ meta, fa ] } ) - ch_versions = ch_versions.mix(NCBI_FCS_ADAPTOR.out.versions.first()) + ch_versions = ch_versions.mix(FCS_FCSADAPTOR.out.versions.first()) // SUBWORKFLOW: NCBI_FCS_GX ch_fcs_gx_input_assembly = params.ncbi_fcs_gx_skip @@ -252,6 +248,7 @@ workflow ASSEMBLYQC { ch_versions = ch_versions.mix(NCBI_FCS_GX.out.versions) ch_clean_assembly = ch_fcs_adaptor_passed_assembly + | map { meta, fa -> [ meta.id, fa ] } | join( ch_fcs_gx_passed_assembly ) From 1e57c36b4ac076ba020e58cd98f6db3b971341f6 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Fri, 17 May 2024 22:37:51 +1200 Subject: [PATCH 42/76] Added mixed2x test for MERQURY.FK --- CHANGELOG.md | 2 +- docs/images/spectra_cn.png | Bin 90113 -> 122391 bytes docs/usage.md | 11 ++++++++--- tests/merqury.fk/mixed2x/assemblysheet.csv | 2 ++ tests/merqury.fk/mixed2x/params.json | 10 ++++++++++ 5 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 tests/merqury.fk/mixed2x/assemblysheet.csv create mode 100644 tests/merqury.fk/mixed2x/params.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 0488e6be..f44d186a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v2.0.0+dev - [16-May-2024] +## v2.0.0+dev - [17-May-2024] ### `Added` diff --git a/docs/images/spectra_cn.png b/docs/images/spectra_cn.png index 1a4951571e7d737782e18e35feb8fd4e516bb113..9c6452fae3098824818e59c715056f3eb007d312 100644 GIT binary patch literal 122391 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

    {n61!0k9R-8HwekV*Uim zcbReR6vC&Wwe(%A~=9m*Ssf>++zjmYFp(x`&BCks&nes$i`#4>>(18Lg zWpO)+^yMlugw6hymgX;AQGp}|5!A5pSOzv%8mu8$HW#_jYTrm-Kj?E>V9Ppwi$)l& zycufAMmZ**vE0GZ8PZ2TXW%J9Fd6En-8)VxO2J@4qqaXvzjoiNaP1H;A!{i!FlYv; z;U~=Fpf!+XaOXP84Qe{-L-_2`=081svzHa7z{0LA!)K4^dXC8q?~F$MN%Nvxj(375 z@!#WNuO1u{(%8^|9g~ZP{&SL>i;D=|$T$K*Law8|a4La5KZPkR!iHAhG!7UUm5pz& zfD11P6(&k{5Ipk>3ye2!Ksteb97D%!(3oGp?nr8Go$LhMB=lL(A2l^KvEC@JAERQ1 za^qoe*kYT6#0LO(g3$?>d#DDooPUQUm~*JG&qba_PHi2Ytx!JsK_3$=CbWMerMvv{ z^N~oVNhleAS5lgWiv&*`=6NXBexNh`{iop9gPo}}yZQFg{E5s>HJ74{)71FU9A_!qi27jCYXP*VMiBW7`1^VaKR6I-f zj}zE4SV)4RqG|B$L6^3*h4mXAD?BQ~kOe9!TF)~b_5y@j*zUz~mk=5Og>X#hqzncF z#{_BylHtJSAMFU`Xl`k_-uw|cG9?LlO&)%v=1VN3;^WJd{VT_x>-Ee+;WHY+?d=v$ zRd9=ky=tzJLL%ublZzx0hk>DCm#2tEh{9patNCcQECE<+hlGTHBz94sLn%-|U3PXp z;e}67VIx2inU~jT!ul8L!Jy5@1TDj;I$Wv&hHPtsjV1=>Fn1P-RFBD%58uCkKR-W@ zJAiUnOk7;scWf|l@XYIfmaHIQjSSnU151#e>_ox10T6pN#TCwbJo*PuI95dH14f}z zt(s$5vnCK?l>7u9;o87ufui8p%XrBiE_D5W^y_#9n-vsJ!{5*oyYfFjlx}Tn^TC#8 z{;F-Yqz{>!sdQ2aye++0L6xOs% zlIbc)MBv;(5vr=F06td2RRf(DzAi#+>&Uo3%LD@`epqTfT${vI;Uj(d(z)e-{cqOU k{~Kur7x!oDf1T~TR(O)(5A$GqKH{mAb0+iB49{>OV literal 90113 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 &dU!p4zs7iqDDCagGq)7zU5UY@%KT5B4d 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 Date: Sat, 18 May 2024 20:36:24 +1200 Subject: [PATCH 43/76] Added module stubs to enable merquryfk in stub test --- CHANGELOG.md | 18 +- conf/modules.config | 8 - modules.json | 12 +- modules/nf-core/fastk/fastk/environment.yml | 2 + modules/nf-core/fastk/fastk/fastk-fastk.diff | 542 +++++++++ modules/nf-core/fastk/fastk/main.nf | 30 + modules/nf-core/fastk/fastk/meta.yml | 3 +- .../nf-core/fastk/fastk/tests/main.nf.test | 110 ++ .../fastk/fastk/tests/main.nf.test.snap | 346 ++++++ .../nf-core/fastk/fastk/tests/nextflow.config | 3 + modules/nf-core/fastk/fastk/tests/tags.yml | 2 + .../merquryfk/merquryfk/environment.yml | 2 + modules/nf-core/merquryfk/merquryfk/main.nf | 41 + .../merquryfk/merquryfk-merquryfk.diff | 1060 +++++++++++++++++ modules/nf-core/merquryfk/merquryfk/meta.yml | 3 +- .../merquryfk/merquryfk/tests/main.nf.test | 153 +++ .../merquryfk/tests/main.nf.test.snap | 802 +++++++++++++ .../merquryfk/merquryfk/tests/nextflow.config | 11 + .../merquryfk/merquryfk/tests/tags.yml | 2 + modules/nf-core/sratools/fasterqdump/main.nf | 50 +- modules/nf-core/sratools/fasterqdump/meta.yml | 1 + .../fasterqdump/sratools-fasterqdump.diff | 252 ++++ .../sratools/fasterqdump/tests/main.nf.test | 51 +- .../fasterqdump/tests/main.nf.test.snap | 84 +- .../fasterqdump/tests/nextflow.config | 5 - modules/nf-core/sratools/prefetch/main.nf | 12 + modules/nf-core/sratools/prefetch/meta.yml | 1 + .../sratools/prefetch/sratools-prefetch.diff | 112 ++ .../sratools/prefetch/tests/main.nf.test | 22 + .../sratools/prefetch/tests/main.nf.test.snap | 41 +- tests/stub/params.json | 2 +- 31 files changed, 3747 insertions(+), 36 deletions(-) create mode 100644 modules/nf-core/fastk/fastk/fastk-fastk.diff create mode 100644 modules/nf-core/fastk/fastk/tests/main.nf.test create mode 100644 modules/nf-core/fastk/fastk/tests/main.nf.test.snap create mode 100644 modules/nf-core/fastk/fastk/tests/nextflow.config create mode 100644 modules/nf-core/fastk/fastk/tests/tags.yml create mode 100644 modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff create mode 100644 modules/nf-core/merquryfk/merquryfk/tests/main.nf.test create mode 100644 modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap create mode 100644 modules/nf-core/merquryfk/merquryfk/tests/nextflow.config create mode 100644 modules/nf-core/merquryfk/merquryfk/tests/tags.yml create mode 100644 modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff delete mode 100644 modules/nf-core/sratools/fasterqdump/tests/nextflow.config create mode 100644 modules/nf-core/sratools/prefetch/sratools-prefetch.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index f44d186a..f25f4641 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,18 +11,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 2. Removed release-announcements GitHub workflow 3. Added a list of nf-core contributors 4. Added a launcher script for local testing `local_assemblyqc` -5. Added a custom `BUNDLELINKS` module which respects direction when bundling `dnadiff` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) +5. Added a custom `BUNDLELINKS` module which respects direction when bundling `DNADIFF` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) 6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) -7. Updated modules and sub-workflows: `bwa/index`, `bwa/mem`, `cat/cat`, `custom/checkgff3fastacorrespondence`, `custom/restoregffids`, `custom/shortenfastaids`, `gt/gff3`, `gt/gff3validator`, `gt/stat`, `ltrfinder`, `ltrharvest`, `ltrretriever/lai`, `ltrretriever/ltrretriever`, `samblaster`, `fasta_ltrretriever_lai`, `fastq_bwa_mem_samblaster`, `gff3_validate`, `custom/sratoolsncbisettings`, `fastp`, `fastqc`, `untar`, `seqkit/seq`, `seqkit/sort`, `fasta_explore_search_plot_tidk` +7. Updated modules and sub-workflows: `BWA/INDEX`, `BWA/MEM`, `CAT/CAT`, `CUSTOM/CHECKGFF3FASTACORRESPONDENCE`, `CUSTOM/RESTOREGFFIDS`, `CUSTOM/SHORTENFASTAIDS`, `GT/GFF3`, `GT/GFF3VALIDATOR`, `GT/STAT`, `LTRFINDER`, `LTRHARVEST`, `LTRRETRIEVER/LAI`, `LTRRETRIEVER/LTRRETRIEVER`, `SAMBLASTER`, `FASTA_LTRRETRIEVER_LAI`, `FASTQ_BWA_MEM_SAMBLASTER`, `GFF3_VALIDATE`, `CUSTOM/SRATOOLSNCBISETTINGS`, `FASTP`, `FASTQC`, `UNTAR`, `SEQKIT/SEQ`, `SEQKIT/SORT`, `FASTA_EXPLORE_SEARCH_PLOT_TIDK` 8. Locally bumped `bwa/index` version to `biocontainers/bwa:0.7.18--he4a0461_0` 9. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) -10. Updated `fcs-adaptor` to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) -11. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) -12. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads -13. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) -14. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` -15. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) -16. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module +10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) +11. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads +12. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) +13. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` +14. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) +15. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) +16. Locally added stubs for `FASTK/FASTK`, `MERQURYFK/MERQURYFK`, `SRATOOLS/FASTERQDUMP` and `SRATOOLS/PREFETCH` ### `Fixed` diff --git a/conf/modules.config b/conf/modules.config index e63a0cdb..7910d0cc 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -245,10 +245,6 @@ process { ] } - withName: '.*:DOWNLOAD_HIC:SRATOOLS_FASTERQDUMP' { - ext.prefix = { "${meta.id}.sra.fastq" } - } - withName: FASTQC_RAW { publishDir = [ path: { "${params.outdir}/hic/fastqc_raw" }, @@ -332,10 +328,6 @@ process { ext.prefix = { "${meta.id}.fasta" } } - withName: '.*:DOWNLOAD_READS:SRATOOLS_FASTERQDUMP' { - ext.prefix = { "${meta.id}.sra.fastq" } - } - withName: FASTK_FASTK { ext.args = "-k$params.merqury_kmer_length -t1" } diff --git a/modules.json b/modules.json index d2896927..f16ccf45 100644 --- a/modules.json +++ b/modules.json @@ -133,7 +133,8 @@ "fastk/fastk": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/fastk/fastk/fastk-fastk.diff" }, "fastp": { "branch": "master", @@ -158,7 +159,8 @@ "merquryfk/merquryfk": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff" }, "seqkit/seq": { "branch": "master", @@ -173,12 +175,14 @@ "sratools/fasterqdump": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"], + "patch": "modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff" }, "sratools/prefetch": { "branch": "master", "git_sha": "1fc29f92e439d5631fdf34b8ac4687297d70f5ec", - "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"], + "patch": "modules/nf-core/sratools/prefetch/sratools-prefetch.diff" }, "tidk/explore": { "branch": "master", diff --git a/modules/nf-core/fastk/fastk/environment.yml b/modules/nf-core/fastk/fastk/environment.yml index 54c932fe..efb503e1 100644 --- a/modules/nf-core/fastk/fastk/environment.yml +++ b/modules/nf-core/fastk/fastk/environment.yml @@ -3,3 +3,5 @@ channels: - conda-forge - bioconda - defaults +dependencies: + - bioconda::false_flag # False flag to pass nf-core/lint diff --git a/modules/nf-core/fastk/fastk/fastk-fastk.diff b/modules/nf-core/fastk/fastk/fastk-fastk.diff new file mode 100644 index 00000000..ac5421bd --- /dev/null +++ b/modules/nf-core/fastk/fastk/fastk-fastk.diff @@ -0,0 +1,542 @@ +Changes in module 'nf-core/fastk/fastk' +--- modules/nf-core/fastk/fastk/environment.yml ++++ modules/nf-core/fastk/fastk/environment.yml +@@ -3,3 +3,5 @@ + - conda-forge + - bioconda + - defaults ++dependencies: ++ - bioconda::false_flag # False flag to pass nf-core/lint + +--- modules/nf-core/fastk/fastk/meta.yml ++++ modules/nf-core/fastk/fastk/meta.yml +@@ -9,7 +9,7 @@ + description: "A fast K-mer counter for high-fidelity shotgun datasets" + homepage: "https://github.com/thegenemyers/FASTK" + tool_dev_url: "https://github.com/thegenemyers/FASTK" +- licence: "https://github.com/thegenemyers/FASTK/blob/master/LICENSE" ++ licence: ["https://github.com/thegenemyers/FASTK/blob/master/LICENSE"] + input: + - meta: + type: map +@@ -47,3 +47,4 @@ + - "@mahesh-panchal" + maintainers: + - "@mahesh-panchal" ++ - "@gallvp" + +--- modules/nf-core/fastk/fastk/main.nf ++++ modules/nf-core/fastk/fastk/main.nf +@@ -38,4 +38,34 @@ + fastk: $FASTK_VERSION + END_VERSIONS + """ ++ ++ stub: ++ // Exit if running this module with -profile conda / -profile mamba ++ if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { ++ error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." ++ } ++ def args = task.ext.args ?: '' ++ def prefix = task.ext.prefix ?: "${meta.id}" ++ def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. ++ ++ def touch_ktab = args.contains('-t') ? "touch ${prefix}_fk.ktab .${prefix}_fk.ktab.1" : '' ++ def touch_prof = args.contains('-p') ? "touch ${prefix}_fk.prof .${prefix}_fk.pidx.1" : '' ++ """ ++ touch ${prefix}_fk.hist ++ $touch_ktab ++ $touch_prof ++ ++ echo \\ ++ "FastK \\ ++ $args \\ ++ -T$task.cpus \\ ++ -M${task.memory.toGiga()} \\ ++ -N${prefix}_fk \\ ++ $reads" ++ ++ cat <<-END_VERSIONS > versions.yml ++ "${task.process}": ++ fastk: $FASTK_VERSION ++ END_VERSIONS ++ """ + } + +--- /dev/null ++++ modules/nf-core/fastk/fastk/tests/main.nf.test.snap +@@ -0,0 +1,346 @@ ++{ ++ "test_fastk_fastk_single_end_stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "3": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ], ++ "hist": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "ktab": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "prof": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:39:28.510263" ++ }, ++ "test_fastk_fastk_single_end": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", ++ ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", ++ "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" ++ ] ++ ] ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", ++ ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", ++ "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" ++ ] ++ ] ++ ], ++ "3": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ], ++ "hist": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" ++ ] ++ ], ++ "ktab": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", ++ ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", ++ "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" ++ ] ++ ] ++ ], ++ "prof": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", ++ ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", ++ "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:31:31.128388" ++ }, ++ "test_fastk_fastk_paired_end": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", ++ ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", ++ "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" ++ ] ++ ] ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", ++ ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", ++ ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", ++ ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", ++ "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" ++ ] ++ ] ++ ], ++ "3": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ], ++ "hist": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" ++ ] ++ ], ++ "ktab": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", ++ ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", ++ "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" ++ ] ++ ] ++ ], ++ "prof": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", ++ ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", ++ ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", ++ ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", ++ "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:31:35.565502" ++ }, ++ "test_fastk_fastk_paired_end_stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "3": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ], ++ "hist": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "ktab": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "prof": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:39:32.570957" ++ } ++} +--- /dev/null ++++ modules/nf-core/fastk/fastk/tests/tags.yml +@@ -0,0 +1,2 @@ ++fastk/fastk: ++ - "modules/nf-core/fastk/fastk/**" + +--- /dev/null ++++ modules/nf-core/fastk/fastk/tests/nextflow.config +@@ -0,0 +1,3 @@ ++process { ++ ext.args = '-t -p' ++} + +--- /dev/null ++++ modules/nf-core/fastk/fastk/tests/main.nf.test +@@ -0,0 +1,110 @@ ++nextflow_process { ++ ++ name "Test Process FASTK_FASTK" ++ script "../main.nf" ++ config './nextflow.config' ++ process "FASTK_FASTK" ++ ++ tag "modules" ++ tag "modules_nfcore" ++ tag "fastk" ++ tag "fastk/fastk" ++ ++ test("test_fastk_fastk_single_end") { ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test' , single_end: true ], // meta map ++ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ++ ] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ ++ } ++ ++ test("test_fastk_fastk_paired_end") { ++ ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test' , single_end: false ], // meta map ++ [ ++ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), ++ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ++ ] ++ ] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ ++ } ++ ++ test("test_fastk_fastk_single_end_stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test' , single_end: true ], // meta map ++ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ++ ] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ ++ } ++ ++ test("test_fastk_fastk_paired_end_stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test' , single_end: false ], // meta map ++ [ ++ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), ++ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ++ ] ++ ] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ ++ } ++ ++} + +************************************************************ diff --git a/modules/nf-core/fastk/fastk/main.nf b/modules/nf-core/fastk/fastk/main.nf index fec5a4d2..cef1a3c8 100644 --- a/modules/nf-core/fastk/fastk/main.nf +++ b/modules/nf-core/fastk/fastk/main.nf @@ -38,4 +38,34 @@ process FASTK_FASTK { fastk: $FASTK_VERSION END_VERSIONS """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + + def touch_ktab = args.contains('-t') ? "touch ${prefix}_fk.ktab .${prefix}_fk.ktab.1" : '' + def touch_prof = args.contains('-p') ? "touch ${prefix}_fk.prof .${prefix}_fk.pidx.1" : '' + """ + touch ${prefix}_fk.hist + $touch_ktab + $touch_prof + + echo \\ + "FastK \\ + $args \\ + -T$task.cpus \\ + -M${task.memory.toGiga()} \\ + -N${prefix}_fk \\ + $reads" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/fastk/fastk/meta.yml b/modules/nf-core/fastk/fastk/meta.yml index 7c7f4260..3086aca5 100644 --- a/modules/nf-core/fastk/fastk/meta.yml +++ b/modules/nf-core/fastk/fastk/meta.yml @@ -9,7 +9,7 @@ tools: description: "A fast K-mer counter for high-fidelity shotgun datasets" homepage: "https://github.com/thegenemyers/FASTK" tool_dev_url: "https://github.com/thegenemyers/FASTK" - licence: "https://github.com/thegenemyers/FASTK/blob/master/LICENSE" + licence: ["https://github.com/thegenemyers/FASTK/blob/master/LICENSE"] input: - meta: type: map @@ -47,3 +47,4 @@ authors: - "@mahesh-panchal" maintainers: - "@mahesh-panchal" + - "@gallvp" diff --git a/modules/nf-core/fastk/fastk/tests/main.nf.test b/modules/nf-core/fastk/fastk/tests/main.nf.test new file mode 100644 index 00000000..e46d8bce --- /dev/null +++ b/modules/nf-core/fastk/fastk/tests/main.nf.test @@ -0,0 +1,110 @@ +nextflow_process { + + name "Test Process FASTK_FASTK" + script "../main.nf" + config './nextflow.config' + process "FASTK_FASTK" + + tag "modules" + tag "modules_nfcore" + tag "fastk" + tag "fastk/fastk" + + test("test_fastk_fastk_single_end") { + when { + process { + """ + input[0] = [ + [ id:'test' , single_end: true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_fastk_fastk_paired_end") { + + when { + process { + """ + input[0] = [ + [ id:'test' , single_end: false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_fastk_fastk_single_end_stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' , single_end: true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_fastk_fastk_paired_end_stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' , single_end: false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/fastk/fastk/tests/main.nf.test.snap b/modules/nf-core/fastk/fastk/tests/main.nf.test.snap new file mode 100644 index 00000000..1e3fc4da --- /dev/null +++ b/modules/nf-core/fastk/fastk/tests/main.nf.test.snap @@ -0,0 +1,346 @@ +{ + "test_fastk_fastk_single_end_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "3": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ], + "hist": [ + [ + { + "id": "test", + "single_end": true + }, + "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "ktab": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "prof": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:39:28.510263" + }, + "test_fastk_fastk_single_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", + ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", + "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" + ] + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", + ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", + "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" + ] + ] + ], + "3": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ], + "hist": [ + [ + { + "id": "test", + "single_end": true + }, + "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" + ] + ], + "ktab": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", + ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", + "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" + ] + ] + ], + "prof": [ + [ + { + "id": "test", + "single_end": true + }, + [ + ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", + ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", + "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" + ] + ] + ], + "versions": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:31:31.128388" + }, + "test_fastk_fastk_paired_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", + ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", + "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" + ] + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", + ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", + ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", + ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", + "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" + ] + ] + ], + "3": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ], + "hist": [ + [ + { + "id": "test", + "single_end": false + }, + "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" + ] + ], + "ktab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", + ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", + "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" + ] + ] + ], + "prof": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", + ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", + ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", + ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", + "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" + ] + ] + ], + "versions": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:31:35.565502" + }, + "test_fastk_fastk_paired_end_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "3": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ], + "hist": [ + [ + { + "id": "test", + "single_end": false + }, + "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "ktab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "prof": [ + [ + { + "id": "test", + "single_end": false + }, + [ + ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:39:32.570957" + } +} \ No newline at end of file diff --git a/modules/nf-core/fastk/fastk/tests/nextflow.config b/modules/nf-core/fastk/fastk/tests/nextflow.config new file mode 100644 index 00000000..c89ce9d5 --- /dev/null +++ b/modules/nf-core/fastk/fastk/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = '-t -p' +} diff --git a/modules/nf-core/fastk/fastk/tests/tags.yml b/modules/nf-core/fastk/fastk/tests/tags.yml new file mode 100644 index 00000000..82f9df82 --- /dev/null +++ b/modules/nf-core/fastk/fastk/tests/tags.yml @@ -0,0 +1,2 @@ +fastk/fastk: + - "modules/nf-core/fastk/fastk/**" diff --git a/modules/nf-core/merquryfk/merquryfk/environment.yml b/modules/nf-core/merquryfk/merquryfk/environment.yml index 44a5ee9b..325bb013 100644 --- a/modules/nf-core/merquryfk/merquryfk/environment.yml +++ b/modules/nf-core/merquryfk/merquryfk/environment.yml @@ -3,3 +3,5 @@ channels: - conda-forge - bioconda - defaults +dependencies: + - bioconda::false_flag # False flag to pass nf-core/lint diff --git a/modules/nf-core/merquryfk/merquryfk/main.nf b/modules/nf-core/merquryfk/merquryfk/main.nf index ac163dac..f22e4431 100644 --- a/modules/nf-core/merquryfk/merquryfk/main.nf +++ b/modules/nf-core/merquryfk/merquryfk/main.nf @@ -55,4 +55,45 @@ process MERQURYFK_MERQURYFK { r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) END_VERSIONS """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + + def touch_asm_bed = "touch ${prefix}.${assembly.baseName}_only.bed" + def touch_asm_qv = "touch ${prefix}.${assembly.baseName}.qv" + def touch_haplo_bed = haplotigs ? "touch ${prefix}.${haplotigs.baseName}_only.bed" : '' + def touch_haplo_qv = haplotigs ? "touch ${prefix}.${haplotigs.baseName}.qv" : '' + """ + touch "${prefix}.completeness.stats" + + $touch_asm_bed + $touch_asm_qv + $touch_haplo_bed + $touch_haplo_qv + + touch "${prefix}.qv" + + echo \\ + "MerquryFK \\ + $args \\ + -T$task.cpus \\ + ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ + $assembly \\ + $haplotigs \\ + $prefix" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + merquryfk: $MERQURY_VERSION + r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) + END_VERSIONS + """ } diff --git a/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff b/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff new file mode 100644 index 00000000..b630c090 --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff @@ -0,0 +1,1060 @@ +Changes in module 'nf-core/merquryfk/merquryfk' +--- modules/nf-core/merquryfk/merquryfk/environment.yml ++++ modules/nf-core/merquryfk/merquryfk/environment.yml +@@ -3,3 +3,5 @@ + - conda-forge + - bioconda + - defaults ++dependencies: ++ - bioconda::false_flag # False flag to pass nf-core/lint + +--- modules/nf-core/merquryfk/merquryfk/meta.yml ++++ modules/nf-core/merquryfk/merquryfk/meta.yml +@@ -9,7 +9,7 @@ + description: "FastK based version of Merqury" + homepage: "https://github.com/thegenemyers/MERQURY.FK" + tool_dev_url: "https://github.com/thegenemyers/MERQURY.FK" +- licence: "https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE" ++ licence: ["https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE"] + input: + - meta: + type: map +@@ -110,3 +110,4 @@ + - "@mahesh-panchal" + maintainers: + - "@mahesh-panchal" ++ - "@gallvp" + +--- modules/nf-core/merquryfk/merquryfk/main.nf ++++ modules/nf-core/merquryfk/merquryfk/main.nf +@@ -55,4 +55,45 @@ + r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) + END_VERSIONS + """ ++ ++ stub: ++ // Exit if running this module with -profile conda / -profile mamba ++ if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { ++ error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." ++ } ++ def args = task.ext.args ?: '' ++ prefix = task.ext.prefix ?: "${meta.id}" ++ def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. ++ def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. ++ ++ def touch_asm_bed = "touch ${prefix}.${assembly.baseName}_only.bed" ++ def touch_asm_qv = "touch ${prefix}.${assembly.baseName}.qv" ++ def touch_haplo_bed = haplotigs ? "touch ${prefix}.${haplotigs.baseName}_only.bed" : '' ++ def touch_haplo_qv = haplotigs ? "touch ${prefix}.${haplotigs.baseName}.qv" : '' ++ """ ++ touch "${prefix}.completeness.stats" ++ ++ $touch_asm_bed ++ $touch_asm_qv ++ $touch_haplo_bed ++ $touch_haplo_qv ++ ++ touch "${prefix}.qv" ++ ++ echo \\ ++ "MerquryFK \\ ++ $args \\ ++ -T$task.cpus \\ ++ ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ ++ $assembly \\ ++ $haplotigs \\ ++ $prefix" ++ ++ cat <<-END_VERSIONS > versions.yml ++ "${task.process}": ++ fastk: $FASTK_VERSION ++ merquryfk: $MERQURY_VERSION ++ r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) ++ END_VERSIONS ++ """ + } + +--- /dev/null ++++ modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap +@@ -0,0 +1,802 @@ ++{ ++ "multiple_minimal_stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "10": [ ++ ++ ], ++ "11": [ ++ ++ ], ++ "12": [ ++ ++ ], ++ "13": [ ++ ++ ], ++ "14": [ ++ ++ ], ++ "15": [ ++ ++ ], ++ "16": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "3": [ ++ ++ ], ++ "4": [ ++ ++ ], ++ "5": [ ++ ++ ], ++ "6": [ ++ ++ ], ++ "7": [ ++ ++ ], ++ "8": [ ++ ++ ], ++ "9": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "assembly_qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "bed": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ [ ++ "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "spectra_asm_fl_pdf": [ ++ ++ ], ++ "spectra_asm_fl_png": [ ++ ++ ], ++ "spectra_asm_ln_pdf": [ ++ ++ ], ++ "spectra_asm_ln_png": [ ++ ++ ], ++ "spectra_asm_st_pdf": [ ++ ++ ], ++ "spectra_asm_st_png": [ ++ ++ ], ++ "spectra_cn_fl_pdf": [ ++ ++ ], ++ "spectra_cn_fl_png": [ ++ ++ ], ++ "spectra_cn_ln_pdf": [ ++ ++ ], ++ "spectra_cn_ln_png": [ ++ ++ ], ++ "spectra_cn_st_pdf": [ ++ ++ ], ++ "spectra_cn_st_png": [ ++ ++ ], ++ "stats": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T20:21:30.488412" ++ }, ++ "test_merquryfk_merquryfk_pdf": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" ++ ] ++ ], ++ "10": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" ++ ] ++ ], ++ "11": [ ++ ++ ], ++ "12": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" ++ ] ++ ], ++ "13": [ ++ ++ ], ++ "14": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" ++ ] ++ ], ++ "15": [ ++ ++ ], ++ "16": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" ++ ] ++ ], ++ "3": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "4": [ ++ ++ ], ++ "5": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "6": [ ++ ++ ], ++ "7": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "8": [ ++ ++ ], ++ "9": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" ++ ] ++ ], ++ "assembly_qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" ++ ] ++ ], ++ "bed": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" ++ ] ++ ], ++ "qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" ++ ] ++ ], ++ "spectra_asm_fl_pdf": [ ++ ++ ], ++ "spectra_asm_fl_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" ++ ] ++ ], ++ "spectra_asm_ln_pdf": [ ++ ++ ], ++ "spectra_asm_ln_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" ++ ] ++ ], ++ "spectra_asm_st_pdf": [ ++ ++ ], ++ "spectra_asm_st_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" ++ ] ++ ], ++ "spectra_cn_fl_pdf": [ ++ ++ ], ++ "spectra_cn_fl_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "spectra_cn_ln_pdf": [ ++ ++ ], ++ "spectra_cn_ln_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "spectra_cn_st_pdf": [ ++ ++ ], ++ "spectra_cn_st_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "stats": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:58:05.545683" ++ }, ++ "single_minimal_stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "10": [ ++ ++ ], ++ "11": [ ++ ++ ], ++ "12": [ ++ ++ ], ++ "13": [ ++ ++ ], ++ "14": [ ++ ++ ], ++ "15": [ ++ ++ ], ++ "16": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "3": [ ++ ++ ], ++ "4": [ ++ ++ ], ++ "5": [ ++ ++ ], ++ "6": [ ++ ++ ], ++ "7": [ ++ ++ ], ++ "8": [ ++ ++ ], ++ "9": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "assembly_qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "bed": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "spectra_asm_fl_pdf": [ ++ ++ ], ++ "spectra_asm_fl_png": [ ++ ++ ], ++ "spectra_asm_ln_pdf": [ ++ ++ ], ++ "spectra_asm_ln_png": [ ++ ++ ], ++ "spectra_asm_st_pdf": [ ++ ++ ], ++ "spectra_asm_st_png": [ ++ ++ ], ++ "spectra_cn_fl_pdf": [ ++ ++ ], ++ "spectra_cn_fl_png": [ ++ ++ ], ++ "spectra_cn_ln_pdf": [ ++ ++ ], ++ "spectra_cn_ln_png": [ ++ ++ ], ++ "spectra_cn_st_pdf": [ ++ ++ ], ++ "spectra_cn_st_png": [ ++ ++ ], ++ "stats": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T20:21:19.606389" ++ }, ++ "test_merquryfk_merquryfk_png": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" ++ ] ++ ], ++ "1": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" ++ ] ++ ], ++ "10": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" ++ ] ++ ], ++ "11": [ ++ ++ ], ++ "12": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" ++ ] ++ ], ++ "13": [ ++ ++ ], ++ "14": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" ++ ] ++ ], ++ "15": [ ++ ++ ], ++ "16": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ], ++ "2": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" ++ ] ++ ], ++ "3": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "4": [ ++ ++ ], ++ "5": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "6": [ ++ ++ ], ++ "7": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "8": [ ++ ++ ], ++ "9": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" ++ ] ++ ], ++ "assembly_qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" ++ ] ++ ], ++ "bed": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" ++ ] ++ ], ++ "qv": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" ++ ] ++ ], ++ "spectra_asm_fl_pdf": [ ++ ++ ], ++ "spectra_asm_fl_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" ++ ] ++ ], ++ "spectra_asm_ln_pdf": [ ++ ++ ], ++ "spectra_asm_ln_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" ++ ] ++ ], ++ "spectra_asm_st_pdf": [ ++ ++ ], ++ "spectra_asm_st_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" ++ ] ++ ], ++ "spectra_cn_fl_pdf": [ ++ ++ ], ++ "spectra_cn_fl_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "spectra_cn_ln_pdf": [ ++ ++ ], ++ "spectra_cn_ln_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "spectra_cn_st_pdf": [ ++ ++ ], ++ "spectra_cn_st_png": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" ++ ] ++ ], ++ "stats": [ ++ [ ++ { ++ "id": "test", ++ "single_end": true ++ }, ++ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-18T19:57:31.981156" ++ } ++} +--- /dev/null ++++ modules/nf-core/merquryfk/merquryfk/tests/tags.yml +@@ -0,0 +1,2 @@ ++merquryfk/merquryfk: ++ - "modules/nf-core/merquryfk/merquryfk/**" + +--- /dev/null ++++ modules/nf-core/merquryfk/merquryfk/tests/nextflow.config +@@ -0,0 +1,11 @@ ++process { ++ withName: 'FASTK_.*' { ++ ext.args = '-t' ++ } ++ withName: 'test_merquryfk_merquryfk_png:MERQURYFK_MERQURYFK' { ++ ext.args = '-lfs' ++ } ++ withName: 'test_merquryfk_merquryfk_pdf:MERQURYFK_MERQURYFK' { ++ ext.args = '-lfs -pdf' ++ } ++} + +--- /dev/null ++++ modules/nf-core/merquryfk/merquryfk/tests/main.nf.test +@@ -0,0 +1,153 @@ ++nextflow_process { ++ ++ name "Test Process MERQURYFK_MERQURYFK" ++ script "../main.nf" ++ config "./nextflow.config" ++ process "MERQURYFK_MERQURYFK" ++ ++ tag "modules" ++ tag "modules_nfcore" ++ tag "merquryfk" ++ tag "merquryfk/merquryfk" ++ tag "fastk/fastk" ++ ++ setup { ++ run("FASTK_FASTK") { ++ script "../../../fastk/fastk" ++ process { ++ """ ++ input[0] = [ ++ [ id:'test', single_end:true ], // meta map ++ file(params.test_data['homo_sapiens']['illumina']['test_1_fastq_gz'], checkIfExists: true) ++ ] ++ """ ++ } ++ } ++ } ++ ++ test("test_merquryfk_merquryfk_png") { ++ ++ when { ++ process { ++ """ ++ assembly = [ ++ [ id:'test', single_end:true ], // meta map ++ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ++ ] ++ ++ haplotigs = [ ++ [ id:'test', single_end:true ], [] ++ ] ++ ++ input[0] = FASTK_FASTK.out.hist ++ | join( FASTK_FASTK.out.ktab ) ++ | join( Channel.value( assembly ) ) ++ | join( Channel.value( haplotigs ) ) ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } ++ ++ test("test_merquryfk_merquryfk_pdf") { ++ ++ when { ++ process { ++ """ ++ assembly = [ ++ [ id:'test', single_end:true ], // meta map ++ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ++ ] ++ ++ haplotigs = [ ++ [ id:'test', single_end:true ], [] ++ ] ++ ++ input[0] = FASTK_FASTK.out.hist ++ | join( FASTK_FASTK.out.ktab ) ++ | join( Channel.value( assembly ) ) ++ | join( Channel.value( haplotigs ) ) ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } ++ ++ test("single_minimal_stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ assembly = [ ++ [ id:'test', single_end:true ], // meta map ++ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ++ ] ++ ++ haplotigs = [ ++ [ id:'test', single_end:true ], [] ++ ] ++ ++ input[0] = FASTK_FASTK.out.hist ++ | join( FASTK_FASTK.out.ktab ) ++ | join( Channel.value( assembly ) ) ++ | join( Channel.value( haplotigs ) ) ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } ++ ++ test("multiple_minimal_stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ assembly = [ ++ [ id:'test', single_end:true ], // meta map ++ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ++ ] ++ ++ haplotigs = [ ++ [ id:'test', single_end:true ], ++ file(params.test_data['homo_sapiens']['genome']['genome2_fasta'], checkIfExists: true) ++ ] ++ ++ input[0] = FASTK_FASTK.out.hist ++ | join( FASTK_FASTK.out.ktab ) ++ | join( Channel.value( assembly ) ) ++ | join( Channel.value( haplotigs ) ) ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } ++ ++} + +************************************************************ diff --git a/modules/nf-core/merquryfk/merquryfk/meta.yml b/modules/nf-core/merquryfk/merquryfk/meta.yml index 7d4af796..0cdbcae6 100644 --- a/modules/nf-core/merquryfk/merquryfk/meta.yml +++ b/modules/nf-core/merquryfk/merquryfk/meta.yml @@ -9,7 +9,7 @@ tools: description: "FastK based version of Merqury" homepage: "https://github.com/thegenemyers/MERQURY.FK" tool_dev_url: "https://github.com/thegenemyers/MERQURY.FK" - licence: "https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE" + licence: ["https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE"] input: - meta: type: map @@ -110,3 +110,4 @@ authors: - "@mahesh-panchal" maintainers: - "@mahesh-panchal" + - "@gallvp" diff --git a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test new file mode 100644 index 00000000..5c4cce76 --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test @@ -0,0 +1,153 @@ +nextflow_process { + + name "Test Process MERQURYFK_MERQURYFK" + script "../main.nf" + config "./nextflow.config" + process "MERQURYFK_MERQURYFK" + + tag "modules" + tag "modules_nfcore" + tag "merquryfk" + tag "merquryfk/merquryfk" + tag "fastk/fastk" + + setup { + run("FASTK_FASTK") { + script "../../../fastk/fastk" + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + """ + } + } + } + + test("test_merquryfk_merquryfk_png") { + + when { + process { + """ + assembly = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + haplotigs = [ + [ id:'test', single_end:true ], [] + ] + + input[0] = FASTK_FASTK.out.hist + | join( FASTK_FASTK.out.ktab ) + | join( Channel.value( assembly ) ) + | join( Channel.value( haplotigs ) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("test_merquryfk_merquryfk_pdf") { + + when { + process { + """ + assembly = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + haplotigs = [ + [ id:'test', single_end:true ], [] + ] + + input[0] = FASTK_FASTK.out.hist + | join( FASTK_FASTK.out.ktab ) + | join( Channel.value( assembly ) ) + | join( Channel.value( haplotigs ) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("single_minimal_stub") { + + options '-stub' + + when { + process { + """ + assembly = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + haplotigs = [ + [ id:'test', single_end:true ], [] + ] + + input[0] = FASTK_FASTK.out.hist + | join( FASTK_FASTK.out.ktab ) + | join( Channel.value( assembly ) ) + | join( Channel.value( haplotigs ) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("multiple_minimal_stub") { + + options '-stub' + + when { + process { + """ + assembly = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + haplotigs = [ + [ id:'test', single_end:true ], + file(params.test_data['homo_sapiens']['genome']['genome2_fasta'], checkIfExists: true) + ] + + input[0] = FASTK_FASTK.out.hist + | join( FASTK_FASTK.out.ktab ) + | join( Channel.value( assembly ) ) + | join( Channel.value( haplotigs ) ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap new file mode 100644 index 00000000..eebc609f --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap @@ -0,0 +1,802 @@ +{ + "multiple_minimal_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + + ], + "13": [ + + ], + "14": [ + + ], + "15": [ + + ], + "16": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "assembly_qv": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bed": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spectra_asm_fl_pdf": [ + + ], + "spectra_asm_fl_png": [ + + ], + "spectra_asm_ln_pdf": [ + + ], + "spectra_asm_ln_png": [ + + ], + "spectra_asm_st_pdf": [ + + ], + "spectra_asm_st_png": [ + + ], + "spectra_cn_fl_pdf": [ + + ], + "spectra_cn_fl_png": [ + + ], + "spectra_cn_ln_pdf": [ + + ], + "spectra_cn_ln_png": [ + + ], + "spectra_cn_st_pdf": [ + + ], + "spectra_cn_st_png": [ + + ], + "stats": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T20:21:30.488412" + }, + "test_merquryfk_merquryfk_pdf": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" + ] + ], + "11": [ + + ], + "12": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" + ] + ], + "13": [ + + ], + "14": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" + ] + ], + "15": [ + + ], + "16": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "4": [ + + ], + "5": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "6": [ + + ], + "7": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "8": [ + + ], + "9": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" + ] + ], + "assembly_qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" + ] + ], + "bed": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" + ] + ], + "qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" + ] + ], + "spectra_asm_fl_pdf": [ + + ], + "spectra_asm_fl_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" + ] + ], + "spectra_asm_ln_pdf": [ + + ], + "spectra_asm_ln_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" + ] + ], + "spectra_asm_st_pdf": [ + + ], + "spectra_asm_st_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" + ] + ], + "spectra_cn_fl_pdf": [ + + ], + "spectra_cn_fl_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "spectra_cn_ln_pdf": [ + + ], + "spectra_cn_ln_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "spectra_cn_st_pdf": [ + + ], + "spectra_cn_st_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "stats": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" + ] + ], + "versions": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:58:05.545683" + }, + "single_minimal_stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + + ], + "11": [ + + ], + "12": [ + + ], + "13": [ + + ], + "14": [ + + ], + "15": [ + + ], + "16": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "assembly_qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bed": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spectra_asm_fl_pdf": [ + + ], + "spectra_asm_fl_png": [ + + ], + "spectra_asm_ln_pdf": [ + + ], + "spectra_asm_ln_png": [ + + ], + "spectra_asm_st_pdf": [ + + ], + "spectra_asm_st_png": [ + + ], + "spectra_cn_fl_pdf": [ + + ], + "spectra_cn_fl_png": [ + + ], + "spectra_cn_ln_pdf": [ + + ], + "spectra_cn_ln_png": [ + + ], + "spectra_cn_st_pdf": [ + + ], + "spectra_cn_st_png": [ + + ], + "stats": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T20:21:19.606389" + }, + "test_merquryfk_merquryfk_png": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" + ] + ], + "11": [ + + ], + "12": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" + ] + ], + "13": [ + + ], + "14": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" + ] + ], + "15": [ + + ], + "16": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "4": [ + + ], + "5": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "6": [ + + ], + "7": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "8": [ + + ], + "9": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" + ] + ], + "assembly_qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" + ] + ], + "bed": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" + ] + ], + "qv": [ + [ + { + "id": "test", + "single_end": true + }, + "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" + ] + ], + "spectra_asm_fl_pdf": [ + + ], + "spectra_asm_fl_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" + ] + ], + "spectra_asm_ln_pdf": [ + + ], + "spectra_asm_ln_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" + ] + ], + "spectra_asm_st_pdf": [ + + ], + "spectra_asm_st_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" + ] + ], + "spectra_cn_fl_pdf": [ + + ], + "spectra_cn_fl_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "spectra_cn_ln_pdf": [ + + ], + "spectra_cn_ln_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "spectra_cn_st_pdf": [ + + ], + "spectra_cn_st_png": [ + [ + { + "id": "test", + "single_end": true + }, + "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" + ] + ], + "stats": [ + [ + { + "id": "test", + "single_end": true + }, + "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" + ] + ], + "versions": [ + "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-18T19:57:31.981156" + } +} \ No newline at end of file diff --git a/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config b/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config new file mode 100644 index 00000000..63d72d24 --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config @@ -0,0 +1,11 @@ +process { + withName: 'FASTK_.*' { + ext.args = '-t' + } + withName: 'test_merquryfk_merquryfk_png:MERQURYFK_MERQURYFK' { + ext.args = '-lfs' + } + withName: 'test_merquryfk_merquryfk_pdf:MERQURYFK_MERQURYFK' { + ext.args = '-lfs -pdf' + } +} diff --git a/modules/nf-core/merquryfk/merquryfk/tests/tags.yml b/modules/nf-core/merquryfk/merquryfk/tests/tags.yml new file mode 100644 index 00000000..7dcac99b --- /dev/null +++ b/modules/nf-core/merquryfk/merquryfk/tests/tags.yml @@ -0,0 +1,2 @@ +merquryfk/merquryfk: + - "modules/nf-core/merquryfk/merquryfk/**" diff --git a/modules/nf-core/sratools/fasterqdump/main.nf b/modules/nf-core/sratools/fasterqdump/main.nf index d4ddf268..d5b65bab 100644 --- a/modules/nf-core/sratools/fasterqdump/main.nf +++ b/modules/nf-core/sratools/fasterqdump/main.nf @@ -23,7 +23,10 @@ process SRATOOLS_FASTERQDUMP { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def outfile = meta.single_end ? "${prefix}.fastq" : prefix + def outfile = "${prefix}.fastq" + def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" + // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and + // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 def key_file = '' if (certificate.toString().endsWith('.jwt')) { key_file += " --perm ${certificate}" @@ -40,6 +43,51 @@ process SRATOOLS_FASTERQDUMP { ${key_file} \\ ${sra} + $exclude_third + + pigz \\ + $args2 \\ + --no-name \\ + --processes $task.cpus \\ + *.fastq + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sratools: \$(fasterq-dump --version 2>&1 | grep -Eo '[0-9.]+') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def outfile = "${prefix}.fastq" + def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" + // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and + // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 + def key_file = '' + if (certificate.toString().endsWith('.jwt')) { + key_file += " --perm ${certificate}" + } else if (certificate.toString().endsWith('.ngc')) { + key_file += " --ngc ${certificate}" + } + def touch_outfiles = meta.single_end ? "${prefix}.fastq" : "${prefix}_1.fastq ${prefix}_2.fastq" + """ + touch $touch_outfiles + + export NCBI_SETTINGS="\$PWD/${ncbi_settings}" + + echo \\ + "fasterq-dump \\ + $args \\ + --threads $task.cpus \\ + --outfile $outfile \\ + ${key_file} \\ + ${sra}" + + $exclude_third + pigz \\ $args2 \\ --no-name \\ diff --git a/modules/nf-core/sratools/fasterqdump/meta.yml b/modules/nf-core/sratools/fasterqdump/meta.yml index b5e0175a..6a2151a8 100644 --- a/modules/nf-core/sratools/fasterqdump/meta.yml +++ b/modules/nf-core/sratools/fasterqdump/meta.yml @@ -51,3 +51,4 @@ authors: - "@Midnighter" maintainers: - "@Midnighter" + - "@gallvp" diff --git a/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff b/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff new file mode 100644 index 00000000..d71c09b1 --- /dev/null +++ b/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff @@ -0,0 +1,252 @@ +Changes in module 'nf-core/sratools/fasterqdump' +--- modules/nf-core/sratools/fasterqdump/meta.yml ++++ modules/nf-core/sratools/fasterqdump/meta.yml +@@ -51,3 +51,4 @@ + - "@Midnighter" + maintainers: + - "@Midnighter" ++ - "@gallvp" + +--- modules/nf-core/sratools/fasterqdump/main.nf ++++ modules/nf-core/sratools/fasterqdump/main.nf +@@ -23,7 +23,10 @@ + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" +- def outfile = meta.single_end ? "${prefix}.fastq" : prefix ++ def outfile = "${prefix}.fastq" ++ def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" ++ // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and ++ // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 + def key_file = '' + if (certificate.toString().endsWith('.jwt')) { + key_file += " --perm ${certificate}" +@@ -40,6 +43,51 @@ + ${key_file} \\ + ${sra} + ++ $exclude_third ++ ++ pigz \\ ++ $args2 \\ ++ --no-name \\ ++ --processes $task.cpus \\ ++ *.fastq ++ ++ cat <<-END_VERSIONS > versions.yml ++ "${task.process}": ++ sratools: \$(fasterq-dump --version 2>&1 | grep -Eo '[0-9.]+') ++ pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) ++ END_VERSIONS ++ """ ++ ++ stub: ++ def args = task.ext.args ?: '' ++ def args2 = task.ext.args2 ?: '' ++ def prefix = task.ext.prefix ?: "${meta.id}" ++ def outfile = "${prefix}.fastq" ++ def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" ++ // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and ++ // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 ++ def key_file = '' ++ if (certificate.toString().endsWith('.jwt')) { ++ key_file += " --perm ${certificate}" ++ } else if (certificate.toString().endsWith('.ngc')) { ++ key_file += " --ngc ${certificate}" ++ } ++ def touch_outfiles = meta.single_end ? "${prefix}.fastq" : "${prefix}_1.fastq ${prefix}_2.fastq" ++ """ ++ touch $touch_outfiles ++ ++ export NCBI_SETTINGS="\$PWD/${ncbi_settings}" ++ ++ echo \\ ++ "fasterq-dump \\ ++ $args \\ ++ --threads $task.cpus \\ ++ --outfile $outfile \\ ++ ${key_file} \\ ++ ${sra}" ++ ++ $exclude_third ++ + pigz \\ + $args2 \\ + --no-name \\ + +--- modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap ++++ modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap +@@ -30,9 +30,44 @@ + ], + "meta": { + "nf-test": "0.8.4", +- "nextflow": "24.01.0" ++ "nextflow": "23.10.1" + }, +- "timestamp": "2024-02-28T15:25:52.837288" ++ "timestamp": "2024-05-17T22:01:43.486256" ++ }, ++ "Single-end-stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test_single_end", ++ "single_end": true ++ }, ++ "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "1": [ ++ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" ++ ], ++ "reads": [ ++ [ ++ { ++ "id": "test_single_end", ++ "single_end": true ++ }, ++ "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-17T21:40:42.335786" + }, + "Paired-end": { + "content": [ +@@ -71,8 +106,49 @@ + ], + "meta": { + "nf-test": "0.8.4", +- "nextflow": "24.01.0" ++ "nextflow": "23.10.1" + }, +- "timestamp": "2024-02-28T15:26:42.466223" ++ "timestamp": "2024-05-17T22:09:55.6396" ++ }, ++ "Paired-end-stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test_paired_end", ++ "single_end": false ++ }, ++ [ ++ "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "1": [ ++ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" ++ ], ++ "reads": [ ++ [ ++ { ++ "id": "test_paired_end", ++ "single_end": false ++ }, ++ [ ++ "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", ++ "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-17T20:35:44.782058" + } + } +--- modules/nf-core/sratools/fasterqdump/tests/main.nf.test ++++ modules/nf-core/sratools/fasterqdump/tests/main.nf.test +@@ -1,7 +1,6 @@ + nextflow_process { + name "Test Process SRATOOLS_FASTERQDUMP" + script "../main.nf" +- config "./nextflow.config" + process "SRATOOLS_FASTERQDUMP" + tag "modules" + tag "modules_nfcore" +@@ -70,4 +69,54 @@ + ) + } + } ++ ++ test("Single-end-stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test_single_end', single_end:true ], ++ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR13255544.tar.gz', checkIfExists: true) ++ ] ++ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) ++ input[2] = [] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } ++ ++ test("Paired-end-stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ input[0] = [ ++ [ id:'test_paired_end', single_end:false ], ++ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR11140744.tar.gz', checkIfExists: true) ++ ] ++ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) ++ input[2] = [] ++ """ ++ } ++ } ++ ++ then { ++ assertAll( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } + } + +--- modules/nf-core/sratools/fasterqdump/tests/nextflow.config ++++ /dev/null +@@ -1,5 +0,0 @@ +-process { +- withName: SRATOOLS_FASTERQDUMP { +- ext.args = '' +- } +-} +************************************************************ diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test index cb81496f..6996cd18 100644 --- a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test @@ -1,7 +1,6 @@ nextflow_process { name "Test Process SRATOOLS_FASTERQDUMP" script "../main.nf" - config "./nextflow.config" process "SRATOOLS_FASTERQDUMP" tag "modules" tag "modules_nfcore" @@ -70,4 +69,54 @@ nextflow_process { ) } } + + test("Single-end-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test_single_end', single_end:true ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR13255544.tar.gz', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Paired-end-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test_paired_end', single_end:false ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR11140744.tar.gz', checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap index 14a6429d..5d0c3e7c 100644 --- a/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap +++ b/modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap @@ -30,9 +30,44 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-28T15:25:52.837288" + "timestamp": "2024-05-17T22:01:43.486256" + }, + "Single-end-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test_single_end", + "single_end": true + }, + "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ], + "reads": [ + [ + { + "id": "test_single_end", + "single_end": true + }, + "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-17T21:40:42.335786" }, "Paired-end": { "content": [ @@ -71,8 +106,49 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-17T22:09:55.6396" + }, + "Paired-end-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test_paired_end", + "single_end": false + }, + [ + "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ], + "reads": [ + [ + { + "id": "test_paired_end", + "single_end": false + }, + [ + "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" }, - "timestamp": "2024-02-28T15:26:42.466223" + "timestamp": "2024-05-17T20:35:44.782058" } } \ No newline at end of file diff --git a/modules/nf-core/sratools/fasterqdump/tests/nextflow.config b/modules/nf-core/sratools/fasterqdump/tests/nextflow.config deleted file mode 100644 index 23e4100b..00000000 --- a/modules/nf-core/sratools/fasterqdump/tests/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - withName: SRATOOLS_FASTERQDUMP { - ext.args = '' - } -} \ No newline at end of file diff --git a/modules/nf-core/sratools/prefetch/main.nf b/modules/nf-core/sratools/prefetch/main.nf index 170f1753..46e7cb3f 100644 --- a/modules/nf-core/sratools/prefetch/main.nf +++ b/modules/nf-core/sratools/prefetch/main.nf @@ -32,4 +32,16 @@ process SRATOOLS_PREFETCH { } template 'retry_with_backoff.sh' + + stub: + """ + mkdir $id + touch $id/${id}.sra + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sratools: \$(prefetch --version 2>&1 | grep -Eo '[0-9.]+') + curl: \$(curl --version | head -n 1 | sed 's/^curl //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/sratools/prefetch/meta.yml b/modules/nf-core/sratools/prefetch/meta.yml index ff54229f..7ed42d49 100644 --- a/modules/nf-core/sratools/prefetch/meta.yml +++ b/modules/nf-core/sratools/prefetch/meta.yml @@ -54,3 +54,4 @@ authors: - "@Midnighter" maintainers: - "@Midnighter" + - "@gallvp" diff --git a/modules/nf-core/sratools/prefetch/sratools-prefetch.diff b/modules/nf-core/sratools/prefetch/sratools-prefetch.diff new file mode 100644 index 00000000..25a938e7 --- /dev/null +++ b/modules/nf-core/sratools/prefetch/sratools-prefetch.diff @@ -0,0 +1,112 @@ +Changes in module 'nf-core/sratools/prefetch' +--- modules/nf-core/sratools/prefetch/meta.yml ++++ modules/nf-core/sratools/prefetch/meta.yml +@@ -54,3 +54,4 @@ + - "@Midnighter" + maintainers: + - "@Midnighter" ++ - "@gallvp" + +--- modules/nf-core/sratools/prefetch/main.nf ++++ modules/nf-core/sratools/prefetch/main.nf +@@ -32,4 +32,16 @@ + } + + template 'retry_with_backoff.sh' ++ ++ stub: ++ """ ++ mkdir $id ++ touch $id/${id}.sra ++ ++ cat <<-END_VERSIONS > versions.yml ++ "${task.process}": ++ sratools: \$(prefetch --version 2>&1 | grep -Eo '[0-9.]+') ++ curl: \$(curl --version | head -n 1 | sed 's/^curl //; s/ .*\$//') ++ END_VERSIONS ++ """ + } + +--- modules/nf-core/sratools/prefetch/tests/main.nf.test.snap ++++ modules/nf-core/sratools/prefetch/tests/main.nf.test.snap +@@ -1,4 +1,43 @@ + { ++ "sratools/prefetch/stub": { ++ "content": [ ++ { ++ "0": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "1": [ ++ "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" ++ ], ++ "sra": [ ++ [ ++ { ++ "id": "test", ++ "single_end": false ++ }, ++ [ ++ "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" ++ ] ++ ] ++ ], ++ "versions": [ ++ "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" ++ ] ++ } ++ ], ++ "meta": { ++ "nf-test": "0.8.4", ++ "nextflow": "23.10.1" ++ }, ++ "timestamp": "2024-05-17T20:07:31.627115" ++ }, + "sratools/prefetch with sralite": { + "content": [ + { +@@ -77,4 +116,4 @@ + }, + "timestamp": "2024-02-28T11:48:37.428307" + } +-} ++} +--- modules/nf-core/sratools/prefetch/tests/main.nf.test ++++ modules/nf-core/sratools/prefetch/tests/main.nf.test +@@ -46,4 +46,26 @@ + ) + } + } ++ ++ test("sratools/prefetch/stub") { ++ ++ options '-stub' ++ ++ when { ++ process { ++ """ ++ input[0] = Channel.of([ [ id:'test', single_end:false ], 'DRR000774' ]) ++ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) ++ input[2] = [] ++ """ ++ } ++ } ++ ++ then { ++ assertAll ( ++ { assert process.success }, ++ { assert snapshot(process.out).match() } ++ ) ++ } ++ } + } + +************************************************************ diff --git a/modules/nf-core/sratools/prefetch/tests/main.nf.test b/modules/nf-core/sratools/prefetch/tests/main.nf.test index f59de7cb..92034d40 100644 --- a/modules/nf-core/sratools/prefetch/tests/main.nf.test +++ b/modules/nf-core/sratools/prefetch/tests/main.nf.test @@ -46,4 +46,26 @@ nextflow_process { ) } } + + test("sratools/prefetch/stub") { + + options '-stub' + + when { + process { + """ + input[0] = Channel.of([ [ id:'test', single_end:false ], 'DRR000774' ]) + input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) + input[2] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap b/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap index 67795ebb..82a1969c 100644 --- a/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap +++ b/modules/nf-core/sratools/prefetch/tests/main.nf.test.snap @@ -1,4 +1,43 @@ { + "sratools/prefetch/stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ], + "sra": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-17T20:07:31.627115" + }, "sratools/prefetch with sralite": { "content": [ { @@ -77,4 +116,4 @@ }, "timestamp": "2024-02-28T11:48:37.428307" } -} +} \ No newline at end of file diff --git a/tests/stub/params.json b/tests/stub/params.json index 4f11914c..d3ea8333 100644 --- a/tests/stub/params.json +++ b/tests/stub/params.json @@ -20,7 +20,7 @@ "hic_skip_fastqc": false, "synteny_skip": false, "synteny_xref_assemblies": "assets/xrefsheet.csv", - "merqury_skip": true, + "merqury_skip": false, "max_cpus": 2, "max_memory": "6.GB", "max_time": "6.h" From e4bbd3187da88dd384639fed65ed630fdffde18b Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Sat, 18 May 2024 21:12:42 +1200 Subject: [PATCH 44/76] Nowing using a single FETCHNGS workflow to download sra --- conf/modules.config | 2 - .../utils_nfcore_assemblyqc_pipeline/main.nf | 10 +- workflows/assemblyqc.nf | 143 +++++++++--------- 3 files changed, 79 insertions(+), 76 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 7910d0cc..a5fd9ad0 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -142,8 +142,6 @@ process { ] } - - withName: FILTER_BY_LENGTH { ext.args = params.tidk_filter_by_size ? "-m ${params.tidk_filter_size_bp}" : '' ext.prefix = { "${meta.id}.filtered" } diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 489b1c36..64118e4b 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -103,8 +103,8 @@ workflow PIPELINE_INITIALISATION { ) | map { sample, fq -> "$fq" != 'is_sra' - ? [ [ id: sample, single_end: false, is_sra: false ], fq ] - : [ [ id: sample, single_end: false, is_sra: true ], sample ] + ? [ [ id: sample, single_end: false, is_sra: false, type: 'hic' ], fq ] + : [ [ id: sample, single_end: false, is_sra: true, type: 'hic' ], sample ] } ch_xref_assembly = params.synteny_skip || ! params.synteny_xref_assemblies @@ -342,14 +342,14 @@ def validateAndNormaliseReadsTupe ( fid, metas, reads ) { if ( metas.first().is_sra ) { // SRA return [ - [ id:individualID, single_end:false, is_sra:true, assemblies:tags ], + [ id:individualID, single_end:false, is_sra:true, type: 'reads', assemblies:tags ], reads.first() ] } if ( endedness.unique().first() ) { // Single ended return [ - [ id:individualID, single_end:true, is_sra:false, assemblies:tags ], + [ id:individualID, single_end:true, is_sra:false, type: 'reads', assemblies:tags ], reads.first().collect { file(it, checkIfExists: true) } ] } @@ -361,7 +361,7 @@ def validateAndNormaliseReadsTupe ( fid, metas, reads ) { } return [ - [ id:individualID, single_end:false, is_sra:false, assemblies:tags ], + [ id:individualID, single_end:false, is_sra:false, type: 'reads', assemblies:tags ], reads.first().collect { file(it, checkIfExists: true) } ] } diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index ea2729d7..dc9b8990 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -25,8 +25,7 @@ include { FASTK_FASTK } from '../modules/nf-core/fastk/fas include { MERQURYFK_MERQURYFK } from '../modules/nf-core/merquryfk/merquryfk/main' include { CREATEREPORT } from '../modules/local/createreport' -include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' -include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_READS } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' +include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as FETCHNGS } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -256,6 +255,75 @@ workflow ASSEMBLYQC { [ tag, fa ] } + // MODULE: CAT_CAT as TAG_ASSEMBLY + TAG_ASSEMBLY ( + ch_clean_assembly.map { tag, fa -> [ [ id: tag ], fa ] } + ) + + ch_clean_assembly_tagged = TAG_ASSEMBLY.out.file_out + ch_versions = ch_versions.mix(TAG_ASSEMBLY.out.versions) + + // Prepare channels for FETCHNGS + // HiC + ch_hic_input_assembly = ! params.hic + ? Channel.empty() + : ch_clean_assembly + | map { tag, fa -> [ [ id: tag ], fa ] } + + ch_hic_reads_branch = ch_hic_reads + | combine(ch_hic_input_assembly.first()) // Wait till first clean assembly arrives + | map { meta, fq, meta2, fasta -> [ meta, fq ] } + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + // Reads + ch_reads_assemblies = ch_reads + | combine( + ch_clean_assembly_tagged + | map { [ it ] } + | collect + | map { [ it ] } + ) + | map { meta, fq, assemblies -> + [ + [ + id: meta.id, + single_end: meta.single_end, + is_sra: meta.is_sra, + type: meta.type + ], + fq, + assemblies + .findAll { meta2, fasta -> meta2.id in meta.assemblies } + .collect { meta2, fasta -> fasta } + .flatten() + .sort(false) + ] + } + + ch_reads_branch = ch_reads_assemblies + | map { meta, fq, fastas -> [ meta, fq ] } + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + + // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as FETCHNGS + ch_fetchngs_inputs = ch_hic_reads_branch.sra + | mix(ch_reads_branch.sra) + FETCHNGS( + ch_fetchngs_inputs, + [] + ) + + ch_fetchngs = FETCHNGS.out.reads + | branch { meta, fq -> + hic: meta.type == 'hic' + reads: meta.type == 'reads' + } + ch_versions = ch_versions.mix(FETCHNGS.out.versions) + // MODULE: ASSEMBLATHON_STATS ASSEMBLATHON_STATS( ch_clean_assembly, @@ -378,29 +446,9 @@ workflow ASSEMBLYQC { ch_kraken2_plot = FASTA_KRAKEN2.out.plot ch_versions = ch_versions.mix(FASTA_KRAKEN2.out.versions) - - // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_HIC - ch_hic_reads_branch = ch_hic_reads - | branch { meta, fq -> - sra: meta.is_sra - rest: ! meta.is_sra - } - - DOWNLOAD_HIC( - ch_hic_reads_branch.sra, - [] - ) - - ch_versions = ch_versions.mix(DOWNLOAD_HIC.out.versions) - ch_hic_read_files = DOWNLOAD_HIC.out.reads - | mix(ch_hic_reads_branch.rest) - // SUBWORKFLOW: FQ2HIC - ch_hic_input_assembly = ! params.hic - ? Channel.empty() - : ch_clean_assembly - | map { tag, fa -> [ [ id: tag ], fa ] } - + ch_hic_read_files = ch_fetchngs.hic + | mix(ch_hic_reads_branch.rest) FQ2HIC( ch_hic_read_files, ch_hic_input_assembly, @@ -428,52 +476,9 @@ workflow ASSEMBLYQC { ch_synteny_plots = FASTA_SYNTENY.out.png.mix(FASTA_SYNTENY.out.html) ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) - // MODULE: CAT_CAT as TAG_ASSEMBLY - TAG_ASSEMBLY ( - ch_clean_assembly.map { tag, fa -> [ [ id: tag ], fa ] } - ) - - ch_clean_assembly_tagged = TAG_ASSEMBLY.out.file_out - ch_versions = ch_versions.mix(TAG_ASSEMBLY.out.versions) - - // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as DOWNLOAD_READS - ch_reads_assemblies = ch_reads - | combine( - ch_clean_assembly_tagged - | map { [ it ] } - | collect - | map { [ it ] } - ) - | map { meta, fq, assemblies -> - [ - [ id: meta.id, single_end: meta.single_end, is_sra: meta.is_sra ], - fq, - assemblies - .findAll { meta2, fasta -> meta2.id in meta.assemblies } - .collect { meta2, fasta -> fasta } - .flatten() - .sort(false) - ] - } - - ch_reads_branch = ch_reads_assemblies - | map { meta, fq, fastas -> [ meta, fq ] } - | branch { meta, fq -> - sra: meta.is_sra - rest: ! meta.is_sra - } - - DOWNLOAD_READS( - ch_reads_branch.sra, - [] - ) - - ch_reads_files = DOWNLOAD_READS.out.reads - | mix(ch_reads_branch.rest) - - ch_versions = ch_versions.mix(DOWNLOAD_READS.out.versions) - // MODULE: FASTK_FASTK + ch_reads_files = ch_fetchngs.reads + | mix(ch_reads_branch.rest) FASTK_FASTK ( ch_reads_files ) ch_reads_fastk_hist = FASTK_FASTK.out.hist From 94e80c9dd3928c5a94e4e3380f69c01ddd042cf7 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Sun, 19 May 2024 21:23:17 +1200 Subject: [PATCH 45/76] Added phased2x example for merqury.fk analysis --- assets/schema_input.json | 31 ++++++--------------- docs/usage.md | 3 +- tests/merqury.fk/phased2x/assemblysheet.csv | 3 ++ tests/merqury.fk/phased2x/params.json | 10 +++++++ 4 files changed, 23 insertions(+), 24 deletions(-) create mode 100644 tests/merqury.fk/phased2x/assemblysheet.csv create mode 100644 tests/merqury.fk/phased2x/params.json diff --git a/assets/schema_input.json b/assets/schema_input.json index f415c25e..7c58c538 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -75,36 +75,21 @@ ], "dependentRequired": ["reads_1"] }, - "maternal_reads_1": { - "errorMessage": "maternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "is_maternal": { "anyOf": [ { "type": "string", - "pattern": "^SR\\w+$|^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" - }, - { - "type": "string", - "maxLength": 0 - } - ], - "dependentRequired": ["reads_1", "paternal_reads_1"] - }, - "maternal_reads_2": { - "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", - "anyOf": [ - { - "type": "string", - "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + "pattern": "^(yes|no)$" }, { "type": "string", "maxLength": 0 } ], - "dependentRequired": ["maternal_reads_1"] + "errorMessage": "Maternal haplotype should be indicated by 'yes' or 'no'" }, - "paternal_reads_1": { - "errorMessage": "paternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "parent_reads_1": { + "errorMessage": "parent_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", @@ -115,9 +100,9 @@ "maxLength": 0 } ], - "dependentRequired": ["reads_1", "maternal_reads_1"] + "dependentRequired": ["reads_1", "is_maternal"] }, - "paternal_reads_2": { + "parent_reads_2": { "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { @@ -129,7 +114,7 @@ "maxLength": 0 } ], - "dependentRequired": ["paternal_reads_1"] + "dependentRequired": ["parent_reads_1"] } }, "required": ["tag", "fasta"] diff --git a/docs/usage.md b/docs/usage.md index 9fc62733..50630160 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -10,12 +10,13 @@ You will need to create an assemblysheet with information about the assemblies y - `monoploid_ids [Optional]:` A txt file listing the IDs used to calculate LAI in monoploid mode if necessary - `synteny_labels [Optional]:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) when performing synteny analysis - `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of the same genome by MERQURY.FK. -- `reads_2 [Optional]`: If `reads_1` is a SRA ID, this column is ignored. Otherwise, this column should list the second file of the paired reads. +- `reads_2 [Optional]`: This column lists the second file if paired reads are used. If `reads_1` is a SRA ID, this column is ignored. See following assemblysheet examples for MERQURY.FK analysis. - [assemblysheet - 1x](../assets/assemblysheetv2.csv) - [assemblysheet - mixed2x](../tests/merqury.fk/mixed2x/assemblysheet.csv) +- [assemblysheet - phased2x](../tests/merqury.fk/phased2x/assemblysheet.csv) ## External databases diff --git a/tests/merqury.fk/phased2x/assemblysheet.csv b/tests/merqury.fk/phased2x/assemblysheet.csv new file mode 100644 index 00000000..852fd392 --- /dev/null +++ b/tests/merqury.fk/phased2x/assemblysheet.csv @@ -0,0 +1,3 @@ +tag,fasta,reads_1 +COL,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fasta,SRR3703081 +CVI,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fasta,SRR3703081 diff --git a/tests/merqury.fk/phased2x/params.json b/tests/merqury.fk/phased2x/params.json new file mode 100644 index 00000000..697703b9 --- /dev/null +++ b/tests/merqury.fk/phased2x/params.json @@ -0,0 +1,10 @@ +{ + "config_profile_name": "Test profile", + "config_profile_description": "Merqury.FK test for a phased diploid assembly contained in separate fasta", + "input": "tests/merqury.fk/phased2x/assemblysheet.csv", + "merqury_skip": false, + "merqury_kmer_length": 21, + "max_cpus": 8, + "max_memory": "32.GB", + "max_time": "6.h" +} From 8a7eb131b84bc96150c7c16b88f7f76841b2144d Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Tue, 21 May 2024 13:59:44 +1200 Subject: [PATCH 46/76] Enroute to MERQURY.FK trio mode --- assets/schema_input.json | 31 ++- conf/modules.config | 1 + docs/usage.md | 26 +- main.nf | 6 + modules/local/merquryfk_hapmaker.nf | 101 +++++++ modules/nf-core/merquryfk/merquryfk/main.nf | 18 +- .../utils_nfcore_assemblyqc_pipeline/main.nf | 58 +++- .../merqury.fk/phased2x.mp/assemblysheet.csv | 4 + .../phased2x.mp/assemblysheet.csv.bk | 3 + tests/merqury.fk/phased2x.mp/params.json | 10 + workflows/assemblyqc.nf | 249 +++++++++++++++--- 11 files changed, 433 insertions(+), 74 deletions(-) create mode 100644 modules/local/merquryfk_hapmaker.nf create mode 100644 tests/merqury.fk/phased2x.mp/assemblysheet.csv create mode 100644 tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk create mode 100644 tests/merqury.fk/phased2x.mp/params.json diff --git a/assets/schema_input.json b/assets/schema_input.json index 7c58c538..f415c25e 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -75,21 +75,36 @@ ], "dependentRequired": ["reads_1"] }, - "is_maternal": { + "maternal_reads_1": { + "errorMessage": "maternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", - "pattern": "^(yes|no)$" + "pattern": "^SR\\w+$|^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" + }, + { + "type": "string", + "maxLength": 0 + } + ], + "dependentRequired": ["reads_1", "paternal_reads_1"] + }, + "maternal_reads_2": { + "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(a|asta|as|sa|na|astq|q)(\\.gz)?$" }, { "type": "string", "maxLength": 0 } ], - "errorMessage": "Maternal haplotype should be indicated by 'yes' or 'no'" + "dependentRequired": ["maternal_reads_1"] }, - "parent_reads_1": { - "errorMessage": "parent_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", + "paternal_reads_1": { + "errorMessage": "paternal_reads_1 should be a SRA ID for paired FASTQ files or FASTX file path without spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { "type": "string", @@ -100,9 +115,9 @@ "maxLength": 0 } ], - "dependentRequired": ["reads_1", "is_maternal"] + "dependentRequired": ["reads_1", "maternal_reads_1"] }, - "parent_reads_2": { + "paternal_reads_2": { "errorMessage": "FASTX file path cannot contain spaces and must have extension '.f(a|asta|as|sa|na|astq|q)' or '.f(a|asta|as|sa|na|astq|q).gz'", "anyOf": [ { @@ -114,7 +129,7 @@ "maxLength": 0 } ], - "dependentRequired": ["parent_reads_1"] + "dependentRequired": ["paternal_reads_1"] } }, "required": ["tag", "fasta"] diff --git a/conf/modules.config b/conf/modules.config index a5fd9ad0..04f77eca 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -331,6 +331,7 @@ process { } withName: MERQURYFK_MERQURYFK { + ext.args = '-v' publishDir = [ [ path: { "${params.outdir}/merquryfk/${meta.id}" }, diff --git a/docs/usage.md b/docs/usage.md index 50630160..f262522f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -2,21 +2,15 @@ ## Assemblysheet input -You will need to create an assemblysheet with information about the assemblies you would like to analyse before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 5 columns, and a header row. An [example assemblysheet](../assets/assemblysheetv2.csv) has been provided with the pipeline. Its fields are: +You will need to create an assemblysheet with information about the assemblies you would like to analyse before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with at least two columns, and a header row. An [example assemblysheet](../assets/assemblysheet.csv) has been provided with the pipeline. Its fields are: - `tag:` A unique tag which represents the target assembly throughout the pipeline and in the final report - `fasta:` FASTA file - `gff3 [Optional]:` GFF3 annotation file if available - `monoploid_ids [Optional]:` A txt file listing the IDs used to calculate LAI in monoploid mode if necessary - `synteny_labels [Optional]:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) when performing synteny analysis -- `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of the same genome by MERQURY.FK. -- `reads_2 [Optional]`: This column lists the second file if paired reads are used. If `reads_1` is a SRA ID, this column is ignored. - -See following assemblysheet examples for MERQURY.FK analysis. -- [assemblysheet - 1x](../assets/assemblysheetv2.csv) -- [assemblysheet - mixed2x](../tests/merqury.fk/mixed2x/assemblysheet.csv) -- [assemblysheet - phased2x](../tests/merqury.fk/phased2x/assemblysheet.csv) +See the [Merqury.FK](#merquryfk-k-mer-analysis) section For description of assemblysheet columns related to k-mer analysis with Merqury.FK. ## External databases @@ -72,7 +66,7 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p ### HiC -- `hic`: Path to reads provided as a SRA ID or as a path to paired reads with pattern '\*{1,2}.(fastq|fq).gz' +- `hic`: Path to reads provided as a SRA ID or as a path to paired reads with pattern '\*{1,2}.(fastq|fq).gz'. These reads are applied to each assembly listed by assemblysheet. - `hic_skip_fastp`: Skip fastp trimming - `hic_skip_fastqc`: Skip QC by fastqc - `hic_fastp_ext_args`: Additional arguments for fastp (default: '--qualified_quality_phred 20 --length_required 50') @@ -93,6 +87,20 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p ### Merqury.FK K-mer analysis +#### Additional assemblysheet columns + +- `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of the same genome by MERQURY.FK. A genome can only have one or two haplotypes. +- `reads_2 [Optional]`: This column lists the second file if paired reads are used. If `reads_1` is a SRA ID, this column is ignored. + +See following assemblysheet examples for MERQURY.FK analysis. + +- [assemblysheet - 1x](../assets/assemblysheetv2.csv) +- [assemblysheet - mixed2x](../tests/merqury.fk/mixed2x/assemblysheet.csv) +- [assemblysheet - phased2x](../tests/merqury.fk/phased2x/assemblysheet.csv) +- [assemblysheet - phased2x with parent reads](../tests/merqury.fk/phased2x.mp/assemblysheet.csv) + +#### Parameters + - `merqury_kmer_length`: kmer length for merqury analysis ## Running the pipeline diff --git a/main.nf b/main.nf index 04eef6ad..91e82dff 100755 --- a/main.nf +++ b/main.nf @@ -35,6 +35,8 @@ workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { ch_hic_reads ch_xref_assembly ch_reads + ch_maternal_reads + ch_paternal_reads ch_params_as_json ch_summary_params_as_json @@ -47,6 +49,8 @@ workflow PLANTFOODRESEARCHOPEN_ASSEMBLYQC { ch_hic_reads, ch_xref_assembly, ch_reads, + ch_maternal_reads, + ch_paternal_reads, ch_params_as_json, ch_summary_params_as_json ) @@ -83,6 +87,8 @@ workflow { PIPELINE_INITIALISATION.out.hic_reads, PIPELINE_INITIALISATION.out.xref_assembly, PIPELINE_INITIALISATION.out.reads, + PIPELINE_INITIALISATION.out.maternal_reads, + PIPELINE_INITIALISATION.out.paternal_reads, PIPELINE_INITIALISATION.out.params_as_json, PIPELINE_INITIALISATION.out.summary_params_as_json ) diff --git a/modules/local/merquryfk_hapmaker.nf b/modules/local/merquryfk_hapmaker.nf new file mode 100644 index 00000000..311a3b79 --- /dev/null +++ b/modules/local/merquryfk_hapmaker.nf @@ -0,0 +1,101 @@ +process MERQURYFK_HAPMAKER { + tag "$meta.id" + label 'process_medium' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' + + input: + tuple val(meta), path(ktab) + path(mktab) + path(pktab) + + output: + tuple val(meta), path('*_mat.hap.ktab*', hidden: true) , emit: mat_hapmers + tuple val(meta), path('*_pat.hap.ktab*', hidden: true) , emit: pat_hapmers + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "MERQURYFK_HAPMAKER module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def mktab_file = mktab.find { it.toString().endsWith(".ktab") } + def pktab_file = pktab.find { it.toString().endsWith(".ktab") } + def ktab_file = ktab.find { it.toString().endsWith(".ktab") } + def mktab_basename = mktab_file.baseName + def pktab_basename = pktab_file.baseName + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + HAPmaker \\ + $args \\ + -T$task.cpus \\ + $mktab_file \\ + $pktab_file \\ + $ktab_file + + mv ${mktab_basename}.hap.ktab ${prefix}_mat.hap.ktab + + find . -name ".${mktab_basename}.hap.*" \\ + | while read -r file; do + new_name=\$(echo "\$file" | sed "s/${mktab_basename}/${prefix}_mat/") + mv "\$file" "\$new_name" + done + + mv ${pktab_basename}.hap.ktab ${prefix}_pat.hap.ktab + + find . -name ".${pktab_basename}.hap.*" \\ + | while read -r file; do + new_name=\$(echo "\$file" | sed "s/${pktab_basename}/${prefix}_pat/") + mv "\$file" "\$new_name" + done + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + merquryfk: $MERQURY_VERSION + END_VERSIONS + """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "MERQURYFK_HAPMAKER module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def mktab_file = mktab.find { it.toString().endsWith(".ktab") } + def pktab_file = pktab.find { it.toString().endsWith(".ktab") } + def ktab_file = ktab.find { it.toString().endsWith(".ktab") } + def mktab_basename = mktab_file.baseName + def pktab_basename = pktab_file.baseName + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + echo \\ + "HAPmaker \\ + $args \\ + -T$task.cpus \\ + $mktab_file \\ + $pktab_file \\ + $ktab_file" + + touch ${prefix}_mat.hap.ktab + touch .${prefix}_mat.hap.ktab.1 + + touch ${prefix}_pat.hap.ktab + touch .${prefix}_pat.hap.ktab.1 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastk: $FASTK_VERSION + merquryfk: $MERQURY_VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/merquryfk/merquryfk/main.nf b/modules/nf-core/merquryfk/merquryfk/main.nf index f22e4431..ecc0f70f 100644 --- a/modules/nf-core/merquryfk/merquryfk/main.nf +++ b/modules/nf-core/merquryfk/merquryfk/main.nf @@ -35,15 +35,16 @@ process MERQURYFK_MERQURYFK { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." } - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def ktabs = fastk_ktab.findAll { it.toString().endsWith(".ktab") }.collect { "$it" }.join(' ') + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ MerquryFK \\ $args \\ -T$task.cpus \\ - ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ + $ktabs \\ $assembly \\ $haplotigs \\ $prefix @@ -61,9 +62,10 @@ process MERQURYFK_MERQURYFK { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." } - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def ktabs = fastk_ktab.findAll { it.toString().endsWith(".ktab") }.collect { "$it" }.join(' ') + def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. def touch_asm_bed = "touch ${prefix}.${assembly.baseName}_only.bed" @@ -84,7 +86,7 @@ process MERQURYFK_MERQURYFK { "MerquryFK \\ $args \\ -T$task.cpus \\ - ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ + $ktabs \\ $assembly \\ $haplotigs \\ $prefix" diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 64118e4b..0bc0efd6 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -135,7 +135,41 @@ workflow PIPELINE_INITIALISATION { } | groupTuple | map { fid, metas, reads -> - validateAndNormaliseReadsTupe ( fid, metas, reads ) + validateAndNormaliseReadsTuple ( fid, metas, reads, 'reads' ) + } + + ch_maternal_reads = params.merqury_skip + ? Channel.empty() + : ch_input_validated + | map { input_data -> + def tag = input_data[0] + def maternal_reads_1 = input_data[7] + def maternal_reads_2 = input_data[8] + + maternal_reads_1 + ? extractReadsTuple ( tag, maternal_reads_1, maternal_reads_2 ) + : null + } + | groupTuple + | map { fid, metas, m_reads -> + validateAndNormaliseReadsTuple ( fid, metas, m_reads, 'maternal' ) + } + + ch_paternal_reads = params.merqury_skip + ? Channel.empty() + : ch_input_validated + | map { input_data -> + def tag = input_data[0] + def paternal_reads_1 = input_data[9] + def paternal_reads_2 = input_data[10] + + paternal_reads_1 + ? extractReadsTuple ( tag, paternal_reads_1, paternal_reads_2 ) + : null + } + | groupTuple + | map { fid, metas, m_reads -> + validateAndNormaliseReadsTuple ( fid, metas, m_reads, 'paternal' ) } // Initialise parameter channels @@ -147,6 +181,8 @@ workflow PIPELINE_INITIALISATION { hic_reads = ch_hic_reads xref_assembly = ch_xref_assembly_validated reads = ch_reads + maternal_reads = ch_maternal_reads + paternal_reads = ch_paternal_reads params_as_json = ch_params_as_json summary_params_as_json = ch_summary_params_as_json versions = ch_versions @@ -324,32 +360,34 @@ def extractReadsTuple(tag, reads_1, reads_2) { ] } -def validateAndNormaliseReadsTupe ( fid, metas, reads ) { +def validateAndNormaliseReadsTuple ( fid, metas, reads, readsType ) { def tags = metas.collect { it.id }.flatten() def endedness = metas.collect { it.single_end }.flatten() + def identifier = readsType == 'reads' ? '' : "${readsType}_" // Validate if ( endedness.unique().size() != 1 ) { - error("Please check input assemblysheet -> Following assemblies have different reads_1 and reads_2: ${tags}") + error("Please check input assemblysheet -> Following assemblies have different ${identifier}reads_1 and ${identifier}reads_2: ${tags}") } - if ( tags.size() > 2 ) { - error("Please check input assemblysheet -> More than two assemblies (${tags}) are in the same read group: ${fid}") + if ( readsType == 'reads' && tags.size() > 2 ) { + error("Please check input assemblysheet -> More than two assemblies (${tags}) are in the same genome group defined by ${identifier}reads_1: ${fid.fid}") } - def individualID = tags.join('-and-') + "-reads-" + fid.fid.replaceAll(/\./, '_') + def groupIDPrefix = readsType == 'reads' ? ( tags.join('-and-') + "-${readsType}-" ) : '' + def groupID = groupIDPrefix + fid.fid.replaceAll(/\./, '_') if ( metas.first().is_sra ) { // SRA return [ - [ id:individualID, single_end:false, is_sra:true, type: 'reads', assemblies:tags ], + [ id:groupID, single_end:false, is_sra:true, type: readsType, assemblies:tags ], reads.first() ] } if ( endedness.unique().first() ) { // Single ended return [ - [ id:individualID, single_end:true, is_sra:false, type: 'reads', assemblies:tags ], + [ id:groupID, single_end:true, is_sra:false, type: readsType, assemblies:tags ], reads.first().collect { file(it, checkIfExists: true) } ] } @@ -357,11 +395,11 @@ def validateAndNormaliseReadsTupe ( fid, metas, reads ) { def reads_2 = reads.collect { it[1] } if ( reads_2.unique().size() != 1 ) { - error("Please check input assemblysheet -> Following assemblies have different reads_1 and reads_2: ${tags}") + error("Please check input assemblysheet -> Following assemblies have different ${identifier}reads_1 and ${identifier}reads_2: ${tags}") } return [ - [ id:individualID, single_end:false, is_sra:false, type: 'reads', assemblies:tags ], + [ id:groupID, single_end:false, is_sra:false, type: readsType, assemblies:tags ], reads.first().collect { file(it, checkIfExists: true) } ] } diff --git a/tests/merqury.fk/phased2x.mp/assemblysheet.csv b/tests/merqury.fk/phased2x.mp/assemblysheet.csv new file mode 100644 index 00000000..5ae40b57 --- /dev/null +++ b/tests/merqury.fk/phased2x.mp/assemblysheet.csv @@ -0,0 +1,4 @@ +tag,fasta,reads_1,reads_2,maternal_reads_1,paternal_reads_1 +COL,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fasta,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_1.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_2.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_CVI.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_COL.fastq.gz +CVI,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fasta,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_1.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_2.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_CVI.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_COL.fastq.gz +FI1,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/814/445/GCA_003814445.1_ASM381444v1/GCA_003814445.1_ASM381444v1_genomic.fna.gz,SRR8238189 diff --git a/tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk b/tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk new file mode 100644 index 00000000..df1ed671 --- /dev/null +++ b/tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk @@ -0,0 +1,3 @@ +tag,fasta,reads_1,maternal_reads_1,paternal_reads_1 +COL,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fasta,SRR3703081,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fastq.gz,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fastq.gz +CVI,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fasta,SRR3703081,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fastq.gz,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fastq.gz diff --git a/tests/merqury.fk/phased2x.mp/params.json b/tests/merqury.fk/phased2x.mp/params.json new file mode 100644 index 00000000..bc483334 --- /dev/null +++ b/tests/merqury.fk/phased2x.mp/params.json @@ -0,0 +1,10 @@ +{ + "config_profile_name": "Test profile", + "config_profile_description": "Merqury.FK test for a phased diploid assembly contained in separate fasta with parental reads", + "input": "tests/merqury.fk/phased2x.mp/assemblysheet.csv", + "merqury_skip": false, + "merqury_kmer_length": 21, + "max_cpus": 8, + "max_memory": "32.GB", + "max_time": "6.h" +} diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index dc9b8990..e5a627b2 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -22,6 +22,9 @@ include { FQ2HIC } from '../subworkflows/local/fq2hic include { CAT_CAT as TAG_ASSEMBLY } from '../modules/pfr/cat/cat/main' include { FASTA_SYNTENY } from '../subworkflows/local/fasta_synteny' include { FASTK_FASTK } from '../modules/nf-core/fastk/fastk/main' +include { FASTK_FASTK as MATERNAL_FASTK } from '../modules/nf-core/fastk/fastk/main' +include { FASTK_FASTK as PATERNAL_FASTK } from '../modules/nf-core/fastk/fastk/main' +include { MERQURYFK_HAPMAKER } from '../modules/local/merquryfk_hapmaker' include { MERQURYFK_MERQURYFK } from '../modules/nf-core/merquryfk/merquryfk/main' include { CREATEREPORT } from '../modules/local/createreport' @@ -40,6 +43,8 @@ workflow ASSEMBLYQC { ch_hic_reads ch_xref_assembly ch_reads + ch_maternal_reads + ch_paternal_reads ch_params_as_json ch_summary_params_as_json @@ -271,28 +276,29 @@ workflow ASSEMBLYQC { | map { tag, fa -> [ [ id: tag ], fa ] } ch_hic_reads_branch = ch_hic_reads - | combine(ch_hic_input_assembly.first()) // Wait till first clean assembly arrives + | combine(ch_hic_input_assembly.first()) + // Wait till first clean assembly arrives | map { meta, fq, meta2, fasta -> [ meta, fq ] } | branch { meta, fq -> sra: meta.is_sra rest: ! meta.is_sra } // Reads + ch_all_clean_assemblies = ch_clean_assembly_tagged + | map { [ it ] } + | collect + | map { [ it ] } + ch_reads_assemblies = ch_reads | combine( - ch_clean_assembly_tagged - | map { [ it ] } - | collect - | map { [ it ] } + ch_all_clean_assemblies ) + // This combine with the filter after map + // is a join on list of assembly tags + // such as [ tag1 ] or [ tag1, tag2 ] | map { meta, fq, assemblies -> [ - [ - id: meta.id, - single_end: meta.single_end, - is_sra: meta.is_sra, - type: meta.type - ], + meta, fq, assemblies .findAll { meta2, fasta -> meta2.id in meta.assemblies } @@ -301,6 +307,7 @@ workflow ASSEMBLYQC { .sort(false) ] } + | filter { meta, fq, fastas -> fastas } ch_reads_branch = ch_reads_assemblies | map { meta, fq, fastas -> [ meta, fq ] } @@ -309,18 +316,76 @@ workflow ASSEMBLYQC { rest: ! meta.is_sra } + // Maternal reads + ch_maternal_reads_branch = ch_maternal_reads + | combine( + ch_all_clean_assemblies + ) + // This combine/filter/map is used to sync the + // reads channel with clean_assembly channel + // so that the downstream modules wait for + // the upstream modules to complete first + | map { meta, fq, assemblies -> + [ + meta, + fq, + assemblies + .findAll { meta2, fasta -> meta2.id in meta.assemblies } + .collect { meta2, fasta -> fasta } + .flatten() + .sort(false) + ] + } + | filter { meta, fq, fastas -> fastas } + | map { meta, fq, assemblies -> [ meta, fq ] } + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + + // Paternal reads + ch_paternal_reads_branch = ch_paternal_reads + | combine( + ch_all_clean_assemblies + ) + | map { meta, fq, assemblies -> + [ + meta, + fq, + assemblies + .findAll { meta2, fasta -> meta2.id in meta.assemblies } + .collect { meta2, fasta -> fasta } + .flatten() + .sort(false) + ] + } + | filter { meta, fq, fastas -> fastas } + | map { meta, fq, assemblies -> [ meta, fq ] } + | branch { meta, fq -> + sra: meta.is_sra + rest: ! meta.is_sra + } + // MODULE: FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as FETCHNGS ch_fetchngs_inputs = ch_hic_reads_branch.sra | mix(ch_reads_branch.sra) + | mix(ch_maternal_reads_branch.sra) FETCHNGS( - ch_fetchngs_inputs, + ch_fetchngs_inputs.map { meta, sra -> [ [ id: meta.id, single_end: meta.single_end ], sra ] }, [] ) ch_fetchngs = FETCHNGS.out.reads + | join( + ch_fetchngs_inputs + | map { meta, sra -> [ [ id: meta.id, single_end: meta.single_end ], meta ] } + ) + | map { meta, fq, meta2 -> [ meta2, fq ] } | branch { meta, fq -> - hic: meta.type == 'hic' - reads: meta.type == 'reads' + hic: meta.type == 'hic' + reads: meta.type == 'reads' + maternal: meta.type == 'maternal' + paternal: meta.type == 'paternal' } ch_versions = ch_versions.mix(FETCHNGS.out.versions) @@ -479,25 +544,131 @@ workflow ASSEMBLYQC { // MODULE: FASTK_FASTK ch_reads_files = ch_fetchngs.reads | mix(ch_reads_branch.rest) + FASTK_FASTK ( ch_reads_files ) ch_reads_fastk_hist = FASTK_FASTK.out.hist ch_reads_fastk = FASTK_FASTK.out.ktab ch_versions = ch_versions.mix(FASTK_FASTK.out.versions.first()) - // MODULE: MERQURYFK_MERQURYFK - ch_merqury_assemblies = ch_reads_assemblies - | map { meta, fq, fastas -> [ meta, fastas ] } + // MODULE: FASTK_FASTK as MATERNAL_FASTK + ch_maternal_reads_files = ch_fetchngs.maternal + | mix(ch_maternal_reads_branch.rest) + + MATERNAL_FASTK( + // Guard against failed resume on addition of assemblies with same parents + ch_maternal_reads_files + | map { meta, fq -> [ [ id: meta.id ], fq ] } + ) + + // ch_maternal_fastk_hist = MATERNAL_FASTK.out.hist + // | join( + // ch_maternal_reads_files + // | map { meta, fq -> [ [ id: meta.id ], meta ] } + // ) + // | map { meta, hist, meta2 -> [ meta2, hist ] } + + ch_maternal_fastk = MATERNAL_FASTK.out.ktab + | join( + ch_maternal_reads_files + | map { meta, fq -> [ [ id: meta.id ], meta ] } + ) + | map { meta, ktab, meta2 -> [ meta2, ktab ] } + ch_versions = ch_versions.mix(MATERNAL_FASTK.out.versions.first()) + + // MODULE: FASTK_FASTK as PATERNAL_FASTK + ch_paternal_reads_files = ch_fetchngs.paternal + | mix(ch_paternal_reads_branch.rest) + + PATERNAL_FASTK( + ch_paternal_reads_files + | map { meta, fq -> [ [ id: meta.id ], fq ] } + ) + + // ch_paternal_fastk_hist = PATERNAL_FASTK.out.hist + // | join( + // ch_paternal_reads_files + // | map { meta, fq -> [ [ id: meta.id ], meta ] } + // ) + // | map { meta, hist, meta2 -> [ meta2, hist ] } + + ch_paternal_fastk = PATERNAL_FASTK.out.ktab + | join( + ch_paternal_reads_files + | map { meta, fq -> [ [ id: meta.id ], meta ] } + ) + | map { meta, ktab, meta2 -> [ meta2, ktab ] } + ch_versions = ch_versions.mix(PATERNAL_FASTK.out.versions.first()) + + // MODULE: MERQURYFK_HAPMAKER + ch_all_assemblies_with_parents = ch_maternal_fastk + | mix(ch_paternal_fastk) + | flatMap { meta, ktab -> meta.assemblies } + | unique + | collect + | map { [ it ] } + | ifEmpty( [ [] ] ) + ch_reads_fastk_without_parents = ch_reads_fastk + | combine( + ch_all_assemblies_with_parents + ) + | filter { meta, ktab, p_asms -> ! meta.assemblies.any { it in p_asms } } + | map { meta, ktab, p_asms -> [ meta, ktab, [], [] ] } + + ch_group_fastk = ch_reads_fastk + | combine ( ch_maternal_fastk ) + | filter { meta, ktab, meta2, mktab -> + meta.assemblies.every { it in meta2.assemblies } + } + | map { meta, ktab, meta2, mktab -> + [ meta, ktab, mktab ] + } + | combine ( ch_paternal_fastk ) + | filter { meta, ktab, mktab, meta2, pktab -> + meta.assemblies.every { it in meta2.assemblies } + } + | map { meta, ktab, mktab, meta2, pktab -> + [ meta, ktab, mktab, pktab ] + } + + MERQURYFK_HAPMAKER( + ch_group_fastk.map { meta, ktab, mktab, pktab -> [ meta, ktab ] }, + ch_group_fastk.map { meta, ktab, mktab, pktab -> mktab }, + ch_group_fastk.map { meta, ktab, mktab, pktab -> pktab } + ) + + ch_parental_hapmers = MERQURYFK_HAPMAKER.out.mat_hapmers + | join(MERQURYFK_HAPMAKER.out.pat_hapmers) + ch_versions = ch_versions.mix(MERQURYFK_HAPMAKER.out.versions.first()) + + // Prepare FASTK tables + ch_fastk_ktabs = ch_group_fastk + | join(ch_parental_hapmers) + | map { meta, ktab, mktab, pktab, hap_mktab, hap_pktab -> + [ meta, ktab, hap_mktab, hap_pktab ] + } + | mix(ch_reads_fastk_without_parents) + | map { meta, ktab, hap_mktab, hap_pktab -> + [ + meta, + ktab + hap_mktab + hap_pktab + ] + } + + // MODULE: MERQURYFK_MERQURYFK ch_merqury_inputs = ch_reads_fastk_hist | join( - ch_reads_fastk + ch_fastk_ktabs ) | join( - ch_merqury_assemblies + ch_reads_assemblies + | map { meta, fq, fastas -> [ meta, fastas ] } ) | map { meta, hist, ktab, fastas -> - [ meta, hist, ktab, fastas, [] ] + fastas.size() > 1 + ? [ meta, hist, ktab, fastas[0], fastas[1] ] + : [ meta, hist, ktab, fastas[0], [] ] } MERQURYFK_MERQURYFK ( ch_merqury_inputs ) @@ -527,25 +698,25 @@ workflow ASSEMBLYQC { ) // MODULE: CREATEREPORT - CREATEREPORT( - ch_invalid_assembly_log .collect().ifEmpty([]), - ch_invalid_gff3_log .collect().ifEmpty([]), - ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), - ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), - ch_assemblathon_stats .collect().ifEmpty([]), - ch_gt_stats .collect().ifEmpty([]), - ch_busco_outputs .collect().ifEmpty([]), - ch_busco_gff_outputs .collect().ifEmpty([]), - ch_tidk_outputs .collect().ifEmpty([]), - ch_lai_outputs .collect().ifEmpty([]), - ch_kraken2_plot .collect().ifEmpty([]), - ch_hic_html .collect().ifEmpty([]), - ch_synteny_plots .collect().ifEmpty([]), - ch_merqury_outputs .collect().ifEmpty([]), - ch_versions_yml, - ch_params_as_json, - ch_summary_params_as_json - ) + // CREATEREPORT( + // ch_invalid_assembly_log .collect().ifEmpty([]), + // ch_invalid_gff3_log .collect().ifEmpty([]), + // ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), + // ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), + // ch_assemblathon_stats .collect().ifEmpty([]), + // ch_gt_stats .collect().ifEmpty([]), + // ch_busco_outputs .collect().ifEmpty([]), + // ch_busco_gff_outputs .collect().ifEmpty([]), + // ch_tidk_outputs .collect().ifEmpty([]), + // ch_lai_outputs .collect().ifEmpty([]), + // ch_kraken2_plot .collect().ifEmpty([]), + // ch_hic_html .collect().ifEmpty([]), + // ch_synteny_plots .collect().ifEmpty([]), + // ch_merqury_outputs .collect().ifEmpty([]), + // ch_versions_yml, + // ch_params_as_json, + // ch_summary_params_as_json + // ) } /* From 60433a6d313d204b745a91f140272828fc139f48 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 22 May 2024 15:44:14 +1200 Subject: [PATCH 47/76] Migrated to merqury --- CHANGELOG.md | 5 +- CITATIONS.md | 4 +- README.md | 8 +- bin/assemblyqc.py | 4 +- ...{merquryfk_parser.py => merqury_parser.py} | 35 +- bin/report_modules/templates/base.html | 8 +- .../templates/merqury/dropdown.html | 10 + .../templates/merqury/merqury.html | 17 + .../templates/merqury/report_contents.html | 61 + .../templates/merquryfk/dropdown.html | 10 - .../templates/merquryfk/merquryfk.html | 21 - .../templates/merquryfk/report_contents.html | 36 - conf/modules.config | 21 +- docs/output.md | 10 +- docs/usage.md | 18 +- modules.json | 36 +- modules/local/createreport.nf | 2 +- modules/local/merquryfk_hapmaker.nf | 101 -- modules/nf-core/fastk/fastk/environment.yml | 7 - modules/nf-core/fastk/fastk/fastk-fastk.diff | 542 --------- modules/nf-core/fastk/fastk/main.nf | 71 -- modules/nf-core/fastk/fastk/meta.yml | 50 - .../nf-core/fastk/fastk/tests/main.nf.test | 110 -- .../fastk/fastk/tests/main.nf.test.snap | 346 ------ .../nf-core/fastk/fastk/tests/nextflow.config | 3 - modules/nf-core/fastk/fastk/tests/tags.yml | 2 - modules/nf-core/merqury/environment.yml | 7 + modules/nf-core/merqury/main.nf | 60 + modules/nf-core/merqury/meta.yml | 98 ++ .../merquryfk/merquryfk/environment.yml | 7 - modules/nf-core/merquryfk/merquryfk/main.nf | 101 -- .../merquryfk/merquryfk-merquryfk.diff | 1060 ----------------- modules/nf-core/merquryfk/merquryfk/meta.yml | 113 -- .../merquryfk/merquryfk/tests/main.nf.test | 153 --- .../merquryfk/tests/main.nf.test.snap | 802 ------------- .../merquryfk/merquryfk/tests/nextflow.config | 11 - .../merquryfk/merquryfk/tests/tags.yml | 2 - modules/nf-core/meryl/count/environment.yml | 7 + modules/nf-core/meryl/count/main.nf | 53 + modules/nf-core/meryl/count/meta.yml | 45 + .../nf-core/meryl/count/tests/main.nf.test | 60 + .../meryl/count/tests/main.nf.test.snap | 332 ++++++ modules/nf-core/meryl/count/tests/tags.yml | 2 + .../nf-core/meryl/unionsum/environment.yml | 7 + modules/nf-core/meryl/unionsum/main.nf | 49 + modules/nf-core/meryl/unionsum/meta.yml | 43 + .../nf-core/meryl/unionsum/tests/main.nf.test | 123 ++ .../meryl/unionsum/tests/main.nf.test.snap | 627 ++++++++++ modules/nf-core/meryl/unionsum/tests/tags.yml | 2 + .../fasterqdump/sratools-fasterqdump.diff | 252 ---- .../sratools/prefetch/sratools-prefetch.diff | 112 -- modules/pfr/merqury/hapmers/environment.yml | 9 + modules/pfr/merqury/hapmers/main.nf | 96 ++ modules/pfr/merqury/hapmers/meta.yml | 70 ++ .../pfr/merqury/hapmers/tests/main.nf.test | 113 ++ .../merqury/hapmers/tests/main.nf.test.snap | 64 + modules/pfr/merqury/hapmers/tests/tags.yml | 2 + .../utils_nfcore_assemblyqc_pipeline/main.nf | 3 +- tests/merqury.fk/phased2x.mp/params.json | 10 - .../mixed2x/assemblysheet.csv | 0 .../mixed2x/params.json | 4 +- .../phased2x.mp/assemblysheet.csv} | 0 .../phased2x.mp/assemblysheet.csv.local} | 2 +- tests/merqury/phased2x.mp/params.json | 10 + .../phased2x/assemblysheet.csv | 0 .../phased2x/params.json | 4 +- workflows/assemblyqc.nf | 237 ++-- 67 files changed, 2187 insertions(+), 4103 deletions(-) rename bin/report_modules/parsers/{merquryfk_parser.py => merqury_parser.py} (64%) create mode 100644 bin/report_modules/templates/merqury/dropdown.html create mode 100644 bin/report_modules/templates/merqury/merqury.html create mode 100644 bin/report_modules/templates/merqury/report_contents.html delete mode 100644 bin/report_modules/templates/merquryfk/dropdown.html delete mode 100644 bin/report_modules/templates/merquryfk/merquryfk.html delete mode 100644 bin/report_modules/templates/merquryfk/report_contents.html delete mode 100644 modules/local/merquryfk_hapmaker.nf delete mode 100644 modules/nf-core/fastk/fastk/environment.yml delete mode 100644 modules/nf-core/fastk/fastk/fastk-fastk.diff delete mode 100644 modules/nf-core/fastk/fastk/main.nf delete mode 100644 modules/nf-core/fastk/fastk/meta.yml delete mode 100644 modules/nf-core/fastk/fastk/tests/main.nf.test delete mode 100644 modules/nf-core/fastk/fastk/tests/main.nf.test.snap delete mode 100644 modules/nf-core/fastk/fastk/tests/nextflow.config delete mode 100644 modules/nf-core/fastk/fastk/tests/tags.yml create mode 100644 modules/nf-core/merqury/environment.yml create mode 100644 modules/nf-core/merqury/main.nf create mode 100644 modules/nf-core/merqury/meta.yml delete mode 100644 modules/nf-core/merquryfk/merquryfk/environment.yml delete mode 100644 modules/nf-core/merquryfk/merquryfk/main.nf delete mode 100644 modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff delete mode 100644 modules/nf-core/merquryfk/merquryfk/meta.yml delete mode 100644 modules/nf-core/merquryfk/merquryfk/tests/main.nf.test delete mode 100644 modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap delete mode 100644 modules/nf-core/merquryfk/merquryfk/tests/nextflow.config delete mode 100644 modules/nf-core/merquryfk/merquryfk/tests/tags.yml create mode 100644 modules/nf-core/meryl/count/environment.yml create mode 100644 modules/nf-core/meryl/count/main.nf create mode 100644 modules/nf-core/meryl/count/meta.yml create mode 100644 modules/nf-core/meryl/count/tests/main.nf.test create mode 100644 modules/nf-core/meryl/count/tests/main.nf.test.snap create mode 100644 modules/nf-core/meryl/count/tests/tags.yml create mode 100644 modules/nf-core/meryl/unionsum/environment.yml create mode 100644 modules/nf-core/meryl/unionsum/main.nf create mode 100644 modules/nf-core/meryl/unionsum/meta.yml create mode 100644 modules/nf-core/meryl/unionsum/tests/main.nf.test create mode 100644 modules/nf-core/meryl/unionsum/tests/main.nf.test.snap create mode 100644 modules/nf-core/meryl/unionsum/tests/tags.yml delete mode 100644 modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff delete mode 100644 modules/nf-core/sratools/prefetch/sratools-prefetch.diff create mode 100644 modules/pfr/merqury/hapmers/environment.yml create mode 100644 modules/pfr/merqury/hapmers/main.nf create mode 100644 modules/pfr/merqury/hapmers/meta.yml create mode 100644 modules/pfr/merqury/hapmers/tests/main.nf.test create mode 100644 modules/pfr/merqury/hapmers/tests/main.nf.test.snap create mode 100644 modules/pfr/merqury/hapmers/tests/tags.yml delete mode 100644 tests/merqury.fk/phased2x.mp/params.json rename tests/{merqury.fk => merqury}/mixed2x/assemblysheet.csv (100%) rename tests/{merqury.fk => merqury}/mixed2x/params.json (50%) rename tests/{merqury.fk/phased2x.mp/assemblysheet.csv.bk => merqury/phased2x.mp/assemblysheet.csv} (100%) rename tests/{merqury.fk/phased2x.mp/assemblysheet.csv => merqury/phased2x.mp/assemblysheet.csv.local} (84%) create mode 100644 tests/merqury/phased2x.mp/params.json rename tests/{merqury.fk => merqury}/phased2x/assemblysheet.csv (100%) rename tests/{merqury.fk => merqury}/phased2x/params.json (50%) diff --git a/CHANGELOG.md b/CHANGELOG.md index f25f4641..d9feb3ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v2.0.0+dev - [17-May-2024] +## v2.0.0+dev - [22-May-2024] ### `Added` @@ -18,11 +18,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 9. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) 10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) 11. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads -12. Added `MERQURYFK` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) +12. Added `MERQURY` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) 13. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` 14. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) 15. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) -16. Locally added stubs for `FASTK/FASTK`, `MERQURYFK/MERQURYFK`, `SRATOOLS/FASTERQDUMP` and `SRATOOLS/PREFETCH` ### `Fixed` diff --git a/CITATIONS.md b/CITATIONS.md index 4de821db..6ee2a4f5 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -116,10 +116,8 @@ > Marçais G, Delcher AL, Phillippy AM, Coston R, Salzberg SL, Zimin A. 2018. MUMmer4: A fast and versatile genome alignment system. PLoS Comput Biol. 2018 Jan 26;14(1):e1005944. doi: . PMID: 29373581; PMCID: PMC5802927. -- MERQURYFK, [Custom Permissive License](https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE) +- MERQURY, [United States Government Work](https://github.com/marbl/merqury?tab=License-1-ov-file#readme) - > https://github.com/thegenemyers/MERQURY.FK - > > Rhie, A., Walenz, B.P., Koren, S. et al. 2020. Merqury: reference-free quality, completeness, and phasing assessment for genome assemblies. Genome Biol 21, 245. doi: ## Software packaging/containerisation tools diff --git a/README.md b/README.md index f30501ce..30ec1d32 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## Introduction -**plant-food-research-open/assemblyqc** is a [NextFlow](https://www.nextflow.io/docs/latest/index.html) pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report. The tools are shown in the [Pipeline Flowchart](#pipeline-flowchart) and their version are listed in [CITATIONS.md](./CITATIONS.md). +**plant-food-research-open/assemblyqc** is a [NextFlow](https://www.nextflow.io/docs/latest/index.html) pipeline which evaluates assembly quality with multiple QC tools and presents the results in a unified html report. The tools are shown in the [Pipeline Flowchart](#pipeline-flowchart) and their references are listed in [CITATIONS.md](./CITATIONS.md). ## Pipeline Flowchart @@ -37,7 +37,7 @@ flowchart LR Run --> KRAKEN2 Run --> HIC_CONTACT_MAP[HIC CONTACT MAP] Run --> SYNTENY - Run --> MERQURYFK + Run --> MERQURY ASS_STATS --> REPORT GFF_STATS --> REPORT @@ -47,7 +47,7 @@ flowchart LR KRAKEN2 --> REPORT HIC_CONTACT_MAP --> REPORT SYNTENY --> REPORT - MERQURYFK --> REPORT + MERQURY --> REPORT ``` - [FASTA VALIDATION](https://github.com/GallVp/fasta_validator) @@ -62,7 +62,7 @@ flowchart LR - [KRAKEN2](https://github.com/DerrickWood/kraken2): Taxonomy classification - [HIC CONTACT MAP](https://github.com/igvteam/juicebox.js): Alignment and visualisation of HiC data - SYNTENY: Synteny analysis using [MUMMER](https://github.com/mummer4/mummer), [CIRCOS](http://circos.ca/documentation/) and [PLOTLY](https://plotly.com) -- [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK): K-mer completeness, consensus quality and phasing assessment +- [MERQURY](https://github.com/marbl/merqury): K-mer completeness, consensus quality and phasing assessment ## Usage diff --git a/bin/assemblyqc.py b/bin/assemblyqc.py index f5d9d6bc..b5c73f56 100755 --- a/bin/assemblyqc.py +++ b/bin/assemblyqc.py @@ -25,7 +25,7 @@ from report_modules.parsers.kraken2_parser import parse_kraken2_folder from report_modules.parsers.hic_parser import parse_hic_folder from report_modules.parsers.synteny_parser import parse_synteny_folder -from report_modules.parsers.merquryfk_parser import parse_merquryfk_folder +from report_modules.parsers.merqury_parser import parse_merqury_folder if __name__ == "__main__": params_dict, params_table = parse_params_json("params_json.json") @@ -52,7 +52,7 @@ data_from_tools = {**data_from_tools, **parse_kraken2_folder()} data_from_tools = {**data_from_tools, **parse_hic_folder()} data_from_tools = {**data_from_tools, **parse_synteny_folder()} - data_from_tools = {**data_from_tools, **parse_merquryfk_folder()} + data_from_tools = {**data_from_tools, **parse_merqury_folder()} with open("software_versions.yml", "r") as f: versions_from_ch_versions = yaml.safe_load(f) diff --git a/bin/report_modules/parsers/merquryfk_parser.py b/bin/report_modules/parsers/merqury_parser.py similarity index 64% rename from bin/report_modules/parsers/merquryfk_parser.py rename to bin/report_modules/parsers/merqury_parser.py index 22f8be27..6ba0b8e7 100644 --- a/bin/report_modules/parsers/merquryfk_parser.py +++ b/bin/report_modules/parsers/merqury_parser.py @@ -1,6 +1,5 @@ import base64 import os -import re from report_modules.parsers.parsing_commons import sort_list_of_results from tabulate import tabulate @@ -8,7 +7,11 @@ import pandas as pd -def load_image_as_base64_str(file_name): +def load_image_as_base64_str(file_name, optional=False): + + if optional and not os.path.exists(file_name): + return None + with open(file_name, "rb") as f: binary_fc = f.read() @@ -16,14 +19,14 @@ def load_image_as_base64_str(file_name): return f"data:image/png+xml;base64,{base64_utf8_str}" -def parse_merquryfk_folder(folder_name="merquryfk_outputs"): +def parse_merqury_folder(folder_name="merqury_outputs"): dir = os.getcwdb().decode() merqury_folder_path = Path(f"{dir}/{folder_name}") if not os.path.exists(merqury_folder_path): return {} - data = {"MERQURYFK": []} + data = {"MERQURY": []} completeness_stats_paths = [ item for item in merqury_folder_path.glob("*.completeness.stats") @@ -31,16 +34,15 @@ def parse_merquryfk_folder(folder_name="merquryfk_outputs"): for completeness_stats_path in completeness_stats_paths: - data_id = os.path.basename(str(completeness_stats_path)).split( + individual_id = os.path.basename(str(completeness_stats_path)).split( ".completeness.stats" )[0] - individual_id = data_id.split("-reads-")[0] haplotypes = individual_id.split("-and-") - completeness_stats_table = pd.read_csv(completeness_stats_path, sep="\t") - qv_stats_table = pd.read_csv(f"{folder_name}/{data_id}.qv", sep="\t") + completeness_stats_table = pd.read_csv(completeness_stats_path, sep="\t", header=None) + qv_stats_table = pd.read_csv(f"{folder_name}/{individual_id}.qv", sep="\t", header=None) - data["MERQURYFK"].append( + data["MERQURY"].append( { "individual_id": individual_id, "completeness_stats_table": completeness_stats_table.to_dict("records"), @@ -59,16 +61,25 @@ def parse_merquryfk_folder(folder_name="merquryfk_outputs"): numalign="left", showindex=False, ), - "plots": [ + "hap_plots": [ { "hap": hap, "plot": load_image_as_base64_str( - f"{folder_name}/{data_id}.{hap}.spectra-cn.fl.png" + f"{folder_name}/{individual_id}.{hap}.spectra-cn.fl.png" ), } for hap in haplotypes ], + "asm_plot": load_image_as_base64_str( + f"{folder_name}/{individual_id}.spectra-asm.fl.png" + ), + "plot": load_image_as_base64_str( + f"{folder_name}/{individual_id}.spectra-cn.fl.png", True + ), + "hapmers_blob": load_image_as_base64_str( + f"{folder_name}/{individual_id}.hapmers.blob.png", True + ), } ) - return {"MERQURYFK": sort_list_of_results(data["MERQURYFK"], "individual_id")} + return {"MERQURY": sort_list_of_results(data["MERQURY"], "individual_id")} diff --git a/bin/report_modules/templates/base.html b/bin/report_modules/templates/base.html index d2478dfb..b570d8e5 100644 --- a/bin/report_modules/templates/base.html +++ b/bin/report_modules/templates/base.html @@ -68,8 +68,8 @@ {% endif %} - {% if 'MERQURYFK' in all_stats_dicts %} - + {% if 'MERQURY' in all_stats_dicts %} + {% endif %} @@ -132,8 +132,8 @@ {% include 'synteny_linear/synteny_linear.html' %} {% endif %} - {% if 'MERQURYFK' in all_stats_dicts %} - {% include 'merquryfk/merquryfk.html' %} + {% if 'MERQURY' in all_stats_dicts %} + {% include 'merqury/merqury.html' %} {% endif %} {% include 'js.html' %} diff --git a/bin/report_modules/templates/merqury/dropdown.html b/bin/report_modules/templates/merqury/dropdown.html new file mode 100644 index 00000000..5c61274c --- /dev/null +++ b/bin/report_modules/templates/merqury/dropdown.html @@ -0,0 +1,10 @@ +

    diff --git a/bin/report_modules/templates/merqury/merqury.html b/bin/report_modules/templates/merqury/merqury.html new file mode 100644 index 00000000..0090e222 --- /dev/null +++ b/bin/report_modules/templates/merqury/merqury.html @@ -0,0 +1,17 @@ + diff --git a/bin/report_modules/templates/merqury/report_contents.html b/bin/report_modules/templates/merqury/report_contents.html new file mode 100644 index 00000000..63ec32d8 --- /dev/null +++ b/bin/report_modules/templates/merqury/report_contents.html @@ -0,0 +1,61 @@ +{% set vars = {'is_first': True} %} +{% for item in range(all_stats_dicts["MERQURY"]|length) %} +{% set active_text = 'display: block' if vars.is_first else 'display: none' %} +
    +
    +
    +
    {{ all_stats_dicts['MERQURY'][item]['individual_id'] }}
    +
    +
    +

    Completeness stats

    +
    +
    +
    {{ all_stats_dicts['MERQURY'][item]['completeness_stats_table_html'] }}
    +
    +
    +

    Consensus quality QV stats

    +
    +
    +
    {{ all_stats_dicts['MERQURY'][item]['qv_stats_table_html'] }}
    +
    + +
    +

    Spectra-asm

    +
    +
    + +
    + + {% for subitem in range(all_stats_dicts["MERQURY"][item]['hap_plots']|length) %} +
    +

    {{ all_stats_dicts['MERQURY'][item]['hap_plots'][subitem]['hap'] }} spectra-cn

    +
    +
    + +
    + {% endfor %} + + {% if all_stats_dicts['MERQURY'][item]['plot'] is not none %} +
    +

    Spectra-cn

    +
    +
    + +
    + {% endif %} + + {% if all_stats_dicts['MERQURY'][item]['hapmers_blob'] is not none %} +
    +

    Hapmers Blob

    +
    +
    + +
    + {% endif %} + +
    +
    +{% if vars.update({'is_first': False}) %} +{% endif %} +{% endfor %} diff --git a/bin/report_modules/templates/merquryfk/dropdown.html b/bin/report_modules/templates/merquryfk/dropdown.html deleted file mode 100644 index d257b4e9..00000000 --- a/bin/report_modules/templates/merquryfk/dropdown.html +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/bin/report_modules/templates/merquryfk/merquryfk.html b/bin/report_modules/templates/merquryfk/merquryfk.html deleted file mode 100644 index 8331fbd3..00000000 --- a/bin/report_modules/templates/merquryfk/merquryfk.html +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/bin/report_modules/templates/merquryfk/report_contents.html b/bin/report_modules/templates/merquryfk/report_contents.html deleted file mode 100644 index 6578a6f4..00000000 --- a/bin/report_modules/templates/merquryfk/report_contents.html +++ /dev/null @@ -1,36 +0,0 @@ -{% set vars = {'is_first': True} %} -{% for item in range(all_stats_dicts["MERQURYFK"]|length) %} -{% set active_text = 'display: block' if vars.is_first else 'display: none' %} -
    -
    -
    -
    {{ all_stats_dicts['MERQURYFK'][item]['individual_id'] }}
    -
    -
    -

    Completeness stats

    -
    -
    -
    {{ all_stats_dicts['MERQURYFK'][item]['completeness_stats_table_html'] }}
    -
    -
    -

    Consensus quality QV stats

    -
    -
    -
    {{ all_stats_dicts['MERQURYFK'][item]['qv_stats_table_html'] }}
    -
    - - {% for subitem in range(all_stats_dicts["MERQURYFK"][item]['plots']|length) %} -
    -

    {{ all_stats_dicts['MERQURYFK'][item]['plots'][subitem]['hap'] }} spectra-cn

    -
    -
    - -
    - {% endfor %} - -
    -
    -{% if vars.update({'is_first': False}) %} -{% endif %} -{% endfor %} diff --git a/conf/modules.config b/conf/modules.config index 04f77eca..783e6650 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -326,27 +326,12 @@ process { ext.prefix = { "${meta.id}.fasta" } } - withName: FASTK_FASTK { - ext.args = "-k$params.merqury_kmer_length -t1" - } - - withName: MERQURYFK_MERQURYFK { - ext.args = '-v' + withName: MERQURY { publishDir = [ [ - path: { "${params.outdir}/merquryfk/${meta.id}" }, - mode: params.publish_dir_mode, - pattern: '*.qv' - ], - [ - path: { "${params.outdir}/merquryfk/${meta.id}" }, - mode: params.publish_dir_mode, - pattern: '*.completeness.stats' - ], - [ - path: { "${params.outdir}/merquryfk/${meta.id}" }, + path: { "${params.outdir}/merqury/${meta.id}" }, mode: params.publish_dir_mode, - pattern: '*.*.spectra-cn.fl.png' + saveAs: { filename -> filename.equals("versions.yml") ? null : filename } ] ] } diff --git a/docs/output.md b/docs/output.md index 030ac264..15ee0559 100644 --- a/docs/output.md +++ b/docs/output.md @@ -23,7 +23,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Kraken2](#kraken2) - [HiC contact map](#hic-contact-map) - [Synteny](#synteny) -- [Merqury.FK](#merquryfk) +- [Merqury](#merqury) - [Pipeline information](#pipeline-information) ### FASTA and GFF3 validation @@ -204,19 +204,19 @@ Hi-C contact mapping experiments measure the frequency of physical contact betwe
    AssemblyQC - Circos synteny plot
    AssemblyQC - Circos synteny plot
    AssemblyQC - Linear synteny plot
    AssemblyQC - Linear synteny plot
    -### Merqury.FK +### Merqury
    Output files -- `merquryfk/` - - `tag1-and-tag2-reads-*`: Results folder for haplotype `tag1` and `tag2`. +- `merqury/` + - `tag1-and-tag2`: Results folder for haplotype `tag1` and `tag2`. - `*.completeness.stats`: Assembly completeness statistics - `*.qv`: Assembly consensus quality QV statistics - `*.*.spectra-cn.fl.png`: Spectra-cn plot
    -[MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) is used for the k-mer analysis. +[MERQURY](https://github.com/marbl/merqury) is used for the k-mer analysis.
    AssemblyQC - Spectra-cn plot
    AssemblyQC - Spectra-cn plot
    diff --git a/docs/usage.md b/docs/usage.md index f262522f..1d803b63 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -10,7 +10,7 @@ You will need to create an assemblysheet with information about the assemblies y - `monoploid_ids [Optional]:` A txt file listing the IDs used to calculate LAI in monoploid mode if necessary - `synteny_labels [Optional]:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) when performing synteny analysis -See the [Merqury.FK](#merquryfk-k-mer-analysis) section For description of assemblysheet columns related to k-mer analysis with Merqury.FK. +See the [Merqury](#merqury-k-mer-analysis) section For description of assemblysheet columns related to k-mer analysis with Merqury. ## External databases @@ -85,19 +85,23 @@ BUSCO lineage databases are downloaded and updated by the BUSCO tool itself. A p - `fasta:` FASTA file - `synteny_labels:` A two column tsv file listing fasta sequence ids (first column) and their labels for the synteny plots (second column) -### Merqury.FK K-mer analysis +### Merqury K-mer analysis #### Additional assemblysheet columns -- `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY.FK](https://github.com/thegenemyers/MERQURY.FK) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of the same genome by MERQURY.FK. A genome can only have one or two haplotypes. +- `reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to assembly reads. The reads are used by [MERQURY](https://github.com/marbl/merqury) for k-mer analysis. If two assemblies have the same SRA ID or file path for `reads_1`, they are treated as haplotypes of the same genome by MERQURY. A genome can only have one or two haplotypes. - `reads_2 [Optional]`: This column lists the second file if paired reads are used. If `reads_1` is a SRA ID, this column is ignored. +- `maternal_reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to maternal reads. If two assemblies are haplotypes of the same genome, this path should be repeated. Moreover, more than one genome can have same `maternal_reads_1`. +- `maternal_reads_2 [Optional]`: This column lists the second file if paired reads are used. If `maternal_reads_1` is a SRA ID, this column is ignored. +- `paternal_reads_1 [Optional]`: A SRA ID for paired FASTQ files or FASTA/FASTQ file path to paternal reads. If two assemblies are haplotypes of the same genome, this path should be repeated. Moreover, more than one genome can have same `paternal_reads_1`. +- `paternal_reads_2 [Optional]`: This column lists the second file if paired reads are used. If `paternal_reads_1` is a SRA ID, this column is ignored. -See following assemblysheet examples for MERQURY.FK analysis. +See following assemblysheet examples for MERQURY analysis. - [assemblysheet - 1x](../assets/assemblysheetv2.csv) -- [assemblysheet - mixed2x](../tests/merqury.fk/mixed2x/assemblysheet.csv) -- [assemblysheet - phased2x](../tests/merqury.fk/phased2x/assemblysheet.csv) -- [assemblysheet - phased2x with parent reads](../tests/merqury.fk/phased2x.mp/assemblysheet.csv) +- [assemblysheet - mixed2x](../tests/merqury/mixed2x/assemblysheet.csv) +- [assemblysheet - phased2x](../tests/merqury/phased2x/assemblysheet.csv) +- [assemblysheet - phased2x with parent reads](../tests/merqury/phased2x.mp/assemblysheet.csv) #### Parameters diff --git a/modules.json b/modules.json index f16ccf45..188bf227 100644 --- a/modules.json +++ b/modules.json @@ -80,6 +80,11 @@ "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", "installed_by": ["fasta_ltrretriever_lai"] }, + "merqury/hapmers": { + "branch": "main", + "git_sha": "46b70684b6ae0ac60cae154c61796b293707db64", + "installed_by": ["modules"] + }, "samblaster": { "branch": "main", "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", @@ -130,12 +135,6 @@ "git_sha": "89ff95427f695086369d7927a3c17cea2a37a382", "installed_by": ["modules"] }, - "fastk/fastk": { - "branch": "master", - "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"], - "patch": "modules/nf-core/fastk/fastk/fastk-fastk.diff" - }, "fastp": { "branch": "master", "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", @@ -156,11 +155,20 @@ "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", "installed_by": ["modules"] }, - "merquryfk/merquryfk": { + "merqury": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"], - "patch": "modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff" + "installed_by": ["modules"] + }, + "meryl/count": { + "branch": "master", + "git_sha": "c95215baf20e6d8cf2ae0e8411d03c5d9ef21d4a", + "installed_by": ["modules"] + }, + "meryl/unionsum": { + "branch": "master", + "git_sha": "b7f584e61c35c138a5717f837f4da9b838e290a7", + "installed_by": ["modules"] }, "seqkit/seq": { "branch": "master", @@ -174,15 +182,13 @@ }, "sratools/fasterqdump": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"], - "patch": "modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff" + "git_sha": "dd935314930f972117455672f89e5cb0794719e5", + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] }, "sratools/prefetch": { "branch": "master", - "git_sha": "1fc29f92e439d5631fdf34b8ac4687297d70f5ec", - "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"], - "patch": "modules/nf-core/sratools/prefetch/sratools-prefetch.diff" + "git_sha": "dd935314930f972117455672f89e5cb0794719e5", + "installed_by": ["fastq_download_prefetch_fasterqdump_sratools", "modules"] }, "tidk/explore": { "branch": "master", diff --git a/modules/local/createreport.nf b/modules/local/createreport.nf index b072b184..fd53edc0 100644 --- a/modules/local/createreport.nf +++ b/modules/local/createreport.nf @@ -18,7 +18,7 @@ process CREATEREPORT { path kraken2_outputs , stageAs: 'kraken2_outputs/*' path hic_outputs , stageAs: 'hic_outputs/*' path synteny_outputs , stageAs: 'synteny_outputs/*' - path merqury_outputs , stageAs: 'merquryfk_outputs/*' + path merqury_outputs , stageAs: 'merqury_outputs/*' path versions val params_json val params_summary_json diff --git a/modules/local/merquryfk_hapmaker.nf b/modules/local/merquryfk_hapmaker.nf deleted file mode 100644 index 311a3b79..00000000 --- a/modules/local/merquryfk_hapmaker.nf +++ /dev/null @@ -1,101 +0,0 @@ -process MERQURYFK_HAPMAKER { - tag "$meta.id" - label 'process_medium' - - // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' - - input: - tuple val(meta), path(ktab) - path(mktab) - path(pktab) - - output: - tuple val(meta), path('*_mat.hap.ktab*', hidden: true) , emit: mat_hapmers - tuple val(meta), path('*_pat.hap.ktab*', hidden: true) , emit: pat_hapmers - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "MERQURYFK_HAPMAKER module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def mktab_file = mktab.find { it.toString().endsWith(".ktab") } - def pktab_file = pktab.find { it.toString().endsWith(".ktab") } - def ktab_file = ktab.find { it.toString().endsWith(".ktab") } - def mktab_basename = mktab_file.baseName - def pktab_basename = pktab_file.baseName - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - """ - HAPmaker \\ - $args \\ - -T$task.cpus \\ - $mktab_file \\ - $pktab_file \\ - $ktab_file - - mv ${mktab_basename}.hap.ktab ${prefix}_mat.hap.ktab - - find . -name ".${mktab_basename}.hap.*" \\ - | while read -r file; do - new_name=\$(echo "\$file" | sed "s/${mktab_basename}/${prefix}_mat/") - mv "\$file" "\$new_name" - done - - mv ${pktab_basename}.hap.ktab ${prefix}_pat.hap.ktab - - find . -name ".${pktab_basename}.hap.*" \\ - | while read -r file; do - new_name=\$(echo "\$file" | sed "s/${pktab_basename}/${prefix}_pat/") - mv "\$file" "\$new_name" - done - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - merquryfk: $MERQURY_VERSION - END_VERSIONS - """ - - stub: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "MERQURYFK_HAPMAKER module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def mktab_file = mktab.find { it.toString().endsWith(".ktab") } - def pktab_file = pktab.find { it.toString().endsWith(".ktab") } - def ktab_file = ktab.find { it.toString().endsWith(".ktab") } - def mktab_basename = mktab_file.baseName - def pktab_basename = pktab_file.baseName - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - """ - echo \\ - "HAPmaker \\ - $args \\ - -T$task.cpus \\ - $mktab_file \\ - $pktab_file \\ - $ktab_file" - - touch ${prefix}_mat.hap.ktab - touch .${prefix}_mat.hap.ktab.1 - - touch ${prefix}_pat.hap.ktab - touch .${prefix}_pat.hap.ktab.1 - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - merquryfk: $MERQURY_VERSION - END_VERSIONS - """ -} diff --git a/modules/nf-core/fastk/fastk/environment.yml b/modules/nf-core/fastk/fastk/environment.yml deleted file mode 100644 index efb503e1..00000000 --- a/modules/nf-core/fastk/fastk/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: fastk_fastk -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::false_flag # False flag to pass nf-core/lint diff --git a/modules/nf-core/fastk/fastk/fastk-fastk.diff b/modules/nf-core/fastk/fastk/fastk-fastk.diff deleted file mode 100644 index ac5421bd..00000000 --- a/modules/nf-core/fastk/fastk/fastk-fastk.diff +++ /dev/null @@ -1,542 +0,0 @@ -Changes in module 'nf-core/fastk/fastk' ---- modules/nf-core/fastk/fastk/environment.yml -+++ modules/nf-core/fastk/fastk/environment.yml -@@ -3,3 +3,5 @@ - - conda-forge - - bioconda - - defaults -+dependencies: -+ - bioconda::false_flag # False flag to pass nf-core/lint - ---- modules/nf-core/fastk/fastk/meta.yml -+++ modules/nf-core/fastk/fastk/meta.yml -@@ -9,7 +9,7 @@ - description: "A fast K-mer counter for high-fidelity shotgun datasets" - homepage: "https://github.com/thegenemyers/FASTK" - tool_dev_url: "https://github.com/thegenemyers/FASTK" -- licence: "https://github.com/thegenemyers/FASTK/blob/master/LICENSE" -+ licence: ["https://github.com/thegenemyers/FASTK/blob/master/LICENSE"] - input: - - meta: - type: map -@@ -47,3 +47,4 @@ - - "@mahesh-panchal" - maintainers: - - "@mahesh-panchal" -+ - "@gallvp" - ---- modules/nf-core/fastk/fastk/main.nf -+++ modules/nf-core/fastk/fastk/main.nf -@@ -38,4 +38,34 @@ - fastk: $FASTK_VERSION - END_VERSIONS - """ -+ -+ stub: -+ // Exit if running this module with -profile conda / -profile mamba -+ if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { -+ error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." -+ } -+ def args = task.ext.args ?: '' -+ def prefix = task.ext.prefix ?: "${meta.id}" -+ def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. -+ -+ def touch_ktab = args.contains('-t') ? "touch ${prefix}_fk.ktab .${prefix}_fk.ktab.1" : '' -+ def touch_prof = args.contains('-p') ? "touch ${prefix}_fk.prof .${prefix}_fk.pidx.1" : '' -+ """ -+ touch ${prefix}_fk.hist -+ $touch_ktab -+ $touch_prof -+ -+ echo \\ -+ "FastK \\ -+ $args \\ -+ -T$task.cpus \\ -+ -M${task.memory.toGiga()} \\ -+ -N${prefix}_fk \\ -+ $reads" -+ -+ cat <<-END_VERSIONS > versions.yml -+ "${task.process}": -+ fastk: $FASTK_VERSION -+ END_VERSIONS -+ """ - } - ---- /dev/null -+++ modules/nf-core/fastk/fastk/tests/main.nf.test.snap -@@ -0,0 +1,346 @@ -+{ -+ "test_fastk_fastk_single_end_stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "3": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ], -+ "hist": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "ktab": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "prof": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:39:28.510263" -+ }, -+ "test_fastk_fastk_single_end": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", -+ ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", -+ "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" -+ ] -+ ] -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", -+ ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", -+ "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" -+ ] -+ ] -+ ], -+ "3": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ], -+ "hist": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" -+ ] -+ ], -+ "ktab": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", -+ ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", -+ "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" -+ ] -+ ] -+ ], -+ "prof": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", -+ ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", -+ "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:31:31.128388" -+ }, -+ "test_fastk_fastk_paired_end": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", -+ ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", -+ "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" -+ ] -+ ] -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", -+ ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", -+ ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", -+ ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", -+ "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" -+ ] -+ ] -+ ], -+ "3": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ], -+ "hist": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" -+ ] -+ ], -+ "ktab": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", -+ ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", -+ "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" -+ ] -+ ] -+ ], -+ "prof": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", -+ ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", -+ ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", -+ ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", -+ "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:31:35.565502" -+ }, -+ "test_fastk_fastk_paired_end_stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "3": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ], -+ "hist": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "ktab": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "prof": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:39:32.570957" -+ } -+} ---- /dev/null -+++ modules/nf-core/fastk/fastk/tests/tags.yml -@@ -0,0 +1,2 @@ -+fastk/fastk: -+ - "modules/nf-core/fastk/fastk/**" - ---- /dev/null -+++ modules/nf-core/fastk/fastk/tests/nextflow.config -@@ -0,0 +1,3 @@ -+process { -+ ext.args = '-t -p' -+} - ---- /dev/null -+++ modules/nf-core/fastk/fastk/tests/main.nf.test -@@ -0,0 +1,110 @@ -+nextflow_process { -+ -+ name "Test Process FASTK_FASTK" -+ script "../main.nf" -+ config './nextflow.config' -+ process "FASTK_FASTK" -+ -+ tag "modules" -+ tag "modules_nfcore" -+ tag "fastk" -+ tag "fastk/fastk" -+ -+ test("test_fastk_fastk_single_end") { -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test' , single_end: true ], // meta map -+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) -+ ] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ -+ } -+ -+ test("test_fastk_fastk_paired_end") { -+ -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test' , single_end: false ], // meta map -+ [ -+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -+ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) -+ ] -+ ] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ -+ } -+ -+ test("test_fastk_fastk_single_end_stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test' , single_end: true ], // meta map -+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) -+ ] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ -+ } -+ -+ test("test_fastk_fastk_paired_end_stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test' , single_end: false ], // meta map -+ [ -+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), -+ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) -+ ] -+ ] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ -+ } -+ -+} - -************************************************************ diff --git a/modules/nf-core/fastk/fastk/main.nf b/modules/nf-core/fastk/fastk/main.nf deleted file mode 100644 index cef1a3c8..00000000 --- a/modules/nf-core/fastk/fastk/main.nf +++ /dev/null @@ -1,71 +0,0 @@ -process FASTK_FASTK { - tag "$meta.id" - label 'process_medium' - - // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' - - input: - tuple val(meta), path(reads) - - output: - tuple val(meta), path("*.hist") , emit: hist - tuple val(meta), path("*.ktab*", hidden: true) , emit: ktab, optional: true - tuple val(meta), path("*.{prof,pidx}*", hidden: true), emit: prof, optional: true - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - """ - FastK \\ - $args \\ - -T$task.cpus \\ - -M${task.memory.toGiga()} \\ - -N${prefix}_fk \\ - $reads - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - END_VERSIONS - """ - - stub: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "FASTK_FASTK module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - - def touch_ktab = args.contains('-t') ? "touch ${prefix}_fk.ktab .${prefix}_fk.ktab.1" : '' - def touch_prof = args.contains('-p') ? "touch ${prefix}_fk.prof .${prefix}_fk.pidx.1" : '' - """ - touch ${prefix}_fk.hist - $touch_ktab - $touch_prof - - echo \\ - "FastK \\ - $args \\ - -T$task.cpus \\ - -M${task.memory.toGiga()} \\ - -N${prefix}_fk \\ - $reads" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - END_VERSIONS - """ -} diff --git a/modules/nf-core/fastk/fastk/meta.yml b/modules/nf-core/fastk/fastk/meta.yml deleted file mode 100644 index 3086aca5..00000000 --- a/modules/nf-core/fastk/fastk/meta.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: "fastk_fastk" -description: A fast K-mer counter for high-fidelity shotgun datasets -keywords: - - k-mer - - count - - histogram -tools: - - "fastk": - description: "A fast K-mer counter for high-fidelity shotgun datasets" - homepage: "https://github.com/thegenemyers/FASTK" - tool_dev_url: "https://github.com/thegenemyers/FASTK" - licence: ["https://github.com/thegenemyers/FASTK/blob/master/LICENSE"] -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - hist: - type: file - description: Histogram of k-mers - pattern: "*.hist" - - ktab: - type: file - description: A sorted table of all canonical k‑mers along with their counts. - pattern: "*.ktab" - - prof: - type: file - description: A k‑mer count profile of each sequence in the input data set. - pattern: "*.prof" -authors: - - "@mahesh-panchal" -maintainers: - - "@mahesh-panchal" - - "@gallvp" diff --git a/modules/nf-core/fastk/fastk/tests/main.nf.test b/modules/nf-core/fastk/fastk/tests/main.nf.test deleted file mode 100644 index e46d8bce..00000000 --- a/modules/nf-core/fastk/fastk/tests/main.nf.test +++ /dev/null @@ -1,110 +0,0 @@ -nextflow_process { - - name "Test Process FASTK_FASTK" - script "../main.nf" - config './nextflow.config' - process "FASTK_FASTK" - - tag "modules" - tag "modules_nfcore" - tag "fastk" - tag "fastk/fastk" - - test("test_fastk_fastk_single_end") { - when { - process { - """ - input[0] = [ - [ id:'test' , single_end: true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - - test("test_fastk_fastk_paired_end") { - - when { - process { - """ - input[0] = [ - [ id:'test' , single_end: false ], // meta map - [ - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) - ] - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - - test("test_fastk_fastk_single_end_stub") { - - options '-stub' - - when { - process { - """ - input[0] = [ - [ id:'test' , single_end: true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - - test("test_fastk_fastk_paired_end_stub") { - - options '-stub' - - when { - process { - """ - input[0] = [ - [ id:'test' , single_end: false ], // meta map - [ - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) - ] - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - -} diff --git a/modules/nf-core/fastk/fastk/tests/main.nf.test.snap b/modules/nf-core/fastk/fastk/tests/main.nf.test.snap deleted file mode 100644 index 1e3fc4da..00000000 --- a/modules/nf-core/fastk/fastk/tests/main.nf.test.snap +++ /dev/null @@ -1,346 +0,0 @@ -{ - "test_fastk_fastk_single_end_stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "3": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ], - "hist": [ - [ - { - "id": "test", - "single_end": true - }, - "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "ktab": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "prof": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "versions": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:39:28.510263" - }, - "test_fastk_fastk_single_end": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", - ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", - "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" - ] - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", - ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", - "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" - ] - ] - ], - "3": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ], - "hist": [ - [ - { - "id": "test", - "single_end": true - }, - "test_fk.hist:md5,c80e12f7321e62dba4b437d7bff36ec0" - ] - ], - "ktab": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.ktab.1:md5,ceeacd0cb3aa69bf9b2a402830b40e26", - ".test_fk.ktab.2:md5,f2629fd15b285aed3dc2d5fe546edf3f", - "test_fk.ktab:md5,a605a58931a4b5029469e1c2575c8cee" - ] - ] - ], - "prof": [ - [ - { - "id": "test", - "single_end": true - }, - [ - ".test_fk.pidx.1:md5,90bc384f61d2ecdb4586ab52ab04fddf", - ".test_fk.prof.1:md5,ebd48923a724cf79934f0b2ed42ba73d", - "test_fk.prof:md5,43d426c95d277b8148406624d513bd40" - ] - ] - ], - "versions": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:31:31.128388" - }, - "test_fastk_fastk_paired_end": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", - ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", - "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" - ] - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", - ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", - ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", - ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", - "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" - ] - ] - ], - "3": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ], - "hist": [ - [ - { - "id": "test", - "single_end": false - }, - "test_fk.hist:md5,4f75b550d87ed4f26a2b10a05ac7e98c" - ] - ], - "ktab": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.ktab.1:md5,7f28fb44940fda799797e3069f5d7263", - ".test_fk.ktab.2:md5,c14a85c128926ace78372f09029977b1", - "test_fk.ktab:md5,fddd5be0c36ad1d2131b8d8774f7657a" - ] - ] - ], - "prof": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.pidx.1:md5,e7e760f714070a4afefb38ffff559684", - ".test_fk.pidx.2:md5,a549612bbdba2506eb3311237638c4b0", - ".test_fk.prof.1:md5,46a5fd9e297262b058f8c1fd062fcf56", - ".test_fk.prof.2:md5,80326a7406f41ccf2e51e341fc804132", - "test_fk.prof:md5,d3c7d8decd4ea6e298291b8be0e2de85" - ] - ] - ], - "versions": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:31:35.565502" - }, - "test_fastk_fastk_paired_end_stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "2": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "3": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ], - "hist": [ - [ - { - "id": "test", - "single_end": false - }, - "test_fk.hist:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "ktab": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.ktab.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.ktab:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "prof": [ - [ - { - "id": "test", - "single_end": false - }, - [ - ".test_fk.pidx.1:md5,d41d8cd98f00b204e9800998ecf8427e", - "test_fk.prof:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "versions": [ - "versions.yml:md5,c216a1608924d1662d2086e1de1d5abd" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:39:32.570957" - } -} \ No newline at end of file diff --git a/modules/nf-core/fastk/fastk/tests/nextflow.config b/modules/nf-core/fastk/fastk/tests/nextflow.config deleted file mode 100644 index c89ce9d5..00000000 --- a/modules/nf-core/fastk/fastk/tests/nextflow.config +++ /dev/null @@ -1,3 +0,0 @@ -process { - ext.args = '-t -p' -} diff --git a/modules/nf-core/fastk/fastk/tests/tags.yml b/modules/nf-core/fastk/fastk/tests/tags.yml deleted file mode 100644 index 82f9df82..00000000 --- a/modules/nf-core/fastk/fastk/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -fastk/fastk: - - "modules/nf-core/fastk/fastk/**" diff --git a/modules/nf-core/merqury/environment.yml b/modules/nf-core/merqury/environment.yml new file mode 100644 index 00000000..b73f4aea --- /dev/null +++ b/modules/nf-core/merqury/environment.yml @@ -0,0 +1,7 @@ +name: merqury +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::merqury=1.3 diff --git a/modules/nf-core/merqury/main.nf b/modules/nf-core/merqury/main.nf new file mode 100644 index 00000000..196b0dfc --- /dev/null +++ b/modules/nf-core/merqury/main.nf @@ -0,0 +1,60 @@ +process MERQURY { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/merqury:1.3--hdfd78af_1': + 'biocontainers/merqury:1.3--hdfd78af_1' }" + + input: + tuple val(meta), path(meryl_db), path(assembly) + + output: + tuple val(meta), path("*_only.bed") , emit: assembly_only_kmers_bed + tuple val(meta), path("*_only.wig") , emit: assembly_only_kmers_wig + tuple val(meta), path("*.completeness.stats"), emit: stats + tuple val(meta), path("*.dist_only.hist") , emit: dist_hist + tuple val(meta), path("*.spectra-cn.fl.png") , emit: spectra_cn_fl_png + tuple val(meta), path("*.spectra-cn.hist") , emit: spectra_cn_hist + tuple val(meta), path("*.spectra-cn.ln.png") , emit: spectra_cn_ln_png + tuple val(meta), path("*.spectra-cn.st.png") , emit: spectra_cn_st_png + tuple val(meta), path("*.spectra-asm.fl.png"), emit: spectra_asm_fl_png + tuple val(meta), path("*.spectra-asm.hist") , emit: spectra_asm_hist + tuple val(meta), path("*.spectra-asm.ln.png"), emit: spectra_asm_ln_png + tuple val(meta), path("*.spectra-asm.st.png"), emit: spectra_asm_st_png + tuple val(meta), path("${prefix}.qv") , emit: assembly_qv + tuple val(meta), path("${prefix}.*.qv") , emit: scaffold_qv + tuple val(meta), path("*.hist.ploidy") , emit: read_ploidy + tuple val(meta), path("*.hapmers.blob.png") , emit: hapmers_blob_png , optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = 1.3 + """ + # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) + # Check for container variable initialisation script and source it. + if [ -f "/usr/local/env-activate.sh" ]; then + set +u # Otherwise, errors out because of various unbound variables + . "/usr/local/env-activate.sh" + set -u + fi + # limit meryl to use the assigned number of cores. + export OMP_NUM_THREADS=$task.cpus + + merqury.sh \\ + $meryl_db \\ + $assembly \\ + $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + merqury: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/merqury/meta.yml b/modules/nf-core/merqury/meta.yml new file mode 100644 index 00000000..88825386 --- /dev/null +++ b/modules/nf-core/merqury/meta.yml @@ -0,0 +1,98 @@ +name: "merqury" +description: k-mer based assembly evaluation. +keywords: + - "k-mer" + - "assembly" + - "evaluation" +tools: + - "merqury": + description: "Evaluate genome assemblies with k-mers and more." + tool_dev_url: "https://github.com/marbl/merqury" + doi: "10.1186/s13059-020-02134-9" + licence: "['PUBLIC DOMAIN']" +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - meryl_db: + type: file + description: "Meryl read database" + - assembly: + type: file + description: FASTA assembly file +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - assembly_only_kmers_bed: + type: file + description: "The positions of the k-mers found only in an assembly for further investigation in .bed" + pattern: "*_only.bed" + - assembly_only_kmers_wig: + type: file + description: "The positions of the k-mers found only in an assembly for further investigation in .wig" + pattern: "*_only.wig" + - stats: + type: file + description: Assembly statistics file + pattern: "*.completeness.stats" + - dist_hist: + type: file + description: Histogram + pattern: "*.dist_only.hist" + - spectra_cn_fl_png: + type: file + description: "Unstacked copy number spectra filled plot in PNG format" + pattern: "*.spectra-cn.fl.png" + - spectra_cn_ln_png: + type: file + description: "Unstacked copy number spectra line plot in PNG format" + pattern: "*.spectra-cn.ln.png" + - spectra_cn_st_png: + type: file + description: "Stacked copy number spectra line plot in PNG format" + pattern: "*.spectra-cn.st.png" + - spectra_cn_hist: + type: file + description: "Copy number spectra histogram" + pattern: "*.spectra-cn.hist" + - spectra_asm_fl_png: + type: file + description: "Unstacked assembly spectra filled plot in PNG format" + pattern: "*.spectra-asm.fl.png" + - spectra_asm_ln_png: + type: file + description: "Unstacked assembly spectra line plot in PNG format" + pattern: "*.spectra-asm.ln.png" + - spectra_asm_st_png: + type: file + description: "Stacked assembly spectra line plot in PNG format" + pattern: "*.spectra-asm.st.png" + - spectra_asm_hist: + type: file + description: "Assembly spectra histogram" + pattern: "*.spectra-asm.hist" + - assembly_qv: + type: file + description: "Assembly consensus quality estimation" + pattern: "*.qv" + - scaffold_qv: + type: file + description: "Scaffold consensus quality estimation" + pattern: "*.qv" + - read_ploidy: + type: file + description: "Ploidy estimate from read k-mer database" + pattern: "*.hist.ploidy" +authors: + - "@mahesh-panchal" +maintainers: + - "@mahesh-panchal" diff --git a/modules/nf-core/merquryfk/merquryfk/environment.yml b/modules/nf-core/merquryfk/merquryfk/environment.yml deleted file mode 100644 index 325bb013..00000000 --- a/modules/nf-core/merquryfk/merquryfk/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: merquryfk_merquryfk -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - bioconda::false_flag # False flag to pass nf-core/lint diff --git a/modules/nf-core/merquryfk/merquryfk/main.nf b/modules/nf-core/merquryfk/merquryfk/main.nf deleted file mode 100644 index ecc0f70f..00000000 --- a/modules/nf-core/merquryfk/merquryfk/main.nf +++ /dev/null @@ -1,101 +0,0 @@ -process MERQURYFK_MERQURYFK { - tag "$meta.id" - label 'process_medium' - - // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. - container 'ghcr.io/nbisweden/fastk_genescopefk_merquryfk:1.2' - - input: - tuple val(meta), path(fastk_hist), path(fastk_ktab), path(assembly), path(haplotigs) - - output: - tuple val(meta), path("${prefix}.completeness.stats") , emit: stats - tuple val(meta), path("${prefix}.*_only.bed") , emit: bed - tuple val(meta), path("${prefix}.*.qv") , emit: assembly_qv - tuple val(meta), path("${prefix}.*.spectra-cn.fl.png"), emit: spectra_cn_fl_png, optional: true - tuple val(meta), path("${prefix}.*.spectra-cn.fl.pdf"), emit: spectra_cn_fl_pdf, optional: true - tuple val(meta), path("${prefix}.*.spectra-cn.ln.png"), emit: spectra_cn_ln_png, optional: true - tuple val(meta), path("${prefix}.*.spectra-cn.ln.pdf"), emit: spectra_cn_ln_pdf, optional: true - tuple val(meta), path("${prefix}.*.spectra-cn.st.png"), emit: spectra_cn_st_png, optional: true - tuple val(meta), path("${prefix}.*.spectra-cn.st.pdf"), emit: spectra_cn_st_pdf, optional: true - tuple val(meta), path("${prefix}.qv") , emit: qv - tuple val(meta), path("${prefix}.spectra-asm.fl.png") , emit: spectra_asm_fl_png, optional: true - tuple val(meta), path("${prefix}.spectra-asm.fl.pdf") , emit: spectra_asm_fl_pdf, optional: true - tuple val(meta), path("${prefix}.spectra-asm.ln.png") , emit: spectra_asm_ln_png, optional: true - tuple val(meta), path("${prefix}.spectra-asm.ln.pdf") , emit: spectra_asm_ln_pdf, optional: true - tuple val(meta), path("${prefix}.spectra-asm.st.png") , emit: spectra_asm_st_png, optional: true - tuple val(meta), path("${prefix}.spectra-asm.st.pdf") , emit: spectra_asm_st_pdf, optional: true - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def ktabs = fastk_ktab.findAll { it.toString().endsWith(".ktab") }.collect { "$it" }.join(' ') - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - """ - MerquryFK \\ - $args \\ - -T$task.cpus \\ - $ktabs \\ - $assembly \\ - $haplotigs \\ - $prefix - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - merquryfk: $MERQURY_VERSION - r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) - END_VERSIONS - """ - - stub: - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." - } - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def ktabs = fastk_ktab.findAll { it.toString().endsWith(".ktab") }.collect { "$it" }.join(' ') - def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. - - def touch_asm_bed = "touch ${prefix}.${assembly.baseName}_only.bed" - def touch_asm_qv = "touch ${prefix}.${assembly.baseName}.qv" - def touch_haplo_bed = haplotigs ? "touch ${prefix}.${haplotigs.baseName}_only.bed" : '' - def touch_haplo_qv = haplotigs ? "touch ${prefix}.${haplotigs.baseName}.qv" : '' - """ - touch "${prefix}.completeness.stats" - - $touch_asm_bed - $touch_asm_qv - $touch_haplo_bed - $touch_haplo_qv - - touch "${prefix}.qv" - - echo \\ - "MerquryFK \\ - $args \\ - -T$task.cpus \\ - $ktabs \\ - $assembly \\ - $haplotigs \\ - $prefix" - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastk: $FASTK_VERSION - merquryfk: $MERQURY_VERSION - r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) - END_VERSIONS - """ -} diff --git a/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff b/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff deleted file mode 100644 index b630c090..00000000 --- a/modules/nf-core/merquryfk/merquryfk/merquryfk-merquryfk.diff +++ /dev/null @@ -1,1060 +0,0 @@ -Changes in module 'nf-core/merquryfk/merquryfk' ---- modules/nf-core/merquryfk/merquryfk/environment.yml -+++ modules/nf-core/merquryfk/merquryfk/environment.yml -@@ -3,3 +3,5 @@ - - conda-forge - - bioconda - - defaults -+dependencies: -+ - bioconda::false_flag # False flag to pass nf-core/lint - ---- modules/nf-core/merquryfk/merquryfk/meta.yml -+++ modules/nf-core/merquryfk/merquryfk/meta.yml -@@ -9,7 +9,7 @@ - description: "FastK based version of Merqury" - homepage: "https://github.com/thegenemyers/MERQURY.FK" - tool_dev_url: "https://github.com/thegenemyers/MERQURY.FK" -- licence: "https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE" -+ licence: ["https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE"] - input: - - meta: - type: map -@@ -110,3 +110,4 @@ - - "@mahesh-panchal" - maintainers: - - "@mahesh-panchal" -+ - "@gallvp" - ---- modules/nf-core/merquryfk/merquryfk/main.nf -+++ modules/nf-core/merquryfk/merquryfk/main.nf -@@ -55,4 +55,45 @@ - r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) - END_VERSIONS - """ -+ -+ stub: -+ // Exit if running this module with -profile conda / -profile mamba -+ if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { -+ error "MERQURYFK_MERQURYFK module does not support Conda. Please use Docker / Singularity / Podman instead." -+ } -+ def args = task.ext.args ?: '' -+ prefix = task.ext.prefix ?: "${meta.id}" -+ def FASTK_VERSION = 'f18a4e6d2207539f7b84461daebc54530a9559b0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. -+ def MERQURY_VERSION = '8ae344092df5dcaf83cfb7f90f662597a9b1fc61' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. -+ -+ def touch_asm_bed = "touch ${prefix}.${assembly.baseName}_only.bed" -+ def touch_asm_qv = "touch ${prefix}.${assembly.baseName}.qv" -+ def touch_haplo_bed = haplotigs ? "touch ${prefix}.${haplotigs.baseName}_only.bed" : '' -+ def touch_haplo_qv = haplotigs ? "touch ${prefix}.${haplotigs.baseName}.qv" : '' -+ """ -+ touch "${prefix}.completeness.stats" -+ -+ $touch_asm_bed -+ $touch_asm_qv -+ $touch_haplo_bed -+ $touch_haplo_qv -+ -+ touch "${prefix}.qv" -+ -+ echo \\ -+ "MerquryFK \\ -+ $args \\ -+ -T$task.cpus \\ -+ ${fastk_ktab.find{ it.toString().endsWith(".ktab") }} \\ -+ $assembly \\ -+ $haplotigs \\ -+ $prefix" -+ -+ cat <<-END_VERSIONS > versions.yml -+ "${task.process}": -+ fastk: $FASTK_VERSION -+ merquryfk: $MERQURY_VERSION -+ r: \$( R --version | sed '1!d; s/.*version //; s/ .*//' ) -+ END_VERSIONS -+ """ - } - ---- /dev/null -+++ modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap -@@ -0,0 +1,802 @@ -+{ -+ "multiple_minimal_stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "10": [ -+ -+ ], -+ "11": [ -+ -+ ], -+ "12": [ -+ -+ ], -+ "13": [ -+ -+ ], -+ "14": [ -+ -+ ], -+ "15": [ -+ -+ ], -+ "16": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "3": [ -+ -+ ], -+ "4": [ -+ -+ ], -+ "5": [ -+ -+ ], -+ "6": [ -+ -+ ], -+ "7": [ -+ -+ ], -+ "8": [ -+ -+ ], -+ "9": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "assembly_qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "bed": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ [ -+ "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "spectra_asm_fl_pdf": [ -+ -+ ], -+ "spectra_asm_fl_png": [ -+ -+ ], -+ "spectra_asm_ln_pdf": [ -+ -+ ], -+ "spectra_asm_ln_png": [ -+ -+ ], -+ "spectra_asm_st_pdf": [ -+ -+ ], -+ "spectra_asm_st_png": [ -+ -+ ], -+ "spectra_cn_fl_pdf": [ -+ -+ ], -+ "spectra_cn_fl_png": [ -+ -+ ], -+ "spectra_cn_ln_pdf": [ -+ -+ ], -+ "spectra_cn_ln_png": [ -+ -+ ], -+ "spectra_cn_st_pdf": [ -+ -+ ], -+ "spectra_cn_st_png": [ -+ -+ ], -+ "stats": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T20:21:30.488412" -+ }, -+ "test_merquryfk_merquryfk_pdf": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" -+ ] -+ ], -+ "10": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" -+ ] -+ ], -+ "11": [ -+ -+ ], -+ "12": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" -+ ] -+ ], -+ "13": [ -+ -+ ], -+ "14": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" -+ ] -+ ], -+ "15": [ -+ -+ ], -+ "16": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" -+ ] -+ ], -+ "3": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "4": [ -+ -+ ], -+ "5": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "6": [ -+ -+ ], -+ "7": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "8": [ -+ -+ ], -+ "9": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" -+ ] -+ ], -+ "assembly_qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" -+ ] -+ ], -+ "bed": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" -+ ] -+ ], -+ "qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" -+ ] -+ ], -+ "spectra_asm_fl_pdf": [ -+ -+ ], -+ "spectra_asm_fl_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" -+ ] -+ ], -+ "spectra_asm_ln_pdf": [ -+ -+ ], -+ "spectra_asm_ln_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" -+ ] -+ ], -+ "spectra_asm_st_pdf": [ -+ -+ ], -+ "spectra_asm_st_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" -+ ] -+ ], -+ "spectra_cn_fl_pdf": [ -+ -+ ], -+ "spectra_cn_fl_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "spectra_cn_ln_pdf": [ -+ -+ ], -+ "spectra_cn_ln_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "spectra_cn_st_pdf": [ -+ -+ ], -+ "spectra_cn_st_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "stats": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:58:05.545683" -+ }, -+ "single_minimal_stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "10": [ -+ -+ ], -+ "11": [ -+ -+ ], -+ "12": [ -+ -+ ], -+ "13": [ -+ -+ ], -+ "14": [ -+ -+ ], -+ "15": [ -+ -+ ], -+ "16": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "3": [ -+ -+ ], -+ "4": [ -+ -+ ], -+ "5": [ -+ -+ ], -+ "6": [ -+ -+ ], -+ "7": [ -+ -+ ], -+ "8": [ -+ -+ ], -+ "9": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "assembly_qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "bed": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "spectra_asm_fl_pdf": [ -+ -+ ], -+ "spectra_asm_fl_png": [ -+ -+ ], -+ "spectra_asm_ln_pdf": [ -+ -+ ], -+ "spectra_asm_ln_png": [ -+ -+ ], -+ "spectra_asm_st_pdf": [ -+ -+ ], -+ "spectra_asm_st_png": [ -+ -+ ], -+ "spectra_cn_fl_pdf": [ -+ -+ ], -+ "spectra_cn_fl_png": [ -+ -+ ], -+ "spectra_cn_ln_pdf": [ -+ -+ ], -+ "spectra_cn_ln_png": [ -+ -+ ], -+ "spectra_cn_st_pdf": [ -+ -+ ], -+ "spectra_cn_st_png": [ -+ -+ ], -+ "stats": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T20:21:19.606389" -+ }, -+ "test_merquryfk_merquryfk_png": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" -+ ] -+ ], -+ "1": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" -+ ] -+ ], -+ "10": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" -+ ] -+ ], -+ "11": [ -+ -+ ], -+ "12": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" -+ ] -+ ], -+ "13": [ -+ -+ ], -+ "14": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" -+ ] -+ ], -+ "15": [ -+ -+ ], -+ "16": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ], -+ "2": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" -+ ] -+ ], -+ "3": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "4": [ -+ -+ ], -+ "5": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "6": [ -+ -+ ], -+ "7": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "8": [ -+ -+ ], -+ "9": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" -+ ] -+ ], -+ "assembly_qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" -+ ] -+ ], -+ "bed": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" -+ ] -+ ], -+ "qv": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" -+ ] -+ ], -+ "spectra_asm_fl_pdf": [ -+ -+ ], -+ "spectra_asm_fl_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" -+ ] -+ ], -+ "spectra_asm_ln_pdf": [ -+ -+ ], -+ "spectra_asm_ln_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" -+ ] -+ ], -+ "spectra_asm_st_pdf": [ -+ -+ ], -+ "spectra_asm_st_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" -+ ] -+ ], -+ "spectra_cn_fl_pdf": [ -+ -+ ], -+ "spectra_cn_fl_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "spectra_cn_ln_pdf": [ -+ -+ ], -+ "spectra_cn_ln_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "spectra_cn_st_pdf": [ -+ -+ ], -+ "spectra_cn_st_png": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" -+ ] -+ ], -+ "stats": [ -+ [ -+ { -+ "id": "test", -+ "single_end": true -+ }, -+ "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-18T19:57:31.981156" -+ } -+} ---- /dev/null -+++ modules/nf-core/merquryfk/merquryfk/tests/tags.yml -@@ -0,0 +1,2 @@ -+merquryfk/merquryfk: -+ - "modules/nf-core/merquryfk/merquryfk/**" - ---- /dev/null -+++ modules/nf-core/merquryfk/merquryfk/tests/nextflow.config -@@ -0,0 +1,11 @@ -+process { -+ withName: 'FASTK_.*' { -+ ext.args = '-t' -+ } -+ withName: 'test_merquryfk_merquryfk_png:MERQURYFK_MERQURYFK' { -+ ext.args = '-lfs' -+ } -+ withName: 'test_merquryfk_merquryfk_pdf:MERQURYFK_MERQURYFK' { -+ ext.args = '-lfs -pdf' -+ } -+} - ---- /dev/null -+++ modules/nf-core/merquryfk/merquryfk/tests/main.nf.test -@@ -0,0 +1,153 @@ -+nextflow_process { -+ -+ name "Test Process MERQURYFK_MERQURYFK" -+ script "../main.nf" -+ config "./nextflow.config" -+ process "MERQURYFK_MERQURYFK" -+ -+ tag "modules" -+ tag "modules_nfcore" -+ tag "merquryfk" -+ tag "merquryfk/merquryfk" -+ tag "fastk/fastk" -+ -+ setup { -+ run("FASTK_FASTK") { -+ script "../../../fastk/fastk" -+ process { -+ """ -+ input[0] = [ -+ [ id:'test', single_end:true ], // meta map -+ file(params.test_data['homo_sapiens']['illumina']['test_1_fastq_gz'], checkIfExists: true) -+ ] -+ """ -+ } -+ } -+ } -+ -+ test("test_merquryfk_merquryfk_png") { -+ -+ when { -+ process { -+ """ -+ assembly = [ -+ [ id:'test', single_end:true ], // meta map -+ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) -+ ] -+ -+ haplotigs = [ -+ [ id:'test', single_end:true ], [] -+ ] -+ -+ input[0] = FASTK_FASTK.out.hist -+ | join( FASTK_FASTK.out.ktab ) -+ | join( Channel.value( assembly ) ) -+ | join( Channel.value( haplotigs ) ) -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } -+ -+ test("test_merquryfk_merquryfk_pdf") { -+ -+ when { -+ process { -+ """ -+ assembly = [ -+ [ id:'test', single_end:true ], // meta map -+ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) -+ ] -+ -+ haplotigs = [ -+ [ id:'test', single_end:true ], [] -+ ] -+ -+ input[0] = FASTK_FASTK.out.hist -+ | join( FASTK_FASTK.out.ktab ) -+ | join( Channel.value( assembly ) ) -+ | join( Channel.value( haplotigs ) ) -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } -+ -+ test("single_minimal_stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ assembly = [ -+ [ id:'test', single_end:true ], // meta map -+ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) -+ ] -+ -+ haplotigs = [ -+ [ id:'test', single_end:true ], [] -+ ] -+ -+ input[0] = FASTK_FASTK.out.hist -+ | join( FASTK_FASTK.out.ktab ) -+ | join( Channel.value( assembly ) ) -+ | join( Channel.value( haplotigs ) ) -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } -+ -+ test("multiple_minimal_stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ assembly = [ -+ [ id:'test', single_end:true ], // meta map -+ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) -+ ] -+ -+ haplotigs = [ -+ [ id:'test', single_end:true ], -+ file(params.test_data['homo_sapiens']['genome']['genome2_fasta'], checkIfExists: true) -+ ] -+ -+ input[0] = FASTK_FASTK.out.hist -+ | join( FASTK_FASTK.out.ktab ) -+ | join( Channel.value( assembly ) ) -+ | join( Channel.value( haplotigs ) ) -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } -+ -+} - -************************************************************ diff --git a/modules/nf-core/merquryfk/merquryfk/meta.yml b/modules/nf-core/merquryfk/merquryfk/meta.yml deleted file mode 100644 index 0cdbcae6..00000000 --- a/modules/nf-core/merquryfk/merquryfk/meta.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: "merquryfk_merquryfk" -description: FastK based version of Merqury -keywords: - - Merqury - - reference-free - - assembly evaluation -tools: - - "merquryfk": - description: "FastK based version of Merqury" - homepage: "https://github.com/thegenemyers/MERQURY.FK" - tool_dev_url: "https://github.com/thegenemyers/MERQURY.FK" - licence: ["https://github.com/thegenemyers/MERQURY.FK/blob/main/LICENSE"] -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fastk_hist: - type: file - description: A histogram files from the program FastK - pattern: "*.hist" - - fastk_ktab: - type: file - description: Histogram ktab files from the program FastK (option -t) - pattern: "*.ktab*" - - assembly: - type: file - description: Genome (primary) assembly files (fasta format) - pattern: ".fasta" - - haplotigs: - type: file - description: Assembly haplotigs (fasta format) - pattern: ".fasta" -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - stats: - type: file - description: Assembly statistics file - pattern: "*.completeness.stats" - - bed: - type: file - description: Assembly only kmer positions not supported by reads in bed format - pattern: "*_only.bed" - - spectra_cn_fl_png: - type: file - description: "Unstacked copy number spectra filled plot in PNG format" - pattern: "*.spectra-cn.fl.png" - - spectra_cn_ln_png: - type: file - description: "Unstacked copy number spectra line plot in PNG format" - pattern: "*.spectra-cn.ln.png" - - spectra_cn_st_png: - type: file - description: "Stacked copy number spectra line plot in PNG format" - pattern: "*.spectra-cn.st.png" - - spectra_asm_fl_png: - type: file - description: "Unstacked assembly spectra filled plot in PNG format" - pattern: "*.spectra-asm.fl.png" - - spectra_asm_ln_png: - type: file - description: "Unstacked assembly spectra line plot in PNG format" - pattern: "*.spectra-asm.ln.png" - - spectra_asm_st_png: - type: file - description: "Stacked assembly spectra line plot in PNG format" - pattern: "*.spectra-asm.st.png" - - spectra_cn_fl_pdf: - type: file - description: "Unstacked copy number spectra filled plot in PDF format" - pattern: "*.spectra-cn.fl.pdf" - - spectra_cn_ln_pdf: - type: file - description: "Unstacked copy number spectra line plot in PDF format" - pattern: "*.spectra-cn.ln.pdf" - - spectra_cn_st_pdf: - type: file - description: "Stacked copy number spectra line plot in PDF format" - pattern: "*.spectra-cn.st.pdf" - - spectra_asm_fl_pdf: - type: file - description: "Unstacked assembly spectra filled plot in PDF format" - pattern: "*.spectra-asm.fl.pdf" - - spectra_asm_ln_pdf: - type: file - description: "Unstacked assembly spectra line plot in PDF format" - pattern: "*.spectra-asm.ln.pdf" - - spectra_asm_st_pdf: - type: file - description: "Stacked assembly spectra line plot in PDF format" - pattern: "*.spectra-asm.st.pdf" - - assembly_qv: - type: file - description: "error and qv table for each scaffold of the assembly" - pattern: "*.qv" - - qv: - type: file - description: "error and qv of each assembly as a whole" - pattern: "*.qv" -authors: - - "@mahesh-panchal" -maintainers: - - "@mahesh-panchal" - - "@gallvp" diff --git a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test deleted file mode 100644 index 5c4cce76..00000000 --- a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test +++ /dev/null @@ -1,153 +0,0 @@ -nextflow_process { - - name "Test Process MERQURYFK_MERQURYFK" - script "../main.nf" - config "./nextflow.config" - process "MERQURYFK_MERQURYFK" - - tag "modules" - tag "modules_nfcore" - tag "merquryfk" - tag "merquryfk/merquryfk" - tag "fastk/fastk" - - setup { - run("FASTK_FASTK") { - script "../../../fastk/fastk" - process { - """ - input[0] = [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - """ - } - } - } - - test("test_merquryfk_merquryfk_png") { - - when { - process { - """ - assembly = [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - ] - - haplotigs = [ - [ id:'test', single_end:true ], [] - ] - - input[0] = FASTK_FASTK.out.hist - | join( FASTK_FASTK.out.ktab ) - | join( Channel.value( assembly ) ) - | join( Channel.value( haplotigs ) ) - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } - - test("test_merquryfk_merquryfk_pdf") { - - when { - process { - """ - assembly = [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - ] - - haplotigs = [ - [ id:'test', single_end:true ], [] - ] - - input[0] = FASTK_FASTK.out.hist - | join( FASTK_FASTK.out.ktab ) - | join( Channel.value( assembly ) ) - | join( Channel.value( haplotigs ) ) - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } - - test("single_minimal_stub") { - - options '-stub' - - when { - process { - """ - assembly = [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - ] - - haplotigs = [ - [ id:'test', single_end:true ], [] - ] - - input[0] = FASTK_FASTK.out.hist - | join( FASTK_FASTK.out.ktab ) - | join( Channel.value( assembly ) ) - | join( Channel.value( haplotigs ) ) - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } - - test("multiple_minimal_stub") { - - options '-stub' - - when { - process { - """ - assembly = [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - ] - - haplotigs = [ - [ id:'test', single_end:true ], - file(params.test_data['homo_sapiens']['genome']['genome2_fasta'], checkIfExists: true) - ] - - input[0] = FASTK_FASTK.out.hist - | join( FASTK_FASTK.out.ktab ) - | join( Channel.value( assembly ) ) - | join( Channel.value( haplotigs ) ) - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - } - -} diff --git a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap b/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap deleted file mode 100644 index eebc609f..00000000 --- a/modules/nf-core/merquryfk/merquryfk/tests/main.nf.test.snap +++ /dev/null @@ -1,802 +0,0 @@ -{ - "multiple_minimal_stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - [ - "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "10": [ - - ], - "11": [ - - ], - "12": [ - - ], - "13": [ - - ], - "14": [ - - ], - "15": [ - - ], - "16": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - [ - "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "3": [ - - ], - "4": [ - - ], - "5": [ - - ], - "6": [ - - ], - "7": [ - - ], - "8": [ - - ], - "9": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "assembly_qv": [ - [ - { - "id": "test", - "single_end": true - }, - [ - "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.genome2.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "bed": [ - [ - { - "id": "test", - "single_end": true - }, - [ - "test.genome2_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "spectra_asm_fl_pdf": [ - - ], - "spectra_asm_fl_png": [ - - ], - "spectra_asm_ln_pdf": [ - - ], - "spectra_asm_ln_png": [ - - ], - "spectra_asm_st_pdf": [ - - ], - "spectra_asm_st_png": [ - - ], - "spectra_cn_fl_pdf": [ - - ], - "spectra_cn_fl_png": [ - - ], - "spectra_cn_ln_pdf": [ - - ], - "spectra_cn_ln_png": [ - - ], - "spectra_cn_st_pdf": [ - - ], - "spectra_cn_st_png": [ - - ], - "stats": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T20:21:30.488412" - }, - "test_merquryfk_merquryfk_pdf": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" - ] - ], - "10": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" - ] - ], - "11": [ - - ], - "12": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" - ] - ], - "13": [ - - ], - "14": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" - ] - ], - "15": [ - - ], - "16": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" - ] - ], - "3": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "4": [ - - ], - "5": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "6": [ - - ], - "7": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "8": [ - - ], - "9": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" - ] - ], - "assembly_qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" - ] - ], - "bed": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" - ] - ], - "qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" - ] - ], - "spectra_asm_fl_pdf": [ - - ], - "spectra_asm_fl_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" - ] - ], - "spectra_asm_ln_pdf": [ - - ], - "spectra_asm_ln_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" - ] - ], - "spectra_asm_st_pdf": [ - - ], - "spectra_asm_st_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" - ] - ], - "spectra_cn_fl_pdf": [ - - ], - "spectra_cn_fl_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "spectra_cn_ln_pdf": [ - - ], - "spectra_cn_ln_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "spectra_cn_st_pdf": [ - - ], - "spectra_cn_st_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "stats": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" - ] - ], - "versions": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:58:05.545683" - }, - "single_minimal_stub": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "10": [ - - ], - "11": [ - - ], - "12": [ - - ], - "13": [ - - ], - "14": [ - - ], - "15": [ - - ], - "16": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "3": [ - - ], - "4": [ - - ], - "5": [ - - ], - "6": [ - - ], - "7": [ - - ], - "8": [ - - ], - "9": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "assembly_qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "bed": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "spectra_asm_fl_pdf": [ - - ], - "spectra_asm_fl_png": [ - - ], - "spectra_asm_ln_pdf": [ - - ], - "spectra_asm_ln_png": [ - - ], - "spectra_asm_st_pdf": [ - - ], - "spectra_asm_st_png": [ - - ], - "spectra_cn_fl_pdf": [ - - ], - "spectra_cn_fl_png": [ - - ], - "spectra_cn_ln_pdf": [ - - ], - "spectra_cn_ln_png": [ - - ], - "spectra_cn_st_pdf": [ - - ], - "spectra_cn_st_png": [ - - ], - "stats": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T20:21:19.606389" - }, - "test_merquryfk_merquryfk_png": { - "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" - ] - ], - "1": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" - ] - ], - "10": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" - ] - ], - "11": [ - - ], - "12": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" - ] - ], - "13": [ - - ], - "14": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" - ] - ], - "15": [ - - ], - "16": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ], - "2": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" - ] - ], - "3": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "4": [ - - ], - "5": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "6": [ - - ], - "7": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "8": [ - - ], - "9": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" - ] - ], - "assembly_qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.qv:md5,1e11be8abfa2230024042832f58f96f9" - ] - ], - "bed": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome_only.bed:md5,662d73e8a0019708feb538ec53c220f7" - ] - ], - "qv": [ - [ - { - "id": "test", - "single_end": true - }, - "test.qv:md5,02b4d5c639ca706ff707bad89e29d90e" - ] - ], - "spectra_asm_fl_pdf": [ - - ], - "spectra_asm_fl_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.fl.png:md5,bb9ac38fe8991fbacbe791e562626d89" - ] - ], - "spectra_asm_ln_pdf": [ - - ], - "spectra_asm_ln_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.ln.png:md5,48534a9d5e2ce9365eb1f0397c76f337" - ] - ], - "spectra_asm_st_pdf": [ - - ], - "spectra_asm_st_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.spectra-asm.st.png:md5,5e031a8b9ba2800e291721a11f4d9c00" - ] - ], - "spectra_cn_fl_pdf": [ - - ], - "spectra_cn_fl_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.fl.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "spectra_cn_ln_pdf": [ - - ], - "spectra_cn_ln_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.ln.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "spectra_cn_st_pdf": [ - - ], - "spectra_cn_st_png": [ - [ - { - "id": "test", - "single_end": true - }, - "test.genome.spectra-cn.st.png:md5,50bad6b85b8f80b8411b50e4119bc959" - ] - ], - "stats": [ - [ - { - "id": "test", - "single_end": true - }, - "test.completeness.stats:md5,797224fa75606bbda7f62caae7c9151c" - ] - ], - "versions": [ - "versions.yml:md5,c28c863a18f7ad02798270acd2e6aa48" - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-05-18T19:57:31.981156" - } -} \ No newline at end of file diff --git a/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config b/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config deleted file mode 100644 index 63d72d24..00000000 --- a/modules/nf-core/merquryfk/merquryfk/tests/nextflow.config +++ /dev/null @@ -1,11 +0,0 @@ -process { - withName: 'FASTK_.*' { - ext.args = '-t' - } - withName: 'test_merquryfk_merquryfk_png:MERQURYFK_MERQURYFK' { - ext.args = '-lfs' - } - withName: 'test_merquryfk_merquryfk_pdf:MERQURYFK_MERQURYFK' { - ext.args = '-lfs -pdf' - } -} diff --git a/modules/nf-core/merquryfk/merquryfk/tests/tags.yml b/modules/nf-core/merquryfk/merquryfk/tests/tags.yml deleted file mode 100644 index 7dcac99b..00000000 --- a/modules/nf-core/merquryfk/merquryfk/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -merquryfk/merquryfk: - - "modules/nf-core/merquryfk/merquryfk/**" diff --git a/modules/nf-core/meryl/count/environment.yml b/modules/nf-core/meryl/count/environment.yml new file mode 100644 index 00000000..808565ee --- /dev/null +++ b/modules/nf-core/meryl/count/environment.yml @@ -0,0 +1,7 @@ +name: meryl_count +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::meryl=1.4.1 diff --git a/modules/nf-core/meryl/count/main.nf b/modules/nf-core/meryl/count/main.nf new file mode 100644 index 00000000..2f0518f3 --- /dev/null +++ b/modules/nf-core/meryl/count/main.nf @@ -0,0 +1,53 @@ +process MERYL_COUNT { + tag "$meta.id" + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/meryl:1.4.1--h4ac6f70_0': + 'biocontainers/meryl:1.4.1--h4ac6f70_0' }" + + input: + tuple val(meta), path(reads) + val kvalue + + output: + tuple val(meta), path("*.meryldb"), emit: meryl_db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + for READ in $reads; do + meryl count \\ + k=$kvalue \\ + threads=$task.cpus \\ + $args \\ + $reads \\ + output read.\${READ%.f*}.meryldb + done + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + for READ in $reads; do + touch read.\${READ%.f*}.meryldb + done + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/meryl/count/meta.yml b/modules/nf-core/meryl/count/meta.yml new file mode 100644 index 00000000..c9347c0c --- /dev/null +++ b/modules/nf-core/meryl/count/meta.yml @@ -0,0 +1,45 @@ +name: "meryl_count" +description: A genomic k-mer counter (and sequence utility) with nice features. +keywords: + - k-mer + - count + - reference-free +tools: + - "meryl": + description: "A genomic k-mer counter (and sequence utility) with nice features. " + homepage: "https://github.com/marbl/meryl" + documentation: "https://meryl.readthedocs.io/en/latest/quick-start.html" + tool_dev_url: "https://github.com/marbl/meryl" + licence: ["GPL"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - kvalue: + type: integer + description: An integer value of k to use as the k-mer value. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - meryl_db: + type: directory + description: A Meryl k-mer database + pattern: "*.meryldb" +authors: + - "@mahesh-panchal" +maintainers: + - "@mahesh-panchal" diff --git a/modules/nf-core/meryl/count/tests/main.nf.test b/modules/nf-core/meryl/count/tests/main.nf.test new file mode 100644 index 00000000..cce46c36 --- /dev/null +++ b/modules/nf-core/meryl/count/tests/main.nf.test @@ -0,0 +1,60 @@ +nextflow_process { + + name "Test Process MERYL_COUNT" + script "../main.nf" + process "MERYL_COUNT" + + tag "modules" + tag "modules_nfcore" + tag "meryl" + tag "meryl/count" + + test("bacteroides_fragilis - fastq") { + + when { + process { + """ + input[0] = Channel.value([ + [ id: 'test', single_end: true ], // meta map + file( params.modules_testdata_base_path + "/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test1_1.fastq.gz", checkIfExists: true ) + ]) + input[1] = Channel.value(21) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("bacteroides_fragilis - fastq - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.value([ + [ id: 'test', single_end: true ], // meta map + file( params.modules_testdata_base_path + "/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test1_1.fastq.gz", checkIfExists: true ) + ]) + input[1] = Channel.value(21) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/meryl/count/tests/main.nf.test.snap b/modules/nf-core/meryl/count/tests/main.nf.test.snap new file mode 100644 index 00000000..da7c9f31 --- /dev/null +++ b/modules/nf-core/meryl/count/tests/main.nf.test.snap @@ -0,0 +1,332 @@ +{ + "bacteroides_fragilis - fastq": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "0x000000.merylData:md5,eefafbacbd0c41e4e4851e0e79a665a2", + "0x000000.merylIndex:md5,be9c1da85afee20689c5c7780b6c4996", + "0x000001.merylData:md5,d7e46736fc2896085b4610c50ec74835", + "0x000001.merylIndex:md5,a68e8b877ed5ce04e6f36a279b2fac0b", + "0x000010.merylData:md5,635badb59ad796363c2ff31801ab3d07", + "0x000010.merylIndex:md5,afed85194fcbd762b7acf86427b41cdd", + "0x000011.merylData:md5,b79970fce39d47cda1312080cac2f5d4", + "0x000011.merylIndex:md5,402ba5cf71656e2d19e584e4b65cadaa", + "0x000100.merylData:md5,48a7160c93fe5dd22fcdf8beb30e9256", + "0x000100.merylIndex:md5,fbfae07482bed8b00c6a690850c632fc", + "0x000101.merylData:md5,3ff336b4d59850f6726a4bd5670d49be", + "0x000101.merylIndex:md5,817edfe6dcbb07801bb9de54e0e1839a", + "0x000110.merylData:md5,41f253dc8240dd26cd8bbe379968aa1f", + "0x000110.merylIndex:md5,64f1400897c3108d5bc4957bea80569c", + "0x000111.merylData:md5,0860dd1bb6ee8e99a315c976b0c6226a", + "0x000111.merylIndex:md5,794aadc07e62b0d872763f2b40615627", + "0x001000.merylData:md5,daee6b4d18a43ce3a6c46ee2e8105a93", + "0x001000.merylIndex:md5,5ec6234ffd7d0380db3adc5aa3a3bb85", + "0x001001.merylData:md5,7e9b6d3c6f116fe418c4a4b0529a795e", + "0x001001.merylIndex:md5,eb63cc438cac77169a527bd6607bd781", + "0x001010.merylData:md5,f93c20dbdd16be37cdcfa263fe3c4ca4", + "0x001010.merylIndex:md5,d00fe5bd25b49bc9084b705017ccf4b9", + "0x001011.merylData:md5,eb25d445533ba345ea4e315750dd878c", + "0x001011.merylIndex:md5,1cacb579a9991dc5ebeef884347b81f5", + "0x001100.merylData:md5,7c783f255d155c23218e14c390b4c505", + "0x001100.merylIndex:md5,41a4d42d07928f3a33fd6c2d4ff613d8", + "0x001101.merylData:md5,98f323f13f99a2c75ccf8db9179f4b7d", + "0x001101.merylIndex:md5,528f3cdc0cbde3f0c91f8e8acd00a3e1", + "0x001110.merylData:md5,12f1c899ed2878d60c3a7ee5eb599839", + "0x001110.merylIndex:md5,755fc26bb9c8fec041798958f83b37b8", + "0x001111.merylData:md5,594881e83a5ece0879e79e2be82847f9", + "0x001111.merylIndex:md5,62625db2836f07303c9e4d383574143f", + "0x010000.merylData:md5,537d1a60554bd68386509fc3edd5e609", + "0x010000.merylIndex:md5,2bf23b6a552306dab61d0da0ad0789e0", + "0x010001.merylData:md5,9baef5a2ea4ed43caf18cabcdccaa3eb", + "0x010001.merylIndex:md5,ff98a6e5d18ab52795c6af00f47fc355", + "0x010010.merylData:md5,3b37668e9f9e1fc220e1fed36ecb7f86", + "0x010010.merylIndex:md5,0724a75055d62586f95f8b5c58688dd3", + "0x010011.merylData:md5,b4a039219f34df414048a023beea583b", + "0x010011.merylIndex:md5,34b29bdb6676e172e80202d36a0551d7", + "0x010100.merylData:md5,a49dfdebd8c4b3ff5ed1f4f84128b7e7", + "0x010100.merylIndex:md5,7cf00a46160bcb04de47e8bd05e8696b", + "0x010101.merylData:md5,0065195381f0a8629426139f3ba97327", + "0x010101.merylIndex:md5,de73cfc31abb763a11e063711f4b86bd", + "0x010110.merylData:md5,b331a0a2a59e46741366b8f811eaafcb", + "0x010110.merylIndex:md5,1caca7c16ffcc8070fbb58f4c9936089", + "0x010111.merylData:md5,7a51306a008a7f7639d98b4d1f24be92", + "0x010111.merylIndex:md5,12572a822643689bbc77030acb395850", + "0x011000.merylData:md5,6cdc1ab34d47f23a298ed3fc1d80ab4a", + "0x011000.merylIndex:md5,8947c6d693556b2530aed1f9ba0f23ba", + "0x011001.merylData:md5,9901aed256e9790ee9fe4a797bdc2348", + "0x011001.merylIndex:md5,1538131168e32210c7ada2fe7379ca18", + "0x011010.merylData:md5,30a5df2f9d2b33bd76780c5e1a1dca39", + "0x011010.merylIndex:md5,61d929e6929922e3206d6338340a9f87", + "0x011011.merylData:md5,edf65fc218d2b867a7117d0cd20bb578", + "0x011011.merylIndex:md5,fd6c02e383ec73fe31051ab16c3dc590", + "0x011100.merylData:md5,c0cbe5856dab102fc6ecdc481739936e", + "0x011100.merylIndex:md5,2c938d6d5806169f5718e35308d5664e", + "0x011101.merylData:md5,135031f4ec8f4f9fee07a6cd980a8f4e", + "0x011101.merylIndex:md5,855f5b00dce3c1307db74935f34ff777", + "0x011110.merylData:md5,e9c9a04e6d1a8763ad22dbc810918c8e", + "0x011110.merylIndex:md5,4bf0e856bea5404c683f77a857c8be04", + "0x011111.merylData:md5,5f8032cedc4fe13e9eee3a1e7b58ffd9", + "0x011111.merylIndex:md5,c7ff331ae2cb2c9f63cd33a57e3f707a", + "0x100000.merylData:md5,100d73f6f495c20c52c12c2e12764c33", + "0x100000.merylIndex:md5,3e1715843526e9ad1908d1a6dd882364", + "0x100001.merylData:md5,f97f4b5624e8cc4d7899fe31898b75ba", + "0x100001.merylIndex:md5,f5b5337094755876ad5ddfe9471f17a7", + "0x100010.merylData:md5,d68cc8b0acd31a80b46dc59c682a9875", + "0x100010.merylIndex:md5,d3e62d9d487c8299dd4b2806309f2757", + "0x100011.merylData:md5,71b87c478dcfdd496dfaae98c532c551", + "0x100011.merylIndex:md5,5cbdcd1ebbbc5e0e4848aedfba8f4d7a", + "0x100100.merylData:md5,bfbd0b14ae7633f162c2eba5ebf429f2", + "0x100100.merylIndex:md5,327cdff7a43f60879b611c56fc689570", + "0x100101.merylData:md5,c9147b0a4adc493a15f4c79d39792956", + "0x100101.merylIndex:md5,93f5cb4c0a35c15fc45d88561627d6c8", + "0x100110.merylData:md5,4e05cbeec33b4085f460093e1a5905a7", + "0x100110.merylIndex:md5,b065c6aa4180b82bcc1d723513bd5d4b", + "0x100111.merylData:md5,68a6a2ca12adba1c57dad51d73d47339", + "0x100111.merylIndex:md5,f1344a178e0141497f404de76758cc27", + "0x101000.merylData:md5,15cefb92f8ba5ee54472b66b44fb6d9d", + "0x101000.merylIndex:md5,4c83229ee4be2fbd5732d6dae5aacb28", + "0x101001.merylData:md5,910c4abf7a925e2582b13d7e396c591b", + "0x101001.merylIndex:md5,8fc1b16e74ad2ccf7a5cf330df47735c", + "0x101010.merylData:md5,85bf310f1cd130f2201d81daca291ff7", + "0x101010.merylIndex:md5,72ea3767e2730d318c292d5d48deb63f", + "0x101011.merylData:md5,033989603839db494fdffadedca76a6c", + "0x101011.merylIndex:md5,8f3731e5cf80723f7bcf1f2b90d5667b", + "0x101100.merylData:md5,df342143a9c4c54f2e8e6496b6e4f708", + "0x101100.merylIndex:md5,c3421ce5e8b49548df91cd195315e139", + "0x101101.merylData:md5,42d25675e9d0bc06c8b34d75d07a4caf", + "0x101101.merylIndex:md5,5c2f10b939ec5d463c524af55cd25c24", + "0x101110.merylData:md5,2e43f76c1e826da6fb9757b4f812acd1", + "0x101110.merylIndex:md5,b6b3ba4282ca1417462c50c43c164a0c", + "0x101111.merylData:md5,45732e59a9113476954035ffe0e7b601", + "0x101111.merylIndex:md5,45a3da9ddd34c4b5651690ce421ee5f2", + "0x110000.merylData:md5,e10a6e9169bc8fbdbbbac680e58e9781", + "0x110000.merylIndex:md5,53b2dbff4c7598489dba7956f2accdda", + "0x110001.merylData:md5,3db19699cedecafea182e146ecf2b24d", + "0x110001.merylIndex:md5,3271f69d5830172dbab92cdae3a5b3a3", + "0x110010.merylData:md5,6c9ccb0ca19ec3dd0bcac3d4ac16c1bb", + "0x110010.merylIndex:md5,f9a3fcc0aa34271866a2730a487bcff0", + "0x110011.merylData:md5,03138380dd03d3ec08b6ceee3bb8ecdc", + "0x110011.merylIndex:md5,26a57f682f875ee3e920e28f9351e586", + "0x110100.merylData:md5,caa3b1d6f1a5ea7815511b729dcb4f5a", + "0x110100.merylIndex:md5,7d4f76e3dddb398de2f233bfb80f6161", + "0x110101.merylData:md5,1f3a72ccf2fdee4332f2b34d2368f585", + "0x110101.merylIndex:md5,317e723efbc4bb073cddaaae3bba0931", + "0x110110.merylData:md5,fe8eb93ed0cf30cac4678179b0d2daa7", + "0x110110.merylIndex:md5,66c33da6a8b65ad35d0e0717c9d134eb", + "0x110111.merylData:md5,b7aefc0873d30cde41d38c7f1b90efc3", + "0x110111.merylIndex:md5,08cc48d6a13aa4fdce144c3ff41f5be6", + "0x111000.merylData:md5,9504dab5d20741912da8f815912507b9", + "0x111000.merylIndex:md5,e677a2fb775336b8efda8e41e4bc2720", + "0x111001.merylData:md5,eabf6c9b053696a34f38136f4fa05ed8", + "0x111001.merylIndex:md5,55479260f69d1d3abab93d0e155d0f2f", + "0x111010.merylData:md5,0ea69feac704ed4bcd434c67a6e5a769", + "0x111010.merylIndex:md5,f60e31a49a6d097b44d0a244685747f9", + "0x111011.merylData:md5,20e7301ecc915e918d390fd45b8bb428", + "0x111011.merylIndex:md5,1d8a61f45b82db9caa8e4b5cb1dbfb30", + "0x111100.merylData:md5,95e6fe905b6c07e7e3537d1ee6a2dca9", + "0x111100.merylIndex:md5,231ddde97648162e313290f49ceab69b", + "0x111101.merylData:md5,79cdba511fae030098025de90472e21d", + "0x111101.merylIndex:md5,e93892161446762ac545e0399e362685", + "0x111110.merylData:md5,062ba875af75297889359bc39409ab99", + "0x111110.merylIndex:md5,0cd1b81c64fee3bf067ce5ca1755a2bc", + "0x111111.merylData:md5,68feb8f1bade7885a9a696bb0825a17f", + "0x111111.merylIndex:md5,fd631e33829939cd7f06581c80791dc4", + "merylIndex:md5,d9e794e14b1eeb0eaa4d98e10eb571cc" + ] + ] + ], + "1": [ + "versions.yml:md5,a4a6baac7481f1d4595ba54622bdf33d" + ], + "meryl_db": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "0x000000.merylData:md5,eefafbacbd0c41e4e4851e0e79a665a2", + "0x000000.merylIndex:md5,be9c1da85afee20689c5c7780b6c4996", + "0x000001.merylData:md5,d7e46736fc2896085b4610c50ec74835", + "0x000001.merylIndex:md5,a68e8b877ed5ce04e6f36a279b2fac0b", + "0x000010.merylData:md5,635badb59ad796363c2ff31801ab3d07", + "0x000010.merylIndex:md5,afed85194fcbd762b7acf86427b41cdd", + "0x000011.merylData:md5,b79970fce39d47cda1312080cac2f5d4", + "0x000011.merylIndex:md5,402ba5cf71656e2d19e584e4b65cadaa", + "0x000100.merylData:md5,48a7160c93fe5dd22fcdf8beb30e9256", + "0x000100.merylIndex:md5,fbfae07482bed8b00c6a690850c632fc", + "0x000101.merylData:md5,3ff336b4d59850f6726a4bd5670d49be", + "0x000101.merylIndex:md5,817edfe6dcbb07801bb9de54e0e1839a", + "0x000110.merylData:md5,41f253dc8240dd26cd8bbe379968aa1f", + "0x000110.merylIndex:md5,64f1400897c3108d5bc4957bea80569c", + "0x000111.merylData:md5,0860dd1bb6ee8e99a315c976b0c6226a", + "0x000111.merylIndex:md5,794aadc07e62b0d872763f2b40615627", + "0x001000.merylData:md5,daee6b4d18a43ce3a6c46ee2e8105a93", + "0x001000.merylIndex:md5,5ec6234ffd7d0380db3adc5aa3a3bb85", + "0x001001.merylData:md5,7e9b6d3c6f116fe418c4a4b0529a795e", + "0x001001.merylIndex:md5,eb63cc438cac77169a527bd6607bd781", + "0x001010.merylData:md5,f93c20dbdd16be37cdcfa263fe3c4ca4", + "0x001010.merylIndex:md5,d00fe5bd25b49bc9084b705017ccf4b9", + "0x001011.merylData:md5,eb25d445533ba345ea4e315750dd878c", + "0x001011.merylIndex:md5,1cacb579a9991dc5ebeef884347b81f5", + "0x001100.merylData:md5,7c783f255d155c23218e14c390b4c505", + "0x001100.merylIndex:md5,41a4d42d07928f3a33fd6c2d4ff613d8", + "0x001101.merylData:md5,98f323f13f99a2c75ccf8db9179f4b7d", + "0x001101.merylIndex:md5,528f3cdc0cbde3f0c91f8e8acd00a3e1", + "0x001110.merylData:md5,12f1c899ed2878d60c3a7ee5eb599839", + "0x001110.merylIndex:md5,755fc26bb9c8fec041798958f83b37b8", + "0x001111.merylData:md5,594881e83a5ece0879e79e2be82847f9", + "0x001111.merylIndex:md5,62625db2836f07303c9e4d383574143f", + "0x010000.merylData:md5,537d1a60554bd68386509fc3edd5e609", + "0x010000.merylIndex:md5,2bf23b6a552306dab61d0da0ad0789e0", + "0x010001.merylData:md5,9baef5a2ea4ed43caf18cabcdccaa3eb", + "0x010001.merylIndex:md5,ff98a6e5d18ab52795c6af00f47fc355", + "0x010010.merylData:md5,3b37668e9f9e1fc220e1fed36ecb7f86", + "0x010010.merylIndex:md5,0724a75055d62586f95f8b5c58688dd3", + "0x010011.merylData:md5,b4a039219f34df414048a023beea583b", + "0x010011.merylIndex:md5,34b29bdb6676e172e80202d36a0551d7", + "0x010100.merylData:md5,a49dfdebd8c4b3ff5ed1f4f84128b7e7", + "0x010100.merylIndex:md5,7cf00a46160bcb04de47e8bd05e8696b", + "0x010101.merylData:md5,0065195381f0a8629426139f3ba97327", + "0x010101.merylIndex:md5,de73cfc31abb763a11e063711f4b86bd", + "0x010110.merylData:md5,b331a0a2a59e46741366b8f811eaafcb", + "0x010110.merylIndex:md5,1caca7c16ffcc8070fbb58f4c9936089", + "0x010111.merylData:md5,7a51306a008a7f7639d98b4d1f24be92", + "0x010111.merylIndex:md5,12572a822643689bbc77030acb395850", + "0x011000.merylData:md5,6cdc1ab34d47f23a298ed3fc1d80ab4a", + "0x011000.merylIndex:md5,8947c6d693556b2530aed1f9ba0f23ba", + "0x011001.merylData:md5,9901aed256e9790ee9fe4a797bdc2348", + "0x011001.merylIndex:md5,1538131168e32210c7ada2fe7379ca18", + "0x011010.merylData:md5,30a5df2f9d2b33bd76780c5e1a1dca39", + "0x011010.merylIndex:md5,61d929e6929922e3206d6338340a9f87", + "0x011011.merylData:md5,edf65fc218d2b867a7117d0cd20bb578", + "0x011011.merylIndex:md5,fd6c02e383ec73fe31051ab16c3dc590", + "0x011100.merylData:md5,c0cbe5856dab102fc6ecdc481739936e", + "0x011100.merylIndex:md5,2c938d6d5806169f5718e35308d5664e", + "0x011101.merylData:md5,135031f4ec8f4f9fee07a6cd980a8f4e", + "0x011101.merylIndex:md5,855f5b00dce3c1307db74935f34ff777", + "0x011110.merylData:md5,e9c9a04e6d1a8763ad22dbc810918c8e", + "0x011110.merylIndex:md5,4bf0e856bea5404c683f77a857c8be04", + "0x011111.merylData:md5,5f8032cedc4fe13e9eee3a1e7b58ffd9", + "0x011111.merylIndex:md5,c7ff331ae2cb2c9f63cd33a57e3f707a", + "0x100000.merylData:md5,100d73f6f495c20c52c12c2e12764c33", + "0x100000.merylIndex:md5,3e1715843526e9ad1908d1a6dd882364", + "0x100001.merylData:md5,f97f4b5624e8cc4d7899fe31898b75ba", + "0x100001.merylIndex:md5,f5b5337094755876ad5ddfe9471f17a7", + "0x100010.merylData:md5,d68cc8b0acd31a80b46dc59c682a9875", + "0x100010.merylIndex:md5,d3e62d9d487c8299dd4b2806309f2757", + "0x100011.merylData:md5,71b87c478dcfdd496dfaae98c532c551", + "0x100011.merylIndex:md5,5cbdcd1ebbbc5e0e4848aedfba8f4d7a", + "0x100100.merylData:md5,bfbd0b14ae7633f162c2eba5ebf429f2", + "0x100100.merylIndex:md5,327cdff7a43f60879b611c56fc689570", + "0x100101.merylData:md5,c9147b0a4adc493a15f4c79d39792956", + "0x100101.merylIndex:md5,93f5cb4c0a35c15fc45d88561627d6c8", + "0x100110.merylData:md5,4e05cbeec33b4085f460093e1a5905a7", + "0x100110.merylIndex:md5,b065c6aa4180b82bcc1d723513bd5d4b", + "0x100111.merylData:md5,68a6a2ca12adba1c57dad51d73d47339", + "0x100111.merylIndex:md5,f1344a178e0141497f404de76758cc27", + "0x101000.merylData:md5,15cefb92f8ba5ee54472b66b44fb6d9d", + "0x101000.merylIndex:md5,4c83229ee4be2fbd5732d6dae5aacb28", + "0x101001.merylData:md5,910c4abf7a925e2582b13d7e396c591b", + "0x101001.merylIndex:md5,8fc1b16e74ad2ccf7a5cf330df47735c", + "0x101010.merylData:md5,85bf310f1cd130f2201d81daca291ff7", + "0x101010.merylIndex:md5,72ea3767e2730d318c292d5d48deb63f", + "0x101011.merylData:md5,033989603839db494fdffadedca76a6c", + "0x101011.merylIndex:md5,8f3731e5cf80723f7bcf1f2b90d5667b", + "0x101100.merylData:md5,df342143a9c4c54f2e8e6496b6e4f708", + "0x101100.merylIndex:md5,c3421ce5e8b49548df91cd195315e139", + "0x101101.merylData:md5,42d25675e9d0bc06c8b34d75d07a4caf", + "0x101101.merylIndex:md5,5c2f10b939ec5d463c524af55cd25c24", + "0x101110.merylData:md5,2e43f76c1e826da6fb9757b4f812acd1", + "0x101110.merylIndex:md5,b6b3ba4282ca1417462c50c43c164a0c", + "0x101111.merylData:md5,45732e59a9113476954035ffe0e7b601", + "0x101111.merylIndex:md5,45a3da9ddd34c4b5651690ce421ee5f2", + "0x110000.merylData:md5,e10a6e9169bc8fbdbbbac680e58e9781", + "0x110000.merylIndex:md5,53b2dbff4c7598489dba7956f2accdda", + "0x110001.merylData:md5,3db19699cedecafea182e146ecf2b24d", + "0x110001.merylIndex:md5,3271f69d5830172dbab92cdae3a5b3a3", + "0x110010.merylData:md5,6c9ccb0ca19ec3dd0bcac3d4ac16c1bb", + "0x110010.merylIndex:md5,f9a3fcc0aa34271866a2730a487bcff0", + "0x110011.merylData:md5,03138380dd03d3ec08b6ceee3bb8ecdc", + "0x110011.merylIndex:md5,26a57f682f875ee3e920e28f9351e586", + "0x110100.merylData:md5,caa3b1d6f1a5ea7815511b729dcb4f5a", + "0x110100.merylIndex:md5,7d4f76e3dddb398de2f233bfb80f6161", + "0x110101.merylData:md5,1f3a72ccf2fdee4332f2b34d2368f585", + "0x110101.merylIndex:md5,317e723efbc4bb073cddaaae3bba0931", + "0x110110.merylData:md5,fe8eb93ed0cf30cac4678179b0d2daa7", + "0x110110.merylIndex:md5,66c33da6a8b65ad35d0e0717c9d134eb", + "0x110111.merylData:md5,b7aefc0873d30cde41d38c7f1b90efc3", + "0x110111.merylIndex:md5,08cc48d6a13aa4fdce144c3ff41f5be6", + "0x111000.merylData:md5,9504dab5d20741912da8f815912507b9", + "0x111000.merylIndex:md5,e677a2fb775336b8efda8e41e4bc2720", + "0x111001.merylData:md5,eabf6c9b053696a34f38136f4fa05ed8", + "0x111001.merylIndex:md5,55479260f69d1d3abab93d0e155d0f2f", + "0x111010.merylData:md5,0ea69feac704ed4bcd434c67a6e5a769", + "0x111010.merylIndex:md5,f60e31a49a6d097b44d0a244685747f9", + "0x111011.merylData:md5,20e7301ecc915e918d390fd45b8bb428", + "0x111011.merylIndex:md5,1d8a61f45b82db9caa8e4b5cb1dbfb30", + "0x111100.merylData:md5,95e6fe905b6c07e7e3537d1ee6a2dca9", + "0x111100.merylIndex:md5,231ddde97648162e313290f49ceab69b", + "0x111101.merylData:md5,79cdba511fae030098025de90472e21d", + "0x111101.merylIndex:md5,e93892161446762ac545e0399e362685", + "0x111110.merylData:md5,062ba875af75297889359bc39409ab99", + "0x111110.merylIndex:md5,0cd1b81c64fee3bf067ce5ca1755a2bc", + "0x111111.merylData:md5,68feb8f1bade7885a9a696bb0825a17f", + "0x111111.merylIndex:md5,fd631e33829939cd7f06581c80791dc4", + "merylIndex:md5,d9e794e14b1eeb0eaa4d98e10eb571cc" + ] + ] + ], + "versions": [ + "versions.yml:md5,a4a6baac7481f1d4595ba54622bdf33d" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-26T19:30:03.054214308" + }, + "bacteroides_fragilis - fastq - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,a4a6baac7481f1d4595ba54622bdf33d" + ], + "meryl_db": [ + [ + { + "id": "test", + "single_end": true + }, + "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,a4a6baac7481f1d4595ba54622bdf33d" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-26T19:30:13.745468405" + } +} \ No newline at end of file diff --git a/modules/nf-core/meryl/count/tests/tags.yml b/modules/nf-core/meryl/count/tests/tags.yml new file mode 100644 index 00000000..b25bfa60 --- /dev/null +++ b/modules/nf-core/meryl/count/tests/tags.yml @@ -0,0 +1,2 @@ +meryl/count: + - "modules/nf-core/meryl/count/**" diff --git a/modules/nf-core/meryl/unionsum/environment.yml b/modules/nf-core/meryl/unionsum/environment.yml new file mode 100644 index 00000000..b8bdcbe8 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/environment.yml @@ -0,0 +1,7 @@ +name: meryl_unionsum +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::meryl=1.4.1 diff --git a/modules/nf-core/meryl/unionsum/main.nf b/modules/nf-core/meryl/unionsum/main.nf new file mode 100644 index 00000000..9800f605 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/main.nf @@ -0,0 +1,49 @@ +process MERYL_UNIONSUM { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/meryl:1.4.1--h4ac6f70_0': + 'biocontainers/meryl:1.4.1--h4ac6f70_0' }" + + input: + tuple val(meta), path(meryl_dbs) + val kvalue + + output: + tuple val(meta), path("*.unionsum.meryl") , emit: meryl_db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + meryl union-sum \\ + k=$kvalue \\ + threads=$task.cpus \\ + $args \\ + output ${prefix}.unionsum.meryl \\ + $meryl_dbs + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.unionsum.meryl + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/meryl/unionsum/meta.yml b/modules/nf-core/meryl/unionsum/meta.yml new file mode 100644 index 00000000..3bb01250 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/meta.yml @@ -0,0 +1,43 @@ +name: "meryl_unionsum" +description: A genomic k-mer counter (and sequence utility) with nice features. +keywords: + - k-mer + - unionsum + - reference-free +tools: + - "meryl": + description: "A genomic k-mer counter (and sequence utility) with nice features. " + homepage: "https://github.com/marbl/meryl" + documentation: "https://meryl.readthedocs.io/en/latest/quick-start.html" + tool_dev_url: "https://github.com/marbl/meryl" + licence: ["GPL"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - meryl_dbs: + type: directory + description: Meryl k-mer databases + - kvalue: + type: integer + description: An integer value of k to use as the k-mer value. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - meryl_db: + type: directory + description: A Meryl k-mer database that is the union sum of the input databases + pattern: "*.unionsum.meryldb" +authors: + - "@mahesh-panchal" +maintainers: + - "@mahesh-panchal" diff --git a/modules/nf-core/meryl/unionsum/tests/main.nf.test b/modules/nf-core/meryl/unionsum/tests/main.nf.test new file mode 100644 index 00000000..dc1bf8af --- /dev/null +++ b/modules/nf-core/meryl/unionsum/tests/main.nf.test @@ -0,0 +1,123 @@ +nextflow_process { + + name "Test Process MERYL_UNIONSUM" + script "../main.nf" + process "MERYL_UNIONSUM" + + tag "modules" + tag "modules_nfcore" + tag "meryl" + tag "meryl/unionsum" + tag "meryl/count" + + test("sarscov2 - fastq - single_end") { + + setup { + run('MERYL_COUNT'){ + script "../../../../../modules/nf-core/meryl/count/main.nf" + process { + """ + input[0] = Channel.value([ + [ id: 'test', single_end: true ], // meta map + file( params.modules_testdata_base_path + "/genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true ) + ]) + input[1] = Channel.value(21) + """ + } + } + } + + when { + process { + """ + input[0] = MERYL_COUNT.out.meryl_db + input[1] = Channel.value(21) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq - paired_end") { + + setup { + run('MERYL_COUNT'){ + script "../../../../../modules/nf-core/meryl/count/main.nf" + process { + """ + input[0] = Channel.value([ + [ id: 'test', single_end: false ], // meta map + [ + file( params.modules_testdata_base_path + "/genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true ), + file( params.modules_testdata_base_path + "/genomics/sarscov2/illumina/fastq/test_2.fastq.gz", checkIfExists: true ) + ] + ]) + input[1] = Channel.value(21) + """ + } + } + } + + when { + process { + """ + input[0] = MERYL_COUNT.out.meryl_db + input[1] = Channel.value(21) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq- stub") { + + options "-stub" + + setup { + run('MERYL_COUNT'){ + script "../../../../../modules/nf-core/meryl/count/main.nf" + process { + """ + input[0] = Channel.value([ + [ id: 'test', single_end: true ], // meta map + file( params.modules_testdata_base_path + "/genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true ) + ]) + input[1] = Channel.value(21) + """ + } + } + } + + when { + process { + """ + input[0] = MERYL_COUNT.out.meryl_db + input[1] = Channel.value(21) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap b/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap new file mode 100644 index 00000000..522a52c9 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap @@ -0,0 +1,627 @@ +{ + "sarscov2 - fastq- stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ], + "meryl_db": [ + [ + { + "id": "test", + "single_end": true + }, + "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-27T10:19:52.291287389" + }, + "sarscov2 - fastq - single_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "0x000000.merylData:md5,7d95ca25a2d39a0b8fb5f71a77d7bddd", + "0x000000.merylIndex:md5,ca9b05f5b90ed432aa1134378a86f166", + "0x000001.merylData:md5,bb4e2ec7d45a2d4fa36e802b0e312965", + "0x000001.merylIndex:md5,26b3ad6909cec2061c476201a0ac04cd", + "0x000010.merylData:md5,b4b8e7a742b4634ca82d2d19928cacd6", + "0x000010.merylIndex:md5,a266e782d80833c8e685a42f07937fc7", + "0x000011.merylData:md5,bc181b55548c6d7832b65be4bed8ec56", + "0x000011.merylIndex:md5,f2bb128f3da304408c81cefb0d4de879", + "0x000100.merylData:md5,07da07cdc83420487641f7201c1593c2", + "0x000100.merylIndex:md5,f40d2c9ecf5980328cfd766b9d90019d", + "0x000101.merylData:md5,2410ff0d6604044e9175feb668e747ac", + "0x000101.merylIndex:md5,f61473e3e39e6990c30bfa53e2a63302", + "0x000110.merylData:md5,05804f66393bef8edf69143a6cd984bc", + "0x000110.merylIndex:md5,15b6e88e01e1b1abc29b54128067a938", + "0x000111.merylData:md5,a3ced1867214878de2d83dda7e805308", + "0x000111.merylIndex:md5,2998f056a5f859229229b0051cb792ec", + "0x001000.merylData:md5,531c743e9b5df804297fba37e5cd4a63", + "0x001000.merylIndex:md5,30ab89ede28b623711675a45751b2ebc", + "0x001001.merylData:md5,4303314fa9d7bb8326938537c27d381e", + "0x001001.merylIndex:md5,1356eb83aa75fce8693e974bf54200d1", + "0x001010.merylData:md5,77918beac0dc29069365d9bf9104237b", + "0x001010.merylIndex:md5,d7db72b42185070da78104b356f4b5a1", + "0x001011.merylData:md5,d7837930447de7651dee47c00a1d2afe", + "0x001011.merylIndex:md5,ac9c6c4aab6172d73134d2dfc5215832", + "0x001100.merylData:md5,3e5e6301e1287e7ada42e5bafa24b74f", + "0x001100.merylIndex:md5,0e0736dfaa2974d7f09744ece53b3e69", + "0x001101.merylData:md5,38b8f1b7982de9c7add7db0071c28d24", + "0x001101.merylIndex:md5,c85afc65db43592a006e317c2e4891e8", + "0x001110.merylData:md5,f189f910062d272065a0f444789e1d68", + "0x001110.merylIndex:md5,701d7a951ee2bf6520845262dbd65559", + "0x001111.merylData:md5,0200cf0723778bcc48cffe7bfa48137c", + "0x001111.merylIndex:md5,2d445869fecabc6414242cd68a6edda5", + "0x010000.merylData:md5,a1d5479d3e8bd671368c6432867a2e95", + "0x010000.merylIndex:md5,ad664f2ea294871da909156a88b0dd3a", + "0x010001.merylData:md5,28919fad6317bbd6fe9809665437f9ae", + "0x010001.merylIndex:md5,64d482b1ef40e3de9d972f4134cb6d07", + "0x010010.merylData:md5,5b4630208c973815be52221c91777f77", + "0x010010.merylIndex:md5,0460424759df28005d71ebdef60e9ddf", + "0x010011.merylData:md5,fc58468b0b010469b11fe3b00c771067", + "0x010011.merylIndex:md5,7bd12cb4685bd7dc1aeb619e87bb3115", + "0x010100.merylData:md5,0db951a9cdf9c78bea428715ddf75bb0", + "0x010100.merylIndex:md5,b13f442b8fec07bf23ef751f2d94f9cb", + "0x010101.merylData:md5,9d0c90405b90d864bc3c2495657881a9", + "0x010101.merylIndex:md5,b3e13987d9d498b8714dfae339217f93", + "0x010110.merylData:md5,3f243ce000c60255f2d0e20d8e85a829", + "0x010110.merylIndex:md5,4ca7aeafe7b7de7bfc4dbcf4e0102fc0", + "0x010111.merylData:md5,0f369d3e76d23b09f75a231223872491", + "0x010111.merylIndex:md5,625e792cf975bc26aec21cb2dbd44eab", + "0x011000.merylData:md5,72e99ffb278453732413ffe3ad11d3fd", + "0x011000.merylIndex:md5,7bc0d58bb83ff6260a6dc65c8d70d9ac", + "0x011001.merylData:md5,52b5f0878131997a0660c7c205d34236", + "0x011001.merylIndex:md5,0b510bcd0b9fbbdf5d46bea2c4735126", + "0x011010.merylData:md5,5c67cd3def095bfbbe81125012a14364", + "0x011010.merylIndex:md5,3eebe66a116b1d121f918899a7fdbb28", + "0x011011.merylData:md5,64b7020da74d0d6a2b329e094cec17ed", + "0x011011.merylIndex:md5,9e3cc561c44b83131f76344567c4d943", + "0x011100.merylData:md5,5ea42e92cddadaa49f24c7f10279bb6c", + "0x011100.merylIndex:md5,c796d799243b1622a38455dc274ddbff", + "0x011101.merylData:md5,398aed1de15abe0855b22cc566a81065", + "0x011101.merylIndex:md5,56fa2957c0c5c9b23434ce1d2070fd40", + "0x011110.merylData:md5,24eb8aaa7b58da7626042435a2ee8061", + "0x011110.merylIndex:md5,ba35223b3ac43b389413c605bf035a6d", + "0x011111.merylData:md5,90e7bcb05dcf23278421ce8a02d4deed", + "0x011111.merylIndex:md5,8bcb85c1115c6a4bc5b5f0e177a76bde", + "0x100000.merylData:md5,80f244202eef29232d350c0faa2abeda", + "0x100000.merylIndex:md5,37bebd00de3b3af3e55c444661e3961f", + "0x100001.merylData:md5,a205e2871b8637e32b6eb5272f7d5290", + "0x100001.merylIndex:md5,49e5e583346b4491b1586c86213118f0", + "0x100010.merylData:md5,2b320d66ce30f8fea1a626278c421220", + "0x100010.merylIndex:md5,c7107b6651d2ea4c2e303bf0eb5d4a6a", + "0x100011.merylData:md5,35ef5544dc557711302340bae1e41d40", + "0x100011.merylIndex:md5,b3afac9563c6ac916010322d6226e729", + "0x100100.merylData:md5,17a8f1975e868ccdca0d3b6e72c5d76a", + "0x100100.merylIndex:md5,9b8d65f01d22e3873d50e5db6d7711f5", + "0x100101.merylData:md5,d3d0250646185c5bfeec43a0490d775f", + "0x100101.merylIndex:md5,d072b261cbd89375078cecd73f20016a", + "0x100110.merylData:md5,1e7497fafc102ca23a35111deb992816", + "0x100110.merylIndex:md5,873ca65e4ef4d432fc356a85beaa4063", + "0x100111.merylData:md5,fe791c9598de38dfa75496558a8b2f28", + "0x100111.merylIndex:md5,369c608a46fe76cbc77715d163153bfb", + "0x101000.merylData:md5,d89e7ae06de81df678021213e9808b4b", + "0x101000.merylIndex:md5,43160d471884a484f3862750d44c2788", + "0x101001.merylData:md5,8cd9b88142c08c412371e9ef66d59ef9", + "0x101001.merylIndex:md5,6a5650d1c9793eeb2781fb9e57b14784", + "0x101010.merylData:md5,0f17f7e3dfe8c2ec5c469597c5e66134", + "0x101010.merylIndex:md5,fa2913d514e183a3c4cba31cc422dff4", + "0x101011.merylData:md5,f8ab9821eebfdedabb61a106abdce55c", + "0x101011.merylIndex:md5,8a5a07b1d07b0b7d71943c0980c0755e", + "0x101100.merylData:md5,6a969c16cc7a522ebb1f0be5fc81056e", + "0x101100.merylIndex:md5,5f12c2413a9ddca0751e4b2034ebdc87", + "0x101101.merylData:md5,9cc1443daf53adcf2d95c4fd0f8d49de", + "0x101101.merylIndex:md5,19dcebf34036938fed8984d8e100b579", + "0x101110.merylData:md5,f0d63a933d58c9c5f0bd5885adfa0dfe", + "0x101110.merylIndex:md5,d6517f33c2c4667b5c53f8b099a1f8fe", + "0x101111.merylData:md5,87706ddcd8927988661d8e64e69c0723", + "0x101111.merylIndex:md5,fc9671ff0358c2350a650ac1763a3368", + "0x110000.merylData:md5,63ce769d2987235e28d567b3b64585c1", + "0x110000.merylIndex:md5,6f7997e8622eeb89fdbd774d8cd98ba2", + "0x110001.merylData:md5,0d3d10723737ac2d1037e1fe576acb22", + "0x110001.merylIndex:md5,f27c0d1169639ae9e081b39afc3757f5", + "0x110010.merylData:md5,3b92d7921670a6c4a4394c84286a3837", + "0x110010.merylIndex:md5,ff12c1af64828ca8d054acea6ebe3440", + "0x110011.merylData:md5,9eb8aba55e32e31d064a584682607037", + "0x110011.merylIndex:md5,9e5f773d3e6472581bb72f3185d4dc16", + "0x110100.merylData:md5,e4a2e750379ad0c4f427b7fb39059412", + "0x110100.merylIndex:md5,12473637233e2ad57e71ae72dba34d78", + "0x110101.merylData:md5,1b9341b1a03a059abec2bc5e53c31c29", + "0x110101.merylIndex:md5,b5e63433b6765efb23cec511cee9175f", + "0x110110.merylData:md5,d7109486ca2eb7e38ec53984be463f9e", + "0x110110.merylIndex:md5,74e8295e9a08f3040e904d7f7be7d8d1", + "0x110111.merylData:md5,75590d1bf3590e64503563e8f441e7cc", + "0x110111.merylIndex:md5,292000207b3bed4cf8c388dceaa6600f", + "0x111000.merylData:md5,d59dbabc5bd07bbb00cb9bd943ec68eb", + "0x111000.merylIndex:md5,fc8b47e18240bb9c47e1e84bcf58d862", + "0x111001.merylData:md5,557bfc214b1711ca86fb708a9c29608d", + "0x111001.merylIndex:md5,2d862224cd86c6ae27d45efb320442c4", + "0x111010.merylData:md5,8f055963758daaac43f47b4b8256b114", + "0x111010.merylIndex:md5,83decf260813123b92cb1ed73e135476", + "0x111011.merylData:md5,8d842899193a5001b5f29b19689bde4c", + "0x111011.merylIndex:md5,b287e4892670a8efd434a38cc822f0c3", + "0x111100.merylData:md5,f9fda990220a23ecee48abecfd338d2f", + "0x111100.merylIndex:md5,a6fda3f1e2328b22aa6fc9ffc2fa78f6", + "0x111101.merylData:md5,1f365b5dcede12ce0f58df73de213ab1", + "0x111101.merylIndex:md5,3ff34e0a24e0450a84f46785d7508ea5", + "0x111110.merylData:md5,50f0a65e10c92b8315294ef52b20fc4a", + "0x111110.merylIndex:md5,07f0179b757af0593f9120c98b7b9052", + "0x111111.merylData:md5,1459a239b18d6e7a23bef1e91b1b1be3", + "0x111111.merylIndex:md5,e4fcdb894e33dbda5da04fa7ff3fda51", + "merylIndex:md5,3eb997b0370a1bf31aa77328f143573e" + ] + ] + ], + "1": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ], + "meryl_db": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "0x000000.merylData:md5,7d95ca25a2d39a0b8fb5f71a77d7bddd", + "0x000000.merylIndex:md5,ca9b05f5b90ed432aa1134378a86f166", + "0x000001.merylData:md5,bb4e2ec7d45a2d4fa36e802b0e312965", + "0x000001.merylIndex:md5,26b3ad6909cec2061c476201a0ac04cd", + "0x000010.merylData:md5,b4b8e7a742b4634ca82d2d19928cacd6", + "0x000010.merylIndex:md5,a266e782d80833c8e685a42f07937fc7", + "0x000011.merylData:md5,bc181b55548c6d7832b65be4bed8ec56", + "0x000011.merylIndex:md5,f2bb128f3da304408c81cefb0d4de879", + "0x000100.merylData:md5,07da07cdc83420487641f7201c1593c2", + "0x000100.merylIndex:md5,f40d2c9ecf5980328cfd766b9d90019d", + "0x000101.merylData:md5,2410ff0d6604044e9175feb668e747ac", + "0x000101.merylIndex:md5,f61473e3e39e6990c30bfa53e2a63302", + "0x000110.merylData:md5,05804f66393bef8edf69143a6cd984bc", + "0x000110.merylIndex:md5,15b6e88e01e1b1abc29b54128067a938", + "0x000111.merylData:md5,a3ced1867214878de2d83dda7e805308", + "0x000111.merylIndex:md5,2998f056a5f859229229b0051cb792ec", + "0x001000.merylData:md5,531c743e9b5df804297fba37e5cd4a63", + "0x001000.merylIndex:md5,30ab89ede28b623711675a45751b2ebc", + "0x001001.merylData:md5,4303314fa9d7bb8326938537c27d381e", + "0x001001.merylIndex:md5,1356eb83aa75fce8693e974bf54200d1", + "0x001010.merylData:md5,77918beac0dc29069365d9bf9104237b", + "0x001010.merylIndex:md5,d7db72b42185070da78104b356f4b5a1", + "0x001011.merylData:md5,d7837930447de7651dee47c00a1d2afe", + "0x001011.merylIndex:md5,ac9c6c4aab6172d73134d2dfc5215832", + "0x001100.merylData:md5,3e5e6301e1287e7ada42e5bafa24b74f", + "0x001100.merylIndex:md5,0e0736dfaa2974d7f09744ece53b3e69", + "0x001101.merylData:md5,38b8f1b7982de9c7add7db0071c28d24", + "0x001101.merylIndex:md5,c85afc65db43592a006e317c2e4891e8", + "0x001110.merylData:md5,f189f910062d272065a0f444789e1d68", + "0x001110.merylIndex:md5,701d7a951ee2bf6520845262dbd65559", + "0x001111.merylData:md5,0200cf0723778bcc48cffe7bfa48137c", + "0x001111.merylIndex:md5,2d445869fecabc6414242cd68a6edda5", + "0x010000.merylData:md5,a1d5479d3e8bd671368c6432867a2e95", + "0x010000.merylIndex:md5,ad664f2ea294871da909156a88b0dd3a", + "0x010001.merylData:md5,28919fad6317bbd6fe9809665437f9ae", + "0x010001.merylIndex:md5,64d482b1ef40e3de9d972f4134cb6d07", + "0x010010.merylData:md5,5b4630208c973815be52221c91777f77", + "0x010010.merylIndex:md5,0460424759df28005d71ebdef60e9ddf", + "0x010011.merylData:md5,fc58468b0b010469b11fe3b00c771067", + "0x010011.merylIndex:md5,7bd12cb4685bd7dc1aeb619e87bb3115", + "0x010100.merylData:md5,0db951a9cdf9c78bea428715ddf75bb0", + "0x010100.merylIndex:md5,b13f442b8fec07bf23ef751f2d94f9cb", + "0x010101.merylData:md5,9d0c90405b90d864bc3c2495657881a9", + "0x010101.merylIndex:md5,b3e13987d9d498b8714dfae339217f93", + "0x010110.merylData:md5,3f243ce000c60255f2d0e20d8e85a829", + "0x010110.merylIndex:md5,4ca7aeafe7b7de7bfc4dbcf4e0102fc0", + "0x010111.merylData:md5,0f369d3e76d23b09f75a231223872491", + "0x010111.merylIndex:md5,625e792cf975bc26aec21cb2dbd44eab", + "0x011000.merylData:md5,72e99ffb278453732413ffe3ad11d3fd", + "0x011000.merylIndex:md5,7bc0d58bb83ff6260a6dc65c8d70d9ac", + "0x011001.merylData:md5,52b5f0878131997a0660c7c205d34236", + "0x011001.merylIndex:md5,0b510bcd0b9fbbdf5d46bea2c4735126", + "0x011010.merylData:md5,5c67cd3def095bfbbe81125012a14364", + "0x011010.merylIndex:md5,3eebe66a116b1d121f918899a7fdbb28", + "0x011011.merylData:md5,64b7020da74d0d6a2b329e094cec17ed", + "0x011011.merylIndex:md5,9e3cc561c44b83131f76344567c4d943", + "0x011100.merylData:md5,5ea42e92cddadaa49f24c7f10279bb6c", + "0x011100.merylIndex:md5,c796d799243b1622a38455dc274ddbff", + "0x011101.merylData:md5,398aed1de15abe0855b22cc566a81065", + "0x011101.merylIndex:md5,56fa2957c0c5c9b23434ce1d2070fd40", + "0x011110.merylData:md5,24eb8aaa7b58da7626042435a2ee8061", + "0x011110.merylIndex:md5,ba35223b3ac43b389413c605bf035a6d", + "0x011111.merylData:md5,90e7bcb05dcf23278421ce8a02d4deed", + "0x011111.merylIndex:md5,8bcb85c1115c6a4bc5b5f0e177a76bde", + "0x100000.merylData:md5,80f244202eef29232d350c0faa2abeda", + "0x100000.merylIndex:md5,37bebd00de3b3af3e55c444661e3961f", + "0x100001.merylData:md5,a205e2871b8637e32b6eb5272f7d5290", + "0x100001.merylIndex:md5,49e5e583346b4491b1586c86213118f0", + "0x100010.merylData:md5,2b320d66ce30f8fea1a626278c421220", + "0x100010.merylIndex:md5,c7107b6651d2ea4c2e303bf0eb5d4a6a", + "0x100011.merylData:md5,35ef5544dc557711302340bae1e41d40", + "0x100011.merylIndex:md5,b3afac9563c6ac916010322d6226e729", + "0x100100.merylData:md5,17a8f1975e868ccdca0d3b6e72c5d76a", + "0x100100.merylIndex:md5,9b8d65f01d22e3873d50e5db6d7711f5", + "0x100101.merylData:md5,d3d0250646185c5bfeec43a0490d775f", + "0x100101.merylIndex:md5,d072b261cbd89375078cecd73f20016a", + "0x100110.merylData:md5,1e7497fafc102ca23a35111deb992816", + "0x100110.merylIndex:md5,873ca65e4ef4d432fc356a85beaa4063", + "0x100111.merylData:md5,fe791c9598de38dfa75496558a8b2f28", + "0x100111.merylIndex:md5,369c608a46fe76cbc77715d163153bfb", + "0x101000.merylData:md5,d89e7ae06de81df678021213e9808b4b", + "0x101000.merylIndex:md5,43160d471884a484f3862750d44c2788", + "0x101001.merylData:md5,8cd9b88142c08c412371e9ef66d59ef9", + "0x101001.merylIndex:md5,6a5650d1c9793eeb2781fb9e57b14784", + "0x101010.merylData:md5,0f17f7e3dfe8c2ec5c469597c5e66134", + "0x101010.merylIndex:md5,fa2913d514e183a3c4cba31cc422dff4", + "0x101011.merylData:md5,f8ab9821eebfdedabb61a106abdce55c", + "0x101011.merylIndex:md5,8a5a07b1d07b0b7d71943c0980c0755e", + "0x101100.merylData:md5,6a969c16cc7a522ebb1f0be5fc81056e", + "0x101100.merylIndex:md5,5f12c2413a9ddca0751e4b2034ebdc87", + "0x101101.merylData:md5,9cc1443daf53adcf2d95c4fd0f8d49de", + "0x101101.merylIndex:md5,19dcebf34036938fed8984d8e100b579", + "0x101110.merylData:md5,f0d63a933d58c9c5f0bd5885adfa0dfe", + "0x101110.merylIndex:md5,d6517f33c2c4667b5c53f8b099a1f8fe", + "0x101111.merylData:md5,87706ddcd8927988661d8e64e69c0723", + "0x101111.merylIndex:md5,fc9671ff0358c2350a650ac1763a3368", + "0x110000.merylData:md5,63ce769d2987235e28d567b3b64585c1", + "0x110000.merylIndex:md5,6f7997e8622eeb89fdbd774d8cd98ba2", + "0x110001.merylData:md5,0d3d10723737ac2d1037e1fe576acb22", + "0x110001.merylIndex:md5,f27c0d1169639ae9e081b39afc3757f5", + "0x110010.merylData:md5,3b92d7921670a6c4a4394c84286a3837", + "0x110010.merylIndex:md5,ff12c1af64828ca8d054acea6ebe3440", + "0x110011.merylData:md5,9eb8aba55e32e31d064a584682607037", + "0x110011.merylIndex:md5,9e5f773d3e6472581bb72f3185d4dc16", + "0x110100.merylData:md5,e4a2e750379ad0c4f427b7fb39059412", + "0x110100.merylIndex:md5,12473637233e2ad57e71ae72dba34d78", + "0x110101.merylData:md5,1b9341b1a03a059abec2bc5e53c31c29", + "0x110101.merylIndex:md5,b5e63433b6765efb23cec511cee9175f", + "0x110110.merylData:md5,d7109486ca2eb7e38ec53984be463f9e", + "0x110110.merylIndex:md5,74e8295e9a08f3040e904d7f7be7d8d1", + "0x110111.merylData:md5,75590d1bf3590e64503563e8f441e7cc", + "0x110111.merylIndex:md5,292000207b3bed4cf8c388dceaa6600f", + "0x111000.merylData:md5,d59dbabc5bd07bbb00cb9bd943ec68eb", + "0x111000.merylIndex:md5,fc8b47e18240bb9c47e1e84bcf58d862", + "0x111001.merylData:md5,557bfc214b1711ca86fb708a9c29608d", + "0x111001.merylIndex:md5,2d862224cd86c6ae27d45efb320442c4", + "0x111010.merylData:md5,8f055963758daaac43f47b4b8256b114", + "0x111010.merylIndex:md5,83decf260813123b92cb1ed73e135476", + "0x111011.merylData:md5,8d842899193a5001b5f29b19689bde4c", + "0x111011.merylIndex:md5,b287e4892670a8efd434a38cc822f0c3", + "0x111100.merylData:md5,f9fda990220a23ecee48abecfd338d2f", + "0x111100.merylIndex:md5,a6fda3f1e2328b22aa6fc9ffc2fa78f6", + "0x111101.merylData:md5,1f365b5dcede12ce0f58df73de213ab1", + "0x111101.merylIndex:md5,3ff34e0a24e0450a84f46785d7508ea5", + "0x111110.merylData:md5,50f0a65e10c92b8315294ef52b20fc4a", + "0x111110.merylIndex:md5,07f0179b757af0593f9120c98b7b9052", + "0x111111.merylData:md5,1459a239b18d6e7a23bef1e91b1b1be3", + "0x111111.merylIndex:md5,e4fcdb894e33dbda5da04fa7ff3fda51", + "merylIndex:md5,3eb997b0370a1bf31aa77328f143573e" + ] + ] + ], + "versions": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-27T10:19:25.091170112" + }, + "sarscov2 - fastq - paired_end": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "0x000000.merylData:md5,75f3969bef1e3b030f404a5206d6b249", + "0x000000.merylIndex:md5,b18113193945289fa1c20e96411e6ad2", + "0x000001.merylData:md5,8826eb52c3d06b5a092cb9a1f747e413", + "0x000001.merylIndex:md5,72a68ddfd9900e2db4a38f8a0ae48356", + "0x000010.merylData:md5,b11a404bf18f87ae565d8e60b63a0f2f", + "0x000010.merylIndex:md5,b518574321a3ab6d5eca385a4d6c4c10", + "0x000011.merylData:md5,055292edb4ea604a90a749c07528477e", + "0x000011.merylIndex:md5,d2aa5bdd749babc771d98185b9da96d1", + "0x000100.merylData:md5,a092b9ae90e5096bf819f8eaeec15873", + "0x000100.merylIndex:md5,1950c77b8985b4e516ceca2df12ffe24", + "0x000101.merylData:md5,1d02c628dda5eeec4f30674fffb1955c", + "0x000101.merylIndex:md5,f0c3dc05caae4af498e54f3263e6436f", + "0x000110.merylData:md5,62ce2f63040efa731d731abb8e76ccc0", + "0x000110.merylIndex:md5,adbf5072a6b7a096b9eba54482c26572", + "0x000111.merylData:md5,37912c49ffe875b835f8f4780ee52706", + "0x000111.merylIndex:md5,16392081f93560ed66a14d28eb26cd15", + "0x001000.merylData:md5,9826f31aee64d0cc96dff5da6996f0e6", + "0x001000.merylIndex:md5,849691b9f41cbba9158b30ee19f32b9d", + "0x001001.merylData:md5,1a617074700788e78b4ffc3575980adf", + "0x001001.merylIndex:md5,cafd9628934092a38eff45d2250ac466", + "0x001010.merylData:md5,7f93e8ac5ae70ad104140d032a37a295", + "0x001010.merylIndex:md5,866787afefa6acd99199d0eac8ced9e8", + "0x001011.merylData:md5,b77639289243a8fb7a43745986eab590", + "0x001011.merylIndex:md5,06724a52696784a94d33b2d23acc8873", + "0x001100.merylData:md5,20862f1f92786588de42140362672d38", + "0x001100.merylIndex:md5,c5468a40dff4268c978cc1918610b7d7", + "0x001101.merylData:md5,274002b8f45eb9ca54fad4db3d3aca02", + "0x001101.merylIndex:md5,b543aaf4d975360e23a692e44e605168", + "0x001110.merylData:md5,b55c68ee98e39ff9327f609ed2438e00", + "0x001110.merylIndex:md5,4b3da649a6bc53936fa23c173cbc4f21", + "0x001111.merylData:md5,abdc96b88d2f1fbed3c99a33a1eef45a", + "0x001111.merylIndex:md5,1758e12d5d8cf4ba9eeafe3bc01231f8", + "0x010000.merylData:md5,0c26808742826bddfeb43b7bc7d238bb", + "0x010000.merylIndex:md5,0c2b47836a4584765343fdf3a96246e8", + "0x010001.merylData:md5,f1dc27b017b36dbf72852b422e83d016", + "0x010001.merylIndex:md5,0b8a6db458ba4f63c36a61f487455145", + "0x010010.merylData:md5,a57d01b52bcbdd8608999e342102c146", + "0x010010.merylIndex:md5,635007bb466089cd3e202b68b8c66d74", + "0x010011.merylData:md5,37371dd1409929adee11133b5f03d3a7", + "0x010011.merylIndex:md5,492653df27505b88e3acc309c02bb8c7", + "0x010100.merylData:md5,517efaeccd253932d2a53f1d8068bde3", + "0x010100.merylIndex:md5,a61da37cd8e0d8de98f8e15b868341d7", + "0x010101.merylData:md5,9279f4e25c7b4b10f0181f661f3a12d2", + "0x010101.merylIndex:md5,c09553e7f106e4c62e2004f8c7f15ade", + "0x010110.merylData:md5,2579c222fbbd1e45fac5f44d080b5464", + "0x010110.merylIndex:md5,b7ba0385367bcb978c737a2778c9fbd4", + "0x010111.merylData:md5,c403bc281ff88cd996aa54d16c808e23", + "0x010111.merylIndex:md5,2d4c515b1b65e2fd0da877ff5d29f80c", + "0x011000.merylData:md5,ab856ffad72bf9a55fdc5f838eb4051e", + "0x011000.merylIndex:md5,86d657bc906e475cb714d704d41c7565", + "0x011001.merylData:md5,b64664fa97dab9df2e3b4e247f396f67", + "0x011001.merylIndex:md5,67ab51e1233ae97f976fdd24997bd859", + "0x011010.merylData:md5,6530932b97c9149c94174d5e229a14a9", + "0x011010.merylIndex:md5,e4a6f8cc99486fe79509be98a0c2841d", + "0x011011.merylData:md5,58357359932e814a983f0ce26acf5115", + "0x011011.merylIndex:md5,4426d81216c7a2dae734cf70536cf6bb", + "0x011100.merylData:md5,eb75a337c0649a58727dc3292e4d25db", + "0x011100.merylIndex:md5,a94b932a0583180d3027d445755e37f8", + "0x011101.merylData:md5,c494378696f831deebad0e0fe2db1881", + "0x011101.merylIndex:md5,ef00cd5e7255d4b751140fd0c83400a1", + "0x011110.merylData:md5,abec95fb53891ca69dd1e7ea20189204", + "0x011110.merylIndex:md5,bc2b1a21e91760ad49897097071df011", + "0x011111.merylData:md5,4b858e2a28860f789e8a5dc62e062557", + "0x011111.merylIndex:md5,5eed11ba178f7f9559625364d96aa41c", + "0x100000.merylData:md5,768528aaafba818f8e34d4b65de5242e", + "0x100000.merylIndex:md5,6649d5940b0a60b289dce7073de4777d", + "0x100001.merylData:md5,d0ef60de56a5dc1cec3606e3f07620c2", + "0x100001.merylIndex:md5,26d0852978fc3a8972aec67cebcc0f28", + "0x100010.merylData:md5,5b5a0fd3be35a954597a1c88ed3912ab", + "0x100010.merylIndex:md5,68c7135add32c8aac3c4207a7db7d37a", + "0x100011.merylData:md5,d8c188713b5379ba7e53bd7ac26baed5", + "0x100011.merylIndex:md5,4a9ed0a918945a7e9602427e23bd955c", + "0x100100.merylData:md5,68403d2ad355e2f9f9b8032616c6fbab", + "0x100100.merylIndex:md5,2fe6f882ae22d87581300c3b9b24242b", + "0x100101.merylData:md5,a6102a49c8b51870bf14b6ace728cfa1", + "0x100101.merylIndex:md5,f5b56f5edb9f55973288aab6b0c81467", + "0x100110.merylData:md5,418f44aecc5beb96d4fe9d5c22e5d8df", + "0x100110.merylIndex:md5,3b93d1b48ce9314ed0946e7a4d1b6c19", + "0x100111.merylData:md5,1cce84d0d61511837a70bb48aab84a20", + "0x100111.merylIndex:md5,42d17c375dccd68da727f531cc05a9fa", + "0x101000.merylData:md5,e2f713f0fb453506b18db92609a1fdff", + "0x101000.merylIndex:md5,f9fa2ccd8b89aa7147130c7dac705ce0", + "0x101001.merylData:md5,1cde5e30da7e245689c7c7a7006ebc40", + "0x101001.merylIndex:md5,f3d6a5e2eeb01dffaf6ebd04793d269b", + "0x101010.merylData:md5,088d7310df61d7917f3b49cc5ca1bef5", + "0x101010.merylIndex:md5,5de136cfda775349c75d47e5c5bae16b", + "0x101011.merylData:md5,c37a7fd125f9563760f0a7b065fb99f5", + "0x101011.merylIndex:md5,7374a2a00f9cf1fb4760dd6c68ce05de", + "0x101100.merylData:md5,3c76f864ab548adfb4d8f11869ab7b3a", + "0x101100.merylIndex:md5,e65c609b7b05a34a75c3eb7fbef9a488", + "0x101101.merylData:md5,8faec3c432a9fcaf7d6413a9966d15e7", + "0x101101.merylIndex:md5,c4fb9020e3b1690f5d4717be5384427d", + "0x101110.merylData:md5,92fb3c0d061a4d258bdde77c904312ab", + "0x101110.merylIndex:md5,0518b5e9eb8cecedd4da3a0470fbb43d", + "0x101111.merylData:md5,7f2174eee07aa116cffb77f85910efec", + "0x101111.merylIndex:md5,f7ecf59ae53a3a38cc4b7c2509379b3a", + "0x110000.merylData:md5,8c5866a1e6932eb777fe6e72c1090e1e", + "0x110000.merylIndex:md5,fdcca3797ca34cdbb3d6808847c111d5", + "0x110001.merylData:md5,02cc9f0ece95b69c6dfe3f04a0425f92", + "0x110001.merylIndex:md5,d545188ef68c84c1c653e23f6fae4ef3", + "0x110010.merylData:md5,665d40c5e306952883fe2ffa641024bb", + "0x110010.merylIndex:md5,445e745bd1f34502437541fafbb21943", + "0x110011.merylData:md5,e32f9db7cfb6dfa243f45258f1b55041", + "0x110011.merylIndex:md5,6e93712a47efaf6a4656c0dbeb1e5b1a", + "0x110100.merylData:md5,af978fc2cc304f2aee3f06416a1a43aa", + "0x110100.merylIndex:md5,ed97271331d8bb4eabbd0978cd4b9d23", + "0x110101.merylData:md5,a7bdc73355bea8749db38966fb7c968d", + "0x110101.merylIndex:md5,b30ff36567bede03396e67e973d4fdf9", + "0x110110.merylData:md5,0ee1f4b187ce88567262d3a6302f3f2a", + "0x110110.merylIndex:md5,505cab345465852c8284d190e91ce7fa", + "0x110111.merylData:md5,02929a0fd245f27576d794c98443ed52", + "0x110111.merylIndex:md5,8b70850b1775790354ff00ffcfb9df65", + "0x111000.merylData:md5,21cb35b24f60b6c69c49c327d1fd797f", + "0x111000.merylIndex:md5,7a54391084d2354b534bbf238631a80e", + "0x111001.merylData:md5,3c864da93bf29a8a0665cd83e1b612e7", + "0x111001.merylIndex:md5,4504239cfc112fcf6e9dba44e6f9f488", + "0x111010.merylData:md5,9d08a9742799fd0ab5b29f184667cb7c", + "0x111010.merylIndex:md5,b67161fd14e224f11a592691fe08e0e5", + "0x111011.merylData:md5,f5a09c0f5faa10aaad17efe454ff9395", + "0x111011.merylIndex:md5,75306fb2397e61a0910a5034cb9309c9", + "0x111100.merylData:md5,6c1ddf20980ade712673d606c6f3dfbe", + "0x111100.merylIndex:md5,35642b10f80c44989de4131a4c2b9c95", + "0x111101.merylData:md5,a26af5a2348ddc4882eb06d4edb63b6f", + "0x111101.merylIndex:md5,e6affc54363b262b10e55267192cd68b", + "0x111110.merylData:md5,7a7f81ee6339c46bffe18de12c3a7177", + "0x111110.merylIndex:md5,07f0179b757af0593f9120c98b7b9052", + "0x111111.merylData:md5,0e63424ed0b9b5a399058dbea354ae64", + "0x111111.merylIndex:md5,b8c6b4cc0580f55e4767f1f4529d772b", + "merylIndex:md5,72fb8181bcbb783884da1c8c2ded4eff" + ] + ] + ], + "1": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ], + "meryl_db": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "0x000000.merylData:md5,75f3969bef1e3b030f404a5206d6b249", + "0x000000.merylIndex:md5,b18113193945289fa1c20e96411e6ad2", + "0x000001.merylData:md5,8826eb52c3d06b5a092cb9a1f747e413", + "0x000001.merylIndex:md5,72a68ddfd9900e2db4a38f8a0ae48356", + "0x000010.merylData:md5,b11a404bf18f87ae565d8e60b63a0f2f", + "0x000010.merylIndex:md5,b518574321a3ab6d5eca385a4d6c4c10", + "0x000011.merylData:md5,055292edb4ea604a90a749c07528477e", + "0x000011.merylIndex:md5,d2aa5bdd749babc771d98185b9da96d1", + "0x000100.merylData:md5,a092b9ae90e5096bf819f8eaeec15873", + "0x000100.merylIndex:md5,1950c77b8985b4e516ceca2df12ffe24", + "0x000101.merylData:md5,1d02c628dda5eeec4f30674fffb1955c", + "0x000101.merylIndex:md5,f0c3dc05caae4af498e54f3263e6436f", + "0x000110.merylData:md5,62ce2f63040efa731d731abb8e76ccc0", + "0x000110.merylIndex:md5,adbf5072a6b7a096b9eba54482c26572", + "0x000111.merylData:md5,37912c49ffe875b835f8f4780ee52706", + "0x000111.merylIndex:md5,16392081f93560ed66a14d28eb26cd15", + "0x001000.merylData:md5,9826f31aee64d0cc96dff5da6996f0e6", + "0x001000.merylIndex:md5,849691b9f41cbba9158b30ee19f32b9d", + "0x001001.merylData:md5,1a617074700788e78b4ffc3575980adf", + "0x001001.merylIndex:md5,cafd9628934092a38eff45d2250ac466", + "0x001010.merylData:md5,7f93e8ac5ae70ad104140d032a37a295", + "0x001010.merylIndex:md5,866787afefa6acd99199d0eac8ced9e8", + "0x001011.merylData:md5,b77639289243a8fb7a43745986eab590", + "0x001011.merylIndex:md5,06724a52696784a94d33b2d23acc8873", + "0x001100.merylData:md5,20862f1f92786588de42140362672d38", + "0x001100.merylIndex:md5,c5468a40dff4268c978cc1918610b7d7", + "0x001101.merylData:md5,274002b8f45eb9ca54fad4db3d3aca02", + "0x001101.merylIndex:md5,b543aaf4d975360e23a692e44e605168", + "0x001110.merylData:md5,b55c68ee98e39ff9327f609ed2438e00", + "0x001110.merylIndex:md5,4b3da649a6bc53936fa23c173cbc4f21", + "0x001111.merylData:md5,abdc96b88d2f1fbed3c99a33a1eef45a", + "0x001111.merylIndex:md5,1758e12d5d8cf4ba9eeafe3bc01231f8", + "0x010000.merylData:md5,0c26808742826bddfeb43b7bc7d238bb", + "0x010000.merylIndex:md5,0c2b47836a4584765343fdf3a96246e8", + "0x010001.merylData:md5,f1dc27b017b36dbf72852b422e83d016", + "0x010001.merylIndex:md5,0b8a6db458ba4f63c36a61f487455145", + "0x010010.merylData:md5,a57d01b52bcbdd8608999e342102c146", + "0x010010.merylIndex:md5,635007bb466089cd3e202b68b8c66d74", + "0x010011.merylData:md5,37371dd1409929adee11133b5f03d3a7", + "0x010011.merylIndex:md5,492653df27505b88e3acc309c02bb8c7", + "0x010100.merylData:md5,517efaeccd253932d2a53f1d8068bde3", + "0x010100.merylIndex:md5,a61da37cd8e0d8de98f8e15b868341d7", + "0x010101.merylData:md5,9279f4e25c7b4b10f0181f661f3a12d2", + "0x010101.merylIndex:md5,c09553e7f106e4c62e2004f8c7f15ade", + "0x010110.merylData:md5,2579c222fbbd1e45fac5f44d080b5464", + "0x010110.merylIndex:md5,b7ba0385367bcb978c737a2778c9fbd4", + "0x010111.merylData:md5,c403bc281ff88cd996aa54d16c808e23", + "0x010111.merylIndex:md5,2d4c515b1b65e2fd0da877ff5d29f80c", + "0x011000.merylData:md5,ab856ffad72bf9a55fdc5f838eb4051e", + "0x011000.merylIndex:md5,86d657bc906e475cb714d704d41c7565", + "0x011001.merylData:md5,b64664fa97dab9df2e3b4e247f396f67", + "0x011001.merylIndex:md5,67ab51e1233ae97f976fdd24997bd859", + "0x011010.merylData:md5,6530932b97c9149c94174d5e229a14a9", + "0x011010.merylIndex:md5,e4a6f8cc99486fe79509be98a0c2841d", + "0x011011.merylData:md5,58357359932e814a983f0ce26acf5115", + "0x011011.merylIndex:md5,4426d81216c7a2dae734cf70536cf6bb", + "0x011100.merylData:md5,eb75a337c0649a58727dc3292e4d25db", + "0x011100.merylIndex:md5,a94b932a0583180d3027d445755e37f8", + "0x011101.merylData:md5,c494378696f831deebad0e0fe2db1881", + "0x011101.merylIndex:md5,ef00cd5e7255d4b751140fd0c83400a1", + "0x011110.merylData:md5,abec95fb53891ca69dd1e7ea20189204", + "0x011110.merylIndex:md5,bc2b1a21e91760ad49897097071df011", + "0x011111.merylData:md5,4b858e2a28860f789e8a5dc62e062557", + "0x011111.merylIndex:md5,5eed11ba178f7f9559625364d96aa41c", + "0x100000.merylData:md5,768528aaafba818f8e34d4b65de5242e", + "0x100000.merylIndex:md5,6649d5940b0a60b289dce7073de4777d", + "0x100001.merylData:md5,d0ef60de56a5dc1cec3606e3f07620c2", + "0x100001.merylIndex:md5,26d0852978fc3a8972aec67cebcc0f28", + "0x100010.merylData:md5,5b5a0fd3be35a954597a1c88ed3912ab", + "0x100010.merylIndex:md5,68c7135add32c8aac3c4207a7db7d37a", + "0x100011.merylData:md5,d8c188713b5379ba7e53bd7ac26baed5", + "0x100011.merylIndex:md5,4a9ed0a918945a7e9602427e23bd955c", + "0x100100.merylData:md5,68403d2ad355e2f9f9b8032616c6fbab", + "0x100100.merylIndex:md5,2fe6f882ae22d87581300c3b9b24242b", + "0x100101.merylData:md5,a6102a49c8b51870bf14b6ace728cfa1", + "0x100101.merylIndex:md5,f5b56f5edb9f55973288aab6b0c81467", + "0x100110.merylData:md5,418f44aecc5beb96d4fe9d5c22e5d8df", + "0x100110.merylIndex:md5,3b93d1b48ce9314ed0946e7a4d1b6c19", + "0x100111.merylData:md5,1cce84d0d61511837a70bb48aab84a20", + "0x100111.merylIndex:md5,42d17c375dccd68da727f531cc05a9fa", + "0x101000.merylData:md5,e2f713f0fb453506b18db92609a1fdff", + "0x101000.merylIndex:md5,f9fa2ccd8b89aa7147130c7dac705ce0", + "0x101001.merylData:md5,1cde5e30da7e245689c7c7a7006ebc40", + "0x101001.merylIndex:md5,f3d6a5e2eeb01dffaf6ebd04793d269b", + "0x101010.merylData:md5,088d7310df61d7917f3b49cc5ca1bef5", + "0x101010.merylIndex:md5,5de136cfda775349c75d47e5c5bae16b", + "0x101011.merylData:md5,c37a7fd125f9563760f0a7b065fb99f5", + "0x101011.merylIndex:md5,7374a2a00f9cf1fb4760dd6c68ce05de", + "0x101100.merylData:md5,3c76f864ab548adfb4d8f11869ab7b3a", + "0x101100.merylIndex:md5,e65c609b7b05a34a75c3eb7fbef9a488", + "0x101101.merylData:md5,8faec3c432a9fcaf7d6413a9966d15e7", + "0x101101.merylIndex:md5,c4fb9020e3b1690f5d4717be5384427d", + "0x101110.merylData:md5,92fb3c0d061a4d258bdde77c904312ab", + "0x101110.merylIndex:md5,0518b5e9eb8cecedd4da3a0470fbb43d", + "0x101111.merylData:md5,7f2174eee07aa116cffb77f85910efec", + "0x101111.merylIndex:md5,f7ecf59ae53a3a38cc4b7c2509379b3a", + "0x110000.merylData:md5,8c5866a1e6932eb777fe6e72c1090e1e", + "0x110000.merylIndex:md5,fdcca3797ca34cdbb3d6808847c111d5", + "0x110001.merylData:md5,02cc9f0ece95b69c6dfe3f04a0425f92", + "0x110001.merylIndex:md5,d545188ef68c84c1c653e23f6fae4ef3", + "0x110010.merylData:md5,665d40c5e306952883fe2ffa641024bb", + "0x110010.merylIndex:md5,445e745bd1f34502437541fafbb21943", + "0x110011.merylData:md5,e32f9db7cfb6dfa243f45258f1b55041", + "0x110011.merylIndex:md5,6e93712a47efaf6a4656c0dbeb1e5b1a", + "0x110100.merylData:md5,af978fc2cc304f2aee3f06416a1a43aa", + "0x110100.merylIndex:md5,ed97271331d8bb4eabbd0978cd4b9d23", + "0x110101.merylData:md5,a7bdc73355bea8749db38966fb7c968d", + "0x110101.merylIndex:md5,b30ff36567bede03396e67e973d4fdf9", + "0x110110.merylData:md5,0ee1f4b187ce88567262d3a6302f3f2a", + "0x110110.merylIndex:md5,505cab345465852c8284d190e91ce7fa", + "0x110111.merylData:md5,02929a0fd245f27576d794c98443ed52", + "0x110111.merylIndex:md5,8b70850b1775790354ff00ffcfb9df65", + "0x111000.merylData:md5,21cb35b24f60b6c69c49c327d1fd797f", + "0x111000.merylIndex:md5,7a54391084d2354b534bbf238631a80e", + "0x111001.merylData:md5,3c864da93bf29a8a0665cd83e1b612e7", + "0x111001.merylIndex:md5,4504239cfc112fcf6e9dba44e6f9f488", + "0x111010.merylData:md5,9d08a9742799fd0ab5b29f184667cb7c", + "0x111010.merylIndex:md5,b67161fd14e224f11a592691fe08e0e5", + "0x111011.merylData:md5,f5a09c0f5faa10aaad17efe454ff9395", + "0x111011.merylIndex:md5,75306fb2397e61a0910a5034cb9309c9", + "0x111100.merylData:md5,6c1ddf20980ade712673d606c6f3dfbe", + "0x111100.merylIndex:md5,35642b10f80c44989de4131a4c2b9c95", + "0x111101.merylData:md5,a26af5a2348ddc4882eb06d4edb63b6f", + "0x111101.merylIndex:md5,e6affc54363b262b10e55267192cd68b", + "0x111110.merylData:md5,7a7f81ee6339c46bffe18de12c3a7177", + "0x111110.merylIndex:md5,07f0179b757af0593f9120c98b7b9052", + "0x111111.merylData:md5,0e63424ed0b9b5a399058dbea354ae64", + "0x111111.merylIndex:md5,b8c6b4cc0580f55e4767f1f4529d772b", + "merylIndex:md5,72fb8181bcbb783884da1c8c2ded4eff" + ] + ] + ], + "versions": [ + "versions.yml:md5,c97980ac5ebd37a77768c105861ad719" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-27T10:19:40.09228319" + } +} \ No newline at end of file diff --git a/modules/nf-core/meryl/unionsum/tests/tags.yml b/modules/nf-core/meryl/unionsum/tests/tags.yml new file mode 100644 index 00000000..707dd781 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/tests/tags.yml @@ -0,0 +1,2 @@ +meryl/unionsum: + - "modules/nf-core/meryl/unionsum/**" diff --git a/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff b/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff deleted file mode 100644 index d71c09b1..00000000 --- a/modules/nf-core/sratools/fasterqdump/sratools-fasterqdump.diff +++ /dev/null @@ -1,252 +0,0 @@ -Changes in module 'nf-core/sratools/fasterqdump' ---- modules/nf-core/sratools/fasterqdump/meta.yml -+++ modules/nf-core/sratools/fasterqdump/meta.yml -@@ -51,3 +51,4 @@ - - "@Midnighter" - maintainers: - - "@Midnighter" -+ - "@gallvp" - ---- modules/nf-core/sratools/fasterqdump/main.nf -+++ modules/nf-core/sratools/fasterqdump/main.nf -@@ -23,7 +23,10 @@ - def args = task.ext.args ?: '' - def args2 = task.ext.args2 ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" -- def outfile = meta.single_end ? "${prefix}.fastq" : prefix -+ def outfile = "${prefix}.fastq" -+ def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" -+ // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and -+ // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 - def key_file = '' - if (certificate.toString().endsWith('.jwt')) { - key_file += " --perm ${certificate}" -@@ -40,6 +43,51 @@ - ${key_file} \\ - ${sra} - -+ $exclude_third -+ -+ pigz \\ -+ $args2 \\ -+ --no-name \\ -+ --processes $task.cpus \\ -+ *.fastq -+ -+ cat <<-END_VERSIONS > versions.yml -+ "${task.process}": -+ sratools: \$(fasterq-dump --version 2>&1 | grep -Eo '[0-9.]+') -+ pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) -+ END_VERSIONS -+ """ -+ -+ stub: -+ def args = task.ext.args ?: '' -+ def args2 = task.ext.args2 ?: '' -+ def prefix = task.ext.prefix ?: "${meta.id}" -+ def outfile = "${prefix}.fastq" -+ def exclude_third = meta.single_end ? '' : "mv $outfile $prefix || echo 'No third file'" -+ // Excludes the "${prefix}.fastq" file from output `reads` channel for paired end cases and -+ // avoids the '.' in the path bug: https://github.com/ncbi/sra-tools/issues/865 -+ def key_file = '' -+ if (certificate.toString().endsWith('.jwt')) { -+ key_file += " --perm ${certificate}" -+ } else if (certificate.toString().endsWith('.ngc')) { -+ key_file += " --ngc ${certificate}" -+ } -+ def touch_outfiles = meta.single_end ? "${prefix}.fastq" : "${prefix}_1.fastq ${prefix}_2.fastq" -+ """ -+ touch $touch_outfiles -+ -+ export NCBI_SETTINGS="\$PWD/${ncbi_settings}" -+ -+ echo \\ -+ "fasterq-dump \\ -+ $args \\ -+ --threads $task.cpus \\ -+ --outfile $outfile \\ -+ ${key_file} \\ -+ ${sra}" -+ -+ $exclude_third -+ - pigz \\ - $args2 \\ - --no-name \\ - ---- modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap -+++ modules/nf-core/sratools/fasterqdump/tests/main.nf.test.snap -@@ -30,9 +30,44 @@ - ], - "meta": { - "nf-test": "0.8.4", -- "nextflow": "24.01.0" -+ "nextflow": "23.10.1" - }, -- "timestamp": "2024-02-28T15:25:52.837288" -+ "timestamp": "2024-05-17T22:01:43.486256" -+ }, -+ "Single-end-stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test_single_end", -+ "single_end": true -+ }, -+ "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "1": [ -+ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" -+ ], -+ "reads": [ -+ [ -+ { -+ "id": "test_single_end", -+ "single_end": true -+ }, -+ "test_single_end.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-17T21:40:42.335786" - }, - "Paired-end": { - "content": [ -@@ -71,8 +106,49 @@ - ], - "meta": { - "nf-test": "0.8.4", -- "nextflow": "24.01.0" -+ "nextflow": "23.10.1" - }, -- "timestamp": "2024-02-28T15:26:42.466223" -+ "timestamp": "2024-05-17T22:09:55.6396" -+ }, -+ "Paired-end-stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test_paired_end", -+ "single_end": false -+ }, -+ [ -+ "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "1": [ -+ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" -+ ], -+ "reads": [ -+ [ -+ { -+ "id": "test_paired_end", -+ "single_end": false -+ }, -+ [ -+ "test_paired_end_1.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e", -+ "test_paired_end_2.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,a3d61a9761e1606ef8459f0b68821d7a" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-17T20:35:44.782058" - } - } ---- modules/nf-core/sratools/fasterqdump/tests/main.nf.test -+++ modules/nf-core/sratools/fasterqdump/tests/main.nf.test -@@ -1,7 +1,6 @@ - nextflow_process { - name "Test Process SRATOOLS_FASTERQDUMP" - script "../main.nf" -- config "./nextflow.config" - process "SRATOOLS_FASTERQDUMP" - tag "modules" - tag "modules_nfcore" -@@ -70,4 +69,54 @@ - ) - } - } -+ -+ test("Single-end-stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test_single_end', single_end:true ], -+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR13255544.tar.gz', checkIfExists: true) -+ ] -+ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) -+ input[2] = [] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } -+ -+ test("Paired-end-stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ input[0] = [ -+ [ id:'test_paired_end', single_end:false ], -+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/sra/SRR11140744.tar.gz', checkIfExists: true) -+ ] -+ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) -+ input[2] = [] -+ """ -+ } -+ } -+ -+ then { -+ assertAll( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } - } - ---- modules/nf-core/sratools/fasterqdump/tests/nextflow.config -+++ /dev/null -@@ -1,5 +0,0 @@ --process { -- withName: SRATOOLS_FASTERQDUMP { -- ext.args = '' -- } --} -************************************************************ diff --git a/modules/nf-core/sratools/prefetch/sratools-prefetch.diff b/modules/nf-core/sratools/prefetch/sratools-prefetch.diff deleted file mode 100644 index 25a938e7..00000000 --- a/modules/nf-core/sratools/prefetch/sratools-prefetch.diff +++ /dev/null @@ -1,112 +0,0 @@ -Changes in module 'nf-core/sratools/prefetch' ---- modules/nf-core/sratools/prefetch/meta.yml -+++ modules/nf-core/sratools/prefetch/meta.yml -@@ -54,3 +54,4 @@ - - "@Midnighter" - maintainers: - - "@Midnighter" -+ - "@gallvp" - ---- modules/nf-core/sratools/prefetch/main.nf -+++ modules/nf-core/sratools/prefetch/main.nf -@@ -32,4 +32,16 @@ - } - - template 'retry_with_backoff.sh' -+ -+ stub: -+ """ -+ mkdir $id -+ touch $id/${id}.sra -+ -+ cat <<-END_VERSIONS > versions.yml -+ "${task.process}": -+ sratools: \$(prefetch --version 2>&1 | grep -Eo '[0-9.]+') -+ curl: \$(curl --version | head -n 1 | sed 's/^curl //; s/ .*\$//') -+ END_VERSIONS -+ """ - } - ---- modules/nf-core/sratools/prefetch/tests/main.nf.test.snap -+++ modules/nf-core/sratools/prefetch/tests/main.nf.test.snap -@@ -1,4 +1,43 @@ - { -+ "sratools/prefetch/stub": { -+ "content": [ -+ { -+ "0": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "1": [ -+ "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" -+ ], -+ "sra": [ -+ [ -+ { -+ "id": "test", -+ "single_end": false -+ }, -+ [ -+ "DRR000774.sra:md5,d41d8cd98f00b204e9800998ecf8427e" -+ ] -+ ] -+ ], -+ "versions": [ -+ "versions.yml:md5,83d1b23f5ff5b2ad1b96d17d7d7594ee" -+ ] -+ } -+ ], -+ "meta": { -+ "nf-test": "0.8.4", -+ "nextflow": "23.10.1" -+ }, -+ "timestamp": "2024-05-17T20:07:31.627115" -+ }, - "sratools/prefetch with sralite": { - "content": [ - { -@@ -77,4 +116,4 @@ - }, - "timestamp": "2024-02-28T11:48:37.428307" - } --} -+} ---- modules/nf-core/sratools/prefetch/tests/main.nf.test -+++ modules/nf-core/sratools/prefetch/tests/main.nf.test -@@ -46,4 +46,26 @@ - ) - } - } -+ -+ test("sratools/prefetch/stub") { -+ -+ options '-stub' -+ -+ when { -+ process { -+ """ -+ input[0] = Channel.of([ [ id:'test', single_end:false ], 'DRR000774' ]) -+ input[1] = file(params.modules_testdata_base_path + 'generic/config/ncbi_user_settings.mkfg', checkIfExists: true) -+ input[2] = [] -+ """ -+ } -+ } -+ -+ then { -+ assertAll ( -+ { assert process.success }, -+ { assert snapshot(process.out).match() } -+ ) -+ } -+ } - } - -************************************************************ diff --git a/modules/pfr/merqury/hapmers/environment.yml b/modules/pfr/merqury/hapmers/environment.yml new file mode 100644 index 00000000..5f7977cd --- /dev/null +++ b/modules/pfr/merqury/hapmers/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "merqury_hapmers" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::merqury=1.3" diff --git a/modules/pfr/merqury/hapmers/main.nf b/modules/pfr/merqury/hapmers/main.nf new file mode 100644 index 00000000..22dd66d5 --- /dev/null +++ b/modules/pfr/merqury/hapmers/main.nf @@ -0,0 +1,96 @@ +process MERQURY_HAPMERS { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/merqury:1.3--hdfd78af_1': + 'biocontainers/merqury:1.3--hdfd78af_1' }" + + input: + tuple val(meta), path(child_meryl, stageAs: 'child.meryl') + path(maternal_meryl, stageAs: 'mat.meryl') + path(paternal_meryl, stageAs: 'pat.meryl') + + output: + tuple val(meta), path('*_mat.hapmer.meryl') , emit: mat_hapmer_meryl + tuple val(meta), path('*_pat.hapmer.meryl') , emit: pat_hapmer_meryl + tuple val(meta), path('*_inherited_hapmers.fl.png') , emit: inherited_hapmers_fl_png + tuple val(meta), path('*_inherited_hapmers.ln.png') , emit: inherited_hapmers_ln_png + tuple val(meta), path('*_inherited_hapmers.st.png') , emit: inherited_hapmers_st_png + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = 1.3 + """ + # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) + # Check for container variable initialisation script and source it. + if [ -f "/usr/local/env-activate.sh" ]; then + set +u # Otherwise, errors out because of various unbound variables + . "/usr/local/env-activate.sh" + set -u + fi + + \$MERQURY/trio/hapmers.sh \\ + mat.meryl \\ + pat.meryl\\ + child.meryl \\ + $args + + mv mat.hapmer.meryl ${prefix}_mat.hapmer.meryl + mv pat.hapmer.meryl ${prefix}_pat.hapmer.meryl + mv inherited_hapmers.fl.png ${prefix}_inherited_hapmers.fl.png + mv inherited_hapmers.ln.png ${prefix}_inherited_hapmers.ln.png + mv inherited_hapmers.st.png ${prefix}_inherited_hapmers.st.png + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + merqury: $VERSION + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = 1.3 + """ + # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) + # Check for container variable initialisation script and source it. + if [ -f "/usr/local/env-activate.sh" ]; then + set +u # Otherwise, errors out because of various unbound variables + . "/usr/local/env-activate.sh" + set -u + fi + + echo \\ + "\$MERQURY/trio/hapmers.sh \\ + mat.meryl \\ + pat.meryl\\ + child.meryl \\ + $args" + + mkdir ${prefix}_mat.hapmer.meryl + touch ${prefix}_mat.hapmer.meryl/0x000000.merylData + touch ${prefix}_mat.hapmer.meryl/0x000000.merylIndex + touch ${prefix}_mat.hapmer.meryl/merylIndex + + mkdir ${prefix}_pat.hapmer.meryl + touch ${prefix}_pat.hapmer.meryl/0x000000.merylData + touch ${prefix}_pat.hapmer.meryl/0x000000.merylIndex + touch ${prefix}_pat.hapmer.meryl/merylIndex + + touch ${prefix}_inherited_hapmers.fl.png + touch ${prefix}_inherited_hapmers.ln.png + touch ${prefix}_inherited_hapmers.st.png + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + merqury: $VERSION + END_VERSIONS + """ +} diff --git a/modules/pfr/merqury/hapmers/meta.yml b/modules/pfr/merqury/hapmers/meta.yml new file mode 100644 index 00000000..6693f540 --- /dev/null +++ b/modules/pfr/merqury/hapmers/meta.yml @@ -0,0 +1,70 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "merqury_hapmers" +description: A script to generate hap-mer dbs for trios +keywords: + - genomics + - quality check + - qc + - kmer +tools: + - "merqury": + description: "Evaluate genome assemblies with k-mers and more." + tool_dev_url: "https://github.com/marbl/merqury" + doi: "10.1186/s13059-020-02134-9" + licence: ["United States Government Work"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - child_meryl: + type: directory + description: Childs' k-mers (all, from WGS reads) + pattern: "*.meryl" + - maternal_meryl: + type: directory + description: Haplotype1 k-mers (all, ex. maternal) + pattern: "*.meryl" + - paternal_meryl: + type: directory + description: Haplotype2 k-mers (all, ex. paternal) + pattern: "*.meryl" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - mat_hapmer_meryl: + type: directory + description: Inherited maternal hap-mer dbs + pattern: "*_mat.hapmer.meryl" + - pat_hapmer_meryl: + type: directory + description: Inherited paternal hap-mer dbs + pattern: "*_pat.hapmer.meryl" + - inherited_hapmers_fl_png: + type: file + description: k-mer distribution of the inherited dbs and cutoffs used to generate hap-mer dbs + pattern: "*_inherited_hapmers.fl.png" + - inherited_hapmers_ln_png: + type: file + description: k-mer distribution of the inherited dbs and cutoffs used to generate hap-mer dbs + pattern: "*_inherited_hapmers.ln.png" + - inherited_hapmers_st_png: + type: file + description: k-mer distribution of the inherited dbs and cutoffs used to generate hap-mer dbs + pattern: "*_inherited_hapmers.st.png" + +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/modules/pfr/merqury/hapmers/tests/main.nf.test b/modules/pfr/merqury/hapmers/tests/main.nf.test new file mode 100644 index 00000000..9a254aaf --- /dev/null +++ b/modules/pfr/merqury/hapmers/tests/main.nf.test @@ -0,0 +1,113 @@ +nextflow_process { + + name "Test Process MERQURY_HAPMERS" + script "../main.nf" + process "MERQURY_HAPMERS" + + tag "modules" + tag "modules_nfcore" + tag "merqury" + tag "merqury/hapmers" + tag "meryl/count" + + setup { + run('MERYL_COUNT') { + script "../../../meryl/count" + process { + """ + input[0] = [ + [ id:'child' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_1_fastq_gz'], checkIfExists: true) + ] + input[1] = 21 + """ + } + } + + run('MERYL_COUNT', alias: 'MERYL_COUNT_MATERNAL') { + script "../../../meryl/count" + process { + """ + input[0] = [ + [ id:'maternal' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + input[1] = 21 + """ + } + } + + run('MERYL_COUNT', alias: 'MERYL_COUNT_PATERNAL') { + script "../../../meryl/count" + process { + """ + input[0] = [ + [ id:'paternal' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + input[1] = 21 + """ + } + } + } + + test("homo_sapiens") { + + when { + process { + """ + input[0] = MERYL_COUNT.out.meryl_db + input[1] = MERYL_COUNT_MATERNAL.out.meryl_db.map { meta, db -> db } + input[2] = MERYL_COUNT_PATERNAL.out.meryl_db.map { meta, db -> db } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.mat_hapmer_meryl).md5().match("mat_hapmer_meryl") }, + { assert snapshot(process.out.pat_hapmer_meryl).md5().match("pat_hapmer_meryl") }, + { assert snapshot( + process.out.versions, + file(process.out.inherited_hapmers_fl_png[0][1]).name, + file(process.out.inherited_hapmers_ln_png[0][1]).name, + file(process.out.inherited_hapmers_st_png[0][1]).name + ).match() + }, + ) + } + } + + test("homo_sapiens-stub") { + + options '-stub' + + when { + process { + """ + input[0] = MERYL_COUNT.out.meryl_db + input[1] = MERYL_COUNT_MATERNAL.out.meryl_db.map { meta, db -> db } + input[2] = MERYL_COUNT_PATERNAL.out.meryl_db.map { meta, db -> db } + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.mat_hapmer_meryl).md5().match("mat_hapmer_meryl_stub") }, + { assert snapshot(process.out.pat_hapmer_meryl).md5().match("pat_hapmer_meryl_stub") }, + { assert snapshot( + process.out.versions, + file(process.out.inherited_hapmers_fl_png[0][1]).name, + file(process.out.inherited_hapmers_ln_png[0][1]).name, + file(process.out.inherited_hapmers_st_png[0][1]).name + ).match() + }, + ) + } + + } + +} \ No newline at end of file diff --git a/modules/pfr/merqury/hapmers/tests/main.nf.test.snap b/modules/pfr/merqury/hapmers/tests/main.nf.test.snap new file mode 100644 index 00000000..3a0d4902 --- /dev/null +++ b/modules/pfr/merqury/hapmers/tests/main.nf.test.snap @@ -0,0 +1,64 @@ +{ + "homo_sapiens": { + "content": [ + [ + "versions.yml:md5,e786e8381bfc64b2fdc423a67f60763e" + ], + "child_inherited_hapmers.fl.png", + "child_inherited_hapmers.ln.png", + "child_inherited_hapmers.st.png" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:25.962754" + }, + "mat_hapmer_meryl": { + "content": "ccc510b93c249fb07688cf3e4eecd669", + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:25.853929" + }, + "pat_hapmer_meryl": { + "content": "003a22d74da4ff265c2224c980d1b9d8", + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:25.88616" + }, + "mat_hapmer_meryl_stub": { + "content": "59c648572f6591567baecccf5c3556ed", + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:58.081794" + }, + "pat_hapmer_meryl_stub": { + "content": "59c648572f6591567baecccf5c3556ed", + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:58.084766" + }, + "homo_sapiens-stub": { + "content": [ + [ + "versions.yml:md5,e786e8381bfc64b2fdc423a67f60763e" + ], + "child_inherited_hapmers.fl.png", + "child_inherited_hapmers.ln.png", + "child_inherited_hapmers.st.png" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-21T22:26:58.142356" + } +} \ No newline at end of file diff --git a/modules/pfr/merqury/hapmers/tests/tags.yml b/modules/pfr/merqury/hapmers/tests/tags.yml new file mode 100644 index 00000000..553f09d8 --- /dev/null +++ b/modules/pfr/merqury/hapmers/tests/tags.yml @@ -0,0 +1,2 @@ +merqury/hapmers: + - "modules/pfr/merqury/hapmers/**" diff --git a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf index 0bc0efd6..a8b381e2 100644 --- a/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_assemblyqc_pipeline/main.nf @@ -375,8 +375,7 @@ def validateAndNormaliseReadsTuple ( fid, metas, reads, readsType ) { error("Please check input assemblysheet -> More than two assemblies (${tags}) are in the same genome group defined by ${identifier}reads_1: ${fid.fid}") } - def groupIDPrefix = readsType == 'reads' ? ( tags.join('-and-') + "-${readsType}-" ) : '' - def groupID = groupIDPrefix + fid.fid.replaceAll(/\./, '_') + def groupID = readsType == 'reads' ? ( tags.join('-and-') ) : fid.fid.replaceAll(/\./, '_') if ( metas.first().is_sra ) { // SRA return [ diff --git a/tests/merqury.fk/phased2x.mp/params.json b/tests/merqury.fk/phased2x.mp/params.json deleted file mode 100644 index bc483334..00000000 --- a/tests/merqury.fk/phased2x.mp/params.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "config_profile_name": "Test profile", - "config_profile_description": "Merqury.FK test for a phased diploid assembly contained in separate fasta with parental reads", - "input": "tests/merqury.fk/phased2x.mp/assemblysheet.csv", - "merqury_skip": false, - "merqury_kmer_length": 21, - "max_cpus": 8, - "max_memory": "32.GB", - "max_time": "6.h" -} diff --git a/tests/merqury.fk/mixed2x/assemblysheet.csv b/tests/merqury/mixed2x/assemblysheet.csv similarity index 100% rename from tests/merqury.fk/mixed2x/assemblysheet.csv rename to tests/merqury/mixed2x/assemblysheet.csv diff --git a/tests/merqury.fk/mixed2x/params.json b/tests/merqury/mixed2x/params.json similarity index 50% rename from tests/merqury.fk/mixed2x/params.json rename to tests/merqury/mixed2x/params.json index 06388889..6ce89d4b 100644 --- a/tests/merqury.fk/mixed2x/params.json +++ b/tests/merqury/mixed2x/params.json @@ -1,7 +1,7 @@ { "config_profile_name": "Test profile", - "config_profile_description": "Merqury.FK test for a mixed diploid assembly contained in a single fasta", - "input": "tests/merqury.fk/mixed2x/assemblysheet.csv", + "config_profile_description": "Merqury test for a mixed diploid assembly contained in a single fasta", + "input": "tests/merqury/mixed2x/assemblysheet.csv", "merqury_skip": false, "merqury_kmer_length": 21, "max_cpus": 8, diff --git a/tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk b/tests/merqury/phased2x.mp/assemblysheet.csv similarity index 100% rename from tests/merqury.fk/phased2x.mp/assemblysheet.csv.bk rename to tests/merqury/phased2x.mp/assemblysheet.csv diff --git a/tests/merqury.fk/phased2x.mp/assemblysheet.csv b/tests/merqury/phased2x.mp/assemblysheet.csv.local similarity index 84% rename from tests/merqury.fk/phased2x.mp/assemblysheet.csv rename to tests/merqury/phased2x.mp/assemblysheet.csv.local index 5ae40b57..f90aec6f 100644 --- a/tests/merqury.fk/phased2x.mp/assemblysheet.csv +++ b/tests/merqury/phased2x.mp/assemblysheet.csv.local @@ -1,4 +1,4 @@ tag,fasta,reads_1,reads_2,maternal_reads_1,paternal_reads_1 COL,https://gembox.cbcb.umd.edu/triobinning/athal_COL.fasta,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_1.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_2.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_CVI.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_COL.fastq.gz CVI,https://gembox.cbcb.umd.edu/triobinning/athal_CVI.fasta,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_1.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR3703081_2.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_CVI.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/athal_COL.fastq.gz -FI1,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/814/445/GCA_003814445.1_ASM381444v1/GCA_003814445.1_ASM381444v1_genomic.fna.gz,SRR8238189 +FI1,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/003/814/445/GCA_003814445.1_ASM381444v1/GCA_003814445.1_ASM381444v1_genomic.fna.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR8238189_1.fastq.gz,/Users/hrauxr/Projects/test-data/assemblyqc/merqury.fk/phased2x.mp/SRR8238189_2.fastq.gz diff --git a/tests/merqury/phased2x.mp/params.json b/tests/merqury/phased2x.mp/params.json new file mode 100644 index 00000000..60f157ca --- /dev/null +++ b/tests/merqury/phased2x.mp/params.json @@ -0,0 +1,10 @@ +{ + "config_profile_name": "Test profile", + "config_profile_description": "Merqury test for a phased diploid assembly contained in separate fasta with parental reads", + "input": "tests/merqury/phased2x.mp/assemblysheet.csv", + "merqury_skip": false, + "merqury_kmer_length": 21, + "max_cpus": 8, + "max_memory": "32.GB", + "max_time": "6.h" +} diff --git a/tests/merqury.fk/phased2x/assemblysheet.csv b/tests/merqury/phased2x/assemblysheet.csv similarity index 100% rename from tests/merqury.fk/phased2x/assemblysheet.csv rename to tests/merqury/phased2x/assemblysheet.csv diff --git a/tests/merqury.fk/phased2x/params.json b/tests/merqury/phased2x/params.json similarity index 50% rename from tests/merqury.fk/phased2x/params.json rename to tests/merqury/phased2x/params.json index 697703b9..0b363fab 100644 --- a/tests/merqury.fk/phased2x/params.json +++ b/tests/merqury/phased2x/params.json @@ -1,7 +1,7 @@ { "config_profile_name": "Test profile", - "config_profile_description": "Merqury.FK test for a phased diploid assembly contained in separate fasta", - "input": "tests/merqury.fk/phased2x/assemblysheet.csv", + "config_profile_description": "Merqury test for a phased diploid assembly contained in separate fasta", + "input": "tests/merqury/phased2x/assemblysheet.csv", "merqury_skip": false, "merqury_kmer_length": 21, "max_cpus": 8, diff --git a/workflows/assemblyqc.nf b/workflows/assemblyqc.nf index e5a627b2..e26f3466 100644 --- a/workflows/assemblyqc.nf +++ b/workflows/assemblyqc.nf @@ -21,11 +21,14 @@ include { FASTA_KRAKEN2 } from '../subworkflows/local/fasta_ include { FQ2HIC } from '../subworkflows/local/fq2hic' include { CAT_CAT as TAG_ASSEMBLY } from '../modules/pfr/cat/cat/main' include { FASTA_SYNTENY } from '../subworkflows/local/fasta_synteny' -include { FASTK_FASTK } from '../modules/nf-core/fastk/fastk/main' -include { FASTK_FASTK as MATERNAL_FASTK } from '../modules/nf-core/fastk/fastk/main' -include { FASTK_FASTK as PATERNAL_FASTK } from '../modules/nf-core/fastk/fastk/main' -include { MERQURYFK_HAPMAKER } from '../modules/local/merquryfk_hapmaker' -include { MERQURYFK_MERQURYFK } from '../modules/nf-core/merquryfk/merquryfk/main' +include { MERYL_COUNT } from '../modules/nf-core/meryl/count/main' +include { MERYL_UNIONSUM } from '../modules/nf-core/meryl/unionsum/main' +include { MERYL_COUNT as MAT_MERYL_COUNT } from '../modules/nf-core/meryl/count/main' +include { MERYL_UNIONSUM as MAT_UNIONSUM } from '../modules/nf-core/meryl/unionsum/main' +include { MERYL_COUNT as PAT_MERYL_COUNT } from '../modules/nf-core/meryl/count/main' +include { MERYL_UNIONSUM as PAT_UNIONSUM } from '../modules/nf-core/meryl/unionsum/main' +include { MERQURY_HAPMERS } from '../modules/pfr/merqury/hapmers/main' +include { MERQURY } from '../modules/nf-core/merqury/main' include { CREATEREPORT } from '../modules/local/createreport' include { FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS as FETCHNGS } from '../subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/main' @@ -541,146 +544,180 @@ workflow ASSEMBLYQC { ch_synteny_plots = FASTA_SYNTENY.out.png.mix(FASTA_SYNTENY.out.html) ch_versions = ch_versions.mix(FASTA_SYNTENY.out.versions) - // MODULE: FASTK_FASTK + // MODULE: MERYL_COUNT ch_reads_files = ch_fetchngs.reads | mix(ch_reads_branch.rest) - FASTK_FASTK ( ch_reads_files ) + MERYL_COUNT( + ch_reads_files, + params.merqury_kmer_length + ) + + ch_reads_meryl = MERYL_COUNT.out.meryl_db + ch_versions = ch_versions.mix(MERYL_COUNT.out.versions.first()) + + // MODULE: MERYL_UNIONSUM + ch_reads_meryl_branch = ch_reads_meryl + | branch { meta, meryl -> + single: meta.single_end + paired: ! meta.single_end + } + MERYL_UNIONSUM( + ch_reads_meryl_branch.paired, + params.merqury_kmer_length + ) - ch_reads_fastk_hist = FASTK_FASTK.out.hist - ch_reads_fastk = FASTK_FASTK.out.ktab - ch_versions = ch_versions.mix(FASTK_FASTK.out.versions.first()) + ch_reads_union_meryl = MERYL_UNIONSUM.out.meryl_db + | mix(ch_reads_meryl_branch.single) + ch_versions = ch_versions.mix(MERYL_UNIONSUM.out.versions.first()) - // MODULE: FASTK_FASTK as MATERNAL_FASTK + // MODULE: MERYL_COUNT as MAT_MERYL_COUNT ch_maternal_reads_files = ch_fetchngs.maternal | mix(ch_maternal_reads_branch.rest) - MATERNAL_FASTK( + MAT_MERYL_COUNT( // Guard against failed resume on addition of assemblies with same parents ch_maternal_reads_files - | map { meta, fq -> [ [ id: meta.id ], fq ] } + | map { meta, fq -> [ [ id: meta.id ], fq ] }, + params.merqury_kmer_length ) - // ch_maternal_fastk_hist = MATERNAL_FASTK.out.hist - // | join( - // ch_maternal_reads_files - // | map { meta, fq -> [ [ id: meta.id ], meta ] } - // ) - // | map { meta, hist, meta2 -> [ meta2, hist ] } - - ch_maternal_fastk = MATERNAL_FASTK.out.ktab + ch_maternal_meryl = MAT_MERYL_COUNT.out.meryl_db | join( ch_maternal_reads_files | map { meta, fq -> [ [ id: meta.id ], meta ] } ) - | map { meta, ktab, meta2 -> [ meta2, ktab ] } - ch_versions = ch_versions.mix(MATERNAL_FASTK.out.versions.first()) + | map { meta, meryl, meta2 -> [ meta2, meryl ] } + ch_versions = ch_versions.mix(MAT_MERYL_COUNT.out.versions.first()) + + // MODULE: MAT_UNIONSUM + ch_maternal_meryl_branch = ch_maternal_meryl + | branch { meta, meryl_db -> + single: meta.single_end + paired: ! meta.single_end + } + MAT_UNIONSUM( + ch_maternal_meryl_branch.paired, + params.merqury_kmer_length + ) + + ch_maternal_union_meryl = MAT_UNIONSUM.out.meryl_db + | mix(ch_maternal_meryl_branch.single) + ch_versions = ch_versions.mix(MAT_UNIONSUM.out.versions.first()) - // MODULE: FASTK_FASTK as PATERNAL_FASTK + // MODULE: MERYL_COUNT as PAT_MERYL_COUNT ch_paternal_reads_files = ch_fetchngs.paternal | mix(ch_paternal_reads_branch.rest) - PATERNAL_FASTK( + PAT_MERYL_COUNT( ch_paternal_reads_files - | map { meta, fq -> [ [ id: meta.id ], fq ] } + | map { meta, fq -> [ [ id: meta.id ], fq ] }, + params.merqury_kmer_length ) - // ch_paternal_fastk_hist = PATERNAL_FASTK.out.hist - // | join( - // ch_paternal_reads_files - // | map { meta, fq -> [ [ id: meta.id ], meta ] } - // ) - // | map { meta, hist, meta2 -> [ meta2, hist ] } - - ch_paternal_fastk = PATERNAL_FASTK.out.ktab + ch_paternal_meryl = PAT_MERYL_COUNT.out.meryl_db | join( ch_paternal_reads_files | map { meta, fq -> [ [ id: meta.id ], meta ] } ) - | map { meta, ktab, meta2 -> [ meta2, ktab ] } - ch_versions = ch_versions.mix(PATERNAL_FASTK.out.versions.first()) + | map { meta, meryl, meta2 -> [ meta2, meryl ] } + ch_versions = ch_versions.mix(PAT_MERYL_COUNT.out.versions.first()) + + // MODULE: PAT_UNIONSUM + ch_paternal_meryl_branch = ch_paternal_meryl + | branch { meta, meryl -> + single: meta.single_end + paired: ! meta.single_end + } + PAT_UNIONSUM( + ch_paternal_meryl_branch.paired, + params.merqury_kmer_length + ) - // MODULE: MERQURYFK_HAPMAKER - ch_all_assemblies_with_parents = ch_maternal_fastk - | mix(ch_paternal_fastk) - | flatMap { meta, ktab -> meta.assemblies } + ch_paternal_union_meryl = PAT_UNIONSUM.out.meryl_db + | mix(ch_paternal_meryl_branch.single) + ch_versions = ch_versions.mix(PAT_UNIONSUM.out.versions.first()) + + // MODULE: MERQURY_HAPMERS + ch_all_assemblies_with_parents = ch_maternal_union_meryl + | mix(ch_paternal_union_meryl) + | flatMap { meta, meryl -> meta.assemblies } | unique | collect | map { [ it ] } | ifEmpty( [ [] ] ) - ch_reads_fastk_without_parents = ch_reads_fastk + ch_meryl_without_parents = ch_reads_union_meryl | combine( ch_all_assemblies_with_parents ) - | filter { meta, ktab, p_asms -> ! meta.assemblies.any { it in p_asms } } - | map { meta, ktab, p_asms -> [ meta, ktab, [], [] ] } + | filter { meta, meryl, p_asms -> ! meta.assemblies.any { it in p_asms } } + | map { meta, meryl, p_asms -> [ meta, meryl, [], [] ] } - ch_group_fastk = ch_reads_fastk - | combine ( ch_maternal_fastk ) - | filter { meta, ktab, meta2, mktab -> + ch_group_meryl = ch_reads_union_meryl + | combine ( ch_maternal_union_meryl ) + | filter { meta, meryl, meta2, mat_meryl -> meta.assemblies.every { it in meta2.assemblies } } - | map { meta, ktab, meta2, mktab -> - [ meta, ktab, mktab ] + | map { meta, meryl, meta2, mat_meryl -> + [ meta, meryl, mat_meryl ] } - | combine ( ch_paternal_fastk ) - | filter { meta, ktab, mktab, meta2, pktab -> + | combine ( ch_paternal_union_meryl ) + | filter { meta, meryl, mat_meryl, meta2, pat_meryl -> meta.assemblies.every { it in meta2.assemblies } } - | map { meta, ktab, mktab, meta2, pktab -> - [ meta, ktab, mktab, pktab ] + | map { meta, meryl, mat_meryl, meta2, pat_meryl -> + [ meta, meryl, mat_meryl, pat_meryl ] } - MERQURYFK_HAPMAKER( - ch_group_fastk.map { meta, ktab, mktab, pktab -> [ meta, ktab ] }, - ch_group_fastk.map { meta, ktab, mktab, pktab -> mktab }, - ch_group_fastk.map { meta, ktab, mktab, pktab -> pktab } + MERQURY_HAPMERS( + ch_group_meryl.map { meta, meryl, mat_meryl, pat_meryl -> [ meta, meryl ] }, + ch_group_meryl.map { meta, meryl, mat_meryl, pat_meryl -> mat_meryl }, + ch_group_meryl.map { meta, meryl, mat_meryl, pat_meryl -> pat_meryl } ) - ch_parental_hapmers = MERQURYFK_HAPMAKER.out.mat_hapmers - | join(MERQURYFK_HAPMAKER.out.pat_hapmers) - ch_versions = ch_versions.mix(MERQURYFK_HAPMAKER.out.versions.first()) + ch_parental_hapmers = MERQURY_HAPMERS.out.mat_hapmer_meryl + | join(MERQURY_HAPMERS.out.pat_hapmer_meryl) + ch_versions = ch_versions.mix(MERQURY_HAPMERS.out.versions.first()) - // Prepare FASTK tables - ch_fastk_ktabs = ch_group_fastk + // Prepare group meryl dbs + ch_meryl_all = ch_group_meryl | join(ch_parental_hapmers) - | map { meta, ktab, mktab, pktab, hap_mktab, hap_pktab -> - [ meta, ktab, hap_mktab, hap_pktab ] + | map { meta, meryl, mat_meryl, pat_meryl, hap_mat_meryl, hap_pat_meryl -> + [ meta, meryl, hap_mat_meryl, hap_pat_meryl ] } - | mix(ch_reads_fastk_without_parents) - | map { meta, ktab, hap_mktab, hap_pktab -> + | mix(ch_meryl_without_parents) + | map { meta, meryl, mat_meryl, pat_meryl -> [ meta, - ktab + hap_mktab + hap_pktab + mat_meryl + ? [ meryl, mat_meryl, pat_meryl ] + : meryl ] } - // MODULE: MERQURYFK_MERQURYFK - ch_merqury_inputs = ch_reads_fastk_hist - | join( - ch_fastk_ktabs - ) + // MODULE: MERQURY + ch_merqury_inputs = ch_meryl_all | join( ch_reads_assemblies | map { meta, fq, fastas -> [ meta, fastas ] } ) - | map { meta, hist, ktab, fastas -> - fastas.size() > 1 - ? [ meta, hist, ktab, fastas[0], fastas[1] ] - : [ meta, hist, ktab, fastas[0], [] ] - } - MERQURYFK_MERQURYFK ( ch_merqury_inputs ) + MERQURY ( ch_merqury_inputs ) + + ch_merqury_qv = MERQURY.out.assembly_qv + ch_merqury_stats = MERQURY.out.stats + ch_merqury_spectra_cn_fl_png = MERQURY.out.spectra_cn_fl_png + ch_merqury_spectra_asm_fl_png = MERQURY.out.spectra_asm_fl_png + ch_hapmers_blob_png = MERQURY.out.hapmers_blob_png - ch_merqury_qv = MERQURYFK_MERQURYFK.out.qv - ch_merqury_stats = MERQURYFK_MERQURYFK.out.stats - ch_merqury_spectra_cn_fl_png = MERQURYFK_MERQURYFK.out.spectra_cn_fl_png ch_merqury_outputs = ch_merqury_qv | mix(ch_merqury_stats) | mix(ch_merqury_spectra_cn_fl_png) + | mix(ch_merqury_spectra_asm_fl_png) + | mix(ch_hapmers_blob_png) | flatMap { meta, data -> data } - ch_versions = ch_versions.mix(MERQURYFK_MERQURYFK.out.versions.first()) + ch_versions = ch_versions.mix(MERQURY.out.versions.first()) // Collate and save software versions ch_versions = ch_versions @@ -698,25 +735,25 @@ workflow ASSEMBLYQC { ) // MODULE: CREATEREPORT - // CREATEREPORT( - // ch_invalid_assembly_log .collect().ifEmpty([]), - // ch_invalid_gff3_log .collect().ifEmpty([]), - // ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), - // ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), - // ch_assemblathon_stats .collect().ifEmpty([]), - // ch_gt_stats .collect().ifEmpty([]), - // ch_busco_outputs .collect().ifEmpty([]), - // ch_busco_gff_outputs .collect().ifEmpty([]), - // ch_tidk_outputs .collect().ifEmpty([]), - // ch_lai_outputs .collect().ifEmpty([]), - // ch_kraken2_plot .collect().ifEmpty([]), - // ch_hic_html .collect().ifEmpty([]), - // ch_synteny_plots .collect().ifEmpty([]), - // ch_merqury_outputs .collect().ifEmpty([]), - // ch_versions_yml, - // ch_params_as_json, - // ch_summary_params_as_json - // ) + CREATEREPORT( + ch_invalid_assembly_log .collect().ifEmpty([]), + ch_invalid_gff3_log .collect().ifEmpty([]), + ch_fcs_adaptor_report .map { meta, file -> file }.collect().ifEmpty([]), + ch_fcs_gx_report .mix(ch_fcs_gx_taxonomy_plot).map { meta, file -> file }.collect().ifEmpty([]), + ch_assemblathon_stats .collect().ifEmpty([]), + ch_gt_stats .collect().ifEmpty([]), + ch_busco_outputs .collect().ifEmpty([]), + ch_busco_gff_outputs .collect().ifEmpty([]), + ch_tidk_outputs .collect().ifEmpty([]), + ch_lai_outputs .collect().ifEmpty([]), + ch_kraken2_plot .collect().ifEmpty([]), + ch_hic_html .collect().ifEmpty([]), + ch_synteny_plots .collect().ifEmpty([]), + ch_merqury_outputs .collect().ifEmpty([]), + ch_versions_yml, + ch_params_as_json, + ch_summary_params_as_json + ) } /* From dd743ddb9392982b87a6c54ce8bb41de609e5908 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 22 May 2024 16:08:04 +1200 Subject: [PATCH 48/76] Locally patched MERQURY, MERYL/COUNT and MERYL/UNIONSUM --- CHANGELOG.md | 16 +- modules.json | 15 +- modules/nf-core/merqury/merqury.diff | 13 + modules/nf-core/meryl/count/main.nf | 9 +- modules/nf-core/meryl/count/meryl-count.diff | 79 +++++ modules/nf-core/meryl/count/meta.yml | 3 +- .../meryl/count/tests/main.nf.test.snap | 6 +- modules/nf-core/meryl/unionsum/main.nf | 5 +- .../meryl/unionsum/meryl-unionsum.diff | 78 +++++ modules/nf-core/meryl/unionsum/meta.yml | 3 +- .../meryl/unionsum/tests/main.nf.test.snap | 6 +- modules/pfr/bwa/index/meta.yml | 1 + modules/pfr/bwa/index/tests/main.nf.test | 2 +- modules/pfr/bwa/index/tests/main.nf.test.snap | 10 +- modules/pfr/bwa/mem/environment.yml | 6 +- modules/pfr/bwa/mem/main.nf | 4 +- modules/pfr/bwa/mem/tests/main.nf.test | 45 ++- modules/pfr/bwa/mem/tests/main.nf.test.snap | 303 +++++------------- .../tests/main.nf.test.snap | 24 +- 19 files changed, 345 insertions(+), 283 deletions(-) create mode 100644 modules/nf-core/merqury/merqury.diff create mode 100644 modules/nf-core/meryl/count/meryl-count.diff create mode 100644 modules/nf-core/meryl/unionsum/meryl-unionsum.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index d9feb3ed..c340fc9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,14 +14,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 5. Added a custom `BUNDLELINKS` module which respects direction when bundling `DNADIFF` links [#82](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/82) 6. Added the ability to create linear synteny plot in addition to the circos plot [#74](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/74) 7. Updated modules and sub-workflows: `BWA/INDEX`, `BWA/MEM`, `CAT/CAT`, `CUSTOM/CHECKGFF3FASTACORRESPONDENCE`, `CUSTOM/RESTOREGFFIDS`, `CUSTOM/SHORTENFASTAIDS`, `GT/GFF3`, `GT/GFF3VALIDATOR`, `GT/STAT`, `LTRFINDER`, `LTRHARVEST`, `LTRRETRIEVER/LAI`, `LTRRETRIEVER/LTRRETRIEVER`, `SAMBLASTER`, `FASTA_LTRRETRIEVER_LAI`, `FASTQ_BWA_MEM_SAMBLASTER`, `GFF3_VALIDATE`, `CUSTOM/SRATOOLSNCBISETTINGS`, `FASTP`, `FASTQC`, `UNTAR`, `SEQKIT/SEQ`, `SEQKIT/SORT`, `FASTA_EXPLORE_SEARCH_PLOT_TIDK` -8. Locally bumped `bwa/index` version to `biocontainers/bwa:0.7.18--he4a0461_0` -9. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) -10. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) -11. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads -12. Added `MERQURY` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) -13. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` -14. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) -15. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) +8. Now the `contamination_stops_pipeline` flag allows the pipeline to continue if contamination is detected. It's default value is `true` [#54](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/54) +9. Now fasta ids are sorted in natural order for the HiC module [#76](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/76) +10. Now using `FASTQ_DOWNLOAD_PREFETCH_FASTERQDUMP_SRATOOLS` for SRA downloads +11. Added `MERQURY` module [#85](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/85) +12. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` +13. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) +14. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) +15. Locally patched `MERQURY`, `MERYL/COUNT` and `MERYL/UNIONSUM` ### `Fixed` diff --git a/modules.json b/modules.json index 188bf227..b60aa0ff 100644 --- a/modules.json +++ b/modules.json @@ -17,12 +17,12 @@ }, "bwa/index": { "branch": "main", - "git_sha": "10b046eaac396f279c08e7e2bb067482ccd9c74e", + "git_sha": "d158062346649b5d55bccef77f4bbd0468760aff", "installed_by": ["fastq_bwa_mem_samblaster"] }, "bwa/mem": { "branch": "main", - "git_sha": "26eca75b7373d582569353ed70817072f908b2da", + "git_sha": "d158062346649b5d55bccef77f4bbd0468760aff", "installed_by": ["fastq_bwa_mem_samblaster"] }, "cat/cat": { @@ -111,7 +111,7 @@ }, "fastq_bwa_mem_samblaster": { "branch": "main", - "git_sha": "258dbf212876e040e0049809ff0f9fc3f032b8d9", + "git_sha": "d158062346649b5d55bccef77f4bbd0468760aff", "installed_by": ["subworkflows"] }, "gff3_gt_gff3_gff3validator_stat": { @@ -158,17 +158,20 @@ "merqury": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/merqury/merqury.diff" }, "meryl/count": { "branch": "master", "git_sha": "c95215baf20e6d8cf2ae0e8411d03c5d9ef21d4a", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/meryl/count/meryl-count.diff" }, "meryl/unionsum": { "branch": "master", "git_sha": "b7f584e61c35c138a5717f837f4da9b838e290a7", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/meryl/unionsum/meryl-unionsum.diff" }, "seqkit/seq": { "branch": "master", diff --git a/modules/nf-core/merqury/merqury.diff b/modules/nf-core/merqury/merqury.diff new file mode 100644 index 00000000..d5ba84f6 --- /dev/null +++ b/modules/nf-core/merqury/merqury.diff @@ -0,0 +1,13 @@ +Changes in module 'nf-core/merqury' +--- modules/nf-core/merqury/main.nf ++++ modules/nf-core/merqury/main.nf +@@ -26,6 +26,7 @@ + tuple val(meta), path("${prefix}.qv") , emit: assembly_qv + tuple val(meta), path("${prefix}.*.qv") , emit: scaffold_qv + tuple val(meta), path("*.hist.ploidy") , emit: read_ploidy ++ tuple val(meta), path("*.hapmers.blob.png") , emit: hapmers_blob_png , optional: true + path "versions.yml" , emit: versions + + when: + +************************************************************ diff --git a/modules/nf-core/meryl/count/main.nf b/modules/nf-core/meryl/count/main.nf index 2f0518f3..0f1ff0af 100644 --- a/modules/nf-core/meryl/count/main.nf +++ b/modules/nf-core/meryl/count/main.nf @@ -12,8 +12,8 @@ process MERYL_COUNT { val kvalue output: - tuple val(meta), path("*.meryldb"), emit: meryl_db - path "versions.yml" , emit: versions + tuple val(meta), path("*.meryl") , emit: meryl_db + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -26,9 +26,10 @@ process MERYL_COUNT { meryl count \\ k=$kvalue \\ threads=$task.cpus \\ + memory=${task.memory.toGiga()} \\ $args \\ $reads \\ - output read.\${READ%.f*}.meryldb + output read.\${READ%.f*}.meryl done cat <<-END_VERSIONS > versions.yml @@ -42,7 +43,7 @@ process MERYL_COUNT { def prefix = task.ext.prefix ?: "${meta.id}" """ for READ in $reads; do - touch read.\${READ%.f*}.meryldb + touch read.\${READ%.f*}.meryl done cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/meryl/count/meryl-count.diff b/modules/nf-core/meryl/count/meryl-count.diff new file mode 100644 index 00000000..4bdabc19 --- /dev/null +++ b/modules/nf-core/meryl/count/meryl-count.diff @@ -0,0 +1,79 @@ +Changes in module 'nf-core/meryl/count' +--- modules/nf-core/meryl/count/meta.yml ++++ modules/nf-core/meryl/count/meta.yml +@@ -38,8 +38,9 @@ + - meryl_db: + type: directory + description: A Meryl k-mer database +- pattern: "*.meryldb" ++ pattern: "*.meryl" + authors: + - "@mahesh-panchal" + maintainers: + - "@mahesh-panchal" ++ - "@gallvp" + +--- modules/nf-core/meryl/count/main.nf ++++ modules/nf-core/meryl/count/main.nf +@@ -12,8 +12,8 @@ + val kvalue + + output: +- tuple val(meta), path("*.meryldb"), emit: meryl_db +- path "versions.yml" , emit: versions ++ tuple val(meta), path("*.meryl") , emit: meryl_db ++ path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when +@@ -26,9 +26,10 @@ + meryl count \\ + k=$kvalue \\ + threads=$task.cpus \\ ++ memory=${task.memory.toGiga()} \\ + $args \\ + $reads \\ +- output read.\${READ%.f*}.meryldb ++ output read.\${READ%.f*}.meryl + done + + cat <<-END_VERSIONS > versions.yml +@@ -42,7 +43,7 @@ + def prefix = task.ext.prefix ?: "${meta.id}" + """ + for READ in $reads; do +- touch read.\${READ%.f*}.meryldb ++ touch read.\${READ%.f*}.meryl + done + + cat <<-END_VERSIONS > versions.yml + +--- modules/nf-core/meryl/count/tests/main.nf.test.snap ++++ modules/nf-core/meryl/count/tests/main.nf.test.snap +@@ -303,7 +303,7 @@ + "id": "test", + "single_end": true + }, +- "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" ++ "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ +@@ -315,7 +315,7 @@ + "id": "test", + "single_end": true + }, +- "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" ++ "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ +@@ -327,6 +327,6 @@ + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, +- "timestamp": "2024-03-26T19:30:13.745468405" ++ "timestamp": "2024-05-22T12:27:16.300916" + } + } +************************************************************ diff --git a/modules/nf-core/meryl/count/meta.yml b/modules/nf-core/meryl/count/meta.yml index c9347c0c..809a32fe 100644 --- a/modules/nf-core/meryl/count/meta.yml +++ b/modules/nf-core/meryl/count/meta.yml @@ -38,8 +38,9 @@ output: - meryl_db: type: directory description: A Meryl k-mer database - pattern: "*.meryldb" + pattern: "*.meryl" authors: - "@mahesh-panchal" maintainers: - "@mahesh-panchal" + - "@gallvp" diff --git a/modules/nf-core/meryl/count/tests/main.nf.test.snap b/modules/nf-core/meryl/count/tests/main.nf.test.snap index da7c9f31..e0a20902 100644 --- a/modules/nf-core/meryl/count/tests/main.nf.test.snap +++ b/modules/nf-core/meryl/count/tests/main.nf.test.snap @@ -303,7 +303,7 @@ "id": "test", "single_end": true }, - "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ @@ -315,7 +315,7 @@ "id": "test", "single_end": true }, - "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ @@ -327,6 +327,6 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-26T19:30:13.745468405" + "timestamp": "2024-05-22T12:27:16.300916" } } \ No newline at end of file diff --git a/modules/nf-core/meryl/unionsum/main.nf b/modules/nf-core/meryl/unionsum/main.nf index 9800f605..bc2853b0 100644 --- a/modules/nf-core/meryl/unionsum/main.nf +++ b/modules/nf-core/meryl/unionsum/main.nf @@ -12,8 +12,8 @@ process MERYL_UNIONSUM { val kvalue output: - tuple val(meta), path("*.unionsum.meryl") , emit: meryl_db - path "versions.yml" , emit: versions + tuple val(meta), path("*.unionsum.meryl"), emit: meryl_db + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,6 +25,7 @@ process MERYL_UNIONSUM { meryl union-sum \\ k=$kvalue \\ threads=$task.cpus \\ + memory=${task.memory.toGiga()} \\ $args \\ output ${prefix}.unionsum.meryl \\ $meryl_dbs diff --git a/modules/nf-core/meryl/unionsum/meryl-unionsum.diff b/modules/nf-core/meryl/unionsum/meryl-unionsum.diff new file mode 100644 index 00000000..3a8058c1 --- /dev/null +++ b/modules/nf-core/meryl/unionsum/meryl-unionsum.diff @@ -0,0 +1,78 @@ +Changes in module 'nf-core/meryl/unionsum' +--- modules/nf-core/meryl/unionsum/meta.yml ++++ modules/nf-core/meryl/unionsum/meta.yml +@@ -36,8 +36,9 @@ + - meryl_db: + type: directory + description: A Meryl k-mer database that is the union sum of the input databases +- pattern: "*.unionsum.meryldb" ++ pattern: "*.unionsum.meryl" + authors: + - "@mahesh-panchal" + maintainers: + - "@mahesh-panchal" ++ - "@gallvp" + +--- modules/nf-core/meryl/unionsum/main.nf ++++ modules/nf-core/meryl/unionsum/main.nf +@@ -12,7 +12,7 @@ + val kvalue + + output: +- tuple val(meta), path("*.unionsum.meryldb"), emit: meryl_db ++ tuple val(meta), path("*.unionsum.meryl"), emit: meryl_db + path "versions.yml" , emit: versions + + when: +@@ -25,8 +25,9 @@ + meryl union-sum \\ + k=$kvalue \\ + threads=$task.cpus \\ ++ memory=${task.memory.toGiga()} \\ + $args \\ +- output ${prefix}.unionsum.meryldb \\ ++ output ${prefix}.unionsum.meryl \\ + $meryl_dbs + + cat <<-END_VERSIONS > versions.yml +@@ -39,7 +40,7 @@ + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ +- touch ${prefix}.unionsum.meryldb ++ touch ${prefix}.unionsum.meryl + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + +--- modules/nf-core/meryl/unionsum/tests/main.nf.test.snap ++++ modules/nf-core/meryl/unionsum/tests/main.nf.test.snap +@@ -8,7 +8,7 @@ + "id": "test", + "single_end": true + }, +- "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" ++ "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ +@@ -20,7 +20,7 @@ + "id": "test", + "single_end": true + }, +- "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" ++ "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ +@@ -32,7 +32,7 @@ + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, +- "timestamp": "2024-03-27T10:19:52.291287389" ++ "timestamp": "2024-05-22T12:40:21.306142" + }, + "sarscov2 - fastq - single_end": { + "content": [ + +************************************************************ diff --git a/modules/nf-core/meryl/unionsum/meta.yml b/modules/nf-core/meryl/unionsum/meta.yml index 3bb01250..77d0784c 100644 --- a/modules/nf-core/meryl/unionsum/meta.yml +++ b/modules/nf-core/meryl/unionsum/meta.yml @@ -36,8 +36,9 @@ output: - meryl_db: type: directory description: A Meryl k-mer database that is the union sum of the input databases - pattern: "*.unionsum.meryldb" + pattern: "*.unionsum.meryl" authors: - "@mahesh-panchal" maintainers: - "@mahesh-panchal" + - "@gallvp" diff --git a/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap b/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap index 522a52c9..a6ed4c73 100644 --- a/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap +++ b/modules/nf-core/meryl/unionsum/tests/main.nf.test.snap @@ -8,7 +8,7 @@ "id": "test", "single_end": true }, - "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "1": [ @@ -20,7 +20,7 @@ "id": "test", "single_end": true }, - "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "versions": [ @@ -32,7 +32,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-27T10:19:52.291287389" + "timestamp": "2024-05-22T12:40:21.306142" }, "sarscov2 - fastq - single_end": { "content": [ diff --git a/modules/pfr/bwa/index/meta.yml b/modules/pfr/bwa/index/meta.yml index 730628d0..4c7d30f3 100644 --- a/modules/pfr/bwa/index/meta.yml +++ b/modules/pfr/bwa/index/meta.yml @@ -43,3 +43,4 @@ authors: maintainers: - "@drpatelh" - "@maxulysse" + - "@gallvp" diff --git a/modules/pfr/bwa/index/tests/main.nf.test b/modules/pfr/bwa/index/tests/main.nf.test index b0d2c726..af33e73c 100644 --- a/modules/pfr/bwa/index/tests/main.nf.test +++ b/modules/pfr/bwa/index/tests/main.nf.test @@ -30,4 +30,4 @@ nextflow_process { } -} \ No newline at end of file +} diff --git a/modules/pfr/bwa/index/tests/main.nf.test.snap b/modules/pfr/bwa/index/tests/main.nf.test.snap index e51ad5bf..7c8f0465 100644 --- a/modules/pfr/bwa/index/tests/main.nf.test.snap +++ b/modules/pfr/bwa/index/tests/main.nf.test.snap @@ -17,7 +17,7 @@ ] ], "1": [ - "versions.yml:md5,0f20525da90e7489a7ebb02adca3265f" + "versions.yml:md5,a64462ac7dfb21f4ade9b02e7f65c5bb" ], "index": [ [ @@ -34,10 +34,14 @@ ] ], "versions": [ - "versions.yml:md5,0f20525da90e7489a7ebb02adca3265f" + "versions.yml:md5,a64462ac7dfb21f4ade9b02e7f65c5bb" ] } ], - "timestamp": "2023-10-17T17:20:20.180927714" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-16T11:40:09.925307" } } \ No newline at end of file diff --git a/modules/pfr/bwa/mem/environment.yml b/modules/pfr/bwa/mem/environment.yml index 3f136d0a..3aa9f0cc 100644 --- a/modules/pfr/bwa/mem/environment.yml +++ b/modules/pfr/bwa/mem/environment.yml @@ -4,7 +4,7 @@ channels: - bioconda - defaults dependencies: - - bwa=0.7.17 + - bwa=0.7.18 # renovate: datasource=conda depName=bioconda/samtools - - samtools=1.19.2 - - htslib=1.19.1 + - samtools=1.20 + - htslib=1.20.0 diff --git a/modules/pfr/bwa/mem/main.nf b/modules/pfr/bwa/mem/main.nf index d8bd2815..9c815f0c 100644 --- a/modules/pfr/bwa/mem/main.nf +++ b/modules/pfr/bwa/mem/main.nf @@ -4,8 +4,8 @@ process BWA_MEM { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:a34558545ae1413d94bde4578787ebef08027945-0' : - 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:a34558545ae1413d94bde4578787ebef08027945-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:1bd8542a8a0b42e0981337910954371d0230828e-0' : + 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:1bd8542a8a0b42e0981337910954371d0230828e-0' }" input: tuple val(meta) , path(reads) diff --git a/modules/pfr/bwa/mem/tests/main.nf.test b/modules/pfr/bwa/mem/tests/main.nf.test index 1fa9b56d..463b76f8 100644 --- a/modules/pfr/bwa/mem/tests/main.nf.test +++ b/modules/pfr/bwa/mem/tests/main.nf.test @@ -44,7 +44,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.cram, + process.out.csi, + process.out.crai, + process.out.versions, + file(process.out.bam[0][1]).name + ).match() + } ) } @@ -85,7 +92,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.cram, + process.out.csi, + process.out.crai, + process.out.versions, + file(process.out.bam[0][1]).name + ).match() + } ) } @@ -127,7 +141,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.cram, + process.out.csi, + process.out.crai, + process.out.versions, + file(process.out.bam[0][1]).name + ).match() + } ) } @@ -169,7 +190,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.cram, + process.out.csi, + process.out.crai, + process.out.versions, + file(process.out.bam[0][1]).name + ).match() + } ) } @@ -211,7 +239,14 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.cram, + process.out.csi, + process.out.crai, + process.out.versions, + file(process.out.bam[0][1]).name + ).match() + } ) } diff --git a/modules/pfr/bwa/mem/tests/main.nf.test.snap b/modules/pfr/bwa/mem/tests/main.nf.test.snap index 0d1bdb41..038ee7b7 100644 --- a/modules/pfr/bwa/mem/tests/main.nf.test.snap +++ b/modules/pfr/bwa/mem/tests/main.nf.test.snap @@ -1,295 +1,140 @@ { "Single-End": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,a74710a0345b4717bb4431bf9c257120" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "4": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ], - "bam": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,a74710a0345b4717bb4431bf9c257120" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - - ], - "versions": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ] - } + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" + ], + "test.bam" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-14T14:14:56.820798254" + "timestamp": "2024-05-20T08:44:32.953673185" }, "Single-End Sort": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,cb1e038bc4d990683fa485d632550b54" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "4": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ], - "bam": [ - [ - { - "id": "test", - "single_end": true - }, - "test.bam:md5,cb1e038bc4d990683fa485d632550b54" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - - ], - "versions": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ] - } + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" + ], + "test.bam" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-14T14:15:20.271428534" + "timestamp": "2024-05-20T08:44:45.27066093" }, "Paired-End": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,aea123a3828a99da1906126355f15a12" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "4": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ], - "bam": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,aea123a3828a99da1906126355f15a12" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - - ], - "versions": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ] - } + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" + ], + "test.bam" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-14T14:15:38.264256823" + "timestamp": "2024-05-20T08:44:57.706852274" }, "Paired-End Sort": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,4682087bcdc3617384b375093fecd8dd" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "4": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ], - "bam": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,4682087bcdc3617384b375093fecd8dd" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - - ], - "versions": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ] - } + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" + ], + "test.bam" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-14T14:16:00.528642686" + "timestamp": "2024-05-20T08:45:10.376505036" }, "Single-end - stub": { "content": [ "test.bam", "test.csi", [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-15T09:50:33.238543011" + "timestamp": "2024-05-20T08:46:07.182072398" }, "Paired-End - no fasta": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,aea123a3828a99da1906126355f15a12" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - - ], - "4": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ], - "bam": [ - [ - { - "id": "test", - "single_end": false - }, - "test.bam:md5,aea123a3828a99da1906126355f15a12" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - - ], - "versions": [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" - ] - } + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" + ], + "test.bam" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-14T14:40:16.345342005" + "timestamp": "2024-05-20T08:45:53.813076501" }, "Paired-end - stub": { "content": [ "test.bam", "test.csi", [ - "versions.yml:md5,c32f719a68bb2966c8511d808154d42d" + "versions.yml:md5,478b816fbd37871f5e8c617833d51d80" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-15T09:50:42.268673302" + "timestamp": "2024-05-20T08:46:18.412916364" } } \ No newline at end of file diff --git a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap index 83f6bc6d..a2b24322 100644 --- a/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap +++ b/subworkflows/pfr/fastq_bwa_mem_samblaster/tests/main.nf.test.snap @@ -8,13 +8,13 @@ "id": "test", "ref_id": "genome" }, - "test.on.genome.samblaster.bam:md5,8c47b2669f5250ad2d24365b42566d78" + "test.on.genome.samblaster.bam:md5,38ade4c8ae74d49a197286e09a6cb3ad" ] ], "1": [ "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", - "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", - "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + "versions.yml:md5,80949a94ee1be8238b1c79d89ed9fa83", + "versions.yml:md5,ddd810edeee1008ec55b628e3a9d6204" ], "bam": [ [ @@ -22,13 +22,13 @@ "id": "test", "ref_id": "genome" }, - "test.on.genome.samblaster.bam:md5,8c47b2669f5250ad2d24365b42566d78" + "test.on.genome.samblaster.bam:md5,38ade4c8ae74d49a197286e09a6cb3ad" ] ], "versions": [ "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", - "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", - "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + "versions.yml:md5,80949a94ee1be8238b1c79d89ed9fa83", + "versions.yml:md5,ddd810edeee1008ec55b628e3a9d6204" ] } ], @@ -36,7 +36,7 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-05-03T15:58:33.221762" + "timestamp": "2024-05-22T15:55:44.323082" }, "sarscov2-fq-gz-stub": { "content": [ @@ -52,8 +52,8 @@ ], "1": [ "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", - "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", - "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + "versions.yml:md5,80949a94ee1be8238b1c79d89ed9fa83", + "versions.yml:md5,ddd810edeee1008ec55b628e3a9d6204" ], "bam": [ [ @@ -66,8 +66,8 @@ ], "versions": [ "versions.yml:md5,3b59736950270bca59c29afeb5289b4f", - "versions.yml:md5,46f2d5384c2b4c6111293bc8642cc43a", - "versions.yml:md5,6a2baa7f2d1d555fe604e451624f414b" + "versions.yml:md5,80949a94ee1be8238b1c79d89ed9fa83", + "versions.yml:md5,ddd810edeee1008ec55b628e3a9d6204" ] } ], @@ -75,6 +75,6 @@ "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-05-03T16:03:28.825915" + "timestamp": "2024-05-22T15:55:50.527259" } } \ No newline at end of file From eb3cf6fcc3ebf8d77fa6f988aa98570069cc21ec Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 22 May 2024 16:45:01 +1200 Subject: [PATCH 49/76] Added stub to merqury --- modules/nf-core/merqury/main.nf | 26 +++++++++++++++++++++++ modules/nf-core/merqury/merqury.diff | 31 ++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/modules/nf-core/merqury/main.nf b/modules/nf-core/merqury/main.nf index 196b0dfc..0e0d4369 100644 --- a/modules/nf-core/merqury/main.nf +++ b/modules/nf-core/merqury/main.nf @@ -57,4 +57,30 @@ process MERQURY { merqury: $VERSION END_VERSIONS """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = 1.3 + """ + touch ${prefix}_only.bed + touch ${prefix}_only.wig + touch ${prefix}.completeness.stats + touch ${prefix}.dist_only.hist + touch ${prefix}.spectra-cn.fl.png + touch ${prefix}.spectra-cn.hist + touch ${prefix}.spectra-cn.ln.png + touch ${prefix}.spectra-cn.st.png + touch ${prefix}.spectra-asm.fl.png + touch ${prefix}.spectra-asm.hist + touch ${prefix}.spectra-asm.ln.png + touch ${prefix}.spectra-asm.st.png + touch ${prefix}.qv + touch ${prefix}.${prefix}.qv + touch ${prefix}.hist.ploidy + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + merqury: $VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/merqury/merqury.diff b/modules/nf-core/merqury/merqury.diff index d5ba84f6..e97121d7 100644 --- a/modules/nf-core/merqury/merqury.diff +++ b/modules/nf-core/merqury/merqury.diff @@ -9,5 +9,36 @@ Changes in module 'nf-core/merqury' path "versions.yml" , emit: versions when: +@@ -56,4 +57,30 @@ + merqury: $VERSION + END_VERSIONS + """ ++ ++ stub: ++ prefix = task.ext.prefix ?: "${meta.id}" ++ def VERSION = 1.3 ++ """ ++ touch ${prefix}_only.bed ++ touch ${prefix}_only.wig ++ touch ${prefix}.completeness.stats ++ touch ${prefix}.dist_only.hist ++ touch ${prefix}.spectra-cn.fl.png ++ touch ${prefix}.spectra-cn.hist ++ touch ${prefix}.spectra-cn.ln.png ++ touch ${prefix}.spectra-cn.st.png ++ touch ${prefix}.spectra-asm.fl.png ++ touch ${prefix}.spectra-asm.hist ++ touch ${prefix}.spectra-asm.ln.png ++ touch ${prefix}.spectra-asm.st.png ++ touch ${prefix}.qv ++ touch ${prefix}.${prefix}.qv ++ touch ${prefix}.hist.ploidy ++ ++ cat <<-END_VERSIONS > versions.yml ++ "${task.process}": ++ merqury: $VERSION ++ END_VERSIONS ++ """ + } ************************************************************ From 5ff445846b4595bbc3a4c735cb47dfa9cceef289 Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Wed, 22 May 2024 22:13:19 +1200 Subject: [PATCH 50/76] Updated docs and removed meryl patches --- CHANGELOG.md | 2 +- docs/output.md | 7 +- docs/usage.md | 2 + modules.json | 10 +-- modules/nf-core/meryl/count/meryl-count.diff | 79 ------------------- .../meryl/unionsum/meryl-unionsum.diff | 78 ------------------ 6 files changed, 9 insertions(+), 169 deletions(-) delete mode 100644 modules/nf-core/meryl/count/meryl-count.diff delete mode 100644 modules/nf-core/meryl/unionsum/meryl-unionsum.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index c340fc9e..7f7c1b0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 12. Replaced `GFF3_VALIDATE` sub-workflow with `GFF3_GT_GFF3_GFF3VALIDATOR_STAT` 13. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) 14. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) -15. Locally patched `MERQURY`, `MERYL/COUNT` and `MERYL/UNIONSUM` +15. Locally patched `MERQURY` ### `Fixed` diff --git a/docs/output.md b/docs/output.md index 15ee0559..8362c9c7 100644 --- a/docs/output.md +++ b/docs/output.md @@ -210,11 +210,8 @@ Hi-C contact mapping experiments measure the frequency of physical contact betwe Output files - `merqury/` - - `tag1-and-tag2`: Results folder for haplotype `tag1` and `tag2`. - - `*.completeness.stats`: Assembly completeness statistics - - `*.qv`: Assembly consensus quality QV statistics - - `*.*.spectra-cn.fl.png`: Spectra-cn plot - + - `tag1-and-tag2`: Results folder for haplotype `tag1` and `tag2`. - `*.completeness.stats`: Assembly completeness statistics - `*.qv`: Assembly consensus quality QV statistics - `*.fl.png`: Spectra plots - `*.hapmers.blob.png`: Hap-mer blob plot + [MERQURY](https://github.com/marbl/merqury) is used for the k-mer analysis. diff --git a/docs/usage.md b/docs/usage.md index 1d803b63..ca71fab5 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -103,6 +103,8 @@ See following assemblysheet examples for MERQURY analysis. - [assemblysheet - phased2x](../tests/merqury/phased2x/assemblysheet.csv) - [assemblysheet - phased2x with parent reads](../tests/merqury/phased2x.mp/assemblysheet.csv) +The data for these examples comes from: [umd.edu](https://obj.umiacs.umd.edu/marbl_publications/triobinning/index.html) + #### Parameters - `merqury_kmer_length`: kmer length for merqury analysis diff --git a/modules.json b/modules.json index b60aa0ff..8d914f44 100644 --- a/modules.json +++ b/modules.json @@ -163,15 +163,13 @@ }, "meryl/count": { "branch": "master", - "git_sha": "c95215baf20e6d8cf2ae0e8411d03c5d9ef21d4a", - "installed_by": ["modules"], - "patch": "modules/nf-core/meryl/count/meryl-count.diff" + "git_sha": "1c72d95476a2edf92ee4f08dc4321b3c50cd3c13", + "installed_by": ["modules"] }, "meryl/unionsum": { "branch": "master", - "git_sha": "b7f584e61c35c138a5717f837f4da9b838e290a7", - "installed_by": ["modules"], - "patch": "modules/nf-core/meryl/unionsum/meryl-unionsum.diff" + "git_sha": "1c72d95476a2edf92ee4f08dc4321b3c50cd3c13", + "installed_by": ["modules"] }, "seqkit/seq": { "branch": "master", diff --git a/modules/nf-core/meryl/count/meryl-count.diff b/modules/nf-core/meryl/count/meryl-count.diff deleted file mode 100644 index 4bdabc19..00000000 --- a/modules/nf-core/meryl/count/meryl-count.diff +++ /dev/null @@ -1,79 +0,0 @@ -Changes in module 'nf-core/meryl/count' ---- modules/nf-core/meryl/count/meta.yml -+++ modules/nf-core/meryl/count/meta.yml -@@ -38,8 +38,9 @@ - - meryl_db: - type: directory - description: A Meryl k-mer database -- pattern: "*.meryldb" -+ pattern: "*.meryl" - authors: - - "@mahesh-panchal" - maintainers: - - "@mahesh-panchal" -+ - "@gallvp" - ---- modules/nf-core/meryl/count/main.nf -+++ modules/nf-core/meryl/count/main.nf -@@ -12,8 +12,8 @@ - val kvalue - - output: -- tuple val(meta), path("*.meryldb"), emit: meryl_db -- path "versions.yml" , emit: versions -+ tuple val(meta), path("*.meryl") , emit: meryl_db -+ path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when -@@ -26,9 +26,10 @@ - meryl count \\ - k=$kvalue \\ - threads=$task.cpus \\ -+ memory=${task.memory.toGiga()} \\ - $args \\ - $reads \\ -- output read.\${READ%.f*}.meryldb -+ output read.\${READ%.f*}.meryl - done - - cat <<-END_VERSIONS > versions.yml -@@ -42,7 +43,7 @@ - def prefix = task.ext.prefix ?: "${meta.id}" - """ - for READ in $reads; do -- touch read.\${READ%.f*}.meryldb -+ touch read.\${READ%.f*}.meryl - done - - cat <<-END_VERSIONS > versions.yml - ---- modules/nf-core/meryl/count/tests/main.nf.test.snap -+++ modules/nf-core/meryl/count/tests/main.nf.test.snap -@@ -303,7 +303,7 @@ - "id": "test", - "single_end": true - }, -- "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" -+ "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ -@@ -315,7 +315,7 @@ - "id": "test", - "single_end": true - }, -- "read.test1_1.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" -+ "read.test1_1.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ -@@ -327,6 +327,6 @@ - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, -- "timestamp": "2024-03-26T19:30:13.745468405" -+ "timestamp": "2024-05-22T12:27:16.300916" - } - } -************************************************************ diff --git a/modules/nf-core/meryl/unionsum/meryl-unionsum.diff b/modules/nf-core/meryl/unionsum/meryl-unionsum.diff deleted file mode 100644 index 3a8058c1..00000000 --- a/modules/nf-core/meryl/unionsum/meryl-unionsum.diff +++ /dev/null @@ -1,78 +0,0 @@ -Changes in module 'nf-core/meryl/unionsum' ---- modules/nf-core/meryl/unionsum/meta.yml -+++ modules/nf-core/meryl/unionsum/meta.yml -@@ -36,8 +36,9 @@ - - meryl_db: - type: directory - description: A Meryl k-mer database that is the union sum of the input databases -- pattern: "*.unionsum.meryldb" -+ pattern: "*.unionsum.meryl" - authors: - - "@mahesh-panchal" - maintainers: - - "@mahesh-panchal" -+ - "@gallvp" - ---- modules/nf-core/meryl/unionsum/main.nf -+++ modules/nf-core/meryl/unionsum/main.nf -@@ -12,7 +12,7 @@ - val kvalue - - output: -- tuple val(meta), path("*.unionsum.meryldb"), emit: meryl_db -+ tuple val(meta), path("*.unionsum.meryl"), emit: meryl_db - path "versions.yml" , emit: versions - - when: -@@ -25,8 +25,9 @@ - meryl union-sum \\ - k=$kvalue \\ - threads=$task.cpus \\ -+ memory=${task.memory.toGiga()} \\ - $args \\ -- output ${prefix}.unionsum.meryldb \\ -+ output ${prefix}.unionsum.meryl \\ - $meryl_dbs - - cat <<-END_VERSIONS > versions.yml -@@ -39,7 +40,7 @@ - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - """ -- touch ${prefix}.unionsum.meryldb -+ touch ${prefix}.unionsum.meryl - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - ---- modules/nf-core/meryl/unionsum/tests/main.nf.test.snap -+++ modules/nf-core/meryl/unionsum/tests/main.nf.test.snap -@@ -8,7 +8,7 @@ - "id": "test", - "single_end": true - }, -- "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" -+ "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ -@@ -20,7 +20,7 @@ - "id": "test", - "single_end": true - }, -- "test.unionsum.meryldb:md5,d41d8cd98f00b204e9800998ecf8427e" -+ "test.unionsum.meryl:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ -@@ -32,7 +32,7 @@ - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, -- "timestamp": "2024-03-27T10:19:52.291287389" -+ "timestamp": "2024-05-22T12:40:21.306142" - }, - "sarscov2 - fastq - single_end": { - "content": [ - -************************************************************ From c955ad40b2ca543531887fce35fa2f37e82e7b3a Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Mon, 27 May 2024 17:28:42 +1200 Subject: [PATCH 51/76] Added plotsr --- CHANGELOG.md | 3 + CITATIONS.md | 12 ++ README.md | 21 +- assets/xrefsheet.csv | 1 + bin/report_modules/parsers/synteny_parser.py | 118 ++++++++++- bin/report_modules/templates/base.html | 16 +- .../synteny_circos/synteny_circos.html | 4 +- .../templates/synteny_dotplot/dropdown.html | 10 + .../report_contents.html | 12 +- .../synteny_linear.html | 8 +- .../templates/synteny_linear/dropdown.html | 10 - .../synteny_plotsr/report_contents.html | 24 +++ .../synteny_plotsr/synteny_plotsr.html | 36 ++++ conf/modules.config | 24 +++ conf/test_full.config | 2 + docs/images/plotsr.png | Bin 0 -> 52708 bytes docs/output.md | 21 +- docs/parameters.md | 39 ++-- docs/usage.md | 35 +-- modules.json | 20 ++ .../nf-core/minimap2/align/environment.yml | 9 + modules/nf-core/minimap2/align/main.nf | 63 ++++++ modules/nf-core/minimap2/align/meta.yml | 75 +++++++ .../nf-core/minimap2/align/tests/main.nf.test | 181 ++++++++++++++++ .../minimap2/align/tests/main.nf.test.snap | 69 ++++++ modules/nf-core/minimap2/align/tests/tags.yml | 2 + .../pfr/custom/relabelfasta/environment.yml | 10 + modules/pfr/custom/relabelfasta/main.nf | 40 ++++ modules/pfr/custom/relabelfasta/meta.yml | 56 +++++ .../relabelfasta/templates/relabelfasta.py | 92 ++++++++ .../custom/relabelfasta/tests/main.nf.test | 153 ++++++++++++++ .../relabelfasta/tests/main.nf.test.snap | 68 ++++++ .../pfr/custom/relabelfasta/tests/tags.yml | 2 + modules/pfr/plotsr/environment.yml | 9 + modules/pfr/plotsr/main.nf | 91 ++++++++ modules/pfr/plotsr/meta.yml | 79 +++++++ modules/pfr/plotsr/tests/main.nf.test | 121 +++++++++++ modules/pfr/plotsr/tests/main.nf.test.snap | 26 +++ modules/pfr/plotsr/tests/nextflow.config | 5 + modules/pfr/plotsr/tests/tags.yml | 2 + modules/pfr/syri/environment.yml | 9 + modules/pfr/syri/main.nf | 60 ++++++ modules/pfr/syri/meta.yml | 64 ++++++ modules/pfr/syri/tests/main.nf.test | 80 +++++++ modules/pfr/syri/tests/main.nf.test.snap | 80 +++++++ modules/pfr/syri/tests/nextflow.config | 5 + modules/pfr/syri/tests/tags.yml | 2 + nextflow.config | 14 +- nextflow_schema.json | 100 ++++++--- pfr/params.json | 8 +- subworkflows/local/fasta_synteny.nf | 199 ++++++++++++++++-- workflows/assemblyqc.nf | 22 +- 52 files changed, 2063 insertions(+), 149 deletions(-) create mode 100644 bin/report_modules/templates/synteny_dotplot/dropdown.html rename bin/report_modules/templates/{synteny_linear => synteny_dotplot}/report_contents.html (55%) rename bin/report_modules/templates/{synteny_linear => synteny_dotplot}/synteny_linear.html (80%) delete mode 100644 bin/report_modules/templates/synteny_linear/dropdown.html create mode 100644 bin/report_modules/templates/synteny_plotsr/report_contents.html create mode 100644 bin/report_modules/templates/synteny_plotsr/synteny_plotsr.html create mode 100644 docs/images/plotsr.png create mode 100644 modules/nf-core/minimap2/align/environment.yml create mode 100644 modules/nf-core/minimap2/align/main.nf create mode 100644 modules/nf-core/minimap2/align/meta.yml create mode 100644 modules/nf-core/minimap2/align/tests/main.nf.test create mode 100644 modules/nf-core/minimap2/align/tests/main.nf.test.snap create mode 100644 modules/nf-core/minimap2/align/tests/tags.yml create mode 100644 modules/pfr/custom/relabelfasta/environment.yml create mode 100644 modules/pfr/custom/relabelfasta/main.nf create mode 100644 modules/pfr/custom/relabelfasta/meta.yml create mode 100755 modules/pfr/custom/relabelfasta/templates/relabelfasta.py create mode 100644 modules/pfr/custom/relabelfasta/tests/main.nf.test create mode 100644 modules/pfr/custom/relabelfasta/tests/main.nf.test.snap create mode 100644 modules/pfr/custom/relabelfasta/tests/tags.yml create mode 100644 modules/pfr/plotsr/environment.yml create mode 100644 modules/pfr/plotsr/main.nf create mode 100644 modules/pfr/plotsr/meta.yml create mode 100644 modules/pfr/plotsr/tests/main.nf.test create mode 100644 modules/pfr/plotsr/tests/main.nf.test.snap create mode 100644 modules/pfr/plotsr/tests/nextflow.config create mode 100644 modules/pfr/plotsr/tests/tags.yml create mode 100644 modules/pfr/syri/environment.yml create mode 100644 modules/pfr/syri/main.nf create mode 100644 modules/pfr/syri/meta.yml create mode 100644 modules/pfr/syri/tests/main.nf.test create mode 100644 modules/pfr/syri/tests/main.nf.test.snap create mode 100644 modules/pfr/syri/tests/nextflow.config create mode 100644 modules/pfr/syri/tests/tags.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f7c1b0f..9179f33a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 13. Replaced local `BUSCO` module with `FASTA_GXF_BUSCO_PLOT` sub-workflow [#75](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/75) 14. Replaced local `NCBI_FCS_ADAPTOR` with nf-core module and updated to 0.5.0 which includes additional adaptors for PacBio and Nanopore technologies [#55](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/55) 15. Locally patched `MERQURY` +16. Added PLOTSR [#77](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/77) +17. Added [JADWOS01](https://www.ncbi.nlm.nih.gov/datasets/genome/GCA_016859245.1/) assembly to xrefsheet for successfully running PLOTSR. ### `Fixed` @@ -33,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 6. `RUNASSEMBLYVISUALIZER` is now single threaded for successful execution on both Linux and MacOS 7. Fixed java memory overflow issues in `RUNASSEMBLYVISUALIZER` 8. Updated `FASTA_LTRRETRIEVER_LAI` to fix a pipeline crash when `ch_monoploid_seqs` was `[ meta, [] ]` [#83](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/83) +9. Improved input assembly documentation [#86](https://github.com/Plant-Food-Research-Open/assemblyqc/issues/86) ### `Dependencies` diff --git a/CITATIONS.md b/CITATIONS.md index 6ee2a4f5..fbd8036d 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -116,6 +116,18 @@ > Marçais G, Delcher AL, Phillippy AM, Coston R, Salzberg SL, Zimin A. 2018. MUMmer4: A fast and versatile genome alignment system. PLoS Comput Biol. 2018 Jan 26;14(1):e1005944. doi: . PMID: 29373581; PMCID: PMC5802927. +- PLOTSR, [MIT](https://github.com/schneebergerlab/plotsr/blob/master/LICENSE) + + > Goel M, Schneeberger K. 2022. plotsr: visualizing structural similarities and rearrangements between multiple genomes. Bioinformatics. 2022 May 13;38(10):2922-2926. doi: . PMID: 35561173; PMCID: PMC9113368. + +- SYRI, [MIT](https://github.com/schneebergerlab/syri/blob/master/LICENSE) + + > Goel M, Sun H, Jiao WB, Schneeberger K. 2019. SyRI: finding genomic rearrangements and local sequence differences from whole-genome assemblies. Genome Biol. 2019 Dec 16;20(1):277. doi: . PMID: 31842948; PMCID: PMC6913012. + +- MINIMAP2, [MIT](https://github.com/lh3/minimap2/blob/master/LICENSE.txt) + + > Li H. 2021. New strategies to improve minimap2 alignment accuracy, Bioinformatics, Volume 37, Issue 23, December 2021, Pages 4572–4574, doi: + - MERQURY, [United States Government Work](https://github.com/marbl/merqury?tab=License-1-ov-file#readme) > Rhie, A., Walenz, B.P., Koren, S. et al. 2020. Merqury: reference-free quality, completeness, and phasing assessment for genome assemblies. Genome Biol 21, 245. doi: diff --git a/README.md b/README.md index 30ec1d32..60b05536 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,11 @@ ## Pipeline Flowchart ```mermaid +%%{init: { + "themeVariables": { + "fontSize": "52px" + } +}}%% flowchart LR forEachTag(For each\nAssembly) --> VALIDATE_FORMAT[VALIDATE FORMAT] @@ -36,9 +41,15 @@ flowchart LR Run --> LAI Run --> KRAKEN2 Run --> HIC_CONTACT_MAP[HIC CONTACT MAP] - Run --> SYNTENY + Run --> MUMMER + Run --> MINIMAP2 Run --> MERQURY + MUMMER --> CIRCOS + MUMMER --> DOTPLOT + + MINIMAP2 --> PLOTSR + ASS_STATS --> REPORT GFF_STATS --> REPORT BUSCO --> REPORT @@ -46,7 +57,9 @@ flowchart LR LAI --> REPORT KRAKEN2 --> REPORT HIC_CONTACT_MAP --> REPORT - SYNTENY --> REPORT + CIRCOS --> REPORT + DOTPLOT --> REPORT + PLOTSR --> REPORT MERQURY --> REPORT ``` @@ -61,7 +74,7 @@ flowchart LR - [LAI](https://github.com/oushujun/LTR_retriever/blob/master/LAI): Continuity of repetitive sequences - [KRAKEN2](https://github.com/DerrickWood/kraken2): Taxonomy classification - [HIC CONTACT MAP](https://github.com/igvteam/juicebox.js): Alignment and visualisation of HiC data -- SYNTENY: Synteny analysis using [MUMMER](https://github.com/mummer4/mummer), [CIRCOS](http://circos.ca/documentation/) and [PLOTLY](https://plotly.com) +- [MUMMER](https://github.com/mummer4/mummer) → [CIRCOS](http://circos.ca/documentation/) + [DOTPLOT](https://plotly.com) & [MINIMAP2](https://github.com/lh3/minimap2) → [PLOTSR](https://github.com/schneebergerlab/plotsr): Synteny analysis - [MERQURY](https://github.com/marbl/merqury): K-mer completeness, consensus quality and phasing assessment ## Usage @@ -105,7 +118,9 @@ We thank the following people for their extensive assistance in the development - Cecilia Deng [@CeciliaDeng](https://github.com/CeciliaDeng) - Chen Wu [@christinawu2008](https://github.com/christinawu2008) +- Ignacio Carvajal [@ignacio3437](https://github.com/ignacio3437) - Jason Shiller [@jasonshiller](https://github.com/jasonshiller) +- Mahesh Binzer-Panchal [@mahesh-panchal](https://github.com/mahesh-panchal) - Marcus Davy [@mdavy86](https://github.com/mdavy86) - Ross Crowhurst [@rosscrowhurst](https://github.com/rosscrowhurst) - Sarah Bailey [@SarahBailey1998](https://github.com/SarahBailey1998) diff --git a/assets/xrefsheet.csv b/assets/xrefsheet.csv index 5c218707..e945d3e4 100644 --- a/assets/xrefsheet.csv +++ b/assets/xrefsheet.csv @@ -1,2 +1,3 @@ tag,fasta,synteny_labels TT_2021a,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/021/950/295/GCA_021950295.1_ASM2195029v1/GCA_021950295.1_ASM2195029v1_genomic.fna.gz,https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/tests/stub/TT_2021a.seq.labels.tsv +JAD,https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/016/859/245/GCA_016859245.1_ASM1685924v1/GCA_016859245.1_ASM1685924v1_genomic.fna.gz,https://raw.githubusercontent.com/plant-food-research-open/assemblyqc/dev/tests/stub/JAD.seq.labels.tsv diff --git a/bin/report_modules/parsers/synteny_parser.py b/bin/report_modules/parsers/synteny_parser.py index 0f871114..d25d82e9 100644 --- a/bin/report_modules/parsers/synteny_parser.py +++ b/bin/report_modules/parsers/synteny_parser.py @@ -1,6 +1,8 @@ -import os +from tabulate import tabulate from pathlib import Path +import pandas as pd import base64 +import os import re from report_modules.parsers.parsing_commons import sort_list_of_results @@ -18,9 +20,14 @@ def parse_synteny_circos(folder_name="synteny_outputs"): data = {"SYNTENY_CIRCOS": []} for plot_path in list_of_plot_files: + base_name = os.path.basename(str(plot_path)) + + if base_name == "plotsr.png": + continue + file_tokens = re.findall( r"([\w]+).on.([\w]+).([\w]+).png", - os.path.basename(str(plot_path)), + base_name, )[0] if os.path.getsize(plot_path) == 0: @@ -54,7 +61,7 @@ def parse_synteny_circos(folder_name="synteny_outputs"): } -def parse_synteny_linear(folder_name="synteny_outputs"): +def parse_synteny_dotplot(folder_name="synteny_outputs"): dir = os.getcwdb().decode() circos_folder_path = Path(f"{dir}/{folder_name}") @@ -63,7 +70,7 @@ def parse_synteny_linear(folder_name="synteny_outputs"): list_of_plot_files = [item for item in circos_folder_path.glob("*.html")] - data = {"SYNTENY_LINEAR": []} + data = {"SYNTENY_DOTPLOT": []} for plot_path in list_of_plot_files: file_tokens = re.findall( @@ -72,7 +79,7 @@ def parse_synteny_linear(folder_name="synteny_outputs"): )[0] if os.path.getsize(plot_path) == 0: - data["SYNTENY_LINEAR"].append( + data["SYNTENY_DOTPLOT"].append( { "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", "plot": "", @@ -84,7 +91,7 @@ def parse_synteny_linear(folder_name="synteny_outputs"): plot_filename = os.path.basename(str(plot_path)) - data["SYNTENY_LINEAR"].append( + data["SYNTENY_DOTPLOT"].append( { "tag.on.tag": f"{file_tokens[0]} : {file_tokens[1]} : {file_tokens[2]}", "plot": plot_filename, @@ -93,16 +100,107 @@ def parse_synteny_linear(folder_name="synteny_outputs"): } ) - if len(data["SYNTENY_LINEAR"]) < 1: + if len(data["SYNTENY_DOTPLOT"]) < 1: return {} return { - "SYNTENY_LINEAR": sort_list_of_results(data["SYNTENY_LINEAR"], "tag.on.tag") + "SYNTENY_DOTPLOT": sort_list_of_results(data["SYNTENY_DOTPLOT"], "tag.on.tag") } +def parse_synteny_plotsr(folder_name="synteny_outputs"): + dir = os.getcwdb().decode() + plotsr_folder_path = Path(f"{dir}/{folder_name}") + + if not os.path.exists(plotsr_folder_path): + return {} + + list_of_error_files = [item for item in plotsr_folder_path.glob("*.error.log")] + + data = {"SYNTENY_PLOTSR": []} + + error_comparisons = [] + + for error_log_path in list_of_error_files: + base_name = os.path.basename(str(error_log_path)) + + file_tokens = re.findall( + r"([\w]+).on.([\w]+).error.log", + base_name, + )[0] + + error_comparisons.append((file_tokens[0], file_tokens[1])) + + plot_url = None + plotsr_png_path = Path(f"{dir}/{folder_name}/plotsr.png") + if os.path.exists(plotsr_png_path): + binary_fc = open(plotsr_png_path, "rb").read() + base64_utf8_str = base64.b64encode(binary_fc).decode("utf-8") + ext = str(plotsr_png_path).split(".")[-1] + plot_url = f"data:image/{ext}+xml;base64,{base64_utf8_str}" + + if error_comparisons == [] and plot_url == None: + return {} + + data["SYNTENY_PLOTSR"].append( + { + "error_message": ( + None + if error_comparisons == [] + else "Note: Syri failed to detect structural rearrangements for following comparisons: " + + ", ".join( + [f"{target} with reference to {ref}" for (target, ref) in error_comparisons] + ) + + '. This may be due to known Syri limitations. See: GitHub/Syri/Limitations' + ), + "plotsr_png": plot_url, + "labels_table": None, + "labels_table_html": None, + } + ) + + if plot_url == None: + return data + + list_of_label_files = [item for item in plotsr_folder_path.glob("*.plotsr.csv")] + labels_table = pd.DataFrame() + + for labels_path in list_of_label_files: + base_name = os.path.basename(str(labels_path)) + + file_token = re.findall( + r"([\w]+).plotsr.csv", + base_name, + )[0] + + _labels_table = pd.read_csv(labels_path, header=None, sep="\t") + _labels_table = _labels_table.set_axis([file_token, "Labels"], axis=1) + _labels_table = _labels_table[["Labels", file_token]] + + if labels_table.empty: + labels_table = _labels_table + continue + + labels_table = pd.concat([labels_table, _labels_table[[file_token]]], axis=1) + + if labels_table.empty: + return data + + data["SYNTENY_PLOTSR"][0]["labels_table"] = labels_table.to_dict("records") + data["SYNTENY_PLOTSR"][0]["labels_table_html"] = tabulate( + labels_table, + headers="keys", + tablefmt="html", + numalign="left", + showindex=False, + ) + + return data + + def parse_synteny_folder(folder_name="synteny_outputs"): circos_data = parse_synteny_circos(folder_name) - linear_data = parse_synteny_linear(folder_name) + dotplot_data = parse_synteny_dotplot(folder_name) + plotsr_data = parse_synteny_plotsr(folder_name) - return {**circos_data, **linear_data} + return {**circos_data, **dotplot_data, **plotsr_data} diff --git a/bin/report_modules/templates/base.html b/bin/report_modules/templates/base.html index b570d8e5..11fe7d92 100644 --- a/bin/report_modules/templates/base.html +++ b/bin/report_modules/templates/base.html @@ -64,8 +64,12 @@ {% endif %} - {% if 'SYNTENY_LINEAR' in all_stats_dicts %} - + {% if 'SYNTENY_DOTPLOT' in all_stats_dicts %} + + {% endif %} + + {% if 'SYNTENY_PLOTSR' in all_stats_dicts %} + {% endif %} {% if 'MERQURY' in all_stats_dicts %} @@ -128,8 +132,12 @@ {% include 'synteny_circos/synteny_circos.html' %} {% endif %} - {% if 'SYNTENY_LINEAR' in all_stats_dicts %} - {% include 'synteny_linear/synteny_linear.html' %} + {% if 'SYNTENY_DOTPLOT' in all_stats_dicts %} + {% include 'synteny_dotplot/synteny_dotplot.html' %} + {% endif %} + + {% if 'SYNTENY_PLOTSR' in all_stats_dicts %} + {% include 'synteny_plotsr/synteny_plotsr.html' %} {% endif %} {% if 'MERQURY' in all_stats_dicts %} diff --git a/bin/report_modules/templates/synteny_circos/synteny_circos.html b/bin/report_modules/templates/synteny_circos/synteny_circos.html index 2950621a..d7547707 100644 --- a/bin/report_modules/templates/synteny_circos/synteny_circos.html +++ b/bin/report_modules/templates/synteny_circos/synteny_circos.html @@ -24,11 +24,11 @@

    Notes: