From 3168a9c94f0a907ffb384ef1fffe5498f831e95f Mon Sep 17 00:00:00 2001 From: VisruthSK <67435125+VisruthSK@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:45:10 -0800 Subject: [PATCH 1/4] Removed docs and added config + GHA --- .github/workflows/pkgdown.yaml | 56 + _pkgdown.yml | 62 +- docs/404.html | 167 --- docs/CONTRIBUTING.html | 162 --- docs/LICENSE-text.html | 134 --- docs/LICENSE.html | 140 --- docs/apple-touch-icon-120x120.png | Bin 5993 -> 0 bytes docs/apple-touch-icon-152x152.png | Bin 8077 -> 0 bytes docs/apple-touch-icon-180x180.png | Bin 9960 -> 0 bytes docs/apple-touch-icon-60x60.png | Bin 2779 -> 0 bytes docs/apple-touch-icon-76x76.png | Bin 3566 -> 0 bytes docs/apple-touch-icon.png | Bin 9960 -> 0 bytes .../articles/articles-online-only/opencl.html | 307 ----- .../header-attrs-2.11/header-attrs.js | 12 - .../header-attrs-2.13/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/children/settings-knitr.html | 167 --- .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/cmdstanr-internals.html | 1004 ----------------- .../empty-anchor.js | 15 - .../header-attrs-2.3/header-attrs.js | 12 - .../header-attrs-2.6/header-attrs.js | 12 - .../header-attrs-2.8/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/cmdstanr.html | 900 --------------- .../empty-anchor.js | 15 - .../cmdstanr_files/figure-html/draws-1.png | Bin 40642 -> 0 bytes .../cmdstanr_files/figure-html/laplace-1.png | Bin 38787 -> 0 bytes .../figure-html/plot-compare-laplace-1.png | Bin 47620 -> 0 bytes .../figure-html/plot-compare-mcmc-1.png | Bin 45572 -> 0 bytes .../figure-html/plot-compare-pf-1.png | Bin 48156 -> 0 bytes .../figure-html/plot-compare-vb-1.png | Bin 47756 -> 0 bytes .../cmdstanr_files/figure-html/plot-mle-1.png | Bin 39547 -> 0 bytes .../figure-html/plot-variational-1-1.png | Bin 38005 -> 0 bytes .../figure-html/plot-variational-1.png | Bin 67520 -> 0 bytes .../figure-html/plot-variational-2-1.png | Bin 37488 -> 0 bytes .../cmdstanr_files/figure-html/plots-1.png | Bin 39239 -> 0 bytes .../figure-html/unnamed-chunk-3-1.png | Bin 39568 -> 0 bytes .../figure-html/variational-1.png | Bin 37623 -> 0 bytes .../header-attrs-2.3/header-attrs.js | 12 - .../header-attrs-2.6/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/deprecations.html | 323 ------ .../header-attrs-2.11/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/index.html | 146 --- docs/articles/posterior.html | 408 ------- .../header-attrs-2.18/header-attrs.js | 12 - docs/articles/profiling.html | 383 ------- .../empty-anchor.js | 15 - .../anchor-sections-1.0/anchor-sections.css | 4 - .../anchor-sections-1.0/anchor-sections.js | 33 - .../header-attrs-2.3/header-attrs.js | 12 - .../header-attrs-2.6/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/r-markdown.html | 324 ------ .../empty-anchor.js | 15 - .../header-attrs-2.3/header-attrs.js | 12 - .../header-attrs-2.6/header-attrs.js | 12 - .../header-attrs-2.9/header-attrs.js | 12 - docs/articles/r_markdown.html | 259 ----- .../empty-anchor.js | 15 - docs/authors.html | 197 ---- docs/bootstrap-toc.css | 60 - docs/bootstrap-toc.js | 159 --- docs/docsearch.css | 148 --- docs/docsearch.js | 85 -- docs/favicon-16x16.png | Bin 1122 -> 0 bytes docs/favicon-32x32.png | Bin 1844 -> 0 bytes docs/favicon.ico | Bin 15086 -> 0 bytes docs/index.html | 264 ----- docs/link.svg | 12 - docs/logo.png | Bin 13211 -> 0 bytes docs/news/index.html | 457 -------- docs/pkgdown.css | 384 ------- docs/pkgdown.js | 108 -- docs/pkgdown.yml | 15 - docs/pull_request_template.html | 151 --- docs/reference/CmdStanDiagnose.html | 172 --- .../CmdStanFit-method-save_output_files.html | 238 ---- docs/reference/CmdStanGQ.html | 269 ----- docs/reference/CmdStanLaplace.html | 174 --- docs/reference/CmdStanMCMC.html | 180 --- docs/reference/CmdStanMLE.html | 186 --- docs/reference/CmdStanModel-1.png | Bin 13389 -> 0 bytes docs/reference/CmdStanModel-2.png | Bin 12794 -> 0 bytes docs/reference/CmdStanModel-3.png | Bin 13182 -> 0 bytes .../CmdStanModel-method-compile.html | 563 --------- .../CmdStanModel-method-optimize.html | 615 ---------- .../reference/CmdStanModel-method-sample.html | 640 ----------- .../CmdStanModel-method-variational.html | 633 ----------- docs/reference/CmdStanModel.html | 624 ---------- docs/reference/CmdStanPathfinder.html | 174 --- docs/reference/CmdStanVB.html | 178 --- docs/reference/Rplot001.png | Bin 1011 -> 0 bytes docs/reference/Rplot002.png | Bin 5016 -> 0 bytes docs/reference/Rplot003.png | Bin 5075 -> 0 bytes docs/reference/as_draws.CmdStanMCMC.html | 297 ----- docs/reference/as_mcmc.list.html | 171 --- docs/reference/cmdstan_coercion.html | 164 --- .../cmdstan_default_install_path.html | 155 --- docs/reference/cmdstan_default_path.html | 164 --- docs/reference/cmdstan_model-1.png | Bin 13389 -> 0 bytes docs/reference/cmdstan_model-2.png | Bin 12794 -> 0 bytes docs/reference/cmdstan_model-3.png | Bin 13182 -> 0 bytes docs/reference/cmdstan_model.html | 641 ----------- docs/reference/cmdstan_path.html | 237 ---- docs/reference/cmdstanr-package-1.png | Bin 13389 -> 0 bytes docs/reference/cmdstanr-package-2.png | Bin 12794 -> 0 bytes docs/reference/cmdstanr-package-3.png | Bin 13182 -> 0 bytes docs/reference/cmdstanr-package.html | 667 ----------- docs/reference/cmdstanr_example.html | 361 ------ docs/reference/cmdstanr_global_options.html | 168 --- docs/reference/draws_to_csv.html | 205 ---- docs/reference/eng_cmdstan.html | 162 --- docs/reference/figures/logo.png | Bin 13211 -> 0 bytes .../reference/fit-method-cmdstan_summary.html | 318 ------ docs/reference/fit-method-code.html | 201 ---- .../fit-method-constrain_variables.html | 204 ---- .../fit-method-diagnostic_summary.html | 219 ---- docs/reference/fit-method-draws-1.png | Bin 58991 -> 0 bytes docs/reference/fit-method-draws-2.png | Bin 630631 -> 0 bytes docs/reference/fit-method-draws.html | 369 ------ docs/reference/fit-method-grad_log_prob.html | 177 --- docs/reference/fit-method-gradients.html | 166 --- docs/reference/fit-method-hessian.html | 171 --- docs/reference/fit-method-init.html | 198 ---- .../fit-method-init_model_methods.html | 179 --- docs/reference/fit-method-inv_metric.html | 240 ---- docs/reference/fit-method-inverse_metric.html | 306 ----- docs/reference/fit-method-log_prob.html | 171 --- docs/reference/fit-method-loo.html | 221 ---- docs/reference/fit-method-lp-1.png | Bin 83491 -> 0 bytes docs/reference/fit-method-lp.html | 209 ---- docs/reference/fit-method-metadata.html | 285 ----- docs/reference/fit-method-mle.html | 193 ---- docs/reference/fit-method-num_chains.html | 158 --- docs/reference/fit-method-output.html | 349 ------ docs/reference/fit-method-profiles.html | 236 ---- docs/reference/fit-method-return_codes.html | 172 --- .../fit-method-sampler_diagnostics.html | 221 ---- docs/reference/fit-method-save_object.html | 196 ---- .../fit-method-save_output_files.html | 281 ----- docs/reference/fit-method-summary.html | 300 ----- docs/reference/fit-method-time.html | 200 ---- .../fit-method-unconstrain_draws.html | 197 ---- .../fit-method-unconstrain_variables.html | 163 --- .../fit-method-variable_skeleton.html | 180 --- docs/reference/index.html | 412 ------- docs/reference/install_cmdstan.html | 325 ------ docs/reference/model-method-check_syntax.html | 239 ---- docs/reference/model-method-compile.html | 337 ------ docs/reference/model-method-diagnose.html | 305 ----- .../model-method-expose_functions.html | 232 ---- docs/reference/model-method-format.html | 252 ----- .../model-method-generate-quantities.html | 363 ------ docs/reference/model-method-laplace-1.png | Bin 12630 -> 0 bytes docs/reference/model-method-laplace.html | 478 -------- docs/reference/model-method-optimize-1.png | Bin 13389 -> 0 bytes docs/reference/model-method-optimize-2.png | Bin 12794 -> 0 bytes docs/reference/model-method-optimize-3.png | Bin 13182 -> 0 bytes docs/reference/model-method-optimize.html | 878 -------------- docs/reference/model-method-pathfinder-1.png | Bin 13389 -> 0 bytes docs/reference/model-method-pathfinder-2.png | Bin 12794 -> 0 bytes docs/reference/model-method-pathfinder-3.png | Bin 13182 -> 0 bytes docs/reference/model-method-pathfinder.html | 907 --------------- docs/reference/model-method-sample-1.png | Bin 13389 -> 0 bytes docs/reference/model-method-sample-2.png | Bin 12794 -> 0 bytes docs/reference/model-method-sample-3.png | Bin 13182 -> 0 bytes docs/reference/model-method-sample.html | 982 ---------------- docs/reference/model-method-sample_mpi.html | 554 --------- docs/reference/model-method-variables.html | 226 ---- docs/reference/model-method-variational-1.png | Bin 13389 -> 0 bytes docs/reference/model-method-variational-2.png | Bin 12794 -> 0 bytes docs/reference/model-method-variational-3.png | Bin 13182 -> 0 bytes docs/reference/model-method-variational.html | 870 -------------- docs/reference/read_cmdstan_csv.html | 382 ------- docs/reference/read_sample_csv.html | 145 --- docs/reference/register_knitr_engine.html | 179 --- docs/reference/set_cmdstan_path.html | 196 ---- docs/reference/stan_threads.html | 152 --- docs/reference/write_stan_file.html | 245 ---- docs/reference/write_stan_json.html | 220 ---- docs/reference/write_stan_tempfile.html | 154 --- docs/sitemap.xml | 288 ----- 185 files changed, 78 insertions(+), 31095 deletions(-) create mode 100644 .github/workflows/pkgdown.yaml delete mode 100644 docs/404.html delete mode 100644 docs/CONTRIBUTING.html delete mode 100644 docs/LICENSE-text.html delete mode 100644 docs/LICENSE.html delete mode 100644 docs/apple-touch-icon-120x120.png delete mode 100644 docs/apple-touch-icon-152x152.png delete mode 100644 docs/apple-touch-icon-180x180.png delete mode 100644 docs/apple-touch-icon-60x60.png delete mode 100644 docs/apple-touch-icon-76x76.png delete mode 100644 docs/apple-touch-icon.png delete mode 100644 docs/articles/articles-online-only/opencl.html delete mode 100644 docs/articles/articles-online-only/opencl_files/header-attrs-2.11/header-attrs.js delete mode 100644 docs/articles/articles-online-only/opencl_files/header-attrs-2.13/header-attrs.js delete mode 100644 docs/articles/articles-online-only/opencl_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/children/settings-knitr.html delete mode 100644 docs/articles/children/settings-knitr_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/cmdstanr-internals.html delete mode 100644 docs/articles/cmdstanr-internals_files/accessible-code-block-0.0.1/empty-anchor.js delete mode 100644 docs/articles/cmdstanr-internals_files/header-attrs-2.3/header-attrs.js delete mode 100644 docs/articles/cmdstanr-internals_files/header-attrs-2.6/header-attrs.js delete mode 100644 docs/articles/cmdstanr-internals_files/header-attrs-2.8/header-attrs.js delete mode 100644 docs/articles/cmdstanr-internals_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/cmdstanr.html delete mode 100644 docs/articles/cmdstanr_files/accessible-code-block-0.0.1/empty-anchor.js delete mode 100644 docs/articles/cmdstanr_files/figure-html/draws-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/laplace-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-compare-laplace-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-compare-mcmc-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-compare-pf-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-compare-vb-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-mle-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-variational-1-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-variational-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plot-variational-2-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/plots-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/unnamed-chunk-3-1.png delete mode 100644 docs/articles/cmdstanr_files/figure-html/variational-1.png delete mode 100644 docs/articles/cmdstanr_files/header-attrs-2.3/header-attrs.js delete mode 100644 docs/articles/cmdstanr_files/header-attrs-2.6/header-attrs.js delete mode 100644 docs/articles/cmdstanr_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/deprecations.html delete mode 100644 docs/articles/deprecations_files/header-attrs-2.11/header-attrs.js delete mode 100644 docs/articles/deprecations_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/index.html delete mode 100644 docs/articles/posterior.html delete mode 100644 docs/articles/posterior_files/header-attrs-2.18/header-attrs.js delete mode 100644 docs/articles/profiling.html delete mode 100644 docs/articles/profiling_files/accessible-code-block-0.0.1/empty-anchor.js delete mode 100644 docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.css delete mode 100644 docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.js delete mode 100644 docs/articles/profiling_files/header-attrs-2.3/header-attrs.js delete mode 100644 docs/articles/profiling_files/header-attrs-2.6/header-attrs.js delete mode 100644 docs/articles/profiling_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/r-markdown.html delete mode 100644 docs/articles/r-markdown_files/accessible-code-block-0.0.1/empty-anchor.js delete mode 100644 docs/articles/r-markdown_files/header-attrs-2.3/header-attrs.js delete mode 100644 docs/articles/r-markdown_files/header-attrs-2.6/header-attrs.js delete mode 100644 docs/articles/r-markdown_files/header-attrs-2.9/header-attrs.js delete mode 100644 docs/articles/r_markdown.html delete mode 100644 docs/articles/r_markdown_files/accessible-code-block-0.0.1/empty-anchor.js delete mode 100644 docs/authors.html delete mode 100644 docs/bootstrap-toc.css delete mode 100644 docs/bootstrap-toc.js delete mode 100644 docs/docsearch.css delete mode 100644 docs/docsearch.js delete mode 100644 docs/favicon-16x16.png delete mode 100644 docs/favicon-32x32.png delete mode 100644 docs/favicon.ico delete mode 100644 docs/index.html delete mode 100644 docs/link.svg delete mode 100644 docs/logo.png delete mode 100644 docs/news/index.html delete mode 100644 docs/pkgdown.css delete mode 100644 docs/pkgdown.js delete mode 100644 docs/pkgdown.yml delete mode 100644 docs/pull_request_template.html delete mode 100644 docs/reference/CmdStanDiagnose.html delete mode 100644 docs/reference/CmdStanFit-method-save_output_files.html delete mode 100644 docs/reference/CmdStanGQ.html delete mode 100644 docs/reference/CmdStanLaplace.html delete mode 100644 docs/reference/CmdStanMCMC.html delete mode 100644 docs/reference/CmdStanMLE.html delete mode 100644 docs/reference/CmdStanModel-1.png delete mode 100644 docs/reference/CmdStanModel-2.png delete mode 100644 docs/reference/CmdStanModel-3.png delete mode 100644 docs/reference/CmdStanModel-method-compile.html delete mode 100644 docs/reference/CmdStanModel-method-optimize.html delete mode 100644 docs/reference/CmdStanModel-method-sample.html delete mode 100644 docs/reference/CmdStanModel-method-variational.html delete mode 100644 docs/reference/CmdStanModel.html delete mode 100644 docs/reference/CmdStanPathfinder.html delete mode 100644 docs/reference/CmdStanVB.html delete mode 100644 docs/reference/Rplot001.png delete mode 100644 docs/reference/Rplot002.png delete mode 100644 docs/reference/Rplot003.png delete mode 100644 docs/reference/as_draws.CmdStanMCMC.html delete mode 100644 docs/reference/as_mcmc.list.html delete mode 100644 docs/reference/cmdstan_coercion.html delete mode 100644 docs/reference/cmdstan_default_install_path.html delete mode 100644 docs/reference/cmdstan_default_path.html delete mode 100644 docs/reference/cmdstan_model-1.png delete mode 100644 docs/reference/cmdstan_model-2.png delete mode 100644 docs/reference/cmdstan_model-3.png delete mode 100644 docs/reference/cmdstan_model.html delete mode 100644 docs/reference/cmdstan_path.html delete mode 100644 docs/reference/cmdstanr-package-1.png delete mode 100644 docs/reference/cmdstanr-package-2.png delete mode 100644 docs/reference/cmdstanr-package-3.png delete mode 100644 docs/reference/cmdstanr-package.html delete mode 100644 docs/reference/cmdstanr_example.html delete mode 100644 docs/reference/cmdstanr_global_options.html delete mode 100644 docs/reference/draws_to_csv.html delete mode 100644 docs/reference/eng_cmdstan.html delete mode 100644 docs/reference/figures/logo.png delete mode 100644 docs/reference/fit-method-cmdstan_summary.html delete mode 100644 docs/reference/fit-method-code.html delete mode 100644 docs/reference/fit-method-constrain_variables.html delete mode 100644 docs/reference/fit-method-diagnostic_summary.html delete mode 100644 docs/reference/fit-method-draws-1.png delete mode 100644 docs/reference/fit-method-draws-2.png delete mode 100644 docs/reference/fit-method-draws.html delete mode 100644 docs/reference/fit-method-grad_log_prob.html delete mode 100644 docs/reference/fit-method-gradients.html delete mode 100644 docs/reference/fit-method-hessian.html delete mode 100644 docs/reference/fit-method-init.html delete mode 100644 docs/reference/fit-method-init_model_methods.html delete mode 100644 docs/reference/fit-method-inv_metric.html delete mode 100644 docs/reference/fit-method-inverse_metric.html delete mode 100644 docs/reference/fit-method-log_prob.html delete mode 100644 docs/reference/fit-method-loo.html delete mode 100644 docs/reference/fit-method-lp-1.png delete mode 100644 docs/reference/fit-method-lp.html delete mode 100644 docs/reference/fit-method-metadata.html delete mode 100644 docs/reference/fit-method-mle.html delete mode 100644 docs/reference/fit-method-num_chains.html delete mode 100644 docs/reference/fit-method-output.html delete mode 100644 docs/reference/fit-method-profiles.html delete mode 100644 docs/reference/fit-method-return_codes.html delete mode 100644 docs/reference/fit-method-sampler_diagnostics.html delete mode 100644 docs/reference/fit-method-save_object.html delete mode 100644 docs/reference/fit-method-save_output_files.html delete mode 100644 docs/reference/fit-method-summary.html delete mode 100644 docs/reference/fit-method-time.html delete mode 100644 docs/reference/fit-method-unconstrain_draws.html delete mode 100644 docs/reference/fit-method-unconstrain_variables.html delete mode 100644 docs/reference/fit-method-variable_skeleton.html delete mode 100644 docs/reference/index.html delete mode 100644 docs/reference/install_cmdstan.html delete mode 100644 docs/reference/model-method-check_syntax.html delete mode 100644 docs/reference/model-method-compile.html delete mode 100644 docs/reference/model-method-diagnose.html delete mode 100644 docs/reference/model-method-expose_functions.html delete mode 100644 docs/reference/model-method-format.html delete mode 100644 docs/reference/model-method-generate-quantities.html delete mode 100644 docs/reference/model-method-laplace-1.png delete mode 100644 docs/reference/model-method-laplace.html delete mode 100644 docs/reference/model-method-optimize-1.png delete mode 100644 docs/reference/model-method-optimize-2.png delete mode 100644 docs/reference/model-method-optimize-3.png delete mode 100644 docs/reference/model-method-optimize.html delete mode 100644 docs/reference/model-method-pathfinder-1.png delete mode 100644 docs/reference/model-method-pathfinder-2.png delete mode 100644 docs/reference/model-method-pathfinder-3.png delete mode 100644 docs/reference/model-method-pathfinder.html delete mode 100644 docs/reference/model-method-sample-1.png delete mode 100644 docs/reference/model-method-sample-2.png delete mode 100644 docs/reference/model-method-sample-3.png delete mode 100644 docs/reference/model-method-sample.html delete mode 100644 docs/reference/model-method-sample_mpi.html delete mode 100644 docs/reference/model-method-variables.html delete mode 100644 docs/reference/model-method-variational-1.png delete mode 100644 docs/reference/model-method-variational-2.png delete mode 100644 docs/reference/model-method-variational-3.png delete mode 100644 docs/reference/model-method-variational.html delete mode 100644 docs/reference/read_cmdstan_csv.html delete mode 100644 docs/reference/read_sample_csv.html delete mode 100644 docs/reference/register_knitr_engine.html delete mode 100644 docs/reference/set_cmdstan_path.html delete mode 100644 docs/reference/stan_threads.html delete mode 100644 docs/reference/write_stan_file.html delete mode 100644 docs/reference/write_stan_json.html delete mode 100644 docs/reference/write_stan_tempfile.html delete mode 100644 docs/sitemap.xml diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml new file mode 100644 index 000000000..499e2d606 --- /dev/null +++ b/.github/workflows/pkgdown.yaml @@ -0,0 +1,56 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + pull_request: + # build dev site on merged pushes + push: + branches: [main, master] + # build full site on releases + release: + types: [published] + workflow_dispatch: + +name: pkgdown.yaml + +jobs: + pkgdown: + runs-on: ubuntu-latest + # Only restrict concurrency for non-PR jobs + concurrency: + group: pkgdown-${{ github.event_name != 'pull_request' || github.run_id }} + cancel-in-progress: true + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::pkgdown, local::., any::withr, stan-dev/pkgdown-config + + - name: Build site + run: | + withr::with_envvar( + c("NOT_CRAN" = "true"), # this should already be set by setup-r@v2? keeping because vignettes don't build otherwise + pkgdown::build_site_github_pages( + lazy = FALSE, # change to TRUE if runner times out. + run_dont_run = TRUE, + new_process = TRUE + ) + ) + shell: Rscript {0} + + - name: Deploy to GitHub pages 🚀 + uses: JamesIves/github-pages-deploy-action@v4 + with: + clean: false + branch: gh-pages + folder: docs \ No newline at end of file diff --git a/_pkgdown.yml b/_pkgdown.yml index 8e28d1fc0..fc57dc39c 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -1,57 +1,40 @@ url: https://mc-stan.org/cmdstanr -destination: docs +destination: . development: - mode: release + mode: auto template: - params: - bootswatch: cosmo + package: pkgdownconfig navbar: title: "cmdstanr" - left: - - icon: fa-home fa-lg - href: index.html - - text: "Vignettes" - href: articles/index.html - - text: "Functions" - href: reference/index.html - - text: "News" - href: news/index.html - - text: "Other Packages" + + structure: + left: [home, vignettes, functions, news, pkgs, stan] + right: [search, bluesky, forum, github, lightswitch] + + components: + pkgs: + text: Other Packages menu: - - text: "rstan" - href: https://mc-stan.org/rstan - - text: "rstanarm" - href: https://mc-stan.org/rstanarm - - text: "bayesplot" + - text: bayesplot href: https://mc-stan.org/bayesplot - - text: "shinystan" - href: https://mc-stan.org/shinystan - text: "loo" href: https://mc-stan.org/loo - - text: "projpred" + - text: posterior + href: https://mc-stan.org/posterior + - text: projpred href: https://mc-stan.org/projpred - - text: "rstantools" + - text: rstan + href: https://mc-stan.org/rstan + - text: rstanarm + href: https://mc-stan.org/rstanarm + - text: rstantools href: https://mc-stan.org/rstantools - - text: "posterior" - href: https://mc-stan.org/posterior - - text: "Stan" - href: https://mc-stan.org - right: - - icon: fa-twitter - href: https://twitter.com/mcmc_stan - - icon: fa-github - href: https://github.com/stan-dev/cmdstanr - - icon: fa-users - href: https://discourse.mc-stan.org/ - -home: - links: - - text: Ask a question - href: https://discourse.mc-stan.org/ + - text: shinystan + href: https://mc-stan.org/shinystan toc: depth: 4 @@ -120,4 +103,3 @@ reference: contents: - register_knitr_engine - eng_cmdstan - diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 692fbba97..000000000 --- a/docs/404.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - -Page not found (404) • cmdstanr - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - -Content not found. Please use links in the navbar. - -
- - - -
- - - - -
- - - - - - - - diff --git a/docs/CONTRIBUTING.html b/docs/CONTRIBUTING.html deleted file mode 100644 index 50f352cb8..000000000 --- a/docs/CONTRIBUTING.html +++ /dev/null @@ -1,162 +0,0 @@ - -Contributing to cmdstanr • cmdstanr - - -
-
- - - -
-
- - -
- -

This outlines how to propose a change to cmdstanr and is based on similar instructions for tidyverse packages, including the contributing guidelines generated by usethis::use_tidy_contributing().

-
-

Fixing typos

-

You can fix typos, spelling mistakes, or grammatical errors in the documentation directly using the GitHub web interface, as long as the changes are made in the source file. This generally means you’ll need to edit roxygen2 comments in an .R, not a .Rd file. You can find the .R file that generates the .Rd by reading the comment in the first line.

-
-
-

Bigger changes

-

If you want to make a bigger change, it’s a good idea to first file an issue and make sure someone from the team agrees that it’s needed. If you’ve found a bug, please file an issue that illustrates the bug with a minimal reproducible example (see e.g. the tidyverse reprex instructions). The tidyverse guide on how to create a great issue has more advice.

-
-

Pull request process

-

If you are new to creating pull requests here are some tips. Using the functions from the usethis package is not required but can be helpful if this process is new to you.

-
  • Fork the package and clone onto your computer. If you haven’t done this before, we recommend using usethis::create_from_github("stan-dev/cmdstanr", fork = TRUE).

  • -
  • Install all development dependencies with devtools::install_dev_deps(), and then make sure the package passes R CMD check by running devtools::check(). If R CMD check doesn’t pass cleanly, it’s a good idea to ask for help before continuing.

  • -
  • Create a Git branch for your pull request (PR). We recommend using usethis::pr_init("brief-description-of-change").

  • -
  • Make your changes, commit to git, and then create a PR by running usethis::pr_push(), and following the prompts in your browser. The title of your PR should briefly describe the change. The body of your PR should contain Fixes #issue-number.

  • -
  • For user-facing changes, add a bullet to the top of NEWS.md (i.e. just below the first header). Follow the style already used in NEWS.md.

  • -
-
-

Code style

-
  • New code should attempt to follow the style used in the package. When in doubt follow the tidyverse style guide.

  • -
  • We use roxygen2, with Markdown syntax, for documentation.

  • -
  • We use testthat for unit tests. Contributions with test cases included are easier to accept.

  • -
-
-
-

Code of Conduct

-

Please note that the cmdstanr project follows the Stan project’s Code of Conduct. By contributing to this project you agree to abide by its terms.

-
-
- -
- - - -
- - - -
- - - - - - - - diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html deleted file mode 100644 index 844078cec..000000000 --- a/docs/LICENSE-text.html +++ /dev/null @@ -1,134 +0,0 @@ - -License • cmdstanr - - -
-
- - - -
-
- - -
YEAR: 2019
-COPYRIGHT HOLDER: Stan Developers and their Assignees
-
- -
- - - -
- - - -
- - - - - - - - diff --git a/docs/LICENSE.html b/docs/LICENSE.html deleted file mode 100644 index c81b1727a..000000000 --- a/docs/LICENSE.html +++ /dev/null @@ -1,140 +0,0 @@ - -BSD 3-Clause License • cmdstanr - - -
-
- - - -
-
- - -
- -

Copyright (c) 2019, Stan Developers and their Assignees All rights reserved.

-

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

-
  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. -
  3. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  4. -
  5. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

  6. -

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-
- -
- - - -
- - - -
- - - - - - - - diff --git a/docs/apple-touch-icon-120x120.png b/docs/apple-touch-icon-120x120.png deleted file mode 100644 index 8f6d7ca01dcf8a75adc17895ac26403b3cd54b7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5993 zcmV-v7nbOWP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 F{|BM?(4hbT diff --git a/docs/apple-touch-icon-180x180.png b/docs/apple-touch-icon-180x180.png deleted file mode 100644 index c52ffdffeb92596ff9434e3802b3978c91314a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9960 zcmZ{KbyyV6^ZzArM|XE~QUcQ52uL5@p&%_G;T_UQNO?+#lp=M!2?azBI2z$VDW$uF z0~8PtzkL4u{qcMD*_~%+pV^t`nP+EbU$d$AO!X;YY%l--Kxt^8V{t>9|JTV#ZbsEF zBr-Py;-hJz2>>)^!LQt)H*+2j0}B%X;IR+@fJy)WE^b(;Z2;hr6acX63IHf!008Eo zqIPqYn*|bgV|^XKzyGz;&bPTY9MUjD6J63Z7#yG=num$(000D24RtiFBESDEj>>k5 z$X`<5ia6XesjGAF`%q$^Bk0iT#m?^Wv>U(Q|DS+I0RSoo6uW(oo=h84J<2e87i1`; z`(8-b0)4OA6Xi}m>)PV!|E!z6yVZY$uHcqKx?sy`Wu=XA=ckQp(`$t@!|_)8-Hk_G z5lhjp-%B{`zCBp#JiHuJ?P~g)pu|6E!luDMsaXXdCGiHrQJLp{yo99K2I60vQr>H$ zJ{R+=d~g!F3CCK>y$#I-3#0gPamzG8bld4Jxxg#?(-)VmR_h}%->?0Lb}Y2=;MP3zI<7wB7{ABatTknBb4zS z+Uj19e~9al)|ABQIM%HM;`FW~hJs1-j~o$>{t}pUyU;K$LEw3O z<^l|h@3Y1g4difn7|2X^)%-+SSonuRH90p zN+UuP^1TC8amU4@CE%Rb8y8kl5+AAL?n zZKURs8R^pmS-LNf2yvnv;!3`0-mk`823fXwS-NMbqpw<4qiA*T$SEg{>DS*)@s7c( z^>ILi$0J6@&I7SB=17`z;q0ZS6yj0S!Pxmdw&!USJ`4KHFdYI@_W=4I@Ji8!$BOyn z+r(JgWrGX!CmksDOq$V95gs5hsHYShc?N5$2VTR@;iFo~8_o_HWf;@%sB#`<)Rmcn z(~a8fG}<9OrBpKFwk)FKOm~?HA#3aNU}t+ZDZfE2VPM=#twIyV6x8u!XXt&kg1Nj8%H?j{0CPu%}GH1*|bH=ebWxM z?B=oYZfB=Iyp5C3<|1g)edn~4*9>%(-Yl7@2vXh@U($lMXiI*%;T$^y zUiL?|#-%CgqJ@#)@GA7i*)gm&N#d9E;WIzQ0|2V!37!#P@ui%eQ$_>%Ov3S_ZtatQdUmko0Hdbw$Zh zAz7N-SFWDgpze%F=q&XFD~*$7cWSo9Z7-(wLfQBSZpd*fMu>3FzRbl$Kkm|Kr0%;ZdmGU>Xxjv1} zW<+xc8cRKL-<`~?nSuUgC>p=hAQ`wOvir8JHW)HWEuq?@FVbzD|nk z1#(#H9Ik7$%~<;sJu@V9@qPg;`%|54H5!&0;=w=A+#q%E2kK8QP9FwSeeT9{LGVIr z|Hz50A(C-LMg2X2OSJ3vd77#|57n^g-P-Dra z;B3WM&eRNWKve!^^-t2vA-2X`13z+m2Hg^Fd_Sf%g?|T$UmPj2|l9e!J(Whw2G5eAOyv@<%i((5;}&dGaMq`woC6o2G)?mvksn zL9E=@wxeQ%*B7QddVCS$vd_X|b50(P_3ZR%0R8b&StDp}^FUr!Z>u0aG(zAiVQ%`4 z>TApDZd)&0@+Qs+BaPa(a%G$TFlrt$vM3Y}ZoB^`n2=_sq*%c!>`EDxJG>+aK!i1t z$OA8B?`CP>Z?d;Ij#n~HCl?4R4`?|4(JqnA=B@2^*Mp`#4YGApMl;=v?kF)>rPL; z&T_PGhAh=e2hq&F8@#s=D50vmmJOwM2N$S1leM$ZA6V=UEvDM7y~HH3vA7J*01s)E zH&&jfcM{`oLc}Y80QDiLUi{320}Q*OGA{cj3ha^r8gtzzDb7rMs4TSbAWc|;FoZAtfq>`% z1=et7=L5k&!|I^LN(cp|7-b?ePi9%%RK$ZU;SHm_0(0E;F07 zla+gvHk|03^^X-Bq3To{U7Y{9v{dybOAy}pr<0kep7t9!?J0b!H<>Uhq#p?A4%6KN z!Ali0I$s+raL+vK#TV;z?b|PZ`I!)HcC5$$mrawo-5lRfTPt!lJfJ~xo?jL{(wRN9 z37ky8VgIy?j&k~*VWmc@Hv9^r2DfNk2-JoWQ| zXA?uD1K8vTw`bzw*jVV&%|;BgrM!b*kfV~K`_O~4?Ryp+*9wz7vws62-~aPeMoVOm zNS9j#v3h%~nv``Z+ua2Re36Nvp0B8N9c z3SI}aV`EzaA;sN)Xy&|%&Z3yzcqhEy|5z%%J6QlTd)R_O(SjnI#>eao1Pl-QLvh?Z zmIdB3C%LvyZ|*%Q_84aGC|i)Nn_k&H&1r*$W^ZZ>^5mf)*MYJ=jKyH9~)17_hvo01l4 z?6xbA*~}0vY}j7&7MX!HawilZCitUcZ{FjvwBNe24}E=IW~Ax+PHFGv0BY+FIUJ=BR2@i za+!+BU7iwAB;>wrBsG2}AZ6@qXgHtxI_ZBYW_z;N+L1z6Awg9?T~5c0)$@j(XK0}# z^(pa;bz(EFS@lo zI{G`4VQaogDPLPS=w-jXft?%81om3|?k5!T2bq{+<$ghyC_<;z@I`5$#{kFAe<^Gzx6k z3S6!2@=dw1nuJAotYusLNMYvj>(JX9qIc$}IjI)2(Pw&PA0m-EZ%n*?2{uCAs8f$0 z_&36P0xu+g^5!g>VqSp_@s#e06 zKCaKK5Fgt8I{mawNgL*ydP?G>J7?|L_(BKR)X85Vu`fgC8W#r7CZ9@}*WCytOGdfS zMpQ7IKUf1@Cpmo$m^roXl=z3{n19aP*>9%R<*<@mOzXwN6z;>2eOfQEe>@5NPE`b( zdgaReB3ifHm6Vvmr%0Tim(5T<{#t1IuIn^!OXVZIQZpfM0)_swSe#i zlMC=sPao5zKTYFO)Mm8)TWZW+VpXKDJ@aYB1O$P4mVkWZRQbU{wGJB){DS;B=C({3T7QJco`~6?Cx2;bDgYW1&WGy%8@2a&~~=iJaYR@(mo})>`6X- zz;8xpeRGZjWu9U4t(WyZS0bgo%HHn@NCx#mP?# zKA|@CFOjeVgT|=0qau`+F>hzu0@m?8EP zgBJ`eJ0}C1o9Q|@nua@bo)dXK&!=NRu$)^|e>sCn6nD3uah!CPR~}?KrZJUDSH!1Z zI9U5yyWM-R^$>B|a%PN|W|kgNp1iTM4jwJ=3T5R+FzkDSDeWjjeJ%6U$)#Tu0Veu= z0qGaNoryYCH2bcswAb^QCPRb8qFdJxggDJ?T5J?g8GK%faY{YZhHylbSdN7fq9%iX z4mP)EIq~QswnZDzEN~Ms$CuRPRe3Yr8SKPWC8+5ecr;&Pc@$}1QduDyt zzbFnPgziquGQ3-9lyyg8~^VjigYq7`lxWmsx6B!h4BNa z@uSFImNUI+#LZ!&-BheE@rv?O@_k>oIG{q4h))j6iU{deMn0JDNxjX1J{J)RFE)5(^}oP$lId}D@DFoBG5rzS6#QrRzPXJK zaA$BrW6EJKlaIL*=Zx6_Pp)pK!=Gd-nRT74ug+NSuwRm>1c{`ugqPHW@^Y&2l;2ot!}idAmj<^<1e|G~%GLf&NT% zi=81cdp_%@n~t%w@0rBVbr_WbLduHf7Y_2ob?SLq-vUWk)PSA2DU;oSd$4v0 zba79m<7vu{SVa!|+cBU%!)wuVf^Z`kxyx|$_(KKdi6SZf{k$n2#7!f}JkZ8#w`#MD zItjx+6{a8N38LV5qw)F`x04Sfjk}Lm%98Uoe<6*!$gpUmfnkH?7+y}$&}fw+J%kXo zsjKNVLzguwx?0_wh#&4I|ND_m5T}K{EnE7Plp-}mDf1C`M9DQ@u=WPbv61C>sipTH zo#~h&fSe{g&LCKI_RoKeb1ujshGfv&8Y$Hh4JCxp6Z6`RE)fp0eBlE(a}slJ>-k|l zUFyO6D8d@wvUMr9a?gh`1yR%0=66!J#_mxK6kH~p-1zOQ?rJ^5ACYp^`0CX`V27;Q zzUs5UZLUP;-FOMnM51%>#b3Dshdi~dAuH5I{p{&K1?(3?ZmA=dWM4}d8Ma+HqX0#=0ZgItFVEyXc(5IvHZ=!laL=YxG zIW$zfz;y?42J?HqO6e8c>?zgyJ#ohnT=~dQHo?SpqqjIi%vOM)L=AM{9cJK2UxjtV z;zqtfox&GsV9!8IQTk8j-vtTO-x`vUuDOMM^f}_64?2Q-dRVQ`O@Im@DTbCjAL@%g zfI0&fbr-Vg71*pXH8wiU3Z{!3X@7rq2YU)ZTj4P$1^!P#Gx?Vn{XwZ-XZOf=-WX z7W9~785|zoIb=_>`u7(cnNw*BwWNuFVYWDDHnkUDnKX)VPjbC(mWx+c;kkht8?HWj zZFkE{ild(B$-EvEMt|X%Tg}3Pk=kY}1+K`G1_CYmh3`DuO$yDp! zs8UO{)NSs`6^;fH^Dx36e#Hq==x52@5_8YUzuc4WIFtWsip5;)lj-1cOD|piWrW5% z>r*dOFh(+^M>;wjSkJI3L*2%Y4s_Cod#iaacCL9I?>}xntmu)Oqq#>K!j64EzsD&Y zi=#J^`Xq5$4F6OmEgxs_)9P3CxqI%m!<3Q_HaDV6-DzXRY=b?kWH7o@G+eyHjzWqw zOfLV4z^TC}kU!I6Bxu|ZvM|P@Doc5{SG9Iqzgk~8M@OB=aRZpza-Hfgzi2$0ha=Ec zfIw(~#991+A=No&(7M)AOh#$o3S^{>B1 z4msd?`9=x#7k8-9#0XrXcU@6z-CNe<$=ofP8Cpn?}mQ3p#B!qP6 zVafqG?x}UMbM_sw$G0xweMXYNEbxomd9%%gnu$R3{Kr^>DB}$c=jrY}6k^ASg zqb;+^f_h=K0lLx)VSGAe1g_Euz&}_d{m}2?2+$tmov>>1m~z%P(F`9+FT-Z)e&H3K z_L;lj9Mgo+3-Lv)TE9FRjMp-gBem5ngYSS}_w34T=3Vv(YcS0M{2B9%V+oRCzM8~$ z%;|>ez*_OMDZyv)%8lGL?pI*qGn{GGDfw6f=UZj-XO&Hi*{r2^KoK5V2YkFf_nZ@o zak23f+fa*zhOM%AXKm^|!`lGWugh<7KTuH{pL<}!JvyIAXP>2>E0&Tva#QH}DX6Wu z9D7WTg8p09_<=6exB*!D6C5eQ`=Pj4_r$AOPQ}ZpO!G%S@mY;+xF=9G>F-Z$wb!wb z0g2kV^ZUzDwVz`&?ltgxw)PK?zZ{UQ$`ziWXoo~9w|0rL6h0VcRRPDC5}2o-X^lz^ zn*}Gum2CbxipaUPBn{FyJic&hgL|K`6I}i{Y97_p6R_Vh*{0|7NS|2~$nvp`xdc z*Vm=KHc?W9+=(_i9$CGl+ysv^>>;8^r|~hW-Wj=UEi9B~fIZEV0E!hC-SVKK zNsgJW5Df^c<`Y;5CvoWLx|Yt8hA4_?Jd&9%`31t7mD-Xg0h}DZ`PstSchUkg0!hC2 z$%okjXW$mZL?3hZ!uBI9`FVXW_sAMjbPjgvP;}Ck~D-+Kz z{f51>L=Z(1|4)H<%fCrsj-ls%a%20-Lku(y>ei1f^g(J~CN@Ci_Jryd^ps|fnJjz}F}@-hYE79Y@~bUJCG1Zr=*bL!&3RFn5< zF(Z;ITBQ>usCdy>kzBIGXtrNr-aV!0nVqe%TqUyU2?Em#P}B-i?pgOCyiu_D+1A)fFzzL9Z;LXKc<6Bx=mx ze#O58QX)MrCVZlRzpaDVxSGA5o87K$he}YIxvwn6rWJU4IOp7{Dip*y^TetWvyjOn z$a|y1Ot6?%*U!Xso=aRYsG-u}!Th)k-|;HXuWbr?EMoK1UJz?5x-jeEY7U1_gXbyW zpWe?Mt~&AO!D25fMZXJla?}5=d?n34>ZI_jFaC93T1>cG>?3Vlg4j3t96b#c*>`PJ zP13e*P@zReWCmUZK{c=AgtP26UoHgwGj{uEWo9pORDPT3QA!)u<{uW$hb}Nv?nM843LxE<+PPHEsH1QSZ_K504Q(2=O zYp}U`cVm3M{eqe9)%9nE@H|t({j;Yj#%ittY4dfROM2+ETFPj%GNcMn1N9N3N zvV57w!hM?MrC-reX<-0ksTXdnOovVh4`7kq|n^579LN;&~;6cl;|WRP?pwV%sR+^ zV4Z-Dl`r#*?>Oy`Ad>*-yF;}(+@?_20Dq!e-acXWKozN4>b!UrD&JX4T zt1%Yb?LSB~#z_8vh=QYi?<}1tT(xJrcHFj{aahNBA=NP8jNa5$WbyJ;o@hIkaq^>l_(N8gThN7<=z0OGdFGb|@tR{kR z?d2ct+=_@O9n&$d75eLk`_MKROlzrWH^P(dK2d{`1aVh>w!2Gb=g&a=faTSB8Dh5y z@-nfyN{9>a5o%gNF7B#~xwCfLd3B0E($nUa$DJ&ZVs|WZf4@yj6S0z1qWMoyt#ZeB z7GL_anI-xBqGd1z-`8zUA=2@1k?qjC6*D6HX-L+`(RL#-8^VS{@ zjVi0eKb2)=5Xvnd`xNV`1!>Jk-L@%FP+d3gtcktruWLEXJ~}WhvR#E&<^hw+5#;NsR~1n`IrB> zQ;rDw-7P_g*%P2?_8kQt19DF&{A%7uyvgJ0%MoCgV)nQ#cyL*GmyXw0!Q$>TEZtF6JR0=eLM22Nr-AFfMIOtDfb|3MUZ!i=P+DRh^9d3tOiArxA zWg|72x4osc_>HP4f7M~wj{|D=I;O|atdz9!1Rr{#b^UJcctS5g{k}OslbrFYexq~Z zKiePYbGV_9hG;7RX986IyMlvxOwISJHfqpeUykh8_dE6jh9r@U%Fnid%c5Bv^xqmh z)L;AlgfOQ32iIum@n+bBhL`V?9IKDry^84@s@h##ce$O_)SSaN^DILtQkf*o_+%X&z|?@HA}MR<$8GD{k^zZ+rr z-jvXXk87p(EGV<}V7h!btCAIE_12iq?ekHa<22$k*2D=wm+%+ z6Zs_%WH$K?{YEfH!|IAKqknacQYL#>aGdH+E^A~Nc?sktbvumy^h*(Q#OR69!@tPL0^h^P=SGo2~CF;qE@X2l%lkbMYZ8Z{S{%7V$4X$m1@9-)lNarHqtKaDXdudO3>msxbcJRX!Ca(MMS zPamxgY~9-(NkItmUS_|d36qW}R>wNaele9>RQP;=&Oc;V48h(;!yabIa$9~X z@WIM*)^+sOFu-|yjuQ~ za|(@@s2Y5Mcy{{JWqh?5*9$U%oj{ATQrqG5mwcnTq7-QV{+Oerb3cTgaTd9Jx?MkS z?a+$A^l%vD68GD+g+ZSolf>W&RYOF6NKru$!-iB4WzPvnvb+eo$lBmzs|WRr8K^U1 z%>Nr)1Mv4yZlnJyQXNY%OO=P7w{ z|46@P;wu7L*IWTNzp}z~kzt;0VO~leAzn8GAR{HMcuQL9mbA2$l$4U3yppW6xRi{N zl$3w}Lx=xI;9;QWeebCMzW`_9)YgrF?PDusn1x#ePf$pp_kDjap0KDOFP{5BVIBZL zWYO9&1zE6-h{&+n$f)6l1pv$sm+*ko^V1vWGJxrMbWpOro?!kaE1r?rZ-e+zJO`e1 e1Z7ZaBmvlErVTsRlFPqQ0Wj1x)v4EVjsHLB1az004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Re3JU-@CIlyCDgXcpd`Uz>RA}DK+iQ$nS9QSg z-#+);x%Sx31d`aXGvg$7Y#b9p0$3C%4HN<@X&jpJl#n1_C|^od2@nDy_ykg0wN-^m z8tJo!{hihGxwge`LNIROq{XD_uM;UmNe3x zJ9ExH|Gm~;Ywfl62?i+JjLA@N4lcu0xEdR<8s}pPn$;zfID-Ayi5++Vzr+)mfX#Lf z>={G9H`rpVdy`?j0&m5eu(1Lh>fv?~$FUFFaTop19lT^w(E>9&U=By(jeZ1k27u43nV3;#v_uWt2NPcYIw$4 z9mVJH0kjqf@|fhU@5hhvGdxZ>jGi=mM!+**H{zdg?U_tcA5usm>OtHmt<{IB?>d9< z(x)`(twy^aUx_c_b@K#y43A6N`w{*hI|;{#1C7C)LR;I6iRt6z`0_l!9+r}fA5=fv zaR9}j0Z*1$HC(}tN@hGL*og}Aj_PN-0PC_B zIicYSb_qV#2kZ`f2Df4A4+-=Iz+0?VxvJ}={J4%hfDcPa!ob5xud>xjNsSqf*lc_n zI3(DY;IGt6*`C9v&Ias^8fhQCn`K|#YFTHq-SQb1T#MJ&9QQ8#aK2$@ zJZno*&`Mm2^%dM2DV&~H!8hRbcC@ z-!H_7=?cnhaxvbChq_S+uD~DHe7>LRL%UmzY3L~A&FbM-U@cx&!L2i09vW6Jm%kqW zj%T{SZ>?srSLsM`cKl49V}|B(oGY2%x@|T+F`4K}$zROp7V}i{M;OVa?Oz>p-kpG>|6DxbBjxf%2gH}H?6~Gg zh;NQu^~+}a!egC$(O8*T97A_ga<=3$tj;C#sBHg&N8#MXc#Rsi(*plS%5ze8**vS+mi&wkB7MJTdj#3@zFAwY-^VP6Y)$| zI+&FnFEf`G4Xet`a11B@zCf}V>vJ{o=Hnqge*4hWdrSTzCWkQB1f>dGR(duoofCu6 zqT!-4b8eZPh>i0MAFwu;;#*JhaHCjzG{h@I4^_|Zh!Nu<8qYf(jlua9{K`t}^9;T+ zmok~2qzrMSpHaImdNM?NLiA)-8i~QhMZ?8K!_xT!AIbF?0|Pd6a>uZ@Q7H8nW4c;D zSZRG{qp-GUxTI*zhi7kPyUrfAMsPU)VryhOV0|wI0hHRU{wWwFhu*a(t%3z zy_$W%u0~;bnORpf>T0>fV>uqiI|c!KGI$q$aST?LnW+$sSMd9@(xDJdhImHs1@>j7 zwMC<@e>jd`=lHo)t(cdF_DuMp7_5lFiZU~W@e2H@taNA&%?ILe44qJaEBSO6c)Qdc zs9Tz?H33a5uh#tf%Ix=MrKcK&!y&#XzPDm{Y;Dn46d0{((!as3OgcUD;6lL82A@J) zaABEwRVVl6sUe%%O)JVwl_bQ-y;l^CubdmhvOav)eK?ZgDDFNRz$e4Qk{Dc8G`z9h zbalJ=WGjZhACBRJ8#?)DOf|1M^1Q0<*3Go;!c%7(x(goJ--_YpjYZ>zB_VwBos+F4 zu|LPU9lv0Dx3i;~f%lz7)&h@V8*Yhg@6f(>qJ{XEOn2yO%;6TPH7l=DxhZ@@Dre5Q zza5}NJR^1gw@7W(-$^mEYLvuR1@hG;E%ElOg=S;@@qtRNqj z3i>DhA+REHBR(n>0PD&(gZOBye11M-fW!DVyiqzUIY?b;_1)50&3;O_592FQIMIO5;f84~cRTer^$8d;E}7H+Re<+nSBHrq$!6OLwS`Nh zzSi5NqQqbFwm> z$6PPfivL9F3ar#)$!HF_9be;xEua@t&!$xORvs(vb&(0)$r3`rfl zmq=Z{S4!tHua+7BBj%?lzf+1hKRfwo;)@2WOnVVNkH0Z(T3s{!O$B(bv?liuCsUU> z3c|2dn_eTeRj!hb6<;E?Rr)p6x#TeZx}ou3h2ljGzFB9tg1$h~^6RAT{tu*+agRjt z`J;|oYIsovw_5U~uaLHyYouOM-ELo9nZg$&WzBlz;&i|&m=Wxe{LJ|kOt;&2xum(} zQuTAbwRbw{NJoo5jU%UO-JW*#w^*%XNYmtv(z)nMrT*>GxvpJcX-oaz&tUv?ed;;A zV$&ok4?Qet_iSo$HaUua#^2%jxtj8g)BW)lhrGu!nQ&0rU}TabTBzg0bID%Gg#QJ{ z&g2Bb8JlIbu3LClHAv4*xB*HboxJ^Q@K5&I<5J;3RV&l@gRIy)Z#Jr<$B7y^1$3<>XIDr{%UwZ?5bQ z6xUZ~`~F22z(tZZO-L1*L%jn39-uE3QY>cg%>V!ZC3HntbYx+4WjbSWWnpw>05UK! zIV~|TEio}vFfckbHaasnD=;!TFfj9*A&~$803~!qSaf7zbY(hiZ)9m^c>ppnF*z+U zFfB1LR4_0)H8wgkI4dwRIxsMT#+fYu0038dR9JLUVRs;Ka&Km7Y-J#Hd2nSQX>fF7 z004NL004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Re3JU-@CIlyCDgXcsk4Z#9RCwCe+-Z;;Tc_nY z(ln4%;3B*l*Wq);bwl0jBNz7`+HH4`0UiZCMlw2k;aHsCQlhiXQY{(6HlMdF<`S!-vI zpbGo&Q`{$fv4^mg;t180`C@0ZB-b01Lf`!w{u)bWfTUq;6U*x!Aw`c1A1qI$vpN>1 zm9SWbxgfm{eB7O9lpo-Kg%oWg4`+pU_F(O%gs{6Tcf^Rf`rd`V$Hmhyrvvy2 z{s-R{dTEb_bnPObR?y_8#3D@EC zc+(W!e;2-kJL;c1%@RpE8OBxmHCglV5zUj8@pMhnzvCg&Q99PyG1GjU7B3>Kwumyn zA*^DP*p7b{Qu~;O;=Ad@NhHkW_#@4wV~*e}B7}OtOOU88UO-qK_RPhHL?*Ne?7&~( zRvc_;xzXmCe(p)*7-4rFBLKBgT}nRBklyj3M@ zQpCrru}thkJSkS&)7|UG>aeqfWjwoqc^wwk@X*W=vqBiEi*O<)j94x|8sx>URL>R9%@qZQx z!8p?_O$+bF7qA!F3(b{dgqy|M?G+t-v3rB&$ytU}h?Q^w2E|f(xsaTdVmU29Ujw(i z8n4IQ>n)2Vnc@a-Z|IpG6Wd)qN!OTUWlJoni-dmpx%#sfD{y{IUeVC}PsDt@1K%K3 zT^)9{=KQWNSJIXutnLH}lIn-QCPm#-d5k4^ILIXJ!ds4Od z=}x(FRoS{cb4?DCRtSYW;Z2!o!hA8;Z?@~nu4!Puhz8Wj-}`#NsNohf*Fq zoT}FxO0KVX-J|W!s!;|8tD-eGrwK0J8N*ct^V-6?oY%mB_uz*mKAo1it$+0Vl)Y(p zQQcf|ZDvKT_brD~_CVjLr>er5vSnFSm^1r{ds*g!w$L5DW+g`O#Wn}OI%jzKFuz)+ z{GN)-^Ef2~No@Pm|^nzyM$fX%P7Ms58vN6`qoiaq#m8eu0-ui*}itilQ}uB zN|seE7tOrX6}Y&qhiaRI{VC5GDyo&KL4T<`&~VDOwXz+p%7R+zme*2O%nWgh+j>y= z8S`^Wi>kuTqM8y9vnx?UDI02cY|hEjs<66jSvdW~%`fyApw7$5t4I4Rt%@mKE~)+; zO4;MB(s%ntZESb!PkA~+fxeyt){KFiTr=9|s!rR$6uSjo;tr?mv3AGz`bRv`Ds@at z43*m$)ng%C#@w7-+G$%_wrp*cwiK12qEe1|(58vwxD&jqs9aXRuqj-k!)=ij?YVNW zJIQl$@`_H|s+8?2D%)yT;c&{`yj$bMRoL7rJ)bI9cKR%-rYh6pKwDJnEoy4SE^+g6 zvZ8ERR<;~S*|SCEnO5n!lnvM9bsxAX;`SBU5Bo-4-Dz81PP!WPRM^`Vm3u3j9=S_M zA#~h8*|NH9*{YI=+DWLYNA=WQ=-K7Ha6o8O%paAd2KAN z3X7}4S{x`UyHn-aBHLS3j-;&Wk-RQxkF+}mM*GZbPN$7vQ(Kf7Ri-Y*ds6ZiRfRe zADeA`LN6kZSYsDeg$t^}+LUc>m7Z>u`AEu-m3;gi!*hPt7uAhT;R!s-am%>TNp^c? zE4q4YVNR~-w6|W_Y5!H5cU{xz|NL1w-Kg1Kf^WAR*$wR^DV2K)#WzGN%u59s+cRG& z`0Q0>-^P_?tIV;7_|69JGlaWK^YlrIn{5$UC0`X)%(ES%VtIT_)PsCD^WZ*ZS-T!L zX>J!E?iFRGZm{JA8>c@Ob@IPC(~OLREE=sg;7)uiu{Dn=bgS#WmWb}UrUJ=PvDbR6 zU$6~@Ql&MFe-UqJV5S+W@w|AE-@-TWNaE1gQv~YPo+S2H|5P;LH-#UGMhh>fK)lJ0 zZoR`j^~BygLj-jj-X9gcMgNV56Z`TBT_N>+TUbqc58f||R+@^1M)6tU;UB{b2CpY^ zy)en=pW(p0q9b(Y!}zXvX+JSem)e*jmIb&>4|V@rpmbFDmZ- zaEb`(cFbb-&mqG0YV_(gFJ#=sQKaX+toZR5?MC2Bq{6AfZ-7Nt;&O?_tNQ}_cMJ+W--WaULq zh_2gzGCA*m6wiv2OYW@+dK5eQ^&dUzsCU_ZB0)ucuT|njy-^$#vU-wpm@GDmzR;uN zsl#yhhgs<}vuu0Lyq6wO4f*k1fD zzRdU~r>E$b93=djPveGh{^W>gDSl8W>iZpUDSm-}RNrTwFeKe-zAMCXTP^k!rX&eJ z0gU3$M4Qh^kD)moVT9heRV>~chd%NJqRjIWQH=M>nw$$odHA&K4K#>v;)B@KQo8XpO|BDAteI$% zzXfjt}I;O=ooBB#x3n zDDl4(*7K!C+yVT9@H6)^v5u7qTdF(jP(?Hz{IT#`24Nt^as z+WJKj?@xr&Ia?L}QPCCrF>$)eq|d`>;J~#O$`wK%yx+{6%X2bRBA@mNdC2QXLVw zv@a*VbobnmO*>P0-kh8|i9MNo`_bLAhp-cf>l4oHFV)0dDZ-_u@7WRI*#@DfzTGeF zxaF)v7FNX-Lh6U=@3+oM!cHKL2#;PaLaaB`zh5jOgNf8WWO1<3kT?vodm`PvVhIkz z?Q@T+$Gt`vqunAG_sFa!Y%K0FXbz6XlD$v_;+NK+6~b67a{OrJEHVfO#c^2ML@nD- z>(5h}y=k1x!u#f)FQqK!bfx1b>21KaUJ3hui<%TX>4S960000bbVXQnWMOn=I%9HW zVRU5xGB7bYEio`HF)>syFgi6hIx{#cFfuwYF!P%skpKVyC3HntbYx+4WjbwdWNBu3 z05UK!IV~|TEio}vFfckbHaasnD=;!TFff9~nJoYS09SfcSaechcOY6Cgx@G{a;ABePT> o%h=S&#LUDT#0SfONT5nC0O}VJbn-$ql>h($07*qoM6N<$f-!K{UjP6A diff --git a/docs/apple-touch-icon.png b/docs/apple-touch-icon.png deleted file mode 100644 index c52ffdffeb92596ff9434e3802b3978c91314a0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9960 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 e1Z7ZaBmvlErVTsRlFPqQ0Wj1x)v4EVjsHLB1az - - - - - - -Running Stan on the GPU with OpenCL • cmdstanr - - - - - - - - - - - - - - - - - - - -

-
- - - - -
-
- - - - -
-

Introduction -

-

This vignette demonstrates how to use the OpenCL capabilities of -CmdStan with CmdStanR. The functionality described in this vignette -requires CmdStan 2.26.1 or newer.

-

As of version 2.26.1, users can expect speedups with OpenCL when -using vectorized probability distribution functions (functions with the -_lpdf or _lpmf suffix) and when the input -variables contain at least 20,000 elements.

-

The actual speedup for a model will depend on the particular -lpdf/lpmf functions used and whether the -lpdf/lpmf functions are the bottlenecks of the model. The -more computationally complex the function is, the larger the expected -speedup. The biggest speedups are expected when using the specialized -GLM functions.

-

In order to establish the bottlenecks in your model we recommend -using profiling, -which was introduced in Stan version 2.26.0.

-
-
-

OpenCL runtime -

-

OpenCL is supported on most modern CPUs and GPUs. In order to use -OpenCL in CmdStanR, an OpenCL runtime for the target device must be -installed. A guide for the most common devices is available in the -CmdStan manual’s chapter -on parallelization.

-

In case of using Windows, CmdStan requires the -OpenCL.lib to compile the model. If you experience issue -compiling the model with OpenCL, run the below script and set -path_to_opencl_lib to the path to the -OpenCL.lib file on your system. If you are using CUDA, the -path should be similar to the one listed here.

-
-path_to_opencl_lib <- "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.5/lib/x64"
-cpp_options = list(
-  paste0("LDFLAGS+= -L\"",path_to_opencl_lib,"\" -lOpenCL")
-)
-
-cmdstanr::cmdstan_make_local(cpp_options = cpp_options)
-cmdstanr::rebuild_cmdstan()
-
-
-

Compiling a model with OpenCL -

-

By default, models in CmdStanR are compiled without OpenCL -support. Once OpenCL support is enabled, a CmdStan model will make use -of OpenCL if the functions in the model support it. Technically no -changes to a model are required to support OpenCL since the choice of -using OpenCL is handled by the compiler, but it can still be useful to -rewrite a model to be more OpenCL-friendly by using vectorization as -much as possible when using probability distributions.

-

Consider a simple logistic regression with parameters -alpha and beta, covariates X, and -outcome y.

-
data {
-  int<lower=1> k;
-  int<lower=0> n;
-  matrix[n, k] X;
-  array[n] int y;
-}
-parameters {
-  vector[k] beta;
-  real alpha;
-}
-model {
-  target += std_normal_lpdf(beta);
-  target += std_normal_lpdf(alpha);
-  target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);
-}
-

Some fake data will be useful to run this model:

-
-library(cmdstanr)
-
-# Generate some fake data
-n <- 250000
-k <- 20
-X <- matrix(rnorm(n * k), ncol = k)
-y <- rbinom(n, size = 1, prob = plogis(3 * X[,1] - 2 * X[,2] + 1))
-mdata <- list(k = k, n = n, y = y, X = X)
-

In this model, most of the computation will be handled by the -bernoulli_logit_glm_lpmf function. Because this is a -supported GPU function, it should be possible to accelerate it with -OpenCL. Check here -for a list of functions with OpenCL support.

-

To build the model with OpenCL support, add -cpp_options = list(stan_opencl = TRUE) at the compilation -step.

-
-# Compile the model with STAN_OPENCL=TRUE
-mod_cl <- cmdstan_model("opencl-files/bernoulli_logit_glm.stan",
-                        cpp_options = list(stan_opencl = TRUE))
-
-
-

Running models with OpenCL -

-

Running models with OpenCL requires specifying the OpenCL platform -and device on which to run the model (there can be multiple). If the -system has one GPU and no OpenCL CPU runtime, the platform and device -IDs of the GPU are typically both 0, but the -clinfo tool can be used to figure out for sure which -devices are available.

-

On an Ubuntu system with both CPU and GPU OpenCL support, -clinfo -l outputs:

-
Platform #0: AMD Accelerated Parallel Processing
- `-- Device #0: gfx906+sram-ecc
-Platform #1: Intel(R) CPU Runtime for OpenCL(TM) Applications
- `-- Device #0: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
-

On this system the GPU is platform ID 0 and device ID 0, while the -CPU is platform ID 1, device ID 0. These can be specified with the -opencl_ids argument when running a model. The -opencl_ids is supplied as a vector of length 2, where the -first element is the platform ID and the second argument is the device -ID.

-
-fit_cl <- mod_cl$sample(data = mdata, chains = 4, parallel_chains = 4,
-                        opencl_ids = c(0, 0), refresh = 0)
-

We’ll also run a version without OpenCL and compare the run -times.

-
-# no OpenCL version
-mod <- cmdstan_model("opencl-files/bernoulli_logit_glm.stan", force_recompile = TRUE)
-fit_cpu <- mod$sample(data = mdata, chains = 4, parallel_chains = 4, refresh = 0)
-

The speedup of the OpenCL model is:

-
-fit_cpu$time()$total / fit_cl$time()$total
-

This speedup will be determined by the particular GPU/CPU used, the -input problem sizes (data as well as parameters) and if the model uses -functions that can be run on the GPU or other OpenCL devices.

-
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/articles-online-only/opencl_files/header-attrs-2.11/header-attrs.js b/docs/articles/articles-online-only/opencl_files/header-attrs-2.11/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/articles-online-only/opencl_files/header-attrs-2.11/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/articles-online-only/opencl_files/header-attrs-2.13/header-attrs.js b/docs/articles/articles-online-only/opencl_files/header-attrs-2.13/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/articles-online-only/opencl_files/header-attrs-2.13/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/articles-online-only/opencl_files/header-attrs-2.9/header-attrs.js b/docs/articles/articles-online-only/opencl_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/articles-online-only/opencl_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/children/settings-knitr.html b/docs/articles/children/settings-knitr.html deleted file mode 100644 index 8e09adeb5..000000000 --- a/docs/articles/children/settings-knitr.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - • cmdstanr - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - - -
- - - -
- - - -
- -
-

Site built with pkgdown 1.6.1.

-
- -
-
- - - - - - diff --git a/docs/articles/children/settings-knitr_files/header-attrs-2.9/header-attrs.js b/docs/articles/children/settings-knitr_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/children/settings-knitr_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr-internals.html b/docs/articles/cmdstanr-internals.html deleted file mode 100644 index 1b68fe28c..000000000 --- a/docs/articles/cmdstanr-internals.html +++ /dev/null @@ -1,1004 +0,0 @@ - - - - - - - -How does CmdStanR work? • cmdstanr - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -
-

Introduction -

-

This vignette is intended to be read after the Getting -started with CmdStanR vignette. Please read that first for -important background. In this document we provide additional details -about compiling models, passing in data, and how CmdStan output is saved -and read back into R.

-

We will only use the $sample() method in examples, but -all model fitting methods work in a similar way under the hood.

-
-library(cmdstanr)
-check_cmdstan_toolchain(fix = TRUE, quiet = TRUE)
-
-
-

Compilation -

-
-

Immediate compilation -

-

The cmdstan_model() function creates a new -CmdStanModel object. The CmdStanModel object -stores the path to a Stan program as well as the path to a compiled -executable.

-
-stan_file <- file.path(cmdstan_path(), "examples", "bernoulli", "bernoulli.stan")
-mod <- cmdstan_model(stan_file)
-mod$print()
-
data {
-  int<lower=0> N;
-  array[N] int<lower=0, upper=1> y;
-}
-parameters {
-  real<lower=0, upper=1> theta;
-}
-model {
-  theta ~ beta(1, 1); // uniform prior on interval 0,1
-  y ~ bernoulli(theta);
-}
-
-mod$stan_file()
-
[1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli.stan"
-
-mod$exe_file()
-
[1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli"
-

Subsequently, if you create a CmdStanModel object from -the same Stan file then compilation will be skipped (assuming the file -hasn’t changed).

-
-mod <- cmdstan_model(stan_file)
-

Internally, cmdstan_model() first creates the -CmdStanModel object from just the Stan file and then calls -its $compile() -method. Optional arguments to the $compile() method can be -passed via ....

-
-mod <- cmdstan_model(
-  stan_file,
-  force_recompile = TRUE,
-  include_paths = "paths/to/directories/with/included/files",
-  cpp_options = list(stan_threads = TRUE, STANC2 = TRUE)
-)
-
-
-

Delayed compilation -

-

It is also possible to delay compilation when creating the -CmdStanModel object by specifying -compile=FALSE and then later calling the -$compile() method directly.

-
-unlink(mod$exe_file())
-mod <- cmdstan_model(stan_file, compile = FALSE)
-mod$exe_file() # not yet created
-
character(0)
-
-mod$compile()
-mod$exe_file()
-
[1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli"
-
-
-

Pedantic check -

-

If you are using CmdStan version 2.24 or later and CmdStanR version -0.2.1 or later, you can run a pedantic check for your model. CmdStanR -will always check that your Stan program does not contain any invalid -syntax but with pedantic mode enabled the check will also warn you about -other potential issues in your model, for example:

-
    -
  • Distribution usages issues: distribution arguments do not match the -distribution specification, or some specific distribution is used in an -inadvisable way.
  • -
  • Unused parameter: a parameter is defined but does not contribute to -target.
  • -
  • Large or small constant in a distribution: very large or very small -constants are used as distribution arguments.
  • -
  • Control flow depends on a parameter: branching control flow (like -if/else) depends on a parameter value.
  • -
  • Parameter has multiple twiddles: a parameter is on the left-hand -side of multiple twiddles (i.e., multiple ~ symbols).
  • -
  • Parameter has zero or multiple priors: a parameter has zero or more -than one prior distribution.
  • -
  • Variable is used before assignment: a variable is used before being -assigned a value.
  • -
  • Strict or nonsensical parameter bounds: a parameter is given -questionable bounds.
  • -
-

For the latest information on the checks performed in pedantic mode -see the Pedantic -mode chapter in the Stan Reference Manual.

-

Pedantic mode is available when compiling the model or when using the -separate $check_syntax() method of a -CmdStanModel object. Internally this corresponds to setting -the stanc (Stan transpiler) option -warn-pedantic. Here we demonstrate pedantic mode with a -Stan program that is syntactically correct but is missing a lower bound -and a prior for a parameter.

-
-stan_file_pedantic <- write_stan_file("
-data {
-  int N;
-  array[N] int y;
-}
-parameters {
-  // should have <lower=0> but omitting to demonstrate pedantic mode
-  real lambda;
-}
-model {
-  y ~ poisson(lambda);
-}
-")
-

To turn on pedantic mode at compile time you can set -pedantic=TRUE in the call to cmdstan_model() -(or when calling the $compile() method directly if using -the delayed compilation approach described above).

-
mod_pedantic <- cmdstan_model(stan_file_pedantic, pedantic = TRUE)
-Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b6650db73c.stan', line 11, column 14: A
-    poisson distribution is given parameter lambda as a rate parameter
-    (argument 1), but lambda was not constrained to be strictly positive.
-Warning: The parameter lambda has no priors. This means either no prior is
-    provided, or the prior(s) depend on data variables. In the later case,
-    this may be a false positive.
-

To turn on pedantic mode separately from compilation use the -pedantic argument to the $check_syntax() -method.

-
mod_pedantic$check_syntax(pedantic = TRUE)
-Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model_febb1e69c7387a0e64cf13583e078104.stan', line 11, column 14: A
-    poisson distribution is given parameter lambda as a rate parameter
-    (argument 1), but lambda was not constrained to be strictly positive.
-Warning: The parameter lambda has no priors. This means either no prior is
-    provided, or the prior(s) depend on data variables. In the later case,
-    this may be a false positive.
-Stan program is syntactically correct
-

Using pedantic=TRUE via the $check_syntax() -method also has the advantage that it can be used even if the model -hasn’t been compiled yet. This can be helpful because the pedantic and -syntax checks themselves are much faster than compilation.

-
file.remove(mod_pedantic$exe_file()) # delete compiled executable
-[1] TRUE
-rm(mod_pedantic)
-
-mod_pedantic <- cmdstan_model(stan_file_pedantic, compile = FALSE)
-mod_pedantic$check_syntax(pedantic = TRUE)
-Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model_febb1e69c7387a0e64cf13583e078104.stan', line 11, column 14: A
-    poisson distribution is given parameter lambda as a rate parameter
-    (argument 1), but lambda was not constrained to be strictly positive.
-Warning: The parameter lambda has no priors. This means either no prior is
-    provided, or the prior(s) depend on data variables. In the later case,
-    this may be a false positive.
-Stan program is syntactically correct
-
-
-

Stan model variables -

-

If using CmdStan 2.27 or newer, you can obtain the names, types and -dimensions of the data, parameters, transformed parameters and generated -quantities variables of a Stan model using the $variables() -method of the CmdStanModel object.

-
-stan_file_variables <- write_stan_file("
-data {
-  int<lower=1> J;
-  vector<lower=0>[J] sigma;
-  vector[J] y;
-}
-parameters {
-  real mu;
-  real<lower=0> tau;
-  vector[J] theta_raw;
-}
-transformed parameters {
-  vector[J] theta = mu + tau * theta_raw;
-}
-model {
-  target += normal_lpdf(tau | 0, 10);
-  target += normal_lpdf(mu | 0, 10);
-  target += normal_lpdf(theta_raw | 0, 1);
-  target += normal_lpdf(y | theta, sigma);
-}
-")
-mod_v <- cmdstan_model(stan_file_variables)
-variables <- mod_v$variables()
-

The $variables() method returns a list with -data, parameters, -transformed_parameters and -generated_quantities elements, each corresponding to -variables in their respective block of the program. Transformed data -variables are not listed as they are not used in the model’s input or -output.

-
-names(variables)
-
[1] "parameters"             "included_files"         "data"                  
-[4] "transformed_parameters" "generated_quantities"  
-
-names(variables$data)
-
[1] "J"     "sigma" "y"    
-
-names(variables$parameters)
-
[1] "mu"        "tau"       "theta_raw"
-
-names(variables$transformed_parameters)
-
[1] "theta"
-
-names(variables$generated_quantities)
-
character(0)
-

Each variable is represented as a list containing the type -information (currently limited to real or int) -and the number of dimensions.

-
-variables$data$J
-
$type
-[1] "int"
-
-$dimensions
-[1] 0
-
-variables$data$sigma
-
$type
-[1] "real"
-
-$dimensions
-[1] 1
-
-variables$parameters$tau
-
$type
-[1] "real"
-
-$dimensions
-[1] 0
-
-variables$transformed_parameters$theta
-
$type
-[1] "real"
-
-$dimensions
-[1] 1
-
-
-

Executable location -

-

By default, the executable is created in the same directory as the -file containing the Stan program. You can also specify a different -location with the dir argument.

-
-mod <- cmdstan_model(stan_file, dir = "path/to/directory/for/executable")
-
-
-
-

Processing data -

-

There are three data formats that CmdStanR allows when fitting a -model:

-
    -
  • named list of R objects
  • -
  • JSON file
  • -
  • R dump file
  • -
-
-

Named list of R objects -

-

Like the RStan interface, CmdStanR accepts a named list of R objects -where the names correspond to variables declared in the data block of -the Stan program. In the Bernoulli model the data is N, the -number of data points, and y an integer array of -observations.

-
-mod$print()
-
data {
-  int<lower=0> N;
-  array[N] int<lower=0, upper=1> y;
-}
-parameters {
-  real<lower=0, upper=1> theta;
-}
-model {
-  theta ~ beta(1, 1); // uniform prior on interval 0,1
-  y ~ bernoulli(theta);
-}
-
-# data block has 'N' and 'y'
-data_list <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
-fit <- mod$sample(data = data_list)
-

Because CmdStan doesn’t accept lists of R objects, CmdStanR will -first write the data to a temporary JSON file using -write_stan_json(). This happens internally, but it is also -possible to call write_stan_json() directly.

-
-data_list <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
-json_file <- tempfile(fileext = ".json")
-write_stan_json(data_list, json_file)
-cat(readLines(json_file), sep = "\n")
-
{
-  "N": 10,
-  "y": [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]
-}
-
-
-

JSON file -

-

If you already have your data in a JSON file you can just pass that -file directly to CmdStanR instead of using a list of R objects. For -example, we could pass in the JSON file we created above using -write_stan_json():

-
-fit <- mod$sample(data = json_file)
-
-
-

R dump file -

-

Finally, it is also possible to use the R dump file format. This is -not recommended because CmdStan can process JSON faster than R -dump, but CmdStanR allows it because CmdStan will accept files created -by rstan::stan_rdump():

-
-rdump_file <- tempfile(fileext = ".data.R")
-rstan::stan_rdump(names(data_list), file = rdump_file, envir = list2env(data_list))
-cat(readLines(rdump_file), sep = "\n")
-fit <- mod$sample(data = rdump_file)
-
-
-
-

Writing CmdStan output to CSV -

-
-

Default temporary files -

-
-data_list <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
-fit <- mod$sample(data = data_list)
-

When fitting a model, the default behavior is to write the output -from CmdStan to CSV files in a temporary directory.

-
-fit$output_files()
-
[1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-1-5c7cee.csv"
-[2] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-2-5c7cee.csv"
-[3] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-3-5c7cee.csv"
-[4] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-4-5c7cee.csv"
-

These files will be lost if you end your R session or if you remove -the fit object and force (or wait for) garbage -collection.

-
-files <- fit$output_files()
-file.exists(files)
-
[1] TRUE TRUE TRUE TRUE
-
-rm(fit)
-gc()
-
          used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
-Ncells 1161565 62.1    2340494  125         NA  1595651 85.3
-Vcells 2051945 15.7    8388608   64      32768  4957304 37.9
-
-file.exists(files)
-
[1] FALSE FALSE FALSE FALSE
-
-
-

Non-temporary files -

-

To save these files to a non-temporary location there are two -options. You can either specify the output_dir argument to -mod$sample() or use fit$save_output_files() -after fitting the model.

-
-# see ?save_output_files for info on optional arguments
-fit$save_output_files(dir = "path/to/directory")
-
-fit <- mod$sample(
-  data = data_list,
-  output_dir = "path/to/directory"
-)
-
-
-
-

Reading CmdStan output into R -

-
-

Lazy CSV reading -

-

With the exception of some diagnostic information, the CSV files are -not read into R until their contents are requested by calling a method -that requires them (e.g., fit$draws(), -fit$summary(), etc.). If we examine the structure of the -fit object, notice how the Private slot -draws_ is NULL, indicating that the CSV files -haven’t yet been read into R.

-
-str(fit)
-
Classes 'CmdStanMCMC', 'CmdStanFit', 'R6' <CmdStanMCMC>
-  Inherits from: <CmdStanFit>
-  Public:
-    clone: function (deep = FALSE) 
-    cmdstan_diagnose: function () 
-    cmdstan_summary: function (flags = NULL) 
-    code: function () 
-    config_files: function (include_failed = FALSE) 
-    constrain_variables: function (unconstrained_variables, transformed_parameters = TRUE, 
-    data_file: function () 
-    diagnostic_summary: function (diagnostics = c("divergences", "treedepth", "ebfmi"), 
-    draws: function (variables = NULL, inc_warmup = FALSE, format = getOption("cmdstanr_draws_format", 
-    expose_functions: function (global = FALSE, verbose = FALSE) 
-    functions: environment
-    grad_log_prob: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    hessian: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    init: function () 
-    init_model_methods: function (seed = 1, verbose = FALSE, hessian = FALSE) 
-    initialize: function (runset) 
-    inv_metric: function (matrix = TRUE) 
-    latent_dynamics_files: function (include_failed = FALSE) 
-    log_prob: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    loo: function (variables = "log_lik", r_eff = TRUE, moment_match = FALSE, 
-    lp: function () 
-    metadata: function () 
-    metric_files: function (include_failed = FALSE) 
-    num_chains: function () 
-    num_procs: function () 
-    output: function (id = NULL) 
-    output_files: function (include_failed = FALSE) 
-    print: function (variables = NULL, ..., digits = 2, max_rows = getOption("cmdstanr_max_rows", 
-    profile_files: function (include_failed = FALSE) 
-    profiles: function () 
-    return_codes: function () 
-    runset: CmdStanRun, R6
-    sampler_diagnostics: function (inc_warmup = FALSE, format = getOption("cmdstanr_draws_format", 
-    save_config_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_data_file: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_latent_dynamics_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_metric_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_object: function (file, ...) 
-    save_output_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_profile_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    summary: function (variables = NULL, ...) 
-    time: function () 
-    unconstrain_draws: function (files = NULL, draws = NULL, format = getOption("cmdstanr_draws_format", 
-    unconstrain_variables: function (variables) 
-    variable_skeleton: function (transformed_parameters = TRUE, generated_quantities = TRUE) 
-  Private:
-    draws_: NULL
-    init_: NULL
-    inv_metric_: list
-    metadata_: list
-    model_methods_env_: environment
-    profiles_: NULL
-    read_csv_: function (variables = NULL, sampler_diagnostics = NULL, format = getOption("cmdstanr_draws_format", 
-    return_codes_: 0 0 0 0
-    sampler_diagnostics_: 2 1 1 2 2 1 2 2 1 2 1 1 1 2 2 1 2 1 1 1 1 2 2 2 1 2 1 1  ...
-    warmup_draws_: NULL
-    warmup_sampler_diagnostics_: NULL 
-

After we call a method that requires the draws then if we reexamine -the structure of the object we will see that the draws_ -slot in Private is no longer empty.

-
-draws <- fit$draws() # force CSVs to be read into R
-str(fit)
-
Classes 'CmdStanMCMC', 'CmdStanFit', 'R6' <CmdStanMCMC>
-  Inherits from: <CmdStanFit>
-  Public:
-    clone: function (deep = FALSE) 
-    cmdstan_diagnose: function () 
-    cmdstan_summary: function (flags = NULL) 
-    code: function () 
-    config_files: function (include_failed = FALSE) 
-    constrain_variables: function (unconstrained_variables, transformed_parameters = TRUE, 
-    data_file: function () 
-    diagnostic_summary: function (diagnostics = c("divergences", "treedepth", "ebfmi"), 
-    draws: function (variables = NULL, inc_warmup = FALSE, format = getOption("cmdstanr_draws_format", 
-    expose_functions: function (global = FALSE, verbose = FALSE) 
-    functions: environment
-    grad_log_prob: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    hessian: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    init: function () 
-    init_model_methods: function (seed = 1, verbose = FALSE, hessian = FALSE) 
-    initialize: function (runset) 
-    inv_metric: function (matrix = TRUE) 
-    latent_dynamics_files: function (include_failed = FALSE) 
-    log_prob: function (unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL) 
-    loo: function (variables = "log_lik", r_eff = TRUE, moment_match = FALSE, 
-    lp: function () 
-    metadata: function () 
-    metric_files: function (include_failed = FALSE) 
-    num_chains: function () 
-    num_procs: function () 
-    output: function (id = NULL) 
-    output_files: function (include_failed = FALSE) 
-    print: function (variables = NULL, ..., digits = 2, max_rows = getOption("cmdstanr_max_rows", 
-    profile_files: function (include_failed = FALSE) 
-    profiles: function () 
-    return_codes: function () 
-    runset: CmdStanRun, R6
-    sampler_diagnostics: function (inc_warmup = FALSE, format = getOption("cmdstanr_draws_format", 
-    save_config_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_data_file: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_latent_dynamics_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_metric_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_object: function (file, ...) 
-    save_output_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    save_profile_files: function (dir = ".", basename = NULL, timestamp = TRUE, random = TRUE) 
-    summary: function (variables = NULL, ...) 
-    time: function () 
-    unconstrain_draws: function (files = NULL, draws = NULL, format = getOption("cmdstanr_draws_format", 
-    unconstrain_variables: function (variables) 
-    variable_skeleton: function (transformed_parameters = TRUE, generated_quantities = TRUE) 
-  Private:
-    draws_: -7.45006 -7.1701 -7.11437 -6.74834 -7.04353 -6.79703 -7. ...
-    init_: NULL
-    inv_metric_: list
-    metadata_: list
-    model_methods_env_: environment
-    profiles_: NULL
-    read_csv_: function (variables = NULL, sampler_diagnostics = NULL, format = getOption("cmdstanr_draws_format", 
-    return_codes_: 0 0 0 0
-    sampler_diagnostics_: 2 1 1 2 2 1 2 2 1 2 1 1 1 2 2 1 2 1 1 1 1 2 2 2 1 2 1 1  ...
-    warmup_draws_: NULL
-    warmup_sampler_diagnostics_: NULL 
-

For models with many parameters, transformed parameters, or generated -quantities, if only some are requested (e.g., by specifying the -variables argument to fit$draws()) then -CmdStanR will only read in the requested variables (unless they have -already been read in).

-
-
-

read_cmdstan_csv() -

-

Internally, the read_cmdstan_csv() function is used to -read the CmdStan CSV files into R. This function is exposed to users, so -you can also call it directly.

-
-# see ?read_cmdstan_csv for info on optional arguments controlling
-# what information is read in
-csv_contents <- read_cmdstan_csv(fit$output_files())
-str(csv_contents)
-
List of 8
- $ metadata                       :List of 42
-  ..$ stan_version_major  : num 2
-  ..$ stan_version_minor  : num 36
-  ..$ stan_version_patch  : num 0
-  ..$ start_datetime      : chr "2025-03-31 14:50:13 UTC"
-  ..$ method              : chr "sample"
-  ..$ save_warmup         : int 0
-  ..$ thin                : num 1
-  ..$ gamma               : num 0.05
-  ..$ kappa               : num 0.75
-  ..$ t0                  : num 10
-  ..$ init_buffer         : num 75
-  ..$ term_buffer         : num 50
-  ..$ window              : num 25
-  ..$ save_metric         : int 0
-  ..$ algorithm           : chr "hmc"
-  ..$ engine              : chr "nuts"
-  ..$ metric              : chr "diag_e"
-  ..$ stepsize_jitter     : num 0
-  ..$ num_chains          : num 1
-  ..$ id                  : num [1:4] 1 2 3 4
-  ..$ init                : num [1:4] 2 2 2 2
-  ..$ seed                : num 31749990
-  ..$ refresh             : num 100
-  ..$ sig_figs            : num -1
-  ..$ profile_file        : chr "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-profile-202503310850-1-2d08be.csv"
-  ..$ save_cmdstan_config : int 0
-  ..$ stanc_version       : chr "stanc3 v2.36.0"
-  ..$ sampler_diagnostics : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
-  ..$ variables           : chr [1:2] "lp__" "theta"
-  ..$ step_size_adaptation: num [1:4] 0.973 0.888 0.942 1.142
-  ..$ model_name          : chr "bernoulli_model"
-  ..$ adapt_engaged       : int 1
-  ..$ adapt_delta         : num 0.8
-  ..$ max_treedepth       : num 10
-  ..$ step_size           : num [1:4] 1 1 1 1
-  ..$ iter_warmup         : num 1000
-  ..$ iter_sampling       : num 1000
-  ..$ threads_per_chain   : num 1
-  ..$ time                :'data.frame':    4 obs. of  4 variables:
-  .. ..$ chain_id: num [1:4] 1 2 3 4
-  .. ..$ warmup  : num [1:4] 0.004 0.004 0.004 0.005
-  .. ..$ sampling: num [1:4] 0.014 0.014 0.012 0.013
-  .. ..$ total   : num [1:4] 0.018 0.018 0.016 0.018
-  ..$ stan_variable_sizes :List of 2
-  .. ..$ lp__ : num 1
-  .. ..$ theta: num 1
-  ..$ stan_variables      : chr [1:2] "lp__" "theta"
-  ..$ model_params        : chr [1:2] "lp__" "theta"
- $ time                           :List of 2
-  ..$ total : int NA
-  ..$ chains:'data.frame':  4 obs. of  4 variables:
-  .. ..$ chain_id: num [1:4] 1 2 3 4
-  .. ..$ warmup  : num [1:4] 0.004 0.004 0.004 0.005
-  .. ..$ sampling: num [1:4] 0.014 0.014 0.012 0.013
-  .. ..$ total   : num [1:4] 0.018 0.018 0.016 0.018
- $ inv_metric                     :List of 4
-  ..$ 1: num 0.489
-  ..$ 2: num 0.45
-  ..$ 3: num 0.577
-  ..$ 4: num 0.541
- $ step_size                      :List of 4
-  ..$ 1: num 0.973
-  ..$ 2: num 0.888
-  ..$ 3: num 0.942
-  ..$ 4: num 1.14
- $ warmup_draws                   : NULL
- $ post_warmup_draws              : 'draws_array' num [1:1000, 1:4, 1:2] -7.45 -7.17 -7.11 -6.75 -7.04 ...
-  ..- attr(*, "dimnames")=List of 3
-  .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
-  .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
-  .. ..$ variable : chr [1:2] "lp__" "theta"
- $ warmup_sampler_diagnostics     : NULL
- $ post_warmup_sampler_diagnostics: 'draws_array' num [1:1000, 1:4, 1:6] 0.9 1 1 0.911 0.801 ...
-  ..- attr(*, "dimnames")=List of 3
-  .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
-  .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
-  .. ..$ variable : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
-
-
-

as_cmdstan_fit() -

-

If you need to manually create fitted model objects from CmdStan CSV -files use as_cmdstan_fit().

-
-fit2 <- as_cmdstan_fit(fit$output_files())
-

This is pointless in our case since we have the original -fit object, but this function can be used to create fitted -model objects (CmdStanMCMC, CmdStanMLE, etc.) -from any CmdStan CSV files.

-
-
-

Saving and accessing advanced algorithm info (latent dynamics) -

-

If save_latent_dynamics is set to TRUE when -running the $sample() method then additional CSV files are -created (one per chain) that provide access to quantities used under the -hood by Stan’s implementation of dynamic Hamiltonian Monte Carlo.

-

CmdStanR does not yet provide a special method for processing these -files but they can be read into R using R’s standard CSV reading -functions.

-
-fit <- mod$sample(data = data_list, save_latent_dynamics = TRUE)
-
-fit$latent_dynamics_files()
-
[1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-diagnostic-202503310850-1-060b43.csv"
-[2] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-diagnostic-202503310850-2-060b43.csv"
-[3] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-diagnostic-202503310850-3-060b43.csv"
-[4] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-diagnostic-202503310850-4-060b43.csv"
-
-# read one of the files in
-x <- utils::read.csv(fit$latent_dynamics_files()[1], comment.char = "#")
-head(x)
-
      lp__ accept_stat__ stepsize__ treedepth__ n_leapfrog__ divergent__
-1 -7.00899      0.935119    1.06923           1            3           0
-2 -7.29900      0.886772    1.06923           1            1           0
-3 -6.82892      1.000000    1.06923           1            1           0
-4 -6.82025      1.000000    1.06923           1            1           0
-5 -6.75311      0.993504    1.06923           2            3           0
-6 -6.89721      0.960772    1.06923           1            3           0
-  energy__     theta   p_theta   g_theta
-1  7.05933 -0.633893  0.440038  1.159540
-2  7.38011 -0.432323 -0.558539  1.722860
-3  7.12220 -0.836018 -1.062060  0.628489
-4  6.85073 -0.850225  0.342380  0.592629
-5  6.85434 -1.166260  0.623978 -0.149621
-6  6.92007 -0.744453  0.296526  0.864374
-

The column lp__ is also provided via -fit$draws(), and the columns accept_stat__, -stepsize__, treedepth__, -n_leapfrog__, divergent__, and -energy__ are also provided by -fit$sampler_diagnostics(), but there are several columns -unique to the latent dynamics file.

-
-head(x[, c("theta", "p_theta", "g_theta")])
-
      theta   p_theta   g_theta
-1 -0.633893  0.440038  1.159540
-2 -0.432323 -0.558539  1.722860
-3 -0.836018 -1.062060  0.628489
-4 -0.850225  0.342380  0.592629
-5 -1.166260  0.623978 -0.149621
-6 -0.744453  0.296526  0.864374
-

Our model has a single parameter theta and the three -columns above correspond to theta in the -unconstrained space (theta on the constrained -space is accessed via fit$draws()), the auxiliary momentum -p_theta, and the gradient g_theta. In general, -each of these three columns will exist for every parameter in -the model.

-
-
-
-

Developing using CmdStanR -

-

CmdStanR can of course be used for developing other packages that -require compiling and running Stan models as well as using new or custom -Stan features available through CmdStan.

-
-

Pre-compiled Stan models in R packages -

-

You may compile a Stan model at runtime (e.g. just before sampling), -or you may compile all the models inside the package file system in -advance at installation time. The latter avoids compilations at runtime, -which matters in centrally managed R installations where users should -not compile their own software.

-

To pre-compile all the models in a package, you may create top-level -scripts configure and configure.win which run -cmdstan_model() with compile = TRUE and save -the compiled executables somewhere inside the inst/ folder -of the package source. The instantiate -package helps developers configure packages this way, and it documents -other topics such as submitting to CRAN and administering CmdStan. Kevin -Ushey’s configure -package helps create and manage package configuration files in -general.

-
-
-

Troubleshooting and debugging -

-

When developing or testing new features it might be useful to have -more information on how CmdStan is called internally and to see more -information printed when compiling or running models. This can be -enabled for an entire R session by setting the option -"cmdstanr_verbose" to TRUE.

-
-options("cmdstanr_verbose"=TRUE)
-
-mod <- cmdstan_model(stan_file, force_recompile = TRUE)
-
Running make \
-  /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19 \
-  "STANCFLAGS +=  --name='bernoulli_model'"
-
---- Translating Stan model to C++ code ---
-bin/stanc --name='bernoulli_model' --o=/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.hpp /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.stan
-
---- Compiling C++ code ---
-clang++ -O3 -march=native -mtune=native -Wno-deprecated-declarations -std=c++17 -Wno-unknown-warning-option -Wno-tautological-compare -Wno-sign-compare -D_REENTRANT -Wno-ignored-attributes      -I stan/lib/stan_math/lib/tbb_2020.3/include    -O3 -I src -I stan/src -I stan/lib/rapidjson_1.1.0/ -I lib/CLI11-1.9.1/ -I stan/lib/stan_math/ -I stan/lib/stan_math/lib/eigen_3.4.0 -I stan/lib/stan_math/lib/boost_1.84.0 -I stan/lib/stan_math/lib/sundials_6.1.1/include -I stan/lib/stan_math/lib/sundials_6.1.1/src/sundials    -DBOOST_DISABLE_ASSERTS          -c -include-pch stan/src/stan/model/model_header.hpp.gch/model_header_16_0.hpp.gch -x c++ -o /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.o /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.hpp
-
---- Linking model ---
-clang++ -O3 -march=native -mtune=native -Wno-deprecated-declarations -std=c++17 -Wno-unknown-warning-option -Wno-tautological-compare -Wno-sign-compare -D_REENTRANT -Wno-ignored-attributes      -I stan/lib/stan_math/lib/tbb_2020.3/include    -O3 -I src -I stan/src -I stan/lib/rapidjson_1.1.0/ -I lib/CLI11-1.9.1/ -I stan/lib/stan_math/ -I stan/lib/stan_math/lib/eigen_3.4.0 -I stan/lib/stan_math/lib/boost_1.84.0 -I stan/lib/stan_math/lib/sundials_6.1.1/include -I stan/lib/stan_math/lib/sundials_6.1.1/src/sundials    -DBOOST_DISABLE_ASSERTS               -Wl,-L,"/Users/jgabry/.cmdstan/cmdstan-2.36.0/stan/lib/stan_math/lib/tbb"   -Wl,-rpath,"/Users/jgabry/.cmdstan/cmdstan-2.36.0/stan/lib/stan_math/lib/tbb"      /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.o src/cmdstan/main.o       -ltbb   stan/lib/stan_math/lib/sundials_6.1.1/lib/libsundials_nvecserial.a stan/lib/stan_math/lib/sundials_6.1.1/lib/libsundials_cvodes.a stan/lib/stan_math/lib/sundials_6.1.1/lib/libsundials_idas.a stan/lib/stan_math/lib/sundials_6.1.1/lib/libsundials_kinsol.a  stan/lib/stan_math/lib/tbb/libtbb.dylib stan/lib/stan_math/lib/tbb/libtbbmalloc.dylib stan/lib/stan_math/lib/tbb/libtbbmalloc_proxy.dylib -o /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19
-rm /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.o /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/model-d1b65860dc19.hpp
-
-fit <- mod$sample(
-  data = data_list,
-  chains = 1,
-  iter_warmup = 100,
-  iter_sampling = 100
-)
-
Running MCMC with 1 chain...
-
-Running ./bernoulli 'id=1' random 'seed=1376020223' data \
-  'file=/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/standata-d1b61e77387.json' \
-  output \
-  'file=/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-1-1ead10.csv' \
-  'profile_file=/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-profile-202503310850-1-3e64eb.csv' \
-  'method=sample' 'num_samples=100' 'num_warmup=100' 'save_warmup=0' \
-  'algorithm=hmc' 'engine=nuts' adapt 'engaged=1'
-Chain 1 method = sample (Default) 
-Chain 1   sample 
-Chain 1     num_samples = 100 
-Chain 1     num_warmup = 100 
-Chain 1     save_warmup = false (Default) 
-Chain 1     thin = 1 (Default) 
-Chain 1     adapt 
-Chain 1       engaged = true (Default) 
-Chain 1       gamma = 0.05 (Default) 
-Chain 1       delta = 0.8 (Default) 
-Chain 1       kappa = 0.75 (Default) 
-Chain 1       t0 = 10 (Default) 
-Chain 1       init_buffer = 75 (Default) 
-Chain 1       term_buffer = 50 (Default) 
-Chain 1       window = 25 (Default) 
-Chain 1       save_metric = false (Default) 
-Chain 1     algorithm = hmc (Default) 
-Chain 1       hmc 
-Chain 1         engine = nuts (Default) 
-Chain 1           nuts 
-Chain 1             max_depth = 10 (Default) 
-Chain 1         metric = diag_e (Default) 
-Chain 1         metric_file =  (Default) 
-Chain 1         stepsize = 1 (Default) 
-Chain 1         stepsize_jitter = 0 (Default) 
-Chain 1     num_chains = 1 (Default) 
-Chain 1 id = 1 (Default) 
-Chain 1 data 
-Chain 1   file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/standata-d1b61e77387.json 
-Chain 1 init = 2 (Default) 
-Chain 1 random 
-Chain 1   seed = 1376020223 
-Chain 1 output 
-Chain 1   file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-202503310850-1-1ead10.csv 
-Chain 1   diagnostic_file =  (Default) 
-Chain 1   refresh = 100 (Default) 
-Chain 1   sig_figs = -1 (Default) 
-Chain 1   profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpI5U8HG/bernoulli-profile-202503310850-1-3e64eb.csv 
-Chain 1   save_cmdstan_config = false (Default) 
-Chain 1 num_threads = 1 (Default) 
-Chain 1 Gradient evaluation took 1e-05 seconds 
-Chain 1 1000 transitions using 10 leapfrog steps per transition would take 0.1 seconds. 
-Chain 1 Adjust your expectations accordingly! 
-Chain 1 WARNING: There aren't enough warmup iterations to fit the 
-Chain 1          three stages of adaptation as currently configured. 
-Chain 1          Reducing each adaptation stage to 15%/75%/10% of 
-Chain 1          the given number of warmup iterations: 
-Chain 1            init_buffer = 15 
-Chain 1            adapt_window = 75 
-Chain 1            term_buffer = 10 
-Chain 1 Iteration:   1 / 200 [  0%]  (Warmup) 
-Chain 1 Iteration: 100 / 200 [ 50%]  (Warmup) 
-Chain 1 Iteration: 101 / 200 [ 50%]  (Sampling) 
-Chain 1 Iteration: 200 / 200 [100%]  (Sampling) 
-Chain 1  Elapsed Time: 0 seconds (Warm-up) 
-Chain 1                0.001 seconds (Sampling) 
-Chain 1                0.001 seconds (Total) 
-Chain 1 finished in 0.0 seconds.
-
-
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/cmdstanr-internals_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/articles/cmdstanr-internals_files/accessible-code-block-0.0.1/empty-anchor.js deleted file mode 100644 index ca349fd6a..000000000 --- a/docs/articles/cmdstanr-internals_files/accessible-code-block-0.0.1/empty-anchor.js +++ /dev/null @@ -1,15 +0,0 @@ -// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> -// v0.0.1 -// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. - -document.addEventListener('DOMContentLoaded', function() { - const codeList = document.getElementsByClassName("sourceCode"); - for (var i = 0; i < codeList.length; i++) { - var linkList = codeList[i].getElementsByTagName('a'); - for (var j = 0; j < linkList.length; j++) { - if (linkList[j].innerHTML === "") { - linkList[j].setAttribute('aria-hidden', 'true'); - } - } - } -}); diff --git a/docs/articles/cmdstanr-internals_files/header-attrs-2.3/header-attrs.js b/docs/articles/cmdstanr-internals_files/header-attrs-2.3/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr-internals_files/header-attrs-2.3/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr-internals_files/header-attrs-2.6/header-attrs.js b/docs/articles/cmdstanr-internals_files/header-attrs-2.6/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr-internals_files/header-attrs-2.6/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr-internals_files/header-attrs-2.8/header-attrs.js b/docs/articles/cmdstanr-internals_files/header-attrs-2.8/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr-internals_files/header-attrs-2.8/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr-internals_files/header-attrs-2.9/header-attrs.js b/docs/articles/cmdstanr-internals_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr-internals_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr.html b/docs/articles/cmdstanr.html deleted file mode 100644 index ba3adac47..000000000 --- a/docs/articles/cmdstanr.html +++ /dev/null @@ -1,900 +0,0 @@ - - - - - - - -Getting started with CmdStanR • cmdstanr - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -
-

Introduction -

-

CmdStanR (Command Stan R) is a lightweight interface to Stan for R users that provides an -alternative to the traditional RStan interface. See the Comparison with RStan section -later in this vignette for more details on how the two interfaces -differ.

-

Using CmdStanR requires installing the cmdstanr R -package and also CmdStan, the command line interface to Stan. First we -install the R package by running the following command in R.

-
-# we recommend running this is a fresh R session or restarting your current session
-install.packages("cmdstanr", repos = c('https://stan-dev.r-universe.dev', getOption("repos")))
-

We can now load the package like any other R package. We’ll also load -the bayesplot and posterior packages -to use later in examples.

- -
-
-

Installing CmdStan -

-

CmdStanR requires a working installation of CmdStan, -the shell interface to Stan. If you don’t have CmdStan installed then -CmdStanR can install it for you, assuming you have a suitable C++ -toolchain. The requirements are described in the CmdStan Guide:

- -

To double check that your toolchain is set up properly you can call -the check_cmdstan_toolchain() function:

- -
The C++ toolchain required for CmdStan is setup properly!
-

If your toolchain is configured correctly then CmdStan can be -installed by calling the install_cmdstan() -function:

-
-install_cmdstan(cores = 2)
-

Before CmdStanR can be used it needs to know where the CmdStan -installation is located. When the package is loaded it tries to help -automate this to avoid having to manually set the path every -session:

-
    -
  1. If the environment variable "CMDSTAN" exists at load -time then its value will be automatically set as the default path to -CmdStan for the R session. This is useful if your CmdStan installation -is not located in the default directory that would have been used by -install_cmdstan() (see #2).

  2. -
  3. If no environment variable is found when loaded but any directory -in the form ".cmdstan/cmdstan-[version]", for example -".cmdstan/cmdstan-2.23.0", exists in the user’s home -directory (Sys.getenv("HOME"), not the current -working directory) then the path to the CmdStan with the largest version -number will be set as the path to CmdStan for the R session. This is the -same as the default directory that install_cmdstan() uses -to install the latest version of CmdStan, so if that’s how you installed -CmdStan you shouldn’t need to manually set the path to CmdStan when -loading CmdStanR.

  4. -
-

If neither of these applies (or you want to subsequently change the -path) you can use the set_cmdstan_path() function:

-
-set_cmdstan_path(PATH_TO_CMDSTAN)
-

To check the path to the CmdStan installation and the CmdStan version -number you can use cmdstan_path() and -cmdstan_version():

- -
[1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0"
- -
[1] "2.36.0"
-
-
-

Compiling a model -

-

The cmdstan_model() function creates a new CmdStanModel -object from a file containing a Stan program. Under the hood, CmdStan is -called to translate a Stan program to C++ and create a compiled -executable. Here we’ll use the example Stan program that comes with the -CmdStan installation:

-
-file <- file.path(cmdstan_path(), "examples", "bernoulli", "bernoulli.stan")
-mod <- cmdstan_model(file)
-

The object mod is an R6 reference object of class CmdStanModel -and behaves similarly to R’s reference class objects and those in object -oriented programming languages. Methods are accessed using the -$ operator. This design choice allows for CmdStanR and CmdStanPy to provide a -similar user experience and share many implementation details.

-

The Stan program can be printed using the $print() -method:

-
-mod$print()
-
data {
-  int<lower=0> N;
-  array[N] int<lower=0, upper=1> y;
-}
-parameters {
-  real<lower=0, upper=1> theta;
-}
-model {
-  theta ~ beta(1, 1); // uniform prior on interval 0,1
-  y ~ bernoulli(theta);
-}
-

The path to the compiled executable is returned by the -$exe_file() method:

-
-mod$exe_file()
-
[1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli"
-
-
-

Running MCMC -

-

The $sample() -method for CmdStanModel -objects runs Stan’s default MCMC algorithm. The data -argument accepts a named list of R objects (like for RStan) or a path to -a data file compatible with CmdStan (JSON or R dump).

-
-# names correspond to the data block in the Stan program
-data_list <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
-
-fit <- mod$sample(
-  data = data_list,
-  seed = 123,
-  chains = 4,
-  parallel_chains = 4,
-  refresh = 500 # print update every 500 iters
-)
-
Running MCMC with 4 parallel chains...
-
-Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
-Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
-Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
-Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
-Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
-Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
-Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
-Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
-Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
-Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
-Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
-Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
-Chain 3 Iteration:    1 / 2000 [  0%]  (Warmup) 
-Chain 3 Iteration:  500 / 2000 [ 25%]  (Warmup) 
-Chain 3 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
-Chain 3 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
-Chain 3 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
-Chain 3 Iteration: 2000 / 2000 [100%]  (Sampling) 
-Chain 4 Iteration:    1 / 2000 [  0%]  (Warmup) 
-Chain 4 Iteration:  500 / 2000 [ 25%]  (Warmup) 
-Chain 4 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
-Chain 4 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
-Chain 4 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
-Chain 4 Iteration: 2000 / 2000 [100%]  (Sampling) 
-Chain 1 finished in 0.0 seconds.
-Chain 2 finished in 0.0 seconds.
-Chain 3 finished in 0.0 seconds.
-Chain 4 finished in 0.0 seconds.
-
-All 4 chains finished successfully.
-Mean chain execution time: 0.0 seconds.
-Total execution time: 0.4 seconds.
-

There are many more arguments that can be passed to the -$sample() method. For details follow this link to its -separate documentation page:

- -

The $sample() method creates R6 CmdStanMCMC objects, -which have many associated methods. Below we will demonstrate some of -the most important methods. For a full list, follow this link to the -CmdStanMCMC documentation:

- -
-

Posterior summary statistics -

-
-

Summaries from the posterior package -

-

The $summary() -method calls summarise_draws() from the -posterior package. The first argument specifies the -variables to summarize and any arguments after that are passed on to -posterior::summarise_draws() to specify which summaries to -compute, whether to use multiple cores, etc.

-
-fit$summary()
-fit$summary(variables = c("theta", "lp__"), "mean", "sd")
-
-# use a formula to summarize arbitrary functions, e.g. Pr(theta <= 0.5)
-fit$summary("theta", pr_lt_half = ~ mean(. <= 0.5))
-
-# summarise all variables with default and additional summary measures
-fit$summary(
-  variables = NULL,
-  posterior::default_summary_measures(),
-  extra_quantiles = ~posterior::quantile2(., probs = c(.0275, .975))
-)
-
  variable  mean median   sd  mad     q5   q95 rhat ess_bulk ess_tail
-1     lp__ -7.30  -6.99 0.79 0.33 -8.927 -6.75    1     1769     1938
-2    theta  0.25   0.24 0.12 0.12  0.078  0.48    1     1228     1521
-
  variable  mean   sd
-1    theta  0.25 0.12
-2     lp__ -7.30 0.79
-
  variable pr_lt_half
-1    theta       0.96
-
  variable  mean median   sd  mad     q5   q95  q2.75 q97.5
-1     lp__ -7.30  -6.99 0.79 0.33 -8.927 -6.75 -9.429 -6.75
-2    theta  0.25   0.24 0.12 0.12  0.078  0.48  0.062  0.54
-
-
-

CmdStan’s stansummary utility -

-

CmdStan itself provides a stansummary utility that can -be called using the $cmdstan_summary() method. This method -will print summaries but won’t return anything.

-
-
-
-

Posterior draws -

-
-

Extracting draws -

-

The $draws() -method can be used to extract the posterior draws in formats provided by -the posterior -package. Here we demonstrate only the draws_array and -draws_df formats, but the posterior -package supports other useful formats as well.

-
-# default is a 3-D draws_array object from the posterior package
-# iterations x chains x variables
-draws_arr <- fit$draws() # or format="array"
-str(draws_arr)
-
 'draws_array' num [1:1000, 1:4, 1:2] -7.01 -7.89 -7.41 -6.75 -6.91 ...
- - attr(*, "dimnames")=List of 3
-  ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
-  ..$ chain    : chr [1:4] "1" "2" "3" "4"
-  ..$ variable : chr [1:2] "lp__" "theta"
-
-# draws x variables data frame
-draws_df <- fit$draws(format = "df")
-str(draws_df)
-
draws_df [4,000 × 5] (S3: draws_df/draws/tbl_df/tbl/data.frame)
- $ lp__      : num [1:4000] -7.01 -7.89 -7.41 -6.75 -6.91 ...
- $ theta     : num [1:4000] 0.168 0.461 0.409 0.249 0.185 ...
- $ .chain    : int [1:4000] 1 1 1 1 1 1 1 1 1 1 ...
- $ .iteration: int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
- $ .draw     : int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
-
-print(draws_df)
-
# A draws_df: 1000 iterations, 4 chains, and 2 variables
-   lp__ theta
-1  -7.0  0.17
-2  -7.9  0.46
-3  -7.4  0.41
-4  -6.7  0.25
-5  -6.9  0.18
-6  -6.9  0.33
-7  -7.2  0.15
-8  -6.8  0.29
-9  -6.8  0.24
-10 -6.8  0.24
-# ... with 3990 more draws
-# ... hidden reserved variables {'.chain', '.iteration', '.draw'}
-

To convert an existing draws object to a different format use the -posterior::as_draws_*() functions.

-
-# this should be identical to draws_df created via draws(format = "df")
-draws_df_2 <- as_draws_df(draws_arr)
-identical(draws_df, draws_df_2)
-
[1] TRUE
-

In general, converting to a different draws format in this way will -be slower than just setting the appropriate format initially in the call -to the $draws() method, but in most cases the speed -difference will be minor.

-

The vignette Working with -Posteriors has more details on posterior draws, including how to -reproduce the structured output RStan users are accustomed to getting -from rstan::extract().

-
-
-

Plotting draws -

-

Plotting posterior distributions is as easy as passing the object -returned by the $draws() method directly to plotting -functions in our bayesplot -package.

-
-mcmc_hist(fit$draws("theta"))
-

-
-
-
-

Sampler diagnostics -

-
-

Extracting diagnostic values for each iteration and chain -

-

The $sampler_diagnostics() -method extracts the values of the sampler parameters -(treedepth__, divergent__, etc.) in formats -supported by the posterior package. The default is as a -3-D array (iteration x chain x variable).

-
-# this is a draws_array object from the posterior package
-str(fit$sampler_diagnostics())
-
 'draws_array' num [1:1000, 1:4, 1:6] 2 1 2 2 2 1 2 1 2 1 ...
- - attr(*, "dimnames")=List of 3
-  ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
-  ..$ chain    : chr [1:4] "1" "2" "3" "4"
-  ..$ variable : chr [1:6] "treedepth__" "divergent__" "energy__" "accept_stat__" ...
-
-# this is a draws_df object from the posterior package
-str(fit$sampler_diagnostics(format = "df"))
-
draws_df [4,000 × 9] (S3: draws_df/draws/tbl_df/tbl/data.frame)
- $ treedepth__  : num [1:4000] 2 1 2 2 2 1 2 1 2 1 ...
- $ divergent__  : num [1:4000] 0 0 0 0 0 0 0 0 0 0 ...
- $ energy__     : num [1:4000] 8.95 8.77 7.87 7.64 6.93 ...
- $ accept_stat__: num [1:4000] 0.688 0.811 1 0.966 0.976 ...
- $ stepsize__   : num [1:4000] 0.905 0.905 0.905 0.905 0.905 ...
- $ n_leapfrog__ : num [1:4000] 3 3 3 3 3 3 3 3 3 3 ...
- $ .chain       : int [1:4000] 1 1 1 1 1 1 1 1 1 1 ...
- $ .iteration   : int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
- $ .draw        : int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
-
-
-

Sampler diagnostic warnings and summaries -

-

The $diagnostic_summary() method will display any -sampler diagnostic warnings and return a summary of diagnostics for each -chain.

-
-fit$diagnostic_summary()
-
$num_divergent
-[1] 0 0 0 0
-
-$num_max_treedepth
-[1] 0 0 0 0
-
-$ebfmi
-[1] 1.11 0.76 1.19 1.08
-

We see the number of divergences for each of the four chains, the -number of times the maximum treedepth was hit for each chain, and the -E-BFMI for each chain.

-

In this case there were no warnings, so in order to demonstrate the -warning messages we’ll use one of the CmdStanR example models that -suffers from divergences.

-
-fit_with_warning <- cmdstanr_example("schools")
-
Warning: 143 of 4000 (4.0%) transitions ended with a divergence.
-See https://mc-stan.org/misc/warnings for details.
-
Warning: 1 of 4 chains had an E-BFMI less than 0.3.
-See https://mc-stan.org/misc/warnings for details.
-

After fitting there is a warning about divergences. We can also -regenerate this warning message later using -fit$diagnostic_summary().

-
-diagnostics <- fit_with_warning$diagnostic_summary()
-
Warning: 143 of 4000 (4.0%) transitions ended with a divergence.
-See https://mc-stan.org/misc/warnings for details.
-
Warning: 1 of 4 chains had an E-BFMI less than 0.3.
-See https://mc-stan.org/misc/warnings for details.
-
-print(diagnostics)
-
$num_divergent
-[1]  1 37 75 30
-
-$num_max_treedepth
-[1] 0 0 0 0
-
-$ebfmi
-[1] 0.17 0.35 0.34 0.42
-
-# number of divergences reported in warning is the sum of the per chain values
-sum(diagnostics$num_divergent)
-
[1] 143
-
-
-

CmdStan’s diagnose utility -

-

CmdStan itself provides a diagnose utility that can be -called using the $cmdstan_diagnose() method. This method -will print warnings but won’t return anything.

-
-
-
-
-

Running optimization and variational inference -

-

CmdStanR also supports running Stan’s optimization algorithms and its -algorithms for variational approximation of full Bayesian inference. -These are run via the $optimize(), $laplace(), -$variational(), and $pathfinder() methods, -which are called in a similar way to the $sample() method -demonstrated above.

-
-

Optimization -

-

We can find the (penalized) maximum likelihood estimate (MLE) using -$optimize().

-
-fit_mle <- mod$optimize(data = data_list, seed = 123)
-
Initial log joint probability = -16.144 
-    Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
-       6      -5.00402   0.000246518   8.73164e-07           1           1        9    
-Optimization terminated normally:  
-  Convergence detected: relative gradient magnitude is below tolerance 
-Finished in  0.2 seconds.
-
-fit_mle$print() # includes lp__ (log prob calculated by Stan program)
-
 variable estimate
-    lp__     -5.00
-    theta     0.20
-
-fit_mle$mle("theta")
-
theta 
-  0.2 
-

Here’s a plot comparing the penalized MLE to the posterior -distribution of theta.

-
-mcmc_hist(fit$draws("theta")) +
-  vline_at(fit_mle$mle("theta"), size = 1.5)
-

-

For optimization, by default the mode is calculated without the -Jacobian adjustment for constrained variables, which shifts the mode due -to the change of variables. To include the Jacobian adjustment and -obtain a maximum a posteriori (MAP) estimate set -jacobian=TRUE. See the Maximum -Likelihood Estimation section of the CmdStan User’s Guide for more -details.

-
-fit_map <- mod$optimize(
-  data = data_list,
-  jacobian = TRUE,
-  seed = 123
-)
-
Initial log joint probability = -18.2733 
-    Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
-       5      -6.74802   0.000708195   1.43227e-05           1           1        8    
-Optimization terminated normally:  
-  Convergence detected: relative gradient magnitude is below tolerance 
-Finished in  0.1 seconds.
-
-
-

Laplace Approximation -

-

The $laplace() -method produces a sample from a normal approximation centered at the -mode of a distribution in the unconstrained space. If the mode is a MAP -estimate, the samples provide an estimate of the mean and standard -deviation of the posterior distribution. If the mode is the MLE, the -sample provides an estimate of the standard error of the likelihood. -Whether the mode is the MAP or MLE depends on the value of the -jacobian argument when running optimization. See the Laplace -Sampling chapter of the CmdStan User’s Guide for more details.

-

Here we pass in the fit_map object from above as the -mode argument. If mode is omitted then -optimization will be run internally before taking draws from the normal -approximation.

-
-fit_laplace <- mod$laplace(
-    mode = fit_map,
-    draws = 4000,
-    data = data_list,
-    seed = 123,
-    refresh = 1000
-  )
-
Calculating Hessian 
-Calculating inverse of Cholesky factor 
-Generating draws 
-iteration: 0 
-iteration: 1000 
-iteration: 2000 
-iteration: 3000 
-Finished in  0.1 seconds.
-
-fit_laplace$print("theta")
-
 variable mean median   sd  mad   q5  q95
-    theta 0.27   0.25 0.12 0.12 0.10 0.51
-
-mcmc_hist(fit_laplace$draws("theta"), binwidth = 0.025)
-

-
-
-

Variational (ADVI) -

-

We can run Stan’s experimental Automatic Differentiation Variational -Inference (ADVI) using the $variational() -method. For details on the ADVI algorithm see the CmdStan -User’s Guide.

-
-fit_vb <- mod$variational(
-  data = data_list,
-  seed = 123,
-  draws = 4000
-)
-
------------------------------------------------------------ 
-EXPERIMENTAL ALGORITHM: 
-  This procedure has not been thoroughly tested and may be unstable 
-  or buggy. The interface is subject to change. 
------------------------------------------------------------- 
-Gradient evaluation took 9e-06 seconds 
-1000 transitions using 10 leapfrog steps per transition would take 0.09 seconds. 
-Adjust your expectations accordingly! 
-Begin eta adaptation. 
-Iteration:   1 / 250 [  0%]  (Adaptation) 
-Iteration:  50 / 250 [ 20%]  (Adaptation) 
-Iteration: 100 / 250 [ 40%]  (Adaptation) 
-Iteration: 150 / 250 [ 60%]  (Adaptation) 
-Iteration: 200 / 250 [ 80%]  (Adaptation) 
-Success! Found best value [eta = 1] earlier than expected. 
-Begin stochastic gradient ascent. 
-  iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
-   100           -6.164             1.000            1.000 
-   200           -6.225             0.505            1.000 
-   300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
-Drawing a sample of size 4000 from the approximate posterior...  
-COMPLETED. 
-Finished in  0.1 seconds.
-
-fit_vb$print("theta")
-
 variable mean median   sd  mad   q5  q95
-    theta 0.26   0.24 0.11 0.11 0.11 0.46
-
-mcmc_hist(fit_vb$draws("theta"), binwidth = 0.025)
-

-
-
-

Variational (Pathfinder) -

-

Stan version 2.33 introduced a new variational method called -Pathfinder, which is intended to be faster and more stable than ADVI. -For details on how Pathfinder works see the section in the CmdStan -User’s Guide. Pathfinder is run using the $pathfinder() -method.

-
-fit_pf <- mod$pathfinder(
-  data = data_list,
-  seed = 123,
-  draws = 4000
-)
-
Path [1] :Initial log joint density = -18.273334 
-Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
-              5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
-Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
-Path [2] :Initial log joint density = -19.192715 
-Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
-              5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
-Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
-Path [3] :Initial log joint density = -6.774820 
-Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
-              4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
-Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
-Path [4] :Initial log joint density = -7.949193 
-Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
-              5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
-Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
-Total log probability function evaluations:4379 
-Finished in  0.1 seconds.
-
-fit_pf$print("theta")
-
 variable mean median   sd  mad   q5  q95
-    theta 0.25   0.24 0.12 0.12 0.08 0.47
-

Let’s extract the draws, make the same plot we made after running the -other algorithms, and compare them all. approximation, and compare them -all. In this simple example the distributions are quite similar, but -this will not always be the case for more challenging problems.

-
-mcmc_hist(fit_pf$draws("theta"), binwidth = 0.025) +
-  ggplot2::labs(subtitle = "Approximate posterior from pathfinder") +
-  ggplot2::xlim(0, 1)
-

-
-mcmc_hist(fit_vb$draws("theta"), binwidth = 0.025) +
-  ggplot2::labs(subtitle = "Approximate posterior from variational") +
-  ggplot2::xlim(0, 1)
-

-
-mcmc_hist(fit_laplace$draws("theta"), binwidth = 0.025) +
-  ggplot2::labs(subtitle = "Approximate posterior from Laplace") +
-  ggplot2::xlim(0, 1)
-

-
-mcmc_hist(fit$draws("theta"), binwidth = 0.025) +
-  ggplot2::labs(subtitle = "Posterior from MCMC") +
-  ggplot2::xlim(0, 1)
-

-

For more details on the $optimize(), -$laplace(), $variational(), and -pathfinder() methods, follow these links to their -documentation pages.

- -
-
-
-

Saving fitted model objects -

-

The $save_object() -method provided by CmdStanR is the most convenient way to save a fitted -model object to disk and ensure that all of the contents are available -when reading the object back into R.

-
-fit$save_object(file = "fit.RDS")
-
-# can be read back in using readRDS
-fit2 <- readRDS("fit.RDS")
-

But if your model object is large, then $save_object() -could take a long time. $save_object() -reads the CmdStan results files into memory, stores them in the model -object, and saves the object with saveRDS(). To speed up -the process, you can emulate $save_object() -and replace saveRDS with the much faster -qsave() function from the qs package.

-
-# Load CmdStan output files into the fitted model object.
-fit$draws() # Load posterior draws into the object.
-try(fit$sampler_diagnostics(), silent = TRUE) # Load sampler diagnostics.
-try(fit$init(), silent = TRUE) # Load user-defined initial values.
-try(fit$profiles(), silent = TRUE) # Load profiling samples.
-
-# Save the object to a file.
-qs::qsave(x = fit, file = "fit.qs")
-
-# Read the object.
-fit2 <- qs::qread("fit.qs")
-

Storage is even faster if you discard results you do not need to -save. The following example saves only posterior draws and discards -sampler diagnostics, user-specified initial values, and profiling -data.

-
-# Load posterior draws into the fitted model object and omit other output.
-fit$draws()
-
-# Save the object to a file.
-qs::qsave(x = fit, file = "fit.qs")
-
-# Read the object.
-fit2 <- qs::qread("fit.qs")
-

See the vignette How -does CmdStanR work? for more information about the composition -of CmdStanR objects.

-
-
-

Comparison with RStan -

-
-

Different ways of interfacing with Stan’s C++ -

-

The RStan interface (rstan package) is -an in-memory interface to Stan and relies on R packages like -Rcpp and inline to call C++ code from -R. On the other hand, the CmdStanR interface does not directly call any -C++ code from R, instead relying on the CmdStan interface behind the -scenes for compilation, running algorithms, and writing results to -output files.

-
-
-

Advantages of RStan -

-
    -
  • Allows other developers to distribute R packages with -pre-compiled Stan programs (like rstanarm) on -CRAN. (Note: As of 2023, this can mostly be achieved with CmdStanR as -well. See Developing -using CmdStanR.)

  • -
  • Avoids use of R6 classes, which may result in more familiar -syntax for many R users.

  • -
  • CRAN binaries available for Mac and Windows.

  • -
-
-
-

Advantages of CmdStanR -

-
    -
  • Compatible with latest versions of Stan. Keeping up with Stan -releases is complicated for RStan, often requiring non-trivial changes -to the rstan package and new CRAN releases of both -rstan and StanHeaders. With CmdStanR -the latest improvements in Stan will be available from R immediately -after updating CmdStan using -cmdstanr::install_cmdstan().

  • -
  • Running Stan via external processes results in fewer unexpected -crashes, especially in RStudio.

  • -
  • Less memory overhead.

  • -
  • More permissive license. RStan uses the GPL-3 license while the -license for CmdStanR is BSD-3, which is a bit more permissive and is the -same license used for CmdStan and the Stan C++ source code.

  • -
-
-
-
-

Additional resources -

-

There are additional vignettes available that discuss other aspects -of using CmdStanR. These can be found online at the CmdStanR -website:

- -

To ask a question please post on the Stan forums:

- -

To report a bug, suggest a feature (including additions to these -vignettes), or to start contributing to CmdStanR development (new -contributors welcome!) please open an issue on GitHub:

- -
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/cmdstanr_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/articles/cmdstanr_files/accessible-code-block-0.0.1/empty-anchor.js deleted file mode 100644 index ca349fd6a..000000000 --- a/docs/articles/cmdstanr_files/accessible-code-block-0.0.1/empty-anchor.js +++ /dev/null @@ -1,15 +0,0 @@ -// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> -// v0.0.1 -// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. - -document.addEventListener('DOMContentLoaded', function() { - const codeList = document.getElementsByClassName("sourceCode"); - for (var i = 0; i < codeList.length; i++) { - var linkList = codeList[i].getElementsByTagName('a'); - for (var j = 0; j < linkList.length; j++) { - if (linkList[j].innerHTML === "") { - linkList[j].setAttribute('aria-hidden', 'true'); - } - } - } -}); diff --git a/docs/articles/cmdstanr_files/figure-html/draws-1.png b/docs/articles/cmdstanr_files/figure-html/draws-1.png deleted file mode 100644 index e1243a63454e5b8f596ef93902db149ae8440c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40642 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 zഞ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 diff --git a/docs/articles/cmdstanr_files/figure-html/plot-compare-laplace-1.png b/docs/articles/cmdstanr_files/figure-html/plot-compare-laplace-1.png deleted file mode 100644 index a0eca79f7035ad5ea71745d7246c4ddf52c5aff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47620 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

a7zjOMhlE0G$fIK0qgL3!g|KBp3Zopt* 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 B9nSy& diff --git a/docs/articles/cmdstanr_files/figure-html/plot-compare-mcmc-1.png b/docs/articles/cmdstanr_files/figure-html/plot-compare-mcmc-1.png deleted file mode 100644 index 6354bf17daf8edf6574f5d5a11dcad63164184e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45572 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 diff --git a/docs/articles/cmdstanr_files/figure-html/plot-compare-pf-1.png b/docs/articles/cmdstanr_files/figure-html/plot-compare-pf-1.png deleted file mode 100644 index d3495d11da81f7edf65a3654282c67816a5ff992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48156 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 E01W@WRR910 diff --git a/docs/articles/cmdstanr_files/figure-html/plot-compare-vb-1.png b/docs/articles/cmdstanr_files/figure-html/plot-compare-vb-1.png deleted file mode 100644 index d23f5c954e0d58605260aedeaa5df0c6506d33e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47756 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 S`(qvOV{Kt;USZ~O^M3$n{9^9_ diff --git a/docs/articles/cmdstanr_files/figure-html/plot-mle-1.png b/docs/articles/cmdstanr_files/figure-html/plot-mle-1.png deleted file mode 100644 index 978cbe60efb3a089a3b54347122b57e437f8500e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39547 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 Q4*XL+t92&rl( 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 !W z%)GXDv+O|P=slBSIZ1K=${1GJa?hh%)rF0e!H}PN;Hf?D7cG>t{dgjf#$LVxjNttH zE7eWj|6JMo4~$7FmUEF{8N?gb8i9)PXmr4MUyJDK-9^IhzTLl2C^7-nX2eu3U4)eT zGpF{1uo2Sxq>1A*xidwBfz1n{7>BsCWb~6 zRfw(_@tzkuCvx2I{FdjRV}D%{hNYP-I{QCg?NHJ6MVwxVF<2-uk0i|huz+6@ecETH zn2@!Ts~#UVd?s%!$l;97RlH?~()75?`3$|Y2|ETEPjuT-^GAM-HzTxFrh<>v5Z2%K zMa-s+9QzKYr7W|ztE8hFLMI0{(}8({Z_OphiEAO;K9O|>b{@i}4RE(nCm%j5=G^XE#g;d#P}`Hy^nqrhirZ+=SboLe$iM<3TxF9__k-elX!l>!0eZh|RMH^r-Oke^ePrpL2rXmBePzNfExMYc@x&cb%KVkPr z;tSx#xrr_+g6?ly3SR{0PxdbfBLw~Lbm@U!%!YOUT+FsYm!W31gNcXs3Tgj_v$~mx zaSOZ25g|{zb9Kp28OG;7ca#)9gJM%t^cV%j36|;~wQ zm2RC1*o9!s06#E&p6K{x6yz7%C^hE<$}mVBOK|!0EAcp$>&Sv5^Fxsw`XseCHN96C z_b0Ceb>O!b6e_Fzab0W}eU7JG*4@5^H$eCS(?1;ZnYAObZ>qghg3^LpMJh0!IPeVe zX8$dRi9Y%K2HLk4yiCsiXB{Ev3jP7dSvnY>&xi(ub#Fr;wjB0 zxYz2tXv?vec1E*XUKH;B0ntOldIRdJci+8_m-M#FMGI=-7r zZK!(uh8X!2`ljpdMQ&WpN+efFlgZZV^{eD&Q0T~ud#_q&XD*3z-zruDgcR6pHntOY z;xYaA$;Dz&aPL)=QfG1Gk_kjN{^9VMfA7?1Xtm%vL+4c%#RM0jtYpy+!>{^oBnX;( z%EyP-F2534t@zF;-8xXC_A!quE2i>wq(t!qif(gaTia!c>UFe_Usdy?R)6i~E8&ld z{s`?2;Au`$214GnWjI8O7Aw!#t){>Bei$N)sQ3-*v$0q;cSuHtqgf0_dT$rl3~L|6 zc=*UJXpXNY;wZFuJw*Qb$E<^IFOG>pxi)Ja+`$WDP)RIvLTtF>8Z$OF!*HPkTU+FW z+_ROa3E9`*msXA9#miTW$!wa~siFi9|u(&b$)F<$hrqS0cnYy45K;+Jl^6!=KExt|@ij zB*W0K{fLEdD@MCM-wyxCFufu3p*G6Gg1}aVO;qUc)5?I<$Xyc$&2kb6tz))Rq|>8N zHYJ4)xWs)OX;p)?w&GE2l>z29^XlJrIlrj&4zPvfZ|q}Vt=Da?-u08gOmv$MXB+6a zm-zx>JVCqN8Gu(UllQyplN;lrvdpnd(NdcTbFdwfk`v{p66EBPTtb9K5PqN&>$E3J zcFy=i^Pgk)Dlh+rp54AB#*K2jgjYNthED5|@2$ms-1giV^VuiMy)Dul_a6+wLiZ;n zGnDt{dmHw>OMcJ0>sN-fe~vMM-OjhJ852pyuFJp98d7)D6=SD!TTqQOpm?A8TWn)z z7$H_jB|JzUZ`35wLS2tlU%Y*ZXgxXu2!&r2NyF!ywh3jU32q{R#V)9()gg;t-jF~M z_R)aK#&YahwnN){O;s6`U5a%^8ur&_voV&zf~a5>6mO~u_&2RW3j@~+N(}A!l%86K zMsAgbX0Dn6Hq&mQ1Z?(rmfpQ7#Uv<7Wd)`zw=@VuAF7S;P0D?BrGU*e6XP6N$7i5f zXxe}RDm%^kE#uD@`Hek#R<^s+VDGLq%(2^@Rz_~Y8tBQ8qX@eU*5#T|(%s3|egZ_s z&Z4~QVj%K*J}OxH$8WN<|3K#t5sGTV{ITc2=iGWP)DKsBtG? zn8b+L(i%I!FC$n=k@MmBh{wXXGIg{_;mm9f*z++h1h=57N+jkkMhl#AjjXgZpm8J+NUAjc1_uh#d1*Jp|U8>SVdhZD; z5Cx@$9-4%J)Ci$S&E2s;^ws;vUH7illJhMY3EFi>9VW1vc;aOq)3MpIX zj#$WJ9<9=&P;7b;qyPqH4HS zb9gtSXWy;s(lH$ol&(`b88jlEd^fHqIud*A-zBvTsk=QgTk~fm3vKbmPqtG#AOzo= zU~rdS+oe}h5n>@1FOJ_luB0@v;h``w{JN>4X*qyR0Cu~Xiamw(rdj|URZ|6aI!c8p z|KU2P;)L!2Y?_aFW@qtntl#XU`Xjrg_b=UT9*#F-C{Wu~2$!np`ycs;oL+$x$rGj*mxIyxQv?fSPVO% zk61>tt2dO#fWz?iIF@sLs>!*s_Np!_ua36@9SY5p4bT!Xxv+fAZNG67)%@wPYWw$X z2J$1I31CpxE!|_H$DRy67dsdYXSgXN+O&1zfSu=iceK2*muVgsKGnM7oCTJ7fI*2C zji{?DLHdqJry{fZ1rBx|RQ2+>wO&PMKH=I?%P>lhj$PxO++3-&#Q4?D5nh=E$)M04 z1F|MV)Jx4*M~dCmR8OXc*V%KoCl|`o`pt{I$LODq%XS?o^i0AoK0g+3!oJitUoy%a znL33Y;GIpSL)Db2+}Sz*%*3EJpWr!%#;I1;cn81rF;?9?9Oq;lP!b;HKNNd#NZ`>1 z-l>B(W;Co-tj~R>e6gjbCq*nu!lK#jobh})_eoAa>uCPCn`G0kE%7_#27 z;wu}wd2|lRk(hC{C($Dls|3flwL8d1qm5G3v-{*HLd%)iW7!^D6{iGYZ{Vi2ZkzFq z$~@x|$lg?#psIZ(l)X+?WYU74D+(!8ik^K_8--VW?9V;xZz=CJy5xJzbyD0{PQG&_ zemH(NO*184agbNX7YuTj3iwAB6hFA|rmJ7|F4giNh zfaL3xmhqxHla=8#_UA=MmPUv4%;ZJJUvK636z)u2vPnfSw5b%x1?bJba*? zKs)PfTFyT#cD}YJa^0(LC&wPCF)|`Vm=7_=YV{?bM9XGqHD9#gbYuS58+=vDKC~u) zNmzS!O>yMuaV$uF$_hMsXO-;+Z zx14G{kh1lAk|sAm{wzAg`6PDTq^Sl0dm~v8tQz%V4c}ShoOm#q&|So=Kd{3g^j^{> zcg2tfPtCU@ZZN`HC4-0D{gW7ifnZkdFvpB~D$N7;yv z%6opgc5?lhB#viR^oGefPT6yyV$nc}mK(>FYu{%heh`b_I@e_Y;Q+=))7V4J)?fs| zWf2_jr7Q1+Hrsjr2B9QB9J(kQy5)Q2X}@Up`rYftXjh3jx=?7}5_~$r{Mf&}jf(AI zpY7zU!)AO_t`LqFYc^(d;h#OTmgI2S&RKOxf}x)kEC*a^#Iwts0HOb9IIpk(x|{xC zDU7Y_j4vcp*=jBH=e>j@T<)Ik8}Bhr^k!>raY|;u6n*TAGoF=Y;KeVRB*B8z1j7AV z2)rc`SJ&(ek(Mbt4p=8E-t8+|NmD3Pb9Z2u|ruLm<1v__y6jreTipju2n=vG|bFM;Jx1E5fbSM)E09ePDCmy%e4n=6ijr z0rxkm%;;eAdR4tbgMZ~eiAcy=2veSXZ*t#*({pd%K%(}`rDt)pC0a>YD6Z(e_s2*H z=%DyFcTxi(%K`ML3zd)ylSap3k1q0(=2JlbE=nl@?_2d4PMjdK2QZ^fYbv01(-HnL z3BjtEb9)ZuHwzI?W!vld@bIrD`Vb3_skp#NvVGM5HvxZq0*+_y#{ z^|9tR9bVs4F*-VoXgwscSG$G_bkYq3N0Aa`KdOi*6y&_Mk;u*WPFx5EJwX_a8r)1> zC4KgeLw&P$I_ChiJ^$!(n<8^3TqVHCCXwVGoqE-^D_-Q3VZhpexKIc<#w>Nl8MN z|Luoi{tN0}obhKC{6Rebrx!}FuA%EwZI~M@SaF)5_u|7bp#W#A0X`y(VCqG9_Bn)U z>3fM_Sdk5;*0w4SKOt;f@9K-8;3erG@D-tsl7_+9*+LzJ(H+C==<0$C4qt*ninMzA zGjk_uN9-GinTGAEQ3LQ!GP>_mpuW4vH1U5zt(Y8B|D=BperoVNY+J67T{_=8zdTQB(MfZJ*XEMS@{G*fLzZ)7?TmJ8pvCQAKJ%}=+3j-~y!DU#U^zoCVx z22gXHXY*NpO|^I%aB$Ye&(rNULkv020-dMPHS?QMlhyQ}(sRB(4z;4G+7OO)D08oN zN!3A@3{^W>Jp|K2S@jo_Bvv>{<9D8m4vN zUgT`9EBM`z`>|NOL-Be{=!xWYR8w->lDv)9UZVQjqo#}GN2&xyzBKOU;B#Dm(6;nM zBw4Mw+&#e&%iFWP(XBRB(u&S8$p7(6ph#WeI6x-UIb$X2Kj8QRdovGMi@dtSyT@~P zNld%|j{`-|rKB(W6NSD5mPbUTCD-vM6u&Kt9xWim|8GC8SIfoRqYg^GwN1UO`m#M_ zhVJ6xB$J2Hc_za@uk${#D6mp8CoRfBd9?QacXemUknt#t^-a{->L6W3~ZR77-upnP)3{NqXwMu zW>(H9;Wp7R8F9PslQH)|8$2O6Hj+|LoInJ|T&UPcP!C{Fwgy-9u4CKoXCs`aMe=(J z&3+=CsXg)R`ux)#A@GOm*$sD9k`Y$b<`xRu2Zjt}C|~@6^B#7?@!4Tz{Z8_2+1&te59c_&_OuDu91$bRu|^OcK{IZCl*v+j_p_jWIpcAps?zrlEp^kIJL)&FUCb4S5l!3k|)EbM0=3|MbR=D&X8TU!_wHlv6m< zEQV1!50YvDd@fy9uMg~Bh!Rch-B@}bcU?s#Swv{S2Xk2^;2F1MxmLOLPtpe!ItBoP!<0A^O#RYDe$eAym1`jrQOw|8ri4~ z0^xJWuvh229p`|X8%eVeqV0F0D%-i|GsLX*b#7ifJ+xKKu=C%{%(fLX{`4N&`FKx# z;}p*ro}YHYCxF?J5wfQH@;WFld2ivYYsKI*=5UuK_>yuhZfM%J9!rOh+VXj+kldDI zp;n^!^QYe)0vaZ%{OfqN21V#OF`R2b@fAtNra&Lb^4z`Yao;qGobUY?dnFJ*t^{Qs z(Rf-@%>Qlx@#Tg;rMo!3_W}s4Mg8>rt|9^hMH|3CQH9+fe!AGd(DswU-`)3tfuj4s zKvBBi4HP|6C3)~S>K4q{JV2bDO8%R73yv+E{tqSl4YH%a)d15|kMH>eKYXMiu-4_j z$O4;q;Y?8l^gQjQz=r6^Ld$Zm)?}LseMHMo=9fr_>&k$s{z=oml6Dk| zRkJ{UW^7$SKi_PTh$~1E217`pZJBZTXZSoS`hm;EY8iFMs~R68Y+SuODT+?B|G_-R z3jlkGcavIqAeZ0pgwbu(YI9H<(k_LcQ?s}dwna=$C=*5RLs41xEe03r8nc{agp<{V zX18raJ+pr~X`I89pXj||iIe7d$yAcVuM8(P1#Y^d%hH{D#cvkwTXX-^13EraR5(o6 zxPAcpjk9rT;t`WSNPfe0;9aD?eVx_$g>6hLD8`SiwTZafW>aSqK-*o(CF{M$JYe^? zMb+q6_@936xBW(uKEN)Qu1xkf>`Mv$thWD$1=-`~|B4OC!u)U45#Pk-E3M;CLa|uh z#2WW0PCf@0tOk{^Man?+bNq+QR)gpIF+V6F!2^Kq5IOC?zp@2rNXTI1tbi6Zn2{Q%Dzu2Dn?3B z16H-}lxh#rgJN5wy67?#iI2Owd-X5%=ASnl8K^7G`c+^8$mc8Kelz|`e)SfnO-7qTj293@K-SDYht&5}P7xE4hQ?K<$ zc4j4BQ^lbLe&plT&QFeMc z?gs;(c6^@+H;OX-@(;i6qGZ}hG4uic(IRl?TbXeFp}D#%*`?Z4YjK3>f7PazWy^Z) z==N%e0dJCq2Z+2nNYUFQT>QRI9Uc?s5bv98P3jGTSO<_3g^Mj4zv4DPB?trX72VC~ zexS{+ppb@2eszbSJ5h;n>ilBo{)L0?0XZ@H8fp3RIP~9!%s8XsqPn45rLCyAQ3HLE z#R1FLV(p$iT}&Lt#fM4d@h1%>XZnPKf7DT7Ha1qm#%$r~xk?cdIF+A zBVp+p-`5)q6CM_wzp(i%R5DqGf15BrOjUK-!btGbKva|u>O!WS<#f1)zE#={GaLmi z?Tt?way*O30-N0m#C|dn8Dv0q-&%xX?aKS*815w0~UM|JBqMG&cW0 z!YUnCO$ie(^OczK8#z?e1wBPYJ|?T>oBVdeMpt@XkZ38>Mso5YrMZ7*j(tPcl#zUO zPO_s#hj(+N_uo06SzCNd@f^jP`2gpvZ4ha)g7N6SeQTW;VcwmWOt;T!$}%RZFBIhp zBxaSoBNW1wbAQoby1|r^lJZ!ySI48nMUBNR6A*?~0Iz!?XdquJ&f^rfF%KMA$ z-n$Wo4vxq0@Yt*z9rq2P!ql2i4f@iAk;RnWn3e84(okXxEf`X%Nn#|gunUTxaD;KT z*GuPqSah+w;lGo4wDH?qWAH`jZCXaAW8TOY@Vwj0D>mCEPli&5!HB;K_z2+%$%jqLh-@|MJF^>>YIsaJm+1NYDI|Zc zCAfD3aX~c2h`w9~K@iD}+*LgdmWMnu-dQHA*Z(Fx^@M!rgYk(vl9=!WS$1-~z>0_e z)G8m^-y~pGi#W^nE9s#(=^cYNxl)b%z)YpxkL+DQ;fE-z*247_e!V(^Er9sxzV0h~ zjluVx1s~bq018~}TdZgIqu(zYxTq+rU`qo%q}_b>Sd!*rBGB)n&$WLOx=H6dGbYnw zp*u?Q$SyB{JfZ`D%`aW&`1jBK02yUi2@sP1QxV7bxcb5|gm zng%mD+j9Ap2+7U;mk1K=fxBw&wE&>X*3=E^J*ph3Z_wlQxiw@#DAAW(8l2l6@R{8n zd)m8`yPGH-drUz-M4fPB-yS#*3{0_0e3ITq(tcIztNT|X1m2dMjogq{ZMtH++Wgw~ z`rfTAG(eMFxp{K$mj`;LZ}npHpRXNS09x$Mz=zyTSk>%HKD0Ly>fI;s-oIkyLC)YS zoM!%9mL1O8FN<(^&okvx0lJXyDwf2j6m%uqT$Amd@QmHA#T1LWsRf*fp{nZhI?%29 zO>8d814VI#+?CX)PyegP*J?TaLExtRkS0Qw#SXHoK^gtQ?H^==iL;KsGpO7lGES-U zt>Z|8O_||x_SS{!N?gy2-PC*<8Proh{Xeo_-(PT1iwFRnD;O%Xw+?$mprPEi&qLsM zk(3+vfT$e`c|;;VdvE~&{V(*`r2Pp^9~E4Q26iv!+F@LIhmQN*!duuq#c?C9VZ`sC zjSN0sC2MDSO#dhqSl;~}J8H9!PQB0pQz5^=W%@T!@r_?NX3ROBdm>w*VcR^Y@BF#l zl{q7*M|NV9x-2`!oU_~isC0tgU;6B0GI|2X^S`OQ2g-5{ej#eTf}(DGBO-aXwAEX2 z!!hQXD_W$PEh>6OlYh-~b@@IQX&ie~n2gz2k6wwpo~(QAX(-A^ zG{N5kT-JZmI2IoApUAai4spvCJ37mHQ{4eKnryzwIr~HUoSp|z)~~Nk5_31^LV0tE z7?Lk@Fl&YL4(r<;WcL;7!D$zjtgMp4k;Q^u$xXxjnXiO^9zRaw$QpSfhl!L#j1*AM zyfzibF$hyS7&BZ)##*ooejL(x5Uiy&c6{+IOe$i8q0anpbRdQ@>ogH+v|8 z>#O2l)&&xS7_r{tg)dxbMA6(_qQY9uQCnt{^~hs{Fqi{b2yg(S1afbFWm86RfMBF# zCbiqgE=-(dMTp%ptnqIqTerukNX=kkSOM2hHjdjBF3KM@fJ zby<;BrBPJ$Ou@X=Y0JwxeO_EO>H!L#S<>4{negnKUi@Q1KuDjtQQ`glhY!MEFndI- z_zlJpQuFYH*Vmc42=52mU(3ga_Xx_U%h#`K#a)u&Kho$Gf}pOosS0&TYkU1in963C z*YgjA*YJIx36BeUx}yCp;m3mZm$QBr^Xl$=Fuw9KXi?%h#vvL{(|7Pbf!b%hlfOJE zI01objWZt*a*Fd~*7OJexmEU6J4>OfHvY|Fo=0yM!vlB{^}1TD!*v@)wsrPte!0*R+h2Iuf& zP7vyF^&q&`?AY+WDUss&H7YcLJ=Vr^Q`7P#jX*>pp)EYWS5JE1+F$M{Vl~O0K6|ci z>O5Mo*&JJ7tZ70uK3VKXJtSM>RTaVT z!b*LlM(u%oI~U$T5cd9+Y6{~2^u}`Roj|1)s{7JWYl4^S+SwjguTLsQ2!Fo{_xZu; z2P2-C@I}T)3Al}8{-|=ILX0_-1m;f-l$f`cfYFtLwd<3Kytzs*0gjCH(8a~YIWUJR z!G2+N9$hMlbA62}N|Kxh6M`h5A~wBukSsoPt`wES?gs9J?KNH91Y)2~@NY8YX_xEn zjmMR)SFSRRepVE{<$G-D@$%EgyE-h6g)0e`MrrmTe!A`hvR$>!&CP1z#|l!XC$i$( zrBod=YV%#d$3OCPSeJ_`KA;m)$35v{M-pw6Wtm)9@M6aF+}uAjeXz==IkeRP@MxeM zRE?gVTFZpxJ2b6*$hN{6Hs|y+!$toS`tBtKg)pM9^X#lYP|(O;f-w z9RL(2f?#uV>eXYl?(-7Xv%UEqV#66NJ235ARlnIe2g+#z1)u1g^}CuP9y*|8qjf(3 zTz_G1I%t7L$V#%>CfS0KFb?z@a1?m4+N5TdFmunc`-}CiJ;Rk3pCw6t-o|)?I?lw`}Xz!l1Ls!h7%&M^A z1>fMI{rvvz+qdlc`Mni~XK!2pKRr-1odTrm&Aa9D_IeQF!iA%KH^7&*xCDiS7BkPP z#7;mk%bPQYb2Y!*efi9YN&wr4%IM=$wXV}$Mprs5!+*UPg$lk zG>0?wrT8pVTU;od^1dF}z;%eRRdL#OhH4*K5SM8Zb7ScC0tBqUqVV{I3Xon_x%B+i+SdEu??UT+?!tBr^O^9CI$yG63(>qk#uaIgnm z50tYTWf()pU3d(?kr0k%zG$dLL|#8ucZMn6!SI3 z%qgZ;me!dWrPn4hHR`5+Q*4N*7G+a@K}xu}P#3AUyu}0J4e^HVUfQemspgd%w+4!O=mb`yfM$`QpO+EqilzK$cxqOx zdF$P0^-syJmpiNy8{!|G%w zL0LOO4uOoqw@Kn&0X51?&+V~Ir)$``k{D(lUK(nf`Wh&xn@~mrxMa<0ucx~A&37J+ zdSwNV3Sy->;*5;x{J_ZOeQV;&7>ZOfNdk?)XN=iSf`LQ*iqfM?EBJO#hR1i{@2>x8U( z-`*L6`)!KakJPQ_-nV0Bz^G+v^XlYPiMM#kBahq&gaw1gC^QXDzdML+6}s@``+7Wp{y}E z;gwngs5ScVeWBVWy=07$!vOYNg-HY$YJ7ow=9Ffe6#iY0P@BI5t!B}-0K{-dd8i3) z4s^IAandJeqZrJeuOhRMdg|pGok|@4HtLPfrHlet+(V_eby7? z2@wd2Y1}>HzMvGmnkh7#3&O|rk3a3^orFK2ALyP#q#lCqD^;;Rw=-OaSF4r#6lypN zs8QZX?h+Z%Rl=RY>Hxxyy8F8erNv=R6$b08$Io<}hB6kWFk;#T6ksUT4zZ@C5ysG1 z?Xx$&a_ma&g7ff)kq<{2lcOC%|7c6JaNov#mOvJ|z7ehGmg%YH+kqG+>5Rjc*W}Oa z;9aoE4n6}bu|^}l^Tbi(o%GLbu0N#ucl7W;9}-h%%!Ei>+)-=ktiVI~b__GL*LSKM zy%dIWmZ84&uYLJi;6h9DVZI=AHp&6i<2znJRy|8SZpgqN%jq3wK?Cq3rE-9-bpq;Q zCR=w6`}|A{`?hTa{Du4C5vRQn%(!*+Y3J+Q7~8m|c{aJUOJs|UVVb!5wUI;&_es#< z3bM6P%81C4-3slQ7h++)#i8_t7q@bqFgd48=(COx~6d1x`Y!oDl?4 zY-b*39@GIdO9ee;1nbD$!Z@9>y*HpQsgXw+jaaEPwZbK@w?A6L!4d{~SE|l8510)T z=d5;c2;S67#S7`(my#CvszchDPreERpmUx}dAsxKRo3!QWr4uz=NHJ;H~3LuB;PH# z?|SHAdjVyP+J#c{RFY(==s zvpEb#b#PR{l)x;6@SHqqVEhlU0<#9_PSMG59vi;gT2`-scVINLKUAVQYB@#9KFt$( zd6_L_hn+jXP+)`}x{*7zrz?or3v<|8U{uUUXZZ~p>KzZTjg@fdq$WE&l7)*+whm7= z`5v!Ze`xO|InP@=QqnrxeHRTJ!U(x!$Ti=lHL(hZ(Va-+a>$V#@4s-mRIR1->?S)O zi^_{Jw~ABzb1@~1?YKuf{xTzm(wx02+Y+OB2lW1uGyO<0bDGJe?tF8}rH@J@tS-Ql zFfe`795o&26O!#9(dHFpbP_Y?n5v!6DF;G0Ei6&3{0@3XK6aIXK9_jNB-JB&ww%sS zqZU%g7M$L_^j$o-elxyP zOSiNpDkFNv*u}r?^E@>Samfi_EvGDkH}kB)=&#p2U$x8YnL(RciXkeELN`(Y&6aF@K z^$k(fCfh|qr4T}N5`{Qs@-8ZteRMzw{ij1kN-w+}2oCuS3sdW<)|rK1T~M2n&MwG@ zxmxD3fz-IN)8+|@Oq;mzSAou2>7BDPUZ=U3a^E`x=f;u&=(`j6b-)by$!O^bW5&j&vF zB69#MoL`9dvGE%T8zE!Y(j^6P?y(X47bjv@gdUh*e<-wBEySWO>mj{hPslV@Z;m}@ z;I1gRo$eHjq5|6~55?uRlJVl36HZ{i8Hy%0kTUIPZf=S&59*~Z; zy`zz_Q}pT;8TDNXWww~&?eixB_t!Vzmc1Ug&^ihvg;T!B6UfVIN?CA(ooUbWU1YNr z$jMUE=0@#@!dYe&w+*^oH+|4ZH=U@Da>ZApO zK`;jR`i@**McISPkLdvfaGwP?8J{Fo?sO#i!JuN5iWcw2cmY7~7e{fssVPNMn9-W?_TD?#+E3p&Ne!0vC0H%>r2TTK(O4^)I z_1sd+%v4$|2!n0D8!|KuS4Zg5_0{ravySnqdC=>6>wS@k*{4(`!0mZOwqH7{Q8%a$ znV2nhpOC+(9M1}$&PrtA!x%O~?#j?%cSbMYVxnsO;v{uIApYLojI9rzeN%pxP$-K! zf7RGMB(i+i+4cgK87DL8YzBi<8=RMgu0DAH$7{> zKe`M6toFlINGA`sx0^*qUx-L;Q*;y*(OolbKt?ZSs>Eg0c9weDZ>}Nxd>qc zdM|syMvHF0E_qd>Kt_IwPjC!^$rDD|@iArjznh7sBO^bcX4-*_qO6#LMGeq-#>E}# zw@W%#%3@C3?dn2HkP|?=mb1Qoq7KyX2OSZ^7miEQRs{WLKVvpV_>;%59H7c*!a3Fs>Oq!mfqV4eZHB88B zZK8}Odc-4U8yBu4DXSRTdK()X^8$Uy9V2+=Qe1!x9>h7qunx_vxO|tp3q|Q)IOR6g_lNb2Y-IpgOBt@*}TpDX8y%u4j4!*~~w@ za547iZP^;vPJW=-Xc;FK|7N-5sn{>YzuvgH)ym^MbFocFE6$8)aJ9cORE?-Vx%=TN z1~oHsjS7Xa$rN8rUox5PgW@K*^8zD_pVf_)+=jmFnfi)5MgKh0!3e!{T9d!-(<>az zbQ9Nf)l+**Pg~pJ$&yQ*z`4fJV1evg@J{05QXLuZzu10q`U^;t(^=p&O!ryAH<+uw zvyuTx?}8R(2o5~we+yB&%tP+SOG@im#`_l{agun*IBKbB$ov-3*vEOae_dz&If`@NqDb5 zRON)}s^BZt0h^dDO~~t-gm90h#nhCTr^uL+*>kmZEVX}u#2Pz~AQ$A?(15@9(7;aR z;)BUbjL>=9%za6+<-)nMCfQOJseY^Mn4^P{H%)4)K5J!5RRDk65PIn()0E_Xe7O1R zF4+2p6{v??0SoErJmNJa&0jDj`tGA|$>GfP<^i4=Ee>FlCQp2|N$Z2M?=~rh&~3)P z3gfF)HcJ9`MOll1IkG4>PbfcSqAHnP^uYtzrzN@D^;1n>AWe~E0|#H&xdkbKAJVY? zyrEvoY&76c503hLhL53OBRx*pk=mm&qUIILZ?q9Aj2=Ddfimgjh5={wg03k|bF=aC z6jSSiOxF5kZIEo8p<`@Z{ClJnaVDoxWCBiEN6@Cbj1Mo>?#{VR^w>GS>U?~8K>Qkv z+69wqy}7f!8Nj(igOJkTB@-zO@s<(RHCj~K%#1v@y$HAHD=cY#U?Oy8IYeo}$?B)^#8cB!L`MFPcDfxzY`=^Mt+^RKedc>e0o@<8A#_+E@Ol}TNO*35= zf+Iwic6_?mCs((7fw(*-pJ8OmWo&&h6Rdj(_}eF*TT4x2pA<*A8@6NH9SBoZ0cJkg zQuF8+j27tGBBIgxn+9i4D{~7X1E|&fMKdK92E48rWnN%z8v^zUaVj8sG~T^wD|r0) zf%e(Q=Rzep1J19?3f~j*f$VGv1gy78N?=7(r}F}woQi^67eThnf{y~BOyn#7_O9tCc$M6L}B$(S%*T3Lo< zqfkrO)&TYj!tL$^8NGTL7BPGq(N2Hz4UmD&!(iw6VNwPVbm;i&&iZv3qOqc-_>R0% zXUlnjJq^G<0SBw*R3f5fn($v(C;gn`NKtQy!?n@d=p2q^1o+`vON zaSEqGYdK9=_9cts?zJ;9Ve9#pQWFc2OTEvh3h^r!1c(kGZ$%FgrW4Q2u1|}Krg%*z zWV|)e(u+?u0$4r*)0{19}q5(;Q{r7v}O3 z7{>Nycs9~)cmgPO-b%33w<)M=n%535ZIU3mL}N)VZQ^#mzEazw1CLII7k^e8IVWdY`w z=vuCWN>_>v5m6oK*q8xWGlJ_68p|rV1kBY+o960x%-w1MQ{BMD*4J<8MBjr{W*Wsi%C-wBDA z=gckDthn^AO7ry#+A@FC^}$g1nr$gvlVWujw3Q#ca+uKkmY5P z#u%70)wI0DJJ7x`%uQUVX6^XGYN4UuO3y*W zN`HQSlb<%Mw5jHcb6ZSCb(#sqUZV2QX>uND`8q?QWc(^}{XG%;zdySAUkLvnQ_wQ6 zK@Z|nKvHykioe6!li;>@kX!B~8B+1D_VDG`!uO@K!!F1C?o^MW(V5{Uf8&fw#f?hk zsK_kPK@4KQmk0lepS)>2jV9LhGd9_<&{bdlv6200e7`{>jjM=HXXmU2i>^E4>UlIol8AYaW~na#pmc6O|X#e zU0h+oAN8)dzwFhq`HZBP%=$QEVWv*ZUZp3aAyntWd^>yoZ1KZQ?{{Kv2IvQ;E-i!- zO~tpA&T~~zDqh~1yEnsHj>2DLa3yb_oq_gyYqQkc5-on(D%n10uM<^4C0HGRSx7CX^Un* z^egDn9N1eK29W&uOeMDlto~Q+w^d(OaKZ1~<`EUlyj1Ul{UOH1e9txx=a+Fgk9*_jdmwU0 zJ%e^xeSSkf;{@B+GQ{sB*v-wE%2RX=PpKzfo#vl2>+n{&ZIZ${+%zoXcDPCacAX%g zVQdVHO=#qTfNksAFdbUslQ(?2>dj-azUeAN$g*^#j)MLv?&0DTvPG{1tCV|-vJ5$X z03P0F9lY$=mCQeUvZpP~ASqK>dNSpj93YTJiu!kOKv`Ya@JBDli|=L8khQ`63xq$B zeiB_f%B*3oz8SvPJnFNNtrMUYZe?31<#vRZcZIL_o$DYl9Fl|359!_am9-r#2^PVJUi%7JhS5eMrXR#bj^)=NL7~!)UmcUK>N-6qOx*G-72@c^Y|D zzy{rCB_izu_Z#eo-;P)@-q?D7arMco#nDID{QE1bO|D|TPS;>ap*_ZByb5*wK&tM> zK9JRur?UEMIT&;qeUfBjzWHV+iJE2VvNic1KWLNWHd>+O5Bb&X9W_l@X|*SZjiUQ*SShQDg@C z$RyKKg>H9t3NKxrOjsM78osHv@uAxuRnwnvZ>dQpV~e*-mY8+;#%$?apt|jmg?8%q zAIMv1K8k!cR5Z#7Q(MWjsGUNMHoZdQV-((@Fn>?^?D%Ah@|C>^9S=+mb#=?)m;JwCmxOadG`vGi^!Tkqhm2BYT&Jc(z^o%Pfc8Z)j#*Fz@%6y+~#S9#W^ ztLUwnfnoPMuTfLFjgBO#raQ$6iZ-h>3tsPHedX_>7ahIJko4(bZ5+RCuFGQdb191c zR9dTm3|%E}lfO@VUv*G*e>h|6;@6Y8UuDv>s^Kzj)!*|_FdWNdr=aB*=Tqpn(`MNx z5~)!nty&oJcfXA42iEUv4C*34+5Y<6?Cw-TIWeelQ2TJp#cn^b3c64G?PjTNsloyh z9A+}xm6ZNUedIcE{dNE=p87ps;vRchmVu>BS4Xt%3X$vak7qv*VLxfO4|nLa2sCau z*`YySFRt@;(|;&-2+v8(~FL7D8^*gYOB7}s#dkk`T9W~fCk zKm}c~uG6RZ04Bc?wSK;N2k`w;g|oetLFKM}l}jrot2ewMMz4h2rOTod+Sagj9hA7EZ<&h1-07mOq|Zi$@-oNvdGy~U zS?owqLe2UX^+I!(RG~Eeo$l`-gS}JwMm-hm6xBWngZT2esFwJ!<=%={&5-TVNPlsS z>@$8T+wpqJ?YaSq8DjE-%sGDGQ<}r`DC%+tuDsOaty2uWD6<-s(ccu`vh#ha@2p%t zf;aQNYXBM<&*B`=t9UzP*{H}!te>|CMax&KVx^HL@BlYZb~as-e?(=9_xP0Wtw9w!8(Mw$E5jzQ!?X!O1AChl!Z%f0KVFi*!SPX`4r-)_LO zW9_cvA1cSSW%xk+wMh7Um*I&QVet)2>9S2@j!xnfj{=@`jMBb=U(`5!fdQY1U49dH zg5B+j+M{p+W6pLwt*^g(_WrvS(!7(B?B%R|R?^Zk9MaBND0Wjbe4f=`ergA^&TRLw zyS)$_bvK$DW#m@nChU(~@>};cvGuw7TL_*vC_OWYid<@N)Q59)tw%0RixfX*iTigd z!DgrY4Zc4ih=l>aPS%r?G3bYj{Doy&l2l}HL#DT zWh-6Vhox=RU5v@9R3RbNQUhb>4SDS{lmitovE% z=;+v0RW9n#(J^+@(QSq>ZvjTW32us`qhr`+qokx|r=+apWbfpn>wMF~QrXhc(#6I? zNBIIB-MQz_^-Zh~>hG41EzK7?+8ppbB_(VdMLeRwUgzt>uAdake1~q~aQlMup`XWk z;%$zf8JK@-BPhT7{EiRr`ojCDMj!YO+h$;&io7Y%dczPPFxxVx{QBEomeJBP`Q_my zcF@Ld;!qsUAJgkP-pdwRB5V}ddyHOqf3^s^^+$gFP;ITW+XufEcE1)8q2QM%ULN0c zV4xb-g~jpK^&)192~?}mY%S$Y|MWcS$UN6@+GWK!2 zKR9X%=?u6Mwol~2V_uy8$Lx}@K>9OEE%F~G4Bw0)1C#3nGFVppU6$aH#!H_iGG1x$ zwL$|(prT7XcD2X=&5(RCzulHa~sp>F)*eBmjxI97Lmow%(-+qvob zew+}=^(OFf=c?PB_^0u?fwe?E{-4>Bp*?r#{l-PCY@`t_QptCooEIK{I)LAKEmgkO zAT1&40@+NYcz4|~xyPn)Tirg1xzA6}-7|=fVg3;&wU=%Gvty#y3V&Vr1TrY(f4jr1 z$PE_Q5aZ=xl=8fUG~SFzRK%R0loh2@Sj-}h6h zqN-s5vj>la4~p$OoWvW(|5^9;v)f;#uWS>qk38afd$RQFcdt!+IuOaH6;FS9oUfx; z-Hz@nfPcIKk=)S%?||DiyhJ#fO8Yq)JT1R`4N~6jI_!4TYQL?B+o!JY@h)&`wHXGH zYle|D+)82c-wYZ>UMm(KJ==7R)vwISs8)GWPUE(GvWUL@&HSV{H^i^a(epIY`IUN> zGh1yjnja*5RtU5EObFvS4jSkkl<#kLg}6ZOqV9h(={xCS=3;i2#}%S%``rt7)^0o} z={@U^O_X*w;X@~JB9JMze(-1{MRI^~}KRk^MlaGmQfds)U? zzGl8><##JoI|uATJ+0Ip`}N&rIInTrk7qXV1%~&mfzh&` zEpt&EO!81B-U1Z7Yi7Dlfi`puz||(;Z$I!yM@OGXzcj+wow#}FdNYLfv?V(>ydkQhoHY@f+};y&If_gs2B~^Dm{OBH<&(xnI-55Bjd5Nf-mkf zAG5!BNr~s!`Lk~m)gE5F%9^OD1ZLoTb2un;z(j^e<3~sNOmkyTW`6IeKtuC%DbA-^ z4)#K#(+*BXx%$IJ!mO;U>L$+Lr`tr&z`TQ3apPix3I8RU5Xm+ci7IP|k4n{rc=rt= zQcx(bzAh)0zpx)1xMQ|yN{Ynf51rjXnBDys8lBz1;Yph2bbt9dcM~|DeaxJ3;pYig zdIN=G>fpHB{1BY{^Z~W6jyN0m3*8gTs4RJUtvy&DOLTVPEVcy5Yf}v#i)G)AhT@A;-Ix`QMB5maJJBO?jHZT_6io;^vH)R zIbeNzPRzew4c&P5H`;CRYPG@rr|JecKR5i~MVckWa(MR7QJiKhWOeSPk!O3}3&}t~ zthEk0@B_e_9=zTc1Kc0DqXSnrotEQ|-vP&O{WmOB?P1tGZlv;c8=wu>wfo)=+jVPd z8u(USQHBxQxiGC!KS^uslxE=vuPFBW3)sL9E8bVs25*;>s~dR)$tj9|VveR4vB3 zcEzR1zjJDpAT}0W#>fp;uk{EU%C%%Ezm0FhoK}Mi1M~k=0BPp)EW~|__ zv)st$3ladTuBBnetR;ZvX2%CnK*(ecu4+T=2c0EzzR5XR(kAjJq+Vk5y&Ci8!@k&m z&GK8)E-bUG1Y@u0$8_N5EOGI{zrJGZPEKbT*fu-Zu0d_!{;Kx?y4HsgjOiH+naA!~ z$j+%e)fZ9yH+|NkeMSuhAV#{sAo#=k)p8fU?)#He+DMD3Vt+4%lkSgQFVedc*gEqi ztG~?b1Na7#0p0pLWxmKP(9O3y{x7K=mT~tu)@&2q`ef}moah{)<+f#gzf!PQtEBk< zc*A{}P#_VetsAP<*BnoHEG>1wtYn5rj>VC~Z^4iupvqs#J&3334glj<1D5m6O^-;A zK6fwjs(tS{6g=VAaL-s?`$r;|sOB!AZo7|n4A(q!oj1|h?EcW6g+XT(Fn{*5yE?gd zK?7N*xaY5sm0o%6S-Zt^kMCELxkeHerF@dtdAjpdvxca%QkW(g7Hcs-2zGiNep}dL ztwg|W4D&7D+pG_%{aZN}#TXALQvA0fp|xu*{>H$Zc^n|}dHaVon_X6j7F9q)1Rcsb zmTq6Obd@cjA^*QEY?To|W)6tdmkw+tUkn!yTQx=glc4vt@srN+rscf_I zN@{rCQ*2#^WMv7-vy;famPt&zv`ToMbuDI%ilSh0`RMpPi@9I*3S@l_a~KbWp!0cf ztNJPp2iLI8Duf0~5-u*-SId>YAR!A`DRTPEulB4{mDD6#-Pou#=oBoN=&X=ZX|+H) zcnf`qY5I*4O%$tge{UbT;K9_+@TqOq7i_7$e$u>x3J8w7l2i4 zJo_68H+Z#5XE)Jr=*B8A+t7^--Ppj`MZd9O3mdkuVGA3!@H=c;9k_193>z`Se?zVT z&M%5JiuK2m%ZwUzgN|knIUUm=f{hs0`dq|5XZGB%0`q@~@LPx+t$XR$r`} zWVXH;NTCjM-76Q=*{7JxT40J z%VYgr2?m8Bs!Z9k4J{tk)GydUT zg?nRyk#bZ}C3H;QV@--!b$XLoe`V7bljUS^?S(l|ZGqe^SvRW$INb=8Y8tz{FRgKf zD>K{y7`88vZ578?SEzE;fHZ$&=@oX-n6ts~b+lze&DJW(g1K!N*D5c&g!&th@+TB; zK*|QB{5}TR0Md1V)GA+SFL1Pap>M=&%&c4PbmcYQn5ZXkC*MC52TViVJ7A;Yz$!<{ zleoHBEH|<%Y<2RpxPam|AkqsysCM359K2oOOr2h36v=a%34K{YY<1awAskY41@4{P zTQ!H=>p2v3N`sYB@EBprV*x|?%P)ndtKz1P;QQ5nGB>&&E@7S^*vJV5v@K`*`BOs( zIVUJX&wq6uFzf8eJXaR8s@ccW6F3p9F(Rrh?Fzh^wY$_6ce53KocL*~TtU7ssfMQz zCQI>_*6Zg!IjXpH<0kr2AkZtti?J^eUqxbQ)~NUVfhSRJf*U7?jgrU{&*=m9zgS_# zAH8DjJ3I%!aT!321_s^XzE*Rreve3Hbs8%XcBpz{Ux-fAWoz!0h1bYS>~VFE(VwWl zI6@DQxaptZzlEx-9=H|SmbS4t!n{MPgo#)B!C!tC=!R}yL&gdPyo!qb-1mPn|ApQ} zXTr8M2aqc(faw6C)4kzaCD_%J->>eGSy^T+rf+O?ky9HIW!|x&x{J24VWYf?8(_2u z>l>(hpYDI0d+8JI+p4_ES5C--$rLci`81`kYnuFpiK3c@(#V)6d=bS`^1rt{KDO)~ zof&|zW@n4sauf#C=`a`^w&cJ7u5OA)Um>NM%+@-_N=V=IYPrv?&m4&30M5_^ zb zAAk9}_~EGSE4s2`aNGES-mADme$L&V^LQ>EqBHaZXsV72MRZ)ZWlb?L?>^5fLn*oZ zzx0{y2dwgyz}5@P0J7%dCD32`vh|G2dXzITzul=-k{VRayF%UStU>Dr(BQVQ@UoIC zZm@dUH!fUkDA%%XEL{8#H79WX*>J9&}KDKu9!vQJK(KOYv;P-D?_XB7;FsqmW_p%1@RxxYJFu- zi=}S?{98{KcJZGpZ>!R}Q_EFVnp)ptXolk;uK4+Bay`zBbN&lfvR=}RO6no71v}pU zZAgkjKsb?6B64+EYZF7NupZ;sGURiiREv3K^cNneti0S8YFmR$H0?cU8XH>9R~1JL zhvpqxRTN%TbToIT^#Vx0XIjNVXEpG!PY7_1aV(+gVk$ce?z&Jbz|XT!DUNdrFc^+M+Z2U@2@qm? zJg0~DdQc4=9XBuKk|zZcongGunk)STz)R_`8OAG&N+4r(5OsJ3DPyqSU!n38d$zM^ zOv3BMC>Z<{D8-AuLA$OFik%t2t;4b4gx&Lx6FsO^ec+sL3J>CzEAHEbfZ||gaq3D& z&8yf~O%GR)snZQHn=ML0O+a~qe|2pSmVdly2|Jl~3CxOfFy;T^UA?hYvGzm@kah;9 z;Dgo=V-@@Mvdu=GhIQ1zh;;O#^Joe}p$e-Eb62R#FHh3Ex%ig&T3}*0!6MKtl&o*v zPX0Wbla_muBq=V7PP`g5C)(pwpswXEfs^Fg372`A@Kd_WZH>_-)?k2&%)4Ktu=Mnv{V z257i$T_hw|8`$&ZfWkE|^9PGKW9BIg@Zg@=@8paJuufcEIAguU?+<%9n*)!4Kgb2I z4itM9T7X7=y)pvf0>v>B;)~Ne9|Z2b+by?JfC3(JU>M&s&f}lbTZU;h_$kyqioSDe z!3><$fRA%cN6#g!epPxE!(st8I32(8^xy1RWOdakpm1LQo$!|;P{%Vs{my6`{zY@v zykEU)&EIq10dmgRpl?UkN_8nM1qgpcIyEh~e5APa!=f5W@Bvz>7P03qnqvVJuR_vr zo$Jq?3%n;ly7Q*sFPd{u7tl&IKlop&S6={)m)wi>X_5DXKUQlWJcKH5-&08C-cYk2C>SNv~ z&TPxT`S=CebK>2Oy%WsztlAhl<$bm6`&e!j9cNHVWC>;76c(z;%O3w$2CDakaBl=f zBq$WlXN-^$1TQH`Cm4YuU!2jKVFvXEtwzbMI*QePp>th-+41|Gq0T(9uXq22Ut4v| z(Yyx`|JpGZBRK8z$fp|7IQcuf=cJ8z5TKkcKhm*X9`GW##Nz6S@|#!)bHZ&4AJbZv zmBmppad(iIQ2GdJyO9rd?vqGX7Uig4rSsriR?Wg)=CuqJI(KTfsClf1ia?kDIY!xj z`M7~M2FsJuF2pX<$A)C2xAD#Hnkv4h*Va@1m|4eQL5@|?Y|r|z)zKmUOstWs`A>#x z==jqa2J9xqd&XJ@Yaaxj`>l!Zw5xuIKRR0742H~(Hm;EVl_+JvSD0*@`P>! zQr6)9A{1{x%6~bem|MCk?UhKAvf>Cbcg`JD8gf@t>t1U(lpBRlZAN$^S3t7h& zfLSjqRqYy2I;G*gd=j%5cSZ{5-Zas7kiGReb^BOte0lmvGp+|QpYk*XxBt5Gh_z># zHxcU;E}=} zRF}ekLMr-|x;~J)fN$=e_~Or{dQZiD%(24rV%|MwJ4VlN# zbBs4KxJj?&A#aNhxTbxk^0{e&*bR9(&1&f0f)U`w+$t^B*_Q9G5AKOy=hIWPBusl3 z5d0PHY&Bayj^VljgmC|jkAq(-bqf7S`!jG=CHc&GH3L!k{x`#um&M->r_YUGof15; z?`F(k0Haz&0mA)N?E?R$0M>C;Q{Vj#YpUsCZl^_P$7ie8AL~|jpPGuL16Q)Bln|a9 zDy@ksfr70rV|!LwdRxY2(K$Jv3|j;=3E?CM1k+WC3`e_}j^&vAi+72q=mUAK=_@;M zL7hFuBAj`k+N~D!3|j>IlysTWavc73`|r4r>i|IU`+Zly>lh{A@T+)%pm5{ql_2^z zcx-TO5xUj_$p2$)0l&1^^_h#&Wj;p@q9AnxdM85ZRYLZ0JS6B}=Eijs+~YGoI$!HH z{d3pJSCsF}fja8AEK@fUkGij8ghh)7J;P%&07IGUt#9Q?pX`ygU@mWWk2-!7SzhGA zyB6fQu7T5rV-nQ$M)S{pD}7>XS$Ok${Pa^g@Gn{h`{TXw`#0$l+^1>}#iiPz%3KrT z@BKUd;yadmTIxv>THvy6lUpPm_ye;_$@V&E#x;XMc9JqrZ`*4nkI;vt7WSZRYaaz4 zWBa5n9McR`7tg9y1*S;YS3O#3A6TQ5P=FZR^9;lFbJxV10DiL{aPD8Hga}xo(HuK~=9-GHx&UmJjipm_4TBbP^)Py` zbaJ2Dn6|!t*m#mekDHx7R*;1dG&1$jb?)6XHIyR%x~yc*^H{$>^OKi%X^f}p<2Yw;q95<92HBtSJ|@hb zI^rOH?cE7_rITV0oU-@3X!rc37J8Xgr9{%DgYhr5Hg`6a5`;*){5nelJGOocNP#cV zq~+gISlp3TF(BA1BR#+Mem=M(`c);*kB)R{yN@{uEzL zk_ZqbIo-vsRoaEAt^cX2^dm5px#Z2wlI@a;3vRucYnz(;@pZJ6o1hESIOfu_MAoO7 z%V?8kNeH%u_1V9yn#T7DW_vGZef8kJ0hn2NR{A~MK5k{XeU5++>*wZyuE#?2`}D16 zaIfLMHNSGAd(T#73ug?Qkkb8RP!hkemij*i83Cc~J?ir3V!((xXUCaI?zzvLZ3k{? zHK=He8eEec%S=}exs6eN*UC4me30*LM#g&F18jo}*oWkucZ};b;{mE7!L6;Y?09{o zGeE`(Bd70PAN-*ZRSgtJ5--9T3v)JF|A4GLCq{&Tjg4& z#6p<2U%oCt=(vAB1XCrMadl zBva`Y(f-ZPNz&Z&T(i;=TN*jfO^7}6d4oQEa@5zXzVSx}dQh8Zvsr!N{F&?5j`4vs zBS!BZ{Fp~!5he}Zos~9~c)+@6cc`;js5Ko^w~?Qlt^0JvrUGNL@Lg@4$$7(Rwmu2= z6&aOJNP4Yq)48^JU3%D@@lU>kl!jX%{VbzX+VS4zTT?PJCfPc)=iBNnCNVn$`Lzjc zQ`92)=e`bK29NlvB_wo&aotmNL z_nwHI#9?HJ9&Sn^FK6C|%^xrf2Pvh#Jl;yRovBZ%?9vZ+t-XV5{VA)d}ZW*sA8 zEva|x?2h}H#!w*ICz@bMc9XcDyIpZ56jT`0UspSUrAR>M+wtzs7b>@DG;H22ql?5unOT7BqI)3$&bG&Y3_c3fWt2DpQot zD4&YQDTTK^o}y-y9uF}N{?QlJ>W3Hz$k^k}7YgE25_hlENjaK!d7LTyHAmaN^=(Oj zo+^%(fxhJ`;_sfMt8Kz%;e4hE13vpI%KqYvPtj+19~#b;>+gL+2otWzExfhxk=FtK zT+7Bt-{|4n?g$eP{o-El(OE`;BeYeoYne|DeQA5lejq)qqGq`6fRpir=R(h4)hx?F z_wU+mzv_8Fytz4kSi83Ip7MH8m7P0z#nkBe-<~NZcOjOSi}#XR=olgh;xgE0~ZAiK>NQsNIJEjt;&n&Nog% zUTVotegIGhY|1h=tp72~J5aozQsE`Lq99`4DR%wqK+tp1 zJn!&b*6?+)8F(v34=8u1R-E`tJv#*mvm`Cwe*9Oqy%e&_aRL#OU{1qdgd_+A5$gMF z?*1iW(geJQPeaCE3h{r9eir?1i!R`>67cCuAHG___=S+=)e*q2M!eX=zj*h*eg(E| zZmDT!uvpKCHtN&Y)zw8yPoYbu#8Pd(XuSMro+2jUB+8`?%1bImzmKL}Bl| zt<)`CFVtTmI;ufqeSHQL;V=ANKSlhHx|vHK9Hfmc@n32%SQ0j1L)Lpc@+=!)4Ft=K zAMU(2Ut3$-C6rzA!vaeZ0q#yj&=CTLyRGerYmC`lB07qCsR*liie^iSJPcdhMWTfY z_~m~E!5gOg2(Iz7zS%7B*wJ%H+9HYa;G1Q8;{0YhW3Oc!6Lm}X$nqf`@bfp|?++&n zf{e^+Z2<#O^q^00#x;M|rfs02suYvp^KEc&kVJp?UW2&mJ($R-g5_DVZXGccGb^?V z6Got=@A`%bQ(rtJ4No3&S~yr2)-;dKW(4ryT+occu{TkJ(zz!Q;4pKLf&b;wsRp5( z?!pR{cpxeTCj$ix(Jx!0u5E9-yAdBF|4*4oHT@+^l zD9zO(wB~?5x%b~dpJO3BDi{N-z6#Iqc-SzMe@yfff&A2!{W^r`!ORo_ZH^z9tYl(t4y)o{<`7M2E)%^QZgKaF=6+94RRpJ%=yW##bkvNtK;#za3) z@bmaheRVQ*+?|@>J#sT`R4Fa>D3Yo<;(w20gny7_t_EM*aHDf3@|&rVjGaN2;WXxk z+1H{k3*Yws&MWrL?!yHW%^w)c(rX7*ibUNq$pB+`b7jFdOZUXxt=p$OL;`t*k+G#) zB5sqC%RO)u|Iah%=Q;T-JKkvmfF^%c98e&0VMYn3-uYJyGw(Qz9j&Q@uk5mkb@t#P z_mhz3nJ`|_Rz|N8vJFAxB$ldt@NTVLYcJtgss9JdD3h7iQZS`n7V7V#I)gF!WnhK8 zR9Y%8icTon)7f6&>VAC4w5`XSg z&JIuQY)Nd+-dNmO62JyU^C0>fXAzY=a@H{AjM3pi5;dd2tg@*63t;79!hjd4In6N# zd=L?K5wl3VBqFb;f^14v_2zP9Y8nZOIhgwqPLJyNp_s*bi!KT~|L^~d(%^Lyf2 zz0@dYr=~r6y)b6?93ggcSl{;!C=4=kL0PI!Gi>n^iOxb28`CT%5qh8(ez+@d&;j{} zEDq32>${K`1LDCT$)G}nFpn+_&l=V=VjBWT5ruGKhYn2-i)otv1e|+dqAO5B=690E6HdS-7}7f_vls1?@b7G!qRxC zh+@1p1HHsfQ~oLy=0TR~U0pJ-V!M$@1m;F%z8|XY`2k5QvJe(IVyb~kXh}cAGv;k$ z*SX-OBl*SD0F%%?sd5(HOd#@`di1z^h>D(G_|U&%F?~Sgp10(^1qAW!NaL`Fq#9R~ z60t_BAuF(MK1jVC*DzmZPpWFNI`2N|-7u5B;Boc<`5~hE9S6X^XAnh4A4$#&|Fnv*vUw=tLHDS_F+ZH| zB{ZTn^|{v*vbG>q1g$DH^tyAV{aRe{k_qXx#oU)O0hsLZ{A`NYwVKkE3 zvy2FJ##gytnx#h)2;(rAN92OS@X!ZT?0Jg~EU1qj{SX*#4mw|S2wxUGf1#+N9Uq0i zO>%1{Cc9`1@uTwmoRLg z?{)3=Mu^AE?JfW-8g+lw=w_Erw;PF$sq&ow@_EGo#w~s#DnAATzXckkR0zZLplKhJ z4!Z%fZB?UjXEX0Dl*WWY}*7n}Cair4<0u_|(&QZ0L#PyUDl%2|kQ+f*Z zGHJ>NL_%C0g}k_4IcXFI6^p0P!l1AjjT^L19dIS<)-l6Sfe@#VvmmUSAITeopTQy< zYvgeb4sh|?)33zs{1X>}#h+PiCTXVwV1xIoezFXH4$UbhNaxr~W%~Igpp`hrrEtMs z!6qZwFNuk72`|H4TgjP#Tkom({v>XpfzFj}>#X6#%#{6HcKP_+qf#I1g-Y9$A&naa zbrZ7{^!~ zhP~^#SG!ZW0O#jMdSXcvjUgZ!MD++QIQfTl3|Wk`D~*xwAa!?h`#4)BJnG)f(_1Fk zj0YY6dbd$FP}JLiLl73~Ayp~tuAq>^HQVt<$eEr7sBR*F-#MQxm5TB4BUY7Dd&*MW zI)|0f6(9$hqWQvhCFG(PuR6jA#F+v;O>)$zuJTxzi=T7*cH-6U8L}m@Y&5%E237)< zdCEk&An7g~{T7#5Lp#EYevgsa@x-ajiRu5rzn%xtTY=kHwE9U*wci(DYFpE-lIVdp00%*y9sRt z4s*ucu?0;xValaGoC5Ui-BsY+(_J;4mYodni^Ydh&Z66n6*%r1mm2R2`G9C zhhwc$#tF&IX22Ehq~GaqYV#YIHr0y=E|8zH>sVw7FYKB;m2Gxh$*Fyzal6=TS@ z-yY%^+txutEpMMr%c!21Ku5Gye-v>XTO(>~y$6b^EL`%Z6Ur%`|g<1@NQsx%24IOmH0ab!o6k(@ghm zNL=g~sEK_Bcf6Al>Da9PfRZdV122JxnJr;(q2Kp<1nnk=L%!;fD9L}HaLMhhPnyw6eLvVL8?H@ zD+xr3(ADT{=|V^;jOEs}4|WXbV9w;@)QOiqv^QI1(sH?~Z?yR1x?xEC!gq_^*?@Q; zvQN`z<_o^oIW1ffx&W|-!9`YfKle0>L^Jy1_h@zhq$TJ$5Og+FkS^8<8wy7m^fDruX<7lrsFge9}bxx zEVhzqrgbw;0WFl!sIn2-sc$s%ph=mNhCmKneN@lU85K@Qf|YO@a!dqbY^EU%l~41r zy|OnbZw^v_wNt!?Qj2g`p-c!(x#{mUz-dF^n5bma)tKJ*5#e!4G!eS8O_2=6JT%8> z&930{wD>BN$<`DC5%-sSk86Z;JE?vna}rAj-|l-#`=6?iLH0am-uS%&2@cP&?v)bY z$8zwt*n@-a04PTDD%YPWI$A?s9q2$L%L-z8V(`fktu9LC(vt*?rUdAW<_q6rjcgic zaHidnn-PQaa;0AWI$kcxanXM0%{c!z!lL)Cn8-}d#e9j+Nxfk&7rYSlb~4TZSu}K- z$?=P*A0!;+JU7vlpvk|_t!{Hj-XmZi3?sX_1`Bx=gyLTKP*7K86`~P{2yFK*&zP^MuLiF497{|o?Kp~1YFYKpx2`>R-Ny1$$^=Y8{w+N zuQAyQK2sN3fL@JN53ER_1q87-{aV9RW7fF&1%VJ%Pg_ny4H^34au00!Sg-GD7d@0QmoWE)d` z&XWbb#!0gsn&ANyh=l>^EuWOV^zz|kiv@T17hnUIzg5Lx3nP$X>V~%)~4!Zqz$* zKWhN`I_Ojg;h!hV??(VrbBu3JLM(snwJMZFR+j8#*6`%;sDWsCYi+d8aGK-tRF8o; zLUNwx{=_mV+n6J2C+l^B9YU3JZuN52@EsTw&|A76_?{7?ul2}zR<>oPvU8q0a~E{Z zQdfC?d$TuY)Y9=&5gwfWG^Qair&1WLD#)K|uR`>0P)MzCxFeN+Nu7V_Cni}|BzbD` zp9s+u<5(B>22`?Ia+7%5zDbMLPfl-TPbMGzW%PMQ)QYH}BOi}%j&MqeUg7={&uAm& zYK$71#vZ9^9yhLpRk+T5wYOHFnptfV0IAQtiom&#IVsG@bP@(598<$GL020pBXrn1h)IojOFE#C?~95qQffezGdPtCj{sF@jc(Kn;{wCLwqGqvHkk$=1#PC#Xo+e}q+;SywD ziK5_A!A7GyGM|3G8L*_bOZv+t3dW!H7Lqa^;=!J-Xnsh7p)0m0k7;^&Gz91x>Uxbp zD@;?S2R$;ND4RoK^%WIHl@+H`4pM_7f+9Lo5O*wqwNc?NUG_}P_C~f%SXi6@>|%6= z!m(cbZcv6M4q}5?=M0->J9XF1(>`OGANr`C1j(S8Fz-*~nAseA-8etz6)aNTP~O{k zmztmx)-kD$%*%(4!*BadALJK4Hsqd`QE?%q?J^O4zEc9>cH>?_u*hd3F*rVB+d@(K zH+LUaU635*+xbvq*${U81S_g?h+3Y=aq+s+P>+!!h6VefqNWFAiVCmsgg;`tbFDYl zOVt@JNp`Pq*3GB59zqToVvi5uZDVKNdU=)kRT}*8EzWvhlV|*6p}@Te0bEys^3MB% z*A~u?7KXm_wy5L1itacz*TKIOB{?8dk&#AEV-493O`^WcHALY1--3|uor>D<i|{f?AHS5LPq~UpbODKM0%>)!)_oxICm4s95|NBi(hv zy{X;QtJueGE>(E`o}DGjBwqUSqh6}K5zijvcQ2{_y}HesMEfhmM7@P`wFNGKFVjx6 zZbdULpJ?SWfThFWSFLA4b-NVIrzXZq=R={>Il|&Y`oj%ux~4C55>h}04KadflNlZr zDXA4g6wSwIwE6$TxKLuJ@j3S*IQcjvs-rtIwUECX3AqQE?%OYMQeueHW-?hYN7c)@ z0rfV59|;S)MLR%PMDP|`6}XPQ^!_pkURE*pGcs!od>*;|8u=cw==@3fBhRB4NH&5b zU5ZtMjLu@S?7{^5g|vDHtXF1J>;uz3_3I*m#f3qQ&kyNO%?T15Ehylr(UFKSd(qab zI!BS)wPu&!{8J1EHW4d3cZ(J*E)W#0nTQ;m^mP~ZK(Qa=_f^U`>^tOL3b-w{JsV{nT zEu?7^CBnnC7msoEdJRs`1+&CcdZd>DH3mqujTw`Oi5@iut`F+QlNCvmqPFB_ae4Sn8f0H4;e#O0w#-rS^tIOThp@WQf63uRRok2CJvh#Q(|7AMf`hhAni%_-~p%UKp3 z^&6cS$k*!4p%g@zsdm2nCM6;<^z9yIiZA{^S36HEI?G|y^1W=b(<(tO=?5Se@Tons zqCr^|H5E`F!Gy^vInU) z5KMjXsSih=_*8G#FxwhjJQ=W-iV>$y8842S*@v4C`Ndm7{9% zf|gN39MS_$V+;olMtR*H}2s0aoTP^z6VI$__jy2O^28P^6EuRNd1 z;exR-SqyeE&iUF*A;-^nOkukRTnEFH=TMp27sWBj1OKKmT+<`Sqej$fK z_6HnKJ&?KMi(>H5rV#a2Ah{AS(egN!iqpRe_ydtqSKrK9A%BPjjZNxac~eR*$ukE2 zy`vVuvxMjUvJi~NL<~-zv68uY2YKc+)$t0(D?cj=Q6FK@+%&@)Z7+Y@P^}4F8}^oZ ztHB;yROA4soY85}3x@G07v_kgVjV=){z?JsyycHqS8R?wZp60<8tEFgKDr^0bJgb1 z8N@uB)R6WWe!1h5k2uAm+5BPte((tA(@6r@P+AgD<1 zAcP{)yL1vt?ukkje*c;OoqNCU-itHNypuOMXLrxD&+gf?@5?h8DUtnqPwXWiAlNT@ z`-Ut50ZAJH!7dc(ZtzJRGhrwJ0r3HY>(^zBu8UkZGd8o7GuOJWBcfxfV`*?-R^%E1 z!DSB*d3F6$@`oWISt%?GRjv)u(cTA^d3;liWosX`4lL`Wn6$C_7^hx+Svt}lX28hR zz4+FE8FKh4<)?Q)e170mKQWy)j2nHy_9j*44YBL_`5LUq>pE((;ViC{9G^_1yz(|o zU+B0?e}~mr2l>lPR#pFwb408s64-j{f2Nf5eg4dE{Rv*PA6~=8;^}w6kCE_XcTqv> z=s5k?j^^2nIh@{bf{X~^)Aq;TKU^+5^HYal`N)@K^#{aP7rv1--SaKX~Q%Z(Bx-_vIOH1VQA$`?wUPL=`L#90FMoZQEj zdnX{D@5?*oo*J-zAIn!;$P&{Kq(|B5YH#yNuwdItQ>HCLi^pI>Did(l04P$35LS@C^% zz_le9TgKt9=Y*bUgzmHc#$mHKgSAx*3nKmLeTAC*g!?&mg|vxl-w=vvOm8V+>DCCZ zpKaeH(LQB_r~=f9UKt-cpHVf)=Ock0rNW;cIgA|P(4@NYlAglASyeMKX77ms{nrCg z`mg63e~fe%F=LhqGVU5Ke;XdC<+v7&JNv69wrE^m{%r0(7YF?~n;J4*^Ro??MA=2X zUFT1o@#*0>emaugo2gVz+g-bsU+e%+iT@cZ?WwHV1_#2kvM9b6xi1Fnu6|wC(+>QR zTKz=~#Yg$Q`g^renP0Q120z?X@kP!p1yoLx)u1(l-U&lC>u;?MVV2dnB3OTO60Dz3 zW#951mtBZqv_b~YFn5K*UU;^d>SvKDAt`N06q~%UR!Za>WgZ1A5nVX}Jj*_ZRByNH zV$WPD)Z3_Z&YO-A(cRGl>8i3qS)wdDAAD2)anTZH3A3QHLWvkQIE-@}jU`5Y+}mdm zaHkD*P31eA;Cb!GLPfU6N#`9S8sLfcm}Fi0Oxv zrY`8+TmHM5oTIzPxpqmJc0W2R3O#=2u}O~OqtTgYTNiPm)19(rC}+S7e+ZzAV~qx*UbBhC+J59FMxjXsbT zpx;Z7-daiRw7I;TctX({mjJ-<|U`a0^S0@Tpx5odlT?xLvq&_T*pgH5DSJBYVAH&k0UQWdM>tep-nRzp;C zVT+S}-H{8BxzpQ0@D~A5!AFNGY<>Y`fuOUSc^kxPS|IbjFmY^$6eYnaHBvzxrF z@1RU(b@$L+;D8lp%x8jRtDv0awT%bhGnKOW3x;Xkr*3STgmT~({d~2kZMVM6)?Rx| zO}Gm(PhN=K+Eg+k!d)6Awc8kyBlAHK{1^3unSYG&d$b782Ss_Fk#bwphNd~;<* zl^U;n#anwo{70Et0wU@|dG$0;n!&#YJ_E!!8*`tRh`5hRDS$30dQxsm{fG8HtBkA# z+C-i+g%J@$7|czl3La8JCSJQ;bD1nVdAfx2@IQhS!h!7;IGk@kD6}W)uky1TytkNl zWNdWS5*dvE}Lk?T>(Yk5JNF-P(%arpB(VF((}H5a5RB&DpJS^WZ^IyU{j- zlHR41$y5}!CjLjOKg%JL>9l`qKoKDK62G9{UKfp^Weg}Wz|x0nAi2;RKJW8O?726_w4(6dxM4?>A+n^7EOM` z&W@xCDqEK2`u$V}g?JXmbmX|C$VRPh9hJ%S3e9iFul=Em=j?VXQ$ud#Q-lxz6^uQKZ1xxG(4x5LO@yTol)ieBa_U>?HSgWISh+%?9t zrrbtDTmUY}LeKwaDgRyW^KE&%w}F;02_PMk8zTSy=+7sQbDB3|VC{?V=p)P%9}JNG zlP0T&P@GF6(l6)`4@IO!$Nf&=Ymm zV*ojh#KNvUkDZuN7v(TZ4rW&Tn-_{6u)C1dQAWVA!WWPR7kX>0CKMg}6&8<6-rl$# zq|>J(%*W3%$sM8>ju1dv?TK>k^qaqrD?yZ?Y9DP{U|~8U7Xw4OD?#2{Tlyj3J=ZEhlo@(!zRW4h6Q}o_(6EwYwMx0fIQ}2`7r-Ww)mgZgJ36QFZ^|LQ2skK z1TY%BM_X)bxkxWYm{ZWcoY)$75flJ+|F5Zxl&8BN{CANr3kqJcpDs(A84q(ligPu? zXIUQe_k&+6IEjUnv%CfNTahwA{bZl0Z!8-!ZLr;Iq@Iq|wHTi@kK1tDW# zo^6{G3c|>2#2N5ORyJ<6D%-xGk?zZFv#Rv-3>_@QXiyw`p*L0erFF12QzIJ zs?IFPIcVY399{>cg)h!bP7fm#G)8qatUyY-7PW;>5t=bmF_HVMOuI2%6D}cgDaz~q zH3>AZvnM~h{b=W;&kano!_B|d{4VoCM4KPhg65wdZ)PqK~TULwaA z+G^_!0l((igACt6hV%C~$g`UL2pfY0al~0-(++V(yfCog5g;oI+%V*-UX-fBU9FRNxKOY53Yv$$K&3=mP6=8?#EcNAy{B*Il&spp=Lh!>`#vU=Q zH+7*Bu=K~tbhbZgC*Az2-aO&F5#p;xNpc6d)^WRxt)&v?1WS-C9KTJHR}PjSz`~AYy+6L|yw)(f;V@tURZp0{J_O`f^~u2s7FeX-+C8!2puK>lAKkV3;Cqjs?e!u&{> zI-TH@J;s>bDPG*ca7agKV;b|@N38KRw=;~_4?Sf!?^VN0M;9*7&HHSwsNm_gP>`rY zR+m;WX6wLLsEH59Nrmy^5swS?!dY|>1z#j75G5~~#T~|HixCCmTNK-V-2pWhk(^5ahq|!A9M8RNiElomJk1qyJ-p{o!Gi z&Z;XTy$)u=?fc1xWg&JL%*?oRMSYQwbM8gN@?>-L_@k2*!t1le_?0LaFed-wV+)|wL_!vWa{Md>JPLpCgcY)*Q7 zS`l`=)xfz66CfLDgCM`P@z!ruiU7YB-@4DS_0R*NfM4ZQbhqKxO{U#Zd1sY3;fQ_* z*emJAANTxU>&qXCq;!ERm-Y5H!vdoxmxN?aN%saV(eCCsyWZ*liV_59h3gZ)zwmyf zL83FLox~W0^2{ACo6UM0_V2k9r8=l437wug_?>jbq+`+GNNz0zanT{a(ncGf+53zFlAc>oLMk4Z?`njSTefuxe-j;in0 z9M*RjbVt1(Hr|B2zgg9>TcFWNqT%Q^9Cih?1X&I7hipCc6VP}?L6vrM8@Z%_T%p-j zjGLJ6uYI+EeT#3H+}T>LKsg}Sj>>DM+gareTMXc^JHX!LmH&NxS(B%~YaI{#LKZrz zU(}eN#I{gCycXvgU9y&1o1>f0RO^Grz12+ZC)xS7Zk>B){(dBU0x4PQGTEB_YXWX~kT=@Wc-0^ntx+*@URH16wqZgkyB*<&vsfm1mG9SOh!?lvq@*ke>iIT0N z`AoYwlOgUf1$L#Dyq^3 z-}>%LS>dj5P6hFGMp`452f{`m2R5>p+vctqxLc;gwyCRbW%78S(vHHbX5U%i4d~s0 z^agY6`0%Qu;4gMaYlAshHSP zl^(ava#Anz8l7~m-fAzbc?E1{EoV(Nu4!HfD8K7s`YevFuWC>$zjSWHGX2dPlb(X6 ziG#KQw7>*+fKTg?VqO}v13|LJH8JViv5aq-`2@t;(j zjW9=*G``*fW=uxk&SZ1HoXC)k|PxanDME!R`v$6h{a`K~!M?Ag>v-4} z0|Nnn0zdBFQF)E~cUE~5j*$Naz%I9XY_ak#fIqnXUkY-~#)*-2Zq1QeI5816(=3N6 zYBUE)ROS<{kcjMRSv%n#(Lt)bv z=NBN!LGl8Y!tyfNRi~bGCVQ*c-ID`s^_lTG4Yody-P> z1ClfA9yz-8-P_>#GilnSnGJfbQQ)R??j419R(LHM?m&92rjGaU9Uor92H>FoI?^hP zt>iH+Wi=nf%y>zc^im0p*n>u(+ySTCW$qg(>^IY4scM8~1C%qLDLVBgmT6$Rz*~Zz zZct@~9ruGATjIL0;#$JK9s$A{AjJ;nL-&QKJ7oJZv2z#L#*o7tB7Fm3=s{J%pe=`_ zVEDn*M)$PTXJw8}0u~N}$WRY=-lji?RPg14q9tUY;Il19CngOA1P^U5`S-OXf95IN z1-8lmdHT5ef|0oOQeDm|?5Zt2-k+$ZimNNt`vg^@^E2z1?;h-Y=w-0_{56su2u^?X znCq%w!n(-fVga;dl%R6-Bz5~pHq6C|E3POnq;TKL9$pDNVw?Y=0KJy%?_)Br`2>BO zi=)B}&zRRL1+EPD!<~p`5!TLSI>BL7VXAZsI*yA ztQiMJXL+$_O~aKR{susyDX?05uHZKP2BgNIal%Yzf_`I+UmgEDcn~^2BtUO1MOwXu zzd*)=(c@WZw`k1$U5Cj5V6dB-+@@24K1m*o?)SxYJJt9=g~(JR{LfR^|Kd3vP+#WH&*{DkL10*hVFNndCvkGi>5IkI4duCgE7;QpexfJd09gm7P~{)L zepMZmV}^y!mQzX#M(f}4=@`u8RwsgQYs`EqC{`dS4uBWXV8^!(8m~#h9dmv4!uJW?%bL+(?sQ~c*LmcAhH_Dl=hm}N z;p>E3#VI(p$pP)3bHtVZHbMRNqSFA0r|)rW^RAg`K*-}lSEsgiQDIV0ba;Af-!^Z@ z$pfjrlXT7E)^br^11(r*c3)p7>TiMmd|P-NIDZEf_gc+pojr(2AAy%#xIO(ux%JRH zDsMLG&ML2N6aQTN_XW1n9 zCY7dQlIEIbYyM7!jh--a->n-mcXkIoJLE0wZ8e4?*DLW0|Q&Dxh4 zu&E83Dot7v-cCE*r(3sF^y2yTM&3FIPKO@g;cs>PYSQnaCJ-YwBJsy*_T@f!v`~n; zw|^x!#am9;iumhS+s~5^UMUO{3iO?Tyh6FLo7q1t`di;UK~LY+@xX_kcs(!f3n@%K z7vI$3#GTXFn}bA;8QQwP`TK+5bKnObrcR&O@Po&N-e2OI@|}2c-e-BZKXOWuel_r$ z3x&Ih1-a8KVs32L#py+KXl%*8>GNMDHm|k^)k|};Hs*tr8?wCBZ%s!&c;o~P=ee{# zR;_Uen4O{Rq@5V?KQ9jbv!Pr%50vrJldRZ=moI~$@HOlZ;Wm{L=-%6zbKS~RTw4pr zEhSu(x1;)oz55?a)$FYL|8Kw-zH!;7vI(#e%|wy+p#nwU9yWExL-dU6tNpp{42?g` z%&1n;V8Z%to#*`Rt{j=b+gzPY(^i_G|KuorXJkY(V}eC0qGBC7=3=It1>OF7`&W>- z8!~0#WuL8y(e;T`m%lwx7 z(0_QVEIC+Ob>X`tTXPZR%m46(PIXG9hR6JOYfX@fo^0(-cZ|GD71705XN&slYVun# zYYiQkY`>s%oPTOKw9YWBv#{pTHWcean#t*K=-7)5L2Zqp3&%(^i{N&teGcd^R|NLZ zaa8XK`_h%LFu`h@Ouj)CYkAG7yg9`Hm;@?!i06K@b=stc0&kP!AX~r3q8>ZNYtugv zhXK*1&I!HfcJGm^^Zt_Zz4qdUmEf=jzS1p8YY_hpK=SFdP=&w_fDAQAjw?nj@dxjLf!Wt-!MxKp#G83}vnRIz7|NG!T#tQ^Zp)t>ua`j)d zJyD5RDr_JjS2Y`_eoAsbp6*;zG4`B>1-?{SxJaHERk0W%aAu>1D?r^B@qndm&#$+J zhc@0HphoT)>ogqA%5ACb$otrsjq%hiInR$*SpNx-f~(5){6^0&l-cY4w()E)YB$Ax zio{Qr*8me0{sO92{0g&T+q#;Kqy;WFM#qFPHCZtE?M#Z!E6w+|UZw#g(1Suo{x^F56`+`jz6;{queOZ?MC<{w2?@)e+i15{ zyP`l&_up3W!Z)-H@BeuvY+)g(af>5D?yE|Co?@Qk2n9A;D>9zFZL;bW51cAd7%%|` z0nmDv`5_+UD$)PB7zitDGMQ@@;;d`U;Hh&o8ux5y4;B$oIVl(U$jMH*5mZZ&%pfMk z^nCp11-j-1g|}~&`}4xOI~G*pYt=l>@K!`(s9&0+5LP1Vvts;YSQ*W(B8B0ralv%+ zUZ$pLyi9|pe}C|+rUAoecVp}IJ|+y@l2Gt{@HT`u#SRu6*XOy-$;vK}azY+3$!~K~ zrnwBX>+ftkxHVsD5`f!V_}L0xDhdEz{*#*)z9BUBVf;6rokkXhC!P|}{PL!W3rpV+ zcI}jE4YtW-{8*M|%wt{PqLd(9vhVuGBuEuv|BL!G`I=XUagCP0vS_CBTGWf+rcY)W zIbPxy*+GTp`KCoarhu&dNW%u5f6(kM9+{BmFLGBZmX>-bI``jA05 zf{~CyGM=nMYa44O5vz4Ul=|h2HgXV<7fmwTnbFv4m#BMxaXMUKxJe*{<~~oh5Ht-1>I*aK|_q@8Ry`ZF1#}w9q9qrXU+|XI0M6=%NcyiJi(CHOOgm^-qC5T_HnJ&aSAL)`skcnUFT47_JX564mwP(iYm@_nq*0v z8SUplS+MAR6z~~^yl!YxL=|JZmR?IQfKPL#5OFHv3%H=_OnJXCiSZ;!o26+xM>`cL zH0>=*PM^P>duCByNt-Ei{rw+V3Y}xdeJa(?BLz!dgSP%AkOP-X?oa!eV9pwzL|+M? zcxK1`VQE_BeCdeG32a$#QgdTpS3&RMl;H@$Bvw4TMsjy_P&ye|z{lE3D&$ z2^<;_-_F~`yI(nw?{l8W(NtOpXZq5;5%H6Un%-(L%-P+|=Ya*;o0VCIBih@vtly?F zP)7@9-#FHvmZfQ6WEI&?+oI)=m!QGXlzsNfh|x(}qb!E$oahyC@DBtEYsJuN}H(@8F}o5mzwpUrql?b#*xSk$0Z$kLG|rQy?qIS0Ox&o@0< zbY(>MEwUd|Zs50Ya=#zX!r9R=A+XA`c;C!h4Z&Vrxr@snHs1UM$~(Q2Lkpb>N`OB?zUf}5(^sG8d*w;HmL zst~V|CX_pzSdgD)AQy>H|9#6Kd^cftGza!>kfyItpKqngubT70cbPS>Iu z;Rx7bBQNef<2dH#oM`SpqnsIPTzncsNMXga#1Y2X0~cp4kI8`Ke+ zHO3|F+1XC_QIAPi9|_9fyR7ya7(Aku2=miYoJcM8-k0aNs`(GM_6WHBI9j0v%lS8+ z{*6oBAVt~!Z;Jd+ZK=V55Yd|p+u-TJqwW9H#=t|sX4I7O+Z>*QddT*F;N$2BS+m5$3R&@T1ff4%B8{y;0xM|impVIr1Au-JM<9P!`q{eRRa z@besXZkNdaX?&}(BN91f@wsl-fy+Oxk}Vd#di6?&THU%f0Gn`-2)|JUJC&o7S+>H8 z;TB(yOW&?{u`)Iud3~JDmoMui7hJv!MI|DEpLE6xm(VJQD(q*BA ztSivh?JYa5YhYj?gEN1ih@5@V+}}j}65f9kiHC;dn6C3LP1jdT6kz)Y%?iTuXM%i8 z^sWHY1~b;YU7qgok=97luYJ@1777=`)|Y&VRa>0z^+gy4hu8yDa=a2&hYuOVgehPv zVB$CjZRQ}2K$qzu_r$7BTt8ye2)0mlW1=a~_+5f|wJ5*wr-vjcQfw)+k=4BpAB+(v zgqLa5M%h-Wti&vL;w!bfUAs*PSG(Wqgl^k&_I^M}%|pm+Y&ru%?BP<|G+H{GAvM{) zvMF8_WIV@PZ>FKZfrVkJbR`|wbObut+_+BFNAZSWD#8O>J%o_*YzPTk+03X zI8o7OC??!-$OX{f;;cf^Gf(OU-cuG6{hA-POu*+KR^!b*FYsLIB``x;G+7;x4XPG5n5xn zCcC7P_Asu$$G(t1)418=> zd%+s5f)7-Tq})+Zp{_?%v!Zk=3EEKTlD=p9E3uJ?j+}>o-WYE-I^pYW2+xDf_cA~a*2}Q(>eD1(Zba|G}F-!0u~m1eSUSM z88t84zoC+mQt%JZmO5TlB|k2mjj*)EHQBVa+%#gx)0jj=LcYm(-rREWbQeW=$WRNl zn)xTQJ}-Ynb>nb`FT2bXqqBj3m=9kMmn^S>ilyxG4~MHd9SmTFPn?rcMDZWFmKDsr zG>WcAX>c^!HsK*FN+dZT?PCo4=!}^}NYgnsWmZy*W%Y-{LRk0IGC)7#9rObDZ8ivb zC5)a_VyuJWu3zM#^&qal=zzog8gCxbaSZ zM&>?>pZRK5?D?g>lKM^;o?fBR{VB#DgiOHE8Zw%U`!!TD8E)Y{iaQok|6Cedvtar9 zTMB#5Nb-#2)FFyLm`;(F>~t_Zm(J!lsLnVwhw~DH3FQC0lw&N@{SYag+5h|-?D=@I zMR$nRaG>RQr>Gl43obs76QLx?Y!*ymTs>Zunb18Z<(>|DNeajI;_1w=+_D#oRcl;M z7`#`-i{nGLDYT5;@iXwjJGeWZgzgf=Da1RfV$rTv3$D~XDdsc0>T;vH_?OKa9?`#s z2-aT6asAc6djnh3901cw@Am-P`5Ja2o7wk+0u=8rO9tJj4ii<-T{x$+;BNMAL~)^~ zkg08ozClmkw^_%rEY8YO{9#VAkC3@n}y**1!60`43<(e(xE(L-hBAh`oG=i6|FJ~-!*i5%I zdb(Yp<84ZHhF&&m6wl)@yd9|0E)@*5K?|lA&70sHqHm-nQ$2L>27V*F3tQh4eKem5 z1ubWzL>I%-ncVT_lP0p6dtX{QX8%McyYa{%3>Pa{Xmh6c1EPL@@?^ScyNZiWL!ed! z)tG3_DY`)#rl{cCsJ?w8w=4R4XcWhEu2jwn#3u}A3Xo_$0otk`eV1ZZUTtBfo?)uK z&|zGk&bqV&8TF|1g0+P6;`NXt9vYEj;#5jEZrPLUTnuvCB`2!*4E#ZqnkD`oB9eG$OwNksm-yt|VnOPix&lbo%j*X) z&A%yYHkq@EoeSn~BVCcMdT7duJ*&rCAa-~-oOa-mQ$n4xI!V>D%qV{7mudAzn}yMg z&Z~`>!RTTBF>4EDJX>XvPRn)rFE7`QruS*Jz)Yo20!oZvCXyVI^C9IISn8{XXiaipyl^%T1$Ci^2rmjy4whn*~=2F_(=EVL`*iYsv3y+y1nFyjN( z7o&%?f(ekzhu-B#v#AVTuNH+l>fIa@%}QK6H+a1~AcVZmYxxc&Ctm>F7C1St7BSaY zmhKUFYCsAyFL18yY`(#hp_6fFHs$1=A47}Q^)@ti*_j_ejRx#Xuu*0#P-J-i8*Ge|6ZEWl!{X ze_P$`(7{O(3lNPMhZ9&P`V=Fombpt@WYW?G<)A+7 z9H=k`r{p7WFLBhsSCOJA-4H=ulBcR6Sz~&y=gnPp-m8%s%yqDo9$&M<$f> zWbAYbomgkK-A}Bu4cwn5_{HeOZ=+dNu@}wCriGc>To)rRSWA7DKqRCo+7w81HeG_Y z8v{zdcySn@f`b})YtE#%^0HaBnbv%gMh0iRQq5T(t$#}sSpV9UMU zI&;qDE$Vxr-#g+3R*6Vo=H4%m)S9XG%t78J-^vl>ZoT*Ny;1{W=roe82kS~w{{#>M z0HX$)O6X{6y=VCp$3=0dgQNGTUZ3JM>C&=(UB?pkr^%)ceNc;`_c0K7iRb#9})z=rnls6LZeIpwv%is)~k)Sr~pH0b2&QA#+^fVH}Qv`EO3lqMhdPhjout}xDUSG05T?oN^8h{n2&a~XLNtcfHw`7k3>&-6_3++o}JC;oyOz! zz(wB40i4+6wx500wKS+YSGhQY;puaVrOnD53kF<1>z+5;I_%TZS21DJt8Ch@n=PoF zcCZ+rW-7kKizt5=znROzcwo@IGfcLLvmv_C1p!b-)6jcU>I#iEZR$iH@uz$0hxH9R z{fTSDr$*;k>R?b7v#+qBdp`2`1qjCn^uDQI6N6mk#nH>}mK^M!cnESXz&|FNV9pJ` z_H)4JChu-WBrKyswUPh77n-j?66UA8+cIu&*v;-r2(ipZOaArUved>qSz|_ z3VgUw#II76KP(2_c&8WL$7(lu>qaa+!kXct^O zNSr-y+CMauMmo7t)P8=cU$YgVD4%{Fs`Wh{q<~`zFY%$T&~z{NN3-&iBSE4Bc`TAw z1fX0CG400QmB3kKLWHRn8d^C{;j<1a%6BQyN)ngmyVtAx>%7fTr80Rl6&ZTTt|oX# zr~54*JnM3gsGqI>qXq5aCXbVR{^+v_W@ayQ$0tSyvrBe`nNy4@mBG?q=>?lt+X~RC zcvA_5#GM=FH_dtf70+;wg(I=)&Q9=q*kS3nD3|MFy|b@1xRt{2_g)LL!418y(p8c$ zSBHy=qH!PUmg(-!l}-jIHU)ufOE`=uZ8|3E6K0>IBKE5h+M{|}!bgY&y`a4qUzRG0 zM-iKhDoW);KiFs-O;pdZ6<6k~eHk)B_o{c4uK=Bbi(zUt&DL2TF@x(efDc7Z>0-wntd>$1 zwLi4QnY5lJ!&2*^=cIF9@5h@8quLjpFLngR@xh=FgrbY+bm=TV z9`W3w5uVGbb<2D@SgP)+>WX;}Kbss0TDvxj-u%yKGbW#jCN;ri+W-$%eEjslTOV^0 zm%kWakT)ZmpBV0W8VzggfYkFzXDm6#(@nFqsbZKvS32xk_Ek8fC{T3Z#3 z--hQC2iL?@DXP-o|6WwyVSo=B9OvYlx_kz>=ePbU5y{3T!6ZkKs?#XF>dtn(uafc^ z_`UbQ6MVq@S&&)xBuMRJerEDgGfRD%)Pcn#V>j*4=_cdfPIi*Z-SRefxN~%ASbNB! z*vW;Lg|Dw*D%@$zVNM(E*DH!;m4=&@_9!!>lnY#z=n_;jOs^{|KGC3=TW(zfZ3{?8 zV#me|$>tdUrancnh5i?{)iGYn)zeuB%Zf`SBUgfoXq`spA6GXL5F8E^y>a#Ko$$LZ z!q~wW-H?pl@@6?EbQ9hVfOqszDvBXA_`hJB_uB(L!osRUsRKf&@te*Zi^j*cPNKXabo8*Ck8!6SX0jJ0?nL(rGMAy4pyn`l z_gsN~wvbsvZ@*4|6s&+V!zar)KmHW{dHVX_yAbMt8T{Jt;WHq$C>K$PS$4bmMZ> z*#+V>PA;=~Da?9$;LMFgU@nfe^J(rCCM|BW2Z%5yOnwslkoSX57DWXJ({NRJvXj+4 z*vnB|T%ODGiI0so@9knR$q6DQ@w83&Jt#;3MBr#CxPF?n(Cqj7bGMV1I_qkJAWviK zd*ET@zbTTLXsSJiH>w?Cd)7bDX54qVGOq=61 z2qIr-6mf0xK<`m5MLjGsNX>iD^4wy%&oQh*7{n7ie28p62GNVK<&W85fORThxeDYd6Gh=3o(OzGwrj~g@yCrR|!)e@3Z|XsV zj}-qPA?8+ZMZ-i^u0cm@0wUQW!&5+c$sZrD4j@fuOmfgMO|=Rocydl8nSP&lQ~?yY ziqFXCA%btzYL)T{^25}|sK?9sOj@mPS{_h+@ei1P1M`422TZjB{Yx%5|84d>CR_OgdHTrZOQXvYWwD;Kbl#XMbh(<3PA@Vxhs)P3 zG5<{OM`n>2PB)6)LBeWH_wUgg){7Qoj{2NsSJucJ5TzD8$<7?f?6be!c z%T8%bmaq3`GbVHaYS1j&`E2hl=8WiLYt~zjD@|b%PwAX7(c>Xn%%YQ3U5Y6Y**NMF zzVii)aJe#RfhNU_Jg#Bd0M7c?48zruEy1!wS$sP6^VVq{FOo+BeV;usP0eb^ftBr% z6JtFo*AZf=ASRj(<>?(|J~s&aiIpmImEESbgCl~dcWA1_E5P!IEssH7dU8UZWY+T> ztHASJ`P?U$ti*EiEpINIV?KGIymi>LI@von-1PGKlfIvATE_1)7rab9qhleKbuW+M zC)&o}LiB3^Yn0W%t&o7II&!(z5*D)AXHPmyi)MM7b+AvL@g{Fk~dIiK%+={qZv;K-g4U;x9kLpo6De1Y0(V{9?2uEemZXBhaK7M_IAe?cmIdpna5<$2McE&F;EE_z90 z5}9q6^-Hqdbe0P}bw*p<^nQ*^1bJzz9cq)?PdBdQVBCkux!OCn%)9iH~R1r8=0uHdoy7qbQ)7D{+mQ_=K2VO?yx!E&KI|4xvpbb_I@ zwL6Y=>V<4su_*5S{q`Fvy&Y3w#bjaRj6o>Tkb(d>d;AD)NupCJXgrivu~^Z~(&^ON zpK3=U51*%N!=D4Kxc0~e4xgT>1gA=4(X72L@UncrN;(-ZQ+V*R7_VyI&$Co$mgr;S zT%WSzV}qz>UdaH;QIyDsDV}Yc4XqH@0l__ zn<*fmKsCm~`0gD;8@l*TP~hlw5xUw0?cfOsbT0FZ@17Vbo(~me-oAE`7=AXlxLayZar(!t*?#5}{W zD9SYhMXNg1DSma^606u~){OQeAYb461b$DAAXaIJ&BY99ac7Mo^x{O5ILUgruP1 zQh`89?<{-$elCM4!uLIL%nKfhvn}pWL5RtkcWS-^jiheaX(Pdve5~*=5tk@L`lFMg z0z4zqzq4}jDowdAr_(K76#>`%dUbuxG2xa4v$MZm&pulF`?N?cyisQrAIz>sPzlDG zN7ZFU{0~*bG0-t3-u4kl%MUYI2uJ%9WvCBtK~iM+us~nsYRsZMrh*J|j-XXJwSP5g z9lL;Z5>Uy}D{)TL6JfkuSfJgK?b&;-YiWw6oH3;REK8ZIWI&X&`9lv7FMDk{dq2fD zb`16{tJz+b!4OpL{yXc&^E}^hrx9rs-}I#Kmc`L|H-dEqldc zima)0)|IF{_2Y_52dWouz__)yON_Ac5o#7LFfpDh&T@S)KiNa$h+s=QF;Q7Xx5=8C zA&5@4T8mJlxtfCQnAP%OflyzYQDVn_mr+b5RRd;DnYU5?SBk+DOu{_$P_Ym*N(^IN zHpATe!fjHgkW04plK(`L@0@!8N;enre4Es4x5N({18JTsYGD_j{p^fQ&0t8b7Gr+a zH)IR?k|uj=Kx8dW{w2;Fw&2?{CCAjN<=i62xhyKy??P1>fG+V>t&*@N4`l5y_#Va^ zKqKzGJmmY#6RnYcaaj5`^Ys>&`(jS&PPymG!vpTEanVXngZ~6ccw{~#)rdPP?AXQn zfauWRI$DkJXO=m>v%EeY1wJO8r#c6_j!Or;yEx+;S4;=Zm+l|9sw_kMP{q5^hi0l= zxf!C%sK;ILwzBd0YTazF4+wdQL9kb{1#U)YW&&+>s#iLFjn` z(A~Z)gNb4oEwM`>`sXt|nKN3M=d24Db&^Mu%hs#63c8((9kZ-P_??UY)$UMp3W=kT Y@VJ%q{BHgf0r)3+Q|d;-HO+_r114bw=>Px# diff --git a/docs/articles/cmdstanr_files/figure-html/unnamed-chunk-3-1.png b/docs/articles/cmdstanr_files/figure-html/unnamed-chunk-3-1.png deleted file mode 100644 index b82538be5af30254e5807a4da46011befacb9824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39568 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 VqmaVIb_o0vyCZo!@lWj+{{vX(+Ft+w diff --git a/docs/articles/cmdstanr_files/figure-html/variational-1.png b/docs/articles/cmdstanr_files/figure-html/variational-1.png deleted file mode 100644 index 1fe5269845bd750d0fc2d38f0fd9e62d7e22a6d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37623 zcmeHw2{@GR`>#Z{HdIuiMI?JjwxLwA7YSKL36Wj)ttlmCDNA-!DT*vn_GKzj_Oh=- zjKN?qF&JjfGs+t0oa_2u=luWYfBdfN`@7y|=6#;~x$n>YxtHg8Uw#+W6t>atqo<&t z*rs^ltOf-Ibvp&cW;pE@@X1e}O)(S{RNKwvDnF|3S7upXNr~j`PoA~gJZt%R1H+Doac$b) z^SQWn7<;g^vuQFLPcp-#UR2ohu;YI7yHn+df0lx57p zUrb*=GUDhlU#GUu_F`) z`33jw>Bk@?##-(LZ2h<2CW-$*@Fvzrn(aj1b8-A6U0ynJcJ`w%G=|>MOCx4$-wt+) zu3yLb)7|h#*wad?+ni?mEckDKYpsv9uOWSg zqMOp8Xz{CCi8NlDy)kW9vc)i>l~?FJ^KA4=6mT+XHz2S1wJfh?#=q1RyD~$`Q9yl4vwncBY7yn&0_||uPFb9`+PiHTryV?P654S_!`DV~1U=Ov2+Hp9*6)fsqv7)y| z(&FFK_nC)ZYKNb>+RQI~?8beW&tE>@P*(5X{lJIrnxLDLcrtSUi$VUDvUHmp$)4}- zu)K8`vVND@*e!ec{If0G9tk~Ik

Jw8ViW%nMwZH z_2;wwNZ9@{{3ePb-TlO=&o+w0IhHop*Cr0|EvII=rSMm?BzAPY+gwYyS#k1?Sx+IB z;vFQxWm3b1yW~2O@>IjUFQ2s4_thkGU?%ijtdDk5GJdCZ^C$ z5}TPi_F|}iWQ@|J3&Bc0e?~OJ7-4V9gI=lDa~F|WdY{!1_9VCGZs~0b4vgy7%>i3Y^9SRr?m6~i2rf)#7FJ~OV5jH(K`*Ui< zT=%|vWC@?rD$ntVy7PIi?(*zj;8^qw`Vw;?a~e;v4#g9vuiZ>$UcE@KGjiQT=7W%< za(Cn$VcN2?r6Nrh`eQaEiPBiyzWmnU)yo|{20M)0JpD#Q8VI(g?`G}3m}7&%HqfmJ zXd`Y)dVDO^z}D64{WDne6}j%Blwxh}H5Cbqr9IZ}%=AiRZN@Ot+jO6hMKp|ETQH}? z&ux*4PpVhz;Ll(%E9zY%Z8PqU>j>s|=d&mGX~}zQkG-+zfAj(@Z6=lbWiO!j2;Nbe zGPAzzq5=Q@3JdU1$UOw1q=IB3Scv^oxfSX`9G-oGzp4KX3@OyJ7a|+Sq~iV=XC92E zbW_{$y1{)r52h=_1dC3THXJ6snytp<`y(!`9t?JZ@|?x16LEWv${CqaI#*04rj869 zL;nj}AKIy>Cl0-Pur@)+i32yyF6mHS+Zzsn)$P0@zqT(tkG}J{Q190WaK1Ix1KSBk zrcHjaTJS$kSF0-5-N|oZL!aC+}D=s;90qD_Rki_)^u*# z+sqepoR!-P*OqE0aIqcN#6s6t4j3+v?pS;N(GkP7rJ`lLnB$wiZ#AF&HAn~5u8|HV zXTi0l@&UXcud{6(MOp(RSo`INuPxOXF!F|Z|3YxXyvsrIf6#lo-nD(2cYK&MrE@iQ z*nY;wn>0Cdt4#WFN^`FZTQR9re7kqyueWh$R*{1!WncXdT(P zjqW3O1p~)^Yx2fLbn%dIeXQA7PMs3^Rn99X3797D0^eDXYIspVSfWk4bbDn{!rThyzaysw z5{ZW1Aysl{il%2PJ+(iPq&d(u%^J=-d`o+!Yg_~sj3K`;fgG>p=wab;96c?!c&@ni zG9d|{SUEhVz9qU+u8L{4r$Gupy~$I8{Q2))Ic_t~wPufYjf6k)IvDMs zB>t?IdDXvV<;)8qzF8l{Hdm@WYeJI(CIgBJ{F9gaSFUj(MjJT*QTiBl7NYRNpnnIO zJP4W%@{g?78M_K(8_^0ztCqJgM)N(8C+*!aE!687&MtPH`qcZrbY)JyqWN$z2tkt# zN|foJQ<-%N&fekEj>D}}xa_hix5)eaD+~7j?G6pVI;@ux?(OBz0#`2TRlpPy8(B$s zuK)up#g%Y}?75iZ&DRZ`_iaQqwLmP<*~%>Z7Mtsv_X+$fJpK-Xn+kM@)NQAH)^;6Q z={V3H9c%a4y^iZm`GD`4*&v4&d~uZn2XS|q<;ccGryZ6vdW~>MI{kA`a6j|C1S6&>ai2K$+-KqNu8^gUr+>CbW6^y+*Uet~{zpT^#{nqQHMeFX{Lo zh}4EIPX6*RjvJ0%kWwk^i0lrQf2*5H&~L4o0If9`H7p#;+Vc(}>u8OP1k_Uu=MDr8{r9)5-+szb=7P52ji>{4t(U z8oAvEovcXfJVk7rt2ypr%Z7CA>Fb6be`lev!oU%{&u!rt^L>BFQ|NTpmp1$ZHh}=7 zgy(I%b1c+%ETt~PTgU8L^opQ>-~)*%pQ6Jb<-i6geZR0eduvZQN_%P(-+zATw4%iY z69RP4n)2xnV|$Z4%v(EzJkgZvj@y`ckr+2ry((yKfNK#O^A{WL zw1QI)ZV3|_GZki zhyM<&^e7EvMWXU2xk%Rp$&K1Q$3`M`k%yjx5aNvO8MVQy|xb)yHZ`h zDA8!VDO;J#7^*1{nmbj(E#7T=s{q#rWg`;47rxY9zD13IfP9xw*`W0|#b(}%dItG{QMYT~74wUwDqb zN8oA#$L@zih*f?o>wNx|bIs)tj?i+MbEM)okOX9bJP4BjIBSvfA{BY;R9ECSgt9pG4!D$#s zIegezXoWnB{id^^Gk@fA)f)azZgDw*{+ZKLsfe|uIt)f;Ofp?jGA;g6P6|{m`QHwx zEZTa-1tS=lR!d~<&e?NtxS`OXcRSb0c=A^tFj_FOPg3NPdKQ*S{-hS{vUdvD)2!1O z13gKZGYu+hEAl4T-?w4Oy|=bh2f+bP_7@iG92WTiimmL&?SHGkMK%1r*f8(1(C}Z? zyj^_P-z=eOn%dfP^haRX7^Vp-Mf4;Fco%e!d3X>4qJ7gyQ|cbzh|i)+!G-}bwV4@h z{);OF7n#-!Cv91w(tkP(;iX}c6|Kuo^T7mw2M8$UFL?auPFQjx>FiXl8T+_VhO8I1 z5wscz%a7Q={J|amZ=3!8&O1s)ooaZXCyWK&#bDU=y3oSxi4Tdh3eFGIMxV^ER;UBY!!>-4A@K_u-Oqa z?R7Xd9kAJkdH>KqY{R_EIQHO%_bw5L+=llqwRt@S93=rXJ&ZOJ=)vD z%c_)UeU&O&!#1f)orh*-h^XoGppz|9DCZD`~6qF5_l!ZLd;7K^r^Z#Lpt zORmSW#sr~hpGK?mjSGlZ{yh&v&K$s_L&c&WH=Z5(8!k7V9a;vdjYq?lQ^5b~(J-@) z?M{nNmB|^v^f=nv=7dVqirjjpc7zE?1dgR438mdZyu+5u53oYOvwL%yuC6B+{2lRt zys=+ARpI+(s)_*LJ=JB)mbOc$?$I(9(U+40)vokXwVNJ*2&?mc_=Z|eiR4%O7X;;4O>yHy@c}8xuy%?;W~BJM`4Q`HF;!|NQ1YTF7Fm1P7}?j zAvw3%NOo6oEcEXz&MgHV9`ZTlUBWsGdo!yjFNpy>r8!8~3SUSZpZg#*wM(aR1)u3S z7T`u$(~7l>we^-dXx})yq}oMZUt?LCVmZMc182nq_s4!+yP0<|1hm{V_c^V7s2P?4 z8i5%U^30$HdL{t)c{Q38oE zxmqf)%t0*$ZPByD?M=nX<=~Za<;!Gw{(O2e&GgxZfBznWaeN40fS9X_n0@eYtD2R>5Azw(?`3 z)#8{@V3O!9Sj(jwgP2a`OP2}~hvMVHdd8fQ`+JIu;KnR^iyrlR_h@*+WK}0>+2D&` zg5we3;dKaO-La(+m;bIG1VwCgVa3`((TM!6g2M^_ycp(>v1&m(rc>NKeC?ez#943* z>8wip;?h=JJWm6AXEu`p>+IiA zMQvCS7`dn=f1N zJh+L8l1lzUrSTaGYC+pgX?LYB%Uz?()joabv>Yl)`WZv`g~RlQm*h5$2^jGlE_%ZI zuusenCe3<~E=Z0^<;(@H8xIuwet44He~QJtz3tra`?6}o+nLypll87cnKjwoiEcFm zY3i}7m>`7rU^gTeZCJB5=RFUiWE$}-sb9wzRZ{Qx5PIX>W!7OX2>pc|Jfo)OauY3) zmryPkJj8uuVjcdOId-tSQ$a;_ZQ?`pg2B~Ca-04>D6_H%q21XZkGRay_H%{g4-VTR zvs%7nC2bD!7_L;6r@PLv-3=p^WSpENR=7j8d9f{TL`B8fuF%CvyX=W-m?v{YWJjTv z7D}_AY)J2xd^2HMD|x1QXCUUu;sQN)Ke5H~CYCO^C-{OjL5_DX{s@O?C9Rw6WY)0O zL`S}RTH4|XD?~rTg`6Ow1k<5qgeODKi8M^n?J!0i($2?2=$w%SyFdS`GuPW!u=j01Uf^fkCV+?%wWg5&6!yCQ9;2>X_6mKF81g z{VBqW`H3ykroPAXd1U0^^P|d1A*K1@ZVHP~d+tq{`=C<>)fZN3pp1=4nuX*Nwni;f z&Fz9+l;5RZq){qg)pDGA;b~=W6kyePRZCApWogL|_-#vClgeNJ{-!SFbfv)=%RVhc zy`WpxD4>qo{xTdQx1vyT3Ss)&3jM*yU8Fkn*n)a{1Z{2Eog(tv6}(!r3_g4Iss~g2 z`40Aie(Goai*cz_YwOzoF&I22MsaSr^_LI>ZoiPTBMkXzVWuUS$>2892Od&}QW>OK zd-SbZa-Til%x+&NFX=f9U?O0qA-l{`mdRoC2Earf}?pu!S zS}yR?(u4%S%6ja%Cf0c|BrrQhu(EKGw;bz?ei`=m1$)Ozn>`n% ztgDlyb)3i;9H5Dj#T9bA+dG##;GSILfezA(R*=W^-vJSSweT~9G*}c4p)>y;k44FF41C`=E9v2E*dzHx{9bvP z5x-G!?fj#2BR-&|vhfdtEBJW}uWkFiWDAP{qo5x_jTHvd(EMBue)9!Y)slJ7NnB&$ z-^;WP1Z`XwL>KkFy+UdM%PYg_$bEkJA`@6**UJ6rIG=Vab^X<6C> z(yM2PjM**i7Gm)=ZCT<+)GqzyeRuF z3K)YdkEoRK*_H{Lcy%(sUQr z=Z8hDHK+fJJDdZwarK;S;n_)pU5r~*FRb-5&>ac_fnQoEKHbg2Tq{LSivH>Cpze_> zt&gs^@NO1sGP{vJAZ~@JN`ddplRI?8K5uF~(`IjD^@(qh`IldCT?7G4txK`VWF5CH z1~G=D`f(xuTg7+GuLIanQ4+--w(a%&=k%0#gu z|LUqBge!eyHqtqvhDP)Q5?eTYx6x!Xr^o*cV_jt2q3o5b@DAvXME&WVmXR0-OWTxmEY?8j*)3Et*T1VBUk3pDJKH* z%xJr~v#SoJ?>l7sEhm0y8uWw{g(!>#p?T4!k_mxfFOMK!u2jwD$$JTmq1n#+!2G?OWh&7{M7eCnt{3+|VNB2NzDQeHPCGspW7 z-oTHIF&-4M1D0lXE_Yo0T-6%}75GQZ2!{OBpL#@tSj!1=yB zxdhsIr-PN!vpHSRI&fP~(!fzKnhh!z3c0| z>iH?TQfSdUBDA(c-V6o~8B+aBXQlENfMaxn45i6>TK|PlRzZmqK@`PcNHzku$rG!p111J7{ z!LAV_rKU1DD4rWSS&n+2YtWp%5pFgB|io@0VB8ZfMAc*5(=g*fvyl0O#kM z$ZxJC*c#+J)b`?+$E_G-ZT1#1(L}(-F??74F)gi19s-t}H2Cmi)y15#;v|c5Pn>E< zkEpocttMP!cao5ww3Fcdx;O#%vD6h3NlZnzLu;n5_DI83yqm4FWig-#3%pc-(KUS-|GPcd&lPGe^1rh{(k z5vK_EyU+b3JY~k5PC42TuP2gkjVOAFm+{qc$h&I5pW^lAtWaiVp7dDI?9uMq$yei| zxj3NLs|6Y0H3Uxe?fZv$-YDCnzYgTTjCq^-{Z`!ZriTOm?X8{V?gZs&iGoBrMl>2* zA9=JPqw%(5he~p5y-$R(hy5@8FnG~8-8-p$j5rlXjgPM+g|GoOeT7eVSOpS8b<`_a zoiB7AK~~rFs>XBJ9gaz5e=0naULbB=^HY2uql4CgX#DS|(|Zd^k5s$&@E+k9o!i9Di1yWzO6H%|oxRR{U5yESIyZT8iWSL%Nsij-a9!pU$y@d~ zHYj$lJTa3_n7efIc&E!ys*YLGHr0m`*nr)xHZdC4V_Pm6v|PP9%sP>S^U{eTX?nS6 z$4Dh7;~ZSDZ^{aIi>^4Dy2eJPp6n|u%%u|sYyIF~rx}o!m7G+DLfe`!rw!W=+ZkUk zPNBmF6bPzS5_+D@N_WOI>CLYK4lkrZ6<$h(7q|FCFk|fY_B5iRdIAeh{_8(@qR$&rw~w?BF(IKX2T^^~{yfQ`J_iRys*`soXi$;`0| zGePw{Oj{R8Z284Lo>3(8MC?6(kNOeY8VrJ52h%4pXO*e<>slqmiBZ)DR_h%Zb`{ZlY<2;7$c{o(PknN=QgZ@|B(K z&Ts5+Y%*wYF2cpiWa*J(60Dn!&8hiXL+i&|&eWq5Y2Jmc?~QxmMWWJt5rLY0 z`kR86s6&mQa_*N7(tdpA6#4Hs$g_N#(r1zo50^7FH6?aE*l&HxrvEhEd|Y&*i?RJo zXQTddPP^jFh_&oV=Ui`wZDfV1JU|40?@uuNm!|*ZC7;MG(nf8}I?6so&VcM+Ixal@ zx+;usA@9BDKvVvSbo1#C!UrUh>fihtRo6)#-hmKeI>I3@Agg~g zqQezuH$YPnMg*?#x$LCvE`Ap@^|Ej^baVUv_w3XqA20V3AVL8>|cwd1Guo|Mx~F zRgEl=PTBJvSpOu11Ud$H#BbQl%+!?qX;ZxYH8179;+XL`{pa3x7wynFvd@eQgofdv zMoy|<09>5@FHH`JjN5azGO2Q z@O7zyQD`Yzq(<7IqrSer=7xutTPd3RYf-!CbW3RQUOeu(H^9ryj5|{8(H@f}0BkS` zs%i*f$T*x&cl@cPqzI~97N2Udy~RNn&Y&3-bKrRwJ=@5% z6i68_3Nh1%aQRI(l})4eMr)f`3eZjBQEtS{a6`9&M!Vll++@s!0KA@xRrNe1XY`BO zG^CRh%z%r(JBAlWdf;#v#fb?_Q<_2E?SaJ1;d=cX5+Ok~I_{%gPiYl_UYx*CzS|r< z>ZE7xEosMRF4$yid!f~#%3;rx1&XkEjrdS=ha>f{IN%-e4ftddsFTEyGZ znUXq8CQt>~rM+->Wf7c_Wgrw^0_r z=6u(i_&_&fN%u1YwgNv%Q{}vAvuU}K@UmPF2uAsCfeN}W6`$BCo1f#oL$d!lvT}?) ztam1t#o+djn!fP6-jyAg?64c&al5_GH5Q&M7K#ZOpKE2T{wBCfFoi!FRAUGohOM{! z4QW5N|A-tT4DW>tUVRg1MV8eJc8L`pVhJs@Xh`y|jF^ql#n@Q3WT0|!1~oyr=~{8J zLGF-PUrf&v) zvT@tfVupXGxZYNAjhiXZ3?3rYc1HA;YdX9jbxn?U7W9pLvq#S)v^NlaJ0_K5WiP~H z>j!00Puk2I@~>YwVj2tid+?m$fcNREsk^dZvwA?|c&&=J{@_2&qg7=FHpm>io-9MWvL#J6rZ1u?3tb32m5d09^ED=U z_Na2a>0F=tNG@8;!77{lVw{k}LPKM&b2Afy-zG+TEIOl^>J-{4P%R_q7>8>4Onvol z+2Vh6z_=%3Uw5<5d2%q5q3u=sdIZy8-|eO6=?a_9A8cz(HE_TDtoRbN2|HafIpq{R zeZ8q>asKn>{%XJa+E2;y_F$P)bNizBdn{6+VB!7ejGB8K0!g3UVseF1@`^dKe8v;J zBHnJP(dyNcyLCZ6dMjhZI1?FNUlGrSQH>_=B*NzSy0+uzwvO16N63~FD8*mMNt{cO zVecVKxK)G;%H|cdW2eX8cg()D^)MGtBgF|i&0Q`IdO<$5=O2Z5{3|THrXfkN=2+u8xpl8o+&g`gl@i@O3PVtDU(i)1lIU z!>_6%EDbIwfC0IJkQ!yY(E0E(rW;dpw&g72?UUI7A!$YAa`Zjr7dE(q!EA3y$MmT( zV3yYQuU==$Nf%tN4@!$-IvYleOUE2CW+VME$!(YdG9e@S>0Dk__Qx_a0BR)0P1#4-B&+?4rsqw7=f0$RzoV(1EWD;(Wbq(6~K^CYW>Yxz4 z@$V$9)AtUDkGAzmGb6`K1r%orB{Jzf22qvKYeeemx?|e){MnQa$ zG}0q@*xh53=CcZgD>Nrk^s+~^e~y09NS&R`E}kogv7L=4Q|M{fwV)r0KWA@VcQGhW z9xtojukhpox$DjPh-@%@XYAPbpPWBP(zNcJZJ1-xC#_}zO5EM8I&P`U&i$4Np8RNK zO3uuTz5!B`hiuvo9xsDIXg!iU&yR3oCypfC8YGwyr4Ceh>Pq7(MVe6I55*JSM`zn0 zi6P>hEJ^@m5sq#taK#Cp z{GnD!R>do_D%c3cgPs+RF0QvL?`lp?CkE1UJMrm}(_R=O5K#Pi!bh?#G3vqSi2 z4awT@s4$yyQg1yHyxU$)F${Xek&xiXp{*<)V5~KXFm5q=7YW)j_JW*9!{U_7uN0U(M+BgHX%mcN^J?2 zO|bqxl&YSY5Rj@kQ+<+;T+1McjH4GK=X!>Yk;RQb?AF$|(-X+ST5=rp3scBO=NF_V zTahfSyx?ZIqn^tF^dqJ$@>GGgrT^#va9DxD*@r&y7$TXoLw`1n5o zX$fuY))#*WsV&Qj5D#!%aFURA!L{8yF*a)mBvS1Vs5{6<1zGUJ43knBB<{ZCd~po! z@fW}8uiYFtgO^I2a~{V35<(=tFgb@3G|>&*iXlD5*@Op&_pXIdZ7$>4_tD`>4Rb!0EPc3fFC_&f$H{^dxRfkE7I~Z@zL~seWVSZ5E6}rtu3} zoTQ76&+JJIw)D0M7PA?C{Z!g_Tq2hNH&$4$HrW~6f_~*;Uzea-oJ-E;P4wK$ z4@~$T^&<(IV@W0iY|QPSiZof-jz#RYh)uj2_|Xs3{+8}~#Ea=gnStb8I8dz$mG#?Y z)^m`VR?{c~#8ywkR6jx9CTwn?fO8J%w}+>4Sa_v%+Xqj=Br+~7Zh|bckjEzHoE;># zhvew)$=IBJ?Mt}*A!6Q79YgQKLC&rt`rFVWk#O*5LQyZh^bEZRlafELKR*W^gWT^?rQF?=c<}9*QJ$w#q)S((DzB`so%BoSlu_hBLt~nTax{tVFYVx zRnLvoq--V|l-Q9ws5^gjEgo!eLH40f?;<~W!lT@+{A{_Ck>hbUdV)4gp!BIDRPrcTTLXYw9+#FAC5M*z-PaicBu7eAha+6)*px zPNI7+iDC~tcxpUfCSfU4I+K&;H~dr?znz=Ww7*152<7JL%hyO%mpIBYP=TBI;jwk1 z$-%5r`~=c5$}_I_!DaoYbJ-}CyWG$6?aBjNt`zBDr%k+U5IPV78>Fj%$}A_bS8>9w4z;U2qvHI0x2)C03)A}bU#SZD7!JLy8aklI~w#5A>H z_MS+-G!CUUrOhQl`f4}cNPe)+KN+}tPMq!>U=ulzJrHa4W8e|?wtI@*ke+yh;t0VD zGClqx?4eS(;v!E%!Wib-y65wbA_mrYe8)uwU;$R2`4r08J+*@aF6)!3icIaybHs?{ zdLbbXy)4%09RUOa?jvUh8yEl0m4Kk7=iB=!!e`m5_z+$@Zw~t!pQ2g>04PyiY$d0L zLg6vP{h6hOUuKq0sjkGy%%O`T*JXK8{5+({6R{^m^oU|<^Uc(?0QH;(rkz-=tudl# z&fVIU#xx>Bk+jBE(EJR8logqyHTv|2C@8jHP&|A3a&D+oMqz|+Q1e6KzK$VouA(;51V4KY`+b5o?OL^f1o2*kn<=vLQwi9&h7Z^;*W8ACqCFP znNSno$pUto7aRfPw)GbS2cIwb#Ch%KVYQG@`8HL4xd|CG#cOpFwYu zcXRd?ZeEno{|zFIJ2f%rrsX~QTTBG$W6Hy1mz|eFB^~%X72LyM@pPuk9fW2^AO8*= zsZL(5_ccA9=O-55o@#WHoIJ-nFTT(e#>niV^K1G-`A^2jx1MyXT!+&PytP_@FN}`m zi7k9o{LaXtEJIAk{LnS8*iN2izc+|$Wo4H>9hkTD>O-UKJA$ems@EPYs^|>0ntHKp zWJYQ{sq98BZtR5k4TI@34TX{A;b}$3QGPt!32YJen&q;I1@2A|L3gnOv8^@At`2i}Krx}txF=w3pSpk}LEqKDE9+x7)NYn7WeDll3_RIsClF`l%(*l zEn{QTvfULMV?$3g)dxYsothE~1Yeho&xOjWxvD8C=E)vG4f7lwfc~0MDwkh=a(X%Q z2_;aXMsVCU&+J*8WXwHHtn~8Lav$eAMDcbP9S$R&eBEJ~8$UN5TJ_O!*vk2afuf;v zbfD7x;2Z&h=P6W~#+5`qWgh2u;b%SatH!Sej}?dhl$eOG;jQcc$}`*(Mn%xCBbAps z#qJmJp4AU~x6Xe37}GK5`0S7`sEIlmr!p&ghN& zvMKxhqov1Xfb^0mwyYe3GR>l7D85H&4GgXu>_I0QC zt5D9#Gj$Iv-(`C`J`1nO{BnJ!;J8(o!nY4WmxwMG8>_?(Lbna)9hE4)*fHIjzVup4 zxg%702JggQGT&X=4G^M$1#=o!US>y)_lA1w8KHMLT7qsyP`^%-p~r30>R5v*BSYo8 z?k@(?Bu~c0prHLa;>hcQo&rHxZ@H@~I))i!n9w7wpSFMV7zkQAcZSdbULS-qZ{S(< z3JC4*V2?PAkhmF&1>Jg44?o@N;qGMMp3pOa&yWt&D2n-QBbin8Q729YDG}S4dp!=|a*K)bG;!E6da8wRv7+kZXJvmzpB`~GR z<6EC3`{pDv&Hx^1RwEEvGO5|Re~*idOQ02Z)qCqyt-{Ia?=92kcoY&nj8Y%$(c$hc zq6k!7q@Joh;3W0rG&8x!K0hm>i^@$EB6#wydxo)0cadA*1EtS}GBPJb9?$*!QTAc~ zzZ8Xqhmm`kERmmNyYD4yN&umJ1zEZhFRPc`iQ0)9)*n_8slTmi$4uX{)g%S_iy z?jFzaG@f2G-8p)`lhXy?zEtJv$#feQw|Q2Vd+Ow7dm2U=7ac|g@RYrpbyUjDoZHW{ zEC4Zs-X+8?QQvnlKJ4R6&)airI^)Oq*Cb?0%KpBgFAk%@MzTju%*shB({=Ov9Dhs; z^V@x_#!hr;iDbJL7Pb*!{6mDOG$&Ev{`_|LVcZVxR9+3Gj6xMb^{1A|bKT_Re?A<+ z6oKL3y_sp)MN=}+{f_c5d=uc=;UurHS+?_if%s$8m|#bO;f#mNzG;{8)|OJDM4Gp- z6!!k2Zz9eDZK(eqXqvCt$?*e5P35Kt5lnZ7o-{!IC{MdF{U*?{kS{JoNqh3*`*27x zWH=Q4F*^~TZ8qPV`ZH9-ZD1lrZ<>B`tLYDrJSgLBQwm-j$(>ZDJ*)&dkJKWxjm2DylU`{%{ z6Qsj(3UJx$5P!eIvqC-iUTSYC^YpzpIYt@e@p&I8eZ%(Aff1^pWNQxo-OuEbq46jaCb zV?#1#%?@A;8{Vs<4SEhVIP*U{J6#<(R~?&ty)i7W$*JC|Y)Vjyr5oi5p=oxwWE9(gI z{4FIa5NE|R(L0)*IXf5{>_X}Yb=Ob|&Vz&rZcD*x_Ep4oFsLTpFh)bLx<Scw8(0C4*KT zXJ1)YCwO(Z?~QZQO!dL<;;<3$s;o(2k+!;eWjJPAO4Vl?O-bWpev{#^`PAR47suS6 zIdVI-dR!B;ds!CAN&~wOF_hdsS4Xqpx!~`)GrC-Ka#K=LJQhwh>8yF){P6 z4-TrH%Y|wUtrk2}l@yoo_4oAX2YvP+&5>6m`*Ly3M=koA :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr_files/header-attrs-2.6/header-attrs.js b/docs/articles/cmdstanr_files/header-attrs-2.6/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr_files/header-attrs-2.6/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/cmdstanr_files/header-attrs-2.9/header-attrs.js b/docs/articles/cmdstanr_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/cmdstanr_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/deprecations.html b/docs/articles/deprecations.html deleted file mode 100644 index a579688f7..000000000 --- a/docs/articles/deprecations.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - -Handling deprecated Stan features with the canonicalizer in CmdStanR • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/articles/deprecations_files/header-attrs-2.11/header-attrs.js b/docs/articles/deprecations_files/header-attrs-2.11/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/deprecations_files/header-attrs-2.11/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/deprecations_files/header-attrs-2.9/header-attrs.js b/docs/articles/deprecations_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/deprecations_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/index.html b/docs/articles/index.html deleted file mode 100644 index 24e6ec31f..000000000 --- a/docs/articles/index.html +++ /dev/null @@ -1,146 +0,0 @@ - -Articles • cmdstanr - - -
-
- - - -
-
- - -
-

Getting started

-

Installing CmdStan, fitting models, and accessing results.

- -
Getting started with CmdStanR
-
-
-
-

More details

-

More information about compilation, passing in data, how CmdStan ouput is written to CSV and read back into R, profiling Stan programs, running Stan on GPUs, and using CmdStanR in R Markdown documents.

- -
How does CmdStanR work?
-
-
Working with Posteriors
-
-
R Markdown CmdStan Engine
-
-
Profiling Stan programs with CmdStanR
-
-
Running Stan on the GPU with OpenCL
-
-
-
-
- - -
- -
-

Site built with pkgdown 2.0.9.

-
- -
- - - - - - - - diff --git a/docs/articles/posterior.html b/docs/articles/posterior.html deleted file mode 100644 index a62f39624..000000000 --- a/docs/articles/posterior.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - - -Working with Posteriors • cmdstanr - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -
-

Summary statistics -

-

We can easily customize the summary statistics reported by -$summary() and $print().

-
-fit <- cmdstanr::cmdstanr_example("schools", method = "sample")
-
Warning: 145 of 4000 (4.0%) transitions ended with a divergence.
-See https://mc-stan.org/misc/warnings for details.
-
-fit$summary()
-
   variable       mean     median       sd      mad           q5       q95
-1      lp__ -58.189615 -58.233950 4.983507 5.199033 -66.09672000 -49.48569
-2        mu   6.770868   6.720615 4.160694 4.104430   0.05392642  13.50031
-3       tau   5.360230   4.524270 3.536662 3.128657   1.41195350  12.01772
-4  theta[1]   9.538150   8.703025 6.992732 6.139536  -0.46183645  21.76395
-5  theta[2]   7.037750   7.084940 5.672420 5.463211  -1.89471350  16.19477
-6  theta[3]   5.865357   5.940265 6.567071 5.598943  -4.94042600  15.87788
-7  theta[4]   7.096898   7.021110 5.846662 5.507303  -2.11556450  16.63653
-8  theta[5]   4.905340   5.104415 5.567945 5.102183  -4.69825650  13.42720
-9  theta[6]   5.743860   5.979900 5.965230 5.476702  -4.29255000  15.06765
-10 theta[7]   9.332145   8.785955 5.911919 5.517199   0.73314065  20.11738
-11 theta[8]   7.283320   7.100935 6.510593 5.937568  -3.18226350  18.23657
-       rhat  ess_bulk  ess_tail
-1  1.029985  154.8234  166.9326
-2  1.004450  669.4002 1293.6704
-3  1.029747  147.4551  128.0359
-4  1.006213 1068.8761 2337.7828
-5  1.002627 1067.0310 2241.5417
-6  1.004902 1217.1050 1912.7529
-7  1.002033 1030.8586 1665.2932
-8  1.009740  637.5400 1725.4378
-9  1.003866 1129.6591 2064.6751
-10 1.003642  989.5674 1661.8675
-11 1.005570 1163.3998 1970.5629
-

By default all variables are summaries with the follow functions:

- -
[1] "mean"      "median"    "sd"        "mad"       "quantile2"
-

To change the variables summarized, we use the variables argument

-
-fit$summary(variables = c("mu", "tau"))
-
  variable     mean   median       sd      mad         q5      q95     rhat
-1       mu 6.770868 6.720615 4.160694 4.104430 0.05392642 13.50031 1.004450
-2      tau 5.360230 4.524270 3.536662 3.128657 1.41195350 12.01772 1.029747
-  ess_bulk  ess_tail
-1 669.4002 1293.6704
-2 147.4551  128.0359
-

We can additionally change which functions are used

-
-fit$summary(variables = c("mu", "tau"), mean, sd)
-
  variable     mean       sd
-1       mu 6.770868 4.160694
-2      tau 5.360230 3.536662
-

To summarize all variables with non-default functions, it is -necessary to set explicitly set the variables argument, either to -NULL or the full vector of variable names.

-
-fit$metadata()$model_params
-
 [1] "lp__"     "mu"       "tau"      "theta[1]" "theta[2]" "theta[3]"
- [7] "theta[4]" "theta[5]" "theta[6]" "theta[7]" "theta[8]"
-
-fit$summary(variables = NULL, "mean", "median")
-
   variable       mean     median
-1      lp__ -58.189615 -58.233950
-2        mu   6.770868   6.720615
-3       tau   5.360230   4.524270
-4  theta[1]   9.538150   8.703025
-5  theta[2]   7.037750   7.084940
-6  theta[3]   5.865357   5.940265
-7  theta[4]   7.096898   7.021110
-8  theta[5]   4.905340   5.104415
-9  theta[6]   5.743860   5.979900
-10 theta[7]   9.332145   8.785955
-11 theta[8]   7.283320   7.100935
-

Summary functions can be specified by character string, function, or -using a formula (or anything else supported by -rlang::as_function()). If these arguments are named, those -names will be used in the tibble output. If the summary results are -named they will take precedence.

-
-my_sd <- function(x) c(My_SD = sd(x))
-fit$summary(
-  c("mu", "tau"), 
-  MEAN = mean, 
-  "median",
-  my_sd,
-  ~quantile(.x, probs = c(0.1, 0.9)),
-  Minimum = function(x) min(x)
-)        
-
  variable     MEAN   median    My_SD      10%      90%   Minimum
-1       mu 6.770868 6.720615 4.160694 1.577812 12.27689 -7.905940
-2      tau 5.360230 4.524270 3.536662 1.751609 10.20606  0.836362
-

Arguments to all summary functions can also be specified with -.args.

-
-fit$summary(c("mu", "tau"), quantile, .args = list(probs = c(0.025, .05, .95, .975)))
-
  variable      2.5%         5%      95%    97.5%
-1       mu -1.320617 0.05392642 13.50031 14.99084
-2      tau  1.176680 1.41195350 12.01772 13.99329
-

The summary functions are applied to the array of sample values, with -dimension iter_samplingxchains.

-
-fit$summary(variables = NULL, dim, colMeans)
-
   variable dim.1 dim.2          1          2          3          4
-1      lp__  1000     4 -59.512825 -57.501953 -58.519416 -57.224267
-2        mu  1000     4   6.687580   7.323996   6.485391   6.586506
-3       tau  1000     4   6.113202   4.991316   5.617574   4.718827
-4  theta[1]  1000     4   9.845526  10.063756   9.480842   8.762475
-5  theta[2]  1000     4   7.109487   7.340212   6.950864   6.750437
-6  theta[3]  1000     4   5.614556   6.465821   5.368069   6.012981
-7  theta[4]  1000     4   7.095362   7.575608   6.862193   6.854430
-8  theta[5]  1000     4   4.335314   5.915169   4.347114   5.023764
-9  theta[6]  1000     4   5.495814   6.275650   5.270746   5.933231
-10 theta[7]  1000     4   9.739179   9.685921   9.144607   8.758873
-11 theta[8]  1000     4   7.154340   7.740947   7.134879   7.103115
-

For this reason users may have unexpected results if they use -stats::var() directly, as it will return a covariance -matrix. An alternative is the distributional::variance() -function, which can also be accessed via -posterior::variance().

-
-fit$summary(c("mu", "tau"), posterior::variance, ~var(as.vector(.x)))
-
  variable posterior::variance ~var(as.vector(.x))
-1       mu            17.31137            17.31137
-2      tau            12.50798            12.50798
-

Summary functions need not be numeric, but these won’t work with -$print().

-
-strict_pos <- function(x) if (all(x > 0)) "yes" else "no"
-fit$summary(variables = NULL, "Strictly Positive" = strict_pos)
-
   variable Strictly Positive
-1      lp__                no
-2        mu                no
-3       tau               yes
-4  theta[1]                no
-5  theta[2]                no
-6  theta[3]                no
-7  theta[4]                no
-8  theta[5]                no
-9  theta[6]                no
-10 theta[7]                no
-11 theta[8]                no
-
-# fit$print(variables = NULL, "Strictly Positive" = strict_pos)
-

For more information, see posterior::summarise_draws(), -which is called by $summary().

-
-
-

Extracting posterior draws/samples -

-

The $draws() -method can be used to extract the posterior draws in formats provided by -the posterior -package. Here we demonstrate only the draws_array and -draws_df formats, but the posterior -package supports other useful formats as well.

-
-# default is a 3-D draws_array object from the posterior package
-# iterations x chains x variables
-draws_arr <- fit$draws() # or format="array"
-str(draws_arr)
-
 'draws_array' num [1:1000, 1:4, 1:11] -60.3 -61 -59.5 -58.6 -64.2 ...
- - attr(*, "dimnames")=List of 3
-  ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
-  ..$ chain    : chr [1:4] "1" "2" "3" "4"
-  ..$ variable : chr [1:11] "lp__" "mu" "tau" "theta[1]" ...
-
-# draws x variables data frame
-draws_df <- fit$draws(format = "df")
-str(draws_df)
-
draws_df [4,000 × 14] (S3: draws_df/draws/tbl_df/tbl/data.frame)
- $ lp__      : num [1:4000] -60.3 -61 -59.5 -58.6 -64.2 ...
- $ mu        : num [1:4000] 13.44 3.8 5.99 5.51 10.76 ...
- $ tau       : num [1:4000] 5.55 7.85 6.33 5.48 8.88 ...
- $ theta[1]  : num [1:4000] 18.07 3.52 12.12 4.46 13.9 ...
- $ theta[2]  : num [1:4000] 16.476 -0.445 4.075 3.544 4.102 ...
- $ theta[3]  : num [1:4000] 11.7279 5.8634 -0.0525 -0.6551 3.4664 ...
- $ theta[4]  : num [1:4000] 14.84 3.94 -1.12 6.6 -2.9 ...
- $ theta[5]  : num [1:4000] 12.108 0.652 -2.931 7.275 -6.486 ...
- $ theta[6]  : num [1:4000] 7.16 9.55 9.69 3.59 6.77 ...
- $ theta[7]  : num [1:4000] 11.31 11.43 4.64 11.3 5.55 ...
- $ theta[8]  : num [1:4000] 24.13 -7.81 9.13 -3.8 20.05 ...
- $ .chain    : int [1:4000] 1 1 1 1 1 1 1 1 1 1 ...
- $ .iteration: int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
- $ .draw     : int [1:4000] 1 2 3 4 5 6 7 8 9 10 ...
-
-print(draws_df)
-
# A draws_df: 1000 iterations, 4 chains, and 11 variables
-   lp__   mu  tau theta[1] theta[2] theta[3] theta[4] theta[5]
-1   -60 13.4  5.6     18.1    16.48   11.728     14.8    12.11
-2   -61  3.8  7.9      3.5    -0.45    5.863      3.9     0.65
-3   -59  6.0  6.3     12.1     4.08   -0.053     -1.1    -2.93
-4   -59  5.5  5.5      4.5     3.54   -0.655      6.6     7.28
-5   -64 10.8  8.9     13.9     4.10    3.466     -2.9    -6.49
-6   -61  6.6 11.3     19.3    10.54    6.469      5.6    -3.64
-7   -49  7.2  2.1      5.6     6.76    6.771      7.5     7.51
-8   -53  6.8  1.5      6.1     6.97    7.150      3.8     8.49
-9   -53  6.8  1.5      6.1     6.97    7.150      3.8     8.49
-10  -56  6.5  3.8      4.8     3.31    9.891      8.5     4.73
-# ... with 3990 more draws, and 3 more variables
-# ... hidden reserved variables {'.chain', '.iteration', '.draw'}
-

To convert an existing draws object to a different format use the -posterior::as_draws_*() functions.

-

To manipulate the draws objects use the various methods -described in the posterior package vignettes -and documentation.

-
-

Structured draws similar to rstan::extract() -

-

The posterior package’s rvar format -provides a multidimensional, sample-based representation of random -variables. See https://mc-stan.org/posterior/articles/rvar.html for -details. In addition to being useful in its own right, this format also -allows CmdStanR users to obtain draws in a similar format to -rstan::extract().

-

Suppose we have a parameter matrix[2,3] x. The -rvar format lets you interact with x as if -it’s a 2 x 3 matrix and automatically applies operations -over the many posterior draws of x. To instead directly -access the draws of x while maintaining the structure of -the matrix use posterior::draws_of(). For example:

-
-draws <- posterior::as_draws_rvars(fit$draws())
-x_rvar <- draws$x
-x_array <- posterior::draws_of(draws$x)
-

The object x_rvar will be an rvar that can -be used like a 2 x 3 matrix, with the draws handled behind -the scenes. The object x_array will be a -4000 x 2 x 3 array (assuming 4000 posterior -draws), which is the same as it would be after being extracted from the -list returned by rstan::extract().

-
-
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/posterior_files/header-attrs-2.18/header-attrs.js b/docs/articles/posterior_files/header-attrs-2.18/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/posterior_files/header-attrs-2.18/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/profiling.html b/docs/articles/profiling.html deleted file mode 100644 index dd98c4330..000000000 --- a/docs/articles/profiling.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - - -Profiling Stan programs with CmdStanR • cmdstanr - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -
-

Introduction -

-

This vignette demonstrates how to use the new profiling functionality -introduced in CmdStan 2.26.0.

-

Profiling identifies which parts of a Stan program are taking the -longest time to run and is therefore a useful guide when working on -optimizing the performance of a model.

-

However, be aware that the statistical assumptions that go into a -model are the most important factors in overall model performance. It is -often not possible to make up for model problems with just brute force -computation. For ideas on how to address performance of your model from -a statistical perspective, see Gelman (2020).

-
-library(cmdstanr)
-check_cmdstan_toolchain(fix = TRUE, quiet = TRUE)
-
-
-

Adding profiling statements to a Stan program -

-

Consider a simple logistic regression with parameters -alpha and beta, covariates X, and -outcome y.

-
data {
-  int<lower=1> k;
-  int<lower=0> n;
-  matrix[n, k] X;
-  array[n] int y;
-}
-parameters {
-  vector[k] beta;
-  real alpha;
-}
-model {
-  beta ~ std_normal();
-  alpha ~ std_normal();
-
-  y ~ bernoulli_logit(X * beta + alpha);
-}
-

A simple question is how much time do the prior calculations take -compared against the likelihood? To answer this we surround the prior -and likelihood calculations with profile statements.

-
profile("priors") {
-  target += std_normal_lpdf(beta);
-  target += std_normal_lpdf(alpha);
-}
-profile("likelihood") {
-  target += bernoulli_logit_lpmf(y | X * beta + alpha);
-}
-

In general we recommend using a separate .stan file, but -for convenience in this vignette we’ll write the Stan program as a -string and use write_stan_file() to write it to a temporary -file.

-
-profiling_bernoulli_logit <- write_stan_file('
-data {
-  int<lower=1> k;
-  int<lower=0> n;
-  matrix[n, k] X;
-  array[n] int y;
-}
-parameters {
-  vector[k] beta;
-  real alpha;
-}
-model {
-  profile("priors") {
-    target += std_normal_lpdf(beta);
-    target += std_normal_lpdf(alpha);
-  }
-  profile("likelihood") {
-    target += bernoulli_logit_lpmf(y | X * beta + alpha);
-  }
-}
-')
-

We can then run the model as usual and Stan will collect the -profiling information for any sections with profile -statements.

-
-# Compile the model
-model <- cmdstan_model(profiling_bernoulli_logit)
-
-# Generate some fake data
-n <- 1000
-k <- 20
-X <- matrix(rnorm(n * k), ncol = k)
-
-y <- 3 * X[,1] - 2 * X[,2] + 1
-p <- runif(n)
-y <- ifelse(p < (1 / (1 + exp(-y))), 1, 0)
-stan_data <- list(k = ncol(X), n = nrow(X), y = y, X = X)
-
-# Run one chain of the model
-fit <- model$sample(data = stan_data, chains = 1)
-
-
-

Accessing the profiling information from R -

-

The raw profiling information can then be accessed with the -$profiles() method, which returns a list containing one -data frame per chain (profiles across multiple chains are not -automatically aggregated). Details on the column names are available in -the CmdStan -documentation.

-
-fit$profiles()
-
[[1]]
-        name      thread_id total_time forward_time reverse_time chain_stack
-1 likelihood 0x7ff85af4eb00 0.60053000   0.49063200   0.10989800       52272
-2     priors 0x7ff85af4eb00 0.00611123   0.00426232   0.00184891       34848
-  no_chain_stack autodiff_calls no_autodiff_calls
-1       34865424          17424                 1
-2          34848          17424                 1
-

The total_time column is the total time spent inside a -given profile statement. It is clear that the vast majority of time is -spent in the likelihood function.

-
-
-

Comparing to a faster version of the model -

-

Stan’s specialized glm functions can be used to make models like this -faster. In this case the likelihood can be replaced with

-
target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);
-

We’ll keep the same profile() statements so that the -profiling information for the new model is collected automatically just -like for the previous one.

-
-profiling_bernoulli_logit_glm <- write_stan_file('
-data {
-  int<lower=1> k;
-  int<lower=0> n;
-  matrix[n, k] X;
-  array[n] int y;
-}
-parameters {
-  vector[k] beta;
-  real alpha;
-}
-model {
-  profile("priors") {
-    target += std_normal_lpdf(beta);
-    target += std_normal_lpdf(alpha);
-  }
-  profile("likelihood") {
-    target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);
-  }
-}
-')
-
-model_glm <- cmdstan_model(profiling_bernoulli_logit_glm)
-fit_glm <- model_glm$sample(data = stan_data, chains = 1)
-
-fit_glm$profiles()
-
[[1]]
-        name      thread_id total_time forward_time reverse_time chain_stack
-1 likelihood 0x7ff85af4eb00 0.30010000   0.29864700   0.00145329       51729
-2     priors 0x7ff85af4eb00 0.00520466   0.00393537   0.00126928       34486
-  no_chain_stack autodiff_calls no_autodiff_calls
-1          17243          17243                 1
-2          34486          17243                 1
-

We can see from the total_time column that this is much -faster than the previous model.

-
-
-

Per-gradient timings, and memory usage -

-

The other columns of the profiling output are documented in the CmdStan -documentation.

-

The timing numbers are broken down by forward pass and reverse pass, -and the chain_stack and no_chain_stack columns -contain information about how many autodiff variables were saved in the -process of performing a calculation.

-

These numbers are all totals – times are the total times over the -whole calculation, and chain_stack counts are similarly the -total counts of autodiff variables used over the whole calculation. It -is often convenient to have per-gradient calculations (which will be -more stable across runs with different seeds). To compute these, use the -autodiff_calls column.

-
-profile_chain_1 <- fit$profiles()[[1]]
-per_gradient_timing <- profile_chain_1$total_time/profile_chain_1$autodiff_calls
-print(per_gradient_timing) # two elements for the two profile statements in the model
-
[1] 3.446568e-05 3.507363e-07
-
-
-

Accessing and saving the profile files -

-

After sampling (or optimization or variational inference) finishes, -CmdStan stores the profiling data in CSV files in a temporary location. -The paths of the profiling CSV files can be retrieved using -$profile_files().

-
-fit$profile_files()
-
[1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/Rtmp2a6FE1/model_6580008f67848265f3dfd0e7ae3b0600-profile-202503310851-1-810271.csv"
-

These can be saved to a more permanent location with the -$save_profile_files() method.

-
-# see ?save_profile_files for info on optional arguments
-fit$save_profile_files(dir = "path/to/directory")
-
-
-

References -

-

Gelman, Andrew, Aki Vehtari, Daniel Simpson, Charles C. Margossian, -Bob Carpenter, Yuling Yao, Lauren Kennedy, Jonah Gabry, Paul-Christian -Bürkner, and Martin Modrák. 2020. “Bayesian Workflow.” https://arxiv.org/abs/2011.01808.

-
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/profiling_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/articles/profiling_files/accessible-code-block-0.0.1/empty-anchor.js deleted file mode 100644 index ca349fd6a..000000000 --- a/docs/articles/profiling_files/accessible-code-block-0.0.1/empty-anchor.js +++ /dev/null @@ -1,15 +0,0 @@ -// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> -// v0.0.1 -// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. - -document.addEventListener('DOMContentLoaded', function() { - const codeList = document.getElementsByClassName("sourceCode"); - for (var i = 0; i < codeList.length; i++) { - var linkList = codeList[i].getElementsByTagName('a'); - for (var j = 0; j < linkList.length; j++) { - if (linkList[j].innerHTML === "") { - linkList[j].setAttribute('aria-hidden', 'true'); - } - } - } -}); diff --git a/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.css b/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.css deleted file mode 100644 index 07aee5fcb..000000000 --- a/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.css +++ /dev/null @@ -1,4 +0,0 @@ -/* Styles for section anchors */ -a.anchor-section {margin-left: 10px; visibility: hidden; color: inherit;} -a.anchor-section::before {content: '#';} -.hasAnchor:hover a.anchor-section {visibility: visible;} diff --git a/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.js b/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.js deleted file mode 100644 index 570f99a0a..000000000 --- a/docs/articles/profiling_files/anchor-sections-1.0/anchor-sections.js +++ /dev/null @@ -1,33 +0,0 @@ -// Anchor sections v1.0 written by Atsushi Yasumoto on Oct 3rd, 2020. -document.addEventListener('DOMContentLoaded', function() { - // Do nothing if AnchorJS is used - if (typeof window.anchors === 'object' && anchors.hasOwnProperty('hasAnchorJSLink')) { - return; - } - - const h = document.querySelectorAll('h1, h2, h3, h4, h5, h6'); - - // Do nothing if sections are already anchored - if (Array.from(h).some(x => x.classList.contains('hasAnchor'))) { - return null; - } - - // Use section id when pandoc runs with --section-divs - const section_id = function(x) { - return ((x.classList.contains('section') || (x.tagName === 'SECTION')) - ? x.id : ''); - }; - - // Add anchors - h.forEach(function(x) { - const id = x.id || section_id(x.parentElement); - if (id === '') { - return null; - } - let anchor = document.createElement('a'); - anchor.href = '#' + id; - anchor.classList = ['anchor-section']; - x.classList.add('hasAnchor'); - x.appendChild(anchor); - }); -}); diff --git a/docs/articles/profiling_files/header-attrs-2.3/header-attrs.js b/docs/articles/profiling_files/header-attrs-2.3/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/profiling_files/header-attrs-2.3/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/profiling_files/header-attrs-2.6/header-attrs.js b/docs/articles/profiling_files/header-attrs-2.6/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/profiling_files/header-attrs-2.6/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/profiling_files/header-attrs-2.9/header-attrs.js b/docs/articles/profiling_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/profiling_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/r-markdown.html b/docs/articles/r-markdown.html deleted file mode 100644 index a6d479bac..000000000 --- a/docs/articles/r-markdown.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - -R Markdown CmdStan Engine • cmdstanr - - - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -

R Markdown supports a variety of languages through the use of knitr -language engines. Where users wish to write Stan programs as chunks -directly in R Markdown documents there are three options:

-
    -
  1. the user wishes all the Stan chunks in the R Markdown document to be -processed using RStan;
    -
  2. -
  3. all Stan chunks are to be processed using CmdStanR; and.
    -
  4. -
  5. some chunks are to be processed by RStan and some by CmdStanR.
  6. -
-

Behind the scenes in each option, the engine compiles the model code -in each chunk and creates an object that provides methods to run the -model: a stanmodel if Rstan is being used, or a -CmdStanModel in the CmdStanR case. This model object is -assigned to a variable with the name given by the -output.var chunk option.

-
-

Option 1: Using RStan for all chunks -

-

This is the default option. In that case we can write, for -example:

-
```{stan, output.var="model"}
-// Stan model code
-```
-
-```{r}
-rstan::sampling(model)
-```
-
-
-

Option 2: Using CmdStanR for all chunks -

-

If CmdStanR is being used a replacement engine needs to be registered -along the following lines:

- -

This overrides knitr’s built-in stan engine so that all -stan chunks are processed with CmdStanR, not RStan. Of -course, this also means that the variable specified by -output.var will no longer be a stanmodel -object, but instead a CmdStanModel object, so the example -code above would look like this:

-
```{stan, output.var="model"}
-// Stan model code
-```
-
-```{r}
-model$sample()
-```
-
-
-

Example -

-
// This stan chunk results in a CmdStanModel object called "ex1"
-parameters {
-  array[2] real y;
-}
-model {
-  y[1] ~ normal(0, 1);
-  y[2] ~ double_exponential(0, 2);
-}
-
-ex1$print()
-#> // This stan chunk results in a CmdStanModel object called "ex1"
-#> parameters {
-#>   array[2] real y;
-#> }
-#> model {
-#>   y[1] ~ normal(0, 1);
-#>   y[2] ~ double_exponential(0, 2);
-#> }
-
-fit <- ex1$sample(
-  refresh = 0,
-  seed = 42L
-)
-#> Running MCMC with 4 sequential chains...
-#> 
-#> Chain 1 finished in 0.0 seconds.
-#> Chain 2 finished in 0.0 seconds.
-#> Chain 3 finished in 0.0 seconds.
-#> Chain 4 finished in 0.0 seconds.
-#> 
-#> All 4 chains finished successfully.
-#> Mean chain execution time: 0.0 seconds.
-#> Total execution time: 0.7 seconds.
-
-print(fit)
-#>  variable  mean median   sd  mad    q5   q95 rhat ess_bulk ess_tail
-#>      lp__ -1.49  -1.15 1.25 0.98 -4.04 -0.17 1.00     1284     1327
-#>      y[1] -0.03  -0.02 1.01 1.02 -1.68  1.62 1.00     2086     1813
-#>      y[2] -0.01  -0.05 2.78 1.99 -4.55  4.62 1.00     2015     1281
-
-
-

Option 3: Using both RStan and CmdStanR in the same R Markdown -document -

-

While the default behavior is to override the built-in -stan engine because the assumption is that the user is -probably not using both RStan and CmdStanR in the same document or -project, the option to use both exists. When registering CmdStanR’s -knitr engine, set override = FALSE to register the engine -as a cmdstan engine:

-
-register_knitr_engine(override = FALSE)
-

This will cause stan chunks to be processed by knitr’s -built-in, RStan-based engine and only use CmdStanR’s knitr engine for -cmdstan chunks:

-
```{stan, output.var="model_obj1"}
-// Results in a stanmodel object from RStan
-```
-
-```{r}
-rstan::sampling(model_obj1)
-```
-
-```{cmdstan, output.var="model_obj2"}
-// Results in a CmdStanModel object from CmdStanR
-```
-
-```{r}
-model_obj2$sample()
-```
-
-
-

Caching chunks -

-

Use cache=TRUE chunk option to avoid re-compiling the -Stan model code every time the R Markdown is knit/rendered.

-

You can find the Stan model file and the compiled executable in the -document’s cache directory.

-
-
-

Running interactively -

-

When running chunks interactively in RStudio (e.g. when using R -Notebooks), it has been observed that the built-in, RStan-based -engine is used for stan chunks even when CmdStanR’s engine -has been registered in the session as the engine for stan. -As a workaround, when running chunks interactively, it is -recommended to use the override = FALSE option and change -stan chunks to be cmdstan chunks.

-

Do not worry: if the template you use supports syntax highlighting -for the Stan language, that syntax highlighting will be applied to -cmdstan chunks when the document is knit/rendered.

-
-
- - - -
- - - -
- -
-

-

Site built with pkgdown 2.0.9.

-
- -
-
- - - - - - - - diff --git a/docs/articles/r-markdown_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/articles/r-markdown_files/accessible-code-block-0.0.1/empty-anchor.js deleted file mode 100644 index ca349fd6a..000000000 --- a/docs/articles/r-markdown_files/accessible-code-block-0.0.1/empty-anchor.js +++ /dev/null @@ -1,15 +0,0 @@ -// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> -// v0.0.1 -// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. - -document.addEventListener('DOMContentLoaded', function() { - const codeList = document.getElementsByClassName("sourceCode"); - for (var i = 0; i < codeList.length; i++) { - var linkList = codeList[i].getElementsByTagName('a'); - for (var j = 0; j < linkList.length; j++) { - if (linkList[j].innerHTML === "") { - linkList[j].setAttribute('aria-hidden', 'true'); - } - } - } -}); diff --git a/docs/articles/r-markdown_files/header-attrs-2.3/header-attrs.js b/docs/articles/r-markdown_files/header-attrs-2.3/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/r-markdown_files/header-attrs-2.3/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/r-markdown_files/header-attrs-2.6/header-attrs.js b/docs/articles/r-markdown_files/header-attrs-2.6/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/r-markdown_files/header-attrs-2.6/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/r-markdown_files/header-attrs-2.9/header-attrs.js b/docs/articles/r-markdown_files/header-attrs-2.9/header-attrs.js deleted file mode 100644 index dd57d92e0..000000000 --- a/docs/articles/r-markdown_files/header-attrs-2.9/header-attrs.js +++ /dev/null @@ -1,12 +0,0 @@ -// Pandoc 2.9 adds attributes on both header and div. We remove the former (to -// be compatible with the behavior of Pandoc < 2.8). -document.addEventListener('DOMContentLoaded', function(e) { - var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); - var i, h, a; - for (i = 0; i < hs.length; i++) { - h = hs[i]; - if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 - a = h.attributes; - while (a.length > 0) h.removeAttribute(a[0].name); - } -}); diff --git a/docs/articles/r_markdown.html b/docs/articles/r_markdown.html deleted file mode 100644 index 2a187c3a6..000000000 --- a/docs/articles/r_markdown.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - -R Markdown CmdStan Engine • cmdstanr - - - - - - - - - - - - - - - - - -
-
- - - - -
-
- - - - -

R Markdown supports a variety of languages through the use of knitr language engines. One such engine is the stan engine, which allows users to write Stan programs directly in their R Markdown documents by setting the language of the chunk to stan.

-

Behind the scenes, the engine relies on RStan to compile the model code into an in-memory stanmodel, which is assigned to a variable with the name given by the output.var chunk option. For example:

-
```{stan, output.var="model"}
-// Stan model code
-```
-
-```{r}
-rstan::sampling(model)
-```
-

CmdStanR provides a replacement engine, which can be registered as follows:

- -

By default, this overrides knitr’s built-in stan engine so that all stan chunks are processed with CmdStanR, not RStan. Of course, this also means that the variable specified by output.var will no longer be a stanmodel object, but instead a CmdStanModel object, so the code above would look like this:

-
```{stan, output.var="model"}
-// Stan model code
-```
-
-```{r}
-model$sample()
-```
-
-

-Example

-
// This stan chunk results in a CmdStanModel object called "ex1"
-parameters {
-  real y[2];
-}
-model {
-  y[1] ~ normal(0, 1);
-  y[2] ~ double_exponential(0, 2);
-}
-
ex1$print()
-#> // This stan chunk results in a CmdStanModel object called "ex1"
-#> parameters {
-#>   real y[2];
-#> }
-#> model {
-#>   y[1] ~ normal(0, 1);
-#>   y[2] ~ double_exponential(0, 2);
-#> }
-
fit <- ex1$sample(
-  refresh = 0,
-  seed = 42L
-)
-#> Running MCMC with 4 sequential chains...
-#> 
-#> Chain 1 finished in 0.3 seconds.
-#> Chain 2 finished in 0.1 seconds.
-#> Chain 3 finished in 0.1 seconds.
-#> Chain 4 finished in 0.1 seconds.
-#> 
-#> All 4 chains finished successfully.
-#> Mean chain execution time: 0.2 seconds.
-#> Total execution time: 0.7 seconds.
-
-print(fit)
-#>  variable  mean median   sd  mad    q5   q95 rhat ess_bulk ess_tail
-#>      lp__ -1.52  -1.20 1.26 0.98 -4.04 -0.17 1.00     1584     1603
-#>      y[1] -0.01   0.01 1.02 1.03 -1.69  1.66 1.00     1863     2109
-#>      y[2]  0.04   0.03 2.86 2.01 -4.61  4.86 1.00     2201     1625
-
-
-

-Caching chunks

-

Use cache=TRUE chunk option to avoid re-compiling the Stan model code every time the R Markdown is knit/rendered.

-

You can find the Stan model file and the compiled executable in the document’s cache directory.

-
-
-

-Using RStan and CmdStanR engines side-by-side

-

While the default behavior is to override the built-in stan engine because the assumption is that the user is probably not using both RStan and CmdStanR in the same document or project, the option to use both exists. When registering CmdStanR’s knitr engine, set override = FALSE to register the engine as a cmdstan engine:

-
register_knitr_engine(override = FALSE)
-

This will cause stan chunks to be processed by knitr’s built-in, RStan-based engine and only use CmdStanR’s knitr engine for cmdstan chunks:

-
```{stan, output.var="model_obj1"}
-// Results in a stanmodel object
-```
-
-```{r}
-rstan::sampling(model_obj1)
-```
-
-```{cmdstan, output.var="model_obj2"}
-// Results in a CmdStanModel object
-```
-
-```{r}
-model_obj2$sample()
-```
-
-
- - - -
- - - -
- -
-

Site built with pkgdown 1.5.1.

-
- -
-
- - - - - - diff --git a/docs/articles/r_markdown_files/accessible-code-block-0.0.1/empty-anchor.js b/docs/articles/r_markdown_files/accessible-code-block-0.0.1/empty-anchor.js deleted file mode 100644 index ca349fd6a..000000000 --- a/docs/articles/r_markdown_files/accessible-code-block-0.0.1/empty-anchor.js +++ /dev/null @@ -1,15 +0,0 @@ -// Hide empty tag within highlighted CodeBlock for screen reader accessibility (see https://github.com/jgm/pandoc/issues/6352#issuecomment-626106786) --> -// v0.0.1 -// Written by JooYoung Seo (jooyoung@psu.edu) and Atsushi Yasumoto on June 1st, 2020. - -document.addEventListener('DOMContentLoaded', function() { - const codeList = document.getElementsByClassName("sourceCode"); - for (var i = 0; i < codeList.length; i++) { - var linkList = codeList[i].getElementsByTagName('a'); - for (var j = 0; j < linkList.length; j++) { - if (linkList[j].innerHTML === "") { - linkList[j].setAttribute('aria-hidden', 'true'); - } - } - } -}); diff --git a/docs/authors.html b/docs/authors.html deleted file mode 100644 index 3c863bf25..000000000 --- a/docs/authors.html +++ /dev/null @@ -1,197 +0,0 @@ - -Authors and Citation • cmdstanr - - -
-
- - - -
-
-
- - - -
  • -

    Jonah Gabry. Author. -

    -
  • -
  • -

    Rok Češnovar. Author. -

    -
  • -
  • -

    Andrew Johnson. Author, maintainer. -

    -
  • -
  • -

    Steve Bronder. Author. -

    -
  • -
  • -

    Ben Bales. Contributor. -

    -
  • -
  • -

    Mitzi Morris. Contributor. -

    -
  • -
  • -

    Mikhail Popov. Contributor. -

    -
  • -
  • -

    Mike Lawrence. Contributor. -

    -
  • -
  • -

    William Michael Landau. Contributor. -

    -
  • -
  • -

    Jacob Socolar. Contributor. -

    -
  • -
  • -

    Martin Modrák. Contributor. -

    -
  • -
  • -

    Ven Popov. Contributor. -

    -
  • -
-
-
-

Citation

- Source: DESCRIPTION -
-
- - -

Gabry J, Češnovar R, Johnson A, Bronder S (2025). -cmdstanr: R Interface to 'CmdStan'. -R package version 0.9.0, https://discourse.mc-stan.org, https://mc-stan.org/cmdstanr/. -

-
@Manual{,
-  title = {cmdstanr: R Interface to 'CmdStan'},
-  author = {Jonah Gabry and Rok Češnovar and Andrew Johnson and Steve Bronder},
-  year = {2025},
-  note = {R package version 0.9.0, https://discourse.mc-stan.org},
-  url = {https://mc-stan.org/cmdstanr/},
-}
- -
- -
- - - -
- -
-

Site built with pkgdown 2.0.9.

-
- -
- - - - - - - - diff --git a/docs/bootstrap-toc.css b/docs/bootstrap-toc.css deleted file mode 100644 index 5a859415c..000000000 --- a/docs/bootstrap-toc.css +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) - * Copyright 2015 Aidan Feldman - * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ - -/* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ - -/* All levels of nav */ -nav[data-toggle='toc'] .nav > li > a { - display: block; - padding: 4px 20px; - font-size: 13px; - font-weight: 500; - color: #767676; -} -nav[data-toggle='toc'] .nav > li > a:hover, -nav[data-toggle='toc'] .nav > li > a:focus { - padding-left: 19px; - color: #563d7c; - text-decoration: none; - background-color: transparent; - border-left: 1px solid #563d7c; -} -nav[data-toggle='toc'] .nav > .active > a, -nav[data-toggle='toc'] .nav > .active:hover > a, -nav[data-toggle='toc'] .nav > .active:focus > a { - padding-left: 18px; - font-weight: bold; - color: #563d7c; - background-color: transparent; - border-left: 2px solid #563d7c; -} - -/* Nav: second level (shown on .active) */ -nav[data-toggle='toc'] .nav .nav { - display: none; /* Hide by default, but at >768px, show it */ - padding-bottom: 10px; -} -nav[data-toggle='toc'] .nav .nav > li > a { - padding-top: 1px; - padding-bottom: 1px; - padding-left: 30px; - font-size: 12px; - font-weight: normal; -} -nav[data-toggle='toc'] .nav .nav > li > a:hover, -nav[data-toggle='toc'] .nav .nav > li > a:focus { - padding-left: 29px; -} -nav[data-toggle='toc'] .nav .nav > .active > a, -nav[data-toggle='toc'] .nav .nav > .active:hover > a, -nav[data-toggle='toc'] .nav .nav > .active:focus > a { - padding-left: 28px; - font-weight: 500; -} - -/* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ -nav[data-toggle='toc'] .nav > .active > ul { - display: block; -} diff --git a/docs/bootstrap-toc.js b/docs/bootstrap-toc.js deleted file mode 100644 index 1cdd573b2..000000000 --- a/docs/bootstrap-toc.js +++ /dev/null @@ -1,159 +0,0 @@ -/*! - * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) - * Copyright 2015 Aidan Feldman - * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ -(function() { - 'use strict'; - - window.Toc = { - helpers: { - // return all matching elements in the set, or their descendants - findOrFilter: function($el, selector) { - // http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/ - // http://stackoverflow.com/a/12731439/358804 - var $descendants = $el.find(selector); - return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])'); - }, - - generateUniqueIdBase: function(el) { - var text = $(el).text(); - var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-'); - return anchor || el.tagName.toLowerCase(); - }, - - generateUniqueId: function(el) { - var anchorBase = this.generateUniqueIdBase(el); - for (var i = 0; ; i++) { - var anchor = anchorBase; - if (i > 0) { - // add suffix - anchor += '-' + i; - } - // check if ID already exists - if (!document.getElementById(anchor)) { - return anchor; - } - } - }, - - generateAnchor: function(el) { - if (el.id) { - return el.id; - } else { - var anchor = this.generateUniqueId(el); - el.id = anchor; - return anchor; - } - }, - - createNavList: function() { - return $(''); - }, - - createChildNavList: function($parent) { - var $childList = this.createNavList(); - $parent.append($childList); - return $childList; - }, - - generateNavEl: function(anchor, text) { - var $a = $(''); - $a.attr('href', '#' + anchor); - $a.text(text); - var $li = $('
  • '); - $li.append($a); - return $li; - }, - - generateNavItem: function(headingEl) { - var anchor = this.generateAnchor(headingEl); - var $heading = $(headingEl); - var text = $heading.data('toc-text') || $heading.text(); - return this.generateNavEl(anchor, text); - }, - - // Find the first heading level (`

    `, then `

    `, etc.) that has more than one element. Defaults to 1 (for `

    `). - getTopLevel: function($scope) { - for (var i = 1; i <= 6; i++) { - var $headings = this.findOrFilter($scope, 'h' + i); - if ($headings.length > 1) { - return i; - } - } - - return 1; - }, - - // returns the elements for the top level, and the next below it - getHeadings: function($scope, topLevel) { - var topSelector = 'h' + topLevel; - - var secondaryLevel = topLevel + 1; - var secondarySelector = 'h' + secondaryLevel; - - return this.findOrFilter($scope, topSelector + ',' + secondarySelector); - }, - - getNavLevel: function(el) { - return parseInt(el.tagName.charAt(1), 10); - }, - - populateNav: function($topContext, topLevel, $headings) { - var $context = $topContext; - var $prevNav; - - var helpers = this; - $headings.each(function(i, el) { - var $newNav = helpers.generateNavItem(el); - var navLevel = helpers.getNavLevel(el); - - // determine the proper $context - if (navLevel === topLevel) { - // use top level - $context = $topContext; - } else if ($prevNav && $context === $topContext) { - // create a new level of the tree and switch to it - $context = helpers.createChildNavList($prevNav); - } // else use the current $context - - $context.append($newNav); - - $prevNav = $newNav; - }); - }, - - parseOps: function(arg) { - var opts; - if (arg.jquery) { - opts = { - $nav: arg - }; - } else { - opts = arg; - } - opts.$scope = opts.$scope || $(document.body); - return opts; - } - }, - - // accepts a jQuery object, or an options object - init: function(opts) { - opts = this.helpers.parseOps(opts); - - // ensure that the data attribute is in place for styling - opts.$nav.attr('data-toggle', 'toc'); - - var $topContext = this.helpers.createChildNavList(opts.$nav); - var topLevel = this.helpers.getTopLevel(opts.$scope); - var $headings = this.helpers.getHeadings(opts.$scope, topLevel); - this.helpers.populateNav($topContext, topLevel, $headings); - } - }; - - $(function() { - $('nav[data-toggle="toc"]').each(function(i, el) { - var $nav = $(el); - Toc.init($nav); - }); - }); -})(); diff --git a/docs/docsearch.css b/docs/docsearch.css deleted file mode 100644 index e5f1fe1df..000000000 --- a/docs/docsearch.css +++ /dev/null @@ -1,148 +0,0 @@ -/* Docsearch -------------------------------------------------------------- */ -/* - Source: https://github.com/algolia/docsearch/ - License: MIT -*/ - -.algolia-autocomplete { - display: block; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1 -} - -.algolia-autocomplete .ds-dropdown-menu { - width: 100%; - min-width: none; - max-width: none; - padding: .75rem 0; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, .1); - box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175); -} - -@media (min-width:768px) { - .algolia-autocomplete .ds-dropdown-menu { - width: 175% - } -} - -.algolia-autocomplete .ds-dropdown-menu::before { - display: none -} - -.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-] { - padding: 0; - background-color: rgb(255,255,255); - border: 0; - max-height: 80vh; -} - -.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { - margin-top: 0 -} - -.algolia-autocomplete .algolia-docsearch-suggestion { - padding: 0; - overflow: visible -} - -.algolia-autocomplete .algolia-docsearch-suggestion--category-header { - padding: .125rem 1rem; - margin-top: 0; - font-size: 1.3em; - font-weight: 500; - color: #00008B; - border-bottom: 0 -} - -.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { - float: none; - padding-top: 0 -} - -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { - float: none; - width: auto; - padding: 0; - text-align: left -} - -.algolia-autocomplete .algolia-docsearch-suggestion--content { - float: none; - width: auto; - padding: 0 -} - -.algolia-autocomplete .algolia-docsearch-suggestion--content::before { - display: none -} - -.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header { - padding-top: .75rem; - margin-top: .75rem; - border-top: 1px solid rgba(0, 0, 0, .1) -} - -.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column { - display: block; - padding: .1rem 1rem; - margin-bottom: 0.1; - font-size: 1.0em; - font-weight: 400 - /* display: none */ -} - -.algolia-autocomplete .algolia-docsearch-suggestion--title { - display: block; - padding: .25rem 1rem; - margin-bottom: 0; - font-size: 0.9em; - font-weight: 400 -} - -.algolia-autocomplete .algolia-docsearch-suggestion--text { - padding: 0 1rem .5rem; - margin-top: -.25rem; - font-size: 0.8em; - font-weight: 400; - line-height: 1.25 -} - -.algolia-autocomplete .algolia-docsearch-footer { - width: 110px; - height: 20px; - z-index: 3; - margin-top: 10.66667px; - float: right; - font-size: 0; - line-height: 0; -} - -.algolia-autocomplete .algolia-docsearch-footer--logo { - background-image: url("data:image/svg+xml;utf8,"); - background-repeat: no-repeat; - background-position: 50%; - background-size: 100%; - overflow: hidden; - text-indent: -9000px; - width: 100%; - height: 100%; - display: block; - transform: translate(-8px); -} - -.algolia-autocomplete .algolia-docsearch-suggestion--highlight { - color: #FF8C00; - background: rgba(232, 189, 54, 0.1) -} - - -.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { - box-shadow: inset 0 -2px 0 0 rgba(105, 105, 105, .5) -} - -.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content { - background-color: rgba(192, 192, 192, .15) -} diff --git a/docs/docsearch.js b/docs/docsearch.js deleted file mode 100644 index b35504cd3..000000000 --- a/docs/docsearch.js +++ /dev/null @@ -1,85 +0,0 @@ -$(function() { - - // register a handler to move the focus to the search bar - // upon pressing shift + "/" (i.e. "?") - $(document).on('keydown', function(e) { - if (e.shiftKey && e.keyCode == 191) { - e.preventDefault(); - $("#search-input").focus(); - } - }); - - $(document).ready(function() { - // do keyword highlighting - /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ - var mark = function() { - - var referrer = document.URL ; - var paramKey = "q" ; - - if (referrer.indexOf("?") !== -1) { - var qs = referrer.substr(referrer.indexOf('?') + 1); - var qs_noanchor = qs.split('#')[0]; - var qsa = qs_noanchor.split('&'); - var keyword = ""; - - for (var i = 0; i < qsa.length; i++) { - var currentParam = qsa[i].split('='); - - if (currentParam.length !== 2) { - continue; - } - - if (currentParam[0] == paramKey) { - keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); - } - } - - if (keyword !== "") { - $(".contents").unmark({ - done: function() { - $(".contents").mark(keyword); - } - }); - } - } - }; - - mark(); - }); -}); - -/* Search term highlighting ------------------------------*/ - -function matchedWords(hit) { - var words = []; - - var hierarchy = hit._highlightResult.hierarchy; - // loop to fetch from lvl0, lvl1, etc. - for (var idx in hierarchy) { - words = words.concat(hierarchy[idx].matchedWords); - } - - var content = hit._highlightResult.content; - if (content) { - words = words.concat(content.matchedWords); - } - - // return unique words - var words_uniq = [...new Set(words)]; - return words_uniq; -} - -function updateHitURL(hit) { - - var words = matchedWords(hit); - var url = ""; - - if (hit.anchor) { - url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; - } else { - url = hit.url + '?q=' + escape(words.join(" ")); - } - - return url; -} diff --git a/docs/favicon-16x16.png b/docs/favicon-16x16.png deleted file mode 100644 index 618faa0f1f1f0c8c597053555f46924a9c95d553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>Sq2fV#Y{5W7-TnNSiP1(Hiu0-fv=7SX=yB}!yR&2&1tD%GqbnsjzX`l;%hO7fy1aws_ zhiCztct5k$8b+C^%u?m763OghksP979HK>R;y|YY!+a^D%tU6X3Ra2#|NncuZBhot zM?p!DA1H1?fZcoL(?7o-FZYz3^8Wjc-c4VRH@iqMv;E!WBjEM!fH)(Ml0#~%$%;58 zdAH*EM<4y0al2^Ez3li*4mD3J2Q9nB?v5()?%3`AZEtHB|{C4@moL4oZ_r?-cf=V^l` zmK0WQt|w1KMP@3Tl9Ze>g_|oRWM-tq)hnhZTep--lyGxZeEGu5)7#_gbM!3N8OaK6 zE*+hdHNCpE)Im^@EqFmeV6Ag< z@YKb^0S9ItWL>j$#fp1Z&&p~%IQZZt>yz1>mA`-d`YA5L!eVrSjg!5-rLEQ7#f>pm zL-X(f30Yxj@%aasFKJAlapc5-Q#0l~VlZ2-V5%$oM%wLW&zUtj59i$3Q)9-)#?ZOY zDeCim-MK*jtCqM%l%yn2I`Q&6e6=(&6r>mdKI;Vst07SWS2LJ#7 diff --git a/docs/favicon-32x32.png b/docs/favicon-32x32.png deleted file mode 100644 index 5502f645572d405f69cd78c844cf84870ec52afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1844 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081Jm&UpAc7|f=vukn;2wQ zGjMHYkloB6x1K?EBZF)Qi{wTIxy=kR#jFwxQcU5TqLCb;KxHEh1#^lnXOh{0;qfgD zvY{NJF&v^%9HKdF;xn0~H^9`aVw8ymi$g*T7@nnU;t{B!2UIYJNg5KEKtn26CE(hD zg20Ga#~|B)DhLnxoeXkYVRpdR&NM^H%PiK-YXO;N>|9{hsoezLX z`DjUyUoenH2CO;->u-Pl`|;X}bX8^+tJx3#{OUK9>3idEdF|MnKR1i;BtOpCcR)o#E2R6S$*f!l@1g~#%5?NMQuI!JwxEU;TCx6|u2$+Y>JY5_^EKVmUG%&cS)iF9MCJF`y z8WwVTYG$gjg&a^()>dC%Ai^cmI(16m6a&MRD^|(6GCq2BhC|dxM`~7-$E2=XR=cWx zt?}Xb%XWw((pfoKIM`TCE#eL>4U98V<|=;DTc@$>=FB^He81YvkXT}?_=zj7pi)gOUq0Uce}lu%1qo_wjRGA_ z7Yx)k#8kMXObIIS(NVb~QzP-{ks?>qOba2Q$&-SEE?=5>$i-#uL9s)V&Yw7Q>fFh* z)@@P?+&@clDfAp#^k~xK8q0E0ke5H^;X8-=RPiRaTxw3BMjK zJ)Pd?JVj=I(N`%aSJjY%7cXDWpJQ9hw(7~VwYND~+XAj_v@U;tx1J%e_}Lrh8C?=> zT01h2_t{x}{lR%-j>!@$o*}s;|2? zu9Tc*6(tdMyKhnRx4v_F8k={wA6zRQx^2CE{h=eClNavM^x^RdUapvOdHHv%a}y@c zvgCf&e$#<9uUKKu&Rd_;UY(7ucxlN_@QR?70Rk~`Yk-MLwZt`|BqgyV)hf9t6-Y4{85mmX8XD*t8ip7cSecqxnV4!D z7+Dz@%;@y=K+%w!pOTqYiCe?VD<8iAHH24%M3e+2mMat#<)>xlq$-qD7Nja<7L+72 zFjUNW{E3I7Fib<^l>g~7o=<}qn3cKplDUPIg}o<>FbgZVG?*MtVOHK8qHy}gl@mwK k9FaM~e!9V9ftMb`D{;Y+Pfn&&fmSehy85}Sb4q9e0MD(8iU0rr diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index b762ee50f0a8f152558eea2bf95ce5848ec8f604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 2f0377a4d..000000000 --- a/docs/index.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - -R Interface to CmdStan • cmdstanr - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    -
    - - - -
    -

    Overview -

    -

    CmdStanR is a lightweight interface to Stan for R users (see CmdStanPy for Python).

    -

    If you are new to CmdStanR we recommend starting with these vignettes:

    - -
    -
    -

    Goals -

    -
      -
    • A clean interface to Stan services so that CmdStanR can keep up with Stan releases.

    • -
    • R code that doesn’t interface directly with C++, only calls compiled executables.

    • -
    • Modularity: CmdStanR runs Stan’s algorithms and lets downstream modules do the analysis.

    • -
    • Flexible BSD-3 license.

    • -
    -
    -
    -

    Installation -

    -
    -

    Installing the R package -

    -

    You can install the latest beta release of the cmdstanr R package with

    -
    -# we recommend running this in a fresh R session or restarting your current session
    -install.packages("cmdstanr", repos = c('https://stan-dev.r-universe.dev', getOption("repos")))
    -

    This does not install the vignettes, which take a long time to build, but they are always available online at https://mc-stan.org/cmdstanr/articles/.

    -

    To instead install the latest development version of the package from GitHub use

    -
    -# install.packages("remotes")
    -remotes::install_github("stan-dev/cmdstanr")
    -
    -
    -

    Installing CmdStan -

    -

    If you don’t already have CmdStan installed then, in addition to installing the R package, it is also necessary to install CmdStan using CmdStanR’s install_cmdstan() function. A suitable C++ toolchain is also required. Instructions are provided in the Getting started with CmdStanR vignette.

    -
    -
    -
    -

    Contributing -

    -

    There is a lot of work still to be done and we welcome contributions from anyone! If you are interested in contributing please comment on an open issue or open a new one if none are applicable.

    -
    -
    -

    License -

    -

    CmdStanR, like CmdStan and the core Stan C++ code, is licensed under the following licenses:

    - -
    -
    -
    - - -
    - - -
    - -
    -

    -

    Site built with pkgdown 2.0.9.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/link.svg b/docs/link.svg deleted file mode 100644 index 88ad82769..000000000 --- a/docs/link.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - diff --git a/docs/logo.png b/docs/logo.png deleted file mode 100644 index ff4a3c2d2c6341b471617f3039dd3c01e7e9b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13211 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 UD?X8>dCCOPRMk^yR<@7*Ki~*R^Z)<= diff --git a/docs/news/index.html b/docs/news/index.html deleted file mode 100644 index 6fd3e6cd7..000000000 --- a/docs/news/index.html +++ /dev/null @@ -1,457 +0,0 @@ - -Changelog • cmdstanr - - -
    -
    - - - -
    -
    - - -
    - -
    -

    General Improvements/Changes

    -
    • Added compatibility for RTools45 (#1066)
    • -
    • cmdstanr will now use RTools with no additional toolchain updates needed on Windows (CmdStan 2.35+ only; #1065, #1054)
    • -
    • Improve error messages when calling sampler_diagnostics() with fixed_param=TRUE -
    • -
    • Improve numerical stability in calculation of effective sample size during loo method (#1057)
    • -
    • Improve numerical stablity with very small log-ratios in calculation of effective sample size during loo method (#1015)
    • -
    • Add warning if input data/inits have been coerced to ints (#994)
    • -
    -
    -

    Bugfixes

    -
    • Don’t require fixed_param for models with zero parameters (only GQs) for CmdStan >= 2.36 (#1046)
    • -
    • Improve detection/handling of make (#1036)
    • -
    • Fix saving of model objects to network drive (#1038, thanks to @bschneidr)
    • -
    • Update usage of untar to fix installation errors (#1034)
    • -
    • Respect compilation flags in make/local when exposing functions or model methods (#1003)
    • -
    • Fix passing of include paths to CmdStan (#1000)
    • -
    • Fix passing of factor data to CmdStan (#999)
    • -
    • Fix extraction and passing of array data/parameters as model inits (#993)
    • -
    -
    -

    Documentation Updates

    -
    • Clarifications to usage of optimize and loo methods (#1060)
    • -
    • Add documentation for faster model saving with large models (#1042)
    • -
    • Remove mentions of rstan::read_stan_csv due to incompatibility with newer CmdStan outputs (#1018)
    • -
    • Document global option cmdstanr_print_line_numbers for printing line numbers (#1017)
    • -
    • Change usage of ‘chapter’ to ‘section’ in documentation (#1014)
    • -
    • Remove examples of updating removed array syntax as functionality no longer supported in CmdStan (#1008)
    • -
    • Change usages of ‘sampling statement’ -> ‘distribution statement’ (#987)
    • -
    -
    -
    - -
    -

    Minor changes

    -
    • Added CMDSTANR_USE_RTOOLS environment variable to force stock RTools on Windows by @andrjohns in #980
    • -
    • Added support for Windows ARM64 by @andrjohns in #990
    • -
    • Automatically initialise model methods when called, add inc_warmup argument to $unconstrain_draws() by @andrjohns in #985
    • -
    -
    -

    Bugfixes

    -
    • Fix errors when using pathfinder object as initial values by @avehtari in #984
    • -
    • Fix error with $unconstrain_draws() returning incorrect assumptions in some cases by @andrjohns in #983
    • -
    • Fix spurious errors about missing CmdStan config files by @andrjohns in #981
    • -
    • Fix linking error when exposing SUNDIALS/KINSOL functions or model methods by @andrjohns in #977
    • -
    • Fix long-standing error with OneDrive paths on Windows by @andrjohns in #990
    • -
    -
    -
    - -
    -

    Major new features

    -
    • Add functionality for passing CmdStanFit objects as initial values by @SteveBronder in #937
    • -
    -
    -

    Other improvements

    -
    • Add compatibility with CmdStan 2.35 by @andrjohns in #972
    • -
    • Add show_messages and show_exceptions arguments to all methods for controlling output by @andrjohns in #897
    • -
    • Drop RcppEigen dependency, implement basic Eigen -> C++ interop by @andrjohns in #899
    • -
    • Add compatibility with CmdStan 2.34 by @andrjohns in #905 #910
    • -
    • Add a format argument to the unconstrain_draws() method to specify draws format of return by @andrjohns in #886
    • -
    • Align cmdstanr EBFMI diagnostic threshold with CmdStan by @andrjohns in #892
    • -
    • Add global option cmdstanr_print_line_numbers to add line number to model printing by @sbfnk in #967
    • -
    • Add new CmdStan arguments save_metric and save_cmdstan_config by @venpopov in #932
    • -
    • Add documentation for CmdStanR global options by @jgabry in #951
    • -
    • Add documentation for how to obtain structured output similar to rstan::extract() using a combination of cmdstanr and posterior by @jgabry in #955
    • -
    • Added coercion generics for CmdStanFit objects by @gowerc in #943
    • -
    • -psis_resample and calculate_lp arguments added to Pathfinder method by @SteveBronder in #903
    • -
    • Documentation and tests for LOO method updated by @jgabry in #923
    • -
    • Global option cmdstanr_warn_inits added to disable warnings about partially specified initial values by @jgabry in #913
    • -
    • Updates to MCMC output_dir documentation by @jgabry in #929
    • -
    -
    -

    Bugfixes

    -
    • Fix broken link in OpenCL documentation by @eipi10 in #908
    • -
    • Fix a minor typo in the README by @jgabry in #911
    • -
    • Make exported RNG functions respect changes to R’s seed by @andrjohns in #973
    • -
    • Optimisations for model methods functions by @andrjohns in #960
    • -
    • Bugfix for passing function for initial values with Pathfinder method and default num_paths by @andrjohns in #964
    • -
    • Continue with compilation if compile_stanalone=TRUE but no functions are found by @jgabry in #956
    • -
    • Update tests and CI for compatibility with MacOS ARM64 by @andrjohns in #958
    • -
    • Fix handling of inv_metric argument with only 1 parameter by @venpopov in #935
    • -
    • Fixes for compatibility with RTools44 by @andrjohns in #952 #959
    • -
    -
    -
    - -
    -

    Major new features

    -
    -
    -

    Other improvements and bug fixes

    -
    • Add missing link to diagnose method in CmdStanModel doc by @jgabry in #833
    • -
    • Improvements to compile tests by @martinmodrak in #836
    • -
    • Changed the delay behavior in wsl_installed by @martinmodrak in #839
    • -
    • Update array syntax in website vignette by @andrjohns in #841
    • -
    • Compatibility fixes for cmdstan 2.33+ by @jgabry in #843
    • -
    • Suggest format method after error due to old syntax by @jgabry in #852
    • -
    • Clarifications in R-markdown vignette by @jgcolman in #854
    • -
    • Update linux/wsl detection for install arch by @andrjohns in #856
    • -
    • Fix handling of single-length inits for containers by @andrjohns in #857
    • -
    • Add support/tests for exposing functions with tuples by @andrjohns in #860
    • -
    • Add support/tests for exporting functions with complex types by @andrjohns in #861
    • -
    • Add option for installing from release archive by @andrjohns in #866
    • -
    • Improve Pathfinder doc by @avehtari in #875
    • -
    • Rename jacobian_adjustment argument to jacobian by @jgabry in #879
    • -
    • Fix get_cmdstan_flags(‘STANCFLAGS’) in recursive make by @pearsonca in #881
    • -
    -
    -
    - -
    • Store return codes instead of always querying exit status by @jgabry in #798
    • -
    • enable jacobian argument for optimization by @jgabry in #799
    • -
    • Fix init_model_methods for models with no data by @andrjohns in #801
    • -
    • Document a CmdStan-focused way to pre-compile Stan models in R packages by @wlandau in #809
    • -
    • Describe how to efficiently save model fit objects by @wlandau in #816
    • -
    • fix errors in doc for new methods by @jgabry in #823
    • -
    • Give informative error when exposing stan functions with precompiled model by @andrjohns in #831
    • -
    • Bugfixes in .stanfunctions, hessian model method, and exposing RNG functions by @andrjohns in #811
    • -
    • Fix variable_skeleton() with containers by @andrjohns in #832
    • -
    • Improve handling of user header by @martinmodrak in #818
    • -
    • change duplicate stdout_file to stderr_file by @jgabry in #834
    • -
    -
    - -
    -

    Major new features

    -
    -
    -

    Other changes

    -
    -
    -
    - -
    -

    New features

    -
    • On Windows, users can now install and use CmdStan with WSL (Windows Subsystem for Linux). Set wsl=TRUE in install_cmdstan() to install CmdStan for use with WSL. This can offer significant speedups compared to native Windows execution. (#677, @andrjohns)
    • -
    -
    -

    Bug fixes

    -
    • In cmdstan_default_path() we now ignore directories inside .cmdstan that don’t start with "cmdstan-". (#651)

    • -
    • Fixed Windows issue related to not locating grep.exe or when it is located in a path with spaces. (@weshinsley, #661, #663)

    • -
    • Fixed a bug with diagnostic checks when ebfmi is NaN.

    • -
    • Fixed a bug that caused issues when using ~ or . in paths supplied to the cmdstanr_write_stan_file_dir global option.

    • -
    • Fixed a bug that caused the time() method fail when some of the chains failed to finish succesfully.

    • -
    -
    -
    - -
    • Refactored toolchain installation and checks for R 4.x on Windows and added support for Rtools42. (#645)

    • -
    • Expanded the use of CMDSTAN environment variable to point to CmdStan installation or directory containing CmdStan installations. (#643)

    • -
    • New vignette on how to handle deprecations using the $format() method. (#644)

    • -
    -
    - -
    • Temporarily disable format="draws_rvars" in the $draws() method due to a bug. Until this is fixed users can make use of posterior::as_draws_rvars() to convert draws from CmdStanR to the draws_rvars format. (#640)
    • -
    -
    - -
    -

    Bug fixes

    -
    • Fixed bug that caused stdour/stderr not being read at the end of optimization. (#522)

    • -
    • Fixed issue with handling NA as the reported external process status. (#544, @myshkin)

    • -
    • Fixed issue with handling models with no parameters and CmdStan 2.27+.

    • -
    -
    -

    New features

    -
    • Default directory changed to .cmdstan instead of .cmdstanr so that CmdStanPy and CmdStanR can use the same CmdStan installations. Using .cmdstanr will continue to be supported until version 1.0 but install_cmdstan() will now default to .cmdstan and CmdStanR will first look for .cmdstan before falling back on .cmdstanr. (#454)

    • -
    • New method diagnose() for CmdstanModel objects exposes CmdStan’s diagnose method for comparing Stan’s gradient computations to gradients computed via finite differences. (#485)

    • -
    • New method $variables() for CmdstanModel objects that returns a list of variables in the Stan model, their types and number of dimensions. Does not require the model to be compiled. (#519)

    • -
    • New method $format() for auto-formatting and canonicalizing the Stan models. (#625)

    • -
    • Added the option to create CmdStanModel from the executable only with the exe_file argument. (#564)

    • -
    • Added a convenience argument user_header to $compile() and cmdstan_model() that simplifies the use of an external .hpp file to compile with the model.

    • -
    • Added the cmdstanr_force_recompile global option that is used for forcing recompilation of Stan models. (#580)

    • -
    • New method $code() for all fitted model objects that returns the Stan code associated with the fitted model. (#575)

    • -
    • New method $diagnostic_summary() for CmdStanMCMC objects that summarizes the sampler diagnostics (divergences, treedepth, ebfmi) and can regenerate the related warning messages. (#205)

    • -
    • New diagnostics argument for the $sample() method to specify which diagnostics are checked after sampling. Replaces validate_csv argument. (#205)

    • -
    • Added E-BFMI checks that run automatically post sampling. (#500, @jsocolar)

    • -
    • New methods for posterior::as_draws() for CmdStanR fitted model objects. These are just wrappers around the $draws() method provided for convenience. (#532)

    • -
    • write_stan_file() now choose file names deterministically based on the code so that models do not get unnecessarily recompiled when calling the function multiple times with the same code. (#495, @martinmodrak)

    • -
    • The dir argument for write_stan_file() can now be set with a global option. (#537)

    • -
    • write_stan_json() now handles data of class "table". Tables are converted to vector, matrix, or array depending on the dimensions of the table. (#528)

    • -
    • Improved processing of named lists supplied to the data argument to JSON data files: checking whether the list includes all required elements/Stan variables; improved differentiating arrays/vectors of length 1 and scalars when generating JSON data files; generating floating point numbers with decimal points to fix issue with parsing large numbers. (#538)

    • -
    • install_cmdstan() now automatically installs the Linux ARM CmdStan when Linux distributions running on ARM CPUs are detected. (#531)

    • -
    • New function as_mcmc.list() for converting CmdStanMCMC objects to mcmc.list objects from the coda package. (#584, @MatsuuraKentaro)

    • -
    -
    -
    - -
    -

    Bug fixes

    -
    • Fixed issue with retrieving draws with models with spaces in their names. (#453)

    • -
    • Fixed bug with spaces in path to the temporary folder on Windows. (#460)

    • -
    • Fixed issue with not reporting model executable name clashing with folder name. (#461)

    • -
    -
    -

    New features

    -
    • New function as_cmdstan_fit() that creates CmdStanMCMC/MLE/VB objects directly from CmdStan CSV files. (#412)

    • -
    • read_cmdstan_csv() now also returns chain run times for MCMC sampling CSV files. (#414)

    • -
    • Faster CSV reading for multiple chains. (#419)

    • -
    • New $profiles() method for fitted model objects accesses profiling information from R if profiling used in the Stan program. Support for profiling Stan programs requires CmdStan >= 2.26. (#434)

    • -
    • New vignette on profiling Stan programs. (#435)

    • -
    • New vignette on running Stan on the GPU with OpenCL. OpenCL device ids can now also be specified at runtime. (#439)

    • -
    • New check for invalid parameter names when supplying init values. (#452, @mike-lawrence)

    • -
    • Suppressing compilation messages when not in interactive mode. (#462, @wlandau)

    • -
    • New error_on_NA argument for cmdstan_version() to optionally return NULL (instead of erroring) if the CmdStan path is not found (#467, @wlandau).

    • -
    • Global option cmdstanr_max_rows can be set as an alternative to specifying max_rows argument to the $print() method. (#470)

    • -
    • New output_basename argument for the model fitting methods. Can be used in conjunction with output_dir to get completely predictable output CSV file paths. (#471)

    • -
    • New format argument for $draws(), $sampler_diagnostics(), read_cmdstan_csv(), and as_cmdstan_fit(). This controls the format of the draws returned or stored in the object. Changing the format can improve speed and memory usage for large models. (#482)

    • -
    -
    -
    - -
    -

    Bug fixes

    -
    • Fixed reading inverse mass matrix with values written in scientific format in the CSV. (#394)

    • -
    • Fixed error caused by an empty data list. Previously if a model didn’t require data then data had to either be NULL or be a non-empty list, but now list() is allowed. (#403)

    • -
    -
    -

    New features

    -
    • Added $sample_mpi() for MCMC sampling with MPI. (#350)

    • -
    • Added informative messages on compile errors caused by precompiled headers (PCH). (#384)

    • -
    • Added the cmdstanr_verbose option for verbose mode. Intended for troubleshooting, debugging and development. See end of How does CmdStanR work? vignette for details. (#392)

    • -
    • New $loo() method for CmdStanMCMC objects. Requires computing pointwise log-likelihood in Stan program. (#366)

    • -
    • The fitted_params argument to the $generate_quantities() method now also accepts CmdStanVB, posterior::draws_array, and posterior::draws_matrix objects. (#390)

    • -
    • The $optimize() method now supports all of CmdStan’s tolerance-related arguments for (L)BFGS. (#398)

    • -
    • The documentation for the R6 methods now uses @param, which allows package developers to import the CmdStanR documentation using roxygen2’s @inheritParams. (#408)

    • -
    -
    -
    - -
    -

    Bug fixes

    -
    • Fixed bug with reading Stan CSV when grep used coloring by default (#364,#371)

    • -
    • Depend on posterior v0.1.3 to avoid a potential error in $summary(). (#383)

    • -
    -
    -

    New features

    -
    • Added support for native execution on the macOS with the M1 ARM-based CPU. (#375)

    • -
    • Added threading support via threads argument for $optimize() and $variational() (was already available via threads_per_chain for $sample()). (#369)

    • -
    -
    -
    - -
    -

    Bug fixes

    -
    -
    -

    New features

    -
    • -compile() and check_syntax() methods gain argument pedantic for turning on pedantic mode, which warns about issues with the model beyond syntax errors. (#361)
    • -
    -
    -
    - -
    -

    Bug fixes

    -
    • Fix potential indexing error if using read_cmdstan_csv() with CSV files created by CmdStan without CmdStanR. (#291, #292, @johnlees)

    • -
    • Fix error when returning draws or sampler diagnostics for a fit with only warmup and no samples. (#288, #293)

    • -
    • Fix trailing slashes issue for dir in cmdstan_model() and output_dir in fitting methods. (#281, #294)

    • -
    • Fix dimensions error when processing a list of matrices passed in as data. (#296, #302)

    • -
    • Fix reporting of time after using fixed_param method. (#303, #307)

    • -
    • With refresh = 0, no output other than error messages is printed with $optimize() and $variational(). (#324)

    • -
    • Fix issue where names of generated files could clash. (#326, #328)

    • -
    • Fix missing include_paths in $syntax_check(). (#335, @mike-lawrence)

    • -
    -
    -

    New features

    -
    • CSV reading is now faster by using data.table::fread(). (#318)

    • -
    • install_cmdstan() gains argument version for specifying which version of CmdStan to install. (#300, #308)

    • -
    • New function check_cmdstan_toolchain() that checks if the appropriate toolchains are available. (#289)

    • -
    • $sample() method for CmdStanModel objects gains argument chain_ids for specifying custom chain IDs. (#319)

    • -
    • Added support for the sig_figs argument in CmdStan versions 2.25 and above. (#327)

    • -
    • Added checks if the user has the necessary permissions in the RTools and temporary folders. (#343)

    • -
    -
    -
    - -
    • New $check_syntax() method for CmdStanModel objects. (#276, #277)
    • -
    -
    - -
    • User is notified by message at load time if a new release of CmdStan is available. (#265, #273)

    • -
    • write_stan_file() replaces write_stan_tempfile(), which is now deprecated. With the addition of the dir argument, the file written is not necessarily temporary. (#267, #272)

    • -
    -
    - -
    -
    - -
    • Beta release
    • -
    -
    - - - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/pkgdown.css b/docs/pkgdown.css deleted file mode 100644 index 80ea5b838..000000000 --- a/docs/pkgdown.css +++ /dev/null @@ -1,384 +0,0 @@ -/* Sticky footer */ - -/** - * Basic idea: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ - * Details: https://github.com/philipwalton/solved-by-flexbox/blob/master/assets/css/components/site.css - * - * .Site -> body > .container - * .Site-content -> body > .container .row - * .footer -> footer - * - * Key idea seems to be to ensure that .container and __all its parents__ - * have height set to 100% - * - */ - -html, body { - height: 100%; -} - -body { - position: relative; -} - -body > .container { - display: flex; - height: 100%; - flex-direction: column; -} - -body > .container .row { - flex: 1 0 auto; -} - -footer { - margin-top: 45px; - padding: 35px 0 36px; - border-top: 1px solid #e5e5e5; - color: #666; - display: flex; - flex-shrink: 0; -} -footer p { - margin-bottom: 0; -} -footer div { - flex: 1; -} -footer .pkgdown { - text-align: right; -} -footer p { - margin-bottom: 0; -} - -img.icon { - float: right; -} - -/* Ensure in-page images don't run outside their container */ -.contents img { - max-width: 100%; - height: auto; -} - -/* Fix bug in bootstrap (only seen in firefox) */ -summary { - display: list-item; -} - -/* Typographic tweaking ---------------------------------*/ - -.contents .page-header { - margin-top: calc(-60px + 1em); -} - -dd { - margin-left: 3em; -} - -/* Section anchors ---------------------------------*/ - -a.anchor { - display: none; - margin-left: 5px; - width: 20px; - height: 20px; - - background-image: url(./link.svg); - background-repeat: no-repeat; - background-size: 20px 20px; - background-position: center center; -} - -h1:hover .anchor, -h2:hover .anchor, -h3:hover .anchor, -h4:hover .anchor, -h5:hover .anchor, -h6:hover .anchor { - display: inline-block; -} - -/* Fixes for fixed navbar --------------------------*/ - -.contents h1, .contents h2, .contents h3, .contents h4 { - padding-top: 60px; - margin-top: -40px; -} - -/* Navbar submenu --------------------------*/ - -.dropdown-submenu { - position: relative; -} - -.dropdown-submenu>.dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - border-radius: 0 6px 6px 6px; -} - -.dropdown-submenu:hover>.dropdown-menu { - display: block; -} - -.dropdown-submenu>a:after { - display: block; - content: " "; - float: right; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-width: 5px 0 5px 5px; - border-left-color: #cccccc; - margin-top: 5px; - margin-right: -10px; -} - -.dropdown-submenu:hover>a:after { - border-left-color: #ffffff; -} - -.dropdown-submenu.pull-left { - float: none; -} - -.dropdown-submenu.pull-left>.dropdown-menu { - left: -100%; - margin-left: 10px; - border-radius: 6px 0 6px 6px; -} - -/* Sidebar --------------------------*/ - -#pkgdown-sidebar { - margin-top: 30px; - position: -webkit-sticky; - position: sticky; - top: 70px; -} - -#pkgdown-sidebar h2 { - font-size: 1.5em; - margin-top: 1em; -} - -#pkgdown-sidebar h2:first-child { - margin-top: 0; -} - -#pkgdown-sidebar .list-unstyled li { - margin-bottom: 0.5em; -} - -/* bootstrap-toc tweaks ------------------------------------------------------*/ - -/* All levels of nav */ - -nav[data-toggle='toc'] .nav > li > a { - padding: 4px 20px 4px 6px; - font-size: 1.5rem; - font-weight: 400; - color: inherit; -} - -nav[data-toggle='toc'] .nav > li > a:hover, -nav[data-toggle='toc'] .nav > li > a:focus { - padding-left: 5px; - color: inherit; - border-left: 1px solid #878787; -} - -nav[data-toggle='toc'] .nav > .active > a, -nav[data-toggle='toc'] .nav > .active:hover > a, -nav[data-toggle='toc'] .nav > .active:focus > a { - padding-left: 5px; - font-size: 1.5rem; - font-weight: 400; - color: inherit; - border-left: 2px solid #878787; -} - -/* Nav: second level (shown on .active) */ - -nav[data-toggle='toc'] .nav .nav { - display: none; /* Hide by default, but at >768px, show it */ - padding-bottom: 10px; -} - -nav[data-toggle='toc'] .nav .nav > li > a { - padding-left: 16px; - font-size: 1.35rem; -} - -nav[data-toggle='toc'] .nav .nav > li > a:hover, -nav[data-toggle='toc'] .nav .nav > li > a:focus { - padding-left: 15px; -} - -nav[data-toggle='toc'] .nav .nav > .active > a, -nav[data-toggle='toc'] .nav .nav > .active:hover > a, -nav[data-toggle='toc'] .nav .nav > .active:focus > a { - padding-left: 15px; - font-weight: 500; - font-size: 1.35rem; -} - -/* orcid ------------------------------------------------------------------- */ - -.orcid { - font-size: 16px; - color: #A6CE39; - /* margins are required by official ORCID trademark and display guidelines */ - margin-left:4px; - margin-right:4px; - vertical-align: middle; -} - -/* Reference index & topics ----------------------------------------------- */ - -.ref-index th {font-weight: normal;} - -.ref-index td {vertical-align: top; min-width: 100px} -.ref-index .icon {width: 40px;} -.ref-index .alias {width: 40%;} -.ref-index-icons .alias {width: calc(40% - 40px);} -.ref-index .title {width: 60%;} - -.ref-arguments th {text-align: right; padding-right: 10px;} -.ref-arguments th, .ref-arguments td {vertical-align: top; min-width: 100px} -.ref-arguments .name {width: 20%;} -.ref-arguments .desc {width: 80%;} - -/* Nice scrolling for wide elements --------------------------------------- */ - -table { - display: block; - overflow: auto; -} - -/* Syntax highlighting ---------------------------------------------------- */ - -pre, code, pre code { - background-color: #f8f8f8; - color: #333; -} -pre, pre code { - white-space: pre-wrap; - word-break: break-all; - overflow-wrap: break-word; -} - -pre { - border: 1px solid #eee; -} - -pre .img, pre .r-plt { - margin: 5px 0; -} - -pre .img img, pre .r-plt img { - background-color: #fff; -} - -code a, pre a { - color: #375f84; -} - -a.sourceLine:hover { - text-decoration: none; -} - -.fl {color: #1514b5;} -.fu {color: #000000;} /* function */ -.ch,.st {color: #036a07;} /* string */ -.kw {color: #264D66;} /* keyword */ -.co {color: #888888;} /* comment */ - -.error {font-weight: bolder;} -.warning {font-weight: bolder;} - -/* Clipboard --------------------------*/ - -.hasCopyButton { - position: relative; -} - -.btn-copy-ex { - position: absolute; - right: 0; - top: 0; - visibility: hidden; -} - -.hasCopyButton:hover button.btn-copy-ex { - visibility: visible; -} - -/* headroom.js ------------------------ */ - -.headroom { - will-change: transform; - transition: transform 200ms linear; -} -.headroom--pinned { - transform: translateY(0%); -} -.headroom--unpinned { - transform: translateY(-100%); -} - -/* mark.js ----------------------------*/ - -mark { - background-color: rgba(255, 255, 51, 0.5); - border-bottom: 2px solid rgba(255, 153, 51, 0.3); - padding: 1px; -} - -/* vertical spacing after htmlwidgets */ -.html-widget { - margin-bottom: 10px; -} - -/* fontawesome ------------------------ */ - -.fab { - font-family: "Font Awesome 5 Brands" !important; -} - -/* don't display links in code chunks when printing */ -/* source: https://stackoverflow.com/a/10781533 */ -@media print { - code a:link:after, code a:visited:after { - content: ""; - } -} - -/* Section anchors --------------------------------- - Added in pandoc 2.11: https://github.com/jgm/pandoc-templates/commit/9904bf71 -*/ - -div.csl-bib-body { } -div.csl-entry { - clear: both; -} -.hanging-indent div.csl-entry { - margin-left:2em; - text-indent:-2em; -} -div.csl-left-margin { - min-width:2em; - float:left; -} -div.csl-right-inline { - margin-left:2em; - padding-left:1em; -} -div.csl-indent { - margin-left: 2em; -} diff --git a/docs/pkgdown.js b/docs/pkgdown.js deleted file mode 100644 index 6f0eee40b..000000000 --- a/docs/pkgdown.js +++ /dev/null @@ -1,108 +0,0 @@ -/* http://gregfranko.com/blog/jquery-best-practices/ */ -(function($) { - $(function() { - - $('.navbar-fixed-top').headroom(); - - $('body').css('padding-top', $('.navbar').height() + 10); - $(window).resize(function(){ - $('body').css('padding-top', $('.navbar').height() + 10); - }); - - $('[data-toggle="tooltip"]').tooltip(); - - var cur_path = paths(location.pathname); - var links = $("#navbar ul li a"); - var max_length = -1; - var pos = -1; - for (var i = 0; i < links.length; i++) { - if (links[i].getAttribute("href") === "#") - continue; - // Ignore external links - if (links[i].host !== location.host) - continue; - - var nav_path = paths(links[i].pathname); - - var length = prefix_length(nav_path, cur_path); - if (length > max_length) { - max_length = length; - pos = i; - } - } - - // Add class to parent
  • , and enclosing
  • if in dropdown - if (pos >= 0) { - var menu_anchor = $(links[pos]); - menu_anchor.parent().addClass("active"); - menu_anchor.closest("li.dropdown").addClass("active"); - } - }); - - function paths(pathname) { - var pieces = pathname.split("/"); - pieces.shift(); // always starts with / - - var end = pieces[pieces.length - 1]; - if (end === "index.html" || end === "") - pieces.pop(); - return(pieces); - } - - // Returns -1 if not found - function prefix_length(needle, haystack) { - if (needle.length > haystack.length) - return(-1); - - // Special case for length-0 haystack, since for loop won't run - if (haystack.length === 0) { - return(needle.length === 0 ? 0 : -1); - } - - for (var i = 0; i < haystack.length; i++) { - if (needle[i] != haystack[i]) - return(i); - } - - return(haystack.length); - } - - /* Clipboard --------------------------*/ - - function changeTooltipMessage(element, msg) { - var tooltipOriginalTitle=element.getAttribute('data-original-title'); - element.setAttribute('data-original-title', msg); - $(element).tooltip('show'); - element.setAttribute('data-original-title', tooltipOriginalTitle); - } - - if(ClipboardJS.isSupported()) { - $(document).ready(function() { - var copyButton = ""; - - $("div.sourceCode").addClass("hasCopyButton"); - - // Insert copy buttons: - $(copyButton).prependTo(".hasCopyButton"); - - // Initialize tooltips: - $('.btn-copy-ex').tooltip({container: 'body'}); - - // Initialize clipboard: - var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', { - text: function(trigger) { - return trigger.parentNode.textContent.replace(/\n#>[^\n]*/g, ""); - } - }); - - clipboardBtnCopies.on('success', function(e) { - changeTooltipMessage(e.trigger, 'Copied!'); - e.clearSelection(); - }); - - clipboardBtnCopies.on('error', function() { - changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); - }); - }); - } -})(window.jQuery || window.$) diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml deleted file mode 100644 index 2d0ef80ca..000000000 --- a/docs/pkgdown.yml +++ /dev/null @@ -1,15 +0,0 @@ -pandoc: '3.2' -pkgdown: 2.0.9 -pkgdown_sha: ~ -articles: - cmdstanr-internals: cmdstanr-internals.html - cmdstanr: cmdstanr.html - opencl: articles-online-only/opencl.html - posterior: posterior.html - profiling: profiling.html - r-markdown: r-markdown.html -last_built: 2025-03-31T14:41Z -urls: - reference: https://mc-stan.org/cmdstanr/reference - article: https://mc-stan.org/cmdstanr/articles - diff --git a/docs/pull_request_template.html b/docs/pull_request_template.html deleted file mode 100644 index dabe9968f..000000000 --- a/docs/pull_request_template.html +++ /dev/null @@ -1,151 +0,0 @@ - -NA • cmdstanr - - -
    -
    - - - -
    -
    - - - -
    -

    Submission Checklist

    -
    • -Run unit tests
    • -
    • -Declare copyright holder and agree to license (see below)
    • -
    -
    -

    Summary

    -

    Please describe the purpose of the pull request.

    -
    -
    - -

    Please list the copyright holder for the work you are submitting (this will be you or your assignee, such as a university or company): INSERT COPYRIGHT HOLDER HERE

    -

    By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

    -
    - - -
    - - - -
    - - - -
    - -
    -

    Site built with pkgdown 2.0.7.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanDiagnose.html b/docs/reference/CmdStanDiagnose.html deleted file mode 100644 index 2efca167b..000000000 --- a/docs/reference/CmdStanDiagnose.html +++ /dev/null @@ -1,172 +0,0 @@ - -CmdStanDiagnose objects — CmdStanDiagnose • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanDiagnose object is the object returned by the -$diagnose() method of a CmdStanModel object.

    -
    - - -
    -

    Methods

    -

    CmdStanDiagnose objects have the following associated -methods:

    MethodDescription
    $gradients()Return gradients from diagnostic mode.
    $lp()Return the total log probability density (target).
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanGQ, -CmdStanLaplace, -CmdStanMCMC, -CmdStanMLE, -CmdStanPathfinder, -CmdStanVB

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -test <- cmdstanr_example("logistic", method = "diagnose")
    -
    -# retrieve the gradients
    -test$gradients()
    -#>   param_idx     value    model finite_diff       error
    -#> 1         0  1.025820 -9.58652    -9.58652 1.06300e-08
    -#> 2         1 -1.330520  7.42547     7.42547 3.40819e-08
    -#> 3         2 -1.187440 13.23460    13.23460 7.67016e-09
    -#> 4         3  0.699258  3.50023     3.50023 6.99257e-09
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanFit-method-save_output_files.html b/docs/reference/CmdStanFit-method-save_output_files.html deleted file mode 100644 index 42bc6740b..000000000 --- a/docs/reference/CmdStanFit-method-save_output_files.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - -Save output and data files — CmdStanFit-method-save_output_files • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    All fitted model objects have methods save_output_files() and -save_data_file(). These methods move csv output files and R dump or json -data files from the CmdStanR temporary directory to a user-specified -location. By default the suffix '-<run_id>_<timestamp>' is added to the -file name(s), where run_id is the chain number if applicable (MCMC only) -and 1 otherwise. If files with the specified names already exist they are -overwritten, but this shouldn't occur unless the timestamp argument has -been intentionally set to FALSE.

    -
    - - - -

    Usage

    - - -
    $save_output_files(dir = ".", basename = NULL, timestamp = TRUE)
    -$save_data_file(dir = ".", basename = NULL, timestamp = TRUE)
    -
    - -

    Arguments

    - -

    save_output_files() and save_data_file() have the -same arguments:

      -
    • dir: (string) Path to directory where the files should be saved.

    • -
    • basename: (string) Base filename to use.

    • -
    • timestamp: (logical) Should a timestamp be added to the file name(s)? -Defaults to TRUE. The timestamp is preceeded by an underscore is of -the form

    • -
    - -

    Value

    - -

    The paths to the new files or NA for any that couldn't be -copied.

    -

    See also

    - - - -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/CmdStanGQ.html b/docs/reference/CmdStanGQ.html deleted file mode 100644 index 4eb00470b..000000000 --- a/docs/reference/CmdStanGQ.html +++ /dev/null @@ -1,269 +0,0 @@ - -CmdStanGQ objects — CmdStanGQ • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanGQ object is the fitted model object returned by the -$generate_quantities() method of a -CmdStanModel object.

    -
    - - -
    -

    Methods

    -

    CmdStanGQ objects have the following associated methods, -all of which have their own (linked) documentation pages.

    -

    Extract contents of generated quantities object

    -
    MethodDescription
    $draws()Return the generated quantities as a draws_array.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences

    -
    MethodDescription
    $summary()Run posterior::summarise_draws().
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $time()Report the total run time.
    $output()Return the stdout and stderr of all chains or pretty print the output for a single chain.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanLaplace, -CmdStanMCMC, -CmdStanMLE, -CmdStanPathfinder, -CmdStanVB

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -# first fit a model using MCMC
    -mcmc_program <- write_stan_file(
    -  "data {
    -    int<lower=0> N;
    -    array[N] int<lower=0,upper=1> y;
    -  }
    -  parameters {
    -    real<lower=0,upper=1> theta;
    -  }
    -  model {
    -    y ~ bernoulli(theta);
    -  }"
    -)
    -mod_mcmc <- cmdstan_model(mcmc_program)
    -
    -data <- list(N = 10, y = c(1,1,0,0,0,1,0,1,0,0))
    -fit_mcmc <- mod_mcmc$sample(data = data, seed = 123, refresh = 0)
    -#> Running MCMC with 4 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.7 seconds.
    -#> 
    -
    -# stan program for standalone generated quantities
    -# (could keep model block, but not necessary so removing it)
    -gq_program <- write_stan_file(
    -  "data {
    -    int<lower=0> N;
    -    array[N] int<lower=0,upper=1> y;
    -  }
    -  parameters {
    -    real<lower=0,upper=1> theta;
    -  }
    -  generated quantities {
    -    array[N] int y_rep = bernoulli_rng(rep_vector(theta, N));
    -  }"
    -)
    -
    -mod_gq <- cmdstan_model(gq_program)
    -fit_gq <- mod_gq$generate_quantities(fit_mcmc, data = data, seed = 123)
    -#> Running standalone generated quantities after 4 MCMC chains, 1 chain at a time ...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.5 seconds.
    -str(fit_gq$draws())
    -#>  'draws_array' int [1:1000, 1:4, 1:10] 0 0 0 1 1 0 1 1 0 1 ...
    -#>  - attr(*, "dimnames")=List of 3
    -#>   ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   ..$ variable : chr [1:10] "y_rep[1]" "y_rep[2]" "y_rep[3]" "y_rep[4]" ...
    -
    -library(posterior)
    -#> This is posterior version 1.6.1
    -#> 
    -#> Attaching package: ‘posterior’
    -#> The following objects are masked from ‘package:stats’:
    -#> 
    -#>     mad, sd, var
    -#> The following objects are masked from ‘package:base’:
    -#> 
    -#>     %in%, match
    -as_draws_df(fit_gq$draws())
    -#> # A draws_df: 1000 iterations, 4 chains, and 10 variables
    -#>    y_rep[1] y_rep[2] y_rep[3] y_rep[4] y_rep[5] y_rep[6] y_rep[7] y_rep[8]
    -#> 1         0        0        0        0        0        1        1        1
    -#> 2         0        0        0        0        1        1        0        0
    -#> 3         0        0        0        1        0        0        1        1
    -#> 4         1        1        0        0        0        0        1        0
    -#> 5         1        0        1        0        1        0        1        0
    -#> 6         0        0        0        1        1        0        0        0
    -#> 7         1        1        0        1        1        1        0        0
    -#> 8         1        1        1        1        1        0        1        1
    -#> 9         0        1        0        1        0        1        1        0
    -#> 10        1        1        1        1        1        1        1        1
    -#> # ... with 3990 more draws, and 2 more variables
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanLaplace.html b/docs/reference/CmdStanLaplace.html deleted file mode 100644 index 613716534..000000000 --- a/docs/reference/CmdStanLaplace.html +++ /dev/null @@ -1,174 +0,0 @@ - -CmdStanLaplace objects — CmdStanLaplace • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanLaplace object is the fitted model object returned by the -$laplace() method of a -CmdStanModel object.

    -
    - - -
    -

    Methods

    -

    CmdStanLaplace objects have the following associated methods, -all of which have their own (linked) documentation pages.

    -

    Extract contents of fitted model object

    -
    MethodDescription
    $draws()Return approximate posterior draws as a draws_matrix.
    $mode()Return the mode as a CmdStanMLE object.
    $lp()Return the total log probability density (target) computed in the model block of the Stan program.
    $lp_approx()Return the log density of the approximation to the posterior.
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences

    -
    MethodDescription
    $summary()Run posterior::summarise_draws().
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    $save_latent_dynamics_files()Save diagnostic CSV files to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $time()Report the run time of the Laplace sampling step.
    $output()Pretty print the output that was printed to the console.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanGQ, -CmdStanMCMC, -CmdStanMLE, -CmdStanPathfinder, -CmdStanVB

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanMCMC.html b/docs/reference/CmdStanMCMC.html deleted file mode 100644 index a74ccf1d6..000000000 --- a/docs/reference/CmdStanMCMC.html +++ /dev/null @@ -1,180 +0,0 @@ - -CmdStanMCMC objects — CmdStanMCMC • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanMCMC object is the fitted model object returned by -the $sample() method of a CmdStanModel object. -Like CmdStanModel objects, CmdStanMCMC objects are R6 -objects.

    -
    - - -
    -

    Methods

    -

    CmdStanMCMC objects have the following associated -methods, all of which have their own (linked) documentation pages.

    -

    Extract contents of fitted model object

    -
    MethodDescription
    $draws()Return posterior draws using formats from the posterior package.
    $sampler_diagnostics()Return sampler diagnostics as a draws_array.
    $lp()Return the total log probability density (target).
    $inv_metric()Return the inverse metric for each chain.
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $num_chains()Return the number of MCMC chains.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences and diagnostics

    -
    MethodDescription
    $print()Run posterior::summarise_draws().
    $summary()Run posterior::summarise_draws().
    $diagnostic_summary()Get summaries of sampler diagnostics and warning messages.
    $cmdstan_summary()Run and print CmdStan's bin/stansummary.
    $cmdstan_diagnose()Run and print CmdStan's bin/diagnose.
    $loo()Run loo::loo.array() for approximate LOO-CV
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    $save_latent_dynamics_files()Save diagnostic CSV files to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $output()Return the stdout and stderr of all chains or pretty print the output for a single chain.
    $time()Report total and chain-specific run times.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -

    Expose Stan functions and additional methods to R

    -
    MethodDescription
    $expose_functions()Expose Stan functions for use in R.
    $init_model_methods()Expose methods for log-probability, gradients, parameter constraining and unconstraining.
    $log_prob()Calculate log-prob.
    $grad_log_prob()Calculate log-prob and gradient.
    $hessian()Calculate log-prob, gradient, and hessian.
    $constrain_variables()Transform a set of unconstrained parameter values to the constrained scale.
    $unconstrain_variables()Transform a set of parameter values to the unconstrained scale.
    $unconstrain_draws()Transform all parameter draws to the unconstrained scale.
    $variable_skeleton()Helper function to re-structure a vector of constrained parameter values.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanGQ, -CmdStanLaplace, -CmdStanMLE, -CmdStanPathfinder, -CmdStanVB

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanMLE.html b/docs/reference/CmdStanMLE.html deleted file mode 100644 index 025570d1e..000000000 --- a/docs/reference/CmdStanMLE.html +++ /dev/null @@ -1,186 +0,0 @@ - -CmdStanMLE objects — CmdStanMLE • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanMLE object is the fitted model object returned by the -$optimize() method of a CmdStanModel object. -This object will either contain a penalized maximum likelihood estimate -(MLE) or a maximum a posteriori estimate (MAP), depending on the value of -the jacobian argument when the model is fit (and whether the model has -constrained parameters). See $optimize() and the -CmdStan User's Guide for more details.

    -
    - - -
    -

    Methods

    -

    CmdStanMLE objects have the following associated methods, -all of which have their own (linked) documentation pages.

    -

    Extract contents of fitted model object

    -
    MethodDescription
    draws()Return the point estimate as a 1-row draws_matrix.
    $mle()Return the point estimate as a numeric vector.
    $lp()Return the total log probability density (target).
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences

    -
    MethodDescription
    $summary()Run posterior::summarise_draws().
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $time()Report the total run time.
    $output()Pretty print the output that was printed to the console.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -

    Expose Stan functions and additional methods to R

    -
    MethodDescription
    $expose_functions()Expose Stan functions for use in R.
    $init_model_methods()Expose methods for log-probability, gradients, parameter constraining and unconstraining.
    $log_prob()Calculate log-prob.
    $grad_log_prob()Calculate log-prob and gradient.
    $hessian()Calculate log-prob, gradient, and hessian.
    $constrain_variables()Transform a set of unconstrained parameter values to the constrained scale.
    $unconstrain_variables()Transform a set of parameter values to the unconstrained scale.
    $unconstrain_draws()Transform all parameter draws to the unconstrained scale.
    $variable_skeleton()Helper function to re-structure a vector of constrained parameter values.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanGQ, -CmdStanLaplace, -CmdStanMCMC, -CmdStanPathfinder, -CmdStanVB

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanModel-1.png b/docs/reference/CmdStanModel-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/CmdStanModel-2.png b/docs/reference/CmdStanModel-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/CmdStanModel-method-compile.html b/docs/reference/CmdStanModel-method-compile.html deleted file mode 100644 index 7f3d7091d..000000000 --- a/docs/reference/CmdStanModel-method-compile.html +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - - - -Compile a Stan program or get the Stan code — CmdStanModel-method-compile • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    The compile method of a CmdStanModel object calls CmdStan -to translate a Stan program to C++ and call the C++ compiler. The resulting -files are placed in the same directory as the Stan program.

    -
    - - - -

    Usage

    - - -
    $compile()
    -
    - -

    Value

    - -

    The compile method returns the CmdStanModel object -invisibly.

    -

    See also

    - -

    The CmdStanR website (mc-stan.org/cmdstanr) -for online documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    - -

    Other CmdStanModel methods: CmdStanModel-method-optimize, - CmdStanModel-method-sample, - CmdStanModel-method-variational

    - -

    Examples

    -
    # \dontrun{ -# Set path to cmdstan -# Note: if you installed CmdStan via install_cmdstan() with default settings -# then default below should work. Otherwise use the `path` argument to -# specify the location of your CmdStan installation. - -set_cmdstan_path(path = NULL)
    #> CmdStan path set to: /Users/jgabry/.cmdstanr/cmdstan
    -# Create a CmdStan model object from a Stan program, -# here using the example model that comes with CmdStan -stan_program <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan") -mod <- cmdstan_model(stan_program) -mod$print()
    #> data { -#> int<lower=0> N; -#> int<lower=0,upper=1> y[N]; -#> } -#> parameters { -#> real<lower=0,upper=1> theta; -#> } -#> model { -#> theta ~ beta(1,1); -#> for (n in 1:N) -#> y[n] ~ bernoulli(theta); -#> }
    -# Compile to create executable -mod$compile()
    #> Running make /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli -#> make: `/Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli' is up to date.
    -# Run sample method (MCMC via Stan's dynamic HMC/NUTS), -# specifying data as a named list (like RStan) -standata <- list(N = 10, y =c(0,1,0,0,0,0,0,0,0,1)) -fit_mcmc <- mod$sample(data = standata, seed = 123, num_chains = 2)
    #> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b027a7b04df.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 1.8e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.18 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.01344 seconds (Warm-up) -#> 0.021608 seconds (Sampling) -#> 0.035048 seconds (Total) -#> -#> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 2 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b027a7b04df.data.R -#> init = 2 (Default) -#> random -#> seed = 124 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 1.9e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.19 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.013296 seconds (Warm-up) -#> 0.023346 seconds (Sampling) -#> 0.036642 seconds (Total) -#>
    -# Call CmdStan's bin/summary -fit_mcmc$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> Inference for Stan model: bernoulli_model -#> 2 chains: each with iter=(1000,1000); warmup=(0,0); thin=(1,1); 2000 iterations saved. -#> -#> Warmup took (0.013, 0.013) seconds, 0.027 seconds total -#> Sampling took (0.022, 0.023) seconds, 0.045 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ -7.3 2.7e-02 7.3e-01 -8.9 -7.0 -6.8 738 16427 1.0e+00 -#> accept_stat__ 0.92 3.1e-03 1.3e-01 0.64 0.97 1.0 1670 37139 1.0e+00 -#> stepsize__ 0.92 1.7e-03 1.7e-03 0.92 0.92 0.92 1.0 22 1.4e+12 -#> treedepth__ 1.3 1.1e-02 4.7e-01 1.0 1.0 2.0 1968 43773 1.0e+00 -#> n_leapfrog__ 2.4 2.5e-02 1.0e+00 1.0 3.0 3.0 1640 36485 1.0e+00 -#> divergent__ 0.00 0.0e+00 0.0e+00 0.00 0.00 0.00 1000 22245 nan -#> energy__ 7.8 4.0e-02 1.0e+00 6.8 7.5 9.8 647 14387 1.0e+00 -#> theta 0.24 4.6e-03 1.2e-01 0.077 0.22 0.47 720 16019 1.0e+00 -#> -#> Samples were drawn using hmc with nuts. -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# Run optimization method (default is Stan's LBFGS algorithm) -# and also demonstrate specifying data as a path to a file (readable by CmdStan) -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.R") -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    #> Warning: Optimization method is experimental and the structure of returned object may change.
    #> method = optimize -#> optimize -#> algorithm = lbfgs (Default) -#> lbfgs -#> init_alpha = 0.001 (Default) -#> tol_obj = 9.9999999999999998e-13 (Default) -#> tol_rel_obj = 10000 (Default) -#> tol_grad = 1e-08 (Default) -#> tol_rel_grad = 10000000 (Default) -#> tol_param = 1e-08 (Default) -#> history_size = 5 (Default) -#> iter = 2000 (Default) -#> save_iterations = 0 (Default) -#> id = 1 -#> data -#> file = /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-optimize-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> Initial log joint probability = -9.51104 -#> Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes -#> 6 -5.00402 0.000103557 2.55661e-07 1 1 9 -#> Optimization terminated normally: -#> Convergence detected: relative gradient magnitude is below tolerance
    -#' Print estimates -fit_optim$summary()
    #> Estimates from optimization:
    #> theta lp__ -#> 0.20000 -5.00402
    -# Run variational Bayes method (default is meanfield ADVI) -fit_vb <- mod$variational(data = standata, seed = 123)
    #> Warning: Variational inference method is experimental and the structure of returned object may change.
    #> method = variational -#> variational -#> algorithm = meanfield (Default) -#> meanfield -#> iter = 10000 (Default) -#> grad_samples = 1 (Default) -#> elbo_samples = 100 (Default) -#> eta = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> iter = 50 (Default) -#> tol_rel_obj = 0.01 (Default) -#> eval_elbo = 100 (Default) -#> output_samples = 1000 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b02227d0b4b.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> ------------------------------------------------------------ -#> EXPERIMENTAL ALGORITHM: -#> This procedure has not been thoroughly tested and may be unstable -#> or buggy. The interface is subject to change. -#> ------------------------------------------------------------ -#> -#> -#> -#> Gradient evaluation took 2e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.2 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Begin eta adaptation. -#> Iteration: 1 / 250 [ 0%] (Adaptation) -#> Iteration: 50 / 250 [ 20%] (Adaptation) -#> Iteration: 100 / 250 [ 40%] (Adaptation) -#> Iteration: 150 / 250 [ 60%] (Adaptation) -#> Iteration: 200 / 250 [ 80%] (Adaptation) -#> Success! Found best value [eta = 1] earlier than expected. -#> -#> Begin stochastic gradient ascent. -#> iter ELBO delta_ELBO_mean delta_ELBO_med notes -#> 100 -6.258 1.000 1.000 -#> 200 -6.475 0.517 1.000 -#> 300 -6.228 0.358 0.040 -#> 400 -6.220 0.269 0.040 -#> 500 -6.379 0.220 0.034 -#> 600 -6.195 0.188 0.034 -#> 700 -6.262 0.163 0.030 -#> 800 -6.345 0.144 0.030 -#> 900 -6.201 0.131 0.025 -#> 1000 -6.307 0.119 0.025 -#> 1100 -6.290 0.020 0.023 -#> 1200 -6.238 0.017 0.017 -#> 1300 -6.182 0.014 0.013 -#> 1400 -6.167 0.014 0.013 -#> 1500 -6.219 0.012 0.011 -#> 1600 -6.164 0.010 0.009 MEDIAN ELBO CONVERGED -#> -#> Drawing a sample of size 1000 from the approximate posterior... -#> COMPLETED.
    -# Call CmdStan's bin/summary -fit_vb$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> Warning: non-fatal error reading adapation data -#> Inference for Stan model: bernoulli_model -#> 1 chains: each with iter=(1001); warmup=(0); thin=(0); 1001 iterations saved. -#> -#> Warmup took (0.00) seconds, 0.00 seconds total -#> Sampling took (0.00) seconds, 0.00 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ 0.00 0.0e+00 0.00 0.00 0.00 0.0e+00 500 inf nan -#> log_p__ -7.2 2.5e-02 0.72 -8.6 -7.0 -6.8e+00 789 inf 1.0e+00 -#> log_g__ -0.54 2.9e-02 0.76 -2.1 -0.27 -1.5e-03 679 inf 1.0e+00 -#> theta 0.26 4.2e-03 0.12 0.091 0.23 4.9e-01 823 inf 1.0e+00 -#> -#> Samples were drawn using meanfield with . -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# For models fit using MCMC, if you like working with RStan's stanfit objects -# then you can create one with rstan::read_stan_csv() -if (require(rstan, quietly = TRUE)) { - stanfit <- rstan::read_stan_csv(fit_mcmc$output_files()) - print(stanfit) -}
    #> rstan (Version 2.19.2, GitRev: 2e1f913d3ca3)
    #> For execution on a local, multicore CPU with excess RAM we recommend calling -#> options(mc.cores = parallel::detectCores()). -#> To avoid recompilation of unchanged Stan programs, we recommend calling -#> rstan_options(auto_write = TRUE)
    #> Inference for Stan model: bernoulli-stan-sample-1. -#> 2 chains, each with iter=2000; warmup=1000; thin=1; -#> post-warmup draws per chain=1000, total post-warmup draws=2000. -#> -#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat -#> theta 0.24 0.00 0.12 0.06 0.14 0.22 0.32 0.52 720 1 -#> lp__ -7.32 0.03 0.73 -9.37 -7.53 -7.05 -6.81 -6.75 737 1 -#> -#> Samples were drawn using NUTS(diag_e) at Mon Oct 14 21:41:29 2019. -#> For each parameter, n_eff is a crude measure of effective sample size, -#> and Rhat is the potential scale reduction factor on split chains (at -#> convergence, Rhat=1).
    -# } - -
    -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/CmdStanModel-method-optimize.html b/docs/reference/CmdStanModel-method-optimize.html deleted file mode 100644 index e9181606b..000000000 --- a/docs/reference/CmdStanModel-method-optimize.html +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - - - -Run Stan's optimization algorithms — CmdStanModel-method-optimize • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    The optimize method of a CmdStanModel object runs Stan's -optimizer.

    -
    - - - -

    Details

    - -

    CmdStan can find the posterior mode (assuming there is one). If the -posterior is not convex, there is no guarantee Stan will be able to find -the global mode as opposed to a local optimum of log probability. For -optimization, the mode is calculated without the Jacobian adjustment for -con- strained variables, which shifts the mode due to the change of -variables. Thus modes correspond to modes of the model as written.

    -

    -- CmdStan Interface User's Guide

    -

    Usage

    - - -
    $optimize(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  algorithm = NULL,
    -  init_alpha = NULL,
    -  iter = NULL
    -)
    -
    - -

    Arguments shared by all fitting methods

    - -

    The following arguments can -be specified for any of the fitting methods (sample, optimize, -variational). Arguments left at NULL default to the default used by the -installed version of CmdStan.

      -
    • data (multiple options): The data to use:

        -
      • A named list of R objects like for RStan;

      • -
      • A path to a data file compatible with CmdStan (R dump or JSON). See -the appendices in the CmdStan manual for details on using these -formats.

      • -
    • -
    • seed: (positive integer) A seed for the (P)RNG to pass to CmdStan.

    • -
    • refresh: (non-negative integer) The number of iterations between -screen updates.

    • -
    • init: (multiple options) The initialization method:

        -
      • A real number x>0 initializes randomly between [-x,x] (on the -unconstrained parameter space);

      • -
      • 0 initializes to 0;

      • -
      • A character vector of data file paths (one per chain) to -initialization files.

      • -
    • -
    - -

    Arguments unique to the optimize method

    - -

    In addition to the -arguments above, the optimize method also has its own set of arguments. -These arguments are described briefly here and in greater detail in the -CmdStan manual. Arguments left at NULL default to the default used by the -installed version of CmdStan.

      -
    • algorithm: (string) The optimization algorithm. One of -"lbfgs", "bfgs", or "newton".

    • -
    • iter: (positive integer) The number of iterations.

    • -
    • init_alpha: (non-negative real) The line search step size for first -iteration. Not applicable if algorithm="newton".

    • -
    - -

    Value

    - -

    The optimize method returns a CmdStanMLE object.

    -

    See also

    - -

    The CmdStanR website (mc-stan.org/cmdstanr) -for online documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    - -

    Other CmdStanModel methods: CmdStanModel-method-compile, - CmdStanModel-method-sample, - CmdStanModel-method-variational

    - -

    Examples

    -
    # \dontrun{ -# Set path to cmdstan -# Note: if you installed CmdStan via install_cmdstan() with default settings -# then default below should work. Otherwise use the `path` argument to -# specify the location of your CmdStan installation. - -set_cmdstan_path(path = NULL)
    #> CmdStan path set to: /Users/jgabry/.cmdstanr/cmdstan
    -# Create a CmdStan model object from a Stan program, -# here using the example model that comes with CmdStan -stan_program <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan") -mod <- cmdstan_model(stan_program) -mod$print()
    #> data { -#> int<lower=0> N; -#> int<lower=0,upper=1> y[N]; -#> } -#> parameters { -#> real<lower=0,upper=1> theta; -#> } -#> model { -#> theta ~ beta(1,1); -#> for (n in 1:N) -#> y[n] ~ bernoulli(theta); -#> }
    -# Compile to create executable -mod$compile()
    #> Running make /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli -#> make: `/Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli' is up to date.
    -# Run sample method (MCMC via Stan's dynamic HMC/NUTS), -# specifying data as a named list (like RStan) -standata <- list(N = 10, y =c(0,1,0,0,0,0,0,0,0,1)) -fit_mcmc <- mod$sample(data = standata, seed = 123, num_chains = 2)
    #> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b02e4d2c66.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 2e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.2 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.012707 seconds (Warm-up) -#> 0.0214 seconds (Sampling) -#> 0.034107 seconds (Total) -#> -#> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 2 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b02e4d2c66.data.R -#> init = 2 (Default) -#> random -#> seed = 124 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 2.1e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.012695 seconds (Warm-up) -#> 0.019917 seconds (Sampling) -#> 0.032612 seconds (Total) -#>
    -# Call CmdStan's bin/summary -fit_mcmc$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> Inference for Stan model: bernoulli_model -#> 2 chains: each with iter=(1000,1000); warmup=(0,0); thin=(1,1); 2000 iterations saved. -#> -#> Warmup took (0.013, 0.013) seconds, 0.025 seconds total -#> Sampling took (0.021, 0.020) seconds, 0.041 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ -7.3 2.7e-02 7.3e-01 -8.9 -7.0 -6.8 738 17873 1.0e+00 -#> accept_stat__ 0.92 3.1e-03 1.3e-01 0.64 0.97 1.0 1670 40408 1.0e+00 -#> stepsize__ 0.92 1.7e-03 1.7e-03 0.92 0.92 0.92 1.0 24 1.4e+12 -#> treedepth__ 1.3 1.1e-02 4.7e-01 1.0 1.0 2.0 1968 47626 1.0e+00 -#> n_leapfrog__ 2.4 2.5e-02 1.0e+00 1.0 3.0 3.0 1640 39697 1.0e+00 -#> divergent__ 0.00 0.0e+00 0.0e+00 0.00 0.00 0.00 1000 24203 nan -#> energy__ 7.8 4.0e-02 1.0e+00 6.8 7.5 9.8 647 15654 1.0e+00 -#> theta 0.24 4.6e-03 1.2e-01 0.077 0.22 0.47 720 17429 1.0e+00 -#> -#> Samples were drawn using hmc with nuts. -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# Run optimization method (default is Stan's LBFGS algorithm) -# and also demonstrate specifying data as a path to a file (readable by CmdStan) -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.R") -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    #> Warning: Optimization method is experimental and the structure of returned object may change.
    #> method = optimize -#> optimize -#> algorithm = lbfgs (Default) -#> lbfgs -#> init_alpha = 0.001 (Default) -#> tol_obj = 9.9999999999999998e-13 (Default) -#> tol_rel_obj = 10000 (Default) -#> tol_grad = 1e-08 (Default) -#> tol_rel_grad = 10000000 (Default) -#> tol_param = 1e-08 (Default) -#> history_size = 5 (Default) -#> iter = 2000 (Default) -#> save_iterations = 0 (Default) -#> id = 1 -#> data -#> file = /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-optimize-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> Initial log joint probability = -9.51104 -#> Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes -#> 6 -5.00402 0.000103557 2.55661e-07 1 1 9 -#> Optimization terminated normally: -#> Convergence detected: relative gradient magnitude is below tolerance
    -#' Print estimates -fit_optim$summary()
    #> Estimates from optimization:
    #> theta lp__ -#> 0.20000 -5.00402
    -# Run variational Bayes method (default is meanfield ADVI) -fit_vb <- mod$variational(data = standata, seed = 123)
    #> Warning: Variational inference method is experimental and the structure of returned object may change.
    #> method = variational -#> variational -#> algorithm = meanfield (Default) -#> meanfield -#> iter = 10000 (Default) -#> grad_samples = 1 (Default) -#> elbo_samples = 100 (Default) -#> eta = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> iter = 50 (Default) -#> tol_rel_obj = 0.01 (Default) -#> eval_elbo = 100 (Default) -#> output_samples = 1000 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b026c9de3df.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> ------------------------------------------------------------ -#> EXPERIMENTAL ALGORITHM: -#> This procedure has not been thoroughly tested and may be unstable -#> or buggy. The interface is subject to change. -#> ------------------------------------------------------------ -#> -#> -#> -#> Gradient evaluation took 2.1e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Begin eta adaptation. -#> Iteration: 1 / 250 [ 0%] (Adaptation) -#> Iteration: 50 / 250 [ 20%] (Adaptation) -#> Iteration: 100 / 250 [ 40%] (Adaptation) -#> Iteration: 150 / 250 [ 60%] (Adaptation) -#> Iteration: 200 / 250 [ 80%] (Adaptation) -#> Success! Found best value [eta = 1] earlier than expected. -#> -#> Begin stochastic gradient ascent. -#> iter ELBO delta_ELBO_mean delta_ELBO_med notes -#> 100 -6.258 1.000 1.000 -#> 200 -6.475 0.517 1.000 -#> 300 -6.228 0.358 0.040 -#> 400 -6.220 0.269 0.040 -#> 500 -6.379 0.220 0.034 -#> 600 -6.195 0.188 0.034 -#> 700 -6.262 0.163 0.030 -#> 800 -6.345 0.144 0.030 -#> 900 -6.201 0.131 0.025 -#> 1000 -6.307 0.119 0.025 -#> 1100 -6.290 0.020 0.023 -#> 1200 -6.238 0.017 0.017 -#> 1300 -6.182 0.014 0.013 -#> 1400 -6.167 0.014 0.013 -#> 1500 -6.219 0.012 0.011 -#> 1600 -6.164 0.010 0.009 MEDIAN ELBO CONVERGED -#> -#> Drawing a sample of size 1000 from the approximate posterior... -#> COMPLETED.
    -# Call CmdStan's bin/summary -fit_vb$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> Warning: non-fatal error reading adapation data -#> Inference for Stan model: bernoulli_model -#> 1 chains: each with iter=(1001); warmup=(0); thin=(0); 1001 iterations saved. -#> -#> Warmup took (0.00) seconds, 0.00 seconds total -#> Sampling took (0.00) seconds, 0.00 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ 0.00 0.0e+00 0.00 0.00 0.00 0.0e+00 500 inf nan -#> log_p__ -7.2 2.5e-02 0.72 -8.6 -7.0 -6.8e+00 789 inf 1.0e+00 -#> log_g__ -0.54 2.9e-02 0.76 -2.1 -0.27 -1.5e-03 679 inf 1.0e+00 -#> theta 0.26 4.2e-03 0.12 0.091 0.23 4.9e-01 823 inf 1.0e+00 -#> -#> Samples were drawn using meanfield with . -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# For models fit using MCMC, if you like working with RStan's stanfit objects -# then you can create one with rstan::read_stan_csv() -if (require(rstan, quietly = TRUE)) { - stanfit <- rstan::read_stan_csv(fit_mcmc$output_files()) - print(stanfit) -}
    #> Inference for Stan model: bernoulli-stan-sample-1. -#> 2 chains, each with iter=2000; warmup=1000; thin=1; -#> post-warmup draws per chain=1000, total post-warmup draws=2000. -#> -#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat -#> theta 0.24 0.00 0.12 0.06 0.14 0.22 0.32 0.52 720 1 -#> lp__ -7.32 0.03 0.73 -9.37 -7.53 -7.05 -6.81 -6.75 737 1 -#> -#> Samples were drawn using NUTS(diag_e) at Mon Oct 14 21:41:30 2019. -#> For each parameter, n_eff is a crude measure of effective sample size, -#> and Rhat is the potential scale reduction factor on split chains (at -#> convergence, Rhat=1).
    -# } - -
    -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/CmdStanModel-method-sample.html b/docs/reference/CmdStanModel-method-sample.html deleted file mode 100644 index 590852b9f..000000000 --- a/docs/reference/CmdStanModel-method-sample.html +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - - -Run Stan's MCMC algorithms — CmdStanModel-method-sample • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    The sample method of a CmdStanModel object runs the default -MCMC algorithm in CmdStan (algorithm=hmc engine=nuts), to produce a set -of draws from the posterior distribution of a model conditioned on some -data.

    -
    - - - -

    Usage

    - - -
    $sample(
    -  num_chains = 1,
    -# num_cores = NULL, # not yet available
    -  data = NULL,
    -  num_warmup = NULL,
    -  num_samples = NULL,
    -  save_warmup = FALSE,
    -  thin = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  seed = NULL,
    -  max_depth = NULL,
    -  metric = NULL,
    -  stepsize = NULL,
    -  adapt_engaged = NULL,
    -  adapt_delta = NULL
    -)
    -
    - -

    Arguments shared by all fitting methods

    - -

    The following arguments can -be specified for any of the fitting methods (sample, optimize, -variational). Arguments left at NULL default to the default used by the -installed version of CmdStan.

      -
    • data (multiple options): The data to use:

        -
      • A named list of R objects like for RStan;

      • -
      • A path to a data file compatible with CmdStan (R dump or JSON). See -the appendices in the CmdStan manual for details on using these -formats.

      • -
    • -
    • seed: (positive integer) A seed for the (P)RNG to pass to CmdStan.

    • -
    • refresh: (non-negative integer) The number of iterations between -screen updates.

    • -
    • init: (multiple options) The initialization method:

        -
      • A real number x>0 initializes randomly between [-x,x] (on the -unconstrained parameter space);

      • -
      • 0 initializes to 0;

      • -
      • A character vector of data file paths (one per chain) to -initialization files.

      • -
    • -
    - -

    Arguments unique to the sample method

    - -

    In addition to the -arguments above, the sample method also has its own set of arguments. -These arguments are described briefly here and in greater detail in the -CmdStan manual. Arguments left at NULL default to the default used by the -installed version of CmdStan.

      -
    • num_samples: (positive integer) The number of sampling iterations.

    • -
    • num_warmup: (positive integer) The number of warmup iterations.

    • -
    • save_warmup: (logical) Should warmup iterations also be streamed -to the output?

    • -
    • thin: (positive integer) The period between saved samples. This should -typically be left at its default (no thinning).

    • -
    • adapt_engaged: (logical) Do warmup adaptation?

    • -
    • adapt_delta: (real in (0,1)) The adaptation target acceptance -statistic.

    • -
    • stepsize: (positive real) The initial step size for the discrete -approximation to continuous Hamiltonian dynamics. This is further tuned -during warmup.

    • -
    • metric: (character) The geometry of the base manifold. One of the -following:

        -
      • A single string from among "diag_e", "dense_e", "unit_e";

      • -
      • A character vector containing paths to files (one per chain) -compatible with CmdStan that contain precomputed metrics. -Each path must be to a JSON or Rdump file that contains an entry -inv_metric whose value is either the diagonal vector or the full -covariance matrix.

      • -
      - -

      If you want to turn off adaptation when using a precomuted metric set -adapt_engaged=FALSE, otherwise it will use the precomputed metric just -as an initial guess during adaptation. See the Euclidean Metric section -of the CmdStan manual for more details on these options.

    • -
    • max_depth: (positive integer) The maximum allowed tree depth. See the -Tree Depth section of the CmdStan manual for more details.

    • -
    - -

    Value

    - -

    The sample method returns a CmdStanMCMC object.

    -

    See also

    - -

    The CmdStanR website (mc-stan.org/cmdstanr) -for online documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    - -

    Other CmdStanModel methods: CmdStanModel-method-compile, - CmdStanModel-method-optimize, - CmdStanModel-method-variational

    - -

    Examples

    -
    # \dontrun{ -# Set path to cmdstan -# Note: if you installed CmdStan via install_cmdstan() with default settings -# then default below should work. Otherwise use the `path` argument to -# specify the location of your CmdStan installation. - -set_cmdstan_path(path = NULL)
    #> CmdStan path set to: /Users/jgabry/.cmdstanr/cmdstan
    -# Create a CmdStan model object from a Stan program, -# here using the example model that comes with CmdStan -stan_program <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan") -mod <- cmdstan_model(stan_program) -mod$print()
    #> data { -#> int<lower=0> N; -#> int<lower=0,upper=1> y[N]; -#> } -#> parameters { -#> real<lower=0,upper=1> theta; -#> } -#> model { -#> theta ~ beta(1,1); -#> for (n in 1:N) -#> y[n] ~ bernoulli(theta); -#> }
    -# Compile to create executable -mod$compile()
    #> Running make /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli -#> make: `/Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli' is up to date.
    -# Run sample method (MCMC via Stan's dynamic HMC/NUTS), -# specifying data as a named list (like RStan) -standata <- list(N = 10, y =c(0,1,0,0,0,0,0,0,0,1)) -fit_mcmc <- mod$sample(data = standata, seed = 123, num_chains = 2)
    #> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b02199f3176.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 1.7e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.17 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.012149 seconds (Warm-up) -#> 0.018859 seconds (Sampling) -#> 0.031008 seconds (Total) -#> -#> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 2 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b02199f3176.data.R -#> init = 2 (Default) -#> random -#> seed = 124 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 1.8e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.18 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.011733 seconds (Warm-up) -#> 0.019533 seconds (Sampling) -#> 0.031266 seconds (Total) -#>
    -# Call CmdStan's bin/summary -fit_mcmc$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> Inference for Stan model: bernoulli_model -#> 2 chains: each with iter=(1000,1000); warmup=(0,0); thin=(1,1); 2000 iterations saved. -#> -#> Warmup took (0.012, 0.012) seconds, 0.024 seconds total -#> Sampling took (0.019, 0.020) seconds, 0.038 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ -7.3 2.7e-02 7.3e-01 -8.9 -7.0 -6.8 738 19235 1.0e+00 -#> accept_stat__ 0.92 3.1e-03 1.3e-01 0.64 0.97 1.0 1670 43487 1.0e+00 -#> stepsize__ 0.92 1.7e-03 1.7e-03 0.92 0.92 0.92 1.0 26 1.4e+12 -#> treedepth__ 1.3 1.1e-02 4.7e-01 1.0 1.0 2.0 1968 51255 1.0e+00 -#> n_leapfrog__ 2.4 2.5e-02 1.0e+00 1.0 3.0 3.0 1640 42721 1.0e+00 -#> divergent__ 0.00 0.0e+00 0.0e+00 0.00 0.00 0.00 1000 26047 nan -#> energy__ 7.8 4.0e-02 1.0e+00 6.8 7.5 9.8 647 16846 1.0e+00 -#> theta 0.24 4.6e-03 1.2e-01 0.077 0.22 0.47 720 18757 1.0e+00 -#> -#> Samples were drawn using hmc with nuts. -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# Run optimization method (default is Stan's LBFGS algorithm) -# and also demonstrate specifying data as a path to a file (readable by CmdStan) -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.R") -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    #> Warning: Optimization method is experimental and the structure of returned object may change.
    #> method = optimize -#> optimize -#> algorithm = lbfgs (Default) -#> lbfgs -#> init_alpha = 0.001 (Default) -#> tol_obj = 9.9999999999999998e-13 (Default) -#> tol_rel_obj = 10000 (Default) -#> tol_grad = 1e-08 (Default) -#> tol_rel_grad = 10000000 (Default) -#> tol_param = 1e-08 (Default) -#> history_size = 5 (Default) -#> iter = 2000 (Default) -#> save_iterations = 0 (Default) -#> id = 1 -#> data -#> file = /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-optimize-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> Initial log joint probability = -9.51104 -#> Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes -#> 6 -5.00402 0.000103557 2.55661e-07 1 1 9 -#> Optimization terminated normally: -#> Convergence detected: relative gradient magnitude is below tolerance
    -#' Print estimates -fit_optim$summary()
    #> Estimates from optimization:
    #> theta lp__ -#> 0.20000 -5.00402
    -# Run variational Bayes method (default is meanfield ADVI) -fit_vb <- mod$variational(data = standata, seed = 123)
    #> Warning: Variational inference method is experimental and the structure of returned object may change.
    #> method = variational -#> variational -#> algorithm = meanfield (Default) -#> meanfield -#> iter = 10000 (Default) -#> grad_samples = 1 (Default) -#> elbo_samples = 100 (Default) -#> eta = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> iter = 50 (Default) -#> tol_rel_obj = 0.01 (Default) -#> eval_elbo = 100 (Default) -#> output_samples = 1000 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b022268471e.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> ------------------------------------------------------------ -#> EXPERIMENTAL ALGORITHM: -#> This procedure has not been thoroughly tested and may be unstable -#> or buggy. The interface is subject to change. -#> ------------------------------------------------------------ -#> -#> -#> -#> Gradient evaluation took 2.1e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Begin eta adaptation. -#> Iteration: 1 / 250 [ 0%] (Adaptation) -#> Iteration: 50 / 250 [ 20%] (Adaptation) -#> Iteration: 100 / 250 [ 40%] (Adaptation) -#> Iteration: 150 / 250 [ 60%] (Adaptation) -#> Iteration: 200 / 250 [ 80%] (Adaptation) -#> Success! Found best value [eta = 1] earlier than expected. -#> -#> Begin stochastic gradient ascent. -#> iter ELBO delta_ELBO_mean delta_ELBO_med notes -#> 100 -6.258 1.000 1.000 -#> 200 -6.475 0.517 1.000 -#> 300 -6.228 0.358 0.040 -#> 400 -6.220 0.269 0.040 -#> 500 -6.379 0.220 0.034 -#> 600 -6.195 0.188 0.034 -#> 700 -6.262 0.163 0.030 -#> 800 -6.345 0.144 0.030 -#> 900 -6.201 0.131 0.025 -#> 1000 -6.307 0.119 0.025 -#> 1100 -6.290 0.020 0.023 -#> 1200 -6.238 0.017 0.017 -#> 1300 -6.182 0.014 0.013 -#> 1400 -6.167 0.014 0.013 -#> 1500 -6.219 0.012 0.011 -#> 1600 -6.164 0.010 0.009 MEDIAN ELBO CONVERGED -#> -#> Drawing a sample of size 1000 from the approximate posterior... -#> COMPLETED.
    -# Call CmdStan's bin/summary -fit_vb$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> Warning: non-fatal error reading adapation data -#> Inference for Stan model: bernoulli_model -#> 1 chains: each with iter=(1001); warmup=(0); thin=(0); 1001 iterations saved. -#> -#> Warmup took (0.00) seconds, 0.00 seconds total -#> Sampling took (0.00) seconds, 0.00 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ 0.00 0.0e+00 0.00 0.00 0.00 0.0e+00 500 inf nan -#> log_p__ -7.2 2.5e-02 0.72 -8.6 -7.0 -6.8e+00 789 inf 1.0e+00 -#> log_g__ -0.54 2.9e-02 0.76 -2.1 -0.27 -1.5e-03 679 inf 1.0e+00 -#> theta 0.26 4.2e-03 0.12 0.091 0.23 4.9e-01 823 inf 1.0e+00 -#> -#> Samples were drawn using meanfield with . -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# For models fit using MCMC, if you like working with RStan's stanfit objects -# then you can create one with rstan::read_stan_csv() -if (require(rstan, quietly = TRUE)) { - stanfit <- rstan::read_stan_csv(fit_mcmc$output_files()) - print(stanfit) -}
    #> Inference for Stan model: bernoulli-stan-sample-1. -#> 2 chains, each with iter=2000; warmup=1000; thin=1; -#> post-warmup draws per chain=1000, total post-warmup draws=2000. -#> -#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat -#> theta 0.24 0.00 0.12 0.06 0.14 0.22 0.32 0.52 720 1 -#> lp__ -7.32 0.03 0.73 -9.37 -7.53 -7.05 -6.81 -6.75 737 1 -#> -#> Samples were drawn using NUTS(diag_e) at Mon Oct 14 21:41:31 2019. -#> For each parameter, n_eff is a crude measure of effective sample size, -#> and Rhat is the potential scale reduction factor on split chains (at -#> convergence, Rhat=1).
    -# } - -
    -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/CmdStanModel-method-variational.html b/docs/reference/CmdStanModel-method-variational.html deleted file mode 100644 index 2952e5ec6..000000000 --- a/docs/reference/CmdStanModel-method-variational.html +++ /dev/null @@ -1,633 +0,0 @@ - - - - - - - - -Run Stan's variational approximation algorithms — CmdStanModel-method-variational • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    The variational method of a CmdStanModel object runs -Stan's variational Bayes (ADVI) algorithms.

    -
    - - - -

    Details

    - -

    CmdStan can fit a variational approximation to the posterior. The -approximation is a Gaussian in the unconstrained variable space. Stan -implements two variational algorithms. The algorithm="meanfield" option -uses a fully factorized Gaussian for the approximation. The -algorithm="fullrank" option uses a Gaussian with a full-rank covariance -matrix for the approximation.

    -

    -- CmdStan Interface User's Guide

    -

    Usage

    - - -
    $variational(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  algorithm = NULL,
    -  iter = NULL,
    -  grad_samples = NULL,
    -  elbo_samples = NULL,
    -  eta = NULL,
    -  adapt_engaged = NULL,
    -  adapt_iter = NULL,
    -  tol_rel_obj = NULL,
    -  eval_elbo = NULL,
    -  output_samples = NULL
    -)
    -
    - -

    Arguments shared by all fitting methods

    - -

    The following arguments can -be specified for any of the fitting methods (sample, optimize, -variational). Arguments left at NULL default to the default used by the -installed version of CmdStan.

      -
    • data (multiple options): The data to use:

        -
      • A named list of R objects like for RStan;

      • -
      • A path to a data file compatible with CmdStan (R dump or JSON). See -the appendices in the CmdStan manual for details on using these -formats.

      • -
    • -
    • seed: (positive integer) A seed for the (P)RNG to pass to CmdStan.

    • -
    • refresh: (non-negative integer) The number of iterations between -screen updates.

    • -
    • init: (multiple options) The initialization method:

        -
      • A real number x>0 initializes randomly between [-x,x] (on the -unconstrained parameter space);

      • -
      • 0 initializes to 0;

      • -
      • A character vector of data file paths (one per chain) to -initialization files.

      • -
    • -
    - -

    Arguments unique to the variational method

    - -

    In addition to the -arguments above, the variational method also has its own set of -arguments. These arguments are described briefly here and in greater detail -in the CmdStan manual. Arguments left at NULL default to the default used -by the installed version of CmdStan.

      -
    • algorithm: (string) The algorithm. Either "meanfield" or "fullrank".

    • -
    • iter: (positive integer) The maximum number of iterations.

    • -
    • grad_samples: (positive integer) The number of samples for Monte Carlo -estimate of gradients.

    • -
    • elbo_samples: (positive integer) The number of samples for Monte Carlo -estimate of ELBO (objective function).

    • -
    • eta: (positive real) The stepsize weighting parameter for adaptive -stepsize sequence.

    • -
    • adapt_engaged: (logical) Do warmup adaptation?

    • -
    • adapt_iter: (positive integer) The maximum number of adaptation -iterations.

    • -
    • tol_rel_obj: (positive real) Convergence tolerance on the relative norm -of the objective.

    • -
    • eval_elbo: (positive integer) Evaluate ELBO every Nth iteration.

    • -
    • output_samples: (positive integer) Number of posterior samples to -draw and save.

    • -
    - -

    Value

    - -

    The variational method returns a CmdStanVB object.

    -

    See also

    - -

    The CmdStanR website (mc-stan.org/cmdstanr) -for online documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    - -

    Other CmdStanModel methods: CmdStanModel-method-compile, - CmdStanModel-method-optimize, - CmdStanModel-method-sample

    - -

    Examples

    -
    # \dontrun{ -# Set path to cmdstan -# Note: if you installed CmdStan via install_cmdstan() with default settings -# then default below should work. Otherwise use the `path` argument to -# specify the location of your CmdStan installation. - -set_cmdstan_path(path = NULL)
    #> CmdStan path set to: /Users/jgabry/.cmdstanr/cmdstan
    -# Create a CmdStan model object from a Stan program, -# here using the example model that comes with CmdStan -stan_program <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan") -mod <- cmdstan_model(stan_program) -mod$print()
    #> data { -#> int<lower=0> N; -#> int<lower=0,upper=1> y[N]; -#> } -#> parameters { -#> real<lower=0,upper=1> theta; -#> } -#> model { -#> theta ~ beta(1,1); -#> for (n in 1:N) -#> y[n] ~ bernoulli(theta); -#> }
    -# Compile to create executable -mod$compile()
    #> Running make /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli -#> make: `/Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli' is up to date.
    -# Run sample method (MCMC via Stan's dynamic HMC/NUTS), -# specifying data as a named list (like RStan) -standata <- list(N = 10, y =c(0,1,0,0,0,0,0,0,0,1)) -fit_mcmc <- mod$sample(data = standata, seed = 123, num_chains = 2)
    #> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b022add5243.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 2e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.2 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.014348 seconds (Warm-up) -#> 0.021322 seconds (Sampling) -#> 0.03567 seconds (Total) -#> -#> method = sample (Default) -#> sample -#> num_samples = 1000 (Default) -#> num_warmup = 1000 (Default) -#> save_warmup = 0 (Default) -#> thin = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> gamma = 0.050000000000000003 (Default) -#> delta = 0.80000000000000004 (Default) -#> kappa = 0.75 (Default) -#> t0 = 10 (Default) -#> init_buffer = 75 (Default) -#> term_buffer = 50 (Default) -#> window = 25 (Default) -#> algorithm = hmc (Default) -#> hmc -#> engine = nuts (Default) -#> nuts -#> max_depth = 10 (Default) -#> metric = diag_e (Default) -#> metric_file = (Default) -#> stepsize = 1 (Default) -#> stepsize_jitter = 0 (Default) -#> id = 2 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b022add5243.data.R -#> init = 2 (Default) -#> random -#> seed = 124 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> -#> Gradient evaluation took 1.9e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.19 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Iteration: 1 / 2000 [ 0%] (Warmup) -#> Iteration: 100 / 2000 [ 5%] (Warmup) -#> Iteration: 200 / 2000 [ 10%] (Warmup) -#> Iteration: 300 / 2000 [ 15%] (Warmup) -#> Iteration: 400 / 2000 [ 20%] (Warmup) -#> Iteration: 500 / 2000 [ 25%] (Warmup) -#> Iteration: 600 / 2000 [ 30%] (Warmup) -#> Iteration: 700 / 2000 [ 35%] (Warmup) -#> Iteration: 800 / 2000 [ 40%] (Warmup) -#> Iteration: 900 / 2000 [ 45%] (Warmup) -#> Iteration: 1000 / 2000 [ 50%] (Warmup) -#> Iteration: 1001 / 2000 [ 50%] (Sampling) -#> Iteration: 1100 / 2000 [ 55%] (Sampling) -#> Iteration: 1200 / 2000 [ 60%] (Sampling) -#> Iteration: 1300 / 2000 [ 65%] (Sampling) -#> Iteration: 1400 / 2000 [ 70%] (Sampling) -#> Iteration: 1500 / 2000 [ 75%] (Sampling) -#> Iteration: 1600 / 2000 [ 80%] (Sampling) -#> Iteration: 1700 / 2000 [ 85%] (Sampling) -#> Iteration: 1800 / 2000 [ 90%] (Sampling) -#> Iteration: 1900 / 2000 [ 95%] (Sampling) -#> Iteration: 2000 / 2000 [100%] (Sampling) -#> -#> Elapsed Time: 0.01225 seconds (Warm-up) -#> 0.019663 seconds (Sampling) -#> 0.031913 seconds (Total) -#>
    -# Call CmdStan's bin/summary -fit_mcmc$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-1.csv \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-sample-2.csv -#> Inference for Stan model: bernoulli_model -#> 2 chains: each with iter=(1000,1000); warmup=(0,0); thin=(1,1); 2000 iterations saved. -#> -#> Warmup took (0.014, 0.012) seconds, 0.027 seconds total -#> Sampling took (0.021, 0.020) seconds, 0.041 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ -7.3 2.7e-02 7.3e-01 -8.9 -7.0 -6.8 738 18018 1.0e+00 -#> accept_stat__ 0.92 3.1e-03 1.3e-01 0.64 0.97 1.0 1670 40735 1.0e+00 -#> stepsize__ 0.92 1.7e-03 1.7e-03 0.92 0.92 0.92 1.0 24 1.4e+12 -#> treedepth__ 1.3 1.1e-02 4.7e-01 1.0 1.0 2.0 1968 48012 1.0e+00 -#> n_leapfrog__ 2.4 2.5e-02 1.0e+00 1.0 3.0 3.0 1640 40018 1.0e+00 -#> divergent__ 0.00 0.0e+00 0.0e+00 0.00 0.00 0.00 1000 24399 nan -#> energy__ 7.8 4.0e-02 1.0e+00 6.8 7.5 9.8 647 15780 1.0e+00 -#> theta 0.24 4.6e-03 1.2e-01 0.077 0.22 0.47 720 17570 1.0e+00 -#> -#> Samples were drawn using hmc with nuts. -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# Run optimization method (default is Stan's LBFGS algorithm) -# and also demonstrate specifying data as a path to a file (readable by CmdStan) -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.R") -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    #> Warning: Optimization method is experimental and the structure of returned object may change.
    #> method = optimize -#> optimize -#> algorithm = lbfgs (Default) -#> lbfgs -#> init_alpha = 0.001 (Default) -#> tol_obj = 9.9999999999999998e-13 (Default) -#> tol_rel_obj = 10000 (Default) -#> tol_grad = 1e-08 (Default) -#> tol_rel_grad = 10000000 (Default) -#> tol_param = 1e-08 (Default) -#> history_size = 5 (Default) -#> iter = 2000 (Default) -#> save_iterations = 0 (Default) -#> id = 1 -#> data -#> file = /Users/jgabry/.cmdstanr/cmdstan/examples/bernoulli/bernoulli.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-optimize-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> Initial log joint probability = -9.51104 -#> Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes -#> 6 -5.00402 0.000103557 2.55661e-07 1 1 9 -#> Optimization terminated normally: -#> Convergence detected: relative gradient magnitude is below tolerance
    -#' Print estimates -fit_optim$summary()
    #> Estimates from optimization:
    #> theta lp__ -#> 0.20000 -5.00402
    -# Run variational Bayes method (default is meanfield ADVI) -fit_vb <- mod$variational(data = standata, seed = 123)
    #> Warning: Variational inference method is experimental and the structure of returned object may change.
    #> method = variational -#> variational -#> algorithm = meanfield (Default) -#> meanfield -#> iter = 10000 (Default) -#> grad_samples = 1 (Default) -#> elbo_samples = 100 (Default) -#> eta = 1 (Default) -#> adapt -#> engaged = 1 (Default) -#> iter = 50 (Default) -#> tol_rel_obj = 0.01 (Default) -#> eval_elbo = 100 (Default) -#> output_samples = 1000 (Default) -#> id = 1 -#> data -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T/Rtmpy8TKSY/standata-b022843c2b1.data.R -#> init = 2 (Default) -#> random -#> seed = 123 -#> output -#> file = /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> diagnostic_file = (Default) -#> refresh = 100 (Default) -#> -#> ------------------------------------------------------------ -#> EXPERIMENTAL ALGORITHM: -#> This procedure has not been thoroughly tested and may be unstable -#> or buggy. The interface is subject to change. -#> ------------------------------------------------------------ -#> -#> -#> -#> Gradient evaluation took 2.1e-05 seconds -#> 1000 transitions using 10 leapfrog steps per transition would take 0.21 seconds. -#> Adjust your expectations accordingly! -#> -#> -#> Begin eta adaptation. -#> Iteration: 1 / 250 [ 0%] (Adaptation) -#> Iteration: 50 / 250 [ 20%] (Adaptation) -#> Iteration: 100 / 250 [ 40%] (Adaptation) -#> Iteration: 150 / 250 [ 60%] (Adaptation) -#> Iteration: 200 / 250 [ 80%] (Adaptation) -#> Success! Found best value [eta = 1] earlier than expected. -#> -#> Begin stochastic gradient ascent. -#> iter ELBO delta_ELBO_mean delta_ELBO_med notes -#> 100 -6.258 1.000 1.000 -#> 200 -6.475 0.517 1.000 -#> 300 -6.228 0.358 0.040 -#> 400 -6.220 0.269 0.040 -#> 500 -6.379 0.220 0.034 -#> 600 -6.195 0.188 0.034 -#> 700 -6.262 0.163 0.030 -#> 800 -6.345 0.144 0.030 -#> 900 -6.201 0.131 0.025 -#> 1000 -6.307 0.119 0.025 -#> 1100 -6.290 0.020 0.023 -#> 1200 -6.238 0.017 0.017 -#> 1300 -6.182 0.014 0.013 -#> 1400 -6.167 0.014 0.013 -#> 1500 -6.219 0.012 0.011 -#> 1600 -6.164 0.010 0.009 MEDIAN ELBO CONVERGED -#> -#> Drawing a sample of size 1000 from the approximate posterior... -#> COMPLETED.
    -# Call CmdStan's bin/summary -fit_vb$summary()
    #> Running bin/stansummary \ -#> /var/folders/h6/14xy_35x4wd2tz542dn0qhtc0000gn/T//Rtmpy8TKSY/bernoulli-stan-variational-1.csv -#> Warning: non-fatal error reading adapation data -#> Inference for Stan model: bernoulli_model -#> 1 chains: each with iter=(1001); warmup=(0); thin=(0); 1001 iterations saved. -#> -#> Warmup took (0.00) seconds, 0.00 seconds total -#> Sampling took (0.00) seconds, 0.00 seconds total -#> -#> Mean MCSE StdDev 5% 50% 95% N_Eff N_Eff/s R_hat -#> lp__ 0.00 0.0e+00 0.00 0.00 0.00 0.0e+00 500 inf nan -#> log_p__ -7.2 2.5e-02 0.72 -8.6 -7.0 -6.8e+00 789 inf 1.0e+00 -#> log_g__ -0.54 2.9e-02 0.76 -2.1 -0.27 -1.5e-03 679 inf 1.0e+00 -#> theta 0.26 4.2e-03 0.12 0.091 0.23 4.9e-01 823 inf 1.0e+00 -#> -#> Samples were drawn using meanfield with . -#> For each parameter, N_Eff is a crude measure of effective sample size, -#> and R_hat is the potential scale reduction factor on split chains (at -#> convergence, R_hat=1). -#>
    -# For models fit using MCMC, if you like working with RStan's stanfit objects -# then you can create one with rstan::read_stan_csv() -if (require(rstan, quietly = TRUE)) { - stanfit <- rstan::read_stan_csv(fit_mcmc$output_files()) - print(stanfit) -}
    #> Inference for Stan model: bernoulli-stan-sample-1. -#> 2 chains, each with iter=2000; warmup=1000; thin=1; -#> post-warmup draws per chain=1000, total post-warmup draws=2000. -#> -#> mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat -#> theta 0.24 0.00 0.12 0.06 0.14 0.22 0.32 0.52 720 1 -#> lp__ -7.32 0.03 0.73 -9.37 -7.53 -7.05 -6.81 -6.75 737 1 -#> -#> Samples were drawn using NUTS(diag_e) at Mon Oct 14 21:41:32 2019. -#> For each parameter, n_eff is a crude measure of effective sample size, -#> and Rhat is the potential scale reduction factor on split chains (at -#> convergence, Rhat=1).
    -# } - -
    -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/CmdStanModel.html b/docs/reference/CmdStanModel.html deleted file mode 100644 index 9b9494188..000000000 --- a/docs/reference/CmdStanModel.html +++ /dev/null @@ -1,624 +0,0 @@ - -CmdStanModel objects — CmdStanModel • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanModel object is an R6 object created -by the cmdstan_model() function. The object stores the path to a Stan -program and compiled executable (once created), and provides methods for -fitting the model using Stan's algorithms.

    -
    - - -
    -

    Methods

    -

    CmdStanModel objects have the following associated -methods, many of which have their own (linked) documentation pages:

    -

    Stan code

    -
    MethodDescription
    $stan_file()Return the file path to the Stan program.
    $code()Return Stan program as a character vector.
    $print()Print readable version of Stan program.
    $check_syntax()Check Stan syntax without having to compile.
    $format()Format and canonicalize the Stan model code.
    - -
    -

    Compilation

    -
    MethodDescription
    $compile()Compile Stan program.
    $exe_file()Return the file path to the compiled executable.
    $hpp_file()Return the file path to the .hpp file containing the generated C++ code.
    $save_hpp_file()Save the .hpp file containing the generated C++ code.
    $expose_functions()Expose Stan functions for use in R.
    - -
    -

    Diagnostics

    -
    MethodDescription
    $diagnose()Run CmdStan's "diagnose" method to test gradients, return CmdStanDiagnose object.
    - -
    -

    Model fitting

    -
    MethodDescription
    $sample()Run CmdStan's "sample" method, return CmdStanMCMC object.
    $sample_mpi()Run CmdStan's "sample" method with MPI, return CmdStanMCMC object.
    $optimize()Run CmdStan's "optimize" method, return CmdStanMLE object.
    $variational()Run CmdStan's "variational" method, return CmdStanVB object.
    $pathfinder()Run CmdStan's "pathfinder" method, return CmdStanPathfinder object.
    $generate_quantities()Run CmdStan's "generate quantities" method, return CmdStanGQ object.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -#> This is bayesplot version 1.11.1.9000
    -#> - Online documentation and vignettes at mc-stan.org/bayesplot
    -#> - bayesplot theme set to bayesplot::theme_default()
    -#>    * Does _not_ affect other ggplot2 plots
    -#>    * See ?bayesplot_theme_set for details on theme setting
    -#> 
    -#> Attaching package: ‘bayesplot’
    -#> The following object is masked from ‘package:posterior’:
    -#> 
    -#>     rhat
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -6.93289 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        4      -6.74802    0.00149466   1.90231e-05           1           1        7    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.1 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.24  -6.96  0.738 0.292 -8.68  -6.75   
    -#> 2 lp_approx__ -0.494 -0.213 0.716 0.294 -2.00  -0.00155
    -#> 3 theta        0.268  0.245 0.124 0.116  0.104  0.509  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1.1e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.11 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.1 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.1 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -7.264402 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.293e-04   4.141e-07    1.000e+00  1.000e+00       126 -6.296e+00 -6.296e+00                   
    -#> Path [1] :Best Iter: [4] ELBO (-6.235406) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -11.117345 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      9.672e-04   1.459e-05    1.000e+00  1.000e+00       126 -6.259e+00 -6.259e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.180823) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -7.495731 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.114e-04   4.492e-07    1.000e+00  1.000e+00       126 -6.259e+00 -6.259e+00                   
    -#> Path [3] :Best Iter: [2] ELBO (-6.245533) evaluations: (126) 
    -#> Path [4] :Initial log joint density = -7.770449 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.750e-04   9.341e-07    1.000e+00  1.000e+00       126 -6.225e+00 -6.225e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.225361) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -14.218076 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.997e-03   5.573e-05    1.000e+00  1.000e+00       126 -6.216e+00 -6.216e+00                   
    -#> Path [5] :Best Iter: [5] ELBO (-6.216169) evaluations: (126) 
    -#> Path [6] :Initial log joint density = -7.472192 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.059e-04   4.145e-07    1.000e+00  1.000e+00       126 -6.137e+00 -6.137e+00                   
    -#> Path [6] :Best Iter: [5] ELBO (-6.137426) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -8.723559 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.317e-04   2.693e-06    1.000e+00  1.000e+00       126 -6.210e+00 -6.210e+00                   
    -#> Path [7] :Best Iter: [3] ELBO (-6.175877) evaluations: (126) 
    -#> Path [8] :Initial log joint density = -9.460464 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      4.598e-04   4.575e-06    1.000e+00  1.000e+00       126 -6.241e+00 -6.241e+00                   
    -#> Path [8] :Best Iter: [2] ELBO (-6.228285) evaluations: (126) 
    -#> Path [9] :Initial log joint density = -18.781825 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      4.081e-04   6.355e-06    1.000e+00  1.000e+00       126 -6.256e+00 -6.256e+00                   
    -#> Path [9] :Best Iter: [2] ELBO (-6.178423) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -7.492978 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      8.830e-04   2.382e-06    1.000e+00  1.000e+00       126 -6.191e+00 -6.191e+00                   
    -#> Path [10] :Best Iter: [5] ELBO (-6.191391) evaluations: (126) 
    -#> Total log probability function evaluations:1410 
    -#> Finished in  0.1 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanPathfinder.html b/docs/reference/CmdStanPathfinder.html deleted file mode 100644 index b25331a05..000000000 --- a/docs/reference/CmdStanPathfinder.html +++ /dev/null @@ -1,174 +0,0 @@ - -CmdStanPathfinder objects — CmdStanPathfinder • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanPathfinder object is the fitted model object returned by the -$pathfinder() method of a -CmdStanModel object.

    -
    - - -
    -

    Methods

    -

    CmdStanPathfinder objects have the following associated methods, -all of which have their own (linked) documentation pages.

    -

    Extract contents of fitted model object

    -
    MethodDescription
    $draws()Return approximate posterior draws as a draws_matrix.
    $lp()Return the total log probability density (target) computed in the model block of the Stan program.
    $lp_approx()Return the log density of the approximation to the posterior.
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences

    -
    MethodDescription
    $summary()Run posterior::summarise_draws().
    $cmdstan_summary()Run and print CmdStan's bin/stansummary.
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    $save_latent_dynamics_files()Save diagnostic CSV files to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $time()Report the total run time.
    $output()Pretty print the output that was printed to the console.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanGQ, -CmdStanLaplace, -CmdStanMCMC, -CmdStanMLE, -CmdStanVB

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/CmdStanVB.html b/docs/reference/CmdStanVB.html deleted file mode 100644 index b6e635111..000000000 --- a/docs/reference/CmdStanVB.html +++ /dev/null @@ -1,178 +0,0 @@ - -CmdStanVB objects — CmdStanVB • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    A CmdStanVB object is the fitted model object returned by the -$variational() method of a -CmdStanModel object.

    -
    - - -
    -

    Methods

    -

    CmdStanVB objects have the following associated methods, -all of which have their own (linked) documentation pages.

    -

    Extract contents of fitted model object

    -
    MethodDescription
    $draws()Return approximate posterior draws as a draws_matrix.
    $lp()Return the total log probability density (target) computed in the model block of the Stan program.
    $lp_approx()Return the log density of the variational approximation to the posterior.
    $init()Return user-specified initial values.
    $metadata()Return a list of metadata gathered from the CmdStan CSV files.
    $code()Return Stan code as a character vector.
    - -
    -

    Summarize inferences

    -
    MethodDescription
    $summary()Run posterior::summarise_draws().
    $cmdstan_summary()Run and print CmdStan's bin/stansummary.
    - -
    -

    Save fitted model object and temporary files

    -
    MethodDescription
    $save_object()Save fitted model object to a file.
    $save_output_files()Save output CSV files to a specified location.
    $save_data_file()Save JSON data file to a specified location.
    $save_latent_dynamics_files()Save diagnostic CSV files to a specified location.
    - -
    -

    Report run times, console output, return codes

    -
    MethodDescription
    $time()Report the total run time.
    $output()Pretty print the output that was printed to the console.
    $return_codes()Return the return codes from the CmdStan runs.
    - -
    -

    Expose Stan functions and additional methods to R

    -
    MethodDescription
    $expose_functions()Expose Stan functions for use in R.
    $init_model_methods()Expose methods for log-probability, gradients, parameter constraining and unconstraining.
    $log_prob()Calculate log-prob.
    $grad_log_prob()Calculate log-prob and gradient.
    $hessian()Calculate log-prob, gradient, and hessian.
    $constrain_variables()Transform a set of unconstrained parameter values to the constrained scale.
    $unconstrain_variables()Transform a set of parameter values to the unconstrained scale.
    $unconstrain_draws()Transform all parameter draws to the unconstrained scale.
    $variable_skeleton()Helper function to re-structure a vector of constrained parameter values.
    - -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other fitted model objects: -CmdStanDiagnose, -CmdStanGQ, -CmdStanLaplace, -CmdStanMCMC, -CmdStanMLE, -CmdStanPathfinder

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/Rplot001.png b/docs/reference/Rplot001.png deleted file mode 100644 index 17a358060aed2a86950757bbd25c6f92c08c458f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1011 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|=9Be?5+AI5}0x7m6Z+90U4Fo@(ch>_c&H|6f zVg?3oArNM~bhqvg0|WD9PZ!6KiaBo&GBN^{G%5UFpXcEKVvd5*5Eu=C0SJK)8A6*F U7`aXvEC5;V>FVdQ&MBb@00SN#Z2$lO diff --git a/docs/reference/Rplot002.png b/docs/reference/Rplot002.png deleted file mode 100644 index 3fdf11207590e684b013dc460ab4eb7fc99ad169..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5016 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 diff --git a/docs/reference/Rplot003.png b/docs/reference/Rplot003.png deleted file mode 100644 index fe0a559d324aa761f90e8f3fa94d98830908a150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5075 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 -Create a draws object from a CmdStanR fitted model object — as_draws.CmdStanMCMC • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Create a draws object supported by the posterior package. These -methods are just wrappers around CmdStanR's $draws() -method provided for convenience.

    -
    - -
    -
    # S3 method for CmdStanMCMC
    -as_draws(x, ...)
    -
    -# S3 method for CmdStanMLE
    -as_draws(x, ...)
    -
    -# S3 method for CmdStanLaplace
    -as_draws(x, ...)
    -
    -# S3 method for CmdStanVB
    -as_draws(x, ...)
    -
    -# S3 method for CmdStanGQ
    -as_draws(x, ...)
    -
    -# S3 method for CmdStanPathfinder
    -as_draws(x, ...)
    -
    - -
    -

    Arguments

    -
    x
    -

    A CmdStanR fitted model object.

    - - -
    ...
    -

    Optional arguments passed to the $draws() -method (e.g., variables, inc_warmup, etc.).

    - -
    -
    -

    Details

    -

    To subset iterations, chains, or draws, use the -posterior::subset_draws() method after creating the draws object.

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example()
    -as_draws(fit)
    -#> # A draws_array: 1000 iterations, 4 chains, and 105 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration   1   2   3   4
    -#>         1 -66 -65 -65 -64
    -#>         2 -67 -67 -65 -68
    -#>         3 -66 -65 -65 -66
    -#>         4 -65 -66 -64 -66
    -#>         5 -64 -67 -65 -66
    -#> 
    -#> , , variable = alpha
    -#> 
    -#>          chain
    -#> iteration     1    2    3    4
    -#>         1 0.792 0.30 0.38 0.38
    -#>         2 0.061 0.54 0.49 0.14
    -#>         3 0.538 0.23 0.47 0.29
    -#>         4 0.446 0.10 0.37 0.41
    -#>         5 0.253 0.68 0.46 0.56
    -#> 
    -#> , , variable = beta[1]
    -#> 
    -#>          chain
    -#> iteration     1     2     3     4
    -#>         1 -0.93 -0.46 -0.99 -0.75
    -#>         2 -0.60 -0.87 -0.93 -0.84
    -#>         3 -0.67 -0.51 -0.45 -0.41
    -#>         4 -0.90 -0.78 -0.75 -0.19
    -#>         5 -0.63 -0.57 -0.45 -0.62
    -#> 
    -#> , , variable = beta[2]
    -#> 
    -#>          chain
    -#> iteration     1      2     3      4
    -#>         1 -0.26  0.031 -0.15 -0.195
    -#>         2  0.12 -0.226 -0.36 -0.386
    -#>         3 -0.02 -0.199 -0.15 -0.548
    -#>         4 -0.31 -0.013 -0.20 -0.084
    -#>         5 -0.12 -0.615 -0.09 -0.610
    -#> 
    -#> # ... with 995 more iterations, and 101 more variables
    -
    -# posterior's as_draws_*() methods will also work
    -posterior::as_draws_rvars(fit)
    -#> # A draws_rvars: 1000 iterations, 4 chains, and 4 variables
    -#> $lp__: rvar<1000,4>[1] mean ± sd:
    -#> [1] -66 ± 1.5 
    -#> 
    -#> $alpha: rvar<1000,4>[1] mean ± sd:
    -#> [1] 0.37 ± 0.22 
    -#> 
    -#> $beta: rvar<1000,4>[3] mean ± sd:
    -#> [1] -0.67 ± 0.25  -0.28 ± 0.23   0.69 ± 0.27 
    -#> 
    -#> $log_lik: rvar<1000,4>[100] mean ± sd:
    -#>   [1] -0.518 ± 0.101  -0.398 ± 0.148  -0.500 ± 0.222  -0.445 ± 0.153 
    -#>   [5] -1.183 ± 0.289  -0.593 ± 0.195  -0.637 ± 0.127  -0.278 ± 0.133 
    -#>   [9] -0.697 ± 0.172  -0.743 ± 0.237  -0.280 ± 0.126  -0.492 ± 0.240 
    -#>  [13] -0.655 ± 0.213  -0.361 ± 0.174  -0.279 ± 0.109  -0.275 ± 0.087 
    -#>  [17] -1.594 ± 0.288  -0.481 ± 0.109  -0.232 ± 0.075  -0.112 ± 0.078 
    -#>  [21] -0.211 ± 0.087  -0.571 ± 0.151  -0.330 ± 0.138  -0.135 ± 0.065 
    -#>  [25] -0.451 ± 0.123  -1.520 ± 0.340  -0.307 ± 0.123  -0.446 ± 0.086 
    -#>  [29] -0.722 ± 0.230  -0.699 ± 0.193  -0.489 ± 0.165  -0.425 ± 0.111 
    -#>  [33] -0.406 ± 0.128  -0.062 ± 0.048  -0.583 ± 0.188  -0.325 ± 0.130 
    -#>  [37] -0.702 ± 0.230  -0.309 ± 0.149  -0.178 ± 0.110  -0.684 ± 0.132 
    -#>  [41] -1.131 ± 0.261  -0.937 ± 0.201  -0.413 ± 0.266  -1.175 ± 0.188 
    -#>  [45] -0.359 ± 0.118  -0.578 ± 0.131  -0.301 ± 0.128  -0.324 ± 0.083 
    -#>  [49] -0.319 ± 0.081  -1.288 ± 0.331  -0.288 ± 0.094  -0.832 ± 0.146 
    -#>  [53] -0.402 ± 0.132  -0.371 ± 0.142  -0.381 ± 0.136  -0.320 ± 0.188 
    -#>  [57] -0.660 ± 0.121  -0.954 ± 0.356  -1.371 ± 0.345  -0.976 ± 0.161 
    -#>  [61] -0.543 ± 0.100  -0.872 ± 0.317  -0.115 ± 0.071  -0.899 ± 0.250 
    -#>  [65] -2.024 ± 0.609  -0.509 ± 0.139  -0.276 ± 0.081  -1.059 ± 0.239 
    -#>  [69] -0.437 ± 0.086  -0.642 ± 0.235  -0.608 ± 0.213  -0.460 ± 0.173 
    -#>  [73] -1.496 ± 0.368  -0.947 ± 0.199  -1.139 ± 0.392  -0.373 ± 0.140 
    -#>  [77] -0.876 ± 0.143  -0.490 ± 0.174  -0.767 ± 0.193  -0.537 ± 0.197 
    -#>  [81] -0.160 ± 0.100  -0.220 ± 0.138  -0.344 ± 0.082  -0.275 ± 0.092 
    -#>  [85] -0.129 ± 0.074  -1.136 ± 0.323  -0.821 ± 0.130  -0.776 ± 0.248 
    -#>  [89] -1.289 ± 0.322  -0.258 ± 0.136  -0.383 ± 0.131  -1.501 ± 0.351 
    -#>  [93] -0.736 ± 0.220  -0.318 ± 0.088  -0.389 ± 0.113  -1.575 ± 0.284 
    -#>  [97] -0.432 ± 0.101  -1.058 ± 0.374  -0.690 ± 0.144  -0.392 ± 0.098 
    -#> 
    -posterior::as_draws_list(fit)
    -#> # A draws_list: 1000 iterations, 4 chains, and 105 variables
    -#> 
    -#> [chain = 1]
    -#> $lp__
    -#>  [1] -66 -67 -66 -65 -64 -65 -65 -66 -64 -66
    -#> 
    -#> $alpha
    -#>  [1] 0.792 0.061 0.538 0.446 0.253 0.343 0.387 0.827 0.506 0.713
    -#> 
    -#> $`beta[1]`
    -#>  [1] -0.93 -0.60 -0.67 -0.90 -0.63 -0.71 -0.64 -0.60 -0.73 -0.96
    -#> 
    -#> $`beta[2]`
    -#>  [1] -0.26  0.12 -0.02 -0.31 -0.12 -0.46 -0.44 -0.39 -0.32 -0.22
    -#> 
    -#> 
    -#> [chain = 2]
    -#> $lp__
    -#>  [1] -65 -67 -65 -66 -67 -67 -67 -67 -67 -72
    -#> 
    -#> $alpha
    -#>  [1]  0.303  0.538  0.227  0.104  0.678  0.596 -0.041  0.769  0.340  0.948
    -#> 
    -#> $`beta[1]`
    -#>  [1] -0.46 -0.87 -0.51 -0.78 -0.57 -0.50 -0.57 -0.67 -0.60 -0.47
    -#> 
    -#> $`beta[2]`
    -#>  [1]  0.03060 -0.22607 -0.19885 -0.01303 -0.61503 -0.63211  0.00036 -0.41151
    -#>  [9] -0.46209 -0.88087
    -#> 
    -#> # ... with 990 more iterations, and 2 more chains, and 101 more variables
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/as_mcmc.list.html b/docs/reference/as_mcmc.list.html deleted file mode 100644 index 222a49f3d..000000000 --- a/docs/reference/as_mcmc.list.html +++ /dev/null @@ -1,171 +0,0 @@ - -Convert CmdStanMCMC to mcmc.list — as_mcmc.list • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    This function converts a CmdStanMCMC object to an mcmc.list object -compatible with the coda package. This is primarily intended for users -of Stan coming from BUGS/JAGS who are used to coda for plotting and -diagnostics. In general we recommend the more recent MCMC diagnostics in -posterior and the ggplot2-based plotting functions in -bayesplot, but for users who prefer coda this function provides -compatibility.

    -
    - -
    -
    as_mcmc.list(x)
    -
    - -
    -

    Arguments

    -
    x
    -

    A CmdStanMCMC object.

    - -
    -
    -

    Value

    - - -

    An mcmc.list object compatible with the coda package.

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example()
    -x <- as_mcmc.list(fit)
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstan_coercion.html b/docs/reference/cmdstan_coercion.html deleted file mode 100644 index c1af8993c..000000000 --- a/docs/reference/cmdstan_coercion.html +++ /dev/null @@ -1,164 +0,0 @@ - -Coercion methods for CmdStan objects — cmdstan_coercion • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    These are generic functions intended to primarily be used by developers of -packages that interface with on CmdStanR. Developers can define methods on -top of these generics to coerce objects into CmdStanR's fitted model objects.

    -
    - -
    -
    as.CmdStanMCMC(object, ...)
    -
    -as.CmdStanMLE(object, ...)
    -
    -as.CmdStanLaplace(object, ...)
    -
    -as.CmdStanVB(object, ...)
    -
    -as.CmdStanPathfinder(object, ...)
    -
    -as.CmdStanGQ(object, ...)
    -
    -as.CmdStanDiagnose(object, ...)
    -
    - -
    -

    Arguments

    -
    object
    -

    The object to be coerced.

    - - -
    ...
    -

    Additional arguments to pass to methods.

    - -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstan_default_install_path.html b/docs/reference/cmdstan_default_install_path.html deleted file mode 100644 index e4039b788..000000000 --- a/docs/reference/cmdstan_default_install_path.html +++ /dev/null @@ -1,155 +0,0 @@ - -cmdstan_default_install_path — cmdstan_default_install_path • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Path to where install_cmdstan() with default settings installs CmdStan.

    -
    - -
    -
    cmdstan_default_install_path(old = FALSE, wsl = FALSE)
    -
    - -
    -

    Arguments

    -
    old
    -

    Should the old default path (.cmdstanr) be used instead of the new -one (.cmdstan)? Defaults to FALSE and may be removed in a future release.

    - - -
    wsl
    -

    Return the directory for WSL installations?

    - -
    -
    -

    Value

    - - -

    The installation path.

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstan_default_path.html b/docs/reference/cmdstan_default_path.html deleted file mode 100644 index 7f87720a5..000000000 --- a/docs/reference/cmdstan_default_path.html +++ /dev/null @@ -1,164 +0,0 @@ - -cmdstan_default_path — cmdstan_default_path • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Returns the path to the installation of CmdStan with the most recent release -version.

    -
    - -
    -
    cmdstan_default_path(old = FALSE, dir = NULL)
    -
    - -
    -

    Arguments

    -
    old
    -

    See cmdstan_default_install_path().

    - - -
    dir
    -

    Path to a custom install folder with CmdStan installations.

    - -
    -
    -

    Value

    - - -

    Path to the CmdStan installation with the most recent release -version, or NULL if no installation found.

    -
    -
    -

    Details

    -

    For Windows systems with WSL CmdStan installs, if there are side-by-side WSL -and native installs with the same version then the WSL is preferred. -Otherwise, the most recent release is chosen, regardless of whether it is -native or WSL.

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstan_model-1.png b/docs/reference/cmdstan_model-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/cmdstan_model-2.png b/docs/reference/cmdstan_model-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/cmdstan_model.html b/docs/reference/cmdstan_model.html deleted file mode 100644 index f3966bc19..000000000 --- a/docs/reference/cmdstan_model.html +++ /dev/null @@ -1,641 +0,0 @@ - -Create a new CmdStanModel object — cmdstan_model • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    -Create a new CmdStanModel object from a file containing a Stan program -or from an existing Stan executable. The CmdStanModel object stores the -path to a Stan program and compiled executable (once created), and provides -methods for fitting the model using Stan's algorithms.

    -

    See the compile and ... arguments for control over whether and how -compilation happens.

    -
    - -
    -
    cmdstan_model(stan_file = NULL, exe_file = NULL, compile = TRUE, ...)
    -
    - -
    -

    Arguments

    -
    stan_file
    -

    (string) The path to a .stan file containing a Stan -program. The helper function write_stan_file() is provided for cases when -it is more convenient to specify the Stan program as a string. If -stan_file is not specified then exe_file must be specified.

    - - -
    exe_file
    -

    (string) The path to an existing Stan model executable. Can -be provided instead of or in addition to stan_file (if stan_file is -omitted some CmdStanModel methods like $code() and $print() will not -work). This argument can only be used with CmdStan 2.27+.

    - - -
    compile
    -

    (logical) Do compilation? The default is TRUE. If FALSE -compilation can be done later via the $compile() -method.

    - - -
    ...
    -

    Optionally, additional arguments to pass to the -$compile() method if compile=TRUE. These -options include specifying the directory for saving the executable, turning -on pedantic mode, specifying include paths, configuring C++ options, and -more. See $compile() for details.

    - -
    -
    -

    Value

    - - -

    A CmdStanModel object.

    -
    -
    -

    See also

    -

    install_cmdstan(), $compile(), -$check_syntax()

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -7.19041 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802   0.000219546   2.02164e-07           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.1 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.23  -6.98  0.662 0.312 -8.57  -6.75   
    -#> 2 lp_approx__ -0.490 -0.230 0.676 0.315 -1.92  -0.00147
    -#> 3 theta        0.269  0.251 0.121 0.123  0.101  0.490  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 9e-06 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.09 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.1 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.1 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -19.520956 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.226e-02   1.762e-04    1.000e+00  1.000e+00       101 -6.253e+00 -6.253e+00                   
    -#> Path [1] :Best Iter: [2] ELBO (-6.195755) evaluations: (101) 
    -#> Path [2] :Initial log joint density = -7.254863 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.135e-04   3.796e-07    1.000e+00  1.000e+00       126 -6.215e+00 -6.215e+00                   
    -#> Path [2] :Best Iter: [4] ELBO (-6.093719) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -9.357651 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      4.272e-04   4.080e-06    1.000e+00  1.000e+00       126 -6.228e+00 -6.228e+00                   
    -#> Path [3] :Best Iter: [3] ELBO (-6.197602) evaluations: (126) 
    -#> Path [4] :Initial log joint density = -15.654513 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.955e-03   5.901e-05    1.000e+00  1.000e+00       126 -6.224e+00 -6.224e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.224416) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -6.893187 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.780e-04   2.911e-05    9.344e-01  9.344e-01       101 -6.239e+00 -6.239e+00                   
    -#> Path [5] :Best Iter: [3] ELBO (-6.215896) evaluations: (101) 
    -#> Path [6] :Initial log joint density = -10.329090 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.385e-04   9.583e-06    1.000e+00  1.000e+00       126 -6.222e+00 -6.222e+00                   
    -#> Path [6] :Best Iter: [3] ELBO (-6.212303) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -15.872224 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.903e-03   5.733e-05    1.000e+00  1.000e+00       126 -6.254e+00 -6.254e+00                   
    -#> Path [7] :Best Iter: [4] ELBO (-6.195869) evaluations: (126) 
    -#> Path [8] :Initial log joint density = -10.958418 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      9.246e-04   1.360e-05    1.000e+00  1.000e+00       126 -6.214e+00 -6.214e+00                   
    -#> Path [8] :Best Iter: [2] ELBO (-6.186854) evaluations: (126) 
    -#> Path [9] :Initial log joint density = -12.861849 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.621e-03   3.641e-05    1.000e+00  1.000e+00       126 -6.213e+00 -6.213e+00                   
    -#> Path [9] :Best Iter: [5] ELBO (-6.213458) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -16.360860 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.745e-03   5.153e-05    1.000e+00  1.000e+00       126 -6.169e+00 -6.169e+00                   
    -#> Path [10] :Best Iter: [5] ELBO (-6.169190) evaluations: (126) 
    -#> Total log probability function evaluations:1360 
    -#> Finished in  0.1 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstan_path.html b/docs/reference/cmdstan_path.html deleted file mode 100644 index 402bc76ef..000000000 --- a/docs/reference/cmdstan_path.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - -Get or set the file path to the CmdStan installation — cmdstan_path • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    cmdstan_path() returns the full path to the CmdStan installation. The path -can be set using the set_cmdstan_path() function. See Details.

    -
    - -
    cmdstan_path()
    -
    -set_cmdstan_path(path = NULL)
    - -

    Arguments

    - - - - - - -
    path

    The full file path to the CmdStan installation as a string. If -NULL (the default) then the path is set to the default path used by -install_cmdstan() if it exists.

    - -

    Value

    - -

    The file path to the CmdStan installation.

    -

    Details

    - -

    Before the package can be used it needs to know where the CmdStan -installation is located. When the package is loaded it tries to help automate -this to avoid having to manually set the path every session:

      -
    • If the environment variable "CMDSTAN" exists at load time -then its value will be automatically set as the default path to CmdStan for -the R session.

    • -
    • If no environment variable is found when loaded but the directory -".cmdstanr/cmdstan" exists in the user's home directory -(Sys.getenv("HOME"), not the current working directory) then it will -be set as the path to CmdStan for the R session. This is the same as the -default directory that install_cmdstan() would use to install the latest -version of CmdStan.

    • -
    - -

    It is always possible to change the path after loading the package using -set_cmdstan_path(path).

    - -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.4.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/cmdstanr-package-1.png b/docs/reference/cmdstanr-package-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/cmdstanr-package-2.png b/docs/reference/cmdstanr-package-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/cmdstanr-package.html b/docs/reference/cmdstanr-package.html deleted file mode 100644 index a3d781a32..000000000 --- a/docs/reference/cmdstanr-package.html +++ /dev/null @@ -1,667 +0,0 @@ - -CmdStanR: the R interface to CmdStan — cmdstanr-package • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Stan Development Team

    -

    CmdStanR: the R interface to CmdStan.

    -
    - - -
    -

    Details

    -

    CmdStanR (cmdstanr package) is an interface to Stan -(mc-stan.org) for R users. It provides the -necessary objects and functions to compile a Stan program and run Stan's -algorithms from R via CmdStan, the shell interface to Stan -(mc-stan.org/users/interfaces/cmdstan).

    -
    -

    Different ways of interfacing with Stan’s C++

    - - -

    The RStan interface (rstan package) is -an in-memory interface to Stan and relies on R packages like Rcpp -and inline to call C++ code from R. On the other hand, the CmdStanR -interface does not directly call any C++ code from R, instead relying on -the CmdStan interface behind the scenes for compilation, running -algorithms, and writing results to output files.

    -
    - -
    -

    Advantages of RStan

    - -
    • Allows other developers to distribute R packages with pre-compiled -Stan programs (like rstanarm) on CRAN. (Note: As of 2023, this can -mostly be achieved with CmdStanR as well. See Developing using CmdStanR.)

    • -
    • Avoids use of R6 classes, which may result in more familiar syntax for -many R users.

    • -
    • CRAN binaries available for Mac and Windows.

    • -
    - -
    -

    Advantages of CmdStanR

    - -
    • Compatible with latest versions of Stan. Keeping up with Stan releases -is complicated for RStan, often requiring non-trivial changes to the -rstan package and new CRAN releases of both rstan and -StanHeaders. With CmdStanR the latest improvements in Stan will be -available from R immediately after updating CmdStan using -cmdstanr::install_cmdstan().

    • -
    • Running Stan via external processes results in fewer unexpected -crashes, especially in RStudio.

    • -
    • Less memory overhead.

    • -
    • More permissive license. RStan uses the GPL-3 license while the -license for CmdStanR is BSD-3, which is a bit more permissive and is -the same license used for CmdStan and the Stan C++ source code.

    • -
    - -
    -
    -

    Getting started

    -

    CmdStanR requires a working version of CmdStan. If -you already have CmdStan installed see cmdstan_model() to get started, -otherwise see install_cmdstan() to install CmdStan. The vignette -Getting started with CmdStanR -demonstrates the basic functionality of the package.

    -

    For a list of global options see -cmdstanr_global_options.

    -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Useful links:

    -
    -
    -

    Author

    -

    Maintainer: Andrew Johnson andrew.johnson@arjohnsonau.com (ORCID)

    -

    Authors:

    Other contributors:

    • Ben Bales [contributor]

    • -
    • Mitzi Morris [contributor]

    • -
    • Mikhail Popov [contributor]

    • -
    • Mike Lawrence [contributor]

    • -
    • William Michael Landau will.landau@gmail.com (ORCID) [contributor]

    • -
    • Jacob Socolar [contributor]

    • -
    • Martin Modrák [contributor]

    • -
    • Ven Popov [contributor]

    • -
    - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -6.80195 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        4      -6.74802    0.00029907   1.30133e-06           1           1        7    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.1 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.22  -6.96  0.660 0.293 -8.56  -6.75   
    -#> 2 lp_approx__ -0.479 -0.220 0.648 0.296 -1.85  -0.00230
    -#> 3 theta        0.271  0.251 0.122 0.119  0.101  0.501  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.1 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.1 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.1 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -8.288264 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.788e-04   2.003e-06    1.000e+00  1.000e+00       126 -6.242e+00 -6.242e+00                   
    -#> Path [1] :Best Iter: [2] ELBO (-6.189407) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -7.122559 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      3.446e-03   7.646e-05    1.000e+00  1.000e+00       101 -6.267e+00 -6.267e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.217814) evaluations: (101) 
    -#> Path [3] :Initial log joint density = -6.904847 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.217e-03   1.351e-05    1.000e+00  1.000e+00       101 -6.256e+00 -6.256e+00                   
    -#> Path [3] :Best Iter: [3] ELBO (-6.226443) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -15.810600 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.919e-03   5.787e-05    1.000e+00  1.000e+00       126 -6.202e+00 -6.202e+00                   
    -#> Path [4] :Best Iter: [4] ELBO (-6.144907) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -7.535814 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.206e-04   5.112e-07    1.000e+00  1.000e+00       126 -6.233e+00 -6.233e+00                   
    -#> Path [5] :Best Iter: [4] ELBO (-6.165244) evaluations: (126) 
    -#> Path [6] :Initial log joint density = -12.317092 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.394e-03   2.744e-05    1.000e+00  1.000e+00       126 -6.247e+00 -6.247e+00                   
    -#> Path [6] :Best Iter: [3] ELBO (-6.207884) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -6.970206 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      3.919e-04   8.523e-05    9.151e-01  9.151e-01       101 -6.187e+00 -6.187e+00                   
    -#> Path [7] :Best Iter: [4] ELBO (-6.187348) evaluations: (101) 
    -#> Path [8] :Initial log joint density = -6.960470 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.773e-03   2.529e-05    1.000e+00  1.000e+00       101 -6.148e+00 -6.148e+00                   
    -#> Path [8] :Best Iter: [4] ELBO (-6.147740) evaluations: (101) 
    -#> Path [9] :Initial log joint density = -6.771981 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      2.126e-03   4.338e-07    9.709e-01  9.709e-01        76 -6.239e+00 -6.239e+00                   
    -#> Path [9] :Best Iter: [2] ELBO (-6.211440) evaluations: (76) 
    -#> Path [10] :Initial log joint density = -7.099410 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.211e-04   7.078e-08    1.000e+00  1.000e+00       126 -6.227e+00 -6.227e+00                   
    -#> Path [10] :Best Iter: [2] ELBO (-6.196731) evaluations: (126) 
    -#> Total log probability function evaluations:1260 
    -#> Finished in  0.1 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstanr_example.html b/docs/reference/cmdstanr_example.html deleted file mode 100644 index b4484a920..000000000 --- a/docs/reference/cmdstanr_example.html +++ /dev/null @@ -1,361 +0,0 @@ - -Fit models for use in examples — cmdstanr_example • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Fit models for use in examples

    -
    - -
    -
    cmdstanr_example(
    -  example = c("logistic", "schools", "schools_ncp"),
    -  method = c("sample", "optimize", "laplace", "variational", "pathfinder", "diagnose"),
    -  ...,
    -  quiet = TRUE,
    -  force_recompile = getOption("cmdstanr_force_recompile", default = FALSE)
    -)
    -
    -print_example_program(example = c("logistic", "schools", "schools_ncp"))
    -
    - -
    -

    Arguments

    -
    example
    -

    (string) The name of the example. The currently available -examples are

    • "logistic": logistic regression with intercept and 3 predictors.

    • -
    • "schools": the so-called "eight schools" model, a hierarchical -meta-analysis. Fitting this model will result in warnings about -divergences.

    • -
    • "schools_ncp": non-centered parameterization of the "eight schools" -model that fixes the problem with divergences.

    • -

    To print the Stan code for a given example use -print_example_program(example).

    - - -
    method
    -

    (string) Which fitting method should be used? The default is -the "sample" method (MCMC).

    - - -
    ...
    -

    Arguments passed to the chosen method. See the help pages for -the individual methods for details.

    - - -
    quiet
    -

    (logical) If TRUE (the default) then fitting the model is -wrapped in utils::capture.output().

    - - -
    force_recompile
    -

    Passed to the $compile() method.

    - -
    -
    -

    Value

    - - -

    The fitted model object returned by the selected method.

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -print_example_program("logistic")
    -#> data {
    -#>   int<lower=0> N;
    -#>   int<lower=0> K;
    -#>   array[N] int<lower=0, upper=1> y;
    -#>   matrix[N, K] X;
    -#> }
    -#> parameters {
    -#>   real alpha;
    -#>   vector[K] beta;
    -#> }
    -#> model {
    -#>   target += normal_lpdf(alpha | 0, 1);
    -#>   target += normal_lpdf(beta | 0, 1);
    -#>   target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);
    -#> }
    -#> generated quantities {
    -#>   vector[N] log_lik;
    -#>   for (n in 1 : N) {
    -#>     log_lik[n] = bernoulli_logit_lpmf(y[n] | alpha + X[n] * beta);
    -#>   }
    -#> }
    -fit_logistic_mcmc <- cmdstanr_example("logistic", chains = 2)
    -fit_logistic_mcmc$summary()
    -#> # A tibble: 105 × 10
    -#>    variable      mean  median     sd    mad       q5      q95  rhat ess_bulk
    -#>    <chr>        <dbl>   <dbl>  <dbl>  <dbl>    <dbl>    <dbl> <dbl>    <dbl>
    -#>  1 lp__       -66.0   -65.6   1.43   1.22   -68.8    -64.3     1.00     963.
    -#>  2 alpha        0.376   0.373 0.220  0.221    0.0226   0.745   1.00    2237.
    -#>  3 beta[1]     -0.671  -0.663 0.250  0.252   -1.10    -0.258   1.00    1930.
    -#>  4 beta[2]     -0.262  -0.261 0.222  0.229   -0.629    0.0934  1.00    1801.
    -#>  5 beta[3]      0.674   0.681 0.264  0.263    0.242    1.10    1.00    1979.
    -#>  6 log_lik[1]  -0.515  -0.509 0.0991 0.0964  -0.681   -0.363   1.00    2100.
    -#>  7 log_lik[2]  -0.401  -0.381 0.147  0.138   -0.671   -0.197   1.00    2010.
    -#>  8 log_lik[3]  -0.489  -0.456 0.215  0.202   -0.891   -0.207   1.00    1914.
    -#>  9 log_lik[4]  -0.455  -0.435 0.154  0.152   -0.726   -0.242   1.00    1918.
    -#> 10 log_lik[5]  -1.18   -1.16  0.283  0.282   -1.69    -0.749   1.00    2470.
    -#> # ℹ 95 more rows
    -#> # ℹ 1 more variable: ess_tail <dbl>
    -
    -fit_logistic_optim <- cmdstanr_example("logistic", method = "optimize")
    -fit_logistic_optim$summary()
    -#> # A tibble: 105 × 2
    -#>    variable   estimate
    -#>    <chr>         <dbl>
    -#>  1 lp__        -63.9  
    -#>  2 alpha         0.364
    -#>  3 beta[1]      -0.632
    -#>  4 beta[2]      -0.259
    -#>  5 beta[3]       0.648
    -#>  6 log_lik[1]   -0.515
    -#>  7 log_lik[2]   -0.394
    -#>  8 log_lik[3]   -0.469
    -#>  9 log_lik[4]   -0.442
    -#> 10 log_lik[5]   -1.14 
    -#> # ℹ 95 more rows
    -
    -fit_logistic_vb <- cmdstanr_example("logistic", method = "variational")
    -fit_logistic_vb$summary()
    -#> # A tibble: 106 × 7
    -#>    variable       mean  median    sd   mad      q5      q95
    -#>    <chr>         <dbl>   <dbl> <dbl> <dbl>   <dbl>    <dbl>
    -#>  1 lp__        -66.4   -65.9   1.84  1.52  -69.9   -64.3   
    -#>  2 lp_approx__  -1.98   -1.65  1.42  1.25   -4.64   -0.331 
    -#>  3 alpha         0.377   0.370 0.296 0.307  -0.116   0.869 
    -#>  4 beta[1]      -0.646  -0.648 0.241 0.234  -1.04   -0.241 
    -#>  5 beta[2]      -0.252  -0.257 0.201 0.191  -0.579   0.0845
    -#>  6 beta[3]       0.702   0.695 0.280 0.269   0.236   1.16  
    -#>  7 log_lik[1]   -0.523  -0.518 0.128 0.130  -0.747  -0.331 
    -#>  8 log_lik[2]   -0.398  -0.369 0.168 0.155  -0.716  -0.174 
    -#>  9 log_lik[3]   -0.480  -0.450 0.204 0.193  -0.859  -0.211 
    -#> 10 log_lik[4]   -0.455  -0.431 0.159 0.160  -0.739  -0.235 
    -#> # ℹ 96 more rows
    -
    -print_example_program("schools")
    -#> data {
    -#>   int<lower=1> J;
    -#>   vector<lower=0>[J] sigma;
    -#>   vector[J] y;
    -#> }
    -#> parameters {
    -#>   real mu;
    -#>   real<lower=0> tau;
    -#>   vector[J] theta;
    -#> }
    -#> model {
    -#>   target += normal_lpdf(tau | 0, 10);
    -#>   target += normal_lpdf(mu | 0, 10);
    -#>   target += normal_lpdf(theta | mu, tau);
    -#>   target += normal_lpdf(y | theta, sigma);
    -#> }
    -fit_schools_mcmc <- cmdstanr_example("schools")
    -#> Warning: 260 of 4000 (6.0%) transitions ended with a divergence.
    -#> See https://mc-stan.org/misc/warnings for details.
    -#> Warning: 1 of 4 chains had an E-BFMI less than 0.3.
    -#> See https://mc-stan.org/misc/warnings for details.
    -fit_schools_mcmc$summary()
    -#> # A tibble: 11 × 10
    -#>    variable   mean median    sd   mad      q5   q95  rhat ess_bulk ess_tail
    -#>    <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl> <dbl> <dbl>    <dbl>    <dbl>
    -#>  1 lp__     -58.0  -58.4   5.27  5.30 -66.3   -48.5  1.07     43.0     27.8
    -#>  2 mu         6.38   6.13  4.15  3.80  -0.237  13.5  1.01    627.     964. 
    -#>  3 tau        5.31   4.49  3.57  3.28   1.10   12.2  1.07     37.6     21.2
    -#>  4 theta[1]   9.14   8.16  7.00  6.00  -0.685  21.7  1.01    966.    1427. 
    -#>  5 theta[2]   6.73   6.51  5.64  4.88  -2.30   16.4  1.02   1127.    1732. 
    -#>  6 theta[3]   5.08   5.36  6.58  5.64  -6.24   15.5  1.02    792.    1549. 
    -#>  7 theta[4]   6.57   6.30  5.92  5.19  -2.79   16.1  1.01   1328.    1869. 
    -#>  8 theta[5]   4.56   4.87  5.47  5.08  -5.00   13.1  1.02    707.    1473. 
    -#>  9 theta[6]   5.31   5.53  6.01  5.11  -5.18   14.7  1.01    834.    1685. 
    -#> 10 theta[7]   9.04   8.41  5.90  5.30   0.408  19.3  1.01    701.    1390. 
    -#> 11 theta[8]   6.88   6.54  6.69  5.37  -4.06   18.2  1.02   1238.    2106. 
    -
    -print_example_program("schools_ncp")
    -#> data {
    -#>   int<lower=1> J;
    -#>   vector<lower=0>[J] sigma;
    -#>   vector[J] y;
    -#> }
    -#> parameters {
    -#>   real mu;
    -#>   real<lower=0> tau;
    -#>   vector[J] theta_raw;
    -#> }
    -#> transformed parameters {
    -#>   vector[J] theta = mu + tau * theta_raw;
    -#> }
    -#> model {
    -#>   target += normal_lpdf(tau | 0, 10);
    -#>   target += normal_lpdf(mu | 0, 10);
    -#>   target += normal_lpdf(theta_raw | 0, 1);
    -#>   target += normal_lpdf(y | theta, sigma);
    -#> }
    -fit_schools_ncp_mcmc <- cmdstanr_example("schools_ncp")
    -fit_schools_ncp_mcmc$summary()
    -#> # A tibble: 19 × 10
    -#>    variable     mean   median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>    <chr>       <dbl>    <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#>  1 lp__     -46.9    -4.66e+1 2.40  2.30  -51.2   -43.5   1.00    1569.    2358.
    -#>  2 mu         6.51    6.55e+0 4.22  4.14   -0.355  13.3   1.00    3009.    2465.
    -#>  3 tau        4.86    4.06e+0 3.67  3.43    0.444  12.0   1.00    1792.    1620.
    -#>  4 theta_r…   0.348   3.50e-1 0.956 0.960  -1.26    1.93  1.00    3527.    2677.
    -#>  5 theta_r…   0.0410  5.49e-2 0.889 0.880  -1.47    1.46  1.00    4110.    2991.
    -#>  6 theta_r…  -0.142  -1.47e-1 0.953 0.945  -1.69    1.43  1.00    4686.    2441.
    -#>  7 theta_r…  -0.0107 -9.40e-3 0.937 0.935  -1.53    1.53  1.00    4262.    2854.
    -#>  8 theta_r…  -0.296  -2.93e-1 0.931 0.915  -1.83    1.24  1.00    3286.    2516.
    -#>  9 theta_r…  -0.172  -1.84e-1 0.911 0.881  -1.69    1.36  1.00    3801.    2532.
    -#> 10 theta_r…   0.360   3.84e-1 0.933 0.904  -1.21    1.83  1.00    3900.    2825.
    -#> 11 theta_r…   0.0773  7.71e-2 0.982 1.00   -1.54    1.67  1.00    4239.    2766.
    -#> 12 theta[1]   9.01    8.06e+0 6.94  5.65   -0.546  22.1   1.00    3731.    3102.
    -#> 13 theta[2]   6.85    6.80e+0 5.61  5.13   -2.12   16.3   1.00    4538.    3046.
    -#> 14 theta[3]   5.47    5.82e+0 6.48  5.46   -6.06   15.3   1.00    4254.    3124.
    -#> 15 theta[4]   6.52    6.47e+0 5.74  5.18   -2.72   15.9   1.00    4625.    3465.
    -#> 16 theta[5]   4.79    5.10e+0 5.61  5.15   -4.87   13.3   1.00    4852.    3150.
    -#> 17 theta[6]   5.54    5.73e+0 5.60  5.11   -3.94   14.1   1.00    4021.    3062.
    -#> 18 theta[7]   8.95    8.27e+0 6.02  5.41    0.317  19.7   1.00    4087.    3495.
    -#> 19 theta[8]   7.00    7.00e+0 6.58  5.65   -3.39   17.8   1.00    3992.    3246.
    -
    -# optimization fails for hierarchical model
    -cmdstanr_example("schools", "optimize", quiet = FALSE)
    -#> Initial log joint probability = -57.1999 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>       99       137.364      0.389882   2.12196e+10      0.1758      0.3216      199    
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>      175       252.319     0.0285374   7.72538e+16       1e-12       0.001      386  LS failed, Hessian reset  
    -#> Chain 1 Optimization terminated with error: 
    -#> Chain 1   Line search failed to achieve a sufficient decrease, no more progress can be made
    -#> Warning: Fitting finished unexpectedly! Use the $output() method for more information.
    -#> Finished in  0.2 seconds.
    -#> Error: Fitting failed. Unable to print.
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/cmdstanr_global_options.html b/docs/reference/cmdstanr_global_options.html deleted file mode 100644 index 97ca7fb7f..000000000 --- a/docs/reference/cmdstanr_global_options.html +++ /dev/null @@ -1,168 +0,0 @@ - -CmdStanR global options — cmdstanr_global_options • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    These options can be set via options() for an entire R session.

    -
    - - -
    -

    Details

    - -
    • cmdstanr_draws_format: Which format provided by the posterior -package should be used when returning the posterior or approximate posterior -draws? The default depends on the model fitting method. See -draws for more details.

    • -
    • cmdstanr_force_recompile: Should the default be to recompile models -even if there were no Stan code changes since last compiled? See -compile for more details. The default is FALSE.

    • -
    • cmdstanr_max_rows: The maximum number of rows of output to print when -using the $print() method. The default is 10.

    • -
    • cmdstanr_print_line_numbers: Should line numbers be included when -printing a Stan program? The default is FALSE.

    • -
    • cmdstanr_no_ver_check: Should the check for a more recent version of -CmdStan be disabled? The default is FALSE.

    • -
    • cmdstanr_output_dir: The directory where CmdStan should write its output -CSV files when fitting models. The default is a temporary directory. Files in -a temporary directory are removed as part of R garbage collection, while -files in an explicitly defined directory are not automatically deleted.

    • -
    • cmdstanr_verbose: Should more information be printed -when compiling or running models, including showing how CmdStan was called -internally? The default is FALSE.

    • -
    • cmdstanr_warn_inits: Should a warning be thrown if initial values are -only provided for a subset of parameters? The default is TRUE.

    • -
    • cmdstanr_write_stan_file_dir: The directory where write_stan_file() -should write Stan files. The default is a temporary directory. Files in -a temporary directory are removed as part of R garbage collection, while -files in an explicitly defined directory are not automatically deleted.

    • -
    • mc.cores: The number of cores to use for various parallelization tasks -(e.g. running MCMC chains, installing CmdStan). The default depends on the -use case and is documented with the methods that make use of mc.cores.

    • -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/draws_to_csv.html b/docs/reference/draws_to_csv.html deleted file mode 100644 index a87098b92..000000000 --- a/docs/reference/draws_to_csv.html +++ /dev/null @@ -1,205 +0,0 @@ - -Write posterior draws objects to CSV files suitable for running standalone generated quantities with CmdStan. — draws_to_csv • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Write posterior draws objects to CSV files suitable for running standalone generated -quantities with CmdStan.

    -
    - -
    -
    draws_to_csv(
    -  draws,
    -  sampler_diagnostics = NULL,
    -  dir = tempdir(),
    -  basename = "fittedParams"
    -)
    -
    - -
    -

    Arguments

    -
    draws
    -

    A posterior::draws_* object.

    - - -
    sampler_diagnostics
    -

    Either NULL or a posterior::draws_* object -of sampler diagnostics.

    - - -
    dir
    -

    (string) An optional path to the directory where the CSV files will be -written. If not set, temporary directory is used.

    - - -
    basename
    -

    (string) If dir is specified, `basename`` is used for naming -the output CSV files. If not specified, the file names are randomly generated.

    - -
    -
    -

    Value

    - - -

    Paths to CSV files (one per chain).

    -
    -
    -

    Details

    -

    draws_to_csv() generates a CSV suitable for running standalone generated -quantities with CmdStan. The CSV file contains a single comment #num_samples, -which equals the number of iterations in the supplied draws object.

    -

    The comment is followed by the column names. The first column is the lp__ value, -followed by sampler diagnostics and finnaly other variables of the draws object. -#' If the draws object does not contain the lp__ or sampler diagnostics variables, -columns with zeros are created in order to conform with the requirements of the -standalone generated quantities method of CmdStan.

    -

    The column names line is finally followed by the values of the draws in the same -order as the column names.

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -draws <- posterior::example_draws()
    -
    -draws_csv_files <- draws_to_csv(draws)
    -print(draws_csv_files)
    -#> [1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T//RtmpWzIPg0/fittedParams-202503310842-1-4146ef.csv"
    -#> [2] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T//RtmpWzIPg0/fittedParams-202503310842-2-4146ef.csv"
    -#> [3] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T//RtmpWzIPg0/fittedParams-202503310842-3-4146ef.csv"
    -#> [4] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T//RtmpWzIPg0/fittedParams-202503310842-4-4146ef.csv"
    -
    -# draws_csv_files <- draws_to_csv(draws,
    -#                                 sampler_diagnostic = sampler_diagnostics,
    -#                                 dir = "~/my_folder",
    -#                                 basename = "my-samples")
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/eng_cmdstan.html b/docs/reference/eng_cmdstan.html deleted file mode 100644 index a00dec670..000000000 --- a/docs/reference/eng_cmdstan.html +++ /dev/null @@ -1,162 +0,0 @@ - -CmdStan knitr engine for Stan — eng_cmdstan • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    This provides a knitr engine for Stan, suitable for usage when attempting -to render Stan chunks and compile the model code within to an executable with -CmdStan. Use register_knitr_engine() to make this the default engine for -stan chunks. See the vignette -R Markdown CmdStan Engine -for an example.

    -
    - -
    -
    eng_cmdstan(options)
    -
    - -
    -

    Arguments

    -
    options
    -

    (named list) Chunk options, as provided by knitr during -chunk execution.

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -knitr::knit_engines$set(stan = cmdstanr::eng_cmdstan)
    -# }
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/figures/logo.png b/docs/reference/figures/logo.png deleted file mode 100644 index ff4a3c2d2c6341b471617f3039dd3c01e7e9b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13211 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 UD?X8>dCCOPRMk^yR<@7*Ki~*R^Z)<= diff --git a/docs/reference/fit-method-cmdstan_summary.html b/docs/reference/fit-method-cmdstan_summary.html deleted file mode 100644 index 32f0e4859..000000000 --- a/docs/reference/fit-method-cmdstan_summary.html +++ /dev/null @@ -1,318 +0,0 @@ - -Run CmdStan's stansummary and diagnose utilities — fit-method-cmdstan_summary • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Run CmdStan's stansummary and diagnose utilities. These are -documented in the CmdStan Guide:

    • https://mc-stan.org/docs/cmdstan-guide/stansummary.html

    • -
    • https://mc-stan.org/docs/cmdstan-guide/diagnose.html

    • -

    Although these methods can be used for models fit using the -$variational() method, much of the output is -currently only relevant for models fit using the -$sample() method.

    -

    See the $summary() for computing similar summaries in -R rather than calling CmdStan's utilites.

    -
    - -
    -
    cmdstan_summary(flags = NULL)
    -
    -cmdstan_diagnose()
    -
    - -
    -

    Arguments

    -
    flags
    -

    An optional character vector of flags (e.g. -flags = c("--sig_figs=1")).

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic")
    -fit$cmdstan_diagnose()
    -#> Checking sampler transitions treedepth.
    -#> Treedepth satisfactory for all transitions.
    -#> 
    -#> Checking sampler transitions for divergences.
    -#> No divergent transitions found.
    -#> 
    -#> Checking E-BFMI - sampler transitions HMC potential energy.
    -#> E-BFMI satisfactory.
    -#> 
    -#> Rank-normalized split effective sample size satisfactory for all parameters.
    -#> 
    -#> Rank-normalized split R-hat values satisfactory for all parameters.
    -#> 
    -#> Processing complete, no problems detected.
    -fit$cmdstan_summary()
    -#> Inference for Stan model: logistic_model
    -#> 4 chains: each with iter=1000; warmup=1000; thin=1; 1000 iterations saved.
    -#> 
    -#> Warmup took (0.023, 0.023, 0.022, 0.021) seconds, 0.089 seconds total
    -#> Sampling took (0.078, 0.073, 0.074, 0.072) seconds, 0.30 seconds total
    -#> 
    -#>                     Mean     MCSE  StdDev    MAD     5%       50%       95%  ESS_bulk  ESS_tail  R_hat
    -#> 
    -#> lp__            -6.6e+01  3.1e-02     1.4    1.2    -69  -6.6e+01  -6.4e+01      2077      2863    1.0
    -#> accept_stat__       0.91  1.4e-03    0.10  0.072   0.71      0.95       1.0      5781      4282    1.0
    -#> stepsize__          0.72      nan   0.040  0.039   0.66      0.73      0.77       nan       nan    nan
    -#> treedepth__          2.4  1.5e-02    0.53   0.00    2.0       2.0       3.0      1630      1360    1.0
    -#> n_leapfrog__         5.3  9.5e-02     2.0   0.00    3.0       7.0       7.0      3307       884    1.0
    -#> divergent__         0.00      nan    0.00   0.00   0.00      0.00      0.00       nan       nan    nan
    -#> energy__              68  4.7e-02     2.0    1.8     65        68        72      1774      2711    1.0
    -#> 
    -#> alpha            3.7e-01  3.4e-03    0.22   0.22  0.028   3.7e-01   7.3e-01      4093      2683    1.0
    -#> beta[1]         -6.6e-01  3.9e-03    0.25   0.25   -1.1  -6.6e-01  -2.6e-01      4257      3329    1.0
    -#> beta[2]         -2.7e-01  3.6e-03    0.22   0.23  -0.64  -2.6e-01   9.8e-02      3945      3224    1.0
    -#> beta[3]          6.7e-01  4.3e-03    0.27   0.27   0.25   6.6e-01   1.1e+00      3898      2767   1.00
    -#> log_lik[1]      -5.2e-01  1.5e-03   0.098  0.098  -0.69  -5.1e-01  -3.7e-01      4210      2902    1.0
    -#> log_lik[2]      -4.0e-01  2.2e-03    0.14   0.14  -0.67  -3.9e-01  -2.0e-01      4291      2935    1.0
    -#> log_lik[3]      -5.0e-01  3.3e-03    0.21   0.20  -0.90  -4.6e-01  -2.1e-01      4240      2834    1.0
    -#> log_lik[4]      -4.5e-01  2.5e-03    0.16   0.15  -0.73  -4.3e-01  -2.4e-01      3795      3034    1.0
    -#> log_lik[5]      -1.2e+00  4.4e-03    0.28   0.28   -1.7  -1.2e+00  -7.5e-01      4168      2944    1.0
    -#> log_lik[6]      -5.9e-01  3.0e-03    0.19   0.19  -0.93  -5.8e-01  -3.3e-01      3850      2768   1.00
    -#> log_lik[7]      -6.4e-01  1.9e-03    0.13   0.12  -0.87  -6.3e-01  -4.5e-01      4232      3044    1.0
    -#> log_lik[8]      -2.8e-01  2.2e-03    0.13   0.12  -0.53  -2.6e-01  -1.1e-01      3612      3023    1.0
    -#> log_lik[9]      -6.9e-01  2.6e-03    0.16   0.16  -0.98  -6.8e-01  -4.5e-01      4078      3164    1.0
    -#> log_lik[10]     -7.4e-01  3.7e-03    0.23   0.23   -1.2  -7.1e-01  -4.0e-01      4026      2967    1.0
    -#> log_lik[11]     -2.8e-01  2.1e-03    0.13   0.12  -0.52  -2.6e-01  -1.2e-01      3419      2597    1.0
    -#> log_lik[12]     -5.0e-01  3.6e-03    0.24   0.22  -0.94  -4.7e-01  -1.9e-01      4359      3260    1.0
    -#> log_lik[13]     -6.5e-01  3.3e-03    0.21   0.21   -1.0  -6.3e-01  -3.6e-01      4071      2663    1.0
    -#> log_lik[14]     -3.6e-01  2.7e-03    0.17   0.16  -0.68  -3.3e-01  -1.4e-01      4196      2966    1.0
    -#> log_lik[15]     -2.8e-01  1.7e-03    0.11   0.10  -0.47  -2.6e-01  -1.4e-01      4062      2457    1.0
    -#> log_lik[16]     -2.8e-01  1.5e-03   0.087  0.085  -0.44  -2.7e-01  -1.5e-01      3304      2815    1.0
    -#> log_lik[17]     -1.6e+00  4.8e-03    0.29   0.29   -2.1  -1.6e+00  -1.1e+00      3624      2964    1.0
    -#> log_lik[18]     -4.8e-01  1.7e-03    0.10   0.10  -0.66  -4.8e-01  -3.2e-01      3932      2824    1.0
    -#> log_lik[19]     -2.4e-01  1.3e-03   0.075  0.074  -0.37  -2.3e-01  -1.3e-01      3554      3085    1.0
    -#> log_lik[20]     -1.1e-01  1.3e-03   0.079  0.061  -0.27  -9.5e-02  -3.0e-02      4170      3008    1.0
    -#> log_lik[21]     -2.2e-01  1.5e-03   0.089  0.084  -0.38  -2.0e-01  -9.7e-02      3302      2740    1.0
    -#> log_lik[22]     -5.7e-01  2.4e-03    0.14   0.14  -0.83  -5.6e-01  -3.6e-01      3779      3160    1.0
    -#> log_lik[23]     -3.3e-01  2.2e-03    0.14   0.13  -0.58  -3.1e-01  -1.5e-01      3934      3316    1.0
    -#> log_lik[24]     -1.4e-01  1.1e-03   0.067  0.061  -0.27  -1.3e-01  -5.4e-02      3656      3128    1.0
    -#> log_lik[25]     -4.6e-01  1.9e-03    0.12   0.12  -0.68  -4.4e-01  -2.8e-01      4029      2992    1.0
    -#> log_lik[26]     -1.5e+00  5.2e-03    0.34   0.33   -2.1  -1.5e+00  -9.9e-01      4325      3387    1.0
    -#> log_lik[27]     -3.1e-01  2.1e-03    0.12   0.12  -0.54  -2.9e-01  -1.5e-01      3375      2563    1.0
    -#> log_lik[28]     -4.5e-01  1.3e-03   0.082  0.082  -0.59  -4.4e-01  -3.2e-01      3776      2975    1.0
    -#> log_lik[29]     -7.3e-01  3.3e-03    0.23   0.23   -1.1  -7.0e-01  -3.9e-01      4688      3192    1.0
    -#> log_lik[30]     -7.0e-01  2.9e-03    0.18   0.18   -1.0  -6.8e-01  -4.2e-01      4197      3162    1.0
    -#> log_lik[31]     -4.9e-01  2.7e-03    0.16   0.16  -0.79  -4.7e-01  -2.6e-01      3604      2908    1.0
    -#> log_lik[32]     -4.3e-01  1.7e-03    0.11   0.11  -0.62  -4.2e-01  -2.7e-01      3793      2685    1.0
    -#> log_lik[33]     -4.1e-01  2.0e-03    0.13   0.12  -0.65  -3.9e-01  -2.3e-01      4149      2968    1.0
    -#> log_lik[34]     -6.6e-02  8.7e-04   0.052  0.038  -0.16  -5.2e-02  -1.3e-02      3571      2878    1.0
    -#> log_lik[35]     -5.9e-01  2.8e-03    0.19   0.19  -0.92  -5.6e-01  -3.2e-01      4485      3033    1.0
    -#> log_lik[36]     -3.3e-01  2.0e-03    0.13   0.12  -0.56  -3.1e-01  -1.5e-01      4361      3167   1.00
    -#> log_lik[37]     -7.0e-01  3.4e-03    0.23   0.22   -1.1  -6.7e-01  -3.7e-01      4430      3268    1.0
    -#> log_lik[38]     -3.2e-01  2.5e-03    0.15   0.14  -0.61  -2.9e-01  -1.2e-01      3889      3062    1.0
    -#> log_lik[39]     -1.8e-01  1.7e-03    0.11  0.089  -0.38  -1.6e-01  -5.5e-02      4256      2773    1.0
    -#> log_lik[40]     -6.8e-01  2.0e-03    0.12   0.12  -0.90  -6.7e-01  -4.9e-01      4119      3108    1.0
    -#> log_lik[41]     -1.1e+00  4.3e-03    0.25   0.25   -1.6  -1.1e+00  -7.5e-01      3475      2646    1.0
    -#> log_lik[42]     -9.3e-01  3.0e-03    0.19   0.19   -1.3  -9.2e-01  -6.3e-01      4203      3085    1.0
    -#> log_lik[43]     -4.1e-01  3.9e-03    0.26   0.22  -0.91  -3.5e-01  -1.1e-01      4971      3223   1.00
    -#> log_lik[44]     -1.2e+00  2.9e-03    0.18   0.18   -1.5  -1.2e+00  -8.9e-01      3992      2815    1.0
    -#> log_lik[45]     -3.6e-01  1.8e-03    0.12   0.11  -0.57  -3.4e-01  -1.9e-01      4297      3077   1.00
    -#> log_lik[46]     -5.8e-01  1.9e-03    0.13   0.12  -0.81  -5.7e-01  -3.9e-01      4228      3113    1.0
    -#> log_lik[47]     -3.1e-01  2.1e-03    0.13   0.12  -0.55  -2.9e-01  -1.4e-01      3831      2919    1.0
    -#> log_lik[48]     -3.3e-01  1.3e-03   0.082  0.081  -0.47  -3.2e-01  -2.1e-01      3891      3283    1.0
    -#> log_lik[49]     -3.2e-01  1.3e-03   0.079  0.078  -0.46  -3.2e-01  -2.0e-01      3475      2682    1.0
    -#> log_lik[50]     -1.3e+00  4.9e-03    0.32   0.32   -1.8  -1.3e+00  -7.9e-01      4610      3388    1.0
    -#> log_lik[51]     -2.9e-01  1.4e-03   0.093  0.090  -0.46  -2.8e-01  -1.6e-01      4207      3215    1.0
    -#> log_lik[52]     -8.3e-01  2.2e-03    0.14   0.14   -1.1  -8.3e-01  -6.1e-01      4205      3039    1.0
    -#> log_lik[53]     -4.1e-01  2.2e-03    0.13   0.12  -0.64  -3.9e-01  -2.2e-01      3463      2821    1.0
    -#> log_lik[54]     -3.7e-01  2.2e-03    0.14   0.13  -0.63  -3.5e-01  -1.8e-01      4357      3109   1.00
    -#> log_lik[55]     -3.9e-01  2.1e-03    0.13   0.13  -0.63  -3.7e-01  -2.0e-01      4184      2870    1.0
    -#> log_lik[56]     -3.2e-01  2.8e-03    0.19   0.17  -0.67  -2.8e-01  -9.4e-02      4725      2892    1.0
    -#> log_lik[57]     -6.6e-01  1.8e-03    0.12   0.12  -0.86  -6.5e-01  -4.8e-01      4204      3006    1.0
    -#> log_lik[58]     -9.5e-01  5.4e-03    0.36   0.35   -1.6  -9.0e-01  -4.5e-01      4724      2916    1.0
    -#> log_lik[59]     -1.4e+00  5.4e-03    0.34   0.33   -2.0  -1.3e+00  -8.4e-01      4126      2944    1.0
    -#> log_lik[60]     -9.8e-01  2.4e-03    0.16   0.16   -1.3  -9.7e-01  -7.3e-01      4237      3028    1.0
    -#> log_lik[61]     -5.4e-01  1.5e-03   0.097  0.096  -0.71  -5.4e-01  -3.9e-01      4260      3064    1.0
    -#> log_lik[62]     -8.8e-01  4.8e-03    0.31   0.31   -1.4  -8.5e-01  -4.4e-01      4420      3420    1.0
    -#> log_lik[63]     -1.2e-01  1.3e-03   0.075  0.063  -0.26  -1.0e-01  -3.4e-02      3288      2867    1.0
    -#> log_lik[64]     -9.0e-01  3.6e-03    0.24   0.23   -1.3  -8.7e-01  -5.5e-01      4286      3272    1.0
    -#> log_lik[65]     -2.0e+00  1.0e-02    0.59   0.61   -3.0  -2.0e+00  -1.1e+00      3390      2645    1.0
    -#> log_lik[66]     -5.1e-01  2.1e-03    0.14   0.13  -0.75  -5.0e-01  -3.1e-01      4289      2934    1.0
    -#> log_lik[67]     -2.8e-01  1.3e-03   0.081  0.080  -0.42  -2.7e-01  -1.6e-01      3650      3029    1.0
    -#> log_lik[68]     -1.1e+00  3.7e-03    0.23   0.22   -1.5  -1.0e+00  -7.1e-01      3844      3244    1.0
    -#> log_lik[69]     -4.4e-01  1.4e-03   0.083  0.084  -0.58  -4.3e-01  -3.1e-01      3763      2707    1.0
    -#> log_lik[70]     -6.4e-01  3.4e-03    0.23   0.21   -1.1  -6.1e-01  -3.2e-01      4692      3113    1.0
    -#> log_lik[71]     -6.1e-01  3.3e-03    0.21   0.21  -0.99  -5.8e-01  -3.1e-01      4276      3089    1.0
    -#> log_lik[72]     -4.6e-01  2.6e-03    0.17   0.16  -0.78  -4.4e-01  -2.3e-01      4326      3218    1.0
    -#> log_lik[73]     -1.5e+00  6.0e-03    0.37   0.37   -2.1  -1.4e+00  -9.1e-01      3893      3087    1.0
    -#> log_lik[74]     -9.5e-01  2.9e-03    0.19   0.20   -1.3  -9.3e-01  -6.5e-01      4399      2879    1.0
    -#> log_lik[75]     -1.1e+00  5.8e-03    0.38   0.38   -1.8  -1.1e+00  -5.8e-01      4471      3388    1.0
    -#> log_lik[76]     -3.7e-01  2.1e-03    0.14   0.13  -0.62  -3.5e-01  -1.8e-01      4223      2860   1.00
    -#> log_lik[77]     -8.8e-01  2.2e-03    0.14   0.14   -1.1  -8.7e-01  -6.7e-01      3901      2655    1.0
    -#> log_lik[78]     -4.9e-01  2.6e-03    0.17   0.16  -0.80  -4.6e-01  -2.5e-01      4623      3544   1.00
    -#> log_lik[79]     -7.6e-01  3.0e-03    0.19   0.19   -1.1  -7.5e-01  -4.8e-01      4156      3125    1.0
    -#> log_lik[80]     -5.4e-01  2.8e-03    0.19   0.18  -0.88  -5.2e-01  -2.7e-01      4708      3185    1.0
    -#> log_lik[81]     -1.7e-01  1.7e-03    0.10  0.084  -0.37  -1.4e-01  -4.9e-02      4002      3125    1.0
    -#> log_lik[82]     -2.2e-01  2.1e-03    0.14   0.11  -0.48  -1.9e-01  -6.6e-02      4234      2703    1.0
    -#> log_lik[83]     -3.5e-01  1.3e-03   0.080  0.079  -0.49  -3.4e-01  -2.2e-01      3872      2864   1.00
    -#> log_lik[84]     -2.8e-01  1.5e-03   0.091  0.087  -0.44  -2.7e-01  -1.5e-01      4033      2778    1.0
    -#> log_lik[85]     -1.3e-01  1.2e-03   0.075  0.063  -0.28  -1.2e-01  -4.3e-02      4008      3071    1.0
    -#> log_lik[86]     -1.1e+00  4.8e-03    0.31   0.30   -1.7  -1.1e+00  -6.7e-01      4424      2829    1.0
    -#> log_lik[87]     -8.2e-01  1.9e-03    0.13   0.12   -1.0  -8.1e-01  -6.3e-01      4199      3091    1.0
    -#> log_lik[88]     -7.7e-01  3.9e-03    0.24   0.24   -1.2  -7.4e-01  -4.3e-01      3979      2725   1.00
    -#> log_lik[89]     -1.3e+00  5.0e-03    0.32   0.31   -1.8  -1.2e+00  -8.0e-01      4105      2643    1.0
    -#> log_lik[90]     -2.7e-01  2.2e-03    0.14   0.12  -0.54  -2.4e-01  -9.4e-02      4059      3128    1.0
    -#> log_lik[91]     -3.9e-01  2.0e-03    0.13   0.12  -0.63  -3.7e-01  -2.0e-01      4231      3276    1.0
    -#> log_lik[92]     -1.5e+00  5.5e-03    0.34   0.34   -2.1  -1.5e+00  -9.7e-01      3905      2575    1.0
    -#> log_lik[93]     -7.4e-01  3.5e-03    0.22   0.22   -1.1  -7.2e-01  -4.2e-01      3995      2990    1.0
    -#> log_lik[94]     -3.2e-01  1.4e-03   0.087  0.084  -0.48  -3.1e-01  -1.9e-01      4054      2800   1.00
    -#> log_lik[95]     -3.9e-01  1.9e-03    0.11   0.11  -0.59  -3.8e-01  -2.3e-01      3454      2901    1.0
    -#> log_lik[96]     -1.6e+00  4.6e-03    0.28   0.28   -2.1  -1.5e+00  -1.1e+00      3721      3096    1.0
    -#> log_lik[97]     -4.3e-01  1.5e-03   0.098  0.095  -0.60  -4.2e-01  -2.8e-01      4401      3224    1.0
    -#> log_lik[98]     -1.0e+00  5.7e-03    0.38   0.37   -1.7  -1.0e+00  -5.2e-01      4630      2912    1.0
    -#> log_lik[99]     -6.9e-01  2.1e-03    0.14   0.13  -0.94  -6.8e-01  -4.8e-01      4146      3139    1.0
    -#> log_lik[100]    -3.9e-01  1.5e-03   0.096  0.096  -0.56  -3.8e-01  -2.5e-01      4330      2963    1.0
    -#> 
    -#> Samples were drawn using hmc with nuts.
    -#> For each parameter, ESS_bulk and ESS_tail measure the effective sample size for the entire sample (bulk) and for the .05 and .95 tails (tail), 
    -#> and R_hat measures the potential scale reduction on split chains. At convergence R_hat will be very close to 1.00.
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-code.html b/docs/reference/fit-method-code.html deleted file mode 100644 index c8190b196..000000000 --- a/docs/reference/fit-method-code.html +++ /dev/null @@ -1,201 +0,0 @@ - -Return Stan code — fit-method-code • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Return Stan code

    -
    - -
    -
    code()
    -
    - -
    -

    Value

    - - -

    A character vector with one element per line of code.

    -
    - - -
    -

    Examples

    -
    
    -# \dontrun{
    -fit <- cmdstanr_example()
    -fit$code() # character vector
    -#>  [1] "data {"                                                            
    -#>  [2] "  int<lower=0> N;"                                                 
    -#>  [3] "  int<lower=0> K;"                                                 
    -#>  [4] "  array[N] int<lower=0, upper=1> y;"                               
    -#>  [5] "  matrix[N, K] X;"                                                 
    -#>  [6] "}"                                                                 
    -#>  [7] "parameters {"                                                      
    -#>  [8] "  real alpha;"                                                     
    -#>  [9] "  vector[K] beta;"                                                 
    -#> [10] "}"                                                                 
    -#> [11] "model {"                                                           
    -#> [12] "  target += normal_lpdf(alpha | 0, 1);"                            
    -#> [13] "  target += normal_lpdf(beta | 0, 1);"                             
    -#> [14] "  target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);"         
    -#> [15] "}"                                                                 
    -#> [16] "generated quantities {"                                            
    -#> [17] "  vector[N] log_lik;"                                              
    -#> [18] "  for (n in 1 : N) {"                                              
    -#> [19] "    log_lik[n] = bernoulli_logit_lpmf(y[n] | alpha + X[n] * beta);"
    -#> [20] "  }"                                                               
    -#> [21] "}"                                                                 
    -cat(fit$code(), sep = "\n") # pretty print
    -#> data {
    -#>   int<lower=0> N;
    -#>   int<lower=0> K;
    -#>   array[N] int<lower=0, upper=1> y;
    -#>   matrix[N, K] X;
    -#> }
    -#> parameters {
    -#>   real alpha;
    -#>   vector[K] beta;
    -#> }
    -#> model {
    -#>   target += normal_lpdf(alpha | 0, 1);
    -#>   target += normal_lpdf(beta | 0, 1);
    -#>   target += bernoulli_logit_glm_lpmf(y | X, alpha, beta);
    -#> }
    -#> generated quantities {
    -#>   vector[N] log_lik;
    -#>   for (n in 1 : N) {
    -#>     log_lik[n] = bernoulli_logit_lpmf(y[n] | alpha + X[n] * beta);
    -#>   }
    -#> }
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-constrain_variables.html b/docs/reference/fit-method-constrain_variables.html deleted file mode 100644 index 16dac657c..000000000 --- a/docs/reference/fit-method-constrain_variables.html +++ /dev/null @@ -1,204 +0,0 @@ - -Transform a set of unconstrained parameter values to the constrained scale — fit-method-constrain_variables • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $constrain_variables() method transforms input parameters -to the constrained scale.

    -
    - -
    -
    constrain_variables(
    -  unconstrained_variables,
    -  transformed_parameters = TRUE,
    -  generated_quantities = TRUE
    -)
    -
    - -
    -

    Arguments

    -
    unconstrained_variables
    -

    (numeric) A vector of unconstrained parameters -to constrain.

    - - -
    transformed_parameters
    -

    (logical) Whether to return transformed -parameters implied by newly-constrained parameters (defaults to TRUE).

    - - -
    generated_quantities
    -

    (logical) Whether to return generated quantities -implied by newly-constrained parameters (defaults to TRUE).

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -fit_mcmc$constrain_variables(unconstrained_variables = c(0.5, 1.2, 1.1, 2.2))
    -#> $alpha
    -#> [1] 0.5
    -#> 
    -#> $beta
    -#> [1] 1.2 1.1 2.2
    -#> 
    -#> $log_lik
    -#>   [1] -0.671996961 -0.076521408 -0.050097680 -0.859061944 -4.368940350
    -#>   [6] -0.026348601 -1.399709850 -1.607383090 -0.197580264 -0.161519876
    -#>  [11] -0.020289680 -0.005109469 -3.391453198 -0.438505774 -0.019831358
    -#>  [16] -0.320576250 -0.491982174 -0.985897601 -0.760711848 -0.135968222
    -#>  [21] -0.090365458 -0.289106971 -2.401995550 -0.741279075 -1.130539252
    -#>  [26] -0.051754355 -0.052810285 -0.592894549 -4.203884680 -1.627902707
    -#>  [31] -0.086396696 -0.055223416 -0.702223347 -1.437214411 -4.277397542
    -#>  [36] -3.430371053 -0.029399304 -2.582700752 -0.082096143 -0.613542693
    -#>  [41] -1.631715761 -0.780555873 -8.456425184 -1.129873174 -0.803760727
    -#>  [46] -0.375921603 -0.200697408 -1.179516083 -0.288812923 -0.028251618
    -#>  [51] -2.203830461 -0.542549041 -0.108332542 -1.410224678 -0.176267923
    -#>  [56] -6.137792581 -0.301999796 -0.002415079 -1.082073078 -0.661755204
    -#>  [61] -0.906463865 -0.022520669 -0.200599774 -0.088896080 -4.807633540
    -#>  [66] -0.027891348 -1.129060197 -0.378523990 -0.287530851 -4.083209231
    -#>  [71] -4.503703248 -2.056130808 -0.409881228 -2.435290917 -0.022311747
    -#>  [76] -0.310871780 -1.558477854 -3.416918272 -0.143495888 -0.017064658
    -#>  [81] -1.422948018 -0.019539438 -0.383208393 -0.083042642 -0.216009949
    -#>  [86] -3.175676338 -0.547416219 -3.767462435 -1.854701489 -3.595218847
    -#>  [91] -1.713321036 -4.146153592 -1.389571073 -0.344785402 -0.305319997
    -#>  [96] -1.233113298 -1.753232181 -0.002618034 -0.608156530 -1.329013367
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-diagnostic_summary.html b/docs/reference/fit-method-diagnostic_summary.html deleted file mode 100644 index d7d13b7c6..000000000 --- a/docs/reference/fit-method-diagnostic_summary.html +++ /dev/null @@ -1,219 +0,0 @@ - -Sampler diagnostic summaries and warnings — fit-method-diagnostic_summary • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Warnings and summaries of sampler diagnostics. To instead get -the underlying values of the sampler diagnostics for each iteration and -chain use the $sampler_diagnostics() -method.

    -

    Currently parameter-specific diagnostics like R-hat and effective sample -size are not handled by this method. Those diagnostics are provided via -the $summary() method (using -posterior::summarize_draws()).

    -
    - -
    -
    diagnostic_summary(
    -  diagnostics = c("divergences", "treedepth", "ebfmi"),
    -  quiet = FALSE
    -)
    -
    - -
    -

    Arguments

    -
    diagnostics
    -

    (character vector) One or more diagnostics to check. The -currently supported diagnostics are "divergences, "treedepth", and -"ebfmi. The default is to check all of them.

    - - -
    quiet
    -

    (logical) Should warning messages about the diagnostics be -suppressed? The default is FALSE, in which case warning messages are -printed in addition to returning the values of the diagnostics.

    - -
    -
    -

    Value

    - - -

    A list with as many named elements as diagnostics selected. The -possible elements and their values are:

    • "num_divergent": A vector of the number of divergences per chain.

    • -
    • "num_max_treedepth": A vector of the number of times max_treedepth was hit per chain.

    • -
    • "ebfmi": A vector of E-BFMI values per chain.

    • -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("schools")
    -#> Warning: 191 of 4000 (5.0%) transitions ended with a divergence.
    -#> See https://mc-stan.org/misc/warnings for details.
    -#> Warning: 2 of 4 chains had an E-BFMI less than 0.3.
    -#> See https://mc-stan.org/misc/warnings for details.
    -fit$diagnostic_summary()
    -#> Warning: 191 of 4000 (5.0%) transitions ended with a divergence.
    -#> See https://mc-stan.org/misc/warnings for details.
    -#> Warning: 2 of 4 chains had an E-BFMI less than 0.3.
    -#> See https://mc-stan.org/misc/warnings for details.
    -#> $num_divergent
    -#> [1]  23 107  22  39
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 0.4160269 0.2285873 0.3803260 0.2845859
    -#> 
    -fit$diagnostic_summary(quiet = TRUE)
    -#> $num_divergent
    -#> [1]  23 107  22  39
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 0.4160269 0.2285873 0.3803260 0.2845859
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-draws-1.png b/docs/reference/fit-method-draws-1.png deleted file mode 100644 index 79a6eb1cf327dd9b5bbf095722025f456f1f7f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58991 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 dWYAJ$dmnH99ajQn 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

    a(Y^^ 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%0DC; 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�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%0Aift8}_k1yhZD9035 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

    041VrXM!FE|Ue`_hS%V+W6~LV&JB@5a zIR&>y0ciuZuR7%+KI<2S7G^!mxIX?G>axlR9~X6bjRL#);3Kb*xo8G$U!H9GqNz!^ zjEYkEqFL%%`X0^trkY2N1$GbNZjeOg?E-(8Hu^TRv#95UU4nn5y^#gJ9E$nQ|Ax>6 z?ydTsQLmr_$mfQ$!uC0<*8v3mqd?0LP``PE6Y6pR%JRuC6&^g6=2G~^uj;0ePWQ8` zpnqR7f3AaYhX&CtvHbhpm40IuM-B{9LGuw%S)wZZ0K^_gD?WImu+|<3NLw%}9{5&i zP#MEpL{nu&sFe9rM+2qsmi!29iXci{Nv`FZDtLz=vYhpX>ou&wrT==kX*-KFz~l784B-({D~tlCc5Mut`_JO;h+ziK`XKwVMqr@5W&WyR-dqL&#gwG_jx z^u|{h$fqy-Han#nEuDM}X>?Ob&5F_YPwd3bHaulU|k?|%IzQO)VZo_U;>%>Au)7cQ zW1kG5CgMtau4?@OPHpNgk_u#85y&TjNIm=cb5maRt7d4)I1QSX>6m%@0DaDDBrcR| ziQq00>M;ME4Qro>#3~PiCLqi53Rb|$%$0196x2V#nC7O5vh13jh)x~gK`^RS%OWkM z(uby{=%OxcxxRO4vh-@vv-66wHwyDZ8Hhx&PmuFSBl=#pm~}TvFWL~^HvXV6#A8JF z<2QGC28A~7%@w1!u$qEf<>%e8EBvq@ty+3xh$7TCgc&Uz%5hqn@06+fL$~fPdtc=3 z;E@FLQIQ8}h@D{)^z6fB;qwcdGBbRl?HtX%1qWo2vi+(+a;}oQ#Vmvw-*ZtRRa5tj z@i>+l=)5Jxn=B;{$}u+RQ!_GmJ*?PUjBW9upwmgT83@<9GS$5|gm#Kg|5YO{n ztSL*{i3h<=IKC(|2xm#&Ep~>|$>j5aUbMEK%HLE;fXwIq7V|PH>xRrH)J0{kx-mJH zPv&#mm{=QynT`pw#l>?K-p81qQgI?mX!CJ<3)Q7lb*eD7E&-w))R6s)cmS%ZV;r z5|YxJK_20psti&wc)U@gnwLn3#SyxauN*RDme-TVzv;@%^Y@}HYdP{HoJmMwvS`~M z^o+ID>xqKf&_LUCh{u`gyl}vX23o40-H!0ASqVI5SMG$aekedp>dR9)gslL9^Kfk6w&|LH->yMOJVY7WQR8P9xK;Sz%YIa0hmG_R+T!X0ugjF93;v!u+{c&X{ZG z0{Y~-3K)yw1x(eRdTSJoPzGM2785cTZ3BKTh7pcO7lLI&(*Bo zAGNsm*7(!m=o05VDd`^$vr42S+bLPK2fh>Oz{0?(;Eu~5M(t*EXAi?b=D zEV`@z`iUOqs5w0ez29}n{!_i&bW!n5Q#P0kE+%(#+s0t9)ZMBh7mIDu_j;$WJ}??m zOJ&yfE!-ikSQm>vCm!(4Jp4B2GgiCNrznOE* z-dOVNd|JycS@qf6AX^r~Z4Y_+`TXB3byLt7BviOa-oRwkUr9AAm%--rA<%p4zC$A} zs2uKnv%wc80fga+_1sN_j|87(W+r7LyVkhp_6~t(hf3T1PCGsFyhBrUz@Y<*C(6)G zUrgm+n2A4ffsG%Y=erwxhtyu~ETa9>50`MZDFBT)FL%q(rea3MLMQp%*p?2}C?RIU zpAGJB75ByM287Vo%tTJnFfx(JK*mmz|HlzV{7KaD-(SE-T-CY`$tMAzH23qEo7?XC zpGw%2nsmXj+C3>gAJKQuhQYv!r*JD)N}nHnrmE zvTk}KfIt{6I^-?0T5@&_B0-5t@JjqZa7R1}o2IL!@Ftuj51*^7g-jg@sD0A>9-+`Y z^;zu454)F*opt=hVq*T$WQZ9kn?C1HuL`ahP?_~bK=fu{(R*k&20WJ!>18r>b4b36 zpa8dICZ=LhK|5@4$6CG+)h0nff^$LN5Dz(o=nfnf$fVq$jY||9%&b@OxsTL(caN`u z0qyu^KMq_DJZ7Aw`MUcdXH>gKRDCz;9c}Uk!XN%p^T*3WqlACatt`w41(^-=27s2& zEzUUxbjIsY+Q=VFR;e3twWg2z^8Eq^%Q{nK5rU3PM2e*^Yqa3{As#urYs_Y>pLx|1 zezJ;MWr*Tu>+ZY6QMM6gO6)}5{6vk%c5$EnHD}e*lT{TV;;J@UtlAgXc+?2U zcEkeI@n`}bAEUC76g?;-^AHZ2H82X$9I-jvba^3bSj7=eyNLQ4XvSQTKJp49Buh@# zxLZJ*QrWun1SO?iHy-e8v|EC*;y0C~v3)KD*;kMg_3mgaH@CWNYt~a(9(WnMS{c)h zah`vP%4N$^`dC^~FFbSO6m_}S_r#PtUr@6?vS6F@FIpOJqMl{iQ?xCnf;+`?G}MS2 zQXO@iDd|`oPPJ^86A_kG=`ty=;CM}@DV-uId4t~Njd$PyIxeX#7)X(11Y3hBjtWA8 z@=}iMG`+{B*eeddD*dihaT~-w(5N;4hr6*cQV|^;bQr-yW~=y>^XS+VVb!FFc$L-& ziyj+moi+)u<428-t|3)N`OVcFNl}X#FoK5@q!x_ATs>|ueRjf3-h~zP7Mo`DO zp$1}3vFQ`cDXd7umbi}Si7~8M%aH&f-O+DcZw4+UJ?C(%GT12A;Z+Mr?oAFAaGQ~> zQZy;VeCzw3+tMXZ+|1D)jf&@#Pt!;4{12iG`ykE6f3f;33*^k0&@m-+WGRyOKOA;nBNLFh!0=diyzz5TXc7nF0>$k2=ax}@rOFSGQF7qV zkkji!weI$;_4{(sr*^K)#rR*FQelUH?DZjo&NwC2JwHi2{den^az~qX(g`UCRB&C`vvgF|qI>+EU6JhW8 zsp!ZdBzZH5;r9NpT(i4&k7cQoZus!2`bXGlsE_EK?~D^p5sY|i)F6{?i#V4+K3Gcf znp$8ASR_*)5+koW!!7r42NqWSy74q!=L#bxVqD+cGif-KBCaPg!Y>?^D#uVCgNi}( z_3{b(@`hs~H(|cf)u}U2W$3>o8@w&iHJU6{uDw~gZrScp0Rn~UC?XhU-t2RCcpW8% zK6D~I%0pXuF^|YZ;Ov-|?s$1=WkmHdl%}w@1I0%J=58PM5p7m1U3U9H_B3b0Yy8q8 z5Pka_-OLXeNoBw#mq>1S11-!07ZaH&WVEfGRw>1{utRc77%|HwWZK19HzuuGd>1L6 zB3dnGQyEN=p>P1e!GsqMR??kWMq7Qq@GsBHi^a>{$3t`?0*r)Z3QPW14sOx{lC*^p zU9qIU;Eq29v2wbtih2%-OBj?sc*}P^UuKX`Pr&YCR3&jO|J20_sJa5k+rqf*Xn{kZ zj4fQ}luTpNedE7x!g46!jYYE+ybWU>4J*88lZDUKWlQxGD0t%un~0N`8ax9Mq)@g~ zzQ88f%G;p1`q|@@DcPM%(@5p>NIAF=RO4qQN?AkL3NEfn?>AvsD~g|5~^n2;=Wced&9MZJl2Nd4irjSrbq1F*p}0~o1m)V*zvC{6C0gTO(I}r zJ^F}Wa<%nCk!jX#&6&X;)~Z0S4vNg+taG^&Z0jMlrHA4I$yx{Q6Kc++A+kB!7#H_G z^EXaL5dlXkN2IN4AQer8fX#Q@!(&fSRssS4Jtrg{6OoX-5Uk~=yS?9hp3$zZm2sqY zOs%q2dqmOyn|$joY_+_AtzIfJf;MgrAANn%4{PW#Vo;^E5rM@D5h#L0}XypttJl+%I^!_#qv@y_tAZ+iizpX!)RW{dM zqTgpJ`>4F`;Jw@dGDopkJDy?r-DSA~Q&x<6hmf|N*0*^~UQg86SACK^0+7V?*;#YM zU!S^)8*TG9eN$YW(Y_j4xPR|^>EkmB6d}#uA$9SA@p|5UQ0n%L>hSr9mKFDjbk}AN zXPPwemQLw?(ldO6ABtaxE`LB%sDGf+stoNn*^3u$I1rOZj}Pts7+jG& zBudjsSQMT7vwVKplJ}>w1|K6Sb$a&6>E(mi=zF05)vCzT1BSInE^VXR%M#kl4W2nF zt(~#8yt0OW^u{;YK7s${xzE)oVt- zel~fT>gS%fD<#n&7_|t063G^mJA+!LQNZg2ABCppmAkL|wMHcmn}M%N1Gia3!%2iLlG!UMj17dt|H&A5cJclgr&3@wE3+^#8eBzht@$-m9R+HSaUmbilCBua zgvIGq`{aVfE@+U}Bg$ovOwfLXwX` z*}Dzl)4QABOly7ai*z;^RGHc>_Ow|8)%}=V1m|-N_<{v&K10-cH^(J5 z89gFe-GiR%dppFbPBh7{J_al+xYR=b>jh9x&v(tKB=a^%oEII>q7d&7ZFEEWPT56` z)tJ|n8f=0^QF_Mkb{pXy%I%^1olpdfI2$bd2`~i|=!{VLV;^eDTVpeAuZtW81gm87 z()SC1?D7~iUu6tjvThvv?4^t7hoV1$A|;_ZlaOnWX-Z3y0*A<96R zJmx%9aAg9`=)Uf1U*TXS0zutI@-t#tsuhpMFLw0b%8D9|EIcMB62w#l76wRqI+zHF zv01o~x)NNP8m>78O<~Ij#p=Uv;&`r(gsP-nM3>j(=SbfJlnop-3Lxz`iWxMY%fs3d zIh7ewT~3M7UVA_?`k;r4DNS8K9?i~5 zoE{ck&yb%f(6p-H_4)W9F(FE6(6zTYMaHm3C(G``BDkKqB|%;aX_Tg`K5p^_5eB#1a5NE07V`38G>7Sb3Hj?IP>8F@LEFPgNA zez}mGy3C=iD_k5a;<%QW3iaS9E4+F$pM7!Lv|yipI%91SdRTSnTcQeC9B@7Rc)CoK zx(>dgYTTq#&iS<(Kz`2I57CgeEES@b(@9=xMIRm5mPmta$^C9w0`&seEe`b zjn$U*Fq%c6uJxI8`zPe}qWG0kAgGD|l!?aZcBc0jCqf0gYgp1Sw zaF2n#E6%t1H~5X(Xm8PJeR|81ycpd)q~*;pe{EeM+PHdS_r84<*|AkBsmjx@=KPE^ zn>1l4vaas2n*Fm42aOeASjg{9=g&U53>$VIy5rSZjKsOa)=QZ4z01(|$Er@WEvr|8 zY0(d-?gqcU`|`;jUoUKRJBf8J=CqG8iiV)+$iJe!ATH+R%UP)A(rsOKQasuZcf7!B zljpB@hVZ%#$j!w5RVU!x{bqg%PvN^i?zf|5^d1nf_n)p>J+04W^!omHeeEnW@~3m& zwG)%#@}&qkrvCBF=we`eDd_l2xXgMir6cyAS7|Q$t(NA*FMM0Jl0UUMm$K$A>hk!d zx8~)7_$S5dCeiMNma>PaxZ4@L*gFYi6mRKyStA3^UAnn2_6e^KZp1G>0EXffN_3AD z9L-uC9>$q-O>;hLmr?^SdfW3C4(R*ccv{_DT4hY+(%A!(e~vjYeeB-^Qj<-du+}FN z#<3*~$q}Iwa|aT2yT2oqwrtQ8@c_@eZAh;P0*-|Pe31Ewww5RZewm1@Khuq`lL3%i z1Co+dji0N^GKAr^n*$<9a|g!Ipr#ZNFpKuHn8c_W)f;SW-xaz|i|)LmLkvQAi&PXE zHCig{6!e%uEuuNVXCdQ{Z_B46MoIt9L-r4EJb1&(&l3ko57L%GULQOZ*w`Z^@L`B^ z=}`aC84zMSy?512NZ?y}YeO72>Mc8Z3lr#aVA8QAvSwY0WHD?-M%lEmT14&VXnPi5hmp9iJ z#ae@plk{f^SkK@~Mk4Ys=?lIyR?Kx~H5lfAG$Tg$NS#mHw?}47m%*l_UiWX%qK(}8 zH#vLRx=8j-sV`VSLO5!A%4pu-(v$Vtzm`jx*XrW7+hs8c7GCv^d^EI!Gj+)xnlr2VSlGwj=DE>`0Eo4rJtqVewC<-FcI3?1?VU}%_ZY1K({u4G*D}g|m znu(U0mzhI{z#^NdnNfiVF%^l+&$NN*P3o_dYE%A5LnsHH;W!rk$!Q_#!H&2;tE1ZMeXHA}=*U)sa z$dvKe@%FtPz}iopk$&`4wGr>2dN_RGZXj(t&6EBz(4NMl%oJ;btX4}}E#0Vn@M+tB zFCe~=e|isslD=6EFa-p8g1*tYqfS9>Lr3Sfk1wMke0QWSW!*k-^QG)zy{xv3o1p-&K)ITc6sG z$;?+18#--#M`n-Q8ls;A-4z&Rn zlg*i8Y%Shb)Vw(Q@7f-a+(b>==l?B1)>orSW}#cJnNjY3D{gd-W7)j~G`>pO7Ep0xlu|45R(bKaiB$Kv}ml zo4zS|&&xsIL(;*EQ>Mazw3aUA_E+r9KPnM}tcN!esgY6M*G0a-4PUW9d&2nYWP<5m z9zATYOIqfK?BnLGvb(G}eLL-M+1Q-W!M2IF9WARz5R!oZBYmQC^A(=Vs7o}M5CL$~gXc;aS)X41oZ%SVr5e8(EiK`D$objQK+1iB zpz9i}+g@)^=9mQK9snwb9>h51^HVkM6 zx2Q}-HL64MdOpEiv6~2^KRgmM({Khk$~qLq-DNHM{%TpNRuC5|S{0zguw(XhMQ_3V zI4?aLmqds69JFZpdbGBR_>RGZj6e|j7f;>531x+*BqS=oMCUQTqwiucS& z!le)IsJ6`gNQ)Dz*JE{AO3l3X(eXp^o(o1{-kK9(WkiB=Kq<2AsJl_Bc$E9ZpJ=El zv)Y)D*OrCHjl5)AvOqf0j%)45z;8`N2|sG?z83V~VL$MfPpR7?ooK2Rz*)O~@7|Igj6(zW1$Q0>we+mA|;uSCRu3xV!OHIQiDI_-gyB7aJa1-&Jw`ScZ zgas0pMHqx}gaMe4B0WQVy2J%F`D1iIax$g#0?{CR3aBO8gQ0GfmJr31W^I#p0)6Ba zFf>mVrW@0h)YnFJ$C8i38La?s%JPzg_kgqZ=wRBdVnVWoChr+ro;duCSp~=`)6w6| z&Wh(Ajag^92dOJb30>&NXO^O_b`XANyAd5Q%}ngvC>&!#l&)G{ml4+?|{KU$HU4eori-e%FAv$@P~P z!QOmat}cR^6#4vgSI>@ajVJ%)9J$wQ#{fx~1?nU&?KV%pigTzI#uUD^1se_FGhtad z@e~E#X7p6tnY6i`4^MOIr@h%~=|5Vwva`2dV4Jvzv#A-E^bH5P4N|;aKdWi~cfl2$ z_m%!%<;@X&BUyG%9-dt#zh*M(8U|;dZI~t~2Vw&sg>7yby1vpt`=|!`-6767x0mD= zuYjwkV}rkJ4=*KKo0E6G8WhjJW4Je^S`JYUoaS=h7}gAEl(oYioB!y+7GSD1aRdf` z&Jl;mJ*=Dy4->o{VpwHeoWCcxLybrNp)G4>?)Mx`)xv>WS(kicLlHaME^}8|v3Fk# zk(X`OBW;?%XOI{tpoZJ^I`|TCFV4jKhow)bN5IFjd~ggZ{qi4f$t<&RuV??8k_=A6 zp2-00E&ClCb|82M+Y*C=)lfV$*fJnc^rl&fo2&bZbht+K(5bm_usLA~6OE7t6%OdL zVIJcMRrmnxpJ!CrQvO4~Yc#LmWsW`j$dWZ<27&nc9ZIwZ`9N;{;elkbF@E~0RBrvq zk7)mZ0JXe{QJHdYYlIy~7UpOa%`0Opl5&B=_CbAe>z_tgG($`KPUlseqQG_treYb`xEnbGavf){sa z!1i8g33rG#?ujkd>^y6S_4p{QEm7+{VD3m#LY-hvK}~~s6*c*Bfg1nIwESX~Uw7oDaco55%0_#9I>SWIH#61eWrI8a5mhqZJX2 zuF}`wy^s2Kini)Cpe0lOnCP!7FGLb*=>}~QadBQRANvo(h=m;LPJ%xV&sS~xNh6G{ z)Jb${$1npXTxIZDP`zkx<=v3@4v7eSbzQCPg8Dhti%D2rRpPo*--V7S6_cZ-`qbqXTLy?H%D`>Zq7Ak~SpHoazsR1F!^t~vOB%!C zjl4Ro{v*9A7}>@<16OXrN7|1igbAk)wWs{h27w;dJGs<-Q3{RgpBm+DkES@?8+k((+Ql1rqOt=*ut8`7^3= zu4U&smxmzMjV z;jC`rx>K@@<)fF>{|Vd z??iYEJ9hWc^+Cp(D?!_UvyA}yM|>1+&ITnk1oa#bGj_jHuuvC)vPKBinHbYhQa^u<4+ddt4@6LUObRdUWVsDU#zrD*SZp1LY?xW!RD``*F4|7kTU#v*V`kBV-2yW}rk2hR{n-xPIkL!oL)Dmtyts;e|8k!0RfrZvp{sbQkxI`b8i z<7;m*UBvvI0dU_g$>dp}(~Q{X`il4Ymde*ZqC>n`7$~YU-{`PNRs3*4;N*9X*f+nm zMpfM&>LLQ#uEDqd{vevSPUAvWn!TMvREuP%+R{Sn6fp2j2*FO0F2mU@Lz5iU?TZS% zv4&FIP~feBGxtV^(!NB@$)7Jtmf4z5>x0F#r6=4B8(`tqxBWBziCVzs^^2O?%km!n z)XQO)wf{WaRPjGjSc;KmZF}&m0Vl~+J{_jv=%GWyP|z^(>+9X=cLW<3K zRYi-k-q)`Wf2eg~SpMNP$X4I|{<=Dp%sdRtx-nSW5oeU!O(&P55R}=3qTenOm8<4<@)9>^aUlOy-~l_ST>X( zm^G?%e@knAkqlTbjn}KaCi|G^;g@X}kmp9~Rs=D=fU!Y)NyFXyg)bjIDGS4)#bc9? zUh|w>IGo+rZzy#N_YLtbUvuh%!)KG|{xNclqrKo31%R{x!&Fx8%CoXY__&{PPeQy~ ze31R3vEe-N(~&9Xa33N@W~v>Gk~F+IT@RN>&rmk53W<=~T)W8EuIw zW2bY`rktk-UTxNHjQ`k;KhDZ>@t45fFcS%iJo(bUqhNbS{9TEqmgvtzc%pw+lVWsB zAwO;h+m4#d;PfQV3`;Q?_kiw0 zC}aD@TL2s3xAmEEfz5Ui=TrPi6jb_n^w?8w4ymCK>rQDE4fV}SI2n!~AALo)WY3GL zMr_5EkMD2=T3}t8FSr;h+7s}H(hk(?BS7yWX5}BwM@5af@%0j7o`yg$i{_Ew;zG*< zp>%YEl1w@C0J5gp0F(Ykt+4m0%C2u0*X&N{L1vpsAXq*H5PuRSwTp(;p@GLIbf1OfuXSy2|et_wAK3gj6d+ z5`_90#sPNt7u>UKl4)iGu1@T7bsqY&HPso`QvYs4=Me$<+RMhhygGx4LU)9Fn{Z0{ zT9pmV-#HD_s&5)Et)px`&8ok-$Vn2BQuElY=zi;w{|$ciC!?o}EFc8+#qjtUq49r; z`deTaUZ|Nq3iw=xkqG61zOM~y>0)d!tdxaURwA6HWu8>~V8>iyb5&R*_5=Len%S}^ z=M!JZ$4Q&<%fxJlEU9$?TQa*_Dorr5{wA4*V>7?pOGb}S&hR!>ndGtj2S-;9{B|ob za4-y2cj)HQ3T;dB(Xh?XJs(W9NK6&U6$BbGhiNP8pg)e&+KV5bbmowZK`aE@9VV^nNd*Wfe$zME4AZ3u zC4n|68g2IyjbWy$L+bQeXHRK?QE>Mefp1qf&#N_oX$`IYyRSq0oL%ouF)q_~YUvx! zz7$e#uGVQjO(G7%JV8;R+5IE!w6f`D2)~yW(%p?$}$zT`!A!or}MhfD{|XWulK)XW1FA z>ijQ}JY6c;)w4Sq?<7`rLWtWS5w9?4$L62^s_xdz)bo697N^W!bewnR&nvgDXQP5r zT>}kEB|FI63h^-s>-`$dibt3d$GaTA$&E#6{>ArKgukGiIiChbeXxG)%Y8SBuw)C!9A|M#-Te_Yalb6jD>QzC{>fzV^&YBvf84P03N6 zJU%OMtRXmvb~ag*nls|&^Tn-l`r{Ek|+nWJC+U<{9_657e1(J3|*;m@~5`7Oql zdz56Ph&~eSiqs|sl2kf}p~hP$-wW&?llj&es`;zc0HDZjjSv615F?c6JOGxCN5^sS z)gQj+&>4)jf>EUGH^Xy{J;kSuQvq9h^woryZB@|;s8$~O?;A@e$gd-N8M#GG!w`aaqGDEXnk-pVeHK>6DacbN0^j;kB>0;=KtEr zU5h7F~ezzDNhe#pOg>)h-ffOr|UPu~tsA7KGsf9wk)AC7usoY634WptE_R zVp4LEJ(QaXB?yIQeFfI6 zOmcwq+ee|{9Q<5SY1jB|?iptDK=osEE;D=ETF`a=?MSPXP|bqqDQ=G8eTx;30vVQD z&o-I4NLLIPi+;0G^BVOHi}Aql{gvRBhf+3O-vNF@ls8p&Pq8*Jp{y1nC2{=Tg5n;v zxyar16aGsXr%nTt3&QLn+J_I7MuSgC^OfGafAHE<+(ZWZxB5Vkg1NsQ-@d1@#hzs- zHh<7S_h^|!l=TPnphGAFvQI8iSIa{*aEP%XTW|u#z0j()M)T&UIqp2;vUsfWni*sN zgOvjBF?>e~mTjlNyQ>ZBv$t`V3A<({#RG0mAIj)c+Nq$|l{B%gEA&0U-GBs*7!Y)_ zd*C-UbGr%9My^~n2c6PBss-M;*L0rs)^D0B2;M23FdbY^u8`E9m2Ewf`F3b*-rT+9 zo+(TP30$~$3CzpwE7POUj60`&&dhFFu6D50>2puaeC-C_ne! zhS;Y9E=+kiTuR1lvWbSme^2e-d6%rwTRrixY)HWvlr~)+Q5$gLSLEnMf_?mFeFWYS zxBGG)J|&5uLs|e1&&%C@9E#iRAa^}Ms2raL zM(_Y)?hrEWeo5g`6d58=<%l#O@-ay3Bo_*C^Z8byGKSV?0P@W&Y(Exa_wcw0&^pt& zAraql9ig(fc+v3Di_Agk$4H3<@4*?g4~uvrwAVjRvB}>>Ee1c}PUB1K+1_n@1)PoO zu-m))Xj9oeqJb3mF(gD8YKYCA^p)-z&56*oE+%AI+W9Ql3bS+lJi;vqzu*|Uz65_q z9%Dyt0fPx^F?XpT9yQw*V;-j?ds8?vrn5V8kZJBRa3U9MMR6a8iQH6r*JW}$qOq~< zSqyRc&bCJt88^#@rmQy+%yAWu6l;;JmNrqNB@k}iaQhQbu|5>1RUCh##qe{&db zr;`TmEMl~o1{G2{OfM#qYPn%DPlnn3D*;)`b$meb!qbx3a1+TWS$RW0NQKeAuKnV9c z3LBrpnWaK39Lbt@oG5$~tzJ6UZY>B=7O+lUoqcXBsX&`V30k;sqM2Yx-BrW^y8j{4 z!+H`DL|JkwC!ok2IY3oMv3Ns1ZJ(*4Ln7XgZO*r|v<(C;O3-+)Dkpk!(^J>CzEBq) zC^a;cHbS3*8?cp*lAw>GiY*E1OpDiS=AX|m#H|d>JZzn7p%?7@ZpQEi2DzrtXT=fs zZz9DvE|)|KTqx3!M)d z?%)ZyQU*B_8?Oh4`@Dm!W_N*d!K@6^va29C-Hy+;LE%|7J+D%7=h4CHszM z-uRoEPr18h>J5;HR=2MkGncxScvan>|I#>rwbgqr=xR{e41D!p?FVKC?h#KujMo6s zB}^>c-*#6tbv9IHFN5tCnF<18DlTXICAK&j`mV)&my2OjubI(UC&E@wWMKB$2TbUC z)f(U6%BM)-&jLPO|DJDblyZ2%C+N?!U2iLj4b7K=;RxW}e9LMT~CRsTWT7 z{Jkh%F1I3d?TBF2e-vL+Owm~GM+!)!hP6bs)!Tl(nqNE^>RIy&h3s+!Q<8?Kmn#LPmw6*jg8VICx*zVQ z%)QoP!G_cC`uOgU*-de$05a2sOhz*E8c?n=f*`%8+I34FK z$#!9}lp)FW&J#uB0yc|B78j5{7EJqBtz}$(y z9EOrkFuXz)%k3nRi+wMTR+S>)E<4GZHjnXrf`gxmm3Pi&IgId|xJ>SF!&5P>;u(&X4zgo#Ap3!HGYU{9~q<>xafs$Xcyv1hRtsDu+@zDSP(8 zGaB@n!wMs7Wk|5Sm!a7*wUa-#jr9nxoWNa(={}kHU%1;5F1IQtF7%Y!uD6xJx4jA# zlgEPf^0(zX7210$J481sR8;9n?Pm6;*d^DwRZlf({NTRaK7Q?5?89IT=ddgp>A?s% zN@7^{)=83{LHGkw!`GRnzVX>fgo)x}B2|F;`*4H(&wsa!`)`ypWI9ArNp|VJP`3T7 zv|iY+w#9~kei5RGpgHSxf^TpnjRJ!DTSsZJTFGJ%F_N$oQ^i0`Z0+{(&5&c_LbAm+ z%V#=i+XM*fc6QCUUIZi*#N=cE%(2HKuZsAZhOlffLxiV3|K0ys1kC%B{t?#|jtLXG zU`Fa@2;0WMo6}*3?jL>Fqc!eP_*o`joza^8H-e^!C;g8^pHS6+YYx4Us8*98%ZhO4 z3vxJN>MjlLb9fn&b-o=Y=zWph#hT*&q!b3FwI{U)CI(ulf(rZl>x3b>0iN_}db;$# z&>ZcFi^@hW*P{!!yH495KFFEL$=oMOW5Q6(1#2kqS2PxXWE7#!7Fp33K)BqWNGxp5 zl&E13GPggv@74Ign2N}=R105o3ut+?2B|!Pak82)MXrT{Y35M+G>L}7@{9kwbU>d6T%9yjk<7+cxO?Bt z{4?=Z?$CY@#bkNgRyEa%$c<1zvf0i_F5fC5jO7v)O|jWWOUIl00eJV0c#>O-E6H)! zwli{Rwp2~y_exU2WSkyfr@Y~5szB!SL9&}Kyk9mCRj_dlNj@-kl>NDq$x8!omt8%d z!A0YIi>fu82x%rNVJci+`_vz zOC0Ta+Optb>aC9u2Jo)oVXH}QCyySdG3u$xx7t?d=#sHLHGBAE0MU~bwPWPK{bSr%*e3w19iNjfhU3#TWVofOWW@f zVg?jG+xmvh{~2}(dY!afd6b%?dK2CbQ&D{8BVTVHb~2#k$`4Gx*b+Q{)p%$$ecU`= z$Nq@f%+hBZ`46AXdcy?g6x-A~pew|2=Zf6cKk_U?NUwPW=khiSkhk@Z%+4?3;Q44A z>usMBzv&|-l+5VrRCTKvZ?_cL6KfAo-1$&eiX??GH30p8U2ysT3N4Ra(GQE;7mru% zp_@h;>Tbvr*O+6Rf#g2w1WNmo;1vN+3*6bA&uJXyRM71c@1%t4FZr{a_P5UFhHRX% zMxo;;P0FcNZATh)>LM|}R7m9#+Z#UcnS=w`A_!%nazlJnSnPww!pN*uX+v@n4%Khr zfb7%rm66Mf>yq?K+z%!LPwY$cg?BN$eN(sD)LqIPm~~=OS3}HwXdJSYsQt^|oa|d{ z^|^J)FRkT`D!H`!3lN+$&2s1Z3lYW_`m4|;Nv$cZ0Nn$`!MroOcnmHVwH1SkN~N%n zAkJf8J-Pe(W`{zqIfZ7b%n+g7Z1F5I@j}b#jW-*2?W$SjQE0@fj1R)tLJAjc;13)v zt^V&K`OcyB0kMd=1zy&)b4zx38HB4D)?UOH^cj2cdlH|UXJN_`>WL^@GF)GT+58T% z!BOs7i9YIF?yB40bMOpMAT2g~art-SI5-vQt9KsWY$uB)(OXX`-vpSj;Wqg0A2cV7 zC3WHs#l;bgM4^T<<@)&ZJRuFyLVPIFf?IT1a=;_f1xgU2wxl6dttqBVFKKOSL|v49 z-|eaAs81MVvSNsl-uf70+s%eK@q4o&h40}}=7SST(?A5uena;N_dO;4oJ%$%ZF+cI zdDgX%AYL0G_-=TcaK<%WHUBt(KYN)SDiG~kYIjj>GM3jIJEh2fvfu%Cc6gTXZ`AXK z9B3KtrMBEuT3bwDgev6Hug*omBR5K7Z(&kNR-5;Um%RDOx6tSEFFnVm>YASrgV)a~6`zlBXXpPOzRoF9k@X8p^IhutHq@pWrx@}> z++qpzX2-Ro76-zuQ;vkw;qiVkl@FMcRS4@L<{|db_SkRfrL+wf-87c|w2gtVP7>VU zx}k^TvSQNFTlDfFD*Hv($M@q)FKp!)UEm^HBe5dT+%sx@D@sRbK)n3X|2ZW!m;r<` zjy`#&HDlF(W_dwnjct&M+ah+xVALcfK~sbBn>N@o}nn4zCXi z(PFm${vztVzsX&eu|3z~&Te}3eJjp4p2+PxlGC9*JVlhEnym^l+Fr}=0dKQik_@KO zQa)NOKAQFDyps4tfXBYTW+)90Eyj%zMPVtJ4qiI$+jlo#%%bG^6aYJ_u|}?yQGE15 zEI(T452ggnL2)Y~nx$~;6o`;Vo2rO}3#`|L2(35WMmbe73;(mF1@aQAj%a87QmwdWja(6gwvvo{l75l?P=9o0ln*n`{Yv%_cEY%HaUhshMvRCkm|#-byZKDGQO zXhG+R_-OIfg80Ys!)K|1Rb@1!uZ z%WC_I59>KiH@hIz3bzt!MgX~>`}ajb_X09=k%@d%xS#-|EAC1RpF1AsSGrU>bCBgh zuG@=N;Hh3$&%;sBDD^W#Y$%Lto$+?P@W#J-m0Tb2I0QEbSzal4c|nBUPc%6H5w z{){XDj0w8j=(-JfTg5Ie@H_eRdOos%+DF(_o_T=n!1CLofoa3cz?pfLY=SBM1oPap z&74dflAr}%$cmKcxt5!Bfe~q*TD{jzKiW7N;pGYVouG55)46>9M<%M_t3^u@|+MMu#_8J3v)C^cPwPR zCc+f&cj>S;Ys2b16%720R`n4O%bEL=z810pfn#w%|f+(HF`r0H^N+Fe<)=YmgjR16*``XWJH{#Jr;}p?R#2CeZzk>S#ikqvl zLos6cBjL7l(C;K)%aOnqU_UVik5l8ORPUZ!YItp}bGU--&@(@*gR>l1Q`K4=XYV zFkOp~p4VOge}l?A$S<)PteykkBwrVz9<7=+(3T*DdxvA*E9edd${XcwwSQ7`-Dc_Q zfF^#E8k3zZIEmlN?=aSCQYnqka={hQ5By$?q_&{7k?I&{)pty#sF8KkIF5tkneK)) zqvyUNXOuj8=jFm~#%yp%-4RA2wGv+y!Q<;_h<~WbiQie<#tJt9HzvkFTBOpB*VSYp z48Kof+hi<4FuDlseMeGjs09{-fR<;CbcVsW<61Lc{zWp$^hU=aU7+RR832m1UDbY} zV>*ARF;pcAcUI3u>-;$cO2YQ4S=(O0Ktfe>)l+`hQ*N=R8?-q?6y_PA|a^XVt$7KE39M7%2)_=qC zV(XItwnW4ZD~>b1%?6A;2w?EwNyZ1NDzcDxx+%EoAN=N%8H3$>nDq(`Ok0X5{6PPW zC$6USM)c!H=+yHdRr%xD^qE-Pwg2@KjEKT1ZZVfZkv%D{ye=MA#+p8BBit2)I8h<$ zb%UOMAV6=rRqzHycs;ENLfm*|o_J<_nXB2{UP&w7wx9HQ(`mU?T3zMM3CaeT6z@E? zP8&Zm#wKUz)jmncnY;;I9R=mUjtpwTHfY*pdnp6=_Dq8`kdHSW6xeGe`WqN>X0U<= z8;s~@J!f1Kwzh`cRB=?~-bz)~?^yPN;xi?lSb4qSI?s{*bv+LSjr+7k4VQD_TBCTv zZJ2vJ)o9HakGe+iQ11#v#UpmY~4{RZ2>5F@+890 znKrS}%qv@H%RRLi^347jSjlSO*Q-d}>t6j=TG0av+PHi;|NGL?pbs$9&(j`EGCy?a znR!Z=feGZ>{>Ula1qK^F=#|qoqa9E&NT{$Q`voas$tccp?~{`tSY%t?EgXTbTRHva zy*ao0Xsy|a-q$*k?s-4_d20(4etDTHxX3p3l_bsYiNrcsZzX)nD-|y6gPXmzn#9ha zaIs1MmIeVtI25kPp4x(Gs?J37(z$p5AmYe`&g*V?Hq^+^V-+E$1+4J3yMd-|015U= z9yW#^yJ6inhy?%S`YtG`KGLUFcy-raajbGs$vR=sLtyjI@IY=FnCJJ z>?1P6!W0Sj0%2ICYLyIHtqf)S{qfs4jZ~Ry7Af|EpWtXY2 z!X18ODP4JN@~KBbA$qi>+N8pT=9F}j1r(rmz5BRY*RI>v(r0h;EBjZZ{Xde0x^6g1 za_|Ja8yq_pF~KL9jv=JJq2_A5b~*HwIn->0bw3r^!&fP<78HcF1R88iDg4Mjep2cx zBKPb*FBl1d6=9CmZu?>&#PIKtR6YVdZFTJqvz^N98vPSK*ZCT`Vh--e9AcyXY{v;Q z3%#ADa=z{E-GO!D#dQ`ytAFl{h@D7Hhmu%_>}e%u#C z2XBTbX_1;m{EKY6f3?RSa~2KR55Do=7=eQs&hzN#JgKMR7fB2CIaFo334b2D>j00A zT0uWX9Ce;Mbej$j5tWl1G~CqD+*GJ`C424)(>@`4le%tM8EG#6VK+acUJ;9 z4#6Q}RKQbPxQ+#&Y+py{z#H8Xdw-iWN01VDL@em1dwo5`fk5xAh8rvB57L%o?n zZIheNP%h?iO%RYL@JI1u^I})iZuy%WP2hG~%fpauk|}U}b&i50V`?*pyg#s1tkXE{ z&MovR$JP&zbfXgO^28Ikvi-~y17f)?@$n^`BW(LKWfOSCKjRXZz47!gM6CHX>0$yN znKJu^DPc%6gCje#7M)l=e2WR*BFv@Sl#W7|=0Ib?9`=hOzs2jiZS8vWAJ}+xIlVG{ zsRy9MGDcX`kQUVjXc7Ag3mhh8l2AW?ka&p*y2(`jZ2Et9Y}ktbJ6*`k ze{3m#BV?!{Kx zILDu^-nfP~L_5URr1T7cnflLLb=Xapk@{I z?Rq@mM7(tg%-y;sU4F3yHopTIG<}wL6#B>8^(rDB@O|SI#YNgDhHu?0;E|wyY~w!v zx%KSt`MC(onv74(i+c|c{htVw6V_*TR@~7FwqG-%Q+K;z^3xfDS=|p7%oD$kn>;-k04O zTq<1bwW%xzIPMO)?FuYt?4~l%IKC~B8UNMeT#rCWQktY1JcRo&cj!9hf4uwh^c%Ix zaXai&Y0b-B5i7@wSAOUSdeRBrM99T4y=qP-$(SHXP86E}wbZHx9c__;&a61by^yY# zi?bvhRENLuZ_$X(H%3{x51(e?tE^E9h3V+}vmi5C;CEi?w(G$3$;%T^X8`VY&c2Wh zAmIJzY_tUOkt8(@pwe=!$c2!$I5ALVkwz<|)cB}Yc zWwMU6U{oPWG}}k(ZZbBhe2PgFP%HGwXd*maswpYAF5S9X z_#fGI5k4kWgc2^FHY{2~;u?AMaa}THO;NN345j);q+C7X zxDk?AXmEjNU@uHoG9=hZ6&JQaIP%5Vmb(hg&*ca6t)U_yr7Fx7$=4!Fg~lXw-MzoY6&OE5B68 ze4|?ktBra~rFs=n$3{&PFn#%%obcDSC@qMkkb#!J)iL_WnjdBA{L?B?uKjT}iu1%i zBrM>p^tBe{>o63SNo7l&y4LnIDw~M*H-N52J|ZkFd}xd@o8;p6sBFQYj(|AG#l(lI zV_}jmF?=z8mo4mZsn5-J7XOF~9B%ny<@^JoF~5P(2oG2<#h*M&#c;#-aji#Tn2)uW6E9vLc-llinG5+4? zwA}19nu87mPFz^$r_uk$f-;@YrY>H@Kz&b}c#LT57bgX{Wl{q)#uaHFPMrD^?swy1 z4m3S~eZf#=c37U1SPV*FgO9w!!c$!!-4f=oQP}R0b8wto*Q&((L{RDCws1N-DIuRF z6LeiQG;Yi;Ez&;T;77KXsFjUR%+B$O$RH+TSyO1Iq-SE||H^->jz1%zc03hxHFV|_ zIm_hcm++ezmdT*LVQEP|KVfMT-nvfcinycNFac+?UtF;6Y<(=tg>F~;Aocb9o}AyE zM}2h{c$M@}F7c*T$l;STra=!-0kle?it&vpjQiwZO<%fsw5f=9$vOX)_)Y!4EWjH( zphd-2Ea>XZ@@yi|N_6UKa^nfp;m0qr{Q9YGtx`p;bT*CH6)B3sJdeH@N0mCxuZ1D< z%j(TlJB&eL-zWgKQ>N8#I?SQE_<@)*fny)6_XXX+T0(}ki%0JGvYXU2U7 zM^Bx1Cvi1ca)fkcl+^L}wJ@0zETzG&C&Br&N zL2aM@xGldLT#v;P>s&x`(BM!*)bUy#jIQ00c({;snR3DZ7 zL~Z6cY3tqPzJ1cL4y(edRN@*+rq5K4|L)Z59_eGBXqDd(XTK>KtxB(VoA8Aq13WRde36@yx4EyZdzg5W1Pk8I2m>#!6Nd3#Xg_%~65wY8&uma8JTqNCBPhb2hMjMnJkBC(w%Uvf~Q}y(w)QFi?B91cdy!w6RDJS zbY!-SJ0Rob$~zAvhGNkoMn_s%8oV!pX);}l%vv*?Ldt++)42=rcZ~Mi7_6}xv5GV!N#$e);0WLVZbQr^L*IVNms0<-%dm-#!$Efv#j{YM zGED!%uI`R$m8i_0{O$^`9AwLpfa%9N``J( z(mDMqV#)`}epbjXCHmUxKhhnWsM?YrJ$$Y2zN>JGne#O2i1yAeE>C~< z1zsWOKWdHcejGSiIDi+0&2awp<_rEu3i9v3R@AK|7$smqxL@z4m;h`WM6I@Kq=ed8 zh+y3_LW_%)lAW~jex?Xwb@T}{k8JgC`Ik7xH)!=QAR#QYjUF_HI^dfid)PyAYda9V z(LGSush*8tj*l5ED-ezn0mwiEExiM!PO^UJq1`q+rCfOOa~At~kDleH>wiZz?)28| zJ97MY1BV`R7dt>nR5*7y*7{gN9Me07=Ay21!0e+qOu|-%3BoVju}gw5jf=9O)XDez z%NofAA^HomJMT85*;fsHIcJtOp$uME*oIdpO23I$^W!{KwHG$w8z&A2*ZmmK{B-F9 z_ow;y=0bcqwgnlkb)#mrFx*;A%t}Mjk{;RB!MI((B_Ao4{qrnd3vNBC9u`k zb@u&R@jH;5sS4%TkwoM_g^Mk`nb1rkrlLAvIZ~*$hx8Rf%S1buFoL1vqqecW+XkPi znwVX{cgX4Nsl*eg2CZ6@p8AceH`+zR7CXNN6-#o5v8gk9SLHg&H2BZ)BK^nG_TV&QjC5yx-mQxmK8=XbMfSWxOKQR=`9jZW*h&h|%$ zi~r>by1pQN5^f6aM((9(mk0dDrSUEP+bs8@PRE($9ez2hzBr z9XBk0l7O_`JTG;|Lc%CB1S z|4%A!v>_oP=<}aoKH%*Dzw0+_UvM&8`UxEn^4)4hCL0VjzFUj=?{r-2@chaIiI<3Du$wEE@K)c`X4Di5H)8n1vyZ5w% zTcoLgJF%ttf=6O^gBLd_lpA`C=j@dOeiPw{SG3%Rq|QI7<}k73sF)G^ZoJ)6o63I# zioWa&iS9m}ZQgCDiQY9t)mW|ePzv26&yLXM)O&N~HH;Uy2|ZX2T1731N>P`K`n-Au z690wYPC&_;M+c{IrobL+*Q>VLY~ZFPr8M?y<6_8JX=P;iN{g%NNI}`}uiP4JRQFRg zez`5Glp`*tuV0qfetU%92lO73*_G+H#vaW_Gb*>Cl7J-Vio$}!@VaZ|p)4>KK^2j0 zHY#mNhNd_Cw&x&sYLtT}fuX6~Dwes(zz%YCt6bNUXRn2v0gRvmP+X!Yob6aQTLIa* z$6}Cf_@LVGtxbpos<1m}t8?;JQU8dk-r~qW>F<%a-~aTwsb>Pc+aZ7c+x76FGKi!% zDXd_-FA~-!QT16eNONC`;7ik;ZuH0%VFXxN>Hd;Jg3qtKObI=T&^AB~S3v?e+X zLxoHJ#j32MyW)yUJr9UGV;mP5N1?!%tDq$_=xN6KlQ}aPx{F#DhL39A>rpAE_A$K4 ztb{2itcvtdl#5^SyWG)AsJ_~FyI69#l?t&$!QRSV*+7G<#G+hURn5RSU-V*7K@F9YyXpuvL)Jq0Df3Eh3*&JhHCgy zYQu3Y5Y9YgR55<)&#p50BPJ}8?_%xoLb@o<;GO04n}lTo8?P@Q{1&bsTYt%NnIdFm zU?|Z-41;}pe;SJFBxxj{R>+dfbk18ba^1w}p7*!ZTP&W!Zq{NQ*I#O`B&^6#M`)5@ zqRm+LeDOm%jck|Il{ywHjyIxBqwP$r%=os2Wa&F}U0#k{nx5{#*nOq;IiTR$=@7mu zdL{Mmx-jtCsHpQ~vR(h@r=2A-$IlN-smKYC7D!rkPR;P&kC03P^u zKS=QDw}EsGg(5>E$QJ$AsNZ=w^Ex}3nhrwH-zzU*WYt%ntTkMa1mQD8}B5OlFkIb(Bzd!GsDX1xX zHQI1_bP4G~2cSRCo1XkdwH?}ykckWGX@)3FR!BfT>qftwo_{vidI{r>2)?vem*?~3-$#`TxiRaxZ4pfHUV6xqVvqFE`mRDDENF*5R@|YeA>L1{pZQ%m34XT4st9V^g!AXv_16X49ofyKh%oM|Kdym)o2R9 zU1CsD6;<9bTdIIWM*WfwuHSE8gsC3!UM|h5R=jnWzm5o!dTTtdCT&7tn}ADDf@g%)PAy7SRk_O$Ya9;F3`LjvHB(|qFM5(6$1WG+s@+t1^lNY9M z5&Drne6=7MX&w3||25%DHOq!|Lh^8hj503NQR$ch>YrN>!iKYiBHDW?$2T?Y2G`Kd zy?>Q;0^KHCSY_DuVUUbKFU`}L z*zxmFMPr$x{dD$OWu2RhluBWIqBaHX`y#hSBgGd1mXG`+Y;csKs))ot9p}6dwLI)y z%@fd7!bA83gqAaB+fRyaYD>yAzzjVjiuEp7}ZAqz+Pklq`{v~)giLZ$H!M>- z1-I$vU_P<54mW;pgPOExvM#3h+4Jvuqur+-6WGNoxbUvREm9SJ6ivOZb2l-EP+**7Z3B|3KTl{apjQ^ zk9+iQ=*J?%lycuZ+klUehkB%)c9)4+Ea(V}2uBc}4;??@m7sGl@3 zj*?lCJOu7J8k@fCcpmB98qptLh5h$1da||d&-*-WS7*9$fvm|8&7lEfooQS<;{*u_ z8H@ghU~q7Y)3*h3i68nL1~9n**UASo z7hA7C%`7pbN4eEI@YTC8N=3~^u^dsu<$t(le~H)&(XSz$2tG@4Oa0AL)8X^p%?rQ( z_ct`pdGx8~A5I4s!b{Zq$Ri%%KAhr5jy7uXM{J!eK?a?ojirF1NrxA;f! zpfYqRdY|)66szMuTGQl-shZ?pZoE|4_#FN`oA6luzq6Y^Xn9QkzvDklqYlh3c)DlV zzG#QJvJSA5U8xg;Q)}zM7*m!9M?V5XGy?Ct;w>5%X1iX>IWK#XURmgrz0T-7nv>0b z%$Jt8;Ow?~#| zy^TZ;>i@^nIsZihw{3gVW=yu-=BCY>rLSw5;xAvs7a5G=;Z+Wp;h#ZT<&XCTY2!r@nu`u-F_V z=%8_-y~gKSU+J+%Slf0)wRMC?cuA&g>q57}eX5VVA|XbYY>OT>>@-9=$*a`OiKU8B zw~V^(Xt+DO$LMdJ#Z3aR2dmRSn!+uhB`<6e1={9*YKlXw-@bvHABmF?SMM?SV@zb{ zX)Gi|qu*ywAf#Kqut}J+($p`FeJ#31+U)E*J2{-1`|CN(Ud|sMG{t-+7s0`dmUd{4 zJqdWmN`vxPGSS+Qu&5-bNq$`R%e)@{WVi!1FSg$h9QZA5Ow6!_yfRL^xe`kKv3e#P z9qfrXCj;uL+WHI6hW;b64yf!L(V3Q?f@>d*7 zC6yz4(H?KP4a}Jl<@mB-^l;grzwnawp|dtpsR4LYc&1q_454m{VUbvd+e_4@4D5~6 zevNQnbE$Rfi&jmnij1}z1}YLq*q9FNvn;#vxtV35WUa_1PK`n8mSKswOxE@nk?~%A zzf8(#A;hICNp#q2Ez50W*6p=6L908wjzEiIEX7SuBNfg-QoM53j3!Gy-d+z-M(kJh zH#;c4gyHQqp(E-xhLmyI1yXG;g&~bnbEw$!7vdW9E8l=K046+OR=1$MyTTHFYfdq| z*xEEP*M~=GhA@-OGJASiaF)gZ3o$?9VX{5enHo z{Gk;f_ds&kHUg^z4qqC0QBf_Y8HhOF#`K$}&Oy6?w#hf*%|77vu9m5kx>{EmaTpq; zNgcPo-6J*7?g?W2NC?n$Yx<>#*g zY)0a$fD=v_QwiJMTxVuNnRMT(&dPy>}#`mf1>-91IR%lfvtG8Sy+mH`2+0{v7Rsr3v2=e z%T1N$r|hIFOWO1+_Jx9F<%wd=?-w2~m0e!N9q;4v~nh6C})Y41+1=M0I06nqYzC`%l~8z?7U^)2C!v5P}(Cb#PdQYU=)k9GL%xjpCQBlbWp zFW=ww5Zl8gY>EGqwY@<0G5BHsBKL9OHUsOsD)Y)o!#Xa8v82SA|yWDwJ&XB>p)yRrVj>+GJYPv=c zyiL#cNL6^Pcug& z-~BDQWb-Xia5s>I`RF(_G2}{@v|&?d1-S@l!;zs&UUgV-Ep~HL#{Gif`{AX?{qSpZ zsryO7;SEqLlkEc%ziPC6*s0Bky!^Gl`uMc@JVLPXv+179$S<+_b|;<9?XpxegQcPp z&8_OH_&T)seZyr-#(R%K|6o=f^?Dp~y-p(oZQ-9+<6|FlTZhBx6Hgu&?QWnf4bG9P zE$H!{x(bEgqFJa(`1<9juIPa|?jPIi4eQzj{^sTOi?Wd)6y=X#UfEL#p$9-`#4wZE zMD+~$XTPh@#cj$#Y&fKZc-uP2Qgk$Us*>gQs5%e@XPPa*E6nsBol1CvFvk<}39+w1 zY_SR#7P&Y!>8Nhdom{rqPU02Nad~B^i46CH64p^KwwS`1=cmV8?EMu3n!3hv?(svM zt^84^9)^TTw#6>(F^Yq0rm2H$Ew^dY(-)Ihi!qb5C!qH$B>Lsn8cYFRm*+PU#Th7b z9?=R?M`^)U`4L8w=FtQ*?(hAtZTMIV3)g0+!U!Gwy@QY~CDsFcJ1-a+izBRzC}C#Y zQIDFV&MhGaZZj8AeTo>a;;^2Qbc!5?W(+L7T#eoGbRG~5!at+sU{jd4Fw)4W=Kqx< zlFIeKpr(IOi|DbWQx|VrrB(+4jl{~Hb}^TW932qwPy7DNg$2jItPFGj-8fc9>BiA8 zH2KodskKI*Ip_JrFC1))<=*jARK@e67$<~x5qB_x=g-}r{5eJ}zg9}51l~Tj~G&9+M0>gYj`ofes{`3$ISPJZLQjhZrflv;MGZ94t*%h z7@LOB>;~s`;VQ>fc)SmAj^NX z4q<97Pm;>Hk+5J=NAQ%m{--GJ=8#dCuxb(+MMMJ9(hE|5fSc}dD4{VDo!wKX(B{Yf%6wU&pFWXVd{ zEPPcmVZgB_%W7sG2E3LpDbWMo4v@BvM5`nMgvDVn@*>a?pYNLJs(_y*+s!1dg-PS-o8Qf6Qu$_I zV~DR!$Uaj<*79|<=E8M?Y??lwNA(PeTvGD!%U`17#xoXn4qnQQqRq~Zbw8*Mm_0ZK zaXS64KJiLg-tZdqnBXm>MG-o+hg0&^exlxzAygtlPEDTC zx%zFMe+mqTmqt9IjrSWIL6@_uE z_a*7)U70-hR(0fRKCLJ1zg*wS)YYC2rOP%z(u$|(Q&=unA10 zo_nV*9%y&8uiSGsFPrfbLM%2;mUdN~cXE|pA!%ia-@cizR136A&SnFi@2rR|`{Ouy z6LMkN##yDITDoAae8sbv&{_yI zvdEG`-{fXmAl7q?sqI{8O~lT```A2I6oUbbZWhnX?8qP@=6$41!dYFd(HjUmZ;jY6#xWO#b_!)uZ3*;^vx{*3E zq8cV0ccZC}+fh?##&lCxMsE<7QSbr9E8oxvph;1A zV75T>zg++e+6hR^{F2_HG(~3!Z!cyI`q0lbuh9suk1n)qO&uVV%RSfC3_q(V@gl}b zW6nxRKt)%HXWyNR_syed9>s|9G4ufiz9ah0I5Y}VmE%sMv{2m`1uQ`3AVPb$#95sy zCIkERT)y&H)eb8}DJ`u;^|P2CPjJIQkqO`75Q=D^G@CAV#VWG=%U%PqQ1bB|-@zfE z@VjK-Qs`bonjh5s=dScRfEl>WX!xSf3J3h9z1#i;1$GbeJLu@5U%%|wlX>53Ql~k@ z=SsI*_VhYK7kHd0At5{lg@?iNoGs>55)Ww zUGGf3G0>oOy{GPauf8hut69ms5vyvhiXeI&wnHwF$(V*>#_FeUb&jKHbly)*|94k6 zEsXP7tZ(2{7blRX!tBT$K8%-JaOcHE3;`)C11WrPrwE(>K!Wyky@iw_+)DlNoypWN zLQ%1gTwFhDXR8r6)TWZ#qYrab8qY`<_sVvZp)%}DD_RX>`S0DJEYXCz3hahI*i>K8 zPaTJ%uF12cAnimxQ0UsU};Jt|aq1#XsJJ)Rpt8v(_9cE zjje@u9& z&fV#`UPYY7Q=UP3JrA#2?~m&8qwMEkyDlyBp|$)*@DPmby?vzwehkzY`fL+;8+wh1 z(ldim@8R;@gTwW*K)Wr<_VB(D=yo}5c&77=Pjjpb?(hBFd`{XvwW^Xl+f2IO7>_+{ z3b!`NxLp%$-Zz_iai#2hbw`?@_Py90T+JCOE2LCGln-k1i+EJ)K!n^fq>sGGjKlrU ztUPhY|KIob)57Hk6K%^QaE-V+kap?hb3(ESZF|$<*DP~DZaYu0bInP*uDi2+ewkYH zBBx6U=3iM>-}q-oE0Rh+enB^T{1&-?xVofP2-G9Nv0Z-N?`Q;zR){yo*H zI4+Cu<_*fajF(ria1%g0Pg{x(_3M|*qm>6|zaC~45AoeSuw8!Kr7tak9$3~l4zJb^ zkT+efQ%!v%ES~gaH^cHNn9x7-@V+}-eirhzim@Jd|4A>|vMfi(uY`a@s7hVs;7?Dl zSW6%?+nQ94I_@IQ^}l%z=kOSDd=$x1n9Am0s}9J@?ol#yFbi-0cdB}cf_-10OkM9V zUPp6;9hi-Y_O}7g*0Xlv?oq<^9-B$pB6MArVo}#mJBhR`Ty?N(*qxaopK?b)6sn<# zi1NVQAjbv%*&80uTF)8T%`^I^TKfD)UEoZtb-Ku0IQ-CW(&dz|sKfR()R?NeawyvT z(TxpEKae7%rHJVaeo|JJ>g=G*HsDuh7*HvH4N3IJnsje~W$Ufit_=&_>cVMDXVKmP z?tmh|vRYp`ct3R!#>aPz-6{+iT?9EnG2 z1s7^g4+pA4B8L|50jA+`IJb%{d(1_YgltggfylUQoWOdWiIRQIgFio#){|zf5~g

    Imn9PI4*-f&am(ngg;2DBI|-3?OGeD9P&tO*xdUO zC4s6gR_0!)e}J`g?&ZEL37CK%GkbKy7%S^(SE?~h@T2p6D7q!Ic-ZE|3~a&*-KZQ9 zW>)cTw}JCbwb4_k;7Zb`4lRUGC>LDm;Q)%foyKgUdeZUabEELG!dP+OL}nQ+BGTa> z)>1X)gL>#1rbvxa)5cqm2o7__p!n{mmX8>j7)!aIgQ)+l$+rBI)&iuxGd9>}C8!{IC8e>)N zm{|G(yU`%!B%z0B@`u%p>jCT=QC{=q@1MaKj0~q7UB=5>3Wo=#G-lyrx>>+?JSG9q z6}&OdB4f9ZWC;hbVl@*-wXrN#`QnI>yB_wUfaN$3tX>bG8>bSRkV5!*lN<;t@1}v2wt)Ra++Gg1nSR^A{a>-0|XgC&&x4p|!lIpVW7!VO?YUdVu?ID#^$~tX~ufn=%1F#AF}2 z`a&+_d$K4nO7cESQ1zV2hw6UI?NzqCPR|T;$anCOx5$@&b&0olnS*>;n66GSHItEG z7TPeEdIf*$2Dfgrvdp@B0x@!|dUJ4E7s5VtNzLTx{QyZVQKGjLEqR&S%XDIg)?&Pp zf2g6qT9^QHe8Dt=bO?Fyc>)=OBYBKAjBJXx30JKhHEJ7W#l>=F#I}XwrmuXFCrK1$ zx>Xv}X0%qrAsNeK#7h+G6eCZRm%Aa_5*b5a)JnN4<(BougQjCSgcE>cmZ&M+CkwEl z+h=o8dlaM0$h-MsfftsUpUNLoLwahw_Zyp_Lro_3j7nBPa+gBe$vCWtn2}vp`{u-- zMP1bGN;j9^8^S?+sEZkU2M%mn41(6w!KQF=2|mj@Lh;KE(x|^9t#Y=ND?T` z_+tj5cv9IhXU~7?hoj5}vgxQd`n4NL0J+T_}5r`3YLj;)dxxWe25J3s}p)@{s`Lb2Xlq za5V<~5FPLBB62S#R3qS+!W&x($+PKP6CFHs`I@zOPQ=%`a+oOFpa+WHxkbvn+KOSi z`7s4#qbv>tCeuDVEz8pUBB2F;D;U|&Tkyc|WxAfndZnoeH27 z{s-`xn1>21@n`6w$VGz9q@p2F?!HI|$72Bp0-=9A*eBiZEajqsvu zurPz0cUJ56Nf&oox4OrX4l&2#9QIrcT51()UywT50}-p_)t;M-93QsHoBj$F7f}Z| zNE+ExKM5epa@UHp@PV*z(G zEOv8%kZG%VNUzZ$j2CtN2n+D@(`AX}4JDqx1p!#pQ+KS3zpnWov_BI%`-9ft2o36* z+{fxte}{~cGGw?*hjVzDJ-QQ&<4Bo#^?3jtff9}aeK+tE^a}Udi6Idw#Jjsz7)AJq zCfcI34&+sCxORfVN5nar8E80edT+=BcpXI7=aM>WCfvTUZ0B(ygO9^8e0P5?A^eC7 zSCbuHULN0@m=fAyf|l{nDdf0!d_F3DnxVSS$V9vnmoJj_e9J)^o6UW7Z6rT&9N59< zNf`WH;2d~?Lo_DN#PXv$KOdjrV?#C7F6SMq(D}SB(Z9km-?<+g{ z-&b~gCdAjJyX6V+N%AxDgNNr$QE*2ZWh^Woo@JcL#Chtf`Y`joOs@J+wY$+rOk~u) zSj8%EwvkJq%hiLmJ(gw{6t(^-E;X5RV z_73A=pQC|E1qT=Z1wfJ)`WGGsWvnZdOeU8~6X$nc+Rx3Z!-fYvE7kc7r%1jr9v{QT zG@Ku~OfO!%hvh!56{@wC6?fxyuN_$Ejtn0TzqIIF3eMP`uD;-t&=jD+GfLslh#p-q zF2VL&h9sH#CLcSr2}C)`OQPn(6$Vs`?2*ZGk`k;1DdDJ@HisXn!ZDJai*;-9G!YVu ztI&B!cpTHGO$f6;isGBLk0S%8fi-i0o)Z0p@^BMJgiEpbvj;m)klB`mcAN)B7&@69Pnx%?6@AotXe^ za|W`%kz-uJ7j+oH42h&Rvh8>{j1?NvGD46!cyWLegmel$vn#=#L+Nedylk|YC#5+W z$;I3nJo`VntR7bVj$+DIIXL`-PBOV=ly!)YM;h0roY)?jQ70Q@Ona~$Bc4calw%RFV;KKi3Ksb)x2_0SS_d#be*bbaD@f zM}u3Z?_kmqu=PduP+U}|ltu7AjVd}*=H^P}2*MOC(Q|E>y%y|QtX5)13l{|VM5-!h|i5&sm7ni zPs(c`2PXR?Eug5fqfctzc(;KM!(EHV*W`)jE76qM3oyH7x@=&Onp8OGFBmxL=6=GN zC3pl{P*Mwv3-^^ec`>naQ*LmR7&Az+&n~83WEp0q50@cqFcu)g+su+N3i2Wc2!q+^cWr}+GuitZW5yR9W?gA|SRH12r{4W?{UiI% zzo*gPR+R1aCLO=BaiYdj8}S*;QdxhEB031qo157dV{uX%F~4!uKO@-eW)!+u8Bj)& zWKvlURx;r zSJ-1v6%UyW?{MY(em9*=UtpFil`*C(bDWLetO&FJybh2gEASs5H0S9T1E8ju#3nlk z=F5{5V28@wbnyB{AK#nY9DCva9Ynv~#=l~l_}=Azu5pgeiv#Sy26pU9c5{mmAvzo7eK_LJ#|#VCCx{5EfIX^?$% zF|b#?v8#{9*HlJ+QL=^<^uni6-1k&LTbcVNE6rQ5x;vHfunTnd^*=V4dkjRn zwS%(DWO}Lha}SC6c)d+HHY~a=`?qQrC0q{o^a}9);Hc$)BjTU@4{Q(TS$Qs~+v`67 zKIRzT$HOX?`Of~6nU~||Ec;i;-hRDejd+iaUQmcKVpVr`SO>`DZ)c)|p6($NidBZni zk=;8>On%!nFBBT@5{^`<94&OPI$iv2Qx5t?0d)-qsHGd zig@fsXm7WB zwmxiwQpJZvS08u8WL#gPU5^6>B%w3ARUh-uJ^jeYTKaA{6t#I$pBns!@fUvKwQ7HC zh4G6icT(mI$qU=fntS26x27zAMO3l00`YE-+PObg?uYJ)o>pA;WkmE`>tr_ zvtAcPl(057pheVOI)lEjyY{ZjE9t`?nCoEOE(EkXTm81Qc17wyRif5oX^V6UDVdwP zkF1ZT>X48V%Ng9NBtf<51@^69Tg1`47`inPPQxz$!B_?H0wwr*D6-x-q9W*TR-yQ&lV7$eTXa{8jrB-Rh*puVpX zy>NAoV^j04)-tSynO@eG5u6nY4%)^Y!mosJYN3akv5y=x?IQd>{(ONO&tF^~@YBQ% zCf!RCa6Wi){jj1GFhV}1ovN=_(5~@X;fo1udY{%4rR;p(XN33-fghaf?ZQlx6y#@m zJ|x{$d8NL}P7fU;&XLXv`KLf-pZJ*9+G0J0311q7f}~3MO}u0^5n(De+q8LI=codR zn2N(Lr!D)_K<*gy7vTE!Cz-2akl=;L`cm-_Yt5ICS%D?`gZNQ-Q*qXY{L)?k&lHRJ=YV+*1pWx z+2;AnblWa+!-I2ewy)o1Bpb=9dv?68<}t=@LEbyb?_2^e#;}xaq7`nq3RSfoHx+&* zoZz*>7IdKD-HF9X~a0;+Y;#FAYIwjv-iVF&+0x8b*2Q{OK)U~StRjCo-fQzr#F)_Z-3gfAekxl?IXd)Gm5d>Ce@>i!=F8q z!iKskf**Q4J~DWllkVw@avQzv40EN$7g_n8&u6ET6^Ax1@p3gH|cXN-G>+j zwk%;Xfp5`MnK}5YI5RDSt8L%OXI6UlqX2R^6a~ukgYIWrSJ2=NJRt`KS+fKOxpDPr zd-!ByBM!-cWqiTU|9&eBD_8+?3Bz6N>j&8Ah@3XVAy|=%!y&0B?8ig!xv`uNvD?5C z-ykpRB3P?xcvQFJuN0Nymb#6*GXQ5>ZxE_%aq_hzQMMhrdbFt6=y!Cr@uvRRYP&+A z>qzTl`*k!pu&u(`L6YhHoJP&Uz?rclC1d^(Ua-uBvwBHwtU@lYEj(Kl%5cpeI7rq1 z)Zx6DLQQ9QjP(@T1FF)5H7sE@;Xwq0_kU9^yVIZa$)~o9lW7kb>bNNXMIC3-hmytH z=N8)2^q2lybrK2SVZg_zaXYEAgm+@+V-l5gi1nZgQqDtYwlZGX=R*sYErmc%jAb*~ zAXRa8LF9Gba{JPIls=6)qeP2G+loAt6)#~aP{g|oLfawjOA*Fj{d+Kgeh<0-WoKNY z>bIg3ySq!+L@HyUnG35R11XjiqIiDw6_Wy5bAVUTS>+B865={ioWj}`5S;4a_nXZ% ziilWKdgUT{hcR*sPo&N@+EIpB2JJ@R7Z*qsQYH<^fuXv}x>#7iNF`aO#-@H)Xut^4 z+}KxvL}wt67VjNVVoQcfl?=s#%7b^Y3_DZX!nSXYIN=vbD>aU>A_w#DzZypV%E1ta z{CZP~&I@`8fQC|H2q}BuA|s`Q#W$tAk2TIQtsY)EKnrIQu$G}}j7rEzhbN9_4mLHG zil}o2+9+kBAxRgw3(e#A7!LJS*6m7SMLF$$+w{wB(iat{Drc*4*1$d?V_9z%*2)yg z=;j@{@MNe&fM;O1nTtjE^J|WQOmr-P$5kVm)&^=;=jz*e8V5*Zl?4E>UTCOEj9kJJ zq3=5v%?#lTB9q4*;3VIPJ_!Yj)^}`kv-Lq3T_*e`Wew-ZfWgwl?JHp%K4{3I6d@uS zJ@>?_DB&zBNpxXwaO$r})RN{ygEd)@T(=uGQ$P<6m=it9j1~9JK3WVofkzxHV2hYnOZ}t?dMiq*SOt5EtyDS(sx2QXc^=@Hq1=Xd z;Vr&QH{L3a*7ffp>6(l@87Hu^WPW`8(Sh)+x2Bha8FEW=#95zu7=p!`SsxYsH&>n! z|Kdz?-9sCZimbl(7Q5Ww7U4lX?2YKzIV8|K%JZJQb^UWU!zvjwH0qv(cgj$3C!{6U zHxJRG?D$3KdhYtVgdc#tDe9vw=C(3x(CwH&E>kp#ZZsjO<-V?YaHqM8-#(|<&TUIsj{s1 z5%wyYwoR#A-YF76iL6b9L*3Hso?iYX;EwJbG~f%d}ZrJKp!eN z?0lG@@H+ExXO=bm(yl_w-2F;F`_9@kT@h3YC*UUA`arhdYmSssZjaH{m!w4?5-9l` z>G{Q0u^9f`ZmSh**J4lb<)7J)4(a7~)Z@+=Pv;jKzGXrA+jCet4~5L^ZFRq!bGebt zu$y%fQX;=tU+ra`7yXp`!N={dg@ndH2=?4o8A5XO4a5z@+rY?T3~37(DLd)-P?ec` zthUbeF>G`GrT=yT=6DqEx#()iOQ)**2+H_f+M-dz9DT8(Qa{%^tIE})!+E;)zk=NGOk@N+Zc~tT@(B1VA0Z6fDRCbh_+ z`BDJtVT_BqYNe=H+Z4opV5Q?^_*oz=YSpUN_m3F7kUA{95eh_hS68d}l zfXdesZ=zlF2}291PElMvVP4Q$DO19mYWbR|7hHR6!^6-E&?S6`5AAt?df=;fN5GM* zFtdN~z!VU5l=hYFog_!iA~>IEAdCC0rna+UPpZ0>Q@o;v6D%P=dP=|ai<60PVp`Q! zcK#Sw0-&2~A(y}p4leT-nr9^Y2d?B)UW!V4N#c26Gz>L!i=X(>d@-O6=jP z1j}L~GBoM%37>3f7yy!X{Eix=JC%)IzMyB4QjCFjQ(=io&(DY!|9>S7kPHRa+F}Iq zFo_M*%2;H1H4R3*kUNMVcNmudB`|JVMKL`zl$(W^HA-&a9Pj5nzExpi?Cy@~>_SG_ z4<|B7Ar&-hLo{af=(@#a^L_6e4fxT^A+REC8XCQP;RL&0)wbgt?z~H2(cDPa00g}J z8NCB{?B`Y#P!sAJ#?3+fO|7K45KOl*aw%;Sc60<*wS5Q$iK+)RWv&j$1E&0)WgN6^ z4pr*DzdIBP^&Xg8Q#raM1+mM?Fu6s;u4J#<$0eav0*=2poZzCRI($;o92iI!CUBbZ z+Kw@&!~Sk6Sy?z(RbsrD3EPqxMhyK)?OPXZYzL)sJzlVJX8u4;eD5wc5FjJ*6m3Yz zsMeBt!=r~P)HBMjkTXKj>>dkg4U6408nE(K$DBi5GrCG)gnVKa?Re??x9y77^vHQW#1($!PnV z60~J0ANVgbHViV?biU!byz?A<#NX0%4(v1Q<{k+lL(cZuekJ;ik)oMw-!;qpD`@0*=reYxu>HzoPsIE|HopNn%6=+Rtph%cy%4y2{PMm1 zHc#*A33YAtDuuL>Fj@1r_yF1dW%d0jtx?i9i8no|;Erv#aEmIg7)w9^?3{ee?DwWS zzP?zSfKZ+1Y(th_D6{!=Z!DZKLwjiKIo?mC61 za(MPO;kGK^$RJyQE*(`Q4_6%&+U#Qr_lqK0V=um}xh28c|I6-P7uJMN3y9Qrk?Rq=}>g%!nV1+4DOl~x7d@#O?;6@e&CEv z>W2@)O+UP5w=v<($%7RV^7U3f7J^GXW1jX2!w0XW`-e`3$yZx(mes)fS0Y;<+(hK{{o>(6n#be7y=x(9m@@eJM&IdJmC$2idsJlDgE!bIwBss1 z5PvzILZaitOIKu*XHcDhE_zY;QLaziIL%{*mX&+doFiCSD^<;xxtO^M?gruM->CaL zSg7I7L-5_!$G8GYj4>#~=TC8{;tw*E^#2*7H(sva74jp^) zSbMx`Bp}UN75fHnQ4&E3=FG`dN_A2W&oYh3Stx;>m;icLYm#p*g*4I8Gk+Sj2sh1r zA{y+-oS_VcC!N*nKm6Wl#&XJ=3v`#ZaB0yNgufy$LYa*QRws2mf6-dK6unB49nfik! zagnaXmqFy=dzMGKVLW|_Up*c3nRCz>S%qAJ0}p7IQzJ{Ni^A`E)ad(Ba;ZSZUECqOhzJ@l814dUg{)`^P z@tkTm`&T~v9Qq7oI>5tnQO)?w(z%<=jT8QDM2$5dxmG#&jRHfSjiSc zIOQgUz_IQ^lASs5h@25bcM<-u8q=1l5FOJT6G_|FYcI61Xq!{hYcwD!uSw{=_6gKJ zidU{E^a8QIqDHci-3lxDaE5mtpSgSERU(UgTmON~)M+PnD3`b*;#Yb=amT6R{; zyGlkHInHzOX=HXzz4?;Dv~v!#oc8f#WE8k2U%we_06fVkd+9Z>y|pHOs7tMi;K4W* zM$2m{RP_DewU%G1vxG^Z%GF&pum0n{U^;Q=FT?&s$Io7Qz5FcSvVn}15)h?YFfkt$VStDHN{WH{9rgLihoY-c5`nQAJz`9(z@Y{ zoO^;cB(Kn?q?lu~ci(@3KSgo@F)ps2>hoGQg;i2R!XW>uKE84UC+Bk}cF`T+8TPfa zRv14Z6ewG_M7I7ulpOj+&n1K-?t-GxK0njvQLwPuVCQ4xoUk}Hi;$4`RpiqL*5(C8~|EW$;vN(6eH^%ed#V7 zJjgn>PrjJ>9zfwB;hb+T+lbfAD=H|vo_Q1SvALEJeZ`);@=zn-8*T4>YP0Js;1>B{ z8$a1NcBn6oqQ7@5c(=ZN8J|U3PE2i^?I*Et<)azaRCQ%gF}AnIxqrpY^F0gEWNoTl z8$pwu$w~($%B@8pzczWP{fc|#uBifVax(-?+Y-6|b_!i)!96;UfRDz~rmA8YL2#2L z$q(`7f*<^D8s|wy z_%>ABCK0tZVoFY^{qR0TW2mGX^*#7dHK8(;i=5FFbon+NL_d0wNpovbZOHZ)Blc9p zkD#)k`gwX-@-%aGjQq+Z&_o-jQ2XprBrF%DHj|Z;8hn6PUUNX!+1#<=5WO_@*SJ{;DMg`qZB$@8|rp>NFqkfBb!LQ z0O1mwIh_pp`b1~ed<~f_IY9cwtpjpTmhC58Qh)!fU*ZQI+BoEa=cO}fUs zPk%Hb+&Zuvg`vf6E77DdwHee5vNj~LvZRvU?((MYW6B8xaPf+=X^8a_i89pV{y9}s zROQL|6k11H$ylc`r+=M6-?dAluY@>YFPw>Q&_i&sTr68Q380>7sM|d`2o^7mL#+ZC13`E(2f>_*yad!>m5FS6W^2M+Qn6#29pM-GRE)Oe7a@nlzZPT&5yODq=mXF*$L zp@jZ%Q<-Frea`oANr*LBjZ#_7usBA{Q65?4nKYUhJ&}F>eaY7dPt_Ju4{W5Y$~GZh z3guQ)DDyJVlTCyyPA5&4bpO0#Mi^TztRz={wFMM&4*wq7f@#c}pXW`uHd%|gYROw& zBfnhK_%7@%RHoz}8tV#vZ^K&x#wk?&et@;?2m~9W-0BZH8SuQK5Ot2?2;5!xKxDuD zT%BsKB6-H?6n>mRHQ0xj_Kl@`!wRTF<}ZV<^7^)!N7#WBBDnSOc+45)YNxt1M6z>- zZ<58@DixNBc3*XyZ*^Sr7bZPdAjDOnF-k{h-64*X?uus0%}G9Ff1BVB^~wYL&Wl6%i~wQhInYr(b|x4?kukmKF8%l`TsvIJ9f%S zN*tY>Zr)E?HcGg_xYkFxk2IR0eVEJ$e(dqTPcXkzhwySqmXYLX>(d}5hn~vvv>*ew zSkXj`wLIqs)laqJ4pYPOeoOKVqM{Ewq(8GJ4+|1m(C*Z*q_?KXK3-9T@lY!k&>+JqN^tBzUlBV86DSGhJwVrs!yt7 zQX@Rst^KufBFAYQ9gLv!W-ACjmtUkRH_f{*WuN zPzVX^+QMyWdz<`&>S{M4`*KR@4gW|)ry48S%O#AEFcwS^!3O9u-raWCsrOLBT8Y+G zZi=OFHk&E5uw%kxxVio-D+@gripsR+5(uMCYsqgi?Grt1yDkEDa4_f8*7#aGDWM}^ zOTDJqa~&(%f2*x$MOJebQ3cIdU-rS{tET1J{c=Obq z3q&;$^Fm`hO8goOY-vbNUbPJG&tN4f*(V@K)vA8E$PkK{fNj?|59pfcQLG4VBdIp( z6QEEET|K02{hbsp4?D+xXJ224Q>({lj-P_hhbF*NqGp-KIN* zR*#|?ni6_OJdLdV%KdtZQ#Lf=Wa*pvHx0VE()!KPmngE`IUps#d=vV5KBrJx~ z(cyghi|+Bg;(|jBo@$o^a_MF0mseM2lk68*42iFvz-f&MpS>IP68%OO5OpR*+^MIv00)i(;T{sEF8!zm;wI+dtr(gm+38l<8;E4wv5fH3LF%=Q|rw_3M`} z$9s4vlm8F!Ko7q?iFc2n{hGKb_}n-rr5?4EYgmI^fx46i+Dx@mLa(Skg4G$Tx9C@E zru-l9cR%wQIi3;9(C(K$g5F^`d5O>d*xPx*U-(Z8@LPQ3e|`$R{V1Wkj^r(*h%sXI z9>kZ}J^sw{*rxfb6RY>^(c>41!;94ECSH#5u)r;=} zjKn{AigC#Qj>GwbsQv)b9~$oLU1SKmmma5%JL>N1eEz?A9)9ADe|LF`e0VQ0{x#x8 z-#}!16Xo$5?)T8{B|>+G#`ofJ{Y`)Fv;XY@c;;c1LswN>1`~s?}j|>31uY43DH-9M^M&a z2lD<1!kRGbK{6U9x}zO=OxSqDcvcurUTwuH@f?wxNIfBJZef0t@$7Lv_1}F3~s59Ppnv#BQzYo>FA+I#oaK%>wg!z12L}1(;3yA`R)Vsm)64;8odtVzpo>mA0v7ZT>LgZO2WT=TcUM8%K5Kjri0h_m!>8Kf)@ma#=HetQO z>I2~KL*i?E>@&{icmrJ_wn82k-%n039KW z&D3N=(G}hCT|%0$vH~2@3A2RnJ2XY|!I9h(dnaAGOYC;kX~3ryJ}EFa14m~tq2>)X z^#~K%&x8;uv*NYKrE&Y}*iohp!G&U_8EU(h9>WLB?;%9oM?$v)b87C98i`@op8MS` zsu@`;T6?fWT$g63p->ZLUQ?!oWv5%8qWvxAGg?wPN6g#UyDo;7BqMYSm$x>P*Nit% z7$VL4sx4&I672;Y@-mh$s203dw9ja_Zw%i#f%n8NqkSf^_B_c8d zT}vI-Zuvi#G~gR60qqQ(t&LFQXiStTwiIy)?f0V4W!!5s=n&9DGgC=OSmLHgOD!6> zH-pVHNSKz=rk2da1GZZOJ7U@a12tbIbZgS;3|;S9IvJ>QD^Sze4E=UL+2dA`=>f2a zF(KOG!}qzX;*JoAgHzn`*^z<8V1xMpHnE@=Aas>(b3nqL>Fx%J0jmM41M|K%#KRkx zI1(qi%}72C#D1?>tpt`Se9)krzCBB3ha<3K(Pxanfh8eSFc1RoXcoUmT}e_sq+ z1c@M`l-vyA&_f&?s$pi#hnA3S-0b%JRF>x{z+$Z0tdvpP`RkhNF0_KNoULu%#YWKH=~mJ< zIc6F%V{RKD(h1m-8V^eB3SOsHK8Agk9S>Vp*T_b!yo*CU}3K)*f+1QbS_|gffS=nUI9oFNu8wn-ic&Yz*A~ z*sf*%Camdq`4yPs$fLT|)j1}%t3D1nf`%Kb7vZ|UgbxI1Rn%K3_5 zMV9NpiD|-eTMJ$*ZWCo3u-bzJ#CwWtS{Y*LAuF|l9a0Nsi(thN&IsW)=$_Ec)WaU^ z2(vpdC#pRHehIWk(hfg#_%ssw9dQV4bJqK|S)zAPdP>=qyW*{@RPFTLaEu+RTjr@-&Men0-iFX_8t0lx65!pDF1RzowT zQ~K>I*tEsxZDS9+6LcnS@4X|sVVW-C<&-MlJ~#Ip_1T|3=i|TdMW%Z_@B!+$p}+JZ z8sBcr&WAPQoyREqiF*ErTDoKVO(=(})Hy+Y zj_&9MBsN~Mm+!3n?LvQk^rJubgOGlRZu@>V*MA3Hy}h9DzGAm0-283!FMdB_e}nbC z{}TB0|9=O2p$q-#=)&N=(1kAa7hmG-%Z|(2i=VzFg_g40-v0BK-u=|4lrKK~7}&$; zSFbZ~J9=-%*~dO}2jfNT@YU~{+1u^@3hDAy`pdtL*9WQjN!$f1BhHGbJCsvgW+Y5F zPFiQ?e2kY3b=(oxy9SL+86+XDXc$SWEBwemxx_!^4!`yfZv+3jnbuDoGsyr}$%g}< z|3_!=4$0WR^D_^kKmQ^0<5sHGO=y2;CQz6lD8d@6R|)kT5kqyR8=j#Kk1>^*AN|K8widh|Q~7?p z-bDN^wVYAL8z7muy4${FPd7oXHync8q2>Xvv~l=x)6%3x=r>bK&S^(IZ1B8V44JtV zfJsX`8UiNdLj{R+ORO{WBVO0|oUkm23RWU@YDvMyv+dDvK*Eejz-ot1E4(JmRxMrJ z?FjjRnSrknJt3qvhI+U=5c?NFR#1C{SMjo=a7>vxR0DB1BdrdMcOJvMZ(r)ep?$fO ziuOX;C8{fRnsLA0Oe~L>$2M9n3Z0+}_MkS3Kx6PmM?*6m%>r(r6@CfSu{|!XtQB~b zfJB2ZfjK@#rqj!qYcm9UY3xuxLB(2Hc7K^N_rxSfoZ1L{?g>$-bJvp8-b%XUO*ckS zfvC7DMq_rS6T$E3!lD(NW`NbAL=A1cJkEFpo0qhrH&lfc$Rl_$@P?uA(&DJ0i_Ne} z-pbDa_v2;s-=SWm%!zp{$TT2sXg@=a;6p36TbQUoE5>rg%LdmKN{6bnq%sZ7Ad5lj z2xiWG%w;(&#{j2)z+PB_CkU+O7|GPzVXSO)Ffp(tLCiMU<9^^$sw^ z!AiztkLm&Q4h=hy5vwO?iMR?Wv;sk-CCyv0+JaI6R2?T#_fQUw*H*X|V#UgaI^G1^ z;H9)Ay(#V)O#!PBTrdng6gZd^}vcK{~vpA)@(_3 zp65N^x7NzcJ)E)Ts-A!bx&ab^NP@Ji2sy|ID`W!{K;oi#X_-cdu%rlG=oj=a;DsVc zxyv zc_TVHs_N{WxpU{vllxuo_q;bL8d0}JDW|CK5#QoxH!1NP#pamJG0BJ|$^dzsBW}d3 z!%_k_Fx$GxIP8*RN4Gq|cPAC4Q5s6zqKqDF8wpR}C!X6T001BWNklL1|r#lL~?0%7K8_P#+(|!MJSR{tM??0zJG%Fx_pJJ{m;_OuQHxI zK$zV^+tuqPpmJ_0>kAWS{5fVj-$s0-n8z%Eyn6#0XL@Tr{o{YPo%_u-pMXcItsoEp&@7=FzwERxXuW(16(+y_zYtp_S=;HgM`f$hNH`T z?4SMtU;dwNz2<3LnLJBk z3-FwWG!?7C-2|iDV{;ZJ!;L~N6<<&aSWXBd!)kh<2y)sHSKVX;RU=HNTRBUHInYp} zdAV#O;xRE?NVOb{nk*G{WKmRv;sg~}u@=RuVKz8Qu8dC&nRKd181a6fWWoD}cq(L3 z(t1I&eN>apT2T#_p;)2BLR>3W3>OOGp+v>RQLH5mft11f2`P|-Jj{ss0_q3+ti^W` zZCb>HJT#P**3^Ftgf4?bL?DlgTGFV#E)1251TYm;C;ED+xC5Qyuq97rOhZL8phB~p z62%1&s|H;RH5ILu-Rs)Een#?)aW!W)d(G7V7c$Ntk~WaXUCJmmxt?d_B9NOYL0t&* z9_Oxl3nlSctAMysku!*&8site=AZRlz|)_S{CHC$29_O zj>XyZ`>GbcX|Rfcn3j}tlzX353y`yd#kxR6O*rSM4q)pOT@MFp>Q!O-2^&w4&% z6aB*11%fg$u6>)yNgzpGB=Q4Ejgm87)`-;Y+Ga^kkcW!VDP=Jo3t!Kv1ZE?a4RL}t zFC%k@`Yn9dgWQIq80RRlApRM`;(5|$2P@|>bCsPQp2vlgy2P>(%HR-Y_-2jhh-+?8 z(vrA2hvgY=HlR9^;~Fcci1YZl;Fm8VmKdJ>X-ZjO`Dprlg6M#6A~9W}qzmN!D$+fR zgiL>UkunUZ++;QjZ1VeoKL#M|Jxzb-Cy>QHezrri_a~?p+T9yiJ|M4`q}YLZ;EuIv z>No!thcA5REt$Pfxh_ORR{`4;1mXOLsMg=5sVE>aW8 z<8!2Vn=*WtpSk(;oAPb{=rfV4pZ$MG@fvQ-Pkk(mRDf!?Ee2u?=JoEvY?X;Afd`=V|;@uQ$-AKKB7^_ER)l57BKuO}qW)7+VcA%OfZ+u(@*$^&iHL zJwN~J|Biq84_+~o+pRVIQI8FC3U%~8$Cm!!K2p4ha|>+Z(q=MJj2!o{@d~P6C#4Q! zKzvVFoU-8SoZb#FTtT|?i1w7UMSr}H#cE{d@fg9Oi&I=TBlowkd=bl+iJKkr&|-N9 z7gkV~AaxervZAsfbhjD%3y`+S3B-<(#*^X$xb6XP7YXwNO6YVnhwfd(Uw)#y>cc_`U2uIll#Y=ENLqQUTu zp}|n*7>a8ID}qFajgA}xWtfvq>q3%qxG-R4Q^#?wrd`z)j8aY30%=f6mI+@`Y8jRq zem*TbmAa@P&S9mg@7KLzu7tW%%qHgauw;GnB0fZLxgN*jKw5koDW#ByDZM=g3I!3x zbr2QLiJn^MW7iXM>;kvt{%k8xo{ z<&>1RuQwxMKWb1=g<32k2@$18|)sEdf3 zA)0Fn-#kb?r$M;84p{Ppe^Ag++0K&d@p01vLzorDwI_`bO0L}OSRHY7({ou(r~`Ge zs&H>2NvdB=i4NL~bM-vQ$<<_a1eFyc$B+VJzfT%kEEhDK;u=8bSe{Mk`vQzLb)5r5 zLqlZ(Q%(_ofLMb`L`*5^9C;Yf<~lmu#L9aqTtY?B?l~YJB&_JPVCTV2Q!-KzJ;maJ zQVs}BL3BOcGmN;o$2Yf87s;u^cRhI{)l4h~4ivdy)9S|p2*(a{Ynw;JkxjfI} z;*+co9!2Fck3X(F{&?Ywzm)mJZyr{o-LFZfm+|vksE>$C_^mtlzA2B-|5W{b*#*Sk zAuL}cNZ|r` zbAg?!|CYb=8(-sh|Nh%6Cj0Z+`t~mPty(Y_9;Rz=;AV%2qzPYf9?O?W<2lCu0<-P! zFx+{N;rIbce?qsFam}OX#GEN)@_0-cZu0Y=eU{jLm4E#|tiJEIANzu1b?0G1cpuuF z$GdIBhl+x+fi#{lta{Xcm$-fz7kXTC%SQzNS#w`U~~msoZ#zEu87yuHqk|@fT=j@4R@0reYrgxt{_D@>;>?$S~kTR>xI2p(sq4_0#=QFQ0W0!j`5|3|@ z<{u&tFX7twwzgBUFdkkbk1qf}*iH9ehCccEEsFgNvz;HO-MK-x_x*2bT^N{OeulKZ zjkx!-Ie=gIwbi|5=69;tFPSZ8giu?d)gmItSeaAOd@4tJefss@{`iC?SB(W%lhdW# zL}$0jCkslBSQvTi3y#yHEBJB|)dht>ArkBawHtio`i*;OkWc-_MJ#-nZtEeI=buEn zHz^U(!fgLJ&`8H4q`c;_FZ`eP#v|*O!5gHqCLZq~rfg2$hm(u=W{K}k(a=wTRYx9X z=rALtIh$KQ3GNWd&(bcd!R%)v&IY9G@$+wjDrH!Z^FEfp1L2!!3KTm}JiQOUSc0oq zgVbLJ5^>`Y37E~W)0$otAcU9D?ij;RU6YwJZaT<`JbVQ4mvPM;OAAW;F-m(2WQ&~k z8T&1o@I2ZK7`x=LU?~#hfFi^6#rqDLh0FznNEx;%CDF`>T3jIsT*lP!ji6nk42qb5 zU!mPCn&oqV;@TCK7N{#U%R|PabEKh~8Y)tGlTf+2xu7mpHg-24xuN83iWFRX3)M(2 zyVbPoYw=j{MlPW42;57E&T-8R#Cb|OM$5D4`~_m);ky|UB5C*lIFHGMp^#caW)l~; z+Eeu&%CZn@t?AyWG|e@@Y~q$CDu1;INU7!;b>!Y+O(=UO6$_CBaw4Wc z@BtGD%ZO_WVU{QTn6HfVD~>6MgP{IVwxTa+|IouX~2#$VAXxyrp% zy=djRrco#xg>3jGXmE(u@&7o~bgXYPB0}mLv{|9DLg`4U7Hnw?q05AYVdkrGn(B6Z zWB4u+H$omhg$sEN{w?^Ei7D#co zY|K@IOsfg3qQsiuPDUOwDb@vsYA_$u zY<-jQ_yVPDVK&e#zePzKEYB%%t0FrzA+E>r0#V0n20Rojz49K^>jek}RiWfrHQ-cH zRZ22S?{M=>DITNZOKdt;XasXpDOp9M#Eq*sh6b?0xT@Dq12B)JSzTCF4|sCy7*}&j z5yV!s%QbE;b%AIoP%`2N@B=!u1QF*!GmF&6HHY9s+tw ziquvzt0)~eViOk|>UA)l>`}@oF7#+<@$CT?@1qcK{t$Kbp3PEInZt5~rBkvsZ2JAm zY8J?8iP;L$Bcyl@;-69SZTvhloL(IsXH0=%09_d@GTp+E5GM+=+F21>q#RU|{cwB#PsJ}wCUE2BA z@LSK+Qb54;Y5H65BXw6P{m(M4cKGDyzsi?B{jE2?Px(Ij*gw61+TWzzz8`H~#PShk zxQIzhnBO66-GNdU_4E1?d2@-A>mMeqPZ5jE&X07hv~KsXy3rx zeYO1jgsyy#Vh=OkJmy!Pc!|$`=Ixo_uU2p#ExyK+0Gbs#-T*s?#RgM{+8a}lO-oG@ znq%yDC~-u%j%!co4=z#43&gmKoP3b^>cIK z`yLiYP!3q#`VghRN?f1Ex#!TW$^{$Ndx+a7ERN{*t`j#qqypIY@U!pGZ9h*O8~PW2 zf>=IC;SymMiM=Ncp3qhPrwcWSR$`#UIk`mg<^tYMX%-QYOy1m28P^DNT)Ts~1}g!| z7IA$)Y15-76k9@>6ZL+aJ4D?bOm-?4Gdzi(-KZwLWSBSTa368=KGGmqDQH+@5wbXl zEhW`tXFl1&a!)Bos5?a5DONn{Mw~w-a+w@k;(Cu9xA0vojp%kUq##w$}yq_?l#@lZTh2&6iamTTg2n{Q`~~K z%akEujI}t77Huz4+*(wI3gE&GyZ79|e8maz_0}&6540jyG>N!x)gN(Y7JhtQ*u)GDLq~u6<0^$tC z6FMU-GM0tdS01j^b%Q!hFEt4&rKXDU^);60DP)Qch-Oq1VO}UHV7Z};1znyXNwFfh zE?1<$G=^WB=c{Qa7&%t9a>X~KDV3-+i%4O_hPHl?G~xV!Tb!aUqCmD5Kbz8deS=?S zBxH;Ql0(HzSmhd{l}YN{NRgT<%@M>5*Nj+pm76MpNG6SSOkab770e9L$~CT-5XFUn zYC_vm6XMAemP#4tARWaNMaid%E;f`BDRBX<)~)3>x{gq#;Z2dzDDr#$~2bZ$P@HdtfC-t62uD9mU=Eu zWnp9`j#3k`R!y6<0p^BEMTu0SSt+@#=DS5oN}xLo{WfKs;TxU)zEFnB-IXYaIZ6>q zt|qgHqRko?T>V`o*RY%ji&ILzNXZ*wzJmHCaqLKATUo)yVfcF~UAeozd1C(G#it4r zQl=)Eaiwy6#UoO1vx-8AQE|B%#g?TGy-dmfS`t_&y^@pE&rrp3<6B6*P|}2+aMU!b z6THu$88J`X?9~)=-r(lfamxd8I$x9N%^k!I_~sZZ4J9mTv?mQPoGO|!#Sf&hB`im*KAO5Vcq2x=3@IbqUZIf5NSF@}>pEGA42@N>oN8pRw~hlt_) z^RL_^P|a;GBh6wUu4kk%RL(L@E!)hlE~Z$Ex`dwvR6AgVGKaXNmuL97-~SIRzPZHD zmpFI8Z09M)^<`|lOv+1i>_9rK2*Y{@7a%O2qv>9#IF<1NVmlODK-xupT|uem8O*QkGl&9U%_CpK>znf2JO&KTlf5YtZ_g;5Ttdh{(m)Y7qVDs{Q zhP{e4!;O~&;WdiWkj-?1YO><{?! zg=%l6FaFZVFaFjy7}q=Kt@qPj_%_Y#%_s8W={B3A2S_JRqV8*d>G$Sm`r%5oMR2(A z&cD9^6wBZ|i!^)dA3oEWespza@Sf>RXL@(&vBw+!`07s+7LVZP_Yr1?G~J8nY=ifi zan&-WZT#v%@^G2e={Y|6`LFP$PrnGj>iH+ptLMOdg!PR_nC*V=4U@czuzLAEhLatJ z(?13I<9j!vpZe`{posQdIEt4=y+&H^ z^NG(sjkcHT$nefPYloh1KSx?WLO!{lR~x*)_scKwiQl||=VxiRuhHy%moR^mf)tI+ z_n%~SYX=#Xw0el+XA-WtLmBo#uj2AZfA}6sS!3l{n(isW)^z|vGcqh+!fry*hB4Li zO+4VL3F=%1l{)?&M>IJs?GaB~%6J=6Lmsw}a))O76kLZ`AjKAG94fn&wdxJ$5|%QQ zCFVNR&CpID&MEx{^T)X5%Tu|@irjBe(jD>`@LdD8s!ZI{0zw%Rby$2v^(JBVZCrPQ zJYFKjb9j!x^)-1rG$dOhLGjBT-(+Bp(bVV48Q(@Mc9i5O{Q}EjO3Q#K34wrZh}jrg!Z!Upk*rET)CPaYmb+#{56L17P7SId-KKc&y>xN;hr zYSc~(5~9?!r>|y=p)eV4D75pDlpJ|e)3PBJq;6!TSl^-xNdE-D0*Hm}UwUM;(b^JdI(o)%}qfW+O&Fz}hasF4su~Qb* z*CMPu-sOpUd>9!vuCi@IHGAW#8h@4+l+soNLAZ-#@RY(UMi(}fp=C@*d>3m{)VGva z*`Ii75tsK9R-lkp+lVGCwKcKq8)C{ttqHCWHk1^oB~L9BKb<#POUcFtQRq)9>%h%y zGNB3-2PTYbR~H6!O7oi5v3S$U|1AaI1SG8S;bu)(4wuMOe2j)_hWlnsN=6yxjH?AD zdeTtvUhDZ`k&-+v2!5GSpDF8#@K8U!Clg`;1K(AHHD@T}^d42zGE&3FsGH2)dWexw z)2c!p-?z!IwW()Jm<-(-NUw==s*#-YgcNW#v0a61Q^GsdWNuBi3ladST;oDbAm8Om zn}LmB4QNxap)P3TVh|_Vf|bhj1vDg5@2~`}v8h0;rh(N_Q;2JWnGr%gZ%s-~wPsgM zOs5Q|7b@CBN4lMYWk~B>InxLhwI1K8Ku>%%+d@0ymp$opZ^E1GU}Ycm=b;GsbRP{p zKKQybrI5!t5GvzZYC5;r-D^QjKHp_2l(8->XpoAAa0XHDF@RMHB_+m{PO193s6Y`U z7-ek8gG{Mst7VGb2)%c}dPEbjv>@pDLwz?xLvg-6AwAtiOnQM|=L; zn7xm6Uh%QtyTO+~{??^ntL39Cb|1jcPMGi1(e!3^L^t~?r$-l{-y;u8k_)(OWY>e9 zCoDcd$;bHS|KQLCQ$?4pDw*I@6Ds&J5l&o#{;P0-3OR;-hri zAEue_(p~)Ky-_TvUnc#c$J0}GZZY1z4Dum{1IMR+``_^|{_X+)=JCX1zxoICfTc&U z_~U4IKr=hUwLPkZ7~5J3wYo?ePDsaJ#nK=0JD)iLgik#2D8h$mb{@os7T4Xz%}#0= zQ3<5YCGz||u(`r;e3i$(@P~Zymo{(os(vWy(q+Q(9ASCmZKaf7t!8n9bn;%zUFHWd zc;SSUR+P;aY#&fCn)XF<+y$l;TMJ7G)R^xdqvw`Yl}Z zBK_e5499bP`(wD-9-+Gfe#G()1OOC;R|BF6nw) zQ}ErniB0^<&7!&$su6J;O5P@?9_L?Qz-I`#-zKgvA@Vfh_AuX(PaYt-%FzwoJ~=#v zx#yAa63ya;*RYZcLhdi1UB+yf@Z>ss001BWNkl2fZv8(O#pFNyUS56_yyz*q*YUsxxS#9(KgkRw5(Y1#1jRSFw3|$)q4KRS*(kzDB!|c(R4_1rHglx+&$` zOy)W@c^iC9?A}EVI0w=hRwmR)wHPUzY641IlfWoQsK#tEA!X2BE6+7mUNCvWU|?tf zOIpYJi(;i`ce@d>-yR8Rw&tELp?vW8l@#yD$I5bafLL7dyHj2 zA5m8icF6&XBMmKSW8|#(QmP4!r<4nT;X5UXLv@CRP!~jGU0dV7p+X-FdN958B!ED zC7y2MwomFgU3TmBQV&rarb}FFSf79uX%#4OKtc~$82j^xw5U79FTO{&|15&xFE1&QaJUrH9FzEldMWE5b_UlxX`17Z5Sh<|?i+Ot&gu76;ZMv|yp~$|Y7; zT@4KZErD@!4tN<-M;;Sm84Y7KCbfWOEVgK~!7mPJ$7}HX`+%>%>3zy$k2m!GL0o%| zaQl{@RIS3;nU>NoNaHQ~{!h{PpZ>E8gwOQuP#JDf##3zAh2`N}Kj76$ z0b)Zb2mG`D@fd#jhqI4oI@4c(&J5l&o#{+J`ugPOAI5FHpRm|te&L%)c;jTOVs!i0 zDJ}!=C*D52$5H*_Ki=?jkN*c2_Z^T|@53!F5Z(PqotuUfF*_!%zl#meu$g_0fBord zw*A8Y@y1 zrFC1hKY*#(%+?ISqwLo&QSV@U4q!aJNn>{y7uV>DLo^c>H;A{-Rqm;al%(V_0XKmW3(w*8InrjA{^(JxT%g@v&@S)bx|-?~^Au~aJd)NIN$XoQ+uxCya$qe!PQ+vEe{04nh>YyY~f9qlBA0>_#2=fkYN7QYm z*7VBxbz`8+9HH&Or<%wkVZKFFDS4n<9%Hs!O#?Q#Hr27@P}z-P_ZUGdHyESYxJ|xz0e5Iz~%D9C^q2vMA+`(@R#ML%=SdjY#CA*sXG(~(ZQY%Rz&M2kD zxr$GzrCkAaEpfe1Dh*A0NQ~Eza!l?oqRj&5Lv>I}kN60=sisvZl-yL)SPkzZ*~VI& zH8vz1Zc56PSPR68uO(_Z6$n(;rB}kz5UnL)HgR9?jhRcCQoD)-p=}H!>dK%VZWh zUoj43us9`$bB40Q@<1LM!gfJ4(1eN^D3*|r(N<7DR)a;fmadgLnhu3LC@BWKs|86& zfgqGkz!GREh*fr|x`b*10)|I4qBi2X`sX|->swnivy8R?g6J#eKLz?zt*0Am31vs_*3eB6(&EKR}c%>UGuLdL{mR;dTa2#CU;lU z&$}s^>t8Vqv1;~~$)^^n&lMBXWB`N(__kt1C^fC_d?AfOvbs=_dI|n?sSMgAl);e&$cmW}W)VLJoYkbSD$;<(g0{6-FeM@NQV}V4S*`}6S_{Ek zq5UpI2;KpiK_bu^sI!IX&YtU|k>M4{C7%DmdBla__G`Pm& zX9+_|gP#@=1D1mhUj9Y8cn+(TQ3562)8*Q_AzQ7qy7DTQ5hN*oL2 zUilslTst6cK`~G0ZjyVUKiWcdiFiRntP3LSAQDiWra4juIYdLkH5tR>GnBHAxQnP> z!}?>SyN&n}#zV;WQPMW9&E$9<*ar1T87aenn+JTes+@RJhV>FN!*zo11hlJ*C7SWg zZDM~OOXn%E)Wq=25{?M|Ets}isn<5_gYMuLH^^m=7`GYMTa33KVvG-=vJbWZI*3~pv!qNb4H>5& z#oPxGc?xZp$kq#pzWr%6>3W*k9rEH5@!%@(^xJ-HmGOJO@@+o(`Rfd~-;ZzwKidJ< zRGzjSAj2WqUSxjq9lrRF|6)THXZp+2oUhZ5H;AV{PJ7{Lq`dv_Fq^|`lHRDAbA`>#`x^r&Rgu#J>8 z+8qJUV&x{|&@vvsmpojg-Cok2dzxWrJ%1rCcT+ zU3tTzxi^za!QqJGE59pW@)rnxk1)T*V(%Holb6Zy3aM-%aRzjCL{~;i-(%+RozTp0 zwG2<^nl?0P*j|*#cx6>k~QTDZ&?O zLeId4YM8mECcDhQ$%xE6luRiF#IW3=!EntnY2AQ_cK38L^D`O-N^HSKy7RY5{hIOi zeWalQJnC*?qY>?x_S`qk~4d>>FF0nik*GF`_H^`fW zaRk|ebig&@>OqhloO_vO@eG4qArA$MEv2-mI!qnn0$}_xk+ejGU=V)lm?Humz-=22~F}6iQa&Mo0tI9H}8vN~)v%c{0>oDEQeO za`fc1Pe_W+H#Iq%w@@GPVTEhjn%tFK$Jeom8C(;h>I2_snp$*}1?d5EI4=}yYC^dP0p)DM zJk%Fna>7c+lHhzon-MINhD$h~tLax-j4&liHx>P3HPIc1If5ZBVdhYkijEMeMyJ`7 z1eAM8>e$zPHv#7%PY4C5?~CQSds-2}H65BD5B0d-U6<3Q{(RolYlKtq6Vuntr?oY! z=Sd!F@|Rf8i89twHa{hMYl?R&b~8a;HJ~eo19D%@-!xA9mFpsgNV&&duW4nQuHO~; z;o{^_ixG#4HW@Y^Tp>&d4J$QWZc>mYS^x=cCE6CZd0zrwi&7n*7WOPO9vHH+05 zuIn*TEOmH4P(qK`GlcG&xcvjt^B)6Q;=AWTGoHjSDi*h~7-~}gE@NFYxmDC^qYss z;|g>SQAfM;9HTtIaQFb~_D~AySEyzz8)MwVxxHE%I9rn~V0i{1AU3b2uYi?^x{90; zH{yIIk4vn~>Sr};oodk$H@}IP0uD=oVm-rZ7fT(+3p6g)#R(T_+uheq554XlrCFkG zj%!cf);$eC$y?y&Xt;%MI^yaAt7m^62^aCrHqJ*%Szu|W8s#pa8qu~wx=Xx>pUtuK z;}jF(;qPPJA=144B(9&`MozAf-38vc!CUpEPoDt)ACG;(v3_}*dC`gbXG7tozEQ>J$>M?*F$&?ku5BUrFZ_tA+nwAjc zQG8Hzp$H@aBnM6mD`rB;6e&t%lig%@pYGG=oPArXR@Izyj696m=XA51&2CzWX=D#z z<8<%6F0-m;)mrtp8kzHblq1dHh?OsfyjGzRXiBG1ga>nfBOep z!Oj<7qr@kW^l`%d#~7}^hQyiS+MiR-M^w*2oG$bT7;vkgq5DEBvmWT61VnJ%>+}oB&{hsj1%gpzmp-#{rz6^EGyuSdM zAF%Jz!9D65r_|lkq}9oTByO~$me)xrWp|yterwyDvl|CO{5GM#jn*GQqzB!gIug?v zff3b+;m#>+M_%1s_?E{=$mC&5>?gGKgs4b3r%sW!KVbXnn%KXAB2C@wSIiyh*>B!uQlzWQd%-Lb zdT+5uT-XH{X3bns)e4As>$W*M!h(S&bbqk4<7dE`r+KK0L$_hE5W4K5pt&nF#)+oA zhno?Wa4?|3d;v|D_WdTrYFICn(FI0;v~h9KnxBrBXkHJ-ikKdQO^z05GweEFXt3U& zBqNxhWrg8LkRVFxl{QCo4y1J@h)~NwtC83##te%v7;_-@-gmF6F5t&PPUk2fEqQxB zLccL=C6rMqf<~e*&m*XHfFIE;NEsLlt{@B>DEbjPWs9Qg7xp#rp)Q`Q)Z*}yhwF|Xn2X*If z8N05`4aBT^O^&B5ZCQN1+%oIs&Fn(HB#bkOzC!k`4P~1ViKLYulMsBdrB1=O73btSCt2JbEQU4ZlCP}=YLKP7!5|tj zy6By##GyG?TmnIjIt6q#ut?6C{`ejeR*remjA}wiSo4rOGY@0aSus1IzxEAun$W8B z-Ofcw@CktW^OHguuvQ_0*1>TNv7n`542T6x)UUbAVnbeS5fbgRU}eS#XcR(3opnqc z?-%ZiLn*KeEpCeyio4rl3&p*QySpr|i#tV&Qz%f1wTnY>Def*sin}|P-@Wq=%(Xg6xXp|%?vBDZ?8EX;W!Q4FPQpw zJ`v$l!%>dpq7k6;;V-%EWVpA_o9KpopHD8~Qw3(D7T06KsZ%3TcQ;~3%lxS}#|1?- zYQ403N3=yAa?oM-EdDXq<$8}f;{sskNaG6}_YZ6rvBM)A(_n}ZkQTET724N!kt?$z za1iP8YUbE`X|-Hrf4zC(RQ$2(@u$wElil)zlxOoc^&?C2`@63?E0=2)hBbj3?->`J z3N8b;@t&RrpQ&&zzE|!&*EZpMRqef;MKpt(ux>M20s_~`1ze5uXu9?M_HN@xMW3H^ zja~)b^HTS2(!+`TN$)D~c&bVfd)cPd$C~2waP3_?=bk{95 zKRkT!7nHyP;7(~VuQ2aG_%sElQM)bJisO-b@-R=*>4~Y_4z|Lz5~OP9#|Zhod#%ks zbS_x_H6j>0>0o5!LiMdytfR;4@<|Lcvh4(d3D$|bT8#BdWt8*V4ajd<@)Sp})S1|^ ziXFb|YR^vhGZyDat9rja;M+;kKg{c@{rf*L(U7pfn17~;)FiC$aVw&3JNubK*@6z* zmokZcoltUna{<_=e-HT+@MF03vV{MDDU+s*9aC=6y)SiCajoyo{^GQc)+Rem?s1;q zn!TAdDn4>ljR7=Q-3=eyumB+YzWwW+xuaBHr-O=`-S_!3MynDa!dMo7XAr_l8fohwH^zPbzW10QUc?LeQ_Sc{M@!h6m@bMJ}kplsqgQ@y~ERtU?c zHqv(8v6HV$#OGt+!ElaM4QPTe!a{mFCw)R?s)m*tuAih?lk@WXXc@Hgca>J|vGN&e z&_k#CL{46&ubh@DUf|=jlPKA-pJ5Zwc!_-tu(Sfy?;TmyO7|0eOd$eTZF7z? z@A&7@4Ikks#Sve_4Wn9xTPtKAe5=lbn{j`*ff|lzEvTv|AxF$g*KlXDO);BaVTWeK z%tZUDP+>S>%_kcN2J(>%-o2w&<#t2(m_@%OFco_i@7SC1%!9YXtxE-FfLzMU`yb|hM)L|8NPO(xVx+W4d`?2Wgs^ji3+ z*3$f;{ff+(0o+1wD}!t@Y^qD&VCl^`qgnpJ5?XeeaXY{-w(Q)kr-vOTxNt^V#@%}! zMEF&gwkie&CTDcu>b=j*c!kwn8egCW>!}wll^qz#DFro~iEPT)^RB-76*STTbJM01 zH0%yx4@ablNONj#od-j?5~Ipx4J9FzCs*w?tH|F2Ds9{>#Cj#5%oFS#j=zNG24`|E zZ2(5noJL|%g46~0reCKObAB0J+so2_t#dI~V%u!_s$_?_%258T#A&QO=ATeUFtJD9 z6uS5__AR%FUJ(qq)@|*5+LT9BNMevO7m<(80p?A3@mUBaSDHV3pD;(WLDo?Bx)B`! zz6&G1(&c3t>3+gl@cK)Fh7moiGGQ53bg}>QukML*Pyt5{Rz+p$VuFbu;6R416^_8p zt7`t&FwfchT8Tt{gvV((XBQuN?Pv4HDZvf~>;QA6MJiJVx?)}$g)B;$O$M72G^VJM z&4Szgi>FL$R<69&e5DA)F8Yj22>O=~l0!KS1#FT*KnDuT<)0^GAWmbgaVC=rpid7J zZ}5rx#i}Y9cjzBrjw45Wc<*E}UZLh6_k+Q}#6ibr@%Bf*d5ZBmDu&C1F(*fEk+T<{ zMAUCt5dOq)H`DEJ(M`u=E=oCa;?I*3V+5Vf!83X(G0z#FiKyr+ja=xIGooDN>VK=W zZF060tE12mR=P))-|bh3-xR0cW<8(4GIoLYE(>09evet3M-^M-*x<%z)X80pOiy;T zkta0q^98Dt`{(dpe=VKMSzR5XnewLZ<#%gr<1Z08fYm(T>!0ci1g@h!aY$az$j8}K z7CBX)wPCB*ZV{pPir2ZJ7sR9DR9;WF*W1yLQ%-W8M$dR8@qw|3-}0~r{2gAXcdtgP z1`Yfk{vhPxD}9(pbMWSKue`@pTirY8w}XZl=$sxhKi@P zH(^fT8*GBIMK;BukhG-62YSz^(TqVmp8F3nOrfaix2xrd_1PfXA+WMfPn{4iMijPlBt$X`u1##f`cfwIFNhb0a(l^`&URJW})tz7+)3Y(wOk|HQO032VCl~ly~w- zs^-xUz*%*5%=@{#X2`5VieGg@5K%CvG+`ROF4x(Zs=fs0FkF-ASA?#|EQ9*e_!Wh< z)?qG6KPTp-wIhe*>Ky1pV#2-K6Q-4N0ik3D<_s1iAG8=rN-pcJg2{B+m zVn+a4cxC0kXtIUH^3lI|5GPUp={ftI@2>heVSZ>iflvaC7ZfF+-A<@;1Sln<%pi0L zZDGsS55@4)^I{yC*)z3^Ohh+hKa(I$N=hNB5@g6UM*6Y_*KSRcfi$qD2~vu@~w5##K>q%8kzHUA}C z#cxUE_2^0@&rFX~$t6dS-*kFrT8m1F+|y5Hu(Xz{O&&@uKh7lJ>veTLMUjE@)|3#8 z-!_5)x{4yU3|v_!um5|V@@lso?|Yfme=I;w-S=SPAZt|WitLyeiywmg4Y6a;_7Cy) z0DosnuD-rvdiM@%uYcD=;)S z$32TP!&UnR^2EV;dv7G<%~>$a{9;BB8rBMn092RB!6I~7yVnX-3;&G~>5=$3UWD<9 z?kWi!203bxEAcQ3QE-j)b=#NX?zG5m^Wvj8D93|sfD0O9V)0z2lDp{iIGGtJ6>B2@ zcy8;IJD1|4$YiYOH(8;+Q&+~Fey0M?@zeJZPq<>a+|zs}_8eT9dhM-7*B)>VDH#^& z?oMX?^*ojUpw0bFmW*KHmPUJspu&RgJ4X0k!SNu&?~Go>Ju8^ye(@nC!eYTsf+PXh zjNuttchAAM)M2Yq&RueLwCc-ikbjOlfaJVwK;`=hpW!>2z~ig_uSKCzPg{e!p9;>E zBAHF=1F4UYi%hbR_iK3E<<3*TxPOkbCeJ}(g6ZaT#dO$N${-Z45nYoxS92!O4v_iZMD+M{I~d7Slu zBW=$M$0rZx$IDoOFRQkcz7F#7%iUU!&gpDS^Y|;ve@;a6oK`4(#s;qgPlPpX$so+@ zcaJf-(V*qr6m7rLs9=~~t#8Rf?gMJqT0&w%yzc7V>wgb|Km1?)so&9tVRlJb+3cxU zW55!dRcgcup!a~9!%P+Ya0^S`GpLmo>H*ty`s1ole4x0&ZDb5YG>ROU{Xo$v)K$DE@YT zvy}TXR#4{??}b|g0g_<)qUaH3gr%Z#P4yYaJOA)UyL!xJEO$A0gJd$sAIQgy;i*Fs zE2|P+GHase_t3Vdw8IH!B#W3dy>{VOc}Rw3`eI^*M| zwS7kw>94pY3!jVL>L-5rgWVpBdQj$}5gb(J$KH=eeh4n?RYz9odE zy9t}|v$woZw@Qb>tRNwxN!x820wnAZ2=uL3+Lfb|5(ZvYbdH$yvgb;P8KtQe;**H+ zk8_t4){lVH=NQqq05hu?yPpNEru2zvV@2MJV-?023Om=j%(|@bCou=oYM~(XZ#gkp zHZK-ho0W~Ut*l5MXnTc1%2v#Y*skI;ED*2`o+aNkW{a{I(q9h*& z)?t~Uoc>BY?c=wW-PM0WB(BaEvcVUYNiz>HPWEH1b{|;#%p*;^k4_T?BI^0NIMEJW zJD-hwm9IG?2Al(LX>z|e43A~)h%`ZV)5nlTpymCVW^~Jc$s5!jV1!^6y^Hy1VC~zE z%n%Q*neR(QzjRYF(DYa{>OghqAZh*d2v7nqUyAji(($UZTf6a9cS{_>;0M8mGd>8* ziGg}rX{q<;)IA7}s{NliXtq(tK!P@9qc4ON?LWpSGJZkr+-K@YW=NB-x&_o?lK5_D zz-Y^t-6B$N;E9s>4$xp?&=URTOG#kl+y6a1+!g~Srih858(ozBrw@kpXB^qX9+52R zYlSmPQL`Vp9H~a$Sfi)5C9TNsSA$z{Kq+Z1v&UXNHvY}dI*XI^@td4E%0y&21@w5l zm+YWEA(#@-6bX?qEzrv=H~`e?w#qi%sF^z!Daq~0oqY$~yCEv5aW|*qg)9bo&_z`c z26B28OdCiHv^zVW4X@!3uP2luMZ)5d*2CwPK7dnJ@n*H+-;Ezs1ef>UCbIXUIybrP+ z?6Yc6QyyPwlk^>jxi9iff3=kW5A-n6Z@~F5D}I!8c4&jsBrvCGxq6m}*s*1A_G%gU zeOp?&?f8H4MnK}-veDz~JfA0e&r@-Wl_$Cy-)!R90E(IWott+t_%hL3yFkh|ChO=;i|Ka7$M-!kK9 zdDBf_VX@URvCB-etqWk&CBcu%XF-p^&)-G?XG(Wpod`M?fv;=Gb`y-G_9ZA*^M|Q| z^odpKFZ$S9_wOByeB*zvnx4lztgQMHL$2IL-)mES`dmjr8%9hkLKzZQY3Fsq$Py*y4Pf;#7u}jm-U`V2@3@9D-q9&WYB}}g zqPd^VmcNT3$}MWORrR54f7@2Bh!PG=^DmzS%~&RKH(l0CkRD#3d$f#RU7CUYQY4B# z1-nWvKeHpk4m0+FLIJ2Tk3Tu7w4PnhjJ;kAtzh zx68JkMX`hfGO}RmN^&%yn*lT_$L!z+rC=Y;CRj*jYm(PfH)=V|Oq1n4yPhP978(x} zd>^ga8@%-1XsI1jo?|d*v_NRR(lf?d9^y(KRJ()R&;YS2R)rB*Tmz-!u{aABx(uxs z^&oGdnUM0#miZ8eNGZudbn8+^wU7;_NL_=Ju}ypZI5x#J2V((Sws4;9KjyhD+qg3}RCo{=S=_X<^{Mt+N3-JDBVsD^R2Qx1ZL^s9Jf)`&7=k0u7{B zq9ZT|x^7irPk!HHo_|({$Sh^E#4u72lE;=c2y3-#cD&JYnXR7xnW)B@qehdmLPVl2 zVc8LxlGBjYz`y=o5F45*Bm=8vpRsgUlcd(=XFO-q!2XzT;1~2s4F^JKs>vcvI-c3E z9*O#AtXEM31dAI}DoTxU_Kd zd(x3xGPtA6#DNj_M?q|_6c+56?r|L4^_2#MUjwammuWZ?t)=Pt%#2JdE z&Y)__AajH#TzBjXASELUgO{*i7=2h=M>_w2+e2NI@&0|;`3CiqAc(ja2d;~GD+bC< z!jstS4Y~gWO5@DrTm-m!nrp1ElP?0*Wnz-g6q#th^G9|8Ys$MFdpFsj+#ZI&<~IjX z{`8kt`I$l%TiB<4u963aXopGeS$-Gz4lQ9Lq0PJZ@jTgIFWal)zCo-bHJhGrp>lgu zQi9IJih$VYG~66&sw2Mw>)8U0{5olzm8f8b)$18+GYR!#;e~NeQ7HEL5#U0omzRz~ zJutc-D|uvmq2tJ9uR-!UFn)(u>~isxl|p*eAn(37)968tz3@{0>N?llV}Eh=ye6G~ znaNXJ!Y^ehhalW{B~u+&f`)S#k1+IM@&ikZO`@xWjP*TbrvxPU$XX5)X^|d5X;v#W zp{VchsiH3B5b6Audx$8Q`1S1q+0-K~;*q)i9; znoM$bFL|S_m}7inua`pG$;AMxMaSditji$yKEGrt#?Bq%*r|5a(y83>-2drDCy=8% zbXU>tT{+g-JyBE^LkQvC{o9NfzeI$0vg6}x{5aPq9!_zEdY?;*p5;M>eYdlxSfOjx zQJXW)BBiOz{i25}|9oD~->2l~VroZ$nMVuHIPL5KSDf2xr^Mqk{bMz2F4nVA`_dzE zQ+dd7imtL|t#TswjCl`nZJRLh$LWYlJk;4m+;lL*&p=5ccroG*MQrTB5V0Lh6|1)g`GVEj)89uKR7` z9Bl;+>DU+two_wf^AgdR{+mqxBX}J}znzzW3h1ON@yaUYmvCfdbw<82V+q_ZYxVh` z+taU6^2zk~FRnE;sn^-{QE5lx|8#Dbjamm+A0lQsAK5W)Ny5ph3Nf!1kUT^z@Ap*j zCke5!viPUYBw4DkEIumhNuwyy3gKlqL_K2R%kH(v?$!Kq143J6vM@6EA#LxAz=q91 zri_sVK5%#}{C^hd%5N4j=q4EQ8yB@EIs)&I0|24CNr_S0t1~l~VU$3FkqM?#A7Hi#+9EDJGoX#zzaH!SDE4 z&!3Jvmy9lR0AS5*v{Zx>zoGNK(dOLZ1ic0^+9u64OEoSwv}(Q2@TB;H-=w9WN3c%% z8K(dhFHu9X^NXW(%(=L6a=VW>pEq!jr+{8Ea%y}o&*!gp_`EH;2o?GleL$O=V}Rl%@=%^{_-6sy=+11 z2%7$S=%Arq$hK)!3gQ}P%2yfEc#C6j;Va>2P z5>CQB@(%bITF8xuR5v7RJ#W7NfBgWP^9xpi0F5PK$Z&Tq&4kyE(hT)qwlo4&d)SSu;U(TnPuTJ#z}}jl9Z7opjw~l3gqOQ0*--) ze#bfNRcj|XV%NdayluNpR091la`Ik9!Tr#^FGiaWxihXdry($}c<6<*5U_iOQs|SY zCf8=%DE%&HbK}rFcQpkxzHGy%qd{T^yTCK@AZl5#M!YAZS_tI2c3=mD3ZBSRHK2TI zB87r$6DQ6Lz~s$U(c=!ED3!^;z3FJXbRAG12Hz>)DoU6|y)#Bba2743(owFG#d35kRI3iGQq#dTi z9OPY^TMIcF8Q;S-4arOY?L2Pwr9F+~<8Zz#HV z#L^eUzM#mq3OxD9j-rEPt8@7r^Z#3o%HfOpiz{C% z0?BLBvCdXVD}9WcIlgcK)FH+N%9BO+@eMYb7}o-z5I+$VuJP zNtNw4_|r4C(97~z@%##lipC-LLN%E~ZL6gJOkiS}Zqrx#mM@v1$!?Vz(z6wB;~O*g zEb#9kqwP{9{$_XkdDGu50%=TEqlb=*+&=Rtuj3)(9BGl%L>HRhCYQNL?_pTrhLqCM z6m%n`el>NfcICuauxk2Eq7%`zKsb4vsLjr8fAlLAk2^Q}Jjy6Ahy5Wm0{PMGOlPUl zD_YQ>yz!i;D=vK%-_lC6+Z+gw6{@nHWL@`>?!-!F*gN|4BLMJmyawl#91tRnp!81E zb{_9X(a%mIE`^JH_4tQ;wS>7$iN#&05IMcLY}XsDrYEOx4dR7Hb^iqW!d~ggBMuj& zirAc}hn+UN8SE)JzLb>jlW;CE;8-0Ti+s#H&Og%%I8JYaflr_Bb~SFqSTkO#eu99t zUsdXZlLso5lTIV5+zSCRJC(r!K?3^Jf=L2~@U8)OS2LHT5$k3tMOnjR%w-abK==%= z5bTJLl3&+A3P9(ui+5zQ_R0<%xlS&R9zyKWIInex`Dq6?C2gr}hUy)jm2EKBYspwZ z!G3F7D=Tt#SWk^jWiIrUTEU2HbU4~Ws|zQqe)Mk|#3#n)+!pOV(@1=cubBnY^Oct1 z#X*$xN>svF^b~YHGJKGgp4Tr5k1WRfSU3bq;^KVo3;|3%}7awIa*KuuR#rH=HX(N3m@gy>*F5!QJ zop`*db<6K=DE$8xXrQCISwPe5EC#N}>q=7PYCKVEdm>vm|Z zk$C%5bGb}*U^wZc$`LD6?MKf(e9m7{ih z8aPRmtYKcGL<6qkwo1VrBSNoQrQ45)SEhs(JeSyX-|eoTPh3_@Y;jMFe`j%&1Ip#Y zGXGIwtpVl@(ptBrtE#u={qcj*t$TqP?nl)ib1)mJ|8*Gc08oR=${gYap?9GE23Z;U zEm5Zz%m5}5Ay$5$LTRcpFajlF+L`+5LqGt6i#j9ons`Hn7-?*@#wI4W6d+_%Tr(p8 zTYl;PJOobgbB3RaW=X_E)5Sl-eTh|s=Yxc&d5%PFY=&xh_yDTqG z)YF-7K={*B3G89r>Y4tsQ0l-;_Y=2%;H^VP%_|Rajy%6N(?G2Hn(Bg7sb@-etWDXm zU1MOwdFR4a&)XQZB{hc1Fq&xPu za_5(B;!BR|4Zh;2iTS08TV?wBbAxoVdxLa+dI8(#Ie@pL!zrosLeI~-UBY% z;I;08;aBDB3>Z~m+ZE~BeYO3n{^0|ImI|iNy}y6bV|Nt{A|TNOR!)8NQ%ppW!*7Xr z{fK!Qxwi8TlbvJb_S3*y$RrNkRR-D^$t3r{#Wvy;ZQ+54qqE`Z#j7O%-q0u;ctdeE z&NRtPRZK=>GRLKVFC>JQ;)>10e07a+cB=Ddd1$N^EY>hcEEe6{pPsvfV&pTr_*m_k z5w~-}_^P}sorJy8tR!LFL0>l+2E5Z7CJw6;m0he)YtQDrJsF+L^J`z+-qx{EA16%u z+o6E3Orl*y6O)+NOVD&{^Ti+YW-oO1xi62+Z;v~$(@W@;ct~Bs&&Df!u7(>nlQW+4 z8ITO);(JbPbKg+Ei`SPASndJnrgWac2r;QaQXARHzdy91BkH;phh)o{H8B>J2z2zo z3zK{3U*%#zlH;VM%_z`A(Su^NQWQd;KH{OIpZs8fv$QcL)hlLLd-2v$<3s_ezI3E8 zUTYG;U-GyrHBV8GJf_9;+swuK+tzDm9`VzC(PFB8vW@)3^F|{d?wQW9TlNeUN~uk` zvc;fzH+PKL8UdOb8j#sxMk0ZU7U0n4oU=j`k@NB^1t;RE3DZR;>%7m%Eu1l7Es!yJ zY0QDB0srVx(O^e6;yhEnz2ZT^R=f zzk$l@dH`9>iBuNfF8`U2t!pr^#Zm)NWwdEW4J|%N>gx3$5%TeVn`~h*W?6USQ;$fX z!kj3@{?!yu%@j13+;_$@V65G%dZ5q zA1~V~1LrVX!yqpm=0pzuM&yC;)q7^^c{F6+Jr)RoyQF@GkA(LBD0umt7{!UirD}iE zz&ew^Z?U<5Rx6sNCpv%Tq6BErc*v@K9o_@!XyhMlgoJT`w;d0sPdE8P zyv`7IVhv(xKr`SenY;J33AGN$wqHZ-!)=OdOX%PdPY1DQkh}~22x?%7-~6}KsCle3 zEwh$A=BkJ?L~6;sKnk4<@v5dzWC5JfKO3uc5>dJ_gNN7}yc4tY-RMw@d%&5bpo@$P zI6y)ICq%O1s50I(L;43ML#jxh%t=d&KH9c^1PK;aMX-hZTE}`w&4H=~7F0jiwgWa+ z2>+-GMs^s9i{DkEV3MRrSM_aE)}@C^xb*sA3M(=@v_yGi&gFcL@SS1`GL-w*B-}8{ zmq9^Y(9k?_g}9aP`<7AYa3)i>8ET&_$^9KktKPNGU6!=2|3qln8N)r!HI4^2#U*Z< zqCyGbiV`zxvI6+U;uR63#?&l@88yeR$lZi@)Q)F7O;n;zB-+kQW@7;4q~jrN6)v<0 zg%loH(Zy{dq|Ow13Ni}+0qw=U(WB8=V*TNUzRR21^n@ zFe**RL4~DPQ)NwwRfD_(vD$B!D>w|aq21eAsj)V6Tkn2y3~e`-Xw!Q{iFieX)S{$B z{vj+--^S6FT*T^U?jGK^4;QxIPf#Be6+4Y!KMTuyUNJCkyJoI>G5)x-nrh~56pslf1W_+j!X?D{g-d-68t#+BC80j=>|BIQ~Y#OIV%9yP4Nu0BF#(sIvw zMHHx@AZil-3KK4BDyg{7cx z0Jx_(KXNe-2=`RqaSC|X6X|Vwxig#pNZfpC=C@vNxP={f-C8VcG^5hylkmJBMd1Dj zLNKh?Hp3s8Iq-%q1b6(V)xN$v#Y1h4KCtt%jn}73?1n!FvRZL#eDyD#v^N!*v; zR|LF=)`!N#a(q66V1_Xee4Fi{`NphrQAsk1qT)FlNuQ`0hX4-_l&-u<27Tz6Hb4Fpz?8G!$$GCvqBE5;E{z~Gbdj}UG3lmKk&)dD1 z7Kb5|2Ho}>!6pKC&s;}{v3k-RCX;dDMZ`N`DK97n!UiKmp3N$EYcjdSN|0c`C zcU8GO6ihtiZ937n<{LEM!dIRN2^B;2)zJyxJL!@)2nia3v?-}6i(m!Qr!;H_gJ)lo z*|tNz3O02Zsh|#Q#%?#c`EylKR}%WyuHBaev-oN);**y+s=t}n>(cv_-G^LbCzi&L zAr0QCevW8`-Ph7LkK6~C4GEUpR@6FePn0;7{Q1Vn$Fygf_4^ekAP6gjIORv3xwQ9d zWPxOv9`pzP>^>3fNct~y83NuvgXYp`fym?;)h2yuHiJ!xZ<%=K&H0;Ej7H|~4+f!H zyxZioc)zZ89X~+@451;}eZruR=NB*LRHy`kr-RZi-k(4}t!=TD0uv=Qh$ZjR;ghYD|5RjZ z6oN7soP!&+{Kh1vAAV1w&FumE#d}L$%59i%;+J##5~M^hOM)f(#b-%d_Y<#lbV8gJ zrE)r;HyC=QD&M`9QW(8ww__Y>lz*BnM1j~%ZZ*RsJG-StZ7JZB?U~DWk=r4i>Deb` z_oc>)s#Thqx;t4YZ*&?S8Wwb|gOa`qB3#n5&e4?IfD>T8xCf!RCv*!=3|m`Y7ecR% zE4!!Rz5jj%G~s$kVV~^(*`S5{<+bc{G$-7Ey#3xz=gwJ4znOhdT`EGi$JKQ(310U3 zNO`Rn3L++Drth2S$3nz};~bS=iS}5*W1Yd5*!D*+4nm|0?m^^B$=TH@@cGwh4$lzMAZrbYBJ*=<(_xh#1+EO3YXi+#{&y z;C-iKCjT%^dJoXGuNSPW`=@{{0^z|-(dzzT+fx}mF17-Az$GqiPu15RezDLiKpI1f zN8BGHD&v-*y%;+GeOTx7-Lcc$B8Bk`cTdQlwAH)Y4d#gd%c8u%EQbGKDSv0HmNUJt zCfk(6aE(V#jPG2+yVCQ?I#P*0eB++RKi~a2wJbLIC|)?Vy21avHT&GXn0_I%^-B+O zrxwXw-sN;$RH0$&_lUB2?zBFsb91mN_*hrxHJt031S8=tH*7(75 zM8lhCeXmys5^CH1JVS5om2#dV1I|Ut*fYeUzJpWMCgU%bY@U??yeS6_e0cdL&q-%fl#eb zZ+nXB^VWJ|* z5udF6{>T%4J3uqJ#CLH6|DNkQi8BaF&fZHU$#tiKM%=l>+ zU8;}=0heqHI+fm;iDCZ9(;Z<^pj%`qg9Wese6`i}=^Q>wxfcWvy2|`n zfh|O>uEb=fa*%)U7EHjYaopWOD%Pdfulq`*E@@kcH&(9xc$0P00J~vh;$j}*yhjrf z18#Gy(Viy6QKb4}k~MetEzbc9iv1WOYzVismt=zI*`h>z+KYbz;UEu^Im zf1E7T)6I4IO&?j`UN;3d_*I9e{i*vhB3!T27*3zhl_08)ENkl%kNAd7Ob1GtAZ}(G zu2mFHBeiv#@)0Hm&98sMI7O@Hic4vdqnwTFTZ$Y0esEgwwW&ZXn*(7fU(cy4>@nks zqiZTA-hBr596n|GqUtb#6@+f%SV1HqnR5~P?1_1lOr3Jt6T1Jh>!-j@ktc%P z_|uuM+v1Ifda|#_dc!0RQUTmw2qO-Qw^$auTBW7ANk2IHx=R&Ly_)o28tHG=n`!|$ z^b)S@G;+4qu0dI>=*)SrEcSq52tkKDC8c1eIOMWY?IAO>wJ*t6l!=F>yjy#M7W!RY zk+yUf$~o8;Z!(w`D%1jBmm~A?n}-;@&!gnL7aiMf=iUKz0+(0Ht#wYwCBi*b+7pS1 z@3=>dRwR^%wo&j=7Ia=FH1kN!KGDJh9PI{?>9P4N&UT6}V?DQTmgbHR-C)bkihR^f zoq{EArMl+3EZyoG<-`KnH|AM?e{RQiSjP#-%e%)gDvISN9_7FUrtp0E32J0WqiDmGi-6!no9r3zxg?p(iZg1ZT$|F{eF0v{o3Vs`pyZgg?GC4@IdG_I z+1oec@PAn0%h77~pNv!THQ;f3^k&EENid=$-07L-c3qsd$POS``f>dl%i~Vy{0J8H z@A@XL?J>g$raHX-G;n5JrFy-?xB>m(lY5?!r49ZG-rPS_D(|=L9&L(kkO)y*k z$>4cU$^|C08bl?r4Tl-82q}{r_KZ+jQRaCuo*=tNT$8Beg`6-_Jq}fic==s>hz5ks zj;?-$h$~|fykkT6$dwZf#guf0wd3 zsw_ikY>(KbplEjzW)qU!ncK(sd#HSp=KR>#PIZ1za!s<0V{!y|Mj6AK`~zA$Vf**Q zyXPKB*Wr&MnZzG)^)jn59J>>12G?Z#WuhV7oRlB^BgF^FkiC@V#xa2_v{xchZ;aw5 zR>`+vv}igW@X?KGI0+#phn!N8s6t@#?$2bjE%z4!Qd*%a-AjwNm;e5m+=XzpN-sZB zK5r7Wy`c)+-ni5VypA|I8l9x@3vzT*fCh#&c<(n}yBPc4p<3JnwXQzQLo{kgRki4}*Eu#A z;{nMUnpsku_v=ptJS6z2gDc6sIx{Klrc;V;tfV`CyJfu2CWs4`p9o8J4b)14e+sbD zPXGu$5=e-!n5vsCH`P;Dt;aX=loYcceT=C7a+=Kel|PA_)N+M5?UBR+Us_phIfO!O z`!|+@VVOpua{WT2ho&Z)T=j=;)i0lQtaY*TK(VN-s!|)DZ6(1SXHA^-tp;sE_Pcl^ zrIWAO6F}d)Q`KVDg$uTRHtZ1+?G;&15mM624o5H2qkyP6L%06<@dsC!;J$o$jcQyI zZ0R9B*4Ph(7u4%+#w#S3nq|M#(RScGJmewYMY>7nXukKZVEQ}EZp~T{j{zA5sDp+qw62Ru2DJJ#Yk zz4f6mm-Dq~LLF5Ky?EE6btE5^MSOhz7m{UT=!_#eV-*WvWc@*Q9NXrv*I&;S28|zG ztrCBxdOzLF;`mjE8w8jvmVEY70QhYDq@hiLK`+V7?9N8C0V@ro+GOa( zs0d`xXKlT2zj*PlB9{ffybvNm0}{F<1?+z*ENhg6ierZX6Szv;AS`bYQ?X?^4H+;s zBcLkyeSdwFdN0SP4^BF|YS|J@NSU=R2m7zj_#s)VAc_|FD9)gn0Ov?Q z{z(>0d}>Dh!0T!o$-JBThtCOZPofl| z|C`=v`u;5apQIyB;jtZmCVY-TO)>6(da960fMA?nB+kh~>xT1~XLfL}^M@+cGpy!cWY$X{ zG1K$tYN6-&HUm!#-By+QKya@1aI)6O%H<{1{XY~QkqOiSevCiEWOS8LkIfN-HsXaE z9b5i>_1^teXpk-xSC~X#0M75e{O0F>PO%TEDt@_V`Bp@^FU&pck*!=Wu>Ix^eY=lC zJQUygogXFR#;db;O=Nji{u@14vgp4tf#*HEu^JQ3&&`%hcb<(M8wZ-qRolO4G7JbFzA{SK&JQ0voToja{>u(6#wC3L^VwUkR*7p5ERnWxv& zB7GNm>(tt^wxks?oy6@_Orb+0O_sG_px2)1<(5czf=?<|tas7w+=%twJ$_grC+lkE z1c40=wWPi35j@b!+Q4(L>mXAI)da|%%y~@>HvaISfqS-bk~xna;+0{Ayeuf?WfhB{ zuWHWn-9?dg;V3jk9c0Zj6iRjagTYPMx;B~y)8QH&sk@Tx*J%>`nVit`A4V2*@pF|m z8T7-Yn6>D82-IpB6oWA~w0!DETrA{RxEHRM8=(_k);(uz%HeATP$heQu6kb-)W=pi zWqBi#xzeI>RI%Hucke{-8%BLl5L|<97rPQFA zN)5X4ub`Xibb_DXNx*Tfsu=~<%57h;*O#BkTj?ZpW~cNWOTIeCekma!la#>Edeue~ z=jE+F>U<~<15uXt1V;~-MHOJqg+ujrh+=QvrpZRq{_b)>7UJQN4jLeF5$G5M;^UQ0 z;+**3g*H#Iu%0BLgh2JoEYNbv7|K2vF3^Qo+chj^Na8m&QD3l*{p1~IXd$je2g70~ zd55%h0Ly)JCOy016on+|3*S^XQ72+gFvT$HZWE{1bfCtW?#EZP8^bW|fK!5`_lA|n zkt%odMvXE`RNxDji4!`H-;xLM`LDfUG3t&yEjn*aS5@hq2w^TAZV}wm@reFSLAjxT*3eLVTV&eIyRqwV zvEG+CA{4N9{PZzk!-*nr_3A|s={0zf4W3g5Fff;7VY7)G`82xorsvoxcdz%1ZV8%k z_8vrB{KP$wd88-BLzFLpUf;%rlHOHcDHJLn|0FI?p^S&-|GYwtV-S27t$%> zLnJP8`Zk8}wPzY|yc&nyT|(~o<#&;iKhSU&Mx|b^-XpyV*xz73|35^1Ra6^c+iig& z!QCx5#oaBqQ=mX`E$&_%f_rg?;>BA$I6;cLySo;*!}r^{o10lHv)1I9{qAQ=o$9OY z)=SK|YLcgz3g1faw#Ws+d!4gF4c95UngF$14W_n{9}4}~o|S&~0l&R#xU%u-)#tOm zJx+`n>%H>VQ}jJYZO=18iWkey(M|17x&ee}0SLmz4*<|QmQx%0hJjCdJyGPooG_x^ z_H~pEUZPT!H&JY(G}IcXacbfPX97yvGMB=;b|-nmz#9)A;ff%|30p5*_AR81da`AR zdbqaoL?vh{+x>iX#uV{_MHLTRjj9)J(3Q7YXQU0MDr!kX|M$-R+x9d%2t*(OH>$>S&lh%o<|7Q2G-g3;Yi62xmE-{?{o2;1jkq8*+5P?|w<4RvOJ zF#Fg&LAtl@skCl2Enk*z;MEIaMuB$z4}APmw3_*>XR|Fq!Ij+RQaQw)I!+N&7j!7( zz`PG-KQ-)#Du2T^kNE84cl7==|$2^{mGITc`s*!c;mH{ywEW9+W)D|Fmz z^kJ^Q1{%@OF+cH~bL3HMw$T3r*&;I(IHD2YO%P_8&5+GT(V49wd)W&gVJ-vIBy6`$ zmy42fHVq?tIauRH`N|-HHLwTRWnY?JGYur3s| zklGbXDco5Y^JPpdMW>>O4bDPmXqsP9wK&cvE^HfHI)<6-hyv{SyY4)=&d9~WSVlv* zRLhmNcE=GbebI6Kj4^ZuGuenJ8o0=Jz~2#UVpx_$?QEkw$ytBHo(+6~8#=>Zk~l$G z!qe0)L-!hFfSJd;m+M&gTmn8I1_W`Ey)XA0x-^}&nlbEu(IwB}4w2a8B2^$3adX8p zt=vY!LEY*;{5hTh+-b83W#icoFzaEv2sRhKYb&S=#Y%z+x{KeQ_ji0Jn zSJa0$75wITdE>!qfzcFrZ{o^>L9Nnr^??(p{#j$sIy7z0F4h`coe*D>IKYDao^HK%- ze`Dr~t^e7AilN;I#lJCFzW^UY1{PMHsixZHoo4#w;U;F`kI$HtR&gSpkrpjQA2R}8 zMYdr&40zCwDFOq6@*Y#DL7hGQU2VjR%K=?tua2E!m9^{ldIQ2w<@*WIwv_XeZm8Gp zNA@pu>Oov;j%8qmF8&LEb(g&QFl+nzbD16Tf&XDzM|?-7w9aw6yoFO1XWiEL}p7t&j6^MFGL%4(LUEd$<;`|H}kdY7~C)1hCK5&ak( ztzft8#!Zumm+x68!$#+*s{bSFq){=nGopmr)Q=dC+Kr$K-2~(o3PuCwsDCRsL$9@t z9pDPP!DkY&Xu`m*&BSaUYbL`ypD2jLq6*WK=wWo`DReFwv*q@PP0Pf1=Nt~$yWLsEs>*UNmlu*TXP$W}-Ck32frw6^nCIoNJGl)6&PYi$;(Q z$v5a}x20Y{&>}sJSzr-X{}@}qp)Fge6xtj)`ciL8JxUug7PLWzf5mCAvBSYFdayBC zy!ia}L-dBmO`>r*0Z5lQ-YY^eI%(abknJ2Sf*z8(V^o*MeRD{$?ov z{FqXMX#k;uS|U!*4M+-@2Y+QrmohGi!>hqbrND%c?KQFUC1j0D!W_Q)_E!JRQ>q-SoLixPG3x8Edom*wFR%t8q{)CB+nvvtU!tE;|vXJN;QZqG+$=r zdhbU}iuxxW#7B3D5DnKZKMbZ&%rPs%SlT)@oZMJJm2`W#@-6a7ZfcWdO`EU4a`mxg z`N7sbNXtjO14qc9|N3d_BiRe1@2nm#4DHaoVwt0aN4%BU+ zrZ@JvYDOMl0xv0}F4Zqm$E-_>T>btzqLgG1ez<{~yL= zb&lEEu>?vj*oxvk0)`atZQ_LLr6zVTU*|S)DOuZ`Y`5PiX5W1%SL9FfDMR^ zR{9-$5o`{t2w?PMAL!W^UqKUe3I_+{FQ&r1HtQ2i1slbdp5Fs8k;?O(4KqoGU%~xi z7)ws1hNL@f1uQ*EI_*)hPwDm(gn*D>Pc*%mSjnYbi8>_H{D z+nX>BfRhhw^R=9Osm@>rS0zG^k!^b?+JAT-ssC3CP;xz2_KT%!w0(;gZa|I!1=cE7 zv5Td^gsNJ0h}CpEDgkwpWyu~WYvYf77)Ny5`PcW6rnn8GrWE{m+yAN>@Spae^m^~$ zbO%aCU?v9!OEY^Od*1r)qAH5>AK=;Qw}v;gR$56a(vG3qS+YGDHN0GJ>W1X_gwc*4p@5 zA5+)4|C^^$_WB0l{i^`Dvq8n^+3z-w|ARkx!HD{n9@iUpvzQm#yM>8P2_m^SeQeCe zRoVG|l3CUk8}z*tP8Qp7?YuanYTE06hLGlURHoAnrPn?8dl|DJ-k$;VF)&XP*|&-@ zE5)<1Zu3Qh(~gr}rH9V3PgUt^18zHo;9q&h{U1?gP74$6E-$<%FtFaetd-Oz?(z35 z*&E)5TzQ6t*^af}C4`%Y*Crw1A%3~FAKvc-jO0r6vV@&|SUr~Gzn5Cf zdFO(fQJy#TR+qP)>5LHH5X7E3Us$it@ED%TIuH|;Rl_u75lc#&(4l`35h$apxBxA7w=ZIaYohg()Fu~k}@ zJ>XrZi4XS@85qtKCJ#KtG7Y{6To6$uil@||N(XY$&L}QHgML^3i~f##ct5zcjE9JD9>NqzB`Fa8-yECCLwkTr;cs&SHzp6BvieY{?hZGdRw=QHu z(nbuK5+``FgUT@LTZ(uZ#zorTZ(ww0!%f*>)pG>+JZcbR&CJv!dn1jzHku_^uuN80 zLP};@3zp5f1>KJ>zUPo4)b<0LG8v{bg*|bXC(+zDkqNk$dSn*hsCGfbh_ll?-eQ`r?jN>)w1&*KD^=XS|Nrf&7;7fXCnq1I-HLJ=x6pZIZzWy_wF zEa86RnesJUe~Mlh6(LshoE>W!ZCX(<=QB ztjm`WkL04XXh>gm2CU0Bkq&#U4b1PM3pr%~jOUU)1A*FWi zSAZ(mkQx~Uq>!`#gmJd^v|C+x?%qJU5E z`>BELilp;jD4mObD*s!8_QOHW8=l`4R?pej-%9ByP76+G_zA4ArA24K&5N5214mJu z29mQ*tDlcz(zjbB8a6naHnRD7!hh71Nn^E(o9fXgDu{NfRK=Sn{kSHU(lw3?=Ot(M zk^4@%Njt}vw|{bmVRBv@TXp9RDW)(-Zm-lH%NHmbUmck zC;1Qc9^$!)VEoL)3P11J<_$n|9{T#xTvl`%f8@&k(`i7`k9n`f!qngdOf(jYcJv5j zXRpA21Pk>Nk9faA>mSMHUQlA_Rg(rf1CL>>ooHwxqEwmG0&vz{>%Que%pxNBoa%p4 z8@*sYP?N71X+vAkDQ_s>c0|S6PV0T;Z^`rGUx&%j8b70F@|rfp1y!Z=_{_a*%LO8=l|| zFDF~l1KC5a5s5 z3(++?Wri0n%^i&NP&qzXEaG!Cv?PY`fu)sxv)cewXjjbXM51=ZT1`U3<9x)<( z0-Q(gHfNIt(t-)hI->b8ekdUQYM(EI0<1tU3+DwJoXiFg`~X3HuxU%9Jf`y%Zg)J% zr|x)mBFv;Pd&amyB^ENnkBJeMrDO2QrQlh3UQv}%Jb<25lX37ez{CrlN#smKbZlZ( zR_$u>$$9Z-IrR_=H;)_a$1+ve@Z{A-__q`S9SYwJ?>ikIwqvAK#_L-S?yqJP!^D+{ zdN5?~OCTGElbw3+58o9|)@ay|;yC;J>#NClC}1O7SB=SQz2O{+W{HnwxKAUFYkFSj z2e(lR=)qWba%*3ZREX)eO6;ktWrno=F2Br~M_y0mSZ7}(Am{o-;hB!c44fAxi*O@} zGLe78>#lMfF$8Ug$@PKgJg5sikD3t~+@rjR(#KelRuTF|XjY|9LT?{RY@q=kYvQ+B z)a)>t(2z!!2k`Z!P^M7?fuDoiaY7mzZOu3<8MNp@V$__0`j`+ied0pB`ky8U%L64O z5yD-SErVuWlDsc}JMUnojt1m>&dqKHDcbD?5h(v<%yjnOo-nFEe>S}%_ISlz3Md!2 zT>sa4wqdcCG%sk-TtCn3wCto+HuSmVPRSH}1zXq%O!}xDM0Bi*>}f%2A1b zH)nnmeIdRNBXpcR74cd=?l6%51%6FuC#?(kj&k3>YAG@V!lT)hQ_f9aVHboN*+1d<+)p^Ui>Up{Wf;$?=fk5JBWN(4#8`bH}rDp_*mi>!j!^Rh5rJsqMwLvn6;=gRpuU~FLkD_;?k7F*0XwaTV=&9c# z-Yy#F{mxW2_x*3?|2}XO`GSi)C72vYl*pxvEct!C<--xT;#%ET94Vb;2@NF%=A8sS zib+{?e!WoYdg|v&$>3GY!4i?I2Qp6WiJsin3g#bToiJ0~kWeRWY?ZFWXAyq)uc?{tRHXNa#AsSD-N0)cMvor&cF5!AA;lv!d^^_rB1V(TBDO z4eTF#@k_a*Y=QmlPUMd%qLR*a4CO1*(#O|&eLYann7HlBxJ8egoK%*?%!IwME9RGO zpY|gv9F5l!kiA()4FrhX;G4wB+@0}>-BqG>ER=N`ES^O}it&*f@}6(61fEg*&6Jv#P=)xz(RIt9Kk#CH27rChz zTgSMTfL6Ta5jSfKy@6k)Gi&G_6RbauIF7+29{7WBv{1;wc|uTfJ?L8kZn?COoQF!1 zz}L}@?VvCa*rSS8e>%>J9ggN!f?b1R$IeL^md`M%N1NqR(iPz{B>s-}LZ<|sz+(hM z*m^#H%_N11ws3^N5W*;4-$WzHWau=g~^>6CI?l)8XMAXpNQ}F80{F-ieC! zC)~tZky6j@_;k}_@74pG@?T)XskKcrywR&F+KR4Ih6VsjSfHWa%>5zS!soAG7-kkG z+D36zZ+63BUmpP?#0*v}k6aFD!G-4(br(hl>7`t>&)dGlQ zkCV*WDfLSy=mhJ?iv(kQLp_oM8Y+X<}@lL&fXhLKtDnbB&Lw$?s(cGdcm_0~DZ zUmGA+!jy>`-w+$?_y^AWcR!(886mCu*>%K4V^6_bEIGzq*zBzST8*crHh)%b^S_C zkWf>%g}tkxWTNlWun{g8BRgPv7a(`MXk}Ah_a*7H$Hh05yVANjMnIz2bIB71^pa1- zMPE3*p9P)Yh`2j^HqM(Wngyw|$<)o?Sl-rpwnaa@GJr*<{KGX4hoIxWSLx5?1hw?9 z5#z5rp5c4{r4Ffh)cF6}?77aC4%u~z{NBDh?lJeTg4sW&c;1ab0kxiQV()kqkqwsZ zs?O+Dxc5l@=pRs_CA9kc1Q7<_vhsqL%&6zz%i-rawv}+B`!UD27NJnffL&c(|TeFFMZy+B^LAe~vC|TP=VcEuN=Xp{^cVd6GgCbMef&nIxDjOiNd#m&)xrsx2y)9EE$QBc!yfR;XU7SQSp1 z%5r~{mexJInVc&Jundn~cdSFg+V6 zVUndxP+=Yu0w`Yykb*wYT7L$>1mGq@8||=E5(Xtq>0yfoe^^C@$niod!imql#>nS% z&$BRWwcV4He`lFT&An;sEX^4BgSHZJjpgh|7Qn_LIESo|G-tm6PHocQUh)y_^W$-&IA@O8Uk-zkxM|A1nI6+QZ z7`x~=9E(5VG{MX41}AF$fheI9_Lwz0mvorwnSKba$;k=IoSMJ8YA50M(K;!JX(hH0Vu(mcs1tCD3kv6yrn z@JA!SBm`RRZ{iU|$Tf}cBF~TJ-k;agoD%gVu_>j;nk;lcK*6~PkgX-^YBfMSTpzv= zi4_TFNQuT&Da`#uj_Od{ zxM5}T6e;Kbi+f*u_drdg)75#pd3x)E79>3R18ICo)nfVQ6MT%OoftzbdF?*#f8@Y0 z;JFx?tG5MW$Si%I7^=rR5(q?6XK113j%(vkX9E+_QodFdRiz-eHH7;sC1xIFi^*io zy6|RABGCXxHoIl-rWJ_rGm_fcc3+N=_G}_EM*yp`2jSlZ0mqMR2P3sNiL!?V&Nutp zyc<~$!ci4;wZx~@iClkhPHZQaMy6)fryJu@?SkHA%#~qTSm40Yql4 zP7$8mRdd1O6(gtw$W#RUZ~1YHe0pG7dHiH+f>EB7<$3_U%pY}M?SZ4u5__UNEa(H- zzPU+@nJ}ZxXE2|s6gA`~JdXs~&+AI)WF8hh@zVk*cs-bLF9v|${v97=he=6rpa*wv9 zerd<}-Erydb#nc$DXzB8T~LY|=FkPv1`G}f4JB)K(cbNBXB>bGw``NMHO0G&w^|3sc6}PZR$Szm)@~oq!Yr$qz`*Cj0aI*o*Cmp&3bC#||KB?a>`A;8j zJ(=0zYn?GJZOxr!>=0ypvW3@ZsvQD)_pRYa5H#`9Zq+{PEA3b#Ub%E=`ECEKfGRzT@&))NcWkao7}5HEe&Iko-xLi$&NS}g3|@rCGUm1ag-#Tk$2_759^ zR{Wbg()eU$UKbBpwE#5~O946sy(eIo57KKTI&o(IV;+l z;`{Y^jiK-4QGO5Hjj!8y`FrxVqpD_>6GA{6(YZT=;eTc?%lN_R91+ zNM1{nSByIE{3=h=sA*~1GbJGCpJUQ2jT$g?OH~&mCi%xdc=l#oY|GD|{(*mr>_y<$ z_>?Nf{o*?0%kW%>yqN28z$S)cHRh9$&I8Am7sYzEMhTj3+^65&cqOMW$q13uTZS?M z5z|G}#OY#aJLC`Q6&Zy-o(VsiE-0J!0tnW<(W~lpmL&CM?Nle7@(%R}dsA!m6Q{w-w%PGu>G)`o zOh?mQXMIAz>alrHiTy-fVG&+%;wVGkc3oy8Pt`7;m3?U%fL8s7Y*K}TVJxy~NNEfY zkVp#-_yaux}# z9^#rsqQ!wYwy9TM`~&WwsCjOagqB+-*XVpJ9b;;AWbIKE5X{z~!1EvA(f{ zqR^>2iN}f_p{L#-kraahsuQdNeobd3ZK;W-vF;b1x#cU5CQug3+X)7Ef+^H^z-$9zZb;O|sJ^&z`{^_6NOw0DU70a?xdEyN`+?qNw!5%KjxQ4d@fHH8{* zt(5lYUBtEMlV~NO&NxUMW+u|))S}!QXNgT%%JUbaM<T0Se69Z}2`*u>Ok;evmvnj1WJA)FV# zU*E~HJvUkk`-Hv4TOPg-j|B-3RFi{@;f3+tBwmxWO0Wmrg;ZR%4Q0bVomup4|L)Q3 zD1Cafm>lw^s!ev!^(o_I1r81B+9D(t(kn^qTSPpFljmLy zX*JFH5-l6AWD`MGi@&LF2u?GO0eQ^A2{0LB-PHot6>sQn$-FJ6RYIAn)oy98fFH9g zI{bSm+0fS}B1z~3q^j$4i%gZWVjXlQa3(vtHO96&+w$!R&;3EHDWuO;pb;L+!kGq> z$))cZq{!qplJa)QHo?j6P(%5n;t zVY;r6p-87v3X#HsL-0I*=elZjpURX`SPt+ zr64n)gKqs9 z+CsMe4f?vol6WiT)|lPYkfcJ0@QS|3d9S_)elq5&{?6^ik`9_Smkr{#>OJcNW8oUQ zTE_UOwV_@pqdEZsG(qPQPpR6abYA_EVB4<0BqN0M*sR!uHybb0fSmRh3Z86%MxR!_ zZC_|`v97ok0x!Qy^~%ZtTI9{mfmwAr4oV7)@Sn)`aP@C7A!-`+bbh^2?H=H`Nedv&441>{6Q9qXd(!IO7J;ajo7^_5a$SJ4=6nRH^ zD&dbjf2xTZ?V3IpTDfqGOOnq}qDVuNO@bt3B&*e5Z>?s1u^GWmRC=$OVbT5fwzEs1c0r;I`l+W zI@%iF6n}WY`voVH{bSj>ja2OQ#L3hh`bIG4m=YXz8~j&<@=g^5z&y|2MyE9@wRfDi z^=qb7wdJPRTEV_dsjC(+W+)ituTjcEugjFnW6jKHPU?!odZSYjHrW?7ac(LJn5DLp z7i*G4h1@s$IpWy&nT>7k)xi<)f}1JPW;c|xsMX)7<=Oz=H6?LbC==+jBpW2qbM?nK z;cV(rgEpZ7o`Hzvgz$=koe7uV$x4fEDLUy?C4 zw!c8n6I@gUge-*H$G0|i9sgqcL)3MHZuyrd@&dpfcix#dc&YI(S&m{~X)|_XYq)aA z*%!jqM%yl?i1HqGJO@5>%=~ANQ&6>2Ae_HFi`wt6{)?pOGSh!Y=8uN|F4IzDEX87t zUXh$H`8yW3wuwaTuv~ZADC5Tqr;}nV`5r=5-#Fg>rFA@4FVAAw)d|7rcDO!FHEEEi z-6+aluhNCTxg4Co^x_R)_A;pAc-}etN6L#cCk?0SsNCPb$1WP(lTS^a&xpMs)?8ku z`BV5L3?33)J@E8gi6$HPW{W#;p+N@sFtcUdyQEbQJvm5fU0`nmJ@)ZhUz&;;Gtr>5 z(W8hD52`#~=(VbBwo#{iP3aJfTfw)TG{=DTfeXWb8E?N3J2>ASZe2XkC~7c0I`0j{ zWKPbwLP@;Z`}s)P#O_G=kUAdVu|!TqZwJ^msN|UN=d%VVY9aqqBsif$GA9`@Bz9v~k#jT~lC=B&+2ir?B+M z{?R2ciLmDNCmZ@?5E()J1?*H2Z~a0uN%;(8qCOaB))tiXS#CR4oHaX@NW{6baZFbySM&si_)Gal)ynxx69#`S(96uhqfhE5$fxc$)o1}RbL0Aq(pxG zZMv7AIMmAWN8@n6lnq%&lAP44%bhxvjMm$Q!X`-D4csS3Bx0>M9Cs1SFAYfk+ilfw z&-{s)EA5u2JwS@~U`F#n0ztqblX4=h#@7l~dH&DeZeOVuqwm_fKLSji4 zAj)cV-I~#sab)Bn`c=M#&rH(6$o&+``IxDmqN^UJiKErU7Xn_I2^w=fY82NW1G<+3bk}DzB$;$LdZ@4na5g^a z0s+=2Tcqfc%9rY~Up2y0L5xvs=){t3qfZ~rdkH2QMLnzGnW{63J4747i#lv!cPTi` z1ymTmW=izxb=c(-ypF*RnD`N7rj0!Vi9g_rfOj9r=ZU{zriEEcgZSC_agY?w$XdLH zntLMdrB#X2thCz1%HeHZMKh~^T>G>5p^`|E{zA(XDJRGtzVE|#_T#w#B(DTBVmBIN zjgo!CAx3`ppC<&sjzZ*4*hwxfVF`3W%Nk)k-d4tTa#}cxJrNc#LjBUx3!L`krHcXZ z1aw0eQo9~(s!l+Tl>pS7ILsE1zCG4x@|9qBr^=rv1Zy9u_t4NEH5&Z}Lx-@YvR3%u zT?7Iy-1tmN!^jFg=WXPiTX8yl!aeCC{H6{?V)EWc+a2McfRtvt&pwT;G$(IdLl3Ir zj~{GUh|_qiPqBYde^!*}Y&f=Dq2?>_dI z6BcIXHmO<7hgy@clbR~_|G^MHIX2DibG*+vZ3B)nKIqhD1EQbI-##9swtdA(C7^@{ z1_8dIfWs^Jrem-ei`F(@;F)pP>7e1d3;P`)oq&c+=nD_w_ckR|0tlXag6dz50n-|9 z=uCj;EMNU5mP;S{BC-*2f3)qvz3|v7lx-}q26&6BMGQ@8AOH@B2NSrUTo7+?&OKSaaE^pGNd}>pwSZRD;N&S6X?@n!Q$<->mhq&xi z&Of{ziHL^3lPkrnH{M(+0-S;@(I;zUf zYveb+iXx_Dx9G{WyyRmH^|wpKcn)PT|^|S3>4u9{sW_=v7?aa0|d17+v9I<|S z(Hq3`Xo*LmJl{|PL&0LPj#$<_N=FQKPrUQEi&e(8bt>hi+U$!{4pTrqop|q6^6c6r zUp+V6J?ZBc_NkL87C7J;r6JQZT0s$)TU+md(RVyRz=+txct;a<+?{stw1NIb1Ir6U zQ{QMq1wXyA!z4@WtsDbqTh`h`G|&;Xsa17b4Do7!(6;}YB>9#22g232=oYx8UE)zs z4h{ty_Elpl@GcWBx#TdyY~-d}crz)c7$rVKu^$r;QgWSzaEk&_fkDnxMOL%($rJpXx<%Fo77ZmAaxjq*1%HfSTHxw!2Yu(!7h44FXqrKvV~y& zPH(0Ynn*K`)|@*Q9Z|JN&khr}(B0)|ms4YLj8L*QOl9qFl#^iTD|Yq%d87(H>nxs7 zp$Jlr95PNcJ|}++yV!UHZc6wlYE^B9qyn>eDIn`d7IF$Mi>o5#@cYNmb-s;#Tp9`6 z?{!GuU|3ipYQj{n%0N~MJR%JDXQ&w&J#y7=6h2qNAT|?dc+4(76O%r>uUopFsTnBC zl_nPxlFJES>E><{?y7HPv&60I=it&M)W@z#CWy?-`0EeH-baFz;E)v)dFN9wEo~`M z>SrPPdQZS9hqV{#X7iPKDG!}z!TTR3eltrjH|})HJm{WhCt?CykUAcn1?Dea=|*<& zC+ji`Sy9as&{&TbYqI)cRd9YwV~V^PUMyx;)TVYywD1keNo7!3#LUj0>pto++)e?dSCD@8&b45&e`n`Hs2eufxlXW=mQ!w zvqR2pIP`KyXMf}$#&9F0!trMa^xSZ`ij{hpt;S^uw0Nsfi!n!|aODwv(&p!8HypGJ zRKLVcl1$A|Csy#+A*E|xY#VJi)^)6z`S<-$gjGu^j6)2gH|Ey`$Sb1E>3Y0~jYd|2(#Doj$vrmikDu`H%&*3|qN5vSt%q-J{@dRixn z5McbZLLeb4O+7QiG+x&>K@L(S0cWuc9q)*7`mT zh8jyaAW!w!UUux@;QHiEq|2ah?Nuc(!mD)E@{_%|)?h29+F=RlSeLnB?@;4%^FUxF-DZ6Gqf$`WroD++;Jy z<|j6S<8&ZE6fqRoHNvs{go<`sQHM4ab+!rS0l`K9njM{|HPVQ5rEd6SaM3?2^ zX!k)`kFz@$Mmh6lzG>b|o`@@(on^^sv)RC;g#QNIANsvcvgNexKN`n2`=xRA};am6_3<0 zq0x~uM@&Me^NwcM$t6@6M839>_qIQ9UT$~77X8lW^D*3d>YRzF{_)J~Tg&r}PHgkh zxk4@F16&psU5CZL#J}<7y{L8ua6#f~Uc`J)<~<{aZ6nqs2srszI^|uxK-c!_lk071 z+l!*Tx4qzRY0a9MIc$^FomU55N+Q;f0k>OjZa%qvAK&NV^?grK@AD_oxN}*tr=J79 zmFR<>Kxrq!EoA=q1HI>c)#s-1ZAe~`ftcjV%OhV&HVk1zg%3l|#Rft-L|%|1I3THS zlj4K1baV5I#=<}9oAs>=gZKr;mUWPDsj{6XD{iMhf#)3!UV@5*m}FCx;Na_T!- zN=FmHl&n_4|*gdX|YyKcQ-@q%|D<%0qNbo=NgssJD^2wky;C z>XX?ho2l3A6``UE@{F6JlwNGR)Nu0&P+4giK6)HZ9*yFzqU75-l#k&lp_YEnFZD|y z^t8rs93rd=3sDQZW3!e57l&0MP<6Qy!KG-zba1xEFDx00D16+= z-jP#-nZ!G5Kg{z2baP>^0If>e6S!fHxuPaH~Z$CApY#!1Vvkl42cnD!G z_1>SN*){WqWCNk(54C~{f0}bnBA<33U&0=*;F{C`#%3?^d@fe%Kr*g;V?2KR$MOM+ z{U3r{N=JlEn9h@%q%r$kaouag?F5Jxw&{HOh3TL(xPutb;OwHCGEbucLpoQR4iAg7 zF*--N$=Y5LLm zAU%!TJ}@O_>TLb&;>Zoz{jQ{|)@Kd<%OaWxM(3~IZL|P1_~{b5-}^}H7Xr1SwAVGwMT){4UX~L%s=D~B}!VV|G`sSd>U4nOh)4~K*nGpBb71=jG`cF z$$waTC{U?C00A-DN_i$sZ1#j5nuhLi>H9>VUGP9VZ=O_4W+ba94S*dL=TwTY$a} zrE+`;f<}C^?neO!LA7ux)g~7uTD7axZx6)jrB<>TS}BNzG9x(&;~tED!|9HfT#hSS zcNlYSLO6^p_gY-`)vt}-_h(eBs)GajJFf_*XU@`>R{cZ34uLK<@{MIQE!aWwg3ENn z1Vo^e#4{W;=S!G7YC3toOO$O#7z)bJp>oOfyD!r9S@msKFZwFLX7uz8zhkxa~g^{Z--Uh0{w6!S@bOdRMZ?=Jellp2BZSW8V1^ z?tYiG!uAcJBevzqqv06shY|J78#(VYe{`X1Fa~%J6$Bfd>=t-4u0ExqwBIziP2?af zbtX2pb4;G=x({+O>@;e>uth<5vR+~upFHi9f%v>FuW6Z@IREbc&!!-O_6+lh^B;;6XMb#>dAQ*u`dvIZd0~bD>kCJ1LDb> zBT|2plGn4@Cx}ZkEq95W)LG8a-BwbWyqA!OxLtKjHm^_?EQoC<59C#1w)jt`v%rM@L+g zYOeM1QTbV|+oKxG1sSU($)GACK*gtZhy+RWlgW;*ZC z5r$Kb_-cffRLxa4|6wj;(>$*?IdIV`JJ{9oGt+8vS`9+;5aa8_YC_a0<{dr=d92q2 z-$1j&BO~~sf&B3Gp67(DWgeBqk*%_G)seO!OhcPZ{Q7y=6^g zi>nM@=Nx%5tbmJ3I%02vhHMzwr;34@r3A=}xCw6y`AT>3s zj?}O4exyuBh?!=uK9QBBoa>}Pil};G2RK7eG&>B%cXQ#EOZesM$h1H?B=tK`8qg69 zBSNI4Na%VbwD{;TTVS~$5^!^R6l%vnDG??IxghQy;v!}N?+22!;7-Afh^*1FAZ?U9 z?13!72VzW*Oj#`vqeG`_Xy1}k19&`#xV9oxL;})wb>U7usuRxD6n)w3=V-;U&Sk7%q3a&b66zt+fgD#52}^p{vmLZz)nc5{Yvw+W>HCy1`G@g^=_!7X<1 z=_;jM!TMLwcnhZ6gzin2`(J&O{QPE37dO#iW{LX^p(&KKtOb|WU@1W0(c*!qAs8a{ zHC2sN=9P~D2?IV3Xc-}Infi(z$SI-a0m>UJ_rCI|!1h1-)E`l%o8a#vc7^HUNsL26 zZ0h;YEl5Uuz=a-4k4eNkkJ$huL{9LF+gMtl!!9}=k+TP0!-aGDlcyNZzJM=(TKfa+ zoS*;HG41pmWsLY(7`I1Qx>6SwT&&kLH{jwKzP*og_h33;Ji7w6!ngqGu+ZQaZvarn zLvZ`V)d@NZIqlJJuHoVd-R?Oq^oTQ%E%|Jp)L+B$DVC4H_4MJbbM#X$MVx=0u=50q z!!NuenBXv)<)70Z@1yA_@$rDTbBD0LMcQ7WOl$J6Pgp*veF5I%nh`%<5Y~ab{c+6i z1}JWaE@NxO6F zy_G&t6PsDD6Bjo@uF+h&a>$7H}LKAgr>zcijN1VhMI^>XN<>>5f-n|tZSLu z^6D*21mQ>6JUHgxJ}2!Qbi#)29oP|oadU&ReG+j8h+E^^1~IM1VD^}K#Q!xu{?gYO zN_@)9c^@dXi`%bXSz zZ3))n;|8@g;4z(W?FBh4aPjq;?ki8=+%-f8O20$uTP&SXWW@9o;{nbZzKERM zByIK?&o@N7he$+qry@zF7S*7pa`iO_(!2>Q_QF@{r*YvsjY^PL&~OU&k(!*g1*$FW`fE(*hk#

    wW4P@pV*{g*O98pSxl@V-rt>3Gzd|PuoFVZp-JW9HB==X* z>2-X(k4@L{%`S2M#~=<(I}GQ~U`1#aJ>nJTE8nz?GqW{1v|nL!d6`btdGyg{j6&tv zn$7%JsrUv2!oom}w5|VV>Z+M473)xO4mGii1J`B{B`iGo!l6Z>%;!AR=69271o~FV zeLJHMMnXH`+rn_N1_!Y##2qEBHw+I}^|^F4af>P58>(|Umf3_%hGrr45G~b0!N%A9 z)EPODs`0H^agDJ&8WAVNwUSII$>C6RG>QqOfi}*G+QPh0Q?CovkOrL`sRx^kG74c) zC%+$JAOx+&Y_6u!RRwd7xUiZkroLX>JdJKv@9$<@gJnn)k2t+GVJlcs$|#f)SnLn@ z(4$$=yuj4sg4Hy6=8@SeL93DP1n;O*0$%WKsbk}#)UoVR_uWj$lSllV?k!TMgXTc5 ze`ws9fY>8WvF}{HULb^cM%o@yrZs73pmfxXu2QxIJV>nQ5Zu6c;t@P$5?rI;3Wnia zk83w*UZYb2OZe7PvY|GirQo_A?@v(*u#aD!qmv@O!>pZm*5PCSjZ-e7l-y$Fg19)r z^q?l!rLVkaF+#W?*<+;htN6CY!sBv_Z@&>`M6EzxuctjXHeg&f_d3{Rr2C&`5OTa*RPNiE+3rv3`z zCS3IRaEAE$J4&^sOwS_HB5n`gIzl^=Q-d3?0vQ(@iavp*S2(+Kh1K4d2s__+oWq01 zC|e^zvxV6Q&ES|0uWHLR}hOEq^NzUEb31z3v#igPDe0P*)gdP?~`P5ND? zCkH+6DoSY3?LyhYP7A)GRd_mHy>*3vgS!^Z~i&+Ge19Yy!?Zb@kGf*10G9W>tt z2Bz}`=64Wvm{ZDjO&QPd-B)OK?m)9odGJ9V_6$6x*9hyYgyxL!Ej}{=xNgLi0bIei zC*Zp}vEd8G0cjX9i|Dk%w8zpt;_7vbeY*U&$&-Qm-qN>1Ml2$(dG{M%>Qa}w)DNeA z5ano>y40oqD(Z#b_Vj1h@qR_K^WHyfjVB+(*%L^cK~Cxyv~M9F5{s)Z6WSw8o~A#3 zneqOYvHcrN<)g&r0lqoIy9CaW$0d0@pbWxz`eihKj^Fv^&%=N5ejV{&yngn@0PZQg zKO*e^={x?vOiS``4IQu45)bdNqKNcJJSVi*@uyGo;)|cJiI4Y5pZUd!PkicYq;!+< z_z4zQU;ehYP2+;;!G{rh4i}#!w2`>}5~2MXE}qZF(O`LxG=7jWEf~)hw7Yeii=$hd zPamO)Px0}WzVvSw)gZSi(=pqNtE{?LAN^Pn^64{_{1g(e6PgXqona2dJh(zSy^f1L z-TE;~`ggJE2pgL@<=r-?Q7QbEX&Yv;d{{Z>?LvZ!;U`pr)-0oM&=MlYl zk`O`sVs4OE#2L;rf62awi>HjIkE7EYxY*Dvzd}wer9YUHmut%S1SM~<+||TuSb!y_ zi#6@;S^a`cgKr(iSWykW!!!bYJ$`fOxW@Dpkt_H%;=?(X8&V&j+{L$daACk~7n>Yu zv%s=Z#%CcuK$?K(3?IHuDK{}a#Pkp?3Dq}Q?BAh`J2)Rf9w$!+h;OSof}rC9FesHt z3yREzIU*TxnNqrX8&~S_Hw942|IgmL#Y&c*=XuZfAJ$rR*tPfW-RC)RhUZAsD58Y~ zk&!5H4wfZa5(4@nft?7EB_tO?>|6(6u9GVRiA_@uVFbv9d0{1z!2}RsA&KH346Ha5 zDQb9_;hg%oyZ520R;~5_|M%tMU)?jqnInu#Eih_eSZ#cG14IpRZQ{^nTA%-r}G|KQ>Y&K2@7 zhoQx?GKyg1f|BNyzw6dWmEH*xL2xNR{_U=t74JT4^SVjykicm&r8 zM!>QXq#B)B1xq#BY62ydnt)9naf~O=C#RG=L)X_xn>kpl3l82|@$YNz|GhcTJBLhv}Rc3UTl39Vmr&$fPd(#s(jj zg!x%D`qK`qMzu`~ni6Ee!ahDmVsp+o98tEJ(yehJvpxO*TCNk?8R9(F4v35RCSc5< zEGcP$=6T&e#3*A6B_P3Q!n*Q}3FPqr%PU0M%5|SV#5Ehl9J0QNilgKXb9=OlV@iJ$ z(t^#YXCYr9EH@~^@bD(-{E*$r>$q-?i^pK8VlK*6B<$frPtmU8JH)W!F{wBf5d{?x z&@8BCygxTP^@ix2lwdwOSqknK6(}<2oM%x%;m$ zZeC=z=Wy*gu|0;kdyGf36exK~9&RGC!sVXb2An7^w)oKDV>R)$EO2y)8^}Y)xZMM} zN4Iy3pP!Ta1(qAs-1Hl^kN3Ce4*!6-SX18I$H&Wj`oCS)i7UBGXjjD9lg|mt$q_0m ze0Q5>u|dlr#;oG3N>kIw<9)J@V4e^oCeIOOfs&raMqymvqdz`ladhXq9zVTH&SREQ z{_yPH3ti|!7y47C_ru`*PKMwghkg)`aiI%c=#Qe)UB}GLA@+}%U*AjPdLJ#DIfhqdCyu{|MeahxjEfL}GidvfTVzxCP&g(A>ktbJF@IItuB0 zAnx6oM)+=Hi_7SE1Nh+?yzS|$Y`KMtFJjAkk5jz){Ao)10KU0GXtrosqI#t^P~)%^ zNy8k=uh3n(!*KdzsC z4Zd-pBc&Loi)vQw8YEUjs*ZIRFhf(sY()Hq5SHi=t5Ii)YoS>PmTUQvCd0;pqLX1M zn6`LdO-54>nhEVO<7R|iOU5Xhu9}?0YRDlKrJ#motvubhL;N{0ZYgPjX~xeQ{LC{x zJOjT!@sDTZ{wcuKWOZ>6%7mf_m0OxUlmRg?)`$aOtT-A|w9X>4ZLD5jqwD3~9}JBL~!#)5=G9wKf^4mVw396VY)=Hp+zc3S1PWcCY|f+qLT+9j|$Oj z;@@uT{#=F{Vh&9;cm0ftUyy2Mn>n0UN_OPlPv{1#eAvl2HG{mZmKl*8Y zWU>mxwp5OHQw?miso0H>@m)ql&=d%b;A1t>@>uZ;?Yv?|oELN#AVy@uo_OzT(!10I zV(6$QuTIY$pa|luE^LfY9)Q^8qH7EAC`ffs1Dii*fa z>}mmFb+#e*4I%~SMrUB8bgg7J46xVEU{T59tRE@Zp7WBqB z=)5lKj4fJPL>gQ>)I|&eI?Tws%V=&0vyl)7EYIsUhq0D|#t|tq%GhDe9N#4f8Me>S zKTw+SRd%~;=&onnd>PUEgzzsD+BYdh@g$JDSe_waUcYClD*-N2IpO9j4;`zen>zs; z@$EU5_9^`VWw?iv2S~{L%oiKJ_#P9gpZSdApAxat8<0N&%X?V4iMZ>G>p6LIgv2wN z)qUE%*BI6#Rt`zKCC)l@Xencluw@t=&{OgqN_rJd{|L(0=x%+BFMQ_R6Rh#p5oQ6) zj+_FGTO+Z5$8{uTLOda~XY5X&M#{64@!O=$HwmlDi2XTAUg1NJv4DKNF5tQ|RF8@6 zG2QAe=B)CU-=^Kkb;k2;T}cAGUn4Bo%$L9#FC9h;&3mVJ0aAa2xP6-WeSEhi@PItd z5pA)sLx)82MragqGhED-`RsP!PB5Ma4k`T!=WiS_zw-4bqCCD+!)}S?5uVT?aiI%c z=tBPj=>0Hwue}fV@x65E2k;mdy3mFGD4Lgu3m)&j`?&twrNeccJEEE0hd2VBqTl;_ zXtsZgwEYAwUS}J=$o~C5AkD6k!wRz&aTzN;oxjU({_?}esf$m2c8+hZqIm_b!Ieyo z8)oC(sYvWkmSi@^`x*Xi2cM>%;o(P7oswnzx%)NH+z2Z?|zNE*=K$H5tdiJ zR*R5^XTjev!y@TQno)vNl!DLf2fWU7X?N_ zd;rY}ad8jQRq}9%w;84x^cG?7+qgK#`8mF;Cv#=jF>bF=`ZammVoku(HPrTSvY}b6 z8P5`B^ps%+E>glC!hOs2O=og?Xx z%*WBeF>;sg;GYoMW4hHTXSY6q?mki(i_)QZaKkiC-678KaZMRArb}|agt0~FkZ6b( zgi`&R;_+d}P%dMst4Yw-@NG4!P>KV=7KT9$pEqkyB*?`l9qIhXL0Pc<-?FWy<&r#a*N3Ar2ClC>w*NUJBwUMqG=M}F}Bx8Ogv}?o{$}p>` zVA}w95liH84^15|K(iPL^9`z=oEKOToFvM)B+iYZ9+yXQKSyjqSb%Co%%P&F3aB7O zA!c0cDE&=@2Gup$_ORR|UMRyH9|dGv7e~exX$AzrN=LC-6AVJl-86%{iLq=q@8+j_O`z%?}I4 zHJE)3-MtF_%V5tSp@T3|Hjz=Uo)28;LKnKw_o+V#h=!>>;zAd?(4Q)mafCL1&l0Lfvg9f36J3Y2Z<5E# z3=94bF)HO0-##GB4vGCWzVJ7{1-$a!*Zt*c?5g`XAv}k)mxzl6=BM#m+cLTne)e;3 z(llS?AO43==G^|E)#O@bZf;7Y6=6Jm0pl4$ToRYBBL3Z`t;9@>4=H0Lt)Ig+|2q5E zm;B|w^HoaN;pG8mFWlv~|IL3s!}kln{D5Eh{QpKi?a}fKdHfjue8BlFrowpkBEI_o z!fnd9MLHwSUVVod{he~{j!;ffJtA*z;16CQHY0?H=zDcV|6uhG|N7VY)aUl$+;h&y z@vcRh>p1CvIYc3bW1x<~r}YB3MYp_-Zz5%Qo|2!!snk(xmkINGkMG|XPZPZmvM3l3HNB0cOL)j3tR93v96X3ExtiXM_>y=a|_?} zbO&{cr`vyx-GddXHwnH4t$bj_;X zC_-2jgp8}U2}VL(LgEgu4$_>WEhcM3c9?7NF;PSi+v0o=b_ofJ3xyD^B2;jo0mCB* zipRIP7EARVr9WbqTF|?+^OuQx$GChBJdNrblwku!D0U4OBT7ry1$tPF;9O50x|&dK9qs;kO@W$VV~2#6unTJggL|(EY;L)XrPpeGkBD=HLaf{m`qVmHF76k zM0`!t`iZ0aD8Vb$=X}iheY+~+Wm*);_4*#jqo<7ZGGb*ayGGcZ1zaiUbjL1Cd{cF} z03m`}Lm6yBFiiZ!q`LFO+|B$%H5_E{-f>mp+04q{y0|))ly%fy>UU^ zUv^-lU!ZaYE?s zV`TEU!V{+Hr4F+O5vA-}tkn0pWWmK5z8k|1kdA zm-%0R`2nB)2Mzt%Pchs7IAJ!&uYL#FJrDi^AbYrQj&BMvY$&@0%}*Fr zF}a6}uQ5OR8ll^OQyfBh{m0p*Q@HZZH16AVExbt6{2LIi5tbVyHRLhCFk?uEHMP%x z_YYB9W4gxl4)O3V_)joC{CA0$6p;bHmkItHvjfn8wBW3v4A=4gP277WTpifhVLA{) zO*R(|Xc>qT@<8%H$*F!H^X})OIe<2ZPrMUG4U`VjRRmAi|0cdUd)Mv7C&cX@PhGg+ zN&Qo7jt5pZfB#+Ae|t}Y=~c`f;%1qy`v9uXVZ#ZsyTvd3-EVU8=I_0)p@<7z=t39z zA<2L5tNgL+F9Lr9c!T$Qr1;N{{w?6oQw^`b|HIvs3;mhVOTUr%*q5FqbkEYv@6~b5 z@1io!vHWZ;cxcZk+ZAP3aLpUU`T2LfEl_!X+XJkBgFpCKjgzdlX&SjAN*0D{vV4z_LugM?gKP)PneyfyGxY( zK_pzJ*?awo+&xhtZ4MdEo`c-t<5fa?9Y4Q9=&s>-nt1OfAN)Dt$N%aHU;V=Ozo_=L z|7pkdPriz@=jeJ(P9tS7(t01{GO;^B!b@06xJGEcOHte-xiC_Ot7zHc+dGJZ;p8Sm z|2kj)jc-Lc7C; zy~@Td0WAsdUqa*&C zvR~7U1T0+#cb54KD_0S}2Nn?R@w2mf z!fkbdNt_X81I`snT0j{w?HSImV|IjVA}%T}D4{9D*%lY2A|u2zo*rSgM`%4T$E+cC zLTD!j?9^_LtBW3{^7v#wwDqrL6r2Os6eu7Vz7sUL3EN?aWLz9^aaR!sTDL)UPVQqZ z){=;G0pCooQOx)z6T1;<*SI*MX-*kVk>)Fec#exgvwRuhbmG$1Vk)zQkkHfvXV|bq z(}=0Vg_bY}iCPPZQj6*g?>tzcXa-f{Tq|$b*TOKefU}x1Y#gDTOjTb|4P|6X2fu|a zU`p>ImBDLNLsq9^vquGKF4R=3xXJvTFbt24;fjc@Mp&%(TgqFhV3~aPQUp;d?qLu# zL6{4nwQ5jPlh9=ZGsRT#O|FdP$-doxe!zK1#EQxF#Xi;livUT4E&3ggEQ*&8`;mswWSDaSbKs%8@RLe`J>GCf0Ve_vbz2fq1oY@Q%WCDU0~@3;ug4OLuht{ zn91ofrC*Ty6=m2_#@Cr2eT}$SKTZbk&W=cHPdfj7e*Hgsci}L=r#|~E-u^w}>XWql ziO}`5i-*Mh+xX@bwFJdOHcDAz_6F_z_vwyarSvxtdlm^-h|M=Jza};7ku#FzRfqj_~bysh5qRJmCr_=`o#qw z{rQ#~e?xiY@4tWjAQ!sOh2B%|cY=2x_(>|Z;dS75fp@RKy;J`SFarNC)!_ZFf&b=x z-mVK>=tA$i#3-M=LmE%%w@1wPzxx7>mQa&ylEFdgS7^CS*Z$!O+8h}OsE#0w001BW zNkl`t+||BJr;=JNOuJ@04!;%SimrgSAt%+@_o#v2`C~Tt|N4v&ygk>JQmS z1Y$g+qz!qz0l=`kiP%-*?CulIT{F+-!A&TaaPkyx_K;@&Dmm3;W}Kaocl-F=Go=11 z+tX|O^yk0CZ~xMh8EM~3HRbRU@De}sw^qpB97!)S>ssRSP1^mtoDDC6UIBIQ7_oaV ziIkdZDvMe$gMlWzdvcoP2dP?E_y6&;pG(B@uOeGT|qRX=Br6*k+S(9nnt9($KvU)BC)W$f1OayaPl&HPyHUME&cr#7af!lm79dU z2e_CS&u@UV`1o*2$G%gBA#On3404BAtObhm`;@aI#?u?btKR~kJA4gS8rH`z;N1(j z#v$6EW3J{^nUi<3nwS-E{IjAXlkjQP2s87K#VCD1{0x{o)WF@t;@_HkJXrUt`?}3^p+v~s0hvZ>AupmFYZC^ z>)$2vxUdOVF%4R(xk{-8j?PbMXsNHM3w1-vXtW-|8OcMzw5KGk zMOY^2C|I7-zuib&oMPHe>01Xb;Nv-EY>?bwR35NMZPN=u7^JDZ>1M=*V~`C(hvfw@ z;{A@WzhyXEQg$;+YG`I#)G903w4wB_PKTtr_~l|Iw5cw>q^6p{fH_z9H@C&P9_<%s z@r1S>>-e}K_g8>~_>Or#AUB_2zW1YqJ;m`7MSm2rmauTNi*J(CiZa~9@?~^3So8o-3MWhUN4KaEVcbM zIR~6R17VH~*BQ2VY4&SaBlS1Q`8h&&1u1LNZV%PhiQOx-t9s7iL&6{4q1iiTbLT^d z{0NT3XFl_Py{{$3e-`yCpN-s;=Sgyt+u;)4H>er=-x~S(&)rA#P2%AzeBrNLnCTa~ z&>w@|FN4>z^sPTfbMO(G{d;tWPfqzdZ@7c| zEZQFUFk>0{+5heV|L8yc;TAf6;Xi)J&wu`y(!W6I_mOgdYr(hg{TdlUfBY1btN1v_ znseYyn!{JI)8}wwLo?gZu8zr@j@|k51h>GQIez*d|IR-*vH_S5?9ceQUwanu1NgeF zKAxjx!?;`0%)i${AGJJ+fN8^cKBMGQO#kHIGXPAsNZb*YC&a}Ycwa|tX%Zp!kB#iI zI|8@F`yI|FOa#Ii43|*$>Ph!|$hT|4a6m3cjO$B;a)+%pIyh> z3RgNt63#Y|p2h87XMXfe-29wwd5j`Ri43RDA#F!k?C|X=Wp@KHVccCIv=1rcA!(B+ zsX^ot;(awUsfMA+oRS{m+cWan5yc{P8iqEqxlerRK}+_x@+HHyZ$mM9T4acbCe-W z9MXVl#)XV;&TFcaWgYQGiS1oX2Fm8?YBacUYVMB2xFhKqrh>R#9n}`YrnAtRlpJwx zg>QtsDP%m^9bg*p?Le4qFq2v=<`a&dl4n>Bm{nG&kZZA!%d`i^aN42y0J9H}$AHsU ziSt{yc#aO2*qwa{-|Q0>g=TS!k_(jU_%?u>1BSSagqj*I`4aRkxgUWM<7Bi*#PVmM#lztAb- znwtLg4honU&KV|(X#E{{WPAhopyceZY`Dg7-c_8y;LxIY$yfq&YvQcOtWb6y(>bNI zpp|_oVIU6$=Q1uhB$S#KP1Vtq5Yf~Eii;W3aY6wY>FnbS+nRh#vWE>b)LM|HCN!O5 z)}kfDxWdVrxO|A|9nwxnyLoM!cLBA4IB>3jFZdRGkea^CaT-wI8n_awF)V?~o2`9+1g**1QUqI1WoeJnx=iEoQg3GlD5Pz@j!+F- zuxcVxA3OEn8>?wtUrWCqqC{&<0o9kE+7J9rgbA+&2!=t&#H>{8`!o8se+W_5<2H{{Je zriC~=1=nMo6WV&Lk#-9xcW4h^CvUIUV8ZMS?LUcgfp-2+-nC#|jlypt;f!&;MaB;x z%~{1IG#O2Ym>tvYzwyo@Rdw`tK1ALgqvalP{t?Wc#_t_63k#g9sq%669HG06;BcXT zYw_hfB+dxkDc+Cl&To?YfT+WD`!wxqY{zSuHq7>4W%uxaa{e4y5-y(L${uOlBQ$4V zo-`bgwwGyEZ(<0;$qjPa;Qbw%*(q9t?a8x@yEh5p<;UCb#lJN0vw!;=`0)z;@$<}Y ze*Ik~%)y%I-3jR^aau92>L6~`S0E2 zZg~;E_cZh7N}UFokRF;l7z<;%OFI7`pZe@SitX`7@rxPWKe_F9Jh_bJBf_ky1tR4X-`2%6AGeHYP9B%UxFalftQKG6 zOg=(mAK~EZr_{-b_eV|?6U9%XvvGdRcydbKT%}o_y_>i89TMtTd@y6%-=OqgNAtT6 z#($U!(gAw_w5ul{lxkigGQ)*>qEb)1&KY+-n)WDVMts6;r8$MX$GE$}aJI*|`xxou z7Ct`3_~5VM7agISl&B7JA@82X>ynZl(6Fv%C61u2W3F;7&qA5Jw)P{aqe3zufBwIH3{yWr{F7#*RLu47Tq18 zvcq&%lT=}>B|v3allU(3=yzY7gA&Q3NAsG{RX$>f134||*K^vpEe5qmUuHbM333g~ z2bAQHxCJ@D`GRjxL1!Q{L~>;nT90csSZT?4#Fc7pT1Ly9(9H>rP;$?>UeN5H@tr%a znIK*(M=J5a$!Y2VC5ux)0gF zWrPtYh0v^P1wN zxic*9F`QpUT%nntk_Vv-4dy)(!LaaYSrBI#Ew<`w0%lblgfqqMM%XCU=CbO zF=MqTZCp>dg|_l|T?6*EHBS-nvx)&JV>NtrGI@Og^OF~A^)i{5$mMOR;4(-}WK+lH z^8lt=Uw3CXaoEHnu4Q>LF_sIZB+4KVjJR0itU+{E_Xnrb)AP9C@L@;VE-5zg$*1x- zTxIAE=d}Qi7NV=qRs3XFQ`5S+hcPj^!G>=IqJpPRg#aQ6Vxkm}QWs1$K}sEx3~a0k zVhN}ksvS+di%BN;v&xW_0Y58sKi)-jC^#?pZXm5^sGSq%_bB}(^7bl1hf0h0Zc49D z+lG;Mg`5N4H#N1aYs8<^Ebh?E&TAr@HDNrYggd0oYxsCT?mfZ{#O-4)o;dJHB_#>kNNan|DE8FB9x!UEM6v4HrYCO9>MDWTb73>A-&FHurWgfc!$ zUhjiK8JG2Ytt=3^L7eTgxcqw*FE9!wg0uN| zgZQ|@g^pYnSlOqH$N1*SlW!7xVs}!Xzc^y|GU6UBb{Ju~q1A7&Jq_5|P5h!q+!?N1 z!8GB!bIN#)k`GARHD!B19(E{q2;G|9@kbf^8Rga^8k@s;2+Q(y-xGpP;gFZFTG63A4WGH<};spLZW&vaCGp$lE;Pn>?{Z?(V*zu%zig6;qR?7ds8 zC24x5^?d&!BGzf=-aB`msINHAPbn**b+!cT)+h? zxIjW&VPQONk7Z^U3CSfGV;CC`5@XCTz=XHpP|Np;_i+@$t zxx2c$T4UjSrBrTZ?zMNUh*)byy#M<>@0#EG>2tuCEWSj4yZ}7<(kEzkU!YsO%L=@Q zGSrJy$4g8uJoEn3y9jyQC#|1jlHLOa;T|MRuF_q6XVJnpQ@eYomV5R0@uPot#y|Y) z?{AyFTbk@YOMmzP;vS`uD=>R^vs!bcjQhB-K>UanMdXAyIjwmKNr(i{H>^a(m|lE_ zQoe^WJj$nj{@J^ub>FGV*dt}Yh6zkoH1ku&v)kyn%XoB&X7~0teY|RmS!Q{96=%K z!O9sfJj>3duOi!<#r5fBIC%uu?4kJyHb*n!&ew5a`};K_&R2&AYH4A26Ul4FlZfd7 z;&<@=1d~h|0$Bko^~TU`aQ?V*MBN@*3X|QJ-g4nyq=0E1v7Pp~aE9rev{`^naPADv z6U16vXc0H!+#1tBNev~pXquD94$Tdk?kBG{NJyB3ngo86;`9(Zd!9U81lN<67b(LI zp>aq|Xi~%`n3QTRS&xJs=Y?Uoh?aN+}d+Kxo~7qB5>{vlM?J-yU zXznTfi0OTVD7eWjnw@9a+_{LjE5v4lI7bsVbrf3aysPt(B28^F*9)jlaVFLL3Jr=w z%2^$$W{I>TFhi*O13ZKb2Cf@%eu8*c&t)ICj-b_j8SCPcZ`b5u26+!;LK#}T_jQxJ z;2S0P1=bEX6Npv~TP=4PuJF2{C}=T4TNqY>JPNK=f*+{n6!lp8gy)9RL|TwB;Q)zUn%x~Sx$RVHr+)lhK`D)l&9iYJ|f{3%GWXTz~i7daA8~W7T5T=!Nnz-I&|De zrMBql*n$MadbS{IpeC0so}ENFj#$xi+3aTy(31c#BS*o6&ZTMSTc>!gPV@w>Q2(LBLv2dfS( zYud#I=T@vvz8~v%$mKyoBRE-7#yw2W3GK2b)!l|>_8h~i0PsK$zpa4+RZ8zc4Bwnr z1P$lJ=^gSgrEKPud`4*Q&@5`2SKJ112aNdwp;_VF{p4|iY)2bNKtP*(SYIds^eWMNppL|H9qCsV@gqjWp35chAtk$6={uTxxW zva{Fk2L{P92Im;Q~!XMW-L z8O}W79!GC}4`Ftbc79wZYjzH?<3njG@PgO?fMn;6&Q@-kY^aN!oQ-Q2yF ziHnY#&$!V9PrQfF9P5En)ROEs!#v& z6@v9;bJw}>6ru`-0U#!9V)MpEy`GwzSv$}zEkI^69 z&vd`XwQpMm-|SFy4=){BdK`y@#VcB$=MgbqwV?3uQjaCo`7c` zA+~!+JHtu9ay@_3`h=hO{7a0(R}eqNH6JC1t2C1fn6yM!BXD^lKa?h-D35ja7d z;NmsJ9n}&1@jA=HKsSE|zk7&ehxne*zKZyY3mDIpX76h_DiXk~RF>(Rwue$j)Ws{J z8MC-e*A>JqYgt(iXqrMAaq(G*Q!HJlKYNt0b9OheADaz%HK2A8fOhd3o0AE7bw56O z#6^4%BshF?h89oi=hY0Ch}ndaBG^c1Bbpv#eYk`3hbYgz#SGURNGDer$6b6-L>y&E zSe~J&C3GX|yJ`aZ72<|kI7Ukz_tDJ+%_DJfj_=m^rs4|n+LKn1*p2u$qdk;WhxGy6 zw#X^XDSaRh8A~^5=l=w0EJL6qT!lh%N1>_`RZ#)lbS;;*0iQh z5I4g(#q1Jk-9X+&+FML^p2bP3qvCBq=y3iV3G2!=*9rK5^BJd7&y&8ZuQwY&0=}uG zP~&PKe{rGW!t7DSmi!%8NFIS`;7MqlR}6N(Ggt1$`q45eDtI>0LmFxE=GaJW~~ivq)$PX%JixTvN~8k`3_%KOJzNZ#^Yt1}|@T@GbxX%?yU+mS?+7x)!Z$-`9;%ap0XIQ^R?|vJq#BicnS{ zmJx3_DU8J<8Y#i>7{y*MS`$hEM2U+LO&z7*B}^4H!HQtpbHxP^Sz#7%5>XshYC)Q5 zP3Wd&HKOCRn$mfw&sn$TZ{=%)wAJJev7#l)Af&^x%PQ9qK$43Y?;1v|hu89zD3`9c~NwL~v_WOU${ zcz2HJ65kyoaZbs~*mwBUfopN%kdVNQ^_+2zk;fR8w{fwjo!=%*dYZ+{@BHkMjIpT; zNS4XttiEo2LSn+1qvWQ(&!Ck(o*kMa=mZ-CO$IU{FZVEsXkHPg1>fBUGs-yIq7-Im znN>FPIDtG;N)L95Z`X)4m|j4-f|yXUuZi)n#K*coqq(NwHFxCRVJ_pFfa;V<_bfRT zQcjrjxbR5~hl}4p+&~I5yxm8bRCY;89xc0AnN^H|Bm~3B8Vzf72o!a=INYUux(#7l)@am)cO7O(Z`cT% z(@bnP=r}`%hD|?EhUX~d9L50+-;Xp;;M`5}xIj;gW^#gW6XSY;F(b5VLP+>{2XqJ3 z%ebLnZgZEBYsFK>eM~RZ1qPb{yQoGsXWx${DB}@s8t&qbn#l>CZ?HL!`QPWM&n@}X&;Kqe zr-bkjesh()yuZ%snqsz~KhK0=fopCNn-^va(D!st_jFeuhQa%9zUk|q;jQNGoAoO2SAhQl_z!{q=0o`1_jFJ9 z^xe>pJQ>(|;FAy^BhKz8gbA)W!@1hjTkH~Le4NtX;QILu+yS_LXaE2p07*naRKx$A zzyI(2AwTttFEW`nxK9hp6J3ml1m!>y0t*GjbId2Q*Dd z<5j%dLxO^Ql`#8bwCp4D5Y6IweB6M8;cSm|@&xCH*9mtHAqF(vAiIVzxr3E`)SxVn zar4(8_E1KwbZ;ql>rZZA`ZzAk!B24!LU)F^L`5ehTz6avQ}`3GJJydOCu7O zlr#s|py?`Za|LoH&JV$jMUTjRotakEPq7Kn6PZZ4Fu!MP*ig**6mLe3p! zb&Z^MDZ?7utM3ze)v-Bw0w?#;?KHp%t|>@-jsD~TY*>)ThTsD+E*L2 z9B-4fuP2&~cJ~Z3$9Q%D)K!zxIV=_Ort)B|2-t`wLGw9b_K%r9@CDAk@vq_-5LYU5 zwH@)Hpm~lfl>sVZcwfk+pksr?nxsRj35qkM5uinMhjBeehYncbnmf35MOi(9iyr5e zK#!IdXmGwzvIA`>*=jIOjcn#aMK*Yq+OpS3>&@7aV!*#roaug8Vwq_Yy)B%)S zFzGS3qKpo+OmN!-A`O%+vsDc3JxW2d;u@(*wiIhpbsP0`aZ`_}cqmFK5f^s|&4>`l zsl_>|m&Ptsv$M4Io>K)8qnRot*ETZ=)i7-5Mn5_XN1WAUW8IetEn3}H?+{nf6B4Kl z<`S!k=C+6$w>4W|M?>docp}x9HUXM#g4Mv;*6eg|By-C)XbsdK>LGNH%eI{D^|CbT zG4&1jP%ug0JUVQDkAt#ylv40MCL)w^j`M;GsWPA3w<94;8ChujNk z@OUpMjssUdDj=#Jt1;Vn*NiJROegbfk~3?ucIkhsFx zlrUVTtdAJ%8lig^a~JS&K*AZ8HuZIvDu=n5CxmSz+S8XzEZ6usNXEH6%iCrywsf*;$f?tC*`xozk|5pJUmP`-qSs zEij#yZ_yzOwIC#?$3ze=1>2yu=$PwZYr(>@mVa9(Q)-nFO>lu=Pt zMB43pp5oj&>Vz^3H689Zn09CxQGc7ZJ0#4HYB=D{>$2*$3j_(&6P%Hj58#`9d>83< zUP7Aj9mjyll28sw=U0#=q_M~BYoyKZ(RN>CC|B`Z#qazOE`ATbt3`cqKY6ugJUb&y z>-C(t2HRf4`R<&uI)Sv0O?D{b0U^8sr6aHJ$K(RI8DdIF6UsQjtU%x}o5U10c4le^*Zeh8j+k#?>+y)mOMgT@c!r@|C!bzI-5fE8&{M=y`fIfF3#4*T7a+SSejBnV zC1C40vYrm z@sr_h(cSw|d*LVVQdz+e4^EBxlqefy^TJ>Aniy+a>{!F%~lU;m%q;(Lu+#`e>| ze+vAUAHwgyr+d1m4^uz#WMFpx4-uyyCC)ApcV48Kp5XjjjaVBS)<@Uz;gbw!Q$GF6 z|AfE)@81Gm<5R!c;_qA_EjvsLW^4Yz-#h^^KJ#l6#*+wq9H&pv9z6f9sauDzKEBLw zevNeUG{g8u{QBqK{lYa&HP{Kc=4`b%t1A7$2k z85c5Pdd@t4iOtcHyt#~}9Y*%I@hd2$MF&q>ehJh6o#ymUz9Vz@Q$N2$EqU&B^pu_oHoC}x~O8>nKOTl;l2QHqF(~>go6S`AS$8dIok{`vn z10)7~*wjTFUyG51DP}YBxC12Gq#^(M?KnvGfjmGLp-wrtlp5q$9I@f>xR7*8IcX}-?p=n2F> zgqsNM?lVvt#?^InypH!HC7e{Wg^xHh$}lDMv8Jw_!-bnPJGaTJ`zlJ|O^UNkO#$|h z#t{)gnc}nuPI1kW(43Ig52LFU-R{#k3?B|D&}<~&|xYiKEDkZtI)mRZH_WnB9#ni{O! zho&pr61EL_Gu@VNf`k$8dP>-uSYt&gmswtZgP=LyyH7B5@#zhYD@)N2Ei zh-Hsu!<>Vxs3s&h;&cG#F`Xe!X!ZsuJ>pN%+@a$HRRd`d@s;B{0uh{fT+<=mFsmtl zk!mKJ1RtdN{2M0%J>Fb*OF#;Ru=3_f z{Dgk9huIu0J2y4Ws&52sI1(t_ZXX8J5)=NY^owu{VfxZuu@xS*&#iUdb+4-mSCDCJQm;VbkH z9;5mU)5TYK>a%~$lTSK+=U;bs3x0p{S9clCz7N+tj*piq;}hh`h59-u1uJWczJm9! z(Oi9=*u2xY9nW{kc@5kmNx~QE>kOcc>4;%=i=F2e)6p-<$Hk2mC1TpHUON_jFJ9^yfv3Yu`sR|0vDQF4KcA zzrpc*o1__;?!Uy+9wFu*W>{V0(|_k5!+48!d55R|`rBB!KU@EL>a!a@^9%nE{ZRsa zh>|{rYgYL73>WK-g5^mqe(IN$&7YFRGO{n_TgO2{`%ki20#8wmk^nt@-e0tpC+~&d>oix`7`qR6~?oDR2S8- zNqdwuBd@+hNdFuE)6afq&BdSjHP7bk2k0(5L9;k#dg;B38&)R=c-PU)3$z8&CGzIx z-4c{HD|9`(_kES~*B&ElgAPg>PSL~bw0k#+&0F`a_$8t}B~Ng!XE?ivrez%wmfM8s zDX|%8cTR8!r!RjTANFYHuR?Ix(Br1Bl2+I8euvOL4^(qyJim_E0im4|{E|HONOw*X z5{BU>XE+OB_mPLk*c=}+Irx7m%Oi9=AomN*E>O~SL=W)Ywz!J(TDT?KA|y7I-#lKS zPUduk>C2S7z_)vtP9UD+U5}e&oO#5Zp>&jVfRu|hO=|mKyJ(s*p3gC@iN3g4BQ7D% z@Zzwz!nq7OuW3b7RHyi6Q_T~*#_20_LfFT(j>*BxHErd3LUTlax=%@KU?1Nd5Mlv0 zqNBhVfkK?!q?x?{E|FIkDan!7Q~b0?P|6S?)ijw8>#aFIU|Mk9E3~tEehz1Q6(%S zkqh86!URnd@KZuKLv+9HJ8@WU!2(z<$uo20F<{wY#Z``IaYznW*rp-9;M!6#3sB9s zGQo;6=0Ip8;tOfjp(?}-6=N(NnvX)BDb>RJgmb#C{93?fhKI6=hvtXqlZU8?L zcOkEZ+y}~7Z^Sd(ba7t|{}2l54I2^?USoFY3*>Q1e-yD{2h=l;Gt@#I==B-jZHUu> zwC=EM+f*F2KuU~~LB|$L4lju@w-xq^psHAIC}TvoRaA)Eq5yPTP~@w5SUgY-SyLl; zCFg((t|r2@LUMdlNb6WR%~JWp5NQ?(%?{T%7(J*}BnmZ>DqFTJRy|?cR72MEP08IL zgvKh;z_>dt;M^8#G1kZ1HnfRVW3-GAJHt!YB9 z;ml|{wy9maYv{Ttb<}*=a(Q1bSCco=&#^VqP>u57EBluWIe}QeExpQ^O%Mr)^yINn z#+o4aO+@qv9XI3@fa)ll)i|_}kdQ0#Bq~0R)krKImX+cB61cKGi=?uIO|T3(HFeR? z9J#-UYYM*GRJ_M9f$rq4yQ`(ChoEBvZP*S17q5ohxOy0=h@e5h)%u=ynD|H{ct^ieu~pB+%k3 zk|Q}(cd)ETJ65)A8*y5OBM5C=Y;7Cl(nIG3Od76Cpx^(s1;Ot zJa1gzYH2CsB`jY+WCD2?5Q4u7J~D1D6WSe``7__t+k+raXa{C zz!*rUm%uHEtzoXGY!(nU_;81AeuuQWAKzTuF8bZ9oaRYF!npn1PxbX=ju0AL)8o5y zf?vM_6E>V3kT#d`a)E9~p|qHtVoWGyhH#0de}Ft(WjMXYXFmV?Jo&j(-W-$u^`AKb z{%`*3uYQeY94YxEr>*=2?X2Xc$l#C|vy3$LHOY zI>ZLdfAEmOUqofurFC=s{F@Zny@x`3hKtu3WcRzUW%qPXeEd?u`U;(Y zfIK{iwSUTZddR1LAtN^G(m)DVSwKgZ~gtERwUSB6n{_Nc!f-&8DmNH(YKRw3v0q0(2JiJPo zYzW;MvDskGaP1lCWTb4a;mQW(2(%F72y0$@O9~|o0o5Ji#1p1x46FMPy9x9-W=I$i zU(2ZalN(STK%^stbEHx7aFMiG)6HLI*j%7&7K96T2)v5wMYKG^czjG;yg*v*kj_4a z>jIkhYl1X5#0_Z)52R zBwi(k2QX`JWr~j;lR8chwQ$k3O}#0XHKba6C9cIerHmdehUJdXo}>9HWpf{)OHB5k z+omdgHEPExF8mR+w<*UzfQ~a{(j$ID+Z59JGFk%SPO8COIwS~X1LOG~F|R4TCyf)F z84?U5;M`EhNkhQ$$gu1wn*+-DRV;sjVQuKmk1@aa4B}oT_YcGQ1B6MS&{YJ5SS{Zw ziVF@GHr1%}o;*axjYl^d+Wlk1C7hq3RuHe4R{nC%*XX)a#EsA>c`S_U148S-7T_AZ zH%#jYx$_<~k2=Fy#zjMms|j4GW>6Uf-x=D0%mX7``g3nlA)2=4D8VIE!v<}}GmPbqtwaN>YsI={fxe;AA zTW0S8%U2#}Iy)l-hjL8bT%?oK zL!u$cu%wtbVh70t=SG}g<0l&sqof&Fsd$2Qhib+*l}#+nk?82AYeYQiR)7)&ie-kA zX*K%Aa52}^zs7pJU4xSmiEF$#RC8URQitf2Y+GD}&T+EFwI^7KX|_(t7;!ezFMBL0#Ra_Vko%!xMMM!PD1+ac$XX{lx)E0*Y4Z_meNMY*w@l#??3~nh zs6~7j>U&FEHbTs^r7tnc!d30w(FY>VRlG=dKp&tA^v`v#Tn>r^6DbU4xz2=@Vsi#JmSL{adwF1 zDL#0xK-?y{b-2iIoM|sVhubD|wZDjQ8P}ZC>>PvbF>VGX?elj#9)`06%H|p&>=LGD zgl2gV2W)*8S0Gq3WgzxTfo#xvaF z6NH_Yn0%{Ie|4;GKT7J4(am%G#^-K<2|x8K$7ugJn!|erRNhN@+$HxfQO3h>>v4aP z_2iR|Ka3N^=WmJJdpG$uAwFQ%eiydxp6=-{q&^IT_g8`c3YY@_GPO|c{pt^ZQ)*G0 z`xf7OPxo|B-)-gQ5hj!SY3DD!r@7l7Um>j@LF5vC(&57r?{6{o_Yv{}^ct3LF!tA2 zJbgc({*^!AH~!ssuIm2IlNtCLPd@oHe|+VD6n8LfYq}ozL&GZ#qcf@#pk$irG;SfUjBGUEfdXDN6C*RyS{~-FECo|X|@RPrE z$Z&p0+POkLyUZqZHF0POE9Z>MXUX|RwEq&n{U3Zd#(E4761w|{`(OX2CjYS9!(^Y> z4!E|*Gq4#RLel{yy*n}lKw_brf0excBqgtLwnBA@F89gneFoRo(e7=#yV??u;@fj@ zkjpJ*^S7po^RR>WGraE^H`kDI2btZ(d&oqbPn6U$o;{4_hw)*7gq~8mYG_DH86IR< zC(wa1c8q7c#My>0IVW#+F|MI{i1RNq4o~3aMlJuL-Hx~RxbUXMS@o204w^CQ&0*;e zD4QKzYlQ9)8yiyJL3@YE;utN$=I~+6F5;#c9}+ICDCq)X9`PFthvr#L1Lh7L4BsVu zh!~aEsyUIzX4`~*8wmx=3(y^$Oh8^{Twg@ACFd651kKOWEWS?YPB=ebfL=k()A&22 zVN$t_{XTge@S#9sgmwV!DWze3ypMMRUTUdQH&h0#tI0=jv9HJn7aT<$!9nO0@v$xrSwT!O@mNum6TCYkv_k49+cEZxxE@nSI^Ut0 zuj?_kSks%%)#PQCItE`ng$5l8T1G@SsO&PF{A+BE8=UX(uBI|w8;PB57Y!mMMVwm2 zA7semwm__*VhPmaqN0VGB9*w^FSVpeqCqN^sX7(BuZs~m`HDr^UZYk-f`9|bo-#PJ z2(c?@QPRdEz9U433$it8!J2vu#Ct5q%B;;bxoumHuH||tT?^hDX<7f>M=HuB2+{%> z%HS~Fnwx2hUGO#8`uh71eML9OHsR`;iaHqAj?ff}R6IpV?ruq2>|l1OP*O!TUg@bOh(j&~j<)S|Lz zXsU*&soYH$Bh^&)9pojX5yAw*L~Ht1!CXdsAw)xUn~)y^NIk9)7+2GpEZ($OcDTlB zYCLXg(i6dTEpfWSd57WgZm0_*bOb!9$&|h>1XyZNRVbB79NV!PkfIm^Vg=C#u^AFF zWoR+;q_m)wb1*9JbZ9GDh5*)K5-SoSU!fF1(^WPnm*{3+X1%%}Goju8V;DP1Y3ibs zOHA4`r0ZGVzCr1iq|FaN6Tt1_{08C?;?L{;kc5wGQr@TZQ+$&MGeemYx;vD$L;ERZ zb3YRH@XdMMm#XA60iA=4SU#fNc@BvKX$9ng(l_+w;fhlUAbCag1M+4E?KjxYVJ+npLl`LIl%Q^#vIl8acxz$Y#nM%Z^q3X2 zoZ!?UZbMpK#mYIc-PDA5KSR^~h#cU1?hYT-x*~% zKx{^wc*fHSXe6(M@$>*IEuk$~b3z%Rq$Oe-T+`#kC|X(gu{$IUQ?M1WE97y9wA`oN zxq}r?USC2}i)&Xj^H)imT_o+0HWvt!6Ut^r+FT~MUD}<)nrH_c3D@K;>wOQ^3p9%t znO%Jbck}>GpI~#k1pD204Ho>?PoMFrU;abJ(}o}>kOChRv3F1RbWd;7hhgxpfFGk8yN8+l;{X6407*naRR2Bj1n}*QIe%^YGyZe< zpd%IcbWiv69jlJFU&VEErn^tSrEB7Kt&gsutH+Uejb`VFcJgX1l>$^ErB_@$B212v z+cyaDFVUYg{P^d8m;d#1@1E{|@<|0=+y43Ba^2IE)q|w?NKLf9kCl5Z!gzFpGQLW* zr?;l_pD+E!zxOmh_REn{3OPRt+>ehJiL)cbXLQ`bd7ue0&Yp*7QTOIK)iQ z^J}b*mdx+_3jO&N%5a1Xx4t_YEyl0&41eSEFL0~B$|hX`rdxMpAaF`AxA^V9@&3yg zzLkFT@6PZX;2V7>j^b^~{RNO2VN#7{!w6x?SZ3&O0UzJ{T#U0L+~fqkJyOCFKko?f z>orxV3p7oTkZ?SW3ky`PWBp|`e}#7M>x9``#~eu=CEbT`8S|%z7UcW}#RW87A@>c8 zd!Uct;yz(|g7X97w(a!dC}obN>$q^6+$W$xbsy(4p*f=DOXU7OVm!o!B~o5v93I8{ z4ow5TOLdf48?3}Sime+YoY!`1QOqg0i-;@mM7md!Yv+(*d|61wZewqS8n z%?+8Oc^{EN8CqPdquAD#I*LigPik7xER%-`mIGx>NEvHsoSkAi!FZIiv5F_K6=G{F zoYKzjAYlM?O!uGW?6vPh55Jc(YY-ZQi%6W}#N*Cg}mAan-j(1CpB4$1ytSEtP*nXNgF|n z;#;ff#UV1D6_hohJt0mL!>U81w$|&gi}^#K#rXxA18F^}I0Xr$Eg3?h5`s|@b)25c zGtK=LJ<)(`9C_?OjZp(}QB$hr|6}jXes9UH`@YXwd+(|<{N_7#_w9krX44WSYBB-? z0vzZeFyPqK1W+$Q9K^81$N~6}$2{>52=ZVgQJRsZL_uCeKtmK+uo1ux6x)F;MG-Yn zRCDU__MLyjnX2~QYvp0rz0GDfTcp%Yk@8)@4}H;Rs5v&JGDZXsq}&Q(t!N z@1ZkvmztAS@6qj_;(maaW2&cS)AULJVqb6xO}Ly82a;$`J!wqfG79~C!YKsWMPzhJ z4Y)KkjhBS<1u@5}gDZ$MLfm283PnNTZ| z3bBi*1SAwBtO;=ias*;jw)pOloQ)^~R@?h)4_;K;w}zvz<}5a-qc=3fhsqqo z8u~&Sl0<`$W*b5`Vr7om*aE4-87})Rlx&=VW+W&Q5_vsq=!ddw;(WJh;iEQy-zKEn zY|l=JTCwgD_2Rqn*-H>lv5k{YpJaCVOHh`0?y=mn^COb2>94-Ra06^K%Jy#~@e1Bw z5aKC5>eMJ&Fs`m*rBH{A)g=-m;D|$<57gQkab6sq{_wJClhvePk?RP?khWD^%v3d!So7lL**$~2gw7ZStl=J(~;Sqyh`1D7jb-skA3B(J}Z&|eVK1`8ERqHYf{gJJV3zWEY$_j`QiQ*Sz<`->OZ=m&`LqvYAy!^yRG zt2!jM_n#$izXblL@E35R{`*^wg>`FO4Cx&+FW#-nb`E8S>mw}2qk2^DQN34zLjMZ* ze&APWuH2slzVL1j_?mhR_-^3$f$Q(lK0T^O^{Bp?TD`HPKiDIr4fYNvH{)iXx_K5! zk2Ak?qp>l+>h_Q})bS8(PDpRCxb`B$y=Q^=F{^HklAw%mL@9sU#xKVZ&U*@`hGi%njwtn-cKgWOki}%U5oqqo*G%bKr%4Uy{ z4yi@ac-lCs^V?{6>j+$bbcZs00N-6B6 zgo8PRw=;CVw%mGDx`%1!KpQU~7g&Aw^khku7`BY@Wy<+|;^v1KXMdZ(A%qUq&>VKz zsWRYp2Khze!4?~?vc20QVQ8YraEbB!he4jh;*O{ZodsO4Lz&~{3F`Kk&=<5bLU+-^ zZ6541ps{fbMYmWzCde5zZ}1W*93WwdS-|aS%I-4iM-{R4)i=MRld_dd9OEUVF4tf@X%bB6O%kBy@;Q&LjyKYus08I;Zjj zgkUf~r$1Pdj{YT4m3;9x&^@JYcjVn6CGVq25O1zM_liovJmb|#GjE(xDp?|BbYd7F zl*v(P&E@5Dyw0cNbVSoYURCO_hu4nKwdauDh{>=TsYP)Y#1$K~afHJ_T!5Dz31C&p zTQHkV{Md+BNOL333>yMw4+KJIT=&F9J0K*`#HkvZSYjROsR>lMrOw+}5UDV~OBv=M zb7Bcoz+R-Z-0H3UwFIR3Lcch-M`n476GA1W~Ai zgF#*^-O?N5Rve4qqYwgAYmRE&C9F*2;i8j`wjmrePI-`%n2I;Itk51$6|{qz1uudG zCoM~JQAem{hFK&C=*+Qk`mP0ULYE799nj>Ug)%C25LB9YsY#kxZ#1NWLz+X3lYncq z&p$K))U658X%F(c-KT6De^&=!4x-wau-k^PFmt>>TsB^_jgCw&IP~5G(~dSCkF@=o zun?0Ti;7_;lL~7vIIW{^PM&f*p zn6^d*j>c7McDo~KgJr?QsV-=ZuvJvF9p_ALUUK_BhHVpcIRj?o&1LXJzdw>UGi&1oyN(7rkf#1?94VPO1cfXrjBD1B?@7<=_3hV&$Lv%bqlH>IfWxNXOCqXWN zyHtCL+44p5=4pcVt!bJSQYG|j%5F<7hwpkN9`jZ59PN&nAHIsFExRdHG|cXz zX^oYh*sqB*$lE32=Me6ZmakE^Pvi9i7)QwBywRaU#%n{!gp?`coZzw%NGQQLc(ANwDkl44SxK8`Vu<(8^r!~gaMDQP{*f% zON7}QbhFzJ8EJ1RgKlx3-R>&G{RMUSzcBuY&-~P1pOL6cB1s^mZ@`6Z0atB;=2T7# zQfgMeKd&kxb5trGpC*OJ&~A>V4$;;gu^fRzS4`et~GSz>qlIuei2v}$9}@^%+|3qC5u*#-@T-Ps8e?}Dup)xDyfX=j zBDjvg9ugtWH)uB^HK2=;VVq%}32vYxnl6yABc{ma?saS^&{xC@?ge~_4^N@-1l4&9 z@1ofmwah8oBhq4t%h<%Rx`%2)s5pv8CwRd~l$oH#e*YaguZbntqQ?! z%Svdj z%kqGs+PJH+&&};PGt?qQ8h6!lB6ULbNa`Kw9M8hIcEp{yXbjWJHzV^(HVI|bDEEU8g(}z3(zLknIh3KZK8v?6T1Ss0AEbo5!4!Fw$=a= z@oL00P`t-on)uv%6R$8x5gU~{z%E0aH|MEZ!&JC5QPV78YG@h>N%7iT$szENVf$5! z#6zd7#MWRbBQQ*k=h(zn%aaRI2bxmst)Ww!Na{SmGWf$#wDDYsvk^=QAtF&w^CtA0 zAQ6bu{#Y{_htM*+9_$a5H}i|U?Tc@kxN8L@O#x*A@-XpcBaORy;PiWrt4*$CZB9&u z-F-zPq(!A{A{v@YSfe+wyJ@hb0G20wg$TJed)a=C}bui)cl zs?HI~z(}`TBT=xr*BU>up&ce7GgfA8O>+pTLRGRUAqhd58Y%|5MO@m4qhKbK&486t zG7UV~`Fu50-P z!H~3WOX2u9)#i-n17-ImO8z}!Ur{{)6zaI3>@I->%$B6sghGj1v>c%^;x*#FXy1uhX|83J31QTP-5888uhdy!yhw~I z!EHpN5mG>-JzU!#2$5_Xp2RrBc><01feUQdV=PC6`35AmNsw_%-33Cp3@kBrc>Nth zaJ1V;^ctd%Av&YlKpqBsSTVo+3L*pB``4-K>(nB2-6=XdN9Su|IH!!~*jlifr>5u{ zt9w{kwkfLF7g!vB1rHh9JddlQzC%(w=hCp69|xM0^uM6dGkU+(zKPraQ#{Gb}1?X!IR zm;ad6>IAU`UL)v0(z7?QZ~yR}AOGwB@D+aih2LekU!gq5aCVjc@D^cq(OkzRP6WF=h5hSbtQH z>OHFWQs9NQwEy4J-(RFofe*cRyYr|X)uZ}`YevST0B;w##&Lm-mkEnR+CO{qBJ!(C z6qVW>TvI8|Z2uMN_!QgqGrZqU&VTi(!jF9F-?F^EA#Oi}k54e%eTLYru{0tUsd<49 zg)+WQUcbyR`(6IUC;xoc=eI*;Kc)}L;_@FLTIqq^{ae)GqvW#>kT0Gj#B&G(F>cWA z0*PZAnX7ZGTxVGS8)Eqb{`a4G{T;XQcYbNfV*40bkHCAPS6sJ5yG=O0^=&H(iw<}x zSo!)Rj}NK|g@$<`Jm7wL0IOK{ji5aavHS$x{vly@K-_6;U5JvnHn`{e|_ zLqbMVAuU&o=OGuC$(&7sY_n$^KiQRf+IX~s#vEN~J^9OLhgab9t=;mL=ocr1y zfwysP)bO0xt)9fjM4ZhC=`vLt12WDxxXjR4K@KsWBiiAkBAQU$F{Mi3(>f6sP8qy8 z-J(tD^FS=bnNx;H9{Uzl@IP3<1G!1;r+$~-OSMx2s3M9mO|(TG-PaaYK`P=fK^JoLneF`yqc)D}S>FQO9K;=Pw5!A(BuGOxctNf0L+lGS_Lza!)NYrGY8zk2 zB4&=2ip~n6VRFK1Lj+8}1LHVD?HZ(t)Pb5uH1?C5L3mAG;L26i6GKZEf5z4D{;blfOdsaBN8Dj+O)fwQ#S3ms#Wo^ zbuVgeqFm@eQvejJ0UMiv^C9)%tMCVS6G?rXz9tpMZFAIyIY^TBT@l4fkC_4)Hzjy! zuHaCS&cHIU3ye8I1x{*+w_O8p?$;pgf!rtq2XDi-={zR=cMk>uzHNi0;zLcB6RnN#qqF*^o|Z! ziL=1$_(i(q9ctNQTt9}5Pau9cxwLmsa|?uvv-aN*+j>$UZ$SIh1b6R=vy6zMX~eDK zWrlRt)_AFi?W6G$an|rY8ZsIT(Xl!AQKYMc&IqwFMt1iTOY06+ie~6=9 zCV3#cfvl)QPu_k2krAkv_2~H}Tod9M>I`H~DN7{0L@hf~IwdZ@gf4cB_dkLUKM36k zG49AV!^Z>GZ+wWDZcuh}uz_y>4Z>_g9iG949-VK9X^SpzPH;}L*;FRGQuUo{u z9c!j|Szu*s0{mB1oW0Jtxdd{Ru>Z>2MKM$Aa2a$-+Ix}Iol^2KGEu<#O#{VySN>gs>sadh&V!e0_oULACSEznHW0*FNz@e&XjY z*!f*FJxSgk6XKJgiFUkf@$o)o^(DkU&u@IY? z!|49zt8sLHkDvHozQX48Ip7+x-$Q68b+v4%)g_OcLZt>L)VS}Ur{Fmo!&OSo24-gJc zi17fC=|s3T_tAKIlOO-N&+}_P`x4)7YjqhekZw)QPyf014gH2XZn0rbi0vYy<^>`f zVti*-^uz6}mW=BUke0`!y*2&e9lGVMcXm#9uw48RLwpJe-^Xy8iT(==wPSImXL0md z!qHvUug)mrb@Ig}B-SR3Y_AejkaQpXN@L*447VksjVWhSNR5P{IhUmgT-Y`0?iO^0 z4gu-T@K{h;PmWbbyK}tU#%+%>B>e1zZvQ@_@BFzsf>$LEC-`U(GTq**gyl_iv){sT zG&O8Qe~Or5x(9WJAuR-FaLUAfSM$DZ^#4WWzHtP{JG!#Iv-E}B|uwh!+sf!9c3F44Da$3u+zjp zA>y^irG@`g?QqTLY)8l|LN0i@O!0`=9y!hlDig|~iEvg0tPoNYPFx}OO(1LT$HvdJ zG70Hbk+_Bd%D6{Jj>NIC0Hld4s)hz9^@<*5sF9irZU*Aitb`gUIbyp#VsC^+Y@$FN zP&T;CNxe0!k2~YGgJM{2;$xhRgdXtO#5^rH3RSSlN&euo)({#Vp(yG`bw`uGIr^;; ztAY&>J0s4UNN5G>Adsi9FljskuK^)60X8+KY#o~^FYQm-?xbCMg>ls!x9B9IPS^$m zQkulo$#M9A_F$$hKrTQ`BUGQ9ae}1U+=`tMXCN5k&hcUp9meKz)+jC5EJ2-Ixgt%B zWkNIH)BZ@iy^c-rb=u=PoxawDf`hpe9Aa;jb)ak_ZlMKi8mM%Hevjew0JkIDu7O-elMreqZvtLI3&?Xp`iLZ& z09Ku9f@(oxZrF|7&=x+l@Vs~kb(~?t64QB`)^Kab%^0X-p>%K1b;j=E0KCKFG3F8V zvAv+8R0QAbBRXLNs^B)X23rYOF|^C5W~>&<)+xI=;tNb1aY1xM<&185pE%!8#wBid zCwB0Xk~8c^Y7tl;;y!|1fSxluzWGqx1*n@#P(FypYnX4)?n!c~P2jXGu6GFi8A^e@ zk?yfI>sS6mf;^2A328+89W{4&iG;YMo9!qiHdeSacduD(jT8(~Bkv-0oU^%ejWjzW zE;8C}2{K|D@L|cA_i-=8{w^YGBte?3ARHi+>DV+J!)sgDLukjE3-rrES@(=Zu~OS~ zfTgxx`J2a=sJsMw$b`5i?Y}{}GpCNPP|H9F z`(XPJHaH!^NSxn7;(+HlrS4J3LteuDvCu7K>&?&Zd#?^kqtpJ#q_hvB8C zuxj92tSr&ELp)Ha)9=Vzr=PyMYM!+$2<{NOcfcZOrFv}Phu?zw)t|iuew&~C^kdZB zHL@N+>9LTZY>3>VyZQQC7{2dy{mcuAH^MV`eT*na+)f=go-uyx(<`do#_eT(^B;fX z!O-8XRd%0cvpQtvABFln^Gjd;x;$PVJI?PsN8M~0FaC^+8=w0Y@9m>{RDZ4Oy;xxX z6X1V)51!}U>OTek*Y|lFkLpqV`(2;;)X0zi{4K0JPuc7f7Z(q2EA&8*rgu)3brWjd z$NlCMRPok|-I_3)Q}cpvE`;$fUcdUE-39LQBcF=I$Csqkp}T^W&6^_gC%z@S@|Q0c z{?321K*Ao#jB#^9-aLzj$C0=obf?606EAy|dVu>Llm+fftQxkuPn>@dPsap(d$8J1 z{CAfa&i@0J2hX9iW8(5Qsec_jW2)_9VRMNxdy>4l%#Z$$m+4P_|J%yV`&*wJ_}B}# zu<<#@)d?X~s&_4UJ&tIvr}xmplq&^mS=bkSYBdw3r%P5x}DAaj}Y_(oeOF2 zl(fA0=StoErB~W0c>W0a^rz?+w@G~^9o=C(JE7)%827=RB+bup0ySSoQv^Q+TZ1eo z0kCf)uwKcV1@0Tt;sP6&AOJ~3K~xaWCoO?J9O9b~lk*9A*dq@wqu~#z zbIir(mKQn~RUhDd^h%Kh0%|^>|(aYeKqB**;D#R}tHydVwiW`!=!( zNGO!;0WJ&TY>m54Zo!`FGO=FIaO;3QG#M%_XsWR_3z{lWaZ5lXq=4*2^4c5w)#fd! ze(VUdgwbQ$YmDn-=3Tqs_lKcSV0D4eqwyZ1w<+1MdVq#GW$2J>M0cD3goYkqXiU`@ zTe^E)wvqa@X10IEuu6E@r;HT_rD#JCh&WN5xTuYt*c(vEn;t6xN%qi%>Q%5BsN04) z@LZ`yP%%^LxSuG@(GUpTNQ`%}BIKQb zHo-G*meAx>EGRw%ygCqCu$?ubGo%f*^bisTvs!qISQ=~Mfs%Uc=x9&zR-r}aBt#u3qF&^ zW!34Kr8N?Yfd)l_pfNxwB#n(pTrV@6e+1P;>?1K9;4&l4cMPla5bj%c9hMcZlfWIN ziTzE-MWkYRi`4;f!*v1vIOF-_xEv7D9+Dgh3SM#Va96ZkA)h}@>2}0fB@c>Kr{)&W zC+dywY}(k-mJl6rc7(WXfsQC88^S(uo~gOC@H$gmI>ZBn)ZF1g+ayC7Tkw|LM#BQj z9bWH&eF;j&DQLGP_ABDv#hcA^Q_Ai!^5%JvXNX-T`y3yiZfFN$Ys%Cc)O?e;{~{W< z_&6i=g-VCjHDz~&G`~+?U&H+w(n2XYA|W6#l4i99Khioc8XDwT7n!mWoSw2fBBV3o ze595+>OJuwv%6SeyFx7$u@03U=?WreSY6;Xw5CjGoM(}WXuv!m7`29mg2_(JO@t50 z5RXu$A;3g2GwLYBevh!cV1D^E>M+OZ1=4Sj+8U7Kwu$=2Icf1S^UF;@@*JtdF=hAw zwVr@2NPBmPi`%#fI)9x}_bJ;%oGWQ@7gs0tYjQY;x<}b8iHmg;V_n*G#Dh{J_V+3E zka2qnEdd*#j<=bAO^B4@^v5rt~)fH~aaQ|tno)h}d zvH!&9+1~s?Bz3~BjK-VH4qjz@_d230Qn$l! z!u&2Z-=gjwLl@Ha!xZtMF{`ak$fmc7ceTv0vB&KKjjyBcz`b=(2>IcDeoIQ6U*QID z<6F1QsXq3?)7q-IccF}D)a@Jm=s*23{VSh+UxnuPyMF7F10VnI z{~vaPfjx)Y_YmTJ;@&A52Lf%{$A%-u?GbtRI^*g^*6H7UTLxS|sz>!5T@1^GNW<32cn)Xn= zPq+W27LWu;+R||wvxL-$5h$BW&}B+KKyAd>y=5DJ_n#b)XFts1@FS%C74xG%e8`D= zSo012!ClIB$@boJf?QuUNbT`rXE+?AX1>@#c_ub%$DxNPWd+qz*?|-UB@(gytl6S1b!<7w|G5eMILk z61!Us$5OS8Z;HI_HEYax9k%d@OoEhxQFHE2xWzK ze?-k!8SeZbVYX`*|A0%OZuW7%M6GLVb&PvUbjRk6y(o7ZbF}XX(WoAfT9IUp?I;1f zqm7)WHmV*6`u!DoW7tlJM`xHXpd1jBGVZQm+sEMewZ_lY3^u7~G@)4Hi0Y1Dw;&X} z93Zj;?$QM11+a%|!GZuC#L1mnn{y7%5IraDpSF>CFQ_J}caw^zghfSDK%!1zTQa#* zfuxj8r0xWyiBM)u33M+laLd7{SXDFyd<69!Vn@cjzkrdn5 zy6)kwxMTv6vh9%=39%4nBQY8-9ZH9G0TIQEPzPnG4awo&n7efy(bzb`nt&J{ifLeI zYN8MYhI6MssKg`_d)68+Rh+ufHuewT5JH5-B#0KsgJ5D1g&<%V@(80h)Puwaj^ieb zKA^jVc|$gcf%MZyQUg{Xq=p_*g*tlsTs$@Wgc+i#h24#cxwZ+7$%dN;@M45ncypPR zCe&&NWe2tevzBY8542HjqOOgNJR@Neg(oMZm4=`I2(g8uh1gWyvQhF@o1+?mGGT8G zf;(2^P3JO`ko@3JjFJVfprHw0p=-|P5J0+ssuNgXwP9X{RY&YX3qsV4sM9SQN}+5o zVPmB1jL>zIk`N44qt;5b=75Kab`7^OUYwu^-CjZCIN=AH{%IBw66!O2eu(8AG2I|^ zXVkKXkCEadAxInFMiGygXH-w=7WdkkriS3;^F?z6MGcUfHiJkpo9PDf4u_8Q2$rx3e_l_w{@^Qs|h>0GwSEN2 zPvUjK{NN8M!vW47@$hBJ#R+92Y~@+3Tx$)RoSOLD3*BOim4mk3;DnU1+Hglfw}itj zR!_*bpk{B)&2HP6!;BZF;F<4e8Q3 zwRDtin;ftjsJRKk?iJf9p_`gneZf89b=J%SSrFMn^o%$k5bdbDL|GqE59Wk!+ptIJ zHrlNj*UwOPGx8XTi`$4gX>rbYdWD*=5ob!A-Ff(t#DiPp`*X(i6;MNC3+{Um#`*Af zFRg)N>UfQOaZFwPA%u>yxk7*NRs)1eVSfB4jOSZye2iizU$v7_1= zU9Rcb}B{>rfy2^!E_cN9hiqBQ4GdhhL`a-hACwBD?hoW%Xgo<}%wS5Bb;&|CZnQ z#CPs{^O^s0#m~I(+q|~EMO}XgonIoZuHvCb+^IHV^_0AM38^o#IDV1e{5CR*JgP_a z*QCB35e<*(Q9Y`^s`{0G^cp|}TC>?g-eC*Q$>bD8{8o%<7UVB$O#E-x5 z95sC}X>px6KS6Y)>6o|o+h2;B|zt4x;_~O%@ZDG$`0<~+!>|49SN@Xk)_YTb{}-Rf{QJ;w zg7^{c`=tH`L5*6MZ6wjJF|IBn=@t6pmlbzLO8l0 z_II1Z=^HGK8BO;I-80w-<>D0KNwnW59o!;>*V&#uMXi^S-2oDE+b;znVI>3WhC&%H zVZKIXi*TilsD?`HZy@0muZ3C<5ayU1pnWF!33Pvp;k=N~w$$Y<=9j+6=H`O3eVVk` z5s$w@*&JYbNvUb#;acOZdZOB#PzFMOlkTWp__~(Ht*rqyYi`|XY+Yi;s!+!S{S=fX z1*-|$?M;r#id82nZDigvD)(`Zh~LBOLF1;%K!32tHVb_B1n5AwXcx=Ql2Wd>&%JJu zFreK4wTYL)mRbg+o1xuB3)FMLY({XMM$Q}WRi%Z!HRfP#!9kr;$BsI7h#0B^H7p>_ zvEf;A{X>EdU~9}n3&1H&X%lk@hQxEcbeJ5s?`C&~_Q0@@1gN_JS_tZ>R@?+DGpK=( zj&PsjHMLP$D{bw_i%AqQunsRu83P1IV{?p_BJKZqLjtG-q=)3v-1%cfyB%0#GuEQi z(p<9IZ&9h32U53d?!?k#o}k1@h=jb0EgWoKPzhLxz`P0cDwOe<5a)zmNDD{15hoLO zg4OvHx&{Q=$ad|hF2tnNq7CukZCfr*?2NJtlT%y~fi!E#0e4|oIjL_=2d@?4hB69y z+qFidBs4~(7krc^h5{;vl_u;y2w1bBF?U59kw7Dpa63761yUnUPz!B9MQJW_b7~0$ zckqg)+`^KIVi^!6^o{!~IH8-+2-Tp}rrdgHVP0E#6U7jkP^$_ugIb%*_<{HEA-LzdBGIFAsv|oVpFTYhx^jhWrTg_CA!|L}Liet&26mmdX8#IUXxk3@f2I zeLF{kP!L=}VuSXIB)ske6+(~d#C?txh+vgk_MmR*4%SVWA8PY``MMEZjG zg3vjk-!ZNhgt(a4t`}(9A<{zlBvjNR8ilaPNXq1$W8)s7zYXC&8jg_I;a(6uZ6dYq z6UA_=jkgh6!-LY)elL|;6|qU^)6%%wI^nFe36rgPHsa+Drhi5V$55}~^_;SK0^gmt z35|(`jaF1g(0x=+7}ifx#~G3`AqZ|tTx4Rm!z`e=qvnW>C)n<9vaO)qeKgGJ=XbH~ zoIF5YA0hG>I-8~{VxU{D!O|3BC1}jZgDeKq$*CG!lb{N29p*El8kT3chqk`~Do&Ui z)UGuiRy}Edjnod?9!%(jf`$ixXa%1TH7!ZBHDyctu9hKDht~Kgn;F#uF-*Mj9MLp6 z{cVmA(72vN-wvw^agA`m=GJrcN3SDN32{LC4ar`kj^B?D3$QP@*J%ymB;hh(51Z!z zsoTQxb;h-{MnYVm;V$uOuw*Vy8BfR;P9FXl$RFbQI(7J)Y|l=ZAHLPus<#l>C2K##sexk%K_M+mX4BN97Q*X{Royh5}K zM4dV=sO!h6c>w!7viFCi`T5(I?= z-=jNxg*xox^)YNnAg`h6?I)3P0YL040oHf(}uGA{P4oz$7Scv_O zw3nMmK8#IJo?2FJI;mz`T4I%e)c>EoH+z;OJvcorIge-zmAavmfN~VLsAOX^l zL11P8%-YjEy`HVAGV}Ys_w~h>-3?#{vq0DgohRZ%cb`60S(TNQC+qp1_xDtzvq_Yp zK~p5eT$8ILoMhDRqpK^#?H6#(ZL}OyhCSS5c$qi^aDGM67Rid)0xRbzn;Eb~3+RwR zGAOLN^lP8W$7fIhrb;R=iEdYUQ7z6ED>%ao$hqYoUyDR9mbh zoa^wN(99K+7AsOq5s8RMm?hufGre2nb9&yWSml{6AxJxN5VoxHRF7w=tYLxI}m$9 z4ETAdX0AKJyE2*ZYs%12a);Ok%rhKbsN83_sRnY{kT(rxTQ!*~tICkg4&yH9_4@v7 zU&Y%kN?L$kqv$cKqw_dZQD#T{J8XzuZ|6@D6hW>(QO z|REtv2w1)CE4vOC&^m zE2K?JS?^Y+uTPXReg3l+%MMD$&kHgNWtde17_hv;oDf1+6T3k%^AiueE-Bd>e?T5OauP%vOj?GMT|!tfYC`-P-`&Oe zQ!MY0R+oueb%EFUX`u=#9wW_QjMeLQg?9NW!-6iG$-?~G8xR1$u5i`2o*E3g}Ur_@9bS(zGO{jxzS3iLf=0R{NxlL%B(_cl}!)%Y5es ztJN0c$)jYS34Wjyp_yGo^OBP1*q!&(*D3`{c@44WY4-kv*uDO_l^n^Z525R?QiiX8 z$7`fFlnEdIpX+4IJDr02_tD>ZdWS8!NM@&AYq^Y-4SBr5&)vN79ZS+a@$?*ZAEsHp zhsEA=^&0L?B(X3%_!^qt5BeUqF24qR_51LQez5wZU+sYxrmr)d=}bRBeXk7OUjhD< z@6Sp1XTA^jd8RX+={xBUKfUJ3&;CDbjuWPjk;e~Cr463p^Z;oRnj17P5gjmnnb#I9%nqKVY1XK{#_H99GF+rD=Wy;KE^LrcF#%)$L9Bn6wD}@w_*VpHq`Zf1 zK8!UzF>bJ8m}@ATEi@l7o_-b0J#KLYCtKLPB-cBUD-(}&8~l0v;yUBu0T3$V&SiYF zCN?iJ-03Le0WPfTsJo35%WxphZ{yonFg=e8M!UR;F_p69eM&lyQGfv-pTl*p5W1s^ z?(mO*JW5`{$xDBSt-U{I`|_7r-#$ju0prm&oF3qa6kVX>j6A$T>Q9JWi-Zm1>H;cC zyR0ANn(m14bdNHg!#4w#7BzX9_wY@kj4P^h?h#k;vm;ztllvK#x6oo}YO%5gb|EWf zuYx>F86E=~!fZyj^(+!M=pr&4UP99j!?;5kE@HX|F;}yVCFm*GDdHQ%*VLwn;F=ZU zG9`9c&R}jzH!30n;@6ceT4t3M=yGjG7gw9hXFWMLh-I9=3uS=~mniuvZh4)2=Mp)+ zo8T(vu;f`ym1%>NSd+a9=ml^M;v8jTs8tqk+IT`!%`n26Zs!j8jMGF~T||7Smb5RF zQV-cqv_{I@t8N7lDYAsSiP3je2jqEU)&lZRga*>)^ z_0?qcO=Y8MkqI#&_f1Zyhy?(|RTFrGyske>sq9wYI;>x!)}ciRO~KDV&7rxnn&Ygp zc-1P_pyav>!ff)hOEp^WYoe2Au8$>j)Bj5~(amHkK2x*=G*?!Fj~U;r(9MjTW(Yxqj@83faS z>Xbq?A#Wlj8{!0K4s=;dxH^xO7R?w;UbieGYo%_w6;O!4he<-X^A%Fu!o znzq42Fx|n06T-|<#%)M@*Ww}CA*pCjE}qT}Btt!@zazDhTLV1|zC3*@5@ zQOaXT-a^wcan>T?5u6j$FL36t(j$5d+(gGygr0G;#>cDZ=@XQ6KwceSvcSoLemsYz zi0TQJ?*Jp4!;7_C(Y{J|<+-Wwvnq`Z>F9u*x5?v|u(V|KGopWlbh3kK2NKCm#KoKV z_yVqdj@i~%UXS+z$`D!KdLL>1Dr0``Z54_=^_1f;FFs20R|uay2g??5(-d5|37c2> zgMaYKn@+)fw|erkTZnuR7aqko`}nxTOGGJH=?UW@Uu>@P%fIzi{@}lV{nVnkCz#J4 zqS?Cnmgep~IgI6{Z*Y9|gK+W$A9?!geBsk?Tu^qVGo9&7Z=vs%!TZm@NB484Go9&2 zL7)4z6F&0vzvar&RgfnLvwa-ruyT=&T_UtM5xWZR4&CBqT=&LlM$LiY=wZgy*BSZ7 z5BOR9VD;o@E~4(gqTT)|uH6utkzCHBsUZD8mLuZ)I$?2#?d>D_JD2hPLu~FSPk#2_ z^0{9-;p4yAf_;c){vPIgUn4BO_2N*+ZG6{5Sdse!V28Lk#s`O{J@U9F#0M9gqC$Us zKw3vkzCqIt^y7Kp89w$@K;r=}G`Q~~jT*W;xMr8Q{^1$CAA2gG?t`?;_psRiI$^?8 zILRz7Jwx8yU^u!=DLWM30Ulw*%2&{`L)qM6JpPxIHdD$IY)&7h>GsI3ojw#El7_D# zdL191L&H91{~1;sqQdKVC2t{9hY=9ls)?GDcOi5zji*X377ODZW799^z-ABg;OLqzFOVC^=bTzf@Tw=EW0%hzd;}X>+ z$2WhHuzroEyNkpd=-5*>duZ80hdbDKm12L66(Q{W9NpGU#?^+TS1A1!&HOHYd5Ua~ zD0xxK$ZQ*RbG+{f-EEwUyFvPbrUo57 z5(Ql4x(W_Qd5}_N;yh-Meu)kp$XMB=am3sb9d?L|TiD`x@~TDcALY{(Q(6*mVz;+j%Z!6l$$ zCgp|_jo4L#R*T@GVKgBt!1;d)w^sYCnk=PoMs|8nH>R2!p zKOoK_p^p7)ss^N(;bS#?QvZNcTd^S3gcPT^F4N31IH9Z?u!t5T4}wt*-8>rFJ4&eg zDG#+|EsucKhi8+SEYrihpW01KpxXNHIIl@RMX>^y;+upEkkg(9x*x6s&qrf}K_B^j)1#MiRJHwE7rmW*OXUU~9ZA{0-vl7HM-H)ooxG(+g-(oDaBmt0I=dO~h}IP;f*HkHrd6 zc8yTd3`>D=y^Y9#lW#4;{AM+a!-|9$cF1`kraOSI=QAz!jlnqa=F|OS*K~%+y>#3 zNr^NBz|icmB&bu`m}s{Tv5-mqHdexvq&MO$p(s)cNjpsIb19oG#??L`#5NJPj?grt ztODvhaaI$tmIK4dE|#?J+j2-+T_JA0%6NJKOWW9dj`$WIPmqx7f=y{jn=7@vHXqZr zFEcxMiL!}x+8~Y$>upx6NJ#IY*?$P%?A66QGL{|V7%8XkB5xjLaCht#u)nzT5jWKM~v6sM{0TyrIZFnkM=#AH8fo!EbfADaB>aNJLEFMhKkGxUBdfs zFq?nvb>^-jjECpQCl4{Mu9G*6HlM#&*D$fwhuFJFA%~E{Ir-cO~I9T zlP7=YW!&%n1^?n#-?;qwyU{QH?j^MREc2bmaLtl9yNPeF61tI`J!P{X_ZJA=!;I_m z{NnF?g`a!%OApe#CX~-y#{2WMTmSAIZCm_E=#FXT=eT@w0K7Re?M!Dn)0w`5&KSIB zI@6inSYP;b;tPD0PyOC=tZrU__$6Zbd0Kk{nyZAJ7YJ{V7QH7^&-(Uz$fvi_;TwGZ zH*Wp_AN>zjpZcvOYyKN%+doIU5M&l{(obX09xWHJe1&m+0l#?-xAS$n{cC9PwD}1( zCwG89AuircySPH^?h+T@YPve=*r{tq+TCl6heql5(R4tVonkIR-oer>Ofq>`kT-j1 zzed~(Y@L6WlN;}+=nQ}h7dl4QB60JM(!2L0-3I3mfcabg?DtDsm#^TuEBM*^b&NCT zjb?d=W_br28`3yKa|8q4_)_3-VxCxdrV@#N`Y3*~}$3q?2=$aSPMEY69kMat;iKnJgo; zw-I*)`Zdz#7?-a>e1<>#?@su{@BA#P3D=#{`fo5CdWQZy`SbuE0^)?!M{osR6`-}A3*tZy1l} zIH}2PRfl&vp$!TY2i_qGG&@`oB-E6y$TTvp6)_++++1Jti7HSHMj-?RF=CgiIbPh9 zR2C!}&6eU@#kZA}3QDwusV8Sg868$?dQ{buH`QP*gP>DFSSn5zO6A>_@m{L9CU?u` zL9$jAEE&udKk=(og_0UH2VAU7Qyn6k!*e+LYOMN!GC(O2Ts5`Ltd_d9M&4AsL76-{ zk!o(og`(MENHs%GeZ5^Y!i;LnE0iphA);C6b`95pAQjW_%_(GY6N01SCv2z-5ZYJt zfli6$d%cRLo-$UGUxHMowpulGMW@AsngW*Ah%u0W}U%kT=wA5qm9@|+$P4kvb z1Lg>=fDaS$#45K}z%~(aLe7dDfjWay>ib@6QCtWG*A$$uTxToOc3fo?V@g<_l1>+( zEyHQXcSZ-l8!sTXAk1$gBGt_81uc;{SDLQJhY=l(QUc@2qlnwX@{&?Q zJ-384-FCn?0z@<&P&S8Hyv1zyB}$%=bqD;2ZyjMikWMZzoHR7^7ipKT$6-DAq1U}5U*iUz%F4D>*Pogbc}>{g-FIVuc5Y66VItZi&b8_O8q+?*Cd*~JDAktyR7T6 zg?IR7V#|_|*yBn=$qnQBB4t?NT*1$d37ysRWf;hQ8`APVP*6gq+q*?N-lJq!OGNc9 ztLuN0(qF>QdqQ`JZv*Yt-3eRLQSyw)Z9-fTddT`1n;V|)^0PRMqK^LNN1%9`{YbZX zk#6}lq5?}>wSdzNZfvfFh9M&ZAB=jTl7a)$lU>()fP{F=1=+DufO)D_xpDA z$$xeZ&Hpj&-cQhN-DY;~dGwnmlcR^&Zh%|l^%m~dd+^fm#fKF55&)n2UlxqBU8L*Z zys-B>D0D}R?Kal$ac1zI=}c$(F7>@Ic&~g9?&C~nI@6D;>IK<#;5tu!<{Cr!Pr$v8 ztXEj>zJfHbH@U{s9X7|0qN_XfN6&Ejfxq~HKkgrtKJ{Bm*6n{yH~$FDd`7$f72F#b z-Ks{=GIvAZo{@2}`CT&47X10NpclmF;ha=C=Wb2Pipz3%opB}SbXvDx7FUt~Pp zpu-O1s(vW7{0QSogSk7HtN=V}Y~cOj>Wm?Mk-u5SN5 zkzB;L`!tI;zqprXr1`ev)OK#-PaZ?$A~5Z5F+R^R@WvmW!@1k^hp#XWA0do8_}SY} zK5J^p>qikBp&f{efo5^{TgXO%0&yhFPI0Sk`n*Lt1#uUM%iCCqm<)J#3h_G96!0r7 zpRXlcgJ9(Z7ha*e@Z5d2?|8CL-W(uo<3fjT1Q$JyJA|~wxPAyLN?y$|_abKBKzNZf zzRKtSel3u3^A$QSSl|3x_>dsBP&}rdVO>+3=B^{zp`AyvB7>u_M+iOm5gP{jlURSY zoFLxt@fgZoT>A>f7NwuDy78Y<#w(OnAa*V01LNTbNvlgZp9o<?J#aSY!u44z=ftdaBeE@@~$#dPaScVG3U@St6WfNE7Af%lcyAivxIR( zTwWt@s$q@pL5z&657zQ5-G}lxP9DK@j^;Yjnu?%VYjQK@YL1E#7bERfB4==+V0onE z3RHD&hK>T(pe0~d2+fE&gTdFtt0*E?)3pdGL+NabcqAvnl=KnI5%DawFZP2A!VKCWv**h%HBMw`wvseb4+ zC>n9D!J@AQoyFiSayPCGPW3?j>ez@}SJ2+3>NJJegIq)p9jA#k=~>N{W*K z2^*k8g5q+^XpWK%XCN|AHUZxlp{dN_nv@0CRwRO(__LbpzASkPWlyDRWq_QNa_kAS z2j-@aej1fG1SJ=NOMqLc@~aTCE;)p_U=)WC*JuGjPtKsqRypRYr8< zDmzxJn&3qVVT1Vsy2Q0sUmuy0(5`?NBxFL@LutT|gvE+(=a~M^InugfATr>afb(lC z2g*33BqcOjIoDng83|3A&hb0s)j3>~P!%kNEHD4R%0j@(Oq&xTTu56y_Ax}YP~_|>%s=ZK4& zb&-lK(1`eiAhmqWYBK!(@7(1f!}=14FdofF!#QGH5aJA!_!@ab4?!ST4>$vnaKKDP|e*OJ?o2tS3QNr$rnD4$q+`aX>pK%y& zc}!d$v%Yf~=RVB(uJQ5T{5O35AHK<=$6M%QPX#Q0gm(LV#J%gZJ2!Zj>llQ&)V~;I7(+^GG3xoIdC*U)k=}bSK`rNO-#wVWszv+)Q#QX@S{RbiT__#)V zp_B$2wkTslH!qOa-{6Y-BER!v`b+F%PX&7Sb9A$xCd_8Ed(XU~xeFk1L$~`9{qZF< zKTLm^XwUr>&Eh&~I8W}cfZM|bUq5tyyPP5=QHn>jHeGkSS4ra?biE{xJLGf$xJC$H z$Ip(5yLaw0z%;eMh*0nQW;3v#5~l6zxAit;xxp;q>^rBpzweSQyex?ADP@R^n_YC= zqU3hslqN!RLc6&8x`l|QS+i+62wQJ^bHD%h3ZMM!U!d!clDo&yts6M^_Bd(lyN^-& zEhMgK=eH0`=&+4zUjLy)oY8C@A!4lV959@8SbjI+Pr)`65xh9OTM_3s=x?7R4>O!x z$H`6F^AC#K`nw0{coEz#e!e1huc6xDPM5U=3NWq zGrtAH`_bkK;vXl@Uj}c4w1deOJ}t5AQSB+r@NSKy4JmiHA&~T39XZY;rDU8r!t5B= zT*rr-g!y$Ww+!Q>mAR{@pf3{VMp$&@zC&ymK@*?l?U94qPYG`s$JVhaGJeI+AshTG`t4UHaWh^jeXzmi{S0_H@ z8rNjRb?ERA@H3cRhGvd55f?nTo9Nn8Hs>j0O~b|caUHvkinxT8reYct%FyD%0HNS~ zWLzx>ZN$`LmMTLy4iifmywA00E7eq@nBd!*_RpmnT4`NJ;hpEcS?K+}pr+Oo``Aou zXb8=QlB+42$54a2iE5Swt*J+;W8)O9<#nM)q(LoCtzQKx)jaaC;9}(gm(gJw@KI|y z8=lZX-qd95xE5kZH4Gkt%Y%UU@CwDtR|DuifxeTdoJEHVk=wO#jzHCxrsN5 zBE{pJ(QF&zkwe#&>Fd2BQ3$hK_xoBZhc`?mW&wiK;Y3@x)<8 zYPnXaY-Dq#z79cgO~A}i%4B$|VP=?C6Z<}YckS;RsgKZbGJ<8W&xUo;G>}mV^1~jzo|412hQrYa8ojwnp(EOsyC*PN2$mP1vRNfaY9`* zkXnLgrJ950?!7P-!{J;-S7>qfsUv7jYKNxsdd-B=drU!mJ(oFGQ`6On2ImFmD~>}1 z;xbV-RHnBZX&OVRDPjqMys7w+y0BEa!EkS%3r-9XquD+Mw?{e&b+Ke!Q`MF-;_f1% z;CJy|0KdSARzwVk4Qd7nLUWsvcF?iKRK6pkp}sd9goNff&TrSnfY~*iD{KyxGPdZfL1Y9` zkOtGr-_R71=y9%q6s&|={8nm`-QiI&ylc^14{l3_;qhS`iFXOjRdRZaWHWSVK~}gB z7}vY#cmdNr#2=zIRvxl~uEWGmE||5jnUdeGAYO2;zOQmG;0Ho?40(odg7*!XfcJqg zUx9^M;;D-|L81=TmNaY=+oSrN%`tBF@!nH-gtWPUZ?=(en_@@M3yLS^4%eOF;|+W~ z!o>#*yR*HkY;HY@tyUb3TjcfoaZO>i|Hp4=?taVf`DUbBT%{cUJj7i>C$#&|0Uf&8 zLOi(k5YYk60=k8Go6fWQ_|W2=;hR(3e1nui8RlpnF{urk?e2B7%t-6)+SM@Lp_!jR z99W!xmZBddjVpBXBLC_)4*8{j@)6?Bdug_-$@yk--k6<#88btq<@EMdg8LGs3CLz( z^%Ey=+rWD2DaW60eu~+_6Er(l-_YFscFp&%(ThNSf=#&#{PEk`)*If}mB(@2BZPVX z#-{cgNc_lb_jwrK#pduQz^)TMYvf>$C=Lb z@2?*vM1!a12F?!hGd<9!e$P|x9+2GyjCn14(Gk}i(dO&?{-=+A*bnhPIQ`+LZ}A&X z|6g1^eS-evQDU=?i|sT*wt?{~W4=k&uko)x{l>*>KQ5YId7NhJ-H2P@+cjan=FOJ< z4Wrw>&T#YyrCcPP-Xv@t5l#+B?h-znL(>kc8;{q~)n)|0qMIKfu^{0DtS5~#LRT-~ zVzYr}L#wyh94VHcXMX<6uiN&p-huI$oNK|wAN^|2lmGaLkOO6i`1YL@I;71uT29FP z@ZN(`8j26BkFJo{SLz2@KgUU|cudWV>oxiG7~fo{J@?ADjLkVo;98z~%6-R1|!$ZXG3VHQ7?Jy^9SMF<=zYHr8cUB7=NV*;Z!!`p4;Jw>?Gf6vn0d79k~RS+BdHe%OUO%HyCyD9aP2X=cHov3 zN#Y#f2@6BA)|74r>kZ%5F>t(+i;{WXLmQvGtKDjj&uVnm z5HwpgN(~@a18@eCBP9oH4Zf*qJ({MPebXqts)yn*5lU$(8 zd5zzcn7wB_I;ttmc#nx&5f45nE>_I1YBiO86wE2)IjSHSDt%3T`aql+{pbi@@XHa0 zrwrYFW-&~>*?TEyYFZb2@O>ZazEKqrK}V~L2nHsGCXZ&TWoF*vI$^+1oM4a{*eHnA z)Fh#9D{IA4xXy4|4Se4M)RMeBv2IJQDOmAPlB+4_6~uX}JXGfha{*_R0;UGZ*MxMe zU(*X+&2$4VicBXa7o;Ym%_{mJO_+>Q5f7HZMXLpB&dB4veW26j{ba-!smFoV$6H^> zdjQZtFTcmZRN^Mn^U3x3xKJ?@E*N2!@xd`#EfRFm;c`t0SMD&CtC}OFulMKLG%XU< zlyB%1Egli8rC!A$Xick+bIca_(81iJS?gDtVeNp(4tWSTX^?mqA2Ucm=m^aXVs}Cr zm-L4PXS)+(V@8+{7&A0oz~mfW?vVR;n9D9`E5bst< z>=9`x`8>nPNSq(x+=%mIEq>H6nZk;dIi;WBeL%ty&Sz}+5Xokk%pp0-##1_16S>&^ z6%tGJydhlz8U)D0RHo=ahfv=GUJ*%^U#*5~GA=H$bQw3hf#lniahEbUoSb6u4n+%= z2k@r|x9}3la zP+T?H%%gc9%;9{8jTgx_ucd%Fg6<%(!Nq{&1+l$Bv-4Hd1S>72KcS?E3mJ7%7iXyF zNdO-*A&jicPm+!W@j}p-8BQK!IDQzJozQf5XqIn$os`%6i0=sP4zYa+A4byVpr*Pf zBU#)A?{AU^7*`i@vP8NTEMRK*Msa>V9qYHSaYHEu%0-6L$ZY3DeCQeOK14n$kAq#r{2U)6z7)i-dGhJon0tYbTz&Cv zU)!GPd!t|Z-FGAWG~MnKgax$SP2A#Dyib(mDQQkvpCh*qk=Ez~%WR z_fkJf2Ja5=d%(x3V=!m>4_%*l`ccx!2ax3@V%V)0+|ENzlzd7W?(m7vyo9(f^SNI; zdFwko)Avlj^XUY91?;Q*%Ky3pr!z_nSQ%+gj`=_T$G5&X`RlHyo^t%Z?r~iEFpj%8 z*Sx8@dryWD<~PuC2^}uM{1zo0Ao{b293bx9pu1o~88W78PEU>rvum{7A^qlvyxPBS z@ZOWEN3Vs4zRMQY*G@~3D&*FN1wm;rWZXqKwLjeVGrN!5!)4Ec7(*SCW6LTxwq+E=(x-2 zwH>xDJoA8uS0XNtZ?FyF{)#C0w!08@l{d+&HD`HBHpiXp|7basH{fqa53UzPadAb zmnJy(rN68-TmVuEWk&CU(V zxP`cpI6J1KM3PICe1pY>XIWkSFYwJp@Xs+j_h$^pKac6(gf0+gw{Y=Jb-W@pK7r2b zze^^}gu)i|FVXD$8`|CH>rPb1xZWkLchNkjjPFI7Ileu?qoz=&;-&&T8qHk64xpK6nL)a=Hi99&)DU5^7&lCO z;rf5Bfo4KSq;>tX^fgIq1;l5-@S&Qz;_UwOK?P|9mnICxy`=PHwmPQ|o~zb^GS}3a zSlaUd03ZNKL_t*7KljspOoe?RRy2Z9dDo?AMKm~SYC6|cZW$e_mCdU*@pkL!wi@R5 zpV(xg`?`v*7h#Npb?bN1d4Clqy4Nt}S|>OR&5B4rx;H%iI~wVX_Q#m7vu6+m{Ug_d<4 z)ujQqh2@{1ltaY5M$^57+MMy^6520NZ4ojAaMq#LpuK~!qa;DXyMPlQK@o5n=j#fH z8RTIP9hR6o#Q9qYkD=_~+K$=WDtCSK$Z4e8Er?Y*tpMf<$Uq(q@0HwFhIW0utn$Z2 zF-z!}>%xy8XqGF=u!WA>m?^kKSq+rU3YtUGdRA>wH$z;Da~;SrmNsbFLB}}~X0$sa zZdM4v>N$jn4~}Gts1Q3Pj}FO>+&kK>W6ID@2a>0xx{t**b+IB%=Q(^e+4Gz{G&tw$ z0)jt8{8-drS%Z{0#b%UY31thT&@NVlZUt=B zX@Rt6?2j0aZ_(_%@VZp*xW0mm(}KN^Xz8#t$N7ka;eO`HWF+?)kxYmiBq}8>(Uehj zI2#c^;KC8b8e-F9WhAZ6G2G3}4xT6M+(8cy*ql7V*7Bf;|yFk19 z_JbMsiqtGEF!wPuU!g2tVf$-|C!fBHag97Y&*%T)npkc+1Y30ACP|O zw;w|M&l0xYUoj)w-}*Y%K7b>de~NOh1nLQ8IXsfd3Ns zpMa-+xDVw_KU6*Sl;evJ|0J>f0Dk@$q1zDVcW9bd!6~Ig@@AW~d4kekW^;UjUwHb@ zf9%tuKavvTUvLO~?^^wc`Kj(6*otZ(#|CUiW`Mwm8d4DuJsX0gFp>iW zdGlKcByRzNK!6006lE)UivlR1IwuHXDRy8$vMgIxv8f_iWEHFG_NU!@HFM4}@-WxE zx2jmhYQzfU=nkO3i^JWlJ@;H|&-KrLeE-u({5XDfMAN*pwyxp!W2E7TGQPn7@#*b5 z{@kyvAOH0yi27mN`e8yigs?y)fF?@r(R7 zhm#%S*@M6a(>NmudO|m0BA7O$vrF}6)b})d-^966g}GVd_OYjg9xWFbk3U4Sm(ZNB z)Ui8y3JHc&MRTG|4bBgDnTFyDzT2YtkdpUdH(+cLCzvf>^WEs(0KER}F?_qjHCJ)& zoZ+McOYCkxh7Wthb|fqYP>=X3xDq-jn>jSiC=zjANaF=4dw^9YZ>%9*dE8*y;eAFW zgVYvvCpC1-c~{+pQOLJ5`xrtw%5ciI7uAt)qWeU|jV-vnvVZO%) zM~Gu}8q=b=VLF+Jo1XUIHog(k_A+LP=I|!sHl*`Sb+8R>6{)PCZLZ?Pq~HqX8%pkK zyL_HobK62m9i*00LKQ&GVX2~AY;JwWforO`c1JZZQJg|X(BjZ6XpV@q_^61V5M~uq z5-zwJvLpp@nS8#Wh^Gu0@4y%-lSA-?je!*M&Xa~nvnpg2L~0Aambu;ED|eK_&{h#w zGmKNkF8FRnAha_^U>2sCF#_Hjd4#kR@>CsmWe#C;!HA1l*pxCmNDG=8Oq<%SA0~2+ z)vYU@+;_9!tjK8C%!k#?%)PCz=YU)UCzVO6YBiMX4pV~4pCuaAAL(WesH>q~Qjrgu zYB#-`MQ*2%GuQ}WLB%XMHwUYMcQ%iq+;z`}wh%gHIB`rxkX%JD7fW?<&tm31=B;8P zI1fediMn^(yW+IEB-Pc=ZLS93NezGVO~JB}cOFefVRl=qqG=Z5Jrs4=L}f-hhniH@ zaR5K3wD|~W-Vd(hG6$^L>}-y}{F5dEd2-dIJ&$<>2G?^~lgGs2mm_70XwoV~<~#G& zaIU(0WfuGME>g0`#Zb-0k@{M*Tl`MPhwMD6kYEWXk0Lzqqh1we97L*=y z5f=l#y^W#Dz`WAW=v5)jgYc zVA|kfL>zbqupWuKx|ucZAwJZ3tsjN9BXlDno*+T+P0Q};Me@)x9(%$vR|mfXO2ksZ zWTXtCZkE=WgO-A6L4q-zwpeb!jf5sKo$SqlkOJi)a#l(|k%pV(a!O2xNQfXypaZvu zXoL8d(R3AbpSW1kY>v^=P)bCKuWKt)90g5|bPi#$!(5MMNW&7WVhK!_m|j4{BR94#N>wXJ`qOai8)0LKSm&2Tc7X(zqbDJq|+_ zXZYlgEfh~J}Izq9v#ZMpRc?)YKM4&UW7YlUus`4$Q94Qt@r9%PRk<~5GKLLRTv-+q|& z124Se*U9HA^02^$>%@aMXBPj=|I#p=|6Q8B58+n_EH*E`sXKg{mQ3wq`11>ly9Gb< z*?)1rpj%_ zE$|BP9{~R$@L}MsSdRht8}q;aYwioYf4%EpJ@#>$_=7ZikI-EFM&(7lrUDaTv8CZE z>`iy(ldkLR=w>6F6I9-q$qv@XnT}zTGjMJ%N;m z@!cA?_;b8J!|Y=q4&R*Po1Vxinj_=!gD`cd-9*M~q|-+M?uxu++N0=>@R~)17GXSo zm~^(!bn+MM`ET&kzj={qtLT$Ee&@$`eCpSqC7rMFH=cpZ&wp2uSBo&7KFriF$tVAo zZu{kTKX4}eVmQ9QPk;W;`R!kL{d?^{ z^bx}10EvmPIDfsk`-T!JEH1plaP$z`KTLmXhhJhvi_3q8>2plG z?{3(7J+#2 zt4ueaBJUm`L?bM}j%Z7nHfX+t^EyLMJ(@dAyUHL{uyGpZu6&I_UTQ!o#%h(j~ z%@%AQ*Hw`}EKX^bw<(jya*LLhoC4`gvE@0w?a|be$Cl}QgXR_D8^n7;oRH`c4L~I0 z!CS>kgzCn0GLU`3c?g{&G{$tEYTNbXNIOAAC|U5H`d0ifD9^1 z3{|loga+pvA|t9s+E#9aXjPSM5(-isxidbYvL`EcK8!>hMl5 zkt$wD#Tk^b;umBVa_%}-``OhT=fF6v3|*0X!s{K;Ueth$xI${@=4xP^nccLHIT0x@y#?3lt-rq(+RWNxKP<2RUkg2SzoP~7;VsLMcgy`lM7ht$de;9 z^KOuO)Rr^f8iaZRRfoRen}kp(*;n^+Zb;fx9E&r|DH6B%aUbi-%uSxaJx}x}6#o#O zM^Kj_6;umqEq<{jbjRS1@Ij$e+>vShzJ0q#9`-3kVa&w!wr(8e7FDfWmf$cpI6tDP zt*8$sd@STVCrnDl`yI|_v=~OlN>dSV@%8IB!D#ocF&sZm&Q~B0gry?Q5u`*66&sXy z8}hKgbs2M4z!s#TBepNoEKeEEE@Im!7*4^vX9?>q4neIY2z3KZJZABA?~i(NUNN0M zg7XLXFraw}(pDC*_<8dPN%PJ5TIxkf#NySDarXVL@m+((nip{|0{hLwxeHf6Q6)Px-^2eZ5Qe zGoNw%sV(2}d%v-KNZ=yMdkiMqd1T|TH{)czgL1A0V#?eG@ep6<`q>94%?~l1U!Ymv zew$Z-lmoldr)2P((FIV>dKeCBN*wmGTp%uaKv=JkN9VpPCWnVXD9x*Pk$YNzyIH_ zK)#Q-Xz|OhlG2k%Y4QHMx5KrESJCt&xqk#Z87SL7LCZDvp8q>^n-39|m+`At=r-S~ z?9@A--vZ;wC8YfbX}jUi+yRTYAnrXy=$?gq9pvML*5UkE*@SL@ct-GNNPihkAHg@J zw%4aXK7%nlMtATc7KiG2V}n!n+5tG-Bz6 z>J+yvW~b!TB35mQrt`wqDPqS+dqng*Qog`6Tw(DVfp^;Oqk2eig;HAb_#h?S#_=Jv zd_Q5akH{X_0*OaRs7dBh6tBj#U4b@a^SEe)ZXm9dwCig6d^_O6Ic5Q`wa;JE2Gfj- zzV@`sfU4FxUOXxS-tcjtJE$C6D;^(fSeKc@@|rXpFr8L}hKnO{xka>P+_vQYfOdVO z-Y|M2v?DGHWmr&l0%@f5LfRcvc5ZZpD7YqrpHr-YRHwH#=oBzl8Kce#;tDo3q^ZR< zJ-&gk8bKUZBGcB_a4V`%Hk%x=nPaLtyChMp2qn$08xz^%cu7omaPJTvUeY z9X_v*Ga@3-!c&+9Kb0y<&iDW;Ah8OuP=n?)hZ!3I(Ph*ZjH!nI6$b@Uo;x9efmQ`o zoZY?M(!m%eA*__9n~zrnmmKO13sxQ1iK+$0szO@{5CtMN+o^zs8mz}14(*H`5O)W! zPz7Go`W<3bmla=yN6i%uYA|uXk$!Q6Bg-(7J&^@MAkQQ&)D5M>P zC3nZ{Ubva7$KVBtHjfFUZ535rr1D)O1Q#izBM(C8YPeY$T@_gsoD{@a-4IBQqW4_U zZtk$ZJJ_>6TV}@c+zfGd6JXi~yw8|eea!&)f+bI$B4RTaUCS&0yNVYmf!sS%?<_a9*MU&u|2u(tDLUX|I zXueg$Q^SJT1*AzhNu=E#8hg^vfws6HtPW3^hJ==mv}^B){0PnmOiKM7(1~d(#Hh$} zN3+^d5X$)yvnAd;B&53ek`riUuDG@kS1)2|q@)wFUZY!njXZsnrd`rrd5Qk$agfK* zESU9Z3WVh`_}%OJqKu5VNSOqciRo;G_e#+frPK*x8AK;?A2H2{AMhblrigPbrb|Rx zBpidA@LsX<5Th$py?)rZt-P(XvLu zA5r6Zt z(y+bxK|=F5VYQ=K-$MI~=%zrx;dk)Qm{f6DLvgL_D@ z&-^#Wr+!0cOvt-0oo9*H_r@>{ZX{{K(Y&YUm)uZyv+8{L+@}*i{;Pk6oveTllS}xn z!EJflF`j%M<@_djc#hxwxo^SGe&^#p^@WG<%~Le1eO4F0{FdVGopRn-U3v-f(^!6z z>A{zQFTJPFc)#AJOyD0sLToP6?)}BPdTO&iVLE*TA0OZ+e(iwY`=z7z=^*ddU!!_I z1>XORD(-H9XQ^D>zXSYBz7tgWG|&UT27LB?Jf{2gSGr8l&whk<{|Va73*S}TeQhlc zZlJ@4JUzzp;irJ--rwWAU-t_t-%tz1JaPXf)6o&r_6lKr_O>iuE1oi3z=bs~UPH?f zaql)h4$xo6%7*dm0pjY~-K1=DMtkromYziHjAr>YhVvaMUtv6d2FoKZtjXg?YZCQz z&e$t1wZu(>Yo0;EP#4~KG%e8dLDG1YX?Tg8zRYxThNVZC&OU|@8QfIG59=stq>NXY zb}!-FpYmHj|L&PypZx44LibVP=5ZE>Um>i%JMXMnpWt{N)n`a$;KzRD27mC&r-c1S zh?^^f)m5ZXbXt(k9!A#R#)Y?LxC=&HACtDvFrNMi=AMJ_5xRqq64pzW7oUAy2-}@< zl35&FrCZ)+cjFm$_6R;VG~E$K0C$;Y^DUaax9A|~GcKGWF48O^jVEZ?XFNMVoZ=VP z-;~uR2&vyE4Nrpg#Jw-GI;b~B4x_#FHKywgB|nT!dxSMKGZR@waDK$-AZ1Jfd02r< z_{A|U^wqtWHmKbq`0Z=n*HGK5EsyR5Oz>?-nbwFaxMsf!VAf-HN@%a){fKEKr|Xcf zKz^tSj;X!5+0;t*C#|0u*A6= z)q(1%;>zw2b1gnh_@#7F;Y7iE z#6?2miTmf|ZKO;Aom!CETCBwoZ}=_~{8*h^CW!OIE>_p_u%e8HxI$b=bws8rsx@7` zcIYIS2bJnF64BW`>1Riyphj)2h8o<{3F0d&*15il2UZ!rcVdPp6+Ym*g65`T5j?o) zh@CL)s-sEO&|b)670P{Aa1DS}@vwl2k+w6kAVIS-;!gD1usKl6H$9;l!7G}pE0(gLxCtGla;pbVSm-P`Lud^Pvk=}p$|U4- zp=@h#ou!I75D(6*a#PLYTB~Au301&$z|0QTJPWsTpq%p+^H9ZLch_xNL(Hn9xrVvT zj$fJa57^944iuD>kw0A=))Kx-g(@U^!M9p57)=$r{fxaZHS$&{ z7@B6TErJChv_1X#0pcNUc3^Ji{wiXTGAt0AC^QHQN`~!?w*LQqq&>Wir6s0ay@t9{ zu{}QH7Y>s{bX;M&k8g~)ei0oGuzX0;h)of(Lg)&`DJ47d4<3Go#3 ziM-uMtX@Nn%ZPQ9evLJ+;+xYN;+YP?A0WI`gDUd@J}ijKYmj`s)}yEfyeP4~#WY+( z+#z|`;=5Zkd$%dmigbRN>G&e;>Zl5{C8KGDi?^t5{2e7NKv&?}dhYoV-;H$)a;%7; zQn4>yJk~GKRlN`i36XpEPd-i+SyCE87(g77@7@2GvOv=fEcJD+tFOQF2-CPmN_7>R zPlUK-d-HKZc#yapXf`)1H#$88VUG~6(`;V2d;I{2t81j?Rpi<;;Qk&t4gAEf{Y!rD zm%cGCI1K&u?YyxP-gFK2-AaZQDI+HDE&JnRub%O*A37zko&j~QJN9={Y1*LE8M3@5 z%>Dj9yvip(`^SvO1=Xj~?Iqgfb;9x#YZ4`UWLhw7FOd2}%JwD3^XEAK(7(Rd((%U6 zsZSG^kI<}NdRuY#wbfmEkvx5jar-o%_{?+nO;GPc{l}l%&@2w2?ca4^H9+W&2;GJ} zTmtS3y!Y!bUGJyB`wPH-1^miu{`NWGzXe`;!($!rtH5tiLj&&DU&s3CU%i0azd~pW z&F0;)g4%PoY@dM5&&GI(G*&!t_Snq$G(_8zL-M=OEH<0FA zh#Ja(FPHG$A?;yD+?>$vJ^vkx!l_>pP97nIOAP1F;oP6GJN*VeKZG>;&HmoOK&Ug-l?$O(&Vd@=~1G75cpR_F4cC$3 z;EoRJ{Bn2Ls_pD%t1JQu6Tb2IcupQSP&(o!W2I2WYV*{o3cq0q~k#|Pg zNezgKetwU6P79a_xfetQ35si~Yt#9J3p>`u|d0R0P&7%Gt=Et~-eW<`w z$myP&*Ewb~A)FJUR7xxsq@KZ~~B@OxSX%~ZL< zZC5c0rt>_pc|63(JE`G!W_0TwaauPCsOqoyOz@68&Eof1=L1pe#$&1TUt)EVJF1|2 zH#~0sOm22myFd*}V-B>NS;)SbMSf9S$f$Zy!#4(5$m+o=v$u>|g~Azj>|3KEf?`EU=ao+_CQREFX}~#0Y`5geqd8L)rrlw6zQzG@T@A|esXA+u zA>NZt4slJ7NKYPDh#OIB@NL33t_qcDAMp6*Rm3HHcSIh9GF-xv5te{2cqf!8l8202 z^;lM>onWPa8qT@;J% zhhb%baD-um=7=<2gy|xXC}|0{M)RW#H}*;A--O&!yi(F0BDd;qcRH*LeYe54*C=B{ zW>KB_Slyu0P?1Y+z_$a1ma>f%b!8_w{~EDV>hB=gV>9Q(<~5~F4P|Q4^V&6K`69WeH0HSP|{`2=`(&%0Bf`Hb=tpT9~@#|$Tz=?<^G z7!!(*i30`B*gyxLc9j59tHI4VWC_ z{O|Mg-dmf+{rdO2%Hk3(9uO99 z&ntRkg>Jw%N^CCh$s+2X<$AtNDU_89%?N16P$ zNyDF0hOct=>Yu^i1O5m$k3Eg+F3}vUSzP?`TP6cHiyh74dHUlAaqc7Zw=!w*hy32p z{{=tx`z`6Ej>BBIabvi*>;LKZHeR3n>=G9rB(yDY_3qB`)xkCL=?^jKBYfhY{TuT0 zOIp{_EqWAVdGK}m(~OQ2)A?oGa1rr4T$rjGRUI6q;bBb{%^z31%Oj}jN(!b(dX9>a%QgmuDqCon0cEHHD#@G7o5Mt2u* zvQJTC+I4gX$AoU6Ojj_Cl<5jmwv=fPwTPc@{3SF<5nLRx5@+G7+9qq8eN~V|KwKsL zX%2TcJ!YRgW*I3NlMHf3$rmacRU-!Y_N=zhYe#4kt`mfTX}h9q8%nOCnfN6x2o@Sl zA{4=jR-sZ2@Thk<5nQNP2p6iDS(3xIvy)l{D-C(8xXx3P;9U*OGAa|;0>wNfDeWrb zVvCK{`Pp^`osovxI$yg;@3it)u}r5bI(iSGb+fQqMKzhnOsQ@EmK3w5x=G#4DD@MT z>YNi1QXlZi@Jk_fwS~R}AtXb!U}Q=XbO?1k=6-ya1*Oh2=M8NX@pjMgI*WfoJzl}8 z2rdralsSB^evi&ObX1(r#LZa^Ra1|qC1tAOl@>?I3-T0*tFM@DqLsV%N11?sIOIbB3J(G+{A8pRJ-azcMjDSO_4I?>KL_%i-pkkGlC>n ze1cUG+_GS{2dNsS#T81w0mAJ1YJdQ?0-Y*?WZJ9l`Rvhris=$f4dC#;pry{$+-FK! zpm{=>o%Yru6w+?NbhJ+?OS~1PquF)bq&hJz;2Xm=8M7J=7ngU$`IfSC6dKTdBu=#J z!g$^x_!_vU{xzL5b#A%1#Vu|ld4Z2-SYDtdQrr&XGG%*}X7e@D={}`=6yIDVb`zNi zvLT@ZSt4OT(}tWB;^soxq@s#%9B_vOj@gk$!RCco6z_n-i&{4(% zR407X&u-%-+I!4Khy{^T($La%=Y%Gcr;F%RFg5T?q&bI4&}oBl2@8poBk6pDm2-R; zYnP1px-suZ9EChRN*OQWnt*o;LVHLa_rX7igcj0<_;m9*OJvG zZv`|*v=l^o!s;evxn4*zD3sh`IuhN0CC~ZwA0VA~SoaiOM*8#b zr|=~0<_PhE56Abo^La(iS8)Ci{5hq+gbjxv7a(MCr?}?yE!RPDeN65j#k&Ewd5WBF zf&EcE@AAv!;TpsCY1)HZ@0i7F>KS(rP=+rf;pMk~!duj+UnBNUlC~cqu8-feqw0;N zMVOACpbXat@-;s9>F;!I{?^am2L3sp`ur8j@BoE*ZlGeWz9e#3o%_j_NXI)X?I6nzinLghFYbKm15yI+4z>-`Q{d*cQ2 zOTd2w>;rGyfqI!5wDyz07vJaOx?g`KYg*#h9X`Idq)%}@>N`TW0PYLC_v`(w&wV=a zsb7DQG(Adx{1D5_-)433D~!j=w0)Q|et@t%CUo}}+qpC_tQgLo0qN1^OLUvBzK-__ zAaS7EJWJXhQPM+b*+bkKvshaWbEND>vi>PDewE+(FTQnm=l}2jPb=K?5t{ucSYP}K z@)qLmYin_E70r>xp2Ci<1AoFF{P@UsUc>(~b&0Up5Ee%`|Lzt+is8BwLbuQ6YZt3< z=eTW#bQhtcT)`WrV{96n!>27r|X-WQBQ?yn%Nqv^i8V_U+6_!F$Gfi)trB0k(6ltg>+ z-=X8Wici*{Ig*Zl0NjJb?h3e(cK;gP-m8_%ERg#p)9xZVevBz8(QdN5_~+#DQ7m5u z>dk+>*-kjWqfCp6Q5X+EdPGj~&F*gdrdNkfm(lVd;%?!X&=PU6$N7pIFb9_RF*YD; ze4Oz9CTVC9RctJ1wpo~oh+IVT0h$|}Phf}W_zFyqqC8rKw>TleW9c#$);KYAY|wE- z+9u-q9N%3xJ!UOBtw>|Qa^=jD ztN0lgvr~0;Nt)JRG#9EH(X={nwRm#h;zA96v!pd8-Xh|x@?d+%c+%pXp}wZD=WKV; z2`05I-b#Hh7nvQ4h801&+A?n$vKb~7fU3H{kuh8~&n2NakL4O>1}!;NvB3zG)ZjuO zw6j7-bwyTjF5eXyU93D-iFUX3-_7^PX%I^CgsxQKFV_Gs3Do(aRS-n#Sk*8nt;hoP z7-){p$bkgV?n55%^V(<$61_is-Uj9ihU&u0_0J!=`Jm!QWy$I(favJF%-<# zu)r~3C0FrXp`_aOU$mKBu|gG`wS+3by8@PRX1J!HxnRAgI6)_>Bin-nnUNiJvm>^3 z)XSW2rdk8{#52!XphTu5h-t+#Op!b~(2V%0iqKxseu)c8SR|Y)l=Dcz-D3cUDjr)A zP=~2fwh==sKBGzK6ba&Si-A10Snkl|XFfDY>u}CcI=mAk>@e}Tn6Q3TkrIoMbat_J z|BQ+z4{nL+79>!nRo$TS1$3|e)=y1E0NA|gP!x6bnqax1^bsB79QL%vhlVsMHm*qL zRg|tM8HY#!0;Wnn7gQa7VYnutc@_~RAQ-L%ErB!|p{eK<7XxOQu&mr-zbH7#);9^Qx)GSjJx&BSGi5QER=kP z>W<;;kj3T}KJF;fVHL1rJ@>S9b)&X9#50k1OH}9GG1p+znp7@S?tM5z`wOUE!1)R1 zMhF34Rv?kEbi^R+PA?)w(Efx`e+1teesLXPf#nS%sq)fugQ=@?E*n}57tRPVfeqwo zgG~*7{rdYKEfv`j$PE1jM-$GG{z ztjS?^5oz|w!}p=uR`$9(#`&YW+~PMY7gD`ehk_GNSUk#)|C0y!eXjC5pT5Z_KmRSt zaGC9mCsc$s;;TrJHoxyJ`J!|m?5ohnd{U5-&gxVUlw+g$zUw@ej zWxzDmu*UaLxwMFlxcD9&!1wEZy}sU0f%iG!BH!6E@sEK28Tcu9-45Mq{@-8bzQFs} zvr2HNbMJWv%z`4~VCUcd!T0NaeGkgYR~gS9#fOhGbX&T;BfNi>?a>)|e1MYon9i@< zYjLwgNuIJh$8|SZT>0mC_vQ;?7c%Ysiq|c%_GF_`a2SL@6_tT%arls#P9^4`odTE;?I3=aXCdgkQRHJAhfrt;743&8KuL^ z2%0E4)&%7{kLivH-7%Irrf~yAP$9Sp*PP><9f%`c`%xqcVSSOXI-xsw@jKcI%d{Ym z7m;zpaMZHc{}R${F%5X{P`^c3SI62rV7A5O4W{h^%7&Wq?Qq^vrUr-M+B0a+F!h{% z`)}jiGf49w&VK{%OJ!Kz`OP%&T~8NokWQgYPhn}zaK5G8e53N<^nhvmD0#eq*P6U; zDO4BNFyOkWy1aCW;qb2Vc+C!~*y&yZag=mO>`t-CAvV?TkPWcLg>#rUFJ$U!YiF2n zE)cs3+50x)s}P=P>kXbH^7JHmTH!lS=+1G$5xP@9mQbr=88RTT!8eXFZYa|Nv>~o?b=?(@rplo#I8cwOR3~B-+*##$`a7ryUjQax&~FNNEV_&tRgqmvB|wBG>Y>^Nv>`(cte6=CTObM0@o%&D`wMO)tQ{?+Q>H^!Gp;hV5jqI zN_E*=0QFcB(zz#e)un00V+LUbh%%mm?i?jmWJ2XXKvApWo~s)IP9XPl2ws@QbQ8q2 zptBP`MMMMm5lRav&KYHr+0{LQ3^i;{t#%H?1rTr^G)dLj)GCT17%mDvRzZ9^lY1^- zU-`&Zgpwgo)vfBpp?J(ZAr#C>ZDU8lCd3Iwgp!%gt9v;FtJeotUAkK8duyzdZ|Vh| z9N7QM-n+)!a$fg+zx7;ZX7BfUZah4^NTem|V#Cg*iG!v=kPksySr(fZkkJA~62p#_ zG=+f#Xg{;x3x5dE*plPANl_q(fW#K12n~u<=>>_SsJ3;ZMBPY=*Tche-pjts%=0{J z^~2gEMT_FiqNF5e0R#`ud-l6$&pb1G=D+^y_n!%!(#DLoM4NVQ-RRhmv}mM#MG(-2 z+JF%}P){n znKCahN&a0jI8p_KHYZ1+lpgKeWg9vrFK5gmfkrc-Z5-jFGiXYLY!E7D<^g-7uiKCk zd2dA;6l(+XI)P?yUPMnjjGe-yXe_=Cr8r|)+|i9e-n&IPzXMcIy+S=%5{E-l`T|z& z_ePRbDqAGJ0QE9W_X)A{@2Yl8YZoc25#n=byYAodc7oP|YNb!l5cVTF9RMBU`hX}0 z5cZKcq2m&rdtZiX2wVE&7pUt4;&4W2l{yBdlS_1aD}pR(mJvCpZI7MX9hXS$na`8+ zpn)_9qCJ{tv}WeB`!F@~LVOw{3X*)?$Sy1`ghOf+a<`(j2wb6#GbWJYvk;13W7$K? z5^FsnM2xL7Tq%UqsO1o3CZ-#xR_4uBy5)07oUj(CbBD?*xCEZi|Zh_K(Ep^_Yf9)v`r6-Ckb&vEkK&+x-+KreTW_q>{*PPgx6_wgS*-# zMDpSmb-DKiFqG+xK4NJ`YUijqt}7 zfrj$-Zs&ifwY+@B_Uw$l{usgAF>mViwmqWE&lBg{{N3C2eW|xo;QeQKVA?+b9s@qV z`}=O|M!)YP&94{S8&e^s8!)`w zEUW7S#`YYa`K3R+)&&c9l7|a)m)=~GD?#ap8|d;Pb#;~RHxE5UK@bL=$;4bP+ijIJ!*-lZb-5R))DggOXBW}q5^W@;bp^!mKAY0CG~4`x=898AwNz` zHwf_oO4vi>ln^$+fpZ55h-G4b?xGm(;vJtChKnnZ?C1#TY4Z{Zfsi1E-I#l?E+9(7 z!sOz4KRVh(JeiyjkZ8{2-3h!p^$3%TyK{yXv5+x~L{U#JCqd2VtklwoArlVP%ykdd zy`5XtL#5E@Xam&o79s7d&n_xh2tH;W1rZ@cCH4)g0wx~Fl-#jt($JboOQo)jRx1({ z*o>+RS3yR|mE3yfRX{7m6j3755;42WGQ>#TM&|%`E-X72pb@eQZ8X~jV+CT#SP-Ny zh(2-bO!k%1w&LP$XM`xbk$TW6paywi zyO2M}6zF7*y>LhbDY~;zgq+0H;bkWA-<0x>AD zQ^y_ian+ zA?;OSr%bn?je(YUX}yNz!BlC_1ODn5Xf>b+Z6nYdd9S!jdJ5<~xbRJIKC^(eOxf&? zjZ`F^(k;KmyuL;quaXuM5*EaT(JlN~>*T?IwiB-F)`e}|v6oRu3v<`EKrKQY-O(D7 zA-N$fpfn^+E>HlUKw!VO0*q+g(zXLIQ??O_9cdvR5Vu1@m~%)_aSpVJkp@LYX{yw1 z!dfH}d|!12&5)#yHwe39WOc_2PFU)pX2-*rfA=Yo*iVF#m{0eCh=d-ql6DOe$2*7=Uwi6K z^bizn(WikV&`L%6LJSdYJ*FEZY_N6!vRk(mBu+?}$p>r7W}i0g(W;{gtObk%cSVPa zWF@2}b@L8bzCh|vk#0q)2Vj>WZa`PW;Ty#KduTnx=Bu=N455Q|fZ7)7H;6=PyN2rN z?!A^+YQ%I-ckm2td&IoGg4(|Gz@_YPDv`WA^X6T5jx?Y42r`o{J`X32vaPh$5n@ZQ zVaG=992;W7tiAvHenUPyCFbI&0S%Nj%?l#AWXo)oINu59)y@}C!h&Msj#9@MZ0jpc;bch6{P8qGZ@;5{3yP zw9P=-9MjfUsMB?()2}h_{Vtz;=#7PPzh;T?u>D&;^s#evdrmpJi?aGjr1QqKNi3rP1( z(&C%s#VO;-fYpn%+S9fdFxy9BN6gh90(GQGkG2C^c^5eb=IsfjHOLHXX{FI0J_T`! zwTq}tq^{67#L5E7Ri=3lXr$${9ExS)9P+-M(7se0!+R`+=a4U0-2N}AqZNP zAZt=+%;#6B<(L>UrkByShvZA-1Z_T`m7cUTOa@R_9d$R3oVtlJ@6$@8OdWYS5#mg3 z3m?T7BX$jCL9j%K8Jf~cC1eMfmeoLBG>{5pf+>)k9SgK^@X_C@)M-H*Gim6347{s^ z*pO6+u@S2|=hFsS$*iC22{Cy9knI{aF(5IL`kjC&E@CFxiM40h$GJORVvIU_cZVDi zc7Z|#-EAY$os>S_?ylUB43kPs5c{ULMJ3Q zf6}VIiK(K^km#(6+5$m9GQ`1X=fb=e@=#GTm;**c6m&ESfn1#9tHp?Eq&1-xVO}Rh zvInIlbrB9vyhjUSiI9af%%}xy?m%||U?MbgMuJuRmRZG78_mT)*)=yLM=R_`k$p2Viw98Z7b$<001BWNkl3NA3%$6EsEYh%=juJ8|hDra(wacc_#t&?1PE7Dnvdfhn!c?M>Tib+pe6dyHx^^K}($P#g&y?Cz=SW_dqYwn90yalNGFlPbiXBi(NN|DPTJPV*af@lC zZZd6*l+6IT^!G`D*b5TfnQJP3a!7KacwS>2NYgAJQ`6UH)a3Y4ulR-&JG z?#_UnJ8Zj81~fvbyG0lYy*u{X7UoqXEen#NZXJ-^4J)t#YV>OlI7=KLR7AE&Izi$D zV#K_lm5feD#5jOVNZ11zz?5JWv151Bhc$WmZ49Hv6I2hV^PT8y=y-`XT_l7C;RbpC zF~676%yjd9rgf#YE5J1*3f*1-JEpA{(A}bLHl*$*i!0xzo$Vp%oDkQTtT8(zsYRY#b;Swe1v{~&F1tDTDuzw7tpp3 zVL^A8D4U3CrH;o4hs@{Ku)6UeRB4!;5MuM-O6!Tdj?fuEYe%v|cerMIE5jc`27LS@ zr~HNA`oB21b%T(9jJmyqq<0|FV`5New4G2lU&QnqTnmrzvA^%Fkj(6{fFOX zIC~d!xRW4 zFLSATeV6s^dTUkoA0=$xNjZN%{o?cuO;84evy=NN>!+~xH9r3Hum2ozyKdJTsJBz# zeF_(M{|WH9KlHPI1N>Fo-Fy6pe)iwKjoWm)ew6E8eU7Kbo21P>-!*#udbPcE2X#83 z)#rHVq1z#S|321-e|5oh_&)0Te!_5pVgCRzzv+T4I-T&~$DXDBPml1={?-pRMBtNu z^C=$u%`>K3@1u6_Amn3WK140MYou*xtEWM}g|)BJ>LGEsi?X?k{_xESyzTT3TD^(c zcXx=_bB`=D)uDpC6E%#y5ov?TYWsQvoAUBYv)a{-- zf?n@))Qo8$43A)KMH$!F_A%=G9AW{rBSPGg7PnYj`~za1JX$5L{6X{l9(SMh73t0p z@oSycjuFgS4fEADXAXkAXHTF$Js)kc>7D z&=O_4r0qhdv^kQawm{no)44mG9U&{sE8KAwg`8dFfrd^I5hWj*3$t^;n(dBR#G(iweCs{qSQGc#hs-DNS%*3 z$GqbSt5LS)qcfZP*5NYnRui_{Q+kp6a8e&G1L0Pz?I~W1;znje6mI~6G z!CL2ljqxSNvJpsP6!Fg&MZM7zXLrc<9@rMcOq)BVRVF)O2X#X=G#7ErK+H%3NVmgN zH0Koa5}Uar?4MkxtV_4U&gv=`sy3{0!{BQYTsh;a)R zQ3acWf9@cJ2zd!0#3jrtf4?9?=wIX?!@L0zLsD~xyzbno2^@Bu2-)AaPInQ)nvfg; zV=62zU#GPJ(*t0KX|aTAe91K*l3T;uG`!>x7Y)vm4niFx?c4~-h1rmHZfY@9BW4L& zz-FP;=-ha7jxKYe~eL39+k~CO?k?NJ`{5(xyz=EJzEmvQG$!m|b+&=4(gI z#l;w-UF5vOD-iyxG@g z+BEwlMo{L>yAbPu10-(g51%3|pQml^L+lP>pP08-sne1+O~hp*^&3K75xbG`mQcrw z9y%H_S}Ud#tp-FoQYgf3%i{94Y1SMdVw|{``W1yNY3%zK-=B``8wmtQv`c~xV*-2G_tt!k(cgE%ISTG zzMIr1Bvo?1BE)n0!{^YsXWAZ7H`lPK!}JAI3z?hV)JhGcN83J;lh?feshcHMXDptg zB_LL5uVO^_%rA^!zsH0B^RtX6?<9p|stB+l>K2PHFy4BGfBxUCU-SL`DD}_(${L?M z{sJHPyB*Mz`pTbrX8a>RWB&3-GtZ`hezaEx7{6v2F+5Hk-@*3gz3gB8`Wt?~&CNS0 z;~Awr$^Y_QQ-8PX`&FO*uh014Z+w}sS+ctI9{S_2(=EQYW7;%wcKuz{^DWcn8~o{K zzQu3<0Jryc{d-++cgWg5#RJt|ZGrzo+^zdJfIp1~u>Fs~x8CM$x?Ml2^|6l>KJ>9~ z(8jBbH|}F`tFtXx_O;h`&mBxt6yY&cn5L4Pb5=yMrB34_qkng z8DLvJ^czo7`@1M-m&u23%!OLk`;^TQb@h8Jo_+kg|3Pikq9lE59BR!0XteO=-M_C_ zpZ=9I9{lKa+I&A{bx7WSeL?iaD(j21X++AiFYUw7f1c_50wMndCd%UY`Pcj%^XWzA z)dQHW*}wXE^8SkXd`+A0f$%)M#yz{lM$9X!?$gR4G2LJqXRI_VJx^WT;h*Pq?)&TZ z5~jDX?s?k!7%l&XPW}bsw07~T{Yhl`XNh~yyuzUoh7;;4LwAupoDjNKKG=jbQtN=p z66mq0NQ?;g(&iH)BTWLf4JaA0Oxb3_=8%vkV)q=9pFp~IAl9SfF$^cv^#$tKqwR|r zLa6VeP2vjOeCXjpMbLSl(0iB}wgD4NE@E{bNi)G*@M`4>A)1e;M?(^nvwhmUrQ1KH z)&VqmV~q%EgwW6AykTBXi0+~D5fvqfkKjw_ z2|=lo8}5(}k&#+5xeLT)aUQD$LMTYyATlwX3uY5$YeHuv8oIu`b4My+sKgu*5ePfX z0EU>4{hP>6+!J?2?%1_foViMnog>oU+gfs$oCxf;C8olxy$iwy+V&~y2vX5GV&W)- zyxd}Oq})0}TO?$0u}=b~;^WH6`L)`Vaq5W4gU)I*%mO)hcwIFigoI>w*E$j*AVliy z!mf0MSOuGmkRu_eGgMP^;Wh-yC|L9NHIo#N%)msNzupV+vH*-9dwJGW6+$- zDp_fx2h_DJE{ZFp+K|2wa&#_i@CJd102Op3EH+?Ecl(;B(t9wN<1r*cOh)TmxTS%l z;>Sf3L`Q09b4O^Kaa=|Sq})i0L7k9J{VmjvvW>(TN&D3u zzM-O~1oMEx5Pe+$J5&S2T^>VgE;Ogb4x*6+2}T}pQ8q-(6tU(G%IL>cLIe&`TY@Ac zMnWhwO~m1R=L+`e!de=%?B`IP9OuGLcuoNc?!I;=Xml2<1aH>#fglwlx&xm;-6R)A z#naKPE?l549>x`Vfmlh_9MhyTP?6Movp@wSA>zSQbvk0YnUSt@EC{;8SUBg^5iz(U zKS1n)U&pi{DN@IPHep@|x)2a?F;@*hNxe}`+==fQd4#=y$r7Uw;^^WwdB=u^+7jI^ zROm&9u*ksfQs*w+)`MmjDZ@n5g6T|(9i|7A^Q+znE0>V4huO*l+6?mI6oS&GOYWj= ziMn18WX~IhaucMXdJ&rpWDT5P^z=tJDC=X|w1;jwG_76qPnG`QCfn0Jrqc_U4v5?! zEz5eG~<%qFxbG2CEr<@d4EyQ$kdXyqkxy`g$v2c_A@F_m=OK(3G!OQscue=;M{P0`+EgycUW4iZ#RIl-D zx=4&2vls{OoOtl>KTn8H@y8#3;x)zNTTg$J<7@X(^B-fpd5z)X>pO_&vm>UntJKpk z(Z;X5#jU?xZ?r!3OJCtbA6xiTQh5(;`2unW>@{KKHV$lGcn{O+ z38Z|PPyF@oFE{jd{qXCs7?p?<_I+=$B~gi)`Xg&}(Bjer>pZUG1?sc{lUfHz@KYe&^MgV^_B5 z>4?yyi1XdvMCoRUwuv-19(pKz-)}fnAEj-sF`nK>9KO7BNxgR2+%cZrOI<&T+M_T1 z{cr!m2|xR5|CZ^60OdXCcuc?lG->~p4-7UAtXJ32^UKun2HpOK?&zlfEZoA%70US$ zdGEWC7vEViZ>aMgT9;^T)XkHChgsFJXLJ20$-~N>N}(Y#5z-2YYa|$TbCEV@;7M$q zDAS6zeS(kwjhBV#4}EM&9|tT=SXsCbCJmhqcCOGh+A=}YD-a2xn+Rpxjgl{r@rX9x z;m$=Fkp41#z6o-QS*C24F!>m+$QkUN5HUwRl)G7ve}WjELhS{FZ?U-I4}|lrJ#-GJ zHDq%Mi34puL{dW9><-A*q2U@aPsILNv?<5}ZO4f8NVg^AHQ2%*-cwJT4q^X{(BJe# z_`1Mq=b=fHV3Xqu=33}vg3!^_N9X5tPj_(U0#)5$WkDUUBI%}&;LA;CNY(|dng_^f z!dk)D((U_N==OR-&crb6T#Xe8ZRa>$64RQHPl>|@vB1QFI4Ww1T3r+j(cR6Sdesnf z2d=xkJj6*`AV&4jE(?hIsC$U&?pWNZ7_zzZRf9VL2}p8xor|>MTuYKW@sbe5Ly{yq zNA0bpEMGVM;i^JgD>uzr+dZRAHN<++@tE~adNZ6437m&Wk$|bNu zx3{59hm>tVYjyr^i?k}l?|38;QzRL=S6F!vSR0MD4M;L#k{tp;U4Ts9F%Vu1A~lS* zBXKMo=aBrI(|JMcW@6rW7?}-3nbA_cVLW?-Nm3xhicY<|-2=2a(n=$ULLXmpC7T2! zGz_I|8>&i-!I2xuS;krdDhW~~FA8nS)SAh|2E#)`MRX@n3!t?5V8?w;e*dB0ckZiO>_$h@@wU=?OyG!|XCxkLn4==m;0RKwg|7dQ2G?FlN%Q zyT^)+I_}fP?BAXJAtZ=#_QuEDF|W)~SY<=qJVxk`FfM^8Z91Y(mud4668HS_o{J+W zVsfNHke3+mX_#nd17&qU8lIxxf2GrPULVlLV?tVDl1RNFa!wp>fj$RuO&bqs^S!jw zOg?xF+6{ERgHjKO45)0dF*1#h)3*N~jW03q2;I>$eEjDd|ItS?cgrP0<|VPI)Wmr9 zE<(J6*sWh7?*8GDI3aPL7;lox9n9k%tS^xF6|H*&Idxo2e)W60`ScQ6looCfk6&PV z{+(F8MGG$@1AgZ3zmrY+V+_OHDNBbZ~x85zUTJ- zDAfmk;~r*yioCp=*j?E*8YV}vlmV@UIzPu}?|PCC{=LufssHBHp9MbiQ00Sv@3XYC z1!C{RN>947eDqXWYF`3vwr{LnW2cD)Vt&_jVIj{g&e0{_2?%zy!SsF(b{8nKQ=9(+YsX`#cR{Zc=Ik7InTa{j$h=Hzx?Q{{?0Fd z+<4CiFOs^uh_Mj+H^%9*)-kT{Vm|#7)YTy-k*6=*%X>a_H}C)8K0o$fj(q)}ym98& z_x#MCTJi1=42bx{N;jM$f9UgmXVr0FbN#)P^;5Lz3q1VGubl9B^i$`&=YuzB6Ey8; zD`QH7isHL#?xnr{Y-a!PPg<2EQu3keSo!V#Jq74^?Q_RMCW~U z+ETXz?d%bBTe0*WOz$Gd72pyfFEI|m_R+SFmObkB5G@_jo~G3`bxKUPzJl<(Jo-t$ zvHS2p?qK}$kp5$0I>dC3RxYCRMe62WLfj_~w|u0t?eDn1`jSgM=0aWXQ>LDIdjX*% z4IAQOCJm?Ly&J?~BoA9p@a|mvB%S#v=X`{g3ury2O$&71f}QzTs*Fg#20cKQktnyY zvPHE}OCZEZ>b4&66O7cK61wM!`IfUn>mFJ!5z??@1v&>egyxCwZ8yq433XhexL20d$7H6b9p>v1gOx~2P(;YmA z&I1xMso!7*A+HgONHnx~c$b)x7HdQl)d69N>Hw_+O>~1n+67+)7v>~xcR_0|%4!R= z(Ge6Oy0B;_0%{%9);m0`$W`VX%)Hx8sNbDx(Qmc})(d|_%>|C}bU~?d5 zC1nqVa_4lzO_Dy|orVgbx*M=KV>9(aUfK>HfD3+Au-PbEXtV8@r7pjAyt|zPvIWEII zbISYcWXDl8O@tUodzBCqb#!4p_DX-SCFB`!1VnIiDa{0HJ6E$?$+71AWK*!>?#z&( zKdc^NmMg>2#<{sIyNDm6BV8=+_I0Gy=nn6y#QqfNCeTWV1*;x*7yH@wzb<^tUz`&w zJ0yh*oJ!bzj*twZp_5Ry0;))diIwqp>hqbX`fo1!y^rJ>dN;Gx?!S;W_t?C=p~?I?nnARQ>F^Y3soXrqTO zb_a#ngVyMRVw{{~S|eD+>VRrTNINWwc`%|i!HR!|ItdbYNSN+L*S{io5FO(CKx^KS zA=F*q8hpRUMvQ`L+zI!B&g_~$x^vsV=xkR~-w@fYN_D)0hZ+j-V)&)+(-6*LdXNGrs(Bzd!hMA6TM`_t72f(e1l?c)oQF)BAu!(h$gt*ARFGv>Z7@x39G6 z9;gGY9wBnHYi9a-3Nra*gnt_{o!&uN@1go_mY2VRwZwSy9?I$0SUmN4zWkZSgMaV6 z#Nkh|IQVh;!wt);-()ztPPaUvTb|G#+#v7Yz-*r=_oFO%;6JZC`pGw*!SKVVpZVB( z=+aNqU;c51gT`?DIEzb9(e1xLe{h5T=vmUR0l7-dchTBD@BU9u`Px5w^<(k1PmTP< z&)r~NC5$6%x(}TO)S~nE=RL-=%WPk`kGg{S*4HU~mQVfi6F=Zj{vURI^%FO_`!7FE z+?-N3wh_enzRrC97`1+hHvS$D|BY|*%qMRACz1~g-?;&-w7L{@+Zt#>RJ0#=Dr$?o_o-zTk1=gC)5+cR$IrbSSoNJ-t%9|E%JweGc!{?9Dz(0wxHv-C zBgPZT99%H6&Rw1%WAjC{CahkkmL~ydWn{Ybb>{H9{O`Zy_@W1Y^Dd^dKS3DYO-e_* z;H=Tdp4))st02(YxZ_tAtS->H?`%lZoo6l3rsilH$;9E@S+?bXYLoL`YmeCm;W@g4 znKs==W=nRQ2qG)TVB^UH8QO}RDR0uf`Qr(Rh&(v)qRcNJQH6m%BHl7mliSL{F z5a~VLJT4}>y>k~{b%L;^O#^W{cD`s4kn02!NEPLrR$jnDCgu$iDiSKGThZDvb-IGc zjI=c}-13C^dW@Efz#cIM8etde6o}c`us-TvUD&BT+MK-%AkoFd7?c=|T7~g6x~oS5 zCO+C*XCbPO=c72!03k>v_FKTHqw|&}8;T;hGqsm zMg+Pc(ZufwLvO@hv2~=aT?}pwA30aZM@HIn0jN&S4GvLBy`q}v7Vhjd3p9TXj>Ga)5XoGI&!&QQ(=Vurdy zO4M1%ON9`zSwI|3pd}zNyI$=)3~CYD6tNEU93&_qBtOn5&@d{kDpngNN(wX57FhN7 zlhEjvGZIFyOiUT;CnO~xP&bb5r(ZDe001BWNkl zu>|tac24SoDqw+_jUbg)+?6al7d5exQbTK^&EjrLHDZ9Yba!`~jaD5^fvIC`Oj2MO370RfjVI~d<)!;j=fmUCm64l+Fx%%}dOtd!8+6svy)JR$F5%PfA?tBQ1 z{$NDMv=d|9xoW{s^`J7Haq&_Wi|(=(9OED z7m*z4j&9Pnm#JgKv?un@QKz03E)n_}wPS>5iT$^!(*-Dpi0#wHLpJkOk8BVK`6-rn z{VpkOKm)BTFwJ1WdFT5RWqk$o2<;=Xxf3}^j{1;+&_Q0FA)!&W!|u6c;ZqgrqPheH zsaW$h9lH&w+cnBtPnj-Kws#-9)D%Iu#v|K>q z0O_3m@RWJwD50`mp#3Fss)!y@<|9IW-UB$-$7os8>|5+zd=#Owx$%DH_2Za4%Eup? z`MHl?!xle9fAj#0i{BtEUwslYq{{NjlgxXkgd6Y1RC(|>&-lbIzOiS6A9VffuiZ`R z{y4*h2k4K#MYsRzQ(|ecW`FT0l{?otu0)Oqd{!ebK-%H!x zkMtKv=>WBigo@RXy8SBJo@B5`_?=&R?di1J_4d?feqjW@;{TcOflqhruj=g}wcGWB zs2>EP;f>Zaz%|^0`L}<_+j6^p*yUsH|1UrDTi+m@z5@w&kYoWdVp`Dg43TG1zQMyE z*}yOUu($Yjy&VEE@OS?Y zq`nI~yBp~)BB^s1h|MscP~;irTVH=ep%S0|rKfoCqu-`H%kuK8ckUHozWHvf z-9w1iX!9N^ewqH-AH2i__HdVr#P$1$n~O|mhkW>oX5k9(w3s@!5M$ z(bWm<_)ezP`*xheiq(v2qs=!Nr_U4HSNY^GKFTLwL!|c`rf&k@D+8ic2G ze$2hB+}o{ zVt+{-0-=AJHbSg7DdQfpJtnS}Zh@0VGeh)?kzz&`(yxcirW>pp}(O+I{p z5N4X*0KJo#)ZLXl*ndsvzXRKg-)B_q+r zLnAYty<<1ho9+8Gg#3U1v&@3Y=NNS{h1{zw0 zG^GEZy?6V$j# z5hnx}<_To`a7O0w+uQgaa}mMqvv5XS-xJCI^(U6=W+3aQ?zQaCMz3;nL zE><-;6giwjG|EWR3n2Pq_x|>-s{K~&+Ru8{?_t`4wuVV1rVO3TXbN+YAwmd-3^r$oo2_B9vDL&eCT64sE|#<& zGygqHhFTld^O_Pus}AnSGXvKOMx*YsbG!v4 zFuUaEpED4=@uI3efuh0jC&AEA=f+Y%B)W?i-yUrZn(M5l?hMzGXZSI5cpIca3DM>z zopaW$Mzpzu*;)cM^Z=7W%7V5Ps+AxUWosVzSn=y72S<2}r%d~`bItV<86Gj5dN{7N zNSm%fI(Ebd)o~Lc5~5MVNQeQ|ftc?j(*;&fP;P)NvFQrabViUZ7F?{ahg0h23ZXCb z!<#H_{S#uECq{$5ud!(UW2mf?`ynNOKr z(Mn8hW?U<6{;Y2G3f7LOhZ`U((y|b;QpcWp=xD{zB4~XMNh2XXAa=g3X?aO13z}VH zeDn-y{SM>97a6y2GmT&1m;UlsKlC1H`tnHs!idbQ+*W#oBSKbUe@We6p^b|V6?nBA z(aLp*3sU!h(7!_q?#ORr<#6u!8f}>nZvZ#2b{*oYNPPpz_gG*13RXIH4?juSzD?bJ zfnWSDe~XuoBjfpxFsxprJAUo!io0K1-SQHyzKZILOlN1j{0n!#>qN63|34G)H-Cig z=*5o|cfYngEI88Yi&T98{Nu0t*uVAX55T|TC;r-R(CuzA#UmtiG>SK;%02&X{G`4+ zN{nCT|N9i=lX_C$WPP^?yaN0u^Ur^dCj#%2dR%|+&%X`4&1XIn`1}v`jF*Z2Xymj1 z`L{1HJ*nRt_2YkYAj)+l1iJ29zfpvS#W?)!e@?hq0Y8lC$5~wc$_IG2)5Y_k&tvf!WK^&(Bk9%m1-`|;5c|7y zrw`cN`2@%hv%giq{>i)B^rNq2p6hO7(^Is#2J11K2(m%TJ(kzs;In`B{pYK*eg8Et z|Mk~6oV|e9O-M(?kdT_GWXvX_>_M*csh?TFEBAStJN(S2zYeR)gdhEx#6SFW1wJ_5 z_Sye-&!>Lo9hg4Bv|qlPZX2Spxc*h*`If`Q1yj32`2N;G_X;ViT z1yqRhxOw;ZFsiuIwRnJ2$mXuxy$6%o6p_KlenY5^jA-gYcr@CDgAMP+jn%3qHyY?hM`sOpTa@+{=tp5bDmusoEhTc^2{N!BH9U zEwm|GPZ8}YIuLUq=Gi$d0jwv6OtnNSfxJ*!Hc|#vkme51HVPym4NB_tUDmQ`K&v9r zIjbVkg|$>k!2{5+-b2~MS-!0aF@$#mx0*T!I&^`!m~juyoJ$+z-M~K@w1dA_A^X@r znlKw2579Cl0%N@gdsKI)85I#_=WNbtDw>Pzl)_aY07Q2ti59 z9j05bgjpsKuwd9BLhZ29Q=1|OcbIEa#0n+{tOcg2hZ;PTttAhLqxrd4(~LyG-Qqej z?N*3&SgS}>)CRWEwq3Dx zp;QH}X+{Ygh@l`cp{3EL6Ucrd2XS;3ei(^KsZz;(AS^O<^L=piDlxww3)osu-Q9qqXnTYH z_zSfCEiy~2bPx~Z;l58rj3dRjR}F=PulmYu^7=Mud7wW&`+A%I zf$G-h)a{Nk-e!C8EZ;Eq;&-`DzxV?2_%>{`bIt_ci~YfxGxu7W;@l6YwnWCU@{8B|fsSK7sPDeCyBg5B{?)FTe7Ssb`g` zeH=af2yyXuU54%J^E7~$rms>DcbLwfrCYq8W89rQWH@=m?(7sRCzRkKDvI96ggl7=&;%`HT((&{CvXMYt5?{}1J?|mGzBi8nPz;F6k^w0eP((q$+ zxhHf35{2&QF7n1#$li`t$d_B#j}X@z#^=NW1DwALEv2N$?P#=ofJe}-HT zd_72Rh!|}rq+t%)8r*albY`zA#IB*u1#WEtk@@9JIBbr3^8m8T|lg(hG8Bb zH!L*A(<-yr8wjD`Lh~F5r|OslolzuJ7)SGMF9E}kZS4p0xKb9b%CfK|gozc$3Y zqwG&0Oa!*xoXU+50utN>Y!%ARg~==~qPu(BnXg2FPF#pC?m7$!TIm=M39<`{!4e_t zP`S%+a*w+EV?I*fvWG0jb7I<}ZRtXqCIYida&B6bowIOF%$c{i4p{d>o#MNWW@|z# zHZ!4J;4=bI6oR{tJ!ow{Zep`2oC#TJQ|Bm$rad)o;Aw@&2 zxx+jQVMs(G7}ULEAM#>;&rFHk2$OSVB^Kvc&*6q91;RN^jxaiRTsK8DA(BBRq&c(M z%+U`)CR8JB-!biaFy~Z<>?~uUVg-sO^sscHO@eFAQk>zNl@Ot|h?3CJgT_MipuAQq z!S+bX?l{&66oic<6hc5!hfapp>L+Te#IDgDAJ8$=num?mF%VLq&x)2=P#1S<`})Lc2={dk^jsp_ZkK zjA095K+7$Xoj8Lzp3|tbsS)T1vL|E@6-9R#iIm?VFB%fo)bbMb-V4OxE+KDFoxhVd z1$}_oJ1kDWNNsDuNI4(GQSj_>#y62~T`#Y5U*!E}C&{`fu;{Z6o!W6X|bgTR&$=Fqby zjQbO`eu?h*HIA>o!S3NL%I+Bg$LREZh+b!N=Z|4jLTng&B=x|gEx<}kTO>VdNZWDMl-lFTS)33j^?FtyfaF@2c#&muQ_-KLmNj<42^`t(e zekTRqzY6?w;P3EWc-zfy<9Ys@-?1%vQcvnh{obt*A`ofvZ35^;(d5bS-;4FxPoMJ> zf9)TUxl7%A99dl@#jA*9nmvo?Q^fo_Eq#^Y^sDsi2Olc#J}$|P;mWJD>HBHr2l&aq zd4&-FAl>4JiTy|%9uo7Lq~!%E9XRaPwCy#f?hg}oSNKyud&)2UgH8zP)jd-86(mm(0<8|j?N!?5Hsx@gKmD^eXg|Fr9zITY^%fGZ5K=%xBh-Xy zMax5W{T+VlfBXXf+h24>_j3I@yR$b4-E|HRpJupv=Y89u7{lo!0%u&_KP4_Jp?i(G zJ;KVHNVC=pxbB5#h-`IC2cc{A;k?;)goBW4A|1>fE z7}7mMSRKfVd&GW=sIYlQ(DDhU%@N(vBSJ`+9RUTAt-C<$f;KIY5*RO@rj8FGoe`It z8QE|Rs|(tA3oH^+LeiFi2X=WlQ3V2~YfLJw_DE?+xJ$o!oz24^1c`)xA}xH5UTeT= zLlr_ekcPW7y@u{iX?01IEs_gXd)m0hvSBt7x<_bRqHReV1uduUN>yW6HY`N64v1x1 z3!sq@mL4pmf`l#7onhJ&q$jS6yAVZ*eL&1m0#RKBYvmSg^8i_Yg)pwDt3Ros|&gZ0cG=w(wzCBWB?r$LV?hw}E?9-T? zGt4Z;)tv{c<-te`alv}dKC=d3$QGtJi>!O-yRUUP;_e+(qYXA-GNp*2=g{uhv@>ff=P#|i=#TtVQ@h`JZ=_^V-BRHuOH{6y4Gas>Uc=% zqIOHp_8pa0cl5^<>TS$Mv=x{xP|4JN@4|^3(6$6M!a`wG#>+Gd*zOVz(MaaPq!wtC zzxN@%w?;6*1lmE+&P6_py}M#H&`NU0b8sOM+)b|2-~yrul8iRtYbyvrJZsAlDli=c z5h3?RT)2qXstbPF0#Tbgll493^mrkpMMY8}q%yB}Z@h>!7wPpF)s7e&ttr@&gs%^x zvzEmgd9kHVgI|Npob7DhP{_l9l+Ph1%I+Fg9r+P5)G1OXys^;lNwK*QF4cZ$m+4s?M!2t zL+w<2y=enTw9(LFSS+M#58ah)kvjIE3y_TDnO8l#s6(F5xdtuzIjzN={*RsVf}<4b zF3}1OQE8Eo=BCg*VIjf!-EHcTIG;<87ku;em=+Tv)e#=MNZorQs6P#)g%P_(J%F}C z$djWqTBFs0S^`!oh9I#+4=Z=Lw~Vl*JAR$K+Av*SrL`53Gl52kh0q213t6G473s$ z&u`EjJ%V6}E)bT8JV3&w-&ao^)5T46+F|W2R#)Hfd#9^+7*6j}H^*!rD5d-`DOO^C zm$Y~r(iR<`!pci1S7_6LI<7J6(S2qt59p5GdS4#HM^(SRWdGHH=ooPGzk?MXeUC-ps0zth6UF9I(C{{lD$egQsGGI(4&d_4IVfiL_H zZ_|@{QcvplWOXA}3(@ko_3O2ESS^Tr?{bfR`L9g8{Bv)x7lHGJ=8BFT(%qn6->1Lv zE9BMrM+UKdZKcJQ&`(JE<78Wt7SEE`=SWx)z?FN7w%!^tWwK%p=|699s`;9=yb;KZICeIGV^u zcggE75c7NQvmFL@n;V49zfF~A`BOjphloG@7W;>pn0oeGgZ3h=Em@wvhUE9VZO6?G zVz}nc#BD;Sd*sFIjyDKPQujd?vS6ge+h}_p8=uD7o%elF$^D*?g_N)H6MwBImp?{# z`Xb#D`qfw6r36?ome;??_MJoV_R8YQR}dD?V2uYF zd;c;l0iCXsSTSK3g>qPv`W+y&k|5kArVZ%e&Os*1<|rQg_KzPBE<>1|{7*LMyZifdkSSZBn!>2!oJ% zck`+WHf0Xm&K-)?U665T?k?1M8hkIb5D5}oqio)AaG<6VBw+K%xWtK&Izo2ltC{aR zR?w+oIUr44fVD6??k2P)Y|PHHwK*|O49F;nKm$<^^f`86Cv=sNJs2%SX3@xIPN`5g z5sN}vs)wubHEv_vQHnIoBB>Kc?pByCA+P6iM{Euv@^OE|A7d>zmLfDr3ZYcWDzshBz1@%1POzFW8i*jR zV0H4>4T6^EeKcMIlm}SSnF(yPLnP*dqcegLk|RV+4U<5>P~x&73KL*85c}C45oQ6@ zoVn`3ShHx}X4J>R5XCvi>Q3iSp;{s>4w!c6j4A*Z{Y*i!5wf6F2*C&m#xoB9>jp!z z2ST;#E9`{x&{Igos}K(mNs4k354E5LXGPH>#2oxuVwE6sqozg=)m%6SSu2PcxiiwLl7@pnW|cTx z`dXPbJ>3#_@tdPmjGhpE4c94QZN%D^wAx{U3$BX`ZGhZb9=?I~^lG$}0z-2`kg zeMrogG(Gk;pOT+1Eu#Bpm@YT8x+kTPl+Lkw3brQ12c)#YG|@JUB3f9gsQ4h`=7ocVbC6(dPhp2bSH07E|oS_4reEXxCFh4 zJCucfY2=IP7i`yTs5Xko)wveg)fK!FC@bEUv+F1#yd& zf$8E|)OuR0z?3aDWGG*66oILRMTddSghPdYY^__6GeHr*ez!!o4^gHnUPwGiMsqckacU#881@-WWIluf{yHT>~2-OYB z_hy3Z%RhIOo&7K+JZ?~1$cJ+863^{*N4Z>am{spTg1aD@_9NIb%Ha`EBt4k7+J zdHp%M_3IoS{HVLix<}N*C(w2splSTv(ZpD++n8yZAYah$b#_)UEg$q$hU;$@l4kb4A-B)20pGVoOY5 z6vP(P()0N1Q-Ayxhj(r=ZC)UCJJRZ&ulK3ZwkH@@oGHte5POgV8QGZsL{Pz?8C!E;x6y;1?h-+}#L1_TDBzN6?KBq7i!!no7M= zEF$f3NL-**Kt@tJpwk6$2t+-mP8aBYM_4Y<>4YF#YRhQr5CWz8$rk%reA9r80cnA@ z7Z-QCSwIi7o45LZ(g~>=p#z#@Ov+{s$N~g`Frz#)Q8bf=hSm<9oYzbXgyvDD2q_zSh*S-vEacMzXvV5xL6M*k z3Sy26Di^&YA;jp8s*6~MwX?wODxn)4CnEvX6;sVn3uYq{cJxZN$2L1IH(PG5t_W|gDH7Ir7*BXeO&|f_e!UVE$M1+krE6@h?a75kQf^e05@&MhR zpen@SRbqectan|`p?qsX8VSP%W!n+t5@e)quMzu&yTs$xgEcqLAzUM6$C9{r1yTYl}BRy2DaY#_#S(gL*IfN-1Eo?-vsImcpj^EE%-^$C=6LYM-Q zR?Y*T?^;ZQ^NkI#J=!8#Cag6=O4R+5X}dyK9bcDK3Bug4qSe2r>|cFEOkhzVG=D@7(s_-u^0GdXw5l^wGy0qm`eg>(7z? zHA0+`MMTQ}2MAJ;v>@^Vb>D$zy7dR|?S6Y{2p($pT~zPh3r5c!lRlmbq z_N1QF@6CGo7b4^Nb&MsJ651wYy5N`o;@O8zg+8h8SjgI!fj{~kdhRFnq@L9GLVfnn zHh$`-@1pgb&G`+MC-=VT-_@FE+pE~&bJXYVe&b*GJzOvULWD=R*`}LhiPS?S^w+5A zS(dA7q!dZ(cSyrSBvsn>Cgb4+#7;n7VtRCfmRA`*L@533wZHd$nEe2G{WSUb-!NSH zl8aF9tNZA*WZK=r>Vm^%Vs-U5Se$+ZtRO1 zMRz=+qcTl5==9AG@NUP8YaA|KB*mv0t`t;P2zMElzl982bXsuOK1JJpg0hWl_RkU) z4-oTo^fsLm(~hwCJpJ)k8BXVrzQ_0LA8|tw^M<;=hEB&ghyJ}1j9@}6&yl*PkZ>U6 z!-qbPU<}t^Max@E7f&;8K7r{~q%DxJ#cT)Z^Bh0*_mIUFD-qMtnSE`Ewho;d5)XvX z=26{@&t~Hy$h*4}Xqy$*_VZZv3R+J}=I%F`!*3F;ow|!qmV~^6SV0Qd!QGjfX?v)X zxd3}Oq8x-)J8XO$oVIhGEem&D+Tg532B!T9s%t0<7nzbXQjIhVck1HQoc<0%>Laa1 zXu`BNa$ktUNXN*iYwGS6&E6u^B_U0-llZ+#!-2GZmAdUXoIOK#dY8PqON)D^{dKJP zK8q~SJdo0svP)<^5SDMSIJ(1lah=vqNkbzIg>nGYk3o!n*ex|AO|*SSNFHM3@ZFh_ zDg~qh%|(KlrD~dx;2SOUn1}~CnY+VcUqBNgX->RyeMaUHZHX=dih?C`F>`X}X|smJ z>Lx%1s7O*ICLd8Z9%n>3mLvJ!)qSKEXYR(N*w=(Wse)RV-Mh|Z4Hk%lLE*8zmpVf8 zBsJu*5fLA04+3d$?r$rz@TEq`=N@t;3xpnR5p3lGV-=tghl*f~+nL?mn>!yT54)4c zcnmS;6%R%W!lY1&V;gdhqd~0A+~0;!QATq2a1PSS)M%!LhK8RY?A&zm1N81+X@|FngoT=d#RlZ)-h= z3wP%0%s`e-kj%_@Hgsk}TXAGdOy(jwetcrW9ia*5v9?HS3&g5BGl7^2brN*Sz++~# z5MuHdHG{Z!m##I^x)Q6AH2DBM%G)xaj5W)a;=lc}tXr&=x3mTCmD06d!Na`vQdtz^xE=V~# zs$yP8Izib7V(*UHI)!&XBbSM05rRYz zrS60}&hG2z*oqKAO{kL~dnGUC)4l^t2pS*?bss#4PDawOL0e|p473tS$(*k|G{-WK zJXdo}5GDjAq)M%kILwHMVlL7Ht$O%hN`*Ky+L)0fNLypl5o9+nyupuyB+C9K$T8h= zO9;lk21F|dFkd%XBzJ;Y0oxJc4r4@h^5*IO z1gjk)jsnrTph+Y3uhGI4+Gb6wzsAkwHy=#)xc>g9@9-bI@{geHC{sY?2QceAY;kVh z=HYcpyFkJX^6(bKgNJ$!d)nnStiD6&-g;knZ!0~zdzLWVWO3~))a^BFI`NR%{*-?G z)(7r)Lf(?}0<)`F-OyjT%Xs+=dQeK*lZUS#kZgwmX(JLpI8pWgXZ^#^RDSa3_6#*) zC4OK+>>E{`7N{PG`XqPeNqukE%m2fI@#qumFJ2%IS4eq4iC~r1Z}`;DKOnyHTjVRR z@!3E7t(|AT&+9wMru^sM#A7m!a(Ds}e^O8CNqw+F|0UYyW0d{}vBlZ@xu+jdyR+vg z|>@&NcmN|qkqG2a_?OSwB|jr zU66)7AsiUbo}+Ff2O7hbuP=s=4{u`A3rM&{=nmxdy$=z0y+XI6k6&TBd=_iZus`3D z*Iy;&XDRs>pL%7<-~IHC#IxkZQ}pX^E?}eVZ$r32zkY*BPO!}>)8>@^_`T1NvN>it ze~HvTM_QfHuivB{jw#zy>hui#`ri=JCF|uS?ewec@BJWUYmATX(d>(a6iA_w)^D@A z{kiwyE1DFfHXj2|AHEh%DoDb#`{2K6PpcD}PLOU%3|kj5Kf;|J^2l)QHM%QrQZJuJ z^=YspY=1#$U%?hT7xQw1cn(z=&prvZfcRU)w4ol>v}p;_Bkzhx&bhUkXj7&h0M6;J z+@tPJQ0PRF$IjF=ag7Q`x~_q%?ED|gwGm^KOzZc&C)(&C)O$yeFlzl}CQLV==`azM)k zAuGAt5OX0f8}$&VhXJh%PnPe@#hxnexGEW)3f4v!`xgzdc@`h_acrya@^2-8L>Dr-UVtCbTIa3F^Te;C1g~;UPm>DXj+T6bQ+ks_GOFB#M8@jSvP$4Vby08#~;# zJ3Gn4;}Ef4XY{}syYGh|^{!?gEftCcy#OlPhw#D1h(JfiMbltYhcgfbHI!5!G+kGlv|8daE^B^8|- zu}kj2%z~0g0vu}7^SV^7Nwvq0M~AScpL2)WRvL^~{j$%V(DgqUfvAS{fS z8#MK%LhUF7=Z%Z{_Ba$T2kY<#{ z!W$YBKqW1sb7fU%qjx{*KD~PtZ`Fvc(u$zP7ql_+rge7C+5)CZ6PQXO42o7?XQmY+ zQb({&pcVn!lUD}T6D$%IzQ5CjAX{fjzuU9`RLrx_q7pb@;Vs7}Obgl=u+~Ec$!W$k z`1#c=A{1iWyeq`nbP7>OLnDYc10+3e4mPkxNQT4>+Jrjx^4lB+fW~%@_<&B#Noo%SSZNw4sCk^b`wm9!L-#UrR|rr!vaEOxc-pC*)dj+m@c0q^amsia>~p_mhjlavx*o*o~S9 z=@_&lbZuV80kaj@Q?yoSb&c6Wv~KxZf8oO$#NVj?_fMY#{|7($)8~ZkzmK+;$m_eL zutm~HOc%&%jq!uz)rQz_FofyRE$Y4@++lh0epA47eiO@A=@w^%P%skKj!8qMTfOn2 z&Fq-Bn4P2b6tg2*xlgyeN8LWnwAs=RXJ2=EZ`xj?j%Qf-=FK0!TNT?qTDxG{pVH@V zP2;G$D_A|J=5LItcv4U5_iO#+U%$n;`cd-mJh{J)^p~W(MdL`UndxvF(~mRlZgV($ zmQTI%&-lBa{`NxIe;?NGM);5be;oKJ;NJrN)Ytr*0{`{=^Irv?sP9keNj<6e>hJvd zGk)r4zld#**xrAM)%7oaq{ypHI6S;f-3+wtzoOj!{m1lv`4>9cgMWvr{~l@hB;n*K zV%ihCEnvssTuzUCnWmgEpCEbUFLYPLz z@mY-LiQPo#ra7qT>zBkvUcW`Td=8tosNVB*=*2PYukqubnXq_+kUH{e^9}dAO-qau z57X&(V$160 zzh?W+Cuu6g&3#(E1O0PI${%18r|yzkcIaUR{YSV)Og{KmQ-_v_wueMnxZ^79u(3z_ zZ~P@KghD#{3e!cSjW5xrQ>@%#y!!%l#mDZ;6-pTh)0({4GF<AvUv_6K`N*wAG4m0Xa4OT(F;P{gSop%=FjfXZLld4V?t9x zwUPRB7EgT#5*sg#C%Kj$85h9PBZ4)BFU9SYhA{K0Bg$6<=gd8wSbD$Bk=qex$ z5hJEbSgE_zrh>#C(j|n|>_okw>~4X6iQHd);21Biya{2?wA~PPS83xhyXgh2UPs$7 zb7&7>Ba$yrjnwTxJ^TAx=R$=6mj=-bEj~HR%CXcx>)GpZmu&ve!0{e(?(_i)x}Dp z?~BOnLN%l8T_~Bhz9tYQc8%871XHBjAZ6u&KP3|4o|s2s?@fzw*CQ4QJ)km=y*uMH zWEV|BGv=3bB*svQB$`5Ng&Zd&H6-p)?P+^q+AaxENkgWUjHF7CQzR_mXo&>FY>#Ng zg1Ar<651lup^`Pz9Rbp)CnlSV8q>XEIzeS`G z)97wP`+wPc*B{HW^Stl(uFKy0+^VYY(=$WPkety_mXy%45+IHpCqZIBk{Lt}sC-F+ zIFKdT2n@u3Krmke1V-Q(h;=a>$Uy>-NMzWiga`p_$THx_k}O^%iZdiN7xql|bai!I z&N=(C)_UK3Si9%K;mxEb7Rh>nLUmW2Q)lhH*V$+9XFc!lF}xGpA|k4Yn_zI2pGd2=US6uRQHy1}UK4QFdV2a5`Z+^LMBE{*;&zQ=Fe@))&>&0cs1ZTqAZ4b1gz`>$eifQ^NLFYa4IL zGzW>$of4BVT|5cXb$mP}tWT;Nd0L?2-;4(b2CuIl=PVs$cop-{QxAaR7Z4?>_{KbNuoivF*|AO>`Wvydq^!+Fhj# z13B%8t!I1hhcJuaCYoa&6mIJ{qRR!LBCAt?=oyZz~bQKn?}sp)R6X98OBd@ zL%wlW-DO?YcVqpWA-qmfwD2$!JE=KS8&A zjrQoc+MC{1X}4xLeUdULd2C=0{2vEIHEn46*GPPaKQQ=Lm7fq&qY}2I_F_K-@fJI={|z_9V^Xg?GK~aDEkM zS8+|Ez4RfkCEHFf{rUv?=S_m25f~3 zJDgAG)ZoH7&GKw+*RRY`(Sqa-Eenhl=5pEC?vrBZaEeu$*y$l_e!_uyB=b zS|QDjGPU3$rL56mgE(KEnm*!f1va6%sjnYN~2)^JKm4}W`huyh2gBW)LQ}H79=W`1+xyFsG{kvvWvsQ;UnaI#BzfU z4&T=K>AfNC%m+4^*~X8QRD;;S59ClEJP z_${Mg!RGKRa9y5{MX8S6lqr+PY(hjR3VCet>*`iE1j}yb_SWz*aaEjG1xzRiHuGS; z2XzG>a$RKT1XqNdLKU6&o-(-EmL2e7m>ItDv%s1uIpgvc-(>Q51+zMzTsObIT4hLk z!8H|AAX1SClv3xVP2{Qalg$iq4o^fS0-3nVxTy-#zROSoT9(yqnG&T8pb3d99M$1o zrdv3-0Pj#DmP6&(s!_~AmRV$XDD~em!*0zSI=>##Q1zs(s|yJxH0#RfwfVI$CCY@F zCv5{UMW#KKN8XNTp$d4;5gWsITSD6-KBIYs_z`DHPRr`tZsxJ2dM+$!Mr61VS!_YJ zq}>uLnKDN5U^GjJi%cmQ5swQB5^zN*4parn1#F2#87i-9!+8T2w)g7z8qD=CV zJYGk&;$%!aO4*=O#EJ*k;NlI82vZ@QeTaB)m##a(tR8zraLng$4W#iJnorQdWBCp~ zUc=l2@b?f_#N{4MSIGSbaPl~=1>arNFuk``Wu#}sClH4ZXOt#FejgwExkEnjGv8j$ z#3z61v;5dEUSQ{El<5iF{zG^lAs9AYC+~0J-Ahd4SVK%#E$}SP#hLkRP$n#2$NUma z$MsyB9o~Uod~M8vbE$@$_G?JDD6^>P!x`oeDC3oP3A~m({ex#n``1W(fnWQt{&*o8 z0Dk$eyun}iJ1^sh8|>~s#p1?G-}p)D*d0GZ8eXGGFY>?sAobTMW2{Wix0Mb@Ae(xV zs)n$~`EO1<_uVmTQt=?T*HMU z97=!u5s>Q;8=_MrB+QgX3q=pmd<)A@aQeoREDwGIAGi4BO~#AsP>#_lk+& z-zH-BI%PUyeE1mM^*elJ4n`W+nC_A0Emv~d9+0<3jOU*s4`0B`Q@GHhxhIWJ6Z0wV zE06(#P&6QB;LBSWhvKp9Na=S8&Hur0Zurnpnu#Dg4pzc$e}&TiF#XBnbelJ7_}gNO z$g7m%aC(T9JyzC~DWbL|cBlAmsBPNL$jR_cqG&9%MvZU)$ELhJVT1iMBq0 z@9W>4_E>(5)7_sXge_^hg$vhd)`Emb?7R+BPo5H?D^;|2)q$uZwS_$@Y93DwA2T&9 zgGeEE<17kNd4<|k@!1)g0(lO%GQj0b*?tk?P0s%CKg2HvoOy~VP9}Uj!)P&ggFJnN z7#~O4J+8S+>feWRhxi4=E>(1bc}iMPQdf_YOqAXu5{S#nS2lC_tfaoSw#Tl3UO}^? zjD`eN=Hq8fkJ^YB47885_Zx5!E~gqIo3b>e?)+GGTK@ z6KE==UI2%0E63Nx>aNrxm{wPK4b78^dN8fn3UM>iqKbFo4H1t{E2eFWsNlPcDvZTQ z9s{Axg!M>V444V2Z-Ihe6r5BcS-i}`JRlCuV56WmJC}hnfX<9v7wf#I8jP!B-3h^i zbWnEHEuDKnj8=@|3>_L&a%~S+he#wY3-pzlT6P{;J#u0ySgvkZ@iov+1Sj>pTF1)l z`hMgktmj{G3D>kp3h3a#8@{zo#6_(dj<1x>Lsxf?}y z9+3vvVWlH1$GYv73G2J)-axPLDD1JGH<=kB6-l8(2jX$j6BSC0PWK+u2 zAkv~%!|Y7!{7hp&%%c_{5BTl`Q^UtoOkSitd>Qc*UHB~NyhqCol3pQ=w-BnuzoY=R zMpFxRii`It?n#=Z$2WV#kJ#=S$+d*At=EO^4(A0aD^#xnLK!2N;u}X99pm|Rd`O6k zl)S2p^RmQQgX*HXfm4G{O5s(S%`s{J6qfh(+?>|v*;DxLKF#tT{_XBE^Htm(M)DBR z@-jY76m8Mc5<(AJDj$6L2I;|55EcX(E3#*P@4t2N(_*TXjn4_@dt7)xvwVWF{2=vS z``fEu`Kg!r*vDUIcltCUw+M2Cga%R%-3ReuLtN}|&4y+<;1+lB?N~9(Dx_geDeptv zRr3C+imb677v0y)8F*B2c}z)5tXyN--KIUdi*NU&{uXA7cRY6LmrM^o$h19WI)8!X zmCt?K+x}kF;_P=xY#8_x#RN%3&<8zXbWi*!VOb{rQ*qhkSF`zwhFDF9qKJoGR{K0Dlko zb>M&hI*)w}Wh12paTBhBN)mC_vCd54R+TKRFcnlIqV;n{Tn3kL zuDVX7EGXK64ahXY#RvxzYVn)f0Xl!p_yf%mA>(`%Ms-+I#@mR0oID)h;}v|Di0c!4 zm?&vO89e4DVzWbw!^T7M@cj&DEq?hgARc1-Cz#@%F!hYPr)k!||Bm*$#nn5UzkWpS zKfv(dHtm(WZ;G#0{2Z?KGI379p0shQ#4;et)rBtq7sOhCSrFVk#!Al8ZST^EJa)#aZ+2`wS?*(vwGYO&{TyH z=L)`6a`w1b#Wd#%ngY-wZmdqov;@^Uj^QqOFhabB_~!s$S;Ax}o-`hk%L<)t65A2i zy+nKXMe^AZad8!4N9=Flx4D+f6)Cvxv8xnS9moqz^HMLrWF75^~f8cd`L#@R@dAy$K= zBuF(Cmx!U*=qP1H+Ku?`yr!Ew#k9v#b+c6@M8x7q?nmgE=2s;h6DL&RbY^RhIrlUQw8HxtYR7b4CTtVy+Xn~aNnWt*0}_;mwijphq{ za{(M6-f$rT4Zf2(oUXRVI}xl1WrENtJaQG=94h8Oq9Im8twJz-n;H8h;v?dX)L$dE z)#dIg>i{3Z?9T15(%?fTuFoiG#yA*Zg+TTP&`w(e7iBtoO8Evs1VhgnpOmGA7qv>@ie8>pd0DB0ogzz(PjL7F3$ z$Li|zH*tPB2Lx8WtL8&WIsoS2u!R!ZD#WNt4VCnY8!J1-Qgto*m}X{bVcG|1gl1*5 z2Nj#3$&q)D)Vex0)K?d@WPFqGA!6B6Ea2i6EhCz*$ zI2<`eVplLRbchV6PtJ?RBeB`x;)o6%rV+~yD--6Ri3uNiin}0{4dPF6@gZfph3#*n z!;-MNi};L93#Rc1n=&PBG5G_U?j^!{ zc~RFQB`+~OLEK$@e1O;*iLVi(QugoTC;rwoe)+%s_Oon0@sktqLj5w~NB`%B*f;2v z|Auhz@8Q}Ni)){MYcYDh{4{6y<(3dnAS^I@nmpdGCp8(qZpHxhT}oKqWjwu!=5vPQ z$8qh1<~1c9;m;4r)?)o3XwByI>%ZG^!u#><5sSl5f78!% z7|p?#$^BF0>1ntWc;8Eb_h*4$0e%ABY*qbxU+3|UVB&w3OM&;YF6*+sTGdvx-{$$} z9l!Iw6^;fsWZEnJd~pi=)W6mtz9;qk^NvsP46b{QW;qg?z6z&rE1UU;ysf=YLP)IXS#s&FeT@eFXTb)bVpcI@<)hTMvl24al_aH7<`PZ=F zNv4bUab9i`7q1XjuUE&AE3B@)!0y;#`^VApG;wi4=ys&tP2dy>_s}UaJb02ktVp}h z@Pg27pC3spy8{# zc7F749*{+7!b8+D?9Q;!lij0Zv!~=!9ED;hG+k{ktt?%wf+Tf2i!Lzn6=hH$Ebrpl zeQmqffVhlv{VYnXaBk0V{5WNbxOhQ(^#Q7T$^>Fc$p#v6zQOVVsvUlDfoo2fb{ni5 zpp!=y1#`ZNx>f}xo2r+0Y&HA?cBS43({zNy1`18taw>y$B(b_wy3?$$_b zKZk@b0ap;#n5(W`?>5-}vC6sSoYleS7dKP!+%hnp6-Mi5^RXE+4Bp(db}bt`yO6|B3>Wu=)hT9M@^Faw1>$mb4`zp`pVvz2{2?2YR<~;9 z6APiM&O@wFa`&3x;nD z=b?y4yr4sM^;(AJpngw1HDJpsx?(;|NUS2P=IU@YQCzFUZp3#&QgD7GEUMt4*)Z-x ze27iY&G?NSc{sqVf$U}!hY*@MaIOHkirbHnB9>~(n;_&NRzX-62qUJh@_-i?gm#CC zA=vE1pTH)(FPNv`SEEyx_E7REd41wylE`{I+ z(r`dYj@TqnSGPeNmLqCwkiL$wrt}dP9pKR%@Lq^(rP=J5E)H>xL$shOmMLQ$VAx!Vgg}lXfD`f6~mCL%;lRxZ0o|OZvrJj+6KslaC8qF zJb7=V;W12B$O^=Jyf{n@bMw02j9PJCaUqfVDr$>wh>H;)m6BRYx>}jap|2Q-w5dU8 z>n$NZq!g*l#2R5eK?ZAlUjB7%5FH6SZY9~jiA%@j`E(D#( zgQKt_XTkCw9qWSQ+a)aL4VEYPvLqH~^NlGa~HK;&9@z;xUaNiDtDWONW(?G#WmPAPF0;w9X8xT zWr_HfcKu~kBdRONU0p0DpsB_5E}?yi(A=SQde zd=U8hH|=lLqfnav=)D=vWnI=~eb-dI0Q&AiFnqoGf8T$NuDw=St4)LZD(Sk0AR>5q z=Z9iwdXhgxihyp=as<3WyMBYI1T-n*_BO_Xk}4zDQQIqvE=gzCN&8!bcud>eeu;?U=I}KmfL_INPnp(~U61NRa{mUu_Olgx;L2Sz-Dfzz#p3#_ zUw0q)cuwB$$n+pvDg?o7UHPGtBAY^Yc*c0ii9k?3oWd(3XXq0AC zsv{CZHDkqQ$5p7}rAw$b=;SHGMB3fK+%b!ziSEYdiEX{`)4ZVcN2GKOof^b1X*OR# z^(szw45#l$e86>%xH&<3Blj(NT+glb4d9WOtLUZ?i9N0>lzq#z544+!JhYT#hzdF` z5g%%JopT6=^M$a;_;z+uO2JB`q`MWEApyV8@0M}%Uj%jxV-}R*75Me=FJw)6N7xvi2 zbxf}kgD2S%;|i+KF7}u>AR&0XH;SA0zZs=K*-L$|1;K@aW1wW6y9Y8Qdt|JOnO39* zu6d891vn5n$Ea-T5Og>EbP=)T?5M|q`RZma^Zw8p z0H=?*#WQ+@s)yImM{kry@hRe4Xu1&>3r0d@MDr4upH~`4S8?4#d_bnYNBRUB%@kaWNrrUqyJ) z%FPv5F*;7M(t>w{Zjb8~WDB+j0xlYUb&8J@=mIO5(B3EYD{Kge+(T0$ZLbp-TVi)k znQo!!9J7}ZIYzoWbT{t2`8hLf51DpXNW*WUw!_C~@%|QSdqkh1Jp^3AxjMh45z@55 z(gEIo5oul{Ebn2(GhN(9(`$4`uOaP(JH0`f4!`cT)3;nElwW*~#qui4qkl|EkCTTR z==cN@w4#ut@`la2ITZ02vlHU-gh`*EWRGfmmm%RROQ#LwE$zXVSROrKd-53LR?+j% zQsh$<8wh&BNA4Zh>;J#}-fZ%FQNQ}vM&MI?^ygk=*gXdE3SK%?6lVi69@E{w$0wej zF0l-k^*voKu5o^eUw&)%_s(x|ZppA(0ha>rdsN538~+NA|IqyX%6l-D%et(~x~%Wq z^3xG+d4Plou?F9c?`nE;Qpglk!`q3d^G(`_7LQ5`_EvaUbNCv0*pqe_NG3O%}sHTPLA3%du`;OxWLN)dmA4?Qm2uQ%OqFLR{f2+9$fKghKI zeej=u^VetXmsoE*y>{`fy6`K~sYcJv?(_MLq{vtD-tP(>FH-U;W~Y$vvU}qd{>k(2}R zzx@Mf{sG#9_Y)Q#=}yRJuOU2*Zymu2s!J#tvpt)m&ocE#S)yY^ zx(RWPl9uS%%_<-OHr$8nO;zmp*f=I z0&$dm`cr(4`1_Z`#zHco`avZi#07uDffJQ3@V-7kq6EwT(h?Hsv6jyLd zp~(RgC4?IM<)olaAPXr+Y&=BTi0?dcbq2a4Z5z_Q2G!*>k2e@@_UDOIvCD-jvJMv& zL*QmHJCF4oCB7b81o9x{0Z{Oa~m#9G%>#31($Gbq8; zmUx->lZ1-Oksh@}rjsA8m;~LSY%w_iT|y|tpr}R6gH4sMYOU6VyW|lB=RkZye2@DEL$o1%!c_(pLN%C-S*$SDy5 zh}1yFGFCTwTuhbUtG+G{We0Xj+#_1} zOGE53zS)7FD%V*f#vYN8xEx6r&tm=!eEdvZ^v&044({XpF+OBm`&%@dcP>SKi)-)U!U*^1 zp*c9Ki>xlb#dG;1u8;klD`g z!!vUKKFTCme*mkm?J!Q$f;@BxuhOm_q8Oq9kryfcpYacV>I-i^_B&Ys{f9rZ2fp;L zdl;8>S$}LR<%VFfBL2RGl8~_wDnI;tyWUHI_mjXOaQaO=R)GI${`YUbXCu0-%et(~ z`c5nhEl8}QiK|YlcU2g`CN!_!{X181=20s(P^Z#4>(jbZTz5tuJH~#8lut3{gbRsc zJHqq^;yjlA9C^4wd-Fy7_7v>{S)QOhdKDMHMvAd$bsbHqhH>e9BREHbf z)7cu_Gc4qbG+$@s)-CTaz42kv_(5DerP+L$?&@6trlIoe3`k=OrNwuJW-(EwC6)_X zJU%k_iF+(<@J%2zTlU&Aj!S%gYmsqrbe|MP`iDEv$0+H8+C7@a3+UGEPyv_jtn%SL}5pR^#Vr7YwgkNuwxTQ=t zm`<-DF(IsRUh2)Cbu_Ib4NC4i!a^!jGdF~GtS-hF0Y3|C1s4N;QSk$13Y6qwAFHEM z>Vk%t#|fC9z@Jo3w64*ll=M1&aY3{BGSa;}?8Vfhc0^!NgPp9!$8$syep!Ub6A^#7;cg2&Uyd< zAOJ~3K~$M3NlE*bk{xOe=L}8NRoWdTEEzhs=tLFPf)S!8^}e=kt0Q>BN+9j4hOhGNClcrO+wRBaB(D{l;jApfL1X-6R@&IWJ1%jy14v=jxZ!wkp)pm zvtTMh6#zpOz{*qwvC>ym%5XNjA!}DYX)iTUjOtbmO%*#u99kmc3=xL}tL|slBhE4H zK7dfi<6m1N3_Lc!CTHU#ej7XwPZN*EJip%iP zDry74yGR)Yu_}gYX={jAX)ud~ScACCr~!wMws-#KLtT?7W97&amH!Wq-iehlPI;ISSzP=wGm4J>BbXA4@MkuMNOmqX202UB)vnZD; zn#2b}05gZB0ou9%fH}x55(0jm8IM~Osp9d$L|7y=MKsmtIyWK|(r$xggJ8rsp#_8% zAKi?C5w!T3eO;a2Ry;mRbrUB+T&W!A0+^tapt&Anqz3wFq2i0Cy0GHHd_3{Opny&ZQRE-hCF`osjbvL2lt3 zbn7qCKX?iqzK`6jk-S7p#5W0(Gpq#ieqG-$62Wr)t7hb>MRUaahq$=Kw>$E%A?G!k zslj%H8lqOT3cjLH97+xLi|c!oen4_!xVVlB6Icg%^X9no`2pkhCYl`6#pg)+FZtwO zxif!`{Bu6~^LNP8DJ~uW&oFQc-)<4#BmNkZEwMSq{7C8#nJ%tDIY#6TtLrb-x0O1e zAo{I|A>XKae~mUA5?1qlyi?-lbt12mhYrmx5*$G?&iA;G*&crYOP>DZFzaA&Y1OFrNWAp!i={+3NWnI=~UDkJAg{;-BWAj(> zh<~T+#fORPc38PW$!+Dz%_UYvVZmXV-VquGp#2h^1~mOPpZw|n=UuP=v5$Mkv)Ay$ zvJ6Oz)D;Hs~@C+Wng@D1ee8WxrwA-l9w|;kr-L`p9_pgM94c_xQw5*75)S zzw{Cx{rMH?%pgBQUOl8)-XpBu=CnlU&kva{o?zN3#zUI55!YvLz23B}VLOts+~H$& z{FTxmp|6s*MJ%;Q7;7rIbcnBEaK6p>rXh{D-m&d*eU4v$n(6cossA$R;=|;#9q8|4 z?g5gI8T=jo@1H*TS30IY{={>{_9lMW;k#GxAv5i+A%4X9j0Bw>I)-mgDnqa>ByHF{ z_5wNm5c%RqaA6{@pJ09KbNKkyF>lrP9p{lSjO- zf}N|F2DKisgql%$hn7>cyg}Pd$oibLzcQ<61>X#~&{NV9WC5YCExF=A6w`=vig-s! z9lqJmld;e&?lbNMO^4*E#VbfCvv6u?zroU`wuzHi-h7Q_xuvK_cDHe%!G+2W#tSz0 z-Ma?L;3%V39%(3qSVc~Cu3`%kbxt%p#0f5Xa+WHbs=Udab+MYeU^XDW9lVQS8kh#4 z7!sjb6-qAXHey+8*cg5exbnoVo`Xs@@=#m*O&yA&Llwq+GRWvtt;VRrSpx?l1HmgeKfd<=8NI+!xI#cL%9 zm_tilFc5Zx?hPc=HhoHmiSYli_hzw{WY?MAxAqVb=bSs|$jmB|HLy5Hw7Vq=me37D zjkX&mTUBg7l>Fp&Q=&x34d~SdY#8MS!+x<12oNL|MY9e2Ni-mt6h)%}LqbEgS`tZ- zEsJ(3tJ~zIiq{!R-{GfY4)vIKh&E{NKm=VIe#>fuWEBw= zhQ5O_;9?JwsLhv%_a1^_X~e7{XNXZKDOQ%Y)G)lX5=vk3FL{JAOkzD%`&P5sJiviM z+7x_S2(6$+$fKaeRfDC1Q6@)inD#f-HMa&KBYs)eU8`tX#s*D7hz@gBvG*?HoTJ<6 zr_XdHrv}aQ+MMwX6vM|6vA~o@S6Sto4pi~oEz+$9X&U@YaUR5v#O@Mmo-%BaRceD| zXmFBoO(r<0Sf?ztu_lK28g?mEN4Z%>88BJn+ncB^&=L?ig$vunWM({?Wcf5zdE3-E|6DONUJ9}<-g8N_fZhVcPqSq8ZF!8u_4A-MZ~Z}?3NY3 zG*TNv^r!}Kt}=I59<0!vzmD(f#83@t-LH=BWT0Jj!P^qc+ZAzQoM{BBJD4#VLYkP*!{$iroH^CBt!IbZ&{S7Eiprj+*=c=*!`N_>PgtSD&* zY5WvIsN~HVY-mtfLV2DLUuJRcxjXl7V?VDK1J>Wyy~o=vKXx#05Z>6p4_yzuv0=J( z@EpsR78Jdg;_kud$$E@z-bLeI8w{M++w{k0uyhq^UtqR(wK}$6eu%t&5z>=?+c}yi zby9z;N@a;ndmcCk{6pZs z1ujlse-ZfH4{@7L>ZDHUq~3X@z6MzZQ?MS*GrWJ}2Uuutk~cf#eiyfO^=^8x1&S7& zJH|DyyIEJqaO1t?)eD$=@=bsL=YO{FGr#sNhMNay`3P|_r`x@Z$eOe|P3gDDn>|Fr zoscUvMf(}Kf0m~E8uNSpl=bBYkntj`qkDko?)>~O{^B?JC%?9$ACIwgk+gaUxgmAz z)EsIJd0bOguaJ|_?kTQ4Caum>h7G zC+=LLTU;fLJJlVT8*~b)GaC?p3m2Dk2R9j4XVCFH1L>$|$fro_i?|@<@gkbHNvqRnIwFsk8HPV2^EIyJV=lOVkJ;`6%yz#^*gnQB zZ$P`L0YURyV1D8>79?gw_HZGCn`5OT%m%{zImVl3NPWWE6|Q*&8#{7Z5ZZumkFc?z zd4{GrNfTk~xC-=|u@Y)>d#c>TW^03#Ia(AmM;ToW{*mgk6v>#bDXh>vZCqn7QgWk`B$yU4a+C6}qig=<_Kw&nXz*wDJbC zLu2LLiW>=wL*mw973f9>UWj1;7pvP*72UL$3FfME7cZz*Ttmr1SymUGCPx{Bu+`(c zHEFY`SO(FGV98ov@01Whe3_WYGVN2nB8Uj3$lbM_37R5;N4&$v78}7J{!qSxrSk;H^#@t6*B)r7Bgd^sQFWH&gL3esb}0S2#nelh=jn1U6Mv zjWo98O?4StE09{6nc`dq*I@ZPrC(tt%=Qi`o1QXy#vD z0duBz@eIDBj+Sfvx^qAWzEiXaPO5WKv&TunHI+4+jt{VY3yEuj3VC%v zW(KlNXbs;LGD;}{(Sq-k5ItrA1WGAY0M5VxV-xn9rVJjcfs&UrM2 z>WD4A3U7Y9x=&4N<7)I+b`!j|9#i;wtZ2Ng0Vy@`t_s_^@2X2QfN81XB2)~6SHkIp z3yzY6yo~i2DsEasLwvrPDinq`lQ$mMT17rY z!%!>T-51#0+(Y|&Dd8qg zDg)bC)$2x7tQd}Z3{&CEr z+nEkNsgpXXcTycUSJ>$fiNgiZ7x;dH*2eWVIutZt%Sb>mfXe~8WmUyjM+9=?5}!0Vc0+;|f$4ddz* z?fgc4wizO#3Gvr)?(U6o%7JwC0mk()rT;F!`wP#*C*OP8dY3XTAU8F5CN-2i2Ya4o@lECzzFkGq?aQRi1>*5}UM=tf{Pr(B%SV6Z z6|CHcx$}6pkN8-{o!n#Y3ObCmJJ8HGxb~Pb+=G<^bl9Ve2k5w{4y~p>SPKK<){}dy zIs(y%>1}a0VdHEH^~t!<6Eu*9z1Il5udZh2D(UFMm^%;lZ}>ryoO^kQ+2US8v%&d@ z>u%9@x3Cl_WmW}LK*+debH}ai;w3iME|Aw3aosh1dk)uLB5c1k)}q_HMzed!aCnY! zbAVfKLs?SB8RO~(MgIugOZ>!3&+*t}%0Kz^1Gw!A$n2P~eT*efDb;}(=WF8p=4<#^ zmIGQAI6q>xT`h@n8N~3jRTb0n2FJjdb}$KqsJM2CCdfMSLo9K+8T>E?{YcmILUH zs(`08G)AOBG*aA*P_{4~aIU|DM=`*6S0V2p)*;OiqAlW-I4k6S31Mq;I@Qt~5CYOD zP6ozQuoQ8@BT)!VU1!xPR8FeEOBT|mp(LuXq@JRVGI(6$33H?LiX|w{D)TmGu-iO< z32opEML>lz)^&`tOqi9*n^b@2H6m8Wx)pTH)rr_R!lLqIZI~fV!bc&*DjYixp(*IZ zSx^GbL+t8$r6U+O4j-!f6bE6(9fzal`ZnfqGQ_&d>n***ti`Ng1-u)p$WK7rnz(-% zT_02ogWtvS$hg_1-Py3Y*^!qmmTJ(OxEfYfNuIVOfzSR;GpnfCv7G*-<1gw ztaUwnTX75^l*uJ6)WAc-$bE|o2WZ|#LKWAXEKuDhZCbo@q-0ZYoM1f^=a2+G3f@-~ zQ1F#us<}FzG0~|*QoOwq)n8vRmI`1uP6&O1i^cc;VGlyLT0vqeR4T_ zbc_sIF%&j#5#k0VBkHTGJ7jFAEDSBxm72#%cn?CeRqFLv62q;w3hq9k&JjYre&sZU zprMFYg3B0V6|B{R>np2Pz)GnM=)6YeN02Wd4K*MwRJUp9Cf2ysZh#e~47KrTI^iXX ztL|!bl)+((9vus236T|fW2p87cSPxr5SNJE2-4!*KpD45{T7Y}vyL)G#2cX-am_g4 zIy^pj)H|e9T!y$Zai<5IIJ7LVT)<_@cnVR&H%gdYt^D794>2LmUnUP7Ca+*tpv=hm zOhtM0E7I`CC{OUE|Mcda>!-IvtgO*-PTV@8q-V$*Pg=bP=SN()Mri9K&0P>wZBPui zTF5s5tCKqGy^0KJJZ5u*2B9F~7_k9y%gTk%fwJ7gFnk**{VA+OtTYUV??d%0Zgvi@ zM(eNA?mkly5qTRc?<21keEjie81MNiU;fw|pKsMaPg=i1h!3!P@1FsXQbQgBO_Q)D zy#`xxyT;9&lD4tsle`!%z2)cso7GSMUSQ|x8Etkfnt^}uiGeqpw9VF2aza!0ef@kF zGV^oaVfE}Do8v%q&q9Ac$-fI1??G%+r=Q$4Li-Bd4fL-(L>gL#<#lWj;`{*LK0t8W z*zGBooUn96-dyJ4$Dbwl|7Hp>`_4NzP&%F4yUgr?T!+RMwFC*@mAM#edBkG4O@EY)+0sk}Asrv|T6n9?& z{wv^rp(d`L)JdJxNuAWI>+}D7$-|$1g_y3B;u+%L(PkUhzE;>1XZXb{=&^@%ig9@c z&7e601@d*8-K(IE{^)@5_#&mh#^%;{(BZ3psaW~NU;HKyKmKEc;YY}8W0~&9w=3`o z->fh{lF|Zng|qJvx))iTxjRzm=1ZL0LV5Gl=X$gLZQ$EH`kS8qX3KG-{QfTtAjZcY ze+U;Bgyxub>k2l%PU;WPeh=&rO{Z~f!1*QS(&V)9h*yw;a~V~S<`%QI8ta(&fNqY- z2B8Lay;Zr8A&xY0he!X%j?aIeNv%KqdjX!hfC~q>W{q?6yYFAjg!nxe#BsnkiBxvT zYY?|h@K0l7!)CLG^m7UU?=s>C{Nj+N+W_~R`_K8V+c5PcHsJBBpF1&{A8feV!3RAtnLy5A;MTrvyOQ?+1efw&PDZ{Yj_ z&BCzR2b&SXP(>7N5#JNGJesyqGTyJjC7c+RBc(r&_*o5iGC^FzwF4mZg6giVywYoK{=(#zZLcXZ`?wx>NA#No1TU7=2BYEv`vcV)(hkD<^@eJz< zu@RCAc`cM=ct455IitP`->Tru>M>^RDt*Q(HO43iyJQiUO&rmO{xB ztU6&uG3Tn2`t~JPUd?K)>tW@tyV-?lZ6*w@M34z5F&06y;C(_% zL0F(A65AU{Ji>HQfyP$Xl8NU#F8zf0Ff3QmlR3!Ta8pxBCf;)yJvl4dgQfyjkQS`W zk$8moRdtbDK-5t-yBHnLPxy=E@lAcdvk0M6d@Iv&Ca4+|#o=+j9*>$_71lx~v`X#; zGeu&?`-0`_7LRSJ*YxBkM{5mh(^MNr!Y6Vcz_t*-B*Ziw zw-GJdlpKi7F}Q@LwyvQ>ybs_6O^}i&ts_2wYbH0lfQiH1b|e$f(bp*m1|U>%->qxV zq@9~Rg>2|LoVv;dJ$ssN z|7ChJ@(RY`$FRJQSguVPS5a1)TFTInlEd;}5ZVC6Zphkrw96Rpr8IkRY0gi7 z?hp9=PrTMy_T`_u%EO;|4joQ&eC0l7XP?2x;m+rVyvcn)86v}t2N{;nk-`&v_2>Tb zXXnQrbNul=_Y$}VdHO8Qwdhf-6r?L14Ao_BuA+qU3i0-=Byq$zeW0 z|3_H)LrS-gmHTo2-DtB#oPlIPb4xPF!zC;!u%OxBBhI&JW|xWE&)f;&v$0`Z?$NK` zkKdd@WRFKa`>*-J&%gCO(>t*~_N(V{{yrq0#fLc^5wXmbX3fVRzk>N^`NGe?!uQ5s zp43UbGb^>A}0O+eIAgw>V%Nd1O1Jj<6p`6B$>U(v??^{pSaz4_^=+Cz?KRj;t`oXv5PuaN574xzY6Bp; zq38`H++=?0MZ)~}H6w+Uz*xY|xC4NEi>i#?>0#p&^*`bokcjxz^yfk|zY6oKSbCbn z=k7)G8Jry9;s#3#Oq#6o?yK zIGzO52#W^3Pl0#;`CV+bP3Vq5PEC%$H9pn6URCckkVOX7_3_F;f z!pbg4ix9weu`+NiCqg$?wzGMP zd3>vNP+e;Xmvc3QD#nDH_vGAQ{T%U7*5G$-5-r`d=7MVsnYI}dR1_DgD@`ZHuAhh( zuAbK9)uaJ-;HJh~L2#}LdXz~p3|2+$R0H!|)VgL27z$+zvmKmkk*F{V;;rU&B`|Uo z+xtM?2zd}p71uhPx9W-}qoYzr$Qy?X1F=0qG@!b`<$?=qG=+*#VL|S<5x;{_F#*mw zd{a>pA=dqOjo_TC&56O0)}E5APw{C-i}q&KbVFTE$(UUk~a&&>@C7{Usqa${`lRL zA>rDdu~+6h&+z%5eTv5(bA036Y0~BZFCEz%j-Hql^&h4=b06*2WxD;#Z}_>=jI;+= zX!owMy7pdN_)%6jj7NX-U-9{$edmWNJ^Gss{jDFvclQzI7YJd7xHT3sPCc3zlwqLs z@8#o zD?iXw<=?>is}gu`R}VZj{d-a;by6pFQg64u_^E6B_r1x@JMGp?>s(oynX=pftQ51Ofmn4?@27g*^`X@hbU>6=np~C6rj`~>d`WrXhoEu4-(`Z`b9}=y;yPXWoy<8N_WNE|5)O=y7&~G8(CjQY=(6p}nQTGJCy@rzwIjYA1waRKY+SQ8L;gvc?P1#DKwKW(fbIC%$knY8M#aUT~V#Dw#G4Rx{& zC2uetkUWB9#90kWv!14V4%f};mk&}(rkVXA#e~vdWSJi#_&IPE7aRO6Vv-S;&~ZT1 z0<#^Ux`E5EMcD*Y1+kVGmbkdCAxWjH4qMxzIHU9l>=T0lxh`-tdBoUaJ8o8zD8c{QHE{I zA|it34OTWFhB#L_wK0( z6-OE!;tl6K(Hm*7IuPkSz8MJZt;*w04W>AK{8B1cB7Ct8A8U#3@VjtD>v}*5OfX_5I0c9d3DnEr_pjqbPLM32jx0({#w+O z3z^U!B8vk;IR`v{=X+oMROZ6t*Gab=%koiTyF$x0rZc47$I*apVY005X-S0cxK1bJ z=LyZTh|S64G4v18Zm%$|GTgX88E+s_k$wjY13oTsO;58}f-9H`d6?m3g>Mfqfw=t? z>F5+CZ*c7un)#bJNu9ED?zXQF8H0F{|1Ore&Y$o%~`m4KRfNW?zm~+tkeQ|`7YA>9){I}=;jj9KY-sl z%jW2qM}GYkz9~=gTc5fDT)FeQ#~yQh<@`Tjw*NrQB-p+3mcQfnn$Au=!`dF8OAnF` zukqTPpLbq;^jBIoM}MDo`yu>dk8bM);?Awt;5oDid9%ZK^ltL%0Qb^@M}PAV`25eF z1ks(;->mxGPh8@W&-?+Kt37e&UdrafxMqnDEAR!)5l!3V)KHc$k@{!A{)FE?31z%p ze^mnSJ-~ki{QJNMsUJvRrv|Y7Z@~AqU!T-TozzL46nyEE-{#@ZIBZN{|2A%15W5*^ zd;sr8ghI+4I_{#qko)Ht@*ji!KJ&v@xVdQ9-yiv{|G58wyPT#Q$USA~i0y`U=k14G zl+;pEu2#1nprl_@<~`_(+#KjF%Hr#gEIx7fk@Jmb&Fcb2y zUs;=W84F9s!}nr5Kxh~E4ni2gXE2YI895)IEO6Q5^iTQ4Pk)Vm1#Gh2Q@NukAX!#=wjMxOi9-$Hy7cyuCH40XQwBd+=>XT#Ph3&){A!HpdOVQ^wZre^hOPmL1L7342G-U2{OZi~u~bJK6FW3lj)C|ZQk69jW(Ka{ zV+}$R+2EUulNNIk7i%a~6_*TEho?}+I=-F<>KM4M*8-jNJnszO*c5c8h^ygo<0{fD zGL~FLD)<_BRvq!xwP-~squ?8v+gc~S8J*}qTtm;_RzFr$SlOUOab9T`sS4$i zk+HI$ofllU!cEOHi-xTmG#Rdew45W}0K6xm?D1nj$8-;Na zvYXZ_-a%ai){-D-&nBuAc%yz&S&uj{J*@h);yYP0BC@H4!nwool@%59V;Q z5f`h|*<7w@lj86pBdx2h+vzwkGn^#U5+ty6gr8kPq{B5MWn42ZxA8upSt`%8+!j?0 zb5b4EsWuY4gD|fyb?2#HzwKNWBesy16{+E7hNyv7@p`sX$k{QjIw&oX6}fN7qr-bo z=nQw;2CmiJOr{F|!3Zsrdp=Tn#m$z4u8@{{Sc>?$A&ph;^Qs~iVq1|Ys7(%4rDP^P zuOPR%DGEL$-0mw3haS^8I<}Ot18mBSk$n1c(mB zla2(n)m973thi%BG^7@ApaG8ISO?30Fu z5RGP$h>KEbGFqEW&N!@e-~ z50ZLA(`km~Y1+NZujR~kN4VoX+^bMd|Lk)e*T;_#X79l_yJ$HeZ$60Ygg7fz1}_08 z9j+ZGzV&&^>J(;A)1G|}na-gybcnxz3}Ci}i9^~Ap*@B&;+mE)KPJ5DGdZnxDWy(Z z;7{Qh84k~p*DW?a$L!o)(bhH#(zuK2WG{D#Fk2DF_mKMsczyl=R1DWo|K7i1_lZmN z>j!Dq2aI7439$yp+JNRul=T%%pWut1dV#-O+?_-C3FbQ=qTRnqxBv2+{ypC&X6;M3 zc!-w=;TRtIjTK+`yotLw_j{z}gP`|NhW8>|q1ibk zc9Bxf)93?ex{u-Ly?p$C`WFBDC;sBjb?J}qxtCdY4^5}c|1xoRD(8*GnP({F!<69x z9{ts)`20VAV=l!zqD+XN{RnaU1GHNW^HbkK;v0o@=Z$9T7Twkn$CvI$<%0}21|ECt z4|wdc@84{2QYZD-xxVlVm-*?>{h#a}y^pkdH?BFr#}0^?Wh}oy-rPXTQ~bo0XHU+7 z*VYeP;0?fk5B&0*eD6I}Y{Rbs{|)e8bHd;~sgpXXllmSd#uxb}k9_tf{q<`!^Lxp| z`@qiP+!jd0%0SLfQqprc`y*WW(^qlT{@-^ugIqz&A$fg3Y+w4mUYm{&uyPZXw|5i& z`Wnj>;_{F@zfkRguS-}BT~D|8zsSQr!*Un1bNKcUABPDeARq(YZ^+4$*QYUEgI=PU zJPUax@P}cv9%jNG8;}u-DjguA;qv#0f7Q4@0 z&>zkldf5`5pqV=2*v}izkgclynA(d${HrzPtVg zaaYqeWjKr40m510Y=Uj6*TYTh63|zhzyuyeB9vTida19_+IjG zKjZ2u&Gx05s_i!T>3EWGo&M%&N_uY%A8TF}!d4=dq=o?%kI5bq1ScaoMU;ZGk#Upp z?k3}A3-22w9M$pQcooeJIqhTGVXIU4_9mfSO>_R!?}s^rY(2xcK22GkCy%v3Q&J!_bsI2;L};1}7Rak}6``RE5XZQ3 zSguV3oX6oH)+Z_#z^IKPCxVYsn=7&6KD1O;wO?eMSIjb!1DXx7C3y^WI>OI!Ay${T z6UJqWFAfO_lM&4j8iP>kv_g)Eugp|R!Nf2Pl%m*C#I=U^Tj+Q%W)U6sFkf(S5ARpF zCL>gQ(|Bti=QjBH4tez{9|KbhzwXZM5*gpR>_VNd?;eP()?2EwDe>EG6@E`u# z8A>>h**;i{isIb{uU84_<#(>oeo}w!sxr&}j7NX-TP&9cw5vKLXJy1UM||;9w*ccy z|9@}jU%&cc3cNyf=YITkUq1r=47df{3w#*(FM$65_q{*#tj|$4 z-^9D`??(Q1efgIM9{KF^2OG@vsd*Oz>p_)tl=b}X&Y>gYNXvc0s?BT21bchhu^G6Br~oeB}KwK zqIm}`^U1wAF%wD^^Zc~VnyL`%{D5>0%bqe8Ocm`tqjUI>&=hgOGuzuRu39vCvIss- z&Tm(pyuQ&Itfda5P=@NRw5(Nd3yO|)eMAZ(BVm>(d5e;4!c2gP;hUj`G?lipam(Z& zltM9wrn}e&>@IpibN%^Rs%TY86?4UbpFx~YNCLo+iUFaH+PetBl#+$KZg5SYnQt)f zU}(`%iEWRP@a73_Lm68vx1h%)T7p+xh!jm2x9*IQOPGP?>Yx%=n+qEUmQkzWTA}HY zwkNOV=+I9t*ABm!lRT7upbP;VG&{#6jo2zsTvPD_Ryn7ktzlMWaO70iN2646yQwbM zs_Ra|t^kz!da2N2%Ms0?qCA2FW{7L>rnp$q9A>p~pv5p09}V0Tm{tT$EtV?kLDk`- zP_(*6tK;0EG9s}G&LJM6+GBad`BP*I=nxPeD2$X8(cDxGzeyk?p*3LI-!Twcovw0% zYYMkzZZk)m89F+QQW@PC(g->_d|Tb%Y7Hqxe5lw4A1mgWdN5{4{R%f6>#+U`4OsfEH5fjgF}40j&m!F79Rp} zYs9sO_;`bo_AuEY&H{1a$tj?NVeFBI8n~y4%F8bx!PUUVSkK=oSWjHx1Z8lHgR9Mu zt?4`&>-9+P1g`}|3@l=4AeSY=Hhz`}DB=sDtsRCi*UHomWBr^-9zBM3Hz7eWSFqe5 zW4%T>*&t2E);p9<<@{RkNL$c;hHoO`BF;++9e`8Fxtd2FsgYCd84=YoDU*{sh|J zMEeCQ6?urNs!PmIFk7JUh@pFx&;7!$@TI?U@0)$i;Y**NX$9o(UO@kqZ@R_1_1RxM zMC2*r@|fk7-+G^0HIujQ?l4S`vt2w5e3{?;napQC|7-l_WB2jxvxL>7b~msp&y-RaG(Q9WwGW&<`nfM0v(-aFUc1z#zFW0UmfKwRcD-+XkOuE(c+1>92mX8D@9}o- zPE(>8yMG(_JHUVb0q)bKE_JC({qaysalEnr`6l|A59WFQ{?Bar%+Gz5X?q2^^9=FY zSH9^u**j#)=8b2l+czll^ZfE({q9?j`|)=f<#9B95;@<#3lY&BJs^+IV5Jgl+&wZ=E>p=_^Ec29r=RyV%<&COlF<|EvUd6&?BMtW%}9bX}fH8DIi zyEk+P_bB7Qc<&=~ z46!3z4_o>%WGoL@xq(JV2NzgT>U>BU&q>QO>U>1C8#vd&0-}MC_C+)b(}Pp6!`8eW z@1SwUtVcBCTy3Mw`Bq~X=BsGfq1{aC?l6~Ayj&-5AE7&Zt5Lg*$JFr}l7APCTP}b=E7yu|nY*G7LyrPAVs7nm)CrwZ#)OT6gf{-}St*{;U60G2 zXUwV@!`*g2!rr4XHw=eVQvU|EJZPNJ`53o|L?a|?C=dc6Or*us@C8{B3pf!EcZgkq za0T&<#6(FW^?@<~860xb3WVtuf&S|f`Ozl{8D-dldR2M_2gwF6H zEm7Ecu;68&lluI3jGFE~cJ|`rEmR^q)_qO zW88aukCB?Y+x*H;-+7m5_mh9~Ds#Ar>Io)8TfC?{;0_|Myfv-mH|SPZNW-1?Z5lpQ zfBFV__emt(0KN=7{J#0yeC7*Z!?qt{Twh1?0h&HdSUe!67w8UOpg+FzZ8^PhHF6N1 z!|L}l&lmjo-?{}|4`F^MrsI7|(*)XKGJMC|{!!3pfAJ6vkD$rkEW&-iN_{JD4Bb_J z{AW-22b_ICdkKH>3pd&J{{hQ`XGmS5TfKoEyo^X81{ik>e0$2g`y_e$2!~%i<#T`I z*ZI;V6ZKM;`oqu%Y4HBH`~Ut9@FT#tx}nd&uhNpdzY2U}zs;pCb*W4J@zRg}ooj^o zF;uQ#x@hCrwj0 zuW$x)vv^ssyz)Bswwr_HBQLOdy~hP=eFEhrus4wSGTJ@B zDWro9W&0TO`jh1G)8IXeE8jr6Z!$&VN}XGYQ`r;|*FQ$|XPM8=fZrncb4(W>M)e0si*vez-=*v-dG{E3_c7d-Xjq}0q5U~3 zPRT3s<|U0ebU&j&h#SJ{) z!2H9Ao)WqdQA5I-x;wy1k46Z6pyo%Y8H6PgUPZeH^oui`#@&s}*FX+o_lZ5rcil$v zwNS?u?hoh|jqRJbh0QDG%_;69VR(aXd6(_&K;_!L*lYpOh>P2JSs=lQ-D|i#(4MR)O-~y z3qrr=!kU35Bs#uXQs;e{ok_zKk1eIAp`|HBz^hUN_(j07;Z(w+B9idh#_`caP$4ch z?CxiT0gDkzr0(59O$94pIe-auif@`ls8e@>i=r4FgwW}mCTuHsYvbkA0c66;)Oeiq zR1eJSj<{?i@R~w1@Vmw*Em_dqjLMp6g=)}JzS&V}DZ|iJaAVG)C74SqJZn3#KXu<$ z!X^Mo@wt_BNuV8LQ({ys(MtXN5X+7*wd7`WG#GVSf(N8iC?GZ<;h5Cl$IF^=-D5d5 z9_^kT5kpImY6_Gw;`{P0ydnf(4fPDs9_l01=@>I_=StTK?C9ra%x*+iet2s zS|1{;_vejO_QiqHjt7QWTX;aBnj*EOqupETJodF=P{asH_Z;EcjsuEl0vBvtVY5-^ zfJj0Xj=L~#z7LmEM7I#{BAWNdc8yIt=B@6x0beLKDymK`v}@F0q-Dc@G(Pq|c`S`n z{ICcybS<&#=9Hb&t$hDF+X8}{B5GKzc-H-OcST4OR)$vAM`;COwZ)%BtQ|*jy2FY2 zd_kQfH9A&fyFQ9z(qrQZVL21}EiQpFDz-I*gmeiF8Ji7_Q%lv(2Uu0KzeXIuIe}^z zQ^P`xA7{Rp=?-o&t)GRdV>s$D{{(SymF4Nn3zk6YMUbyG2M7b?%wx z8^msJ5Z8$FfDkS~uYs(n^BRp~D^)zaPwa1#$5rF$&S1re!#zB`N}@yKNR0ms1~{w%h+NlLfT=O@1KI{fVK@_+tUukhJlJfzki!1@od8XiH?VOtoro@xWOgOa!W`Ja0g zcn&MqsB)9AcUBQ*;C)~{{3-Mwqu6n0kJ>-uC|Ze1tA`Q9K#1>@P6(Wt}xq=usZxW z{n2f@8u%}Pzy3k()TJ(UsY`v&_1RxM1pgG8o+PZU5xOH(!@kt0KzYEtzRjQi z!q@3e|IHuyR@~2j-uT=v{W`mgirKSR{wVWei+1-(VT1ra_e|3Xb$3A7yiA$DO5Xm9 zKaekbzw%dK<}d#Iud%r|(@h^HZ$C{K?xAsuXhDe(M(kY3Ih52%4(lzb*K@yzWuO;`~a^58jt7>Z$q$Flr^7F=NrK5@7`H8R#$(I zZTTd-i)Z*x{_YF>{lB!~$9~~oGpz^EXX#I0BrSiNve{AQA40-aNRG>d zui%o22d@zO`vhGx%15c=0r~t>NGF7@VBWWqvVNa#7O;81bwJ!(Vv7N{4%LLwx1z6Z zhWUC+Ci;x;I;fG*-z6^YFx@+4UOz#9_*LqBjOClahY>wM!WNO&2?}LCA&;P8OIlqJ z#Hn=H)ZtM{y^@yq0jEqS2xkyBppOtzGlFbZLMPa?!fit1nm3Ev0PQw(k}11We0Pl+ zFAyz=XRI!pVG{x&?I_a%mw=>^7$4yF0LzP(*33$XhNc}}mUv-5*1p2C;-%o8@VbDI z(Ef#HUgQO#Q}9YUIK%U*rT&T|bp@{bBCmiIr{>g5yrBC;Z5wqiBaKWY?9+$d%8h&< z-U>>;%FQ^U0I6Z@g1A#0#37v?%1=f>IRO;}dY%568F1tfKqU zF5BZ16gNdfLjj0n>g0IMjhQ%rjRV#tR3mXIt-wePrx0AwL9tn>TWurdTL?#cghK^_ zlLkjqq0B~j_;qy8%2wwsYM9qT z7%C#((wzIEG;{`!;1PGHZrU-73&(74;O2;Q)(|PygF;#q(xQ?tBDFLF-K%3&sAI%R zA`Xt_1>=K9spA0}9qmR^dXaSa>y2++172?8Jcj6im5k2`jUAz%NUII`qHD%wX^$^7 zbJwcu-*DNN1ZJeG2uc|{Q zhg3TOBB3_~Yg}6qB(!ol6w+Ye+8Fb(y$*P|DD&2J0(auVsihgzR_i|L9rmaVpeh)Y zIe`kAPO#iz-u|u$hS!W+YDsYcuZc1nqK-zVY&)ilK4M;)c3}iFsj52?k*gZ~vQ^z zqzjA_;^GQvxb+>UZ->L%o~Dl1nD3wP7ryw<`QLx~{(C&~AFjUiQ#1HK+v=4M~0-4G8J6H`!==U+OiueqEj)XIc3dBRYH^2IT?VY!f^T(#+NJirZYAe-|bl%2D zi=k;hzCR6ky@AFI6v}R9bL;zYxk?Dvi9Mh@B;F#}mTB{7<7b-FpWdZEzKbAOPR#KT zn>s9?P_`e!b&L2K!rhjt3=7imfHHSjHp;lbeTRexq{X`vE}CY7Z7Ft0ovt)P(AU^> z1+xc4@n%wbquV|lcNHy!{sM`WI(29#sLo8=s|{J55|f_bx`=7`9O&^5F~nMy0&(;1tWcv&>&ZYa$FDvp(w;MCqo7Mbn`=B>BK zQh9T<7!SzCA!I_@;b9~W16~%es)TL?PvA6kh1r{CqhQT&T}9X^r3!id(5N!vP=JVv zG`6WJ>A)#dOKytpjb<9AK_f_zX4W;Ysrg+7RzfQQ(}H+Kv@x5h9Ymp)o;nLYZ}DzR zP^d-sCSS|`Ysk&`4vN)^=73Aar5XHJ+FuS`pm7 zxXYOdX(V49Vb&wt)yLB!FxFYyz2>z!`b4N<|TL^Z*+6<# zU|E~_x;HPWy2t(O7ZFN8g6z>HMj9q;8mZRd<0A+O@`#lMZWZ75SX`iSKvG#_345}bXnf92JO5^)FdmaP({c34{Hz7pBiczMw{k0b;Qmb9t|B#W; z(!qJU3grfQdJIiHsynLmXb?1R+qr8U+8LotxFixbS`I0@Q~HzF*xc)}Tu7^X?Cw2{=uP5sN9f-p$m9yO!#PJ&AS_SuGN8+U z#p;o7yyI6BYdF5ee16OnKFRj{N9dQraQr*;SD(kW2W;+r6b+9N`i9+z!z-XLuWw?L zlQ%~orx?$2@kY<$>Q_hy?>{AKuGDhG;QtYXQ@YbrBrIuD0vW4Y>UagpW592`@5g;8 z>E``Z#W7~LD7K^CKY^3`-;v3iw!{vMdL?^6Hz z#*_5@6U4s0r@8x3iZfh$0jr;2nx5g$eDQ^SS=Oa4b*b->K1hT2?*jiL?JM~Ez3@2j z><6|-m%7xYF7>_CXMgb!vmaq`^hwgm8U5+=@A~qZx|!77LXU5=dE>*tr^px1=l;h3 z`$wN&CC)$K1wQvnFETxNgn4`QEf$(g)O45a>v#Co&li6A19vA@Z}7Rl@ny!< zHB46o5^ghY7cAbm&GzvhpkF>lI@%HAzec(TXv%1q2&)ZceUtgYlSoKtEaYvWTirq8 z1XM^PA#9LPm~KCX_<}gRRUo2TK((0<-$r_H4_QA=^=J9)FBp}9Fd122Bu^t{ypGDB zCiYK4xs4NnEpE3UpV6JXjOxgI@q?`_YA=yWTD*#lSAmgg7pU~$8O!YkUf3Wyp4?ot9X>4)JwjdWAmSWtzWlZz_*qSIG4M$52t?YSVsSM?|-X zzE$j}X^l)bsN)rC9)WvUN&6AyH6{w7wB%Kd5Z;F1kb+RKd_XP7KugqxR47)^ZbLkH zK-nIE&V+7@`8)J(4mqJip>d8gQHbgK<<@c=9{uY2-zOz0F1_Xxv=wAkRaW8Nn4#%a{m zL>YUkwPapeWe7&uEO80A2i&dkZf$>!DoW0PEeXpl-9c%lJ3VpOp`zq*pv*#CR6zGw zhn8%XP|*lFBxEb(ZR2>RRe>thvS;Vkhx}EDeQoBeu`e&9B^hmh<=iJ2Re+9WdX3;& zn5``=gk@5_TIm-fHAgJBg%0<(5|i!m4X+EV2(qa48a3d5_LL4eAUi%0+I@`Gqm@8${KW-unhCq%F!I? z76sg>C17JjqF^&E5ne{5Un8MVr$ntv3^QRtV;SomLb{7tLiWt!mdt)YnNLVvpjgC< zVDqwZt36<*h{R?-3xqu@w@l646&*=KY258O?hz*57D_s!>;M{z*)nhbG$XT}D?xpK z8`2WOAvi)qq}2Igq8G|$Kx5hStsA<)%0O7OgtwUx#Blev$3C;m=XiR0<8|`HmaTg>uv)yTdX50USwtCV&2CdDo zC1oo}GE@aC5seKqL2-oj(eE{R7#*OI_+x z-&7x@!TUc0{{!$tz(0GR+gzm;vR&#@m%7xy?-Hv0306nX&>x-ApT4^h`Ry{C#f`6n zJ_Ytsc77lD_3y=w{=U^3PQOjz+Xwype|<-r8hNLF^5;HET6~=D=tCS_{jG00rsxz1 zBXQUf`g5kuiabUZC$BVQ!P_Jr5m9(siHPME6MMVq`0q*)>U@IKPa@qharh8PJ5&s- z6O;!`+kp1>h-r=GJ6Nnl9npga46A!+EY#dHpFu5GvAo$cH77LgAS5JAgzk0R7KF4x zLo+In(h{H^5Ep`s@4y|jru9~CBxZ;B;~*f--AQ$jEFN0sS9 z_Q_YF>l`0Ire;Fb+@WF97^GgoguGr*wk=&3R=JI)N<_nqXQkE!s);xhG)}k^X5owDQ$YC=c%?LyLZd~)wN&v&U8D%ws z7PQaQ?KQks%5)5J1&tlBLA8BeLQ*s?S{dLR_I%Wa9>5(FM|sf3^84G=Nicf?NsiA7 z+6>4LcGxV~nDJPV&|%bOkWUJ}fm+D*D#0ADfwIDvH(PW>V#+sPj?d3WsT*Fg?QRDVhV; zIk6M!LqtLls0|TPX2nZ0pjBIGVcsfU3*FLygqdPluncKoXlh(t#PM11)C%eH4$2Oq z)6Dc>cy6C5wBb0AikmQ>hlXQ``+_$@GgZ3@L>guTp<6nko5^E4w;q<{S#5^7)pInR zArf%kQp*a_H8D0`u_iFD*tBf>>;~5GOal87Jur)CYLBhHU%?2ibkR#o`PZqH5^8Lw zv>C83HEd~Kr_SwIh1kq@8~4YGf=I@h(U2**o#Q&}@G0VR!YOFFz-)=vLlDKtEg?K+ zLh{B#Hzh4gE8H6$w?gR7u(=0}>HHMS2f%=)8MH%ez;ci0#BA3ouRcpUxJ$R(VKz|b zB`^`<79B1a&mL{ZTa0;o4Cgnf;1Dc>ztdtji}1u+b5 z;UVO9T?tO?Hk9cqb^Z`y5na4Sh=n|Lc#cRY&}Bpt^X{?6BVPX+b56wd_aodO1$$33 z)A9n#19=jJ0a&zupN^UH5oz%xAx?PAh*qK%s%^<{7`2?zADttiW7>X*GS6sujJVj* z9o>G1xeFjT-RgBbe~dDBbo~W-up?jGWOIMbaP@1{_2XE%4!T06!wJ-}f{x5}O&te( zxFhLd+1pGKzYvaz%E5cCJJ>1pQrI)pRIdV|C>hSkf&!*?f}4PicioLW9c z3?uR2kXnv$xsKOkw7-D5X1sTXbg!~Jed!$?3()>T|yo7|*XYw9c@3?+yMP#pQj%<^~q8a%u2h>QdiR zeUJw4nr80)Z@{00_qDq8)4)Ie0Qc!qm%7xYzBl@@FW#UJA3_%$>E!p`_japmFOug^ zk>(HcUVqs$%17O_a#UL$W8lx;%%UsCd` zP%e=0r_lI)tZw{UM7CHt!7U=%Zlc7cVJvEgD#U|Zl-&XwSGX18B4c#`uV|PX2Ud&_ zM?61*`vXMh#_X*L&s`fkPKBBSq7YIB>6$U5`=T!e?F`FGy--S!J%YenlGG|Sb*L2b zF5;6=3V6wc#oRcxC1BOibU|D^An&eY-Wa-NcMVuI2T5mYPB8bNPPg1qt5U{+khHOH zhl-d2zGnjmL@Hr0C^PdmP-mfxO9XETUlmjmVO7yMQ*(UNxKhA_V>RHTFz?#feH!#l zgN)D;o6f#qu0Y;8VNmMWM$~cWmevxAdvDD5#@POJLe$%sz0pk7F1D1n7^(?LwWYT+ zAaRddsJMq#1ZN#Cu_az5BcakCPs|rf>h1v5ha<^r;2tsU@Y*BEk-VVTF&ZNw&D4?! z{R6tA2Vg@RAGZ}&mxLJ6@Gy1hNKp(!qc$T-Gn5Nd*2rQ*&4)k_(znt$xkE@sov$@> z)JD8sU^O8cNqqsGh^dX^$K}*guS5bZ2JPOG(S(YPac?-b&-uIo%&}s)8FAPV7u$vu z25HS}sXNCswUjo3lmVNcVt4ydCcPjWyh`v1*b-OIBb-pi ztHjl7*m#874dM_8gCepc#4Tab3Lm{JTfv+5l<_*E7yAWDp-d;uG}8cXs7y%Opxu5l zYPkc4GWS@$Lfx#eaYAgy<^xcG|e?bfZyI3Nt{}7>j*ai7+36$Lt z^X?R%4b=hBQ?#3?;|lb!4<{x703ZNKL_t)D*c~=@IuFpiL*gAI7DNVIZV>Vb#at5I@CosKA*r>Wzk z?9LzI$Nrb!;2-|AclIg#nJ*3;&IcqCnatI0&HwrbfF1bKPgOqq^WPv(Pcog~WO3yi z@4eAp^ZBFH=?wBW__?3?E*ZYxM&nse=sP4%?Hjon*QeV4k_rM_4C{TjT# z1bp~Ce&33+{$5J#$wlyO1mBcb1? zMO^nrPsJ?ZUa{OWpP%BTqfFP@s5`Hr;aO^aoRS}->mNnJZlBtfHlj_BlmjRy4QIeH zBKL{QS5eK>xx?!z5_(cp;_7R7X5S*-5#j^<>;`p?%oo>*`HX&b(TpVpjUzrEVdb=$ z2RSldT%k^mL__4$r0y}WH8ut2^>sv-#O^+3nR)#vX?cd%gq1~0U{m(3@26mmPl^Y+ z6%B{s6C!UVYuq}}+zcxe#K^lP=1%MjwMH;+hWh^QKS*PCQoR|Nv!H`xQ%k$nx=&CG zcvi};1M4t%#3w>Gl1?``1*>hW-RFc&3tYb5&PO{Tgfl!J;gZmFfvAyWByX;v+RB&e zxJ10MM3IJN2;F}FTySsfRxn&EaZy{sP#v>t>s5wRZkK%En+2};ByVCw*}5ZIjuwA{t(faL+_ z8aD4RMyLr*6S}&fZf+pqkkl>EVI(acP-n+&Anyhw?vM4{io6H|br!4$qV1gS4jgwO z@4SWh!$`k8M`Ff&)le54VDl+uIznV1E(#LcIKQai9vc=X3;Fye2ujxGa>hYbc2Vp?A7yl$}zG zP&eV7MSZlzg_;|;HynCPz9t&W)&wt+I)hn3k`Vi5DoIefL%~YJ63pj<&AD;W5 z=e>;pjZ55G<{Y2)j}syyt)n7TM& zTHhe__mS8Z`*6idhvind=+=1aBA{t(i)GUS4MG?uQ~^E3?Fh3I#O~wa0a6zb7KCs@ z9oIFhbC`%bQpp`DV3Gh9xw5|}OuY55X)cS6}dO5UC^U;JBC zf1NM=)XZP_!qepblMKtp3H{Z!KPgi-PvZSk#I7gx&r>-f##@a640N%;VvC);LB9JK z5`KXBEb!-k;h*q-{pBdtc zzRLg4-kZf}lAULI&v%ws{w0^n+Ip+*t|przDUyd!ypkBo?nc+dMi@8GZD@BMBXPlf(S-t$=dQF3NGmiUic0y)>Y&h?Yghc$Sg0lxG;U;CfEkJl97pMK!2 zIoG+)b*{fE5_g1;d&Jq(Klazg#cjruN6F>rC$MEdzP|M31?$-YKQ)wQV!m1N^?$hf z%igSamCyI!+6#omyBB?mE5!ITX}peZ53#t$wHsXNNyFl8 zmvHUfBXZN}!yxz7^j^G4-Yy~BJ>mCWO zqv-%~GhEmp;q}@wpJtVt7*{wyA@LO7889PnucG6IFx!H6h(Eyc9BfXWj5H)%$%HQ9 z;|2*1cH5uu&6cv6&@7l5u3J}hMK}d2-k}!ZHDJDWmB)JQ zmjuoi{LCs1qBu0wf+i6K(aOm5BUvL>Y-bF6B<%RLIK{xzA1!g)li@6 z*ZQDuCUWnb1XdHFrMPO|^|g2lfvh#f2s>hhg6t3vX|pr;g4MDxZwL`fEf&FRL8Yen zEK5yY5^!GW_7%;UX%)}`ih0K4y&cxUp;;*Dj1UUe&5-SVXt{;g*C=A>=Amj%n!{|O zov&~X%Cto2@ZE^`EiyV>)VhDvqpkx4EtQ>W8C-LVl9jT#moYDKeylslCxj7+uM(Cw zU>cFolD2cu3%ItYo!tN#@!p6RPDq;`9eY$8B+p1wkD1>kHa(6^+~441qHOmllS4>2 zC-^R7uAyvaK*BVUQ;()O-d7AqTyAi2+Hrotg^9d{Tq3@0F$wsPaUJ+s#?nMe&2Gfq zD5((IGbD`Iw7_(Zrhw*&&?I~qpk$1Ib2U|J1@hq0(IJiD8pYx9jgUr2>uUbG2yte( zB4`GRkyUEyHCNNrH#;7!)CCKiAu(ZDnO03To&i6r3k^U$7u18z0L8g2p+CWQFQ9Qi z(hN<3k{iVB;akDQvpV>ZdyEDjtFc}tkEM#v(5YB$zIuh}lO{$`k# z&{b4J0>(826@u|b*0CF_EY_s$4DlZE85f1L>gvQoG-5wdriMJ!#J1}uLU&fv_uCmMEwL$( zlY;J3azgVK)1Ib{gxPBt5g#{9vZ=>*7b`bbq#`_ukdwz;k7!LtOQ8PH(~Lq-v4E-I zQjekJvwBWAjL;v0tiXYZE2ik83Vs z(}b1RXqT_QvCYlm7?JNWo~+5^MReQ)7qRqlv|MF-dIguCCvAQ}(Wgn<@9>RZ8~Nhb zK857iD&Ated4=ihDrx;9nN*GbDit|$1=fwXI9fQcgD(o z3`v|IGBbMq)6Zb5%Y^0@LWiZd-`M(g z#gsRcX$~~x%_T~Die~vIccrxRxWw!V5|%W}XBlqYi`fZH|IUeQCnM%Iv@<0Sm)YKe zt}|S`hp>40Eom_54qj$+Gt`Hme352$iuWg!bb#4KjGK@gX}gDxbMhEa8))WdG_zw0 zEoHonozC%nstL?8lC~E~Q^dO+!_yg-3t9?}8_43jxO@Ro0jX)O&Fx2si;Rnz5Kk+@ z0NL?O7szrzh6R?7$eRUX4X!!H`2jRnHnDWzR#*v4<343<3GD_Kwv1;ND0xXaYZ2!$ z>+sRQZc~Oi&Ks^x_~sUVw#NA_B4?C5$GSbzx=@l*rfWF=I4aMB+au@u>d36`@o~ib znzTA3r(C~JYDfvZ9za*O&2j)a#oQVR4QhK#n|(Aj*rfQj;GIXj!v#T_f=)HYn+Hc4 z9X=SLv7Pa`W6OFW&J7Gij4~;zHSIf|f=!7u?2_YbumRGr#I+~%2TxJbjM3Ne`n29B zE;7C;h&jr*gfigVhzn4rc@52mOc`r})-4n(o;=hfp*Y*&B+47yQPbT>zX;+4=L;@Q zxS&{eAQ|6`wG6E|#&x}Rxd;+!(zzx$b2Zt#ViwR+6Uj=%OEu-hRpi2*v2;sD&Xw7! zrSeB{V3Q#RO>Z^zi>t+1C4!$LS+P*+wqxW;(PU^cn!SR_7PSa6VzlJZQ-&QQ)(3=< z*xbSx(Cvbe2G)TPl~N8V;~vhJisfiWLX*hb1CWk5+rGi-cA`55ZmQ@DQLHQwmv<)P z1P`3A@Is@4w_LX-jZiCrAnmgibgLOkq%jYv( z+cTbB#-@z;fg&E(EgEgN;4tCBh`1Irhvg25R@3r2VQxGnu1sje>H;xNwY1ae?i%3fc^%Y|O0^@3q>3!t%3fjN@ zK4N=(i@1D(SUv;Nfo(8t$t6}ChMRDHh6^2W{ut2 zx33f9Cy9I4=?|VDEUMXQ$&;pg@!=BP-b?s)glfA}0>b~l%I+AQ(6AHZ)8NoPG@`05|>`@j0Z%Fh1TFTcXy{>uNw`t}6* zA=3CMd~-}#oZ)s;J2ozuh9mO0A>H~OYTxD?zxu)l`hM?6U;m}T-}%~2EM=zcjHdtb zKHIoCz@}4DKA%E7*SY?J^xVh?IVa>M&beqHPV#k17G;s4Md)!-FuqxtU=uF0q=cC;y_&f zE2i~~GCYduC31lv&D&lV=BK39hVkqHL|U+?i0vQK?!9u?dzQ^*L@p4!o8)PZjvmSy zHDg-sBXPoq;SFP0!YMkek#>P=3T}HHrO?iwf19}rfK$4o=NWG&Y&v9n`vO)vN?GBz zmoVm7iHIz~ogk8ky~lB(np?ADiWSmyiF|t>ErOF7W|7b+z8R2a#3qNCAu?daDC>_B znvBE&A8%3eJx~@{x{2>^zlra~@a>kojpTJhyEr4Q_HgWDu9|YjfVdHCUd>QllQ$2L zrUsEjm~HWXi*H|MJl&@Z`bKlQmfKhnT+`wrxOO5m$He)YP1=D|EZ@d8hom!48ZtUv zucqIWz!|uG%r%T9f+|)+AgtN3x|-Aut+$!#We-Z z7m(lyO~PD#c%RmSQ&-EyS_SV>wVLE(SE^J5A8PZvr(h^$0;~|)4OUJG?duGBL>_N} zWzx3C$B7VIG-b*-Vs?mcg%B&J7;{)r(mG%h#rtDI|2Tv#HhS`KiIQKS*o)-!@644#Oj|-95Z)<|k?b60g#wOjB zQ2E_|0p}c9z(>K{J$O-Ea|^RGaP#^eK7ngdxyEq&GL~nEI{;e{mj!X9nw`X2I5q5J zeqM{-#IQaStl(m*$40(I8V)I=$JEHvKnM;iJ>ml{CPI6Hgn}8Qvjw3On%NpOFs=il zk!j_Lvs6pHrVfb^+FTRb4%j-hK$!xeop7P1>`{k~8M9Sow=PbIixS$=zahZr3tA7U#{ zT#g{ImZj?~ZN5=c|8o4C5&&g#FR)Z-kO&gvRW(|++Z{%~e+;~dDpW-!VxG(9F*0W{-1v;~}zqoN{~QOTYVvyVBtwUw`lqUgUGXe#SU{93LM* z`a|65Ma);$j+6~~`vhrxfnNR%U;ovU_kPn4DU+8;vqzugn}6&5x9`52zVzhca;{eRHyNZEb@9gi68K};Pkj;MO9%t_k|X%4@8 z*L!IZv>bq+k*CCX`Ve`u#&?I5)z6Zt1vSEo(A}UtdYRC#NtX9$_Jo@1M9q?BpnO;jHyHcHL`)jFE&n>S0{LcgsE!pSqPTTln$alT+W zM|ctECyMSNl1S45Y3LCk9==T2rA0i@6vt#U!fYTkuQQw+khe?3$6Z?QgwWl*YadD2 z;$sVY85c*!lPjdnRdBZn{T7pF(Q+@|Pe@qfn%l(rG0v@tZor9WJiA0%J&fh6b*y|S@!d_t3NS}(f#%tcZF$E?+KmkRYV4R-at5T}A~1Q>6z_KUf*LEt zdBrSZmXUT{_mRIz)8B?254NP9l6Op5YtU@y*ps}+hd>&apa-}p$Q>SLFhZ#JZh3N) zB7~XYy;f6lSGs0+ObeO|5*%cum?H{k*4@LtuSw+6U^4E^!$4@E0wxnkp|U~~;ITXc z3GuNeW`WR!nj%h+HiGxHB+Kmz)l4gnfdrvZf)m77)PWT+5kg-RzLxJSPE-#FQ8asy zfQevcIG^xMM#NV`r_ER{WM7R*D-&t(#Cd{P@V3I_GR_xb?5eTU1e``xT101{l|@bJ zaAm|~!UrX7J$c;_<`s=0UNIBAEBI!@XfV5q<~gS04iga=PL3c2d~dak4JsPJ2{uhg ze~P%SGO10_($pfs3`jyO+uh7PVWuGx?gVZ_IZ z6v^8?^7@D}D#d#w%5K2`L_N|PB|GwDb>SchV7T~Z;u~X^JY~m!bU0BoDBc;qF@!{R zk!c-pl4+JV>i%(|76AG{1;4sUO`n1xKBK9jlv>hdrIrx-*x=_|d?>i41MAVez_UeV zgSZ7Ddh*nv#gT@Iw#z78<$VW3#G~7egb^IA{1K)9tOWkST+&*Y(8)Hzf?gv?H|ZisDGi-2_Fzd!<+nVX8UEhUP>&Utu0B zM>IibCz{y_W_uVNmKW$$8M8hl@)QZ7Ueh#1$^a&g(7BrWGzAu5mCcJ4#E*DCVCr`z zlL6oMnBB+rwNKGqtiNOPpp?x41W$}xrqNS|OW^j2eLxi`BTA{~LRNgU#Wj_eUdEoB zLPcfxjHQ4?#We$Eh+r8bu%tu4eCyz^!R2Z%$~qCXSg`v+ZAcGPZ{Uda{K4P<$=qkZlTIIbhW#fVA$LE=baLT+@qx7no0|`jx35$3Q~bdPOf{eDT<7}0 z`mhFX0Y3BRq0>5IR$#PlM8j%*HZ1JU2&>wovwPb6{r zlhR|4IsWv@MY6vH%<6-)jJsCxSKrmpEF6>58N+6OmqvL1%4hpnN@V>g?ee3z{xYFk z;lm2`BQ6DUzJd+c$>~1y>HGPQzxply*AKa(|E1sc3^)G<{r*qU%oFXEAHLCk{BNu2 zH-!ENICqWYKgRZS;IohYOTPKopO4XeN5Asb$cy}k^!twzx+9wX=VhO=B*TqQl2angzJcaBP9CLMB)SVPzpZq}5Yp-*;#-=%v6`mIg9k4Qe3uxHdqg~C zsHUHpCp4MjR#@&SyAmo*I|HWTcu}Bs3K<@UChDS%*si6%8lFOBil$+~bbCwa9L6y& z9@8AWjB{G~s@o-Ln3J|ggk~aiTg*GKiD|uu_$-k#CuAr_>@o#J0_H(f$;lJ@38+RTTKSf0EoF3Q_Qc+5k`SXzZdWGdF%qElq1|VY zio+z!V8SIXSgu0iyl_c6fhIY7{FrX zxM~A3g7!#=cx1;^RYI`3c%f9*?=FyzfKCm0R4f}X?GnNRDidkw$>Xe=^XUSr9j+hn z-jK!-g0JOp;t+$JAZ=iK+tDnbof*D2ysrxas^A0omN$%Eb%JHZvesm3k$M~#sj1#z zm>99!)bw_VU@awiK+vhFOawC0f(^dnAKHl!Ch!|vJVDH%rN{IDk&Kls>N4KX0gvW6 zX_#=mQt}KN71tC@Cn%uB@X;gcD+XeBydvQ5EO4-+NR%C_M60pwd@UOjF+>Uy>+c(3 zhL#B{LTo^-7P_U?5oHsq*=W_!E-DpuFj+Oqy~BqF{EXP2ft(Rqk4cYj5+$8N_E=g_ zRB<*TPSLTg>G6I`9x7W|LIeygJ3h9>n&g!&NZB1b30%U41tKF&51RH!!^iL^8=Cze zB7UR{7qPTgIo8(iZ~%ZMG!KZ4kONkz{A*XS4B~S=Khv^ahf_TU@-X0{NBmH)1=>OuOH;||K0Zqwt)U`&@Qjzo5v~Tlrnw-?<4qqoNRC*BjF4e zM@rfwZx^V}aNht(GKyE0-p_))_=$3(a^c`aJ_Q{~Ss8J~D>zqLtu}BFo`2RbhK~b!FqQU7msN6?=BfD)*u!u z?(Chmw>cq|B~v+|-E|dc5p=i*+!4Nc9T@{THMNNCUF0yji_c>DQ8vRPU{8JM=bV}p z|I0^Ke)Df-e*VjU3MWf&KZS|V?%lnZen$>ree+@R%CSBDA+v+W{{px6T<1F1P9N6b zJ=eL;b*?w{i(k1+k)Oi(tN7VIPFlPdC=+Em;}?GW27KiQ{NCSx_OHCr`?tSxAK&sH zr>= zX865h`sH`uktJJF%W(4=#LpnNdOr6*{0qMEpPzo<&pe(!OxS-AzjU-$o_$Ya)M0cN zo8`J?;pCEoZ9I=i2={zOdzhB^vZ z(vrOX6vz_qR&@K%(O!D7j^e*Xr3A|A0%`Ry`Lx02KfpE5psSCd<&j#@^`oSY@$?d9 z+fvH&G;PB9dkKr1aH8bZZQSg*CQpYeHPyIoYnsQeNt*^A9KLxO-#vl1J$%y<`dhV7 zXeY~UE&pP`_lCGVG|#Z&>Ox2EKs=fjn4Z1C=7Y+CZ1zqWPlPm3o8GerX)xJmT3y5P zvX%^mk^bmO%zDUs6y1Y3B38&bLTM1zl+<9;0v8>=$(Sk5ze~x8R7R?nIlfur+Y98> z!0-TK10{QM+CzB_w|nF?6{giaSiXdC1qmM44xk{iM%+M22ZVV~$%3h8T0MyKX@?i6 zB}`fZQUcQ|*0dtv!p>w;!M9Mt9ro@-2$`JcSgD3hT~zRhW%9Vi&z_-~AHR(U7@IA* zw8VImEG=pi1V_7gkuohHE|8FSs^Mr3*MjejvUR8$B~_NCm0F5~))8xQ z;GM%vDaql&93R)XutIf#F(N2v4@8ifw4AmLnhK%`Vyetuzalg@DS8Pf;NmH;!pb4$ zLQNZr;ixHGaYh@3O+;*tXoHo$8cDIHD{+Erv>IJ0URT zX~|ORm_8YuTFRs#rx0Jl+zHdkNAQiuxee25pU`w~q>D9oKtoOrwG~e86ty{gv|5Ul zlx9}I)xt6{hpFsLe?iSCg9j2K8+smai|E8$ZpQ%!J-zjK|e<}d2%LXjw#A->e@2Fm&ZT22VvK$xFV zM(`MU+n~-9+X2@VY%5?Lu^B4cRUz!K1SX1vHE0WR2%KS51JlP2%?)`I@ao88LzxU? zjc-pdol$aEkKqV9I&5cb`#?27cb^4;AW8{95lX2kX0eJOF;mje)nZJlag2H-T&Vj` z?;r|7ol42C$uLNJZ1~Zb^!`LPUNW}#)2b} zRcad7CCFMA7sXYag-hTH;xZ*Q75U;5rVBJXn%OB?W>~&J9OzW^4o$n{tFKAnJUJvOp&#nhl^@VCplOZBGxW>H zYY`q0XRlHg7x3v}#`b;|dmp7cdYWc&!shi;@-{QBK0%lw5-(%APY_RCZ3*PnWlTHJ z0q3^F?gpBB&^bnr^9gb5x{tg^t*s@Q8qj>XBB$JdPL8}jBrZ>W%;(ye0 zhVvWX5;iVivHOxT!`Q23m{PDwaJ)a%T5Pur&4_P~`21H6_@DUe!=3$S|L_&Q@U?F< zofuX=O5R+cS-gs0oW1dkpgAzE4$13#(CrEN^l`lZBfkDi@4WDSu5+F1C#rLU_gv>X z*Pnw-`225u5_O-XU0fsd9^c=>#WMs$r-bP88Y$a7-0WkN@gC&lGQaqhZ}Ct6!E0}On}71Fukgix{5-k6 z!f@kWx{L3f#soNfCYM#Iq~)XYIt7;{};b@ z1s5J6%#PmG+3j4SzWI(kwSNM@3w-X^ zU&q^ZhSPg#`a{gsqL-ot(G~Gv&i*~$g7%$TguT!B{nwCYLArH6`Alh#zKi1qIjynM zvU&YMLU)F5#%fL!Pnl*+!vf1^m_1FLoszeoM!APjZjsYPR5GS7qdbd*Cs3WENyL=7jGnNO^v}7C`#CD8D>quiyo*aHV zr{spvP53aPrH-<{n?wVaucFS7(BYea`j6wnZT#i{9rxJ2?rE1V5N9_?!v!o~MBK%S zGjI#U6_gqe6*ALFN6CV3w>5P)1`3t2>O_!cz=aVkQigd=C3k{|;6p7%(p1y1rUeOt zIEQ8ft9)Cdnhp{&u|KB2@WNdQDxGEwC)dzH==LXaeim$Cd+XmPw3mo|s0>ZXl)*?t z+#w2tGSyU|4_e2+XF^&Fd1x^4yX2tTm9hb2O%;Y&!6rzX4sDd!Z$L&I8SyJ5C{kkm z9>b1*dZ#q4%)k=Pbrf47ED*1_xWP(GN#%{=CUKtF>l@`#05Vlm_s+IE0qbje76EEl zwf>_(8H|!3k9CYZ^on_KQLD+89jg8AIH?7B64;#w0qX*$9ckRhm4Xu?C0Dtc>Z;k? zWI|u?-qi$g5L{657}2RlStVp#p%#*@tAR~1a&U;NEm|T_Mu+8q^B$?30m?KdGlP;U zhdMYc#~mlMrZO${lqt|GMsN<1S~h6f5nKao$>SW;hP1s%b zS!1@SED05y2(Tb;A~p_44491|$2i>s0zx7UGfb4QSTU_GAXqgj-=dnzzKu##3-iJ; z&NaAjNS<0qyM{DNxR}t?)B>gAQ0H+%-FMUlv3i_TXIJX!h;IxpRMf_%qEyn>&|PBP zijc=@ikr?5-ypj*bVXt)T7fdjGS;aSaN1g)Ht;_g!prjdSgNnmZurx5#km|c46ZPPRFq@o>a1HROIspk0> z@v#Oj-a%ri;xAH!aQAbDgp3es$>vTe&oJL2ehbqaA>-d?j{`u{oRPwUso8_SMg}jy z@Bh80`NglS+2{%F=6?Xxz2U2pSaEq z-gBMnTpwP)@U_n%^G_2O*Jzf{{Rkw%%jDIZ;q+l#oHN{xeD<;b^L?9rf5r$W;u|2tl^NF~8?p@8@w`z9j1+07&%h#}b zuLD2$u|N0czjA&M#pD@&|5xv3y4{i3BZT>V#QF2@%iO)A_V5ML>eHlEV%$!+S0ALm^2~dF zU78xU$B&TLPgC-r@q6!4mhp{W8>t-n$NADf>e+N1dj}0?>%U2Na7Hsvn9J{(0g3$z z)T1X?Nw-cZvPSGx#GWK?CTyBBv9}v<&!7Xsvq<|YUJKL7e?VwHf;0(SPiPKMXE;9r zE2JC~7thgM{MW2+eG>HJNNkCVmypm?h6{B(^(~kK(}pr0B6^Cr8%T4CZLT0u5$Dm| z(Dcudr!6`o~Y;s!`=iO@cO76M@BH*&&v8_=6ebi5T7;#;AcDbg6`9A#TeuEeOL(aABb1!?k*Q>&ngi?;wrnLJ9svpXi$k%t4) z=7_w4I0Ff<5aj!??a@(C-|td=rKTWV#CfabSE-t|&TBOisHIgkwd%3SBQvcd!(zK} zafg-4e|C#PS~uivPZ>Qv?uwmCPo8GzHdoWl*W*Eo10RskVd(*CqtpsZOTgoU zGD$(4BQzk0;MgsAvXjY7QQ{6tJMg8xw>PxJ9V@dIY+{O`2#Pod8nFbf1H6Ln zPyr6yWR%^nyNX3m_W9vj4w1-K``*xBM&n0MgD>CZxE6=wCoWuml7~atVwj0 z8QU|CF&Yy8rZ#iSJkfCyY{o5 z_xA`p_|PF1 zI$tZP(v)#MLEM0E4y&P=W*d%fK`jwt!YG*5adwlkG311jW>|JOe;bj8Jj@VwDZa&p zP+7qx;hPh}Y*mW|{iG)8Q-ft8ixC>bwFT$vdn`U9PB%!AH>V6r4)``#1Wa}mEwoW< z5n2ie5zOO#W&E0YOxn8eG1jDYXbf}UqY|g3nwkcd>cU9UKv_)@3SrVBnz52et37<1 z5$|!6L$HW&&y;KszsC6v%`?!9N`rF&7mn&e<-PBj;_Dw(kOkh45bt7n2h+279AY!9 zTw*-Ai1>u186{0oRf3!l+8ZE>54Rb|JyiE_NKM$gHR1|B8fBmwzplp+Bn&vN6KB`n zJf_Q?Y9zMzW1xZ?!F8y+f@>Vj_J6qlJAC&xVRpcJ^(rjSGA@1&&qaK=iSq**w?RIM z3nye9E5bl_khnse-j|Lwb#>uFCkQ>_Z$dc(xfXzxew%eUk8d1tlIvi-p;8oZ}E)v5kw zdivSNVDc%t*`rJ@{NSC(r8WxlCG+X`IeGo#U>|4u$}#Z0cm4NY{zgN8@FeCg;@uwP zhP zm-zh7e{;;Q{_}sw>Hx5hQdU1h+<6^0JtA(nUTT4IvP*w-ncS~P%VXxdEt4}Jys;Lb z-FlTgeiAu(0_?{ReN3F+!uc6-^5GBso< znDrO~Wjr7+pW;`3`=?B9{5juz=KdS$FMp$9Jh?zcPZ;cK3>wh z3zQolWwQJ7JEATC@@k9W&Xc6&HS+iazWtR~9_lr}`QNXBHNX6|Pchlrr){s|+&(33 z6XN?LI^yhzwBDigXDQ1CjP*M;mAn~umAE2Ij~MShN+};D#E;-RN3(qk z@0HtG9qzM4v=u0IJvnQ zA0IGtxR^0*QT4>>0VO+FA0mE18C#&+l)GenSQ4kVS?5cLZC8$TnSdy1bs1wH7g{8r zr({DyOYq<)111hrr3`fg!}J!qnlWli873rWNKiCi#AF8{<5+{NYHPe?V1hBn$2+*V zM8_Q*;9b2w;^YY3evz^s(cuavXOLiZoBS>!9p3lgGU!M;m{3YXXaiwlgeGoGya7u> zX%bEgIVVcrAig0qz8ch_CKsJrovszdw;30NvWOH@7&6nn8yf>-AjFZJx1dZZ>wV0x z>aibZsIJH-E5bza(~6MrHqyuQ_%7j_8|2*L%6>Hggld?N^+$QxxMRT#lTENP03wtE z!2}$LWYRj;WU*wd^tg%PyNE44S{gJNJ_@QWR(wTOc*RXK<^rX!yingBgVWm3ZnL@= zpxYqT^e}4qnhP6#uDDH17hd`hQyi8pC-Zr;4rc4PXulQgIM%EyByW;CqKf$VJdB8^*Gc)bLGZFy|gD zQ%z!1T!7GmpA>v!SQbhW%1|*8jtw`M4Q4_E;u5YCY&0|niWYSAxBz~Vh%S-WvT@M` z(-yI2W5^l~w<-FoX+SMI=MQr(FGbifLP@ntALjgkp}Vvl{1x%?AACbsCmRr@ZJ6Q z92Nw#t`^x%uD@e(uEfH0=O*mjWbvxQg-_D$-@ru4-e#0?2eA?3B2s3EC?iJGERlAB54W%~KunCoCt2ToiafkbS^kiA z>nu2rdj}@%TNQQ=N#hop8-~LR_=$q72;D$g&B*J$`wU*qk+issw~!url*6>o8P!esxQ0}bQhK4t8&@pZoW4=Y;Y5B}l6 z(_imttid7Z+f3_ben?uLkXIj}*}D56JGeB|lFzr?<4XZk^70I3NBHn?DO^`Pj)H%e zRPlcds==C9Hh*eQ$us|h{jL25JJqR9^|zu^gZEUYI@O2Q7oG|D@JX8K6SQZ3@}7q1 z8*<9*!V4^~|15d^6kmS!MZWnC3l1e1hAklZrnHGa6x(_ecP z`MvMHXW`igk_q8=K1F->ak|}?KG?nh-QEq#uuV>nG8{hvyl~&+-}-NF^2M+IAxk@? zZ6BrNvvBw*BCh^Grl9$VwE79TU(il2;%8g$YDB)9!mLM*2IAz*hhl(@Mo9*9?j(QgzgHV8*!7q7X4_faXZauGb45%C#}!0j$3@;>wkRTNLRkO{PN_B z001BWNklW4P`F=idLg#>o+RbqO8TSh|MwE$x{l z%pXjktnWUGmdA0;BZPKAoER>q%3YN;;#atk=(g@)-4W}f%ap+*t4uq6k&-TSId`5O*X2fIyT=FT&Sr= z(*`3TZU!ZQ_-a6~2C4j4vvOZ4Tf2RmQH3;Q(&{sKKZn+kW`f&{_-dZAy188q(dj^( zu8<(aZmg_bgyMkIfiAJZ*A!+`+tano$)h7+HHD2LZrC_~j&^>+U{iD)NxjE6ui~4Y zl3FZ#ObdB6-INpcpmz{=m+a5c_$w77u<&U93|5}N#|bVR0xc!a@gX9wY&(+;5@01XbNa5 z__#oIjnHCj(!@Awb6db%qO2U2GU6)^K%A>iuGFi`g=#`;hSGzdK%7;ZRyQWAb5s+# zh2S@d%TPz#OH#B@O%g(niloZC`riU7IIRz>CFW50xesZ z^EB-UA=ZV0z9KVxXT)hmeIP=ZR8Jv~fP>K0o-P8|QqWY(s+xJh`;3}kLx<*;oLW>H zf)`+lZ;x?dh1r~7nXI7efVoWAI;7dY#&~prvYgfTN*#n1Rth$Fa^AwlyGS^uX^uCB zqhYp<1qUT#6iVNqdBjB_oorEx2P=rXOXwElCT4XM#0z0kHmfAINeC;L+aMciYTh@wVnWuQw2r9l zf|rViNJbtLjukYA$S_0Y9L`5rM$As?M1@YOA#5YU8Z%eV?cz}_ICnyv-X!&N(1h=L zv<#RXRW5KiuJLVmmC*h<;+K^EB4c?92v`oty&|lkMQuT|bscfrh;*1+L2hw2sV56< z9nE(RVGep0)m#x8d5JXF9zX`<^`ssbFZl2vzxM62I54bQ#%rG^cE^yn$)&+-TPHIB zncYUjZ<6G-)X&sG8Nd$l@ikmrG8~@A(h=fc#s@)Vi|GHHTr#3_hOx!QtwC zn@$bhQ=RHmA6}D3F5=>4{A5L(eelLt7c$M(Yn0(4!_niwU)=ZjFMsV*xaPBTTOTD% z4{4^)6J~Fke~J)~w;5NLDcw2x!#Q96-9O=*zy86?%-*j5>i70=(~J1d9=KV2KQ((- z$^FMjiz~d{;05^3Zyf{whA(~X0@`1q$QeW`_t9*Pa2wOtPo}L zxH#is8DN=2q+t5tz875aXz3{V?=#u`IDWQAd*&yEaDw*xo9FWGd**)re%i9m>%Mq>%?h7(-tmo zQIf-l7W6elB8VgBi`6htt0s|*pjw%cR_b`QdTb1sTUXX1fK$@(9%-=;ZbnJxuo#g9 zWqguS6tO*!6MVdl_PYoX7piIaR+a2=Zb9+esCGE3rbGxCB%`C^CnLUD)blI1HRWUh zq>k}oW91yGp;<63gn0kwRkM2wRs-YFljM8>vpP0ha<@snRYM?7jdriE=ASr_f)7T? zO&y00Wn)TB2yua*9HPU9Lz^a;vrWPh*qFUW!NpAMJVW-RwIfUqiPJ;YN9U-&-tU0_ zKHlHL`2p#Uv9ZIi9;b|F(KM^2O-+ZD^GI+=*sA0C<}fLEKO!y@T0vZ5Tudl^tjXVo znv~rn2dzL_)Z=eCW4gw-tBL_h&E|(N_@=%eUOKQA35HM@N+7KRW$h5JbtIpbk|JoV z%+*anmN-|rx|=dKP`qCuOzQhsJ=khG0WMU|YASU$-)#^Rj>=lqP$)(4&M;TY#>^aw zLn3v5y-|wdq*S9VLTKu~=TXQjhq!u|tfK=jG+t44h}9Cj*whj$%|bIXSk>}3-&8|5 z^#-}pMkFYzg7c2hT1^47;pZw874S9fs;S26B~Z_$tl$G>Z1C;o$G@vs1T!Ts8^R=E z0u)!d&85L;Dvm-EdDtbd4AWzL>nQ0FTqp>2|9!D~EW;8_2DwFT57UC0ql^LHXf?hZ zSgIvzNCM0Fwl0{M21G*LcdIO7Hj4%p3KB-Nj|{7`Igm(^fzo$qStITM zkt51TO~f}nu2~ai%E{^+nzqSnUk&WANkykRhHfUC{Vf%nqLDIqR1G(=4exoxP;`ul z&!{!XSQEQg<*>To2~9>CCB)5IU4lH^ORGyYsW)sP*Y!Z4ETIfiu>fvKSvyMq0&({5 zQFY}0N?oMk0=PoAb(6H-!t??zY(6WSdT*m+U5ImTh3^h2DOQHCtZ}j5aDESfOzvm( zJo5*{`OVGq4e@J48}cwA`W54HAJgNCq6tTsDrUQs;Y?jH@hugu!lp1Y5hh2Kg*@(n zf!YcF9ooc7zl)BGYS@cD@c2Dx4)nL4Ldpfi?`~4YlltAbsK9X5OddLLnPz?){IY(} znx~{W$N^z?0~c20)ehrwmpoj<$0dHYMGPrQB6 zCd4zWtU>#$i2p3wpN08*-y1rwNJ!ZFI-1s)Dr%Qeb+8ha*FR6_4ndAFdlesFtA()c z60y1ShPkUlM?OAJ$=B%SSIN2Zwlh<-d>(NN#H~@L*wC=Jea!4FsD^R1RgqaIFQda> z^S}Mm`$zwq@+!K1opkgVar@|jo`v@8RmRtM$?GQ=DD^flVIq>-f< z<6;MFLAQJLq3{eT2Xx#f4KK2|_TGqsXP$BV`QwkFeQF;1xwcxNlNFlIf2h~a{XUu= zXEM7$oCUTnKZnViNdyPr3oiE9^nh`33C73q?MsNvX~w5`?vZQ2PXSoROs9%D|4uLW z0d~k!D3q8sWqyCf7r**r9Ou!ri-i`;in=vUZ}GqX<2!%jF|)tkZV5!(W<)P+U1iKu zGzsbCQNrXlt~+^vfoH{2)@Mll7FO<3@=plvInpY!y!$b>F8!dgUN=g|k3c+2JHLZO zu%wuH#^rwffg0~3Z!Z>cO0#nVyM3Nvgy4E~YzW;USxP;+joIX20{Db;11-5`_O%h9&NQ)VH z7%>@f-8-bPN(AfhozxLyKj7OHB?nA*h!dmPT~C-4h_|f zHn0=K_0<4!)wIM7b(j-0LABJfrD(Xu zS0lv?O7)!7ggk&2@Qom2on+Q*wS-IS2)k~0w$c@XgPbB1j}?cH85INP5fx0NmN|LB zc_R<5CT~@6UdhRA63H;02re2D!8>qmZCbx~Ifsd$C7=m>r?7UIuSf@x$~YEJO-@$J zdh-FW>HAUuhi{bJ*Oa5%@MIl^X;bkOTIx0BJc`v6tJI<{5CjJ*)|+cuAWtzoA{)4|`HD}-^_)+=M=X$sc7q3~ zDOM2F3*u|>n)4fDat$`t&z6$sSP{f4vCB0jt-hvLo0<|gHYTTTupw+r-A$TXa}AdI zMkz_~ZAC?BanO6*WP)?xvf(<#g@p5&JO)H2m8Z-tLiakF_7EMgGNY}nQPHfePmkrlZ=QyJ}(A0XuwoL)rN zA7ijHwKOkh@ZcpafBgTeO-ueEj43X8{Pk~**w{vFQi_u#am7yxb-Y32X+^ zl7~5#8{+H^;xal;FV>d#PyvzTR^yN>T(A{C)5JSiU{c}W@e(P2uM zU8R}-7~d@!4t@?{f@`j02xaj^^eb=vj@xjc&KIefRb;oz(gw*zjD(};_EJ%;5YBzw}0`K>pcDJD@c15ck3~x=U%?=aVMF{+2`qR zImXo^l=L`pdPpAk(R7nAy@t3#?mNbl3#8>9Y4KM`m|^MR{E>Wki8R~>dF4G5xL^9c zEuI^HfhImmyLAa^T*c=20y(0?97`vp;c>q7yD!jg|HV5N{hsPnr#jVp=+xjn)u~SP z;iYa?6QkY3o2pJKJI!@7zWfc(H~&H5i(hRK{~5ZikG`w9d*A=zjp@0otauztA0?gK z0-pO&`{Kd`q{F)p$DkFr#@d#!n!rPhXuVY$N5nEoBk}$J`2#8%ssZ#qoV9n-FW$Yw zciThq^hwGP9|{psa-{ShLpVp+%Cu*Ge4n}dc8L_4t!s=YkD$Y4eDgAHdIdjx4D2Nk zBcvtbS6IIM(E9?A$0_I)e?B8F8q$2^^DkcGnP*;o@Cje}P%m?zZhbzn{X(Ho zO=*WQ-Fu$(;fR)=v^a~b&(<4yDYb+tx0Kvs<(Q(cf)mtVcreIDO~hI^V3JF=BFP&Xi%lp0{}kqS)A? z-DSMoB6PPNNGfS*(0(5TtSm{#bFcdBi5sOhjwz6oVHO8 zY7(e8w6s{>MwsB+H7*=hCT5wU>p7+ymTFrQjn2}Bb2?(0F`a-4r3kTlNr)&ej+C^G z=70-#0b@8mPZ>rm-$c6GtKg2;Il<;V$j&4-vma(+(w%prJAm#nqxSSFsE_Ou?<{HSQgB zsh0YTzP4dkf(kezbOmVyOHfuFIYmqYlf9Y(&YDrpSazsx3`!fTixlo9Btcw3MUdjF znHm%?ko!nZf-bG14m|iUP%I$6L$k+)0vnuy<%(grS6V0-d4SRjEh|Q)~sA zJ>EGK!QYDlD;tiizWG0?FrL&5mjId*f6TqRWmCqY02EwJ9 z26m3h-rXc$eN=FQ6~S^X3@e2?v3{$wn7Wi+*D z_Vjcpf)!txxZ0!ngxEENc1BJf%LO-sIO|a@70uDq{j^k}w!Teh8L@P(8n)sf2;yB$ zcB>IOWjJZzq$5t);42h~rJA|s$$fR*eUp%;kk^rtN6fDgw#a=$hy$U`gg8PR&>>=K zxKLl#Oy2U|Z47*|ilZp?coH`6lSsuji+gj;&Q|r@*_54O99dTB zNYq<2^P2Qat8K7t#5MRysYO{Ol9mv=B_SSTv|y9UB`-=IL%nX*XtoR~HNBjNiq?== z2+@(U$C9snUGLslQ=ru6s>ZtD=<2a82)Yh+amNIs)P;c3qSl~eM3bSqrfEB*y#idQ z;OlgN`Ij+nqobgD85hn24wpUFM1n@dEx-@>utIaBj4h@ogzf-GqCeONUEte0w7WML zUwV|`+ zSRpVB;&q$qkB}#rsEaL5b6ANEj*O zHa4Ec*n&7m{W(hhBzf3jIKB${U3C0DCI66r`J1miVD8@g)`ahpPUcAX8O)w!a^{uF zW!|W1R`~OO&HB!oym*wf_!wphv13fnFdSZ}3*_kz!{U1|zJN6!B@dsWKRipf`|c&c z_cSifFs^nPSAWUm=-msBfBApjL+$U+zFc)a2(?=igl_}zQSLLIrqf5^ls(1ZnfT+xhYKh*QfIHwGUwBdu} zGVbY_XOv(5?U&Kv3ghu3OwPUZfuB3x`V=Mm%B!3#iIew#eZgqvuQTSyv2;X;OSIYN zSO2Foe2Y7L`ztHH^z0qN_;JSdlxFh5O>;%a{T1?Rfs3DGl79}j6$mNwXIEA{{X5sm z;U&KFYY(41f4iQ3b_(tSR<_}XE!JH`mzNmVuMnDJ@J74)Q}S?|yt+)$U1UAQT&O>+ zZ3!%J%^jSrD91ZEU4j@#&pgNW#RBQ$*!Vc^q~Kk_@_Afmq{SYT8EG{|ED>h6Y9qLN z_jA~_OUlq-`2g~gyuO5TmFQ>aR1sdTW5RwyXqWdJPm-{)fLzD>mT}=gPYBZstZ$WC zT9q&2;uawsqT`xURy5rq`_xBx1`k`xH&p@469O8q^!`g#7V}tErl&e zR!z$!AP%#LW{0zCQfS$jf#xZ>!{Jb;K%$J1($6XVZKU}wA*|7Kk#usNuyw0edmW$0 z**+3;HIS{2kC)Vu`fbF4YZSb0imt##MSQ@w8xyK{f`NuWXcUQcY%`~blS6!5lZP3w zs*79RaB;*$5h7~2nusN$>jgPMXf7g6By^6@4B#p@qLjx7(>=_Tk_QNPG3{zfwHYX@ zSdkEo0}*@}fI=Bs#-lC7OU-&ZP-lo$vr&MOjNry<0Jwm8B}+?n_A~uaLx_biIjJMv z#YpRItQX8OzBQW8(B!ZzAR8=$UsjH2sqdYLY)r#axuC&eG=$Efr7|gnYMxuEBl?07 zCZJg=1J>8EbqO03La9Y%vMF)W)R3?`wm%3>4Te&3Et3)lmL0k04c@Nns#)tcrEd65 z;?Ws8Kw1iUE%@lEln$vSSFtjAov(-p=Nv*U3Uiy$cQdLXsrBz#(Y5vefj7_$K0vYR zl{;5a8LDnmTog72V?fL{jOMx;B9hQtW7t{*O9Rpz((Wk6E~V^{`-lqxA9~{agtVAa zQilZFoI?hz5I^E2=onj&?w;ga6N1ys@iRyJnx8!6{%y4wcXusM`S$QUD( zgoFVX+sbp*HO^f_+UtlKn)lGWkL6v;dJjzz*PbBa(0qZMM*QT@A$ZDofwbHq&MF3{ ztj=O-AKyg6^d&@$wAcmdam_Jl)ga*pZMQ~z!?@gMJh@Enck%6-wAjbV6mtWno_5wV ztR|FXqyc1T>-ps}&{SqC4iN}Z5i&+iwu2&~wA%$F;@6SXZ#ugg@ZN1oBo)m9;%m8= zR2h1@i&m}r)YkiJX}KL z3OdZtcm~Z4&GraN#W&c1*b!lJ0HzE_=Rg;jzeBToleF5d7@P9%NW;G%aTdZBjt*pr z>pp__Yg}x}%NZ^n6KB^+$6F-*96rtovlCqC>ortnfa+a>sy(8VL@ zFvW*sa(@m6@0fMPTxcq_~sbGf|BRByu~O5 z=dOWYA!$Kb-{#dn{ntGAJMSGd`1V&;eEHcwVYpkc@hNom8T|YXp*uq2h^QkE6U1e5 zT2jV8p$rSWdkt9|xg8~FIa&3=)B#1l%|t<251 zO&@oG`a__^m&yI(09QqV7|K@Ho<*!NoaZ5!H*BTws0UKgTyO(QLm;Ge07!{yzeDQ178TwBWC+BeT5pdhM=)if)I?Ol6ZUl_9I73=_N?9V@LGv+r zc#SbPgyC_p3&hC`OAAsFoJ>Hb^v9P$7vypSF(pnivr9i_SnR?ofX*q|aI1)GZsEcb zKV2c(l9o?Ywx~s%2j6T;h73$HIR~ttGdMv)K|;Zap*f+cL9K-}Fs>Xu{J@O>3IRY=$LeT&-|nz~rdn8gffXQ;<3yi>?rs}h1G$QCuY%Mv zF_9i08$!EA&0}T8aQ88qty`EBaE6mLWt`$%WxE2nW=$Canj5?q2o7dV8L!spbjj5=5k$*P)_BYOK9%3Xe7zfC%CfVnfAR zcp=0I;(D;exCSvp!lrm^>~KNIYZ!A|k6i<%Gb~T5@hkw9ldLIG`iib7R>(>5u}55} zc#4ux9kHR{oYoX>OqdFpjID1&dlzY6C;Go)wfHX)ceW;>rQ#k;Cm3zLlDxk0*gcb1 z>`iX0a~oq)>%xQ-S1}+spb+B2N+&EQPP862jD7DpK;b-_ghX)^8hRl1!Yf+zxn zCKK8vrJv)%jNI>mI-Gl+aQ+X-t22zpH%R?|fln=3CU`$U=n=QZyPmYzLQBEyfY96} zZe7Q#u(>Uxcv6$6L5o(Eb9r>y+^d!)i)Nf5@gqu~A$ao32`ZSv~pF`d;^ahYK(puJNI`D}&b z7$(=5Z(XH7xrkUq!Wtd7Fc!G@!FwWnSVL$T503Hid19DSnw?r`=2nE}1m8Z7YfkRN zHaKVWM>B*M@slGalgpHYU*zd${|(>%wOha~zVP*qNq?3`1m8YIv;7~4(*@!R{qf_7 zyMT-7K6CfY7f^h2OtAsyJTm!f=I4IQ;`*oQ^NdTMKM!1c-~IdMSC07NSN{mOK?zUd z$1~v0<6_t>Rt=Q?4!Zt6Qhvm@|H&(S`5S@$Akgg%52Ry%|2J;%OJDzE^1;ZYJWd%t ziw_5c`AJca%g1Fs>el9>5jwoqCS#QJqA@@x{EHv#<%`fCK1S+a!_rTI2a^FGMBn+Xfv2DS_Y4OeBA=j? z332b*J0`SEJ?p!VkWaQri$mNj5}Q=borh3pPbyO`cZiEL*1qxBFTC;+e|F^wT(gfH zJi=t}y>Iq42iAA~4kdjCCri3>KVo|3>V4@8htMzfaLrSs)ttc zZ~Nc<7=H1eokP-p!gT8i{A8EV-N7}t@h*|=kZ~~s`v^$K`e2vTzszLsYE5j0OcU-m z;1$S=8D+giUO&(Ar{CJ%Y<%Z8u7X|Tmw$Vgz|Z1$8pHy=c@-B=urQGBevXnpg6p^O z-MeE(M8U*>hGHkA#cRa*C48#eCh-s#deZtVR<;`Xq^ zzhGSaCG@{Ym_1DyTU-}#GDE_Mgf-|fVoO{Jl+`)PYD!w%q}#fKr4G^*Y37Knk(dyl za0cV@0>~T}JT6wAWF8wB3n3n13d7+Ul6rRy&U{WL{n#PRC5e1DziIhljsV3Qbb?uc~Z0DSR`F!z5Rd=zws;d`48aQ7dQH9LN zh{zM?M4a>f@AtfcoO?{=G1W*$9Y3;|%0qUAX_^yhu!s??2x+KE zLt$5%#uQ$xE&Gg^T>foV#$C3ESgaM)2tn7-xWKq8_$FcPv`m}FhS;y6u?M+|vDYCV zry6-o4X*lAjCsCX+-DC)(e5ZTLe)M8j2LF`MB^ETX~MMwnLkdcc<$WM^78HDA2*E-E;|qQv_Y|XE3x~JFNLNSV3J+jC z#YBuk?iB0tsu--KhvQ(;!J^p|lV2zi-PIi#w?a*r)!n~ra{lHUg4{%otlpB0UES7$ zW=~GOl>BK!){dMa*o139%z$xAq#Kcg$Bq=qp14>?a$Pv+GL&P4Ibx--Yy0vZIz&No zjS3jkm+cZfibG_+a-qSRjBR_GaR;>IRFgtNLjbEpwdAxi=FJVf+3n|{6v`T)`&CfYHh(eu>#NtU}A(n+E|gsCRw{KKS@dYm66 z^<|>LxQuZ#nzbD;Ld))|P@gGu|yZ_E?vxg%ApV z+{S{+7)t41HWAkbj9-$v$tu-7kb8$8fkg;2OYAMSE4*m&3DKK7TUo3LUDu9GmKB59cW7m=g?fCdCsuBLJEJ+>HN36c=;?J_|*O6 z>L`R0q{Ugfd_Sgr0Sz6Jj$zw`sc$btB^!q6Ni;2S?m7J7^GNb6Ohnv+ShqvJcb2@^ zM|le0PO;ULYP@snJXoeeGJ<4F4(kw~!%bcr9dPTVQAM&)Sz+%T-$H*})23g*G(Ur% zIO_3}w-t)zY)H#B!fcBicM)D>eEK|TvB^CD6lr_Gd%yZ0_}VWLedog%{)%n|Z_{i`4h|nGf zyGe94dDXL^{dLAiuN5;_1wJzYj?wS8eDE_Ci9MM;;@K;F`B!@WL}yGe}7MZ4-}KvjbEf% zo~G{~;%4ySt<*<;cfz7Qh6`iVI>hwYw2$4my6Ubt(18y0pP>#6-UA)zKyO@exQYqe z42zTZ#HxC^hS?EP*g>?Ejvf7e!_Zb>-rz}vA26mOOY??)y*he@ZnjPAPrq&kZNGbj z7Fx@sR+P0ReVT2h>lx()Jjn_>U^h}%NEC+n*9{`JTN5Kq#&v|js{w%=oq zW#0F1{+f;vBJUuFn)c}Pw-t`vR1!mX?dOTzyGgo7yZPs|Td%x0$SBoh8$a4(e)T~x zkDxN<1HbfMfqcPc;D}zr%v~yev4{y@ueTH z{fJ@i3G*|MJ#MsptIhhhzdzR{q1GQKcHbc9L*(?|kiv|`rTej?4lz9<3$iF-X&_`` zyo8Y})SFM@CpYlbz~b5&VttsZPb53Vn2c}ssm42)W?tI7O^2~_#3mGBdHFr0aEiD% zP0kKWBFZZ1DuNj@gB*ddftU%_d5jN`D^f13O)(2>wT-x*)c0gH5FHvpO(I7NXeoq4 zFws+u6x$@~jcshRL{L)KGVHyRq^DMf))FOPoI^E}I}eP&7!+5=_=RF9VG6dvWsqE$ zpyZWNSH{XEIkL@QSBXvpW2b0dkn|AZ^6Gv%jJt{-U0}KYAey!iJH=Puz}RP~HZI=w z8fw3R7>}vvnADNmi^Tcc(7Z(ob6hnPTtKx?T#gwQYj{(YLNH^oW`&esz}gPA5sj7{ z6@uc%5lD!2Xs~EhqGqa5Ux*6hIYugC55_IYy(z3#1lP`SO+=(E0rOa)#;#0vhd4zf zk%z*ijX^L{jMP&2=0G4hU9mAUq*!>))-rUZe9cy};>>1*V#em6NRq-qwq+j>6$-x9 zkYge(N($K2Ldq7&2B`(#7DQ@_LhgmQV%}Q2@@6R*hMdYPY+KM7#C}!owJJ$dC}Y>< z;fqOYrSy^|z?JvxoK_`ao?EQxQubE-(>zdqhnu7KH_hGE@op&?hS(4nV^kgWWQlQe zTy-4?Bz4#de0`l9$D}Yq3IhR=ImRr}SlGL!&iHo9Fs~S96I2a_yil!PhnuK`5ynPT z6kma>m#BJ-2j~03wv~vfdh&9FBrq&7c80i)7&pk>X_mtp#-G9X;}DnRutw2@G>N3pR10(rVgPU~oA$-$z=;F@)e zi-p(iiiu_10@p4G%XQ+iqN)vXID~BsaZvJLFx7yqr^WOF#LZV+?XzXU$@K+QV?1GQ zQ4=u6l6sF2$Z?69j8ql2u~f}~=9*#J5ErH}!_z7SoQnyVlfca{o5-5Tq2RNOL^3_F zjo4QoLkFdyrhMeb! zZiC&WT3?jKj%-Pxh2&5AvgfRg@Nd1Iic?3;U&=>I=KgOWtbFsdNgbCzB)RT)0^wjlbXu490INcz+fod`> z#cwGS=BF|4c}(-->k2`rR%l)@v>jjj#mFZf|4S|`-$_HjxCM)F7V#0YTA*k;%}MtkH1a<_qDg1E)1nDGuW5Eh$g zx=giR3Xa`qim5H8Im$zV_r2gbP$fFZfeiQ2&vKTZ5a-Lx? zZu7xUJxy3X$(R4-9QY>x(`UcO)%kI3o?!7L0?Eu6?_cF}_wd{*dkh&J!i{%s;{)G| zs?8gu{j+rLIPd+cd-Zd}H=y_b-XWZOgy>JxG@CGPu~<|BG0qA5J7qhZev&W$${U|b zJkWs-^pBzggZDrOI?x-}pZu#U{OYGKP_?J%_qV9m?`?%yyM|$Ul&<>@MxHI-Jen|F zE*HmdKt=@7jMFz}us-qY1MmOzQ^ffRI(LroiKp)A_fn|o7N>~w^HllAZ|Jdq@_GF7 zr~ihu+d_Vr6kA4{7j8>f+*F)5^wYBp3&XH?9wXm)OUf9&{2SN!$nX3qOZPCt;(ok4 zL~2^HdW-~8m=gNuvGF3#xsZY9Dn0u!L?*THH_UPGQ+&bolEuTNhvb0ap@}Xf|G?pZ+4gdKad; ziudtWT8|7N?vaLTeDKrHQ}^HI+O>|#{};IRhw+E5({8@{NM5!64Bh?+u+WUK!)Zbn z8TO}C>$j(O!)%>?=K=b~MYKE57k~5FyFTyb^E=r4cAc{Twm5Q8uyr|TH@nH;)^ z-MmpQP*?KpKEwVAI(Z0Zei}bIM6>mSTWrc#Y;zPhx`7EBXg)%mx21PT*HJx$t4(Q> z?k1>?R%KHe)dUP>l$eBd`-tnw!6TCK?SS)+e!31a$Bnm<+%im0VN8Ro4N`66Yp{MO zhG4RU?gX~>)P5T^10+l8>s6`Hj3FGs7%7+oO5440f^o7MaW30lla%D36l{d86KSZ3 z1DIxI{JMa_lhX+6FO;&M`3Y1lniiM}y5%v3=}B@7G;4o>Z_i`fJq$t`JXr*514%2a z`oiQi0TZubn}#?)Lmr+*-9Dk;!nZdNbBTU`gJFLQw8A)x)VfM_C1Qp=Z3)X7G~gx~ zJBp=jD?w!k&_wJK;&S2i+5wEgXoC?$b{=DT#G7*el1qY1Yf#V4S~TOqH-*2PVvQhJ zQ%dQwDq(3+O}I)63)v=Iy)xTZW8=Bch_k3@VIh;TRYaV@s!&?FO2kuFNlyV>orry5 z*t%MaAqZq!Ok86N!_^{%9h?Orqms)Mzsu;$M%k?a9B40SF2!Cq1E=CL#wlUnVFX;Q z#Gwpsr(w0Lly0^X-_NW6uUNb$LkNY>YnzvhV`~bNH}@8@MO6qhLk@y#T{$+|%Rne8 zP84yF78APZ3DV#(-Xf_bXDQ6~P*JVLQr^^;C*WFBOmv@1!qa6^vPd$-2ys!NNlOac zHYi$3`b@bkeM<QJmA59QP1O3}F+|8c~a?A*v@XH%szW zz*P-?RF#KxOY$Iu?kIaN{tv)5#$N|*$$1T%1EF)|enLzhXDF#qYcO_#W>1(V#CI6K zkE!-?)i&037;YNd17d|{?HY^S5hN+5TlLcWr)G=Tgb+&^XHw$AkkS%s79ash0jUip z6*JxYjBOHNu{GE(lcnG-lw5+iH`BPeEF2gcNkb&}S~jo|R5HpGS6?Ql3D(^i5#ZW= za@fM!DKVU;+gqajm|<}l8GnT^`+4FJARQ+UKgHkz#)k4BGaM<{aXVAyOmW0S@Elh`kQ=6hFFJxVW#P91UhMkd^_4 z0ND}bpVJ;bhFvq%n?EYIn;jQJzQPVYf+JJ5{jfVP$3Qqn&`jel(yU#$RS)@E%1GhB=jWI_ zUp|*#@S8M#M!WWXlAn_LO(Zo$EJ7mF$;>W~x4Y+rM_l{EGL!W#XH1DJy-H#n* zT)mC;dx%ZMSfPszVsnbnoxtQ1eE759;PW5d<^T9-2i!e{d^bh2LF*^j_VuIF3<}i@ z=O=7FI|1$;&2cAv`0)p!{#mNYIgD#@lN*TJ!AdH92K^ebK0_EzU@o2Dmp}bCeC6Y> zbE@$`2RhI{rVb3=10CoC9yM?LWN@_pLl(0WP`?Mcb|1~r=kNMFQmC0-dziR) zftb(pM~}WS_U%vVD<9wH{lE8T1YMHDeZ=mac)!F}Gt@*BS1!(%Eorz&KYtD*-*{u? za(7TkLVTM~JpO$y_Q&wun88$3c_5@Y?Uidh@z?+eANqF#CT5bIlhTRXjK|kfN**+k zV@vAyfa|>XtB$oFp9PL1tRbl(XeP}T4D;)FpUCx?Y&@b7%^lr*LETJgkAIWu(3RJG z++nuCa`&gG$1Pf)K&pL4NB+~TghhysYOz6>-ACw-({FFGe)bBC&f?p6M{^gzxJbM4 z1D1OU$tOV0BKi)x9R*M`)IE5?Tjv*BlM|oUbT$7$6R5OErnrNTwP4On`ugg6-YH266G+i-X^U*O~2EkX%p*9=@+K3Y7r@kK_9R_U|hjDkX_+9 zyBS^sDNM+NE9P&uD=w=gbcaZN2JOLu>IluDyl&!)@pf~U7D_=^rkEHGtk*Kq+Z${u zTwM&LV5lYmR+t29GMT~`HIDLqBEBibUs(#f)VP(=uEm(uRe78OzApbSeBMNic4ZXi za(fiKvFD-5zq?PgZIZ2(h@TTj_u ztmpzOlUKCtcdXL9IzZ~mPNr7D2`NHcdW4?b59C}@t0^lo+d?Fe`i7J&p_?F*k=!6S zL=>q4wY7w$Cr3+K*5uBkE@EBAPhvr7+$`V{!I}VBG0TJwbwQY@qFQ0Bl0tpUtd5;Q zh!{U0E@OQn=P{TTUwg>882BoX4Sp=dp&U=Cv*;>WYOD|jLtLytz*>@~ptvfNf|TQ0 z6_JQBfz%6e;n6HuE5zOvS6mg>cBHU@=5awbxPX{|6-yX4(A1Fg9Ag)xoH5M}jL8@? zC)iB_4Pv$mGnlg=3G0p(yhra5(@-@QUvDFJ57mq@v_o1I6qbEk1T@!W z-@8f=lb<6tLBGd^Jbv*(>s{4DLU+YMA9mIWSH-Ql-ipFa5McVi|$i=UjM-F${>a{IZuV-9OO1@m?N9KpVa ze#i5X-~Eqw#V_28jHwXu81wqO9$?j*U_806U;DOe~r1}k@PS*JVG^j5x2g7+euJ}u9T!KjuWOY5QZP{#~=G1 zeEbbR^egno|7wR%JpNT)oIQk}-cM)`V||ONM>QhpB3;-<<1;KSKD{dBdh1mR$nM5L zQ=+*+&^gWu8u#gEhpE@^?RCg;L|z&+>=MHb)SqDesfY2CQ&@Kx+!#YHr8%)f(>}{- zM3)!Q>P2iQrj&C(N44JHleruEmSOKmO~4cSc4*pOq522+ZQnmJfoQfjF! z&{#33Dk&6JFSbMkOL0~z|1ObR|s3PLKqYSSWGC3F*cKe z#~@%84N}S*U5B`UYJ=vAoC-F<2#6mbXH4)EL`KF`0n{KEY^7*#Ny(N1vd)#nav^h+ z)Ok5zP=&OFWpB{pC}S%~3xkkINsv$q)-a0PWc%Jk46rhC^Gjc;E7;hofnipV4c3;_ zHBr$3IV8kHR5GsKMa&MlKTg-RNFJdCa$Li>rWF6l0H((^ndZ}&pG_(v|gR6^UUJAuZQCboyoZXbkQ^AeOwl|f6RnoldU*Z%|80HmWDJ9j5 zQjLY!8*)%`fMHf4{T5ZD;Cl$66fVXZM6u0P>UPdBJxUJ8nP2)@>d|$=;w&+=G#fXt z%T3-?lfo957GZ*<2GR&q zC&XT(auwO0hS;F8i!+y?ze<>2Cv=x-++X3x*WU0H($_xP@xjl$h^?QYUYnxn7}g%9 zT6^VUtYl$1JxcBlgIU9vrm(QREev5jPUaA3P3&f*3-3bY1mZUeAGf-UsRvAkq1zj1xB*CoFC8m#4us_iX4hM6RX#X!ehynbxB7f3*XG77G2;v5 zrA5aRau-=%{5h)ozJ5;&=sHyNvoj2{AJWK6X1U2NMrtbaQYzC(geJa(J-M4~hx(fR z{g#)fYd`y`HxiNkd&f0V#=;{1MWy~N#N6!NAdIr`nV(N9}Kw}X-Y7Gw)QI)tgOQca$s-g**4 z;RD8@CC#@Ge}=Hk#N`c|&A(^1cao;9u+6L0EtcBZf4l=Jw}o zDD2#QYW(oC z$F?t`S`ot-U)?1|AJ;IZq!1O*u!f1nXb~3lyGQWj3h_I|C~|vfI7*IVH1~)RhWVJ- zwUD6NnBC%3+A0uqObRWr+r-!<_?{exl2pxt>KKiyg0#9TWB0j2Q-!98ZLSceH5w-v zI_gnRa*43el5k3f6a^C%Tji2M1VkcA#z^6MVv9MI(h@OCvH_(l&&ge*KJ*kCEdBl# z-Ru-PpEB$|iyfaKF3%zUD8dLdlr&|o3MW!)MAk6X200&Q*gs0Dwh4=ENDA&6Do4O-Ll!i8axx_)oP^waG)CMgp~(<~ zAuT<&QLGabPh8d*Yr(BB5Jrp9Du$e@(zzAESShLFkPA`)0UyajB8QSvR9!j17>xDg zsDx!XPqyafaaBsZ@&K#d3R!i=kqjaw`kl$7p_sxY>8%)9W$&^rBi5mCcv*3Nb1der z0V_$rGlhtW_M?xi+`p&Tu)o|QDI)M&P7tWc8y zhZ{!{5eWt{mbe^)NeH%ZjBTP{wrCV`Ojs`nsU$-KXby!Z>@29mm@?+=CpWNlM_3$z z+^(1uixsa_AdPU9kWEQZsz&N@N9>CkZ?Gl(TV--6$5LJz%&4%L)4U)GFp71`u#m!n z28{1%CK=-u*93;8BP}dBSyU^AMF1HU)^DO1?zV$GMyRosB4(W&AEci@hz{%I5Qqp$ zVf^Re0W?R_a0=J1QH>35T(&7{%EEK zp=!uow|eGM@}N=Lw~AtsVj zB7_lQE3AE%(Xqe4_$g^<3koQ1AUefNo+!Z zTl(2Q$9j)nze2V74CZC#sv5BMKDoYuwVsq)WPU#>Y+%>_6V>RM+ss%+$o+`!#zR=M zxmrNmM)f@P`gziFjB2&|Oc^lE6mxh+y_hh)@{7d9A@(l*9BU{3?yfx7IB%Hmy`4C_ zKn~}5;x}J1b43km1vPK%+)<>U)T;DK!}3o)@oj$PlM8%kVf0=!zYW)3D{1*`h^c}o zMU15+P@|8!o z;n7##$N&BD7x}=ao+r+a($}YG550DSt_DlD{SayS0y+MWPyW^$8-u$2Z&`r;IluY` zrwG$?h&_g>8m!n=GHRa?ui)%c1&i<-Z~7tcsxpFjgIBcZzJ-b5HzPlOfqw4-u{vH@ zuAxG1oQAb++}f)%!-n}L{q>(Fg=2`hLcP9$*yD&jj5T|phX~8Jk*-W=x1PqjK-Dgw zT~KXYWqIxG^wtsf0_0t+_)^&R8tV5qfg>32sn!aoS0rJ?L-u$4y}G_Zs>WCm!g3wo zzK(>s$++q=gF6K2S-$Y-%M!qE@HPDWqfhane^(PjhWs|dqQkFU#n-cvp3jEZjS2HD z;&PLI??rO|1Agw(cW)(yzxG(!&zvz zUo~N*$ui8(l7=Iw2847a+N?F|!i0B@Gr00(ME=UPU#M`YqzpK^{SWj=hWTMuI1$eZt~t((-xK z4p{wpRNsl%4qFMxdP#NVb&Q*!+5!Q^V7*1EF>x>$9ic>YF+;{bpxrtTe2+AY2;EWQ z^1njl9OyCfunxIHT|!n4V+L#vShr6~C8bjgs134OFs1M+E(9Zr@d0s51c$M!rm^S? z#-U1}Js}q6WbQq9!MKb#h`mQsLTtd;OiG1u42nh}VKC;V8DdIdp=LA{wy)*_z)i6v z4~Sfzihzx5{<3_~o2?rIliSfL$Mq1i0O za7adSNu{PB_&TC$2;Dl1%WuQl1kDsvJxA=1fvu_6XZX<^F_C`fFsf^$VT72Wu#cm` z`HYM@NCnxDmk#4sQT5)S7(^7;4p^6qaULB;gwzRPxl6Sk$Z@MIKp4pVm=q`EVO&_g zzFQUhRpj7NQEa^ca(Nx4F6NIBa$oq*62Me~b-AEyq7VluOlQ#*UPI}+)qa9fk7rct zyW~77xTlb@zQeB7gn2H7d)bzSg-Q^oSQAOnlKMjoQ-i7Jv|BF_W*g=6A}el`u>Ls6 z7Md)!Z5XCw#5TCb;@3J{vn>1I3OiI7x;=4OfmXzBgs~ms2P9R5`6fAasP$~{oI${*DJ+Yf(-8#^Ktw`!|-lAq8_Z7Jh;4&uEs5FQ=G*KAU8B*^`5oBH&%|k%k z4t}Iq$;4b1Kw?r5M^=aC0S%CnBS(+*9&sBO1T{;no04NB1w#yniQzCJ7Gn*@_Qb&x zx{ZRj@YgWzS&T2AEw)@8RM_K0`UN)Kod75g)>;&U>ZS!B`?=u za_zR;3JNxW9k6zUb&(twSi6I*_OR8f8-Qjsr9S+ZbnzDmd+W^2yRhSnG~?~tj9wio zy6I8k@+e{UJbCuyZJ+r7$#rN9w~XZ1s}yUJ4v2d-vsC$$PyCQy`#*0mEZ2eeAY3Ek zV8s7j2)gCV8seCg4<u0jz~DX5fe!T6>5GppfWPCh$G*e&&TO)rwb*PJ+K#hfca=!J zi$syne2acDLF8R%bd0uMxZ^ll>>9f5hX~Uh`q>Zp(xX3y-+GJw7*W2&i@=M#_c6!O zqYYu?NW;JvKe7BLk(~Xfq9=Ym@oRtZZTi_dm3;(TT_uG?H$8#rHgKaoT(v9(9@*0E zoFy#Zj$sqz8AgY`PG*F-vs9CBAri>Lm@q#<9MUY!a47@#EW3895vJod?TBuo+>S1Ybcl?=tP1<`9Mxep$~?m~3v9Jj%F01FqhqUb{wCVR>yr9tKj_MTd*X>`62%NqU9oU*OBXb&U^w>c2doI`8lktBi3O|PaZsBXbKb9SX>3h?xEIU>J3tVAB(+hMjKbl>ry?(Fx^Ds zAxwRV94*HAk~~X?Ku=;!Mr0px9aXbHQ$^^{AR5ZJel&<#7LMrP5kJF^dU9xqp~lx! zq{)P3gLDpC^`#dtMvw_2zHFb~LQcqPF(#!|nlWeWsF*DxsiZiilzR<5_;0f|HOu!f$N(O(1Gb%!I!BHTV%lO= zrHqKd*AX#^)YS}qNxNE!h!adTU`<9%z*sOzkX}&h%JI;*#MuDSV@zS_=VS}6#TYQ5 zU^6hJVT@*j*f}aKDjtJn=q)BIe)Li)T^a-#6pWN)G?3D&jV@D)*m5R?!jNq?Q%QSg z3ptWPRq!6zl2~1pmRYv~&YFa+D_HGornfK`@?aTu*1@hJ(t_P(eCh(ChOjtZ&?LQL zy)6q#uC(Cg;L5&bB4oLhB=@6^6nb=M$*~|^Qm9D1ta!sy5<3W%VfP$zIOD4wY(2-+ z3v_5naY7mlqDKk_pc7)q*t)_v#nut$_6m|j8**<~<&TEg88DF?10n(IBh8_UU=luA z(om6x3QcWUm@+#UouID5Hx)ULNJEWjuVejoDetVearqK)d5j!RkhNY-SWF4ib&O`SIO}~yb0LqMdDDg*gi`&+F`kKALs+PW(_~t!Pb2# z2UH;sBUr4XvM9Kb{SC0OENpm1<6-hJ#Wt_}?6=jNG#9j5!;E&(xhJK=#QyRtCYi!~ z6J&yGcgVwGLbOy)3CneIS}Uk1Lpg5z3}^QdpBQaiCC{H?*;OpBUB)dYq@B}X6JjH( zZk4p(ChUKgpilD0pE%DS{lvLy)?GC2Gt4)rCaN-w9wwGt5qf$T9xe zK<-`h|~8`L+N3FIf&5O%IZX zcjHFaaLpcSLrD$AhGBk~wAdicU!b4;kW=zE|6rzT;oH7!r0G@C$NzuV=l`Lo5~;vq6Zwf+L#?mD@9 z0M(=T$@Nn7lZAf!GnP2j))x2x#!$-=eoCwHINiVQbS9I zVYdyijfNYtOw!#z^<&#=*(4-2^kBH(`4{*>fZ8glDH;7p0@grCf(6)3wGC*XC{d(D zRgtWDxZ{~KGcsZi%MUwwi%OWgEXTw~;+P9s2zo31Fsd2E=W%{I;aWyn*E2CVX7OIl*dA)%?bp)80? zb=zWyFBEB^XgxmDHEi%2vcV6)W@nw?f?%b=${r+zSw>6|3E*qFTs5}ajZxh|HeB0P zBR?9Mf(x}g&voFu(PW6dkVmj6hg!-QY=hp|Byoeo;)GH*j(O>krX>x4 zD&7~udnSBQfJ0q;H~1!^9`d-E z{t!d7U^JN3L~AK68V1l~O21ukG_D}-6me^s>1}lK0_&59Azo&EcbBobMRWdHLgWE@YiVMg{I-@b0ni6+AIHfbG@bQO_PERPjQ;u03OD+0&ONW(Wd z*&r0mt!qgj7Z?xb6dO@{1fB2Ur_V6G^p!WHWi5N+>H>0lp5*^AnsIRruOGtA4{4@vpP(J~A7Wf9 zWB(G>JP0Bts-x&tvEkyp=A+$OnumZ<%n^s!HGL75T>;0Ag*pfAHgYH=~)} ze&Ci)FuL=%=6E6HEqyZ;UKC4H z;4ad0SdUSt5wh7X{`!?ga-X_OWvitrw5!d32m%(1)W1s#Je0!BJ2S0t0?%bUR zxN}w<>0}peo*=IFu-CQ;?N=C1X5fDix%(cvy_erml6e1hEa$9G9%DGUN$Q_QT?geM z%3_M2FKK6AXMO6i@fz{?2CmyDuV+{}kAw+fzOF_^oMN#Qj33JzusEZ6II~aj7T&36q z-<(!cHDBGNrB~!}f-*ApBNM;PWbX^~3$XDaa=t0IR;*qV|is2}j%nzT~#SQFtTfvRF9)I_ocFo(Fxim=>mN(3u%M0BWyYPldK zl1=g6VG>BOLE{oP=`qV-wG~aAK@n04OBU_IKcYj z#V46mjNF3YOs^NTv+y(EqNl?f#+%~;2ipH;0VZ$j^VbDP8P7zyjxe3Db@6Sg*CX_0 z`pW!T^%0KkB#EK~!!KB&McJ=Kt zvwlWQFD#{-B_uZz8R1wCgZf9w@=J;OQmCA(dq&EIx0IJY*4z%GsQ$4q41&CV;| z;`g&h8taI}!F+rZ%eDeCT0ZwZ(H6geMaAwy)LP3 zM|cY?-JN~xp{WHOepm&*a_sLh_5Y>(Ce0~*gZsKPtb7R1ga3}?>B%zd5cl-1GAV!r zX-Uxn$q_)PQ|EL{v8_eeFB3Up5fP)3sxiZC@a%>3%Egs}-uZ_rNUU*UdRT=^!Wpen z9v{M4Sus{d0%a)Fz8#;P$?^J|L|`2}lLUSOJA95%Ki*S=FQ3LPvsG^1dY9#bpWcqa z(vTiA8}I)6Dn`s%<(2N}V$xQj02FXIa9(~vT=s(2;l&lSJN)QWJX5G`Y@yAfLZEXr zZZ2ogFL7F2wf^QFl`c2FPw6U>Y#r-`On1TjuUZs{48ErFeM4At*fkiOOE8kqGw+tO z2+jW)XBWYyGk?=gIril@;ETZpCf(>Ftebs%Ut)HkCZfE#K*OsxYU;I5_Ak~~Fk#e) zf9x|T&;jBI3i#9V7BJG>!8J33y#?@4%)R=q zwf8+?6koz?_K?b0EtO*jLot^UPhJB9iw=geQ=a%by|;#(bCrtRSYnfMtwJ_cL~E-eyQR^q2RWVO zKl>5EOgvKX((2=2*3wljm36UTn12hp8XPkNN2d9OQj~NmDC^*aBk$xHbi(Bibzo|9 zpUS!M-1LlqXidFj2-#Cdl~O(rbMTjR!gZKcj7NhSb7} zh0`k9j%nCk=WF7#mFc8&5M)(@=P1YMa7ihBCk-?1EoZUGGSXt$i-y@MK7rGKMk)xvF$bsdH;4@k!q2p=_8_9*> zOM1%C!;KQH{|$v@*g>nuCjZ>h=y?2$@i3Bv9x%h*_fN#PW7_Tm(JVL#(t_FEq`t=~ z7LrfS>H4{#yh7<$58cg(X(g0vj1Z8{;t+y@wc^p%;i=UQYWL8y#bgAxe=T$o95Ji0 z3`NUp$c{Y|P5BmwI%b0s?H_R-o~VIl#XDJ;jV?#tl+h&Ha;yl!Ss&m3Lf1^O~0U3 zs3>KAzhW^s)?3R6d!|{+Xz?Y)+sQE_S{0( zgRaGdSdQ>2B!^<2Em_kI*)i>7Ch#oLwLVW|6fo{15-nvaISR*Iy3Fkl?OOegnDi_i z^`y_h`tBNuB^*V$@EPzbB>r&w!2sp_wtg`AFD{_aKAu_N&GgwYxz+RFiJ#Yapte1S zlT2LFNK_5X{?r$IJ*8PN@Z`>Zdu`efKN#A#lfZ|@PXEH1Uie_>#1`4}g|fw6 zc%mHKduJ#fh!o)b1=-rKyeQz5q;4cwirYV@voG!zahruPt@O|MFlvBr!B4m(MWT*T+^VW3_Tw8^?HB9g;+ddN;cFY6Du${{SvrHB*$ z6anjw=TD~wKtwTwNLog3A9@I#;INHhEwoA*ZYi3(J$7-75B|&8NeC5s5;hD=5<92k z)V`F=Fcz^ct~G@ttGrt-|FyTIq$maIN=y{lcs0;cP2qDZwPE-zB6F(Oy(ehb)!`9J zM-J+SbBZ3gJrv1H)bm@GwZGLRKXnK0PqA59MG!iiO{dfTKfW{UWEc25tl*`m5($jkej}QtW3JAi95_W8#jkdF*W5?(VZ$*ZJdHfhG|G4~AjnYHzM9}H@ zncZ3zY>-(Elc3Ozjg2k`(>70|{a`L3kGpi`Cu-j;^>; zd(|8z)=ONVym>AEiDf?5ABL8}g_*L713s|?fP#!-srrnSLM*l&kGF(_Mtr7G{4*RQ zrjnw*KPcUA>V^S_y8v$?GtUJ$rl3(RkLj@AnEy2(7FW(dS42U9wS_%`FDxk^OQ4R? zMTs}FZiqm*0DGvSYHKn4InPRUm2bqJca|kRtZC7%1EoGBhYJEyg4ENVab-l@PS_P3 zFs7Y#W5WNiZ?@}+qf>U{{jIHzkC}bS`wN8~aVRRVfY}QMVzy=B+CVNi*bL z+@bOT>@Ldkr>i8cI}&E8a_CY0F-R*}#_Je;U*RLh>r(8A)_6a=07T?g;4T?0k?d{g z$ZT~wNVxBSK~c}B?{X;0EhLnZY>q0H_|ZPPPrn2;{u+%K*?jU#pyiW_Lp_!_R%O<01TV{1RCz62}H~Vf$D|}UCrZT<4F$`s_jo(7Rb~DMWmIY?ra`|K} z-&i~!PcVa8Y0wQT-Zivw!?p>)Xd1(Apqo6BY#RX?>oD?0F22j%ai0F(<7Q5pZ z-i=0FU(RuyWYm|p4Rdx{ppw77Yg5Of6P1tw=Y5v$An=75;-`#PTaa(E$jHwVIGcFx9o z`RZxYv!)y2VxO0P7hR|P!55YgolFhdCoidYD%nJH<)q%nPy%}>pPE#RwPh?WKW!F& zyywQ~Cy!f75_Q`6c+1w}$`R7Z3++C?*_>LFJJ>Z8 z<#GaH#7`LC(9IrMcnlfC)iH|0+LR)mLFHDn@R%^a*ao$MU8SaJ?b}p*8{I} z+J8=t7W;)>gR&ntKMo5w{~m+;0OQh+;|*QB-j^S!pnpTR7~&H8;)AoZq`xgfGXtYa zM|^*wbikDP6Pg%TZT5{i2TTBVj)LtbA$AdwZ?{tLL!UCcXyS8(*>M25sEEv(f4iY~ zO8{CM)LpEIDu-}mrRe+MLq`549l7_f2p(hLgs59ry${~El3Qs#cKcP*hZy>!*my$P z{;{Ql-{-gUx(e~P^~sG~y;oEKDZ<8-ecTLDgqIGUgvQP#a}1c4KXs|!g)`hjc?c#0 zVv*TRpF~#K%zWeQewa_F&K%o4qe~jexKkzKYSWm_$5JMCR)6*uVXfY}USW+i7IuM&l;yt5{MOY2(4t#UMF#hOxwi+8=@e z(FeFpfxLP1$$Lhnxq;zMm&q}8avZ%ngtZ4+w2A2{H58C^B&1(jPCbgJk8BzgSIJ0)t53zYKctR{*KNkCc)ti78hcB~K&?#bmZqqbAgtKK z;yXr0Mf3oAl6fi;emi(kMZ#j*`qjF#25kkr>$>s@-wkt2@Q^M`HGd;`{KP1%9X;v$ z!}d4a*q5`H7_YWp&}(!UE>0U1LR@KqyxTygHA+8a`yqqHF_6{ZFtu4ptdUiXpdxxF zW5`6HZgH|R(c=P_r1&vqr>c!9LbG=9bs z`lY6-<3&Gz%8yq+9$MBH3@5Vsa<~aEf>JTUPKFFaH{lX1eJ){yTSf`&Q> zC6K#|7l7_|oaYRD!-_Q3-x3I|2&=nN4ha@fhlWLHRmKjufQ%N>`JWwMFzVb=lRxHA zdeG+`MJ11uAaV+IQdc18ntWGkusdOOSnq_1N}g(}FD|M#r$ethqT5l*Jt8vIb(L}p z#>qWUPf}RjO`==bh#}}*v+q7zv3AN8`8Sp)y+x-+aQw+4eEiPb9+%FPhB^cmP3s?r zv*9g2LnO;RFyi+33B=eEaQSdq{MP-M9CBg!>-9K;LkzmEu73TY#0hp%4=n?M_F|rW zKv_O`+&SQ8_0rCex90k@*p0o3=@}U7i}mAPi-?r}?-OiqJ_Yb))84z|&XokmRHiyYjZVYuG-i!^Nud7B?i)QDA^lRqQ#>$ErsS4BliI+gkwrvvv0#h#tL zfAQwLQJi1g^33;4uL_0v8TA6qDDSfgM$ck4q&$nQf*w%2I)0>b_-6v3CoauJ`k;tX zS|x@tlVXl3ZQl^Cm*7*~@Z;Gz`W~O9zI3^dxdlXG89s-fMT{dDRe&MzLu4vdYlD zHZk#`JYw;e@9YrLFu*(W?h4^5`@y8?3Ge!IdXY%Ma1KR}>_0%&P_x}3o~}}3g*tU# z-P&BFBvp4 zu$3q5wqU6|Yx^)0R#}2nQsW$U=Mn%zL0ZyJE-S|1n+T?T%bpEgDv7kph-_`BZ*>M| zidNuu1RZyy9nl;wt|yeXGAt5~TVt$sIZ=;O8eeL zCg>AV*iL1NS^Y|cSK@OZ58NLU_{5MQne-{!`~4Fx+MOE z3%FGrF-gEDnEw((c70?Q`#lDyuO$mBDeqT`2tIU4*V`ctA>GCQ|yp)N@`Xl zqWa4-VrKcQFeJs*=~pf_+L4AvoC?RPq%U-#F-?Jg*vXUib^c|sfbvxkP|ajSO>Mld zWU|7HKkY`PU6Rp1#%bQ;L4wN+G4->4SM$oQBJ0=oG@Ggy@JiY~nJq6?RTpM#h7Z&R z(e9^tGTIX7p}XwP1sb2mWgau#r}GO(y0CWbj5uF|xA%0Xc-7AUJ);03y zBNNZI&x`mY+rL#cvf*B3+~DQ)=Ob$Jm&~Ksv%2~uCys%uDWt!OH^6ja@PRweQ`3<^ z!HKfHQx7>N1jQ_#&X!(9rnC^DL`TO=b}sqm$XP9*nKwwFux}4MQ1Up5XUQWq zc+yyNzbs!33iWz9MqO8jSjqnF!Y>6|z8PRK84)Itr`nI|)~anO6F-amov!Q2n{Tw* zpFpmPM2$Oi%c+OZ^G~|2^VxQ1z2QGkW9mrVZYkY5fo?tFf?pMpHPibgMpL&nksv7fWxP>`qM>Obe-vsnl$-P1r2R>_VbCX=Cx9+Y* z6C^=`VZ%|hF~gqxx!<0VU%P0tt?`Y&d-A8~B&SEA?+u}Ckx~W~a|r%Y)+^@8n79A; z#QEnQF&&!@-?>HTH1;jIr1A4+bpj%oue4X1G0Hw^uuAWQ(K0L(Pd+9AT$3ZHXppWu zJ@fai_zznU%y{VCI6Ou#5C+bfNgdB7H!X@32!CZ?0SmkXH2+B0+^dn$tg96LWSdPg zd?Fh<-foy?@}%*br`(hR)!Vf-x%-n>ynwNkC!Ak7+Z-?{ zZJ4fuF=HcTAC?^Lx|e-7&+a12RZ&4Wv$~L6)*~*~beOk-P(FM}9ic5h^DVa;?21-7 zLZi*Cro?NCYJ|<)D}=9YrgC(ur=q{SJ0zhh#T^NDV};X7MlG?(YiM!Pi7%J2p^J1q z7z?C8CEaRro#&mS`CaBFQOQ~}1kiD)mupy^%y+K6xK)zuogwG+x> zi6PuW-c$O5o{)rEl`SF!$}92Kyv=Elb<}G5}i3sA-6P`IoUUJ=0mDLc@MovG0gbL`S1N7^hiQ zH{*s~z>QH(LwOj&z;l~mZ`Yl}v?CivSA~DiNO<#%WLdz;21&XQ?Uw1xBD6~CCqNs> z&r&j&YHER*c)vM*VF-!)imgl%wwU3;C&M3mkFrOv7onNKrED+MyTHQ>$kT~@nVvYL zrak0`GgtA;$6;BzJr01z-s37!y;3>&XJ?*4AW7+=O*3r35UwdpnY(8l_r*kOwvp)X zzLdf^B^QNd^hPj2=}r%|5kp4`w~8J)@1vCkNux9l@O-athpt*6oA0w-wVuYDU%DbG zawOD1$Is+R_Cwc6dt7e}!v%442TCvOS;#}7m3XM2_!^l2f8xTe!Ka>I*=Esv>}`SP z>;(8)S@7Z#*l=;%lD*&7e8YQ`r+)jask%2JwpRqn0JXq^@^O$p|CNw7fys0T0+t7vV`oZe70I>-GAgS^N$E@7F7 z=YQF3R|fZd_x$h?v5ov6{nqrjO1o8zoy=X6_vr3k3L&W_wtpz`@p@u%3Zvi!O1{WL zzRAB|qtZnc#j5g2`*(X)zR@Igb9Go7=no$tEC*RPIvS`^Ce`4~Jx~t5G(6uGcf)M# z=F2zSl~%8l_OpMn{@}a=R}<-=n?!qj?hxD)c8dZyFkT@2TF?6_*vWFypB(Va#V9s> zBzFCQE@Sk!Sn>{u@s*=b1ZZ)&c=`C4CNj~hmV)m2!i+O|wh z1Q$R^My<@wvH243{pyXyHF-Z#u}iu1wlBf^Mf|;vALDJ>rfXZt{Xe&n&N>UO*=9wV z!3n!yBF3=0Z3()Gm+5nGih~kp5zX`&L`)Up3Wykwz%YKsbN5y>UWO%3N9-4*Q!W~C zb~7kQsXpRxQrD@TsV7YKUpk0yk7qm;R}OXwzkg+RUZrY4i0?(`W~)jVH3_{rm{gfA zzD@r)q&4y*nX}xmK&IZI!CZ#Xx%k9>-L3ZXPkJ$GL^^rZs&AOrk#F9Ux2hvf!uZzh zKaoKi(J7xhw5!anpa479(pvtxODR4+;M)WCE3OSuz=O#76MXQ$GY82WR)*d#y-nYQ zr8f*O7H5t^@sC>AS48rUMMIXPEj4_$G`u5*mf;+1d?*2lZiO_*@6jYjJ`YQyQaro= zV)U?vZ>CKHV)c@kl=%PIpxHcdh#65fc-i(i+aE7Uc|Sq$ApOc@B6!#eT#dF0`_v)f zSPIv4wFB|a@V|5PNR31H#_BK&&(orC8~ux{ZnzjB(=Bv9m8WRSL93fy~T2wKU^zOn~c(TQe*mU}1SG$W&R zPqd0HC>zp1C~hDtqDpcu^__0>Pngz7MI}P^T_VbMday{e560uf#s6jjpon2O`C>@+ z*T~X&v#K)wx|o4m=>A=yF^2h+<46yuaTunIvLYp6!3e?`ZSlC;0@c*U?BOk|i5h7r zoUm#d=|mPWF!#ReY5egniK=wQ8^pa)kC`w)$Q=!H|J|%U)>ze*F1<)e1#r3*(H~s? zV{JfC?&#Cnh?jIQnCeH}5P^k^g~K@*mG%B>Kde-RPTBw2yx|x&nD`oA{s;1Bt0Ro- zOwtP~rWeQ>Ne~hzr@Pb z-~2Wxd|CDGH^t{gDH18(UEZ(M`oG+eb;k6YY4rH&X@JrOa2UyOlIxgCro$@`*0rw# z=A}#G?l;P$MGCbEG&cz%i3EV%+4X!X2PtMmy}y7Tuwjf^AUGlukqS;)oG)w~G7G2iaTp%Qd*h)Q@!?Lwd85hwvgA?cmF$f~qR z*C&iLB&@wa57kp|3U>A2F+g6M$nz&Qk%&h$)M~&z8Qb5l>74|Y9QDe~I<&a34G1)x zn&P2zIz??tneKVDM?APP$=52-#GFW$B63EErd~(yG*H?Wp%LZ@(VUGtJ@FAw=kR~N zeX^(Gz5h19URI4GEJtD;ai7Dv_31W0G8rCUqeECy_aVj-dKh-NJV>8jyuL(?6K#1c zTFV7KGk+?Lhp$4TWMlaJC*tJ-@miyV-_ocqKe8xt0dWcycyF+sN?a-oT9CIsxk-J_ z9srVe`kh|v8jK28@5o^k{2+TR{>+@rbpy3_LDabVWdmo?Xn=ny36RGHCa1sSw_y*6 z^}2D4^3#ZdK%dl_zPfuq@f5!Rb$79Yxtoq&8n)k_LW^JdO(;k^a{ADTx77qbuy)sf zA0Z97{8Tb9qHnt3WGUMH*B5-x-@g1GkGCKB|IFSmO_@qOLHH+0TP%RlzrLU!>rS#H!ES|YyH^cRV8GIx6dOzJS=JvcU?vL<_ zs1^j`EKqG(z=~<_eLJh)QyY4&9kn?`pXH%wb7a`%#Kc0jqo0`t;w{n~IpN?*0yuNr)WIHty7B>t)YO>W>i|KrB8 zS@)5?c#F0|G{A^zl8CuWGCM{#%rO-|ED?WfA4Pn1Ab4tGCUu@fNy{ua7a*i&@Ikne zEr?hg43mFRt|s~?)VtPsr?5B5PBM-| zn_e{+!pxZ4uJMPh(dM5K#pGsB&?{sB#8S~(xLu1q^cPCK$ztlk!PWjB(3Q=TxUyW6+kWop=*T3u;%`Az|q;Q+O34ux*I6gDzO= zp7|Pqk`B>rA%`WHdbC!;u6XN7s!+6>S#j945jl%{+>of&+s>0^avh^6yHKhyi&ANAbaUVbx;P0nFqQI5Nigj zi7}@6M;o&~vVh`Wmd7ngl^39jw(*A(1)@-aypMmK54_yO_>5} zU)Ze`yzsrw?KOt*IQ)AQ62BstV0^rM_Io`Z&lp3hftn5KlCZL7R41LBbXL~&U)+ty zkd=$?4#3B+3S;{-8)k2m(&Dnxk+njvhq^6ZU-VuvY6p5tY&5l$ZT&UjI1(~0d(z|E z7JU2zBv$$>MU;#zw@HSF&S;GG$7y_!pB-FQDpSSTD>fyzX& z3d>m!W{)q-ZXGj)^G(VpO%aZclXNqctqxG;eGhEkrtKuB`cs`!WZ`k&y^c;|9q+6< zBZ)Y{T{F(3QY8w|egp~p$|#c|9ILIEb`L=04+<6egJG{{hUdJuVW-?T-&ftdOU!(IcMoKg~@C zys2gOz2HllJaW5a%iN1hsM_w3c@B>0!IU5J<8Jht&(BR4(Xm`ojXq%M zuxmNu$wV~htek$9CQ`wF82Q3M=YTbeD0jdt!8QqY z7TynU)$mAE-pCCgOA-$0z23PK2aEA%En?bb@(*bBYy_5 zbn#C36*lW}I7blmt0~MO>tQuB9%0T{`WIGQua08Zxz;ZEYT1E}QqT1zt`weV#B?;l zP|Y5Ur6&XjbWHvW`*jJI&xM9?Vyi!KtvL-eoG%)>z6$tN4vxW6r>@{utKP=25U;FJ z$^bhaf3TCNauRrlc}8~`uY>vXF6e~a$RGbr2OLG6L^qLL9r!oy-%4^KOj=5L!wL5# zRp8bZ@8#_q^5=)8%qJ{3rNc$b$8QTssmMrw)k|$1(s|L|ryjD4Ct;u27Lit@b_*u7 zCjus6tWx|da&bi8Pe9_ zFig@m9>Gug8roL{u-W)KthpLS2Si5CrQeD*iv3c{uGr;r?FcXYn|;H3GGX6~ zvW8VYc*v>GszcIUoB{`fHNI8S{Uus(Po#=a{v4eFTQS*}^N zg^jzN!q_ztLpR9+ngX0Nn={UcEiA3WQH8TYh+HwGuG0>?p4b>aR1u)MJQ5~os7WAs zuUFj6R;ogChglEp)fdcqoZ!GB+rt%4K~$kofnaMRK@CEWJStF8IJ2`j7OiEssp>Y)i3vi|76qp(~Yxn_tkV6PEIxD3x+-CQd$}%YSsc{XIVvbWo6N~5!HKzQZ@i0 zKLzN!@{l(3o?R5(SgoW(qJ7cm*OwUL8Q(A(o4f|4O)fL)Jt4OmPCbYH?;T3V)_Mc5 z{@5!tp43raWsdK!q$6ulr2@^yin6p|wG=f9n znk=5y-)SVH2;b{sW^j4bE;%|G$0`ai8=Ctw(oFqYg*0t2>Pld$F2+nzuq3%O(R2PP zm?{&{eU{c%4Xfaw8~KE!dC~y&gMVTvx`M-6&q-_ge*DhU?Gj=i%Alw>5KcR1Pysn4 z=aCZG%NBplFa@sbW8iDHSV(R_j-MO) zB;>E_ta=FjwWCbvLj}~9EwJ&zFswkw;-9cBogk@2(czxfEn7S=^6}6%des(;Mto~s zV)D{U52<8ox;^mU8gA~1{viaz1#PbZ%_$ZQ5`A@vvlLjYeNQ`G*m*-Pks}XW2ztLQ z7AKATFA)7LvjT~e%=1$7@S2Z{tv-LvTDyGW(XJE3wUL{5ZXYqyCBG|2kagK-c?C`T zP2d5XgBXuYv%Gg^-W=)_l$w$CIE(l;P8bywzJN-wuH|@6*&i4^(8Fe(#z`mq5Q%9Hpc?qtk z+)=YY>fYkl6WP(x%E@b|E%`FZ{)V7I+weN!Pqo*DFy>-W8dP+ws8eCOLtzFMZ_I(n zVv>}7ls{sf{fYW7bg>GL*Pc@TXxJCfP6L0+i`(jxK8Oqk@Qv1_M~&#VGjEZ7)Y zqZRx!_J-HljYh+vIFLh;Y364*7jy_~{9r78uXlL)n(mCXxfvrU$LBu7ZP6D(Fqo%& zYMtYkWFd{hZ8o5CN|Hy_XnXCc&>N|jIuvp}N=qAMmM^$_2p?mrvywfPrCGt0p7{Md zA;*hiYtqGoz4nFcZb}Pq-Gw-6jj$VJ=FPu%XwzCZ4MVpfI>g2yIUSr=O8Z>uB0YhJ_j4l)(^z9P-G=ChFYckSqJ%W zvmYVeO|D;G%mn=8cqc0=^bC_Yb!jmMwZkT*(2xX8>mUotX8vvlDds~fh)yDMI=qx$ zcfN7n53Aqn%Q1SoXG|Q!c6-$Cj$-KIfFmkt442`YW9jftJ#@5Cy6XXSDLkcX>E?sT zCGI><*u6xtP^nO}D8{uQb`3Rjm;JjCtu=c3(Pn}0TKtF+y1cII4tRel*;zoSCN7K! zFE~X)IILao!){mM?6Y#w9?{4Wp>DV%WL;gJDl&}C#dAm?(tO z^oo4U!ZBJ!w+*Xud#xpsVO)uU{gDA=lZt~bETs@I_EuFcDqwUtB2kc*O~>(&!STQ_ zgX{!hUJIDVYRCsxRa06<+fa-^*+-e3(j~`9x^r&ubf(~r$BML%JtDM!r_r?0X!zZa zRF$(eSmKn>a_~ln>mi3E1yPdQr5V3h;T*J*y6+TfXi^dHlUcDX2pX~<9%W}sXjRVeA7{x-^~+^lREC>loJvs#eJfT`>pmAt5O=oKAc1a10wr)z7s$9O zze}|rQbjW$he#;o_Pc_if-T)sB8+*~IW>%4Z{H$g$Xv}-iVW1u=d*7otEXKNfJ)5^ z?ou;I;%jni^$wlshZoP=my3qw1&T@geBv|*CNxi#(NV9aXnpZ^D{6OH_t zq5|~QJz?2RnL%BS2A!a|G%Ulaz~~JD2`pYkNlydbBQf-l>q+3zl zFZU1vgIBSI=N*|;{~x;#u{`c+bM=I;rwvDhI!b1}6xH9%Ahg*Y86qq!`!d4P`w*Ps zQQu@j#IJ7`N9JF(2$D3}g5G?Rn?=<0ir|gG5O5>im8{MdWY&=k%*;$?$cgjsfnDN% z^H?y;Z*#AS?%axBPl338?HNdO+s^<7Uq{HLek8i>_dD4qGh$>hgO3sT10(&+$;}7a z)cVeBRU&(y3p+8ejb&dRFwog|r^P=S&v2s&%|Lp+6_==a$((n4-?Cv`_N6yo`+nti z>64ZQzRK0`i_3Jll9_yP{uYyEH~SG-f4Qtn&VPJlJw{J1l`aQ{D__-(S)C&-q(0KE zu~IXy9!;noJ$A`F7=$5cQ_y=wnB*}ZO|p9FUa#_sT7=u2jF#V|?ODuW`k8PiYFeYH z^{Sp}KKz-f7pO9D3rTr`UC@r`Bp&%IR@iP-ci0J}W4>Vo@O6np zt;)E95@ZH53FI(6lKkZO*co3H_{}gQcdx`UQ0t5LWTPu6zyCq77k&Kf^o*5>f>P&R zu^3*7ak&`HaA$H9;w~>9HHZV_CO~)KSm2jI>`{kU5dot8p_M>tY8Ov#>CpB|zD!2{ zb8F@5y^S#z9&Q>IXsV@yg3iM2o5eZx+tAL^`o1 zEYy@C%G@sA8Yg@-d8uIO?|2JG&}I!Y141uVJ&1yMWgN*uk;p2?F7l4hO&STej5keb zjlDs7#Y_SkP?eKm_W7$kY0i(F-cF|JNx}q1Mu*8b#ZUS>d^!0y+pJ949slYNE(+97u4$xausj?zLw&Ws6e{RCO7yLBOJ3F9!w5>uj8L^H>V zZhQ_|X5zU!baCXtmBagtj&}(}Q(51r1I+cb(xpV!m)sYUByXoV3SIS5?uG8aAEAmILquN zLe!FIHR{MXTMyr$by_&fWjT1Y+hX(}#4xXHj#^nTY)VJVThDy;cnpYFsAM>Y)^|nf z4;~!zv&~1gWGU;373ZmKPYsb|jCJKoAN^poDYZ{q{{o{GPhGx&KxH(vPGwJv& zngg!Yg62FW3euA|)&u;S%}F;0DX6Tz1@y4y;KOvD{=Sp(jH%Kj;BX`=7`91Ym{EOBm>sUV+<>5$SnqaDB6+?hOV_}PaDRpE`pfhcL+hMr=aBPly9%!BF z1jC6N8#1nRxVUAQBKy%e&U-0Mm+ji7yS2ITZK5Y+J0LWNea;jAv7?xoyRPUlsPVYC zOzax@2;p6{o&Kn$oHNrKfbmowk4*OT*VEyJ#N_ePX*ei|7!q1$-nnm^|L`O4?}SDsp;-SJ%^j zH5RuaBmI)Jszt?K(=X*uptk3)Bm?CRslRK=D!47{bZFLy@vJvjNc-p3&eyT!894br zrKJ!{)}HX*b^~LA3H*ObcRbzK?iavnh6~6YPlXtl+imsRTugGQB(D)ooTp+GKUShs z>_2F!O>?dJVj03em&>5w;dz%%LIr8(OoCKvs$+S0Y;@N4+bSGpeQ+V(kCpwT5gF6o z3Jjy;(-uYV?w0z`S9(0U8y|fA_`2o{*>=~wF z_s!npH_4fS8(gckyt&&Ja1E7*)=iJ%FrT1HPCmQ&otl8$ltps?KpJ@VNhd&sk+!{!jz*?B>XL8Jn&{`8nD*F%AOI2MI_ddA3ro#N=*}q zXXfU!{Ko9b8sx7f-+bO~g~sEN9us01t(vz-^I+WSH9ArXG04oaay6*Cb>8%=sC`k2Kxji z!2TdIDs(B=+sa4NWMI@b%!KCQG^lFy#v4zG8v3OYp3*?e&Sl0Ws9oWePz7hm4Ekzu zMw#`mp#jF!HboB?d!tDMg=ypy|5;$cXGGeP+$giCHM)IS#iXzmsB2M1ztCMev%>MBrY z-6D`2gzFHM-=DyZXbHd1ma@mUT^X7@ilZ1Tz=#czay_Y3I}kITiA$XR8=1(<7$-6m;!SgCP5 z2`wIA8fOBMz`ne~y5q#W1?IYNCGB#-Ah#H2W7Q4Ede&K{s>;wJ6;p+Y#i|no72(Q>Vn;g_=Ch#g*b79WY9Z_5L-LO9XfCNXj!b7V4;r4nuApd~bL1V3A!;9|P4B1djlrZL!7c~CGY3AuUZ{QiQ`>$yQ44-fsurxycu$QH zc?Dvty!6NB;=7iw|%y}j7NVbM=p5Kw+(5tigk7P~9^U^f+S`Kj9jUPQB5|*S% z6=9S9ARRT;_kr}dHz0cf^`8$SuHO7q;pAgqO-O)7C84myDl!#D8y&+NH4(q|`Q=zQ z+XswabQs+je8)P!AM|gT^e{KtHNBVP4sSA2d?<%M*ty;%o!V`ChSY=x4Y#q#srrAj z0O$Rs-H$wQtRU-Ch36^R`=em9ozb8t^w?2q1F;ag=kf{8N_gmixrFZ+I# zx6|W*RZUz!FR$mpH7C<$b&-*k$33y0N$0Y&2>Q9issD{#_Qpk-?3f>!{V2c>atsqM z4aQv#$h7;%vN*-NR^C>z=*u&$$i(sY{{bCA;=Us866hJy&@r4mM>W}d+Z+4bEV0e= z#FPJ+6h4aT3BHNAW`S`-;eKXE?9Y+I1=^z>I2;hOi@1ugYRGA`6g{~X8OFGJPHZb; zzk!L4*ft0rwNngWDn%tDs;D?f+oWMkHgkOK5c@vN>OsQEzmM_PaodS%_DZ=)O%RUH z(l7VP{X=MVzAyr{Bt~_aQ70IeF}5P-Na`sZPJcu*+ecg^t4I4CV!wk}PrbQU8pYEX z<05ehF<7c;iM5Y)yqTYJ;)@N*(pF!Bh)obpjEXiqr)RsaZcM&(P zFeZX)NhM5sOPVaA7O_2;P^Qs00@;!J02DT;_1DSt#C{7aLmBKa8A)Su1~ChA7-4jy zFk8vQg(vmJR8p8bx<`Y(4i!Fb8l}MzPTS0^D(MRj9Fsp5w*U8 zwYx-j0hJwco?`2SG9$H?w4Bk!F=Bd<1|u6JQ)8>Tteb)ngL*AV?l=P5VeA0nA?_06 z3^7nm7YuR^?F7{du>sYx{Z&)KnmHM?RZ^<27W2C1RnjdoYQxx=20!Hg7K5Z7SbjM&c@_I9!L3!pEN`WokE_{l!D zYEZ2))dC$H$^@f|H3KphOf`^)nmBmGEHSpjXp5dZ4o+cAM+Z zO-qhPSbv>r>x2~V$Ak$vD9dXfraAu&yt}=rH9Gq|?NP^Y(i7Mww3pF%jx;24Y;d_M zn3nt!PWEXoehc#ssnF2wqG=zIYqx#;iJy8KF24$od^TWgLL9^}!M@AvnG|Z`>O96i zjUOw+@yF>#yVRrmFn+rX8nZ-oftUr2pQGbTr2Z1C)g>PJ>>u#NPrdq%f8+J~(Z?K< zbNArf1<1RERmJRE%9T&INWMX=U*=!_67 zb*fYSrPZmydmE|hr$vOE^Z)wRhxC6Ek$-XR+O_`*_@{UBdRMMo83X_26Hh$xkN(tG z_Ee`j)v4}OU;N~Xzw`LZv?iH|O)V;WT;%Gli_=Fw^9pfz5BshAdwXZyW4_beedio${+(915DdN4Mo;;7+JR-LZvELyLJ3xz@K10e0d-Ptq zYQk6Q3iS8iz{T5m`XkgE58#@fy17mc7E|B;V%yXmqum!-9b6{$cQG8!X|`V_wA-X` zjLQDIZtK7N$!lDB{P#&W6Pf#Q?OEJp58uqORbc=Q-I&aw=Um@BfVta|0cF_KQkQ&?^F)NG-h&jeoFX1;1 zSiSTR*s~zJ*xF#Kj@X|;@)npx4i7LK4#d^d)H~n4EqmCYCH*Q9Q{RuRo?>+VYi}7C zs5WjAh7sZDF8bqpAkXmA1H{b=pEFF!{Ut(Pf_A0my&veqS&Va-X28)Ep0Om577<^H z%*=`$_K00V^#ofVV*MtV|BxI{5dGKGTl?iE)k3|qN40U2_T**4;s>yD7Tg9_YJ%MW z8vJAlc}`d))QqU>4%;lC8rD41ex1;*a7_YgkQJz)IzrqDc^EUa9y>B<+$HNSNQJMv z;=hF%adkJw45ZKyRyCMC>e-4M?*VCXZjaQSqdoip)#Mz$O5oddBC^Je(yh;gVo?NR zG9qAX0O!fkk%A&2kfKG5#knPMfT11ZP>fHc=+Wp9Szzl|$>AI+07HW^U~8q?h^W*U zJQy%;0CFi6QwR%3N(t)}sg=;x#Ar)0)F{?Rkb&$nMm=H;DkC%%lUNJ|ohlSF%}OyG z*9=)zDHsNU^cq{%l>ZyM=JQ6-sHjp>4uVin1UV}fgJ}#H#h8R0MU0K4kZ@YqvT+y_S|zPK#t&4RH;KA~ zaSogyDh#bbvq1n7(12z^F=#ADj~OW6E>NLphm1Hpm? zBe@JTnT&A}@-5pM6@!rh)daY*fAfeufVzxeNsJ&lkPb0NsE*JSOPZMqao;(grsNUr zvDG2ygp@s!YcMNBLP18jmU`nQYz2AfNsN(rKmDq~jh-dVFEQv{`0)mQ@_y=>Wpd^l zZ{U-==}oHX0n3{OQ)25DwGGl%&@T~PV(N?7DwTm9jcA^dbOUUQsF2f$tR=~8t5~+X z^JMKA&0ax?#NmF_%(3-zXjXFECgv&HZz5Wgf{=#;{Kiv^cAux(K0vatI=&CmG1+gD z;}5dB4%0JF-eL;BS);9MxbXq;1x1I=eJb_Br^q^C|tJbZnh#~#ak;{V!#y23QiVX`GG?jjEp?C1dV z=6-~1h}{;U-$K)Mj5$Q@hmq!CsY=Jg#`; zv%h^uChw2^@&&5=5oCNfuHMC&5!iu*AjzZsoY-II%HuE6kG{gc`g`B~Os+o-Ri?q1 z8fR~xdVV*F?=fbC8}7WE_Rm9)J!bgB;jhzde-Ja4V|W@w+b5-n@&j62j_5M%&Mm4$l$865nqD z-+jxj#tk&Qir<~DIkxYf9zAhSGhN(^^&dv+1(JJ^h{g(Ww=aaqeM30eMe|FHwqL&W z`>+^8>_AprdHf9C{V;ChgVZ}Ofr0+$LzwD3&DP78H8T|)mXm-F>I+P7c)&q+I(*AxM$ciZ9enllZI^YUC2sT#Ssm?OgSZiX`Xa^zv^MDR7P+0VSe?cA zOSszOHumsUi-r-xF2*0?>IGrBOtpdh5w6Br+ zt;sB-226u(E}*GFw5FQO*Jevgj$0Tu5HkT?61p*B3)?#PQzCUS1T$FgUuO_3u+2WM zY3b(M#6I9hfyyk2%S}@MA;R8u>T};gKZ#F_cV8gyyh1p+L>kVc^(N-{KS9$3`m2b) z3HBIahA|1$liN+CS`||%t&5H7fKZczMWZLDIY=U>1w_Mg?_peHF~(xNAU5GDh+#(R zl}scCi{=%6RD*GdGmy_=I4OpfxvKzYt9^`&P+38mkh&4JX^Y95dCeJJZ=`}Ij4{MG zBjq_cm4qU(CTA(=iOwOeq@+bMt~o?=Agp#sLxquusWYyLQ}$T{IUSIr17mPzL_NL=enr0zu`knctxW|nK*IU~kr_Eyy2F~( zPrz;vqQx*lY7fbv(jrw?n7v}Lc3INp-k{wG4X&8(z8I{rHJD0(v|jm$IKgCajVr8E zUy{k%3gW>}QrTajES6%qw@@6;XT-ITYII0wujKhQB4g|b>}WueFtnc7I&v%}Yc_zb zg`90UZXAfNQ4kqi6|q&MpHE0bMC=k%FUYA|$E6*1q_~{Op+TzkapJCmO-S4Z*#Kh^ zjv!}-!AIm=VT>V1TM!Z` zs&PHIX9^=XrBc=yr)aLxctR4v=zy3x$P$Ag#VxGO#goSZ<=iGvIN51HjKTVd@do3s zB2ora`nZXhL#pu+IZqLzRQ1jBKCLd3R|-{+vG*6#eZ27&bN4l66ytA_hdsnc#-d}*NO4+`O#3Lc|g-)IcD-@ zoPPi}wz#dYGTwP3E>ID|a+A2YOzIo5dy!`I6*}I>aM*L@@uM|!6+ZU!HPgBwRKgJ* z|K=wT|+;mX|(nhuHi2G)E8xAh?7otN>`L*}o31Zyr* zZ(b|r?we$r6I2Z$Uu0O$X?DKO=5>!g*r*UaG0$$Eld^YtJFY8nnW=9+3!6sip_SXc*ed zEN%og@A?J+tHW~)?ODR&!}$7cY!y&dLi+$&2O9g$H>9O<-!LrS1Ns22s>yLoOp1$w zsh8_S2IU6L?0K50uv*+h4CipZL#fIA2+1{Z zn3QICHE8faSCXj7fqGoik&{JZL+U1E5eN=v*U8J?p}EG7_c3loy?KOKh{G8)G$cl( zd=8aEte;|Rk69Z;wpkEYg*O_P6HK%IEUBWDRx)D~X@H!XHJ>))8(B{?w+N79AcvmZ zIdC521dVgZko#8&-GpkoiyJMmCKJ*GD}eN*fszU}jv)a7j9p@+A_RjmiW_C(kRTRQ z4h`Urk!*n)RdBv1n<+U}kRc7ec%OFNHWev;sFb97QYmG3uld;PWG|G#oSeW&!qhz) zYqZ}b=K%Q-slc#@saFMG;4`tU&~zR@X~}t3FbfRC)I;7x%m(5t#uZZ+@357w`O%;` zlKKkc$0QjrZiQxxNJi?RU^@&XGNCo(*dVrSP;7m9Eio7)xJJndVk?L(=B}+0sk0?9 zY#~KM4uuJurAK6isRnH2iMgSjZ{sJHy6zEM&={3fT$LGGAuUZwZ03TnH4elARxk<# zLkgDILXHt*m$>n(7`u;3CZ}z3bXf1p^SX?6Q?%a0R!eNXPY%bVeh2axs0ghm^%>*K zz<}5RaZ5lTY%qlLxN2Om4Vnuc!+OXS8WXne)&+iXoi28S-jZV}7tO(tjm235Za{KG z!lw1I;5KI(;fdXh{I04hW9N) z8_=*tG8>fp%dj5UaikE*UBP@<-(uZB91JmzaPW0etb8h*?r{=Gf>uFQ1tUNbn{Du#fxZo6}2dKYQ;M zYukCA=RMzl7>9XShrRZBZ&Ez#42LJd`~(~(9{V5uUq1Iw-~RWxAB3ECn8ax71y?gFYtFi1Kb!$@h;-}1NinPrdmNx1)(rZ$-@?LeT}&MCOZ5fPyONyfG_{;$VYzl zIpX>Z-Qit~PrmN^XMG7^;YL8X-r&OAd_B^&t_^s=72gecF!;N}e^Tw^hu00@! zDWN-ou6D7bn*~V_&JgDB0=_}AClSAcYhDJEanolBvzEBN3sr-w571$k7*7K`h!u=m zVPu7|9kDx$>Kt1qTy+*%{>MD}nXmGNfAlO5f94#OJqN#Wl9{iuwV_)MJo=fN#C)0a z`W-&~c;KmDzQ$`z;a8->BcFMRxH`r9-~{c?8(i7CM<`%Af5#L?`m*@`P58Q)wQ>faKrt3h|A!dXa3#KQ9gs{IE zCqDtUBj*9*hjK#9s5};bP)7Yj4RK7$b#bYjLG?Hq1r3*R%^|UIus%mOJI`eFjn{v^ zjFR#;u8C;hqj?8$24k1_e3dvGGptWys`7-T=!)UgD0v8o3*_L)siX?A`_z+{!C2Cu z#I7rbR}f+>OwrWmf5u`GNU~&FM>d|uyi({DTdF*f=O%n(M zkqJ52joDhbt*RD{4m6GkHBlrNvmg;p{rpT3kJ#X-&=}vX1dCVw)MpMsjRPp$3hlVS<$&aceRL z6@!Q?Npl5b*cb?ME48dih^vh`-Dav$pu6eOC^)O-m{0|Y#T2z5sW5ysM^p#$U=TB- z+5$~?5jqbV$=M>&U`!_V2F+5^uYQvTj*v~cdG`vxS4-iVM%fsb5u_j&hPA&U=S-9x79; zzlxvC-uw;QFHv)o6ps_TDXy6p#<-i5br&D0{RMJ&Kpb|;lmVWs6*(M3hbv^w7`71S z@XY}lTa3I&wRHisX6VilyAkt?KUEe9>k53rM2na?)=$tlp*t|B&T-Y(sHWfA7_mL= z_#3RFNA!KHum3Gb{~u=S0A~gy8^X|%*1N>@4qv?sC6MZDjGN^z!`n>n=%^Y>x>yRc?~ zt(F*nh;wUHUSUIz$>Aibd-Mm#X~y41)R5DIgnR?|%9|fUKVa1_@6+9TNFMIqydJ-| z(3B3_X#XtZ{(CPR{$c4Ozq*5+?jcp6s^0iJ>Fdc)W-v2&cY>e&@5lV>fA*t6X&mWD zNBW`b$l(1hiO4+ws`_TDT^E1{Mda*T-QJT=KKV_+eEj1d-_AL|UseAB@Co3riO4gL zKKkefzwm`G{PA1e&IdpE!4DZ@{@&|dc5ra;(>HG1V1NIIKOu9ZBOU4AQ+??dU*O?? zxeo{LC9TgB{0`QZkyVv|_J<7X7s&D~dG#%x`sF**ETg?=2>WM|>L*$6pQGJ<`OW`e zHY~5+Pv~ak^>_H1^P|o zH>McFt#q@i=g9bJ`c;PY8FF_9>idiiIJ^6kRV$DXK|o!P^s7Uejaj-jDJ{2M1@tPLn}le#X-YD=2XX6orT z`EJNumJBMSFeVLSQa?e=4k53oM|0NwdHVemRFhE3vUCY)PBj^@?TQ=%!QLbf3OXVz z?jd$3(0&`t8En-e)f}NO_dR;Df*&mq+mnVCr78)`ro&cOF(R9^qGF7c@Tpm$1SF2o zG%BfV5=gn8t!h$kNgD8K5L2PHN8>J^$TK6<5ZwMKFFt|4fG13%Yg)Ejb5F^&-{u0><@(^;tBI5o&yG$)bo1n8A`n5EJq3 zovC7xh;auf4aw|4%!s6t6egD@_vBF%F*cEh&D6YVDOw8_j3q}~#`tYPQWzI7Za|nJ zZeBXMyur9VSe-(1gtQAbp;^IR0XM={Ymh^_!{Z1QrWRBRHo;g$Di9YDRbpQedxukS z+nKyM#;WN++|Q&z3Cjkt3TjBbWmvR`b>wVH(ig!>;lY+fZYdorC2K-l0}9nnF&uIf za)cZq_2n`NhLi=8A}-=wgX%6SiL9sS4tBBLAXQ*IeU7l65V~W;^#qbfs(@<*SNA1> z-PdK5UV4lVxO%^&bdA9^6}fk$2zeNzepV{XvL&agU=TLL50VF}(F&;ra!bx_VacjO zQu>7fn~@}7l++pU3Q`!Xs73lQ@Yaj~03ZNKL_t(ClmXC4 zKd;bW(Gnvr`(q5Q%H&uI>{0})6ud+>h!fmaLZc;i6T-Z~Pdd~jgoJ4V)(;Fi!B|5! z6{J17*#m@O#Ay2>{o({UY@=xp=Z}+fi}4X$k0e7}9!KK{*JeyT6hl2`%p_tAXxyMG zvJlrbn1m3BeJ1n?G+^rr)e0+-7$GlehIx%Oii$01b2B9~CwAML1(pCfgcniviQNt< z-m~GUzJM_YxXC5L>_Jp4VmHQ5boBEnjIkb1#3o>%7dZF|Vr{UP&iM7PZ3Yg6oU z8>kS?pdBF`l9t~g=5O(($G>$4GykbyzQ%|Duis_s8}~Dq^Z3y*lx9ILQxbexd@TF_064m6-irH)+uEz|slhAL`U9M?PeFN8YjL$tye(^)(ewVy@5Oyxz z@f<6ev_6m66Ik!D?Zv|74qF(_P%jCq7T4@!J*04o;m`puzQ*LWZoo|r(b+K;`wx-i zIL&Aa+XmWW-^9JDK(4=jH#u!#{S;TVK#z4R?C9p52SPRst37Og4`Jo;%`?RHIn>_E zqrdUYrdaNWqt87t@Uc%_CJy(~9iCvc{q}KT-N7!gPo#8(fAvd$c?;HjyNz`deErtn zNndw+KO;0#nq%9*k->YUBmJ1@$l(1hiO57%F~+>vs7VK)s&5y}uAl$>=MRA21Agz} zhadiLz4!l{s{WL!{_evMKYZq?r=EIKNW3xTeX9D;UhlH)?QKE`M+Wbaj&!8&O;7#( z8Swi&_SrvWIXg+MBN84=56qcAaFs9r?blCZe(vW7KK?KMfb~I*>O-XdA?n==`1-Z) zonf&>Kf9Z-oY5_wCUsxoog!);`>dtge-HK4;@aoH?PKgoV1m@waAsK;esxEjZxI&f z32RSSZz1Xl>udDgGyIKk<>PblxYikD7jf)EbE6n$CSsfGn7YTz_DI!VgZY%d`{}RprBA%^$@{TTeJ_&1CQKEv zIg!#X%c~#4^7}M97f9=O6&~mM7_P1ntGHSb2N*3WLj)1Q`c$wA(U4ULy~RkOx)0!VgM${8S+3e!r8EVUBuK8 zk%1IEIw-~rVD}0$+wS8>7l4eP%n&1l`C0N{@U_9X4$(}`4y3Ss#ivs0mjM#SE>X?c zx+0}9IgQaUM*NbLDl{~JV0}hoCQB%Vl*X5%HP;(VLM8_#^g`+c*JLoDDKi8CBN$U} zjDAYuIDqPasT8RPQoo0*gwTU#i*W;~FT7)%!5at}e53fOmLj)7OG%i#vJWBpVjx>D zWS2>U11!Xh9R+f3(PYZLjOB6oYF=W%%Lf?d=Na|~s__cb4jAWAwOBd8Si!X`!eWZ* z2z3TEOX}&0I2c3?VQtGojmx+ym)Dj;S~ylAItm z6LW;rVcm6%zX()#yG0x(goQ)=vxMaYu^#Qu;&+C^ymf)BQvU8xkpslOLh}M!&2A-f zbDV&#z|HO`mXxaCK2%nSf19S9S%JAq3KKYZ7oxu4R`m7HC1bZk9)vsu+(@zY0zbV( zTAn9$$BDx>nCm5JKh%WT8N^$B{W3b-hsKPi>zMimVipB4BuYKaq^=>ZKS+1|JYoF| zzPUnG-9XwU)%KqeLrXXNI%d59tw9sktV#JA&F*Es@bg2-+I*MF_noJKr}^3cc}%@- z5o4)y2fGW_vk%dX@5YX|7@z!e`h)j@J4rRVavSN8!PQIbi530+X~Oz0*4HAF(|?XJ zndzyovwz_M@^Cky+r>Bgo6Us&;6ae{*b4mgB?Kj|Paw3Y?;*8iLcsJ?Ti1#Gh_KjW z*iYD#-$Cr1-`A?~0b%w4dAWn1HdyAk(bYT5-HgyJK7grCQf*(u)^pNwm(&MxrhIP2 z3RQzK31bGNJs|bx==+Fiu3<)d#Mv3(hiC8tNcA*feizQY2d!sF^VYb9FjR!uyBL<= z0)6_2a4+Av($HW>70$mibJo}aXFM_2Kj3?Iq$3^aFR_jc-q-4t6;S&o*Qo$RIXSY2RPe}~+CD1b!cVrTPkyCT&&=;9#j_AjpjAzZ0g1M>x;INg{}aUS9J&8J;_6RWzUPm4 z;uD#V{aRa?p&Ry~Mu({_;?rx=qpy+47%@bxZv9G3#8}VY+E*^y9!dT+n@P1q>;h9C zZc=RnWQ&R-Heme(7q?nmbmH)?an2P zdkFU7qrbI$(yTBdqVjxE5=AGz;X4kXEGODq;RIn*WF|{gZt@ z@|*YJ>`&sFyYS5x(j4MU$FRN$=``8ii;-i5?ihqiG~3T2-(`5a>Lwu`lDb{2zs%6> zkyECg+?g86p&`!CA#x0{BaEv{OTC|A{0+!LcX$fpj$!N)bb@ddRSOu9Tt-ZD1?eVk zyh2%0n?Qf_gJi~-`Wk+8u@o4ESCY30Flh9s)QBnNR@o0_3^`}S90Im5KdYf|Q?tid zhY?p6AYNteLP@fgN%(;A3q;Ogr9t&H!}>UB@sp7M15AAnRpl{$jj1n@hwZ|&wVr-y z3CrX7Ny5|vwhjmlDhotYxo@%pap1t>P!rHxn(c?xhWqRqtXD7*)lD)HL9NBqxfCVE zGxVzoel#PjI-*(O+k^7hWsd5kl#vYqC86|acLK4t7_;>XQAbV=>-S0O(Y%YT02k4f zMb{8~i|UektG``RriL(#3u3{~i0fm-^%65az)i2i#g-Vi@zVxZXKXu^)UGjQv>GM# z6`DLLD5%3t5;{2YV3CcvD`tSo!Vt(=Y1#u&LCrv3A0ww4XB6WyDa$REu4V-?t|~v1 zHwo1QaaEYLrUGj>X0_(BZ^#&*5E;;%Nu34OU=z+qjB%K%DyC?24OPg|qx9G|P>q(@ zrbAV5wnG?^vj-jBv38~sfmIpNcjY*Z!vvcl^$o_@l5UnYf+wc{X294rDUHf~Hk*Dt zFJ)Yw!WedSh6JhsVnR(U>l~&-jex0md9*Lo7BP^bg&~o9hgc7lkV#-VToqBbg*Aq>zlSXht=9WkIVZh8DPjtL{vI#N`ytJw{iE8s116EU`OD2z!O)jwh!P znrp&v2E&vTb};>-pjomb4I@&RplM0YOI+nKt_GB}I7iYEd1#4i2YQ@Uem`lLV*DIfjuH8YYN9w|)SbpTg90L@a_K zk_xgRcNhh+XAxZ^uEy)`JASU;sXqS;2R!nruhGq0;5{^Z-^P#M_}o17E#378>DMn4 z`ltEQC*EFp?T<=gBWNbaH-3%2nN$rar!ro0q$3^a$3;g5?{`U6pWXa>>`kt=4PcCU zo7~CQ>dRmLa{TB=Kl-?c{Jx0%6mMbhe)X$gJpkUQ2Ba$8IOJT z%Y^-VSTEm&^~bTUC0h$|iKds)aFrCFFu-9#S5NQG;5 z3deEuG`3n&W|}QAw50VO8jmr|uVC9NRMQ8@`!hcDsjGbD@i#8Qd-Cz?JoefDlW^lM zdV3bjal~zm>!ByxYmhJU#m6szC_ne%ISTbCK{eCJmAM?KtNcDX_I9{l)# z*qwsZ((QZN-8+kX-1sVC{|0$@fG|H!?%Tp3Zf}nxYOIL!yHRr-<0H;oB879P3Z^>5 z_!T*L#6(;Z5$n)&ihjP_q$P{Fn}!L<5~&VupE&0hQ#mx44eWDsbebjT7!7;m6iC6K zd4$*wvTi7)6**-v2b(0LA@vh57QvFSh;&HGVC9ZcU?gw2hIV6EEl^jH!ztqMA$)ZP z)1JbO25h~*VKYP02CY3}GI2dZ8iU0nYRkyI^BAeYEJ~3Yfw%5-ARDBr zus%X+OJbW9_&E}$D5ew%bs6sm(g@Pf6<+F%U2Hv&akuaTnrg(Zkklc%MOZ$_{3S!? z7`Co(O`>W8S$x4OkjcqnEZ91OMq+0RmskZm%EYcBbeU=#!1TDr&<_DkJ^gHoANBak zl1(CZ>ry(`7lv`pLh1}+6Im4z1F599{a6c*qL*^)BrV7Y0aImkNF`xA7_5&B%ZeN$ zwi>X;Ajaay*GX{-Iw8ds!kXBP(U>qb*zuw)asV1lDOBr@lcObeHMV_Kl1&m~SJ*m} zhAE^a$rKa`w8h+Z3sgpkuF(i;K_q|)h{=EhwYXXt7M>gw6Ea2u)~>Kkzu_L2Nd#{c zbb|Jttaii8b!f6A0UZR}fr`NzLl#I$Fb+%ws^xh$Hj{&F#@B_^8`4k`#cWUw)+?sc z!dk`@BRdPRE9q(DJFo_kKu#Xpgo0bZkW)?07Gt`?5mra+CWy7T_9n*npbcT!kYc17 zmvX?I19^zhJ5nx-2{|b$xg?hD28N&t7}9E!@)Zl&BhG{LnD!#xUjh?J-3c@$NH0?D zJd5iMo$S&boaT$a_&a>`Hx3B1pFzj>V*E`~?+{xdIbpq_*}a0S2VOVUF`uk9hW6TbC!N`DZ6WR}iz9g)N*8CSd zI7Lp|s9w9{yGvS5Fs3Q^5SP*5$-{`yZ=v0BQg@1&-;Z(UG1j2$k=DMHGSVV`8(Y6n zn8~K#QF5qA!*MkA#O^ra)`(mu%iEo5{lV(VPdv>>f3v1rL{#smTh3`G*D#|61sWve z^@w3{oV4Dho4-KnzRBOb_@{j7M{41$aj~(vg0o z`mr>4A9>`F;q`tWW1Ir7a0TysgUtmv4Im;HzMuP%Qu-6;969Iet*?EgBOU2Te@XSZ zpHINEz_UE|&nNWNn1Bb{b4up?PyhG_(^6d3@4`1{s79A>v26hiT27)S*GTIrIZS~P z0TTj#Is-jRik7YCPI9|Zctwr@9V(<6Ft$TePZ}EB>m+hstu#~xswo>@YN*LEL!5&s z@@tn#@g`|@658i)Zx^S)1ml-)*jgS|J80Oan(Px7W5W7AjJc~c*1I*<%`nXh^QzHW z$DBOAPFNiyEbk%p4*U`~I?tKeJ;0k6dX|0oeECm>ho7q8+wjzXHQY8QABRVO{S>&L zq}sZl(QZl0y!uf{HPDP-BCJP*`Ejc4i=_S}F`lKLt*CdtbNjj`QMb=CEOuBgK0pi? z%cywTlsX{{%QJ{MhOGx&J1dxm6cGiZo9Di7K`NYIp)#OxjHct1^i?RMz!=~r&X;ts zW=D$*!rNbd&y|3Km|#LFaSDGjW;KSqhbo717a4q zMo3|cu&R-~M$(!T7Nn@KKf*R!__0AuPaYb?^oUtt`~oF{?qE$Kc0vjzP3FgQ(hx}@ zp>80~TTn+DWMfbUthH3r9%YNP`T)5=xEkTwP)hHhlo@7QOj}k6-R61i(KM8ly2f%$m;++Bjm8G! zGg2>6b%?sc`W8pZKv1Y7uIUPPLcs{-e_9uIsn_yey(u2kq~riOXHstpFF8XTN-9_@ z$N_A%L7i;UxeAC;VkeNKq=_5FdJvn-?XAo6ZrViZGhyk;L2!Oj7GiWw%7XJfQmrAc zK?2e#nNdNc3=?v8RCU6*GHK%Kga#!>NNb>JFg6vB(g&pTXmt2dM;>x1Q1hM?JYh8= zEVm(-Qa&XUy23RE2WFe(PGj3kkgkH_t5OgxhDsMn1pd!j997YSMSA`lVBa*CyZO6 z(vfq-n>F6|42vyNoM8M5m}(zetu~*p6{=gLu0^UAS1mBEd@kqch+zVG3}HlyEv}lO z@jixiMP47L)!%v3&%EzNkA1c!tWIK`rQGqCT4Q{T@dDy8GDX}?>;|1<>kgOa#MKmy zBZmI|@?I-%HTLuuBvHP|pYZWtJ!G{$pqic`FV2A*Bcf%hMpxwifMNbsG(XK3AOAK_ z$~zAm{IHb5bkvbp?)4OjOEp+Ecq-OiDYbfhEwX!W^YDupS35mG&k)H_t|*I)N? zgO>DX``SW^YI=>h+C`VQ4PK4cAs*5%cWJ6C`1*i;xgf5#-qPUJI6-uY)a7Jvm>nmD zeMHO1UwiBYhQpT`st@9plUrkh8Y_(WVj8}V!fJ~YK;3n!=>hA@_agaT+{jZ;Z-O{- zuy>S`-Fo~kQ*T|z*g$`H4ihe7yg}`0-pb&;L!vyz=4AetU;Us3KK(xY*1fdT7vFFc z((hd)ULKJK!}{PHzTL;lF;YB>uCF3(d2S6t-#Lbr5Y}HuWsJ2AX}two`{Ztl=536( z7`Gyl$>^p(pH{iy=ZKRi*1Zqf*B#QS%@$_8j9JJ71ByjP55z#sRKDUKyd9q>}z7*Qg0t3 zq740UQcR@Oq3Ms1?mI+z7>vW%jK~_}EvNytq%cOa61r{3H7W_s1E!vVxry}^&|~Bp zDUHZ9xUpbd!qqKivj~%dLqm(WyU;Ktg_^KbwCN!`Ol>d-#t&#J=~yuVP>gkC9J$NI z6efWV#BL1QA=M$(_y)sV$jcpaHbhOJH8~|RiY9|G0pkKG`eI^N6r(>v4jX(!62xp` z;aNz76jrf-X%0#20JY*Q;A7dB#(+dLS%$@gyxtV6U7#T@ePInp zNGX@HI}vgo@a_I4jqb}U+VPec=zKW|aA)Dl03N>l9O5998|nM4kC!3rfy3N6EOk33kcxq@#Z#_y1`zay1x+<=Nl`xaRzlY&R&Il0&yo0Q(@hVoJOSqU~rHo7^$(71-6N#`7vVLg?@o)uNEE& zWwFIiW+;w$c#>hc#OaR~1MvAzKF=pU^)i(7=UE<{qTRXt)*EfKx_OoyuaV`Y%>w?Bj&!6S6a82kyl z^$j#t#N`Rn;%lr&g=PG?pC9=6ul_m1d>h;YH2N*-$r4e6irhL;dbMIdrawH6#tV#g zUcjIX>w6HthZ`SY>y8}9fPwVJOg2A0EZo}V7G{`WWREAFFg)?Z_m{Bwx&P$^jLssJ zQfu8`6WL;O!b-c5Jl z(0&)Or@(ilA*0L?X87?XRBK{?h8%VX{T{*?O&M4e<0X%f)R4m*P5Zd!fNFf(wAXAm zC2bM4Jt^1ZVGGUMs7y&ABIaUANT!;?-cP7FQl4Ndpt_!}6zA`WA0bAZNnR?klW03ZNKL_t(tLLU&BkV8eD7kH^+$X!E9 z4nrj84(n4fKUIn`87*Qg1V_w@bwgP=kWB0+We=l z;6@9qUDGf25G+^viuX`bZ^&VTl%8h9WHg&n=%yKRDPBVo zDOz$a>}@|py;WFSUE8%?yjXAu?oiy_-HVq{C=lG;-3hJ*ic{RB6nBCa_u^K(NOAvj zKmYL^?^f1+)|&I0V~%l-PrQ;8TBw(#VKo?)YFq__V0)Tbs$3~v`;>EOfQQdZEK&u| z?sPHmw=>s|0?m;M6oR-G=mws!x+lRRW2YVzF;1_#rGWlY)i0N930oxc4-@ZFwWGb} z%@j>wLa;a$F;W|h3hYpj@Q@@$a!xA_vKs4 zgSH-nt~=mT-!LFz{snPGPsdDVA5ng?@KUh(OGYFjRQ~o{C{G>=`87_3b_P?uCZ#Y7hX!pz+z_G`tyOYiO(=o)l#0B z%Y%sjL-Z0yVt`BuiH&IIn2xTg%UdcE9$JUL_2@umju=g;;V_^CTb*oQ7yU<;sC*v% zC}q7cNVBC(szv{Xku$Bh$2M^&1AB4AJ>Cv$rVrM6WN)y%_RiFmDPY`Ukor!0=aGy= z9h_r&Ot4e;-6dj~>t5*Q9@#}O(zA?n5)UP@2A_w#UYGT}#Ie^JS%ew@rx&yY54Dy8 z%}?zpJoSB`@Z`+^sLTh(thX)hF^JDu8{hIo?uK0*67 zF}0sv6V{I_5mN%ogck1qi2Gd=0|WDTPg9=!6v3$``HW>UroM!jdc-Be4|@nvYj;A! zL)wwk$WWMk)R#%XVBFVAzsP~zAsa`70Xmx5Ml8-sYgTScWxL1VtCHSyQ>SWUWSugt zBwmznq;R3)F-b&g4qnb1TFhG`(IIN}rIav&F{^VJ-t%P*7hpEHDY8fC`;27nTW-f5 z`&hGCejXRY|5J2o`=N0?~AtZAhpp8+jHYE)Kh zR?4I4_vqA62E{zEW-6^U*@!UXEnJcDUQ(6n`W)~F=2r{QrqNJl{9r*jDm~I_VzOod z$(KI$JQ;iA{*;^0<$TGBrsCie1ep6-mlw-?0t4k>#3!7R$+BsPL|IrzzC8UhKusBq zFjw7q_uY43Hns>=_pqRlG8~H#i7UnKGyD?kh)uY4RHcIRz2(Q4JWg3xvU>KAQ!@t| zhV{XdmZp$yo}7qw4&Q9< zSI#NTfG-Lk#U-&BQjVDNOgelanF_of;`4jcDkxR44Clv@Fw<%iyXg(=cp2HGBD3l? z=lUO?>Fkt1iMS+WT%@ko?ZI#i~ad%vfeVCH%a)c&gJFU0*% zbsM2tH(A=5caR?xqpCmhqH_#5t#p`Vk$yIkw;geHrq}eJ7_JrMzVRj zTP3sK5*R6}>YS?jqpLUWmF;hhpC)@jACb(o57a5?G1j_0fpq=DWl(R`H1in`*2yv(thb=$i3QXe$rlf6&>-v zDBpM}9=@JCroq9!z^H(Kti`L*>v3m8Li4h-_0g@7Yg1!B4I&|j_}19FBfqJNUGvDo zd7FURXB}?t*vyYjTRc6_q8V?xi9_1uc`Tx(f4N{Nj*5b-mQM_>bT+>8+jY5w8Z{XO?T*3NJDIGQcN>y;o%4!VJ5Zk`L|FB=j(s(UaWr)9D+ zI>Ty(!hRS44dnl3VMB_9D4*|j{hu(!Z+g~zWAConW+Os6A)TUlPXWxk*zpB*;$BN4 z#@}DUTG+P)U@P$zH!>MngP2SL&V-(Z-^lS8%uBLF+&=s; z%3{1bv-G^KE^%SO9#l==V&}dq+T0CkR09~a_I*D_f8(b3eq@t1QC2Q6W=Ez+3eq!E zm6TI)QLEKlSJ)FFeKo~vK8AQI&vWhfV~KyyaE}>5)C)K_3k?(=RzCn||5 zmw9Y5aWy;Ft;mvi{x(t)^=d3#)jFeYS`CZL2R`}}dj!Q-llFco6j_s;0|;#tQ%GRq z))T%rtA@RV%+g+PU6+BUAMkn56~UxRn3XK9F;H;SvIuky`UvBvfySl0f*ag)?07}A zHj}P|iuo0DikNUiO<%5pWd;brZSl(>Rq7fvV_sWuKgr-Bnt?~=7|tr(Ka4_CYc?ai zQnU|Akq%8&4QImNDVBN*i0l89iVIK`R1V@dYk61LD94$NRB5f5D*!XF9lr}J{Pj@% ziDHAt#n?a_b;!Si8y*S%@_A0zuAW$rUWcvXXZhzOz$vZ+OA-RzhB+a*>K)D#yp2yY z70Iy+6SOggx&S845{v_c=P^9x#n|IM&8Q|ASd1@|<95tJaCnJWr9lqVmXU6R25g*a zRCi{afTe2-b7LBPHde+xb4YGqVmK^Wia8|DsUlm70SmH+jnHak?xLLw zdTQ^q)A3=ltPRa2iDsSm^P?Id(Yd!W!*_Gqrkc>1R>>-Rd=tH3(GfOL%{u2~Mb7$- zcWA9vvvjCu=K2=s|5J`+eyLtkG)wbC=FFv-5Eq3ZkP7?>U->{RxBR#By};$EzoDYsSz;z`wl$8o>H zSx2k2@JQ9QLsI#!>Bh*k)kX zAF>VX}kne67KUBuh>Am+e#r z?WolD1q@#swTSC=sfLM}?2EESE5f#-2g28;uzA?-i=Do8{7#F=ZB;w9gH~Vc64iIp z-ts_UUIjY{g5wG5=|9m)$C+~h!`J(sr&@;d7s|Hx>YeB!-6%i3zBi&TsL3Mf$&h@U zo;)9Vkcku6A~;wo!Jhr#1H>7~Tsupdi>db(88EMNZn}aasSEkA&X}$`>rtK0C3Gb( zSVHvv1sUuSY3uoQ?K5w_iM9GprHpGi71kd1xn68N^Z`ai^(r?Ty(r$#X8;8{%?_=Ia%Hczv?k)%uMN_r6H2I`Zi_gSF{P^%<_7CNeo#LvieVL*@kTcJ#f!i zm9P0+LqUNL|Nd~i>zTWIdAmgkxm?BiL&*FI}zZVpkDM+5GaHd za)r!qN?jA(_YQXtSq1)SXkn$l{B)GslX<`8G%-4g9f@Wf5VY&rkc&Hz#ag#N6!?z_ zCGZw6C}vH^eb$r~WNSo?vO*g5v5rnU9{8#U6XJVABD-OGDVl zjgX(xVgb7bTyntu4hvrKPD#F%f%u+5y;@k2s{MK2lAS#ti~qW(Dupf77QEg}z$MFD zn~3%u`Pp5Luj9s6TOUpP69#lL$tVCnnLu7m##F<8-IvBGvjypzjw$dEwM>=wQ(kcaRskv9ZFB z!XyZV7##N1I*pN`aaRGRC$H`md;@#GiXTTW{=Gb-G=-{$w0(<&(1e9E)3==fFBJA=Q56F2pWh@a=^Qp@qsQvXp9F+t^A1{8= zM^H>?yHbP^7ll#ZeB&hxWmOt@KWfIiq%#-7E6D5P3U@Jk?!XOWY{E(v?Lc;ifO8rv z84`>|g&a+6Ii&aWAr84aj7daDWz=o%hr}{UaCi`fOcE}fnf|TY)W-KP=2r8cgBYq3 z#H4WY$VSWnrSq}i!{D2x5f?e@meBzq4=Qj~Yx+BaP=X@PT0s)t5Sxp*Y0poSdHKef zqP?I*61lb*7ZzE5&R5|`Sv1Bzd#Yv*xo?w&RcwtvlO}QXC zBp$YUVIxTRO`s|MIruOT&A0|u264$UUsG5lTK0z=S|~qGk?r*y#F5?c&atWA@R>VG z-D$wN^4YQ3`uK1c6@ogxRR7AnFiLdcp>n9ui@ehpPt0B;t#;O+2~IkSa%2tog$o*`v?@!2GJ3~+niqAZG zb7a01U80$y#I@;eDDVnCp&@+YR>aEU(tW2LbDv~bD*!P;*g*y|Sc@~$>dN%2(0e50 z)M-t1k8#Ff6AvUVZ*@Ii=J(E@m#nm63Irtko+ypm)dIO;)>vG~cw&C_ zh}1syIvZo`cbM4L+$m*y-XEuK^8DUkorz9<3J&)HzqGr;k$fV*RcJ zm}R`zhtdN*n36!)7B3c>+S}8s57fnIUi!dj@cHcKgBUG^MM6z?3%(Zx$w`rE~+{T zj`&(v$W1dmR}2ELOP*R4zv4IBY9i@bnY&Ap;U417hb}_Tc!fTWFePh2)$`==Fn+PE zSx4X0nXp?@WAVMbK4_g<<`@0;#cdFCusF!UwtKW6n%qi`b zk296Ufv1*6L%yW7UyyN}?uKJ5M}(5mT+e5Zac)vYq%_h`!kDL0YvLq#ocqYK7NB!U zFZg8S!NT8#Gt`Jlb>QqC^Ia&>(UR5Z(Z^Y54w?#8qymU8@8Tcr(wKc&06fWbS_6L} zQwDb}D=2^TC9b|Tb#FiEW1+7?pOdwE4-o7hG1A)U<}c~4GzM^CaSciX2;it?FEitr z%A%R}X{@eb_ zx_M!v*pkKaS8>&ZdUe>UOj9ZCWX70V!o0Et!|LhxqinokJJW#zsZ!Za} zWa#(-p#(S4#qm)l_47D!c=Az_;{2avd_fC{LRQ zZzYvW*%czOA~v}gq@pS@YlOj zOieQL`#+(Pak}#rO1%4$jP+4!S^f__R8;EcC9pzF?vz8?!g=(9fema_!X#vZh52>G<`~P$Ce;KM~4V$%x72y(A*KMk# zkNim_zZi+if5th#G^lcU!x(t}D|kh5d{nb^>9VQ1-pB9qH~NI-xs2n>!QF;QcA_|T zFvnHl+pdzZSXl8F9TF(BK6lDjWg-k8$>OqTKmX&U45tglO?@o!OsSs9l0*m7+}X1) z=Dx?M$|P3{%n=%HX%41-$Om<_ft1<-UY-RsP;dr*E$x1k8=jd(^l{9x+NF~#?TzKw z3;}`*Xh;3ibH5CclKuDENb17C_yyAEE+VIkt*~zjua^RC*OwC1SlP0EiZPhgWk5c< zQN^>7BOm*KT;E6d=1qpCNXIv_qM9n`jRQykPFIzW$}^OlQe)NbgY=nQcT^j;fpfC*Dqde8uPL6YPRYnjuy$U3TQ@ z>7*ZN*|+A{yEr2BwUawp*-7L=vTNmx5vB~WY%_AZ@HQ7E!14FZ#P5Ge9O2AATZzy+=FCSTbNr7+#t<4-*;O}`e6XUUlg6%MD-?LC#lz-%NgCYj`4k$dwNe{p z4v1p=YTVKwH*B7+A`VY(if&k1#MSxRS$1_he9~~$dwVlBYM_st?NZHr`ZSC45GNcx z3|dW@Nz8_IsR4i%u`KsT8YY1xZcAQ9%x{@w8w{KXrdTT5WF{xFG$!kq^&NZLyih(S z!@+M>Ni}s+^%y62DObUJOr~T^esQYx9?*N4<9Ms-_L7SHQZWtp0JOc2^%Sc8%ON@b zKIFR7Ig-c)gRQDDwA08gXo66LPjHFtU$)@0hCu=Y3t~eH9};pfvU>L*Ty8qP)y8IG z(7@RFd_=QfG|3-G{$sK0AsO;lW1Z8nlSAq6h1|s|bm_$9Ck_Uzn@l%j4gQWqk#OfCg`V=mN2+)o5CY^y%y zYdG-Xs;4Yac~{TtU!_28WH^ zdrEAa@^!qWheiB8`(X6!B`ynn`51A?cyN!j*bt2}o;X>HMjOl=mfZ;Ak*zZmys&B>@^w59rS>9X&GYmDBA zf}Ag4vLp{21;6*W!YC6|*zTErf%E z=d6p;D08?mY3mdNB?(g)_Zy9Sh{AfYd%Z#6xU7+z{zaKjeb&|bdo|NuEQB;;SJ%n7 zu*)}Qc|)q6w74^@l}q;qo|E>5Xw-#tSJ;qeSO;a#eDp8I?p^tiTVsNTZl@!*p4a68 zQ6TR171fx!pIyBFgniY;nEPv3l}~>T$l*+8opo zeHZY}{)M1u&KM!prcTZ@r(mFK`5TkcgC3wPlQ5Z}QUp@bP|N5U3Dg6T61#`PqHapx z{4f0WS|xS4ZdG`HlpWnp7PJkPeqk4DLXTsj+{hcJ-uUuT_`^x!dX?biIrsiDH%=hm zTifmK>pzcQ-cL$&>vCszZRc(r-N#qgyVQTM#5+;Q)ZzY99eic}Z;?IhMj@BqNZ;`l#prrcT=A)?8$2;67nZUEVyo0--*Yl4LD~v$_qa}%fVTG&a9#<6d z9f>_?HW%_Sf5YoLb6W#*awzkc7$9K+AFZ)R`glJTn1c#Q!j{NB?gDb9PIA-CrQ`hY5-y0gk};thEoj<-v5+ zx3r3ItD+xuWfuLE28hj2C$Vz8{2H|b7ueXZOn z+?Y@G)v~2z92`wElW6ZU(=2KA7qcu`#}-&45&+o@8OoN_guwLOCUn_HDTact(F*At zVa9Xs5cLFygss?cHfcdz9-uUew@);(PHduVDNW+3m>b+C>37ppm>2LhE~P`0_{u>6 z_-%_>ZlE%*+d$#iQ|TpcUQgk4osbJIndG}nHgalU%=AZ~9>p#|gAd}fJ5|~c;`^kp zp#sXIy~)l*tIp53iyMvL%Pob1xc7cXjxYg0bb6>O-`ff={j=R{)o!n#<4Lqx6X{^XT<11Jt89k8W3IUsfrRq49n zb!k(HyEFYQB|B}Hv9uCQjL&Ch_!F^T6Bk#9ERt_$ky9}4rdVhDul~3D^bs zA7~Pv$Kd0g%JOo{@{IflnETp;v&Ba1%MS^?Of5(Sa14K_V?^h8NqMTQn};1^hv9`f(=XgFVKAOKBoMJ)JLbXZ(>o|ohz+PyJFAQ zlNYn=7CwG|CFRdu9lZs;~% zBLnXzNFiO(JWs8*a$^+pDQ?oOA!C6|*b`HliFuL%Q`4JL_9)Ne+o!=Ajy{D%sYwHn|licGRCa1xC4RrKwYKF}7dKw*3UZr&6R(f1crg_Pj zV2_k#SVJpZR`+!!*EFSU{v)NM^Fxu|^rg?r0J(g&-=3f;Xf1L-m5K+-n`RfQnt*`8 zvKWg5_6P-gDE_di_lVD4?_JVsV8EvpPB_f4a=G-}c|`2Fn5pAB$}?^ACH1^^lxM8f z6j<7H-^3U@yiOgj6Q12!7wieCxK(OY;|oMpi_B30>z)qpH4SBw#x)zUuJsM_oAPV$ z$PMHc*AAYG$5KH#r8Bf~x5foVEyI_|8$U-5xIuED@t^h(7ZWr;bFTIx79+va#WsAi zt#Vw2-*oR<@Oo&dJ-z~ zBss{hd|AQhR;D3~CQ>ui-bHlR9NZO==)XR3=P}fU+Kr(uG5bQ_2x;wH)3m(tS#%I; z#bNoqOhPrYIQPuT2yfDr9I7Mnn|l^(aoFFoGt`3Z6DCIxVf$nwEf5hXduI1o*#9Y- zlNV$*D$D?*3IZgQTVX(7`jvRtg$gDu@26!=IxBhwMVmMqLLen}Di=Sspca{#%mfU7 z`9)!jV_HyZ9cfLmTp-_17Z+#o{zBA7gLggBr6si=ZoRv3B@nH`SUM{7jg!I5A1iBQ zhPHNiRYvtE6($dz0FnadHPqx6OIuDs*uZ^U4Nc(UfaXl5a|{{VZ;S{5Tg*z@5x$0X z=yJlEyeq5;Sdl@A=ElsGbr5zDGJWgM_$1@S@I!I<>M#{Me>z&StK$JEWD_6c`@ zA0o{f^>8KR^_G^9io(e%|4e5DH~aaQ)k1fW znI>OxcUl1s9-TI!ZzB~qzP9Jz84PnV?vaQz#1rlzr&m>?&jAOeegg~^n_j31qFSizN2aR6US$-LtzymfMrOqbefB!C8! zjfow*g7cM`2IpZ>{3MM`6b4}>uhb>pCc?T;;T0%>V3}z+P^m{(v1wUReX(kKVlB+a zSrK{vSN$KB_@yo{rnR?3pex73B+oplQ(nULoKVp-EBKY4H@~3Eg>iSzsq>JiA41mb zVwr8**!u{mNVkqF#^zi}on>fSrN35Dy2@fOf1Uo z9oeKX-tnFk!VBq%sdB`9O{mR7R61w zKl+*Bt@+G@>Umrx1~P+3Lh-pPs%Fwgd=hGIT^1-Z2{zW5wJ9$>k4LFB&!nG(GAMi# z6evMgzl}d%7A8J(op5S6ZG0rz2+41OwL@q1XG{)cc5cv>WQX7M(AV}{{QEgk5+#6x zD*N+3qlb*ANIQ`y=n}tevp_^J%x-_Vo#jAOTii^j*%}{Kx0i9DCS9}RuL8g{^@X6S zMOn8i@%h1<5mh@qBl@&L@>$DUjQaTm${FnD%}w=^A5%VkTqj<6Pzrpd&3`L2jIGF# zuXKP(D4TcZi*uwHzplc!d54kD|L0w>_`iiVX`-w?5JlqUmBW2~NNs$_VdNjLL^^UE zOuP&vdU-aIPo0CT4rP+yC@}rdH|-FEZB;(PKBv}XHHUpDJpZZOMXTpC&R7*~FvbM* zQxs4n_&pQvo?|K}8E(fgp3O)$>zEwpNG3ME?ZvgiST%n}$@V*arc)}bSq zsrpg+tR;GYJxhQ~Eh5oOwL2qeb0Fjat3Z8v%8KfabLC~oi);WtwcZrcz_?chLb5Uu zWIfeQmYo!%S#r4%UpTewqk7lv(_ZX*WfR%QS^Y6ZTK1V_0&a9kQ>b9WH>7@zZM5eF z=GqDI0H~smQZG{Bs(fxqEGSCh94F+`KZvK^X1)?8!$CcL+5cCQ6jXM@7DQ$lNx}jaha79^LOCD&5O`Wb0+0<>Soo>W7 zFydHooxSr$%@8P;x3gbJZ_+2hS%MWikGA*66N2i>KTg3y4*AZM^lU)olp{nRuP(&U~d+{591f{&?#;%f*47I0BQryPhw0=AzknMg5$B) z0AuhmfLv6_)7oleVEVGS?}kjs~p zjqhoQWvTsf79T(UpdDC+MT~EBnR@$8b&`d_%!5$0iI^IGO&2<`2r!~<{7)6bABoGs zm2iC4c_!^@aVo{Y>BZDJe2LG~8^Ufn7@5IXotJgw`ejB zVMR`*Zc17xc%L+F52<0q3f%)Vut0BhcJr3`py0T0lKFIA--JJc{C@B4A`6+Vzb%_} zrU7A*ULSi*4v{|3Bm}&*+sD^Em^$US?~+OIRTu ztz$H2fob$QzqO2^!n1j_i}aa#Y7_x8LMgJD2&itF*8;Q=GV*=_XQymgRbNsCQ;FmI z-@k$#P@P{Hc=dIv{ew&hJjl7GKiBjloP*t#~SWEnzB;sU)BDnQZ~@ zy?lSaM-@=2sRF>vdr&8{1|hp6XmY!TxS|J7RgVGP-4!bT@dL_#G+27aTMt*;q(T~f z8C!*7Fy-Ef_nq4KK0zGjb;}ublSD|?i1pnStOvz^uv?NZhVyf3OD&FLuFR<)@huxn zgnc{HUGfMbw-Avt_YY@!eAS810P;}(KEi6k`u`_y2u~SCx{so zkMN1&7k|^_ZMt63*(IK7WP-2)1JEk?>vhV_UB#(t^X0~4dw2c!qj+)e1xlu#cLPi) zb?);$b6Ae%5i9bOiWGi- zFx&W0x+43JorH#KZD(bBeeI2-d%Wyz<|?QrAYf0g&gDU%JN(Qkwd3g`71`i#Aw%*N zKPP+z=kJt-?=O($1)v|UgwQ*?Ui_lk{LKhgTs!{01ni9ZuRFF;t#?JSc!w7Xd(QE% z*ox=9AM3cXz624B!Bep_V#K1mU*SP~;JDyU)M32tltwl)DF04Clv8@0k{$f(J0%Wk zpHK(F;R45b^o6~&6^9eK zFDWcd$C7YoETiGvWw@T-+-^EhZj#Ry1BRE)qCGo&pUP;?jUg@3lgj%+sAkj z(sYXcz#Wb9I|TDu?hT>l>0O(3Zvqn*H!c+sVbXF6!GKhU!O>YUd19ly7CwE7T;q_F z=m5py=kx5?m*}uc#ZNOX+Mzw0YK4`PzpbXM@~y;9eCWRPuAPnEhBbyQt-?mZbq24c zU^HXQ%o02l3)qE17LG*w>O7%fOGFhsyC5_~k@_x_A+Z$IG!i1iw{-$gGmEr3BPD~m z;?gM0#VlU{c*-2bQWx6{wShRO=+)V@Kg}8+)(&yIu-HGO{@|!@7gCtxuf$0{r)`0w z+&rIG%K7OqH6P&U!VqA_)5Uhty>&uM zN0zvnOqOK;@xxvWucw;4yVM>27x9Y1^HUU)gf{1fFN&$Zn ze4IfxApjS)h3AVsalpR)xT0qWa5I8gLqJCai?F9CP_k)wp};q?yX&4L#0%uax%Q%2 z?2A=63b`^Na&{rp;m%G-=3Lj6MX3EI7^?tUP#=Qb{S$m&SGYg5 zc&LITJa$sB?w1Qmu!mSZ58%^LRQ=pRxB^B{V>h z`s!dlo1^RO)fIU2jYtZYA+gYpMf}$9ZGTVytcI!pFNfuhtvrASe?W*ctL6ToEXQ?> zY4c|eTIc_soKUowd0Uq}qC1bC*uttFpp0wT`(uH3RQ5(s)X#e|;qh+vXX4SFW62e9 zLIbcin%@*hhh*fG#S;IX=bdi-_jg;2el%U4x7;tEs~r-FUr{)kZuIg8o@z+ezweSIY z>MsmzK_;v`ZU|e`+AnYKlMcJtNDH@NLVLOAnqI-bag&2}#C~=RTt9bB zo(pc4Z5kB##IUSF`~U=fKa_}vEPY(e`ZDSk%>u#SOg`;)7Sh4A15Q?iiL>Al3|>u# zYW+=*f?4> zxq}Zf1$#XAf`uEt6bmt($D`{dF1BvBX@^RGg`n~%#aP752*l3fVBru};Bc#VoFaOy z{7NunSdU^NL+J(J(k}fym~bA~q8z(|DJz)386#!bmAm-@OseN2ty(1VgIREMhC+4t zh6j$X+WP{&vbEAgsBlzMCmFZTK^nMTSc2cQHW)>)u;}r8opiQHPY0ZM7T(_gkzq5b zHXE6CZEBB+r%x3et>15PE)}uJ6w7n=n+GT1L|bQRd?MXqFKBCg#xl(cpY*i1r%69IAZLbGoAsiF@;;W^A{NOVssHhn|c{u!-d##vBGwH0a zxZlvJWMm{pJTHhNpf=NIRtecOA;YLdoghDc;1YMoSeJv6@EXhY19o`WJqrv#-{Lp4 zdFI_aEpxCdWvWlVGo^H(UGj+H?OnKqPg75&7?!2s0) z+r#x46o+zf)`HtZtNe~1*qTmf$a87S2$$9hV0eKT7H#q!J!|GYR>548k|FhUMQfZZ zeC_#<%A?P=WQWs|A2CbGKjZJQ&(&mSI(_`k_K{EmiWhY$o>jMlHa}6*&~zzv=Hwz} zR2QwQmW*1mIYj*-5|iK;=^K)`sC*9c@x&_rmk7U} zcx{6cybiwE+wWFc;RsMaBFS->_(bj#68VLPe%lEh?&ycHTs!C;+oRA)%M;|XDnw#q zwA6&9b-}9GT*?*0{r$pW!iKpxK14Ep$&PKs;!ls-Z@DV?6W*G<&5G6)Ubo3w$=aB% zP6E`762;ju!HF`{qM?T&4IX=Dj>wJ$lLgN1njJMtVBi>$m))8*c^fz8I zC(foR*XelmMo;4Xc6##K@iLxzF3pPpy&-X6Oz;qzaA6MA2zw4dvWzf`GE1nq3jkT-|F;#A(EX$ct` zN}nnH6-jm`sDKrR$aSvMoCYFHu{<#^vR$tIDE`C1oY+S#`U*Yfn><9ZI5<*B_UTpc zmLuMPYY%IXKF;eTB#Y?h+F107ZFcKUT1;T|j3SAF?=T!FcE7-TG!a!Qd3BNSAhgWnB&zqr*pJcX^|0 zGqMnirt$ZefUykhjFDjp)zKEI^H7YU)~|`qe=>oD8cS(6ge78$sj=Y|nofVsOd)@Z zSl=&T`h#XE#bQPnZiXm!FwT9SZ_!5@QWBbp-J{J1n#kqo^tO-Tk(4(WJVLJqKA^=6 zj}gKyN6{rCDz}7Cx(ALh4*V+PGbHh~`&dorwY0+iL~6x#t_?0|)7j%b$8a9OA$>C& z1RIr?BD8rxe4yy*n7V!Xh;0JVFbJ^| zwaElC1s_M70i5kvz04AvFrXDhkb(*d^0XaJwKOB9K|F0J-44rzZr>o{XZegT0B<4} zM`Zp3Xl*Q3=os0L*n4j)(Le^1Z?A)jszGZ}swoBwPI0 zoZ$UqI`su`3CR@kY5@jYq2s8#2C}jq_09~u4`11}BP%|B-vfoKWB``8Az$e?h_2>69csBGnUdwM@k=RnRpjRsZC5=4h zB2Fb=`SyuyCL%_kGC~FI9YyjLtRME<>DqTO(J)NBi#q>1+boh6c&113whZegmQL@og7tF0Xn zkC5e0ahkH&-GGYIMsZOYdqQ`w4HQx3OkQ4*P1sgZO?wyfRZYi>i$xKH^UNjF5?dMx zcEUqNm?WQJOK>4*{X-b|#6EG$)1*533v2gNNA(<1zd2lAL4M%?E-K5cZB(u3nvDKq-cF4jro+FriLb zX+D*ZvTTbAdMUcd3X!1usBp<^{mxFKO;+iRc)f3P`gE=R{58%cqBNabRcg52N=oyJ z3hCVF$-bzfRH8f5Ih~Uf+rXqnTF}=y>ZzUE%?aK>OiE)Mu9Bm2PndlB;cy4dB2!ZhYq}{U9Z*U1E%$-&Btu-* zc5`Bj-PDy6aD4=*y76((OkRPM03`g#0t-kq!P5mQ{#j`v1HD zUn%s`gB0xU-X!wx!*|g;^92LKN6&aT)UW(_Dj!}C4asU0uP1^Hm! zo_jy1E{*){xLDA4)|TCjn8&NUz%6_f=GuU&-5M|bCO8-#KP4{ijPmH&VSHU+dp*pT z$cd%@rJJ?SZC#LsKJo07lr&0D!vHa_EFDlP?0N!DikNnVE+?;IZ4V%81w`1su8{^N zI1%304h_=2Pt-hP74$t)zklv|hNpbGA@(sU`g}z(>m(QD$bL*?`znMR!Tm} z^D*{kXw~e8PqQXU*i?6<);{S+5p}cd?7>gkT2H(*#wH+7`%mbvTYAGMuVoTH)r5TG zq}X>~BxuI>%_s^_sofPp*i`{JD#bSpLvfW9Mk4j5TZ~V8_{mK}zu^koWtc^_S}t6$ zawyAE7!%uqTOlJ#^7e|m-OXrtDE3?ay{#hqEqVCW(LCW?SzvcQk;SL;UVGAHp#}<0 z3?g4>B9g7Od=v>0+78-hGI8b|n)E_NAg!rBPU)~95tj%BdCA()82m28ch>;2N$+u9 zfPuzMrRG)V*TP%8&H9Ny1UWglvIxV#dZp|FxI$RmX%`n>LF&Iu>xDVs8a1CcI4E5% z!mA*Ct;o7J2^M-6c^`KlT%n0P_z)cao)C4yTXLMacb60)8pQ2-a41qPF!yWj1y1=~ z^Opv9DV{Q};YC_4vD_;N^7H#KHjd!}HN$l*X8D+qaj9bGRNiJh;ljJz@pdAIp~zoPZeh zzUZ(b2C`-MfoX?ikN|~WLs$MYiZaR|dM(UwGArU8MsRo?U}{Q^js9Gf8VWz*UN-5Ha=008eZIB&wo1GVMUTh z%aFJvADIgC5gsk)m1C_aV8Th5t=*{FJHJUdJ?G4=ouTQXiN}bz7QVw2B~%4QH!k<8 zDzGKoNkD7EkyWYdUYSLY>6#UY-q5;2K-|XRCmT*khMU1!WDA-6z3jB2*75Rv4Hct!tsTY-p`0WcB?(C;LqhI%>?Ax!% zt|iyMg&g6UaXdq3wNWgMEz6ep3I?w3#y(>{2hW$TkuPong4G&0&Mo=6CElv9j$5VZHj z$XiCVD=yL$FD3kb{qXq7FH{;eo*k}9eSt~Th5PH>ShGdIhJ9PMRJX~jA@;K|?9@vH zE4nsI*4|tbR$~5W85e}d68g=ctaWI$4&|$5Q8iE!*!HSq>$J1UM*ckYX%Cdzpj75p?JgB-S9j=%WnetE zt%*6Ms+c&(WNG^$O6;=5Ab&Xa^|cYz5j`lH8>2)yhT=M#%Cx2>NlR@WfeTigl!kBzR}k*+afB#5ix0+ z4q!|u4B%`NtACkd<%Hkmp(v;Uye}@U;-cy1=F0K+_PBPY<42<46+!z*h~|9g$^i4Q z5THqXrEE=&Z$L7l{q^3nMTSheBgRIeweasLhpNsT@T(=w$|(0;p6zC_PuwpLKnk}A<3x((-&*+n%oR(2auqJR8Ww$8x4q=D$4b5W#n*Z>Q1o2!L3&-9l)c1>v^guNazFE6CNE>E zvH^vo1VzInlhrb4u?*#cPt`Q7gV>TIozoB zwn@>_biFdYKBmuPV_!0q?|hc^3d^fbvr(>raoJCW);FK4Euk-0IcNJF;rM6xF%)AH zX7>Jk-0Jpo#B7cm36`F6A*g){O=LhM$- z0+mJD%TzOmwJI+d?gtJ3gHVb8AE732xIBM$$Jd7BgouuNYn&iGmm?6iE$ zyz$)_FO|}VsU{$$86Iyx}~MABy_ayCHcZ-B6%s6W_O4>euF{`?AGWE&S(sv z>FR`up8jwve3ng%Ar*|vt3B%z!1J&YeC3|!?+v6XBXCLnZZ~!vM5TzQQ!IQqPBMH1 z020n#g7P>7~>&Ffjw`|6nNTQ8;jhim`gqErB5kIX_fE) zxv2`f7EP6wU&6$Rf1VIN_XBG}?Ys5j_DHY7bghx9$G9w#3kszTIv>558w^CYsJ}c4 zT%CulXT|+Qzb(QBSj!zE|c;>yd z#jhc*yHk|7p%n98M(Eoi30EQPB|p*aKC^$yfOFov*PLoZ6oEHkFF?6a&R}y2+x!{f zj!qw)4mpA(Bt^1xQcTW^mdGU$$6gU34jMsiv@|IkkQ-n;JJueuI(lvk;5w5K*T>IN zQHf96^PMq)nHse(E9d60bYF?E2;+~R<*`>cVJVAjtNA?TW1I?!(!NHYI*A=Wt+$*75*{6 zX0XOzo!!Y$nWR+N@?h{Z{XswPNk2m(=tZC|#*92FX2vzFpg)@0lA}_nn-}afg~y^) zf#scuLw^NoQXR(og2nzVTTKK)fDL=bBLA4vecrZ2;b`3C;b08_AHP`jr#XB{Vo)5G zsdB+Z{YC`Bk@Uj-Au54fNA8@fP7Jw3HSYS>3pJbhC!@}{E_g2K;8&!NTyD1cCEMod zd0Q-t7xU)Z1`P`j2Uy6Bwny$OHiZyY@UtD;(YR?VpYnv&5 zyY~cYA*8D}Od*$gK-Q--mI1Z<0F1p!`qOesUYhh+`>9LJpOC`cPD_%STFTJtNff^% z=eBpX1v^*MEMPLYJ1-$AR9@`6-<+o$oirQ3(3-6uAx~^G0eSPUwqujx@wMwq^KNnq zz&oDy`Gy`n9Ere#Og$L+6&R)$e)r$i$wo$Z{{2v`RJ`fg2Jsp5oK`3Ehm(*@$(d6L zMPu{W>+8GBse^C5PYLfO?^7}tIg9(vG#r?F?k0S@b3-5Fr3HSr1vSG4+|A##lk=Z+ zeLVn?0RdYj>xZ^DUp7}KesA_xd?u_g=0;K`v|Q81 zV}>2)%+2-w^SARhOaIOAiL}YL(LSZnz3sIN(RxBV-q!=nhl#h@3rl(Q8*qzq?7z%U z<@3y7O28G5O>ZskdgKQqz_y^aE_w70L3RUymK`Yr#U*oF5w69_rRcD`#*w*hXyHb5 zK7obF4ENw75`P$JGEXd#A#OmfQ?xJ9%f+qHoIW@QbrcV6=M%+ZF)XF>0VYPoLAn{J?cB?0+(4CkpSl-192Tb*rqST_VZu5NEjc$S2c+0 zQ^FXFg)|%GjGWJ<4bmlKafVq^MbpOrAy$>5GM{&2H@xE6WKj|>Vr^5L#dM`GBQ0iB z&CQpmAM)e;8u=s-mm_i+K=6Sh^?beo^95ur!op8Mi+!iK7zd4WX~ji^8K&fsABtjdb!B8Z4W2UdP4 zTq1DDkpN=M7$)4i)T7&<%G~OQ08om0oXEL(Er8JU4<^raV(>$MDhs?&*xj*xGh6YK zG7yki5s|%tS7dezKH4EI3A)A};DpM71&bmF5z|~fBQ_BGLm?7sj)Imp=Xf0ZgujV;|enqK|UtSDU-xbjDmVD|3fQG5(w*^hazx^A$Mym3A z3+JZ6IS1qg2&3T8ormPTZSA?ix7;6SxlVIV5R{Xl=zFFN$`Plm?Owg@2!~xg#2UGw zQQ4uX&C5X;dhXf7u(*_HIt?VRt}OS;idLB0da8nG#{b$^GT+fmonQm^vr|&Dxr$#h zf_6#P1781!cLMVKKL%=WFJvbV#(oQG!jE3UG5?#?8$Wx)m11w%CrRO^T&Hi+x@fZu z!k2t4@{4{WCiL1$*==cmXD^JmT-I`W?UpooYr|jt4DmwJgTIucc zk-WkX+Takjj+hsI&)C((maKz}TzNnufFr8G+gd1z!71o|2>N38j$(=uoX+7>mM4I% z93#7tlx#-^wxRn8rb#{ImDGHI6uI4}xNBG4eN9=1!m<*7Ft(|m)7bg!NvLy)zvK=@ zWa}t7P3k=6TDM}kmRN>l@CMyz3>si*Wn?Yxzog*iVtPjD=#3CV-_J35pv5cYEVSy{ zGNu1xOJBHubns>#ftxt9Jtfn96)FxLvJdsa>VAx&c|*5Zaz7~%De(`O45f(J5!Pg~ zbZ59B50ceP2pgj(&1q^4kXiD}3VDdkbc^_+QI0<_qEZ8h&W)tcxrsZ9Z`j;kN|r6n zg?J{KluP}I(R7y^v$X(p$V{U-wh4&3{{$s+WD%Y)=OD>${in4EHU;JFgLkiZW&WV> zPH^EJ4a*_?N;W+tluc=6XuNjlR_hKTR%`jn{uZ_H!dfDtb;>zSZQeVNZ7vnzg-6me zxhNc-{{21xiH%`;D+sHq@hKaRr8S`Efi0IoI5vfDe0 z9!_V<+H1_12nXN8CQc|nk{)}H$Rmd=0_xn`n97t=^RL)8h64e6Fi3WptR&%nW5`^( zntY4AG(4Pt!z}t<*5zYrbYr2dqv%>*pfZFaZk>@o*7l`D)S^q9h<`EDI>IsW3tSVN zi$Vp%t^^DKJ7)}yhU3=z2NBFx^?0z62M!X#6H}R^Owf`*P{&)ANS+XoFd(9cQFRYe z`5H{CkHiu2bbI6}@2YvK#1eoT*N_dqnPI3Jch5INCF(ycFha{w$EC~^@n_n8jSKLl z0JNleWN+{}0+K>*SUHcOow#-gSuB}wRz;-U@prJDU8~2B`@{YqS*JRTS)lqTwy7XtJF~+AK8egipJpI}WtoPfAkaRN5sXMVn?%?|xV;ziiRGXTd z4U-!rrx73EbGqq_7qS5P*lPe^`dwsIuxT*v&v5Y+(8lrhNfWhQCA9LpR?-33T>3N=GE+s!k!TYHdk4)roy z_aEY$V540iUy9Znlvr%- zz&p0yb-ivZspL;?=5<}l=!gwm@_btl*x#u_YLxdBg*J3Qx3EKq${stri>0XdpNQvw zVqTDQQq!}UXc0>2|V$gL)ytwy1 zO!~F)-r6&)Ks?{1s@^)0m$m=VH1kG}Uo7;h1sM9u0yaj$%=zg4xcsE!sWFTIxb@IM zbZ3!zk?PEVb{7SNAQ=|*D&VT*h?Fj5HkNt|J?y(nYMH(fz3qiwdHfwvz~bvC3co); zGQ?H?!YSE${Mt)_(dFSEy?}MjJdJ{0V^Z42;KL_Rsvst+j($qbb?|fjNHf91t!xz= z0x_I^no4%Be;ovxImLSu^_lk8bH$Xg@xDStFsq^6{U)28~?Ee%l5`K$REj~!og=8P10)s)Z?Nf3(!+Y-3Ws!q>{BKez zU(DxxWuo&IlpI7G`B`=h zFxbcI^&_Pe`|#SFc@ReTxC`iX=|V{Pgl%EEqH;B5T?6FplmY(kA^boxbw)GhDt8cEQv_440vN02JO z!st>5w3Doa@>xCT)qQPL&`&ZJNjzB0G1(yOyn7Y3irad39CH=2E2azKy=j{P73NxU zc8tHw6^i+M;Go0l#`iX1(pfr`x6#5HIpqFv4!)U)_YsK+2|tXO1A6&sLujg}aPTT1 zTSUE+gaE6-66Prl9?Q)w^6cH5uv+ol9|PZ+e~I^36?>x5OhPI8Nj(PX4q3@dSnGOz z%MLq8zGI1UN}l7|_z8Dmn%OHO+UFizVAMn^3v?#%>=`7Em*CXT+>T!-P9H}7s-r`! z{t1+kLo@?W&;|cF{4A|U+X6QW0!A#s$B`E5Qf^FbVy^y%=y0QFM(8WWk=am`YfkAh zcuKDX;a`kS^CW3|(hY=jcdEo8HHFnj?@E)21|93z2?t7j-wL_SpefsCvtD92YEeF6 zBIbH#7(1ce*MFZ!%9oPs^d}*~2R!1-wW*$Fw|b&1PF{=w ztds6RKSf>s$`wMZra6k93V6;;Dec_;6s6;>ho_|4*=D(p*g6JsF3P$t#d5ZNy#41*brC!OI#A0qf=jUx{6UKg_roeWH?Uvr5Xgwt#l9Cw> ztYC&Eim=JW?w~;l*MkW50#%)qk1+P@z$=LZ2Nan}38lRuGjp^)kqj;eXdZx11J z76YA{pwX9o94;$Iob2`Go?GDMK@mrf{J(DEsgrPo~eFqucy=a(|eYPMlKP; z_^>zD*$0KbW8``8B3do}4=UM~m2#nBX(h?@b`IwmZbp7;i z|B+H39@Qx!yny)fkA>OK`uQeM;4!BEdkOOJ}-g48}?w=g~V ze&~nW^cR+|?k~(Iy;>RVIQSi-QIAm8_L(w4D>)^Z`k=_)ugq;v^hHl+MIjq6enD3l zE(2crmlmSHq<|x1&>rhSK~4c=P%g;Kc95s~M<(LOkM|YZytKzOPC=}+~7|)heieeIVV{p&nfDV_LnnOHSHEr%1foQ$|{!cg#-i2ZuwjrA^*p=(0f|K;|EamcvY%+K*96qvt#_azMqkW~tOWwC?$2DB6{|ei| z)_@olW<2ceRXBK+D3uzG%7or%aNjBm@Fq<65kVJ=)~eI`FZZI&YfeCOPhZ08sex)sVj_#C z5f&*D-nUFN6T!5pjMxZ0xo5bW?RPVNX74UNDMpC9PAlxTs>$oQ?dF|&lwykvgul|W z+E7CgTxDEYG3GoyOIS2mash zo=w@?3cZ}fnr^!41~uqEt8CSy5L!7)C&03VOob3YC13c6)iE*eyUwu2qTl(?LG31) z(EO^IzafM9v;)EE;8OWC{=822`KBV#Ku)}ix3{|odQC%MeZV(jT}8=k0~S68dOil; zwYQhG#i%G6P7k)3@u++!=o-LAjLru`y>JUT>+b{#9O~x#0?HqG!Jxq=kutqnT2_%P zWfKUIo~|A(ugqrz`7rajUm3Sjnj^$}9Jv_J4tb|m>SoopBbaT>O-h`%Ewn8J`rjQI zmAhoy00*~Tx|gKPq^8hA5me!Iyb(DYi`YS)QqejCE_N?Ms!v&rfA{yqyyMEHn@y?F zX8uO}hPv9(qfjzrpsS%3gLW0wC6bH5T#UZu zpF``rXUqLU{87CZdAXX@DOr=$ai5rm#rx&AR>a`k*lv%se5r`(K<>7_C5kxgp;exl zUX|Z$(u6ZUsD>5ax&GLW>8K**(lfvKeIAs2_=!~%e5{}wm@s(LL0S;7DIvi*9^)O$ zV#MB+7#z#~LK7pI41HhpFq1Rqy3v8Y_oW=mV0m->`SwJI;lsyjql-7WkML&+L?1pr z3!e|vy26=?KQFz50)AJrhA%YxHS{lr9-WNpze;*|O!|N)-M3=)rdK-d*FK!Qvhlk! z?B1x)(Qt)qTH>%}<3vbk;Vp0nWSOldatLaNhUbtgtFfPqUuep(DL&m#!<|fsfF5Y= zq%PuXpHT{*=kJ&ons<=}PcyQQxI;pBeA>w9EBm)O3WFL+Or$O<>;oR@xbN_oS?b-e zf)pHkx8)OJGgk%cC1^Q-%JZ?q2SoXyPj@p9*oLe76uTsM8)lIv7&W~)Ev=4CQ!Yi{ zSEXWi#H2DI+=UHf z>Ea%zRPrds8|GMGe|*+?^n(*9E@0p)92|R<(0Wd!IaPd(pQJfI&weAsrjg&8+&Drv zB#ct^xFH4u2mZ#bB-O7$6Xe~Tp-^FbKKfc*+3s_C*)wG#CJs58L@V+HKSGG%~lXn~tJfU~Cn4cc;UaIYM_to|1EMdgC_QjA*aPX{U5C;pk+C2*6 zsphkSfuznQRP+}{-E|G1R@_R>wRc#bsH{>vHD^81?bLb1O+cB_Zklulq$42ips${u z7tLoS?y+NAv8+%ng3m<*FZzRoLYTsqTQC#C^-xIvIk}^6eyeco2sxVx|EaZE(XSPb zQ^pA@#k=}w2u`e3ign8AYNM*3N$yT&|4B;vKdhimjWGt@JGy+SaK>1`3<>Enl?#As zAZ^R|Pxy*P+{cQAu2{l^|V%LLTM4MrFYFsF-LU{$e zPkK;;JL03SnVx+_xb{7xhQ`sJBUPIVRMFe`waBVi*_oZ|=1T`SQ4ZCH$u7n5IxEWWfOGkU9PAS%>sI z9~f|Q<(cH1cvOB!xvZaaw+T%`u^%3FURn~XmAv?ppz=!Aw+|Q87Ej~0iOjWi#6-;0 z5Z6G@Z z_zdC@2am~!4Q%7v%2{4+Q{-oEdnZ%golDLLAXO-NMsH_nx0El~fCfbpIrzZgRdN|} zxe?XKdkj$enTU!~^19FTb6)B>Te7jc@P-Dk@Cp%)3xmHYQ%9tOTM-b_-e@XRqA9UJ z1Bul5L^|3ftH(Z$o1B&6Kk^d6x6OkLi8jbj_YYAHi{U?mpenJWUis!>BIVApId%xP zdY076%zOAr1o@75f$y3J?qRY}R$2N|{AonvSR;}Y&rcsfP0FVo(D?vRiqYPFLk$LQ zB0XsULZeJPR)tg1or%mTdpaQn{(^jdLvW2N0eAE@Kxo>NQOoohX(q|RaCvE0xwQYTd(OBgZ z(Gu#7pA^E~s~xr+If!6k#&s3V*zHa@>ud7XV8+GrL0mc6Ia*h6V4~`3Xv%V!9fDD{ zj;H-&G$O@5wxUs9>USVsU^fc$3{@c_TV2UF;aixtNJUpP>a>_7GAZ3A@{n@C<~=NZ z35Dh28#GZeOF@@*^c@Z17C{9QkY(tAFr9wEf*Et|vEy(=WM^AJ9hjRhnTT_AACPBL zhu{kuU`y}8nfYIuF##2*p4ykvAUDl^GwCtDalzmW{_c!%B=x9x^i zfR%H$KzPN*781uT9Qg>UwLq|2@}#glUN`%5?vjy*=IDOKdUr=@9Te|7S>~$pkMc(a z&|^mu+)39}B?`4sU+GB6&ssXi>?eR(ahxoA4pVys<89<|mkhRs4ODUU6C9BATS&!B zlr7xoFx#-P7;-O^*daQC+L6F5!t3;HDVGP>XDmNHIGCkFXQdN=)zTl(;N^Ajypjrz z@i5z%pOUDR?=#e~K1L%qr1*4{`{9psY-6AJ-Y>&C{O*4s8RtikVg1(k){$0Y0zs9y zS%{%w%!xzH<4IxqBQa^0*Q?MWUEoJmkEeb{f`_^O6u>-%$i!FsK{YnP;kie_yZB7eWH zip29dH#U%+Y?4c^{M{>v30C*B?Z%90q)czOZ9Np_F=wP%TTNs-VHTNq!v9?c4p2#3 zK_7^*S<%(3p|7L|>hZs4BVH=)!@=J%3GH__1E+A(H8gDdCuWJ|Ol_dVX1+RlKOv-w zN!|>)zU~WIyijoE`4>PBG5GCI%gHnKw~icmB1!8kh8!b?NM}&LlujP;W8o9D70{jt z)t`2Rp15+)7qq^=q0hro-gEp+ut!ntu7k8E0T86;Nb#f_C6i?IT%m1w3lsb&Im@dx zl*x+K(*HTVv-p34c5z9=aQ?D7;vY2~Is@Q^|TwRsSOe>Fw}CYE@Sh+uHZ)xU2~x z!dRkr&b6Sr!Ny5Ku=Rk=Tq&@GQEk}hfEc136|PrM>c2?A6LCuQWRlv8eD zyW|w??_W^;Cx{J|En_M$KxAdQvdy@N)wp|Eb2mCzZm3`rkWjD)1>RP#6Eh1!LBEbP zAg-PYa4;2=uidnfr7WrV5!fgNzl`w>%&PqEr*JlpoE*?7m6)1ue~MCvy%jw#_7fR_ zQy^mwOD4G~`pz}FBG$<>p$&4}0_o9HYg8ZY>bq-lCwh^>o_)eEVpBmRj{Z{LTV*Zg zwtW!=tuNu5y0|vY)MfA&-jnlwF5A`Fs<%ZG^t^5#IiimtFe?W z>(5?f{Z3NHt}@D2FP048SYQg8?zZ@(ZpIjg#3o$=n=idfL>8oLqvg<~KR{HD6~H2| zu?h|vog@qUkX2D1b;;?%7PZM2H9fd?llz?(fiPu|R#E#F^)q}+l6>SYBI6$#t3z@M z@VyPr7^%0k6LYy;GFC@sqzE%Ar^`lUiLvP>VleR&{{1zaPUX-xmn$2C{G})BH=Ps>+&s4_J#>xARYW|qFi);E;8YpR?(HLetOK@7GZLijyr#CN>Knq_-AlU_#0 z3FNulOSR~m1KO+-?o19t3+2Esof5}MC6Ii`K7zj^P-5Sb4?xmJacy1 z&!!Q>I)(W=qX7Dm%9^CYDUBvV@wX;*KwLJ7%J~{o{SDhj0FPgvJPzCb5&zi}1LAgY zFm?_Q6g^%fIQSK?NQU+>SiayiqVRbFQ4~5-^n44_&p1S{#ohhzVEKKO)ToGUDs;5;2o@>DH&T81#8p|QfzfJyHt!WI{0dqjW+O` zVnxnQu3ZL!?PUEU&D=Ja^UkTS4!SPdNbaw*Q?_=AuAXskcCUhyH%)0tmsj})BC&`Q zf1vJIUhbFm!5%iu##73T-|F|nm{_tgd?v-B&WAYAJ~jgu(vAtt;d$SS-xVBpk{IBb z=t<>GafE2gH9fHa*omTq+}n`2#MV>AhzvaOghY&h?Dk$6c(_wLT&tUNbSs&;R(?lw zHs0G5Wv1ZS+p{iM!tY;+E?USh2Tr>sDs=^1RHW{7UJMyJ@1n4v`6{2nABslFDb5}R zofx|L#D|J~))v$FEvcR+59M_PutsH^xlJOb z!UoMqFSTLNmrVT>$qe48R}`lnz9EqdTX~c%fwo>&zCHx`Rv`#xwT3bUa_k_$T!RHQ zLugmEWL~T{2&*D|__#OBL<5T0nTb2aM6wu*QpNjpZzBwvJ4u~*YmV0~(;_kjdyuPP zM${P@a(c9SbZtkF@nHCi;L3bbPiLK32yYbJ#^tmi8KW`3sQPray9~YKaYOPq#B7yO zTT=1nWd!0H-Zap-#xxEBZSU_$ntoGBRS)e zdEwVxUp*&x&3DR^&6ONCv>6cxj9fo1)u=xUO4bz&d+^RCs3@ej9-9S_9RZTKme{VbfQLL3o)s5l#{N+C1Zt8dDW|q`l z{=|6oGFuG@;-(cSr5K`*%%?q449)+9>YJoZ zZ3STeCx5!j?PbNWQ2zRoh8~a9rl$*pxf~1<8LGsRutF`T+Vm>&OT}-B9BO{0{YxnZ zAm~l)UABXGVDUAnuYb~KNmWqF_i14k5QZWj&R&2J`!4?P4N~J)*SL{Qqft#1N^i59 z%W4(+0}o^oo$92N8>2|01r5q&{Du_BdBJ~kKlOXwQ9jf$auw2X76m_%yzp!|cmGCw zjnaBKO;iSAGqChxak~-36Mzs5O{$vkTS?}{Qu!G;eDAN%%zI+as0QCx{|`vP{eO_! zIw~?fA2NJn7+-^HYs;H+OTV3v*;n(>7bhoRb0gRbjrM_+UhZ9&WoyU(JO;Hkz(Bnu z&UHfIQ`QY0_`nsLD-u?q$hJqW6qcG=e5-ILLQmL~Ts`JrsOh}J;!%CsxBM+^oBI6j zVMLB_hdQJcK>^_-Ey|3Gs*@)DD#-5E9Q{e-bzEw7E3KB8zu^gWp6t+8tNUl`lj!_1 zRyiyLl9GjknA8hKf=toh_NC#;i&l$CtH+KhmG7qRT#6tEB{GMQ+K0mT8UN{!!G>8{ zgv{kbNGO)L`*69N5yXzn!|dKUCf=SS?)YH@&l-7D098&_VHjZL)?N}M0Wnmw@z1?I zC-itQzdPZxBxiWU1po@2T4THfoWz+~JPW7Cd>^jQI{Pjzjb9gqc9^6toK1rcKZM4t zYQ(K5m<1skp5j&^u%qFnl*3huD7w&JoRd|HBbZ!%<$7h1SIXfc8am^GxeN&`wvt)GPpm?~fra#N8`heT5NIl7+G|!!O0gB$!Jg^fr=T>?l z44&>F64+3SO~z5dphaOc1_^v(=L|cnBZ>MPyA&|9a!m&QjA1sIt+jQu#K3G9WfpH8W%Ee={$RCvf|ci2N!x(09>`Va7tecC zVijru0XS_2QhY&qkU8`j-%%-eCDP|bR_Pxd_*&DFr!Gnxo^z`c`a!`pgduMkSshbZ zZ~$CdV5JXmiz%1zq?~CYGKTMZKed#Y_K9hbNs~{IJpho67iXj1ofCyl+DjzsgusmC z(wSIkdb#<|SuN=AW)<j;mL~c3;*u*`m zxzlv?8L%U86q9H89Q?)a9RPr*lY)Z;CR|EQJ!Nh01HSl#OD|^978}4;UMG>yy*yDvYH`{*jmM2@X(LSbDTr!6EdC2j!->hzm zX&PFvs?fe5m_1C?^slJ%eD5LrS0NGYvjV4Tf40yKXqBn`}xiNNT) z?Yl(MJebfbp0aCe#Xg}m1VGp!O^+#N(k=~%U&*?^B)1MqTft8ARrZC;&+8y^<|Tc< zT!3M&IJVL@T28H0yS#zFY|z(Cx3v9RE&`Hu$T`V#Z|&_jm%C6XrrWdiVZ1hIeZBtU zBJFCNw_jRg5V21s$(yJAY$+G9v+5=L^cYua)?_Nl8&2r?qjS}J) zVdIS=nGgOw%u2HtZh7o?N^y2f{^zV)LJlv4SnnCJCg0|nbW1fqyK7KVf2j}JN9j!9 z#9ouL`4h?7BW_x~rF!TD@N5-FV`S!77ZR@86QD*a*jm~jaG>_%w~Q@#9=40lEAFdk zfpF!057@T6t2Q9(gu8HVr@A$`&ZoI-lzZ!<`1dmqvh4}Ff>J!)z2RSSHgZmUg8Wg_ z0#kC;>)@_a)yxROQ48g9Y857MPRJOwT#FZrV^?(URn#NRmJ*ItFf82D+5r#^F&r)X zqZ12;S7Gvt?7!=4OQ~ok#c@cod)!Ynvn7;=e~$nXP=24b9k9oTR)XY3rLOoHYp-3h zN{((Wf&vwM1J5aF>vGy+j_JRd`mu*o`=a~-o}w%E5PP+Ew1WS>&nEF_Dsh}$wMy_` z<6DRK)1*`E6=5^h>WNLGlJ3ow+`k7>numtzI9helA`#n;*F&Lc4lRjQ3RkG=eeDzu zYe=rWnWPQK>ZtwL&hS+TjCW~>U~i*;iC>#r6PRdMc`pB~8=3-*7E{hXSgH5XI!p*j z;j|g(i&cN!8acwns{Gq;fMR4x>liWr(;>Osj%xf4+J`)775|g|d!3Q{qw5G#x|3%W z-DE|wltM*~EGg|TtHdnN6J+ln+H5*)nmn!7%>?+hv&ZYv-f}DF=*%fRa1q_%0Cx^z z)heB@Fqxs?^-egc+8NmGVux;_o5w$O3;8`ueMs0Y{)sAX?013u0-OB)-ME}rzsD+t z&&wS%FLdA`*MC;(vk*%Dw3WtfyBOc_TdNG=yi^i0V>3D`NsWFXKzl6KkDgk*5u{a{ zjMEKG=(Fa`B{mewUug`1&qZgX={JyF%vXY%7ZY1rmgkuD&6{o`4w-awTcMP@$y*?s z0ls(!z{LKj8C0@uiB!iCjQS+Ph1MR2l_90&zlNsqW3uU#@};nSBSuJ%z_9E->je@D zCt0t)T;xWCe_}^iPvuOwwWSwGf}s!ewa>j`BqcI$d0~gPQPa#fyNN+LVVffS*bl;_A4yah>Rp0#rE z3-Oy}pP+dwb8tX!n{tI+)UeMKx$~Kbf?F(AL!I*H0?O> z4xqwI%qh zeO+oXC7hTeQg+XH)#)X_I`A<=l23rRJacIG{en1TG4yIDFXf~RzYv-h>L0zcjJ)F! zj#ayn5K~Py>nKI<8ngWuHHoFJS1;MFF%d646J|V}V-ad=sSYnL5^I`O8);cLH;apM z)+*Kg9PQ=s;6)gT!uoxY%;nFDSnl8qr)HTavZ1DjLcH_j#&hiO2};`Kzqsz6(5vXZ zzn$0OmQN>S=NhnfX=qWMc=Q37)N~`xn?2_cn@=*VNL<>upckhFwSVtIiOD~LZZekt zDkEwKa$x8D3?*TC-gFN-b8T5Iw^hEuU31@{j5?$TGpC~GgsJ4zAwW}w!zlNE|EOrz zHh_8}WK3#fLhh~0DFrKtxAiymJroqZqy?Zsa-@?7xo~Y)+je1CUUPQ*I72+v$Jk(B zWizE^wi3_QO*mv+4e5U=DjgQ=SN+JQ$c)VGoe89T+e}>!I>0a7erV1|Wkc~R*_s?I ztsY_9aH~*4e3ZD4OE9Gt?jBVu0&HBwRmC&H=9)I7b$EYib__^^XsaE+K|nf~MOC5n zt&fy;tnN4C51(p^F!mwWcPC|-F2aZx<@&ca#7y{DBJcrmd}_Mnk({VEf^A}ns^3Xl zNCTwMms@@p61LUaXS1UDCM;kio{K_@;3+2KqjC&(_;K&?g>o_jq`e@PnUP)JOz#6M zaV*1teD?WYEdXq=`jPnq9?@fv#cYJR&5GproIaZjajtqdj1NRASW9qA4TMc}m~K`f zJ@ZsC7|=}~sAobWQB`0nU$YzPZw->u!_kskW>UU)UIpBLKp*VS{IGR=92T=723s7& zVtK7KiXQIHl{_Ia{KRAAYaF;p<8Y1)U|%Kw?-J=T%0OZPy?m{u85W0wo<4( z1AK`LpBKk2siI23(RdEh8sI7f0v(udA$ENt&uCB#cST)Tl;K7HC}}o;b2Bj*`Yc|0 zB#bhHt>gNr68H7?N&C38s{C)}A5!UdWx(-+kmsIUqz@C%{8ZPwl_ab;k*?g0LusB@ zj7C$XD?&LWli~#{{jiV=W+9>lDLJ0MbTJ({W7N>uw?omj0_o$rBJOl-Tb%P9gV*uU zMN6R!k?0SCs5cA$vLGgzzuS9DO<8=2%aCm$q&E(Q>3Jd-+S5Vt0b5$`iExikJwLkq zP-=owxmP~1DRanWYoHF3_lBLk;pKNk;|wJ zb?fbZ`Qf$k&D2sE3wHFfXM@l%V*bd4bZfD?b*8nj`U*2(+IuJR9G>1 z7SxBdg1*_*86kvVkFs%-t^6SYhUY7?BIKK1+g@sVgcPlS>Uo))WlhL+JK{MMqhv}+ zC(q~UMBHc-Vd90sI=Mz#NGWj6Nlk~taW-z{SMO!TJ2ni(nysUwVz_BG;lUUQki@=u zQ5Y|H$<$D`nj|Q#UXv#O`?qn*KCr01ErxDb9(_>i$@A^xg+5kUNhP zk3W^l-a(eYcrRAMA$bV*cXIcPt9O=2{8XhjaFHWnE7*15%_HpL&L?g2$em)Yp}veP zHIU-5M-i@Fr*bZPI?}KY%_^;$nFx!Z0KnMRWq_m*CgGqi?lr*rW-!B^(LpCdY_#{p z%TJ;6e`xxuur|Z3+2Zc*?q1w2KyYnwr^Vgf39dnkyE_yuP$*7uch}dZsKCvZBu%-b@)GRsf2mBo266uP_jIdUqPE0)L;-= zKE63=G8<#$eFI@K>jnXE;}e`d6yL3i%B+cBA0DXdccrgMZyOgdxcR|MTE2y(TnKx4X8WJu5^>4`SED~S`_56A zw1aH%fOF>4EbW`;>-3?K|InM?qr$;z8H$FcMjM9tNjg)6Hs^bs>yOfqB_$>Xy0N$2 zDKfdHow0PpKWx=wlxcHzA=Tyvl;beVK3XJF-+ogtc=FCTU||T+att@Z9OI3~9U}eV zhxKIf2ZJ=n_#tYS5e~ns?;i|Ib5J@dwyGx$Q ztFh?tTDaoxeG(>3oE2rgNBs|#co;SL@#cIf_FTTddLY@irBeAbeM5cCpL>7MU4x%4 zeiGaBVyEjK<9~Qqs|DRz-BYnjq!GMxU^#EbJAG=9dJHgJ z&9pIa)|EJOz*{4w;fglzsZS2L!r9C(z^LfwO2L&~+-RR-)!}g zHE)pUDt*%OSq%B7EeS)8;1o-cKFpXjOTbLIyf$Wk^Ug1VJ(=0J+9PZWv*Y}`; z-yopf;_-J9t$*6__a*%+>-qrrPbn`;ky*>7j*|NRK`wp>1>KT@$Kj-L5ZdO`!des> zUBK-MTVJGpXGA64N|@)WReMAOMTxM}>w@`5(z<)Wx_JDfe2=|gfw9pL0R~pYKUDs_ zfK~YCMJ9Mqxri#wLyBjb$aSao)7C;rkBBeB5t)E1>EOf8qxGCpl>P5XMcTjh1)i6B zw!K})8H{Zwn7S%aH@m=V9pT^eM8-Tp`Shlz&~9_-uI+Fe>|A_FS=e#8VZGt8#Zcb0 z{tGrnA--69Rn!60={+nb7Is?7M^rS zKClWr&<41UKG+Sf18_*}gr1I|&OVFj-3Y(m60jzxbfj{ZQ6bl7i$an1ZHuq+a9n?< zak*Zq|D7S2Y>S!DjE;l<#wEV;{W!irXh0~mBjOipFkFFAGO?lnx8Ma{Q9A3U{Qah;#w}|`Ih2w=gh?i;1!$SJxVke9T(_ey_u|x~rK9C* zyXJ*2%j;remM(_1cb4hV@iwY;9=9)8C%67OQ{2?%LZQv^?5d8`&L%&`W!(^bKtkvn zbu~g@jdA`v!u;{s!N9b9!KfdN-Asx8Fz7F2Z$!n+HKI9?^php@xxK>S&bD=P7samX zZY7z4|NeocWaA%l2NN>FG66Aw;4@OA_#{KmD_ZX3&l-Nwl;a!n0MxSVZufiG7Lll` zO#QHj2dRdDq`9>r7mxVV-<|)}F|hp~BCm55ptcyirw_Z5g}Z9is%R5$diF(QO=7m0 zB4vQGX8%j0(Df-h;iI~&~VJy0Xqd`n8hNN^C0lFe-=ddbD2@VYDCNr zUEcYJ^(MNwK#6yE;R(0!o}GIeEajU@q#O5Y|05LtJ%Y)`I$_+~*30%eve19E{kwrT zVuft8R2r`vKc`D7E4e!8=(Hudra7DP3Db5%Xy`trM>AwCn4?sSWV7q(V*OeqjXOh4 zO@+PCk!k{WmjvjVOS(vu{e&)iA#(>~AgBZCO5-#bYQxI-#0>mJV#}ZO>JN$1nrlrb zf1}*DiuYKY@=A-y+vAu>#U1eOv%=XG$-D^T>^;GrHs53Ad9iffN7a55%iTuE(}G&0 zyu!7LVq+bANJ8?VB_~`oQeiffA# zRbuU>d+c{DL-ATP!r64z`&tc;h)|~A z%n*YorKY8=(FwaKk&xUP+rI@H^lf0%DDGhctr5dI*6jKtI z1GqVY$ukxG$&hf^fAdf!((WfvHj;f_f>s?FjwP6CH4015MxJL`xe+uwd(3@q9rxu< z)tKGpfv98hn7-l@R`}f-&vUij&&u~qkFJl0E)D~_TGU4rp6|O_5_rw{jnP*AAqyYJ2^|YqH&L2$mimNnuP#IUc`-k1 z@^wLX?sq{f==5q_Opic~eX4^loVbK-bWii*8%Dbn5rVuqE^X2ViGb`WXMUs9a*%88 zsjY=NPG`(svxGL9LW0^#Qlq3=F=M0_ZfIm4i3^X{&)|i`A}JD1mHc7M`3hhz*EzGp zEqsG;0-wIgMDj|I29f5t%4BZ<^j`3F=p|y zlFAZhR64idFKUgx+j7B9w%IP)XdKQ;kt?I)aT+%@T#iWG0$OeEI>9;O8z98^G}$lW z7JYvZ%&3a}6{q=l%0&r1>HHFUfA2ZRzoUtSkg{NntDR(9n@-SYbQ^j18L5O6WWhI5 zK_(YS4J!m91_C?Aog*7^n z0_taI3*3qUjctMk&S^x^h5+R=@-cBS4%oMIbJA{jRMe?6d6O2j$dtJeakLaW?I5Y% zqZIw4euc_|gmYc)Sj<4#MPei*V>7?JmTRp`f!h}rDZw;`i}TL{KOr z(!5N-yXOZC6Km41U{i_r%HTuo{P?I7p}^;{i}xH%KN$~akC2LZai8sn?NRtM+|s4} zS!0f;*~wQc*s&VjrtjmMk_*rmnY^|O)w(yKm^aDP98qV8FWs=t{2j`kUJ}=qmsdkm zB~lesdcK@cpBWXJi9#SA`hmpinS`Ftn0awkxcdB5L@WCYoC7$FgL|(+gJf#4b+a{M zvRuUZYf$@Joo+X5Qm#J^mXdcK${AW4is(Gt;Chw-|H`bsUoIb#ygw>BZuW4HCS8M< zlo(|x$oKAoovm10g1`@q{2mQ7V~>Bwx*X47oW6xF`=;I>L0_V7ABpJY$^64w;+j9e zo4LlKjT>n{8al@|_2)gpvhp z!sa$GqbtHigpcCw{?bMENpbCnSfMMDxptb3y&&y_PS;TOn5@x8O(@ZI@GFwN*5=o9 zM{~Eh6@f4hrCT`bR5hC^kO@=V4B3K;BuCQGa6rfmnVCqkrBxQ^Nf^6fr+KH@8h4vI z)HPe*iDsJ(j;77pV9mx5uf=dQDGMiYedMhNT0qGNmHB83!Hb=vKjm%iuhH+nO_+zB z0Tb|+!eBw_7t!WQpVe43>UPSMsnmRFfNta%_BY;9I=~&3H8TS(37Bc>0Ck5~p`=@? z)rKmYu9|ezKr(CJpL`!f1oSPa7!JD@CsPr37rXTep9{88T>6%G1)otpa)ME)`A319 z@c_}PIt8aT1?DPNd)6n0{Li{589lT-9pdR26Q)&$v9?&)#LCfhg5PN=k_1iaKbVC{^o-nV!inRNp)YKKY0e-~W@O*QB zk>7b`9tre9q?6dOhQIrE`e<*k?d+=^6=S}#4Cm4+6ED4Y`=-%AJ6?7a%(>Pjg^0ID z0~YM#;8UwDF5i^VW?SKD9!jS)1^_fs5BDl**oX3oqvLGDp2SA-=xXA*vOLcm`^-Y; zkPAA;DPDa7>vS?h6oj?B`zf?g0)}a)Y!Y?04e!vlHb?e`#U?>dO5udAkTqyi_0Qd65i_R) zo51sLAVELm=?}KY1oLQfJO4S)0xK%Z&@jOU;jJd)_UJd`9`7NHM}+@WDCY|ml~7om zUf$O%W1;t88S_-zez1<`rL;YW4^1x}%x`PLc3JzM`h_u~w`BMAofW~z3qs_7l!ztAr zbb0UNS+B>AYyRGPKe93oFtz=Y=M4XVF;sj4F--%~mSnPPxKhn_rTf=~cg@3kH@?t{ zO6nO#JPOD%tZl(V9$RQ3)TniQ8TXfowq+N|cp8n2{G1_tlw?6^o1wh{e5OT8e#U<< z{z;vGZi+qRksWV_dag|{lq=u~4W+#w21Iy;^Xc18iZ^R9RvA{4-GUQHikIQmOoBAb z?XE;CyE=2**Q*CBBFr9{xui1<=~dVaPy7+ZQKQn1Je{-5*B-^WmICkGa&Yqd+Tgzl z&zPaw#MXQsNdT(jXm1Tt;CeT4U~&aXCJ&awb!6O`88J`Mn<%QD_;e!k>J`-@Kx<{VcYa0{90t>i3Z$8k?O6P#FMN6Dj*_S*oOjSkY%U>dGKFA7ycO1IJ{oHYo!BTtKm~k_WBwYI z`n|lVLO#K^*jpBfl`pPaqG~$xhuRSCZO-Pe|;zA3sfWXunXC>?Or{ab?4@0 zo2sL$sYFS4bauB>4yqJ2lOj4^pYrIHa(^CGNk`9y29#U5hYT=P?EtBBDz4nX2goUB;A*`6luuVZQWd168DTfBc7P3xvXi9O5XKS_uS20amc!mc? z!Mq2y)6`DfFYr_njKzJi%6j3HXehRmfR#t+<{qg7_>s!;3Q4YUY}Y=!&LU!mJ?rhiJG@^r67t3ojX0P}_T4 zF6S_^hG$Npp2LE7)U|e06|^460@7XXXy0}!WTZJ7JGP;?#1v31osXGEyC zv#j1mbL>Bhg~$UxTZFl|0R?^95HnM#**FSM$sL?hvhj33AJCkC3>;w1-_q9vCb#(@ zw_J#YnsL(}k||kp4p@H?igxfOPkm5tk*c6uk&P8?+hyR8q*>9NlV+so)k5A5vbp{| z=-yQ_YZmI@gDxx*D!#FI({q>pI$hUuQ?Tm8@p1cbFaOTe<_*tHSfCYLu7sr*@IE#) ze4~ApZuHb$W!*I2_3(sY{XnaLS>$B&p|)xK-xBrvf3+&%Go)}}>*q=yBOO80QdRVR zZG8$g7I+q(ZfQBVpy2Sc9z6^^WUgk%EcFFHXqhOKN3O#uFk!2vxGPSDtm6o7XDxnsn{?1&`=nK!T|*nKDpW4&22Bfh?V$An#o6@_T!_r~ z7s#DJG{4z?^MmYf!#>jfAY8Q%Y1_+k-iO)PWWc_=RHv%zD`99;ofr??t5L@?Y|k1c zD|Tp9$y&#C($0Ao?&`(VxLEL>DCDZa?P{|*MctuFX6=UX+aQ0F43%=T2rose!8V_O zXJ2V4PyAa?r_jZh`(@3qv;KX4pzrr=%>l;+tI5AY(OfrUeuXJdNjp&}We19nS~Sjt zr7$=RpqJ(rXhntfzNEP^noID4i{Pd`oZQHJVl#Za<-mcMRVgtUHZb@$^A+P4$*)25n$%aHgaZh;1^TMvtw|8t2jU$P_dh=>#qVyg|Aq%p@8A`zQsE?0 zTKp)WrL+#}%h!r2giF1wBGXV}?6ZdCNsz8|N0A#1;A^g!QQ%|Ig$S=3muOv_+7eH( zMB+3isBOBU+7G6&Fdh=N9>I-OW6>Sqa@`~9!vhrop9_6vg9OAA+=bh&^o!dPrt1pU zxdcU`ipio+;7bk66r>mJ6KCPES-@wMU-tH>ECHo^Qx~4sGR8zT=v@2mr$?9ooP)Fs z$ImA|&YKIuOFl4=aA=QOES2~~H>E{fT%uT#0#vIUtS0KAWH87gPm;QjrzPHBrhKG- zA!o%`wvfWiAegVc&ZQa;n~ZC2>BzU&h-XwtX*tKIO-Q9nJhG-wz^7pv`Do4;g#nUt zodk7+CwNxiCV!u~_rOT6ja8A<7B>TlH}B5Me|w!HE(_ViobIoeu@hzL3Y!g-NBs!O zm{50H^#>MdFtRK)I@YDzJ^vo$p^BiI`E-rm(jD$X_M}yOeu0#=ckhlI|5UW8bNQq0 z)z@sd;hczb2)D?b2g|P)x&KcLCUM97rdoxPuUFLehCb>;9VP+4wThT5KZ!{* z9P<=$D&C4fv;DA-3NjoJ#0YXGE`sCLG0_qy3Oa9X`oNK+VM_YL$K*N1c3DN0YOBs{ zZYUQUPb$m!{lPn_m7&uu#xQfgb?SZ}w7Iv@8G3AAyzyIv)@foH@xd(w$ZVD7nTG-q zzgYuLWeI<(W^$;bN~8wKSWo##7@+ACmof1>I%SS76>-;Q@6KXwD%H<(jn|YR-oU(G z^S5C~{8B8@@K4Gr4>?NB=Q!(5gU zRPVE_gaNAqIfw2B_R?#z?a2CMGvgjuD)o1_ZhukV_n`HZ)l&QLFQ|QF&nGaytD1N` zN6ne>ln^RgtK6$yBkhd%8VXSuNxsZZ>e3U4!5uS2kH=&*0@Ar-uPM=y^usP;EBwR! z?y%lp4vqIV{f^&)8z}&aC|+i)^&+pj_m{n_iI^Gq|4!EbGaNqY*W-IFLT1FGp|ZfH z{`txL`Q7quKD`9B4vDI;y|g)%r}jg~!k%Zc?t4WHRbHc}1CUI6`f;h{?*Qm;9m4nU z>#x`=*}V&`(*xPfYcvDOv}lpzbjg!@a|J|HgQlR(BF1>g&v)>Yud)x>gzpNiz)(LI zO=8}T;6BQQz>wX<99kAkY6>*T(-WZ^VQq?b5f4ZaclYjo53EV9Yb=-0YrxIj*AcPN zcfzxA2EtRrr>TV_k8T;yYeWbm+fq4whd!_sn%hYc!6Gus+eI0Wklrv8QsaQB7d{#_ z1=*(uwV>7NV4Gb`6XOd*^egzmPAM+`@YeF{7*krz++Bj(Dv#oOq&)(A^ImuUw5nF1 z%VV`KYU(0`UEVSRV3S#Q$Re=65TC4jUdpLrGF=#R{^=S}Zqe&Kz&aZd8=s~dB{Z076{KGx9l-GI;$Fck7N*6D^65k+ZY9P{R&}|EdfiW|#;1xM=XIXL6M;&!=vQfQe*^nWw z^}Ie-q+7o4mE@2_{C#ubuR(N2Y*inWAhT#R6+c2gNQ@ru-a8g5WV5i>NK<($1tiwo zo4w4MRILUHt9ls|C2pbjjG8?aM`x0y?O1qscXqFh|V&^1Xz z1quUW_u%YB&4j>QdmgcmO2}vxko9S6#tG>S+K8}usCr;6(3IdCG1$mdOInHeN*^d9 zxg1+jmWZ0D&b&jA<=+|jYxVr&&Nv`u(hn}fC)$rFDt&sNYl2PQP^y`Z-`tO%iWl^_ z9D{rB`?#DEDWZIv2S{*CKGa7vKS}DtUz~QQ9!ccMqw$_nbvusU0);)1x2#F0B57u7 zHf+%76)7)z@>?iJ@~#j!<7+7G%_VgL`PWOz4?OkWWd?yADuS8Vev;X_46L$Y^PbaB zGLV;&!XG1{vQPcC=fmGbNdik!<)Vf@@lWL1dBLc%5?5ab`fjE$jv5oYRl;QQpRn^s zt}t|duZIbtRBJUmOjY*TlbhlJ-q#&Ge2SMUUv{g`YY z#6#^n48K6WzFl&W+z+PnxroxNvy>aYmeHl13^1CEbBOB8UYnv-tJA~d+Cs{z4qNs0 ztlN#?r09dA_jx;lcu&veOT_&n16Pq{!=2c`o_*yNf~aeg&dQ&gjGZB;+33lS1%9zc zA)RX^uJI%XoX1{2FW2Ts4y1t5yth&0fNg~5=l=p=?PLGHJ;OKl3P>scVEOy#Y}XEA zQ&kH!ufC(q#I@LsVw_|XHS;*SAvTck)Fqr z-xC-9p?=j#x42vZ$&KCdWaOI_Dr1b-Hh@+EMH_{k5l{JJ=Gs@n!B>;08b1VV z&_iH8w}%s&HHn#>k0fOrCaVGq?vE+&prmb4J^o!Jac3p>(4skI+WLl1WxdG~hvN7*8!TwnG!E28=*0A1w@BLzb7H zt{>(>U|qEVy7lK7hqaIB(kT==?b_&Xp@CP8$BXEOTUubS=m~FzN&=v#wXIO`n1d}o zlMR#Za8-IRKA`K;)AmTJt41|QX)J4JGffTd@agR^C;3BZ)b5u zydxaHO#x7-9q`plo=i}w7sU0oK~>%!%}((;D;8JDkJ1n|lO+qGc*pjmhco0;B7jxO zB)<`VE2Uhl-)95cp2vg!N#I5H=!@2j!3owR+NmE9CdHGICL_;@npe0{mPG!pw4LW8q`bRF&Y^sE@Dr&k|um6b%#1$#XN#3(h_6dIgR9E8_;wqpBT7j_)yp`I$ zL+b_TAF%|#U?NK-uI1l-b0c#OmAJ=aIuW~NwWcMZ)v}^46art?24)CifvOZ!Y|wJapGLsOyY6>eeZIk{(bd^QKhtWH{K({;~a92Uy0GOF+_&I~D#q zs&N=?hX*cShHv)7i|2;;;&Q)nxn1#eY{-5A?HOR>%W(K9qO2r-!>}Yv<{3FFxcyY} z+%VH3bG$^s;LNxmWgkV`3ua3erHfkn3J64HJ?eu`9sjdEJ z8}Hfn+)s;beG)=aKuV?{^nHN(9Ky%#0^C!R;@LY#9d$5Olo4&8_VwBf{h74=ga7J= z?e+AtAnMWU?iLiuu&IO{zx)~3NMI-p5&!MH7@pZv1>CkK@$<&C*V% z)y?HgdpWcd<4?-J{3E^Qf2nGJ`38=d>2CO7%Ue!=C(veco6c7{747~RUN4#b&ZB(8 zTq-8X*-VAnX*b1ihSoQB|A+7!WeeJ8*k*z*OEB8R{p`6`n>d^I8 z>osV)$wb#Zl*vi2ZAFZSi9oK&xptpIZ4KTWHulv3DIQb!Nf0x-)=l7Pr zxif35@|Y4oXV`a?2f#a=`ZCB*0&Juer$kUzaWttUiDmyac(Tw05mINZQ4Ta>6l0^= zD8*V%GZ!g-1T(LITc*EDAp1MEv(?^he`S8y9HO!->_lq!P5UlZM82u-zS}U-(8?VA z65cQV5>99Q_!g+jFHXgukOZ<+i@CAFHS?JqAtl(mPi*r^Kk5l@fa`cfu=0JTPUkh{ zr5b9VW*2* zI#pALZN!vhz`mn}URgX|!%}S@Ud5g9XTK%N4wk##RaSU4j76Mt>(q40ZiYj{Vrz62 zawQEenu#Q7OGGnI{{l386tX;>ppqn+v)_ImrFA4%w9ArOY>%8>T7Cd&iES8ne|@kU z{y+STZTU_1b9AQ`$t0jNz=oWT0eF>I_^8UbA#;jcBO-4TsY)3dOY+MF$q@r;>ANv|3bmFf5Zuk`AT~wd&=AN+Ov+d#?28OKu_1hOJisyP3^NIPHqI$k?gyfez-E(F1Mb4 z6G7oWe>V|OV=aa%HwzdIn4A1Y-$zJC=X5fp2x_sXSW4$enML2hN%lpF#I42p)A^|8 z6!?R`40`e7&*ZDB^yr9~AiDG5{id?3Ux$0%&=ZQWU6AADWUhFAQcRmq1XH)1O)I5+ zQA}*DFG?b-W->&HNmT+>OKfV;<1ms-$_&2iN^oJ043JPEr$bxGHi36_(M_Hq#8X&% zWkg{a<0CugN4Ot16X5Je8kq}2JgFo^Kp9$G} z5GlrKIYJ!c25!(Y+y%cmk?NgRC0?SoY{(F7{-F?; z6%0VQ`xN-^p`1U#C-3N%aO{|EOI*xtS^O<79@5d-F6|TPy)fQw*itZ;_kbQ?UR@G+ zKKPQ2UxxP~6D$OX12z6{mZb?{9Od|+S=+N7jl+XfPjR;^GoAtPrp%r$Eo{KKF~v1Q z&;2DuEQz?ZA~ zYXvt4he65La9-RLC*Lwe%)f5hqj`MBrELO9?2`Vn~^@WvV@ zx}cbTI_Rw#3+YpRkoS&o#{V{d+)zo?YH~qP?cPo~DO|i-sEKY5t?=39gh`>C{83n! zbf=Z`4)M}5J`5v9Z2`@bZs9x^`Lv?q}w>6_$u9F z&^=A%72e7+IhFWA497ldiJ7r79aIT*q26CFdE^KOF={?IT_G0%s#a;Ra9{ja@a~6F z*E$MKgD`b=vx#^VHI>9Q924DjVLl=2l*|PlbGyV3{1G`|wnprR#6Oa@UY0h~3l^q= z!kqcUi4BJHXhJD&fSIPAfH>ugeR5|097+GLP#bpY>>|=N=$t8; z&}Q;ukH}bHH?;>$BHSP$AcxKy;|i9zQ9--JfV&nK zh;+CB(1{*yVt~+P$U?=l=fqsTOw{ho*d>w5a&424&DWq%FhDI3d-fJ14b#8^jHB_u zqD^d)CJHBkUCW0vObn&*mQg@Xg>!+&EyZk36}zlso4Vy=F~O8SV!kUd{SxG$lI;kY z`?gwv0TDIv!C}RCf*sx1KOAX1q8cH-zC=m|FO+Q_Qdaa}68>I*8!u>2l0=PnYuFSa zRn3k@)OuWLLxu%Be|+?kleN$3EHG!RBQj!36>J$7!GewBzMlWAh6tA9rZY zN6;|5Jld3d{{sKi{HsctgjL$345&Y$02#zCsX_0p_63G3IVG`3QbV=^UbrKiEzLrL z07>)K6dV@qQcug8Z~p;pZ7gxjqE$h^@Z%Ki>=ydtHZb=Jq38YW8-8(v6u*A;?NHP> zyV)})zu{lT2oT0CRvo`Xg8^ycR|=Yl7(#;j(0_<27;iOgnfW&%Hvfn#Y9h~|<}bgQ z5hsS`e+>*JiP!lN*k2z24UhNDABDSZeRUWht%J@eq{uHWXXGF9B#gty{w4>0$}eZ* zOZ>{)ur6D&$Q8=(^rv&3sp=1d1f<~&v3WVeaPtJV0AuG;7M+Utt_K} z$?i$O!3j$fPD!vx->$FR$Y=ETy5j*gjLu^gf{6B2zf*-AIuqWgs zPVDz?YzVM7DkRjcT)%Kk+iZ*P-9u&;ks6-7UUOZfI8kna@T_ALf!1)Zym@bAF^V`PPaA%#nlx0vQI3J75A!WKkf;2JFmXu!L4BFk~_Q2S2KBGKp;tF^;d)Np_J>i=UqU!{YJj{o!Lfqm$ex`Y=}$y5xl0ONep~RrXa}e zKUQiL?+8Aea(QOFRXzarIHOO)djx zeu~TdO`zVUUa66=rBwl%0#D$(2rJQ<1}}C_(w5@XW~dy1c6l<_SQR9c-Xw-y!zR0N z8-rWYQ+$xTuYxR_#t+zvRk_qUb)}8MInUKSe{M>)`>QJZzFS_6NBqFost1&4j@KEk zyq8g^@0U6k?S|QynM48YGQ8drbZxnXRzUBt`)-1gb<{(A9&3tXI&;K^6Pb--30#F> zTABF#Yh?X3+6dPr1^v zb`an=%}V4<{v(UI25~IDP)y=SJTAZ5HT&Ir>yOQM+-TKc^1^XK;Y{i|;MYfwltQCI zFw}Zds04a{eUurh3}~9WkkCvsX|uC*cbLgTzg`P7E^1~!N7I3D+s`j=|?^ZX&1 zV?&HPFE-mzys6N3ILG+8{yjv&FwH+1OhWA;drdIyfg#)--SB`CS1T4_VwINgU>dT5 z^G1l2L|bK~HZRBMj$&vPtI3G0K^hXz_<2wktYlTDYW^3i-5aj2=d6ZlEl`qNrQ9wY zm9;+zj3V~Y2^!WmDqHi~g)!s%eb_A|yHm#Lg2dex35fw1K+nKqrb{+%v@2b@rk}sh zBJ@@D?Ve~G!As-Mm8`<53?Qkoq$JrpoqB%%8UXkBJp`cqwY37i711NCA5CgWVkWZQ zCv=Zn<_$-y$dZZQLDR0s;{&!ZCPN;9)EuEzm+Y0lzkcX;RJ_+NAiXk!itkgz5^Chx zH6J zOtS=T<1Afuq7E`VAayZ;ACJWXeoAK>Q-!5JrUYJ{NH2E&S3uJ3`2WXYfK$5DykKQq z)x!tYhq^Jz_)%JLq3|F6$y4afyv4OYkH?3scl&I}%r0txMJJZ*%boP@z@7%)K=J7r zYEo%;CEh2KVW7Y=-QPUPABIzDHh%x&`6+HwGdqm7JE42sYFee}6;hWTRj8%*F7%3r~^ z>186If6cq@mbZuSw+;_=;#chK4~VbGZkEo2Q1V2|D)EJQ1hZV*38K9v<&3^SSn}Nb zUi0s^sx90de#x_X0|)3p;ot|)ZrsPdn?OlVgTfi^NL0%45!09@2eYc~&)n5~N2Te* z@1!9oaA$=wuVRdHdU268@S>K!7m19CUss!}$~d1wN3eswSiO=9WN(el==S)UTZWX83}(E-(Qlz%%4;@%8sX_bKbdm-oNP1_d4(Wuh`@PCh)I>(=b(H0CU-$2oIclpBRdxJu zl_es***_wMA>qa1ig?6v(pPldICWCf7<}=b*vLN%ptfx+Q*S5>*coa>t3?V5xB(0K zXqx8v4Ceca;OPQ8irX@@Bj)5TdW2Qq3*upUn!;iA6dEhCdiR)G5y3f$lZ$X@Cfp^L zC^l_CPv2DHe74OEn_Z_Ws^-eFU}WBJEpuFWZk+=8HXC`JxTFbe3kj}FC^+4?;cmb( zv^}>1iwi%kdo(GG?!kZcZ>^tt7Zl+;H=%M%V#vfl>M$Pv82jP`al9@>ez`(j9G8(D zfc?e-i-sL_mOc4;PZj=aG-1;(>o9k0?!xYm6^#A_(wR)GXbg#=^eSi#WEeApW+v1u zC@ZWQ%`3=f_0@`hXueevNicrcJ5~YCLJ{9z&)spjCh;#@=6zNMbma+!`6yd?sX!|L zEGHwUbO>DE4LcASzy0`jF&@GuJo$P2@CEd9fqc?WWuiihnGWMKpXM~I47jQ=1d(8P z3&r`1I@y=f>eAzb+6#A8fG4c_Jmo5`y1@$8x8LyEQ&?zF%2Vv-ztd`_lQk+xRdPjk z$ro-_{Tnm{8M#Z8_z6mvCij;u$8TN&H(zph4g+?x_*uZhVmH27ZTDqI9OA*}hgL82 z{XwG%rn2c+*xf{1mJCRyN?oGAYr8zO%YX2qP1^!4Xu#`Si)=e-Y6A{sAO;yHxB?<9 z|4(`fp^Rvzh1f*4fr~s4*qF%ic9-$U8Pdp zM$p;^NnG=GKMQNDln~Y>qn!r?yc}~)+3xL<82)_nb(+WS7u2IzyF)#7><(d>#4a2- zi5#gbyhT=@^SxWv2T;<5yPBI&m^-d^7caTPTc5REkVpsxbEQ@DTYA0j>;FqOkW~_G zc5YqRynRqFE&Y*4*%st@kn#Gy&McHiy(}+4ENW8YcmvAIxjy}PC*ZM;ubVWf+HHP0 zoGPUPrjuZj0b1pFKhPHf6Y4}C1`#Gadqdz*@I`P@g8y?8fAzaoMZ21TUpXj$orcMA z>rR+vnez#y(As*ty@>rS3h7SFZ$B$o9+59Cxlk(!ybsvk_ElYwNHuKrIQnIno5{Gr zY-CZNS;Cwwdp8Tpr%L{8qC}mPE%SpkGJ8NJMLqSGPJ~pse0L;hH8%glW7&4@-Gm zm;u8S!ush>O?1a4<0boE3TJr^asH58w#CF1W2NapVUID|tX|Ti)2hnJpyqD286M)@ z->{ZSDT~MLPVTCrFy+_%MmDGU~k-a4icY+v2ZeC_Wyrx7Gkm~o3c_tp|40#IamxohM zhlp}UAYm2;XBW}(7Cg0-=;|j3WLQTtSkx5Z(W3G%Fjfn>z%MD$sQ(2IED}{8Z-E@e z;zdL=k~D*>{$fI+fn%*FNhGQCd+}efN$+B_1JKH&*Pw_AMd>3LbV%Ok2Z(h{dSz*b zBpH2OtL&(K7en8Y!zRC2O78SUC6;_PCKBFO!R!){ zCpj$CE2OhBl3)_erew7H52}EyPzjw-D`{6z)k&%=Fu54Egq7(VCd_ntzX>Hc|6YB; zEm-Xeb-cS&CxA>HDo5By(GhdqJJTlJvga24u2(+$o$Gm5)2cIsIbKay9vcKuv{Etu zH{^Wh++DJF966$97c2qYtaPf z@q|qk6ShS2T*mZOMLpJ|-qtYHPWUXoD=)VXwKfS2y&;q)^Nr2VKmI$$?cl>y zdl8$Q*3045INhz2$__PCE!GM{)E#pHG0k_C=tL_>WXBm+hv!>bPv-)8@o#>H%QJrY z0x3vcB?D71o_8xQu&CR9aO_Z6cKD)QbW6{`Bas&uk9cz4$!C9*frSqVv;FX7sOhB< z$Civd5>!Rp(zt7l=)%Wt;k7Ts()di|>UKRRW+qhfZ@;`5 z9MXtfC}RezVAlZR7%FayKALC863Yq#Xk7Ml(hcl%J&8Yd$RQ)m;TmdTO8yY6UFjRA zQtl2lY=3-ctdV&}d^#c>c>JQVLfJNSwaO;d`G%-3paCn*b25CWYm?jiysa5WEKi5Mv;5$TmD$=SaJw2|fV$nZn3hi(uJ@glBy33G!=?Fu>T3Y~C> zA=p`%E*-e{xU7{c2W{!oZVvH}g>_Jpj7y*e{j41q`RCcU{uA>46DO@coR?#V1wjLN z=r5ojGi~ttusW9Lp2)}D$V?HP;ZhQSl30Q;Dp=AK-$3Pd3e=Rk@yUWf>1ZT*U)mmo z0e9N3Kt+N~!edw}UjUy+24`tDgOp>c2Okwlz~v`nC&Bq!)U#7}@C&^0)4apf)iQ_m z_tl8HkGeByadEK+?>{Y?VWk+2;Y8KJ)=0gQ?xbWmqbigtS0yxb33cqjD}`cyq$MKd zG>zN5{a)DlTI=CH;n{m(kXy~TWyuJ7URpP29TQFu!HmA25De33%QOts>c+fg9{`43S?Ce@LZ93r`-rf~m=9>}q@J$>##gcX4FKX4{j5hCPxQ0{End{?60gn5ul4i9>La|oEqSpLM!9}ZGY|TA)4T7LgruU zJ9`sg7MJUOg_S$MB+kyAJbu zAyMv^oQo8diiB-dLL{-853x~a4hoydY9+?>m(h1LZwj$%mg&9~dh)sm9#a}Lf5Gd1 z7Vx+=4|`_ddh?9jH$U1D7(7j}fbagK3F+?SL8U08SrjxpctTkktQTske9kxjkE-{K zhVy-+Mx%E|C+dt&5TZmIjKS!gh#*QtbTNAGqxVj<5ke3pdWjY#(R=STdhg!(z32ST zTIbU|A7{-o>$>;7%e9mKx|50LuKfWXoD(IQ%G&i!?I!_8+TpVJGv6OnC;Ngq$Qi}JajlQZTxGQZW)ZD(iV^zqE8^u2U&zMkc8 zmG$+YFACG0*LXSOgJF6F=pWr$;!D_g_0E%QjY!oGuQ3j%is4Xe7=K}vKGlHva&!vx z&^6Sw%7=M`4I6)d>zytE5w&Pmjn=7ct(U;f6BEbz_KVO&Ve_cU|79QrNMOlG^m`3n zz9D;qu(=eJ@`|fKGc#E-LGhpN-MZ;Kb{!Be_tr~cM!42dgoM(s>Az7%;Kxjbe)Qkx zwU)B`?!xCM{0@=%^ixl9)lF|zmy6}PJ@y~RMIEVpK_MvCWCrI2XAftx)9^bL+(54oAbwl{p=(z#6j|vy-v8ZSV}M zeFdY^lGxdQmNOV}02H7=&M3l}oQV<`1%!VQ0!P(F`>?&46LtjWZpe_v)h9$t2g~q^ zUj{r4yY+~BqIQ2K{~pCnop!O`ml|fLV7CJzq!cn6RnDtBy|;*xfR;8nWoBiRx2=nx zNXC4k_@CyYKbjyAt+Gzu4W+=}ysF?`@VP59mfESTsraB6|b zUc1?Dzk)H&=lU$YT#_WYEY$QtsOCWa;=Tk(jjB2OF>&#)C3o=U9zfiqSsF+?Vi5g7 zjFl4vt7O3D=AOSNUKN6zha+l+N5Y#b@_v z>rXrV^*ObqLtSW{MnTOjpXtZt@1WASIyMkv(t+%lP>pNB74%5J@L5*U2Lnyf;uybx zL_$4X%L+7ZL{OYciMaV09W;V7BL3$aJqv7dD95|juq#`re+{e7m6j+D#UX`zbIc?z zI+?&MeG!90Q!G!KOxTQ{x=3chLAIqNS?GlRL=Etpai>OH(s}aITslKN!*s;E z5U*J3obEkw4dhyaUN{D12+}Mte{%oBZcPP_c4Is6Q&Qdr_|rDuuS9m%(U0!u_73u` zu3udjnzk-#jd|u`Utfev_)A}8iA}E!$Cpb-9N?_Tqr|vWp#54F^i(RIm+WKwYqkbD zgdc%uB|t1r-{LgpUmh73{NQ0gzo9UMM>L|Gy@@JkP_uE5`yxi+1#^Cx&`%_FzfY>9P9H!a0ggi4DkZp}T`QV5%(bZ#Z!^irUe${I+Q5Dj2p|6_>0(XPe{rJ5 zT#IH#UPSqpB;O#P5OD}O(pF{uc4j>!Q_IqXZV%%2p6(TcI9XRR%HiTOF%^C_|i zDfM8I-PK$QJP?Etz+f4!d{MW{m;{+<$_Y4L-ov? zA!T*Xh|H4QmNr}C4R#ue5exENb+btrLm%p>ZSo*lO7x8MH>{AhB`evu&GkM(u>i$eds z)y3Yy$G7LHBe5rgWTOWt6V%_G(}%QT`nS(P%N-hmtbeRO<_4T=**#%{64HhGuatm^ z3nGC*j{}rrgJ>Z$mw5I}omn$Q|E~C0xqVz?(Muz=*W%_!p?CEh;r;hsmD)6W^B#U0|e7yGJc{e3gI&?6#@Auuz8UWsX#UV7# z8)PI~ql)h`;+^hy<@_OR+B)_{KZ(-GYdnqbQr*UplYdy-q4>5F<7%wzEj37Z@b~4P zKbvmI+TQ-2#6mTU6#^^}gsk_4y;7}mUyjd_sCrPVHSD4A z&KXG=>{sL;Rj22&C!I&VBUC&_d*|NBR~9aJOew&SI4106d!)}%ZsC<+ckd1WrqT%w z0?cTW6>yOwWaF;T%iT)j&U1+bNJQ@(nd$dqgW}Y{tIAmKw2vk`!S}4C*LcjZB@cKVCCzof1VO5r6wOhv!D;Z&j$fwb?ssCYwa zSnKD%%^x*-P9#}0?Be-Ib)3IV92n&W_(UN|=j_H*?|vmq-(OAN^ejK}T?hqVQ~2$Y zwH7%T^=vYS(dc~)2N1SBC(QCL}3;0{>0NhGSy8K`p0p z^$GCekhXMJVldC&hVV<_F3M$P~rvp_^q$qKU4+ zOF#|PbWDPFNza@ZbsXcb9GPbcbHt7_ztRG>{-LnDQCpy+=~^84PU<=(T-^AG4R4m( zkG|&ItlDho{h2%zYpygd*B&s(1|>Q%qntzUmZ4vL09Sc2bmq!je%i@JiuIk0ze0G{ zuLlfmbx7bw*a>yT)+sq;Q0PBHSpXE0Ajoex&|(JzT=smTyzh!1;(a>n0mj?wQLHb* zM3k?x##gv?-Jl}kAfes}vuCmh0n$t=_|$Av9~d9^+cV?%m`i7Sg%YCtfgiq#sw?br z$713JGiLI3WUwV7I1D`kRysmkixQ2rn7+vHAIUVzzR)1MYv$CR7VDUQ^D)rrdG5Ne_Qwln=m;tcJ(3Fe(q!Pgz?Nmp90j9FhJwKNFZgw~QUOA$0UxG-1U1z zf6^MGqDIT#>l8XMa%Ah75skK_l4q@w;{*4%!_mKS2@86EkL{Bi z>u-O8U#r1sk^j<1TQO7IzEZ67OC-vEqDHm>_j?!pKQEk{~%!=zb}GcKq0Y0!0B2xHrd=!IPpdnSKyH zskN+BFgyf0e#89DhNeDj=T$Zb}dI6J4=X zI2W^@WD)XBp5goZ%|!0Pk(sP7EX{eG(cY7aNkk_0W$Ue#_gV5+)H@L1dZTTprLa0C zcwmS5EvQzmghJUA(!+<`MSb0h5{_%5A*~G_8YyP8JnG{%WXAp(D()vT+B!7t{~(J2 zVo5%~uB1eLeqrx+%ftwdD~3Hv?tl}; zaK-Wu^J~=OVce(X&_hw zIig5{s#krx`!lA`_id8AaE^6uSjijaQebF6Cz(%J+bbDmdRC2dsv?F1I93s_wXA%c zR{(=7$jqRU%p-$>;N7M(jsxa{|a~fZ06AjF-Yo8zid;zkEOxe|_ID}4djXrlrn6{Pn(J_n5|$Fu)UMbzI{I_7*R=_-s+ z#4()fLu=yqY2$ySXq6IC70^ol+n_5M$PKS_8oTcywesX(r4Lt6L5~hXX#g=t*O~E#|Oo z{EMEp-!Ui}(MBR0{}+P}WnF$Bkx$S*-uV9Xxo#(gaMdnpCfWe5K!Br5?I2g`SJuE8 zcBmp*7{x8Ka5q{6-p!au71g_%u&kfy3*=p7RkQ`CT&0HzZ)Ep@J!3K9USqMTV$5ZA~Z!msU7Wb&-=4)>A8y9s)9)_NsG7J%rj6=rkz zSDBCamWToL5TLUDNxq`^->UWLPsF*BC=Z>a3qo$8=M2?F-Da zGA8*=O0IYEkx})f1CB@H`BLHvF7W8OMs@!WM}d%2e~{JG_b_<*C-sZ}U?Il;rr>4<_0SI%rk-;RH{P#SDam0ac1wB%Jz|6B&kF0R zy6TVU7$LgXyVz}Bp?{Z)e;%NnYve#LG~P$vl-qQKcbsoo2Fv-lpu67-{ea;-_9|?# z3mJxThVO_0vzfoL={g~HhRU=BUt-%=kY|IC&{FmFGVs^KMT);Ks)(<*0yK^OuBavE z>Kt7*PYrr7tg-zntVt|E@8C&(UCW1>{o3N8^R2Ot#5YCD##Y4-928wOJLUvQgQK(2 zNN(2WkY;te;k7KC+8Q07EouLx%KNyhTM^|x*j#*dbD6ymajQ?l4nO%nHgqg9UM+Nm zX_#NgB=6b58S96UEvxrYJL;M(TwX9Oi!n_9TEb7N17QdX+^}R2mxxe}*dRQ2%}TG7 zHM9iB|Hrb@&nvwBYsIQr+I>OGo}bM;nFXDC9KZ?|w@|y+EU$r{^4e5MOw4YO&lV6D z?CGuUV6fY!+G$FfburOUu41DOGi`^xCR6f`oiZU-zNGB&bEO2-zM;sIAt{q+hbE=O zb&tEk4V%tlzcc=uCe>?v{SX>t%i`gVUXvJP)xNY;>b z^Ot>~!LC@xG{6gU`6noLNl7Z>vIDF^S7+qJQC+uA=6z~Ei&Xh z)monl^T3#OY{?e5SRL|-!-yCK!l&XCfwDHQ>8!DY|*J8Wat z=nGbF#MCQDEA;#i=4r)gyF&z5!e%q)x^s<14paT}c+L?8vuauaD^8vKJD1LPqp3Vd z5x1bTJS>KUJf(h_kvs{4h~$tRa)_LH0N>Y;H}Gwv1sv=UtLXmXT0hhh?J*LnVMb^h zT;{b;G<$PcuIbmop#)(TxCl!_HU*I~$ef?}N3#P}`n zcCOz7>YfTC-~!19JEY0*0}bUSEsCedA=*a)1E+Q3Q;Gq1`e|K_vIw;#GCN-dxMY}eg{@|*mo?)^qAy2HE7jE!=+ zlHSvH+a+u(a(dHN)#vg$h$u|=YEq%(nTZcjEEU8J3qzE<5*Lf7;`OsK!hlL}J;DCz z-)$G%CyJc*;K8`VrwUId5X9O*>A?1U+#ck=EaQUW)IObZ3)R&E6Y~Z`O1{fG~Gyw-Y1iVz{ z>to9yu64>sRr)qo7<0R{J~!MV{=50D9sdy~rH`Mgi{i|}N9J$&lpUCK%4O%VB~TVE zTix)uqz#mgn>pNiOzrd7sCah!pK1|=RsZJyg?$^_?bkx=-kEkDjKb;ftJ}NOl%eWL zG0h`n%dxP*PY{~bV&Bt~GHaKsC^J`&LSkbK*{?G;{}$FoS@T4Odk6YmYz`YyVi zQ$n-49>~f=uVPVdf#^;W{}Y?C;M`kHFBv-`kKIz~3}6#06Js6{$!Bo9iD_E7vIiEC z4iN%6MI`H{{g%2m($yzx?NNr#V(X~JUwM65>ef(1>LXUMZ(yr8hF&~Ooy2c%%TQ`f z)5x3BE*;JX=efe5;rsCR6`rR*iy+4_`?S)<=M5Sqb%Kn-3*IYqVXPQnO^qg7Jzcp- z;^i&N0Eu_S8Q{Ql3)t}cTg4r_F)Rp{+Ob##Bk7!Q<}A%N3(^2^(Lwbh_h#6(+le?! zI)WjX_wtC$ojj;APHqlU=luj4pP^tDZh3x=NJXx$*h*xze}pOS0f{1I^!y27=mOS?P=wS(*1(R$RV3EQ(q$;x1Ek zCtLp$5E=gAmdjdcUOhf@LM$!~`G&IFqSD8I8LI@Y-6FPNoT=_Ife2`rN_P9P`2=rY?OdLD~-rL$U~Ew<$YUL)%}S9(!? zQrDE^LqHVk38h$3z99;@<#we@r14MipnjN&G z8h{0KswU*~V81;?Mfl;T@w>UF})tP{9@B|pZ=R&f^$nv2A zcB6E1oIV^4beWp^P)Fr=-WgA)U#^CipX$RUpYC%{m(_FFCyHTS7%88VNpX3v+mTk7 zi3wx)W|x>s+j-1b8u;Ws4>)bmz0(Qb z*%}xlp1Y1;fom!h?Mc4wpZIvHL!m-``jdwwTYWorb;?NB zyEmY?#CH${Wi*beZAYBdohb7e-e*WUnOw1eFsC^h5^dUTdsJ8BSFA?p3&Gz%6>FI7 zbN%&buQ6+=k@JtX}!z&7vI14YdqE~RgE1@cegfVVd zI{__0PEfhsGth6_MAI%&?>8tQH$slF3rZqv!U7 zdl6Y&MI0ohv*o{O!j??}KySQDUy@_v<(F|@#94%Ekgd5^Yei70z*rzIWb<_IPYslW zm{T_tOA5&O60Kzl;W5vrkkuL`3PL&>b#T}*OQO+{IPxsA#a+hbWl-HO1F->XpT;nL zmqekQD~k~XnNMHSo%4qTR9mS$VN=bpXWZ-$ZQ}APAms!~pi?c>RU^#YVBjvpyATL6 zlAEBZmDN@GuE=TZ-eI^$_*P7}QRzE3BxiN27kGjDNYfdvxkV%5s3p#E{egLrkXaQM zyGZIyoM7gT3#(1MKtyzM2-NQn`?Y$l{fWK8spxR15B^|$x483{)y03TE>D(s?Id3w zwBv3p$;+@qEE5{S1~gc1-FRG})|cud`X5KXvseXeJZHl*oBN(e}^ zRXO#K7`j#MNfPL*X}Qb#Y7!}gzBVW<1oqKrMU2=qg}jnet~+Co!Pk~E58E|{D9K7l zsFn0yHx;y>P|c-wzhrM9$FcMXDP#upT2R5ELmk6|X6LbhFee9_>6oWP>U zk!Zlbm!8ZMilSxrch{bQJA9Zg*_c_;v5V-H*k_iAl|W>|0)zsk;fmzhUFUCEm8a1r zzLU!lwKDC~sGP=sK+NMT0}h@=P>%@8MvCcs7tjTmcBK(rtXf!0aooE9xIs(A_IM({ z&XC(qi{Ak#tq8XrcJ3wbmVQfViZ%Ad6Ey;f{6S9W^%g@pLbAek>S1#d6;lfjWwA4j@?Zcg=@^o2cY`X_o!M-}lgOL=d=&xkd51qN z1!+{(X&*cu=psn6n8cxBNdRU zsvo(#VyHc7c!=adrv6DQxeAkUXS>TcVE^mc@S|*_|3BtJISwtJ-CCrNt`nx3_MSTy zUvB+N!!z)1P{8#r?hm`0=^(vX;kK8Qx6>F=B~jW!T&_^GjU{iYK<}1OE;MhbDSwVT zQ#c7J;?yKrofCbI!kFw@uI?xAb-0G)qBkYY$dl`r(66rbob7$sf4o=e0Ix~98G)2w(>CVAY}wqFAxkJigVE4 zb47B7xG{`cz}*61``p%SWWfrQlw;@OX0^15)p$TlBog)&%Rk$yNu}zNdoC688*WuN z(srkV*uGU=a2vr_m}3_Yb)PJ&3cG)n#Q<~*D}lm&eVjPOLKz8__Fi<<6UO<*y{Hsx zxpY>o_z^4x|reum$KwWiY{=*ac>;g+@VkN^F^7&%$^7f zAGYo{1vQy8`ha3hFGL-=_GyS4?Q7@+(dni;4Ajt-^!hmA46jOkHs$XifVEZ^s3 zJsE}bs3F#F=BLOG!M9g1bC^RY>o)Et={Q5r`yX9CPvqTBj5&@4s!>DF z3rs<^a=H#$G}^j|fKwu1F7qzKJD$Ilwdd+BUemv{5ZJO74aN*y;w!~s+*dn~l!77$vw6{iFm{ixcp zS?Gqc)WoD(2A+T??KV&tQ|6jRuX`8h2m?^bKuiRad2r`LBM{LqhFA3pF11B{t}38 z>2jZUYAN3y#qtSVoKtu?AqJ&iJMn^qn&U|K?4$1<3pZI{1vfG6hdz_z;YzD`w{(sy zw@aR!A)lXU4&X^!JFeNcbdM_rV2|S}Z^k7FkGl)g+-Kw~DOb6&UQt$$uWh^-C#5@= zIHHMU;D3%cR3^f`g*Nfhb6G=SxV+_5iH^8~wjTbJ_kZq3pYE+O==ib=q!&7gE2YNn zYJ|VE_~&TauYD~JxQkjtX#sD3toZ(q59@qk%uJWV%5?BP?5x>OhxL}jq_*wk zm0BJ@T6UdTwnFQCh{pMqw4Bbc$CQN7jugAyV7~DQ{KoRz^}{X}Z?oaDdLrC&H%j;S zAc03Qhew)(V#FzF^`pqm*r9QO>N&QkVG*y!$WT4rnL)q)W2)6Df1g)xp8?ZB@V9!O zj0qnK`{C35G?T4AqOEf6_Y0)MElya=*~pBFaU;LJmHZN?8lCG?`=CaTyQ4%+{+3vY zTY>WxCG4I<`{jQnxN5n{f{)UdOZ(H+XOd@kt;<*CpEN#Jh!;opcus80RNFO>V<-a} zSX6Z9iAK_h%IqT&B#z}V8Y|nGsj($BDOkGuQgB%#IhCCX(Ri#Ssy=8HU~9ifkk?NT z&h^x=EqDCeBVKBrp!XdlFH!62NA0TReN;2OWLw@k?bo*L%UFO-sX35;O3Q_}#G79; zZYd|%eD~7nEc-y?@n=W&E>HoO$l~a1tjrxhA;+4pd(~xZ8%|E(900=<>ZbpA1X9P& zqvYm-B~YXtPpz<9oF9|*?~{HFOAdJ{p^*N-Uh2>B6*o`j8w@`{eZ}VcJapni^%8qO zQ3PM!AF#YYmu2Osx}*SwkPC)jXR=FVj|&o6HBJO0hv>ZjAOq{wB9kc^((=?iOuN|n zJ70KhnD&&hK-J?!C&2rbC%Mj=+^HNWAEOQ53^@OF=>(1sQXoUj=F?AkNP`;Cmvxa& z(G-{c)TRnqw!N;Pgf!}^=Bp$CU^2y~2r;I@ipgg2Zv0;zPc&(b9Jpnq(aBdG38kbJ zPeHs>C`$!kvl<@JN8{^GB_=+@*MehN%)t#CxLAa+eyHfHIi0Z}Ej3@8>q3`Vy1%=8 zXpexe{7ZqWeSfJZSJN0|t6{OQTNXum6uNx-2mC?eSNy6oDmQLZt(t6_PqQGekJ6s( zlQWnHEVgN{2@}X!CCnZDDN{%UTG3|TM_=Plf03cduO>?|Os>%S${vQuA$zsd|N z)zL4tuoA-L0U&QsEs_Q{208(iN(PG%DZe;?M~v)~Ez(c3CoVFFwq(6e zbJg{W?UqkGS{MKl0t6P_Y~@ECn;z0+b`kYq8}y@`tTD`##tu%}oD5nS3ZlLRZ=nla z4OU?}t?End0gl*5+;L3eRs7LMJsV#>=YM^BXS8sRxwNQA=$@aR*bTH!^r-&AvV~tn zRZ*d~M^G{US>k zX@S>{4av7~OoNquK$2-zH*VXrZvqcItnN&s6>A@xcl=_8<_=v(=*%TRMd8lt^7}&+ zquan-bKT&1e}IHzUrosQ9mUr;vgsZIk6?H5IWH_{+70RMN!qur?Mgc5&{sfyH%=-( z_aqEQh%Pff|Jq+cKgnWY5;AI&e2+gDYerXH`(sieo}Gs|TR}~}ihIM?8c%1@!{7_i z2@93utCfTBmz#t+F7ieic`pui_j}cG66GhN+$B zugp?S8$I=ZL?-{C7WiuAR+N_^sd2ijXqlF03!mATy?W#Jwd?r?LCIccv)}jKgMwa? zXJtpbjU-|l@p8ms6dwOQkN`L|xW9bFNa5Fcaeo|krN!!1R%vlS`a0RKAlv?^FJa^JOX8_LMSeH=i8Pe z`NV;Gn}4nkD3`K%Y%ZeGZ%Cp3xE4*-$?gzfwCGXK5Qm3%nB!wd(LaafW{=d-6RKAw z$J~l{(IYPs7C-`e2us%8F)WN&U892G(RaTnD&x&#d8Rz~Be1^s-T!v@);vt}TNzm8 zV!>VUWQW^^&IMT7D8)`LjaVX^LlYpB`1pPA6cuxHCtfaTMqoA)OyA=#eUVKk%jD{i z!km04Sz}bq=M1}J#bd@(icA(PD91g-6nLR^L?0~FyFq1qVD2@KyusCCtE0{H#r}lm z%PbOsdAjQPq8EtiBO$*A(&7br1zblWI2y7yxbN)}Ru~4d+@(Glh%#V z+F2nD%C&5kw8{r7!SQQ^=Y+WBk`)%~+M3eFltdcYVj zLQxmWC3h}{#5Ii3rd=Wy_#HIG$)Ndr-Iqky_vN89$KN!~hjKoV^^d(WeXuog(qdZD z&Uh>T;MXWD7lqt+@VipN-CMAaqs*23=JB|b19c@4{|=dyt5pb>nbp^{*Cg`RRpHm+ zYjw+!(2nj@A(Ey9oub3rL{TiFUChSmMuv^pGz( zc!pSJ84as~N#*V69V!x>14W{C3KRzH5n}9g7GA|8o9Q#DLP;!8gTjkH8!FqlgNXDB zz&rHAjxtm!&cNsyD`|l-ut);t5Hj|h0+WBIlir~6{bvBi-mhIEKz{_6 zoE_#*6=mMdA05L6KWfl!PK(@su1GA3%M$vkI;#I%YDCubyy}inoO=%6{+;5(#1_kn zS0q?4&pfDD>n#oZ#!zh+izhdC3u1v6u+n9fd;R4NxP$2A z;F*pZ-T`g`nxU|~5Oh=K1Hj7(@N=A3fiFHio)XXTg%A&>MDZIx4A*#fx&_b@JM?or zj*O6iB<3ah6z@tFn0vnC#n2A#7x{~?2FvvuLI)eTR$e$<`m79Gcl@9aR}9w5-hXI7 z#<2pP@)B*Zno7J?G@lx^MyJi&qsEdSXYzX|&SQ2#x%VN0e&O3~*GtMRZI3wQ;G5|u z(L#e^QmZSovJbV4%wKVU0BtpEzQhHTRWjlu<5O`AZA1K*kG}pgYi8yiA)in7iKy8U z$A!jS@8MWR(s6FftG1?+XODIvhxt7%>&c^onuY}2iamP|v#F>_wh?bCNsP7h-&1hc zvK=AqMifk-{e!c@m*M_tjY7a&9cG%@g&>&5$2-zd>hUZki?$I0_infun2)q`2&Jn8 z-1EI{eUg`m^VNIx)At8fFwOgSXXpMc7anWC`d$mu$^Bg32$tYsqqc{}RQG}SyNAkT zyJ8aAYr>l~MXe8E+Hwe$5I2||-Mxpx)V#vBLDL$2b2JzGhW5G@&&)%ZO%V@qbUx4J zCk_tSqu}5^#i$?2wV}y!-1S6mHd|A(k`03vMlubn=l3k&Em?}Ri{8e)=#y=(r5C5G zi~G1l{u$Tr^OErZQGynKln2%4cK8d&E#Vpl#id~Dri$nbcV~O~W^Yl4rInAxxHU(u z2jI!iBsum$**LZ(+wEZkGITK_yykWs0jx3gQ6qebYs6Ei@R5B|51HwUwM@MgcJw2| zKQ8VbLJ;MIp*7DK3L?Z|NT+B*3i;d#S(~w(Ioca|o8stlllV|2@neK?!kQqL^#au5 zUx=2}h+@;#=aHZc)9pwKn_5B6SHFg)V9psU{Mx!71vZKCfVIBn&9S*z>WCDHPj&8i ztw2<~%)sLGlx%7l@4(jhQ%*bey`uFP89NCMv2~~=UQuR69zWaMgPtm9A5Zu$&fGU_ z<;Z+_I+@QPe0eq1)MT4lyMjN)kUpm*wqNg0Y3Eu-;-Ii`Y` zWtlYYptYhKwSamie-r4rFi$C?j(?4wVo}YY>xajY`4Uz3BYgTIZ=ypT@f^+?p_sfE zS@iw=N38x&=3mSP813JoEm95^Apy?umk7V0tcrqDv9IZg+MPcs`_-MTVs=uM+=_TU zjzg;61p1(_Eh29y{q9tXGo+6#+8&md-sO3nM=%cebG&?L=KQn1Bbi^rg-6n+A#q0| zZltJJxjHU5WN*sx_S375-!Lb-yzq2CgV$D9)1!@`Dww_k+&>6_79LM37YfyU{&z*t zY>K0iG?O>Tgl)#uyh*IE{a(DE0(Ejo&&q`20l$+jaEE}?#jK98Z<$Snp>pSX2AEVK zH2Bau%^TXtB7@396$Z+IzkR2#SWg=ts7Zp1+4!sO4IdgDk z$M>6J5sBrrs9vLZxX4}0`q1*^l(yL99c{CFY3`ssA=J!-mehyM|BjNEGQ#E>8@${# z7@M>p$fX}Is0pbBWcn6J#PUsPZkZ&5Wh055b^J!=w_f=>Ki9#|dv=?Cf1pF*=^y1) z8JEkzc9WgV4d0TzcLD|&ys4Z1-18l>Dylu~^_*b`B=61yk zT;L9)o5b8H$oEbMIhfqlCfJ_{-pNPfpKW19zR)E64Q<2)a@;msZ%3@|^omAHHjpM7 zvc6&!le4b>;Rczd@6up`d|;lFo#>8Fn!~H`B@&hXQ+o|we!Q3HyViGZr9){7Pe8x}2n0nd5iW>JC}Pm+T=fk}A? zZip3Bn-(H(hwe59np^$qzPe4Gcn7TTOjz1s^0-|#^#{W2_-3V);|8>mB53$X(uc6H~&dSIr+o z!jMA%$ZvZZI*ve@i!P>&SLWHEaWFoBZw##(*BEilYz~qt`*4k>Hn#h{=0Flzh{Ew1 zqrhd8pj?us81xpYj}g1!(yiOw5I!_i_y@0}4(SH_VGA`{-Amk{MrZ+RIb9;Y&#~&T z^?&*L)+@oSIz%@vulP@i0hQ;z|IHm8U(3Uk=_To17DZwBOFeZluZt$mg4rURzFXlY z9|rr+1DX!kO`(^&yMxPu_ra}d6=m6fsWLm~MaR|QL0+hT9v*;3$&mLl&{Jan+jgwlW zl1l3_+6T@kY66)M=W|j`qfFaRC3HsGZ-fw@{S~mMqnqYzrCj225C0{( zprneW%>TYx?KISZQ2I8YG7jaFM{;c@9L3vp4j&aP>L6O279pOjK%jY~09XA?zrfZ! z`K_V@zqo7x=r=Cc@x^d^=aK&={oS~?lQV-r6k;ggnVC8~Yv){i`FicHd1Z;W!DMxi zAonTVXDJu}rO8u>Z|*GH&5&>B+m3yiSk7tCGiI`Y|U_Bn7l0=ryOr}VbH9o_e% z&sh#VEKe$9>=0VyEdA5p1K5+=zXpRJHdG|I<(?OrPWNman>AT{X0 zB~IeY`d06ULtX)oMDJ!9ZwZ(X>=@~>UbC0w?~#fcy}=C9A?uh;?__lGN<*yi9wj>* z$Tum$&X0dP;@0Xd3Lp`{2BK=&&SZWJh_Y0{pJ!NPfGPwWJ;hSE&7^y>H-8Y|igj|d zf1ltHK`}%+PeQ%`FgA%w1sotc$dgtF{d?|63xpsl$9Q-EUG+YKF;x#jo`Eqy_n@PT(^Xg7j7Sv5}R6PN|Z36UrWr%bEYEP(3ZciXQ7!>3CN@M zFg9Ir_frD|;r?OBkX)jZ3XPiFq_n&4TAAjjKS;@hw6xJ4MsxjZV*=mx%;xRQ%(boudK4pON;6j_BU!%Q4O*wc-V#Lgw_Ij&lss8+nBI9l}^#wC|+4cm7zS)+M8AvoM9C8g97V+;IFH5*EzH z*sU5OxGqNx3ur4rH{e8J6riM{-nr-#FvpZ!at4cXel+AGxhAm|5m)MUQ`|Le`dM=D zw6jB`T4t`VjXqDY(;&VBV@dr{2epwd54Gd#PnO$q`%A_%5%LSfO_?L=Qzr+`@u>7$ z3AjM8Km%X}b;GR#YUiJ_osJSK9E?t}2npX<->p=df`r+|51LQJyEIa94+1E#Cgu%_ zt8F6JT&>d5WaF%RF?6?@5ZGx5duAaX4`Gge#)8WctO`4W|9Jr(2#cmiXTe;fVrNkT z4vDZc^bb?843>~+uWi0W10(z5;hze`ZnQrB#a6+_sMY>CQUQHI)~eBxT5a*i!wB1g^iHHX;qydP~Cxo!RB{`F*MaQZ5R8d`NA zpSY~)U*geNCx?u8hPqZiOl~VTVW33nR_Q7>DwM9@Sk32_@7+< z4sZ-j<09L}^uL#q0?(igIj&s{S|~Ryj2@lN82H0lTf+vpwO{7F{l0%@;Qxal(c_Zg zi{ii3DgJRC#gQ9E!zboKQErHkwH6c)aXKw_tNK&%6icmH{WDd9yW5k->8og~;*ncY z$UF;`l&;^8WjK*g_m2rYnP*xoRf^}n$xFRafj?C6b@m_g{`^o4!u4pD`LRvvf^W}m z`EZxuM4^>x4kwmABJc7=YPz$G6~F|5WPtHJ%UD6)eqO*N;C;ap73`)iv{Xzyqg^axLu(dxuMjagY5cNKT;{7o7Dx9$l0}q*e&9nBOcX%r)@DO z=w2NkP6p7{{27{0oZuWX}a=8*5~ z6LPwIJ1_G7PzjLc49ZI8?<#K>SXw?{)2VcSYEkKvB@E)!APk%lFOblf`ctAm6ix7riF0AsiZrl^FnNDIt5?PY1msbt4RLUT)`D=5rL0pFw3n8Xt z1gBC;jCaCJQ9f;hWF47@RgUlb&R(|{Wj|41!$aSdnuwA7_WZtkXe z%a&-=F&Im3!OBxN(vv+y2vqCWm8)?jls4qJm4f>PcKmj!&zb!OvwYy4Ypr4So|zT2 zaXMtS746NUViKzA*LuKvdv#(j2P0+kEnp&R1@-WaOL)cEN_JwEZt58G!RY`Mt#M6G z8^NN-`qp(!)r?Fy3yuL{H*N2p9Ko1uT2n*9B@KhUCx6LXD2d4`s@YN~;R|ps?j%_#vrCyZlq_%1xFL8gblg z%9!ZYJAxtC=<~&Go96A9-l{S6Vmd#tOQg(lQ=~xZ#wpy&kybRTuvB2+_339ip8rGB zTLv`!c;DkvGD6sBq_)u@snR({*C5%TO0i#<=Kte*4E=dVV>23t+?uP%~pWpxc zXixTNd%f;G_uO;OvGo)TJgXPF6f^e8=`swoY-{K#%2|LgEQC8K{jrmad17d-`4T)? zbaj3@@4HKJ8Gwemjv;oBo%)i~r5`$+wx!=Pa~id{heTRU(p~Pb#JvvTnz+(M-+=QS z8eClL55K+}BIS9%>5(@PAd^T+Mo^v`BfCwZ@lx|G(+!FFbCVZ%_UMD}zMvtVyn$)H z-(<@dij{$8s4{s%AFET-8{6ehwL_T#@K#tdhvo?S**6$xOw`g|vo|w@DuvqS?k2$sap?ezn=qoi2AKFK5B zbIs%g*qqLvvP3s|lCC4Xmr}l2$E6`J$s2n|Lm`KvUC5zDw&3DG_RWT$QnV`;jPVq9 zv=GAL@`bpvx(IhEN0;D5`OHX@$`-YS^KE-g{*iMm(6lT{MUl`Xr@os z>!u)-3CVhxzeAVb=D1^5iS>j8Kk;Aj-kdN8)5#9LolvZ;z(}Vu+?$Ofm(MJo^%P#!)HqIY*N6_M7`3El57{;o$14Gf65eFF;3br%ir1}uV zQlgXfrWR?tA1fVd_rkvO031ML^kI`UX?sM;RoGCDK}R=56k`pw>5W6YCbaI7@h!km zMX3U(Jw;(bn)0?7<~T0f^_lUoetKU&MV;46)+)Qlo;_oa=)?x3!3+&c)`Q(XZ@0@m z8`!%j`abs4bhWklEzwlThi;kuOycdOOj0GuHx{ z1+}N7^(S0%xzkt76X%^C=0;_{NJGhNv$uqDq5D)1CTU_iNe8mowTl-z=#9L79)XeP zT~Gj$74+gAR`@Bu%jK$*|7^>||MhdmiJo6QYGi6X*6!qm0TCZR5G*eQ+3K?Ybacyf zt(3KLKi*eLg?yhn9y|)0KeWKwyTF3CL~gmMv_6>~NULK0hNJ0&`?HByQnWo^y;aHU z!DrFyayaea`MMw*g`|qWpW-)04eey_utNNz2dxDTWz*yMmNk6uBHI4`q=5_EYaLad zQeGY0cp3bRo!4j9UugW%Q!6SDI7Q}Ut)=rA1ou292%i0K>NI8v$2>&iu@ej!iSM;o z+0Sryj}V*di=&kDCIfu8GzC zcd!>BCE14he{c;oI+dRpqX^Uo?l9uKM3={h7c$bBxD^d~7 z?&DUWna49ZL{5>kX2Y%!VBy`@#(AekhRom&; zwp>M-sxzmGxcIoCyiz~cx)=vs&w3RKM)y`!Cb2?0#G5$FI8Uz`z>#<^I?B_S=4AChFq!dhadnG1J5+f3Wl!X0tVt@PaT%v+@J_5XDa zrIfowIb7h`XT6dPVi(a6I&=W-bHH>7b*2)4`(@m?C7z z=~I3LVmD9YLd`Jg8b`0=!TaDP2!|oLNBKOZ(8=CwZ<=8(hb0_U>9of-v{W?ves!t# zKHx-Dtnpa6`1*MXGO?YJoKT29Qtlkgc!>TKQG5L1g0G!pbM~& zt6}D*mrtQdYn9bTz6iq7o;R0k!dzx!(kdw6d#9?vjFf<^7k{Klvi3zw0Z8}GAak?S zpKn34XM}wAnl~;pd!{44!4{`NEw%HU-Zq!9AYbL(;iEmu2ZEf3YG&7l%wCPW=U|H` z5Jm<%#>SSRN;+>8cRaS{L>Ca?j*%#JlBSd!CGp{c7dyx^`ua-kY~K8jgx6 z4>-Q{J^2^+w$US9=pbl}ZIWbCV%WFUMfrhPT^uf%f+${;BewKqyP^P(HK(5C zN2NZaYBj_FoZUfh=9njeM=Zg~XgQoaPLsREaXz?cNUy)0dEsgra=O)i%0|L&3j*W# zy;gsfz}rI5RoH$TM)vfoLM1VB>r=7Ev%(q3421*F%02OQ_gcVZ+)1Z}_x9_j8)`N0 z@)lb{Otu%ej9ps%XaxuG)^Z$?y7q?=iAP(hYT$+N@;9RvflAcL*(=ZeH~S1bQjLlX ze6N4)`^2yi_J;X%xu&}}JFgHnJ;P1JYziP#)CIOIN2t`dPq!Xn(fj2=ep8R$lMG29 z`9VpCq=vG2>TA;wkzm!W6Ou+D)*_x zEyYQp_T7QAkJ1lfFT}4Lur!JzsW~`%y;BuPG_aG8nSKp60&qXh#+WJZ;JaWaazRu_ zSrRp`>qxRz@HLMVB&0355~op1SeH+SAHof<@&#LZlR#cO!c5#C!w82s(#{Z+(E;sG zo8T>Wj%9h3ATz9!c9zj~qiY%ej&@hX{CLFp^I zMw-cylNGbo0fTsnR}mfg9o}j?|VvIZtUv2ryiit)P%j0|0LOV z(}Bb6H+bgwse9EQ-@~4+8{8*ixAINDxWT?V>dsF^Iycb9n!4<%HgM(zSMmiB_E>~H zsFBUYb(^;(i`xQ%=Pv>NCj3qq^Ah0h6Os4GuQ~W+kz6YDU}1+}#lfKBysu5bjAxl( z9TORdbo*mP^OdXp98eZztiWcXmDmAH5>*MH++oD_A(MRh%R>V&xWtot{yYzDk{8DR z4EiaM@hXhWxmo{%dwcx3$H={5jWs9&TYqIAxO|oXMBJY$EP*MYnZ+hiuYM>j<=4ts zn!2*1%0MLT*d|}>7O*8zlW^fEB_XblT&>o5%Hm&r6LOZc?>u3!q9x?UF` z=_v?FaLJA9B2R2nd11t&6js2e(Rv%Vp?7_uIBc17L*(8D{|5;U2y{L^r|Eu;t&2GP z4E{rSdd*&SC+fTHQtuxpaXuKlS7I!ybE!!fo6nE13GV0O`?r#MGC3e## zdGu#(T24@$I?OcvQ}#7LrcyuYf4Uck93SS;c@?IueI%YI zWT&XZP{${))bY%e;ZWdXl#_7;^P`>YRBETm@w)lEYUl4&CBXts{{$lj9i1txd(3>X z?I;kx0p@x&){TFR`oKgeH{wI@t0f7RdhpA%P55-Ds$}H9+pBl7HR7&IA=;#NPGE$5 z;vZnOdL;g#lF3VOgP($Ap5PrCGU3)AX>C|Oif&Y^ju{0W(G;8wn1$dN=;s5ZqJVrN ztbY!^#-LjqZGW@4l0rI#cI*W%L68J%LhcfTQBOrx1)ZcS{dkiINsx-9Zum}Gp3jP@ zG^j9|mbRMG?{}hz_?$?k{mZud5iaC!X zIo(iKPGJ;Lrnlg!Kq!9q08EzSmsc9dqM{FjPqY5USZakA#39jY56)fRQ%1==n*I06zEw(e5v(_WE@Nf~hu7Tx74DuOw9bI&C@MjDlC!(W^s|4XErw~@GW$_E`@s#pTElI zmxRvILnaj(-Off=zUKeyWJFaK!~^<(GGXPZ(n^~B8cGR?@oa(giZ(DV1p$mEB}b5E z&>DA*L@YO}*`)0>*Eg%JR`~_sC}SeSO7~0HOKbs!GX?3SL{`0Uc!+>ZGC)yHi@Q0p z9Q~*prhQZYdE^(|l*y#LWfDh5*2fjhrc#I87S*0I>4`!L^l;=-9mF%iq6@5mc!p+5 zQ;ChUF_6Hcxk0Uo}y;6G0XfTbfkgL`w^Atobz3T8RgKL6wktM2*@C zN`zNQ)!yJgGWa;$a8CQ>c=`L!zq9$Nua8*UA&zqxtzsf2lOC z{d|IWJ9ZkzhWKMJwG>v|4+X`>#ZwNcP(%wF~1^ylCC z&o>L{CbK23etps7TqyBm*aoj^6#Re#EJZ7x#-eCvi#%Qzqq9n z-YHx2Y$XwuVM206x>u_XZOTsX9UzqQqx-L2H~Uqi?(9QHV{6<}-u~d97snTSBz@O* ze>AC{y_vwO{H>j8QY4Z~O_N$RnVba0%`6mEOLMg?YjP!E?DH|eiO6N+Px{NvPk(Th zgk3h8FR$i`xKAosv%fyab}T9`!bK;2y828QsNhC$p{;Ax`3K$a{3c$UwojCQ9f|d+OV!D4MTnOVTy1 z*Rm#BEiR{Py;w?b3tnC2h4vQpy3$C}m_*6+e)J8Qms29>6X2L-5ems7`(jiu84z@Q zgIi*mY885(*}By9J5`czBSG>?Kk`FFWzX^XJ-{$`km`d$(&Rf2l#ZIA0Yq)s^i1$- ztjA&50v$WVZgbxT*%u46sqMSjb4M>oa3xT1#Lv+R(vqcvzUVOIW|Zx%-@XC%i~r?rr?m4;K|DKv>Wg^XH#F2?YXHA@rm(+19+!DrauGS@ z%uC%*fUpI=$mL*T2|xM@jyyyoxC))vQWD?VK}tzKmmu9HojfC0u_>xqz15L?+-t2x zuEWnvr+mkx@AVA>+ZC!qy;E0 zggfUMN)=*c4VT?25iWs)S+ygnEYpUt^?yKA6^oxGi<_XMnz8tiN{HDQZXF0_Uk5<& zG`Y!;>FHnXHAnXhDyc}fVBesNeh&b5r>BS|%{tvw?5#{ABn;VbkkMGUSd|bMsHz%Rz;fXkJb>LsC4X zCL-K)i-OHCC|w}d=2tgPvnoiB)P!;;<9!l~2~*hzGu5$KSYdrb<>!gwe! z`NAKLs+4st(zxc=xIX~>H%DBq)<^Q23rhPk z;ahF0%l?slB#--5Eh|s({X=%t-J%)JS0A%QO8du=`Y+=cu*HxQ+$(GR<|oDv6FL&E z8|7OJB5Lf!jOYCPg#hZ~$}sP!_fyvALyvzl@cviT#JdevvR+ya`6Tg(yMJ1~T1a~* z4lW@!O){T2qSCN316;i&*^9TiF*Lg;8TQ@y8o>9{Fi$O^{C+>T zN6X^6Jib;^YA(ok|5h-0=Ic8=!oD5k_7r=K6+}LfIP3bh#c3jkKJHGMlExdTiFAew z=a0|+Jjh!S%n^dy1%MVsV{FU|uAhFZ#p{Qm531!;lqbXjfqo|IDEGk2FdOH0KGQ?Bt{$1VqJl*kp*H+V92m$n#)MMG`0rT#<0l!(0KxMsCKlt4ehN)%m@8nK z>;uHe-1X*#@#EzEo=eal|Df+K4270fv!d-BFzO;sTHE zuPV8BeIA!qOdosd9p|9c0kSqmjQFz+f05v;&aD^iuEY6%&M|Y6wV+zf1Pa)SmZYM) zA^IJ$FBBg!x5q@f?My7`P4ojst-9=XWA2sJ4G@*I%GVq z|DP5B{4I;Ii-Kb?K~I3_m$+`_2vL4dny=h~SSY7%+DBUGb}a8K1q!sp6Qa#@t#b!c zIs%paY9eaKGx-c1q=0$?aiDTFKk@tO%OaYl0r;Q;7USpn=PbwoSfOpfqRX_nN+#yI zN5%MSWK*U$8}I!tL42?>WWsZCfwpvvy@coJJV>7b$^Yeq6X_k{-K^Aj)?GXlM5->5A*vs8s~bO*>N$#8B^AiE@WXJ)uJ zXxF{yXOg`6$;fsNuBr}1Jg38frF5l{Fe1IfxWpkw7WXudp_Tyw0n1Uw*Zaz1C;yf; zi12;A@UNaBB_dq$+LvNRUJJ!k0}X@X<6nH#i2F2(u1;jdQxp=kkWZ{m)ykee*2e2! zVe7y6p?m?-mQ^Pm;BMOt?G0x(%b^WNOCq|4WvU7gu zA0$xIV{KdlmdZrn(_!iw|54K^6v0FKkH57sXLbV=I-5WyDdF_$hcBEt@aesFumGq2V@r!$ z1zoOn3Ep%NF$~o-_sa1#D<3M+w}1b#X0NCB95~MH>?62FEQ}Wk9AxX2shB*|+kAFU zO-JtB#RxvH%UHhZ>mw_J9eVbSGvq`y{)gR8xnELxZlXVz)}wM}1Fv+&PQt^#yk+d7 zhp_-@c^QkJb^KNKU1yv;zmAn$>rH3e2_&p{_i5o$11%+!1HM!fC%PT9*I-?@>n_z* z$S}Po2seIzIp)W7Y(x=D7i3O0Vs&+qblUP2UKE5h~x#kXRo$oKqYbl4c2 z(}L8u|GQW|qURat`XR||TVAlWr+{U9Pje>u+XIkqVem?cG6<&@RS=@ctbuKU=z3qd zo_4cJq_~MWyQ-sY6Hy7h!SU6ezVlSP)ajR|>2X@U0xSBg6;kH6+JH=D9S7j`s=_|$ z2;WD;**6ScC-h{O(CXJ!1#wIck)?UeNW9#cjoxA7g0bbzVTof#|9uxf*FB&s?A2@Y zv=d7QEu{NP`s)xGD;L4S7Ac?g@Y}{G!?&5(sR?tW$xW$24#!{P4o{9qMXxTbeN#q_ zyq@XWn|Khfe$27b_bdTFMRFuK!>5+P+j}H_!5&;DEuC#kvm3UO-4?!_#y7@czGp7O zd7m+qPS)jIIqR3hm7HB|cb_^@N?E+@P?IfY1+Z7h(u~uS^xy)@z$nZ8*VEWQ~~`1`!x zi4gn?H)M#mtQR0nvip3rDKa^Xcb8<5r2QFijIjjKje)U=12ceGlqWJVHrxK)LB1bO z@K}a+V=Dqm0a{75N>#NCyng#wD?}upe?o}$*y6Sgy49vp$AEKBxz?*On%l~qwS8`h zSF!)pEW>SHfhSl28u_6`*={Je$T)oK7jnbBx2e<)FH8qWQGYQKA6WPV62QT3iLMKP z_8b0okCLd)E|EaVI38m3f5kY49n+N}j&xHsKt_4ytZ+)35oFn$>S^t)0^4DPO$9#) z8oXoP&m(~d7U(3lgUf^}b~mC1Tm$4VsRF^&X^L8iJu?G&c(-Yw-ct-ZqzHx4-`^Ns@q?eyU9%po|}qfDhM-cUuwk}Ge_OJz(tBi zAdENW1!{dFFW(2(+fkhXyCEd=eQ!r0LtsFJg}cmxloY}~yW^8?#OlY> zOb4FntLeuIDRX%~0#g-tOQLrrP=0F0F@blZ7#BQ84|AK#aXWXk7Js?Xa+s}y^PbiY znBIHu%;Y32g=_x>_;IHC+lQPU?&VSMCFgrPQ!~$=0bImMi$}~dszuVU`qyXl=y^x5 z+2V1MgGOtgcYz5!%U$m-dD3HQR*HGhQbEtkLz0T=$}(9(=HPCwQ%SK}q}qX;g>sE< zj;SOcMUcYnQCwQ~;}h=e)lOp}pMj3L9Bg9o>_o9^0@RdZ)s#j7cFJLJ-3obo*-9xX zwnwt&VoaIy*zdKp-<)PG^U)(Lrbu+|;$@If@C1(cUlK+CV-X1J44L5W-$K^PYKo=0 zzEoq`5`10a$|Q-tYyw1j$cLIYyh1OfH049ArKmI6okEcRPIY=g~E& z@bi|c?+KByShiGcZ2XJnItLGOsnYtPg1aYq4VlFEqr}%YJ<4R3m6M>oBkqYg<*n~< z%gw;`13R&gT-BFFx9UbMzWzngRepg2+dUfJH>fRt8-ZdD_Dz(BFKVUDV|9Y(Ro z8$5fgiL@2s_dR|9l9U+KIF9dR+lP0$?&)^TIfxvYUb=!-_}I6~eCk|-b~SazbqK-^ zyUGctyCu`G7OwQHW92shfHI486>j%%)QK6YlfJPq&=)d$Ba?-04QDb2v#iOcVxqkr z&@<-XwD)I7Z(o4mE~8l_SrdGg<%TRxx*0Y%FQt%XCxOar4xVd#ewr7!&h4@x2#VjbK+%8xutf9dBFuxIZsRbfwxs9 zG}Hbwr2yImjc!d~x^VXPu-8u8kQ1*HxM5T%dq0w9!UB+Ag*<)V_wgib7{o`)lwnHX;a*K!oFFc&+Se0u;(bl{vTNA zJPLc7lKOPo1!DsZt+yP2Nqi2zf_u&{;$>U!iwuiNk&{5Tq)~l+0A@;z!U^@{6&Pj- zX3_w3WoC;)e_0^YR=?4YK8N}-`4x;Z5m-j(duTLacRsO18?F8g#?~E@e5p*l zR(sM;vMeKp*QB2<>f92&ZP?`{SNru>v60Ha(PlfM+j)qiLT)?LtHYlV{IVb6;N zS<0D`i*i_ULbcz>NeJzF-+gx$T z?>^J3C-uOXeclO{FJy;qC)OA-SrgmO2#jenwLEjRO?BP`lzk%0#QX=;{kYbT^Gz|c zW*o2#O;0=zkg64h%;|jJ4-!JfXRw(h(THY(Se994+Hz~}u(BV1h%&S{$FgnRwGSt` zN=S{pW6}5i+kH|~(9NWu_CQg+sKazvG^ZnWV&=w$b(wX9rn$OaCo7`UW9`Fv>A&Kp zeOI?_eEPZPMRxvzM68Ykud4y*3Zu6&&2^2fL})$M!riP{mwx=!N?XO`CIb;aLs9oKL1TEms-`2HzS;JIU= zu0%T3-Z=f{w|CEe8<5Esj!rw6yWd18FXum}>zN*a&q_yTtWYAHaUq;Y4kvezS>{_W z1amJct4^`el5&<&=Lh7%lt_lx$E=aOJG`A3_fc?Fvt1YdZuggU ze&YAN6uwZw8Q`UK1|CN`i9ya5&elN8?#re>x{voUYcrNZ3a$A>kZR_!C6AJB)=VnU zHlmN}_Y>V(Am8tN5Fd$MtO_=NdVFD|4ffJLNk01Q$BKDr7{vrHk}71PzVgP?{Q=C9 z*(p`vlPX}(ZH}{c!cH;zT{ERIr%80cC?ehHc%WykH`f%|zx92YdpQOK!~I<$0l=f7w{5qmJF9Nmcp_sBS;ZN#jx zN#xD*vfsF`C}6FPn?gJq{9nteTeiOLj%KlE4P92QL$HZS8ln}4^9y7PNe!|-bnnKS3G+lu!Dn9reE>~Q}Ax8&Y5`*dg z0iGQ84a~#;Ku|L!=mgW>Igwvnsr0sEUXG(V-Fu9Y3}3XRLzjL&tOtFm!Rt4+H%3<; zZu2a@iFM@U$)f?LgWpyg)Os=8+T8VxgZKqcEu*p5v&}f@dB|J7+%kQpzIjWg8xh8M za08P=b zw2f!9Hw(Lmao)*tgEZJv@Vei@coj|AM!o@f3m~TN5>-h@16kMKgFH0uG>0Cye(r(VnOt zzv7oK4*1e^C8mMhtfFyEm@vVHH|n7{QI9uC2M^M z33mDUZeC$3U5rb|tobnjlf6CJdeQ24Y(_tU2wMma@CL!>@V8~pX#r*c;!STFkef7U`|i((Ex4 zn9Oj}V?;VjQwFUzjtNqcoADpeK^JhrmZA^i2#wcbBG3w4a3G+Fw_VGH48(u6- z+xFL6Y~tOgE9j3{Lg*?3Y89#~V)#{)pR~%Hg{_=tYrP@e{S4;L7cGa9#&Bw4(&@Pe zOrsaIkh$PAOMq}^3V~;;w89hVm$GXKjqshw7fmoey-rHiA+bui$coFiN8Ifx@`y83 zUeqgk(LqS;=r&<4C9p7N1zh$AFBhr_>YOhx=c7SVNdu~ex@(;^&{xjswCRseObB$p z3N@h;$w!$1IV)c~d~o;j&Qc1K5kWO{zJymwe|MkxE<&|2cGX|f(=j1Hd)#$57_FY6 z11I5v;vNG+p@@|o3OrH4yT^UUvS;>m4Sp8wGmv(&=O= zYM}n$KmgHSi#neOZK$O)i};cmtcC}1G1GoLovE=u8PS1I?s47wo7nVR`u zArY1w|9^|TKVCd1tPE|vo$5wXDsK?_@_o8SP5b=z85(<^zhtyTzZyO?Gy@b^F@lQE zhHxrg@UWSM5kHEB(zP9j>a1Y1=ohryh0Ke@w!CEHLd_Cx-%f;>GTHJhog8BXWzlz= zVWt>CugsA)YkmaR0hl4jL?6YIre4b7r8f(HSq0THh8GGu`3C7(*!C?g zOR)*+)&%#l@>XAK6ml~S_QkUw7V#J!I+jVom`CY)C@;Y=@?TAvV%f-B4_0=`^vg_( zHjk?vj#Aq^l8TWY={x}@S>ZWUtDTsz?;mvV-eBO7sH3o8pW`i3`#zN!h`NstJ>{l@ zu%;G&>qIO?aWdO`W2`;_;R<=U%Bv3+{#NoQ^!suG<>48Qbtz zrF9rxr)e`+mi@9^Py%+DgGmbN;6*?v#9K9y410ZKTW2iAMd2^P=GVU+{>DjMVaDCo z$l3v*$LKUN5o6TmaXlgQnuSK_RESCDLFq&Z7Lny>^QRD= z)JziLSNtUa3FfCUT-dEku&<&MNy)vS9nE~#&>?q4kxrH#YH2cR*yZTHDCvQU9wL*P zUq5%w5W`*~=xB?9b!OYJcM9tDD7>@H_iQQhV&GAA6VL<~LV^IJRR6%p;0{i8@Ce)i7jv7n;a%odIG{STUnx&j@kEhy`@JsS5D4Zc<9_z67;}Np zm%+F`<1Hoj5>KA1TB0!v|F3C0N6cJ&9@P*t5)8D6h`SG`H#TWFbZeo0ycrW& z7W2f*q|Ku(i$A}-%*>^t|CNfVYw(XV$0&UG?rkaGf0f3?|00c``F}H0HXL3xETQ~* z@5?_dq+{aUuTWdeRs9k~$Un zpUZBRHXmo4e;gd_qgkQ@@jkNONm{zfdHH1? z#rTASVRZ+uP9*x{J}?BFY!|E!W&?s8C=rUy5D~EnE?9-aYdF3EwVMzqia&?$ zs3NKP^o4%QsFRH>b*UUM8;ZnQAHJt}p3AZyKrAT?J1T9+3jwMwaa8sVP0ZG#T9v=o zr&B~qJ}y7kJ>3<%nI)?8!_49tHS#9P71wmYV4eiCc9SPg$y$WugXydVSgehokRPFK zkVS-=REpn#>AU`!_Ij|ptA!-PQ&%dw+VS57(0mo=pq3)MYE(a>fGELdm?AU07rJ%H zgD^i3L*Wscv21TpW!0=V&kyV+liMeKFb2CY zAGKplW7gs~lt~UU+Q@jcg|r3?J3>AKpIzBE9=qrgISxwMTQM1mMJM>l0cB@6k%Pdz zaC-*>V}1&p_Sa6h?W{m$I0;@gr_eOB+=vJ((E-jZ4pVL!UKtKyg16LITXbd_wBVzO znrkQpg=izq0syo=sC#&BH%q@7&S=sylT3}dR0z;SmeKS`zOS+~7;T>xPn=@Ot5y{k zmO8@GJRn(21~Laf`9R1vvU!~H8!aARTRxs#{#gykl6>^gqW3?6R*5KyzeV4o7=K0_ zVTy`J@=Sp~FJJB|rZP6Nw_74B!qh(XeKN9zpJd+oM)K!1$-pHTKQjC#AUNiIJ=vw>Q04*c!!9wHb^ z7lQOWt;_!Cx4OfF>y+((h2!C|^Z%{oKVNdFKOP|EbFPMGKBykC;+=$b* z`t}~LLtDwTn|Rhbh_A+%uQ9}?#Cp;&2Ua&dy#mbGH@s4yA}O( zYNSziZr<3oE>0Ei8HTF_bdJb>uC4Z$zFVfnk!z$qF@UcnQiVzZ#bqwdtDvS}o8Hw)eenv}qy{=r|vWxTn zLmh1FFkjDOikE0Gt>zW|k5sR#2#Vpo@%1wc?+^XF6xj1W*UT}3?PS<8G#2VdK9=eR z>UwS+QpC6FI1b0!Khu~Mn>fV%Zqw&a*udcRRBb#2 zf{m(-;Y^M1H~B=2=>d|Jy29VJh+l}Au+tlO^xVHrEY=U6urMIy=Xr2Gu6GN0vz}(Y@((XVkWPypf_JH(U)gIjZKs711_keBje_DX_ z&kdAWj9=#o!M7kIva{S_2!tquiBkt}& zoXroAz6T|jibHVaC4w}kkpNT!E1S>9N|c8q_El#GL8X+9AuCMGR5}# zcZ~<)nr0XDSFb=3g#obyq^vG-Z2XYTa9C2?r;8lKLy;S#=U0D7^5UGNnQaSH>3)y9 zqGj+CIpmHP3Qs36Q{H@zp{x=EG$No2! z?vz|YPCK_;6Ot(uaN0@N$aJ4wZE2DFWR2TCp2QM4L`@4YS!#$l=C zP}ol#wRNf#lSB_sz9JP(+mHM+4zz41p;q zR>&t|Ee^qq-Z$)gXJ151%AxN(@RcA9k%~O+*`m4| z6iMnC=QOn46a!aP;Ul}Zu_<0J`2Y8s7z%SX{PlS=78?`A8`1t39kPL%K zDmSevIW@w;XA*~+&HE&?@LsgR=c4;PJz5)^acL@|47kTE#zLak7NzJ&wZ(-mK5h3}z80z?VhFcaQ1qI4BFTL3 z-;=s#C0a>!!sTYwHzz;5ZYm8WE`B;_?X&z6PrKpB%Jdb;jj-jYKgi>LeSU-kKZy}- zEcs>o;&9dUw)B08K;D1{v%>J=IfZ?)OmGm0shez#y5=!Tt zAypP(^O#-+oBEYZb&;{E0r1#86o9O`VJbV?#p|10dw?3dQ~mPPt?v*-xt3`cPtF@j zqr1NsEDYAUE!?(04xi>5dts26_*$w>71FAV@vqXA%bcNW>!S9WY4OFwz!OVRT(pJQ zp6y|;_}%!w^d1Yblk3x~DTu{X5Y|wCasWZ z6{zqw+Q^NChgT+$$m7d>x45{OLQ(sQ-_t zw+xFa?4pLHhaS3NW*9=HC8TSJp-T}dC8a^SYk(O#m2Q!40Z9o-0YSPOq&uX(d7kfm z-s}B!&hK-bweNkez4lrw*p=w8PEXmkXyK}r17prt!OlP^e{xf4Trz&MuK6kbdu)Dt zaMF--(lv=?>0?}*NL0;U`;mn7<0hA9RoE+wS1x31IvL!eOYChHPjHyj6l>VTvG_DY z4^ifZNwodlPtHcJFit^gVtHKiFMdeCf7Ek#zZOpoev#!iUc=2>`%TNJCyQ&!r?KvC z+Pg`RTV})nd%<-?^40e3<3qbCJ)t##MksyKBT~o}=J+~TRS>;g%#}LgnU)O;*iP9FG3`}@1#DUaAqzm$3AHe!Vc*!y z#uFRQuyRjw5hF-CvzTOf1rs}uj6FC-UO7tb7xa%9EV=TS2RuifcZ;0qW03u@82bBy znC3U4^n{&lCTu`2PP?Z#z69JH+7$ebPeOf4Qfb_Vtk|7dX3lk+0c)* z{pRb}>riV}d)n6dP;M#3L??(lhF6F((h|>F?0QY0!7GXDE@(TadHA&bxt>o{52u+O z^I}u?01>v1IARL|);t&Lbkwyd^E=$@gU>4+`Cyn2CO_3(!YaZ%LO+Y{T;D^^v%fzC z2AuqRB>KIZZN4C_nRw83zU`Q{d8xYl0Gaag^Z!KCe!kQqr^4m1>NtCM|GF?z`5Vsr zmjeSS0TAcKV;pKSrjf6lWhV{9F2re0dG&3(Z(7N~8!Ncb;VY@ywbx$8vV7P%F5>3h zP8{LUJ4A5rE7Fzahf{;>ySb+eUY~p%SZ2Ha8b-EWyuVg~ zz(wA_S(M!g0+JmARgKtCnUI6~4W`(EkFKO6CW?KgsELlY@13f%^bOv;hSpNS$>K7+ z`G5Gum~u1B;}doS+a1lyEHl%-EbM~J)XRAbCPbNU+lzcprG8yYA<{YQ>Sduo%9ISUL&hOrZMv4~c_1>3E1=H|7%sdh#C1NJ({OL~xS>SpYil+uOpNqC{~Aw(19$TnKv_ zsFI!z2e0I+R*M?gF(usXzF;&~G3FxgCR*YKZ2(frlSWN?`>;(L0FL216uSYWhS^`g zd9B$}SMTwzM-BC#ADw*ZY9ar{{QC@+rR&5EP9)=JZ)(O-1m5i>eQYl5n&-*u$1i@a zkQDxAcy)giu;ts)&~&TXe*5!}#KSptPsH)8qu-SL05x+MCAD>9^(H)7Le}Hq4OCXe1Gx6Yk9uaY`l9nE^qE?ELGfNh$pDN4SyUHuXx%P4Gdh~yMZkHlOrL`0EaX=|H#+3QhJ~A z(#r}fqL4kH@}4x@%1i~SII}V)%6o6-z<+r94^lY-mV?QpnI%8O(a)!k-_Gt>ytD6i zhx9_3wI!7)gUfwg!GB0Rw48WW8%#Sha?S!avYK!Eu0;s*?UuAnsvV6BcaNY=N=T2G zdKdE(p)vVLK1Dt88c1k$j2dsABdc8;=)@Aww8Ld+{VD*oPo2lOR=VUssMrC0sb2mu zbAHP(P&mA5;XnhnmcXJ-nvT2%jxB1=N%}7`>V_09z0H5NRr8af=iis-Cxk3Snv6Dy zWdq$_o6pxHtuZk%G%iR1W^nB2>JHwv2U1#FGnI&Mre zatiHV=8C=mE4+3wg?Q5A@2qtzJkHmnBPS7o-jSt`-ideS@#2YScTV#1y>~<8DWq_5 z^sJfM#x=vIKGf%!@1nTZA&}HUV|$}Re%Bv5yAK1}8bQdY_yMiP-O)#^#fu-lqtryS zY;tm+$w`v7t3p|u5VYieDJ#Y-J@JL^n2`jA`=A326~a)}C+2&T&!JUovM1Z zK@*9EzRWIJu3X9Tf7Si?`d@#3M-7qb(<_DYk6Qcrvy@FsRc1>Qb!gn<|Z68({tQiFW2B&ca0l|yL-R{bZF@0%{y zY!}60BBC{K)*D|>-;j!2w-;rC|KXT<(ZWz84A(lq0{K$s)jTsj#%SJLU zqb!-$C(Uw^1p4l%2d-h~v)hLxQzzC$W`U?8ikIKB*qdUxLpdo)-AS--s{f~ zB_%H6QeQGX2K|Fx%0A~qPShRc+p71G!p+&;#GkZgY27Ws<5VrE_Z<9%ARY(;n$v+) z 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

    y;#H_QT(d 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 diff --git a/docs/reference/fit-method-draws.html b/docs/reference/fit-method-draws.html deleted file mode 100644 index c11a2ea61..000000000 --- a/docs/reference/fit-method-draws.html +++ /dev/null @@ -1,369 +0,0 @@ - -Extract posterior draws — fit-method-draws • cmdstanr - - -

    -
    - - - -
    -
    - - -
    -

    Extract posterior draws after MCMC or approximate posterior -draws after variational approximation using formats provided by the -posterior package.

    -

    The variables include the parameters, transformed parameters, and -generated quantities from the Stan program as well as lp__, the total -log probability (target) accumulated in the model block.

    -
    - -
    -
    draws(
    -  variables = NULL,
    -  inc_warmup = FALSE,
    -  format = getOption("cmdstanr_draws_format")
    -)
    -
    - -
    -

    Arguments

    -
    variables
    -

    (character vector) Optionally, the names of the variables -(parameters, transformed parameters, and generated quantities) to read in.

    • If NULL (the default) then all variables are included.

    • -
    • If an empty string (variables="") then none are included.

    • -
    • For non-scalar variables all elements or specific elements can be selected:

      • variables = "theta" selects all elements of theta;

      • -
      • variables = c("theta[1]", "theta[3]") selects only the 1st and 3rd elements.

      • -
    • -
    - - -
    inc_warmup
    -

    (logical) Should warmup draws be included? Defaults to -FALSE. Ignored except when used with CmdStanMCMC objects.

    - - -
    format
    -

    (string) The format of the returned draws or point estimates. -Must be a valid format from the posterior package. The defaults -are the following.

    • For sampling and generated quantities the default is -"draws_array". This format keeps the chains -separate. To combine the chains use any of the other formats (e.g. -"draws_matrix").

    • -
    • For point estimates from optimization and approximate draws from -variational inference the default is -"draws_matrix".

    • -

    To use a different format it can be specified as the full name of the -format from the posterior package (e.g. format = "draws_df") or -omitting the "draws_" prefix (e.g. format = "df").

    -

    Changing the default format: To change the default format for an entire -R session use options(cmdstanr_draws_format = format), where format is -the name (in quotes) of a valid format from the posterior package. For -example options(cmdstanr_draws_format = "draws_df") will change the -default to a data frame.

    -

    Note about efficiency: For models with a large number of parameters -(20k+) we recommend using the "draws_list" format, which is the most -efficient and RAM friendly when combining draws from multiple chains. If -speed or memory is not a constraint we recommend selecting the format that -most suits the coding style of the post processing phase.

    - -
    -
    -

    Value

    - - -

    Depends on the value of format. The defaults are:

    • For MCMC, a 3-D -draws_array object (iteration x chain x -variable).

    • -
    • For standalone generated quantities, a -3-D draws_array object (iteration x chain x -variable).

    • -
    • For variational inference, a 2-D -draws_matrix object (draw x variable) because -there are no chains. An additional variable lp_approx__ is also included, -which is the log density of the variational approximation to the posterior -evaluated at each of the draws.

    • -
    • For optimization, a 1-row -draws_matrix with one column per variable. These -are not actually draws, just point estimates stored in the draws_matrix -format. See $mle() to extract them as a numeric vector.

    • -
    - - -
    -

    Examples

    -
    # \dontrun{
    -# logistic regression with intercept alpha and coefficients beta
    -fit <- cmdstanr_example("logistic", method = "sample")
    -
    -# returned as 3-D array (see ?posterior::draws_array)
    -draws <- fit$draws()
    -dim(draws)
    -#> [1] 1000    4  105
    -str(draws)
    -#>  'draws_array' num [1:1000, 1:4, 1:105] -64.4 -64.5 -65.8 -66.7 -66 ...
    -#>  - attr(*, "dimnames")=List of 3
    -#>   ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   ..$ variable : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -
    -# can easily convert to other formats (data frame, matrix, list)
    -# using the posterior package
    -head(posterior::as_draws_matrix(draws))
    -#> # A draws_matrix: 6 iterations, 1 chains, and 105 variables
    -#>     variable
    -#> draw lp__ alpha beta[1] beta[2] beta[3] log_lik[1] log_lik[2] log_lik[3]
    -#>    1  -64  0.37   -0.73   -0.28    0.46      -0.49      -0.47      -0.49
    -#>    2  -65  0.37   -0.54   -0.24    0.89      -0.54      -0.31      -0.44
    -#>    3  -66  0.44   -1.06   -0.43    0.84      -0.46      -0.30      -0.44
    -#>    4  -67  0.49   -0.81    0.15    0.92      -0.42      -0.24      -0.16
    -#>    5  -66  0.34   -0.51   -0.53    0.30      -0.55      -0.67      -0.87
    -#>    6  -66  0.38   -0.42   -0.44    0.34      -0.54      -0.66      -0.76
    -#> # ... with 97 more variables
    -
    -# or can specify 'format' argument to avoid manual conversion
    -# matrix format combines all chains
    -draws <- fit$draws(format = "matrix")
    -head(draws)
    -#> # A draws_matrix: 6 iterations, 1 chains, and 105 variables
    -#>     variable
    -#> draw lp__ alpha beta[1] beta[2] beta[3] log_lik[1] log_lik[2] log_lik[3]
    -#>    1  -64  0.37   -0.73   -0.28    0.46      -0.49      -0.47      -0.49
    -#>    2  -65  0.37   -0.54   -0.24    0.89      -0.54      -0.31      -0.44
    -#>    3  -66  0.44   -1.06   -0.43    0.84      -0.46      -0.30      -0.44
    -#>    4  -67  0.49   -0.81    0.15    0.92      -0.42      -0.24      -0.16
    -#>    5  -66  0.34   -0.51   -0.53    0.30      -0.55      -0.67      -0.87
    -#>    6  -66  0.38   -0.42   -0.44    0.34      -0.54      -0.66      -0.76
    -#> # ... with 97 more variables
    -
    -# can select specific parameters
    -fit$draws("alpha")
    -#> # A draws_array: 1000 iterations, 4 chains, and 1 variables
    -#> , , variable = alpha
    -#> 
    -#>          chain
    -#> iteration    1     2     3    4
    -#>         1 0.37 0.152 0.089 0.26
    -#>         2 0.37 0.301 0.658 0.22
    -#>         3 0.44 0.685 0.554 0.52
    -#>         4 0.49 0.049 0.734 0.51
    -#>         5 0.34 0.171 0.797 0.22
    -#> 
    -#> # ... with 995 more iterations
    -fit$draws("beta")  # selects entire vector beta
    -#> # A draws_array: 1000 iterations, 4 chains, and 3 variables
    -#> , , variable = beta[1]
    -#> 
    -#>          chain
    -#> iteration     1     2     3     4
    -#>         1 -0.73 -0.57 -0.63 -0.95
    -#>         2 -0.54 -0.63 -0.67 -0.64
    -#>         3 -1.06 -0.85 -1.14 -0.59
    -#>         4 -0.81 -0.58 -0.70 -0.67
    -#>         5 -0.51 -0.60 -0.68 -1.30
    -#> 
    -#> , , variable = beta[2]
    -#> 
    -#>          chain
    -#> iteration     1      2      3     4
    -#>         1 -0.28 -0.615 -0.432 -0.21
    -#>         2 -0.24 -0.304 -0.049 -0.14
    -#>         3 -0.43 -0.431 -0.395  0.06
    -#>         4  0.15 -0.192 -0.265 -0.13
    -#>         5 -0.53 -0.018 -0.289 -0.19
    -#> 
    -#> , , variable = beta[3]
    -#> 
    -#>          chain
    -#> iteration    1    2    3    4
    -#>         1 0.46 0.87 0.53 0.50
    -#>         2 0.89 0.84 0.89 0.22
    -#>         3 0.84 0.83 0.47 0.35
    -#>         4 0.92 0.71 1.36 0.67
    -#>         5 0.30 0.42 1.40 0.59
    -#> 
    -#> # ... with 995 more iterations
    -fit$draws(c("alpha", "beta[2]"))
    -#> # A draws_array: 1000 iterations, 4 chains, and 2 variables
    -#> , , variable = alpha
    -#> 
    -#>          chain
    -#> iteration    1     2     3    4
    -#>         1 0.37 0.152 0.089 0.26
    -#>         2 0.37 0.301 0.658 0.22
    -#>         3 0.44 0.685 0.554 0.52
    -#>         4 0.49 0.049 0.734 0.51
    -#>         5 0.34 0.171 0.797 0.22
    -#> 
    -#> , , variable = beta[2]
    -#> 
    -#>          chain
    -#> iteration     1      2      3     4
    -#>         1 -0.28 -0.615 -0.432 -0.21
    -#>         2 -0.24 -0.304 -0.049 -0.14
    -#>         3 -0.43 -0.431 -0.395  0.06
    -#>         4  0.15 -0.192 -0.265 -0.13
    -#>         5 -0.53 -0.018 -0.289 -0.19
    -#> 
    -#> # ... with 995 more iterations
    -
    -# can be passed directly to bayesplot plotting functions
    -bayesplot::color_scheme_set("brightblue")
    -bayesplot::mcmc_dens(fit$draws(c("alpha", "beta")))
    -
    -bayesplot::mcmc_scatter(fit$draws(c("beta[1]", "beta[2]")), alpha = 0.3)
    -
    -
    -
    -# example using variational inference
    -fit <- cmdstanr_example("logistic", method = "variational")
    -head(fit$draws("beta")) # a matrix by default
    -#> # A draws_matrix: 6 iterations, 1 chains, and 3 variables
    -#>     variable
    -#> draw beta[1] beta[2] beta[3]
    -#>    1   -0.70   -0.15   0.690
    -#>    2   -0.69   -0.54   0.897
    -#>    3   -0.41   -0.67   0.323
    -#>    4   -0.93   -0.51   0.460
    -#>    5   -0.77   -0.39   0.031
    -#>    6   -0.64   -0.16   0.711
    -head(fit$draws("beta", format = "df"))
    -#> # A draws_df: 6 iterations, 1 chains, and 3 variables
    -#>   beta[1] beta[2] beta[3]
    -#> 1   -0.70   -0.15   0.690
    -#> 2   -0.69   -0.54   0.897
    -#> 3   -0.41   -0.67   0.323
    -#> 4   -0.93   -0.51   0.460
    -#> 5   -0.77   -0.39   0.031
    -#> 6   -0.64   -0.16   0.711
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-grad_log_prob.html b/docs/reference/fit-method-grad_log_prob.html deleted file mode 100644 index d301b29fd..000000000 --- a/docs/reference/fit-method-grad_log_prob.html +++ /dev/null @@ -1,177 +0,0 @@ - -Calculate the log-probability and the gradient w.r.t. each input for a given vector of unconstrained parameters — fit-method-grad_log_prob • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $grad_log_prob() method provides access to the Stan -model's log_prob function and its derivative.

    -
    - -
    -
    grad_log_prob(
    -  unconstrained_variables,
    -  jacobian = TRUE,
    -  jacobian_adjustment = NULL
    -)
    -
    - -
    -

    Arguments

    -
    unconstrained_variables
    -

    (numeric) A vector of unconstrained parameters.

    - - -
    jacobian
    -

    (logical) Whether to include the log-density adjustments from -un/constraining variables.

    - - -
    jacobian_adjustment
    -

    Deprecated. Please use jacobian instead.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -fit_mcmc$grad_log_prob(unconstrained_variables = c(0.5, 1.2, 1.1, 2.2))
    -#> [1]   1.462151 -26.619534 -25.528776 -14.286822
    -#> attr(,"log_prob")
    -#> [1] -130.2141
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-gradients.html b/docs/reference/fit-method-gradients.html deleted file mode 100644 index c331800f7..000000000 --- a/docs/reference/fit-method-gradients.html +++ /dev/null @@ -1,166 +0,0 @@ - -Extract gradients after diagnostic mode — fit-method-gradients • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Return the data frame containing the gradients for all -parameters.

    -
    - -
    -
    gradients()
    -
    - -
    -

    Value

    - - -

    A list of lists. See Examples.

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -test <- cmdstanr_example("logistic", method = "diagnose")
    -
    -# retrieve the gradients
    -test$gradients()
    -#>   param_idx     value     model finite_diff        error
    -#> 1         0 -1.956090  42.51440    42.51440 -1.09401e-08
    -#> 2         1 -0.130427 -13.33070   -13.33070 -1.40895e-08
    -#> 3         2  1.228760 -24.25270   -24.25270 -4.45662e-08
    -#> 4         3  0.625050   3.12825     3.12825 -3.33963e-09
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-hessian.html b/docs/reference/fit-method-hessian.html deleted file mode 100644 index 4cc7fea86..000000000 --- a/docs/reference/fit-method-hessian.html +++ /dev/null @@ -1,171 +0,0 @@ - -Calculate the log-probability , the gradient w.r.t. each input, and the hessian for a given vector of unconstrained parameters — fit-method-hessian • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $hessian() method provides access to the Stan model's -log_prob, its derivative, and its hessian.

    -
    - -
    -
    hessian(unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL)
    -
    - -
    -

    Arguments

    -
    unconstrained_variables
    -

    (numeric) A vector of unconstrained parameters.

    - - -
    jacobian
    -

    (logical) Whether to include the log-density adjustments from -un/constraining variables.

    - - -
    jacobian_adjustment
    -

    Deprecated. Please use jacobian instead.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -# fit_mcmc$init_model_methods(hessian = TRUE)
    -# fit_mcmc$hessian(unconstrained_variables = c(0.5, 1.2, 1.1, 2.2))
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-init.html b/docs/reference/fit-method-init.html deleted file mode 100644 index 4d0449d46..000000000 --- a/docs/reference/fit-method-init.html +++ /dev/null @@ -1,198 +0,0 @@ - -Extract user-specified initial values — fit-method-init • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Return user-specified initial values. If the user provided -initial values files or R objects (list of lists or function) via the -init argument when fitting the model then these are returned (always in -the list of lists format). Currently it is not possible to extract initial -values generated automatically by CmdStan, although CmdStan may support -this in the future.

    -
    - -
    -
    init()
    -
    - -
    -

    Value

    - - -

    A list of lists. See Examples.

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -init_fun <- function() list(alpha = rnorm(1), beta = rnorm(3))
    -fit <- cmdstanr_example("logistic", init = init_fun, chains = 2)
    -str(fit$init())
    -#> List of 2
    -#>  $ :List of 2
    -#>   ..$ alpha: num -1.19
    -#>   ..$ beta : num [1:3] -0.0532 0.2552 1.706
    -#>  $ :List of 2
    -#>   ..$ alpha: num 1
    -#>   ..$ beta : num [1:3] -0.496 0.356 -1.135
    -
    -# partial inits (only specifying for a subset of parameters)
    -init_list <- list(
    -  list(mu = 10, tau = 2),
    -  list(mu = -10, tau = 1)
    -)
    -fit <- cmdstanr_example("schools_ncp", init = init_list, chains = 2, adapt_delta = 0.9)
    -#> Init values were only set for a subset of parameters. 
    -#> Missing init values for the following parameters:
    -#>  - chain 1: theta_raw
    -#>  - chain 2: theta_raw
    -#> 
    -#> To disable this message use options(cmdstanr_warn_inits = FALSE).
    -
    -# only user-specified inits returned
    -str(fit$init())
    -#> List of 2
    -#>  $ :List of 2
    -#>   ..$ mu : int 10
    -#>   ..$ tau: int 2
    -#>  $ :List of 2
    -#>   ..$ mu : int -10
    -#>   ..$ tau: int 1
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-init_model_methods.html b/docs/reference/fit-method-init_model_methods.html deleted file mode 100644 index a34a009bd..000000000 --- a/docs/reference/fit-method-init_model_methods.html +++ /dev/null @@ -1,179 +0,0 @@ - -Compile additional methods for accessing the model log-probability function and parameter constraining and unconstraining. — fit-method-init_model_methods • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $init_model_methods() method compiles and initializes the -log_prob, grad_log_prob, constrain_variables, unconstrain_variables -and unconstrain_draws functions. These are then available as methods of -the fitted model object. This requires the additional Rcpp package, -which are not required for fitting models using -CmdStanR.

    -

    Note: there may be many compiler warnings emitted during compilation but -these can be ignored so long as they are warnings and not errors.

    -
    - -
    -
    init_model_methods(seed = 1, verbose = FALSE, hessian = FALSE)
    -
    - -
    -

    Arguments

    -
    seed
    -

    (integer) The random seed to use when initializing the model.

    - - -
    verbose
    -

    (logical) Whether to show verbose logging during compilation.

    - - -
    hessian
    -

    (logical) Whether to expose the (experimental) hessian method.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -# }
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-inv_metric.html b/docs/reference/fit-method-inv_metric.html deleted file mode 100644 index 1a8c8a7e2..000000000 --- a/docs/reference/fit-method-inv_metric.html +++ /dev/null @@ -1,240 +0,0 @@ - -Extract inverse metric (mass matrix) after MCMC — fit-method-inv_metric • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Extract the inverse metric (mass matrix) for each MCMC chain.

    -
    - -
    -
    inv_metric(matrix = TRUE)
    -
    - -
    -

    Arguments

    -
    matrix
    -

    (logical) If a diagonal metric was used, setting matrix = FALSE returns a list containing just the diagonals of the matrices instead -of the full matrices. Setting matrix = FALSE has no effect for dense -metrics.

    - -
    -
    -

    Value

    - - -

    A list of length equal to the number of MCMC chains. See the matrix

    - - -

    argument for details.

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic")
    -fit$inv_metric()
    -#> $`1`
    -#>           [,1]      [,2]     [,3]      [,4]
    -#> [1,] 0.0399675 0.0000000 0.000000 0.0000000
    -#> [2,] 0.0000000 0.0581864 0.000000 0.0000000
    -#> [3,] 0.0000000 0.0000000 0.045564 0.0000000
    -#> [4,] 0.0000000 0.0000000 0.000000 0.0657117
    -#> 
    -#> $`2`
    -#>          [,1]      [,2]      [,3]      [,4]
    -#> [1,] 0.042812 0.0000000 0.0000000 0.0000000
    -#> [2,] 0.000000 0.0677379 0.0000000 0.0000000
    -#> [3,] 0.000000 0.0000000 0.0505126 0.0000000
    -#> [4,] 0.000000 0.0000000 0.0000000 0.0732512
    -#> 
    -#> $`3`
    -#>           [,1]     [,2]      [,3]      [,4]
    -#> [1,] 0.0421817 0.000000 0.0000000 0.0000000
    -#> [2,] 0.0000000 0.062998 0.0000000 0.0000000
    -#> [3,] 0.0000000 0.000000 0.0483093 0.0000000
    -#> [4,] 0.0000000 0.000000 0.0000000 0.0806989
    -#> 
    -#> $`4`
    -#>           [,1]      [,2]      [,3]      [,4]
    -#> [1,] 0.0458222 0.0000000 0.0000000 0.0000000
    -#> [2,] 0.0000000 0.0724218 0.0000000 0.0000000
    -#> [3,] 0.0000000 0.0000000 0.0524932 0.0000000
    -#> [4,] 0.0000000 0.0000000 0.0000000 0.0726335
    -#> 
    -fit$inv_metric(matrix=FALSE)
    -#> $`1`
    -#> [1] 0.0399675 0.0581864 0.0455640 0.0657117
    -#> 
    -#> $`2`
    -#> [1] 0.0428120 0.0677379 0.0505126 0.0732512
    -#> 
    -#> $`3`
    -#> [1] 0.0421817 0.0629980 0.0483093 0.0806989
    -#> 
    -#> $`4`
    -#> [1] 0.0458222 0.0724218 0.0524932 0.0726335
    -#> 
    -
    -fit <- cmdstanr_example("logistic", metric = "dense_e")
    -fit$inv_metric()
    -#> $`1`
    -#>              [,1]         [,2]        [,3]         [,4]
    -#> [1,]  0.048423300  0.001823680  0.00659113 -0.000666867
    -#> [2,]  0.001823680  0.055877400 -0.00378891  0.000328776
    -#> [3,]  0.006591130 -0.003788910  0.04607360 -0.010493400
    -#> [4,] -0.000666867  0.000328776 -0.01049340  0.061314400
    -#> 
    -#> $`2`
    -#>              [,1]         [,2]         [,3]        [,4]
    -#> [1,]  0.055615500 -0.004688890  0.000366103  0.00657168
    -#> [2,] -0.004688890  0.070634600  0.000161933 -0.00900785
    -#> [3,]  0.000366103  0.000161933  0.043863800 -0.01242910
    -#> [4,]  0.006571680 -0.009007850 -0.012429100  0.06169190
    -#> 
    -#> $`3`
    -#>              [,1]         [,2]         [,3]        [,4]
    -#> [1,]  0.046092000  0.000277152 -0.000196182  0.00653545
    -#> [2,]  0.000277152  0.052935700 -0.001316380 -0.00135849
    -#> [3,] -0.000196182 -0.001316380  0.052723400 -0.00738233
    -#> [4,]  0.006535450 -0.001358490 -0.007382330  0.06829300
    -#> 
    -#> $`4`
    -#>             [,1]        [,2]        [,3]        [,4]
    -#> [1,]  0.05362400 -0.00182030  0.00998512 -0.00383164
    -#> [2,] -0.00182030  0.06051710  0.00414984 -0.01575160
    -#> [3,]  0.00998512  0.00414984  0.04282750 -0.01094520
    -#> [4,] -0.00383164 -0.01575160 -0.01094520  0.07697140
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-inverse_metric.html b/docs/reference/fit-method-inverse_metric.html deleted file mode 100644 index f42050165..000000000 --- a/docs/reference/fit-method-inverse_metric.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - -Extract inverse metric (mass matrix) — fit-method-inverse_metric • cmdstanr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    - -
    -
    - - -
    -

    Extract the inverse metric (mass matrix) for each chain.

    -
    - - - -

    Usage

    - - -
    $inverse_metric(matrix = TRUE)
    -
    - -

    Arguments

    - - - -
      -
    • matrix: (logical) Should a list of matrices be returned? By default a -list of matrices is always returned, even if a diagonal metric was used when -fitting the model. If a diagonal metric was used then setting matrix=FALSE -will return a list of vectors instead, which uses less memory.

    • -
    - -

    Value

    - - - -

    A list of length equal to the number of MCMC chains. See the matrix -argument for details.

    -

    See also

    - - - -

    Examples

    -
    # \dontrun{ -fit <- cmdstanr_example("logistic")
    #> Model executable is up to date!
    fit$inverse_metric()
    #> [[1]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.0489704 0.0000000 0.0000000 0.0000000 -#> [2,] 0.0000000 0.0565619 0.0000000 0.0000000 -#> [3,] 0.0000000 0.0000000 0.0505927 0.0000000 -#> [4,] 0.0000000 0.0000000 0.0000000 0.0765553 -#> -#> [[2]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.0464694 0.0000000 0.0000000 0.0000000 -#> [2,] 0.0000000 0.0502202 0.0000000 0.0000000 -#> [3,] 0.0000000 0.0000000 0.0505695 0.0000000 -#> [4,] 0.0000000 0.0000000 0.0000000 0.0764519 -#> -#> [[3]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.0508438 0.0000000 0.0000000 0.0000000 -#> [2,] 0.0000000 0.0673253 0.0000000 0.0000000 -#> [3,] 0.0000000 0.0000000 0.0560788 0.0000000 -#> [4,] 0.0000000 0.0000000 0.0000000 0.0788151 -#> -#> [[4]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.0448417 0.0000000 0.0000000 0.0000000 -#> [2,] 0.0000000 0.0581256 0.0000000 0.0000000 -#> [3,] 0.0000000 0.0000000 0.0553186 0.0000000 -#> [4,] 0.0000000 0.0000000 0.0000000 0.0710309 -#>
    fit$inverse_metric(matrix=FALSE)
    #> [[1]] -#> [1] 0.0489704 0.0565619 0.0505927 0.0765553 -#> -#> [[2]] -#> [1] 0.0464694 0.0502202 0.0505695 0.0764519 -#> -#> [[3]] -#> [1] 0.0508438 0.0673253 0.0560788 0.0788151 -#> -#> [[4]] -#> [1] 0.0448417 0.0581256 0.0553186 0.0710309 -#>
    -fit <- cmdstanr_example("logistic", metric = "dense_e")
    #> Model executable is up to date!
    fit$inverse_metric()
    #> [[1]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.04622490 -0.00200878 -0.00532990 0.00912209 -#> [2,] -0.00200878 0.05868030 -0.00111311 -0.00606391 -#> [3,] -0.00532990 -0.00111311 0.04705130 -0.01343920 -#> [4,] 0.00912209 -0.00606391 -0.01343920 0.06636260 -#> -#> [[2]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.048247300 0.000662222 0.00412900 0.00605341 -#> [2,] 0.000662222 0.066143300 -0.01073320 0.00407476 -#> [3,] 0.004129000 -0.010733200 0.05326770 -0.00932996 -#> [4,] 0.006053410 0.004074760 -0.00932996 0.07355610 -#> -#> [[3]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.04912670 -0.00264697 0.00630654 -0.00385016 -#> [2,] -0.00264697 0.06148540 -0.01042830 -0.01020800 -#> [3,] 0.00630654 -0.01042830 0.06169950 -0.01587110 -#> [4,] -0.00385016 -0.01020800 -0.01587110 0.07391140 -#> -#> [[4]] -#> [,1] [,2] [,3] [,4] -#> [1,] 0.040504300 0.000998829 -0.000784530 0.00366177 -#> [2,] 0.000998829 0.051848800 0.000382584 -0.00376364 -#> [3,] -0.000784530 0.000382584 0.044784800 -0.01134560 -#> [4,] 0.003661770 -0.003763640 -0.011345600 0.06060850 -#>
    # } - -
    -
    - -
    - - -
    - - -
    -

    Site built with pkgdown 1.5.1.

    -
    - -
    -
    - - - - - - - - diff --git a/docs/reference/fit-method-log_prob.html b/docs/reference/fit-method-log_prob.html deleted file mode 100644 index de3159dd8..000000000 --- a/docs/reference/fit-method-log_prob.html +++ /dev/null @@ -1,171 +0,0 @@ - -Calculate the log-probability given a provided vector of unconstrained parameters. — fit-method-log_prob • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $log_prob() method provides access to the Stan model's -log_prob function.

    -
    - -
    -
    log_prob(unconstrained_variables, jacobian = TRUE, jacobian_adjustment = NULL)
    -
    - -
    -

    Arguments

    -
    unconstrained_variables
    -

    (numeric) A vector of unconstrained parameters.

    - - -
    jacobian
    -

    (logical) Whether to include the log-density adjustments from -un/constraining variables.

    - - -
    jacobian_adjustment
    -

    Deprecated. Please use jacobian instead.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -fit_mcmc$log_prob(unconstrained_variables = c(0.5, 1.2, 1.1, 2.2))
    -#> [1] -130.2141
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-loo.html b/docs/reference/fit-method-loo.html deleted file mode 100644 index 30281bc5c..000000000 --- a/docs/reference/fit-method-loo.html +++ /dev/null @@ -1,221 +0,0 @@ - -Leave-one-out cross-validation (LOO-CV) — fit-method-loo • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $loo() method computes approximate LOO-CV using the -loo package. In order to use this method you must compute and save -the pointwise log-likelihood in your Stan program. See loo::loo.array() -and the loo package vignettes -for details.

    -
    - -
    -
    loo(variables = "log_lik", r_eff = TRUE, moment_match = FALSE, ...)
    -
    - -
    -

    Arguments

    -
    variables
    -

    (string) The name of the variable in the Stan program -containing the pointwise log-likelihood. The default is to look for -"log_lik". This argument is passed to the $draws() -method.

    - - -
    r_eff
    -

    (multiple options) How to handle the r_eff argument for loo():

    • TRUE (the default) will automatically call loo::relative_eff.array() -to compute the r_eff argument to pass to loo::loo.array().

    • -
    • FALSE or NULL will avoid computing r_eff (which can sometimes be slow), -but the reported ESS and MCSE estimates can be over-optimistic if the -posterior draws are not (near) independent.

    • -
    • If r_eff is anything else, that object will be passed as the r_eff -argument to loo::loo.array().

    • -
    - - -
    moment_match
    -

    (logical) Whether to use a -moment-matching correction for problematic -observations. The default is FALSE. Using moment_match=TRUE will result -in compiling the additional methods described in -fit-method-init_model_methods. This allows CmdStanR to automatically -supply the functions for the log_lik_i, unconstrain_pars, -log_prob_upars, and log_lik_i_upars arguments to -loo::loo_moment_match().

    - - -
    ...
    -

    Other arguments (e.g., cores, save_psis, etc.) passed to -loo::loo.array() or loo::loo_moment_match.default() -(if moment_match = TRUE is set).

    - -
    -
    -

    Value

    - - -

    The object returned by loo::loo.array() or -loo::loo_moment_match.default().

    -
    -
    -

    See also

    -

    The loo package website with -documentation and -vignettes.

    -
    - -
    -

    Examples

    -
    
    -# \dontrun{
    -# the "logistic" example model has "log_lik" in generated quantities
    -fit <- cmdstanr_example("logistic")
    -loo_result <- fit$loo(cores = 2)
    -print(loo_result)
    -#> 
    -#> Computed from 4000 by 100 log-likelihood matrix.
    -#> 
    -#>          Estimate  SE
    -#> elpd_loo    -63.7 4.1
    -#> p_loo         3.9 0.5
    -#> looic       127.4 8.3
    -#> ------
    -#> MCSE of elpd_loo is 0.0.
    -#> MCSE and ESS estimates assume MCMC draws (r_eff in [0.9, 1.4]).
    -#> 
    -#> All Pareto k estimates are good (k < 0.7).
    -#> See help('pareto-k-diagnostic') for details.
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-lp-1.png b/docs/reference/fit-method-lp-1.png deleted file mode 100644 index 54cfc9139b6c7ddd5c6684d53a5cb022636acd53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83491 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 JB{!{}{tvsh0et`f diff --git a/docs/reference/fit-method-lp.html b/docs/reference/fit-method-lp.html deleted file mode 100644 index 4ee587d71..000000000 --- a/docs/reference/fit-method-lp.html +++ /dev/null @@ -1,209 +0,0 @@ - -Extract log probability (target) — fit-method-lp • cmdstanr - - -

    -
    - - - -
    -
    - - -
    -

    The $lp() method extracts lp__, the total log probability -(target) accumulated in the model block of the Stan program. For -variational inference the log density of the variational approximation to -the posterior is available via the $lp_approx() method. For -Laplace approximation the unnormalized density of the approximation to -the posterior is available via the $lp_approx() method.

    -

    See the Increment log density and Distribution Statements -sections of the Stan Reference Manual for details on when normalizing -constants are dropped from log probability calculations.

    -
    - -
    -
    lp()
    -
    -lp_approx()
    -
    -lp_approx()
    -
    - -
    -

    Value

    - - -

    A numeric vector with length equal to the number of (post-warmup) -draws or length equal to 1 for optimization.

    -
    -
    -

    Details

    - - -

    lp__ is the unnormalized log density on Stan's unconstrained space. -This will in general be different than the unnormalized model log density -evaluated at a posterior draw (which is on the constrained space). lp__ is -intended to diagnose sampling efficiency and evaluate approximations.

    -

    For variational inference lp_approx__ is the log density of the variational -approximation to lp__ (also on the unconstrained space). It is exposed in -the variational method for performing the checks described in Yao et al. -(2018) and implemented in the loo package.

    -

    For Laplace approximation lp_approx__ is the unnormalized density of the -Laplace approximation. It can be used to perform the same checks as in the -case of the variational method described in Yao et al. (2018).

    -
    -
    -

    References

    -

    Yao, Y., Vehtari, A., Simpson, D., and Gelman, A. (2018). Yes, but did it -work?: Evaluating variational inference. Proceedings of the 35th -International Conference on Machine Learning, PMLR 80:5581–5590.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic")
    -head(fit_mcmc$lp())
    -#> [1] -65.7069 -64.7742 -64.7082 -65.3051 -65.2394 -65.4373
    -
    -fit_mle <- cmdstanr_example("logistic", method = "optimize")
    -fit_mle$lp()
    -#> [1] -63.9218
    -
    -fit_vb <- cmdstanr_example("logistic", method = "variational")
    -plot(fit_vb$lp(), fit_vb$lp_approx())
    -
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-metadata.html b/docs/reference/fit-method-metadata.html deleted file mode 100644 index fe8d34cdf..000000000 --- a/docs/reference/fit-method-metadata.html +++ /dev/null @@ -1,285 +0,0 @@ - -Extract metadata from CmdStan CSV files — fit-method-metadata • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $metadata() method returns a list of information gathered -from the CSV output files, including the CmdStan configuration used when -fitting the model. See Examples and read_cmdstan_csv().

    -
    - -
    -
    metadata()
    -
    - - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample")
    -str(fit_mcmc$metadata())
    -#> List of 42
    -#>  $ stan_version_major  : num 2
    -#>  $ stan_version_minor  : num 36
    -#>  $ stan_version_patch  : num 0
    -#>  $ start_datetime      : chr "2025-03-31 14:45:33 UTC"
    -#>  $ method              : chr "sample"
    -#>  $ save_warmup         : int 0
    -#>  $ thin                : num 1
    -#>  $ gamma               : num 0.05
    -#>  $ kappa               : num 0.75
    -#>  $ t0                  : num 10
    -#>  $ init_buffer         : num 75
    -#>  $ term_buffer         : num 50
    -#>  $ window              : num 25
    -#>  $ save_metric         : int 0
    -#>  $ algorithm           : chr "hmc"
    -#>  $ engine              : chr "nuts"
    -#>  $ metric              : chr "diag_e"
    -#>  $ stepsize_jitter     : num 0
    -#>  $ num_chains          : num 1
    -#>  $ id                  : num [1:4] 1 2 3 4
    -#>  $ init                : num [1:4] 2 2 2 2
    -#>  $ seed                : num 2.88e+08
    -#>  $ refresh             : num 100
    -#>  $ sig_figs            : num -1
    -#>  $ profile_file        : chr "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-2f9a61.csv"
    -#>  $ save_cmdstan_config : int 0
    -#>  $ stanc_version       : chr "stanc3 v2.36.0"
    -#>  $ sampler_diagnostics : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
    -#>  $ variables           : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>  $ step_size_adaptation: num [1:4] 0.796 0.801 0.702 0.62
    -#>  $ model_name          : chr "logistic_model"
    -#>  $ adapt_engaged       : int 1
    -#>  $ adapt_delta         : num 0.8
    -#>  $ max_treedepth       : num 10
    -#>  $ step_size           : num [1:4] 1 1 1 1
    -#>  $ iter_warmup         : num 1000
    -#>  $ iter_sampling       : num 1000
    -#>  $ threads_per_chain   : num 1
    -#>  $ time                :'data.frame':	4 obs. of  4 variables:
    -#>   ..$ chain_id: num [1:4] 1 2 3 4
    -#>   ..$ warmup  : num [1:4] 0.024 0.023 0.022 0.022
    -#>   ..$ sampling: num [1:4] 0.073 0.071 0.076 0.075
    -#>   ..$ total   : num [1:4] 0.097 0.094 0.098 0.097
    -#>  $ stan_variable_sizes :List of 4
    -#>   ..$ lp__   : num 1
    -#>   ..$ alpha  : num 1
    -#>   ..$ beta   : num 3
    -#>   ..$ log_lik: num 100
    -#>  $ stan_variables      : chr [1:4] "lp__" "alpha" "beta" "log_lik"
    -#>  $ model_params        : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -
    -fit_mle <- cmdstanr_example("logistic", method = "optimize")
    -str(fit_mle$metadata())
    -#> List of 32
    -#>  $ stan_version_major : num 2
    -#>  $ stan_version_minor : num 36
    -#>  $ stan_version_patch : num 0
    -#>  $ start_datetime     : chr "2025-03-31 14:45:35 UTC"
    -#>  $ method             : chr "optimize"
    -#>  $ algorithm          : chr "lbfgs"
    -#>  $ init_alpha         : num 0.001
    -#>  $ tol_obj            : num 1e-12
    -#>  $ tol_rel_obj        : num 10000
    -#>  $ tol_grad           : num 1e-08
    -#>  $ tol_rel_grad       : num 1e+07
    -#>  $ tol_param          : num 1e-08
    -#>  $ history_size       : num 5
    -#>  $ jacobian           : int 0
    -#>  $ iter               : num 2000
    -#>  $ save_iterations    : int 0
    -#>  $ id                 : num 1
    -#>  $ init               : num 2
    -#>  $ seed               : num 2.1e+09
    -#>  $ refresh            : num 100
    -#>  $ sig_figs           : num -1
    -#>  $ profile_file       : chr "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-2604a8.csv"
    -#>  $ save_cmdstan_config: int 0
    -#>  $ stanc_version      : chr "stanc3 v2.36.0"
    -#>  $ sampler_diagnostics: chr(0) 
    -#>  $ variables          : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>  $ model_name         : chr "logistic_model"
    -#>  $ threads            : num 1
    -#>  $ time               :'data.frame':	0 obs. of  0 variables
    -#>  $ stan_variable_sizes:List of 4
    -#>   ..$ lp__   : num 1
    -#>   ..$ alpha  : num 1
    -#>   ..$ beta   : num 3
    -#>   ..$ log_lik: num 100
    -#>  $ stan_variables     : chr [1:4] "lp__" "alpha" "beta" "log_lik"
    -#>  $ model_params       : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -
    -fit_vb <- cmdstanr_example("logistic", method = "variational")
    -str(fit_vb$metadata())
    -#> List of 30
    -#>  $ stan_version_major : num 2
    -#>  $ stan_version_minor : num 36
    -#>  $ stan_version_patch : num 0
    -#>  $ start_datetime     : chr "2025-03-31 14:45:35 UTC"
    -#>  $ method             : chr "variational"
    -#>  $ algorithm          : chr "meanfield"
    -#>  $ iter               : num 50
    -#>  $ grad_samples       : num 1
    -#>  $ elbo_samples       : num 100
    -#>  $ eta                : num 1
    -#>  $ tol_rel_obj        : num 0.01
    -#>  $ eval_elbo          : num 100
    -#>  $ output_samples     : num 1000
    -#>  $ id                 : num 1
    -#>  $ init               : num 2
    -#>  $ seed               : num 9.33e+08
    -#>  $ refresh            : num 100
    -#>  $ sig_figs           : num -1
    -#>  $ profile_file       : chr "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-4983c4.csv"
    -#>  $ save_cmdstan_config: int 0
    -#>  $ stanc_version      : chr "stanc3 v2.36.0"
    -#>  $ sampler_diagnostics: chr(0) 
    -#>  $ variables          : chr [1:106] "lp__" "lp_approx__" "alpha" "beta[1]" ...
    -#>  $ model_name         : chr "logistic_model"
    -#>  $ adapt_engaged      : int 1
    -#>  $ threads            : num 1
    -#>  $ time               :'data.frame':	0 obs. of  0 variables
    -#>  $ stan_variable_sizes:List of 5
    -#>   ..$ lp__       : num 1
    -#>   ..$ lp_approx__: num 1
    -#>   ..$ alpha      : num 1
    -#>   ..$ beta       : num 3
    -#>   ..$ log_lik    : num 100
    -#>  $ stan_variables     : chr [1:5] "lp__" "lp_approx__" "alpha" "beta" ...
    -#>  $ model_params       : chr [1:106] "lp__" "lp_approx__" "alpha" "beta[1]" ...
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-mle.html b/docs/reference/fit-method-mle.html deleted file mode 100644 index 771d1616e..000000000 --- a/docs/reference/fit-method-mle.html +++ /dev/null @@ -1,193 +0,0 @@ - -Extract point estimate after optimization — fit-method-mle • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $mle() method is only available for CmdStanMLE -objects. It returns the point estimate as a numeric vector with one element -per variable. The returned vector does not include lp__, the total log -probability (target) accumulated in the model block of the Stan program, -which is available via the $lp() method and also -included in the $draws() method.

    -

    For models with constrained parameters that are fit with jacobian=TRUE, -the $mle() method actually returns the maximum a posteriori (MAP) -estimate (posterior mode) rather than the MLE. See -$optimize() and the CmdStan User's Guide for -more details.

    -
    - -
    -
    mle(variables = NULL)
    -
    - -
    -

    Arguments

    -
    variables
    -

    (character vector) The variables (parameters, transformed -parameters, and generated quantities) to include. If NULL (the default) -then all variables are included.

    - -
    -
    -

    Value

    - - -

    A numeric vector. See Examples.

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic", method = "optimize")
    -fit$mle("alpha")
    -#>    alpha 
    -#> 0.364453 
    -fit$mle("beta")
    -#>   beta[1]   beta[2]   beta[3] 
    -#> -0.631550 -0.258968  0.648499 
    -fit$mle("beta[2]")
    -#>   beta[2] 
    -#> -0.258968 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-num_chains.html b/docs/reference/fit-method-num_chains.html deleted file mode 100644 index 020f9be41..000000000 --- a/docs/reference/fit-method-num_chains.html +++ /dev/null @@ -1,158 +0,0 @@ - -Extract number of chains after MCMC — fit-method-num_chains • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $num_chains() method returns the number of MCMC chains.

    -
    - -
    -
    num_chains()
    -
    - -
    -

    Value

    - - -

    An integer.

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example(chains = 2)
    -fit_mcmc$num_chains()
    -#> [1] 2
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-output.html b/docs/reference/fit-method-output.html deleted file mode 100644 index 641421f36..000000000 --- a/docs/reference/fit-method-output.html +++ /dev/null @@ -1,349 +0,0 @@ - -Access console output — fit-method-output • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    For MCMC, the $output() method returns the stdout and stderr -of all chains as a list of character vectors if id=NULL. If the id -argument is specified it instead pretty prints the console output for a -single chain.

    -

    For optimization and variational inference $output() just pretty prints -the console output.

    -
    - -
    -
    output(id = NULL)
    -
    - -
    -

    Arguments

    -
    id
    -

    (integer) The chain id. Ignored if the model was not fit using -MCMC.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample")
    -fit_mcmc$output(1)
    -#> 
    -#> method = sample (Default)
    -#>   sample
    -#>     num_samples = 1000 (Default)
    -#>     num_warmup = 1000 (Default)
    -#>     save_warmup = false (Default)
    -#>     thin = 1 (Default)
    -#>     adapt
    -#>       engaged = true (Default)
    -#>       gamma = 0.05 (Default)
    -#>       delta = 0.8 (Default)
    -#>       kappa = 0.75 (Default)
    -#>       t0 = 10 (Default)
    -#>       init_buffer = 75 (Default)
    -#>       term_buffer = 50 (Default)
    -#>       window = 25 (Default)
    -#>       save_metric = false (Default)
    -#>     algorithm = hmc (Default)
    -#>       hmc
    -#>         engine = nuts (Default)
    -#>           nuts
    -#>             max_depth = 10 (Default)
    -#>         metric = diag_e (Default)
    -#>         metric_file =  (Default)
    -#>         stepsize = 1 (Default)
    -#>         stepsize_jitter = 0 (Default)
    -#>     num_chains = 1 (Default)
    -#> id = 1 (Default)
    -#> data
    -#>   file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/Rtmp0Jp8Zk/temp_libpathb838752e97c0/cmdstanr/logistic.data.json
    -#> init = 2 (Default)
    -#> random
    -#>   seed = 279613479
    -#> output
    -#>   file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-1-28c1ee.csv
    -#>   diagnostic_file =  (Default)
    -#>   refresh = 100 (Default)
    -#>   sig_figs = -1 (Default)
    -#>   profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-0139e1.csv
    -#>   save_cmdstan_config = false (Default)
    -#> num_threads = 1 (Default)
    -#> 
    -#> 
    -#> Gradient evaluation took 2.7e-05 seconds
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.27 seconds.
    -#> Adjust your expectations accordingly!
    -#> 
    -#> 
    -#> Iteration:    1 / 2000 [  0%]  (Warmup)
    -#> Iteration:  100 / 2000 [  5%]  (Warmup)
    -#> Iteration:  200 / 2000 [ 10%]  (Warmup)
    -#> Iteration:  300 / 2000 [ 15%]  (Warmup)
    -#> Iteration:  400 / 2000 [ 20%]  (Warmup)
    -#> Iteration:  500 / 2000 [ 25%]  (Warmup)
    -#> Iteration:  600 / 2000 [ 30%]  (Warmup)
    -#> Iteration:  700 / 2000 [ 35%]  (Warmup)
    -#> Iteration:  800 / 2000 [ 40%]  (Warmup)
    -#> Iteration:  900 / 2000 [ 45%]  (Warmup)
    -#> Iteration: 1000 / 2000 [ 50%]  (Warmup)
    -#> Iteration: 1001 / 2000 [ 50%]  (Sampling)
    -#> Iteration: 1100 / 2000 [ 55%]  (Sampling)
    -#> Iteration: 1200 / 2000 [ 60%]  (Sampling)
    -#> Iteration: 1300 / 2000 [ 65%]  (Sampling)
    -#> Iteration: 1400 / 2000 [ 70%]  (Sampling)
    -#> Iteration: 1500 / 2000 [ 75%]  (Sampling)
    -#> Iteration: 1600 / 2000 [ 80%]  (Sampling)
    -#> Iteration: 1700 / 2000 [ 85%]  (Sampling)
    -#> Iteration: 1800 / 2000 [ 90%]  (Sampling)
    -#> Iteration: 1900 / 2000 [ 95%]  (Sampling)
    -#> Iteration: 2000 / 2000 [100%]  (Sampling)
    -#> 
    -#>  Elapsed Time: 0.022 seconds (Warm-up)
    -#>                0.074 seconds (Sampling)
    -#>                0.096 seconds (Total)
    -out <- fit_mcmc$output()
    -str(out)
    -#> List of 4
    -#>  $ : chr [1:75] "" "method = sample (Default)" "  sample" "    num_samples = 1000 (Default)" ...
    -#>  $ : chr [1:75] "" "method = sample (Default)" "  sample" "    num_samples = 1000 (Default)" ...
    -#>  $ : chr [1:75] "" "method = sample (Default)" "  sample" "    num_samples = 1000 (Default)" ...
    -#>  $ : chr [1:75] "" "method = sample (Default)" "  sample" "    num_samples = 1000 (Default)" ...
    -
    -fit_mle <- cmdstanr_example("logistic", method = "optimize")
    -fit_mle$output()
    -#> 
    -#> method = optimize
    -#>   optimize
    -#>     algorithm = lbfgs (Default)
    -#>       lbfgs
    -#>         init_alpha = 0.001 (Default)
    -#>         tol_obj = 1e-12 (Default)
    -#>         tol_rel_obj = 10000 (Default)
    -#>         tol_grad = 1e-08 (Default)
    -#>         tol_rel_grad = 1e+07 (Default)
    -#>         tol_param = 1e-08 (Default)
    -#>         history_size = 5 (Default)
    -#>     jacobian = false (Default)
    -#>     iter = 2000 (Default)
    -#>     save_iterations = false (Default)
    -#> id = 1 (Default)
    -#> data
    -#>   file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/Rtmp0Jp8Zk/temp_libpathb838752e97c0/cmdstanr/logistic.data.json
    -#> init = 2 (Default)
    -#> random
    -#>   seed = 384468259
    -#> output
    -#>   file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-1-819b35.csv
    -#>   diagnostic_file =  (Default)
    -#>   refresh = 100 (Default)
    -#>   sig_figs = -1 (Default)
    -#>   profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-053c3a.csv
    -#>   save_cmdstan_config = false (Default)
    -#> num_threads = 1 (Default)
    -#> 
    -#> Initial log joint probability = -105.906
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes 
    -#>        8      -63.9218   6.03661e-05   0.000635963      0.6801      0.6801       10   
    -#> Optimization terminated normally: 
    -#>   Convergence detected: relative gradient magnitude is below tolerance
    -
    -fit_vb <- cmdstanr_example("logistic", method = "variational")
    -fit_vb$output()
    -#> 
    -#> method = variational
    -#>   variational
    -#>     algorithm = meanfield (Default)
    -#>       meanfield
    -#>     iter = 10000 (Default)
    -#>     grad_samples = 1 (Default)
    -#>     elbo_samples = 100 (Default)
    -#>     eta = 1 (Default)
    -#>     adapt
    -#>       engaged = true (Default)
    -#>       iter = 50 (Default)
    -#>     tol_rel_obj = 0.01 (Default)
    -#>     eval_elbo = 100 (Default)
    -#>     output_samples = 1000 (Default)
    -#> id = 1 (Default)
    -#> data
    -#>   file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/Rtmp0Jp8Zk/temp_libpathb838752e97c0/cmdstanr/logistic.data.json
    -#> init = 2 (Default)
    -#> random
    -#>   seed = 428491960
    -#> output
    -#>   file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-1-1320f3.csv
    -#>   diagnostic_file =  (Default)
    -#>   refresh = 100 (Default)
    -#>   sig_figs = -1 (Default)
    -#>   profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310845-1-101778.csv
    -#>   save_cmdstan_config = false (Default)
    -#> num_threads = 1 (Default)
    -#> 
    -#> ------------------------------------------------------------
    -#> EXPERIMENTAL ALGORITHM:
    -#>   This procedure has not been thoroughly tested and may be unstable
    -#>   or buggy. The interface is subject to change.
    -#> ------------------------------------------------------------
    -#> 
    -#> 
    -#> 
    -#> Gradient evaluation took 2.7e-05 seconds
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.27 seconds.
    -#> Adjust your expectations accordingly!
    -#> 
    -#> 
    -#> Begin eta adaptation.
    -#> Iteration:   1 / 250 [  0%]  (Adaptation)
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation)
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation)
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation)
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation)
    -#> Success! Found best value [eta = 1] earlier than expected.
    -#> 
    -#> Begin stochastic gradient ascent.
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes 
    -#>    100          -67.030             1.000            1.000
    -#>    200          -66.410             0.505            1.000
    -#>    300          -65.913             0.339            0.009   MEDIAN ELBO CONVERGED
    -#> 
    -#> Drawing a sample of size 1000 from the approximate posterior... 
    -#> COMPLETED.
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-profiles.html b/docs/reference/fit-method-profiles.html deleted file mode 100644 index 325bafed8..000000000 --- a/docs/reference/fit-method-profiles.html +++ /dev/null @@ -1,236 +0,0 @@ - -Return profiling data — fit-method-profiles • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $profiles() method returns a list of data frames with -profiling data if any profiling data was written to the profile CSV files. -See save_profile_files() to control where the files are saved.

    -

    Support for profiling Stan programs is available with CmdStan >= 2.26 and -requires adding profiling statements to the Stan program.

    -
    - -
    -
    profiles()
    -
    - -
    -

    Value

    - - -

    A list of data frames with profiling data if the profiling CSV files -were created.

    -
    - - -
    -

    Examples

    -
    
    -# \dontrun{
    -# first fit a model using MCMC
    -mcmc_program <- write_stan_file(
    -  'data {
    -    int<lower=0> N;
    -    array[N] int<lower=0,upper=1> y;
    -  }
    -  parameters {
    -    real<lower=0,upper=1> theta;
    -  }
    -  model {
    -    profile("likelihood") {
    -      y ~ bernoulli(theta);
    -    }
    -  }
    -  generated quantities {
    -    array[N] int y_rep;
    -    profile("gq") {
    -      y_rep = bernoulli_rng(rep_vector(theta, N));
    -    }
    -  }
    -'
    -)
    -mod_mcmc <- cmdstan_model(mcmc_program)
    -
    -data <- list(N = 10, y = c(1,1,0,0,0,1,0,1,0,0))
    -fit <- mod_mcmc$sample(data = data, seed = 123, refresh = 0)
    -#> Running MCMC with 4 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.6 seconds.
    -#> 
    -
    -fit$profiles()
    -#> [[1]]
    -#>         name      thread_id  total_time forward_time reverse_time chain_stack
    -#> 1 likelihood 0x7ff85af4eb00 0.001158940  0.000848855   0.00031008        6721
    -#> 2         gq 0x7ff85af4eb00 0.000444795  0.000444795   0.00000000           0
    -#>   no_chain_stack autodiff_calls no_autodiff_calls
    -#> 1           6721           6721                 1
    -#> 2              0              0              1000
    -#> 
    -#> [[2]]
    -#>         name      thread_id  total_time forward_time reverse_time chain_stack
    -#> 1 likelihood 0x7ff85af4eb00 0.001207200  0.000885927  0.000321272        6792
    -#> 2         gq 0x7ff85af4eb00 0.000453808  0.000453808  0.000000000           0
    -#>   no_chain_stack autodiff_calls no_autodiff_calls
    -#> 1           6792           6792                 1
    -#> 2              0              0              1000
    -#> 
    -#> [[3]]
    -#>         name      thread_id  total_time forward_time reverse_time chain_stack
    -#> 1 likelihood 0x7ff85af4eb00 0.001181750  0.000860407  0.000321346        6835
    -#> 2         gq 0x7ff85af4eb00 0.000418544  0.000418544  0.000000000           0
    -#>   no_chain_stack autodiff_calls no_autodiff_calls
    -#> 1           6835           6835                 1
    -#> 2              0              0              1000
    -#> 
    -#> [[4]]
    -#>         name      thread_id  total_time forward_time reverse_time chain_stack
    -#> 1 likelihood 0x7ff85af4eb00 0.001272150  0.000927098  0.000345053        6955
    -#> 2         gq 0x7ff85af4eb00 0.000416536  0.000416536  0.000000000           0
    -#>   no_chain_stack autodiff_calls no_autodiff_calls
    -#> 1           6955           6955                 1
    -#> 2              0              0              1000
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-return_codes.html b/docs/reference/fit-method-return_codes.html deleted file mode 100644 index 8c06616cf..000000000 --- a/docs/reference/fit-method-return_codes.html +++ /dev/null @@ -1,172 +0,0 @@ - -Extract return codes from CmdStan — fit-method-return_codes • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $return_codes() method returns a vector of return codes -from the CmdStan run(s). A return code of 0 indicates a successful run.

    -
    - -
    -
    return_codes()
    -
    - -
    -

    Value

    - - -

    An integer vector of return codes with length equal to the number of -CmdStan runs (number of chains for MCMC and one otherwise).

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -# example with return codes all zero
    -fit_mcmc <- cmdstanr_example("schools", method = "sample")
    -#> Warning: 81 of 4000 (2.0%) transitions ended with a divergence.
    -#> See https://mc-stan.org/misc/warnings for details.
    -fit_mcmc$return_codes() # should be all zero
    -#> [1] 0 0 0 0
    -
    -# example of non-zero return code (optimization fails for hierarchical model)
    -fit_opt <- cmdstanr_example("schools", method = "optimize")
    -#> Chain 1 Optimization terminated with error: 
    -#> Chain 1   Line search failed to achieve a sufficient decrease, no more progress can be made
    -#> Warning: Fitting finished unexpectedly! Use the $output() method for more information.
    -fit_opt$return_codes() # should be non-zero
    -#> [1] 1
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-sampler_diagnostics.html b/docs/reference/fit-method-sampler_diagnostics.html deleted file mode 100644 index 104338f30..000000000 --- a/docs/reference/fit-method-sampler_diagnostics.html +++ /dev/null @@ -1,221 +0,0 @@ - -Extract sampler diagnostics after MCMC — fit-method-sampler_diagnostics • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Extract the values of sampler diagnostics for each iteration and -chain of MCMC. To instead get summaries of these diagnostics and associated -warning messages use the -$diagnostic_summary() method.

    -
    - -
    -
    sampler_diagnostics(
    -  inc_warmup = FALSE,
    -  format = getOption("cmdstanr_draws_format", "draws_array")
    -)
    -
    - -
    -

    Arguments

    -
    inc_warmup
    -

    (logical) Should warmup draws be included? Defaults to FALSE.

    - - -
    format
    -

    (string) The draws format to return. See -draws for details.

    - -
    -
    -

    Value

    - - -

    Depends on format, but the default is a 3-D -draws_array object (iteration x chain x -variable). The variables for Stan's default MCMC algorithm are -"accept_stat__", "stepsize__", "treedepth__", "n_leapfrog__", -"divergent__", "energy__".

    -
    -
    -

    See also

    - -
    - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic")
    -sampler_diagnostics <- fit$sampler_diagnostics()
    -str(sampler_diagnostics)
    -#>  'draws_array' num [1:1000, 1:4, 1:6] 2 2 2 2 2 2 2 2 3 2 ...
    -#>  - attr(*, "dimnames")=List of 3
    -#>   ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   ..$ variable : chr [1:6] "treedepth__" "divergent__" "energy__" "accept_stat__" ...
    -
    -library(posterior)
    -as_draws_df(sampler_diagnostics)
    -#> # A draws_df: 1000 iterations, 4 chains, and 6 variables
    -#>    treedepth__ divergent__ energy__ accept_stat__ stepsize__ n_leapfrog__
    -#> 1            2           0       69          0.87       0.79            3
    -#> 2            2           0       67          0.96       0.79            7
    -#> 3            2           0       68          0.80       0.79            3
    -#> 4            2           0       69          0.72       0.79            3
    -#> 5            2           0       68          0.83       0.79            3
    -#> 6            2           0       69          0.94       0.79            3
    -#> 7            2           0       66          0.99       0.79            3
    -#> 8            2           0       68          0.62       0.79            3
    -#> 9            3           0       67          1.00       0.79            7
    -#> 10           2           0       67          0.99       0.79            7
    -#> # ... with 3990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# or specify format to get a data frame instead of calling as_draws_df
    -fit$sampler_diagnostics(format = "df")
    -#> # A draws_df: 1000 iterations, 4 chains, and 6 variables
    -#>    treedepth__ divergent__ energy__ accept_stat__ stepsize__ n_leapfrog__
    -#> 1            2           0       69          0.87       0.79            3
    -#> 2            2           0       67          0.96       0.79            7
    -#> 3            2           0       68          0.80       0.79            3
    -#> 4            2           0       69          0.72       0.79            3
    -#> 5            2           0       68          0.83       0.79            3
    -#> 6            2           0       69          0.94       0.79            3
    -#> 7            2           0       66          0.99       0.79            3
    -#> 8            2           0       68          0.62       0.79            3
    -#> 9            3           0       67          1.00       0.79            7
    -#> 10           2           0       67          0.99       0.79            7
    -#> # ... with 3990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-save_object.html b/docs/reference/fit-method-save_object.html deleted file mode 100644 index ac2d20ae2..000000000 --- a/docs/reference/fit-method-save_object.html +++ /dev/null @@ -1,196 +0,0 @@ - -Save fitted model object to a file — fit-method-save_object • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    This method is a wrapper around base::saveRDS() that ensures -that all posterior draws and diagnostics are saved when saving a fitted -model object. Because the contents of the CmdStan output CSV files are only -read into R lazily (i.e., as needed), the $save_object() method is the -safest way to guarantee that everything has been read in before saving.

    -

    See the "Saving fitted model objects" section of the -Getting started with CmdStanR -vignette for some suggestions on faster model saving for large models.

    -
    - -
    -
    save_object(file, ...)
    -
    - -
    -

    Arguments

    -
    file
    -

    (string) Path where the file should be saved.

    - - -
    ...
    -

    Other arguments to pass to base::saveRDS() besides object and file.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic")
    -
    -temp_rds_file <- tempfile(fileext = ".RDS")
    -fit$save_object(file = temp_rds_file)
    -rm(fit)
    -
    -fit <- readRDS(temp_rds_file)
    -fit$summary()
    -#> # A tibble: 105 × 10
    -#>    variable      mean  median     sd    mad       q5      q95  rhat ess_bulk
    -#>    <chr>        <dbl>   <dbl>  <dbl>  <dbl>    <dbl>    <dbl> <dbl>    <dbl>
    -#>  1 lp__       -65.9   -65.6   1.42   1.21   -68.6    -64.3     1.00    2184.
    -#>  2 alpha        0.376   0.374 0.216  0.221    0.0219   0.730   1.00    4114.
    -#>  3 beta[1]     -0.661  -0.659 0.244  0.246   -1.08    -0.269   1.00    4410.
    -#>  4 beta[2]     -0.274  -0.272 0.227  0.228   -0.639    0.0940  1.00    3599.
    -#>  5 beta[3]      0.675   0.668 0.265  0.261    0.256    1.11    1.00    3811.
    -#>  6 log_lik[1]  -0.517  -0.507 0.0995 0.0970  -0.692   -0.369   1.00    4022.
    -#>  7 log_lik[2]  -0.404  -0.387 0.144  0.134   -0.663   -0.199   1.00    4613.
    -#>  8 log_lik[3]  -0.501  -0.465 0.219  0.208   -0.909   -0.215   1.00    3919.
    -#>  9 log_lik[4]  -0.450  -0.432 0.152  0.148   -0.723   -0.233   1.00    3378.
    -#> 10 log_lik[5]  -1.18   -1.15  0.277  0.272   -1.68    -0.758   1.00    4267.
    -#> # ℹ 95 more rows
    -#> # ℹ 1 more variable: ess_tail <dbl>
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-save_output_files.html b/docs/reference/fit-method-save_output_files.html deleted file mode 100644 index 06261804b..000000000 --- a/docs/reference/fit-method-save_output_files.html +++ /dev/null @@ -1,281 +0,0 @@ - -Save output and data files — fit-method-save_output_files • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    All fitted model objects have methods for saving (moving to a -specified location) the files created by CmdStanR to hold CmdStan output -csv files and input data files. These methods move the files from their -current location (possibly the temporary directory) to a user-specified -location. The paths stored in the fitted model object will also be -updated to point to the new file locations.

    -

    The versions without the save_ prefix (e.g., $output_files()) return -the current file paths without moving any files.

    -
    - -
    -
    save_output_files(dir = ".", basename = NULL, timestamp = TRUE, random = TRUE)
    -
    -save_latent_dynamics_files(
    -  dir = ".",
    -  basename = NULL,
    -  timestamp = TRUE,
    -  random = TRUE
    -)
    -
    -save_profile_files(dir = ".", basename = NULL, timestamp = TRUE, random = TRUE)
    -
    -save_data_file(dir = ".", basename = NULL, timestamp = TRUE, random = TRUE)
    -
    -save_config_files(dir = ".", basename = NULL, timestamp = TRUE, random = TRUE)
    -
    -save_metric_files(dir = ".", basename = NULL, timestamp = TRUE, random = TRUE)
    -
    -output_files(include_failed = FALSE)
    -
    -profile_files(include_failed = FALSE)
    -
    -latent_dynamics_files(include_failed = FALSE)
    -
    -data_file()
    -
    -config_files(include_failed = FALSE)
    -
    -metric_files(include_failed = FALSE)
    -
    - -
    -

    Arguments

    -
    dir
    -

    (string) Path to directory where the files should be saved.

    - - -
    basename
    -

    (string) Base filename to use. See Details.

    - - -
    timestamp
    -

    (logical) Should a timestamp be added to the file name(s)? -Defaults to TRUE. See Details.

    - - -
    random
    -

    (logical) Should random alphanumeric characters be added to the -end of the file name(s)? Defaults to TRUE. See Details.

    - - -
    include_failed
    -

    (logical) Should CmdStan runs that failed also be -included? The default is FALSE.

    - -
    -
    -

    Value

    - - -

    The $save_* methods print a message with the new file paths and (invisibly) -return a character vector of the new paths (or NA for any that couldn't be -copied). They also have the side effect of setting the internal paths in the -fitted model object to the new paths.

    - - -

    The methods without the save_ prefix return character vectors of file -paths without moving any files.

    -
    -
    -

    Details

    - - -

    For $save_output_files() the files moved to dir will have names of -the form basename-timestamp-id-random, where

    • basename is the user's provided basename argument;

    • -
    • timestamp is of the form format(Sys.time(), "%Y%m%d%H%M");

    • -
    • id is the MCMC chain id (or 1 for non MCMC);

    • -
    • random contains six random alphanumeric characters;

    • -

    For $save_latent_dynamics_files() everything is the same as for -$save_output_files() except "-diagnostic-" is included in the new -file name after basename.

    -

    For $save_profile_files() everything is the same as for -$save_output_files() except "-profile-" is included in the new -file name after basename.

    -

    For $save_metric_files() everything is the same as for -$save_output_files() except "-metric-" is included in the new -file name after basename.

    -

    For $save_config_files() everything is the same as for -$save_output_files() except "-config-" is included in the new -file name after basename.

    -

    For $save_data_file() no id is included in the file name because even -with multiple MCMC chains the data file is the same.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example()
    -fit$output_files()
    -#> [1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-1-466e74.csv"
    -#> [2] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-2-466e74.csv"
    -#> [3] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-3-466e74.csv"
    -#> [4] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310845-4-466e74.csv"
    -fit$data_file()
    -#> [1] "/private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/Rtmp0Jp8Zk/temp_libpathb838752e97c0/cmdstanr/logistic.data.json"
    -
    -# just using tempdir for the example
    -my_dir <- tempdir()
    -fit$save_output_files(dir = my_dir, basename = "banana")
    -#> Moved 4 files and set internal paths to new locations:
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/banana-202503310845-1-6af888.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/banana-202503310845-2-6af888.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/banana-202503310845-3-6af888.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/banana-202503310845-4-6af888.csv
    -fit$save_output_files(dir = my_dir, basename = "tomato", timestamp = FALSE)
    -#> Moved 4 files and set internal paths to new locations:
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/tomato-1-7df674.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/tomato-2-7df674.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/tomato-3-7df674.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/tomato-4-7df674.csv
    -fit$save_output_files(dir = my_dir, basename = "lettuce", timestamp = FALSE, random = FALSE)
    -#> Moved 4 files and set internal paths to new locations:
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/lettuce-1.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/lettuce-2.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/lettuce-3.csv
    -#> - /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/lettuce-4.csv
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-summary.html b/docs/reference/fit-method-summary.html deleted file mode 100644 index e394ca9ff..000000000 --- a/docs/reference/fit-method-summary.html +++ /dev/null @@ -1,300 +0,0 @@ - -Compute a summary table of estimates and diagnostics — fit-method-summary • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $summary() method runs -summarise_draws() from the posterior -package and returns the output. For MCMC, only post-warmup draws are -included in the summary.

    -

    There is also a $print() method that prints the same summary stats but -removes the extra formatting used for printing tibbles and returns the -fitted model object itself. The $print() method may also be faster than -$summary() because it is designed to only compute the summary statistics -for the variables that will actually fit in the printed output whereas -$summary() will compute them for all of the specified variables in order -to be able to return them to the user. See Examples.

    -
    - -
    -
    summary(variables = NULL, ...)
    -
    - -
    -

    Arguments

    -
    variables
    -

    (character vector) The variables to include.

    - - -
    ...
    -

    Optional arguments to pass to posterior::summarise_draws().

    - -
    -
    -

    Value

    - - -

    The $summary() method returns the tibble data frame created by -posterior::summarise_draws().

    - - -

    The $print() method returns the fitted model object itself (invisibly), -which is the standard behavior for print methods in R.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit <- cmdstanr_example("logistic")
    -fit$summary()
    -#> # A tibble: 105 × 10
    -#>    variable      mean  median     sd    mad       q5     q95  rhat ess_bulk
    -#>    <chr>        <dbl>   <dbl>  <dbl>  <dbl>    <dbl>   <dbl> <dbl>    <dbl>
    -#>  1 lp__       -66.0   -65.6   1.45   1.21   -68.7    -64.3    1.00    2233.
    -#>  2 alpha        0.382   0.380 0.214  0.217    0.0308   0.730  1.00    4473.
    -#>  3 beta[1]     -0.667  -0.665 0.248  0.254   -1.08    -0.261  1.00    4454.
    -#>  4 beta[2]     -0.274  -0.271 0.233  0.232   -0.649    0.103  1.00    4166.
    -#>  5 beta[3]      0.680   0.672 0.264  0.258    0.254    1.12   1.00    3555.
    -#>  6 log_lik[1]  -0.514  -0.506 0.0973 0.0977  -0.684   -0.368  1.00    4272.
    -#>  7 log_lik[2]  -0.403  -0.383 0.147  0.137   -0.677   -0.199  1.00    4474.
    -#>  8 log_lik[3]  -0.497  -0.465 0.217  0.204   -0.897   -0.202  1.00    4228.
    -#>  9 log_lik[4]  -0.450  -0.434 0.152  0.148   -0.717   -0.238  1.00    3834.
    -#> 10 log_lik[5]  -1.18   -1.16  0.278  0.275   -1.67    -0.760  1.00    4261.
    -#> # ℹ 95 more rows
    -#> # ℹ 1 more variable: ess_tail <dbl>
    -fit$print()
    -#>    variable   mean median   sd  mad     q5    q95 rhat ess_bulk ess_tail
    -#>  lp__       -65.96 -65.62 1.45 1.21 -68.75 -64.29 1.00     2232     2919
    -#>  alpha        0.38   0.38 0.21 0.22   0.03   0.73 1.00     4473     3190
    -#>  beta[1]     -0.67  -0.66 0.25 0.25  -1.08  -0.26 1.00     4454     3056
    -#>  beta[2]     -0.27  -0.27 0.23 0.23  -0.65   0.10 1.00     4166     2823
    -#>  beta[3]      0.68   0.67 0.26 0.26   0.25   1.12 1.00     3555     3140
    -#>  log_lik[1]  -0.51  -0.51 0.10 0.10  -0.68  -0.37 1.00     4272     3239
    -#>  log_lik[2]  -0.40  -0.38 0.15 0.14  -0.68  -0.20 1.00     4474     3106
    -#>  log_lik[3]  -0.50  -0.46 0.22 0.20  -0.90  -0.20 1.00     4228     3323
    -#>  log_lik[4]  -0.45  -0.43 0.15 0.15  -0.72  -0.24 1.00     3833     2800
    -#>  log_lik[5]  -1.18  -1.16 0.28 0.28  -1.67  -0.76 1.00     4260     3060
    -#> 
    -#>  # showing 10 of 105 rows (change via 'max_rows' argument or 'cmdstanr_max_rows' option)
    -fit$print(max_rows = 2) # same as print(fit, max_rows = 2)
    -#>  variable   mean median   sd  mad     q5    q95 rhat ess_bulk ess_tail
    -#>     lp__  -65.96 -65.62 1.45 1.21 -68.75 -64.29 1.00     2232     2919
    -#>     alpha   0.38   0.38 0.21 0.22   0.03   0.73 1.00     4473     3190
    -#> 
    -#>  # showing 2 of 105 rows (change via 'max_rows' argument or 'cmdstanr_max_rows' option)
    -
    -# include only certain variables
    -fit$summary("beta")
    -#> # A tibble: 3 × 10
    -#>   variable   mean median    sd   mad     q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>  <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 beta[1]  -0.667 -0.665 0.248 0.254 -1.08  -0.261  1.00    4454.    3056.
    -#> 2 beta[2]  -0.274 -0.271 0.233 0.232 -0.649  0.103  1.00    4166.    2824.
    -#> 3 beta[3]   0.680  0.672 0.264 0.258  0.254  1.12   1.00    3555.    3140.
    -fit$print(c("alpha", "beta[2]"))
    -#>  variable  mean median   sd  mad    q5  q95 rhat ess_bulk ess_tail
    -#>   alpha    0.38   0.38 0.21 0.22  0.03 0.73 1.00     4473     3190
    -#>   beta[2] -0.27  -0.27 0.23 0.23 -0.65 0.10 1.00     4166     2823
    -
    -# include all variables but only certain summaries
    -fit$summary(NULL, c("mean", "sd"))
    -#> # A tibble: 105 × 3
    -#>    variable      mean     sd
    -#>    <chr>        <dbl>  <dbl>
    -#>  1 lp__       -66.0   1.45  
    -#>  2 alpha        0.382 0.214 
    -#>  3 beta[1]     -0.667 0.248 
    -#>  4 beta[2]     -0.274 0.233 
    -#>  5 beta[3]      0.680 0.264 
    -#>  6 log_lik[1]  -0.514 0.0973
    -#>  7 log_lik[2]  -0.403 0.147 
    -#>  8 log_lik[3]  -0.497 0.217 
    -#>  9 log_lik[4]  -0.450 0.152 
    -#> 10 log_lik[5]  -1.18  0.278 
    -#> # ℹ 95 more rows
    -
    -# can use functions created from formulas
    -# for example, calculate Pr(beta > 0)
    -fit$summary("beta", prob_gt_0 = ~ mean(. > 0))
    -#> # A tibble: 3 × 2
    -#>   variable prob_gt_0
    -#>   <chr>        <dbl>
    -#> 1 beta[1]     0.0015
    -#> 2 beta[2]     0.118 
    -#> 3 beta[3]     0.994 
    -
    -# can combine user-specified functions with
    -# the default summary functions
    -fit$summary(variables = c("alpha", "beta"),
    -  posterior::default_summary_measures()[1:4],
    -  quantiles = ~ quantile2(., probs = c(0.025, 0.975)),
    -  posterior::default_convergence_measures()
    -  )
    -#> # A tibble: 4 × 10
    -#>   variable   mean median    sd   mad    q2.5  q97.5  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 alpha     0.382  0.380 0.214 0.217 -0.0460  0.804  1.00    4473.    3191.
    -#> 2 beta[1]  -0.667 -0.665 0.248 0.254 -1.16   -0.189  1.00    4454.    3056.
    -#> 3 beta[2]  -0.274 -0.271 0.233 0.232 -0.727   0.182  1.00    4166.    2824.
    -#> 4 beta[3]   0.680  0.672 0.264 0.258  0.172   1.21   1.00    3555.    3140.
    -
    -# the functions need to calculate the appropriate
    -# value for a matrix input
    -fit$summary(variables = "alpha", dim)
    -#> # A tibble: 1 × 3
    -#>   variable dim.1 dim.2
    -#>   <chr>    <int> <int>
    -#> 1 alpha     1000     4
    -
    -# the usual [stats::var()] is therefore not directly suitable as it
    -# will produce a covariance matrix unless the data is converted to a vector
    -fit$print(c("alpha", "beta"), var2 = ~var(as.vector(.x)))
    -#>  variable var2
    -#>   alpha   0.05
    -#>   beta[1] 0.06
    -#>   beta[2] 0.05
    -#>   beta[3] 0.07
    -
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-time.html b/docs/reference/fit-method-time.html deleted file mode 100644 index 4ec8378a2..000000000 --- a/docs/reference/fit-method-time.html +++ /dev/null @@ -1,200 +0,0 @@ - -Report timing of CmdStan runs — fit-method-time • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Report the run time in seconds. For MCMC additional information -is provided about the run times of individual chains and the warmup and -sampling phases. For Laplace approximation the time only include the time -for drawing the approximate sample and does not include the time -taken to run the $optimize() method.

    -
    - -
    -
    time()
    -
    - -
    -

    Value

    - - -

    A list with elements

    • total: (scalar) The total run time. For MCMC this may be different than -the sum of the chain run times if parallelization was used.

    • -
    • chains: (data frame) For MCMC only, timing info for the individual -chains. The data frame has columns "chain_id", "warmup", "sampling", -and "total".

    • -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample")
    -fit_mcmc$time()
    -#> $total
    -#> [1] 0.938334
    -#> 
    -#> $chains
    -#>   chain_id warmup sampling total
    -#> 1        1  0.022    0.074 0.096
    -#> 2        2  0.022    0.076 0.098
    -#> 3        3  0.022    0.076 0.098
    -#> 4        4  0.022    0.074 0.096
    -#> 
    -
    -fit_vb <- cmdstanr_example("logistic", method = "variational")
    -fit_vb$time()
    -#> $total
    -#> [1] 0.1466939
    -#> 
    -
    -fit_mle <- cmdstanr_example("logistic", method = "optimize", jacobian = TRUE)
    -fit_mle$time()
    -#> $total
    -#> [1] 0.146842
    -#> 
    -
    -# use fit_mle to draw samples from laplace approximation
    -fit_laplace <- cmdstanr_example("logistic", method = "laplace", mode = fit_mle)
    -fit_laplace$time() # just time for drawing sample not for running optimize
    -#> $total
    -#> [1] 0.1427319
    -#> 
    -fit_laplace$time()$total + fit_mle$time()$total # total time
    -#> [1] 0.2895739
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-unconstrain_draws.html b/docs/reference/fit-method-unconstrain_draws.html deleted file mode 100644 index 33a5af95d..000000000 --- a/docs/reference/fit-method-unconstrain_draws.html +++ /dev/null @@ -1,197 +0,0 @@ - -Transform all parameter draws to the unconstrained scale — fit-method-unconstrain_draws • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $unconstrain_draws() method transforms all parameter draws -to the unconstrained scale. The method returns a list for each chain, -containing the parameter values from each iteration on the unconstrained -scale. If called with no arguments, then the draws within the fit object -are unconstrained. Alternatively, either an existing draws object or a -character vector of paths to CSV files can be passed.

    -
    - -
    -
    unconstrain_draws(
    -  files = NULL,
    -  draws = NULL,
    -  format = getOption("cmdstanr_draws_format", "draws_array"),
    -  inc_warmup = FALSE
    -)
    -
    - -
    -

    Arguments

    -
    files
    -

    (character vector) The paths to the CmdStan CSV files. These can -be files generated by running CmdStanR or running CmdStan directly.

    - - -
    draws
    -

    A posterior::draws_* object.

    - - -
    format
    -

    (string) The format of the returned draws. Must be a valid -format from the posterior package.

    - - -
    inc_warmup
    -

    (logical) Should warmup draws be included? Defaults to -FALSE.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -
    -# Unconstrain all internal draws
    -unconstrained_internal_draws <- fit_mcmc$unconstrain_draws()
    -
    -# Unconstrain external CmdStan CSV files
    -unconstrained_csv <- fit_mcmc$unconstrain_draws(files = fit_mcmc$output_files())
    -
    -# Unconstrain existing draws object
    -unconstrained_draws <- fit_mcmc$unconstrain_draws(draws = fit_mcmc$draws())
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-unconstrain_variables.html b/docs/reference/fit-method-unconstrain_variables.html deleted file mode 100644 index 1d18cd8ee..000000000 --- a/docs/reference/fit-method-unconstrain_variables.html +++ /dev/null @@ -1,163 +0,0 @@ - -Transform a set of parameter values to the unconstrained scale — fit-method-unconstrain_variables • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $unconstrain_variables() method transforms input -parameters to the unconstrained scale.

    -
    - -
    -
    unconstrain_variables(variables)
    -
    - -
    -

    Arguments

    -
    variables
    -

    (list) A list of parameter values to transform, in the same -format as provided to the init argument of the $sample() method.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -fit_mcmc$unconstrain_variables(list(alpha = 0.5, beta = c(0.7, 1.1, 0.2)))
    -#> [1] 0.5 0.7 1.1 0.2
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/fit-method-variable_skeleton.html b/docs/reference/fit-method-variable_skeleton.html deleted file mode 100644 index defab3ed4..000000000 --- a/docs/reference/fit-method-variable_skeleton.html +++ /dev/null @@ -1,180 +0,0 @@ - -Return the variable skeleton for relist — fit-method-variable_skeleton • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $variable_skeleton() method returns the variable skeleton -needed by utils::relist() to re-structure a vector of constrained -parameter values to a named list.

    -
    - -
    -
    variable_skeleton(transformed_parameters = TRUE, generated_quantities = TRUE)
    -
    - -
    -

    Arguments

    -
    transformed_parameters
    -

    (logical) Whether to include transformed -parameters in the skeleton (defaults to TRUE).

    - - -
    generated_quantities
    -

    (logical) Whether to include generated quantities -in the skeleton (defaults to TRUE).

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -fit_mcmc <- cmdstanr_example("logistic", method = "sample", force_recompile = TRUE)
    -fit_mcmc$variable_skeleton()
    -#> $alpha
    -#> [1] 0
    -#> 
    -#> $beta
    -#> [1] 0 0 0
    -#> 
    -#> $log_lik
    -#>   [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    -#>  [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    -#>  [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/index.html b/docs/reference/index.html deleted file mode 100644 index 5537abbbe..000000000 --- a/docs/reference/index.html +++ /dev/null @@ -1,412 +0,0 @@ - -Function reference • cmdstanr - - -
    -
    - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    Package overview and global options

    -

    An overview of the package and how it differs from RStan.

    -
    -

    cmdstanr-package cmdstanr CmdStanR

    -

    CmdStanR: the R interface to CmdStan

    -

    cmdstanr_global_options

    -

    CmdStanR global options

    -

    Installing and setting the path to CmdStan

    -

    Install CmdStan, assuming the necessary C++ toolchain.

    -
    -

    install_cmdstan() rebuild_cmdstan() cmdstan_make_local() check_cmdstan_toolchain()

    -

    Install CmdStan or clean and rebuild an existing installation

    -

    set_cmdstan_path() cmdstan_path() cmdstan_version()

    -

    Get or set the file path to the CmdStan installation

    -

    Running CmdStan from R

    -

    Run CmdStan from R.

    -
    -

    cmdstan_model()

    -

    Create a new CmdStanModel object

    -

    CmdStanModel

    -

    CmdStanModel objects

    -

    check_syntax()

    -

    Check syntax of a Stan program

    -

    compile()

    -

    Compile a Stan program

    -

    diagnose()

    -

    Run Stan's diagnose method

    -

    expose_functions()

    -

    Expose Stan functions to R

    -

    format()

    -

    Run stanc's auto-formatter on the model code.

    -

    generate_quantities()

    -

    Run Stan's standalone generated quantities method

    -

    laplace()

    -

    Run Stan's Laplace algorithm

    -

    optimize()

    -

    Run Stan's optimization algorithms

    -

    pathfinder()

    -

    Run Stan's Pathfinder Variational Inference Algorithm

    -

    sample()

    -

    Run Stan's MCMC algorithms

    -

    sample_mpi()

    -

    Run Stan's MCMC algorithms with MPI

    -

    variables()

    -

    Input and output variables of a Stan program

    -

    variational()

    -

    Run Stan's variational approximation algorithms

    -

    cmdstanr_example() print_example_program()

    -

    Fit models for use in examples

    -

    Fitted model objects and methods

    -

    -
    -

    CmdStanMCMC

    -

    CmdStanMCMC objects

    -

    CmdStanMLE

    -

    CmdStanMLE objects

    -

    CmdStanLaplace

    -

    CmdStanLaplace objects

    -

    CmdStanVB

    -

    CmdStanVB objects

    -

    CmdStanPathfinder

    -

    CmdStanPathfinder objects

    -

    CmdStanGQ

    -

    CmdStanGQ objects

    -

    CmdStanDiagnose

    -

    CmdStanDiagnose objects

    -

    cmdstan_summary() cmdstan_diagnose()

    -

    Run CmdStan's stansummary and diagnose utilities

    -

    code()

    -

    Return Stan code

    -

    constrain_variables()

    -

    Transform a set of unconstrained parameter values to the constrained scale

    -

    diagnostic_summary()

    -

    Sampler diagnostic summaries and warnings

    -

    draws()

    -

    Extract posterior draws

    -

    grad_log_prob()

    -

    Calculate the log-probability and the gradient w.r.t. each input for a given vector of unconstrained parameters

    -

    gradients()

    -

    Extract gradients after diagnostic mode

    -

    hessian()

    -

    Calculate the log-probability , the gradient w.r.t. each input, and the hessian for a given vector of unconstrained parameters

    -

    init()

    -

    Extract user-specified initial values

    -

    init_model_methods()

    -

    Compile additional methods for accessing the model log-probability function and parameter constraining and unconstraining.

    -

    inv_metric()

    -

    Extract inverse metric (mass matrix) after MCMC

    -

    log_prob()

    -

    Calculate the log-probability given a provided vector of unconstrained parameters.

    -

    loo()

    -

    Leave-one-out cross-validation (LOO-CV)

    -

    lp() lp_approx()

    -

    Extract log probability (target)

    -

    metadata()

    -

    Extract metadata from CmdStan CSV files

    -

    mle()

    -

    Extract point estimate after optimization

    -

    num_chains()

    -

    Extract number of chains after MCMC

    -

    output()

    -

    Access console output

    -

    profiles()

    -

    Return profiling data

    -

    return_codes()

    -

    Extract return codes from CmdStan

    -

    sampler_diagnostics()

    -

    Extract sampler diagnostics after MCMC

    -

    save_object()

    -

    Save fitted model object to a file

    -

    save_output_files() save_latent_dynamics_files() save_profile_files() save_data_file() save_config_files() save_metric_files() output_files() profile_files() latent_dynamics_files() data_file() config_files() metric_files()

    -

    Save output and data files

    -

    summary()

    -

    Compute a summary table of estimates and diagnostics

    -

    time()

    -

    Report timing of CmdStan runs

    -

    unconstrain_draws()

    -

    Transform all parameter draws to the unconstrained scale

    -

    unconstrain_variables()

    -

    Transform a set of parameter values to the unconstrained scale

    -

    variable_skeleton()

    -

    Return the variable skeleton for relist

    -

    expose_functions()

    -

    Expose Stan functions to R

    -

    Other tools

    -

    -
    -

    read_cmdstan_csv() as_cmdstan_fit()

    -

    Read CmdStan CSV files into R

    -

    write_stan_json()

    -

    Write data to a JSON file readable by CmdStan

    -

    write_stan_file()

    -

    Write Stan code to a file

    -

    draws_to_csv()

    -

    Write posterior draws objects to CSV files suitable for running standalone generated quantities with CmdStan.

    -

    as_mcmc.list()

    -

    Convert CmdStanMCMC to mcmc.list

    -

    as_draws(<CmdStanMCMC>) as_draws(<CmdStanMLE>) as_draws(<CmdStanLaplace>) as_draws(<CmdStanVB>) as_draws(<CmdStanGQ>) as_draws(<CmdStanPathfinder>)

    -

    Create a draws object from a CmdStanR fitted model object

    -

    as.CmdStanMCMC() as.CmdStanMLE() as.CmdStanLaplace() as.CmdStanVB() as.CmdStanPathfinder() as.CmdStanGQ() as.CmdStanDiagnose()

    -

    Coercion methods for CmdStan objects

    -

    Using CmdStanR with knitr and R Markdown

    -

    -
    -

    register_knitr_engine()

    -

    Register CmdStanR's knitr engine for Stan

    -

    eng_cmdstan()

    -

    CmdStan knitr engine for Stan

    - - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/install_cmdstan.html b/docs/reference/install_cmdstan.html deleted file mode 100644 index 0cdf27c32..000000000 --- a/docs/reference/install_cmdstan.html +++ /dev/null @@ -1,325 +0,0 @@ - -Install CmdStan or clean and rebuild an existing installation — install_cmdstan • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The install_cmdstan() function attempts to download and -install the latest release of CmdStan. -Installing a previous release or a new release candidate is also possible -by specifying the version or release_url argument. -See the first few sections of the CmdStan -installation guide -for details on the C++ toolchain required for installing CmdStan.

    -

    The rebuild_cmdstan() function cleans and rebuilds the CmdStan -installation. Use this function in case of any issues when compiling models.

    -

    The cmdstan_make_local() function is used to read/write makefile flags -and variables from/to the make/local file of a CmdStan installation. -Writing to the make/local file can be used to permanently add makefile -flags/variables to an installation. For example adding specific compiler -switches, changing the C++ compiler, etc. A change to the make/local file -should typically be followed by calling rebuild_cmdstan().

    -

    The check_cmdstan_toolchain() function attempts to check for the required -C++ toolchain. It is called internally by install_cmdstan() but can also -be called directly by the user. On Windows only, calling the function with -the fix = TRUE argument will attempt to install the necessary toolchain -components if they are not found. For Windows users with RTools and CmdStan -versions >= 2.35 no additional toolchain configuration is required.

    -

    NOTE: When installing CmdStan on Windows with RTools and CmdStan versions -prior to 2.35.0, the above additional toolchain configuration -is still required. To enable this configuration, set the environment variable -CMDSTANR_USE_MSYS_TOOLCHAIN to 'true' and call -check_cmdstan_toolchain(fix = TRUE).

    -
    - -
    -
    install_cmdstan(
    -  dir = NULL,
    -  cores = getOption("mc.cores", 2),
    -  quiet = FALSE,
    -  overwrite = FALSE,
    -  timeout = 1200,
    -  version = NULL,
    -  release_url = NULL,
    -  release_file = NULL,
    -  cpp_options = list(),
    -  check_toolchain = TRUE,
    -  wsl = FALSE
    -)
    -
    -rebuild_cmdstan(
    -  dir = cmdstan_path(),
    -  cores = getOption("mc.cores", 2),
    -  quiet = FALSE,
    -  timeout = 600
    -)
    -
    -cmdstan_make_local(dir = cmdstan_path(), cpp_options = NULL, append = TRUE)
    -
    -check_cmdstan_toolchain(fix = FALSE, quiet = FALSE)
    -
    - -
    -

    Arguments

    -
    dir
    -

    (string) The path to the directory in which to install CmdStan. -The default is to install it in a directory called .cmdstan within the -user's home directory (i.e, file.path(Sys.getenv("HOME"), ".cmdstan")).

    - - -
    cores
    -

    (integer) The number of CPU cores to use to parallelize building -CmdStan and speed up installation. If cores is not specified then the -default is to look for the option "mc.cores", which can be set for an -entire R session by options(mc.cores=value). If the "mc.cores" option -has not been set then the default is 2.

    - - -
    quiet
    -

    (logical) For install_cmdstan(), should the verbose output -from the system processes be suppressed when building the CmdStan binaries? -The default is FALSE. For check_cmdstan_toolchain(), should the -function suppress printing informational messages? The default is FALSE. -If TRUE only errors will be printed.

    - - -
    overwrite
    -

    (logical) Should CmdStan still be downloaded and installed -even if an installation of the same version is found in dir? The default -is FALSE, in which case an informative error is thrown instead of -overwriting the user's installation.

    - - -
    timeout
    -

    (positive real) Timeout (in seconds) for the build stage of -the installation.

    - - -
    version
    -

    (string) The CmdStan release version to install. The default -is NULL, which downloads the latest stable release from -https://github.com/stan-dev/cmdstan/releases.

    - - -
    release_url
    -

    (string) The URL for the specific CmdStan release or -release candidate to install. See https://github.com/stan-dev/cmdstan/releases. -The URL should point to the tarball (.tar.gz. file) itself, e.g., -release_url="https://github.com/stan-dev/cmdstan/releases/download/v2.25.0/cmdstan-2.25.0.tar.gz". -If both version and release_url are specified then version will be used.

    - - -
    release_file
    -

    (string) A file path to a CmdStan release tar.gz file -downloaded from the releases page: https://github.com/stan-dev/cmdstan/releases. -For example: release_file=""./cmdstan-2.33.1.tar.gz". If release_file is -specified then both release_url and version will be ignored.

    - - -
    cpp_options
    -

    (list) Any makefile flags/variables to be written to -the make/local file. For example, list("CXX" = "clang++") will force -the use of clang for compilation.

    - - -
    check_toolchain
    -

    (logical) Should install_cmdstan() attempt to check -that the required toolchain is installed and properly configured. The -default is TRUE.

    - - -
    wsl
    -

    (logical) Should CmdStan be installed and run through the Windows -Subsystem for Linux (WSL). The default is FALSE.

    - - -
    append
    -

    (logical) For cmdstan_make_local(), should the listed -makefile flags be appended to the end of the existing make/local file? -The default is TRUE. If FALSE the file is overwritten.

    - - -
    fix
    -

    For check_cmdstan_toolchain(), should CmdStanR attempt to fix -any detected toolchain problems? Currently this option is only available on -Windows. The default is FALSE, in which case problems are only reported -along with suggested fixes.

    - -
    -
    -

    Value

    - - -

    For cmdstan_make_local(), if cpp_options=NULL then the existing -contents of make/local are returned without writing anything, otherwise -the updated contents are returned.

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -check_cmdstan_toolchain()
    -#> The C++ toolchain required for CmdStan is setup properly!
    -
    -# install_cmdstan(cores = 4)
    -
    -cpp_options <- list(
    -  "CXX" = "clang++",
    -  "CXXFLAGS+= -march=native",
    -  PRECOMPILED_HEADERS = TRUE
    -)
    -# cmdstan_make_local(cpp_options = cpp_options)
    -# rebuild_cmdstan()
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-check_syntax.html b/docs/reference/model-method-check_syntax.html deleted file mode 100644 index 39684030b..000000000 --- a/docs/reference/model-method-check_syntax.html +++ /dev/null @@ -1,239 +0,0 @@ - -Check syntax of a Stan program — model-method-check_syntax • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $check_syntax() method of a CmdStanModel object -checks the Stan program for syntax errors and returns TRUE (invisibly) if -parsing succeeds. If invalid syntax in found an error is thrown.

    -
    - -
    -
    check_syntax(
    -  pedantic = FALSE,
    -  include_paths = NULL,
    -  stanc_options = list(),
    -  quiet = FALSE
    -)
    -
    - -
    -

    Arguments

    -
    pedantic
    -

    (logical) Should pedantic mode be turned on? The default is -FALSE. Pedantic mode attempts to warn you about potential issues in your -Stan program beyond syntax errors. For details see the Pedantic mode chapter in -the Stan Reference Manual.

    - - -
    include_paths
    -

    (character vector) Paths to directories where Stan -should look for files specified in #include directives in the Stan -program.

    - - -
    stanc_options
    -

    (list) Any other Stan-to-C++ transpiler options to be -used when compiling the model. See the documentation for the -$compile() method for details.

    - - -
    quiet
    -

    (logical) Should informational messages be suppressed? The -default is FALSE, which will print a message if the Stan program is valid -or the compiler error message if there are syntax errors. If TRUE, only -the error message will be printed.

    - -
    -
    -

    Value

    - - -

    The $check_syntax() method returns TRUE (invisibly) if the model -is valid.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -file <- write_stan_file("
    -data {
    -  int N;
    -  array[N] int y;
    -}
    -parameters {
    -  // should have <lower=0> but omitting to demonstrate pedantic mode
    -  real lambda;
    -}
    -model {
    -  y ~ poisson(lambda);
    -}
    -")
    -mod <- cmdstan_model(file, compile = FALSE)
    -
    -# the program is syntactically correct, however...
    -mod$check_syntax()
    -#> Stan program is syntactically correct
    -
    -# pedantic mode will warn that lambda should be constrained to be positive
    -# and that lambda has no prior distribution
    -mod$check_syntax(pedantic = TRUE)
    -#> Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/model_febb1e69c7387a0e64cf13583e078104.stan', line 11, column 14: A
    -#>     poisson distribution is given parameter lambda as a rate parameter
    -#>     (argument 1), but lambda was not constrained to be strictly positive.
    -#> Warning: The parameter lambda has no priors. This means either no prior is
    -#>     provided, or the prior(s) depend on data variables. In the later case,
    -#>     this may be a false positive.
    -#> Stan program is syntactically correct
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-compile.html b/docs/reference/model-method-compile.html deleted file mode 100644 index 6e749d1cd..000000000 --- a/docs/reference/model-method-compile.html +++ /dev/null @@ -1,337 +0,0 @@ - -Compile a Stan program — model-method-compile • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $compile() method of a CmdStanModel object checks the -syntax of the Stan program, translates the program to C++, and creates a -compiled executable. To just check the syntax of a Stan program without -compiling it use the $check_syntax() method -instead.

    -

    In most cases the user does not need to explicitly call the $compile() -method as compilation will occur when calling cmdstan_model(). However it -is possible to set compile=FALSE in the call to cmdstan_model() and -subsequently call the $compile() method directly.

    -

    After compilation, the paths to the executable and the .hpp file -containing the generated C++ code are available via the $exe_file() and -$hpp_file() methods. The default is to create the executable in the same -directory as the Stan program and to write the generated C++ code in a -temporary directory. To save the C++ code to a non-temporary location use -$save_hpp_file(dir).

    -
    - -
    -
    compile(
    -  quiet = TRUE,
    -  dir = NULL,
    -  pedantic = FALSE,
    -  include_paths = NULL,
    -  user_header = NULL,
    -  cpp_options = list(),
    -  stanc_options = list(),
    -  force_recompile = getOption("cmdstanr_force_recompile", default = FALSE),
    -  compile_model_methods = FALSE,
    -  compile_standalone = FALSE,
    -  dry_run = FALSE,
    -  compile_hessian_method = FALSE,
    -  threads = FALSE
    -)
    -
    - -
    -

    Arguments

    -
    quiet
    -

    (logical) Should the verbose output from CmdStan during -compilation be suppressed? The default is TRUE, but if you encounter an -error we recommend trying again with quiet=FALSE to see more of the -output.

    - - -
    dir
    -

    (string) The path to the directory in which to store the CmdStan -executable (or .hpp file if using $save_hpp_file()). The default is the -same location as the Stan program.

    - - -
    pedantic
    -

    (logical) Should pedantic mode be turned on? The default is -FALSE. Pedantic mode attempts to warn you about potential issues in your -Stan program beyond syntax errors. For details see the Pedantic mode section in -the Stan Reference Manual. Note: to do a pedantic check for a model -without compiling it or for a model that is already compiled the -$check_syntax() method can be used instead.

    - - -
    include_paths
    -

    (character vector) Paths to directories where Stan -should look for files specified in #include directives in the Stan -program.

    - - -
    user_header
    -

    (string) The path to a C++ file (with a .hpp extension) -to compile with the Stan model.

    - - -
    cpp_options
    -

    (list) Any makefile options to be used when compiling the -model (STAN_THREADS, STAN_MPI, STAN_OPENCL, etc.). Anything you would -otherwise write in the make/local file. For an example of using threading -see the Stan case study -Reduce Sum: A Minimal Example.

    - - -
    stanc_options
    -

    (list) Any Stan-to-C++ transpiler options to be used -when compiling the model. See the Examples section below as well as the -stanc chapter of the CmdStan Guide for more details on available options: -https://mc-stan.org/docs/cmdstan-guide/stanc.html.

    - - -
    force_recompile
    -

    (logical) Should the model be recompiled even if was -not modified since last compiled. The default is FALSE. Can also be set -via a global cmdstanr_force_recompile option.

    - - -
    compile_model_methods
    -

    (logical) Compile additional model methods -(log_prob(), grad_log_prob(), constrain_variables(), -unconstrain_variables()).

    - - -
    compile_standalone
    -

    (logical) Should functions in the Stan model be -compiled for use in R? If TRUE the functions will be available via the -functions field in the compiled model object. This can also be done after -compilation using the -$expose_functions() method.

    - - -
    dry_run
    -

    (logical) If TRUE, the code will do all checks before compilation, -but skip the actual C++ compilation. Used to speedup tests.

    - - -
    compile_hessian_method
    -

    (logical) Should the (experimental) hessian() method be -be compiled with the model methods?

    - - -
    threads
    -

    Deprecated and will be removed in a future release. Please -turn on threading via cpp_options = list(stan_threads = TRUE) instead.

    - -
    -
    -

    Value

    - - -

    The $compile() method is called for its side effect of creating the -executable and adding its path to the CmdStanModel object, but it also -returns the CmdStanModel object invisibly.

    - - -

    After compilation, the $exe_file(), $hpp_file(), and $save_hpp_file()

    - - -

    methods can be used and return file paths.

    -
    -
    -

    See also

    -

    The $check_syntax() method to check -Stan syntax or enable pedantic model without compiling.

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    Other CmdStanModel methods: -model-method-check_syntax, -model-method-diagnose, -model-method-expose_functions, -model-method-format, -model-method-generate-quantities, -model-method-laplace, -model-method-optimize, -model-method-pathfinder, -model-method-sample, -model-method-sample_mpi, -model-method-variables, -model-method-variational

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -
    -# by default compilation happens when cmdstan_model() is called.
    -# to delay compilation until calling the $compile() method set compile=FALSE
    -mod <- cmdstan_model(file, compile = FALSE)
    -mod$compile()
    -mod$exe_file()
    -#> [1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli"
    -
    -# turn on threading support (for using functions that support within-chain parallelization)
    -mod$compile(force_recompile = TRUE, cpp_options = list(stan_threads = TRUE))
    -mod$exe_file()
    -#> [1] "/Users/jgabry/.cmdstan/cmdstan-2.36.0/examples/bernoulli/bernoulli"
    -
    -# turn on pedantic mode (new in Stan v2.24)
    -file_pedantic <- write_stan_file("
    -parameters {
    -  real sigma;  // pedantic mode will warn about missing <lower=0>
    -}
    -model {
    -  sigma ~ exponential(1);
    -}
    -")
    -mod <- cmdstan_model(file_pedantic, pedantic = TRUE)
    -#> Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/model-b9aa1e29138e.stan', line 6, column 2: Parameter
    -#>     sigma is given a exponential distribution, which has strictly positive
    -#>     support, but sigma was not constrained to be strictly positive.
    -
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-diagnose.html b/docs/reference/model-method-diagnose.html deleted file mode 100644 index 41e361f40..000000000 --- a/docs/reference/model-method-diagnose.html +++ /dev/null @@ -1,305 +0,0 @@ - -Run Stan's diagnose method — model-method-diagnose • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $diagnose() method of a CmdStanModel object -runs Stan's basic diagnostic feature that will calculate the gradients -of the initial state and compare them with gradients calculated by -finite differences. Discrepancies between the two indicate that there is -a problem with the model or initial states or else there is a bug in Stan.

    -
    - -
    -
    diagnose(
    -  data = NULL,
    -  seed = NULL,
    -  init = NULL,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  epsilon = NULL,
    -  error = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    epsilon
    -

    (positive real) The finite difference step size. Default -value is 1e-6.

    - - -
    error
    -

    (positive real) The error threshold. Default value is 1e-6.

    - -
    -
    -

    Value

    - - -

    A CmdStanDiagnose object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -test <- cmdstanr_example("logistic", method = "diagnose")
    -
    -# retrieve the gradients
    -test$gradients()
    -#>   param_idx     value     model finite_diff       error
    -#> 1         0 -1.760420  33.15260    33.15260 2.88651e-08
    -#> 2         1 -1.814920   5.15400     5.15400 6.47713e-09
    -#> 3         2  0.718975 -16.58770   -16.58770 2.24132e-08
    -#> 4         3  1.697010  -5.70682    -5.70682 5.89145e-10
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-expose_functions.html b/docs/reference/model-method-expose_functions.html deleted file mode 100644 index f401d289c..000000000 --- a/docs/reference/model-method-expose_functions.html +++ /dev/null @@ -1,232 +0,0 @@ - -Expose Stan functions to R — model-method-expose_functions • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $expose_functions() method of a CmdStanModel object -will compile the functions in the Stan program's functions block and -expose them for use in R. This can also be specified via the -compile_standalone argument to the $compile() -method.

    -

    This method is also available for fitted model objects (CmdStanMCMC, CmdStanVB, etc.). -See Examples.

    -

    Note: there may be many compiler warnings emitted during compilation but -these can be ignored so long as they are warnings and not errors.

    -
    - -
    -
    expose_functions(global = FALSE, verbose = FALSE)
    -
    - -
    -

    Arguments

    -
    global
    -

    (logical) Should the functions be added to the Global -Environment? The default is FALSE, in which case the functions are -available via the functions field of the R6 object.

    - - -
    verbose
    -

    (logical) Should detailed information about generated code be -printed to the console? Defaults to FALSE.

    - -
    - - -
    -

    Examples

    -
    # \dontrun{
    -stan_file <- write_stan_file(
    - "
    - functions {
    -   real a_plus_b(real a, real b) {
    -     return a + b;
    -   }
    - }
    - parameters {
    -   real x;
    - }
    - model {
    -   x ~ std_normal();
    - }
    - "
    -)
    -mod <- cmdstan_model(stan_file)
    -mod$expose_functions()
    -mod$functions$a_plus_b(1, 2)
    -#> [1] 3
    -
    -fit <- mod$sample(refresh = 0)
    -#> Running MCMC with 4 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.6 seconds.
    -#> 
    -fit$expose_functions() # already compiled because of above but this would compile them otherwise
    -#> Functions already compiled, nothing to do!
    -fit$functions$a_plus_b(1, 2)
    -#> [1] 3
    -# }
    -
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-format.html b/docs/reference/model-method-format.html deleted file mode 100644 index a3546c03a..000000000 --- a/docs/reference/model-method-format.html +++ /dev/null @@ -1,252 +0,0 @@ - -Run stanc's auto-formatter on the model code. — model-method-format • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $format() method of a CmdStanModel object -runs stanc's auto-formatter on the model code. Either saves the formatted -model directly back to the file or prints it for inspection.

    -
    - -
    -
    format(
    -  overwrite_file = FALSE,
    -  canonicalize = FALSE,
    -  backup = TRUE,
    -  max_line_length = NULL,
    -  quiet = FALSE
    -)
    -
    - -
    -

    Arguments

    -
    overwrite_file
    -

    (logical) Should the formatted code be written back -to the input model file. The default is FALSE.

    - - -
    canonicalize
    -

    (list or logical) Defines whether or not the compiler -should 'canonicalize' the Stan model, removing things like deprecated syntax. -Default is FALSE. If TRUE, all canonicalizations are run. You can also -supply a list of strings which represent options. In that case the options -are passed to stanc (new in Stan 2.29). See the User's guide section -for available canonicalization options.

    - - -
    backup
    -

    (logical) If TRUE, create stanfile.bak backups before -writing to the file. Disable this option if you're sure you have other -copies of the file or are using a version control system like Git. Defaults -to TRUE. The value is ignored if overwrite_file = FALSE.

    - - -
    max_line_length
    -

    (integer) The maximum length of a line when formatting. -The default is NULL, which defers to the default line length of stanc.

    - - -
    quiet
    -

    (logical) Should informational messages be suppressed? The -default is FALSE.

    - -
    -
    -

    Value

    - - -

    The $format() method returns TRUE (invisibly) if the model -is valid.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -
    -# Example of removing unnecessary whitespace
    -file <- write_stan_file("
    -data {
    -  int N;
    -  array[N] int y;
    -}
    -parameters {
    -  real                     lambda;
    -}
    -model {
    -  target +=
    - poisson_lpmf(y | lambda);
    -}
    -")
    -
    -# set compile=FALSE then call format to fix old syntax
    -mod <- cmdstan_model(file, compile = FALSE)
    -mod$format(canonicalize = list("deprecations"))
    -#> data {
    -#>   int N;
    -#>   array[N] int y;
    -#> }
    -#> parameters {
    -#>   real lambda;
    -#> }
    -#> model {
    -#>   target += poisson_lpmf(y | lambda);
    -#> }
    -#> 
    -#> 
    -
    -# overwrite the original file instead of just printing it
    -mod$format(canonicalize = list("deprecations"), overwrite_file = TRUE)
    -#> Old version of the model stored to /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/model_39022cccc3fe5384fab5a52b791fead6.stan.bak-20250331084850.
    -mod$compile()
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-generate-quantities.html b/docs/reference/model-method-generate-quantities.html deleted file mode 100644 index d7278dd5e..000000000 --- a/docs/reference/model-method-generate-quantities.html +++ /dev/null @@ -1,363 +0,0 @@ - -Run Stan's standalone generated quantities method — model-method-generate-quantities • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $generate_quantities() method of a CmdStanModel object -runs Stan's standalone generated quantities to obtain generated quantities -based on previously fitted parameters.

    -
    - -
    -
    generate_quantities(
    -  fitted_params,
    -  data = NULL,
    -  seed = NULL,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  parallel_chains = getOption("mc.cores", 1),
    -  threads_per_chain = NULL,
    -  opencl_ids = NULL
    -)
    -
    - -
    -

    Arguments

    -
    fitted_params
    -

    (multiple options) The parameter draws to use. One of -the following:

    NOTE: if you plan on making many calls to $generate_quantities() then the -most efficient option is to pass the paths of the CmdStan CSV output files -(this avoids CmdStanR having to rewrite the draws contained in the fitted -model object to CSV each time). If you no longer have the CSV files you can -use draws_to_csv() once to write them and then pass the resulting file -paths to $generate_quantities() as many times as needed.

    - - -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    parallel_chains
    -

    (positive integer) The maximum number of MCMC chains -to run in parallel. If parallel_chains is not specified then the default -is to look for the option "mc.cores", which can be set for an entire R -session by options(mc.cores=value). If the "mc.cores" option has not -been set then the default is 1.

    - - -
    threads_per_chain
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections within an MCMC chain (e.g., when -using the Stan functions reduce_sum() or map_rect()). This is in -contrast with parallel_chains, which specifies the number of chains to -run in parallel. The actual number of CPU cores used is -parallel_chains*threads_per_chain. For an example of using threading see -the Stan case study Reduce Sum: A Minimal Example.

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - -
    -
    -

    Value

    - - -

    A CmdStanGQ object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -# first fit a model using MCMC
    -mcmc_program <- write_stan_file(
    -  "data {
    -    int<lower=0> N;
    -    array[N] int<lower=0,upper=1> y;
    -  }
    -  parameters {
    -    real<lower=0,upper=1> theta;
    -  }
    -  model {
    -    y ~ bernoulli(theta);
    -  }"
    -)
    -mod_mcmc <- cmdstan_model(mcmc_program)
    -
    -data <- list(N = 10, y = c(1,1,0,0,0,1,0,1,0,0))
    -fit_mcmc <- mod_mcmc$sample(data = data, seed = 123, refresh = 0)
    -#> Running MCMC with 4 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.6 seconds.
    -#> 
    -
    -# stan program for standalone generated quantities
    -# (could keep model block, but not necessary so removing it)
    -gq_program <- write_stan_file(
    -  "data {
    -    int<lower=0> N;
    -    array[N] int<lower=0,upper=1> y;
    -  }
    -  parameters {
    -    real<lower=0,upper=1> theta;
    -  }
    -  generated quantities {
    -    array[N] int y_rep = bernoulli_rng(rep_vector(theta, N));
    -  }"
    -)
    -
    -mod_gq <- cmdstan_model(gq_program)
    -fit_gq <- mod_gq$generate_quantities(fit_mcmc, data = data, seed = 123)
    -#> Running standalone generated quantities after 4 MCMC chains, 1 chain at a time ...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> Chain 3 finished in 0.0 seconds.
    -#> Chain 4 finished in 0.0 seconds.
    -#> 
    -#> All 4 chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.6 seconds.
    -str(fit_gq$draws())
    -#>  'draws_array' int [1:1000, 1:4, 1:10] 0 0 0 1 1 0 1 1 0 1 ...
    -#>  - attr(*, "dimnames")=List of 3
    -#>   ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   ..$ variable : chr [1:10] "y_rep[1]" "y_rep[2]" "y_rep[3]" "y_rep[4]" ...
    -
    -library(posterior)
    -as_draws_df(fit_gq$draws())
    -#> # A draws_df: 1000 iterations, 4 chains, and 10 variables
    -#>    y_rep[1] y_rep[2] y_rep[3] y_rep[4] y_rep[5] y_rep[6] y_rep[7] y_rep[8]
    -#> 1         0        0        0        0        0        1        1        1
    -#> 2         0        0        0        0        1        1        0        0
    -#> 3         0        0        0        1        0        0        1        1
    -#> 4         1        1        0        0        0        0        1        0
    -#> 5         1        0        1        0        1        0        1        0
    -#> 6         0        0        0        1        1        0        0        0
    -#> 7         1        1        0        1        1        1        0        0
    -#> 8         1        1        1        1        1        0        1        1
    -#> 9         0        1        0        1        0        1        1        0
    -#> 10        1        1        1        1        1        1        1        1
    -#> # ... with 3990 more draws, and 2 more variables
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-laplace-1.png b/docs/reference/model-method-laplace-1.png deleted file mode 100644 index 823e448ecd9a334fb784903d167337ec35d2cd26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12630 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 diff --git a/docs/reference/model-method-laplace.html b/docs/reference/model-method-laplace.html deleted file mode 100644 index 39a307131..000000000 --- a/docs/reference/model-method-laplace.html +++ /dev/null @@ -1,478 +0,0 @@ - -Run Stan's Laplace algorithm — model-method-laplace • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $laplace() method of a CmdStanModel object produces a -sample from a normal approximation centered at the mode of a distribution -in the unconstrained space. If the mode is a maximum a posteriori (MAP) -estimate, the samples provide an estimate of the mean and standard -deviation of the posterior distribution. If the mode is a maximum -likelihood estimate (MLE), the sample provides an estimate of the standard -error of the likelihood. Whether the mode is the MAP or MLE depends on -the value of the jacobian argument when running optimization. See the -CmdStan User’s Guide -for more details.

    -

    Any argument left as NULL will default to the default value used by the -installed version of CmdStan.

    -
    - -
    -
    laplace(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  threads = NULL,
    -  opencl_ids = NULL,
    -  mode = NULL,
    -  opt_args = NULL,
    -  jacobian = TRUE,
    -  draws = NULL,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  save_cmdstan_config = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    Ignored for this method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    threads
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections (e.g., when -using the Stan functions reduce_sum() or map_rect()).

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - - -
    mode
    -

    (multiple options) The mode to center the approximation at. One -of the following:

    • A CmdStanMLE object from a previous run of $optimize().

    • -
    • The path to a CmdStan CSV file from running optimization.

    • -
    • NULL, in which case $optimize() will be run -with jacobian=jacobian (see the jacobian argument below).

    • -

    In all cases the total time reported by $time() will be -the time of the Laplace sampling step only and does not include the time -taken to run the $optimize() method.

    - - -
    opt_args
    -

    (named list) A named list of optional arguments to pass to -$optimize() if mode=NULL.

    - - -
    jacobian
    -

    (logical) Whether or not to enable the Jacobian adjustment -for constrained parameters. The default is TRUE. See the -Laplace Sampling -section of the CmdStan User's Guide for more details. If mode is not -NULL then the value of jacobian must match the value used when -optimization was originally run. If mode is NULL then the value of -jacobian specified here is used when running optimization.

    - - -
    draws
    -

    (positive integer) The number of draws to take.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - -
    -
    -

    Value

    - - -

    A CmdStanLaplace object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -fit_mode <- mod$optimize(data = stan_data, jacobian = TRUE)
    -#> Initial log joint probability = -7.39766 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802   8.90809e-05   3.13416e-07           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_laplace <- mod$laplace(data = stan_data, mode = fit_mode)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> Finished in  0.2 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>    <dbl>
    -#> 1 lp__        -7.26  -6.98  0.724 0.319 -8.80   -6.75   
    -#> 2 lp_approx__ -0.533 -0.245 0.740 0.330 -2.10   -0.00300
    -#> 3 theta        0.262  0.240 0.125 0.120  0.0941  0.503  
    -
    -# if mode isn't specified optimize is run internally first
    -fit_laplace <- mod$laplace(data = stan_data)
    -#> Initial log joint probability = -7.50846 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802   0.000114292   4.68497e-07           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> Finished in  0.2 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.23  -6.96  0.773 0.291 -8.49  -6.75   
    -#> 2 lp_approx__ -0.485 -0.219 0.744 0.303 -1.81  -0.00163
    -#> 3 theta        0.265  0.250 0.121 0.121  0.101  0.493  
    -
    -# plot approximate posterior
    -bayesplot::mcmc_hist(fit_laplace$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -# }
    -
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-optimize-1.png b/docs/reference/model-method-optimize-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/model-method-optimize-2.png b/docs/reference/model-method-optimize-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/model-method-optimize.html b/docs/reference/model-method-optimize.html deleted file mode 100644 index ff5bdc696..000000000 --- a/docs/reference/model-method-optimize.html +++ /dev/null @@ -1,878 +0,0 @@ - -Run Stan's optimization algorithms — model-method-optimize • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $optimize() method of a CmdStanModel object runs -Stan's optimizer to obtain a (penalized) maximum likelihood estimate (MLE) -or a maximum a posteriori estimate (MAP), depending on the value of the -jacobian argument. For models with constrained parameters, when the -Jacobian adjustment is not applied, the point estimate corresponds to a -penalized MLE, and when the Jacobian adjustment is applied the point -estimate corresponds to the MAP (posterior mode) of the model we would fit -if we were instead doing MCMC sampling. The Jacobian adjustment has no -affect if the model has only unconstrained parameters. See the -CmdStan User's Guide -for more details.

    -

    Any argument left as NULL will default to the default value used by the -installed version of CmdStan. See the CmdStan User’s Guide for more details on the -default arguments. The default values can also be obtained by checking the -metadata of an example model, e.g., -cmdstanr_example(method="optimize")$metadata().

    -
    - -
    -
    optimize(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  threads = NULL,
    -  opencl_ids = NULL,
    -  algorithm = NULL,
    -  jacobian = FALSE,
    -  init_alpha = NULL,
    -  iter = NULL,
    -  tol_obj = NULL,
    -  tol_rel_obj = NULL,
    -  tol_grad = NULL,
    -  tol_rel_grad = NULL,
    -  tol_param = NULL,
    -  history_size = NULL,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  save_cmdstan_config = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    (logical) Should auxiliary diagnostic information -about the latent dynamics be written to temporary diagnostic CSV files? -This argument replaces CmdStan's diagnostic_file argument and the content -written to CSV is controlled by the user's CmdStan installation and not -CmdStanR (for some algorithms no content may be written). The default is -FALSE, which is appropriate for almost every use case. To save the -temporary files created when save_latent_dynamics=TRUE see the -$save_latent_dynamics_files() -method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    threads
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections (e.g., when -using the Stan functions reduce_sum() or map_rect()).

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - - -
    algorithm
    -

    (string) The optimization algorithm. One of "lbfgs", -"bfgs", or "newton". The control parameters below are only available -for "lbfgs" and "bfgs. For their default values and more details see -the CmdStan User's Guide. The default values can also be obtained by -running cmdstanr_example(method="optimize")$metadata().

    - - -
    jacobian
    -

    (logical) Whether or not to use the Jacobian adjustment for -constrained variables. For historical reasons, the default is FALSE, meaning optimization -yields the (regularized) maximum likelihood estimate. Setting it to TRUE -yields the maximum a posteriori estimate. See the -Maximum Likelihood Estimation -section of the CmdStan User's Guide for more details. -For use later with $laplace() the jacobian -argument should typically be set to TRUE.

    - - -
    init_alpha
    -

    (positive real) The initial step size parameter.

    - - -
    iter
    -

    (positive integer) The maximum number of iterations.

    - - -
    tol_obj
    -

    (positive real) Convergence tolerance on changes in objective function value.

    - - -
    tol_rel_obj
    -

    (positive real) Convergence tolerance on relative changes in objective function value.

    - - -
    tol_grad
    -

    (positive real) Convergence tolerance on the norm of the gradient.

    - - -
    tol_rel_grad
    -

    (positive real) Convergence tolerance on the relative norm of the gradient.

    - - -
    tol_param
    -

    (positive real) Convergence tolerance on changes in parameter value.

    - - -
    history_size
    -

    (positive integer) The size of the history used when -approximating the Hessian. Only available for L-BFGS.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - -
    -
    -

    Value

    - - -

    A CmdStanMLE object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -12.6782 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802    0.00154762   3.33598e-05           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.1 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>    <dbl>
    -#> 1 lp__        -7.23  -6.96  0.673 0.289 -8.53   -6.75   
    -#> 2 lp_approx__ -0.484 -0.215 0.665 0.294 -1.83   -0.00153
    -#> 3 theta        0.270  0.253 0.121 0.119  0.0987  0.501  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1.1e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.11 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.2 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.2 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -6.755726 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      9.605e-04   1.028e-05    9.884e-01  9.884e-01        76 -6.240e+00 -6.240e+00                   
    -#> Path [1] :Best Iter: [2] ELBO (-6.221702) evaluations: (76) 
    -#> Path [2] :Initial log joint density = -9.051867 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.457e-04   2.924e-06    1.000e+00  1.000e+00       126 -6.190e+00 -6.190e+00                   
    -#> Path [2] :Best Iter: [5] ELBO (-6.189740) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.775220 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      2.337e-03   3.532e-06    9.682e-01  9.682e-01        76 -6.298e+00 -6.298e+00                   
    -#> Path [3] :Best Iter: [3] ELBO (-6.298399) evaluations: (76) 
    -#> Path [4] :Initial log joint density = -18.179237 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.662e-04   1.607e-05    1.000e+00  1.000e+00       126 -6.271e+00 -6.271e+00                   
    -#> Path [4] :Best Iter: [4] ELBO (-6.175731) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -17.845239 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      9.725e-04   2.274e-05    1.000e+00  1.000e+00       126 -6.275e+00 -6.275e+00                   
    -#> Path [5] :Best Iter: [4] ELBO (-6.207498) evaluations: (126) 
    -#> Path [6] :Initial log joint density = -11.863276 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.187e-03   2.045e-05    1.000e+00  1.000e+00       126 -6.264e+00 -6.264e+00                   
    -#> Path [6] :Best Iter: [2] ELBO (-6.141104) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -6.807183 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      3.391e-04   1.605e-06    1.000e+00  1.000e+00       101 -6.264e+00 -6.264e+00                   
    -#> Path [7] :Best Iter: [2] ELBO (-6.199985) evaluations: (101) 
    -#> Path [8] :Initial log joint density = -6.874334 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.370e-04   2.042e-05    9.398e-01  9.398e-01       101 -6.203e+00 -6.203e+00                   
    -#> Path [8] :Best Iter: [4] ELBO (-6.203174) evaluations: (101) 
    -#> Path [9] :Initial log joint density = -16.813276 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.549e-03   4.398e-05    1.000e+00  1.000e+00       126 -6.174e+00 -6.174e+00                   
    -#> Path [9] :Best Iter: [5] ELBO (-6.174126) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -11.429555 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.045e-03   1.644e-05    1.000e+00  1.000e+00       126 -6.293e+00 -6.293e+00                   
    -#> Path [10] :Best Iter: [3] ELBO (-6.173918) evaluations: (126) 
    -#> Total log probability function evaluations:1260 
    -#> Finished in  0.2 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.4 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-pathfinder-1.png b/docs/reference/model-method-pathfinder-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/model-method-pathfinder-2.png b/docs/reference/model-method-pathfinder-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/model-method-pathfinder.html b/docs/reference/model-method-pathfinder.html deleted file mode 100644 index c338a2b62..000000000 --- a/docs/reference/model-method-pathfinder.html +++ /dev/null @@ -1,907 +0,0 @@ - -Run Stan's Pathfinder Variational Inference Algorithm — model-method-pathfinder • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $pathfinder() method of a CmdStanModel object runs -Stan's Pathfinder algorithms. Pathfinder is a variational method for -approximately sampling from differentiable log densities. Starting from a -random initialization, Pathfinder locates normal approximations -to the target density along a quasi-Newton optimization path in -the unconstrained space, with local covariance estimated using -the negative inverse Hessian estimates produced by the LBFGS -optimizer. Pathfinder selects the normal approximation with the -lowest estimated Kullback-Leibler (KL) divergence to the true -posterior. Finally Pathfinder draws from that normal -approximation and returns the draws transformed to the -constrained scale. See the -CmdStan User’s Guide -for more details.

    -

    Any argument left as NULL will default to the default value used by the -installed version of CmdStan

    -
    - -
    -
    pathfinder(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  opencl_ids = NULL,
    -  num_threads = NULL,
    -  init_alpha = NULL,
    -  tol_obj = NULL,
    -  tol_rel_obj = NULL,
    -  tol_grad = NULL,
    -  tol_rel_grad = NULL,
    -  tol_param = NULL,
    -  history_size = NULL,
    -  single_path_draws = NULL,
    -  draws = NULL,
    -  num_paths = 4,
    -  max_lbfgs_iters = NULL,
    -  num_elbo_draws = NULL,
    -  save_single_paths = NULL,
    -  psis_resample = NULL,
    -  calculate_lp = NULL,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  save_cmdstan_config = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    (logical) Should auxiliary diagnostic information -about the latent dynamics be written to temporary diagnostic CSV files? -This argument replaces CmdStan's diagnostic_file argument and the content -written to CSV is controlled by the user's CmdStan installation and not -CmdStanR (for some algorithms no content may be written). The default is -FALSE, which is appropriate for almost every use case. To save the -temporary files created when save_latent_dynamics=TRUE see the -$save_latent_dynamics_files() -method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - - -
    num_threads
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections (e.g., for multi-path pathfinder -as well as reduce_sum).

    - - -
    init_alpha
    -

    (positive real) The initial step size parameter.

    - - -
    tol_obj
    -

    (positive real) Convergence tolerance on changes in objective function value.

    - - -
    tol_rel_obj
    -

    (positive real) Convergence tolerance on relative changes in objective function value.

    - - -
    tol_grad
    -

    (positive real) Convergence tolerance on the norm of the gradient.

    - - -
    tol_rel_grad
    -

    (positive real) Convergence tolerance on the relative norm of the gradient.

    - - -
    tol_param
    -

    (positive real) Convergence tolerance on changes in parameter value.

    - - -
    history_size
    -

    (positive integer) The size of the history used when -approximating the Hessian.

    - - -
    single_path_draws
    -

    (positive integer) Number of draws a single -pathfinder should return. The number of draws PSIS sampling samples from -will be equal to single_path_draws * num_paths.

    - - -
    draws
    -

    (positive integer) Number of draws to return after performing -pareto smooted importance sampling (PSIS). This should be smaller than -single_path_draws * num_paths (future versions of CmdStan will throw a -warning).

    - - -
    num_paths
    -

    (positive integer) Number of single pathfinders to run.

    - - -
    max_lbfgs_iters
    -

    (positive integer) The maximum number of iterations -for LBFGS.

    - - -
    num_elbo_draws
    -

    (positive integer) Number of draws to make when -calculating the ELBO of the approximation at each iteration of LBFGS.

    - - -
    save_single_paths
    -

    (logical) Whether to save the results of single -pathfinder runs in multi-pathfinder.

    - - -
    psis_resample
    -

    (logical) Whether to perform pareto smoothed importance sampling. -If TRUE, the number of draws returned will be equal to draws. -If FALSE, the number of draws returned will be equal to single_path_draws * num_paths.

    - - -
    calculate_lp
    -

    (logical) Whether to calculate the log probability of the draws. -If TRUE, the log probability will be calculated and given in the output. -If FALSE, the log probability will only be returned for draws used to determine the -ELBO in the pathfinder steps. All other draws will have a log probability of NA. -A value of FALSE will also turn off pareto smoothed importance sampling as the -lp calculation is needed for PSIS.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - -
    -
    -

    Value

    - - -

    A CmdStanPathfinder object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -11.6636 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802    0.00109631   1.77159e-05           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.2 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>    <dbl>
    -#> 1 lp__        -7.26  -6.97  0.807 0.300 -8.67   -6.75   
    -#> 2 lp_approx__ -0.514 -0.222 0.798 0.305 -1.93   -0.00172
    -#> 3 theta        0.270  0.254 0.125 0.122  0.0996  0.507  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1.1e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.11 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.2 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.2 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -8.866534 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.406e-04   2.829e-06    1.000e+00  1.000e+00       126 -6.250e+00 -6.250e+00                   
    -#> Path [1] :Best Iter: [3] ELBO (-6.238275) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -12.781290 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.589e-03   3.507e-05    1.000e+00  1.000e+00       126 -6.162e+00 -6.162e+00                   
    -#> Path [2] :Best Iter: [4] ELBO (-6.140443) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -7.160474 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.830e-04   1.466e-07    1.000e+00  1.000e+00       126 -6.227e+00 -6.227e+00                   
    -#> Path [3] :Best Iter: [2] ELBO (-6.155847) evaluations: (126) 
    -#> Path [4] :Initial log joint density = -15.099639 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.032e-03   6.062e-05    1.000e+00  1.000e+00       126 -6.233e+00 -6.233e+00                   
    -#> Path [4] :Best Iter: [3] ELBO (-6.206690) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -8.969584 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.443e-04   2.894e-06    1.000e+00  1.000e+00       126 -6.229e+00 -6.229e+00                   
    -#> Path [5] :Best Iter: [4] ELBO (-6.164928) evaluations: (126) 
    -#> Path [6] :Initial log joint density = -7.603579 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.364e-04   6.236e-07    1.000e+00  1.000e+00       126 -6.247e+00 -6.247e+00                   
    -#> Path [6] :Best Iter: [4] ELBO (-6.232661) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -6.767406 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      1.821e-03   5.050e-06    9.750e-01  9.750e-01        76 -6.198e+00 -6.198e+00                   
    -#> Path [7] :Best Iter: [3] ELBO (-6.197967) evaluations: (76) 
    -#> Path [8] :Initial log joint density = -7.131671 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.518e-04   1.054e-07    1.000e+00  1.000e+00       126 -6.299e+00 -6.299e+00                   
    -#> Path [8] :Best Iter: [2] ELBO (-6.177966) evaluations: (126) 
    -#> Path [9] :Initial log joint density = -12.644619 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.534e-03   3.280e-05    1.000e+00  1.000e+00       126 -6.242e+00 -6.242e+00                   
    -#> Path [9] :Best Iter: [3] ELBO (-6.212996) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -9.270214 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.999e-04   3.679e-06    1.000e+00  1.000e+00       126 -6.217e+00 -6.217e+00                   
    -#> Path [10] :Best Iter: [4] ELBO (-6.202150) evaluations: (126) 
    -#> Total log probability function evaluations:1360 
    -#> Finished in  0.2 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-sample-1.png b/docs/reference/model-method-sample-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 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 diff --git a/docs/reference/model-method-sample-2.png b/docs/reference/model-method-sample-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/model-method-sample.html b/docs/reference/model-method-sample.html deleted file mode 100644 index db271e25b..000000000 --- a/docs/reference/model-method-sample.html +++ /dev/null @@ -1,982 +0,0 @@ - -Run Stan's MCMC algorithms — model-method-sample • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $sample() method of a CmdStanModel object runs Stan's -main Markov chain Monte Carlo algorithm.

    -

    Any argument left as NULL will default to the default value used by the -installed version of CmdStan. See the -CmdStan User’s Guide -for more details.

    -

    After model fitting any diagnostics specified via the diagnostics -argument will be checked and warnings will be printed if warranted.

    -
    - -
    -
    sample(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  chains = 4,
    -  parallel_chains = getOption("mc.cores", 1),
    -  chain_ids = seq_len(chains),
    -  threads_per_chain = NULL,
    -  opencl_ids = NULL,
    -  iter_warmup = NULL,
    -  iter_sampling = NULL,
    -  save_warmup = FALSE,
    -  thin = NULL,
    -  max_treedepth = NULL,
    -  adapt_engaged = TRUE,
    -  adapt_delta = NULL,
    -  step_size = NULL,
    -  metric = NULL,
    -  metric_file = NULL,
    -  inv_metric = NULL,
    -  init_buffer = NULL,
    -  term_buffer = NULL,
    -  window = NULL,
    -  fixed_param = FALSE,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  diagnostics = c("divergences", "treedepth", "ebfmi"),
    -  save_metric = NULL,
    -  save_cmdstan_config = NULL,
    -  cores = NULL,
    -  num_cores = NULL,
    -  num_chains = NULL,
    -  num_warmup = NULL,
    -  num_samples = NULL,
    -  validate_csv = NULL,
    -  save_extra_diagnostics = NULL,
    -  max_depth = NULL,
    -  stepsize = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    (logical) Should auxiliary diagnostic information -about the latent dynamics be written to temporary diagnostic CSV files? -This argument replaces CmdStan's diagnostic_file argument and the content -written to CSV is controlled by the user's CmdStan installation and not -CmdStanR (for some algorithms no content may be written). The default is -FALSE, which is appropriate for almost every use case. To save the -temporary files created when save_latent_dynamics=TRUE see the -$save_latent_dynamics_files() -method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    chains
    -

    (positive integer) The number of Markov chains to run. The -default is 4.

    - - -
    parallel_chains
    -

    (positive integer) The maximum number of MCMC chains -to run in parallel. If parallel_chains is not specified then the default -is to look for the option "mc.cores", which can be set for an entire R -session by options(mc.cores=value). If the "mc.cores" option has not -been set then the default is 1.

    - - -
    chain_ids
    -

    (integer vector) A vector of chain IDs. Must contain as many -unique positive integers as the number of chains. If not set, the default -chain IDs are used (integers starting from 1).

    - - -
    threads_per_chain
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections within an MCMC chain (e.g., when -using the Stan functions reduce_sum() or map_rect()). This is in -contrast with parallel_chains, which specifies the number of chains to -run in parallel. The actual number of CPU cores used is -parallel_chains*threads_per_chain. For an example of using threading see -the Stan case study Reduce Sum: A Minimal Example.

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - - -
    iter_warmup
    -

    (positive integer) The number of warmup iterations to run -per chain. Note: in the CmdStan User's Guide this is referred to as -num_warmup.

    - - -
    iter_sampling
    -

    (positive integer) The number of post-warmup iterations -to run per chain. Note: in the CmdStan User's Guide this is referred to as -num_samples.

    - - -
    save_warmup
    -

    (logical) Should warmup iterations be saved? The default -is FALSE.

    - - -
    thin
    -

    (positive integer) The period between saved samples. This should -typically be left at its default (no thinning) unless memory is a problem.

    - - -
    max_treedepth
    -

    (positive integer) The maximum allowed tree depth for -the NUTS engine. See the Tree Depth section of the CmdStan User's Guide -for more details.

    - - -
    adapt_engaged
    -

    (logical) Do warmup adaptation? The default is TRUE. -If a precomputed inverse metric is specified via the inv_metric argument -(or metric_file) then, if adapt_engaged=TRUE, Stan will use the -provided inverse metric just as an initial guess during adaptation. To turn -off adaptation when using a precomputed inverse metric set -adapt_engaged=FALSE.

    - - -
    adapt_delta
    -

    (real in (0,1)) The adaptation target acceptance -statistic.

    - - -
    step_size
    -

    (positive real) The initial step size for the discrete -approximation to continuous Hamiltonian dynamics. This is further tuned -during warmup.

    - - -
    metric
    -

    (string) One of "diag_e", "dense_e", or "unit_e", -specifying the geometry of the base manifold. See the Euclidean Metric -section of the CmdStan User's Guide for more details. To specify a -precomputed (inverse) metric, see the inv_metric argument below.

    - - -
    metric_file
    -

    (character vector) The paths to JSON or Rdump files (one -per chain) compatible with CmdStan that contain precomputed inverse -metrics. The metric_file argument is inherited from CmdStan but is -confusing in that the entry in JSON or Rdump file(s) must be named -inv_metric, referring to the inverse metric. We recommend instead using -CmdStanR's inv_metric argument (see below) to specify an inverse metric -directly using a vector or matrix from your R session.

    - - -
    inv_metric
    -

    (vector, matrix) A vector (if metric='diag_e') or a -matrix (if metric='dense_e') for initializing the inverse metric. This -can be used as an alternative to the metric_file argument. A vector is -interpreted as a diagonal metric. The inverse metric is usually set to an -estimate of the posterior covariance. See the adapt_engaged argument -above for details about (and control over) how specifying a precomputed -inverse metric interacts with adaptation.

    - - -
    init_buffer
    -

    (nonnegative integer) Width of initial fast timestep -adaptation interval during warmup.

    - - -
    term_buffer
    -

    (nonnegative integer) Width of final fast timestep -adaptation interval during warmup.

    - - -
    window
    -

    (nonnegative integer) Initial width of slow timestep/metric -adaptation interval.

    - - -
    fixed_param
    -

    (logical) When TRUE, call CmdStan with argument -"algorithm=fixed_param". The default is FALSE. The fixed parameter -sampler generates a new sample without changing the current state of the -Markov chain; only generated quantities may change. This can be useful -when, for example, trying to generate pseudo-data using the generated -quantities block. If the parameters block is empty then using -fixed_param=TRUE is mandatory. When fixed_param=TRUE the chains and -parallel_chains arguments will be set to 1.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    diagnostics
    -

    (character vector) The diagnostics to automatically check -and warn about after sampling. Setting this to an empty string "" or -NULL can be used to prevent CmdStanR from automatically reading in the -sampler diagnostics from CSV if you wish to manually read in the results -and validate them yourself, for example using read_cmdstan_csv(). The -currently available diagnostics are "divergences", "treedepth", and -"ebfmi" (the default is to check all of them).

    -

    These diagnostics are also available after fitting. The -$sampler_diagnostics() method provides -access the diagnostic values for each iteration and the -$diagnostic_summary() method provides -summaries of the diagnostics and can regenerate the warning messages.

    -

    Diagnostics like R-hat and effective sample size are not currently -available via the diagnostics argument but can be checked after fitting -using the $summary() method.

    - - -
    save_metric
    -

    (logical) When TRUE, call CmdStan with argument -"adaptation save_metric=1" to save the adapted metric in separate JSON -file with elements "stepsize", "metric_type" and "inv_metric". The default -is TRUE. This option is only available in CmdStan 2.34.0 and later.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - - -
    cores, num_cores, num_chains, num_warmup, num_samples, save_extra_diagnostics, max_depth, stepsize, validate_csv
    -

    Deprecated and will be removed in a future release.

    - -
    -
    -

    Value

    - - -

    A CmdStanMCMC object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -6.989 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        4      -6.74802   0.000455385   0.000104592      0.9108      0.9108        7    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.1 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.23  -6.97  0.700 0.304 -8.62  -6.75   
    -#> 2 lp_approx__ -0.482 -0.222 0.697 0.301 -1.89  -0.00177
    -#> 3 theta        0.273  0.257 0.121 0.123  0.104  0.502  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1.2e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.12 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.2 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.1 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -14.842013 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.041e-03   6.008e-05    1.000e+00  1.000e+00       126 -6.245e+00 -6.245e+00                   
    -#> Path [1] :Best Iter: [4] ELBO (-6.197550) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -13.719046 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.898e-03   4.974e-05    1.000e+00  1.000e+00       126 -6.222e+00 -6.222e+00                   
    -#> Path [2] :Best Iter: [3] ELBO (-6.220670) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.815359 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      4.756e-03   9.139e-05    9.421e-01  9.421e-01        76 -6.278e+00 -6.278e+00                   
    -#> Path [3] :Best Iter: [2] ELBO (-6.242127) evaluations: (76) 
    -#> Path [4] :Initial log joint density = -17.875212 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      9.541e-04   2.212e-05    1.000e+00  1.000e+00       126 -6.214e+00 -6.214e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.214309) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -6.766198 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      2.751e-03   1.480e-04    1.000e+00  1.000e+00        76 -6.182e+00 -6.182e+00                   
    -#> Path [5] :Best Iter: [3] ELBO (-6.182449) evaluations: (76) 
    -#> Path [6] :Initial log joint density = -17.054272 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.428e-03   3.932e-05    1.000e+00  1.000e+00       126 -6.264e+00 -6.264e+00                   
    -#> Path [6] :Best Iter: [2] ELBO (-6.179165) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -18.498779 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      5.714e-04   1.045e-05    1.000e+00  1.000e+00       126 -6.239e+00 -6.239e+00                   
    -#> Path [7] :Best Iter: [2] ELBO (-6.173540) evaluations: (126) 
    -#> Path [8] :Initial log joint density = -9.008917 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.451e-04   2.910e-06    1.000e+00  1.000e+00       126 -6.200e+00 -6.200e+00                   
    -#> Path [8] :Best Iter: [2] ELBO (-6.176862) evaluations: (126) 
    -#> Path [9] :Initial log joint density = -7.868746 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.971e-04   1.133e-06    1.000e+00  1.000e+00       126 -6.234e+00 -6.234e+00                   
    -#> Path [9] :Best Iter: [4] ELBO (-6.211410) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -6.753679 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               3      -6.748e+00      9.064e-04   2.757e-05    1.000e+00  1.000e+00        76 -6.257e+00 -6.257e+00                   
    -#> Path [10] :Best Iter: [2] ELBO (-6.157033) evaluations: (76) 
    -#> Total log probability function evaluations:1260 
    -#> Finished in  0.2 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-sample_mpi.html b/docs/reference/model-method-sample_mpi.html deleted file mode 100644 index 6a265288c..000000000 --- a/docs/reference/model-method-sample_mpi.html +++ /dev/null @@ -1,554 +0,0 @@ - -Run Stan's MCMC algorithms with MPI — model-method-sample_mpi • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $sample_mpi() method of a CmdStanModel object is -identical to the $sample() method but with support for -MPI (message passing interface). The target audience for MPI are -those with large computer clusters. For other users, the -$sample() method provides both parallelization of -chains and threading support for within-chain parallelization.

    -

    In order to use MPI with Stan, an MPI implementation must be -installed. For Unix systems the most commonly used implementations are -MPICH and OpenMPI. The implementations provide an MPI C++ compiler wrapper -(for example mpicxx), which is required to compile the model.

    -

    An example of compiling with MPI:

    -

    mpi_options = list(STAN_MPI=TRUE, CXX="mpicxx", TBB_CXX_TYPE="gcc")
    -mod = cmdstan_model("model.stan", cpp_options = mpi_options)

    -

    The C++ options that must be supplied to the -compile call are:

    • STAN_MPI: Enables the use of MPI with Stan if TRUE.

    • -
    • CXX: The name of the MPI C++ compiler wrapper. Typically "mpicxx".

    • -
    • TBB_CXX_TYPE: The C++ compiler the MPI wrapper wraps. Typically "gcc" -on Linux and "clang" on macOS.

    • -

    In the call to the $sample_mpi() method it is also possible to provide -the name of the MPI launcher (mpi_cmd, defaulting to "mpiexec") and any -other MPI launch arguments (mpi_args). In most cases, it is enough to -only define the number of processes. To use n_procs processes specify -mpi_args = list("n" = n_procs).

    -
    - -
    -
    sample_mpi(
    -  data = NULL,
    -  mpi_cmd = "mpiexec",
    -  mpi_args = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  chains = 1,
    -  chain_ids = seq_len(chains),
    -  iter_warmup = NULL,
    -  iter_sampling = NULL,
    -  save_warmup = FALSE,
    -  thin = NULL,
    -  max_treedepth = NULL,
    -  adapt_engaged = TRUE,
    -  adapt_delta = NULL,
    -  step_size = NULL,
    -  metric = NULL,
    -  metric_file = NULL,
    -  inv_metric = NULL,
    -  init_buffer = NULL,
    -  term_buffer = NULL,
    -  window = NULL,
    -  fixed_param = FALSE,
    -  sig_figs = NULL,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  diagnostics = c("divergences", "treedepth", "ebfmi"),
    -  save_cmdstan_config = NULL,
    -  validate_csv = TRUE
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    mpi_cmd
    -

    (string) The MPI launcher used for launching MPI -processes. The default launcher is "mpiexec".

    - - -
    mpi_args
    -

    (list) A list of arguments to use when launching MPI -processes. For example, mpi_args = list("n" = 4) launches the executable -as mpiexec -n 4 model_executable, followed by CmdStan arguments for the -model executable.

    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    (logical) Should auxiliary diagnostic information -about the latent dynamics be written to temporary diagnostic CSV files? -This argument replaces CmdStan's diagnostic_file argument and the content -written to CSV is controlled by the user's CmdStan installation and not -CmdStanR (for some algorithms no content may be written). The default is -FALSE, which is appropriate for almost every use case. To save the -temporary files created when save_latent_dynamics=TRUE see the -$save_latent_dynamics_files() -method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    chains
    -

    (positive integer) The number of Markov chains to run. The -default is 4.

    - - -
    chain_ids
    -

    (integer vector) A vector of chain IDs. Must contain as many -unique positive integers as the number of chains. If not set, the default -chain IDs are used (integers starting from 1).

    - - -
    iter_warmup
    -

    (positive integer) The number of warmup iterations to run -per chain. Note: in the CmdStan User's Guide this is referred to as -num_warmup.

    - - -
    iter_sampling
    -

    (positive integer) The number of post-warmup iterations -to run per chain. Note: in the CmdStan User's Guide this is referred to as -num_samples.

    - - -
    save_warmup
    -

    (logical) Should warmup iterations be saved? The default -is FALSE.

    - - -
    thin
    -

    (positive integer) The period between saved samples. This should -typically be left at its default (no thinning) unless memory is a problem.

    - - -
    max_treedepth
    -

    (positive integer) The maximum allowed tree depth for -the NUTS engine. See the Tree Depth section of the CmdStan User's Guide -for more details.

    - - -
    adapt_engaged
    -

    (logical) Do warmup adaptation? The default is TRUE. -If a precomputed inverse metric is specified via the inv_metric argument -(or metric_file) then, if adapt_engaged=TRUE, Stan will use the -provided inverse metric just as an initial guess during adaptation. To turn -off adaptation when using a precomputed inverse metric set -adapt_engaged=FALSE.

    - - -
    adapt_delta
    -

    (real in (0,1)) The adaptation target acceptance -statistic.

    - - -
    step_size
    -

    (positive real) The initial step size for the discrete -approximation to continuous Hamiltonian dynamics. This is further tuned -during warmup.

    - - -
    metric
    -

    (string) One of "diag_e", "dense_e", or "unit_e", -specifying the geometry of the base manifold. See the Euclidean Metric -section of the CmdStan User's Guide for more details. To specify a -precomputed (inverse) metric, see the inv_metric argument below.

    - - -
    metric_file
    -

    (character vector) The paths to JSON or Rdump files (one -per chain) compatible with CmdStan that contain precomputed inverse -metrics. The metric_file argument is inherited from CmdStan but is -confusing in that the entry in JSON or Rdump file(s) must be named -inv_metric, referring to the inverse metric. We recommend instead using -CmdStanR's inv_metric argument (see below) to specify an inverse metric -directly using a vector or matrix from your R session.

    - - -
    inv_metric
    -

    (vector, matrix) A vector (if metric='diag_e') or a -matrix (if metric='dense_e') for initializing the inverse metric. This -can be used as an alternative to the metric_file argument. A vector is -interpreted as a diagonal metric. The inverse metric is usually set to an -estimate of the posterior covariance. See the adapt_engaged argument -above for details about (and control over) how specifying a precomputed -inverse metric interacts with adaptation.

    - - -
    init_buffer
    -

    (nonnegative integer) Width of initial fast timestep -adaptation interval during warmup.

    - - -
    term_buffer
    -

    (nonnegative integer) Width of final fast timestep -adaptation interval during warmup.

    - - -
    window
    -

    (nonnegative integer) Initial width of slow timestep/metric -adaptation interval.

    - - -
    fixed_param
    -

    (logical) When TRUE, call CmdStan with argument -"algorithm=fixed_param". The default is FALSE. The fixed parameter -sampler generates a new sample without changing the current state of the -Markov chain; only generated quantities may change. This can be useful -when, for example, trying to generate pseudo-data using the generated -quantities block. If the parameters block is empty then using -fixed_param=TRUE is mandatory. When fixed_param=TRUE the chains and -parallel_chains arguments will be set to 1.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    diagnostics
    -

    (character vector) The diagnostics to automatically check -and warn about after sampling. Setting this to an empty string "" or -NULL can be used to prevent CmdStanR from automatically reading in the -sampler diagnostics from CSV if you wish to manually read in the results -and validate them yourself, for example using read_cmdstan_csv(). The -currently available diagnostics are "divergences", "treedepth", and -"ebfmi" (the default is to check all of them).

    -

    These diagnostics are also available after fitting. The -$sampler_diagnostics() method provides -access the diagnostic values for each iteration and the -$diagnostic_summary() method provides -summaries of the diagnostics and can regenerate the warning messages.

    -

    Diagnostics like R-hat and effective sample size are not currently -available via the diagnostics argument but can be checked after fitting -using the $summary() method.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - - -
    validate_csv
    -

    Deprecated. Use diagnostics instead.

    - -
    -
    -

    Value

    - - -

    A CmdStanMCMC object.

    -
    -
    -

    See also

    -

    The CmdStanR website -(mc-stan.org/cmdstanr) for online -documentation and tutorials.

    -

    The Stan and CmdStan documentation:

    The Stan Math Library's documentation -(mc-stan.org/math) for more -details on MPI support in Stan.

    -

    Other CmdStanModel methods: -model-method-check_syntax, -model-method-compile, -model-method-diagnose, -model-method-expose_functions, -model-method-format, -model-method-generate-quantities, -model-method-laplace, -model-method-optimize, -model-method-pathfinder, -model-method-sample, -model-method-variables, -model-method-variational

    -
    - -
    -

    Examples

    -
    # \dontrun{
    -# mpi_options <- list(STAN_MPI=TRUE, CXX="mpicxx", TBB_CXX_TYPE="gcc")
    -# mod <- cmdstan_model("model.stan", cpp_options = mpi_options)
    -# fit <- mod$sample_mpi(..., mpi_args = list("n" = 4))
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-variables.html b/docs/reference/model-method-variables.html deleted file mode 100644 index c30ec812b..000000000 --- a/docs/reference/model-method-variables.html +++ /dev/null @@ -1,226 +0,0 @@ - -Input and output variables of a Stan program — model-method-variables • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $variables() method of a CmdStanModel object returns -a list, each element representing a Stan model block: data, parameters, -transformed_parameters and generated_quantities.

    -

    Each element contains a list of variables, with each variables represented -as a list with infromation on its scalar type (real or int) and -number of dimensions.

    -

    transformed data is not included, as variables in that block are not -part of the model's input or output.

    -
    - -
    -
    variables()
    -
    - -
    -

    Value

    - - -

    The $variables() returns a list with information on input and -output variables for each of the Stan model blocks.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -
    -# create a `CmdStanModel` object, compiling the model is not required
    -mod <- cmdstan_model(file, compile = FALSE)
    -
    -mod$variables()
    -#> $parameters
    -#> $parameters$theta
    -#> $parameters$theta$type
    -#> [1] "real"
    -#> 
    -#> $parameters$theta$dimensions
    -#> [1] 0
    -#> 
    -#> 
    -#> 
    -#> $included_files
    -#> list()
    -#> 
    -#> $data
    -#> $data$N
    -#> $data$N$type
    -#> [1] "int"
    -#> 
    -#> $data$N$dimensions
    -#> [1] 0
    -#> 
    -#> 
    -#> $data$y
    -#> $data$y$type
    -#> [1] "int"
    -#> 
    -#> $data$y$dimensions
    -#> [1] 1
    -#> 
    -#> 
    -#> 
    -#> $transformed_parameters
    -#> named list()
    -#> 
    -#> $generated_quantities
    -#> named list()
    -#> 
    -
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/model-method-variational-1.png b/docs/reference/model-method-variational-1.png deleted file mode 100644 index 35206a7af5c41f481c91175fa899f05c94431921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13389 zcmeHuX;f3$w(iCb%Z{qj5-30{O~4c)D7|#HK!Sim*&wZgM%rM&009z|BbEmQO%MbU zP${5L8kHs>A%G1UAfXfpLP7vZXbJ+D05K-O+dG~!?)!7^sW--bR*id4#vnUcD|@ZE z=KSWj=A3JD{iv(s`ZeFL0RUh<(&>;p0IZAwfaPabuL4`RnfGSE%c`@^j)%Z2_>vv0 zCxVx+BAh%U0YK*(^rw<8{BRBcwgSjQ`+tg|O!l{>6w3Cud>FMI{mHKgV`7^X#j-@2 z4zFKv_|VUK-yc2n8fDx}-1lVdmF#1Op6y&W7G=K6d-avAPOn=Juduihxc$nu9p^W1 zCmn9d^GXiH7u7$k-&K*a<-3cnbKXx!qVpbfsQz7A`d~}&CAO5V;IB{$_TTuHxUBP= z#i`?@NK7LmFVOB;<4S1ori9tZI;~5iuu)Zv3e;eU+gzXueE?<_OC8hzCz6e|G=6Ay zGRhdg3~b%EZDyI)`&JpTdd3>{Q<;{Adi! zTJHEM0tI#^N)HXLG;irG6FiPAI9Vzk5e1@&vyg!jm%1ZI;LrfT(zT|w(Df*4P$}IG z_zW~BknwGdQaIFCbm%KkxWX5@B)Ts%g0A}zm(`)`-Hb1L`@=WOfzy+d@J>p8yyBt6 z!VzQDPT>*8ojWU1`H;ZcwwKihefsR3Hm7*+CH~lGjBndZlai_ZJk5sXVE@O6)pTIG zxwou6zm^g-n|8@J)!&OuDIaQNKOtofJn$}gkF zFUv^5W_SPy&50$*a}+J0)%07+t$3zF-SUK>Pkm!LpnXz*m|52J{lmj{l@#*5Ho zGBSstmdGk?=ns@vATdL+#%YsqAwkcMFl4dl50_>}lBpYEF4YIA{$On6h zeNLH;4gOXAMG;dGVrMT(huCb!7bL5uTiIE%25rIGf@r!{IwNy!1srqZ|LW~KeSZ4d zmOh?T8#4(rYI_QjbIFZ`M=JqswYI|}l46I7QyX6VA8GkXZhsZinijFpF z3t}6E*;_1ij~RxrWF_sMX?fu4BD_Hz9sS+EwaQEwfUXe>#tbKTwdBJ^?FG@Gl-egj zSZ%70(UW~l%8e7el~f$=2RX~~fR_C7*U&N&pZ~S?rvHgv@SjBmWni3=_Aa08#U1GI zC_wYtOwU>2Ax7J$by+>FPM?vVuDw&N7}JsNN#6n)>!{P<)s1K62e3o4W8Y0I$R`Sv z@x$ylF++cg@i(Z82v$ZWz?8n4Co~T5g#wY1?lBOG+eMT84ZAQS9TnbGDdgysc;W5h zVxkrlGrZFVEgNxPq{C~-v%l?^JNnp*lTGIJv9NWo^Woos5kuk_xbLMGvj&-WCTYJY`^*68qtX z;I`I3`>c|bJp85exIeh!FB|gxXPe!>;EgYw0{>fef7nf-CY_kb#;tmLFkW#3S#yvPt2po^;mqvc z=X_&qC39TJYnm2@*Zn1GA^!%#9|ppo>%kxl{coa2kJp&o$h&w)_S9%A#LI)m%cj4o zPOu|pO~|^yK-u)%7F#f21OW5fO>qZYnC~Y~h+i)+$SReJy_hzbd7l=j)0os0cZKQ; zPtVh8INQ*Jfk)3Piv>U;OPJ~b{UXtQ3WDy7+RFSROgD@lbqPD0c`)9T=}1xxkNpth z61#($j%M5I_iEaX8h36ZVnwv#MqMz{9sCtcHvx)9oN9KaN1kPU>!>5fbCg5KR8`Gp zhY3}oZ}a;z>*d+(P$BcUx#V80oEa5j(bg`TfPrX?2!-@a*)i&-@8-kjNt=!6c|4vA zVfGEHKSsn76k3prccEkPR(O^**V<`OD1-v2w7kD&(e2;v^%r%o>hEnqm=6+im*g+^ z6GG*6vd--^UK;@`>P8nWX@Ec;gF!jhEB0b@|AdXO4au;HYPa1vs<=oR`2Ih-IUCi< z&c%)ur>3v=RMKen_?5tKN1#|at<0lMFv$V)RKw!-xB^E2=(Y)55Bb)=!=(TB>e1&6 z8_@6OQx22zV-XsBwxA1e}~iy9$weO!X};l%wTRw+TP9q3klkZ90(m8W1!8Q=*< z;(DbuQ}@8r?QYt{21TZK$mgY`>HbzzyecrmHlKI-d~$Pb<9|=_9;9o_wDR~%i*xN- zx*fV(Ahdx82mUMg+l^VW)8-3A>(4a}ApU5s&JQVJeok9#E$}b#1Nd{Z%DUcQ(zh|` zud%2abJ@-0!y~ZHF->TQCOM7y)wj^6#DgHyE_L(!9X;{tvnorAQ|;k;6}h3Sd;2xS z+mMIizgkgv_;S?_(z&Ta_q`^Zk2%-BJN?kn*XEb5a{SHJ*m&zQ^S=8|LMMDwcD60| zXyG^e@u;s49bL2PN;1rJZEv7OFO%Ianb3_q$YJpka^ptpq9rm)WQU~PremRhy1!S> z9VJM!M0tcDV14OIFue!9U(->fdC&Fl9NE*onjZDc6Uay382 z_8E1TkyB)gHIbB`UB!$zKfgt~NE_U+l=3I&__~tfkB-S%NS_ARTH3sWud6 zXMKzzyjrhXWRuVxMN-6kyV9uX&QWNs5l7INBMUjjH>Ti=TP*J=M9;&DEqC{L-@(qe zWYk2?N^Tj!3UW6jcBf9-{{|Tj(9XT0Oql$SAU>n5CF6@UbOmyu;K1K-!!A8IvxdfT z>|o#pLScLyVpsY+w`C!(0qda~;oT{V@n$2~~D1c}+OHNF}F zN<}5ASO;uN@r%A_UPUd)S5<@OCp;2uYT8=6>K|@^ReoslaG8GpO28_r*Z?P`W}!<6^|Sh`uq%V&%}gSt0omg z8za!-fMCkdu&nT4Ya}sW_I4vW{|PQDKc5okz(stLzfdQqu#q*CejI6Wil1*2Un|@HN!188`p4RtjE zz{VlySpcQkfW-gk{AYt%FAlm5@Q>M?MRt$u=Fm8_YO2t3Oa1gE;YiKFRISg{Mrqk# zfkfs#KC{i91A0eh@ZM@>0CE#u|Fa>1;<`w-Q#r#}tB?JrV?mW1ryFklG6uW;bDphGwFx|4{dWuu%;Q)ax^20(iA%x8&`KC{$jrsV9orABG+;*5jhE1X5$LwX;1{Zxp>P z3od(DbpEl(=HYlosFS!l2pjDoKFW>#G~Q(sS0`vD@wm85M)0obs6D-13K#CNPr=xW z#pIM+!El)4IQqVTk`sTaOcv#`p_+<5Zbo(0_w#d}Dsf?S;V1+Yvm3dgJEt)OoUKss z7KZN0ajT{l<`)G@0&M+Bpu|<~SfqzUJq&G?TxkvOnACB$dyBh6*b5(cXIf_g zSE~ZWBY7VuKS$aPK=Z(}x=4~>a$`6sfD3CSnQ9YI$JBRbI_35Bmh|3n&ATm#bYZ>r zrB=iIdNSfmx_CXf%z)baCbwKGDfN9DusaLM!WxqqX~R~7rOU_27oc-N@Hv~%2KHcs zi6+bBEc6vPJ*y}kvY1Pb)x69?`sN9A4#uaNacjc7*fx@O-lZO={CgXWO>-?U>=9OO zWQVOZ@XVQeB1>Rmswiy_U0tj$fX4-O-J?acO5Y; zCU3{1u+si$+J~7@{bGVA>r7s=TnHoH6g>OEt|cdoPnS8Ghx1~NlX|MCEAOrcXCw3$ zx#ThemKGNps~$a?p@ogAoWhJ!qxojJ=3$?16&4oS^BRduaxQ!MBmQ10TN7-4dTzMo zhHm}RqMTSPvH`+s2d}L4^+Q>iFgvPdWaasyF9@|llN9C z$wGys!@iO8N#~^Z#h3N-BCd3(Mgo-5oOjg;3XufCv$aMFa{V+zezFgmue@#~Cz8a& zj%1?=d-+<+-HwsT;C52|$he|y?LRq2eVsHkSctbRhpqKi9avi|z$X-wqK#JN3Vbs^`^k7QSKa>?y5 zB;uSK*xd_u5175?0ZFFq!?ocwc`7Wwq}tcY-hSz7b@56K`Wbc-mxgJ?W3l46;If`f z_eE@5rXl9(9LGyt^=mDE|5a9M4295$cmg4;F3gyA!tO7d3qTSs5eSR@$lvc)=9jv1 zRaOOoGpmy0?+4|mh4nw38~5<=IN5W$!_(Jy@xb&x`t8R6r|s@&d3JWT?yuDZJ*Jv| zoiX!jHRt3mBcmnO?Ch-bDypvk*U7Qk(F=1uZhF1Bfx}|4I4JtbiU_<0$HvmcB$CzM z-cH@PabsLgQC&iK_*6X_jgCe{Up{8?I`$D)#CXs-&dU}=t7%(C$SyBeHFr63gkGK@ z_5-zMeND2?l^qm$v`>V~rwTSA!>PHsadY3~qG;TOhp^n5@P2&nb;Wa&*Z&YSoECSO zq{cbj7y>#|wB5(SB-Xuy*UAkF=?2W($ju~gOA8C>*xmfKO(oyYU-YJN8{kYez1}BP zRZ-*ohPY|ZxZuQQO^(ew5svsH(-1iy3Tov$zS{DF;G2>`7mNO?OBXMG;Gdqb&(F^% z%5QPcpFfZ5Iz8Znik+IAoOD!`?}X%Cg(;ikz=Co{)br>id`jTNf^=Z1gA@1J+z&aQ zTHISBM@C2OqbAB|yZAV6Sery5St<_78HIbg?m3Q%eKVM+($u$JVmZ~Kg^4F1g!kNA zr>aL*Xk?ygPwMRKT>8O4I5n^X)S|`f*qNE3=K~~IVMe1Ro+}UtRPhfxJP-0NTNp|8n*dOT@K-6cTJCHd=vI(=RTM|3(4^kG^mO}=>gI%xL)RL+yc*trR}u5_>V(uR4rdBP{cxG3GStHJ{zlu{3Sg;#&y{QC97n z1!}3Iyk;TIdg@ebYxTCu+S-^o{Ed~5d{@~nc7`FJl25@#=Na*BiD#FsV}Sxm8PbOI40pn>7W4UTZf?Y-xgJ0J zUJ-7>jjrh?-?wscxqIvK9-rv`hebt2j0ZtE7-z9sNSW>wu0HLn%eQuyN?Sl^H)acb8jOlb z^mBOpCoMO#(Yw^mD={R;xVGy7la;%XD1>UyMMw*~B7308^z`+KpqpIbhS#&SSEuG& zW?#LwK?ff|vS??qZ1MC26^9p1Bh79EF&S-R=UO&*ZFFSBjuz5WK2pOC_ky7A2%?X} zFK@(mx>$tyghV8&Xnu?v=EF7ld4lEF)N~ofOkI7e`V8@7kllz?MODkOr#I27IraE9 z)~k169;B$f)Z-P+yHk~VVfn0GySDKtN=CEuU#@XDi2|7>&jZzK44P(0#bJfUgZ=Cz zRkbaO)@vwNS69N~m7 zY)3w|bwP#Gymj;$6^R2qvPZY!9_Q%~NKk>(pb1-6Lv2mh2}s*+mwLwgeOCd}E{`Qhf;!iYCDdrE270q@M)k6CtF2ds_)03 z#4eGMk&QKd^W)>=&aSv4iDxusb`Le??bL(7+M>CAXl^91UQwuUw31sJE5B9 zJ@@UpY7Tnt#6UFZm`d{5)e?UfQc+NzDMu%o_c%i!L2j|Cu1bmoF=D&47t$|LJhr}? zL(C2w=<4d?dTFfnZ&(*Um6M%ar^mceSy^dMYaMx#AfFGhrn0MxGdBBMCKI$zqJl_) zK|v)}d=nO(JLnrU=FsWjMmP^{ zgt}TIl4X{f`qt|6xvFx|L1Mki=Jc~NGj~C8i|xUE8{7CwvACCM$n_O^x_mL>pKXUW&&9ugpGg^#~@bFeCqzx3}U(L!8vE2Gour7#TF) z5@f4x(2n6ls(zH_HjQ*GHiG_jw>EO{SSnPS?n<<#tU9%L`XPqRC=><#V z$D!v1Ls$Dpi1eV95;tM0Gov`TE%xtY81=V5J4tdai<{fkbofT!9I4 z*H}Ws4+dEWVidUfi&IM^7){^mj=+ed=q!!j%6%N~LRz{bn1ZFlWcx_d9b{)7nN?$G z&@@cPQ5$F#h2QZeaI(EPXIx2eU$7_7dh*=}rk} zqV~&Um~reMr9=;sRLDF$kqlFtpNdB3#n*^FJfX(D7-pQkEmE7SX}CLW0zUm{CN>BF zE38-W%jA?SK?Bk^SHR#WOu31F-#%YA|Et`aDj0!bP6>B!u5^E|$Gn7O2w|1BIf8`- zVgJL>r8d6!YQhw#>5w8&ss5Wx^=k*Fjx(emwsR`%g1NbIZRzux(+iHJ1MkrJgx*Xt z-O`{(;1i~J-XQFmuLIAqOM8`t!>#(hGvy;q-%P0MJSI4ha`6+Ya-Q_H+9~-bJ2@q^ zrou%W;E5oT1Ba1(T>x;s16k%+#I~#pmbc_vWLm*lvzhWr@lbG*Mq@td_5o>TDdjtb z#1nz{t4e;g60BT7wPWKo9PBELJt&r>63eTP`uni95m!P|5J+zDSkDt{gn`0u!OY3{ zC#as+wBuBpCVgS2_G8Am^~2f*Tq#@@K}v^>k6g!sB}YL z75x8-<#(01OrOp4+CvHGBobeIY|OZ=cF>D;1Ib2-n~;HVzL?k(q{{R@4ibAD(?1H1 z{CWJo*^=#?B_yT}&J0;)x>!$&uc0ksNRuwuOL>+X7&{E$Gj77`dp;hj)TvvrAX7TM z8ez-|xaVX-f)7|yTYG;}nYy`d?`Utmc1I_+-pBwX)g$oU$QLyR5^2XXL&qDB>!b6x z+uAbwAKI{oY21@_9oGZvOFLqs^}rk`U3YH5{`$t95I7S%+mD=B^G=nlK;_kLn5rly zBI*&$k$}*pHw9aUQ%k)~q)EsP`n_2KDVhFpQ>E<`$lu2>?Vx(uHpkxQkp)D(SW9LH oyf=dKN_kwNg#4fKb~j;3xBl2AM{>6=1rh*x*!58P0skxi2XiyJxc~qF diff --git a/docs/reference/model-method-variational-2.png b/docs/reference/model-method-variational-2.png deleted file mode 100644 index b078570c6aa94a71f1df4e7dcd384313144aec42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12794 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 diff --git a/docs/reference/model-method-variational.html b/docs/reference/model-method-variational.html deleted file mode 100644 index 0837588e6..000000000 --- a/docs/reference/model-method-variational.html +++ /dev/null @@ -1,870 +0,0 @@ - -Run Stan's variational approximation algorithms — model-method-variational • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    The $variational() method of a CmdStanModel object runs -Stan's Automatic Differentiation Variational Inference (ADVI) algorithms. -The approximation is a Gaussian in the unconstrained variable space. Stan -implements two ADVI algorithms: the algorithm="meanfield" option uses a -fully factorized Gaussian for the approximation; the algorithm="fullrank" -option uses a Gaussian with a full-rank covariance matrix for the -approximation. See the -CmdStan User’s Guide -for more details.

    -

    Any argument left as NULL will default to the default value used by the -installed version of CmdStan.

    -
    - -
    -
    variational(
    -  data = NULL,
    -  seed = NULL,
    -  refresh = NULL,
    -  init = NULL,
    -  save_latent_dynamics = FALSE,
    -  output_dir = getOption("cmdstanr_output_dir"),
    -  output_basename = NULL,
    -  sig_figs = NULL,
    -  threads = NULL,
    -  opencl_ids = NULL,
    -  algorithm = NULL,
    -  iter = NULL,
    -  grad_samples = NULL,
    -  elbo_samples = NULL,
    -  eta = NULL,
    -  adapt_engaged = NULL,
    -  adapt_iter = NULL,
    -  tol_rel_obj = NULL,
    -  eval_elbo = NULL,
    -  output_samples = NULL,
    -  draws = NULL,
    -  show_messages = TRUE,
    -  show_exceptions = TRUE,
    -  save_cmdstan_config = NULL
    -)
    -
    - -
    -

    Arguments

    -
    data
    -

    (multiple options) The data to use for the variables specified in -the data block of the Stan program. One of the following:

    • A named list of R objects with the names corresponding to variables -declared in the data block of the Stan program. Internally this list is -then written to JSON for CmdStan using write_stan_json(). See -write_stan_json() for details on the conversions performed on R objects -before they are passed to Stan.

    • -
    • A path to a data file compatible with CmdStan (JSON or R dump). See the -appendices in the CmdStan guide for details on using these formats.

    • -
    • NULL or an empty list if the Stan program has no data block.

    • -
    - - -
    seed
    -

    (positive integer(s)) A seed for the (P)RNG to pass to CmdStan. -In the case of multi-chain sampling the single seed will automatically be -augmented by the the run (chain) ID so that each chain uses a different -seed. The exception is the transformed data block, which defaults to using -same seed for all chains so that the same data is generated for all chains -if RNG functions are used. The only time seed should be specified as a -vector (one element per chain) is if RNG functions are used in transformed -data and the goal is to generate different data for each chain.

    - - -
    refresh
    -

    (non-negative integer) The number of iterations between -printed screen updates. If refresh = 0, only error messages will be -printed.

    - - -
    init
    -

    (multiple options) The initialization method to use for the -variables declared in the parameters block of the Stan program. One of the -following:

    • A real number x>0. This initializes all parameters randomly between -[-x,x] on the unconstrained parameter space.;

    • -
    • The number 0. This initializes all parameters to 0;

    • -
    • A character vector of paths (one per chain) to JSON or Rdump files -containing initial values for all or some parameters. See -write_stan_json() to write R objects to JSON files compatible with -CmdStan.

    • -
    • A list of lists containing initial values for all or some parameters. For -MCMC the list should contain a sublist for each chain. For other model -fitting methods there should be just one sublist. The sublists should have -named elements corresponding to the parameters for which you are specifying -initial values. See Examples.

    • -
    • A function that returns a single list with names corresponding to the -parameters for which you are specifying initial values. The function can -take no arguments or a single argument chain_id. For MCMC, if the -function has argument chain_id it will be supplied with the chain id -(from 1 to number of chains) when called to generate the initial values. -See -Examples.

    • -
    • A CmdStanMCMC, CmdStanMLE, CmdStanVB, CmdStanPathfinder, -or CmdStanLaplace fit object. -If the fit object's parameters are only a subset of the model -parameters then the other parameters will be drawn by Stan's default -initialization. The fit object must have at least some parameters that are the -same name and dimensions as the current Stan model. For the sample and -pathfinder method, if the fit object has fewer draws than the requested -number of chains/paths then the inits will be drawn using sampling with -replacement. Otherwise sampling without replacement will be used. -When a CmdStanPathfinder fit object is used as the init, if -. psis_resample was set to FALSE and calculate_lp was -set to TRUE (default), then resampling without replacement with Pareto -smoothed weights will be used. If psis_resample was set to TRUE or -calculate_lp was set to FALSE then sampling without replacement with -uniform weights will be used to select the draws. -PSIS resampling is used to select the draws for CmdStanVB, -and CmdStanLaplace fit objects.

    • -
    • A type inheriting from posterior::draws. If the draws object has less -samples than the number of requested chains/paths then the inits will be -drawn using sampling with replacement. Otherwise sampling without -replacement will be used. If the draws object's parameters are only a subset -of the model parameters then the other parameters will be drawn by Stan's -default initialization. The fit object must have at least some parameters -that are the same name and dimensions as the current Stan model.

    • -
    - - -
    save_latent_dynamics
    -

    (logical) Should auxiliary diagnostic information -about the latent dynamics be written to temporary diagnostic CSV files? -This argument replaces CmdStan's diagnostic_file argument and the content -written to CSV is controlled by the user's CmdStan installation and not -CmdStanR (for some algorithms no content may be written). The default is -FALSE, which is appropriate for almost every use case. To save the -temporary files created when save_latent_dynamics=TRUE see the -$save_latent_dynamics_files() -method.

    - - -
    output_dir
    -

    (string) A path to a directory where CmdStan should write -its output CSV files. For MCMC there will be one file per chain; for other -methods there will be a single file. For interactive use this can typically -be left at NULL (temporary directory) since CmdStanR makes the CmdStan -output (posterior draws and diagnostics) available in R via methods of the -fitted model objects. This can be set for an entire R session using -options(cmdstanr_output_dir). The behavior of output_dir is as follows:

    • If NULL (the default), then the CSV files are written to a temporary -directory and only saved permanently if the user calls one of the $save_* -methods of the fitted model object (e.g., -$save_output_files()). These temporary -files are removed when the fitted model object is garbage collected (manually or automatically).

    • -
    • If a path, then the files are created in output_dir with names -corresponding to the defaults used by $save_output_files().

    • -
    - - -
    output_basename
    -

    (string) A string to use as a prefix for the names of -the output CSV files of CmdStan. If NULL (the default), the basename of -the output CSV files will be comprised from the model name, timestamp, and -5 random characters.

    - - -
    sig_figs
    -

    (positive integer) The number of significant figures used -when storing the output values. By default, CmdStan represent the output -values with 6 significant figures. The upper limit for sig_figs is 18. -Increasing this value will result in larger output CSV files and thus an -increased usage of disk space.

    - - -
    threads
    -

    (positive integer) If the model was -compiled with threading support, the number of -threads to use in parallelized sections (e.g., when using the Stan -functions reduce_sum() or map_rect()).

    - - -
    opencl_ids
    -

    (integer vector of length 2) The platform and device IDs of -the OpenCL device to use for fitting. The model must be compiled with -cpp_options = list(stan_opencl = TRUE) for this argument to have an -effect.

    - - -
    algorithm
    -

    (string) The algorithm. Either "meanfield" or -"fullrank".

    - - -
    iter
    -

    (positive integer) The maximum number of iterations.

    - - -
    grad_samples
    -

    (positive integer) The number of samples for Monte Carlo -estimate of gradients.

    - - -
    elbo_samples
    -

    (positive integer) The number of samples for Monte Carlo -estimate of ELBO (objective function).

    - - -
    eta
    -

    (positive real) The step size weighting parameter for adaptive -step size sequence.

    - - -
    adapt_engaged
    -

    (logical) Do warmup adaptation?

    - - -
    adapt_iter
    -

    (positive integer) The maximum number of adaptation -iterations.

    - - -
    tol_rel_obj
    -

    (positive real) Convergence tolerance on the relative norm -of the objective.

    - - -
    eval_elbo
    -

    (positive integer) Evaluate ELBO every Nth iteration.

    - - -
    output_samples
    -

    (positive integer) Use draws argument instead. -output_samples will be deprecated in the future.

    - - -
    draws
    -

    (positive integer) Number of approximate posterior -samples to draw and save.

    - - -
    show_messages
    -

    (logical) When TRUE (the default), prints all output -during the execution process, such as iteration numbers and elapsed times. -If the output is silenced then the $output() method -of the resulting fit object can be used to display the silenced messages.

    - - -
    show_exceptions
    -

    (logical) When TRUE (the default), prints all -informational messages, for example rejection of the current proposal. -Disable if you wish to silence these messages, but this is not usually -recommended unless you are very confident that the model is correct up to -numerical error. If the messages are silenced then the -$output() method of the resulting fit object can be -used to display the silenced messages.

    - - -
    save_cmdstan_config
    -

    (logical) When TRUE (the default), call CmdStan -with argument "output save_config=1" to save a json file which contains -the argument tree and extra information (equivalent to the output CSV file -header). This option is only available in CmdStan 2.34.0 and later.

    - -
    -
    -

    Value

    - - -

    A CmdStanVB object.

    -
    - - -
    -

    Examples

    -
    # \dontrun{
    -library(cmdstanr)
    -library(posterior)
    -library(bayesplot)
    -color_scheme_set("brightblue")
    -
    -# Set path to CmdStan
    -# (Note: if you installed CmdStan via install_cmdstan() with default settings
    -# then setting the path is unnecessary but the default below should still work.
    -# Otherwise use the `path` argument to specify the location of your
    -# CmdStan installation.)
    -set_cmdstan_path(path = NULL)
    -#> CmdStan path set to: /Users/jgabry/.cmdstan/cmdstan-2.36.0
    -
    -# Create a CmdStanModel object from a Stan program,
    -# here using the example model that comes with CmdStan
    -file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
    -mod <- cmdstan_model(file)
    -mod$print()
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0, upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0, upper=1> theta;
    -#> }
    -#> model {
    -#>   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#>   y ~ bernoulli(theta);
    -#> }
    -# Print with line numbers. This can be set globally using the
    -# `cmdstanr_print_line_numbers` option.
    -mod$print(line_numbers = TRUE)
    -#>  1: data {
    -#>  2:   int<lower=0> N;
    -#>  3:   array[N] int<lower=0, upper=1> y;
    -#>  4: }
    -#>  5: parameters {
    -#>  6:   real<lower=0, upper=1> theta;
    -#>  7: }
    -#>  8: model {
    -#>  9:   theta ~ beta(1, 1); // uniform prior on interval 0,1
    -#> 10:   y ~ bernoulli(theta);
    -#> 11: }
    -
    -# Data as a named list (like RStan)
    -stan_data <- list(N = 10, y = c(0,1,0,0,0,0,0,0,0,1))
    -
    -# Run MCMC using the 'sample' method
    -fit_mcmc <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  parallel_chains = 2
    -)
    -#> Running MCMC with 2 parallel chains...
    -#> 
    -#> Chain 1 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 1 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 1 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 1 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 1 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 1 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 1 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 1 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 1 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 1 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 1 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 1 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 1 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 1 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 1 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 1 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 1 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 1 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 1 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 1 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 1 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 1 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 2 Iteration:    1 / 2000 [  0%]  (Warmup) 
    -#> Chain 2 Iteration:  100 / 2000 [  5%]  (Warmup) 
    -#> Chain 2 Iteration:  200 / 2000 [ 10%]  (Warmup) 
    -#> Chain 2 Iteration:  300 / 2000 [ 15%]  (Warmup) 
    -#> Chain 2 Iteration:  400 / 2000 [ 20%]  (Warmup) 
    -#> Chain 2 Iteration:  500 / 2000 [ 25%]  (Warmup) 
    -#> Chain 2 Iteration:  600 / 2000 [ 30%]  (Warmup) 
    -#> Chain 2 Iteration:  700 / 2000 [ 35%]  (Warmup) 
    -#> Chain 2 Iteration:  800 / 2000 [ 40%]  (Warmup) 
    -#> Chain 2 Iteration:  900 / 2000 [ 45%]  (Warmup) 
    -#> Chain 2 Iteration: 1000 / 2000 [ 50%]  (Warmup) 
    -#> Chain 2 Iteration: 1001 / 2000 [ 50%]  (Sampling) 
    -#> Chain 2 Iteration: 1100 / 2000 [ 55%]  (Sampling) 
    -#> Chain 2 Iteration: 1200 / 2000 [ 60%]  (Sampling) 
    -#> Chain 2 Iteration: 1300 / 2000 [ 65%]  (Sampling) 
    -#> Chain 2 Iteration: 1400 / 2000 [ 70%]  (Sampling) 
    -#> Chain 2 Iteration: 1500 / 2000 [ 75%]  (Sampling) 
    -#> Chain 2 Iteration: 1600 / 2000 [ 80%]  (Sampling) 
    -#> Chain 2 Iteration: 1700 / 2000 [ 85%]  (Sampling) 
    -#> Chain 2 Iteration: 1800 / 2000 [ 90%]  (Sampling) 
    -#> Chain 2 Iteration: 1900 / 2000 [ 95%]  (Sampling) 
    -#> Chain 2 Iteration: 2000 / 2000 [100%]  (Sampling) 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.2 seconds.
    -#> 
    -
    -# Use 'posterior' package for summaries
    -fit_mcmc$summary()
    -#> # A tibble: 2 × 10
    -#>   variable   mean median    sd   mad      q5    q95  rhat ess_bulk ess_tail
    -#>   <chr>     <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl> <dbl>    <dbl>    <dbl>
    -#> 1 lp__     -7.35  -7.01  0.882 0.353 -9.14   -6.75   1.00     724.     896.
    -#> 2 theta     0.254  0.239 0.129 0.126  0.0737  0.488  1.00     532.     657.
    -
    -# Check sampling diagnostics
    -fit_mcmc$diagnostic_summary()
    -#> $num_divergent
    -#> [1] 0 0
    -#> 
    -#> $num_max_treedepth
    -#> [1] 0 0
    -#> 
    -#> $ebfmi
    -#> [1] 1.1148479 0.7568734
    -#> 
    -
    -# Get posterior draws
    -draws <- fit_mcmc$draws()
    -print(draws)
    -#> # A draws_array: 1000 iterations, 2 chains, and 2 variables
    -#> , , variable = lp__
    -#> 
    -#>          chain
    -#> iteration    1    2
    -#>         1 -7.0 -8.1
    -#>         2 -7.9 -7.9
    -#>         3 -7.4 -7.0
    -#>         4 -6.7 -6.8
    -#>         5 -6.9 -6.8
    -#> 
    -#> , , variable = theta
    -#> 
    -#>          chain
    -#> iteration    1     2
    -#>         1 0.17 0.088
    -#>         2 0.46 0.097
    -#>         3 0.41 0.167
    -#>         4 0.25 0.292
    -#>         5 0.18 0.238
    -#> 
    -#> # ... with 995 more iterations
    -
    -# Convert to data frame using posterior::as_draws_df
    -as_draws_df(draws)
    -#> # A draws_df: 1000 iterations, 2 chains, and 2 variables
    -#>    lp__ theta
    -#> 1  -7.0  0.17
    -#> 2  -7.9  0.46
    -#> 3  -7.4  0.41
    -#> 4  -6.7  0.25
    -#> 5  -6.9  0.18
    -#> 6  -6.9  0.33
    -#> 7  -7.2  0.15
    -#> 8  -6.8  0.29
    -#> 9  -6.8  0.24
    -#> 10 -6.8  0.24
    -#> # ... with 1990 more draws
    -#> # ... hidden reserved variables {'.chain', '.iteration', '.draw'}
    -
    -# Plot posterior using bayesplot (ggplot2)
    -mcmc_hist(fit_mcmc$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'optimize' method to get a point estimate (default is Stan's LBFGS algorithm)
    -# and also demonstrate specifying data as a path to a file instead of a list
    -my_data_file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.data.json")
    -fit_optim <- mod$optimize(data = my_data_file, seed = 123)
    -#> Initial log joint probability = -16.144 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000246518   8.73164e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim$summary()
    -#> # A tibble: 2 × 2
    -#>   variable estimate
    -#>   <chr>       <dbl>
    -#> 1 lp__        -5.00
    -#> 2 theta        0.2 
    -
    -# Run 'optimize' again with 'jacobian=TRUE' and then draw from Laplace approximation
    -# to the posterior
    -fit_optim <- mod$optimize(data = my_data_file, jacobian = TRUE)
    -#> Initial log joint probability = -19.2814 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        5      -6.74802   0.000163806   1.63613e-06           1           1        8    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.1 seconds.
    -fit_laplace <- mod$laplace(data = my_data_file, mode = fit_optim, draws = 2000)
    -#> Calculating Hessian 
    -#> Calculating inverse of Cholesky factor 
    -#> Generating draws 
    -#> iteration: 0 
    -#> iteration: 100 
    -#> iteration: 200 
    -#> iteration: 300 
    -#> iteration: 400 
    -#> iteration: 500 
    -#> iteration: 600 
    -#> iteration: 700 
    -#> iteration: 800 
    -#> iteration: 900 
    -#> iteration: 1000 
    -#> iteration: 1100 
    -#> iteration: 1200 
    -#> iteration: 1300 
    -#> iteration: 1400 
    -#> iteration: 1500 
    -#> iteration: 1600 
    -#> iteration: 1700 
    -#> iteration: 1800 
    -#> iteration: 1900 
    -#> Finished in  0.2 seconds.
    -fit_laplace$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>    <dbl>
    -#> 1 lp__        -7.24  -6.96  0.752 0.292 -8.69   -6.75   
    -#> 2 lp_approx__ -0.496 -0.208 0.731 0.290 -1.95   -0.00172
    -#> 3 theta        0.270  0.248 0.123 0.116  0.0971  0.507  
    -
    -# Run 'variational' method to use ADVI to approximate posterior
    -fit_vb <- mod$variational(data = stan_data, seed = 123)
    -#> ------------------------------------------------------------ 
    -#> EXPERIMENTAL ALGORITHM: 
    -#>   This procedure has not been thoroughly tested and may be unstable 
    -#>   or buggy. The interface is subject to change. 
    -#> ------------------------------------------------------------ 
    -#> Gradient evaluation took 1.1e-05 seconds 
    -#> 1000 transitions using 10 leapfrog steps per transition would take 0.11 seconds. 
    -#> Adjust your expectations accordingly! 
    -#> Begin eta adaptation. 
    -#> Iteration:   1 / 250 [  0%]  (Adaptation) 
    -#> Iteration:  50 / 250 [ 20%]  (Adaptation) 
    -#> Iteration: 100 / 250 [ 40%]  (Adaptation) 
    -#> Iteration: 150 / 250 [ 60%]  (Adaptation) 
    -#> Iteration: 200 / 250 [ 80%]  (Adaptation) 
    -#> Success! Found best value [eta = 1] earlier than expected. 
    -#> Begin stochastic gradient ascent. 
    -#>   iter             ELBO   delta_ELBO_mean   delta_ELBO_med   notes  
    -#>    100           -6.164             1.000            1.000 
    -#>    200           -6.225             0.505            1.000 
    -#>    300           -6.186             0.339            0.010   MEDIAN ELBO CONVERGED 
    -#> Drawing a sample of size 1000 from the approximate posterior...  
    -#> COMPLETED. 
    -#> Finished in  0.2 seconds.
    -fit_vb$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad     q5      q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>  <dbl>    <dbl>
    -#> 1 lp__        -7.14  -6.93  0.528 0.247 -8.21  -6.75   
    -#> 2 lp_approx__ -0.520 -0.244 0.740 0.326 -1.90  -0.00227
    -#> 3 theta        0.251  0.236 0.107 0.108  0.100  0.446  
    -mcmc_hist(fit_vb$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' method, a new alternative to the variational method
    -fit_pf <- mod$pathfinder(data = stan_data, seed = 123)
    -#> Path [1] :Initial log joint density = -18.273334 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      7.082e-04   1.432e-05    1.000e+00  1.000e+00       126 -6.145e+00 -6.145e+00                   
    -#> Path [1] :Best Iter: [5] ELBO (-6.145070) evaluations: (126) 
    -#> Path [2] :Initial log joint density = -19.192715 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.015e-04   2.228e-06    1.000e+00  1.000e+00       126 -6.223e+00 -6.223e+00                   
    -#> Path [2] :Best Iter: [2] ELBO (-6.170358) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -6.774820 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.137e-04   2.596e-07    1.000e+00  1.000e+00       101 -6.178e+00 -6.178e+00                   
    -#> Path [3] :Best Iter: [4] ELBO (-6.177909) evaluations: (101) 
    -#> Path [4] :Initial log joint density = -7.949193 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.145e-04   1.301e-06    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [4] :Best Iter: [5] ELBO (-6.197118) evaluations: (126) 
    -#> Total log probability function evaluations:4379 
    -#> Finished in  0.2 seconds.
    -fit_pf$summary()
    -#> # A tibble: 3 × 7
    -#>   variable      mean median    sd   mad      q5    q95
    -#>   <chr>        <dbl>  <dbl> <dbl> <dbl>   <dbl>  <dbl>
    -#> 1 lp_approx__ -1.07  -0.727 0.945 0.311 -2.91   -0.450
    -#> 2 lp__        -7.25  -6.97  0.753 0.308 -8.78   -6.75 
    -#> 3 theta        0.256  0.245 0.119 0.123  0.0824  0.462
    -mcmc_hist(fit_pf$draws("theta"))
    -#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
    -
    -
    -# Run 'pathfinder' again with more paths, fewer draws per path,
    -# better covariance approximation, and fewer LBFGSs iterations
    -fit_pf <- mod$pathfinder(data = stan_data, num_paths=10, single_path_draws=40,
    -                         history_size=50, max_lbfgs_iters=100)
    -#> Warning: Number of PSIS draws is larger than the total number of draws returned by the single Pathfinders. This is likely unintentional and leads to re-sampling from the same draws. 
    -#> Path [1] :Initial log joint density = -6.777948 
    -#> Path [1] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      1.327e-04   3.358e-07    1.000e+00  1.000e+00       101 -6.183e+00 -6.183e+00                   
    -#> Path [1] :Best Iter: [4] ELBO (-6.183163) evaluations: (101) 
    -#> Path [2] :Initial log joint density = -8.072775 
    -#> Path [2] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      2.399e-04   1.562e-06    1.000e+00  1.000e+00       126 -6.271e+00 -6.271e+00                   
    -#> Path [2] :Best Iter: [4] ELBO (-6.239963) evaluations: (126) 
    -#> Path [3] :Initial log joint density = -9.025342 
    -#> Path [3] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.454e-04   2.916e-06    1.000e+00  1.000e+00       126 -6.285e+00 -6.285e+00                   
    -#> Path [3] :Best Iter: [2] ELBO (-6.207932) evaluations: (126) 
    -#> Path [4] :Initial log joint density = -9.983004 
    -#> Path [4] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      6.283e-04   7.448e-06    1.000e+00  1.000e+00       126 -6.267e+00 -6.267e+00                   
    -#> Path [4] :Best Iter: [3] ELBO (-6.107202) evaluations: (126) 
    -#> Path [5] :Initial log joint density = -13.400879 
    -#> Path [5] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.809e-03   4.509e-05    1.000e+00  1.000e+00       126 -6.206e+00 -6.206e+00                   
    -#> Path [5] :Best Iter: [4] ELBO (-6.199332) evaluations: (126) 
    -#> Path [6] :Initial log joint density = -7.627321 
    -#> Path [6] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.419e-04   6.650e-07    1.000e+00  1.000e+00       126 -6.197e+00 -6.197e+00                   
    -#> Path [6] :Best Iter: [4] ELBO (-6.176730) evaluations: (126) 
    -#> Path [7] :Initial log joint density = -13.719529 
    -#> Path [7] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.898e-03   4.974e-05    1.000e+00  1.000e+00       126 -6.198e+00 -6.198e+00                   
    -#> Path [7] :Best Iter: [5] ELBO (-6.198257) evaluations: (126) 
    -#> Path [8] :Initial log joint density = -8.734378 
    -#> Path [8] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      3.325e-04   2.705e-06    1.000e+00  1.000e+00       126 -6.215e+00 -6.215e+00                   
    -#> Path [8] :Best Iter: [3] ELBO (-6.210584) evaluations: (126) 
    -#> Path [9] :Initial log joint density = -15.787917 
    -#> Path [9] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               5      -6.748e+00      1.925e-03   5.805e-05    1.000e+00  1.000e+00       126 -6.251e+00 -6.251e+00                   
    -#> Path [9] :Best Iter: [3] ELBO (-6.246013) evaluations: (126) 
    -#> Path [10] :Initial log joint density = -7.311648 
    -#> Path [10] : Iter      log prob        ||dx||      ||grad||     alpha      alpha0      # evals       ELBO    Best ELBO        Notes  
    -#>               4      -6.748e+00      5.348e-03   1.585e-04    1.000e+00  1.000e+00       101 -6.229e+00 -6.229e+00                   
    -#> Path [10] :Best Iter: [3] ELBO (-6.203261) evaluations: (101) 
    -#> Total log probability function evaluations:1360 
    -#> Pareto k value (0.78) is greater than 0.7. Importance resampling was not able to improve the approximation, which may indicate that the approximation itself is poor. 
    -#> Finished in  0.2 seconds.
    -
    -# Specifying initial values as a function
    -fit_mcmc_w_init_fun <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function() list(theta = runif(1))
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.4 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2 <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = function(chain_id) {
    -    # silly but demonstrates optional use of chain_id
    -    list(theta = 1 / (chain_id + 1))
    -  }
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_mcmc_w_init_fun_2$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.5
    -#> 
    -#> 
    -#> [[2]]
    -#> [[2]]$theta
    -#> [1] 0.3333333
    -#> 
    -#> 
    -
    -# Specifying initial values as a list of lists
    -fit_mcmc_w_init_list <- mod$sample(
    -  data = stan_data,
    -  seed = 123,
    -  chains = 2,
    -  refresh = 0,
    -  init = list(
    -    list(theta = 0.75), # chain 1
    -    list(theta = 0.25)  # chain 2
    -  )
    -)
    -#> Running MCMC with 2 sequential chains...
    -#> 
    -#> Chain 1 finished in 0.0 seconds.
    -#> Chain 2 finished in 0.0 seconds.
    -#> 
    -#> Both chains finished successfully.
    -#> Mean chain execution time: 0.0 seconds.
    -#> Total execution time: 0.3 seconds.
    -#> 
    -fit_optim_w_init_list <- mod$optimize(
    -  data = stan_data,
    -  seed = 123,
    -  init = list(
    -    list(theta = 0.75)
    -  )
    -)
    -#> Initial log joint probability = -11.6657 
    -#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes  
    -#>        6      -5.00402   0.000237915   9.55309e-07           1           1        9    
    -#> Optimization terminated normally:  
    -#>   Convergence detected: relative gradient magnitude is below tolerance 
    -#> Finished in  0.2 seconds.
    -fit_optim_w_init_list$init()
    -#> [[1]]
    -#> [[1]]$theta
    -#> [1] 0.75
    -#> 
    -#> 
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/read_cmdstan_csv.html b/docs/reference/read_cmdstan_csv.html deleted file mode 100644 index ab7ebbaae..000000000 --- a/docs/reference/read_cmdstan_csv.html +++ /dev/null @@ -1,382 +0,0 @@ - -Read CmdStan CSV files into R — read_cmdstan_csv • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    read_cmdstan_csv() is used internally by CmdStanR to read -CmdStan's output CSV files into R. It can also be used by CmdStan users as -a more flexible and efficient alternative to rstan::read_stan_csv(). See -the Value section for details on the structure of the returned list.

    -

    It is also possible to create CmdStanR's fitted model objects directly from -CmdStan CSV files using the as_cmdstan_fit() function.

    -
    - -
    -
    read_cmdstan_csv(
    -  files,
    -  variables = NULL,
    -  sampler_diagnostics = NULL,
    -  format = getOption("cmdstanr_draws_format", NULL)
    -)
    -
    -as_cmdstan_fit(
    -  files,
    -  check_diagnostics = TRUE,
    -  format = getOption("cmdstanr_draws_format")
    -)
    -
    - -
    -

    Arguments

    -
    files
    -

    (character vector) The paths to the CmdStan CSV files. These can -be files generated by running CmdStanR or running CmdStan directly.

    - - -
    variables
    -

    (character vector) Optionally, the names of the variables -(parameters, transformed parameters, and generated quantities) to read in.

    • If NULL (the default) then all variables are included.

    • -
    • If an empty string (variables="") then none are included.

    • -
    • For non-scalar variables all elements or specific elements can be selected:

      • variables = "theta" selects all elements of theta;

      • -
      • variables = c("theta[1]", "theta[3]") selects only the 1st and 3rd elements.

      • -
    • -
    - - -
    sampler_diagnostics
    -

    (character vector) Works the same way as -variables but for sampler diagnostic variables (e.g., "treedepth__", -"accept_stat__", etc.). Ignored if the model was not fit using MCMC.

    - - -
    format
    -

    (string) The format for storing the draws or point estimates. -The default depends on the method used to fit the model. See -draws for details, in particular the note about speed -and memory for models with many parameters.

    - - -
    check_diagnostics
    -

    (logical) For models fit using MCMC, should -diagnostic checks be performed after reading in the files? The default is -TRUE but set to FALSE to avoid checking for problems with divergences -and treedepth.

    - -
    -
    -

    Value

    - - -

    as_cmdstan_fit() returns a CmdStanMCMC, CmdStanMLE, CmdStanLaplace or -CmdStanVB object. Some methods typically defined for those objects will not -work (e.g. save_data_file()) but the important methods like $summary(), -$draws(), $sampler_diagnostics() and others will work fine.

    - - -

    read_cmdstan_csv() returns a named list with the following components:

    • metadata: A list of the meta information from the run that produced the -CSV file(s). See Examples below.

    • -

    The other components in the returned list depend on the method that produced -the CSV file(s).

    - - -

    For sampling the returned list also includes the -following components:

    • time: Run time information for the individual chains. The returned object -is the same as for the $time() method except the total run -time can't be inferred from the CSV files (the chains may have been run in -parallel) and is therefore NA.

    • -
    • inv_metric: A list (one element per chain) of inverse mass matrices -or their diagonals, depending on the type of metric used.

    • -
    • step_size: A list (one element per chain) of the step sizes used.

    • -
    • warmup_draws: If save_warmup was TRUE when fitting the model then a -draws_array (or different format if format is -specified) of warmup draws.

    • -
    • post_warmup_draws: A draws_array (or -different format if format is specified) of post-warmup draws.

    • -
    • warmup_sampler_diagnostics: If save_warmup was TRUE when fitting the -model then a draws_array (or different format if -format is specified) of warmup draws of the sampler diagnostic variables.

    • -
    • post_warmup_sampler_diagnostics: A -draws_array (or different format if format is -specified) of post-warmup draws of the sampler diagnostic variables.

    • -

    For optimization the returned list also includes the -following components:

    • point_estimates: Point estimates for the model parameters.

    • -

    For laplace and -variational inference the returned list also -includes the following components:

    • draws: A draws_matrix (or different format -if format is specified) of draws from the approximate posterior -distribution.

    • -

    For standalone generated quantities the -returned list also includes the following components:

    • generated_quantities: A draws_array of -the generated quantities.

    • -
    - -
    -

    Examples

    -
    # \dontrun{
    -# Generate some CSV files to use for demonstration
    -fit1 <- cmdstanr_example("logistic", method = "sample", save_warmup = TRUE)
    -csv_files <- fit1$output_files()
    -print(csv_files)
    -#> [1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310849-1-4ed0d7.csv"
    -#> [2] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310849-2-4ed0d7.csv"
    -#> [3] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310849-3-4ed0d7.csv"
    -#> [4] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-202503310849-4-4ed0d7.csv"
    -
    -# Creating fitting model objects
    -
    -# Create a CmdStanMCMC object from the CSV files
    -fit2 <- as_cmdstan_fit(csv_files)
    -fit2$print("beta")
    -#>  variable  mean median   sd  mad    q5   q95 rhat ess_bulk ess_tail
    -#>   beta[1] -0.66  -0.66 0.25 0.24 -1.07 -0.27 1.00     3828     2751
    -#>   beta[2] -0.27  -0.27 0.23 0.22 -0.65  0.09 1.00     4397     2844
    -#>   beta[3]  0.68   0.68 0.27 0.28  0.24  1.13 1.00     4288     2907
    -
    -# Using read_cmdstan_csv
    -#
    -# Read in everything
    -x <- read_cmdstan_csv(csv_files)
    -str(x)
    -#> List of 8
    -#>  $ metadata                       :List of 42
    -#>   ..$ stan_version_major  : num 2
    -#>   ..$ stan_version_minor  : num 36
    -#>   ..$ stan_version_patch  : num 0
    -#>   ..$ start_datetime      : chr "2025-03-31 14:49:26 UTC"
    -#>   ..$ method              : chr "sample"
    -#>   ..$ save_warmup         : int 1
    -#>   ..$ thin                : num 1
    -#>   ..$ gamma               : num 0.05
    -#>   ..$ kappa               : num 0.75
    -#>   ..$ t0                  : num 10
    -#>   ..$ init_buffer         : num 75
    -#>   ..$ term_buffer         : num 50
    -#>   ..$ window              : num 25
    -#>   ..$ save_metric         : int 0
    -#>   ..$ algorithm           : chr "hmc"
    -#>   ..$ engine              : chr "nuts"
    -#>   ..$ metric              : chr "diag_e"
    -#>   ..$ stepsize_jitter     : num 0
    -#>   ..$ num_chains          : num 1
    -#>   ..$ id                  : num [1:4] 1 2 3 4
    -#>   ..$ init                : num [1:4] 2 2 2 2
    -#>   ..$ seed                : num 1.72e+09
    -#>   ..$ refresh             : num 100
    -#>   ..$ sig_figs            : num -1
    -#>   ..$ profile_file        : chr "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/logistic-profile-202503310849-1-480225.csv"
    -#>   ..$ save_cmdstan_config : int 0
    -#>   ..$ stanc_version       : chr "stanc3 v2.36.0"
    -#>   ..$ sampler_diagnostics : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
    -#>   ..$ variables           : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>   ..$ step_size_adaptation: num [1:4] 0.785 0.802 0.787 0.715
    -#>   ..$ model_name          : chr "logistic_model"
    -#>   ..$ adapt_engaged       : int 1
    -#>   ..$ adapt_delta         : num 0.8
    -#>   ..$ max_treedepth       : num 10
    -#>   ..$ step_size           : num [1:4] 1 1 1 1
    -#>   ..$ iter_warmup         : num 1000
    -#>   ..$ iter_sampling       : num 1000
    -#>   ..$ threads_per_chain   : num 1
    -#>   ..$ time                :'data.frame':	4 obs. of  4 variables:
    -#>   .. ..$ chain_id: num [1:4] 1 2 3 4
    -#>   .. ..$ warmup  : num [1:4] 0.077 0.077 0.076 0.078
    -#>   .. ..$ sampling: num [1:4] 0.071 0.074 0.073 0.077
    -#>   .. ..$ total   : num [1:4] 0.148 0.151 0.149 0.155
    -#>   ..$ stan_variable_sizes :List of 4
    -#>   .. ..$ lp__   : num 1
    -#>   .. ..$ alpha  : num 1
    -#>   .. ..$ beta   : num 3
    -#>   .. ..$ log_lik: num 100
    -#>   ..$ stan_variables      : chr [1:4] "lp__" "alpha" "beta" "log_lik"
    -#>   ..$ model_params        : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>  $ time                           :List of 2
    -#>   ..$ total : int NA
    -#>   ..$ chains:'data.frame':	4 obs. of  4 variables:
    -#>   .. ..$ chain_id: num [1:4] 1 2 3 4
    -#>   .. ..$ warmup  : num [1:4] 0.077 0.077 0.076 0.078
    -#>   .. ..$ sampling: num [1:4] 0.071 0.074 0.073 0.077
    -#>   .. ..$ total   : num [1:4] 0.148 0.151 0.149 0.155
    -#>  $ inv_metric                     :List of 4
    -#>   ..$ 1: num [1:4] 0.0414 0.0575 0.0508 0.0651
    -#>   ..$ 2: num [1:4] 0.0478 0.0564 0.0458 0.068
    -#>   ..$ 3: num [1:4] 0.0464 0.0556 0.0444 0.0718
    -#>   ..$ 4: num [1:4] 0.0418 0.0554 0.0495 0.078
    -#>  $ step_size                      :List of 4
    -#>   ..$ 1: num 0.785
    -#>   ..$ 2: num 0.802
    -#>   ..$ 3: num 0.787
    -#>   ..$ 4: num 0.715
    -#>  $ warmup_draws                   : 'draws_array' num [1:1000, 1:4, 1:105] -82.8 -82.8 -82.8 -70.9 -67.5 ...
    -#>   ..- attr(*, "dimnames")=List of 3
    -#>   .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   .. ..$ variable : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>  $ post_warmup_draws              : 'draws_array' num [1:1000, 1:4, 1:105] -64.9 -64.9 -66.2 -65.8 -65 ...
    -#>   ..- attr(*, "dimnames")=List of 3
    -#>   .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   .. ..$ variable : chr [1:105] "lp__" "alpha" "beta[1]" "beta[2]" ...
    -#>  $ warmup_sampler_diagnostics     : 'draws_array' num [1:1000, 1:4, 1:6] 6.67e-01 0.00 1.24e-316 9.96e-01 1.00 ...
    -#>   ..- attr(*, "dimnames")=List of 3
    -#>   .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   .. ..$ variable : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
    -#>  $ post_warmup_sampler_diagnostics: 'draws_array' num [1:1000, 1:4, 1:6] 1 0.983 0.825 0.992 0.992 ...
    -#>   ..- attr(*, "dimnames")=List of 3
    -#>   .. ..$ iteration: chr [1:1000] "1" "2" "3" "4" ...
    -#>   .. ..$ chain    : chr [1:4] "1" "2" "3" "4"
    -#>   .. ..$ variable : chr [1:6] "accept_stat__" "stepsize__" "treedepth__" "n_leapfrog__" ...
    -
    -# Don't read in any of the sampler diagnostic variables
    -x <- read_cmdstan_csv(csv_files, sampler_diagnostics = "")
    -
    -# Don't read in any of the parameters or generated quantities
    -x <- read_cmdstan_csv(csv_files, variables = "")
    -
    -# Read in only specific parameters and sampler diagnostics
    -x <- read_cmdstan_csv(
    -  csv_files,
    -  variables = c("alpha", "beta[2]"),
    -  sampler_diagnostics = c("n_leapfrog__", "accept_stat__")
    -)
    -
    -# For non-scalar parameters all elements can be selected or only some elements,
    -# e.g. all of the vector "beta" but only one element of the vector "log_lik"
    -x <- read_cmdstan_csv(
    -  csv_files,
    -  variables = c("beta", "log_lik[3]")
    -)
    -# }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/read_sample_csv.html b/docs/reference/read_sample_csv.html deleted file mode 100644 index 1b99583c3..000000000 --- a/docs/reference/read_sample_csv.html +++ /dev/null @@ -1,145 +0,0 @@ - -Read CmdStan CSV files from sampling into R — read_sample_csv • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Deprecated. Use read_cmdstan_csv() instead.

    -
    - -
    -
    read_sample_csv(files, variables = NULL, sampler_diagnostics = NULL)
    -
    - -
    -

    Arguments

    -
    files, variables, sampler_diagnostics
    -

    Deprecated. Use -read_cmdstan_csv() instead.

    - -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/register_knitr_engine.html b/docs/reference/register_knitr_engine.html deleted file mode 100644 index fe4a508e3..000000000 --- a/docs/reference/register_knitr_engine.html +++ /dev/null @@ -1,179 +0,0 @@ - -Register CmdStanR's knitr engine for Stan — register_knitr_engine • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Registers CmdStanR's knitr engine eng_cmdstan() for processing Stan chunks. -Refer to the vignette -R Markdown CmdStan Engine -for a demonstration.

    -
    - -
    -
    register_knitr_engine(override = TRUE)
    -
    - -
    -

    Arguments

    -
    override
    -

    (logical) Override knitr's built-in, RStan-based engine for -Stan? The default is TRUE. See Details.

    - -
    -
    -

    Details

    -

    If override = TRUE (default), this registers CmdStanR's knitr engine as the -engine for stan chunks, replacing knitr's built-in, RStan-based engine. If -override = FALSE, this registers a cmdstan engine so that both engines -may be used in the same R Markdown document. If the template supports syntax -highlighting for the Stan language, the cmdstan chunks will have stan -syntax highlighting applied to them.

    -

    See the vignette -R Markdown CmdStan Engine -for an example.

    -

    Note: When running chunks interactively in RStudio (e.g. when using -R Notebooks), it has -been observed that the built-in, RStan-based engine is used for stan -chunks even when CmdStanR's engine has been registered in the session. When -the R Markdown document is knit/rendered, the correct engine is used. As a -workaround, when running chunks interactively, it is recommended to use the -override = FALSE option and change stan chunks to be cmdstan chunks.

    -

    If you would like to keep stan chunks as stan chunks, it is possible to -specify engine = "cmdstan" in the chunk options after registering the -cmdstan engine with override = FALSE.

    -
    - - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/set_cmdstan_path.html b/docs/reference/set_cmdstan_path.html deleted file mode 100644 index db4659663..000000000 --- a/docs/reference/set_cmdstan_path.html +++ /dev/null @@ -1,196 +0,0 @@ - -Get or set the file path to the CmdStan installation — set_cmdstan_path • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Use the set_cmdstan_path() function to tell CmdStanR where the -CmdStan installation in located. Once the path has been set, -cmdstan_path() will return the full path to the CmdStan installation and -cmdstan_version() will return the CmdStan version number. See Details -for how to avoid manually setting the path in each R session.

    -
    - -
    -
    set_cmdstan_path(path = NULL)
    -
    -cmdstan_path()
    -
    -cmdstan_version(error_on_NA = TRUE)
    -
    - -
    -

    Arguments

    -
    path
    -

    (string) The full file path to the CmdStan installation. If -NULL (the default) then the path is set to the default path used by -install_cmdstan() if it exists.

    - - -
    error_on_NA
    -

    (logical) Should an error be thrown if CmdStan is not -found. The default is TRUE. If FALSE, cmdstan_version() returns -NULL.

    - -
    -
    -

    Value

    - - -

    A string. Either the file path to the CmdStan installation or the -CmdStan version number.

    - - -

    CmdStan version string if available. If CmdStan is not found and -error_on_NA is FALSE, cmdstan_version() returns NULL.

    -
    -
    -

    Details

    -

    Before the package can be used it needs to know where the CmdStan -installation is located. When the package is loaded it tries to help automate -this to avoid having to manually set the path every session:

    • If the environment variable "CMDSTAN" exists at load time -then its value will be automatically set as the default path to CmdStan for -the R session. If the environment variable "CMDSTAN" is set, but a valid -CmdStan is not found in the supplied path, the path is treated as a top -folder that contains CmdStan installations. In that case, the CmdStan -installation with the largest version number will be set as the path to -CmdStan for the R session.

    • -
    • If no environment variable is found when loaded but any directory in the -form ".cmdstan/cmdstan-[version]" (e.g., ".cmdstan/cmdstan-2.23.0"), -exists in the user's home directory (Sys.getenv("HOME"), not the current -working directory) then the path to the cmdstan with the largest version -number will be set as the path to CmdStan for the R session. This is the -same as the default directory that install_cmdstan() would use to install -the latest version of CmdStan.

    • -

    It is always possible to change the path after loading the package using -set_cmdstan_path(path).

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/stan_threads.html b/docs/reference/stan_threads.html deleted file mode 100644 index ebcfa75a1..000000000 --- a/docs/reference/stan_threads.html +++ /dev/null @@ -1,152 +0,0 @@ - -Set or get the number of threads used to execute Stan models — stan_threads • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    DEPRECATED. Please use the threads_per_chain argument when fitting the model.

    -
    - -
    -
    num_threads()
    -
    -set_num_threads(num_threads)
    -
    - -
    -

    Arguments

    -
    num_threads
    -

    (positive integer) The number of threads to set.

    - -
    -
    -

    Value

    - - -

    The value of the environment variable STAN_NUM_THREADS.

    -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/write_stan_file.html b/docs/reference/write_stan_file.html deleted file mode 100644 index 0645c8402..000000000 --- a/docs/reference/write_stan_file.html +++ /dev/null @@ -1,245 +0,0 @@ - -Write Stan code to a file — write_stan_file • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Convenience function for writing Stan code to a (possibly -temporary) file with a .stan extension. By default, the -file name is chosen deterministically based on a hash -of the Stan code, and the file is not overwritten if it already has correct -contents. This means that calling this function multiple times with the same -Stan code will reuse the compiled model. This also however means that the -function is potentially not thread-safe. Using hash_salt = Sys.getpid() -should ensure thread-safety in the rare cases when it is needed.

    -
    - -
    -
    write_stan_file(
    -  code,
    -  dir = getOption("cmdstanr_write_stan_file_dir", tempdir()),
    -  basename = NULL,
    -  force_overwrite = FALSE,
    -  hash_salt = ""
    -)
    -
    - -
    -

    Arguments

    -
    code
    -

    (character vector) The Stan code to write to the file. This can -be a character vector of length one (a string) containing the entire Stan -program or a character vector with each element containing one line of the -Stan program.

    - - -
    dir
    -

    (string) An optional path to the directory where the file will be -written. If omitted, a global option cmdstanr_write_stan_file_dir is -used. If the global options is not set, temporary directory -is used.

    - - -
    basename
    -

    (string) If dir is specified, optionally the basename to -use for the file created. If not specified a file name is generated -from hashing the code.

    - - -
    force_overwrite
    -

    (logical) If set to TRUE the file will always be -overwritten and thus the resulting model will always be recompiled.

    - - -
    hash_salt
    -

    (string) Text to add to the model code prior to hashing to -determine the file name if basename is not set.

    - -
    -
    -

    Value

    - - -

    The path to the file.

    -
    - -
    -

    Examples

    -
    # stan program as a single string
    -stan_program <- "
    -data {
    -  int<lower=0> N;
    -  array[N] int<lower=0,upper=1> y;
    -}
    -parameters {
    -  real<lower=0,upper=1> theta;
    -}
    -model {
    -  y ~ bernoulli(theta);
    -}
    -"
    -
    -f <- write_stan_file(stan_program)
    -print(f)
    -#> [1] "/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpWzIPg0/model_7f12fc190dd23b0e462f7d73040dd97e.stan"
    -
    -lines <- readLines(f)
    -print(lines)
    -#>  [1] ""                                   "data {"                            
    -#>  [3] "  int<lower=0> N;"                  "  array[N] int<lower=0,upper=1> y;"
    -#>  [5] "}"                                  "parameters {"                      
    -#>  [7] "  real<lower=0,upper=1> theta;"     "}"                                 
    -#>  [9] "model {"                            "  y ~ bernoulli(theta);"           
    -#> [11] "}"                                  ""                                  
    -cat(lines, sep = "\n")
    -#> 
    -#> data {
    -#>   int<lower=0> N;
    -#>   array[N] int<lower=0,upper=1> y;
    -#> }
    -#> parameters {
    -#>   real<lower=0,upper=1> theta;
    -#> }
    -#> model {
    -#>   y ~ bernoulli(theta);
    -#> }
    -#> 
    -
    -# stan program as character vector of lines
    -f2 <- write_stan_file(lines)
    -identical(readLines(f), readLines(f2))
    -#> [1] TRUE
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/write_stan_json.html b/docs/reference/write_stan_json.html deleted file mode 100644 index 2f027f915..000000000 --- a/docs/reference/write_stan_json.html +++ /dev/null @@ -1,220 +0,0 @@ - -Write data to a JSON file readable by CmdStan — write_stan_json • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    Write data to a JSON file readable by CmdStan

    -
    - -
    -
    write_stan_json(data, file, always_decimal = FALSE)
    -
    - -
    -

    Arguments

    -
    data
    -

    (list) A named list of R objects.

    - - -
    file
    -

    (string) The path to where the data file should be written.

    - - -
    always_decimal
    -

    (logical) Force generate non-integers with decimal -points to better distinguish between integers and floating point values. -If TRUE all R objects in data intended for integers must be of integer -type.

    - -
    -
    -

    Details

    -

    write_stan_json() performs several conversions before writing the JSON -file:

    • logical -> integer (TRUE -> 1, FALSE -> 0)

    • -
    • data.frame -> matrix (via data.matrix())

    • -
    • list -> array

    • -
    • table -> vector, matrix, or array (depending on dimensions of table)

    • -

    The list to array conversion is intended to make it easier to prepare -the data for certain Stan declarations involving arrays:

    • vector[J] v[K] (or equivalently array[K] vector[J] v as of Stan 2.27) -can be constructed in R as a list with K elements where each element a -vector of length J

    • -
    • matrix[I,J] v[K] (or equivalently array[K] matrix[I,J] m as of Stan -2.27 ) can be constructed in R as a list with K elements where each element -an IxJ matrix

    • -

    These can also be passed in from R as arrays instead of lists but the list -option is provided for convenience. Unfortunately for arrays with more than -one dimension, e.g., vector[J] v[K,L] (or equivalently -array[K,L] vector[J] v as of Stan 2.27) it is not possible to use an R -list and an array must be used instead. For this example the array in R -should have dimensions KxLxJ.

    -
    - -
    -

    Examples

    -
    x <- matrix(rnorm(10), 5, 2)
    -y <- rpois(nrow(x), lambda = 10)
    -z <- c(TRUE, FALSE)
    -data <- list(N = nrow(x), K = ncol(x), x = x, y = y, z = z)
    -
    -# write data to json file
    -file <- tempfile(fileext = ".json")
    -write_stan_json(data, file)
    -
    -# check the contents of the file
    -cat(readLines(file), sep = "\n")
    -#> {
    -#>   "N": 5,
    -#>   "K": 2,
    -#>   "x": [
    -#>     [0.594273774110513, 0.718888729854143],
    -#>     [0.0591351681787969, 0.251651069028968],
    -#>     [0.413398894737046, 1.35727443615177],
    -#>     [-1.09777217457042, 0.404468471278607],
    -#>     [0.711175257270441, 0.264364269837939]
    -#>   ],
    -#>   "y": [10, 11, 13, 11, 12],
    -#>   "z": [1, 0]
    -#> }
    -
    -
    -# demonstrating list to array conversion
    -# suppose x is declared as `vector[3] x[2]` (or equivalently `array[2] vector[3] x`)
    -# we can use a list of length 2 where each element is a vector of length 3
    -data <- list(x = list(1:3, 4:6))
    -file <- tempfile(fileext = ".json")
    -write_stan_json(data, file)
    -cat(readLines(file), sep = "\n")
    -#> {
    -#>   "x": [
    -#>     [1, 2, 3],
    -#>     [4, 5, 6]
    -#>   ]
    -#> }
    -
    -
    -
    -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/reference/write_stan_tempfile.html b/docs/reference/write_stan_tempfile.html deleted file mode 100644 index 5891e81a2..000000000 --- a/docs/reference/write_stan_tempfile.html +++ /dev/null @@ -1,154 +0,0 @@ - -Write Stan code to a temporary file — write_stan_tempfile • cmdstanr - - -
    -
    - - - -
    -
    - - -
    -

    This function is deprecated. Please use write_stan_file() instead.

    -
    - -
    -
    write_stan_tempfile(code, dir = tempdir())
    -
    - -
    -

    Arguments

    -
    code
    -

    (character vector) The Stan code to write to the file. This can -be a character vector of length one (a string) containing the entire Stan -program or a character vector with each element containing one line of the -Stan program.

    - - -
    dir
    -

    (string) An optional path to the directory where the file will be -written. If omitted, a global option cmdstanr_write_stan_file_dir is -used. If the global options is not set, temporary directory -is used.

    - -
    - -
    - -
    - - -
    - -
    -

    Site built with pkgdown 2.0.9.

    -
    - -
    - - - - - - - - diff --git a/docs/sitemap.xml b/docs/sitemap.xml deleted file mode 100644 index f502670b8..000000000 --- a/docs/sitemap.xml +++ /dev/null @@ -1,288 +0,0 @@ - - - - https://mc-stan.org/cmdstanr/404.html - - - https://mc-stan.org/cmdstanr/CONTRIBUTING.html - - - https://mc-stan.org/cmdstanr/LICENSE-text.html - - - https://mc-stan.org/cmdstanr/LICENSE.html - - - https://mc-stan.org/cmdstanr/articles/articles-online-only/opencl.html - - - https://mc-stan.org/cmdstanr/articles/children/settings-knitr.html - - - https://mc-stan.org/cmdstanr/articles/cmdstanr-internals.html - - - https://mc-stan.org/cmdstanr/articles/cmdstanr.html - - - https://mc-stan.org/cmdstanr/articles/deprecations.html - - - https://mc-stan.org/cmdstanr/articles/index.html - - - https://mc-stan.org/cmdstanr/articles/posterior.html - - - https://mc-stan.org/cmdstanr/articles/profiling.html - - - https://mc-stan.org/cmdstanr/articles/r-markdown.html - - - https://mc-stan.org/cmdstanr/articles/r_markdown.html - - - https://mc-stan.org/cmdstanr/authors.html - - - https://mc-stan.org/cmdstanr/index.html - - - https://mc-stan.org/cmdstanr/news/index.html - - - https://mc-stan.org/cmdstanr/pull_request_template.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanDiagnose.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanFit-method-save_output_files.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanGQ.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanLaplace.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanMCMC.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanMLE.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanModel-method-compile.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanModel-method-optimize.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanModel-method-sample.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanModel-method-variational.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanModel.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanPathfinder.html - - - https://mc-stan.org/cmdstanr/reference/CmdStanVB.html - - - https://mc-stan.org/cmdstanr/reference/as_draws.CmdStanMCMC.html - - - https://mc-stan.org/cmdstanr/reference/as_mcmc.list.html - - - https://mc-stan.org/cmdstanr/reference/cmdstan_coercion.html - - - https://mc-stan.org/cmdstanr/reference/cmdstan_default_install_path.html - - - https://mc-stan.org/cmdstanr/reference/cmdstan_default_path.html - - - https://mc-stan.org/cmdstanr/reference/cmdstan_model.html - - - https://mc-stan.org/cmdstanr/reference/cmdstan_path.html - - - https://mc-stan.org/cmdstanr/reference/cmdstanr-package.html - - - https://mc-stan.org/cmdstanr/reference/cmdstanr_example.html - - - https://mc-stan.org/cmdstanr/reference/cmdstanr_global_options.html - - - https://mc-stan.org/cmdstanr/reference/draws_to_csv.html - - - https://mc-stan.org/cmdstanr/reference/eng_cmdstan.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-cmdstan_summary.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-code.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-constrain_variables.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-diagnostic_summary.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-draws.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-grad_log_prob.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-gradients.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-hessian.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-init.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-init_model_methods.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-inv_metric.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-inverse_metric.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-log_prob.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-loo.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-lp.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-metadata.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-mle.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-num_chains.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-output.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-profiles.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-return_codes.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-sampler_diagnostics.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-save_object.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-save_output_files.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-summary.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-time.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-unconstrain_draws.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-unconstrain_variables.html - - - https://mc-stan.org/cmdstanr/reference/fit-method-variable_skeleton.html - - - https://mc-stan.org/cmdstanr/reference/index.html - - - https://mc-stan.org/cmdstanr/reference/install_cmdstan.html - - - https://mc-stan.org/cmdstanr/reference/model-method-check_syntax.html - - - https://mc-stan.org/cmdstanr/reference/model-method-compile.html - - - https://mc-stan.org/cmdstanr/reference/model-method-diagnose.html - - - https://mc-stan.org/cmdstanr/reference/model-method-expose_functions.html - - - https://mc-stan.org/cmdstanr/reference/model-method-format.html - - - https://mc-stan.org/cmdstanr/reference/model-method-generate-quantities.html - - - https://mc-stan.org/cmdstanr/reference/model-method-laplace.html - - - https://mc-stan.org/cmdstanr/reference/model-method-optimize.html - - - https://mc-stan.org/cmdstanr/reference/model-method-pathfinder.html - - - https://mc-stan.org/cmdstanr/reference/model-method-sample.html - - - https://mc-stan.org/cmdstanr/reference/model-method-sample_mpi.html - - - https://mc-stan.org/cmdstanr/reference/model-method-variables.html - - - https://mc-stan.org/cmdstanr/reference/model-method-variational.html - - - https://mc-stan.org/cmdstanr/reference/read_cmdstan_csv.html - - - https://mc-stan.org/cmdstanr/reference/read_sample_csv.html - - - https://mc-stan.org/cmdstanr/reference/register_knitr_engine.html - - - https://mc-stan.org/cmdstanr/reference/set_cmdstan_path.html - - - https://mc-stan.org/cmdstanr/reference/stan_threads.html - - - https://mc-stan.org/cmdstanr/reference/write_stan_file.html - - - https://mc-stan.org/cmdstanr/reference/write_stan_json.html - - - https://mc-stan.org/cmdstanr/reference/write_stan_tempfile.html - - From 489cc45cdf91d11a215cede1ddd0a908e8c98031 Mon Sep 17 00:00:00 2001 From: VisruthSK <67435125+VisruthSK@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:49:17 -0800 Subject: [PATCH 2/4] Removed PR website builds --- .github/workflows/pkgdown.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 499e2d606..0fd7aa99a 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -1,7 +1,6 @@ # Workflow derived from https://github.com/r-lib/actions/tree/v2/examples # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: - pull_request: # build dev site on merged pushes push: branches: [main, master] From f2d4b8ba202de1eb650d0f09a7a6a9226593dde5 Mon Sep 17 00:00:00 2001 From: VisruthSK <67435125+VisruthSK@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:31:30 -0800 Subject: [PATCH 3/4] String docs path --- .github/workflows/pkgdown.yaml | 14 ++++++-------- _pkgdown.yml | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 0fd7aa99a..d0731fee6 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -20,6 +20,7 @@ jobs: cancel-in-progress: true env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + NOT_CRAN: "true" permissions: contents: write steps: @@ -33,17 +34,14 @@ jobs: - uses: r-lib/actions/setup-r-dependencies@v2 with: - extra-packages: any::pkgdown, local::., any::withr, stan-dev/pkgdown-config + extra-packages: any::pkgdown, local::., stan-dev/pkgdown-config - name: Build site run: | - withr::with_envvar( - c("NOT_CRAN" = "true"), # this should already be set by setup-r@v2? keeping because vignettes don't build otherwise - pkgdown::build_site_github_pages( - lazy = FALSE, # change to TRUE if runner times out. - run_dont_run = TRUE, - new_process = TRUE - ) + pkgdown::build_site_github_pages( + lazy = FALSE, # change to TRUE if runner times out. + run_dont_run = TRUE, + new_process = TRUE ) shell: Rscript {0} diff --git a/_pkgdown.yml b/_pkgdown.yml index fc57dc39c..123d2191a 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -1,6 +1,6 @@ url: https://mc-stan.org/cmdstanr -destination: . +destination: "." development: mode: auto From 04c56ef233697d08047f4e5969beb2a33e57fa92 Mon Sep 17 00:00:00 2001 From: VisruthSK <67435125+VisruthSK@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:48:32 -0800 Subject: [PATCH 4/4] Install cmdstanR in GHA before building site --- .github/workflows/pkgdown.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index d0731fee6..663e29ce9 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -36,6 +36,9 @@ jobs: with: extra-packages: any::pkgdown, local::., stan-dev/pkgdown-config + - name: Install CmdStan + run: Rscript -e "cmdstanr::install_cmdstan()" + - name: Build site run: | pkgdown::build_site_github_pages(
  • -
    - - - - -
    -
    - - - - -
    -

    Introduction -

    -

    This vignette demonstrates how to handle cases where your Stan -program contains deprecated features resulting in deprecation warnings. -In most cases, the Stan-to-C++ compiler can be used to automatically -update your code to a non-deprecated feature that replaces the -deprecated one. This vignette showcases how that automatic conversion -can be done using CmdStanR.

    -

    The automatic conversion of deprecated features to non-deprecated -features is done using the so-called “canonicalizer”, which is part of -the Stan-to-C++ compiler. We recommend using CmdStan 2.29.2 or later -when using the canonicalizer and this vignette. The minimum CmdStanR -version to run the code in the vignette is 0.5.0.

    -
    -library(cmdstanr)
    -check_cmdstan_toolchain(fix = TRUE, quiet = TRUE)
    -
    -
    -

    Deprecation warnings -

    -

    The following logistic regression model uses several deprecated -language features, resulting in several warnings during compilation.

    -
    -stan_file <- write_stan_file("
    -data {
    -  int<lower=1> k;
    -  int<lower=0> n;
    -  matrix[n, k] X;
    -  int y[n];
    -}
    -parameters {
    -  vector[k] beta;
    -  real alpha;
    -}
    -model {
    -  # priors
    -  target += std_normal_log(beta);
    -  alpha ~ std_normal();
    -
    -  y ~ bernoulli_logit(X * beta + alpha);
    -}
    -")
    -mod <- cmdstan_model(stan_file)
    -
    Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpMBUSHs/model-17e6a34f96f68.stan', line 6, column 2: Declaration
    -    of arrays by placing brackets after a variable name is deprecated and
    -    will be removed in Stan 2.33.0. Instead use the array keyword before the
    -    type. This can be changed automatically using the auto-format flag to
    -    stanc
    -Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpMBUSHs/model-17e6a34f96f68.stan', line 13, column 2: Comments
    -    beginning with # are deprecated and this syntax will be removed in Stan
    -    2.33.0. Use // to begin line comments; this can be done automatically
    -    using the auto-format flag to stanc
    -Warning in '/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpMBUSHs/model-17e6a34f96f68.stan', line 14, column 12: std_normal_log
    -    is deprecated and will be removed in Stan 2.33.0. Use std_normal_lpdf
    -    instead. This can be automatically changed using the canonicalize flag
    -    for stanc
    -

    The first warning is about using the deprecated array syntax

    -
    int y[n];
    -

    which should be replaced with the new syntax using the -array keyword:

    -
    array[n] int y;
    -

    The second warning is about using the deprecated commenting symbol -#, which should be replaced by //.

    -

    The last warning is about the use of the deprecated _log -suffix for probability density and mass functions. In this case the -_log suffix should be replaced with _lpdf. For -probability mass functions the suffix _lpmf is used.

    -

    We can go and fix these issues manually or use the canonicalizer as -outlined in the next section.

    -
    -
    -

    Using the canonicalizer -

    -

    The canonicalizer is available through the canonicalize -argument of the $format() method of the -CmdStanModel class. The arguments accepts TRUE -and FALSE values, in which case all or none of the features -of the canonicalizer are used. It can also accept a list of character -vectors that determine which features of the canonicalizer to use.

    -

    The canonincalizer in CmdStan 2.29.2 supports four features: -parentheses, braces, includes and -deprecations. The parentheses and -braces features clean up the use of parentheses and braces, -while includes will replace #include -statements with the code from the included files. See the canonicalizer -section of the Stan User’s Guide for more details.

    -

    In this vignette we will be using the deprecations -feature that replaces deprecated Stan model features with non-deprecated -ones if possible.

    -
    -mod$format(canonicalize = list("deprecations"))
    -
    data {
    -  int<lower=1> k;
    -  int<lower=0> n;
    -  matrix[n, k] X;
    -  array[n] int y;
    -}
    -parameters {
    -  vector[k] beta;
    -  real alpha;
    -}
    -model {
    -  // priors
    -  target += std_normal_lpdf(beta);
    -  alpha ~ std_normal();
    -  
    -  y ~ bernoulli_logit(X * beta + alpha);
    -}
    -

    By default, the format function will print the resulting model code. -We can see that all three issues were resolved. y is now -defined using the new array keyword, the comment uses // -and the std_normal_log() is replaced with -std_normal_lpdf().

    -

    You can also use the $format() method to write the -updated version of the model directly to the Stan model file. That can -be enabled by setting overwrite_file = TRUE. The previous -version of the file will automatically be backed up to a file with the -.stan.bak suffix. If that is not desired or you are using a -version system and making a backup is redundant, you can disable it by -setting backup = FALSE.

    -
    -mod$format(
    -    canonicalize = list("deprecations"),
    -    overwrite_file = TRUE,
    -    backup = FALSE
    -)
    -mod$print()
    -
    data {
    -  int<lower=1> k;
    -  int<lower=0> n;
    -  matrix[n, k] X;
    -  array[n] int y;
    -}
    -parameters {
    -  vector[k] beta;
    -  real alpha;
    -}
    -model {
    -  // priors
    -  target += std_normal_lpdf(beta);
    -  alpha ~ std_normal();
    -  
    -  y ~ bernoulli_logit(X * beta + alpha);
    -}
    -
    -
    - - - -
    - - - - -