From 026aeff97e3ef8584fb653984099672310ac70e0 Mon Sep 17 00:00:00 2001 From: mntsx Date: Sun, 19 Jul 2026 00:32:12 +0200 Subject: [PATCH 1/3] black-angular-frame:0.1.1 --- .../preview/black-angular-frame/0.1.1/LICENSE | 21 + .../black-angular-frame/0.1.1/README.md | 380 ++++ .../0.1.1/assets/curves.csv | 12 + .../0.1.1/assets/example-preview.png | Bin 0 -> 196049 bytes .../0.1.1/assets/github-logo.png | Bin 0 -> 6362 bytes .../0.1.1/assets/typst-logo.png | Bin 0 -> 12710 bytes .../0.1.1/black-angular-frame.typ | 1282 ++++++++++++ .../black-angular-frame/0.1.1/example.typ | 1799 +++++++++++++++++ .../0.1.1/template/assets/curves.csv | 12 + .../0.1.1/template/assets/github-logo.png | Bin 0 -> 6362 bytes .../0.1.1/template/assets/typst-logo.png | Bin 0 -> 12710 bytes .../0.1.1/template/main.typ | 1799 +++++++++++++++++ .../black-angular-frame/0.1.1/thumbnail.png | Bin 0 -> 295530 bytes .../black-angular-frame/0.1.1/typst.toml | 25 + 14 files changed, 5330 insertions(+) create mode 100644 packages/preview/black-angular-frame/0.1.1/LICENSE create mode 100644 packages/preview/black-angular-frame/0.1.1/README.md create mode 100644 packages/preview/black-angular-frame/0.1.1/assets/curves.csv create mode 100644 packages/preview/black-angular-frame/0.1.1/assets/example-preview.png create mode 100644 packages/preview/black-angular-frame/0.1.1/assets/github-logo.png create mode 100644 packages/preview/black-angular-frame/0.1.1/assets/typst-logo.png create mode 100644 packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ create mode 100644 packages/preview/black-angular-frame/0.1.1/example.typ create mode 100644 packages/preview/black-angular-frame/0.1.1/template/assets/curves.csv create mode 100644 packages/preview/black-angular-frame/0.1.1/template/assets/github-logo.png create mode 100644 packages/preview/black-angular-frame/0.1.1/template/assets/typst-logo.png create mode 100644 packages/preview/black-angular-frame/0.1.1/template/main.typ create mode 100644 packages/preview/black-angular-frame/0.1.1/thumbnail.png create mode 100644 packages/preview/black-angular-frame/0.1.1/typst.toml diff --git a/packages/preview/black-angular-frame/0.1.1/LICENSE b/packages/preview/black-angular-frame/0.1.1/LICENSE new file mode 100644 index 0000000000..82eca67b4d --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Miguel Montes (@miguelm7654) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/black-angular-frame/0.1.1/README.md b/packages/preview/black-angular-frame/0.1.1/README.md new file mode 100644 index 0000000000..86f51dbc78 --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/README.md @@ -0,0 +1,380 @@ +# black-angular-frame + +[![GitHub repository](https://img.shields.io/badge/GitHub-mntsx%2Fblack--angular--frame-181717?logo=github)](https://github.com/mntsx/black-angular-frame) +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) + +A Typst presentation template with a square, minimal, academic design language: a solid navigation bar on top, a two-level footer with page number, a tinted title strip for regular content slides, and compact box environments without wasted whitespace. + +![First four slides from the black-angular-frame demo](assets/example-preview.png) + +For a complete rendered demo, check the full example PDF: [example.pdf](https://github.com/mntsx/black-angular-frame/blob/d07d030e63d1b2a4a61f6e304819c92d03cabf90/example.pdf). + +--- + +## Quick start + +```typst +#import "@preview/black-angular-frame:0.1.1": * + +#let presentation-config = ( + title: "Robust Optimization for Small Data", + subtitle: "A compact academic presentation", + authors: "Alice Rivera, Bob Chen", + institution: "Department of Applied Mathematics", + date: "May 2026", + final-message: "Thank you for your attention.", + primary-color: rgb("#1C1C1C"), + secondary-color: rgb("#D9D9D9"), + background-color: rgb("#FFFFFF"), + font-color: luma(20), + content-center: 0.32, + content-upper-padding: 0.05, + content-lower-padding: 0.05, + TOC: true, +) + +#show: black-angular-frame.with(config: presentation-config) + +#new-section("Motivation", slide-title: "Why Robustness Matters") + +#slide(title: "Problem Setting")[ + #two-col( + [ + - Few labels are available. + - Measurements contain structured noise. + - Models must report uncertainty clearly. + ], + [ + #baf-figure(caption: [A placeholder system diagram.])[ + #baf-visual[ + #rect(width: 100%, height: 54pt, fill: luma(242), stroke: luma(180)) + ] + ] + ], + left-width: 52%, + ) +] + +#new-subsection("Guarantees") + +#slide(title: "Main Claim")[ + #theorem(name: "Stability Bound")[ + If the empirical risk is Lipschitz in the perturbation radius, then the robust objective changes continuously with the data budget. + ] + + #proof[ + Combine uniform convergence with the triangle inequality and absorb the perturbation term into the radius-dependent constant. + ] +] + +#new-section("Implementation") + +#slide(title: "Training Sketch")[ + #two-col( + [ + #code-box( + "def train(batch):\n loss = robust_loss(model, batch)\n loss.backward()\n optimizer.step()", + type: "Source Code", + title: "Python", + lang: "python", + ) + ], + [ + #pseudo-code( + "for epoch <- 1 to E\n sample mini-batch\n update robust objective\nend", + title: "Mini-batch loop", + ) + ], + ) +] + +#final-slide +``` + +Initialize from the template after publication with: + +```bash +typst init @preview/black-angular-frame:0.1.1 +``` + +For local development in this repository, compile the demo with: + +```bash +typst compile example.typ example.pdf --font-path assets/fonts +``` + +The source file is `example.typ` and the output path should be exactly `example.pdf`; this repository keeps only that generated PDF. + +The local demo imports `black-angular-frame.typ` directly and uses the fonts in `assets/fonts/`. If you use VS Code + Tinymist, configure the font path manually if you want IBM Plex to be discovered from `assets/fonts/`. + +--- + +## Template configuration + +Pass configuration through `#show: black-angular-frame.with(config: presentation-config)`. + +| Name | Expected value | Default | Description | +|------|----------------|---------|-------------| +| `title` | String | `""` | Presentation title. | +| `subtitle` | String | `""` | Presentation subtitle. | +| `authors` | String | `""` | Author line shown on the cover and footer. | +| `institution` | String | `""` | Institution shown on the cover and footer. | +| `date` | String | `""` | Date shown on the cover. | +| `final-message` | String | `""` | Message shown on the last slide. | +| `footer-content-1` | String | `authors` | Left text in the upper footer band. Long strings are truncated with ellipses. | +| `footer-content-2` | String | `institution` | Right text in the upper footer band. Long strings are truncated with ellipses. | +| `footer-content-3` | String | `title` | Left text in the lower footer band. Long strings are truncated with ellipses. | +| `primary-color` | Color | `rgb("#1C1C1C")` | Main bars, highlights, numbering, and accents. | +| `secondary-color` | Color | `rgb("#D9D9D9")` | Secondary header and footer bands. | +| `background-color` | Color | `rgb("#FFFFFF")` | Slide background color. | +| `font-color` | Color | `luma(20)` | Default body text color. | +| `header-font-color-1` | Color | `_muted-nav(primary-color)` | Inactive text in the primary header band and text in the lower footer band. | +| `header-font-color-2` | Color | `primary-color` | Text in the secondary header and footer bands. | +| `header-font-color-1-highlight` | Color | `rgb("#FFFFFF")` | Active text in the primary header band. | +| `content-center` | Float 0-1 | `0.3` | Vertical position used to center content; `0` starts at the top, `1` at the bottom. | +| `content-upper-padding` | Float 0-1 | `0.05` | Top proportion of the available content area kept empty. | +| `content-lower-padding` | Float 0-1 | `0.05` | Bottom proportion of the available content area kept empty. | +| `logos` | `array[content]` | `()` | Logo images or custom content shown on the cover. | +| `TOC` | Bool | `true` | Whether to add the table of contents slide with links to each section's divider or first slide. | + +The template still accepts the previous parameter names (`title-color`, `bg-color`, `cover-images`, `toc`, and related aliases) for existing documents, but new presentations should use the `config` object. + +For cover logos, pass Typst content rather than path strings, for example `logos: (image("assets/logo.png", height: 45pt),)`. This keeps image paths resolved from the user document instead of from the package internals. + +--- + +## Fonts + +The template uses IBM Plex when available, with Liberation and DejaVu fallbacks. For local compilation with IBM Plex, install the fonts on your system or pass them with `--font-path`. + +This repository keeps IBM Plex files in `assets/fonts/` so `example.typ` can compile locally with the intended typography. The package manifest excludes `assets/fonts/**` from the Typst Universe bundle, because Universe packages must not ship font files. + +| Role | Font | +|------|------| +| Body text | IBM Plex Serif | +| Titles and UI elements | IBM Plex Sans | +| Code and verbatim | IBM Plex Mono | + +Fallback chains include Liberation and DejaVu, so the template works even when IBM Plex is unavailable. + +--- + +## Slide functions + +### `#slide(title: "...", body)` + +Standard content slide. Content is vertically centred in the available area. + +```typst +#slide(title: "My Slide")[ + Content goes here. +] +``` + +### `#new-section("Name", slide-title: auto)` + +Registers a section, increments the section counter, resets figure and theorem counters, updates the navigation bar label, and automatically renders the section intro slide. Use `slide-title:` when the intro slide should display a different title from the navigation label. + +### `#section-slide("Name")` + +Renders an extra full-page section divider manually. This is no longer needed for the normal `#new-section(...)` workflow. + +### `#new-subsection("Name")` + +Registers a subsection in the TOC without rendering a divider slide. + +### `#final-slide` + +A centered italic final-message slide. Configure the displayed text with `final-message`. No parentheses — this is a content value, not a function call. + +--- + +## Layout helpers + +### `#two-col(left, right, gutter: 22.4pt, left-width: 48%)` + +Splits the slide into two columns. + +```typst +#two-col( + [Left column content], + [Right column content], + left-width: 55%, +) +``` + +--- + +## Figures + +### `#baf-figure(caption: [...], body)` + +Numbered figure. The counter resets at each `#new-section`. Reference by number in surrounding text. + +```typst +#baf-figure(caption: [A diagram showing the architecture.])[ + #image("diagram.svg", width: 80%) +] +``` + +### `#baf-visual(body)` + +A centered, full-width visual wrapper with the same vertical spacing used by figures. It is useful for diagrams, plots, and placeholders. + +```typst +#baf-visual[ + #rect(width: 100%, height: 54pt, fill: luma(242), stroke: luma(180)) +] +``` + +--- + +## Tables + +### `#baf-table-cell(body, fill: ..., stroke: ..., pos: ...)` + +Cell helper for tables built with `grid`. It applies the template table font, IBM Plex Sans by default. + +```typst +#baf-table-cell(fill: luma(248), stroke: luma(200) + 0.6pt, pos: center)[88.9] +``` + +--- + +## Theorem-style boxes + +All boxes display a colored header with `Kind N.M` (section.number) and an optional name panel. + +| Function | Default color | +|----------|---------------| +| `#theorem(name: "...", body)` | `blue.darken(50%)` | +| `#lemma(name: "...", body)` | `blue.darken(30%)` | +| `#corollary(name: "...", body)` | `blue.darken(40%)` | +| `#proposition(name: "...", body)` | `teal.darken(30%)` | +| `#definition(name: "...", body)` | `purple.darken(20%)` | +| `#example(name: "...", body)` | `green.darken(30%)` | +| `#exercise(name: "...", body)` | `orange.darken(20%)` | +| `#remark(name: "...", body)` | `luma(90)` | +| `#proof(body)` | left-border style | +| `#baf-box("kind", name: "...", color: ..., body)` | any color | + +The `color:` parameter can be overridden on any box. `#baf-box` accepts any string as the kind label. + +```typst +#theorem(name: "Banach Fixed-Point Theorem")[ + Let $(M, d)$ be a complete metric space and $f$ a contraction. Then $f$ has a unique fixed point. +] + +#baf-box("warning", name: "Careful!", color: red.darken(20%))[ + Do not confuse contractions with nonexpansive maps. +] +``` + +## Code and pseudo-code boxes + +Code fragments and pseudo-code can use the same framed header style as theorem boxes, with a `type` label and optional `title`. + +| Function | Purpose | +|----------|---------| +| `#code-box("...", type: "...", title: "...", lang: "...")` | Source code with optional syntax highlighting | +| `#pseudo-code("...", type: "...", title: "...")` | Pseudo-code with the same box chrome | + +```typst +#code-box( + "def train_step(x):\n return model(x)", + type: "Source Code", + title: "Python", + lang: "python", +) + +#pseudo-code( + "for t <- 1 to T\n update theta\nend", + title: "Training Loop", +) +``` + +--- + +## Example slides (`example.typ`) + +The file `example.typ` is a complete demo presentation covering all template features. Below is a summary of each section. + +### Section 1 — Configuration + +- Template configuration table with name, expected value, default, and description. +- Exact Typst code used by the example presentation to import and configure the template. + +### Section 2 — Typography + +- Side-by-side comparison of the three IBM Plex families (Serif, Sans, Mono) with representative weight and style variants. +- Size scale from 8 pt to 18 pt; semantic use of bold, italic, color, and underline. + +### Section 3 — Lists & Enumerations + +- Unordered bullet list (3 levels) and ordered enumeration (3 levels) side by side in two columns. + +### Section 4 — Figures + +- Two numbered figures with placeholder rectangles and captions. Explains how to replace placeholders with real images. + +### Section 5 — Layouts + +- A two-column layout with explanatory text on the left and a content block on the right. + +### Section 6 — Code Blocks + +- Python source code and pseudo-code side by side, both rendered as framed boxes with a theorem-style `type | title` header. + +### Section 7 — Tables + +- Paper-style booktabs table (horizontal rules only) and grid-style table (full borders, colored header, alternating row shading) side by side. + +### Section 8 — Diagrams & Charts + +- Two block diagrams — a Transformer encoder block (matching the original color scheme: orange FFN, blue Add & Norm, green attention) and a state-space system block diagram. +- A linear-algebra kernel/image decomposition diagram and a three-state Markov chain transition graph with labeled arcs. +- A line chart of model accuracy vs. epoch (data from `assets/curves.csv`) and a grouped bar histogram of test scores by group and year (2020–2024). + +### Section 9 — Theorem-style Boxes + +- `#definition`, `#theorem`, `#lemma`, `#corollary`, and `#proof` environments demonstrated with the Banach fixed-point theorem and Picard–Lindelöf corollary. +- `#example`, `#exercise`, `#proposition`, and three `#baf-box` calls with custom kind labels ("note", "warning", "custom") and custom colors. + +--- + +## Repository layout + +``` +black-angular-frame/ +├── typst.toml # Package manifest +├── black-angular-frame.typ # Package entrypoint +├── template/ +│ ├── main.typ # typst init starter file +│ └── assets/ # Starter assets copied by typst init +│ ├── typst-logo.png # Demo logo asset +│ └── github-logo.png # Demo logo asset +├── thumbnail.png # Universe thumbnail +├── example.typ # Full local demo presentation +├── example.pdf # Pre-compiled local demo PDF +├── assets/ +│ ├── typst-logo.png # Local demo logo asset +│ ├── github-logo.png # Local demo logo asset +│ ├── fonts/ # IBM Plex Serif / Sans / Mono TTF files +│ ├── example-preview.png # README preview of the first four demo slides +│ └── curves.csv # Sample data for the line chart slide +└── README.md +``` + +The Typst Universe bundle is controlled by `exclude` in `typst.toml`. The local demo, generated PDFs, README preview image, local fonts, Tinymist lockfile, and temporary files stay in the repository but are excluded from the published package archive. + +--- + +## Acknowledgements + +This template was visually inspired by the [Ritsumeikan University Theme Beamer Template](https://www.overleaf.com/latex/templates/ritsumeikan-university-theme-beamer-template/jmfcqqptxjxk) by Ming-Hao Xu (Xu Minghao), published on Overleaf under the LaTeX Project Public License 1.3c and described as altered from the THU template. This Typst template is independently implemented and is not affiliated with or endorsed by Ritsumeikan University, Tsinghua University, or Overleaf. No university logos or brand assets are included. + +--- + +## License + +The template code is released under the MIT License. The IBM Plex fonts kept for local demo builds are distributed under the SIL Open Font License 1.1; see `assets/fonts/OFL-1.1.txt`. Font files are excluded from the Typst Universe package bundle. diff --git a/packages/preview/black-angular-frame/0.1.1/assets/curves.csv b/packages/preview/black-angular-frame/0.1.1/assets/curves.csv new file mode 100644 index 0000000000..00d583ed4a --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/assets/curves.csv @@ -0,0 +1,12 @@ +x,model_a,model_b,baseline +0.0,0.52,0.48,0.50 +0.5,0.57,0.51,0.50 +1.0,0.63,0.55,0.50 +1.5,0.70,0.60,0.50 +2.0,0.76,0.65,0.50 +2.5,0.81,0.69,0.50 +3.0,0.85,0.73,0.50 +3.5,0.88,0.76,0.50 +4.0,0.90,0.79,0.50 +4.5,0.91,0.81,0.50 +5.0,0.92,0.83,0.50 diff --git a/packages/preview/black-angular-frame/0.1.1/assets/example-preview.png b/packages/preview/black-angular-frame/0.1.1/assets/example-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..7b565f1f6c5c837cc8499ca6cd9c175c3d39f5a4 GIT binary patch literal 196049 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%0A>WPyJv9yW?4^OFL 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%0AtEaJ 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

Kel*IBn3iC6-APuQxg!p+C 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 literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/assets/github-logo.png b/packages/preview/black-angular-frame/0.1.1/assets/github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..34966ac65567e4180fa43cc212fc1ec5074e4765 GIT binary patch literal 6362 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 Q|3^@1s_LqgDLsGtKW)v!>i_@% literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/assets/typst-logo.png b/packages/preview/black-angular-frame/0.1.1/assets/typst-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..773232fdf66739d77f7ed68d614ff771fb96b5b4 GIT binary patch literal 12710 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 literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ b/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ new file mode 100644 index 0000000000..1c3a9214fd --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ @@ -0,0 +1,1282 @@ +// ============================================================ +// black-angular-frame -- Typst presentation template +// Formal academic presentation theme for Typst +// Usage: +// #import "black-angular-frame.typ": * +// #show: black-angular-frame.with(config: (title: "My Talk", ...)) +// #slide(title: "First")[...] +// ============================================================ + +// ---- Internal state ---------------------------------------- +#let _baf-tc = state("_baf-tc", rgb("#1C1C1C")) +#let _baf-sc = state("_baf-sc", rgb("#D9D9D9")) +#let _baf-bg = state("_baf-bg", white) +#let _baf-w = state("_baf-w", 254mm) +#let _baf-h = state("_baf-h", 143mm) +#let _baf-ft = state("_baf-ft", none) +#let _baf-fst = state("_baf-fst", none) +#let _baf-title = state("_baf-title", "") +#let _baf-subt = state("_baf-subt", "") +#let _baf-inst = state("_baf-inst", none) +#let _baf-auth = state("_baf-auth", none) +#let _baf-fc = state("_baf-fc", luma(20)) +#let _baf-hfc1 = state("_baf-hfc1", rgb("#999999")) +#let _baf-hfc2 = state("_baf-hfc2", rgb("#1C1C1C")) +#let _baf-hfc1h = state("_baf-hfc1h", white) +#let _baf-final = state("_baf-final", "") +#let _baf-cctr = state("_baf-cctr", 0.3) +#let _baf-cupad = state("_baf-cupad", 0.05) +#let _baf-clpad = state("_baf-clpad", 0.05) +#let _baf-pages = state("_baf-pages", ()) +#let _baf-sec-targets = state("_baf-sec-targets", ()) + +#let _sec-ctr = counter("_baf-sec") +#let _fig-ctr = counter("_baf-fig") +#let _cur-sec = state("_baf-cursec", "") +#let _toc-data = state("_baf-toc", ()) + +#let _thm-ctrs = ( + theorem: counter("_baf-thm"), + lemma: counter("_baf-lem"), + corollary: counter("_baf-cor"), + proposition: counter("_baf-prp"), + definition: counter("_baf-def"), + example: counter("_baf-exa"), + exercise: counter("_baf-exr"), + remark: counter("_baf-rmk"), +) + +// ---- Color helpers ----------------------------------------- +#let _lmix(c, pct) = color.mix((c, 100% - pct), (white, pct)) +#let _title-bg(c) = _lmix(c, 88%) +#let _sub-hdr(c) = _lmix(c, 40%) +#let _soft-rule(c) = _lmix(c, 72%) +#let _muted-nav(c) = color.mix((white, 55%), (c, 45%)) + +// ---- Font stacks ------------------------------------------- +#let _sans = ("IBM Plex Sans", "Liberation Sans", "DejaVu Sans") +#let _serif = ("IBM Plex Serif", "Liberation Serif", "DejaVu Serif") +#let _mono = ("IBM Plex Mono", "Liberation Mono", "DejaVu Sans Mono") + +#let _slide-x-margin = 22.4pt +#let _single-col-x-margin = 2 * _slide-x-margin +#let _nav-compact-threshold = 4 +#let _cover-image-gap = 18pt + +#let _clamp01(value) = { + if value < 0 { 0 } else if value > 1 { 1 } else { value } +} + +// ============================================================ +// Shared chrome +// ============================================================ + +#let _single-line(content) = { + if content == none { none } else if type(content) == str { content.replace("\n", " ") } else { content } +} + +#let _fit-ellipsis(value, remaining, width, text-width, suffix: "...") = { + if remaining <= 0 { suffix } else { + let omitted = value.len() - remaining + let candidate = if omitted < suffix.len() { + value.slice(0, remaining) + value.slice(remaining) + } else { + value.slice(0, remaining) + suffix + } + if text-width(candidate) <= width { + candidate + } else { + _fit-ellipsis(value, remaining - 1, width, text-width, suffix: suffix) + } + } +} + +#let _ellipsis-text( + content, + width, + font: _sans, + size: 10pt, + fill: black, + reserve: 8pt, +) = context { + let effective-width = calc.max(0pt, width - reserve) + let text-width = value => measure(text(font: font, size: size, fill: fill, value)).width + let value = _single-line(content) + + if value == none or type(value) != str or text-width(value) <= effective-width { + text(font: font, size: size, fill: fill, value) + } else { + let suffix = "..." + text( + font: font, + size: size, + fill: fill, + _fit-ellipsis(value, value.len(), effective-width, text-width, suffix: suffix), + ) + } +} + +#let _nav-dot(active: false, color, inactive-fill: auto, active-fill: white) = box( + width: 6.2pt, + height: 6.2pt, + inset: 0pt, + align(center + horizon, circle( + radius: 2pt, + fill: if active { active-fill } else { none }, + stroke: if active { none } else { (if inactive-fill == auto { _muted-nav(color) } else { inactive-fill }) + 0.7pt }, + )), +) + +#let _cover-image-item(logo, height: 45pt) = { + if type(logo) == str { + image(logo, height: height) + } else { + logo + } +} + +#let _cover-image-row(logos, height: 45pt) = { + grid( + columns: logos.map(_ => auto), + column-gutter: _cover-image-gap, + align: horizon, + ..logos.map(logo => _cover-image-item(logo, height: height)), + ) +} + +#let _register-page(section: none, intro: false) = { + _baf-pages.update(p => p + ((section: section, intro: intro),)) +} + +#let _register-section-target(title, loc) = { + if title != none and title != "" { + _baf-sec-targets.update(t => { + if t.find(entry => entry.title == title) == none { + t + ((title: title, loc: loc),) + } else { + t + } + }) + } +} + +#let _header-band( + w, + section, + slide-title: none, + primary, + secondary, + header-font-color-1: auto, + header-font-color-2: auto, + header-font-color-1-highlight: white, +) = context { + let hfc1 = if header-font-color-1 == auto { _muted-nav(primary) } else { header-font-color-1 } + let hfc2 = if header-font-color-2 == auto { primary } else { header-font-color-2 } + let titles = _toc-data.final().filter(e => e.kind == "section").map(e => e.title) + let sec-targets = _baf-sec-targets.final() + let pages = _baf-pages.final() + let page-no = counter(page).get().first() + let nav-margin = 22.4pt + let nav-top = 3.425pt + let nav-bottom = 2.025pt + let nav-item-x-inset = 0.4pt + let active-dot-index = { + if ( + page-no <= pages.len() + and section != none + and section != "" + and not pages.at(page-no - 1, default: (intro: false)).intro + ) { + let seen = 0 + for (idx, entry) in pages.enumerate() { + if entry.section == section and not entry.intro { + seen += 1 + } + if idx + 1 == page-no { break } + } + if seen == 0 { none } else { seen } + } else { + none + } + } + let nav-slide-count(title) = { + calc.max(1, pages.filter(entry => entry.section == title and not entry.intro).len()) + } + let nav-progress-label(title) = { + let slide-count = nav-slide-count(title) + let current-page = pages.at(page-no - 1, default: (intro: false)) + let is-current-section = section == title + let is-section-slide = is-current-section and active-dot-index != none + if is-section-slide { + str(active-dot-index) + "/" + str(slide-count) + } else { + str(slide-count) + } + } + let nav-progress-width(title) = { + let slide-count = nav-slide-count(title) + if slide-count > _nav-compact-threshold { + let label-width = measure(text(font: _sans, size: 6.8pt, nav-progress-label(title))).width + 6.2pt + 1.6pt + label-width + } else { + 6.2pt * slide-count + 1.4pt * calc.max(0, slide-count - 1) + } + } + let nav-title-width(title, item-width) = { + let inner-width = calc.max(0pt, item-width - 2 * nav-item-x-inset) + let value = _single-line(title) + if value == none or type(value) != str { + 0pt + } else { + let raw-width = measure(text(font: _sans, size: 7.1pt, value)).width + calc.min(raw-width, inner-width) + } + } + let nav-visible-width(title, item-width) = { + calc.max(nav-title-width(title, item-width), nav-progress-width(title)) + } + let nav-item(title, item-width) = { + let slide-count = nav-slide-count(title) + let target = sec-targets.rev().find(entry => entry.title == title) + block( + width: item-width, + inset: (left: nav-item-x-inset, right: nav-item-x-inset, top: 1.3pt, bottom: 1.1pt), + { + layout(size => { + let title-fill = if section == title { header-font-color-1-highlight } else { hfc1 } + let current-page = pages.at(page-no - 1, default: (intro: false)) + let is-current-section = section == title + let is-section-intro = is-current-section and current-page.intro + let is-section-slide = is-current-section and active-dot-index != none + let use-compact-progress = slide-count > _nav-compact-threshold + let progress-label = nav-progress-label(title) + let progress-fill = if is-current-section { header-font-color-1-highlight } else { hfc1 } + + let title-content = if target != none { + link(target.at("loc"))[ + #_ellipsis-text( + title, + size.width, + font: _sans, + size: 7.1pt, + fill: title-fill, + ) + ] + } else { + _ellipsis-text( + title, + size.width, + font: _sans, + size: 7.1pt, + fill: title-fill, + ) + } + + let progress-content = if use-compact-progress { + grid( + columns: (auto, auto), + column-gutter: 1.6pt, + align: horizon, + _nav-dot( + active: is-section-slide or is-section-intro, + primary, + inactive-fill: hfc1, + active-fill: header-font-color-1-highlight, + ), + move( + dy: -0.2pt, + text(font: _sans, fill: progress-fill, size: 6.8pt, progress-label), + ), + ) + } else { + box[ + #for dot-idx in range(slide-count) { + _nav-dot( + active: is-section-slide and active-dot-index == dot-idx + 1, + primary, + inactive-fill: hfc1, + active-fill: header-font-color-1-highlight, + ) + if dot-idx + 1 < slide-count { h(1.4pt) } + } + ] + } + + grid( + columns: (1fr,), + rows: (8.6pt, 6.2pt), + row-gutter: 0pt, + block( + width: 100%, + height: 8.6pt, + align(left + horizon, title-content), + ), + block( + width: 100%, + height: 6.2pt, + align(left + horizon, move(dy: 2pt, progress-content)), + ), + ) + }) + }, + ) + } + stack( + dir: ttb, + spacing: 0pt, + block( + width: w, + height: 24.75pt, + fill: primary, + inset: (x: 0pt, y: 0pt), + { + if titles != () { + layout(size => { + let usable-width = size.width - 2 * nav-margin + let positions = if titles.len() == 1 { + (0.5,) + } else if titles.len() == 2 { + (1 / 3, 2 / 3) + } else if titles.len() == 3 { + (1 / 4, 1 / 2, 3 / 4) + } else { + range(titles.len()).map(idx => (idx + 0.5) / titles.len()) + } + let item-width = if titles.len() == 1 { + calc.min(usable-width, 260pt) + } else if titles.len() == 2 { + calc.min(usable-width / 3, 210pt) + } else if titles.len() == 3 { + calc.min(usable-width / 4, 160pt) + } else { + usable-width / titles.len() + } + let relative-lefts = positions.map(pos => usable-width * pos - item-width / 2) + let first-left = relative-lefts.at(0) + let last-left = relative-lefts.at(relative-lefts.len() - 1) + let last-title = titles.at(titles.len() - 1) + let last-visible-width = nav-visible-width(last-title, item-width) + let centering-shift = ( + ( + usable-width - first-left - last-left - last-visible-width - 2 * nav-item-x-inset + ) + / 2 + ) + for (idx, title) in titles.enumerate() { + place( + top + left, + dx: nav-margin + centering-shift + relative-lefts.at(idx), + dy: nav-top, + nav-item(title, item-width), + ) + } + }) + } + }, + ), + if slide-title != none { + block( + width: w, + height: 25.5pt, + fill: secondary, + inset: (left: _single-col-x-margin, right: _single-col-x-margin, top: 0pt, bottom: 0pt), + block( + width: 100%, + height: 100%, + align(horizon, align(left, text(font: _sans, fill: hfc2, size: 14pt, slide-title))), + ), + ) + }, + ) +} +#let _footer-band( + w, + left-top, + right-top, + left-bottom, + page-no, + primary, + secondary, + header-font-color-1: auto, + header-font-color-2: auto, + header-font-color-1-highlight: white, +) = { + let hfc1 = if header-font-color-1 == auto { _muted-nav(primary) } else { header-font-color-1 } + let hfc2 = if header-font-color-2 == auto { primary } else { header-font-color-2 } + let footer-side-width = w * 0.3 - _slide-x-margin + stack( + dir: ttb, + spacing: 0pt, + block(width: w, height: 14.1pt, fill: secondary, inset: (left: 22.4pt, right: 22.4pt, top: 0pt, bottom: 0pt), { + grid( + columns: (w * 0.3 - _slide-x-margin, w * 0.4, w * 0.3 - _slide-x-margin), + block( + width: 100%, + height: 100%, + align(horizon, align(left, if _single-line(left-top) != none { + _ellipsis-text(left-top, footer-side-width, font: _sans, fill: hfc2, size: 7pt, reserve: 0pt) + } else { [] })), + ), + block(width: 100%, height: 100%), + block( + width: 100%, + height: 100%, + align(horizon, align(right, if _single-line(right-top) != none { + _ellipsis-text(right-top, footer-side-width, font: _sans, fill: hfc2, size: 7pt, reserve: 0pt) + } else { [] })), + ), + ) + }), + block(width: w, height: 15.51pt, fill: primary, inset: (left: 22.4pt, right: 22.4pt, top: 0pt, bottom: 0pt), { + grid( + columns: (w * 0.3 - _slide-x-margin, w * 0.4, w * 0.3 - _slide-x-margin), + block( + width: 100%, + height: 100%, + align(horizon, align(left, if _single-line(left-bottom) != none { + move(dy: 0pt, _ellipsis-text(left-bottom, footer-side-width, font: _sans, fill: hfc1, size: 7pt, reserve: 0pt)) + } else { [] })), + ), + block(width: 100%, height: 100%), + block( + width: 100%, + height: 100%, + align(horizon, align(right, move(dy: 0.2pt, text( + font: _sans, + fill: hfc1, + size: 6.8pt, + _single-line(page-no), + )))), + ), + ) + }), + ) +} + +#let _slide-body-area(w, h, body) = context { + let center = _clamp01(_baf-cctr.get()) + let upper = _clamp01(_baf-cupad.get()) + let lower = _clamp01(_baf-clpad.get()) + let usable-ratio = calc.max(0, 1 - upper - lower) + + block( + width: w, + height: h, + inset: (x: _single-col-x-margin, y: 0pt), + clip: true, + layout(size => { + let content-width = size.width + let inner-top = size.height * upper + let inner-height = size.height * usable-ratio + let content = block(width: content-width, body) + let measured = measure(content) + let free-height = calc.max(0pt, inner-height - measured.height) + let dy = inner-top + if center <= 0 { 0pt } else { free-height * center } + place(top + left, dy: dy, content) + }), + ) +} + +// ============================================================ +// Public API -- layout helpers +// ============================================================ + +/// Two-column layout inside a slide. +/// #two-col([left content], [right content], left-width: 50%) +#let two-col(left, right, gutter: 22.4pt, left-width: 48%) = { + block( + width: 100%, + grid( + columns: (left-width, 1fr), + column-gutter: gutter, + grid.cell(align: top + start)[#left], + grid.cell(align: top + start)[#right], + ), + ) +} + +// ============================================================ +// Figure +// ============================================================ + +#let _visual-y-margin = 15.75pt +#let _caption-gap = 2.3pt +#let _diagram-caption-gap = _caption-gap +#let _table-caption-gap = 6pt +#let _table-after-caption-margin = _visual-y-margin + +/// Generic visual block without a caption. +#let baf-visual(body) = block( + width: 100%, + above: _visual-y-margin, + below: _visual-y-margin, + align(center, body), +) + +/// Cell helper for grid-built tables. Uses the template's table font. +#let baf-table-cell(body, fill: none, stroke: none, pos: left, inset: (x: 5pt, y: 4pt)) = block( + width: 100%, + fill: fill, + stroke: stroke, + inset: inset, + align(pos, text(font: _sans, body)), +) + +/// Numbered figure with optional italic caption. +/// Counters reset per section. +#let baf-figure(body, caption: none, caption-gap: _caption-gap) = { + _fig-ctr.step() + block(above: _visual-y-margin, below: _visual-y-margin, spacing: 0pt, width: 100%, { + align(center, body) + if caption != none { + v(caption-gap) + align(center, context text(size: 0.72em, style: "italic", [*Figure #_fig-ctr.display().* #caption])) + } + }) +} + +/// Diagram figure with template-level caption spacing. +#let baf-diagram(body, caption: none) = baf-figure( + caption: caption, + caption-gap: _diagram-caption-gap, + body, +) + +// ============================================================ +// Theorem-style boxes +// ============================================================ +#let _panel-box(type-label, title, color, body, body-fill: none, width: 100%) = block( + width: width, + breakable: false, + above: _visual-y-margin, + below: _visual-y-margin, + stroke: color + 0.8pt, + fill: body-fill, + inset: 0pt, + spacing: 0pt, + align(top + left, stack( + dir: ttb, + spacing: 0pt, + if title != none { + grid( + columns: (auto, 1fr), + column-gutter: 0pt, + block( + fill: color, + inset: (left: 5pt, right: 5pt, top: 3.5pt, bottom: 5.3pt), + text(font: _sans, fill: white, weight: "bold", size: 0.80em, type-label), + ), + block( + fill: _sub-hdr(color), + inset: (left: 5pt, right: 5pt, top: 3.5pt, bottom: 5.3pt), + width: 100%, + text(font: _sans, fill: white, size: 0.80em, title), + ), + ) + } else { + block( + width: 100%, + fill: color, + inset: (left: 5pt, right: 5pt, top: 3.5pt, bottom: 5.3pt), + text(font: _sans, fill: white, weight: "bold", size: 0.80em, type-label), + ) + }, + if body-fill != none { + block(width: 100%, height: 1.2pt, fill: body-fill) + }, + block( + width: 100%, + inset: (left: 5pt, right: 5pt, top: 5pt, bottom: 7pt), + fill: body-fill, + align(left, body), + ), + )), +) + +#let _tbox(kind, name, color, body, width: 100%) = { + let ctr = _thm-ctrs.at(kind, default: _thm-ctrs.theorem) + ctr.step() + let cap = upper(kind.first()) + kind.slice(1) + context { + let sec = _sec-ctr.get().first() + let num = ctr.get().first() + _panel-box([#cap #sec.#num], name, color, body, width: width) + } +} + +/// Theorem box +#let theorem(name: none, color: blue.darken(50%), width: 100%, body) = { + _tbox("theorem", name, color, body, width: width) +} +/// Lemma box +#let lemma(name: none, color: blue.darken(30%), width: 100%, body) = { _tbox("lemma", name, color, body, width: width) } +/// Corollary box +#let corollary(name: none, color: blue.darken(40%), width: 100%, body) = { + _tbox("corollary", name, color, body, width: width) +} +/// Proposition box +#let proposition(name: none, color: teal.darken(30%), width: 100%, body) = { + _tbox("proposition", name, color, body, width: width) +} +/// Definition box +#let definition(name: none, color: purple.darken(20%), width: 100%, body) = { + _tbox("definition", name, color, body, width: width) +} +/// Example box +#let example(name: none, color: green.darken(30%), width: 100%, body) = { + _tbox("example", name, color, body, width: width) +} +/// Exercise box +#let exercise(name: none, color: orange.darken(20%), width: 100%, body) = { + _tbox("exercise", name, color, body, width: width) +} +/// Remark box +#let remark(name: none, color: luma(90), width: 100%, body) = { _tbox("remark", name, color, body, width: width) } + +/// Generic custom box -- any kind label and color. +/// #baf-box("warning", name: "Watch out", color: red)[...] +#let baf-box(kind, name: none, color: blue.darken(50%), width: 100%, body) = { + _tbox(kind, name, color, body, width: width) +} + +/// Full-width separator for use inside theorem-style boxes. +#let box-separator(label, color: luma(80)) = { + v(5pt) + move( + dx: -5pt, + block( + width: 100% + 10pt, + fill: color, + inset: (x: 5pt, y: 3pt), + text(font: _sans, fill: white, weight: "bold", size: 0.80em, label), + ), + ) + v(5pt) +} + +/// Display equation with the same vertical rhythm as visual boxes. +#let baf-equation(body) = block( + width: 100%, + above: _visual-y-margin, + below: _visual-y-margin, + align(center, body), +) + +/// Proof environment with QED box. +#let proof(width: 100%, body) = { + block( + width: width, + inset: (x: 6pt, y: 5pt), + above: _visual-y-margin, + below: _visual-y-margin, + stroke: (left: luma(80) + 2pt), + spacing: 0.4em, + align(left, text(style: "italic", [_Proof._ ]) + body + h(1fr) + box(width: 6pt, height: 6pt, fill: luma(80))), + ) +} + +// ============================================================ +// Code and pseudo-code boxes +// ============================================================ + +/// Generic code-style box with theorem-like header. +/// #code-box("print('hi')", type: "Code", title: "Python", lang: "python") +#let code-box( + code, + type: "Code", + title: none, + lang: none, + color: blue.darken(50%), + fill: luma(245), + text-size: 8pt, +) = { + _panel-box( + type, + title, + color, + block( + width: 100%, + inset: 0pt, + spacing: 0pt, + move( + dy: -1.6pt, + text( + font: _mono, + size: text-size, + if lang == none { raw(code) } else { raw(lang: lang, code) }, + ), + ), + ), + body-fill: fill, + ) +} + +/// Pseudo-code box with theorem-like header. +/// #pseudo-code("for i <- 1 to n", title: "Mini-Batch SGD") +#let pseudo-code( + code, + type: "Pseudo-code", + title: none, + color: teal.darken(30%), + fill: luma(252), + text-size: 8pt, +) = { + code-box( + code, + type: type, + title: title, + color: color, + fill: fill, + text-size: text-size, + ) +} + +// ============================================================ +// Section management +// ============================================================ + +/// Register a subsection in the TOC (does not create a slide). +#let new-subsection(title) = { + _toc-data.update(t => t + ((kind: "sub", title: title),)) +} + +// ============================================================ +// Slide functions +// ============================================================ + +/// Standard content slide. +/// #slide(title: "My Slide")[Content] +#let slide(title: none, section: auto, show-title-band: auto, body) = { + context { + let tc = _baf-tc.get() + let sc = _baf-sc.get() + let bg = _baf-bg.get() + let w = _baf-w.get() + let h = _baf-h.get() + let ft = _baf-ft.get() + let auth = _baf-auth.get() + let inst = _baf-inst.get() + let hfc1 = _baf-hfc1.get() + let hfc2 = _baf-hfc2.get() + let hfc1h = _baf-hfc1h.get() + let cur = _cur-sec.get() + let sec = if section == auto { cur } else { section } + let header-title = if show-title-band == auto { + if sec == none or sec == "" { none } else { title } + } else if show-title-band and title != none { + title + } else { + none + } + + let header-h = if header-title == none { 24.75pt } else { 50.25pt } + let footer-h = 29.61pt + let avail = h - header-h - footer-h + let slide-loc = here() + _register-section-target(sec, slide-loc) + _register-page(section: sec) + + page( + width: w, + height: h, + margin: 0pt, + background: rect(width: 100%, height: 100%, fill: bg), + header: none, + footer: none, + { + place( + top + left, + float: false, + _header-band( + w, + if sec == none { "" } else { sec }, + slide-title: header-title, + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + place( + bottom + left, + float: false, + _footer-band( + w, + auth, + inst, + ft, + counter(page).display() + " / " + str(counter(page).final().first()), + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + place( + top + left, + dy: header-h, + float: false, + _slide-body-area(w, avail, body), + ) + }, + ) + } +} + +/// Section divider slide (typically called right after new-section). +#let section-slide(sec-title) = { + context { + let tc = _baf-tc.get() + let sc = _baf-sc.get() + let bg = _baf-bg.get() + let w = _baf-w.get() + let h = _baf-h.get() + let ft = _baf-ft.get() + let auth = _baf-auth.get() + let inst = _baf-inst.get() + let hfc1 = _baf-hfc1.get() + let hfc2 = _baf-hfc2.get() + let hfc1h = _baf-hfc1h.get() + let nav-sec = { + let cur = _cur-sec.get() + if cur == none or cur == "" { sec-title } else { cur } + } + let sec-loc = here() + _register-page(section: nav-sec, intro: true) + _register-section-target(nav-sec, sec-loc) + + page( + width: w, + height: h, + margin: 0pt, + background: rect(width: 100%, height: 100%, fill: bg), + header: none, + footer: none, + { + place( + top + left, + float: false, + _header-band( + w, + nav-sec, + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + place( + bottom + left, + float: false, + _footer-band( + w, + auth, + inst, + ft, + counter(page).display() + " / " + str(counter(page).final().first()), + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + block( + width: w, + height: h - 24.75pt - 29.61pt, + align(center + horizon, block( + width: 65%, + stroke: tc + 0.8pt, + inset: 0pt, + { + block( + width: 100%, + fill: tc, + inset: (x: 12pt, y: 4pt), + context { + let n = _sec-ctr.get().first() + text(font: _sans, fill: hfc1h, size: 8pt, [Section #n]) + }, + ) + block( + width: 100%, + height: 38pt, + inset: (x: 12pt, y: 0pt), + align(horizon, move(dy: -3pt, text(font: _sans, size: 15pt, weight: "bold", fill: tc, sec-title))), + ) + }, + )), + ) + }, + ) + } +} + +/// Declare a new section and render its intro slide. +#let new-section(title, slide-title: auto) = { + _sec-ctr.step() + for (_, c) in _thm-ctrs { c.update(0) } + _fig-ctr.update(0) + _cur-sec.update(title) + _toc-data.update(t => t + ((kind: "section", title: title),)) + section-slide(if slide-title == auto { title } else { slide-title }) +} + +/// Final message slide. +#let final-slide = context { + let tc = _baf-tc.get() + let sc = _baf-sc.get() + let bg = _baf-bg.get() + let w = _baf-w.get() + let h = _baf-h.get() + let ft = _baf-ft.get() + let auth = _baf-auth.get() + let inst = _baf-inst.get() + let hfc1 = _baf-hfc1.get() + let hfc2 = _baf-hfc2.get() + let hfc1h = _baf-hfc1h.get() + let final-message = _baf-final.get() + _register-page() + + page( + width: w, + height: h, + margin: 0pt, + background: rect(width: 100%, height: 100%, fill: bg), + header: none, + footer: none, + { + place( + top + left, + float: false, + _header-band( + w, + "", + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + place( + bottom + left, + float: false, + _footer-band( + w, + auth, + inst, + ft, + counter(page).display() + " / " + str(counter(page).final().first()), + tc, + sc, + header-font-color-1: hfc1, + header-font-color-2: hfc2, + header-font-color-1-highlight: hfc1h, + ), + ) + block( + width: w, + height: h - 24.75pt - 29.61pt, + align(center + horizon, text(font: _serif, size: 24pt, style: "italic", fill: tc, final-message)), + ) + }, + ) +} + +// ============================================================ +// Main entry point -- use via: +// #show: black-angular-frame.with(config: (title: "...", ...)) +// ============================================================ +#let black-angular-frame( + config: (:), + title: none, + subtitle: none, + institution: none, + institute: none, + date: none, + authors: none, + final-message: none, + primary-color: none, + secondary-color: none, + background-color: none, + font-color: none, + header-font-color-1: none, + header-font-color-2: none, + header-font-color-1-highlight: none, + content-center: none, + content-upper-padding: none, + content-lower-padding: none, + logos: none, + ratio: 16 / 9, + title-color: none, + bg-color: none, + toc: none, + footer-title: auto, + footer-subtitle: auto, + logo: none, + cover-images: none, + cover-image-height: 45pt, + body, +) = { + let cfg-title = config.at("title", default: if title == none { "" } else { title }) + let cfg-subtitle = config.at("subtitle", default: if subtitle == none { "" } else { subtitle }) + let cfg-authors = config.at("authors", default: if authors == none { "" } else { authors }) + let cfg-institution = config.at( + "institution", + default: if institution != none { institution } else if institute != none { institute } else { "" }, + ) + let cfg-date = config.at("date", default: if date == none { "" } else { date }) + let cfg-final-message = config.at( + "final-message", + default: if final-message == none { "" } else { final-message }, + ) + let cfg-primary = config.at( + "primary-color", + default: if primary-color != none { primary-color } else if title-color != none { title-color } else { + rgb("#1C1C1C") + }, + ) + let cfg-secondary = config.at( + "secondary-color", + default: if secondary-color == none { rgb("#D9D9D9") } else { secondary-color }, + ) + let cfg-background = config.at( + "background-color", + default: if background-color != none { background-color } else if bg-color != none { bg-color } else { + rgb("#FFFFFF") + }, + ) + let cfg-font-color = config.at( + "font-color", + default: if font-color == none { luma(20) } else { font-color }, + ) + let cfg-hfc1 = config.at( + "header-font-color-1", + default: if header-font-color-1 == none { _muted-nav(cfg-primary) } else { header-font-color-1 }, + ) + let cfg-hfc2 = config.at( + "header-font-color-2", + default: if header-font-color-2 == none { cfg-primary } else { header-font-color-2 }, + ) + let cfg-hfc1h = config.at( + "header-font-color-1-highlight", + default: if header-font-color-1-highlight == none { white } else { header-font-color-1-highlight }, + ) + let cfg-content-center = config.at( + "content-center", + default: if content-center == none { 0.3 } else { content-center }, + ) + let cfg-content-upper-padding = config.at( + "content-upper-padding", + default: if content-upper-padding == none { 0.05 } else { content-upper-padding }, + ) + let cfg-content-lower-padding = config.at( + "content-lower-padding", + default: if content-lower-padding == none { 0.05 } else { content-lower-padding }, + ) + let cfg-logos = config.at( + "logos", + default: if logos != none { logos } else if cover-images != none { cover-images } else if logo != none { + (logo,) + } else { () }, + ) + let cfg-toc = config.at("TOC", default: if toc == none { true } else { toc }) + let cfg-footer-content-1 = config.at("footer-content-1", default: auto) + let cfg-footer-content-2 = config.at("footer-content-2", default: auto) + let cfg-footer-content-3 = config.at("footer-content-3", default: auto) + + let ft = if footer-title == auto { cfg-title } else { footer-title } + let fst = if footer-subtitle == auto { cfg-subtitle } else { footer-subtitle } + let inst = if cfg-institution == "" { none } else { cfg-institution } + let subt = if cfg-subtitle == "" { none } else { cfg-subtitle } + let date-text = if cfg-date == "" { none } else { cfg-date } + let cover-imgs = if cfg-logos == none { + () + } else if type(cfg-logos) == array { + cfg-logos + } else { + (cfg-logos,) + } + let auth = if cfg-authors != "" and cfg-authors != none { + let al = if type(cfg-authors) == array { cfg-authors } else { (cfg-authors,) } + al.join([, ]) + } else { none } + let footer-content-1 = if cfg-footer-content-1 == auto { auth } else { cfg-footer-content-1 } + let footer-content-2 = if cfg-footer-content-2 == auto { inst } else { cfg-footer-content-2 } + let footer-content-3 = if cfg-footer-content-3 == auto { ft } else { cfg-footer-content-3 } + + let w = if ratio > (16 / 9 - 0.01) { 254mm } else { 190mm } + let h = w / ratio + + // Push config into state so slide() can read it contextually + _baf-tc.update(cfg-primary) + _baf-sc.update(cfg-secondary) + _baf-bg.update(cfg-background) + _baf-w.update(w) + _baf-h.update(h) + _baf-ft.update(footer-content-3) + _baf-fst.update(fst) + _baf-title.update(cfg-title) + _baf-subt.update(cfg-subtitle) + _baf-inst.update(footer-content-2) + _baf-auth.update(footer-content-1) + _baf-fc.update(cfg-font-color) + _baf-hfc1.update(cfg-hfc1) + _baf-hfc2.update(cfg-hfc2) + _baf-hfc1h.update(cfg-hfc1h) + _baf-final.update(cfg-final-message) + _baf-cctr.update(cfg-content-center) + _baf-cupad.update(cfg-content-upper-padding) + _baf-clpad.update(cfg-content-lower-padding) + + // Global text defaults + set text(font: _serif, size: 10.5pt, fill: cfg-font-color) + set figure(gap: _caption-gap) + show figure.where(kind: table): it => block( + above: _visual-y-margin, + below: _table-after-caption-margin, + { + set figure(gap: _table-caption-gap) + it + }, + ) + show figure.caption.where(kind: table): it => { + v(_table-caption-gap) + align(center, text(size: 0.72em, style: "italic", [*#it.supplement #it.counter.display().* #it.body])) + } + show table.cell: set text(font: _sans) + show table: it => figure(kind: table, caption: [Table caption.], gap: _table-caption-gap, it) + set par(justify: true, leading: 0.55em, spacing: 0.65em) + set list(indent: 6pt) + set enum(indent: 6pt) + set page(width: w, height: h, margin: 0pt, header: none, footer: none) + + // ---- Title slide ----------------------------------------- + page( + width: w, + height: h, + margin: 0pt, + background: rect(width: 100%, height: 100%, fill: cfg-background), + header: none, + footer: none, + { + _register-page() + place( + top + left, + float: false, + _header-band( + w, + "", + cfg-primary, + cfg-secondary, + header-font-color-1: cfg-hfc1, + header-font-color-2: cfg-hfc2, + header-font-color-1-highlight: cfg-hfc1h, + ), + ) + place( + bottom + left, + float: false, + _footer-band( + w, + footer-content-1, + footer-content-2, + footer-content-3, + context counter(page).display() + " / " + str(counter(page).final().first()), + cfg-primary, + cfg-secondary, + header-font-color-1: cfg-hfc1, + header-font-color-2: cfg-hfc2, + header-font-color-1-highlight: cfg-hfc1h, + ), + ) + block( + width: w, + height: h - 24.75pt - 29.61pt, + align(center + horizon, { + block( + width: 84%, + fill: cfg-primary, + inset: (x: 14pt, y: 10pt), + align(center + horizon, { + set text(font: _sans, fill: cfg-hfc1h) + text(size: 19pt, cfg-title) + if subt != none { + linebreak() + v(4pt) + text(size: 11pt, subt) + } + }), + ) + v(12pt) + if auth != none { + text(font: _sans, size: 11pt, auth) + linebreak() + v(6pt) + } + if inst != none { + text(font: _sans, size: 9.5pt, inst) + linebreak() + v(6pt) + } + if date-text != none { + text(font: _sans, size: 10pt, date-text) + linebreak() + } + v(26pt) + if cover-imgs != () { + _cover-image-row(cover-imgs, height: cover-image-height) + } + }), + ) + }, + ) + + // ---- TOC slide ------------------------------------------- + if cfg-toc { + slide(title: "Table of Contents", section: none, show-title-band: false, { + context { + let entries = _toc-data.final() + let sec-targets = _baf-sec-targets.final() + let sec-n = 0 + text(font: _sans, size: 14pt, weight: "bold", fill: cfg-primary, [Table of Contents]) + v(8pt) + for e in entries { + if e.kind == "section" { + sec-n += 1 + let target = sec-targets.rev().find(entry => entry.title == e.title) + let number-cell = box( + width: 16pt, + height: 16pt, + fill: cfg-primary, + align(center + horizon, text(font: _sans, fill: cfg-hfc1h, size: 8pt, weight: "bold", str(sec-n))), + ) + let title-cell = align(left + horizon, text( + font: _sans, + size: 10pt, + weight: "bold", + fill: cfg-primary, + e.title, + )) + v(3pt) + grid( + columns: (18pt, 1fr), + column-gutter: 4pt, + if target != none { link(target.at("loc"))[#number-cell] } else { number-cell }, + if target != none { link(target.at("loc"))[#title-cell] } else { title-cell }, + ) + } else { + pad(left: 22pt, text(font: _sans, size: 9pt, fill: luma(40), "- " + e.title)) + } + } + } + }) + } + + // ---- User content ---------------------------------------- + body +} diff --git a/packages/preview/black-angular-frame/0.1.1/example.typ b/packages/preview/black-angular-frame/0.1.1/example.typ new file mode 100644 index 0000000000..babb1b5b5b --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/example.typ @@ -0,0 +1,1799 @@ +// ============================================================ +// black-angular-frame -- Example / Demo Presentation +// This file demonstrates all features of the template. +// ============================================================ + +#import "black-angular-frame.typ": * + +#let presentation-config = ( + title: "Black Angular Frame", + subtitle: "A Typst Template for Academic Presentations", + authors: "Author One, Author Two", + institution: "Institution Name", + date: "May 2026", + final-message: "Thank you for your attention", + primary-color: rgb("#1C1C1C"), + secondary-color: rgb("#D9D9D9"), + background-color: rgb("#FFFFFF"), + font-color: luma(20), + header-font-color-1: rgb("#999999"), + header-font-color-2: rgb("#1C1C1C"), + header-font-color-1-highlight: rgb("#FFFFFF"), + content-center: 0.3, + content-upper-padding: 0.05, + content-lower-padding: 0.05, + logos: ( + image("assets/typst-logo.png", height: 45pt), + image("assets/github-logo.png", height: 45pt), + ), + TOC: true, +) + +#show: black-angular-frame.with(config: presentation-config) + +// ============================================================ +// CONFIGURATION +// ============================================================ +#new-section("Configuration") + +#slide(title: "Template Configuration")[ + The template is configured from a single Typst dictionary. The table below lists the keys that can be passed through `config`, the expected value shape, and the defaults used when a key is omitted. + + #v(3pt) + + #let cell(body, fill: white, pos: left, weight: "regular") = baf-table-cell( + fill: fill, + stroke: luma(200) + 0.45pt, + pos: pos, + inset: (x: 3pt, y: 2pt), + )[ + #text(font: "IBM Plex Sans", size: 5.6pt, weight: weight, body) + ] + + #grid( + columns: (23%, 20%, 20%, 37%), + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Name]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Expected value]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Default]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Description]], + + cell[`title`], cell[String], cell[`""`], cell[Presentation title.], + cell[`subtitle`], cell[String], cell[`""`], cell[Presentation subtitle.], + cell[`authors`], cell[String], cell[`""`], cell[Author line shown on the cover and footer.], + cell[`institution`], cell[String], cell[`""`], cell[Institution shown on the cover and footer.], + cell[`date`], cell[String], cell[`""`], cell[Date shown on the cover.], + cell[`final-message`], cell[String], cell[`""`], cell[Message shown on the last slide.], + cell[`footer-content-1`], cell[String], cell[`authors`], cell[Left text in the upper footer band.], + cell[`footer-content-2`], cell[String], cell[`institution`], cell[Right text in the upper footer band.], + cell[`footer-content-3`], cell[String], cell[`title`], cell[Left text in the lower footer band.], + cell[`primary-color`], cell[Color], cell[`rgb("#1C1C1C")`], cell[Main bars, highlights, numbering, and accents.], + cell[`secondary-color`], cell[Color], cell[`rgb("#D9D9D9")`], cell[Secondary header and footer bands.], + cell[`background-color`], cell[Color], cell[`rgb("#FFFFFF")`], cell[Slide background color.], + cell[`font-color`], cell[Color], cell[`luma(20)`], cell[Default body text color.], + cell[`header-font-color-1`], + cell[Color], + cell[`_muted-nav(primary-color)`], + cell[Inactive text in the primary header band and text in the lower footer band.], + cell[`header-font-color-2`], + cell[Color], + cell[`primary-color`], + cell[Text in the secondary header and footer bands.], + cell[`header-font-color-1-highlight`], + cell[Color], + cell[`rgb("#FFFFFF")`], + cell[Active text in the primary header band.], + cell[`content-center`], + cell[Float 0-1], + cell[`0.3`], + cell[Vertical position used to center content; 0 starts at the top, 1 at the bottom.], + cell[`content-upper-padding`], + cell[Float 0-1], + cell[`0.05`], + cell[Top proportion of the available content area kept empty.], + cell[`content-lower-padding`], + cell[Float 0-1], + cell[`0.05`], + cell[Bottom proportion of the available content area kept empty.], + cell[`logos`], cell[`array[content]`], cell[`()`], cell[Logo images or custom content shown on the cover.], + cell[`TOC`], cell[Bool], cell[`true`], cell[Whether to add the table of contents slide with section links.], + ) + + #v(3pt) + These names are intentionally presentation-level settings, so changing the theme does not require editing the template internals. +] + +#slide(title: "Template Configuration Code")[ + The example presentation stores its theme and metadata in `presentation-config`, then passes that dictionary to the template with `black-angular-frame.with`. + + #v(3pt) + + #code-box( + "#import \"black-angular-frame.typ\": * + +#let presentation-config = ( + title: \"Black Angular Frame\", + subtitle: \"A Typst Template for Academic Presentations\", + authors: \"Author One, Author Two\", + institution: \"Institution Name\", + date: \"May 2026\", + final-message: \"Thank you for your attention\", + primary-color: rgb(\"#1C1C1C\"), + secondary-color: rgb(\"#D9D9D9\"), + background-color: rgb(\"#FFFFFF\"), + font-color: luma(20), + header-font-color-1: rgb(\"#999999\"), + header-font-color-2: rgb(\"#1C1C1C\"), + header-font-color-1-highlight: rgb(\"#FFFFFF\"), + content-center: 0.3, + content-upper-padding: 0.05, + content-lower-padding: 0.05, + logos: (\n image(\"assets/typst-logo.png\", height: 45pt),\n image(\"assets/github-logo.png\", height: 45pt),\n ), + TOC: true, +) + +#show: black-angular-frame.with(config: presentation-config)", + type: "Typst", + title: "Import and configure the template", + lang: "typst", + color: luma(90), + fill: luma(248), + text-size: 5.6pt, + ) + + #v(3pt) + The rest of the document can focus on sections and slides while the template reads these values for the cover, navigation, footer, body text, logos, TOC, and final slide. +] + +// ============================================================ +// SECTION 1 -- TYPOGRAPHY +// ============================================================ +#new-section("Typography") + +#slide(title: "Default Fonts")[ + The template ships with three IBM Plex families: + + #v(5pt) + #grid( + columns: (1fr, 1fr, 1fr), + column-gutter: 5pt, + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Serif", size: 11.5pt)[ + *IBM Plex Serif* \ + body text \ + Regular, _italic_, \ + *bold*, _*bold-italic*_ + ]), + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Sans", size: 11.5pt)[ + *IBM Plex Sans* \ + titles & headings \ + Regular, _italic_, \ + *bold*, _*bold-italic*_ + ]), + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Mono", size: 11.5pt)[ + *IBM Plex Mono* \ + code & verbatim \ + Regular, _italic_, \ + *bold* + ]), + ) + #v(6pt) + Inline styling: #text(weight: "bold")[bold], #text(style: "italic")[italic], #text(fill: blue.darken(50%))[colored], #underline[underlined], #text(size: 13pt)[large (13 pt)], #text(size: 7.5pt)[small (7.5 pt)]. +] + +#slide(title: "Text Sizing and Semantic Emphasis")[ + #v(2pt) + #text(size: 18pt, weight: "bold", fill: blue.darken(50%))[Headline -- 18 pt bold] \ + #text(size: 14pt, weight: "bold")[Subheading -- 14 pt bold] \ + #text(size: 12pt)[Section heading -- 12 pt regular] \ + #text(size: 10pt)[Body text -- 10 pt (default)] \ + #text(size: 8pt, fill: luma(60))[Caption / footnote -- 8 pt muted] + + #v(8pt) + Semantic use: #text(style: "italic")[italics for emphasis], #text(weight: "bold")[bold for key terms], #text(fill: red.darken(20%))[red for warnings], #text(fill: green.darken(25%))[green for results]. Combine for #text(style: "italic", weight: "bold", fill: blue.darken(50%))[critical highlighted points]. + + #v(4pt) + Change the global accent via `primary-color`, the secondary bands via `secondary-color`, and the page fill via `background-color`. These parameters propagate through the navigation bar, footer, section dividers, TOC numbering squares, and theorem environments. +] + +// ============================================================ +// SECTION 2 -- LISTS AND ENUMERATIONS +// ============================================================ +#new-section("Lists & Enumerations") + +#slide(title: "Bullet Points and Nested Lists")[ + #two-col( + [ + *Unordered list (three levels):* + - First top-level item + - Nested child A + - Nested child B + - Deeply nested + - Another deep item + - Second top-level item + - Another child + - Third top-level item + ], + [ + *Ordered enumeration (three levels):* + + Step one: initialise + + Sub-step 1a + + Sub-step 1b + + Step two: process data + + Sub-step 2a + + Detail 2a-i + + Step three: evaluate output + + Step four: report results + ], + ) + + #v(5pt) + Typst automatically styles bullet symbols and numerals at each nesting depth. Ordered and unordered lists can be freely mixed at any level. +] + +// ============================================================ +// SECTION 3 -- FIGURES +// ============================================================ +#new-section("Figures") + +#slide(title: "Inserting and Referencing Figures")[ + #two-col( + [ + Figures use `#baf-figure(caption: [...])`. The counter resets per section; reference figures by their auto-assigned number. Longer surrounding paragraphs make it easier to inspect the vertical rhythm before and after visual material. + + #v(5pt) + As shown in *Figure 1*, a colored rectangle acts as a placeholder. In practice pass `image("diagram.svg")` or any Typst content as the figure body. This text intentionally spans multiple lines so the figure margins can be judged against realistic prose. + + #v(4pt) + *Figure 2* illustrates that captions appear italic below the figure, numbered automatically within the current section. The paragraph below the visual block should feel close enough to belong to the same slide, but not so close that the caption looks cramped. + ], + [ + The first placeholder represents a diagram or image inserted into the slide flow. A few lines of prose above it help show how the template separates ordinary text from framed visual content. + + #baf-figure(caption: [Placeholder -- replace with `image("diagram.svg")`.])[ + #rect( + width: 100%, + height: 62pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Diagram / Image here]), + ) + ] + #baf-figure(caption: [Second figure -- captions are italic, automatically numbered.])[ + #rect( + width: 100%, + height: 38pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Another placeholder]), + ) + ] + + After the second figure, this short paragraph checks the lower margin beneath a caption. It should read as a continuation of the slide narrative rather than as text accidentally attached to the figure. + ], + ) +] + +#slide(title: "Full-Width and Fractional-Width Figures (With Captions)")[ + #two-col( + [ + A figure can expand to the full width of its column when the content should dominate the layout. This is useful for diagrams, screenshots, or images that need as much horizontal room as possible. + + #baf-figure(caption: [Full-width placeholder figure spanning the whole column.])[ + #rect( + width: 100%, + height: 60pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Full-width figure]), + ) + ] + + The caption should stay centered under the figure even when the visual takes the entire available width of the column. + ], + [ + Smaller visuals often read better when they keep some white space around them. A fractional-width figure makes that possible while still preserving the same numbering and caption behavior. + + #baf-figure(caption: [Fractional-width placeholder figure centered inside the column.])[ + #align(center, rect( + width: 68%, + height: 60pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Fractional-width figure]), + )) + ] + + This example checks that a narrower figure still aligns cleanly in the column and that the caption feels attached to the centered image rather than to the whole column width. + ], + ) +] + +#slide(title: "Full-Width and Fractional-Width Figures (No Captions)")[ + #two-col( + [ + The same pair can also be shown without captions when the slide is purely illustrative and the surrounding prose already provides enough context for the audience. + + #baf-visual[ + #rect( + width: 100%, + height: 60pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Full-width figure]), + ) + ] + + Without a caption, the lower margin should still separate the figure from the next paragraph and keep the slide from feeling cramped. + ], + [ + The fractional-width version below uses the same visual content but keeps the narrower footprint. This lets us compare centered image placement with and without the caption layer. + + #baf-visual[ + #rect( + width: 68%, + height: 60pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Fractional-width figure]), + ) + ] + + The surrounding text remains multi-line on purpose so we can judge the spacing around a centered narrow figure in the same way as we do for captioned figures. + ], + ) +] + +// ============================================================ +// SECTION 4 -- TWO-COLUMN LAYOUT +// ============================================================ +#new-section("Layouts", slide-title: "Two-Column Layouts") + +#slide(title: "Two-Column Layout")[ + #two-col( + left-width: 50%, + [ + == Left column + + The `#two-col(left, right)` helper builds a two-column `grid`. Parameters: + - `left-width` -- fraction of slide width (default 48%) + - `gutter` -- gap between columns (default 4%) + + #v(4pt) + Works well for: text + figure, code + output, comparative tables, side-by-side theorem boxes. + ], + [ + == Right column + + Any Typst content fits inside a column, including nested `two-col` calls, theorem boxes, figures, and tables. + + #baf-visual[ + #rect( + width: 100%, + height: 58pt, + fill: luma(245), + stroke: luma(200) + 0.6pt, + align(center + horizon, text(size: 9pt, fill: luma(60))[Arbitrary block inside a column]), + ) + ] + ], + ) +] + +// ============================================================ +// SECTION 5 -- CODE BLOCKS +// ============================================================ +#new-section("Code Blocks", slide-title: "Source Code & Pseudo-code") + +#slide(title: "Source Code and Pseudo-code Side by Side")[ + #two-col( + [ + #code-box( + "def softmax(x): + e = np.exp(x - x.max(axis=-1, keepdims=True)) + return e / e.sum(axis=-1, keepdims=True) + +def cross_entropy(logits, labels): + probs = softmax(logits) + n = labels.shape[0] + log_p = np.log(probs[range(n), labels]) + return -log_p.mean()", + type: "Source Code", + title: "Python", + lang: "python", + color: luma(110), + fill: luma(245), + ) + Uses `IBM Plex Mono` on a light grey background. Pass a language name to `#code-box(..., lang: "...")` for syntax highlighting. + ], + [ + #pseudo-code( + "Algorithm: Mini-Batch SGD +Input: loss L, data D, lr eta, T, B +------------------------------------- +for t = 1 to T do + B_t <- sample B examples from D + g <- grad_theta L(theta; B_t) + theta <- theta - eta * g +end for +return theta", + title: "Mini-Batch SGD", + ) + Pseudo-code now uses the same framed box language as the theorem environments, with a `type` label and `title`. + ], + ) +] + +// ============================================================ +// SECTION 6 -- TABLES +// ============================================================ +#new-section("Tables") + +#slide(title: "Paper-style and Grid-style Tables (No Captions)")[ + #two-col( + [ + *Paper style* (booktabs-like -- horizontal rules only) + + This table is introduced by a short paragraph rather than a single label. The extra prose makes the spacing above the table visible in a realistic slide, where a table usually follows a sentence or two of setup. + + #let paper-cell(body, pos: left, header: false, model-col: false, first-data: false) = grid.cell( + stroke: ( + bottom: if header { 0.6pt } else { none }, + right: if model-col { 0.6pt } else { none }, + ), + inset: ( + left: 5pt, + right: 5pt, + top: if first-data { 6pt } else { 4pt }, + bottom: if header { 7pt } else { 4pt }, + ), + align: pos, + text(font: "IBM Plex Serif", body), + ) + #baf-visual[ + #block(width: 100%, { + line(length: 100%, stroke: 0.9pt) + grid( + columns: (28%, 24%, 24%, 24%), + paper-cell(header: true, model-col: true)[*Method*], + paper-cell(header: true, pos: center)[*Acc. (%)*], + paper-cell(header: true, pos: center)[*F#sub[1]*], + paper-cell(header: true, pos: center)[*AUC*], + + paper-cell(model-col: true, first-data: true)[Baseline], + paper-cell(pos: center, first-data: true)[72.3], + paper-cell(pos: center, first-data: true)[0.701], + paper-cell(pos: center, first-data: true)[0.743], + + paper-cell(model-col: true)[Model A], + paper-cell(pos: center)[81.5], + paper-cell(pos: center)[0.803], + paper-cell(pos: center)[0.851], + + paper-cell(model-col: true)[Model B], + paper-cell(pos: center)[*88.9*], + paper-cell(pos: center)[*0.876*], + paper-cell(pos: center)[*0.903*], + ) + line(length: 100%, stroke: 0.9pt) + }) + ] + Classic academic style: only top and bottom rules, no vertical lines. The text after the table deliberately runs for a couple of lines so the lower margin can be compared with the upper margin. + ], + [ + *Grid style* (full borders, colored header, alternating rows) + + The grid version is meant for dense numeric summaries or dashboard-like reporting. A longer lead-in makes it easier to see whether the table feels attached to the explanation or floats too far away. + + #let grid-cell(body, fill: white, stroke: luma(200) + 0.6pt, pos: center) = baf-table-cell( + fill: fill, + stroke: stroke, + pos: pos, + body, + ) + #baf-visual[ + #block(width: 100%, grid( + columns: (28%, 24%, 24%, 24%), + grid-cell(fill: blue.darken(50%), pos: left)[#text(fill: white)[Method]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[Acc. (%)]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[F#sub[1]]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[AUC]], + + grid-cell(fill: luma(248), pos: left)[Baseline], + grid-cell(fill: luma(248))[72.3], + grid-cell(fill: luma(248))[0.701], + grid-cell(fill: luma(248))[0.743], + + grid-cell(fill: white, pos: left)[Model A], + grid-cell(fill: white)[81.5], + grid-cell(fill: white)[0.803], + grid-cell(fill: white)[0.851], + + grid-cell(fill: luma(248), pos: left)[Model B], + grid-cell(fill: luma(248))[*88.9*], + grid-cell(fill: luma(248))[*0.876*], + grid-cell(fill: luma(248))[*0.903*], + )) + ] + Dashboard style: solid grid, alternating row shading. This closing note also spans multiple lines, which helps reveal whether the table block leaves enough room before normal prose resumes. + ], + ) +] + +#slide(title: "Paper-style and Grid-style Tables (With Captions)")[ + #two-col( + [ + *Paper style* (booktabs-like -- horizontal rules only) + + Captions are useful when the table needs to be referenced later in the talk or connected to a source. This paragraph gives the captioned table enough surrounding prose to test both the top margin and the caption spacing. + + #let paper-cell(body, pos: left, header: false, model-col: false, first-data: false) = grid.cell( + stroke: ( + bottom: if header { 0.6pt } else { none }, + right: if model-col { 0.6pt } else { none }, + ), + inset: ( + left: 5pt, + right: 5pt, + top: if first-data { 6pt } else { 4pt }, + bottom: if header { 7pt } else { 4pt }, + ), + align: pos, + text(font: "IBM Plex Serif", body), + ) + #figure( + kind: table, + caption: [Placeholder caption for the paper-style table.], + { + block(width: 100%, { + line(length: 100%, stroke: 0.9pt) + grid( + columns: (28%, 24%, 24%, 24%), + paper-cell(header: true, model-col: true)[*Method*], + paper-cell(header: true, pos: center)[*Acc. (%)*], + paper-cell(header: true, pos: center)[*F#sub[1]*], + paper-cell(header: true, pos: center)[*AUC*], + + paper-cell(model-col: true, first-data: true)[Baseline], + paper-cell(pos: center, first-data: true)[72.3], + paper-cell(pos: center, first-data: true)[0.701], + paper-cell(pos: center, first-data: true)[0.743], + + paper-cell(model-col: true)[Model A], + paper-cell(pos: center)[81.5], + paper-cell(pos: center)[0.803], + paper-cell(pos: center)[0.851], + + paper-cell(model-col: true)[Model B], + paper-cell(pos: center)[*88.9*], + paper-cell(pos: center)[*0.876*], + paper-cell(pos: center)[*0.903*], + ) + line(length: 100%, stroke: 0.9pt) + }) + }, + ) + Classic academic style: only top and bottom rules, no vertical lines. With a caption present, the paragraph after the table should sit beneath the full table block rather than feeling glued to the caption. + ], + [ + *Grid style* (full borders, colored header, alternating rows) + + The captioned grid table shows how a more operational table behaves inside the same layout. The text before it is intentionally longer so vertical spacing is visible without relying on empty slide area. + + #let grid-cell(body, fill: white, stroke: luma(200) + 0.6pt, pos: center) = baf-table-cell( + fill: fill, + stroke: stroke, + pos: pos, + body, + ) + #figure( + kind: table, + caption: [Placeholder caption for the grid-style table.], + { + block(width: 100%, grid( + columns: (28%, 24%, 24%, 24%), + grid-cell(fill: blue.darken(50%), pos: left)[#text(fill: white)[Method]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[Acc. (%)]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[F#sub[1]]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[AUC]], + + grid-cell(fill: luma(248), pos: left)[Baseline], + grid-cell(fill: luma(248))[72.3], + grid-cell(fill: luma(248))[0.701], + grid-cell(fill: luma(248))[0.743], + + grid-cell(fill: white, pos: left)[Model A], + grid-cell(fill: white)[81.5], + grid-cell(fill: white)[0.803], + grid-cell(fill: white)[0.851], + + grid-cell(fill: luma(248), pos: left)[Model B], + grid-cell(fill: luma(248))[*88.9*], + grid-cell(fill: luma(248))[*0.876*], + grid-cell(fill: luma(248))[*0.903*], + )) + }, + ) + Dashboard style: solid grid, alternating row shading. This final description should have comfortable breathing room after the caption while still reading as part of the same explanatory unit. + ], + ) +] + +// ============================================================ +// SECTION 7 -- DIAGRAMS AND CHARTS (three slides) +// ============================================================ +#new-section("Diagrams & Charts") + +// ---- Diagram drawing helpers ------------------------------- +#let _arrow-head(x, y, dir: "r", color: luma(25)) = { + if dir == "r" { + place(top + left, dx: x - 6pt, dy: y - 3pt, polygon((0pt, 0pt), (6pt, 3pt), (0pt, 6pt), fill: color)) + } else if dir == "l" { + place(top + left, dx: x, dy: y - 3pt, polygon((0pt, 3pt), (6pt, 0pt), (6pt, 6pt), fill: color)) + } else if dir == "d" { + place(top + left, dx: x - 3pt, dy: y - 6pt, polygon((0pt, 0pt), (6pt, 0pt), (3pt, 6pt), fill: color)) + } else if dir == "u" { + place(top + left, dx: x - 3pt, dy: y, polygon((0pt, 6pt), (3pt, 0pt), (6pt, 6pt), fill: color)) + } else if dir == "dr" { + place(top + left, dx: x - 6pt, dy: y - 6pt, polygon((6pt, 6pt), (1pt, 4pt), (4pt, 1pt), fill: color)) + } else if dir == "dl" { + place(top + left, dx: x, dy: y - 6pt, polygon((0pt, 6pt), (5pt, 4pt), (2pt, 1pt), fill: color)) + } else if dir == "ur" { + place(top + left, dx: x - 6pt, dy: y, polygon((6pt, 0pt), (1pt, 2pt), (4pt, 5pt), fill: color)) + } else { + place(top + left, dx: x, dy: y, polygon((0pt, 0pt), (5pt, 2pt), (2pt, 5pt), fill: color)) + } +} + +#let _arr-r(x1, y, x2, color: luma(25), weight: 0.8pt, label: none, label-dy: -8pt) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: color + weight)) + _arrow-head(x2, y, dir: "r", color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 - 6pt, dy: y + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-l(x1, y, x2, color: luma(25), weight: 0.8pt, label: none, label-dy: -8pt) = { + place(top + left, line(start: (x1, y), end: (x2 + 5pt, y), stroke: color + weight)) + _arrow-head(x2, y, dir: "l", color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 - 6pt, dy: y + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-v(x, y1, y2, color: luma(25), weight: 0.8pt, label: none, label-dx: 4pt) = { + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: color + weight)) + _arrow-head(x, y2, dir: "d", color: color) + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: color + weight)) + _arrow-head(x, y2, dir: "u", color: color) + } + if label != none { + place(top + left, dx: x + label-dx, dy: (y1 + y2) / 2 - 4pt, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-diag(x1, y1, x2, y2, dir, color: luma(25), weight: 0.8pt, label: none, label-dx: 0pt, label-dy: 0pt) = { + place(top + left, line(start: (x1, y1), end: (x2, y2), stroke: color + weight)) + _arrow-head(x2, y2, dir: dir, color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 + label-dx, dy: (y1 + y2) / 2 + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _diagram-block(label, w: 52pt, h: 18pt, fill: luma(245), stroke: luma(25), text-size: 6.6pt, radius: 2pt) = box( + width: w, + height: h, + fill: fill, + stroke: stroke + 0.7pt, + radius: radius, + align(center + horizon, text(size: text-size, fill: luma(15), label)), +) + +#let transformer-diagram = align(center, { + let W = 278pt + let H = 232pt + let ink = luma(15) + let block-w = 54pt + let frame-w = 90pt + let frame-pad-x = (frame-w - block-w) / 2 + let enc-x = 30pt + let dec-x = 154pt + let label-size = 5.7pt + let small-size = 4.9pt + let arrow-weight = 0.9pt + let node-r = 3.5pt + let positional-center-y = 180pt + let input-sum-y = positional-center-y + let nx-y = 118pt + let decoder-bottom-label-width = 94pt + let pink = rgb("#F9DCDD") + let peach = rgb("#FFE3B8") + let bluefill = rgb("#C5E8F5") + let normfill = rgb("#F3F5C2") + let greenfill = rgb("#D8F0D9") + let violet = rgb("#E4E7F8") + + let encoder = ( + x: enc-x, + frame-y: 73pt, + frame-h: 100pt, + stack-x: enc-x + frame-pad-x, + nx-x: enc-x - 25pt, + nx-y: nx-y, + pos-side: "left", + pos-label-x: -15pt, + pos-circle-x: 49pt, + emb-label: [Input\ Embedding], + bottom-label: [Inputs], + bottom-label-x: enc-x + 8pt, + bottom-label-width: 74pt, + ) + let decoder = ( + x: dec-x, + frame-y: 41pt, + frame-h: 132pt, + stack-x: dec-x + frame-pad-x, + nx-x: dec-x + frame-w + 8pt, + nx-y: nx-y, + pos-side: "right", + pos-label-x: 229pt, + pos-circle-x: 224pt, + emb-label: [Output\ Embedding], + bottom-label: [Outputs (shifted right)], + bottom-label-x: dec-x + frame-pad-x + block-w / 2 - decoder-bottom-label-width / 2, + bottom-label-width: decoder-bottom-label-width, + ) + + let cx(col) = col.stack-x + block-w / 2 + let cy(layer) = layer.y + layer.h / 2 + + let diagram-text(x, y, body, size: label-size, width: auto, align-pos: center) = place( + top + left, + dx: x, + dy: y, + block(width: width, align(align-pos, text(size: size, fill: ink, body))), + ) + let diagram-text-centered-on-y(x, center-y, body, size: label-size, width: auto, align-pos: center) = context { + let label = block(width: width, align(align-pos, text(size: size, fill: ink, body))) + place(top + left, dx: x, dy: center-y - measure(label).height / 2, label) + } + let block-at(x, y, label, fill, h: 16pt, size: label-size) = place( + top + left, + dx: x, + dy: y, + _diagram-block(label, w: block-w, h: h, fill: fill, stroke: ink, text-size: size, radius: 2.2pt), + ) + let frame(col) = place( + top + left, + dx: col.x, + dy: col.frame-y, + block( + width: frame-w, + height: col.frame-h, + stroke: ink + 1.3pt, + radius: 7pt, + fill: luma(250), + ), + ) + let plus(x, y) = { + let r = node-r + let d = 2.45pt + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 0.85pt, fill: white)) + place(top + left, line(start: (x - d, y), end: (x + d, y), stroke: ink + 0.65pt)) + place(top + left, line(start: (x, y - d), end: (x, y + d), stroke: ink + 0.65pt)) + } + let pos-signal(x, y) = { + let r = node-r + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 0.9pt, fill: white)) + place(top + left, curve( + stroke: ink + 0.65pt, + fill: none, + curve.move((x - 2.2pt, y + 1.1pt)), + curve.cubic((x - 1.2pt, y + 1.1pt), (x - 1.1pt, y - 1.1pt), (x, y)), + curve.cubic((x + 1.1pt, y + 1.1pt), (x + 1.2pt, y - 1.1pt), (x + 2.2pt, y - 1.1pt)), + )) + } + let poly(points, weight: arrow-weight) = { + for i in range(points.len() - 1) { + let a = points.at(i) + let b = points.at(i + 1) + place(top + left, line(start: a, end: b, stroke: ink + weight)) + } + } + let arrow-head(x, y, dir: "r") = { + let len = 2.4pt + let half = 1.5pt + if dir == "r" { + place(top + left, polygon((x, y), (x - len, y - half), (x - len, y + half), fill: ink)) + } else if dir == "l" { + place(top + left, polygon((x, y), (x + len, y - half), (x + len, y + half), fill: ink)) + } else if dir == "d" { + place(top + left, polygon((x, y), (x - half, y - len), (x + half, y - len), fill: ink)) + } else { + place(top + left, polygon((x, y), (x - half, y + len), (x + half, y + len), fill: ink)) + } + } + let arrow-poly(points, dir: "r") = { + poly(points) + let end = points.at(points.len() - 1) + arrow-head(end.at(0), end.at(1), dir: dir) + } + let arr-v(x, y1, y2, weight: arrow-weight) = { + let len = 2.4pt + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - len), stroke: ink + weight)) + arrow-head(x, y2, dir: "d") + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + len), stroke: ink + weight)) + arrow-head(x, y2, dir: "u") + } + } + let attention-fork(layer, gap: 6pt) = { + let xs = (layer.x + 9pt, layer.x + block-w / 2, layer.x + block-w - 9pt) + let y = layer.y + layer.h + gap + place(top + left, line(start: (xs.first(), y), end: (xs.last(), y), stroke: ink + arrow-weight)) + for x in xs { + arr-v(x, y, layer.y + layer.h) + } + } + let branch-y(start, end, pct: 0.3) = start + pct * (end - start) + let residual(col, layer, norm, branch-from, branch-to, side: "left", branch-pct: 0.3) = { + let bus = if side == "left" { col.x + 6pt } else { col.x + frame-w - 6pt } + let by = branch-y(branch-from, branch-to, pct: branch-pct) + let from = (cx(col), by) + let mid = (bus, by) + let into = if side == "left" { + (norm.x, cy(norm)) + } else { + (norm.x + block-w, cy(norm)) + } + arrow-poly((from, mid, (bus, cy(norm)), into), dir: if side == "left" { "r" } else { "l" }) + } + let column-bottom(col) = { + let emb-y = 188pt + let emb-h = 14pt + let plus-y = positional-center-y + block-at(col.stack-x, emb-y, col.emb-label, pink, h: emb-h, size: 4.2pt) + plus(cx(col), plus-y) + arr-v(cx(col), emb-y + emb-h + 10pt, emb-y + emb-h) + arr-v(cx(col), emb-y, plus-y + 3.5pt) + diagram-text(col.bottom-label-x, 221pt, col.bottom-label, size: 7.2pt, width: col.bottom-label-width) + diagram-text-centered-on-y(col.pos-label-x, positional-center-y, [Positional Embedding], size: 5.0pt, width: 60pt) + pos-signal(col.pos-circle-x, plus-y) + if col.pos-side == "left" { + place(top + left, line( + start: (col.pos-circle-x + node-r, plus-y), + end: (cx(col) - node-r, plus-y), + stroke: ink + arrow-weight, + )) + } else { + place(top + left, line( + start: (cx(col) + node-r, plus-y), + end: (col.pos-circle-x - node-r, plus-y), + stroke: ink + arrow-weight, + )) + } + } + let sum-to-attention(col, layer, gap: 6pt) = place( + top + left, + line( + start: (cx(col), input-sum-y - 3.5pt), + end: (cx(col), layer.y + layer.h + gap), + stroke: ink + arrow-weight, + ), + ) + let lower-attn-shift = 3pt + + let enc-layers = ( + ( + key: "attn", + x: encoder.stack-x, + y: 138pt + lower-attn-shift, + h: 16pt, + label: [Multi-Head\ Attention], + fill: peach, + size: 4.5pt, + ), + ( + key: "norm1", + x: encoder.stack-x, + y: 123pt + lower-attn-shift, + h: 9pt, + label: [Add & Norm], + fill: normfill, + size: 4.8pt, + ), + (key: "ff", x: encoder.stack-x, y: 92pt, h: 15pt, label: [Feed\ Forward], fill: bluefill, size: 4.7pt), + (key: "norm2", x: encoder.stack-x, y: 77pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + ) + let dec-layers = ( + ( + key: "masked", + x: decoder.stack-x, + y: 139pt + lower-attn-shift, + h: 18pt, + label: [Masked\ Multi-Head\ Attention], + fill: peach, + size: 4.0pt, + ), + ( + key: "norm1", + x: decoder.stack-x, + y: 125pt + lower-attn-shift, + h: 9pt, + label: [Add & Norm], + fill: normfill, + size: 4.8pt, + ), + (key: "cross", x: decoder.stack-x, y: 98pt, h: 14pt, label: [Multi-Head\ Attention], fill: peach, size: 4.2pt), + (key: "norm2", x: decoder.stack-x, y: 84pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + (key: "ff", x: decoder.stack-x, y: 59pt, h: 14pt, label: [Feed\ Forward], fill: bluefill, size: 4.4pt), + (key: "norm3", x: decoder.stack-x, y: 45pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + (key: "linear", x: decoder.stack-x, y: 27pt, h: 9pt, label: [Linear], fill: violet, size: 4.9pt), + (key: "softmax", x: decoder.stack-x, y: 15.5pt, h: 9pt, label: [Softmax], fill: greenfill, size: 4.9pt), + ) + let enc(key) = enc-layers.find(layer => layer.key == key) + let dec(key) = dec-layers.find(layer => layer.key == key) + + box(width: W, height: H, { + frame(encoder) + frame(decoder) + diagram-text(encoder.nx-x, encoder.nx-y, [N×], size: 12pt) + diagram-text(decoder.nx-x, decoder.nx-y, [N×], size: 12pt) + diagram-text(decoder.stack-x - 7pt, 0pt, [Output Probabilities], size: 7.2pt, width: block-w + 14pt) + + column-bottom(encoder) + column-bottom(decoder) + + for layer in enc-layers { + block-at(layer.x, layer.y, layer.label, layer.fill, h: layer.h, size: layer.size) + } + for layer in dec-layers { + block-at(layer.x, layer.y, layer.label, layer.fill, h: layer.h, size: layer.size) + } + + attention-fork(enc("attn")) + attention-fork(dec("masked")) + sum-to-attention(encoder, enc("attn")) + sum-to-attention(decoder, dec("masked")) + + residual( + encoder, + enc("attn"), + enc("norm1"), + input-sum-y - 3.5pt, + enc("attn").y + enc("attn").h + 6pt, + side: "left", + branch-pct: 0.65, + ) + residual(encoder, enc("ff"), enc("norm2"), enc("norm1").y, enc("ff").y + enc("ff").h, side: "left", branch-pct: 0.5) + residual( + decoder, + dec("masked"), + dec("norm1"), + input-sum-y - 3.5pt, + dec("masked").y + dec("masked").h + 6pt, + side: "right", + branch-pct: 0.65, + ) + residual(decoder, dec("cross"), dec("norm2"), dec("norm1").y, dec("cross").y + dec("cross").h, side: "right") + residual( + decoder, + dec("ff"), + dec("norm3"), + dec("norm2").y, + dec("ff").y + dec("ff").h, + side: "right", + branch-pct: 0.5, + ) + + arr-v(cx(encoder), enc("attn").y, enc("norm1").y + enc("norm1").h) + arr-v(cx(encoder), enc("norm1").y, enc("ff").y + enc("ff").h) + arr-v(cx(encoder), enc("ff").y, enc("norm2").y + enc("norm2").h) + arr-v(cx(decoder), dec("masked").y, dec("norm1").y + dec("norm1").h) + let cross-input-xs = ( + dec("cross").x + 9pt, + dec("cross").x + block-w / 2, + dec("cross").x + block-w - 9pt, + ) + let cross-right-route-y = branch-y(dec("norm1").y, dec("cross").y + dec("cross").h, pct: 0.3) - 4pt + arrow-poly( + ( + (cx(decoder), dec("norm1").y), + (cx(decoder), cross-right-route-y), + (cross-input-xs.last(), cross-right-route-y), + (cross-input-xs.last(), dec("cross").y + dec("cross").h), + ), + dir: "u", + ) + arr-v(cx(decoder), dec("cross").y, dec("norm2").y + dec("norm2").h) + arr-v(cx(decoder), dec("norm2").y, dec("ff").y + dec("ff").h) + arr-v(cx(decoder), dec("ff").y, dec("norm3").y + dec("norm3").h) + arr-v(cx(decoder), dec("norm3").y, dec("linear").y + dec("linear").h) + arr-v(cx(decoder), dec("linear").y, dec("softmax").y + dec("softmax").h) + arr-v(cx(decoder), dec("softmax").y, 10pt) + + let enc-out-x = cx(encoder) + let enc-out-y = enc("norm2").y + let enc-route-y = encoder.frame-y - 5pt + let enc-dec-route-x = (encoder.x + frame-w + decoder.x) / 2 + let cross-in-y = dec("cross").y + dec("cross").h + 5pt + poly(( + (enc-out-x, enc-out-y), + (enc-out-x, enc-route-y), + (enc-dec-route-x, enc-route-y), + (enc-dec-route-x, cross-in-y), + (cross-input-xs.at(1), cross-in-y), + )) + arr-v(cross-input-xs.at(1), cross-in-y, dec("cross").y + dec("cross").h) + arrow-poly( + ( + (enc-dec-route-x, cross-in-y), + (cross-input-xs.at(0), cross-in-y), + (cross-input-xs.at(0), dec("cross").y + dec("cross").h), + ), + dir: "u", + ) + }) +}) + + +#let closed-loop-diagram = align(center, { + let W = 248pt + let H = 112pt + let ink = luma(0) + let stroke = ink + 1.0pt + let label(x, y, body, size: 7.2pt) = place(top + left, dx: x, dy: y, text(size: size, fill: ink, body)) + let arrow-r(x1, y, x2) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: stroke)) + _arrow-head(x2, y, dir: "r", color: ink) + } + let arrow-l(x1, y, x2) = { + place(top + left, line(start: (x1, y), end: (x2 + 5pt, y), stroke: stroke)) + _arrow-head(x2, y, dir: "l", color: ink) + } + let arrow-u(x, y1, y2) = { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: stroke)) + _arrow-head(x, y2, dir: "u", color: ink) + } + let arrow-d(x, y1, y2) = { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: stroke)) + _arrow-head(x, y2, dir: "d", color: ink) + } + let labeled-arrow(x1, y1, x2, y2, body, label-dx: 0pt, label-dy: 0pt, label-size: 8pt) = { + if y1 == y2 and x2 > x1 { + arrow-r(x1, y1, x2) + } else if y1 == y2 and x2 < x1 { + arrow-l(x1, y1, x2) + } else if x1 == x2 and y2 > y1 { + arrow-d(x1, y1, y2) + } else if x1 == x2 and y2 < y1 { + arrow-u(x1, y1, y2) + } else { + place(top + left, line(start: (x1, y1), end: (x2, y2), stroke: stroke)) + } + if body != none { + label((x1 + x2) / 2 + label-dx, (y1 + y2) / 2 + label-dy, body, size: label-size) + } + } + + + let sys-box(x, y, label, w: 26pt, h: 26pt) = { + place( + top + left, + dx: x, + dy: y, + box( + width: w, + height: h, + fill: white, + stroke: ink + 1.2pt, + align(center + horizon, text(size: 8pt, fill: ink, label)), + ), + ) + } + + let sum-sign(x, y, body) = place( + top + left, + dx: x, + dy: y, + box(width: 5.5pt, height: 5.5pt, align(center + horizon, text(size: 5.8pt, fill: ink, body))), + ) + let sum-node(x, y, kind: "feedback") = { + let r = 10pt + let d = 7.1pt + let signs = if kind == "disturbance" { + ((-8.6pt, -3.0pt, [+]), (-2.8pt, -8.6pt, [+])) + } else { + ((-8.6pt, -3.0pt, [+]), (-2.8pt, 3.2pt, [−])) + } + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 1.0pt, fill: white)) + place(top + left, line(start: (x - d, y - d), end: (x + d, y + d), stroke: ink + 0.65pt)) + place(top + left, line(start: (x - d, y + d), end: (x + d, y - d), stroke: ink + 0.65pt)) + for (sx, sy, sign) in signs { + sum-sign(x + sx, y + sy, sign) + } + } + box(width: W, height: H, { + let y = 42pt + let s1 = 48pt + let s2 = 154pt + let low = 85pt + let arrow-len = 30pt + let disturbance-arrow-len = 20pt + let node-r = 10pt + let box-w = 26pt + let k-x = s1 + node-r + arrow-len + let g-x = s2 + node-r + arrow-len + let branch = g-x + box-w + arrow-len / 2 + let h-x = 144pt + + sum-node(s1, y) + label(k-x - 4pt, 17pt, [Controller], size: 7pt) + + sys-box(k-x, 29pt, [$K(z)$]) + // sys-box(50pt, 29pt, [$K(z)$]) + + sum-node(s2, y, kind: "disturbance") + label(g-x - 11pt, 17pt, [Target System], size: 7pt) + sys-box(g-x, 29pt, [$G(z)$]) + sys-box(h-x, 72pt, [$H(z)$]) + label(h-x - 7pt, 103pt, [Transducer], size: 7pt) + + labeled-arrow(s1 - node-r - arrow-len, y, s1 - node-r, y, [$R(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s1 + node-r, y, k-x, y, [$E(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(k-x + box-w, y, s2 - node-r, y, [$U(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s2 + node-r, y, g-x, y, [$V(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(g-x + box-w, y, g-x + box-w + arrow-len, y, [$Y(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s2, y - node-r - disturbance-arrow-len, s2, y - node-r, [$D(z)$], label-dx: -9pt, label-dy: -21pt) + place(top + left, line(start: (branch, y), end: (branch, low), stroke: stroke)) + arrow-l(branch, low, h-x + box-w) + place(top + left, line(start: (h-x, low), end: (s1, low), stroke: stroke)) + arrow-u(s1, low, 52pt) + label(94pt, 90pt, [$W(z)$], size: 8pt) + }) +}) + + + +#let kernel-image-diagram = align(center, { + let W = 220pt + let H = 86pt + let ink = luma(15) + let label-size = 9pt + let node(x, y, w, h, body, size) = place( + top + left, + dx: x - w / 2, + dy: y - h / 2, + box(width: w, height: h, align(center + horizon, text(size: size, fill: ink, body))), + ) + let arrow-r(x1, y, x2, body, label-dx: 0pt, label-dy: -13pt) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: ink + 0.8pt)) + _arrow-head(x2, y, dir: "r", color: ink) + place(top + left, dx: (x1 + x2) / 2 + label-dx, dy: y + label-dy, text(size: label-size, fill: ink, body)) + } + let arrow-v(x, y1, y2, body, label-dx: 7pt, label-dy: -4pt) = { + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: ink + 0.8pt)) + _arrow-head(x, y2, dir: "d", color: ink) + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: ink + 0.8pt)) + _arrow-head(x, y2, dir: "u", color: ink) + } + place(top + left, dx: x + label-dx, dy: (y1 + y2) / 2 + label-dy, text(size: label-size, fill: ink, body)) + } + box(width: W, height: H, { + let top-y = 20pt + let bot-y = 68pt + let left-x = 66pt + let right-x = 162pt + let g-w = 24pt + let gp-w = 30pt + let q-w = 92pt + let im-w = 58pt + let g-arrow-w = 20pt + let gp-arrow-w = 24pt + let q-arrow-w = 74pt + let im-arrow-w = 42pt + let node-h = 18pt + + node(left-x, top-y, g-w, node-h, [$G$], 18pt) + node(right-x, top-y, gp-w, node-h, [$G'$], 18pt) + node(left-x, bot-y, q-w, node-h, [$G slash ker phi$], 16pt) + node(right-x, bot-y, im-w, node-h, [$im phi$], 16pt) + + arrow-r(left-x + g-arrow-w / 2 + 2pt, top-y, right-x - gp-arrow-w / 2 + 1pt, [$phi$], label-dx: -4pt) + arrow-v(left-x, top-y + node-h / 2 + 2pt, bot-y - node-h / 2 + 1pt, [$-$], label-dx: -13pt) + arrow-r( + left-x + q-arrow-w / 2 + 2pt, + bot-y, + right-x - im-arrow-w / 2 + 1pt, + [$overline(phi)$], + label-dx: -8pt, + label-dy: 5pt, + ) + arrow-v(right-x, bot-y - node-h / 2 + 1pt, top-y + node-h / 2 + 2pt, [inc], label-dx: 7pt) + }) +}) + +#let weighted-transition-graph = align(center, { + let W = 176pt + let H = 162pt + let ink = luma(25) + let edge = rgb("#C66A00") + let node-r = 13pt + let nodes = ( + P: (x: 17pt, y: 99pt), + B: (x: 64pt, y: 58pt), + D: (x: 110pt, y: 17pt), + C: (x: 110pt, y: 98pt), + M: (x: 64pt, y: 139pt), + L: (x: 158pt, y: 139pt), + ) + let pos(name) = nodes.at(name) + let arrow-dir(dx, dy) = { + let ax = calc.abs(dx) + let ay = calc.abs(dy) + if ax < ay * 0.45 { + if dy > 0pt { "d" } else { "u" } + } else if ay < ax * 0.45 { + if dx > 0pt { "r" } else { "l" } + } else if dx > 0pt and dy > 0pt { + "dr" + } else if dx < 0pt and dy > 0pt { + "dl" + } else if dx > 0pt and dy < 0pt { + "ur" + } else { + "ul" + } + } + let node(x, y, short) = { + place(top + left, dx: x - node-r, dy: y - node-r, box( + width: 2 * node-r, + height: 2 * node-r, + radius: node-r, + stroke: ink + 0.7pt, + fill: white, + align(center + horizon, text(size: 8.8pt, style: "italic", short)), + )) + } + let node-by-name(name, body) = { + let p = pos(name) + node(p.x, p.y, body) + } + let label-at(x, y, body) = { + place(top + left, dx: x - 7.5pt, dy: y - 5pt, box( + width: 15pt, + height: 10pt, + fill: white, + inset: 0pt, + align(center + horizon, text(size: 7.6pt, fill: ink, body)), + )) + } + let edge-line(a, b, label: none, label-dx: 0pt, label-dy: 0pt, both: false) = { + let pa = pos(a) + let pb = pos(b) + let dx = pb.x - pa.x + let dy = pb.y - pa.y + let ndx = dx / 1pt + let ndy = dy / 1pt + let len = calc.sqrt(ndx * ndx + ndy * ndy) + let ux = ndx / len + let uy = ndy / len + let sx = pa.x + ux * (node-r + 1pt) + let sy = pa.y + uy * (node-r + 1pt) + let ex = pb.x - ux * (node-r + 1pt) + let ey = pb.y - uy * (node-r + 1pt) + + place(top + left, line(start: (sx, sy), end: (ex, ey), stroke: edge + 0.85pt)) + _arrow-head(ex, ey, dir: arrow-dir(dx, dy), color: edge) + if both { + _arrow-head(sx, sy, dir: arrow-dir(-dx, -dy), color: edge) + } + if label != none { + label-at((sx + ex) / 2 + label-dx, (sy + ey) / 2 + label-dy, label) + } + } + let edge-curve(a, b, label: none, label-dx: 0pt, label-dy: 0pt) = { + let pa = pos(a) + let pb = pos(b) + let c1x = W + 18pt + let c1y = H - 42pt + let c2x = W + 8pt + let c2y = 22pt + let sdx = (c1x - pa.x) / 1pt + let sdy = (c1y - pa.y) / 1pt + let slen = calc.sqrt(sdx * sdx + sdy * sdy) + let sx = pa.x + sdx / slen * (node-r + 1pt) + let sy = pa.y + sdy / slen * (node-r + 1pt) + let edx = (c2x - pb.x) / 1pt + let edy = (c2y - pb.y) / 1pt + let elen = calc.sqrt(edx * edx + edy * edy) + let ex = pb.x + edx / elen * (node-r + 1pt) + let ey = pb.y + edy / elen * (node-r + 1pt) + + place(top + left, curve( + stroke: edge + 0.85pt, + fill: none, + curve.move((sx, sy)), + curve.cubic((c1x, c1y), (c2x, c2y), (ex, ey)), + )) + _arrow-head(ex, ey, dir: "l", color: edge) + if label != none { + let mx = 0.125 * sx + 0.375 * c1x + 0.375 * c2x + 0.125 * ex + let my = 0.125 * sy + 0.375 * c1y + 0.375 * c2y + 0.125 * ey + label-at(mx + label-dx, my + label-dy, label) + } + } + box(width: W, height: H, { + edge-line("D", "B", label: [10]) + edge-line("B", "P", label: [10]) + edge-line("P", "M", label: [4]) + edge-line("B", "M", label: [5], both: true) + edge-line("C", "B", label: [3]) + edge-line("M", "C", label: [9]) + edge-line("D", "C", label: [4], both: true) + edge-line("L", "M", label: [10]) + edge-curve("L", "D", label: [10]) + + node-by-name("P", [$P$]) + node-by-name("B", [$B$]) + node-by-name("D", [$D$]) + node-by-name("C", [$C$]) + node-by-name("M", [$M$]) + node-by-name("L", [$L$]) + }) +}) + +// ---- Chart slide 1: Transformer + Dynamic system ----------- +#slide(title: "Block Diagrams")[ + #two-col( + left-width: 49%, + [ + Transformer encoder-decoder stack with attention, feed-forward blocks, residual paths, and layer normalisation. + + #baf-diagram(caption: [Transformer encoder-decoder block diagram (Vaswani et al., 2017).])[ + #transformer-diagram + ] + ], + [ + A closed-loop controller compares the reference signal with the measured output, drives the plant, and routes the response through a feedback transducer. + + #baf-diagram( + caption: [Closed-loop control system with controller, plant, disturbance input, and feedback transducer.], + )[ + #closed-loop-diagram + ] + The disturbance $D(z)$ enters before the plant, while $H(z)$ shapes the measured feedback signal $W(z)$ returned to the summing junction. + ], + ) +] + +// ---- Chart slide 2: Linear algebra + Graph ----------------- +#slide(title: "Linear Algebra Diagram and Transition Graph")[ + #two-col( + left-width: 49%, + [ + For a homomorphism $phi: G -> G'$, the *kernel* determines the quotient $G slash ker phi$, while the *image* is the subgroup of reachable outputs in $G'$. + + #baf-diagram(caption: [Kernel-image decomposition for a homomorphism $phi: G -> G'$.])[ + #kernel-image-diagram + ] + The induced map $overline(phi)$ sends cosets modulo $ker phi$ onto $im phi$, and the inclusion embeds that image back into $G'$. + ], + [ + A weighted directed graph encodes reachable states as nodes and transition costs as labels on the arcs. This version keeps the notation compact to match the reference diagram. + + #baf-diagram(caption: [Weighted directed transition graph; edge labels denote transition costs.])[ + #weighted-transition-graph + ] + Parallel and long-range transitions are shown with separate arrows, making bidirectional moves and high-cost paths visible at a glance. + ], + ) +] + +// ---- Chart slide 3: Line chart + Histogram ----------------- +#let accuracy-chart = align(center, { + let W = 248pt + let H = 126pt + let pl = 32pt + let pr = 13pt + let pt = 21pt + let pb = 24pt + let iw = W - pl - pr + let ih = H - pt - pb + let xs = (0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0) + let ya = (0.52, 0.57, 0.63, 0.70, 0.76, 0.81, 0.85, 0.88, 0.90, 0.91, 0.92) + let yb = (0.48, 0.51, 0.55, 0.60, 0.65, 0.69, 0.73, 0.76, 0.79, 0.81, 0.83) + let yc = (0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50) + let xmin = 0.0 + let xmax = 5.0 + let ymin = 0.44 + let ymax = 0.96 + let px(xi) = pl + (xi - xmin) / (xmax - xmin) * iw + let py(yi) = pt + (ymax - yi) / (ymax - ymin) * ih + let tick-label(x, y, width, body, size: 5.4pt, fill: luma(70)) = { + place(top + left, dx: x - width / 2, dy: y - 4.5pt, box( + width: width, + height: 9pt, + inset: 0pt, + align(center + horizon, text(size: size, fill: fill, body)), + )) + } + let line-legend-item(x, y, col, body, text-width: 18pt) = { + place(top + left, line(start: (x, y), end: (x + 9pt, y), stroke: col + 1.1pt)) + place(top + left, dx: x + 12pt, dy: y - 6.5pt, box( + width: text-width, + height: 13pt, + inset: 0pt, + align(left + horizon, text(size: 5.3pt, fill: luma(45), body)), + )) + } + let mkpath(ys, col) = { + let pts = xs.zip(ys).map(p => (px(p.first()), py(p.last()))) + curve( + stroke: col + 1.35pt, + fill: none, + curve.move(pts.first()), + ..pts.slice(1).map(curve.line), + ) + } + let markers(ys, col) = { + for (xv, yv) in xs.zip(ys) { + place(top + left, dx: px(xv) - 1.6pt, dy: py(yv) - 1.6pt, circle(radius: 1.6pt, fill: white, stroke: col + 0.7pt)) + } + } + box(width: W, height: H, stroke: luma(180) + 0.45pt, fill: luma(252), { + place(top + left, dx: 8pt, dy: 5pt, text(size: 6.8pt, weight: "bold", fill: luma(25))[Validation accuracy by epoch]) + place(top + left, dx: W - 91pt, dy: 5pt, box(width: 83pt, height: 13pt, fill: white, stroke: luma(220) + 0.35pt, { + line-legend-item(5pt, 6.5pt, blue.darken(50%), [A], text-width: 8pt) + line-legend-item(28pt, 6.5pt, red.darken(20%), [B], text-width: 8pt) + line-legend-item(52pt, 6.5pt, luma(150), [base], text-width: 17pt) + })) + place(top + left, dx: pl + 3pt, dy: pt + 3pt, text(size: 5.2pt, fill: luma(75))[Accuracy]) + for yi in (0.5, 0.6, 0.7, 0.8, 0.9) { + place(top + left, line(start: (pl, py(yi)), end: (W - pr, py(yi)), stroke: luma(222) + 0.45pt)) + tick-label(pl / 2, py(yi), pl - 8pt, str(yi)) + } + place(top + left, line(start: (pl, pt), end: (pl, H - pb), stroke: luma(95) + 0.65pt)) + place(top + left, line(start: (pl, H - pb), end: (W - pr, H - pb), stroke: luma(95) + 0.65pt)) + for xi in (0, 1, 2, 3, 4, 5) { + place(top + left, line( + start: (px(float(xi)), H - pb), + end: (px(float(xi)), H - pb + 2pt), + stroke: luma(95) + 0.45pt, + )) + tick-label(px(float(xi)), H - pb + 8pt, 12pt, str(xi)) + } + place(top + left, dx: W / 2 - 12pt, dy: H - 9pt, text(size: 5.5pt, fill: luma(65))[Epoch]) + place(top + left, mkpath(ya, blue.darken(50%))) + place(top + left, mkpath(yb, red.darken(20%))) + place(top + left, mkpath(yc, luma(160))) + markers(ya, blue.darken(50%)) + markers(yb, red.darken(20%)) + }) +}) + +#let grouped-bar-chart = align(center, { + let W = 248pt + let H = 126pt + let pl = 32pt + let pr = 12pt + let pt = 21pt + let pb = 26pt + let iw = W - pl - pr + let ih = H - pt - pb + let baseline = H - pb + let years = (2020, 2021, 2022, 2023, 2024) + let va = (62, 67, 71, 74, 78) + let vb = (55, 58, 61, 65, 69) + let maxv = 85.0 + let bw = 10.5pt + let gap = 4pt + let group-w = 2 * bw + gap + let group-step = iw / years.len() + let ca = blue.darken(50%) + let cb = red.darken(20%) + let py(score) = baseline - (float(score) / maxv) * ih + let group-center(i) = pl + (float(i) + 0.5) * group-step + let group-left(i) = group-center(i) - group-w / 2 + let bar-center(i, which) = group-left(i) + if which == "a" { bw / 2 } else { bw + gap + bw / 2 } + let tick-label(x, y, width, body, size: 5.2pt, fill: luma(70)) = { + place(top + left, dx: x - width / 2, dy: y - 4.5pt, box( + width: width, + height: 9pt, + inset: 0pt, + align(center + horizon, text(size: size, fill: fill, body)), + )) + } + let value-label(x, y, body, fill) = { + place(top + left, dx: x - 7pt, dy: y - 9pt, box( + width: 14pt, + height: 8pt, + inset: 0pt, + align(center + horizon, text(size: 4.8pt, fill: fill, body)), + )) + } + let swatch-legend-item(x, y, col, body, text-width: 8pt) = { + place(top + left, dx: x, dy: y - 2.5pt, rect(width: 6pt, height: 5pt, fill: col)) + place(top + left, dx: x + 9pt, dy: y - 6.5pt, box( + width: text-width, + height: 13pt, + inset: 0pt, + align(left + horizon, text(size: 5.3pt, fill: luma(45), body)), + )) + } + box(width: W, height: H, stroke: luma(180) + 0.45pt, fill: luma(252), { + place(top + left, dx: 8pt, dy: 5pt, text(size: 6.8pt, weight: "bold", fill: luma(25))[Mean score by cohort]) + place(top + left, dx: W - 58pt, dy: 5pt, box(width: 50pt, height: 13pt, fill: white, stroke: luma(220) + 0.35pt, { + swatch-legend-item(5pt, 6.5pt, ca, [A]) + swatch-legend-item(27pt, 6.5pt, cb, [B]) + })) + place(top + left, dx: pl + 3pt, dy: pt + 3pt, text(size: 5.2pt, fill: luma(75))[Score]) + for score in (20, 40, 60, 80) { + let yp = py(score) + place(top + left, line(start: (pl, yp), end: (W - pr, yp), stroke: luma(222) + 0.45pt)) + tick-label(pl / 2, yp, pl - 8pt, str(score)) + } + place(top + left, line(start: (pl, pt), end: (pl, baseline), stroke: luma(95) + 0.65pt)) + place(top + left, line(start: (pl, baseline), end: (W - pr, baseline), stroke: luma(95) + 0.65pt)) + for (i, yr) in years.enumerate() { + let a = va.at(i) + let b = vb.at(i) + let x0 = group-left(i) + let ya = py(a) + let yb = py(b) + place(top + left, dx: x0, dy: ya, rect(width: bw, height: baseline - ya, fill: ca)) + place(top + left, dx: x0 + bw + gap, dy: yb, rect(width: bw, height: baseline - yb, fill: cb)) + tick-label(group-center(i), baseline + 8pt, group-step - 2pt, str(yr), size: 5.1pt, fill: luma(55)) + value-label(bar-center(i, "a"), ya, str(a), ca) + value-label(bar-center(i, "b"), yb, str(b), cb) + } + place(top + left, dx: W / 2 - 9pt, dy: H - 9pt, text(size: 5.5pt, fill: luma(65))[Year]) + }) +}) + +#slide(title: "Model Accuracy and Cohort Scores (No Captions)")[ + #two-col( + left-width: 49%, + [ + The accuracy curves compare Model A, Model B, and a 50% baseline across epochs $x in [0,5]$. Model A stays ahead throughout, while both learned models rise well above the baseline. + + #baf-visual[#accuracy-chart] + At epoch 5, *Model A* reaches 92% and *Model B* reaches 83%. Their gap grows up to epoch 3 and then narrows from 12 to 9 percentage points by the final epoch. + ], + [ + The grouped bars compare mean test scores for Group A and Group B from 2020 to 2024. Both cohorts improve each year, with *Group A* leading every annual pair. + + #baf-visual[#grouped-bar-chart] + Scores rise from 62 to 78 for *Group A* and from 55 to 69 for *Group B*. The gap widens from 7 points in 2020 to 9 points in 2024. + ], + ) +] + +#slide(title: "Model Accuracy and Cohort Scores (With Captions)")[ + #two-col( + left-width: 49%, + [ + The accuracy curves compare Model A, Model B, and a 50% baseline across epochs $x in [0,5]$. Model A stays ahead throughout, while both learned models rise well above the baseline. + + #baf-figure(caption: [Accuracy vs. epoch for Model A, Model B, and random baseline.])[ + #accuracy-chart + ] + At epoch 5, *Model A* reaches 92% and *Model B* reaches 83%. Their gap grows up to epoch 3 and then narrows from 12 to 9 percentage points by the final epoch. + ], + [ + The grouped bars compare mean test scores for Group A and Group B from 2020 to 2024. Both cohorts improve each year, with *Group A* leading every annual pair. + + #baf-figure(caption: [Mean test score by group and year (2020-2024).])[ + #grouped-bar-chart + ] + Scores rise from 62 to 78 for *Group A* and from 55 to 69 for *Group B*. The gap widens from 7 points in 2020 to 9 points in 2024. + ], + ) +] + +// ============================================================ +// SECTION 8 -- THEOREM-STYLE BOXES +// ============================================================ +#new-section("Theorem-style Boxes") + +#slide(title: "Definitions, Theorems, and Lemmas")[ + #two-col( + left-width: 49%, + [ + #definition(name: "Metric Space")[ + A *metric space* $(M, d)$ is a set $M$ with $d: M times M -> RR_(>=0)$ satisfying non-negativity, identity ($d(x,y)=0 <=> x=y$), symmetry, and the triangle inequality. + ] + #theorem(name: "Banach Fixed-Point Theorem")[ + Let $(M, d)$ be complete and $f: M -> M$ a contraction with constant $k < 1$. Then $f$ has a *unique* fixed point $x^* in M$. + ] + #lemma()[ + Any contraction $f$ on $(M,d)$ is uniformly continuous and extends uniquely to the completion $overline(M)$. + ] + ], + [ + #corollary(name: "Picard-Lindelof")[ + Under Lipschitz continuity in $y$, the IVP $dot(y)=f(t,y)$, $y(t_0)=y_0$ has a unique local solution. + ] + #proof[ + Apply Banach's theorem to the Picard operator $T phi = y_0 + integral_(t_0)^t f(s,phi(s)) d s$, which is contractive on $C([t_0-delta, t_0+delta])$ for small $delta > 0$. + ] + #remark(name: "Completeness is necessary")[ + On $(0,1)$ with $f(x)=x/2$, the fixed point $0$ lies outside the space -- Banach's theorem fails. + ] + ], + ) +] + +#slide(title: "Examples, Exercises, Propositions, and Custom Boxes")[ + #two-col( + left-width: 49%, + [ + #example(name: "Euclidean Space")[ + $RR^n$ with $d(x,y)=norm(x-y)_2$ is complete. The iteration $x_(k+1)=A x_k+b$ converges iff $rho(A)<1$, to the unique solution of $x=A x+b$. + ] + #exercise()[ + Show that $ZZ_p$ is complete under the $p$-adic metric and use Banach's theorem to prove Hensel's lemma. + ] + #proposition(name: "Closed Subsets are Complete")[ + A closed subset of a complete metric space is itself a complete metric space. + ] + ], + [ + #baf-box("note", name: "Implementation tip", color: green.darken(30%))[ + Monitor $norm(x_(k+1)-x_k)$ as a stopping criterion. A-priori error: $norm(x_k - x^*) <= k^m/(1-k) norm(x_1-x_0)$. + ] + #baf-box("warning", name: "Common pitfall", color: red.darken(20%))[ + Contraction ($k<1$) is strictly stronger than nonexpansive ($k=1$). Rotations on $S^1$ are nonexpansive but have no fixed points. + ] + #baf-box("custom", name: "Any label works", color: purple.darken(15%))[ + Use `#baf-box("kind", name: "...", color: ...)` for any label and color -- observations, facts, algorithms, warnings. + ] + ], + ) +] + +#slide(title: "Custom Box Widths")[ + #baf-box("custom", name: "Default width", color: purple.darken(15%))[ + This box uses the default width, so it fills the available slide content area. It is the recommended form when the material belongs to the main flow of the slide. + ] + + #align(center)[ + #baf-box("custom", name: "Narrow custom width", color: purple.darken(15%), width: 62%)[ + This box has a smaller explicit width. It is useful for short claims, reminders, or side notes that should not dominate the slide. + ] + ] + + #baf-box("custom", name: "Short content, default width", color: purple.darken(15%))[ + A short phrase. + ] +] + +#slide(title: "Full-Width Mathematical Proof")[ + #theorem(name: "Cauchy-Schwarz Inequality")[ + For all vectors $u, v in RR^n$, + #baf-equation[$ + abs(u dot v) <= norm(u) norm(v). + $] + ] + + #proof[ + If $v = 0$, the claim is immediate, so assume $v != 0$. For every real $t$, the squared norm of $u - t v$ is non-negative: + + #baf-equation[$ + 0 <= norm(u - t v)^2 = norm(u)^2 - 2 t (u dot v) + t^2 norm(v)^2. + $] + + Choose the minimising value $t = (u dot v) / norm(v)^2$. Substitution gives + + #baf-equation[$ + 0 <= norm(u)^2 - (u dot v)^2 / norm(v)^2. + $] + + Multiplying by the positive number $norm(v)^2$, we obtain + + #baf-equation[$ + (u dot v)^2 <= norm(u)^2 norm(v)^2. + $] + + Taking square roots on both sides yields $abs(u dot v) <= norm(u) norm(v)$. Equality occurs precisely when the non-negative quadratic has a zero at its minimum, which means $u - t v = 0$ for some scalar $t$; equivalently, the two vectors are linearly dependent. + ] +] + +#slide(title: "Narrow Mathematical Proof")[ + Proof environments fill the available content width by default, matching the rhythm of ordinary slide material. When a shorter line length reads better, pass an explicit `width` and center the proof as below. + + #align(center)[ + #proof(width: 68%)[ + We prove Young's inequality in its weighted quadratic form. Let $a, b >= 0$ and fix $epsilon > 0$. Since every square is non-negative, + + #baf-equation[$ + 0 <= (sqrt(epsilon) a - b / sqrt(epsilon))^2. + $] + + Expanding the square gives + + #baf-equation[$ + 0 <= epsilon a^2 - 2 a b + b^2 / epsilon. + $] + + Rearranging terms and dividing by $2$ yields + + #baf-equation[$ + a b <= epsilon a^2 / 2 + b^2 / (2 epsilon). + $] + + This form is especially useful when a product term must be absorbed into a coercive estimate: one chooses $epsilon$ small enough for the first term and pays for it in the second term. + ] + ] +] + +#slide(title: "Theorem Box with Internal Proof")[ + #theorem(name: "Cauchy-Schwarz Inequality")[ + For all vectors $u, v in RR^n$, + #baf-equation[$ + abs(u dot v) <= norm(u) norm(v). + $] + + #proof[ + If $v = 0$, the claim is immediate. Otherwise, the quadratic expression $norm(u - t v)^2$ is non-negative for every $t in RR$. Expanding and choosing $t = (u dot v) / norm(v)^2$ gives + #baf-equation[$ + 0 <= norm(u)^2 - (u dot v)^2 / norm(v)^2. + $] + Multiplying by $norm(v)^2$ and taking square roots yields the desired inequality. + ] + ] +] + +#slide(title: "Exercise Box with Solution")[ + #exercise(name: "Spectral radius criterion")[ + Let $A in RR^(n times n)$ and suppose $norm(A) < 1$ for a matrix norm compatible with the vector norm. Prove that $I - A$ is invertible and derive a convergent series for its inverse. + + #box-separator("Solution", color: orange.darken(20%)) + + Since $norm(A^k) <= norm(A)^k$, the Neumann series $sum_(k=0)^infinity A^k$ converges absolutely. Multiplying partial sums by $I-A$ gives $I - A^(m+1)$, which tends to $I$. Thus, + #baf-equation[$ + (I - A)^(-1) = sum_(k=0)^infinity A^k. + $] + ] +] + +#slide(title: "Exercise Box with Two Solutions")[ + #exercise(name: "Arithmetic-geometric mean")[ + Prove that for $x, y >= 0$ one has $sqrt(x y) <= (x + y) / 2$. + + #box-separator("Solution 1", color: orange.darken(20%)) + + The square $(sqrt(x) - sqrt(y))^2$ is non-negative, so $x + y - 2 sqrt(x y) >= 0$. + + #box-separator("Solution 2", color: orange.darken(20%)) + + The function $log$ is concave on $(0, infinity)$. Applying Jensen's inequality to $x$ and $y$ gives + #baf-equation[$ + log((x + y) / 2) >= (log x + log y) / 2 = log(sqrt(x y)). + $] + ] +] + +#slide(title: "Theorem, Text, and Lemma")[ + The next result is stated in the same theorem-style box used throughout the template. The surrounding prose is deliberately included to show how normal paragraphs sit before, between, and after formal statements. + + #theorem(name: "Compactness criterion")[ + Every sequence in a compact metric space has a convergent subsequence whose limit belongs to the same space. + ] + + This theorem is often the bridge between qualitative assumptions and quantitative estimates. The intermediate text lets the slide show how ordinary prose separates theorem-style boxes without requiring a two-column layout. + + #lemma(name: "Closed image of a convergent sequence")[ + If $x_n -> x$ and $F$ is closed, then every sequence contained in $F$ can only converge to a point of $F$. + ] + + Together, the theorem and lemma give a compact workflow: first extract convergence, then use closedness to keep the limiting object inside the admissible set. This final paragraph checks the lower spacing after the last formal box. +] + +// ============================================================ +// Thank you +// ============================================================ +#final-slide diff --git a/packages/preview/black-angular-frame/0.1.1/template/assets/curves.csv b/packages/preview/black-angular-frame/0.1.1/template/assets/curves.csv new file mode 100644 index 0000000000..00d583ed4a --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/template/assets/curves.csv @@ -0,0 +1,12 @@ +x,model_a,model_b,baseline +0.0,0.52,0.48,0.50 +0.5,0.57,0.51,0.50 +1.0,0.63,0.55,0.50 +1.5,0.70,0.60,0.50 +2.0,0.76,0.65,0.50 +2.5,0.81,0.69,0.50 +3.0,0.85,0.73,0.50 +3.5,0.88,0.76,0.50 +4.0,0.90,0.79,0.50 +4.5,0.91,0.81,0.50 +5.0,0.92,0.83,0.50 diff --git a/packages/preview/black-angular-frame/0.1.1/template/assets/github-logo.png b/packages/preview/black-angular-frame/0.1.1/template/assets/github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..34966ac65567e4180fa43cc212fc1ec5074e4765 GIT binary patch literal 6362 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 Q|3^@1s_LqgDLsGtKW)v!>i_@% literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/template/assets/typst-logo.png b/packages/preview/black-angular-frame/0.1.1/template/assets/typst-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..773232fdf66739d77f7ed68d614ff771fb96b5b4 GIT binary patch literal 12710 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 literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/template/main.typ b/packages/preview/black-angular-frame/0.1.1/template/main.typ new file mode 100644 index 0000000000..68bc452948 --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/template/main.typ @@ -0,0 +1,1799 @@ +// ============================================================ +// black-angular-frame -- Example / Demo Presentation +// This file demonstrates all features of the template. +// ============================================================ + +#import "@preview/black-angular-frame:0.1.1": * + +#let presentation-config = ( + title: "Black Angular Frame", + subtitle: "A Typst Template for Academic Presentations", + authors: "Author One, Author Two", + institution: "Institution Name", + date: "May 2026", + final-message: "Thank you for your attention", + primary-color: rgb("#1C1C1C"), + secondary-color: rgb("#D9D9D9"), + background-color: rgb("#FFFFFF"), + font-color: luma(20), + header-font-color-1: rgb("#999999"), + header-font-color-2: rgb("#1C1C1C"), + header-font-color-1-highlight: rgb("#FFFFFF"), + content-center: 0.3, + content-upper-padding: 0.05, + content-lower-padding: 0.05, + logos: ( + image("assets/typst-logo.png", height: 45pt), + image("assets/github-logo.png", height: 45pt), + ), + TOC: true, +) + +#show: black-angular-frame.with(config: presentation-config) + +// ============================================================ +// CONFIGURATION +// ============================================================ +#new-section("Configuration") + +#slide(title: "Template Configuration")[ + The template is configured from a single Typst dictionary. The table below lists the keys that can be passed through `config`, the expected value shape, and the defaults used when a key is omitted. + + #v(3pt) + + #let cell(body, fill: white, pos: left, weight: "regular") = baf-table-cell( + fill: fill, + stroke: luma(200) + 0.45pt, + pos: pos, + inset: (x: 3pt, y: 2pt), + )[ + #text(font: "IBM Plex Sans", size: 5.6pt, weight: weight, body) + ] + + #grid( + columns: (23%, 20%, 20%, 37%), + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Name]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Expected value]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Default]], + cell(fill: rgb("#1C1C1C"), weight: "bold")[#text(fill: white)[Description]], + + cell[`title`], cell[String], cell[`""`], cell[Presentation title.], + cell[`subtitle`], cell[String], cell[`""`], cell[Presentation subtitle.], + cell[`authors`], cell[String], cell[`""`], cell[Author line shown on the cover and footer.], + cell[`institution`], cell[String], cell[`""`], cell[Institution shown on the cover and footer.], + cell[`date`], cell[String], cell[`""`], cell[Date shown on the cover.], + cell[`final-message`], cell[String], cell[`""`], cell[Message shown on the last slide.], + cell[`footer-content-1`], cell[String], cell[`authors`], cell[Left text in the upper footer band.], + cell[`footer-content-2`], cell[String], cell[`institution`], cell[Right text in the upper footer band.], + cell[`footer-content-3`], cell[String], cell[`title`], cell[Left text in the lower footer band.], + cell[`primary-color`], cell[Color], cell[`rgb("#1C1C1C")`], cell[Main bars, highlights, numbering, and accents.], + cell[`secondary-color`], cell[Color], cell[`rgb("#D9D9D9")`], cell[Secondary header and footer bands.], + cell[`background-color`], cell[Color], cell[`rgb("#FFFFFF")`], cell[Slide background color.], + cell[`font-color`], cell[Color], cell[`luma(20)`], cell[Default body text color.], + cell[`header-font-color-1`], + cell[Color], + cell[`_muted-nav(primary-color)`], + cell[Inactive text in the primary header band and text in the lower footer band.], + cell[`header-font-color-2`], + cell[Color], + cell[`primary-color`], + cell[Text in the secondary header and footer bands.], + cell[`header-font-color-1-highlight`], + cell[Color], + cell[`rgb("#FFFFFF")`], + cell[Active text in the primary header band.], + cell[`content-center`], + cell[Float 0-1], + cell[`0.3`], + cell[Vertical position used to center content; 0 starts at the top, 1 at the bottom.], + cell[`content-upper-padding`], + cell[Float 0-1], + cell[`0.05`], + cell[Top proportion of the available content area kept empty.], + cell[`content-lower-padding`], + cell[Float 0-1], + cell[`0.05`], + cell[Bottom proportion of the available content area kept empty.], + cell[`logos`], cell[`array[content]`], cell[`()`], cell[Logo images or custom content shown on the cover.], + cell[`TOC`], cell[Bool], cell[`true`], cell[Whether to add the table of contents slide with section links.], + ) + + #v(3pt) + These names are intentionally presentation-level settings, so changing the theme does not require editing the template internals. +] + +#slide(title: "Template Configuration Code")[ + The example presentation stores its theme and metadata in `presentation-config`, then passes that dictionary to the template with `black-angular-frame.with`. + + #v(3pt) + + #code-box( + "#import \"@preview/black-angular-frame:0.1.1\": * + +#let presentation-config = ( + title: \"Black Angular Frame\", + subtitle: \"A Typst Template for Academic Presentations\", + authors: \"Author One, Author Two\", + institution: \"Institution Name\", + date: \"May 2026\", + final-message: \"Thank you for your attention\", + primary-color: rgb(\"#1C1C1C\"), + secondary-color: rgb(\"#D9D9D9\"), + background-color: rgb(\"#FFFFFF\"), + font-color: luma(20), + header-font-color-1: rgb(\"#999999\"), + header-font-color-2: rgb(\"#1C1C1C\"), + header-font-color-1-highlight: rgb(\"#FFFFFF\"), + content-center: 0.3, + content-upper-padding: 0.05, + content-lower-padding: 0.05, + logos: (\n image(\"assets/typst-logo.png\", height: 45pt),\n image(\"assets/github-logo.png\", height: 45pt),\n ), + TOC: true, +) + +#show: black-angular-frame.with(config: presentation-config)", + type: "Typst", + title: "Import and configure the template", + lang: "typst", + color: luma(90), + fill: luma(248), + text-size: 5.6pt, + ) + + #v(3pt) + The rest of the document can focus on sections and slides while the template reads these values for the cover, navigation, footer, body text, logos, TOC, and final slide. +] + +// ============================================================ +// SECTION 1 -- TYPOGRAPHY +// ============================================================ +#new-section("Typography") + +#slide(title: "Default Fonts")[ + The template uses three IBM Plex families when available, with standard fallback fonts if they are not installed: + + #v(5pt) + #grid( + columns: (1fr, 1fr, 1fr), + column-gutter: 5pt, + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Serif", size: 11.5pt)[ + *IBM Plex Serif* \ + body text \ + Regular, _italic_, \ + *bold*, _*bold-italic*_ + ]), + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Sans", size: 11.5pt)[ + *IBM Plex Sans* \ + titles & headings \ + Regular, _italic_, \ + *bold*, _*bold-italic*_ + ]), + block(stroke: blue.darken(50%) + 0.6pt, inset: 7pt, width: 100%, text(font: "IBM Plex Mono", size: 11.5pt)[ + *IBM Plex Mono* \ + code & verbatim \ + Regular, _italic_, \ + *bold* + ]), + ) + #v(6pt) + Inline styling: #text(weight: "bold")[bold], #text(style: "italic")[italic], #text(fill: blue.darken(50%))[colored], #underline[underlined], #text(size: 13pt)[large (13 pt)], #text(size: 7.5pt)[small (7.5 pt)]. +] + +#slide(title: "Text Sizing and Semantic Emphasis")[ + #v(2pt) + #text(size: 18pt, weight: "bold", fill: blue.darken(50%))[Headline -- 18 pt bold] \ + #text(size: 14pt, weight: "bold")[Subheading -- 14 pt bold] \ + #text(size: 12pt)[Section heading -- 12 pt regular] \ + #text(size: 10pt)[Body text -- 10 pt (default)] \ + #text(size: 8pt, fill: luma(60))[Caption / footnote -- 8 pt muted] + + #v(8pt) + Semantic use: #text(style: "italic")[italics for emphasis], #text(weight: "bold")[bold for key terms], #text(fill: red.darken(20%))[red for warnings], #text(fill: green.darken(25%))[green for results]. Combine for #text(style: "italic", weight: "bold", fill: blue.darken(50%))[critical highlighted points]. + + #v(4pt) + Change the global accent via `primary-color`, the secondary bands via `secondary-color`, and the page fill via `background-color`. These parameters propagate through the navigation bar, footer, section dividers, TOC numbering squares, and theorem environments. +] + +// ============================================================ +// SECTION 2 -- LISTS AND ENUMERATIONS +// ============================================================ +#new-section("Lists & Enumerations") + +#slide(title: "Bullet Points and Nested Lists")[ + #two-col( + [ + *Unordered list (three levels):* + - First top-level item + - Nested child A + - Nested child B + - Deeply nested + - Another deep item + - Second top-level item + - Another child + - Third top-level item + ], + [ + *Ordered enumeration (three levels):* + + Step one: initialise + + Sub-step 1a + + Sub-step 1b + + Step two: process data + + Sub-step 2a + + Detail 2a-i + + Step three: evaluate output + + Step four: report results + ], + ) + + #v(5pt) + Typst automatically styles bullet symbols and numerals at each nesting depth. Ordered and unordered lists can be freely mixed at any level. +] + +// ============================================================ +// SECTION 3 -- FIGURES +// ============================================================ +#new-section("Figures") + +#slide(title: "Inserting and Referencing Figures")[ + #two-col( + [ + Figures use `#baf-figure(caption: [...])`. The counter resets per section; reference figures by their auto-assigned number. Longer surrounding paragraphs make it easier to inspect the vertical rhythm before and after visual material. + + #v(5pt) + As shown in *Figure 1*, a colored rectangle acts as a placeholder. In practice pass `image("diagram.svg")` or any Typst content as the figure body. This text intentionally spans multiple lines so the figure margins can be judged against realistic prose. + + #v(4pt) + *Figure 2* illustrates that captions appear italic below the figure, numbered automatically within the current section. The paragraph below the visual block should feel close enough to belong to the same slide, but not so close that the caption looks cramped. + ], + [ + The first placeholder represents a diagram or image inserted into the slide flow. A few lines of prose above it help show how the template separates ordinary text from framed visual content. + + #baf-figure(caption: [Placeholder -- replace with `image("diagram.svg")`.])[ + #rect( + width: 100%, + height: 62pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Diagram / Image here]), + ) + ] + #baf-figure(caption: [Second figure -- captions are italic, automatically numbered.])[ + #rect( + width: 100%, + height: 38pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Another placeholder]), + ) + ] + + After the second figure, this short paragraph checks the lower margin beneath a caption. It should read as a continuation of the slide narrative rather than as text accidentally attached to the figure. + ], + ) +] + +#slide(title: "Full-Width and Fractional-Width Figures (With Captions)")[ + #two-col( + [ + A figure can expand to the full width of its column when the content should dominate the layout. This is useful for diagrams, screenshots, or images that need as much horizontal room as possible. + + #baf-figure(caption: [Full-width placeholder figure spanning the whole column.])[ + #rect( + width: 100%, + height: 60pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Full-width figure]), + ) + ] + + The caption should stay centered under the figure even when the visual takes the entire available width of the column. + ], + [ + Smaller visuals often read better when they keep some white space around them. A fractional-width figure makes that possible while still preserving the same numbering and caption behavior. + + #baf-figure(caption: [Fractional-width placeholder figure centered inside the column.])[ + #align(center, rect( + width: 68%, + height: 60pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Fractional-width figure]), + )) + ] + + This example checks that a narrower figure still aligns cleanly in the column and that the caption feels attached to the centered image rather than to the whole column width. + ], + ) +] + +#slide(title: "Full-Width and Fractional-Width Figures (No Captions)")[ + #two-col( + [ + The same pair can also be shown without captions when the slide is purely illustrative and the surrounding prose already provides enough context for the audience. + + #baf-visual[ + #rect( + width: 100%, + height: 60pt, + fill: blue.darken(50%).lighten(88%), + stroke: blue.darken(50%) + 0.8pt, + align(center + horizon, text(fill: blue.darken(50%), size: 9pt)[Full-width figure]), + ) + ] + + Without a caption, the lower margin should still separate the figure from the next paragraph and keep the slide from feeling cramped. + ], + [ + The fractional-width version below uses the same visual content but keeps the narrower footprint. This lets us compare centered image placement with and without the caption layer. + + #baf-visual[ + #rect( + width: 68%, + height: 60pt, + fill: luma(240), + stroke: luma(190) + 0.6pt, + align(center + horizon, text(fill: luma(80), size: 9pt)[Fractional-width figure]), + ) + ] + + The surrounding text remains multi-line on purpose so we can judge the spacing around a centered narrow figure in the same way as we do for captioned figures. + ], + ) +] + +// ============================================================ +// SECTION 4 -- TWO-COLUMN LAYOUT +// ============================================================ +#new-section("Layouts", slide-title: "Two-Column Layouts") + +#slide(title: "Two-Column Layout")[ + #two-col( + left-width: 50%, + [ + == Left column + + The `#two-col(left, right)` helper builds a two-column `grid`. Parameters: + - `left-width` -- fraction of slide width (default 48%) + - `gutter` -- gap between columns (default 4%) + + #v(4pt) + Works well for: text + figure, code + output, comparative tables, side-by-side theorem boxes. + ], + [ + == Right column + + Any Typst content fits inside a column, including nested `two-col` calls, theorem boxes, figures, and tables. + + #baf-visual[ + #rect( + width: 100%, + height: 58pt, + fill: luma(245), + stroke: luma(200) + 0.6pt, + align(center + horizon, text(size: 9pt, fill: luma(60))[Arbitrary block inside a column]), + ) + ] + ], + ) +] + +// ============================================================ +// SECTION 5 -- CODE BLOCKS +// ============================================================ +#new-section("Code Blocks", slide-title: "Source Code & Pseudo-code") + +#slide(title: "Source Code and Pseudo-code Side by Side")[ + #two-col( + [ + #code-box( + "def softmax(x): + e = np.exp(x - x.max(axis=-1, keepdims=True)) + return e / e.sum(axis=-1, keepdims=True) + +def cross_entropy(logits, labels): + probs = softmax(logits) + n = labels.shape[0] + log_p = np.log(probs[range(n), labels]) + return -log_p.mean()", + type: "Source Code", + title: "Python", + lang: "python", + color: luma(110), + fill: luma(245), + ) + Uses `IBM Plex Mono` on a light grey background. Pass a language name to `#code-box(..., lang: "...")` for syntax highlighting. + ], + [ + #pseudo-code( + "Algorithm: Mini-Batch SGD +Input: loss L, data D, lr eta, T, B +------------------------------------- +for t = 1 to T do + B_t <- sample B examples from D + g <- grad_theta L(theta; B_t) + theta <- theta - eta * g +end for +return theta", + title: "Mini-Batch SGD", + ) + Pseudo-code now uses the same framed box language as the theorem environments, with a `type` label and `title`. + ], + ) +] + +// ============================================================ +// SECTION 6 -- TABLES +// ============================================================ +#new-section("Tables") + +#slide(title: "Paper-style and Grid-style Tables (No Captions)")[ + #two-col( + [ + *Paper style* (booktabs-like -- horizontal rules only) + + This table is introduced by a short paragraph rather than a single label. The extra prose makes the spacing above the table visible in a realistic slide, where a table usually follows a sentence or two of setup. + + #let paper-cell(body, pos: left, header: false, model-col: false, first-data: false) = grid.cell( + stroke: ( + bottom: if header { 0.6pt } else { none }, + right: if model-col { 0.6pt } else { none }, + ), + inset: ( + left: 5pt, + right: 5pt, + top: if first-data { 6pt } else { 4pt }, + bottom: if header { 7pt } else { 4pt }, + ), + align: pos, + text(font: "IBM Plex Serif", body), + ) + #baf-visual[ + #block(width: 100%, { + line(length: 100%, stroke: 0.9pt) + grid( + columns: (28%, 24%, 24%, 24%), + paper-cell(header: true, model-col: true)[*Method*], + paper-cell(header: true, pos: center)[*Acc. (%)*], + paper-cell(header: true, pos: center)[*F#sub[1]*], + paper-cell(header: true, pos: center)[*AUC*], + + paper-cell(model-col: true, first-data: true)[Baseline], + paper-cell(pos: center, first-data: true)[72.3], + paper-cell(pos: center, first-data: true)[0.701], + paper-cell(pos: center, first-data: true)[0.743], + + paper-cell(model-col: true)[Model A], + paper-cell(pos: center)[81.5], + paper-cell(pos: center)[0.803], + paper-cell(pos: center)[0.851], + + paper-cell(model-col: true)[Model B], + paper-cell(pos: center)[*88.9*], + paper-cell(pos: center)[*0.876*], + paper-cell(pos: center)[*0.903*], + ) + line(length: 100%, stroke: 0.9pt) + }) + ] + Classic academic style: only top and bottom rules, no vertical lines. The text after the table deliberately runs for a couple of lines so the lower margin can be compared with the upper margin. + ], + [ + *Grid style* (full borders, colored header, alternating rows) + + The grid version is meant for dense numeric summaries or dashboard-like reporting. A longer lead-in makes it easier to see whether the table feels attached to the explanation or floats too far away. + + #let grid-cell(body, fill: white, stroke: luma(200) + 0.6pt, pos: center) = baf-table-cell( + fill: fill, + stroke: stroke, + pos: pos, + body, + ) + #baf-visual[ + #block(width: 100%, grid( + columns: (28%, 24%, 24%, 24%), + grid-cell(fill: blue.darken(50%), pos: left)[#text(fill: white)[Method]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[Acc. (%)]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[F#sub[1]]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[AUC]], + + grid-cell(fill: luma(248), pos: left)[Baseline], + grid-cell(fill: luma(248))[72.3], + grid-cell(fill: luma(248))[0.701], + grid-cell(fill: luma(248))[0.743], + + grid-cell(fill: white, pos: left)[Model A], + grid-cell(fill: white)[81.5], + grid-cell(fill: white)[0.803], + grid-cell(fill: white)[0.851], + + grid-cell(fill: luma(248), pos: left)[Model B], + grid-cell(fill: luma(248))[*88.9*], + grid-cell(fill: luma(248))[*0.876*], + grid-cell(fill: luma(248))[*0.903*], + )) + ] + Dashboard style: solid grid, alternating row shading. This closing note also spans multiple lines, which helps reveal whether the table block leaves enough room before normal prose resumes. + ], + ) +] + +#slide(title: "Paper-style and Grid-style Tables (With Captions)")[ + #two-col( + [ + *Paper style* (booktabs-like -- horizontal rules only) + + Captions are useful when the table needs to be referenced later in the talk or connected to a source. This paragraph gives the captioned table enough surrounding prose to test both the top margin and the caption spacing. + + #let paper-cell(body, pos: left, header: false, model-col: false, first-data: false) = grid.cell( + stroke: ( + bottom: if header { 0.6pt } else { none }, + right: if model-col { 0.6pt } else { none }, + ), + inset: ( + left: 5pt, + right: 5pt, + top: if first-data { 6pt } else { 4pt }, + bottom: if header { 7pt } else { 4pt }, + ), + align: pos, + text(font: "IBM Plex Serif", body), + ) + #figure( + kind: table, + caption: [Placeholder caption for the paper-style table.], + { + block(width: 100%, { + line(length: 100%, stroke: 0.9pt) + grid( + columns: (28%, 24%, 24%, 24%), + paper-cell(header: true, model-col: true)[*Method*], + paper-cell(header: true, pos: center)[*Acc. (%)*], + paper-cell(header: true, pos: center)[*F#sub[1]*], + paper-cell(header: true, pos: center)[*AUC*], + + paper-cell(model-col: true, first-data: true)[Baseline], + paper-cell(pos: center, first-data: true)[72.3], + paper-cell(pos: center, first-data: true)[0.701], + paper-cell(pos: center, first-data: true)[0.743], + + paper-cell(model-col: true)[Model A], + paper-cell(pos: center)[81.5], + paper-cell(pos: center)[0.803], + paper-cell(pos: center)[0.851], + + paper-cell(model-col: true)[Model B], + paper-cell(pos: center)[*88.9*], + paper-cell(pos: center)[*0.876*], + paper-cell(pos: center)[*0.903*], + ) + line(length: 100%, stroke: 0.9pt) + }) + }, + ) + Classic academic style: only top and bottom rules, no vertical lines. With a caption present, the paragraph after the table should sit beneath the full table block rather than feeling glued to the caption. + ], + [ + *Grid style* (full borders, colored header, alternating rows) + + The captioned grid table shows how a more operational table behaves inside the same layout. The text before it is intentionally longer so vertical spacing is visible without relying on empty slide area. + + #let grid-cell(body, fill: white, stroke: luma(200) + 0.6pt, pos: center) = baf-table-cell( + fill: fill, + stroke: stroke, + pos: pos, + body, + ) + #figure( + kind: table, + caption: [Placeholder caption for the grid-style table.], + { + block(width: 100%, grid( + columns: (28%, 24%, 24%, 24%), + grid-cell(fill: blue.darken(50%), pos: left)[#text(fill: white)[Method]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[Acc. (%)]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[F#sub[1]]], + grid-cell(fill: blue.darken(50%))[#text(fill: white)[AUC]], + + grid-cell(fill: luma(248), pos: left)[Baseline], + grid-cell(fill: luma(248))[72.3], + grid-cell(fill: luma(248))[0.701], + grid-cell(fill: luma(248))[0.743], + + grid-cell(fill: white, pos: left)[Model A], + grid-cell(fill: white)[81.5], + grid-cell(fill: white)[0.803], + grid-cell(fill: white)[0.851], + + grid-cell(fill: luma(248), pos: left)[Model B], + grid-cell(fill: luma(248))[*88.9*], + grid-cell(fill: luma(248))[*0.876*], + grid-cell(fill: luma(248))[*0.903*], + )) + }, + ) + Dashboard style: solid grid, alternating row shading. This final description should have comfortable breathing room after the caption while still reading as part of the same explanatory unit. + ], + ) +] + +// ============================================================ +// SECTION 7 -- DIAGRAMS AND CHARTS (three slides) +// ============================================================ +#new-section("Diagrams & Charts") + +// ---- Diagram drawing helpers ------------------------------- +#let _arrow-head(x, y, dir: "r", color: luma(25)) = { + if dir == "r" { + place(top + left, dx: x - 6pt, dy: y - 3pt, polygon((0pt, 0pt), (6pt, 3pt), (0pt, 6pt), fill: color)) + } else if dir == "l" { + place(top + left, dx: x, dy: y - 3pt, polygon((0pt, 3pt), (6pt, 0pt), (6pt, 6pt), fill: color)) + } else if dir == "d" { + place(top + left, dx: x - 3pt, dy: y - 6pt, polygon((0pt, 0pt), (6pt, 0pt), (3pt, 6pt), fill: color)) + } else if dir == "u" { + place(top + left, dx: x - 3pt, dy: y, polygon((0pt, 6pt), (3pt, 0pt), (6pt, 6pt), fill: color)) + } else if dir == "dr" { + place(top + left, dx: x - 6pt, dy: y - 6pt, polygon((6pt, 6pt), (1pt, 4pt), (4pt, 1pt), fill: color)) + } else if dir == "dl" { + place(top + left, dx: x, dy: y - 6pt, polygon((0pt, 6pt), (5pt, 4pt), (2pt, 1pt), fill: color)) + } else if dir == "ur" { + place(top + left, dx: x - 6pt, dy: y, polygon((6pt, 0pt), (1pt, 2pt), (4pt, 5pt), fill: color)) + } else { + place(top + left, dx: x, dy: y, polygon((0pt, 0pt), (5pt, 2pt), (2pt, 5pt), fill: color)) + } +} + +#let _arr-r(x1, y, x2, color: luma(25), weight: 0.8pt, label: none, label-dy: -8pt) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: color + weight)) + _arrow-head(x2, y, dir: "r", color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 - 6pt, dy: y + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-l(x1, y, x2, color: luma(25), weight: 0.8pt, label: none, label-dy: -8pt) = { + place(top + left, line(start: (x1, y), end: (x2 + 5pt, y), stroke: color + weight)) + _arrow-head(x2, y, dir: "l", color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 - 6pt, dy: y + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-v(x, y1, y2, color: luma(25), weight: 0.8pt, label: none, label-dx: 4pt) = { + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: color + weight)) + _arrow-head(x, y2, dir: "d", color: color) + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: color + weight)) + _arrow-head(x, y2, dir: "u", color: color) + } + if label != none { + place(top + left, dx: x + label-dx, dy: (y1 + y2) / 2 - 4pt, text(size: 6.4pt, fill: color, label)) + } +} + +#let _arr-diag(x1, y1, x2, y2, dir, color: luma(25), weight: 0.8pt, label: none, label-dx: 0pt, label-dy: 0pt) = { + place(top + left, line(start: (x1, y1), end: (x2, y2), stroke: color + weight)) + _arrow-head(x2, y2, dir: dir, color: color) + if label != none { + place(top + left, dx: (x1 + x2) / 2 + label-dx, dy: (y1 + y2) / 2 + label-dy, text(size: 6.4pt, fill: color, label)) + } +} + +#let _diagram-block(label, w: 52pt, h: 18pt, fill: luma(245), stroke: luma(25), text-size: 6.6pt, radius: 2pt) = box( + width: w, + height: h, + fill: fill, + stroke: stroke + 0.7pt, + radius: radius, + align(center + horizon, text(size: text-size, fill: luma(15), label)), +) + +#let transformer-diagram = align(center, { + let W = 278pt + let H = 232pt + let ink = luma(15) + let block-w = 54pt + let frame-w = 90pt + let frame-pad-x = (frame-w - block-w) / 2 + let enc-x = 30pt + let dec-x = 154pt + let label-size = 5.7pt + let small-size = 4.9pt + let arrow-weight = 0.9pt + let node-r = 3.5pt + let positional-center-y = 180pt + let input-sum-y = positional-center-y + let nx-y = 118pt + let decoder-bottom-label-width = 94pt + let pink = rgb("#F9DCDD") + let peach = rgb("#FFE3B8") + let bluefill = rgb("#C5E8F5") + let normfill = rgb("#F3F5C2") + let greenfill = rgb("#D8F0D9") + let violet = rgb("#E4E7F8") + + let encoder = ( + x: enc-x, + frame-y: 73pt, + frame-h: 100pt, + stack-x: enc-x + frame-pad-x, + nx-x: enc-x - 25pt, + nx-y: nx-y, + pos-side: "left", + pos-label-x: -15pt, + pos-circle-x: 49pt, + emb-label: [Input\ Embedding], + bottom-label: [Inputs], + bottom-label-x: enc-x + 8pt, + bottom-label-width: 74pt, + ) + let decoder = ( + x: dec-x, + frame-y: 41pt, + frame-h: 132pt, + stack-x: dec-x + frame-pad-x, + nx-x: dec-x + frame-w + 8pt, + nx-y: nx-y, + pos-side: "right", + pos-label-x: 229pt, + pos-circle-x: 224pt, + emb-label: [Output\ Embedding], + bottom-label: [Outputs (shifted right)], + bottom-label-x: dec-x + frame-pad-x + block-w / 2 - decoder-bottom-label-width / 2, + bottom-label-width: decoder-bottom-label-width, + ) + + let cx(col) = col.stack-x + block-w / 2 + let cy(layer) = layer.y + layer.h / 2 + + let diagram-text(x, y, body, size: label-size, width: auto, align-pos: center) = place( + top + left, + dx: x, + dy: y, + block(width: width, align(align-pos, text(size: size, fill: ink, body))), + ) + let diagram-text-centered-on-y(x, center-y, body, size: label-size, width: auto, align-pos: center) = context { + let label = block(width: width, align(align-pos, text(size: size, fill: ink, body))) + place(top + left, dx: x, dy: center-y - measure(label).height / 2, label) + } + let block-at(x, y, label, fill, h: 16pt, size: label-size) = place( + top + left, + dx: x, + dy: y, + _diagram-block(label, w: block-w, h: h, fill: fill, stroke: ink, text-size: size, radius: 2.2pt), + ) + let frame(col) = place( + top + left, + dx: col.x, + dy: col.frame-y, + block( + width: frame-w, + height: col.frame-h, + stroke: ink + 1.3pt, + radius: 7pt, + fill: luma(250), + ), + ) + let plus(x, y) = { + let r = node-r + let d = 2.45pt + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 0.85pt, fill: white)) + place(top + left, line(start: (x - d, y), end: (x + d, y), stroke: ink + 0.65pt)) + place(top + left, line(start: (x, y - d), end: (x, y + d), stroke: ink + 0.65pt)) + } + let pos-signal(x, y) = { + let r = node-r + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 0.9pt, fill: white)) + place(top + left, curve( + stroke: ink + 0.65pt, + fill: none, + curve.move((x - 2.2pt, y + 1.1pt)), + curve.cubic((x - 1.2pt, y + 1.1pt), (x - 1.1pt, y - 1.1pt), (x, y)), + curve.cubic((x + 1.1pt, y + 1.1pt), (x + 1.2pt, y - 1.1pt), (x + 2.2pt, y - 1.1pt)), + )) + } + let poly(points, weight: arrow-weight) = { + for i in range(points.len() - 1) { + let a = points.at(i) + let b = points.at(i + 1) + place(top + left, line(start: a, end: b, stroke: ink + weight)) + } + } + let arrow-head(x, y, dir: "r") = { + let len = 2.4pt + let half = 1.5pt + if dir == "r" { + place(top + left, polygon((x, y), (x - len, y - half), (x - len, y + half), fill: ink)) + } else if dir == "l" { + place(top + left, polygon((x, y), (x + len, y - half), (x + len, y + half), fill: ink)) + } else if dir == "d" { + place(top + left, polygon((x, y), (x - half, y - len), (x + half, y - len), fill: ink)) + } else { + place(top + left, polygon((x, y), (x - half, y + len), (x + half, y + len), fill: ink)) + } + } + let arrow-poly(points, dir: "r") = { + poly(points) + let end = points.at(points.len() - 1) + arrow-head(end.at(0), end.at(1), dir: dir) + } + let arr-v(x, y1, y2, weight: arrow-weight) = { + let len = 2.4pt + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - len), stroke: ink + weight)) + arrow-head(x, y2, dir: "d") + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + len), stroke: ink + weight)) + arrow-head(x, y2, dir: "u") + } + } + let attention-fork(layer, gap: 6pt) = { + let xs = (layer.x + 9pt, layer.x + block-w / 2, layer.x + block-w - 9pt) + let y = layer.y + layer.h + gap + place(top + left, line(start: (xs.first(), y), end: (xs.last(), y), stroke: ink + arrow-weight)) + for x in xs { + arr-v(x, y, layer.y + layer.h) + } + } + let branch-y(start, end, pct: 0.3) = start + pct * (end - start) + let residual(col, layer, norm, branch-from, branch-to, side: "left", branch-pct: 0.3) = { + let bus = if side == "left" { col.x + 6pt } else { col.x + frame-w - 6pt } + let by = branch-y(branch-from, branch-to, pct: branch-pct) + let from = (cx(col), by) + let mid = (bus, by) + let into = if side == "left" { + (norm.x, cy(norm)) + } else { + (norm.x + block-w, cy(norm)) + } + arrow-poly((from, mid, (bus, cy(norm)), into), dir: if side == "left" { "r" } else { "l" }) + } + let column-bottom(col) = { + let emb-y = 188pt + let emb-h = 14pt + let plus-y = positional-center-y + block-at(col.stack-x, emb-y, col.emb-label, pink, h: emb-h, size: 4.2pt) + plus(cx(col), plus-y) + arr-v(cx(col), emb-y + emb-h + 10pt, emb-y + emb-h) + arr-v(cx(col), emb-y, plus-y + 3.5pt) + diagram-text(col.bottom-label-x, 221pt, col.bottom-label, size: 7.2pt, width: col.bottom-label-width) + diagram-text-centered-on-y(col.pos-label-x, positional-center-y, [Positional Embedding], size: 5.0pt, width: 60pt) + pos-signal(col.pos-circle-x, plus-y) + if col.pos-side == "left" { + place(top + left, line( + start: (col.pos-circle-x + node-r, plus-y), + end: (cx(col) - node-r, plus-y), + stroke: ink + arrow-weight, + )) + } else { + place(top + left, line( + start: (cx(col) + node-r, plus-y), + end: (col.pos-circle-x - node-r, plus-y), + stroke: ink + arrow-weight, + )) + } + } + let sum-to-attention(col, layer, gap: 6pt) = place( + top + left, + line( + start: (cx(col), input-sum-y - 3.5pt), + end: (cx(col), layer.y + layer.h + gap), + stroke: ink + arrow-weight, + ), + ) + let lower-attn-shift = 3pt + + let enc-layers = ( + ( + key: "attn", + x: encoder.stack-x, + y: 138pt + lower-attn-shift, + h: 16pt, + label: [Multi-Head\ Attention], + fill: peach, + size: 4.5pt, + ), + ( + key: "norm1", + x: encoder.stack-x, + y: 123pt + lower-attn-shift, + h: 9pt, + label: [Add & Norm], + fill: normfill, + size: 4.8pt, + ), + (key: "ff", x: encoder.stack-x, y: 92pt, h: 15pt, label: [Feed\ Forward], fill: bluefill, size: 4.7pt), + (key: "norm2", x: encoder.stack-x, y: 77pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + ) + let dec-layers = ( + ( + key: "masked", + x: decoder.stack-x, + y: 139pt + lower-attn-shift, + h: 18pt, + label: [Masked\ Multi-Head\ Attention], + fill: peach, + size: 4.0pt, + ), + ( + key: "norm1", + x: decoder.stack-x, + y: 125pt + lower-attn-shift, + h: 9pt, + label: [Add & Norm], + fill: normfill, + size: 4.8pt, + ), + (key: "cross", x: decoder.stack-x, y: 98pt, h: 14pt, label: [Multi-Head\ Attention], fill: peach, size: 4.2pt), + (key: "norm2", x: decoder.stack-x, y: 84pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + (key: "ff", x: decoder.stack-x, y: 59pt, h: 14pt, label: [Feed\ Forward], fill: bluefill, size: 4.4pt), + (key: "norm3", x: decoder.stack-x, y: 45pt, h: 9pt, label: [Add & Norm], fill: normfill, size: 4.8pt), + (key: "linear", x: decoder.stack-x, y: 27pt, h: 9pt, label: [Linear], fill: violet, size: 4.9pt), + (key: "softmax", x: decoder.stack-x, y: 15.5pt, h: 9pt, label: [Softmax], fill: greenfill, size: 4.9pt), + ) + let enc(key) = enc-layers.find(layer => layer.key == key) + let dec(key) = dec-layers.find(layer => layer.key == key) + + box(width: W, height: H, { + frame(encoder) + frame(decoder) + diagram-text(encoder.nx-x, encoder.nx-y, [N×], size: 12pt) + diagram-text(decoder.nx-x, decoder.nx-y, [N×], size: 12pt) + diagram-text(decoder.stack-x - 7pt, 0pt, [Output Probabilities], size: 7.2pt, width: block-w + 14pt) + + column-bottom(encoder) + column-bottom(decoder) + + for layer in enc-layers { + block-at(layer.x, layer.y, layer.label, layer.fill, h: layer.h, size: layer.size) + } + for layer in dec-layers { + block-at(layer.x, layer.y, layer.label, layer.fill, h: layer.h, size: layer.size) + } + + attention-fork(enc("attn")) + attention-fork(dec("masked")) + sum-to-attention(encoder, enc("attn")) + sum-to-attention(decoder, dec("masked")) + + residual( + encoder, + enc("attn"), + enc("norm1"), + input-sum-y - 3.5pt, + enc("attn").y + enc("attn").h + 6pt, + side: "left", + branch-pct: 0.65, + ) + residual(encoder, enc("ff"), enc("norm2"), enc("norm1").y, enc("ff").y + enc("ff").h, side: "left", branch-pct: 0.5) + residual( + decoder, + dec("masked"), + dec("norm1"), + input-sum-y - 3.5pt, + dec("masked").y + dec("masked").h + 6pt, + side: "right", + branch-pct: 0.65, + ) + residual(decoder, dec("cross"), dec("norm2"), dec("norm1").y, dec("cross").y + dec("cross").h, side: "right") + residual( + decoder, + dec("ff"), + dec("norm3"), + dec("norm2").y, + dec("ff").y + dec("ff").h, + side: "right", + branch-pct: 0.5, + ) + + arr-v(cx(encoder), enc("attn").y, enc("norm1").y + enc("norm1").h) + arr-v(cx(encoder), enc("norm1").y, enc("ff").y + enc("ff").h) + arr-v(cx(encoder), enc("ff").y, enc("norm2").y + enc("norm2").h) + arr-v(cx(decoder), dec("masked").y, dec("norm1").y + dec("norm1").h) + let cross-input-xs = ( + dec("cross").x + 9pt, + dec("cross").x + block-w / 2, + dec("cross").x + block-w - 9pt, + ) + let cross-right-route-y = branch-y(dec("norm1").y, dec("cross").y + dec("cross").h, pct: 0.3) - 4pt + arrow-poly( + ( + (cx(decoder), dec("norm1").y), + (cx(decoder), cross-right-route-y), + (cross-input-xs.last(), cross-right-route-y), + (cross-input-xs.last(), dec("cross").y + dec("cross").h), + ), + dir: "u", + ) + arr-v(cx(decoder), dec("cross").y, dec("norm2").y + dec("norm2").h) + arr-v(cx(decoder), dec("norm2").y, dec("ff").y + dec("ff").h) + arr-v(cx(decoder), dec("ff").y, dec("norm3").y + dec("norm3").h) + arr-v(cx(decoder), dec("norm3").y, dec("linear").y + dec("linear").h) + arr-v(cx(decoder), dec("linear").y, dec("softmax").y + dec("softmax").h) + arr-v(cx(decoder), dec("softmax").y, 10pt) + + let enc-out-x = cx(encoder) + let enc-out-y = enc("norm2").y + let enc-route-y = encoder.frame-y - 5pt + let enc-dec-route-x = (encoder.x + frame-w + decoder.x) / 2 + let cross-in-y = dec("cross").y + dec("cross").h + 5pt + poly(( + (enc-out-x, enc-out-y), + (enc-out-x, enc-route-y), + (enc-dec-route-x, enc-route-y), + (enc-dec-route-x, cross-in-y), + (cross-input-xs.at(1), cross-in-y), + )) + arr-v(cross-input-xs.at(1), cross-in-y, dec("cross").y + dec("cross").h) + arrow-poly( + ( + (enc-dec-route-x, cross-in-y), + (cross-input-xs.at(0), cross-in-y), + (cross-input-xs.at(0), dec("cross").y + dec("cross").h), + ), + dir: "u", + ) + }) +}) + + +#let closed-loop-diagram = align(center, { + let W = 248pt + let H = 112pt + let ink = luma(0) + let stroke = ink + 1.0pt + let label(x, y, body, size: 7.2pt) = place(top + left, dx: x, dy: y, text(size: size, fill: ink, body)) + let arrow-r(x1, y, x2) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: stroke)) + _arrow-head(x2, y, dir: "r", color: ink) + } + let arrow-l(x1, y, x2) = { + place(top + left, line(start: (x1, y), end: (x2 + 5pt, y), stroke: stroke)) + _arrow-head(x2, y, dir: "l", color: ink) + } + let arrow-u(x, y1, y2) = { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: stroke)) + _arrow-head(x, y2, dir: "u", color: ink) + } + let arrow-d(x, y1, y2) = { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: stroke)) + _arrow-head(x, y2, dir: "d", color: ink) + } + let labeled-arrow(x1, y1, x2, y2, body, label-dx: 0pt, label-dy: 0pt, label-size: 8pt) = { + if y1 == y2 and x2 > x1 { + arrow-r(x1, y1, x2) + } else if y1 == y2 and x2 < x1 { + arrow-l(x1, y1, x2) + } else if x1 == x2 and y2 > y1 { + arrow-d(x1, y1, y2) + } else if x1 == x2 and y2 < y1 { + arrow-u(x1, y1, y2) + } else { + place(top + left, line(start: (x1, y1), end: (x2, y2), stroke: stroke)) + } + if body != none { + label((x1 + x2) / 2 + label-dx, (y1 + y2) / 2 + label-dy, body, size: label-size) + } + } + + + let sys-box(x, y, label, w: 26pt, h: 26pt) = { + place( + top + left, + dx: x, + dy: y, + box( + width: w, + height: h, + fill: white, + stroke: ink + 1.2pt, + align(center + horizon, text(size: 8pt, fill: ink, label)), + ), + ) + } + + let sum-sign(x, y, body) = place( + top + left, + dx: x, + dy: y, + box(width: 5.5pt, height: 5.5pt, align(center + horizon, text(size: 5.8pt, fill: ink, body))), + ) + let sum-node(x, y, kind: "feedback") = { + let r = 10pt + let d = 7.1pt + let signs = if kind == "disturbance" { + ((-8.6pt, -3.0pt, [+]), (-2.8pt, -8.6pt, [+])) + } else { + ((-8.6pt, -3.0pt, [+]), (-2.8pt, 3.2pt, [−])) + } + place(top + left, dx: x - r, dy: y - r, circle(radius: r, stroke: ink + 1.0pt, fill: white)) + place(top + left, line(start: (x - d, y - d), end: (x + d, y + d), stroke: ink + 0.65pt)) + place(top + left, line(start: (x - d, y + d), end: (x + d, y - d), stroke: ink + 0.65pt)) + for (sx, sy, sign) in signs { + sum-sign(x + sx, y + sy, sign) + } + } + box(width: W, height: H, { + let y = 42pt + let s1 = 48pt + let s2 = 154pt + let low = 85pt + let arrow-len = 30pt + let disturbance-arrow-len = 20pt + let node-r = 10pt + let box-w = 26pt + let k-x = s1 + node-r + arrow-len + let g-x = s2 + node-r + arrow-len + let branch = g-x + box-w + arrow-len / 2 + let h-x = 144pt + + sum-node(s1, y) + label(k-x - 4pt, 17pt, [Controller], size: 7pt) + + sys-box(k-x, 29pt, [$K(z)$]) + // sys-box(50pt, 29pt, [$K(z)$]) + + sum-node(s2, y, kind: "disturbance") + label(g-x - 11pt, 17pt, [Target System], size: 7pt) + sys-box(g-x, 29pt, [$G(z)$]) + sys-box(h-x, 72pt, [$H(z)$]) + label(h-x - 7pt, 103pt, [Transducer], size: 7pt) + + labeled-arrow(s1 - node-r - arrow-len, y, s1 - node-r, y, [$R(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s1 + node-r, y, k-x, y, [$E(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(k-x + box-w, y, s2 - node-r, y, [$U(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s2 + node-r, y, g-x, y, [$V(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(g-x + box-w, y, g-x + box-w + arrow-len, y, [$Y(z)$], label-dx: -10pt, label-dy: -10pt) + labeled-arrow(s2, y - node-r - disturbance-arrow-len, s2, y - node-r, [$D(z)$], label-dx: -9pt, label-dy: -21pt) + place(top + left, line(start: (branch, y), end: (branch, low), stroke: stroke)) + arrow-l(branch, low, h-x + box-w) + place(top + left, line(start: (h-x, low), end: (s1, low), stroke: stroke)) + arrow-u(s1, low, 52pt) + label(94pt, 90pt, [$W(z)$], size: 8pt) + }) +}) + + + +#let kernel-image-diagram = align(center, { + let W = 220pt + let H = 86pt + let ink = luma(15) + let label-size = 9pt + let node(x, y, w, h, body, size) = place( + top + left, + dx: x - w / 2, + dy: y - h / 2, + box(width: w, height: h, align(center + horizon, text(size: size, fill: ink, body))), + ) + let arrow-r(x1, y, x2, body, label-dx: 0pt, label-dy: -13pt) = { + place(top + left, line(start: (x1, y), end: (x2 - 5pt, y), stroke: ink + 0.8pt)) + _arrow-head(x2, y, dir: "r", color: ink) + place(top + left, dx: (x1 + x2) / 2 + label-dx, dy: y + label-dy, text(size: label-size, fill: ink, body)) + } + let arrow-v(x, y1, y2, body, label-dx: 7pt, label-dy: -4pt) = { + if y2 > y1 { + place(top + left, line(start: (x, y1), end: (x, y2 - 5pt), stroke: ink + 0.8pt)) + _arrow-head(x, y2, dir: "d", color: ink) + } else { + place(top + left, line(start: (x, y1), end: (x, y2 + 5pt), stroke: ink + 0.8pt)) + _arrow-head(x, y2, dir: "u", color: ink) + } + place(top + left, dx: x + label-dx, dy: (y1 + y2) / 2 + label-dy, text(size: label-size, fill: ink, body)) + } + box(width: W, height: H, { + let top-y = 20pt + let bot-y = 68pt + let left-x = 66pt + let right-x = 162pt + let g-w = 24pt + let gp-w = 30pt + let q-w = 92pt + let im-w = 58pt + let g-arrow-w = 20pt + let gp-arrow-w = 24pt + let q-arrow-w = 74pt + let im-arrow-w = 42pt + let node-h = 18pt + + node(left-x, top-y, g-w, node-h, [$G$], 18pt) + node(right-x, top-y, gp-w, node-h, [$G'$], 18pt) + node(left-x, bot-y, q-w, node-h, [$G slash ker phi$], 16pt) + node(right-x, bot-y, im-w, node-h, [$im phi$], 16pt) + + arrow-r(left-x + g-arrow-w / 2 + 2pt, top-y, right-x - gp-arrow-w / 2 + 1pt, [$phi$], label-dx: -4pt) + arrow-v(left-x, top-y + node-h / 2 + 2pt, bot-y - node-h / 2 + 1pt, [$-$], label-dx: -13pt) + arrow-r( + left-x + q-arrow-w / 2 + 2pt, + bot-y, + right-x - im-arrow-w / 2 + 1pt, + [$overline(phi)$], + label-dx: -8pt, + label-dy: 5pt, + ) + arrow-v(right-x, bot-y - node-h / 2 + 1pt, top-y + node-h / 2 + 2pt, [inc], label-dx: 7pt) + }) +}) + +#let weighted-transition-graph = align(center, { + let W = 176pt + let H = 162pt + let ink = luma(25) + let edge = rgb("#C66A00") + let node-r = 13pt + let nodes = ( + P: (x: 17pt, y: 99pt), + B: (x: 64pt, y: 58pt), + D: (x: 110pt, y: 17pt), + C: (x: 110pt, y: 98pt), + M: (x: 64pt, y: 139pt), + L: (x: 158pt, y: 139pt), + ) + let pos(name) = nodes.at(name) + let arrow-dir(dx, dy) = { + let ax = calc.abs(dx) + let ay = calc.abs(dy) + if ax < ay * 0.45 { + if dy > 0pt { "d" } else { "u" } + } else if ay < ax * 0.45 { + if dx > 0pt { "r" } else { "l" } + } else if dx > 0pt and dy > 0pt { + "dr" + } else if dx < 0pt and dy > 0pt { + "dl" + } else if dx > 0pt and dy < 0pt { + "ur" + } else { + "ul" + } + } + let node(x, y, short) = { + place(top + left, dx: x - node-r, dy: y - node-r, box( + width: 2 * node-r, + height: 2 * node-r, + radius: node-r, + stroke: ink + 0.7pt, + fill: white, + align(center + horizon, text(size: 8.8pt, style: "italic", short)), + )) + } + let node-by-name(name, body) = { + let p = pos(name) + node(p.x, p.y, body) + } + let label-at(x, y, body) = { + place(top + left, dx: x - 7.5pt, dy: y - 5pt, box( + width: 15pt, + height: 10pt, + fill: white, + inset: 0pt, + align(center + horizon, text(size: 7.6pt, fill: ink, body)), + )) + } + let edge-line(a, b, label: none, label-dx: 0pt, label-dy: 0pt, both: false) = { + let pa = pos(a) + let pb = pos(b) + let dx = pb.x - pa.x + let dy = pb.y - pa.y + let ndx = dx / 1pt + let ndy = dy / 1pt + let len = calc.sqrt(ndx * ndx + ndy * ndy) + let ux = ndx / len + let uy = ndy / len + let sx = pa.x + ux * (node-r + 1pt) + let sy = pa.y + uy * (node-r + 1pt) + let ex = pb.x - ux * (node-r + 1pt) + let ey = pb.y - uy * (node-r + 1pt) + + place(top + left, line(start: (sx, sy), end: (ex, ey), stroke: edge + 0.85pt)) + _arrow-head(ex, ey, dir: arrow-dir(dx, dy), color: edge) + if both { + _arrow-head(sx, sy, dir: arrow-dir(-dx, -dy), color: edge) + } + if label != none { + label-at((sx + ex) / 2 + label-dx, (sy + ey) / 2 + label-dy, label) + } + } + let edge-curve(a, b, label: none, label-dx: 0pt, label-dy: 0pt) = { + let pa = pos(a) + let pb = pos(b) + let c1x = W + 18pt + let c1y = H - 42pt + let c2x = W + 8pt + let c2y = 22pt + let sdx = (c1x - pa.x) / 1pt + let sdy = (c1y - pa.y) / 1pt + let slen = calc.sqrt(sdx * sdx + sdy * sdy) + let sx = pa.x + sdx / slen * (node-r + 1pt) + let sy = pa.y + sdy / slen * (node-r + 1pt) + let edx = (c2x - pb.x) / 1pt + let edy = (c2y - pb.y) / 1pt + let elen = calc.sqrt(edx * edx + edy * edy) + let ex = pb.x + edx / elen * (node-r + 1pt) + let ey = pb.y + edy / elen * (node-r + 1pt) + + place(top + left, curve( + stroke: edge + 0.85pt, + fill: none, + curve.move((sx, sy)), + curve.cubic((c1x, c1y), (c2x, c2y), (ex, ey)), + )) + _arrow-head(ex, ey, dir: "l", color: edge) + if label != none { + let mx = 0.125 * sx + 0.375 * c1x + 0.375 * c2x + 0.125 * ex + let my = 0.125 * sy + 0.375 * c1y + 0.375 * c2y + 0.125 * ey + label-at(mx + label-dx, my + label-dy, label) + } + } + box(width: W, height: H, { + edge-line("D", "B", label: [10]) + edge-line("B", "P", label: [10]) + edge-line("P", "M", label: [4]) + edge-line("B", "M", label: [5], both: true) + edge-line("C", "B", label: [3]) + edge-line("M", "C", label: [9]) + edge-line("D", "C", label: [4], both: true) + edge-line("L", "M", label: [10]) + edge-curve("L", "D", label: [10]) + + node-by-name("P", [$P$]) + node-by-name("B", [$B$]) + node-by-name("D", [$D$]) + node-by-name("C", [$C$]) + node-by-name("M", [$M$]) + node-by-name("L", [$L$]) + }) +}) + +// ---- Chart slide 1: Transformer + Dynamic system ----------- +#slide(title: "Block Diagrams")[ + #two-col( + left-width: 49%, + [ + Transformer encoder-decoder stack with attention, feed-forward blocks, residual paths, and layer normalisation. + + #baf-diagram(caption: [Transformer encoder-decoder block diagram (Vaswani et al., 2017).])[ + #transformer-diagram + ] + ], + [ + A closed-loop controller compares the reference signal with the measured output, drives the plant, and routes the response through a feedback transducer. + + #baf-diagram( + caption: [Closed-loop control system with controller, plant, disturbance input, and feedback transducer.], + )[ + #closed-loop-diagram + ] + The disturbance $D(z)$ enters before the plant, while $H(z)$ shapes the measured feedback signal $W(z)$ returned to the summing junction. + ], + ) +] + +// ---- Chart slide 2: Linear algebra + Graph ----------------- +#slide(title: "Linear Algebra Diagram and Transition Graph")[ + #two-col( + left-width: 49%, + [ + For a homomorphism $phi: G -> G'$, the *kernel* determines the quotient $G slash ker phi$, while the *image* is the subgroup of reachable outputs in $G'$. + + #baf-diagram(caption: [Kernel-image decomposition for a homomorphism $phi: G -> G'$.])[ + #kernel-image-diagram + ] + The induced map $overline(phi)$ sends cosets modulo $ker phi$ onto $im phi$, and the inclusion embeds that image back into $G'$. + ], + [ + A weighted directed graph encodes reachable states as nodes and transition costs as labels on the arcs. This version keeps the notation compact to match the reference diagram. + + #baf-diagram(caption: [Weighted directed transition graph; edge labels denote transition costs.])[ + #weighted-transition-graph + ] + Parallel and long-range transitions are shown with separate arrows, making bidirectional moves and high-cost paths visible at a glance. + ], + ) +] + +// ---- Chart slide 3: Line chart + Histogram ----------------- +#let accuracy-chart = align(center, { + let W = 248pt + let H = 126pt + let pl = 32pt + let pr = 13pt + let pt = 21pt + let pb = 24pt + let iw = W - pl - pr + let ih = H - pt - pb + let xs = (0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0) + let ya = (0.52, 0.57, 0.63, 0.70, 0.76, 0.81, 0.85, 0.88, 0.90, 0.91, 0.92) + let yb = (0.48, 0.51, 0.55, 0.60, 0.65, 0.69, 0.73, 0.76, 0.79, 0.81, 0.83) + let yc = (0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50, 0.50) + let xmin = 0.0 + let xmax = 5.0 + let ymin = 0.44 + let ymax = 0.96 + let px(xi) = pl + (xi - xmin) / (xmax - xmin) * iw + let py(yi) = pt + (ymax - yi) / (ymax - ymin) * ih + let tick-label(x, y, width, body, size: 5.4pt, fill: luma(70)) = { + place(top + left, dx: x - width / 2, dy: y - 4.5pt, box( + width: width, + height: 9pt, + inset: 0pt, + align(center + horizon, text(size: size, fill: fill, body)), + )) + } + let line-legend-item(x, y, col, body, text-width: 18pt) = { + place(top + left, line(start: (x, y), end: (x + 9pt, y), stroke: col + 1.1pt)) + place(top + left, dx: x + 12pt, dy: y - 6.5pt, box( + width: text-width, + height: 13pt, + inset: 0pt, + align(left + horizon, text(size: 5.3pt, fill: luma(45), body)), + )) + } + let mkpath(ys, col) = { + let pts = xs.zip(ys).map(p => (px(p.first()), py(p.last()))) + curve( + stroke: col + 1.35pt, + fill: none, + curve.move(pts.first()), + ..pts.slice(1).map(curve.line), + ) + } + let markers(ys, col) = { + for (xv, yv) in xs.zip(ys) { + place(top + left, dx: px(xv) - 1.6pt, dy: py(yv) - 1.6pt, circle(radius: 1.6pt, fill: white, stroke: col + 0.7pt)) + } + } + box(width: W, height: H, stroke: luma(180) + 0.45pt, fill: luma(252), { + place(top + left, dx: 8pt, dy: 5pt, text(size: 6.8pt, weight: "bold", fill: luma(25))[Validation accuracy by epoch]) + place(top + left, dx: W - 91pt, dy: 5pt, box(width: 83pt, height: 13pt, fill: white, stroke: luma(220) + 0.35pt, { + line-legend-item(5pt, 6.5pt, blue.darken(50%), [A], text-width: 8pt) + line-legend-item(28pt, 6.5pt, red.darken(20%), [B], text-width: 8pt) + line-legend-item(52pt, 6.5pt, luma(150), [base], text-width: 17pt) + })) + place(top + left, dx: pl + 3pt, dy: pt + 3pt, text(size: 5.2pt, fill: luma(75))[Accuracy]) + for yi in (0.5, 0.6, 0.7, 0.8, 0.9) { + place(top + left, line(start: (pl, py(yi)), end: (W - pr, py(yi)), stroke: luma(222) + 0.45pt)) + tick-label(pl / 2, py(yi), pl - 8pt, str(yi)) + } + place(top + left, line(start: (pl, pt), end: (pl, H - pb), stroke: luma(95) + 0.65pt)) + place(top + left, line(start: (pl, H - pb), end: (W - pr, H - pb), stroke: luma(95) + 0.65pt)) + for xi in (0, 1, 2, 3, 4, 5) { + place(top + left, line( + start: (px(float(xi)), H - pb), + end: (px(float(xi)), H - pb + 2pt), + stroke: luma(95) + 0.45pt, + )) + tick-label(px(float(xi)), H - pb + 8pt, 12pt, str(xi)) + } + place(top + left, dx: W / 2 - 12pt, dy: H - 9pt, text(size: 5.5pt, fill: luma(65))[Epoch]) + place(top + left, mkpath(ya, blue.darken(50%))) + place(top + left, mkpath(yb, red.darken(20%))) + place(top + left, mkpath(yc, luma(160))) + markers(ya, blue.darken(50%)) + markers(yb, red.darken(20%)) + }) +}) + +#let grouped-bar-chart = align(center, { + let W = 248pt + let H = 126pt + let pl = 32pt + let pr = 12pt + let pt = 21pt + let pb = 26pt + let iw = W - pl - pr + let ih = H - pt - pb + let baseline = H - pb + let years = (2020, 2021, 2022, 2023, 2024) + let va = (62, 67, 71, 74, 78) + let vb = (55, 58, 61, 65, 69) + let maxv = 85.0 + let bw = 10.5pt + let gap = 4pt + let group-w = 2 * bw + gap + let group-step = iw / years.len() + let ca = blue.darken(50%) + let cb = red.darken(20%) + let py(score) = baseline - (float(score) / maxv) * ih + let group-center(i) = pl + (float(i) + 0.5) * group-step + let group-left(i) = group-center(i) - group-w / 2 + let bar-center(i, which) = group-left(i) + if which == "a" { bw / 2 } else { bw + gap + bw / 2 } + let tick-label(x, y, width, body, size: 5.2pt, fill: luma(70)) = { + place(top + left, dx: x - width / 2, dy: y - 4.5pt, box( + width: width, + height: 9pt, + inset: 0pt, + align(center + horizon, text(size: size, fill: fill, body)), + )) + } + let value-label(x, y, body, fill) = { + place(top + left, dx: x - 7pt, dy: y - 9pt, box( + width: 14pt, + height: 8pt, + inset: 0pt, + align(center + horizon, text(size: 4.8pt, fill: fill, body)), + )) + } + let swatch-legend-item(x, y, col, body, text-width: 8pt) = { + place(top + left, dx: x, dy: y - 2.5pt, rect(width: 6pt, height: 5pt, fill: col)) + place(top + left, dx: x + 9pt, dy: y - 6.5pt, box( + width: text-width, + height: 13pt, + inset: 0pt, + align(left + horizon, text(size: 5.3pt, fill: luma(45), body)), + )) + } + box(width: W, height: H, stroke: luma(180) + 0.45pt, fill: luma(252), { + place(top + left, dx: 8pt, dy: 5pt, text(size: 6.8pt, weight: "bold", fill: luma(25))[Mean score by cohort]) + place(top + left, dx: W - 58pt, dy: 5pt, box(width: 50pt, height: 13pt, fill: white, stroke: luma(220) + 0.35pt, { + swatch-legend-item(5pt, 6.5pt, ca, [A]) + swatch-legend-item(27pt, 6.5pt, cb, [B]) + })) + place(top + left, dx: pl + 3pt, dy: pt + 3pt, text(size: 5.2pt, fill: luma(75))[Score]) + for score in (20, 40, 60, 80) { + let yp = py(score) + place(top + left, line(start: (pl, yp), end: (W - pr, yp), stroke: luma(222) + 0.45pt)) + tick-label(pl / 2, yp, pl - 8pt, str(score)) + } + place(top + left, line(start: (pl, pt), end: (pl, baseline), stroke: luma(95) + 0.65pt)) + place(top + left, line(start: (pl, baseline), end: (W - pr, baseline), stroke: luma(95) + 0.65pt)) + for (i, yr) in years.enumerate() { + let a = va.at(i) + let b = vb.at(i) + let x0 = group-left(i) + let ya = py(a) + let yb = py(b) + place(top + left, dx: x0, dy: ya, rect(width: bw, height: baseline - ya, fill: ca)) + place(top + left, dx: x0 + bw + gap, dy: yb, rect(width: bw, height: baseline - yb, fill: cb)) + tick-label(group-center(i), baseline + 8pt, group-step - 2pt, str(yr), size: 5.1pt, fill: luma(55)) + value-label(bar-center(i, "a"), ya, str(a), ca) + value-label(bar-center(i, "b"), yb, str(b), cb) + } + place(top + left, dx: W / 2 - 9pt, dy: H - 9pt, text(size: 5.5pt, fill: luma(65))[Year]) + }) +}) + +#slide(title: "Model Accuracy and Cohort Scores (No Captions)")[ + #two-col( + left-width: 49%, + [ + The accuracy curves compare Model A, Model B, and a 50% baseline across epochs $x in [0,5]$. Model A stays ahead throughout, while both learned models rise well above the baseline. + + #baf-visual[#accuracy-chart] + At epoch 5, *Model A* reaches 92% and *Model B* reaches 83%. Their gap grows up to epoch 3 and then narrows from 12 to 9 percentage points by the final epoch. + ], + [ + The grouped bars compare mean test scores for Group A and Group B from 2020 to 2024. Both cohorts improve each year, with *Group A* leading every annual pair. + + #baf-visual[#grouped-bar-chart] + Scores rise from 62 to 78 for *Group A* and from 55 to 69 for *Group B*. The gap widens from 7 points in 2020 to 9 points in 2024. + ], + ) +] + +#slide(title: "Model Accuracy and Cohort Scores (With Captions)")[ + #two-col( + left-width: 49%, + [ + The accuracy curves compare Model A, Model B, and a 50% baseline across epochs $x in [0,5]$. Model A stays ahead throughout, while both learned models rise well above the baseline. + + #baf-figure(caption: [Accuracy vs. epoch for Model A, Model B, and random baseline.])[ + #accuracy-chart + ] + At epoch 5, *Model A* reaches 92% and *Model B* reaches 83%. Their gap grows up to epoch 3 and then narrows from 12 to 9 percentage points by the final epoch. + ], + [ + The grouped bars compare mean test scores for Group A and Group B from 2020 to 2024. Both cohorts improve each year, with *Group A* leading every annual pair. + + #baf-figure(caption: [Mean test score by group and year (2020-2024).])[ + #grouped-bar-chart + ] + Scores rise from 62 to 78 for *Group A* and from 55 to 69 for *Group B*. The gap widens from 7 points in 2020 to 9 points in 2024. + ], + ) +] + +// ============================================================ +// SECTION 8 -- THEOREM-STYLE BOXES +// ============================================================ +#new-section("Theorem-style Boxes") + +#slide(title: "Definitions, Theorems, and Lemmas")[ + #two-col( + left-width: 49%, + [ + #definition(name: "Metric Space")[ + A *metric space* $(M, d)$ is a set $M$ with $d: M times M -> RR_(>=0)$ satisfying non-negativity, identity ($d(x,y)=0 <=> x=y$), symmetry, and the triangle inequality. + ] + #theorem(name: "Banach Fixed-Point Theorem")[ + Let $(M, d)$ be complete and $f: M -> M$ a contraction with constant $k < 1$. Then $f$ has a *unique* fixed point $x^* in M$. + ] + #lemma()[ + Any contraction $f$ on $(M,d)$ is uniformly continuous and extends uniquely to the completion $overline(M)$. + ] + ], + [ + #corollary(name: "Picard-Lindelof")[ + Under Lipschitz continuity in $y$, the IVP $dot(y)=f(t,y)$, $y(t_0)=y_0$ has a unique local solution. + ] + #proof[ + Apply Banach's theorem to the Picard operator $T phi = y_0 + integral_(t_0)^t f(s,phi(s)) d s$, which is contractive on $C([t_0-delta, t_0+delta])$ for small $delta > 0$. + ] + #remark(name: "Completeness is necessary")[ + On $(0,1)$ with $f(x)=x/2$, the fixed point $0$ lies outside the space -- Banach's theorem fails. + ] + ], + ) +] + +#slide(title: "Examples, Exercises, Propositions, and Custom Boxes")[ + #two-col( + left-width: 49%, + [ + #example(name: "Euclidean Space")[ + $RR^n$ with $d(x,y)=norm(x-y)_2$ is complete. The iteration $x_(k+1)=A x_k+b$ converges iff $rho(A)<1$, to the unique solution of $x=A x+b$. + ] + #exercise()[ + Show that $ZZ_p$ is complete under the $p$-adic metric and use Banach's theorem to prove Hensel's lemma. + ] + #proposition(name: "Closed Subsets are Complete")[ + A closed subset of a complete metric space is itself a complete metric space. + ] + ], + [ + #baf-box("note", name: "Implementation tip", color: green.darken(30%))[ + Monitor $norm(x_(k+1)-x_k)$ as a stopping criterion. A-priori error: $norm(x_k - x^*) <= k^m/(1-k) norm(x_1-x_0)$. + ] + #baf-box("warning", name: "Common pitfall", color: red.darken(20%))[ + Contraction ($k<1$) is strictly stronger than nonexpansive ($k=1$). Rotations on $S^1$ are nonexpansive but have no fixed points. + ] + #baf-box("custom", name: "Any label works", color: purple.darken(15%))[ + Use `#baf-box("kind", name: "...", color: ...)` for any label and color -- observations, facts, algorithms, warnings. + ] + ], + ) +] + +#slide(title: "Custom Box Widths")[ + #baf-box("custom", name: "Default width", color: purple.darken(15%))[ + This box uses the default width, so it fills the available slide content area. It is the recommended form when the material belongs to the main flow of the slide. + ] + + #align(center)[ + #baf-box("custom", name: "Narrow custom width", color: purple.darken(15%), width: 62%)[ + This box has a smaller explicit width. It is useful for short claims, reminders, or side notes that should not dominate the slide. + ] + ] + + #baf-box("custom", name: "Short content, default width", color: purple.darken(15%))[ + A short phrase. + ] +] + +#slide(title: "Full-Width Mathematical Proof")[ + #theorem(name: "Cauchy-Schwarz Inequality")[ + For all vectors $u, v in RR^n$, + #baf-equation[$ + abs(u dot v) <= norm(u) norm(v). + $] + ] + + #proof[ + If $v = 0$, the claim is immediate, so assume $v != 0$. For every real $t$, the squared norm of $u - t v$ is non-negative: + + #baf-equation[$ + 0 <= norm(u - t v)^2 = norm(u)^2 - 2 t (u dot v) + t^2 norm(v)^2. + $] + + Choose the minimising value $t = (u dot v) / norm(v)^2$. Substitution gives + + #baf-equation[$ + 0 <= norm(u)^2 - (u dot v)^2 / norm(v)^2. + $] + + Multiplying by the positive number $norm(v)^2$, we obtain + + #baf-equation[$ + (u dot v)^2 <= norm(u)^2 norm(v)^2. + $] + + Taking square roots on both sides yields $abs(u dot v) <= norm(u) norm(v)$. Equality occurs precisely when the non-negative quadratic has a zero at its minimum, which means $u - t v = 0$ for some scalar $t$; equivalently, the two vectors are linearly dependent. + ] +] + +#slide(title: "Narrow Mathematical Proof")[ + Proof environments fill the available content width by default, matching the rhythm of ordinary slide material. When a shorter line length reads better, pass an explicit `width` and center the proof as below. + + #align(center)[ + #proof(width: 68%)[ + We prove Young's inequality in its weighted quadratic form. Let $a, b >= 0$ and fix $epsilon > 0$. Since every square is non-negative, + + #baf-equation[$ + 0 <= (sqrt(epsilon) a - b / sqrt(epsilon))^2. + $] + + Expanding the square gives + + #baf-equation[$ + 0 <= epsilon a^2 - 2 a b + b^2 / epsilon. + $] + + Rearranging terms and dividing by $2$ yields + + #baf-equation[$ + a b <= epsilon a^2 / 2 + b^2 / (2 epsilon). + $] + + This form is especially useful when a product term must be absorbed into a coercive estimate: one chooses $epsilon$ small enough for the first term and pays for it in the second term. + ] + ] +] + +#slide(title: "Theorem Box with Internal Proof")[ + #theorem(name: "Cauchy-Schwarz Inequality")[ + For all vectors $u, v in RR^n$, + #baf-equation[$ + abs(u dot v) <= norm(u) norm(v). + $] + + #proof[ + If $v = 0$, the claim is immediate. Otherwise, the quadratic expression $norm(u - t v)^2$ is non-negative for every $t in RR$. Expanding and choosing $t = (u dot v) / norm(v)^2$ gives + #baf-equation[$ + 0 <= norm(u)^2 - (u dot v)^2 / norm(v)^2. + $] + Multiplying by $norm(v)^2$ and taking square roots yields the desired inequality. + ] + ] +] + +#slide(title: "Exercise Box with Solution")[ + #exercise(name: "Spectral radius criterion")[ + Let $A in RR^(n times n)$ and suppose $norm(A) < 1$ for a matrix norm compatible with the vector norm. Prove that $I - A$ is invertible and derive a convergent series for its inverse. + + #box-separator("Solution", color: orange.darken(20%)) + + Since $norm(A^k) <= norm(A)^k$, the Neumann series $sum_(k=0)^infinity A^k$ converges absolutely. Multiplying partial sums by $I-A$ gives $I - A^(m+1)$, which tends to $I$. Thus, + #baf-equation[$ + (I - A)^(-1) = sum_(k=0)^infinity A^k. + $] + ] +] + +#slide(title: "Exercise Box with Two Solutions")[ + #exercise(name: "Arithmetic-geometric mean")[ + Prove that for $x, y >= 0$ one has $sqrt(x y) <= (x + y) / 2$. + + #box-separator("Solution 1", color: orange.darken(20%)) + + The square $(sqrt(x) - sqrt(y))^2$ is non-negative, so $x + y - 2 sqrt(x y) >= 0$. + + #box-separator("Solution 2", color: orange.darken(20%)) + + The function $log$ is concave on $(0, infinity)$. Applying Jensen's inequality to $x$ and $y$ gives + #baf-equation[$ + log((x + y) / 2) >= (log x + log y) / 2 = log(sqrt(x y)). + $] + ] +] + +#slide(title: "Theorem, Text, and Lemma")[ + The next result is stated in the same theorem-style box used throughout the template. The surrounding prose is deliberately included to show how normal paragraphs sit before, between, and after formal statements. + + #theorem(name: "Compactness criterion")[ + Every sequence in a compact metric space has a convergent subsequence whose limit belongs to the same space. + ] + + This theorem is often the bridge between qualitative assumptions and quantitative estimates. The intermediate text lets the slide show how ordinary prose separates theorem-style boxes without requiring a two-column layout. + + #lemma(name: "Closed image of a convergent sequence")[ + If $x_n -> x$ and $F$ is closed, then every sequence contained in $F$ can only converge to a point of $F$. + ] + + Together, the theorem and lemma give a compact workflow: first extract convergence, then use closedness to keep the limiting object inside the admissible set. This final paragraph checks the lower spacing after the last formal box. +] + +// ============================================================ +// Thank you +// ============================================================ +#final-slide diff --git a/packages/preview/black-angular-frame/0.1.1/thumbnail.png b/packages/preview/black-angular-frame/0.1.1/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..34a5a21668620206d46a65460f1561aa6eff308b GIT binary patch literal 295530 zcmeFadt8*|-Zef%%1$e`S!tcD2pi#jbYQ)`ZN;T_lKP%y5|TkeQj{ zAu~n6YL~lwk*o|Sf$@wd9Lp4qk>NZh0y7LS3=GV>*7t^cDCya?pXdF&|2&`1@BQtk zQkc2#>$<+{yVm-yYsp_9pKwL5>w9T5nkyzg^3anS&1L&EnjZQ;^u)h;azWM<&7}+O znfTBHf7ANa?DF3<8!Wn&OH(`Sj#A>-Td91?ue!|DIK7d8267b8}C6 z|5i9HVNk!2$QN@X<4->AO>0OofA-Yo9j&!HjpxHpT`}6S>&#a(ughQQJA1sn_#=M$ zcKPP8#?M~7#oPDJYkS9h`_nB~UU?<|n!E0c+}wh>h12psnY4CCU0&;s^PhXKc=Wc= zh7SW@>fbZn@$O7}R@{+0v+qtT*wJ`uYRAtue6zKBOnlYl31{c_n>=l9OT#OVZy2*X z*HwI^xHxEXn|F4{ze#bOl^=ZGyEb~O@vRy8%j3-BTwj<>W_-WkdHf*pCk<%>Vs^~0 z-nw%+{`yDkIR}GV_fuhNz@#^-`8Kibl0%l?}s^h#@c&^*1Qr?9$>Hsut2rP zc7BwB183J-?vv_MJ37OxJH0pPfTKMBv+Z+!`u^saoi(HGdTz%q!zZbpgQ+jhoVhrw z`JJrijnCC*d{}*dOpfEvkt-H1^uH@I=aJ}THrtJXxo6-D`{zAU~UGJ44 z?PVdyrkWb3Iwu<%CwumUcrKYdtuglG+(Dy@wS&Fa@4b6AmYXAM`}XboCm0$g#5>9! z&MO^|H{Y<#m1J_2w^V1@(oF8O`x0sgViBA)Yz-K9?tw?jjG2Ye_`L^T-CnjxXG_q} z3~IM8cJfbpN`u>PoZMD8>=XMJi^sjoC2_Q(c4uAHPZ5Uuy?ur__-~)u{P?zQ+jh6N zhq)~AfeDtl0JC`jesBFd_=X;j*&B-YZ76u!I~J>-OWt(g?#nG$!kV1+YExL2=Wy0h zezp3w2KU4JuOlT8=ncP2ScEb#)__4>q)B z8+z|b%CjZS!Dg|K2zQR~oVB(M@)mBmFaE9a{M7iOS=rknvve`RjZXycKXvL_Yuj0C z!N!E*L-@tfIWrfAOjA8rde_f1hu`C>!!;_Kd;Z^+C}+L>K`Ppa;6@2an6n(Obh*58TE5{-ow zot683Qmt`uTU$zcQBqER(rkXk_;6Re2m9hqtnAd*9jP<6J!=nfJA%D&>Gn5=YV7qP z-ufKJ0Mk7YiQlho{w}!f39e-CfXLEoBIl1z{CIR(thXuFeI}#r@9m}^vHQNQ-dbLq zRQFPBY${G@Z|&SD*Ib=@twGn4XPf_;bKlUgl^I@l#?0+g98sl%!|Mm1!Pzh@uWZ<} zcdhlzkd&QJz9b^~rtqd2;Rg(h z`xzYlY?;=UO!pR3%P@UuKmC0C((G@WevEd{3vAZ3kF3pgMdC^2Ei+_hX5Jar@^Se3 zrTs$cudv#$@I>cWTXTa8qYUG$o&xJpW4sN==9c#Ol(M1vn^LS!&*`dTW9uqhSZg@P z()T!>SJv6D3_bruYT0Cc<>cnC!dpjdZONK@c5b0#RIGEZA$Z>5`8;C%bFm3;slD2H7@NdX7Setbc8KB7)84P9CDm-daN&ZzVRQJ#SJpSX62BUq zG$OL>)d8#i4_#(ToG~2JeR+Sc8)p?Qx zUfpNl*f-wgvo?IE?t5AM{1)cS>iesl_qDdRq8^$~P0HCfX?D%_!us)3r%ugjUTPY% z<>Wi~il!NN>6q=UkYa$?eUl-Vd-^axWaoyCb&c)7Zli z-i8P#S4(L2+a;&B&3GX_y(UB`mZAGTayw=)s{m_W?in9GnPqSTU zF=0!UUZeeZbmHLlrdaR$8Et1WD!p5LYkW~ubB}gB^mn+iE~uXh7^F5XwVX@!+_|?$ z%sgiQGNkoOLJ*Wd9A$ZnPrka}@XbX9ru68#5%LiB-fib08~WFWzWC~^z5MpCW@1Bl zu8_6rKd$1&z|ynDHD|SDeKQWGww+FOSWEXudG_n7v-Q#PfufohMX^w4a+!ZJIq~N7 zqK|{y{;@nb{Mb|J^;aL;I5yvZ(7=KAe1j+76FqCzEC)`K@A!OTo8O8pi7E#YXxq`= zQtifLf0=*$X&jLm)qTSqeSd0AH??dry#TCa;t7o17I)$FJ(_lVpmznfzO~Fav25Rx zzR&HLJ%3Ak^xSFr0s4}FIiBV?J*w8?{BgB$M{V(u&XG~87mvFzUHM{OXSmt4e^}0* zVfMH15i~?`HkL1!sXC=fd#jg)B^#I-VN3{gaa)*09Rfz z3-Uv&?#Ve@lsm{&Kg_g;FD>q*lPBSt$e-3|V^VcTXN-B{LVup0I{=9SzXoi|@Epp} z*juu^Ejjp0!?7$)2T={8=A87t7Tb0zwty?uxjm|N`-PesM_uE~u}v@M96geAd3f82 z@B$zst23ig&X%-n-GDa|5_Eg|rtk7!^W+%p5F*8u`?A`8%yJAh)DPtb>+|hTpQass z+WXQF2kQ_ID%3oa&1Pt~t^0IIK;pi^LA#4`&ldUFd7AQ3dhe=h&8s`Y$~@ZO932k~ z)1Le7*78rHT0S{*`gDoM?eqYnjq^U`JI7>8qD&Fgp4pn)G$pLWKWyIFv(xghmD9aT zvB5&xz7HvQZ4^sH?&>w_Ysq4Qu~N;E#IY95!tzSnp(%|t7huoYCSo{eLA)6*(uSt3|zW@0bWkl%!Gus z-oK>k8$LExt&d)@kBD{UIy}**z42H(IhVvX{5f_Xez&zA#o#NCp%KS%nbdESy|-ys zRNKiYGy&eIT)sRxB)oI>U*0Cn%*mzcA!M{Xr-ZNqKgTq&C+&BnT zF>gWToI{4UxT_yPVFXOULUxV}4F|^QTjx%%TQVdMaA6IK{T$Qc(25&#igxA>h)6E$ z>)saJdQbaUIZb6v@xwTJ<8$Hj8@^7^txXUdj4c+vyFA#dZ6Ay?J0Pmu+#{l;U)&^v4E0efDf6;e^{fC;Gi7|B>m) z>eJ`NTQu^>x8xk&qOlVucrKXR@9;je{h3c+DYJg`-k+kE^{cq33u}8d^Dig%0S(X8 z67>}~FSC9ik83mFoICZ&=$F>t68XX8l#`Py2@TySBoDU(Wv((zln8f>yoKHRa;r0WjKR>i$ zooB+9?O1)@RfW2Zg{3DWYfd&3AqeK)(%vWwZ~qIsx%c{ul%~$7Kg&nwI zOxyyTqqg)UGD!sVJJ4o5oB0foir+l$T^kq2TK!LJcc53$#l(6J#2zId#@31jqt?Z4 zDU?{jrLS{o4~$6PeI)O~k@`&mtaxFL-N@;*@^N(+a0Mkw-GQ;3tA;5z3J=C4&b4k8Y#-7t;r*}uOEF#K&NH) z-YZ_bg9$$ z#;1*r0|RdRjnVBMP0?M=hMbys?kKw#1jg4oFjbinYlmef_7a%n^lib52F) zUdw*vKJY#uD$zSQ*^>z0U>sLNykPF zC}E$avo8!j%5yv(ht}+q&Xygitz)iT+5-SF%3ND}SI9d7;my0{^y5-&Mui29_F!sS-yczc4KKp?dAvWOC5PhE^)V8Tv8Avk8kZF4h%f(|x-HL;nbSjFv)bUd;+K^|JwfLb9d?LS7#`1@%7h6@EKZ*=fYLcZ~NWI7vXj$sN&1(JDqAg!WCS~^Q zU1Tktr1z66Cg_J06%{4p4c>gDa+R&A7d`}7fYefupM!5=nbNW!mm}b#`#UL3P~kWT zqW1Q#SAhXf7$M(kT^G}vPAB*M+9c!J^0x-WJU=Rpe2z#tcxOeZ5zfI&$SK+Sq-rl^ z745Sd>Q6HmxBEeblJ)@>(mJllw!dt!r$ucFH%z>=uEbu~K z6!>36^^C-J(Hhq#-8X9V==*RkbLo=1V;5p1xceC&tBrw}mQ!1ucNet`e6%t!Ts)pZ z$%L1X@lt?mq~n^Xm0TrLhE+GN-;Cqa1E6)kLN9t}W&pN6QaCrcrci$;{$0)u!FIpk zT~r4mJo_TRbBE4v&E| zIp2W6hfwnKquA39^f<7HY`;dT>URTj`(#`7W2FG?4QjeOvh3!_1$cOR)as2p>+%N7 zLqT<3kA2M*`NF8QdmigcKox;qBRe#`2wPp69^!05(c+RTis$iofc6L#P-z%Y2Lg*& z-9Auw-PAH+Q^<%a zY>F_@V1q)k&%QChidHn=^yk|a@hAf%AVB^CjZ<&PoaJNc$CJ=INIt)w_>u5Xkhe{HupxWdr*4AKZiOzq30e5EMrGTL@!JR|I}%r&4wSrbrN z^~?6|eX!k>n4OR`ItcK~UJhPH4(T2`La0b|pX&%?D_FG%1Bk9PV<3~^s59mFO}Aef zxq>TSY9Y^Wz*xL}!8@#==!2an<_^ko-k-I1VNk;j_yh&exUeknQ$0OM(&%C~M`To? zv=$IcHA515DX3vnfP++PWYY~!L85AUX+%Y_*JK; zFg`VB|5PdNMD&`RGikZkNte)tF@LgG7FxbT+-X~lRo8=JV7X%Yr9p`V? zbch^ReR6eJY2UE9ZLFXupYmYAs+DBC=GrJfdou!{8h+=|ppMec`)z#k>O3VyawpH4f_@q>qHc*xe z_S8m&qJFHn;xR3H|c<{B28}f4JSBSWTYTqTc;>WDF^W$hb;y%D@R! z+wh?H6lTm=$ObdGbz3m|#L(l5_2(APDcg4$lr#MzY1trwe7yYt0CmJ|i-4Klk9A*r z*R*f6IY6 zmWS4_Os(K=&|#O)g6w++Z>HH%jtw<%o>V8wcUq-`8j!Plz#sc;2sfldK_>ACH2?R^ zXFPx_Lm~_GYqBh1JsZ-K5iaI7W^Ol z)A(m>X5%q8z zl^&df;i%(A=drQ(p}9w`mKN{SVZlml7Ef0Rae84!@TA)oO&NCL-tVUPmr!4)NkyYQ zTbME}vhwN3ML3qZ@}rkgr3TskMRs;R1*_Sh1?oTgz-&uym|(bf-67JD@uhou@F?XG z`xVLn;axmChpfgoP$C7034cWnE%I*)6GSLU@P>Xl=hDoPkW9$vpSD;oEn%P4ygJ<7 zH|U&?BrfZUgZ`yY4==!;bq%*ftR!twJE z<`N|S?bsIEo<*lCv@g!gz}K-KihtTzyafGge7i?SEC!sBZJE>it26KNXH*d!X*c=s z`rdHQgPO?3r=!-i;-#frvv~1hS?{x~O|x$MWH$W?5SXxt*;o5D1NJ=)`n>(!R^cwl z;obTP38p_sUonpq41uvmF)omQrox}@sTdmHT?>>S*0fFjDClj&UUQqp>=>Wb@MzXP z^2c9I$rRL!WlgezRuwvZin3D%z_DYg6LJrKFJ3;5aJ$A_Fz%tk)yQ*XXKJZ?ATaTd zb&jCA-K#S^FG}Z2+puU+ixouJMSJW@vdh;Og~BGQ1^oRxqO0_onJ z8M-haadSfAQ1)NMCupl4cxbk>U^JHu_c4V`J}R^cQBETG9PSW0K#q`et`Fe?(Yg{0 z31|b^9@vg;oDmvp|1Y6j$4 z>{Wn3b|UiO*?aI|^K?XSW{g6=Pul@Ob_eu-e*G;m#>#6!X={Hxk$!-$@wcP0;La)UNa*aT@Stetn8344ypCS9WkRY`+1I)F(LdO~|=kn+;c!7{lr-CJKzCCR?c&l(!}C{FX1L zWYS{yN@g4=nmIUx={w@K;wiB8+g>HpiYupS=>n6L+MFMrZhHeitJpctx*8r8)=()H{X2I{IArOTdDYdzdC&%?Mv)B@X+|!(Rt$_CYqyF2fB)4`C`p<)727mj;lw<buFP_SbU903z$SH)IW5;+-4zE3_{%8d-1K+{NC%(s`# z6J?*IwXTcu2dug}yFoP8PUY_~oHtb7{cg_e6B1Kuva5LFYihCZAiZzm*H0?lrDh?wECE8<*1~Wkh`_ zyUqT^pt{mN{&+C0XC09E8@K37WLyFgY5kE#0`G-3!{MuGkfb+`1&%LD3f!}IT$}vE zgp{i@N9N&-*a+9m95j^0=#|#N;g$z_HI2lYVVU|Bd9;G7xdN=8+HkQTN)HcG0$^tA z&f5F2lfO~SSrmZ+5)Z9So>&Y*b>KWM^MQi~#i0UiHMJ*dq}3ClZoVpE+KA5qhH^*( zx>`Yq+>dT8av7C{kKg+f1&V)U`iWIjnq8suq~4+k&`klQ5iS5a^gw-Z^=WiCqpS*RB?ZS(2|p+#w&=~QQDJG z7S>syBX=J{Nq?FP610mG$gJ|%1%m<;0@uMOSF=msAa!Uy|E_4P1XogaNfEEObeFhY z;92W4PxRo&fO}!wBt=LN0<_3>17DWnrtbVx8HfFI^OJG{0uzrfY-Ud_$19JQxPd%^ zv4B8_iD1tyY2$7r3O+?<^1;kCd@0EQxxwCRx#o0>6SM(SqIrbRG(Jc0Osg$gBOB1Y z7M)1It_c9`!_x}ReY^ba=W`?dXKS?wi5TXf;Ry5W4c`!NJLaGX5L6x8Q1*2W9?W8c z(sZ*a1HZ`!8q(dJUGZ-!`>Ox;ZV7G`Jk}}CM55h@O+vm zuh9NR0&2RC2e$nc5Nfmj{AO*-iHu`yL7tKTCtY{2kMbLTiBjGsT&$=lcKZs5iBV~btgnpY24_WfpJ;e(_Evrb_wtz%|Qu`GmX}*9$i`)SzAe(kjexrtr2{9 z`50P?Z(I`Cc0BOro21SWrCP8}ygxOjlsn#t<)w=WZk``}5NM+L z)7X|<6jhda#fj-(7y4Xx8~$mZam!uf~Uh|!?#N^1BxxPV@6=!7t0S$Ba;sUsz#g=jNZ zJOuK}VJDHjOc242k>ANuCpC$ZJy`sOhg2mKmg^j+h;qkhC^el^HJ>GZlss}^hy%}aV6%b;V zZ(>_V5d|iZR*>^wj3!V&bN=P?Ub3FXr6vs|Pxsu=ZX4(t3wAKL{>EUE_>`Er ze)ZC(k?XLloRTZ)r?vW5hz2(JSd18-@s520WOPqYR}$GNu4}5%IEA@ljD*)Bz|W5x zc%QC*h}gEF6-b#UkJ~287pvzRo?IkQzdoheQThHGtv zqmXo;d!u~^FHcAX#N4c`RkF+Cw*yTz&NUY24$s^pKy_51NcZ{Ca>*BUjBo%P=`-m? zoHXHo7Y{mlDgW_T$+3wxU6@xnLRvS5>Q;%19xRsP=~C(dZPdaz5fr)ESEm<=fs|MT zreu#FW-v_q{d0E@$nlfMt*-ab(s=EQQ!3M1W*Qi7nb7?nW*VGEm%~C}+A& zf{Z?iJpYNvzT(V#WxeKuf|tc*t7_3~wEw8UvY$-=_|40!le$G%t4II7mSYqmONtX4 zRtA2K830tKwJB%TR*EN#h!Gzl>{lAJCV5I^eH5=QeVue8J8{q#(^B*x2wfQf(&IS` zSp_kKK70X7cKaXaf#4PgBNp!*IvDXT)&(Tud4=b8tRjdFL$y+_ln}=#Uu& z%)(qIQlf&|D1TBYgxWyo6(2jgOh^;Y51dep!oETZoScQqw`X@u2jrR84!DxdF8YdQ zoB9rY+&&$&0Ejo1H#<2f95BM9@64;-c~u_^#0i;Il9J&AhcAHD=RsoA!{$qb&tVl= z6Wgc6nM81X8fCMYYl5J4>3K2c?;V}|Ai)C%V?@z^@fKnEKuH}oos!lT;OkSu4F$vd zS~G%EA(glyT5~CALemYcBB)Rb>n|h0ipnSL$h?(Skmkda8OPy}Jdp zuBa>;X@V)y0^=!EfPTTE0?^{nTDg3D?C@)(0S`Fenoh0E22e~V@Jq7vb?eraQjL{i z6~2S^@c&v1gS}8h1&T?Qy15XMw6tnceB?qvTcYRela7{j^3L!<=@)=3=s04yc|>a@ z7ZP+XrP!9Tqx7u-LT3qS);b8ie>VPlDI0sSi?S5fCUAO-rGlbA$aFdu_#U`s;MVWo zll{RLfvtDrU&ve#p-r1u*f_8Af1Vj8<8EA%onue4fwUde`|u#?6EC=5A?q3R^Y>w%ov8Q(!$N3ul`+6)2xwv;cAArw~!H+v#)> z&lie^f0A!OCP0iSIQz%&$N+X3x#eW9c|K7?wW$UqvJa#y!y)D1Se@reR}uV6gE03< zn%BoT7!HXUgNnbHF$CSm;4r5RSB4tMWGgzOa6!3{+>KhtO|p_{;c635C1)_Sc5<^X z!ZXrh=ooAFUPU61J|r`c6diQUg^6T!g*1?X8G4iMRL>v1t5PKwUf!d?kc66SKj`2RjFNm49IR%Tu3144)RdP7d0UeO& zgEVy2@E|e%?#@i>DGxRaIp@JN6^>aD%%RzVtzQI|qj42IiahFk=yt^m`8w-7$LeGN z(wG8o+YMYabVN~l*8t8P@@uu73=O(ESh^zjY&>m>oC z4|SUeH3OUH1(uYQ%%e0~+I{CGhKkI>#5)x((!DyobbdE|Lt8OMWLHuT^uRiLJsg9E zJ@HAZ=~pElTuI{pqifCR;#&o(fJhP60_CIDMPrV5K4gkPq`e|Czua^78hI}ai78;qOs)?aE>!?XJc*+G#qK^8l*attXYwVaYyGDf^Wkcy;13BGjw_AM_BpV-=_MmgpC(w7L?_^vx$|MS>pgDS0Pf;y2o1_VCrNn2kkmO7C(soD- z&XO!cpXM6hr-D+VaP{-Wku*8+lgVYO`r088QOpyJ#%W^=N8T`k+EYz&<236U_6i>8 z<5$VMG9CEo#AY}6`tg)NvQvt(r>6zn{)rv!)$Z5eTO$Gc+_$e^)`9!M@AI&9&kt_) zOE1Fg#Eh`287ua6C{BKmcPn^`-G>gChZaZOfQ5LH&%nDTlLJR#{T>c?2coEdwEX~v zfVG?6hUId=JQ)X~Ssc#$0CC0a#O`;f#~Au7vXVp}VqL&l5TCRqJ8_s)&5DhB$otnjHo!yZMaAHb1EnEGuZ<^9ERi;v# z{2@mAd0XiQa?+@@VQj+k)?68Wqw*jvCRcT6wr}8o_=kwoUxs@9P~yc{C36rl7}H>< zn;~P?7#HKQLxx~M&grGO{Rxc<=!6le-_#8p!gL?Gbn+=M`g5|6v!;SJsU%qHM7!Ep zs2haxip5C_)qJ8gvM>~09n{J#b?WJkJM1FPbEHi|EjX2ic*f_C3T)uX656yaRY)jdKl~?_$z(e;w(7jv>K$NrHIxKIP4>;b8Cf|@ zr{rV7+M$ugf(i(@am@`&s0Aj>o;`0?ou+=CBhI7*~ux5(rm z$SP^Vs5`XIdhIpNloQ&;C#krqd~DuAc87|GmWb^b{{&B9j3=4R(z~$`W2nW`ONPAt zX`2$-Qrao8Zb>!sZV_t;1%E-2iZM=_dXfx4B<{WfPHas?LbSE9+2ROj4=^w-9|j+0 zkOB^8?htK^a5?NKJ9|Bion=r?Q!`jP$$`Z#U?|9!~sl&2bY z(H4{Eep%@tz>$-!3us`aqwNwPvG;D;9)M0bl!DGr&JYqWc*5`(?I#`9 z`GoBj#Rot)F`>U3r{;rQLBFhCiUH`cSS^m3PUR;b&Hn;gIEhP6?qr@iJT&F|q1&cp z%6M9>i*{ClV+8w$NXFG$6tftdhZS9F1W9@$TfxrZZ+}3a+(A;|$q3SnJI5qgn9dRr zJs_iMH_`u)LsNwsPEqUn-99;nMv$DSimDc6o|-f{Qm4|2hyntSLLP>IR&&ePnow=# zvt)3dw`|X%-Wta2fSrM?FB9@O_%PC`PW+0&oy*5kN0x}TI@$w|P$n6&B%1_{L_Vs_8+La2skDvr%&9nABrSJk`R**=#&kcd&0jp$Q^SprM(I|`4i2fol!=Q%3?-e*rELJ_*kT$2f4qg}FAdzmk2po@Xxsqn_9fRH`@_=B)Xh$mXQ6HY`~ z>Of7O)JaFk`B7r&3S$b*l$5>EdRq6>{^Va^i?&3`gZ>^zYf>VWbs_<^>$Ph|}3FoSit-cosBsEWg7__j`bQ$k8q(+^7GeB9b z+@}~Y{gq$Yyf;_`KyIRXPjV-vz`{bRM&m0Y{|O@RL@;0tZPX&*@0LbG2sx5TXbn3i zvX=>(=NaTiIZTl}4Vz77?kT4!VG1}pdzSc&le8W4z%O;Xe=)7B5eK(mTp5!^yMDXb zJQhYQI|p45+FR9Fg!j zsC<`5GD^;&w4BQndmS8{j*qk|3xYG+B+ZK!Ax#rx`amVG%r$&)q-naG0+C*$hkj|t+Las1~t7E*1a;zSY+qw_db?pN_BuAHsSUXIoR0p9Xsfo=qJ_$U>Od*s-*5)AJ z!wzz+60V_w-i|3M+4hV@5_x@r4B#qlMCXKf=y8nNHG@x{%^J)11q0vYamqL4AQ+n} z8$VRYLCP9R(vvjF9O8^mQkQ3E9nq9ftz?{ouOH43eVx@n0jZ*wWhWoWuHa0JyVEmo z_aFRVCYHrgg7*Q#;4=c z@YE7?jL z=qwEv)+@c|Y{JUW&{h&2>K+Jdd@6j+(F*!$6wyf@8e5<$j#UOWKrm~ODS3E6fMt>W z2mD1?C8UrT9q~uj_j?&*G>p?U8YgC6Gf%os<~5Qs5T8(+*n32NXV0Px*JUW192BRL z{{cQPNTtgy@#b;jm^Ifhs!xKq%9oE-(0Bq;v(RURy~{>N-m%_ya;w@C(n~yIzGO*0 zDrpWP*VAmbm;u5a!Y|d^CXyJ8THJ zL~sVe0;(W=2&IG1OoOQiy3v%|(Xi_=<0A2eq5NeO=_K(4jg|xf`psiYRYC6~+`#E* z)B4HKHm4k?BhamQIfJ{zbuWBI?>X4RW0qrDA4Hi};4@^c)e3y}DYk0Lho#Pkd49{V zNF##f$Za_&$%XnXd?dn|H>!=vXnG~%z`c**Qzu{MN`hjLAV(}T&{n2^dBlZFsjx61 zr5_z}8X4zd7=ipy58CHjLXIYf%|zNGx|46W`j^P`Bl&r?#R)wwTrL5s=cw6pIaZCq z9G^s;nZrhQy7uIWer{`w3wFibacyrg=23z0Kx?5r$I3asVzBz}3(`~IjS4K}Z}a8r zHc_KT^Y$T?TP~K0F3U*;0_Gau%n|u(#l)gA4&?Wpq|-vP@uje_!``71jpwu0#&0T< z|FnVQb&a6h#@?Cx(`hq1Ijuu)7QO1oA>-`(m%dpVD#^<1`_q|g7-<3P>uaO@B}agm z-OTY%JBe{iEWBb+8@{79K*G{e$Ej-!o7EkZwuM{0%SnVT(o8Z-Ukr4T&bUMjGkN~N z=m3qxNQvi5CI=|Jz~jzAdU=)H+cMP|*uYd-<&@|Q6LVOKVP@G#8#pOb7C3HIn#0NV z5y+QGBhDT|-Z>pSNV-%FL^AzFj;CXIU+@l*oXm%6$SNNrf}`M`DjGvLr_Bx>J9Z`J z2cve+F*Cd}9og!1! zZYdzbjCTyb(oVpLEX4tI-k5vjqP(L8KTLskLa81$XbrhI-=OQS;d`GC3h!ODDm<5{x3mtNUmP5Ci)Ysfkx}){Ed1A5+ruSa6V} zw19;0KdbN0LoIn9dn0m%*tSR_NI0~hI#)Ltf>ht2XhT@Rn6e^4d>qtxt4yVnWi3@~ zg91UhOeJhI@O7ru5%{T27grL~GX$qg4jI-<=_2^#VOYn+3Y=RSInBAvWxPZ{OY262 z`iSqi^IgI;Ac=fv(CpILQVuiMh<}t+7Y71m_*YT5I3-6#x9bxDljVtKj2#~{UX)^3 z!ANTkO`V+Q$Ja3Ir`mFftO}X6BFV&bBABsE`A`FT=+;cuT_c9^p<#|C9<1guor4xY zCD@Gi-X63?Bh5A4>62hq=we5|H?7dm4jlK6=qdauid9_Z*Kk@_dEoK5ja}#A-t|aO zO+->kPA^~NX zyC|AS9V`OGM}an#yLI$=$~i7=FWsaXVdI%K!Zt-1I*-^0dAJm)^V=E=1z-GGB_jY` z?2-7if|rFp!ZeBu^SIAI^y1mcL_K<9e106e+Am~Bw0<2iW8j25n4RCVHAyN4+cw|e zsZ73!mBo0L8Z`5iT}hOC#G5?5zfd-W>Fg^(bv^ttNR(fCag0j(7xVF8;ftgjRddq< z>fL@NoZ>q8m)dT2OuR`5AnrwRPyjR{@s9(ntaPdeaFI^!|LIf_=MZ@egaJpsOQXZ5 z+Yd;WzH?{qUCTxnA8dtIZYST&r(Nzw76NJE7dnQvF&=S!=XeCkS#}7oIa%6~FtGGI zIdSRyATx>ozIQz#Dl@Y>VfrN{-J%*s(;=BAOX*ZukVB7)jgOA2POUE>k!g*B4de?- z#!DdlD_Y=?$+T3n*8)OwX$0l+2_Y9kmJ5bt{sTr{C?xVGZX?1DWQbd)sTU;E8)wGw zJBBy@{Ro6cNlAVbUR)0#a2U*`roGO1=DAaC@$nxbLD6A?^JWTs7&f^m2ezgi$e31`tM5TE7lv(Q8HE-!J%@!NJAX)CvYVi zmf3!mZt9wDI4oi!SC9nx^u0YCP=usZJ{*pdZ8yMRn`-2!p-El(rgyGMuam0OW--frMsxk(}%-? z3CBm?LfacmzvgMnF9CCAa$sNsA1_VyofTJ8!a*2Xzt!;+%rS%u#1cb<>Ph#mQYYNH zcm)Zy*lo!z2~jUAzFJK8(8w8(*p2fhh8aX?@@(8BEBCc=-h+ZSj{Wup{q~D3?J79b z)b#AjcA;ezS&U|Im7k@iprrqGIw>Nr_BqjnIv{2EaAS8`m(&kw*~qUqbFQ-MnSvH^ zKf4RNMTkNv*@Bum*x42dFtbqz9NKl7smCepx1_fJ;<#LYOJ2pKyf<5sSeeqFV$s8n zP8i>_#Anq20knd>ZiSlxB1kvNI>I7w(*m1>a{Z^oJsqq{MApUg;c=!Z!-V5QF;qe@ z@rV6+Sp^4q>dETyuiLoNcUXOO5izLONga$&0t!-6L@BM8@$>}6h{0rW-^s8Gk+r#o zrcsiox+ged$K+hG^2;lvsVMMuoJNxG#xogy3Gc%`(5=$E-c@jqOECe>wF-t~r&AC# z$+y4;(upE%Hhc0&0#i6-BV$ePrdzzJgkiM7(_|WPz+Z%{F}v+%W$B1 zYiYkFcxXoJ{FHnwB}Yn`LT5~(bc^Ge)uG%mA*cg%-Zkb~2x>c!Ur-Z4P@=L|9s`ih0r>4X(}CHYlm zh~V)mT(EU_SzsQG^U-X2*60F{38Sch0v*q10#+c+wA z`ONwfN61N2tsWhNR1gjl1|Sy)T1A|)NJlTD>HmfelFR&dg}W*H>iQhb~2A1o?_-%U=9S^0^(5+7F&nQOjF)!$1R+AP*Y zk}Dcjl0{g4hgcTS%>@^5t8oy8Znck^s7&m#^8{5g~|LH1FWWo6u?_xb;{$t4J7-fYE zG3+gL;;>E5cbt$K?$)j`4_&s@ucd zIUlK`5ReS;AZ|TGM?f2*ql(`YO_GF$%vq!tF%%N;)&MC+d}g%eBEIy{Uo^tvFbzf3 zLrf zykbv51_t!QN8y_6&MlL31BZHA{*}tiT4p130iR;Upk+Ik))EQ(6X$4q!)B*Pv|S2| zqO-%gPqu(x&CH24I^*gWBp=?K+-p@cP~;24SGVR${{+>h*REH$BM-fBF4;j2CW>u- zz8puwHZnQP%~_}PBJgM^$#wbA#l(zt7~C|bCf8lIOPX{dB3X1C+IA(WJcLvReh5&C zfN&e6uF8)EOdsI0(D0foYTlvQ44S~UcA@UpO5~DulTUBv0VHxhDOKJ!K!Q{Z@teB)&8u(pqG3rMDg6r_E*-V0 z*;?0f7iH7*BAye-Zlp%KrwxKy@lr^COGH3LtCn+jb>sC#8b#P@z|9e2iesNeZBffv zK>Ad9E=u$pe4xjXm&E}^EeozV1jLs7KRh!W_&Pg&PD_D1`)&%te2`=8w~Nr+$(kE_ z{J#awIW@yMC#EQgnrM0v*FRZcnW7Pla}dHOfPH#%mV})s3Ct}fNvf3CXT>#(sMyLV z9A+I+coZ~c)&l{(C+_vL|7*gycVzxehMaI(-yC#~T#ZsmxHMQvUZ0lF32^E?Y!2+> zkqRHYoBVc%E6;2e-IU--rWq*2|F=vxkt_1*I`;{)E;+P>_~g}8(0k?(ZMT^me$6mt<3DUDrPZcJuM2hOZfvzdU6@!~XyAau-6D{YOK zUP02A5EJUAfBMP`ypQ4Hz@^SfU)Y1_k=s2=BkxG0*XDgg>nZA6>d5-*=y`{1(7v2b z$4a*hgLD2IUixM_<2629CY>;En~J0Qjky=tP;x0A_zda_?PmlIf2*+s0})I4}Dm5;eZ5;~+OlrzCCxkNoN9p=8yw>wZ8qr=8BfK3CpZnl8O?RXWO9g#p_Kqv zvBP&JB>~o355y-iB|?yds9UVvI8tflllyl%BPK($FWwSMhA4JNy2qmGFUzoBhHRG( zW2~eaFd4RhOad0ar1yXM>>Xk@j=Y-r!1AAwaUv7FliDH&nH>RF{OVXR3erPrjxZKr6B+jE0R$ZwlJoS(U3PzrJ zmZDi91uU--UjENjXEGar zM?^KIam9jzbzeRPK75Xj6SXo~#F)#FyHs9rqPo2-g0eZ8s9`^o?> zPDbD*4yae-`Wm~>ty!a*ym==69)~>rv_JD=)_Ww1lQU+A)cLb63VLTP{!Lz4^b^gewO9^BWk~=j-$_ zFTdFxF9Va5lT~+oJXFZmdm+Y?G~8k3FL#O*!aFA(PI{Al@nO!3ZcU67egVxQe+qMqA9nEm75Sq= zl@h@O{R4zB6G|w$(BK8H0_1Ft!tzoT=<0as${oS%g=7%wH@j}aDKs60FNyt@w~r6Y zk=c>=^9{+REauoD5fO&)NY-c{78F{ z*itlFezZvH3hH&N5CVUG*WYEkxZ>)0(}pjS%2e3ti1!ie+(n#^Yd*Vk#u$6psVVQS9qsmuWY(U_ACATxBV_9C)j4kdngwfH@Myoc@~bT=7Z^MA=)G zh>)gTl7V9Ck_+G3QGJeT6Z?=Tq&`?Jwq(m#5Yg84w9ixKpv4<`1G9eG)rcZkPdz(F$N0ZWkpJn>xHlkf1d{@n+`uI1 ze`LnVoR=b#BCtymawQ|uhLJJcSxT-3muQFYC4c3wIBvur4~EaIjF7^mRQwL}<4d^u z1bizuB1r}b|BU1#M6Qs|{^!Xy{Z7gSSa{*@(;q5`#v6=z0c145q2NP33*>e18Tu|2 z56xDy7!{%z>fW_-nGk14D@iU;pFO(tyeJk-T9bEGF*JM~+9ZZ}u)pdYz|+71qvX_x zFA5}Ih}q1q1Z{`31ExaMS;Fd_c}vN0*kJi=dW8ddXbfPf=QR`nFk4j%r8|`g!cy`T zJMp%Hwu`1pJ-!PSkh{?2Y7mhRGI`1L~ z&E`bA^!Re|5_3lXhf(w#pVg4d)J(5?@&n!dAu`^$WC0%6^xh}OixzOIN9M=)I5*O@zmzGQ+b60N3U?;ccdTE zO(d0sG~y0x=LHL$Ho)|v2`N8J*oNV6b`?zEKJQIuh%-CH=Q}g77ReN;5MBg#WUwhH zc_1YZ7jCV~v2v^_Y-Q zM&b}2SX&vnod5h1?hbMJCMiJ{A0)a(YK0mQD4Z@Vq%UElpWYGi@BF_))ROW}jzXY0 z%7&*`$UBrRT)GTbDXTb_MpsdR)*T@Ql(bClY&$Cj&C{iB2_zIdKihgGUxG-7at|m6 zlWjgjvXND(i(wxkvMcXo)`N$jqoZ3Ue34vQ$I~gk6>;y%0_I+?;?eHI*S03+(kb_c z^9}_$)Of{=Sn?TebzI12b`Uar#aeJAz6g96&pSwp0^T7}aUJmX4oNL%RYU*{ZB|rv z-LRAS!>goU8j!efwANqVoTML8JkiFGP$mq@hN*^Sk@sClzLywQ=ta8^mzOK^Fa%Ma z=Wq#(SW01xAn%B~V(66w4Vxt2mmZ7Ia1qnEk;QO`bPqo`={qiSP>kbDKC%GrF)Y!S z4Z~AhQc^h>Ld5u*Q}T9siveQ{yUDtIz;_)0BaAre(-G(@xw~`<*k9dT42IR-KnfKY(P7Vq$N6CU!r6j_5F5 z@{Uz*BY+pok@Yb)rkIB&?-|Nyau|B@FxGpCR=v$tCKq{0=zL~~i!|jU5paz_?m%Ul zhuRY-xh%1m-r}BzLNEDRxQsSNgcPxeV-9hpoD#JD)#Z1+WS~o=D7SV2*#+bwFfoRL z#qwDaXGwq_zj_}{De<_hkJEFQ-uFiRG8Lu++^|(vM|;P2lUuIwdB?@fMf0+`Mq-c1 zNO$qH(=tL)+6~e-MIvJQ?N`N3xjRlVlzkYOax1V{-C^PZQO<2myo^k;$^IuW`D_zp zm)X43uc#v*mY0i(cxtNPWGAdgop;uSW_JevXiCUAi|;1#Z@%d}Ud%xpQ00ceN_Ni1 zd1Wz2;|2o_mGFZSG^KiIx-+i_l=vnKIblPA0r&F3IXfcI(7ab28lBw{kButnRt;>p zPaQ`7pLo8D=*}ZZ(3BruWx$CC$-^dzhWW87@8(YHLV0o^(tX)AK9HgoB`>FDU&5{p@sr(>%fo2!c&7@p)+GE7b!IlWK zY&)#5$V)xpy%&-}#k*@-RW?I_H52(jQW>qhE{(H|-@C@i#68k(TuCx}%p6luk2wQc z7_E72^*S_zBvR#kQdM!J%)xD{BbHE`(a__;1jKpj6 zsO-svm2zp?xrJeG`|97tBznBuHoy|^I=OUfzOBVbl=F7D*<|NEc z=Nh==i)Zi9vT1=?l7c)R5--i`w1!9zL_DeY^_yf11O)`*Zmot#g}P9se*1X!W)O*J zVO{r3@(snv_NTWT{u`P-rJ;c#_Q0rhhs3=|P}*<5IvMUmXixZVH5BZv462F`R&pT3 zyewCVorS|o2CATt$@~HsAxj-i*1QdBeC8U-^5~Mu&&XGq0aC0uzjla1Bx90G5MB=A zF@XkwL&EdL4l`c38)>9euU?n@eHqi`d8vzGozn5F&nq&&7^twy8gew;0BqeTW4{7E-3J9YRFeo=kcW0BAQ9+zK z!vwQZ0QxdJd+{s{Zhr|!8%aakN7eWH^l?2=3=K%9fzn0MhemZpt=xAkvoUH&jWZq> zbJx>B#j{)>0wBK(w9@b+m#`938^zAPG+WzSvN1XOQp%o7yGbT&IrAywh;S2&UcxRd zu^=FMSs20WAY?uJ3_Pv_vGs(2^jA9SQQ3Lwvex3OD&xIjuxHxy^+Co<5(BlNT z67Q5ht~O5YAfZX;tW2*W>Z?bQOpf!0z=QsB0?sO~n#H_HRl%)w$>Zf+l(tDp_*m^mkrD=HqPg_}nhmBbb1 z`_ghsh;4BBQ(hC9pvnsL}y>H_C~J8AaZHswd+M zfT0cG&%{X3%dAHNm^fh09pGRu8hTtrVDCcxpmsZxk>TrwLN-U4qD%E z!XfnuX?zX8dSVBij7h0I9%P72?w;#Y4Yb#FWCG$KMtKj3aWPzUnHM{}leAWZG z@prthgpnJ-n)CQ+6hV~Z72E(qfPI7a)j7T*(}7IL>CP798up1OE}ZmWVPPW%AikPl zy4wy&jhK{F8MNYva+FJGc$^%=sl=E&Q78c4Nw_l{K^h6M3o)v_a0;eCFCOMKGMc@U zgd`yaz%7#yGL23tN}c9cVto)dau{@`H06l(p|wDss?hmLtPg!j$^|E6NEnNu@tyJX zsR-*5*dVc6NjtO4<^CmjDGr$`M3+Jf8kbHh8uQR_-=CEuTpY*;OYjF=Z!1~TWbs4Z z+5duwE4b8NGTMmRkhtR-i)2kYI5UN%cR2y$KB*HK^$ z@+C~j4a3Z{3p&SZnHU^~sb`rR{x2qeWrT;~^NAw)+DEXlu3GY#*vBgbWhk~YBKLX&$2yss~8$JGa%17Y?CGaooh ze)82G;~$djUFIps^JG~e!NCjU<)&5j_EcX^e;56OD3G3-uR8B@MTbyZICqe2X1M?k zC+G*<29~;Cv(qjgjHe!TI6g^Yzfc|Og;zuHPi0iOIN12oY0@U>{xUMlXl1+-vR|KP zTBUPj)L#FKviN&QFZk$fLb}tOBCcy}I_MsdI~TlaDhrA^Ys=t`kBE4-21l1jCi4m=I|_2!=Bt>K@bQ)~u~ zF(j$3R<3#G*OrxwX$jFR=(d*H!VfO;H}Qt;bMM^a2>N_+YfH#>M1=8sx*dF!*5yC2GtDtc zq9?;YS7~o3LUX_#Q5tXV2JUe#CMIO!HR}$HNZ*aNf;X>!bLcN@|D|uEu-1KxM%9YI zA77dmFvHvV&JgI(X1 zxdaHUTIWv7X9hwX@D?w(A^bz#q$0vQpb)_-;EUAZ{IG@x!{1|%&3Skxd051;!|Ppe z7ObMw;B}DzMPiZf7Hsb-LR=f~#?dIjgi6$CXS*h@PMI8~GJ?>UI9vlrQStcPL8^F` zUL-Li%pk`DX6fQxlyL4dytC&nRxF1cd5Y(oGHz%%;*P0B$eF|f?n+`tg#l9jJX*>ua3nfue8=$l&-+!W zSu<}8MOTRl$KMu2o#uvtG_X^z*j?N#YWGV)^|Pg4xAw5 zZY85fgA6Pgx+K5D&Vh#~$ZXb2`ZqPAS2H2sy9(||Mxbs3T*a2AbB9;t!au|5?wJ@N zV?`9*fVBIezo@7fyRbt9p^5Ti)>2s)#xAv~tPO7I~$ zpK%c6Z(#NycxDwB#`i+L{@q^>82vXED(xo1&jj4a3}-<+FG93!OjxxJ+3$g+Os+$W zmb_pBwz_U6mW^wklqn=e#WJEDiH;F3&tXz7Yaln3aGt9(dIp?-^fLApb6O7@tg;6G~|o5jbH0mHKrbN zU9XIYf~x18Wk{!BYVD3Hm^Dx-y<_l~_qM4sE zA&EiX`^@ISL5@G5eJXwnLomGk5IPt?IKMnxL!pi(5f%LEklWnrvkq~J?)xd_$HvxG z;9awwp_|o10#meEp0f3d&r7{ofi4_`^uFe#CsD&oh7)va6H0NEFiL?FP1rn?;FxTs z5t!YXr=$$fgRy>aNE~ig#Tjq}QI}|C5dqzEp2Xyc$$b-FwDON6iBq6d< z9|LzU(;TQ#oVZt+_HX+s!WPAQgQdnDeG%>tlHL#zG%~;|-px(KcsD}$!r6Z;Bivjb zD^ zC<4AQ%Qeg-LafHI=U~?*SfKlkO%yEfk_z*7iEuEyBNC(ESskO_coR2_z_lpNWFd zsR?4;wC4WS<}k0$&3jD#FMDquA7y=ZjSmKl7Bxkwu_{4DLF*DKvZx`!Rvui-gByK7 zlj24dWsAxTS%#p9nraZVh)6=QE|nKkYcWI;h8-f{pcH~8Bq0eI79kr+W|GO=?>XmA zW+pJyAbo%D@AH26!`6jl?)l!=_gc<%u53>*2PYF`-v{}qI$a++8jVstYpzW}#34w(x%4sd6>W)$pvyl>OW z8EB&(NfIO)&gyrn0L%H<~VM=8?=Vj}DQU~s0>{6jzA;TLNPg6<@?08^65`PA2 z6ofSUr=>}E1IESrj0_~_VSjJbqC^uciG?ngo|_AX&GrF}g~|cRTtvYzGlF~Wd={7~v{S`;VsZ_A0&-_K_DfkP zc6))>Fd`6=ym6ieHyHUK&e%qJJ#U5@utc_2l!`LLK|+fuLIm#eic(6~{yNJEMlpqsQZYDKx;c zL0ixh&B0~O8p0h*(!x4XO16YD6`k8U9Gn=JXfA^We@U9$2L%@dyOKzsi-rlX=LJZd zwYeL)RAb|yxo%EW3lis+lNwbjgj-X2skJ49b9Ivmf3x3DVtm_3G8x6{3afYHp}QB{ zN_yUrXCJh57ECRVKn$%_nR;YAd0*R#dwPF@& zR&(D$yo4`{&*PT4W|i3tGy)Q8U`|R{CkZXXYxTuQNx}Rms(6aGnO)=8QdC>+1nUSE)Zo7BhyH zu*C^Hz5Y_RQL%%;II#dNB4A0w2bF1scFCJNL;!XTV)BuSuPr1K@LnuhiNnx_5V;r) zuiLv?B!JlpJsDAD2!YDUW*gE8$}D2?tCa(KA?7d%ct7Gw5~aA~45>rv zyKzLuuk@@GFjWYv>LLOupjmm(b{-~N$@I<5c@;ixW|2Gt=GY0Ii3mn60OdVDUVaAF zl;G9bokYXIDz%xi0`!e0+X5GPzRSg&?wd>UG3T_t&x%r92c%~XO*?5=QsV_&Fp0^~ zid2**(kzCC({Ij4KFelPaW!RwtQeIp5K){iuO-l;#P&(rAQb}gF_I8HxOj4yB*Vyf zKSBi@(&w6Gn*X-!5G5*{?uM1t_%RB`#(x8RhQxO|b~LTi^I zN~Jfuu0}%d0oUg-HFR7rKr&Oqvy?%*qdZj&7yvHMGq_;gM8eU3faipvyu9+G zRSWuq;>Hu5e)TL11!mw;t_SPR_nMYYP(Xm%*8I~r-C^MQWpCi=AwA^(VQx9^GG_HW zi4_oZxaI@PWDFvxEubLM&4yv?=LIbxD!~;=EQLKt0$3&m2wm78xiDn=#i~RN;E~tr$jGW123FP&n5+zuEPeTN4w9PCirk7`XSx2QBRK_c6DV8Z{UPvwSVG_<`l?kZiT=X1@Figwl z8tFc+@qldg)Ziar-&~hD3sg+dR}kDW7yMEy5bYV?8$yQq>{2msR@>2W2=xv-!JECC< z_rj5ZJ5>ttl1Gtka2aV8aTo?-d8jR*1zvvk4ECE8BCy!loZh3yMNxZkQJY0gaZt@e z4IU&mAMK(ZN;yx=4PJXMmi@>lG#^Ql4gNlrrIEe^FxaoSMx~LA$$yQpO+=2(nvBzj zG#Erx)80m6{QmHAmB+I?O{;I z$l!%bX{f>Fj{pL6yVD}w$(G!#3dTG-3zb$ZCaI%i(QMmb>x+ZS^zwPF z;^&OHR*eeY&@0ZE!2q;=5M7q!?n$8dpy!ckD7or6T*uat*WSR+xioXh;-n9Rt}O8%3Q+MBgE4po%7xNJpkovr27g))W#x6lao;^W~@O z1_7q<5`<$N=#K+Uw}hC@*MTcT#{x;P`LxI$3@(aIJGd)C`f z;2^z60tYEQ6$5zzY+8OWQWfdv31*@pFg7O4?>R=zl@sL0j_{ zK&EYbm$%Q3eJda?Lhuj zWVZYPUX?R%5aJ3$#|2T8Yxz)28CL@V;Iafvx&V4G9)wmdxUi6cPXw{}O;GSa9DoK$ z9obAk^iz-5W$iKqO|BkmxE*E`vMPvjGaXwtFf)q?2Ejd5gVfD;ItgU4-(%{6c_*~V zKEw6ljpp?ap{Z)Yd%@O%$-pt5sn6OcM=bFaSnphMGBBQaE9AI8$IuQ+Np6`gUApTl zv@@^%fQu{opW{s;ECC8VGAbmi4hYvHOGX;T@l^Xvgui(Uupsr-T^AeiDW!=(Pv8Yv zVUGV2hDBr#Nf)Cu@f3hWbk2y6zrXH6-tDECg__o(QzatKDIwRcrlHdBAoEUo+Ug-| z_uy8H9kac z^}NiZSLzK%&bpG-EPftoJpWDa8#A$o&X2*nfo>#zrO{V}GCoshndzTdt358%YXBpzEBxf9UP)gLg= z!4bvXx9n~F*->{9WdU||@Duye`+kN5XW03eb6vcAqvOAH(o^xrcO4pN#P?VOe}Hxg ztaseP$PagY1py&Q)!;v)X$x7&o%U6q9^!Z2aT5uy@$ay2P|n^J*EgU?6qAE8mdZDY zoE!9OM<=|$>nl9i-?!l#Y`(|05~JJ@YyF@n&Jv$y&*<=l`rP>_;BWjM;CA?x-tho? z2|oj_g?$)rKfR3BGUi&KSx8$yZO&#B7`F}y9PsY=2bk`_9)OJd`n27pTW+Cnno)2i zdxr>3v_bq4<18(C0*b~81Y9I<(xMpK`FGORaObOU%5swW1<(dJ>o(jxJPGS(*9!oo zk$6$4{lAyJ4f{-l^~37?o#`(R#%-1?7wHgEpHy|xy-xJ0gQGIaxuSrLHJ+-YLak4kir+%DCLbieU)SV_rUi&3@gA@BHr)H{J=EP8THb7vo=8m2N1 zHSEnq3!jcmWg1WcKExcURKXA zY{xqL+h9mxCg%54s3oDn{1#sxbZp@^G!XbV;KGX^Jmd|`@~~9W^d~ugTpz~MGVB;* zOzFA&At~zax;W_cc#hGZNa>Cf4{S!TDfQX5#A`ng=}RiqL`{h4nm^d;LV|+vBrLOd z(=YEu{?%C~_%*sUoR&=17nOmi3iCzL#K*uB@4s*xcR7=P3+oQnpn9YsyPiN6;1XV& zcIIi#TJ5l839Q;$(LCz_5c#|&XqTd>A(MrC1@hvNOaAL`_cJ;C>#nbabuyJV?gZ36n9AmPr6I5`McEN0uoFv?C3zAcK79I|N4KYjgN89W+1ACgA zULcr7kHm2RKwMpl=*#<ZGVYLWYDxjJj-8MvN=kg2}iV zHN?SmyhaUi`xm79i7kmg&j%2D85fYZ(6}AIE_hXG{Bgt_fpgCKRyasLoHWXUZ+|V(EA|t~#-ORQqryWR z(0+(nFdpD{bBDylJpOK9KCcn?<)@D!>TP{I_hB#s{ny9d`%WYyX#5}tBi88u4}rh4 zzx)d0B?1|K+eQA{i?7z54gG>+EF<97PVjfe#J0!u`@a+X!N4Qn?;0GJv|Y{4{AvHM zZmoWqz7@$|h;Me{e`l;T#a;csr*j|r|K?Y7ta=Vv|78CH@HU{_-!FTJreX|0j%;bmj~;|j{dgo>#xwkzyUr+$%fh29(fGHUIC8nV_lp+(E-cvK2xS~t~EJ##Y z5{Ux9u?wRIp15mCJ=sA+#6ffY8EoPm1TqizIllph( z|Lg84@R&DdIlCZb7L|tBYc2>Po{Y)d^Z=>Dcj>_yb6bX1{L-la$v=b>=chRj{pdOI z*^LNbzM7#R$B8X5VM0_0rLX@AuU8q=-XHyKMh~`FnU#_cG?fPAU?-oGbK0+i1EtkC zoCvTS78H?j`t}!Bl+r}mm}`4G?hNgTmtr{Qp=c$r9UUmORoMJA&Z6R)cqlM~6+mNF zl#=K-F~8v<$^RH<;fqO(kzFHFvIC!^u?|=RY81&`wi$gKd=)P8T`G@^k_ z5)7hs14yzMtGU?&&<=Z|?Z7tBr)$lil-{OET?&R(JztYHhedC_Aj^Hb6h2_^j-8ro zptur{gYK-JNYs&v3vXPZ7C8|KBj|V=?w$r&_$z$NXxvn5(migTF4Fk-f0vSB96NDmYJgD!+2+KzviRUpSZ6;jz7A@l7Be z&l?Tf=|<dv#yJJVj+R6htaoKv65EREswEu4v5FT> z2hHk6gVKnhh;w`!3S%h4EHp12AYI=sQ6Ol`7GNQ;aNo;(JpMd`Fq`UT9D)^RY&BB?|HHw# zYFii1Z+HW{+{M<4*F}Pre6y+RrA<=$<{ZRV{o(j|J4wS-&4KQ3*D}r3u-Ss&>O8DL z0CspR3M5i-oIvK8PR+t=s&_yuO_a+Qh>Rn{kE6v|N_0^f#wzA0T&RhoCA`MUEy3&z5hSrl z!i+C@9QDEDIW|gRh_2>PJ5>>7np@z~JRBiM$f0F2%rHl>O{BdjNFf93Zmz7OXUML_ za84#)?-^zOt1Hz79aZ47HT9TK!B9f{^Q_g3?Q&vlN);)TP_GOKXTa{6QjRyLzd&v| z!_-Y9qK|v%GWFp|?6rtl#{p@1sIfXh8W#?S6j_EPrV*J+ru9bPbk3+@)445kebC4; z5e1}&7ISkD5UbfR@5H2be|*6VDf^*CbhUA@1s_)HMu zR=tj|s3%M2DdL^?wyZw>xhU>5m6uCD!e3^8om*8Z>9;IWjv-yMrWo%=eP$wUZD&Hl zxpA>_TL@E(urNEW;l2bAw4r{+0L;0ftxpaB+UddQ_8{0}bkKdmRH>HM@+55&gClI$ z)tb2H5+iuZto@oxgyeF!)f9x172<2Q%|6Hqm7r+h)~I&P5w828yw*ytox@0MoF=TP z#KFvVbZg{qAn83X_n_ln?T#UAhRM_enaDaW$X*580Xw-Q{sF1Wvm(JnENEia!zdyv z>A}jvQ!hgwjJawu;&Zfl;rwTbMkpJOPoPAKWaa~2!<#r6`82+*$er5$!ls=?If5c) zcMVzQao3E+@5p#*vJNpH1x8if#XJ(uxuQ!!Dgcw`GtAAu8*BH#L(CHi`qOKN6_Qn(ONWidAqoIn*ym^Ej<`pv)PRGVOLlr!^(Uzz9+u7bhYu`_`A*FxDDM|ZRkTSB5{hs z%M!0Xg=0IsM!|0}_^tEe$Y~C5(2PG>r505_N`BjbLtS%3uvq#9J%xraF+xF(8fjyB z{R3Cr6oBO1_V5Pj9V6jBql_sB8UD80a3itYr}t*$Jsr}X<}AG@)8Xm5n6?q*(zFSK zwvlk(gnjd356t`fHpX&{*5^LbKBYt^6TKFTT+ExjWP&gDzljgRtHrJyaWocp33XgF zq%j&6kvuuHB?;aUFSGbxES3kgrw2cup`-@)f%$73yK|mbGTdibv^`DrNP?;=(_sAH zdz7RKREZ(-dAP~XcNJeKmGz0DIeA=mrJ>o*JC7F_+h$r{*{K4zI1v4S6$c zp1xaoJi}4ffVl=<8#1oUHBIQ;)J0RUlrI8)GvIhfnLEBvo1PsA`O#WS!Ghxa8Bp1B zRt#_WWmfGkgRZ)xl1Ve&oJFx$DItSLWvFk?#p?cd<&Wg?J=F?A!w%Vk`#h68Ck0>9 z1{u~!068{#&|ZY5NU4h5xoOOIpeAlcltNmx3ceMls;S2p)8DtkFy^4EW$<&RkcmY(2e(wc}gB?Np zt8Cb0dwxOTb1o7xON*L-hbGqueg&UYF(5W3mmA4_os-7IR8p&F}Q;{KD4`8sCyp$nii$9Y_}+5XD;v1$dno5+n=RwiNrCuklOFsnXq2j zo|l;9Ju0b3ZcvU+?1+|2nRVC*Ssi3zx#$_FF$&dRGWy^GTSzpL5D_L&Upxj?Xg0qp zc!O`tHxI83m|xjpD1{60!u9#NdjCIxSs895Gt~e@LA6W_8B!cxNV##27>0P*km|u%RhBLg3Dr< zc*lQ-3wYcmR~GZ{pH6ilvnKu7OU#=o+>IqG_^-s|=K`gyd9^Rk0vD9^=4H_T+ zfay*Au0!#}=C414&ZRv(1ZuosHyd;=fxPp?=YlkmUaQLt{}Z?GbCj=lrIfg^?2Dy@ zQaLTq=0pWDu#d=hUE44D42%C*JH*xY8>xtbp@#lr$ByNYAmv^#AwoY8)v|k29VM=W z=BmW!bQ4b!{jc^7fCmTQP%UmufjlVGJ#vGJM9cv6@aHS`0!@(%Is!}~8h`XBBi%2J z`~wnV0-Yj&$t*LE4+Nhm^<=OLX>9E|aNQDh42Y!s+zfe)y!ejI3? zynd6vf^7HjwM&{=WV22U_{4;%I2!8JoH4_nFAT2@&)A7zYa56t;=s_t$+n0tZX>OjK7Jq`Vq|Iyj!6qGHeTYwH zBF_2j|E!@)I7^Uta1N>H{{Zvz%`~pyw9dHFyqW}N>WG8oT^*E6`9m@YIX12~h-&=% zY*2bJMkc8tDN%u!KZMEDHcd{V&IKlO)*ft z@vkV;YnFiZz_P5Pi1zV_EM;Q+X-<}YBR zIH5#ziI&odLxM1&aM30r3P2|;khQ~8#5HpakO+6+5)BU|7R0Z(h(Ha6Nyj_+_Ds(I zg3VlB=m8PZkSQ8LO%n5i-c{E!^Th;;fR6BhR3)^b!h$?*)t?BN5_aGkE{iFwMPR%A zWd*$%CZ4LhLgjMonK0TT)C7tVN>>y1GV>LG zUc}x2hXM8_EUixB9QRH4l6^KtBB2`y)qz}GaL=*6+h6J-@U?@n33Ws$Xum<3n)#yXA=1c1fWNYeb5$!x=^9wL4dl$Sdy-^SxwIeTyMXLCGa z<7I!6!o-{eFW%-SVXyoZe0hElG&ocCBRVHrp9T(1RT56g8mLeGuu>-uEnxb7cWxp0 zpAos!bVdHN#!w7qfYg`^*-p68ESOriNath%^o$!`bksimiB`aG`oq6Dj;ZF-S5 ze5Q>YWB*&=V*+JuD2%OciQkh2U6*bgo|K-e3FrFZ29H0}wde)0_ZGdG*?AjsAC&P2 zf`b3f=k*U9P=|LPR~P_a121{2-xXNAgueMzbPKAj5RMti$-gdsBt7pkrs}NxNx*N9 zC()mXPQj!gs8&5O5@+I|p9PusZ4!}Thb{)`lOrL`0qjVCqd`rFCd8O3PwRT%6gD+0e%DA zWIyTGks)X?J2C7!M2E5uPZMX|Y#8o{ZftCHqa*kviOF;@j*CJx*_fBf{o{ku*xv9! zjfACTmm2mRbjS%6eo%?Gvz;zro2cTFJOlh-5GbsGQOaAvECI8L@MC^ng!3@*4@?YA zT7y5)MbNe4=0KD14EljZh@;vrZBOOrXqeqJU3+G+*|h-xQ5T*4CYV43sM|I+3mF;C z4m6KsS=Z~Lpvp!)4g(NVpCxr$1Br53$bkbF+_*S!YgG=B5(yqb?J&3}^_$cY2(*c^ zgHQp2P&zQW*NLi}*_i+vDHu6sN@c1~$+X1?ApI4%SQxq^qqU$6J+B0~=bS$iQ9 zNlP+vncg`i)2~I*5QpafH<#3!EnZF*2U}&(UGd*+BZ?~pSt(*nhfgat8T0;iX}^EC zE&|Tg(1nT9f0AZ_dqQy<9xD##(iwp>?Z8bL%1}tdA~&3PO@NivF{6IoUp7^yDtN#M z$;TqRBz*wFFRekXh6%8Mww{~??MjINl1v5@{qCPVFip3h}L+f|7SFPAaKAK;HnF#GFzq1kGQ>eiMTF!42DR<=06b`6V^W15CuR#@LwjdwrJN<(F65_1 z5}RNaBO2&fxHD5$1nwfQziMW(6z~GvInx;|glQlf=`KYK{@!-V#b~%j{a3+&vrMR& zI z72`6CV`!5Bho2fTqRBGSg-EXmi=i^vEDGp!&IZm3sE#%A*bZ0z6xawB+QwwVk6j#?cufE zNJa?7644D$$AKvMWxg*tbdyKT2V!}zU?IL(+pnU1s4WM2KJKRAYQEIZzdL6J z^9yp~QT_Bi{@fTD;Z$|c#pL5?62au|tEC(?;fG^xe zX{LFix*PmklNF>}(CPm%_Oy@eb^1s6M(u+E%nn{4pWONXX)Zn21av$9BRZaGr@xx) z#Q#74PrtP}&z}6O)a6B0CuP65bJKqN#Wvg{-kr|=4@SA3S$J}`i`C8NemAJopI|-- zCe8lwtp8IIz6;!Y2||uB!R)=TaLEC!5R!#R9cLlaC&*Xfsk`sH`V@EJW%-~7`z|Fqlx z|F7F`9r4OpnPZ=vy3>(xd(E&fJ|l0r;h7$561SLA5*_ckv8XeFyrK7A%D&lluZ!9k zmI8sbTeM^7LE{DO!`Wo_ZmJ)Ktw#1WV;v1+l?6x@HMzCWJ~ZMv?Cgqf{vhGq5W&^{ zQD;I~>j*dWx}T*IOzkkvB7IHC(aAdhfzsi7Dd2c)cF}4~=|mW}e>yFtaN0i3?zuDGTEI=>l-$vtYJ8MqJvMh6 z@l@^D#w}G*`?(>{gJJ%tPn&aEKF(;qI@VVaml@v7<$YSeWNazHfb^p1<|WbPo`QR{ z>5)qR4?q8l)zXZjd|=FW?77iKOUOCZbB~ioB^_%if>DFHuJ4Y`RvL^=oyZA|+>(Yz zO5diU$lkaeQ**T~Q=5{Xsh`xq?J_Z(_DYMz1lS@D;qLv!zA~fvTI4>6u^A8yEUadni0@$IuXFkZ%i zyW=uOBcl`cY$WC%TDj`lgrma~*4t-kSd9{i8k@>F8B6yjJkQZ)-oLl*v)(4n&WeHY zkhMEQa)qmWha8#Vw_qQj*0Vln*ix|tIg3(m-qBKjjBWWm?zkxhpRwY{(`&3uS-I-a z%DUnB8s5>lhrcMYQn!O!vkIF};+&av0mf3Rj#B}vzPh~#~yq?_O%Sdo#9H; zQe@7gR~esZKcZG9F2=sPL4yWa7xNcjPTiFVNs}M@f?<15CV1i9er=ru1+ghVt7^R#2XtkC)d``y&}@XE$-W&EtU*$sbb> zew6x}{q>V_Zo|0-*@LTf{S`A?_F$2TR0k>LP!PstF?pQm!vKkq^P^uI>pfa8Huivn!9kVCFEeAQYf6y8jIhgkf+w~k8^nw!2nId2q`qgAjB z>~U))xF~I!9H-%Rx~S)39o34RWP>7-cCWK8<^(!!u`6lC!O|n|<08A=8HP1#KNizR zTOlGo!Iy2Lva-bI!l$pjAanI4d224Q)NplMGW5j;MEnzC1(dD3@r^#C^Z%$Ug;A6O z7_RXbovDA}F!dDwO>9ilqSA=g?GfhEgrFLvQ<@IN3y;aOw-YyB`dsOn8Lz^OaawddZpGAHTQ_&MV) zvNCV{zi9-I^=|pS)&aX3xl1y6dw9yvqdz$*_cl;V_Ou}D#(9O-*9*(AVX-0=itY*P zXj65=kPgIcnVqtG_LQBU-??^>(@7lxNvq7n-d`qHzQGcBJ|-&LFT8VimGSxiahG6! zi3p!QCf7_#TfUgICA33uXai9^bBWO@J4f&1LTN0PGX;l4oJU;=4X%@GN~4 zOZ*~}K8vjIc%U|VD@N;$UfMA#&7w5eneR2J^Q6VQo{yhhO%c_!H{N)|x?sNTm-v5d z#-j8h)(=GO=Scex-+dml9s6&!I7yqiN5s~>$(52=6`0g`-Lw*0KPnW&HQXP!L9zr{ z2lgfS_Ss%9w4SRE#`eHhxw!cE*X=GUs^FMDey10?>@T%^oZDJ6>)!gvG8vQKQ#SRQ zR#OaVrbkNlJz`D8AihNK5?hd0PQdQo(t}J3pi2?6otnuy6LLQ}h< z`IGFg=w+sE8(26QBF4?DTu@fv3S?%f)U=R%bp%$5qr9lb%(v~;`PQ>Di|{29z8zEH zd2{{W?*E7{qo}Cpj&kn6q>y9Wx=>!&c$)t2>qkE;OQUq>2Bv@g}l_{U3pU+ob#bv72#m?scyc+>+PEyCGA}|bhamkzA!o87Z+DT zWjRFxf7nQ0kp48ZBa}L`xV{`cXevKQ$|VzyKDvW|&o%=X8k>Mz2@FEJM)|9R}hy=mH} zOyQoYggWM*O1YJnIX3cF*VEZ}fnQu`L_t5lbTtGt7S<1ogXG*=YRgV_OiRj{Rzane zTsT$hxM!rooD8w@fqFsR>u!v$zcG1lWa{M^DL*{sng7pSZloK}$6`&yJSv$OcVyT6 zEPFLypPu0MuFN_pc*j287gFkRYh1}+ySV4vmk&{stfO~kt!Iw*ZPQTW!W}o&GJ#aq9sNnj z;=b_e4{A_@9?rupj&&ZE#cs~<-of4E9;5(wb6GGq)=JF-7vDNj)i`yn>xb!uC*>C= z)%M=YSY@qwvG>-n6fAzY5wdb|meoX)>Tam6yTLo*@xFq>xIAax0&miLL#E8sc~XtW z-Q>oC@LN`Sw>aLjzdk$m=wGDH>pZND0WC*XdUBdsFh%)lX4em+DDoO!^LlgFz%glp zY5uFQqI%x!n99q&WA~&q?U4tdtNPlp;r-sNf5eqeo#kqr8r?J%Fx7c8SZvox4%2-KYsH^9i<_&@T1_c6 zDV};Kz(A?szUsijRj;}lAv5|#GM@jcx$Z)$m{FFM`<#7g_G~UJCTJv7ug4n41|oa) zc#KzLe6<ZH%4v2GHPW@M|n3kN|#o8l zW|lo2m`=&wUL|Ra>#ov+FJCgTjBeDr|F^xraui}qyhx|x?I}ey(ARmhG0r1);z>Hlp|EToBr)QrBe`c+Wr0a@23I zuF^xtIO1u=Q^L8@=%4%ghpRPS0jbZER|?eLF96eXnW7YbfA|52XU;uQP1tXyfN?I*%qm z3~L7&7ayCr3{KfGxR(CwUt@9;CcM6~deuT^9IwBA?!*;)&-~q@TQ+n@Wg@T+`21s1 zCaVW7cQnNr)~i=9H8^U^hf^K>+`+}GQI2%;z=XneTensw9J)Nhc2=BsUEEgw=lVpL zX=+Q3eIYm3qbm9wfZywbOE%w)HM6P)Z|~}S7NURLb@Okd)`qnr#UBcIXwpW<#!xAKmt{;!>==;65%}(AtTkR}7^I?L7S}y2Yz6#msg273j53b04y<#(~z4|^# z5~b|ubjtIsL72$HuF4yGtOW!-L)+YaJL`u(N+fwOjjdPk?s-QIzGqn$Zh&3{>>ffNtshXV|#IR3<&ez=Ls8t6vIr~y>=_zMr z8gZ0+l#-!wKe%m4LdQl=-pACD=G%)j*Q-&9_?eb@ z^soJDxds!5eOpNUE1}MZJF6{ZxW$qLWbdo|Nb7byXgxclb&s}}fy}UGt zYFJg^`_r;z*GKJViKu7_;Ihrr5D1yGK5UQ8wJ7i4(pA6e5H8!rba4Ugo0vsTW$F=a z<2Ggd+^UyXRof;K$@`lAHmrtC7~mzz-Ei&g1wma7l$9Byt+Pg#B~B<>HH zMa-V+$WYi_HN2MbA^F>WDd#VLC~Cjj+ViK`B7;gO^1O0?ddDGWItyl%AJlJ;$&mx- z4qp(uHC(e~I#86yw35b?eBNrds8ICR-|U@`^8H6C7t5g~0{uuDoXYJaTFXSMP^b22 zWxu!u{1F%MW$y&^X7aj}9=*48J!E9lVw)1<=F59`lT{r{W{9lng%n<~<*sW?EEWyH z5)nL%vsG;iVN64RK6WOlCxCB)kT0V?E{p2*drK?)398vjR{3UsT__t(4Qli;+ldhi zd&cSvqD2&4kJ*kiauaJTq(TWeh>F41%09gd!dlUY8iFg<8%y#?J`wVlm_)TzF0k`0 zL%xxk&JrKk6Ffx?6wmiyTN^hd>JIw}CG|_b-@Utxsibx1=#&R7j998%n0t695DQf` z2HdtR&F6I*@8#GQ=3pf&(`Bjg=RVQ5#~MP7wV<$L?X&BoT91ar)dOHMo(or@ z2$^F~57mbj&eHUIcj&mFsbQzE4wWR=BGaO=Pg%Z$tu|o?4Mc})ALr`i#zCPa$~p3P>CxK8!=*pB%X;4O~4Yj zlwWG^LSm8{%ihX<^-F^Ov~F-Dp!mA%2BzzZgl4BTZ|j!+_g)aa^;D~|_p6hXOc&Y~ z74GHT@w^!44nseRRj2x}X*bTBZ+&(CA0|!8z>YjWzUCq{D|UfzWh=sTtSX_!IOwbj zcEml|jqEeT)V-NencE5sc3?I7VH;+3k90Tb0%H5rsuzVC5U==bn`2j1RbLSZ*l<~e z<6Edwa(Dw*spcW$zu9@1e-uEw=K|kAq!7&1a=G(+B4T>)Y&M66yaDgG{_ec4BsQSW z;Kv>#H*h0;4FR^8?et-F=T+C7_jq69LIm5muO*K>Oc*i~i(|2h=Q@v7h-K#dC$fE{ zguj(P=d%DC3B@{a?An4?IT@X@$*9|W%e4M_ux;L8faNf&R~7t+*RuA>18{azM1XE! zJVZtwFNWuDSg9ZLuVSjO`q8rL6PvBl|;(aKq34%|7i-2R%MAZJ}H z>GyT9Kdi&|ZCga6woqI8N`{mx-MqplG758exd|cTO>Lay)c<4PN+{-sWuM z7UQ7|+t$Za#$*0yjYMaO5s$mYL}#L{cO zDW~C{i_bxViTx#JI92SdvAI`za3Nq^E9el3QTzD?wTnLffgnJD%~iACu|ctqAY@FA zsB|iCbKJth=_iNTQQfU)`>8&feLejn!g=a~g0XoU#@5i9ykqle6flmsO^Hcd&g%nD zYi=+SjG@2Glc3{a@A6vvpNSeNUa={Rk~Rc0(syfe@urkZ1ucfPA|jnDAkI8nYl&~?eH=2)&&{X)JA6jmddPi8{L|rZ3h`mp?H#F|MtNT?&HGuz zQI-P=($Sx&&npDx=z|Fj4+=C#i;Tth^*P0B!{l7WeRb?)$~g7lzpjbe&zxT%sP8KE zqNBZQqic$l2G9)v^J9UmMw?k=D!quTI>pqZ^e=C%W!l5^N+p-#`qfdb`$wn@iOFFG z>SB@M&MH$j%Dol#50z|@7wMjloZNdR0b<)?_3;RJc(N+l3-heVXc-cq zn;gEeV=Y%l)lI4mBEcxrAl3+9&jgNJuF&UZO?Kv_nlrt3!vVzpiN!@#8m%-#9s&?# zI|DQ<1*t{%EW?xK?7&cKh;yDahZSC%3}Jy-{K!Wao**OWg(dSPFY>KbrZN8$ykRep zxo}mznMZEPFWyp{a5xl^DQZ7orLYn;b8*@ALb&bHJ927(NxGsGWsP_gU@8o67>ACn z60L}%|NLm^>sn}0dXVWZ86IFzwf<}5KAtk5a%4VF#aBHM|8jUUx9}>nvKI)I;+D0T z96!O+Q^=7k4+BMJ(I&9zYFPT^^*_bFgK>l6D2X16xvjR0h%@%R2VfZ`R?p__*=TfS z2zGLlgKt19=$toczqG^j`bxo5P&@uwKFqk1P{>+!{)RE+3W7~P$UVtzZjYhB%_fKM z`cECc={}_I@3u zKx`)_r}aht4ubUI>N_z-)=q^473O^3(imSd}u}1UyXa z&-T%@>HSdKB3IBxJl|48+v5?%)=zV*E>^H3<0$;%O>agtFODcTuXq)A*txMl{+_7) zIx*7id;5N=VKU&mDo`j1?el=3djnR%F_azC`#q7FU6|f&q;>5D)`_Z++2gI9 zRNHq_U0;)z_|^iFY&HyvzTHT=qAB zL00TGhUVI0eM53uDiRLqmUEF!W|1&iB8vaF%x_r55Uv-_sOygYSF(4LJ;s<@>VCbn z?9GhiD7#9L zkKQZSt1W`u_Ia5YWirxY?kWEVavevZ2wB9iV{+8g;CXhOs_>0J2_A|9VU9S9BmtCG zG#|=#saeW4;}tW*zXyQI_p59^H2LvF_D7rv6t%DvQf|=5OITxH9*TW(;LA6dj<}ec z*(S2Lr?j{KIo^@=TqZ?w)8$vJCB-?#+dbvndOt})1 za_1-AOj1=)jE&mQMTze15v~92TiP1P=yZ>n#kjL7x!l-|3TArLey^uqRbTWcqF@mB zu`T98<-KYZ=S(lIh}wj*IpSzggjG-$DqPH7BKP;+7Qp1wULIFQCacjSe(x{h(}Z~E z=A+tXrQuk2Oe(kKBvLufLgnT+FLm5PtjOqL4k_v1wtBLRn}MH9+H?YIduarmn(B7K zZ`i}fU0{nA_4@MD3QsOlBpaZT|B2eqDocFSaUhfO%7Lw*DV3{Oy4SOe1QKECBjfX7bEofX~;uE+yO^HOKn zmkORhSZlQ{7JP-aUA}cxpq(7n%56uy%udHH*6H=6%L9Et&J2o6{UGn%QLOZM^5BgD z$*yE637~*YRQI~xxMmy2C!eWoD7`#{T^K#MAf9$M@yi2!-{^JgMl9L})nr^^;stl2 z;%8G^=5Z(3V->ibq65|$CSK(K8cc-6KIJ^@Mq5x?f1QJGKH|#5{Sj(h~~@Gu#4QFAjc+A z(A1MXeay8$k*YNfQG?REj@&nUwm)FcQsoW@SCH7kh4zAjjHiP+B0&DOu|Tckw&cA2 z@KI_du^uw!sX=e@Dv)|QDzVV4y!0Sh3EzRbl9pN%Zl7a96yk;)UyFqHlN0hbPN+dT z_#!)3;_!iDc6szCn_?S3^Ai0{DFqj=o%@Ck%&9e$v3`zpDQ*lk7odS#ci)74rH4A7 zG!7HSLBOak;c%cmkWw{1wJ+GFr5o&jz3*qoyb93T?b+?qi@_**niyCk(NG2logM9k z3m3+054YEZ*E4FdA)%WRR?(u2r&*S_jo$`4%vNV-L?wcz zQ8AQ6P)=CVTbfKjoAS5kM;sMC04xIy`q0SuTSLBJ{y=wb({8aYpZ*{a#0rCoQbe5 zCJ%-c(UTXQ>AUI_i(dOOj&vqtqV+m9qwZYxwsD6zvm!Dsu?8BXTB}a#e%zWL>)r$v zCGY2<7#k|QOVx58|48+Ta>9(H;)>lMVyCGzW1uQ8Ehp8_jks`UW)b<{?2K+^Jyg#D zP;gKGm$UggwcP%59<7gN359osox5(ermL;i&5p`Yg-7~b=QC;FLJO?V()wL9;!e!n zcOm$Iz8S7YF^~5Yrt~s)1^~TT;uMSUEs{2C3EMI(;wAEzclD{p+l%!8 z%=}2JvcD|fOUKaxT~P*>o9GJ0^1=cGo%ZD+>y7xiZZN5yE@^zW^v}jQ?IVJ=Q7IuP z#G4&EiI@)>JlM8aEKOoE?i?#qfmCoB=DHfWb`$7U_c}6!MLoycI`nyLI*CD*9ofQJ z`+hoG_>KU)T`WqPI$sHOq2|zsH;5{{ttjtYaWU0zVR|!#qzu^Pnl)XP4b03^cYv&2 zR08d_@2s1_YsA6Z(bWkVN@t4xC4>sJ)43vBnK0bb%WBCN_G*fF5Aa3bOP5Ssk!Jjg zW9QpQx(7=%1ZUVgR{0m51T+lDk5LcHu~FO;eU<(k0;4*?yAwX;U$>nfy;=B}npPj5 zqP<0b!rxUzT#*D~G@uD}xMA5^EBX(R#c*QEk_b&{CSvh_)FxTWZ!5~*Q&j6EwVE%+ zi#A~|Y)y@vJ$p8!6t-ik3Wcui7qOMUjeRLFXnz8{W|{6P=SotLy!03C%CSL+ElX5$ z;W{Ew{2aBu6kirYW@2gn_e*QDp0eAsVAR1u7n^TSp-OpE!~d#0bMqN+h5etvHI}mg z^L#j|xo>6>uQ$z5w+*zw^n)zm)msRzQ?Ar}*nQ|-Fp!Gg9_%zdCX@5PqLNp!LU@XU z#9J>oH&=iQXmYA>`G3pa@*|*<#lK44qRa6u^eO}>AukyoitK(O!`-zqzi4GGAr4S$ zeakTW!C^W#>muL4Q?^w?B_iKB4^!B~LvN;G>FnA7&j>JK?5p(8mBVWT%nHDS`InN1 zWuMvk5hHJsCa}qC{3`KQ3}mVnWLk$ky|z&rwCW^$)9FxsE85m|zX0$NvmL@4gp7_M zO2nNsQNmB39U(adAj7eUvELxm&|m`4sSx@q(XX*)s3KlzT}+DGG$e#<?kggvPE} zzi1-;C^>YPEJ{8v*b;Mxaw9Zr-dt<#70$yPy>su*X#G8SQ z4K4B`IU9w7N?cLSiHGe$M9)Jl3)q#DO;tNF!V1y>ip{;`(1JHI3gxkYS(A9fH}@Xo zi(DV=`bx+tnTf7ON_oJIc)J)o@4Ci|9Q7(pzE-9Q?~yJ~+;2*oRO#G$>#Z@{#oJPe z{c-2f9Cr@G?l$ydG~5BoNy0xs{T88;>4_Kpy(r@$3Z;0^+8YX@0ZN~G_8CsjI#D5+ zBPwm}Mc`QiZyqt@C}xi@1wrNt7k>+{{=9|5Nu}qNr2mw+6f-A{8kgQgiP8RUIe{R z;xb!1M%=ol)Z< zjULhgVK5VA=r#>zW={cqUBx(=iooA21hB-MQpmty`NJ6LdGD6zUqi={ji^z_3R`mu(oD)9EQLM9O+j@ZU|ypw+mXu_e9NOUu`liIJW_! zYSuasgODn>iJAOI?UfUS$*ee?huPg=h{9`Ycxcjwj)E$uTrJfHynHPBTys>lcPy5S zQz@3zJmY9}{je`=oVvatKJNsTxT8{YrSD{TE{fU@m4iIUb`3Ee3T>>^R8jLZ3WQT3 z`vf==4us-B_^uLurLwp<03kZQB@|OfU^-^|j?BiJFufa}j)7^A=(Z>aC=O2EI$tlP zA5>6aYZr5kXRija!Y%87(f_gtU;s#EcP)E6y!oY(?yjj|J-uaL%5F*-N9@wfniX&? zNZSwLl_vu=2-4HDWBP!~YtKEhDJ*5z_>>FTSt|HHXNee&d^34%zvMF_o?f%l#N?%xOypFs2~<3>z_qGr5X5CR8L z^1itwzsCvS#<`3r`zR=26>(7EV{AUNxU7c%$=VPc)DItiR_tj^0z~Z>4-l-aRNqkb z{#i4NMw4OpR(R%zoW*iHj)|)Y5GF8%6>gkI+pC<089R4&e>^qiDKMa9U91^%*1evL z2PW*J>dufb=RwP!o8IVE!7h95-j^>~Q7We=2HNNr49wjBX@27v zkTvkDJv39_vP`gbcQg%+IQl<0f)fu@nPc|!$92VlabXj7#)M|f_Wxwwxm1!BW=kqR ze<+HB_&?c~2K80{Q)u`s@ytY44gbEh)CEbCx4(lROlhAhz`u6?Ox%r+VjKQ;ER*7= zE0^_#l*GPAl(%Ohk1xupMN`p}ceQ36XAk{h9EQD#qq55Y_8MihMta^Fxi^TvY)>ag zv5NUz5UFCgloax|tjy~k@!X+hId$Z}5er`?-$P)59tRVXkOSsFpV-qR3Jt zkMVX+L}3)y3SX6i=~0ifk=&(Z3^w#}9_DY7I*I+C=tf6ZV8DElZSk&)#n|V3siQJ9 z<0o`8N8G-rAYW2kO*y84kfCu`n?$m;*XF@bO`g1(Wj%Tg;GCVe(V0Y=Rr?u*`lQElTwVT)ricV6e$OgrTe z-{(~Y7mAIii8L+Am(q$CWB0%4Mhf>Fg_GWMdM?%LKL&>X^rtr#`$(0OwBOwrV1QYQ zbI+=9cx@=KG(n+QkdgB+ZN#MJFIRO+@(Krp{nb?TYh>w{am)*-JEt8Zlh;II_JO)@ z_`BpTK~t(Hn0okF1HEL`yK-AG1$}kzrYXHQ*}ouk;CdZ{lGeqX0Lw$4JIeTFJj%Iw zY6In_pdh{h@K@=^lQUhyiRy$GSEI%jj9~Oqw?tPr*OVI}G1#$-h(J9jLSk~{3S`dVqt820wUKtTHlj-A)guHmrF?Oh{|lIS4egD-5OP>MXSVF49s6aDSW z^n+{QpEncsri5u6uLIUpo@~Vi9CtAnIV&i^rt6GNLQPMiWInP zYC^L9ay$Ql)(urjkxbYYYhH*6xyK3R9l{74?N8Il6#Gly+?_pp-Rp`qwyz4r=RsOi0uYTVV3i$!RyP3zC0Y zP{0hlUgCCDCzFi?XrVdiXlQnv?Aad<9~Kb}EeDjcXeALx<46Pva*ho`tXNgVxhn4lF|dEOWJ^a{a3pBy+45Di77`H>5{;z_%GLLAr2E{QSp|w(43D`k9A04{JPt zATbUhp-!_HjLU;dtbL@PRg|}_=K zS>-=#PXh8=Vts$`^ggP)j6YJzNJEAuW&(d)HoW0{z?zsP_MY=W&&({=_4r~hsK8LJ18FH@jl2dNxG_7EJD77SoUZlGkVB0DD-c%(7g=?lqe ztgmMZ1{t=9y}3w5m_^rVzUA;!BP*Z^YJnndA{Qd@z46^>h7&cfB^l#@v3AfD*6Q95 zV>6jtqg271oIkAf1`VtHG&)6803P(RU8HdUQQ0Zu^YrrHoKMLw3MEk~5CE#}l6XwN zoj-%o>}gn)GH)8Lvvte_jY+0bGt2Y$h?f5Gb54zrJ1T`tdJJ#(UR$4tIRVWY@?4n)i&RpJipKXlYb#)!*FGB^@841%^y!fI90*$wQBm_5O{0olt` zxe8@LvkLA3JpEls$%lt-$;=99JW(`38gY@8tgST#b)IkSS_6 z8#Qfo1TNR9lE|By$sZT#+g^Y|8mY#=#vnJO5QK(Jm4H%rFn$hsxay-vZ$3sHr-sZS za5s-k$#^U=abAbn2K7bz;SSr{XB)f|WIwQ@>Mi!Srd;Zw;+fi^$0TT9oMeJ#pViu$ zBIrzWkEN)m#2n+Wa9)4&H2@r}^Mca=J)+dt_%1MRt#AtrsOK{m^w7{K=aOuxfy{om zn6}9rZv)-Jp24U@6&Y0l(XWNVcsw~)3MvRTaJ@i5V1{urV|wqS&W&WnQMcH(6(-*+ zp{6Y9R*CPHS+o!bUBf~)@3PQCHJW(ilxxsXP2R`oJ1V)y80MraYqRzq7-_$St(tAb zNal{Ymg*FywECo479diLsu)s74xc23gF*BLDqAH3dcQe(D}LV8wyVQ1nJGN^K~LZH zlEwgXx{w{BurjIkpbPt7@pA;lsvt-`J_ran(~;ahVFUtidWTk;dHOl zNuFCt<-H{@MOKEKGwdv($hSNe+G2mE?9*T0TI<-vq)+q(avF~@(N!mFq8}o+lDHQY z(Fn3u*S@nU=4G}{DoA9H-b`<(bUg1ei0TR6;Jg4_$C9t^S%nPaT~dL|({!xFFpHr~ z8I!|F>b;u#7&X+rCZg(dv_q_DggtV_O#ACwE6M#6W+f8ulIBpmYV1pO<>@qS69Y8r z-unm^NV_6xf53M$-_AS3NxO_SF|$!5@kuX6`O3g5j)jI zVEV|=5)%jd1qz$Ib3xn5UO%w#;dRNe;bl~P6qnkui;XTpop}^0{%B-Y)hxCWNTTq( zQSClYGsN~~YyeeJp~SXWx@nr+dx+{1G@ZMyf#k0^N~m838u8?U5J-a7R4a#zr7mE9 zo6_8mCM7Kl|B}kX)IdWfM|2ZtJtl#uvm@72dQeRi&dZ_uk8^P|CywultIJ|o&%wE* zE^hXQQh^}Mi+u2!StzJDgu_(}obLOUMyrBAgOwjk+7YVVM?{A~P|mw-q`i5EL=81l z6y8ipoQZk0{}r{L^kolP95&x_4ciQ!{{CPLep;u$@^|$ z{x5kyZo9o^W(^&d~lQ4mHJd*K9tPB@K*dB@FG>7$Cu@^~%4=)ow|lXtZWo9Gfu4NG^#O%>(hYT>|@TzzwjRM zv674AS)kw>S!Q3zSrTQT7-*xy|At4`?3q@&ZPB!nf*o1D=cv*=d8ZM#{2@^VE}4|~ z=78~EPi{W?)OisRtiV-;!+dU~z8h9%ad!hp;5l`LZ$!UJJxk#BvR>wu|S>+ z!g-l3)G3!5DVA7qdxM5^(=;KeW>g1;$;p3`4f^n8hR<2wI&tOUL0Uv%{4t1YqJj7O zGwXVGWDuBXkMGt_%(u6_DA&eICRNfk+a@X$lRq`;O2K@zvz90Na<1s2m(x0CROa_H z&g%p@R!``2y?Pe4NT|Mbl*zNiVU1COtF*%?&HqJ1e$ow{{-p8Eh#1eSPeBoJQcUDL zOHHaKIo>$kh@>qr+c zzhdjOl|SCFk}60;ToJ;HP;4qO-3RdDTXb7krh0&^kD+2r$P3V~6G@Z#2@Yv6i+;zB zezCRUb??|^4_(W+Vh#^tw)^KvNl78UN#~bN+p{V*Wz-Yx)czmby2laBpsESJ&UeMd zk6$_hvh72L4EX~FB2XS@`i_27&k#hM>WTp!JAQ5NDC=M+Afh1u9k6cw-RXthQ2fI2 zoZi;{EDh@Pwsy~xp?pcGf9LDhiI#f@U89b7&$zO)(Ja)bf7+Z?dHUwdX1jkkh$mbB zJlhf>f@!FC&=6P9*^Dn#CbG1%FW+cdgn{*zM^;QuTN?iyn!x?8uwcj9WAFC;wApwJ zHS4E`EW1lf$6q?a=lGxNF1&93-TX@S@1VsFRnd;&#z^g)!5CjK$}nzN{#W4yuHZ@B z*}aKPAZ$`_R*<&)9R?s$h3B)#PuywrCcwUhq;^YC~}>O>$5gFrx?~X&4_a-`FA6G)(&OeIU)*H54l#&fe0BqT>eedh7t3l_*h@7pgw& zR;Zyiy0t}xu4eW!*ls59nz+;PHGm4O)3ZP&mf8xr2fMArnp+Ro{*Vqk(f@U^{8Q)z zRbz^)N!8L|n{kBT5)@Nyy)3HGwBy!DXJ*56{<14960A`B#5lVI*(zITe8DetD!^LF|U0J7WauFysEm3 zNdyPWV-6-*2;MU#btOD@=?DQ1>O~RmM%?Xv;6VtwyV<2V(gb9(3hgrQxg9;FW6zJ@ z)i_gHnN>y1cBF^IEx61uZf(eeGP3oo>`PJnNJ`kH2RYv12Gi?zzV~A&$xLE%?!g3? zyS75}u@;;VRjJVi2a=RRc@|a(W@T0&z=(rd7J+L>7rhBhb7sf9M4oWpE3Aw4<|rcO zHhu_cYx6XIMkXs$S5cD5GtDZa;<%M+Ilk+;*oT#~=AD-M#y4xP752vy?^EG#oCiRQ zXqrXpl6YIyn;exC2(VEGLU^EheL=Pe)m*ix|F1{_0sm_KbUycwi$csP6b>goAasyTN0Fr_$$7|D1jbLRnk zzr~n`-uB2xKl{C<=21K;ksSLTDKc`;vBis*IF#tud8-4%RrW@J(^TK)6LNOqGo+^;Zt!YHYT?6)=Z;J+zraQ|GgKl;QerQyi(3p2b~u;%9_!UMQ4~h9G-rs6 zr^OlDHn?=FwrK%ZUSt%oQGu%7LUY(i^q{b{eN+pm0fs>fEBJ01?kn*{!Nzke1^xwk`y$>Dl(BE~sY=YAL$iJsne^+%#zwc}2fX4P9tucVVzIw+uAG8@`q!cmpzfEkl)dqq6zo{A+Ag24Ekq9z4j3$9AM>#?u+Fa>g_8#%|9Otd} z&%Yj%DK7tU;L7;l?7ew-)%BV8|2+f@8Z||&aRuvAwYCj)uLc6O*4Cwr?bLR(hElDL zgB!%wgsjk}ZdFjUqPBsyW9^I=TBoBB4V(ZXTOhQKpe2$JLPE8`Ne-BE$o6}`-rtY} z2o;}pp6hpAkAFPZ(?Lki`7Zb8zTfwI`4=xPxK4o;xAY8$S4~{7Zej~-lAwc~i+%P= zUIFgJR%1&s+~Cy+2FF^5LSvTdyKkPP}}ZU9vH@2 ztkYBYBnn{NajLeA@m7P~`n7r{iXX-?EpSw+qsF3N`Lc7*L(+sw{u&|TqH^$<8_Xq~ z#J&z)p;b7Gmy{UGm=4}k?GSmrny%4So2aa5cK~IY0c1fm3DIj=0Prk0-xr6c>(7BD z<@c72rr)&1?1)XM4zMACULEmwF?{GX0oIROx86?{m@fiABQexv`=5%BX=Srf82nQ{ zVc9Ln&t!sZ|4CCZPX!+zx2`!e{KIL2WP17SDbIepfpu?$Hp+C%Ic_UO0;@cQ4Q;*z zJ2yC@n#V)Ghig4^cE`=?DvKZB&G^0&$?p0gXFQKU?T*XjCUVxZfdfpX#o6A*`{>Ax zq)13jcx~ikjloQTwYOfm`I{fPGyy-SSdYdpU=Eh7@Xia0M$jSGgU^{2-G~C(jfkJjZ=bWf0R! z(W_Z@EEZd^{0b6U_~oF_Oe-}lp5subq94bTLI35nKbjX2xJR-! zrRp3}1r0*#+UtUxUEdo2gjN1586m-AMo9TdijY#=rLD-*%^%Qr`+bDajym2?u07r);>P8#m+_X~8@+M~f=foEm z{M;tJoYoaGSOzwS#>kxL-krc_&VncHN_OM=NQ?{xrOHj>T(WEe#TXk!jSGx;;}d1$ z?bgi(JemI=Pfj`8ah=znP2B@Wp%*+hN?&K@{M%oKQ-Tnu+|@b+JNJ-{-|QSKd7Zsc~3- zx-jB5#`T=95OXRDH_Gx)+otKH-7B4=`;P~6g4wuldgA`+LA`bTINt~Aht=5BtLwV? z(}+n|(5H5tcOy|i;u4%4K2FrCw8_v6DeMYyynE9imNr*Se7IxPo?5tc&AA(99KlLlYq$^zxa{LQ-&>ivT((dG4f?Jxu=0t*f7l%Z>?Pk zQTJ7z<>B#$yB0jreU|3|_Mw4|OqrU*{bieJW|x_6W3QjsAp@7={32=29U?tK@+54T zGfI6+87z}Lqr>B~mc=@-#r69S!zIXj_S;j=u=3`nWsijBPlOG1s1|5AW5RER)DSp( z7;aILQPU~tqE6S)l9@-(0h-acZx>ZL(jmVj#Ix3)pysi78dL!etL6`&Gnh@7`Jf-x zL&xO}s`=ch1`GIa)783-CEnh@&*iqRfu`SK2M;ySS~&N+Tp6gVH^gu}`o-v?r!#KW zF+(Vi<03Mvy>}v0Ij}jZ?E-B@Ri+ow)wI}U(>Gy9%Sts|zNCTuvr+Bb9R(IMwLP#z zn-*kx#<%7^K_|Thir4R6Zk_hm9XsOOM3b>ImtVTz%}ZMVAgXUUFJ~5w_a-jpzs$X^ z<0=m&R5-JLha}N7a3)Tt0B#{tJFx9eXiEzDgCAsy)nj>M?YG3p8cwXso%w`VFvuc{ z517JWfr+gdjYumERRtGbcwu;`;0m14XfI-(m)qmhTt7I*Bc@l#zM@NigGt&Xc0UV? zeZCq%pddxx8fY+ksDT7NJ$2D#oqd@b#SVZ$qZc+wW)y+TC4Zf{`&1v+?VUh9kkr=X z7C`&3=?8j|%2S?Nfq8Q5Y*EF?oL+3_7?0x`o`>j?`d&LqDcXp?kBR*Hx_M)<#PF+T zdd^5R>9SQFRPS^>EKe!3e^7>XJXbW2R&W#@*J813vlN-taLzIAduhF;h$RlZhhUg? z?lnhS;Q*j@lTv?qq};1zJ_yz3zt_#LQ!C3{T~S9}NQ)yFY>6q03SvQEiw2N(e+nBIiMU~oO4iLqAk z#BtVx85xOvPEB_qx`1>g+U&fFmv2ZtyrCpcO(f->I}@KPxY_hYwijTgaLCTNGn<=D zjl_y{dmA7#>T~%Z0c-FBC1j2)zj~pZxgVp{Zz`5(aYVH(DSs`6cis_qF4%Ql*Kdpg z>;rCOEVcO@wpq8|etV$S;XlR|eMTIJ?ke3u)B{k#D(XZKm>maaB{#OCmkpg(<@#>2 zoXWv)Ez@Zdb>#7g=^-uFpHSw$bQG!2tJbVJa@Cf{)UhA20dd8z-oIq~Jb8Hk_@cZN z28Ht3?!D0w2YDTvN7T@Pwo=pr_(&44|JO?|Es`_Km(DJ0S32%}MQ`8N;!B#1vJ8c4 z@SPXeJHUKM($R0*-W>gK`!idm~qy#`?eX=yw{u;#_{?!t|X373OrAFF;mv zAnNveAp}t&XuyFunaA*>E)_q^coF7VC39^xtb%%2=7W-QwryhQke8+AuPwL&-#;`s zcc!FZd>_u<$=cX_^U6)dzC!3)XFQda?Q+8loMJO$AFC$4n8ss&fAoXh!+V8oDKX+i zI`rlq)mFg#zzLU93Rbj<`f81FJPFn!`cWqkHB0y3SI z8|ZW?9BSkx&QuR190xF}-LbHJ`(|Dp@C+aIi1Nj%gbd&gijy?II7hJQFX$+PdLVS$ ztFe0d{xh`X3@Z$lY=Fkt6A4mM3$|89M4wu*pl#zS{Q2p=^-!koWW`b_hTYMb%bD+D zGV(vJ6f)oz2G_js7kWrhhHC9y!T}$DE~`xDjgaBUuQof$F?}A-9x^6EyBAStc(30O z32IJfsNKPFXLewx-J58kkXkN19GE6^=K?*Y3-sZRmXs4OW zXYvh6xZ@rLj=lv+8ifxPd1X$)Fek>G@U35M}+F z)<1~gDG`Vjr+Q{&4wXLuToa=#p^v29P1;@)4&o3S&8c>bD%yIPaMRiyxCvN(QNE#f zr6E_lj{4L$uispJ;)y33WGqJel)2neSLCKxm$#p+Ba}7A_2+N`Yd{E1B{=UO8|M`> zRg&;}c&Q47aR!>tQ%;?)9{1jj`DZdX3Ompr)NLNoowrdTq>tbBbY8J3{G8xT#VGDD zT;xrGNeOfSO4`=0Q~ny;E-B5v|Ng6c=s}!OhkGu;XL?W!&lv_2?QHs~jVK3~|(q|WUjp)d@2j8_@`k0^ehz502xT7kou@1j(`LUp0Tm5KM_ z;!YbY_}f=3&=GX5f(3DiSz>|z7aln+(DS1E zGpN*TAaos(Ue0@b4A*_`1p^;mB`aQDpR)?|4{dW`N+N@rQ|qSst@1Ob4n1&h>uB`2 zqi6kA1Po(^+d(7CkI;{-yl>yPvl$PWkTtd9L-vYbP4(DaNl& zB)Y(Gp*DRk-#5K{{iLY;4Kol!yqC6r z*f1e>qnmR_-{*(rq${@1ldj*WI;U^#4hPyf4rsQDpOJ9&jKfRi?CZjc(oW98cSmWQ z8l9)QC-4_+Cld1{$|9qt#;+aaF<_D6cA3kRH-|3NogN5pFrSBp{T1+CZh=kiH)Rw@ zN;wL(N8tc#<>`V7Tf2jEf}Xwx{c9jRklwDwjw-aTDg=co^x16%G~!NmxKGU*n1^vR z%-1>wnwy$m`Oaq(>@U#Z1`raBOn@8DdHIb_W2As|fY3-qSj$$;$J+oaEI~%95V+#l1~J9s4CYY_EuSWahBQuRd7^~ z9EayT(7Mm}=Y3ti->>cz#oS0mfrg}D##8oVGRPl~CzfTG>jVyL<|4V9mdb1Be{!Re zkaOP zXZM*mhh@KgYIofby`U`&)&&1dy<}3uU=+-iNL7#-rBpFTSSgvc7I%o0J8r+-d+PRg z3*)P;e(BIZy=49Pl2HNEp5HEmX6;{dJ+sFN1c9JS;7U1JHQ#$$4%5;sFXJ_L&4Hhx z0r2yVL1!3iE~Wxn7KC(pyLSKLClkq7bBC-?=#y`{>86y@%-xFR;lNmN_4f5`qa4D+ zCWNupg-(tVclV^*_EGnT9R#L!ykBvipds~sqXn7WR=$DrBUk9_pqO+|KQ%m*y=wpE za^*<%A+~4L|IffgYs<=a2A(2T=MP)t4kC6$-HhfBdWS-Si2XPL3S};D)|_SeOTa&t zsQyvaso`65_2Kf=)Qk_T=(SpVh=b&N`v7_)4e9gPs(RyhY_H@_{RbM_8n>by&ZiE``pCm8NkkQ` zD{Efwus6SsQ9n)veY+`H@xh-bCMluJYJoKc&NHdlZw=qfJIHKfXjpk|JKo?pi%m09 z$R`_I<;j%~UwI1igxOj)6U||1pV5TRHPG6Z=02fXX+JLXZ5fTYHRqE=5=fm@d>@^; z^2Tl(S8xKCV-J&}Lqin>mUzub%(i3t+h+x;8jn!bz468W7Cn5>rpu8h%Zni--18pFljow+=N)eEY96-{y=A2gZ+8i+F6d8vDMtH zde))Q`crC++KZ$)JI`}%JXg9MZ(iQHT?8AE-QzfZWMwf8^9vMrmytn6N# zj~B{up4P|N6HJ$PQ@}__Ir`b= z-e|zg<$hg2$ommY(*7Wf=IGgpFNYmfNBGdR4Brt6&l7F?wqO0`>+wIRTi`8+?T`}V zsqK;Ip;u(|m|th~laF0_iVnBBm9Pl|)uvc_rBZmlP_xY;^n@0K@2K^#L-OBVGW-oT z6mi;OwnTgJ0!kh~2*Tm{U+d7J^F`=EbJ%(<8VreVQyr<`^@FE5phhw1N+t)Ma^y3!s-k}m4m!QbMeZo7J6n)iWp8o z0!Uz?2KgsbcLSO;+YBwecgl13HdssAX05YIeesc{XO3=pz-M^(QvxrIpWp29{D|$vwEVYP@i6?)oUJ#wLB`cLP9Pu(j+75wzIDHa$|+Lo{--45 zZaOoo*$wf{jwluUf;2g2MsM(2z%b2*VNF`xg-}VN=kydpHc^XNmGDI-+9u70+0D{i*buSrVn_Yq@?=u zQRO$(wN?J@M>z@r)UqG;{A#BWtmrNBGOP6`a}&0`yYb<6g|03* zM%HGPr-Z1aj+{X;E{ijIYH9{T*5w{-R3U42W}ud6q!fE$<a&huZrxm%mcVRj^Vy_q-9_H z;d{r>gI`_OMt3Fp-F;y28BOM+;Y=Nb@GvU=sU~7_!w2{6Si9z${KR+=n46l=?(?fT zv(&hAMud$b)y~gt%{G_{5=MvMr?+frlZ9Kj^IyICn!x9k`9(?Nk}Sm{y|lBAtKcp( zv+1jLP0MKF)VBUU=(GJ8lE25oBT~x7Vl&TE{scBc(7`$xY|1wP#$Y<5IME(>zJazz zhGYx=bWRK3|I35nAsOGf_>ru&d)oC$QIk5u?i3}srnBN9y4q~q;UA^%q=&QnSkQ~R z?!D4}>mb_iKYAU^^f9>J#2oa(<+G{j&2+T^e3(3}2)q6O(Pf{FcC-<~SpptOVAq-O zT=44yQV6$Bt|`@kz+v$PPClvB* z|A8^3j3ywTJpF(l1oi=O-&L`o4}+RJZ{temBK|r-3E>)~n2hA{E&ZPTSeFZgCqFQ* z@KnJ`V5l!?Zy%5Ev0RMQBe}ujKY#4$EnF|?4SEPd;d-0>XC0B$`nQ!A zxyNJmsTH|1U#I66({8;^o9*u}{5;lH`D6DemWP*etTyov6EFT==nXC`+uM3F#Znev z2?0=Wc$I7j`2AnGMLZ$M&g^TC@8js^&!I(P2m0l~6usB4svNBB8a+ylXUNtd2np(H znWy#@&PeHN+g}aSlgm6@EYxp0sg$MJw+mkW_U1D8Y@m_Hl$w`jU%z5cAgopcUsmtu zQj{9C-~{UT&?-wD)Nnl6eOPGK2#4V=Cz9Dpq-I-R5%e0J`L*LJn*zd%8C=gJlyFr0 z8IWyDv|I|RG`DayP(&y}rs$}!xArcDwq7|Ps;7rcFKj$5V)Hh0+B1{*00Q&|r5t)q z&bhj?w=?DG_4_+P!iwUl;9!I6>FUF16`M6!gmkt>m!{aZRnOq@0n_Pw*G`v{ zApj4Z`-uzwcw!4H#8mq1Ox&h2N=Lt|F?qx^#9dBPdF}k_YTIKxtwzYUh(0j zW?wm2vc}e$doz8zAG^OEsW`xu%#hf>0`oL~KoeymM&M}>Q&WL;`ld&P4FBGUa*;9i zcpL}yqGft2Pv0r-(60(tK38~HV7m3Pdke1sn(3PBRS~m&N8$8L+*;fu0AF+uOSrAQNRvv7>WIhZG z4u=5XC=LNyxIupPO$i*{f?j5Q#!`=d3>e{lz*GJHU1Y@*-|&7;+N+33dd9(e)4T(0 zZ&w;58580H!n6ljL}Is)?myb_gAOpLr#Z4AQqBy+sOo@}LCThn-%i{wSDt@8DfrYn69yZJq>?*{%CsJ?PyjqFjp(V|JRc;TvWC$O?9w!Ia(3vIy z#ua#k_S)v52ArSsUz=BOY0wuOHPt&#VNHWe*_M!WU9y7j-0G@hy$r8r{v3 zP3Gs%_pWqT9z>=4YEfOBpGA+LwQ7!n(0)GYr2Mg=V_9<6^hn=>-F4mo-P}VBeR$(& z;<_w_s^IA#PK(@6)F50)C+F)B!%||{zI9N}yC1W7Q3R%jV$TWY_x#5TVC!YVLa2 ziXce&6Kr7!VI)%jkd~?m+tSUlT9rX3(xkIh=kxBdNhJ{y?(y{3HB0eZZRf?l2mC`_s6NlD;4C~g>)3rD_`7^D(AG<9DG zAz|yQM|ziglhEwu4@9Jx#poS`)#FL z2^=WpH#MzwvUpk@L{bHCZCz26tg5KaO|0S~7!pAPT~YFL0iPOk(swdO>{SQ75`l^z zBmnnEH=H(l+5zfdQKPJOwHTZoRB<%KTu{z}ZTci%J+OY|X)RoTZ&5}~4Hz#CQhI5x)T$2u`*&`Cqmx$`I`X0LHC)Rw z8vCYVgI^3#Tgu*1Yye$L+iN1T<=<&+m+>_itqHE&ZQSK8(y#o{*lQs8Ho6FyHaK+(ot8EUXm8^~Y!;jZWuMfeo^HFs)p-E}{BWdrvuZ{;`3)n8@oO-#J{ zU@E7uio2?51S2ub%6$jQY~}2#j=Ky1$)itoTrq&~E@Nq5=`xsUT5^gS64l2v!7WRP zS_PRC$EK!6&2VN5*nHsD%WmXRgq_}_w-tyy@-0U9;aeH@lR{-DSWqqw0SAM@dxIM2 zd|MYAGR2WGwF)fQmdxE(55(;*vta#4Kl)LkEdlJ})Y<>766w?rYD7v5^wAru{Yzxd zESZX#$PDZ#(7W<*aerjanlo$9^D3x)fNfGEr&6M}rt`a9qim5%11XzX32}b&{w0CM zVr(Qfcsm3#R=Wc|*X6qyBTS(Sn-uPP%fKz+quB5kJc*kZD9i6E^U%thH$GfTu0Qu040AcSCx@Kjli{rl7+cJnL1q1*$7=_LN3o#9;_HC!;F)Q(OW^Emt-jJ*y4i}NN7g;vZ>@S+{`pt(YUv-@( z45;X69@aI{x8Om<7#;>LTyO0eg9R!9Gg*>f2bZFi^+Vv#Ox0eI*6OdTigs~ez?d4@ zlF3-Cma}9v&(Cjdv;aN4!S=n|?Ll<0~7Dr&wp+bF9K+BpJ`m2)}&_Jgc z@u_Y1^Z}_(saoFb{uFemPnKFF<7@F^3~1Nfzo5@TeZ;0d?5+P;3M(95YRPn9o+eZ& zd3TC{~S)Bx5%Q=P@U=_Gd5VKFP$o~xkPMucK zfL8@(TY8-pKku2%&b$!msPSK_6E4 zBu0^Ly^9T8!b3~@Q`;z-tJPj+5%3I{3BLI2#}{|H0@-&tnUBEp;C8riRv~)NPbh86 zo8DFr%qo~7E9>Ut4%v$z)OgjxpZNJKOVX6ErA-ZKQw|K9VDS~$&mr|l3X-hS)trDH z@2!B#zc!>LX#H?RI0Wgo$jQBBAHN|n^P$x+qW@~$VO7>a!|p?|0*O(E7sI#0;}HG& z!(cZ~`;~MeK@8z_q0B|k>c0LJ+)r}fwJ9Wj|0j@DBb1jpuS&uc3>JR-zFcEZka;v3Q^%eUM@1|r5TZU3(h^4aLt#-Zq+uOb`Dt`Yh!gJZ3f2mXry)d)d zk^;zbf%V>ezPt%q#pFE5VK~Hg)WWP^To#wtK>SjO{D;(=IDv3r_*U9O&xe7LJtl(9 z(ZzjlXJ2$z$xp0UbU&HUF1g72gOU|Ieywv-M-45tlO`@T$@Q09a>@6ll9=}8!5*8e zR%ge;s@`$GH?E%)_3VT(RQ?=;gLIf-?KMz+*QAz)%gZ-Fm6LU6VDBGrinKVVifNPq z2xn;`iw*#YVc90q51ZZj~<>u1EFqxSGceKMH>OrZTxZ5@c40dZbkX3_=oLn zP(^9zf3>&0SmzZV?(o@pg>4F8Scbhtp=!<9nGaquy7kcz?r(2z_ne~((*0EkogpS_ z*dNpXU%x8auD6G$PU~fu1Xu`22Q6=*yL)_>A{&(dFdztrRNDK-V6Giblp2y)f3ddk zyr|VYnkkZ>aaMX)ool`OL6$?HPAcl4dJkY|ExJzYN7e8=^AGCBZ01BC8c8q&hm_p? z`Y{dE+N;GpP+OwmQzy-QUtv;#-J{3@>q`R)xR3cb+~mw)=h4JF5F~n0`tE<*4_*5a z+IXJl+8tJwYdNNvbtV@CFaeWGb*OtEaJz6VWG}Z$*Po*`lK$N$$qJ*&kf1qH0&oCh zqnh1L%a}e13ViIw(?+a_E~A+W85h0PG;ac2!E3LK)H7f(XiV(~^@3FUfX_LGcYj~6 zz4V=t5wS?2THsIj>5yY1HVwF4_rYjmtT* z&ud6$KXGzAOovx-xW&;Z^sqwo?gng{XxL+!NgJaH;y8WV!d32yk@0~8>5|z ze;hbu&EDZsil0BW*CTh*Z$A-N%*Xq9gghh#&^Z5``b~KJnX&zW4s_w zD&(8&Zp`kakVzu|y;|b~dvX7@>4JARw6KEJ&K%VjmoidM5Ax!!>t9?NeG3RIPO?^D z#UvW2#UH7H`9OQ~(gjBcKs(i@OpMsnxB1Wp`|oV!aL+g2?OJysY(@{OLPOKaJ1{^i zcPDujpa=8oAO_ioe=(%@TOr?jKP2Gx06^FtsNw#hip_Aca>>j4PM2|$1;1Oc?d717 zuWm_1^xtl^sUtp#_5}vl=3xdb_^%t=Gdc^cevC*DFE8u#f#? z*4lFxHk{K6aXYY|4@AJkbRPnyREFCMQ5WwJkf_Gi?l^%(pqP#dfrCIN+$B4$3P*e7 z=hK@-{1%B)O4Y;rug<;N*TS_du=A1&bxE03r=dMxZ_-`&(9nfItd~LVr0qh`9fqNW zghNHxT>=y37u{ESdB`w2Cy&xlg*fy@SjIiDlKPe!RBUUC>StNS4Qz9JND?5iO*kD9KP>!vURCdnfbm_x>1 ztFdCiM*zT#;@AVHccYYdt$juOVM6iBe$);zTPv&v*^AoIx5~Aqm*J#8wSyHFnMK>dx7(6>H|cjCKTv1W_;6FHef#MFIh7Wx&Se)Ucc|@c&~`&h7v>r&OQskP z%&cEJD%g{7k$w*?Bs1)n2df2S-(g>+s|K2GQg#*9a6taocRs5nAje&;!aq8$V!V;g zK))s{n*(DFJ!jyhl{I!{mhXkVJcodNMK!sKTG-+{)LSh@3PfzPFV$^S>!Z^f`B4D` zLp<&jI4BB}T*4kQExk@4LytLZk4GiUv+TtNML7@x<4D%7L>uktW0%k_QKuer=<4My z@Ee^fTCf043P1PIDxjHG2>V%U`w}uIQ}1QHHU_nFl}Sn>VL*-KW> z!(^Wy<|d8w=IaWPPp&H^_9Jj3z*hJhdTr1q)+o(HTxq z?_>Qg>9m*&erSDJQe269u=5^Tipkb`xx&;BAgB8gPGGdT!P`xq-s| zZ|V0VRUnCR^H0`VY%oMgu|2?<6g#)gZJDNMU;hR9SD9`Ux{Qd{v&qns3LnuW(sQS^ zo}hYOC|jQFP%90;?oKs-*>Au&Oo;)Z7K+Pqac1>pBX<9jsp$6yeH)AN4VK$us}tz_ z?KsR`K(rAGkIl)gE2lrrnrH4ir(XWt)^2q`|X4j-ysG?u(sa_w~Kh;z1w2XjRrGGzb|99$V_I zo9pugP6}@kUE<#-?Z5h*9b7FpCSi-D9F4uYoD zWLDcbUL*Hk0<$a}>zu0wF_gpvJWz=6yUyr$>8&Wy6g)ir{Mj{0VFu@#67P;6Bv-Oi z5cgWurkRMb|APW8GD7wuhMAr_t@?Oo_X)!mfv;mp8n|MC3vJ0>xxWCqV`7oSQKdztJ|c-}+?T38wk7af*c)E)3zYZ1+hU*Ba;My(c39haVo3W?P~c1G#ty z*gE6Bz=7NjIr|6=?Re!?w|=Tnx`T5A)M;KX8~6%862&5%!FoB(S@T%1ZweckX^w1E-d`9e=o1#yyBijqOruy+O$tm^NgjrZpKAYW{T^41tHCF8&jCts&ec84Fb`Z8h%B)sf zD>h6N%g2<^c>{|8SzVOR_R9-RFR*C>`K)hDYTSPTGp$fmiV>XQhgMnVMbm`uV)Jzq zZF`l#k1N3N)o-n&F6A3^J=$AvFbwP*LD%#8_tVFv z{#nc}#$)_6g9J-iE48HL&b?Geu159oOTs)4E{2Vc+sx4w>=hVzwk>i8dpiR|TB&}e zuRE5)RBcj7DL!{5^VJp>XD{ie=eM5jw}kFba6#V+Aon$pa(pnvvy?5HwlqHnY&rG3 z{5yv&qK?PIunA3-U$DtVf6tD8*kY%AgL(FrS84##96S0!!jv~9MU%|`~euqCH^xWR&Ga-=VJXT%pcL&`A{ctdnoCqX8xYWuWG;6-#g#a4RWlFyBjc?F z@5+YT3x#KoxqhN`rwDMmuXo9YG1Sl4vin*XnW6uOp#%sEUFbSd3<_7_UO8)HbDEJmfO~(}j zb@kmxeJ$+n+a_nGmfm5yvhN$n$9?zRS1WfEH@^nuPy?vxjMju=oPYFI%4$|uDd%yB zk2@1bbnTdodGG*u+-_^v6nO(aawl!bns>k5>Sfn1%Rd?`S`BBuY;WTcvcFg$Jb)pz zLyeq`H1*d3xa<|ish9uWH)pTJR~Syxp`{)`#F@7Ojv*}l9^4zW0viN&VZ+__ZSo%= zmmzCjXc46mb;jT-++`>pan5vu0orHyewqkF|HpEWf0&dW9uN zLvFAvBSIle8k09b>J-xj^t}H=L#~4h;dp?Z3bL#&3r2I?D`W?sjvr*K+nwx~t{j8CjR_ z0zsA%zVeW^b`W3BDF7sd5MvJZX-!6z7z)S(v8Q2|9&Jg=<%7L7I#F38GB|MDkgpg_ zNuW4!n_YD*7f0rqQjhY??z*~j6_%VL{JuuWBnv=jt6N}IcoVMX%ublh9v1CshU_yX zntibAL$U>!2_6^1TD|GSYhn2cyD_SROE&10mPRqbD8UTfgI6&3*-4bOYhLLbrpz+KF>1@%<2JbqnLbb=PtGxV(sdvfro#$a^-u#3 zO9FE!e1VGpabQ(SmF=*$Z`=5YC8Z=Wmzh*`DIQ)s7PPfaE9@<6De#TG9Bg}L^(~=_ zCGYjq^5)$3^!-Cm9aJiknJu{Gt7iA8`|FG8k=9V&W3{2Vc)?2Mo0q5Eb@QfBLLa|N8=q}_J&cJ(#5JJo@OY#*}LD%i{Y;$Pm>li;!3X;x#TRPJwX zEAs;gLV09rOJ)cK9l7TBpJ{I1vwSCH^KbF|XPh3s!h#4-RWhGnpK0w!EUB_ZD1G_f z74RUOlcMW^8sgZa_3%8P`9#Z3cPnBzuy-?@m_CrS{a9WjJ84adn)?n4DOS?}BKFW% zP9D9>)nwO5WK(d0tnz0s_TA4+mZm2HYtWRSH?{dzu@ULLWYk`G1d~ab#om~Fdi9e! z1*Mkv@FNCF%&PpIOfgJ!hTOx!QEXdRjxPiY&1FJ^_6ni+hsZiXOx=pvdZps!bqO7M zU$a&eoyaW0H|^qv_U?h9p|u@(H>sDvt=svv*{@SWRY)pEZ9cvx>>MD=1h#Nv%l(7V zvr}S_zf>PP4zJnf_yZh5%|YC{=F%OF-;zmdPuP_~FMEX*D}_Vv?FoLja9ry;jkl@4 z(y8kVNF>N%U7@Z#J1ZM&i7E^KF;~cFGGTHb?Lgi8UKLQqf>6h&eS(q^aS*qbr6*%d z@PqISc+<9#d$OS7$<4{*e>xQq*c0V^`RnBuzfjS1g5xxx1YCYp&9>uf@(%IgiS$0= zeT~6moc$d9sx{ELHFwBaS7OEoOkR?Vxz>=jg{hd1yBXOhEH<;+e)>Y+-^o(CT~qR3 zlzfkb(tZ!7gSWy7{0GxPNLq1`VDp3(ZnNZG+c)tVC)DHL(lsjdSUs3p+A&dUa&M@S z#46CLd^XZcTY12?Vhit$DI>Pm6mfMRkPwqB&+zf@I)g|J(+eOeJlVYLLjAz#GA|h* z4(SB#A4tItAhWuU5@DtfhQ->kFgKaP&RQdH4xYBY%@w1BY;JNe0^*HRr!{}T&cb0l ztSbbyX~7s%KG2#k4-U+LIl4SHxO{_&C)k$|aG$l7J$Du z?GBz|om3^ypLkd0qc})uh!1_oWKBIGz2LaE0+qBc-O_qj3y_N;R(y>u!A0D@lw)ik z(dQvm1Om8WMXMm5MK0|Z3<0;>-Pbc@ufem3(xh&L4~$z#LiKJU7pdz4)TI*G&##j| zwanu?u9%|D9Ci!v1qh6J@d61wd~%8H_6vnpiBk$E+qxTO{+3^pz@?<8pkBB*2xCT* z#Hek? zZVVJ8y&pC=f!JF4<@y3JT6Sn^I#yvl^Cct3jb8r@7;_o`lfJ{U<%pYo{ z5n4kXPJm`Sl|I-h110|+-b0M7U&+4~9M1uv+%|mX1zRzR_&2f;$b67HAy1>=?!Wx$ z49BJ|z*tv(PXLz`Tm8ECWS!@TK}{K62+kr3u5#VP1;^s5#7Lomu6EM0lg);3n#zON zxf^OBDhoa~f2=QCvdS{N+AGfn&r(}V8Y7b7xNfM@Y%k4+0`Yo&8aPRIM{ z;fpp7tt}jd^SZWC7&pCq9T!a3(V;qTlW?Az zn#z-!H7|VPK;|+ZRO*^`5-ZUm-`!Mw{JAsPsM&nZuK(BS43LfHAzI&&b5XK_7@zOI z6kz>@R&ueUC}}w;gBQyng(uveK{%jLY4?ix&R+82;nn|HqC)=5^_xJIBMEJVj`viR z@zwxUN&)Nd?trqVQk*g@!?ff>EPbggw{3-v~}|KDd(T}nY`^O zqG;}@6_#w~`n-qsjxg@?oF4Jv3fUK?{IQRxut-`WtF_Oa`G4)}=iCGAq?){XeV9#Y z)@1hy|F^#WCX3P5Pno-ZP`&a^1v?4xB_zcu;OlMH68iM@>g{xLw)eBSGlqbrc7FIQd>|-ck#Kh=-C7EdBKxs0-hcC!wtH03wh266o z58?^h>l^>Df2eu)Om^!TrnrK|OOlwYU4u@T5D~-^SnTemCq84(8F`Q{uZ{3%}dm zpZ#zD)~WcVy2G`j9Wzx#Oo{`P#om9q?E0t~(-pX+Og6+7&%9Jf!|cQQYqr zmRxl6h66O=2mI9^-yo@pKE6S3ee2^lNY&!wH|Sg6{ixJ$_~Bb0 zHwhm%32u!4-)R!2JZdT|ESE?gX>Tm0NK@%-_oj-~WiVfA11}{GFlf{T2Wb2keARjt z*7=dpHV2~I3sbtV@|9HN>}O$mvLq2unr-JxmVhZSyhH6XKJc8f>#ov)$CK{Cq!ime zTCP*tBwt*#`~2=3ilkH>73NK1lW4=h@BVP9RyJ5uI+c?}RIXw@Q+}z{j@M*_G360* z{=)8g`EQ(8zR0P!V<3;M(oSc2_jLn(;O^N@-Lf@g$>YfRoa(gK0=8$^*GLIRxE?lWoVGYQF&KWDQU+diKq z#Y4^m_M$;@Isd)!&8P>H2t9{ywW0^YUDtDn2Vh(uRs|`N4QpDQB)?Fz{1DvT}EQ!6@qX-PZwcmMd+~NfQ{}m3knLfG)-$Y6=TC|3r-B+Arf*{CcDI& z<>oa2s`odpR}qOJaG;N@;#=A4!?e-BvA0*qK(sY`k#jsy7le_AkUDD8;<$2I6A}6( znFP}P7Q1E=i+&%CrdQcO9C9|ymW-zV7+3U}9rDgt45c`*xd`rI3Vyl!tu&s%d}oCO zPT*rF6!Mco2nn=oJ z3{zSVC;MA=A1XrO!iV`6L+ZJv`M6Ky%z}>UOoK??bN5a;(;w;i@@>3(c@muD23qRx zS*+}b^6YU(+4p?foxT&Iw*xo=Dtry5M-!g039FX$UkMZLD0W@1EpWi8*NWDr7JUL% z{h?K8&RVfGsT?`b0oL}+Zy(^xiN!maFQ@sWh_HNx5E*a^p03}r7B93xbY}0|x@$N+jI2uN5h4+<2Y8fDpo&hg02no7K*}@32 zammNWZMwV#(v#&Xp{u#=krvx_SCy_VsItQ@f2p?SLS*OD?tt0C<=oz;K$4%`wCoXO z&dKv|6Gl9Fb4&!o&?eLfl9Tl~D^j1V2<657Yd8IZ=LJRK*OZp{JM~FjumkR@=frwP zt_H==9%BbSN4`-nAALP7j*DQS#Y(n1`UVVu7R(?5 z2N0vgUlv^_ahi7z<=tK7j)gN8jZOB~eBoT%`MYA^g-$#y zzX!z*lclaX306*FqLVK-pDKUi4X=!5n9LW=rPCDVI_fKScF7$b#2Mnr!~H zm2cg!;FJ7~p%RT&r8{+8g#j@wB>hNCm;Mnaptb#BHCOndhEd9=muEuau;E+XePa6? zpgVuYepXoF&I`NE01b>l?SFNrzdBmZ>nq9tga^^{aQ|7p)1Y~ z^%b4iUO+89vWmAaZVA?^*DBL&)So6ff7VZY7{ZI|ehki118TtImx&MP4pEZO(I}3) zo_~3rRaU4t#khlDipj7&dNH# zkwgl})-w``v=vClk#GN+fuC*~I0OcVR9WBx)l(j< zyKaasCBi}`yV86%;-Hy7*5*oB(gup>t4~Q_xL&^D;zyh_uCkszP0n=Yp3os-S~K9; z@b!TgYP-{0mAD!Y{k`n*gHe2JjLy6l%|{HZ?=Wv_d@Ci&%HqIcIY+lGF2rd9()!>~ zgFr{Dv%!LyPVVf;!vp*u#0Tu$sARIATTC!DY?5SWGNhh|))S#~JKg`V54kc2p@+ z(=d7lb@#b5Q>Rc>Ef>xB*2ITlVV-pI$&nb7ooih8u@-FHSM;{1Jow4*Qg7PtbwEa; zA6=N1UbOYHe0Z#kP{yUbz6k#%!6Vmf}@FMeD z-jF$lh1c$M*DAu5G}={sh?G+v@Kps`$Sbx(gtL>sr&IwCDU_rcucvgXRt@oeg+?0K zP@enH*#C{Qg%#v!jH^|8kFcR#PeTiN)^yoxM@b+YW{A{Tjr-;`N}{!&S~zz+dkoxN zbp%sgnrPBf>m{GMNn#;1FIF69P&p&TM{7q%O?TF? zMY-)zanW0iC`C8fq#3S>&e1&wVP`K$pD5xoq+~m&P471&sVKm0D_Oxkri)thya3^;Qk?B$aRQEG^xz#3b0-Cb1O_lep9gUFN8fcEYP}DkylS`S7Ubj0$s0j^@HkG5yM_%VND1V z^t=KYOKszcq~$xG#nIu)xlc5IfChnE7^%m>;gt<{UUrl<8g%`+m&$(u(Vnyd3`rK3 zrQd^46~E94$AuAx#tt(YHx}&JLTS?&oLcYK3#YRIhnR;CgaOnu3s?vqIH|=UmC1a3 zBvhNaBBh=Lc%yKh2ug+ewuKLJE=XqA+? z?v1|xQhnX~fTA|Q*xp9!odkd=PM4XJyllt>nB;iQ&9r z4RmI8FVO#?L(DY$2@pYOQmsx$!yg_vvTBbV8k%4`4l%dg=2~)*I;<2K z-xemnWEdeS?0(0PD&Ey%6~1ShKfw5~QkFN_1VrGV0oXSCFZL+FVN_g`+s+ClG@UW3%h8oT2akfyfO&xioV-*& zQY9;_F1N*=n#RhAXN~v?w^cH3=R`>tP*yr`;(!y;m)tzHJBG|Tyg76Ay$7_AVKIwZ1;v%(Kp#mI4hg9 z={KG$`tx&P?qVk^zcL zX@i93+uS=Vwj4Wrt8Ga&P?ZGkrZ5y~%HFWwywIb}=aEQ>-KK=zLL#PWwr$(EeOp2Y z$|yC%IgeOT`snn+)0I3Q`WtAexGc9_omF8NmFB-;XHM1CJ=`Q>;DIlsNs4J;yEZnH$kA zoyeakHB!zQuaZn7iadHyJ&Va?h@g2k=826YKt$}*Gw^D(EdNh4%U?%89l2X3ljX6W zoEaOVuo&rGCf#$-;3|)W9B`Fqc}COtdqlVp1eD32W1xt}I+6!)>HT2$P}$f-t7!gm zqb$xSMR&DuvbY|!wF`188oujySG4rCGAS`+fZji6R-b=O?LBW^^WW@><{!ekIK5b9T?{+thin50*=gvsU!<9s9McY#b)>UH#fEvNK!6 z;mDpn&4%z{Mh-aD8dsCW*6k{2enh0|294I?dhZl3d|?3WzwhhArMw_XV`&w~vB^WM z=AH5lY*pluHMEKw6PE+n)4HacFUWDcTbLs5QkBw)CBVM$)UErk79MJ#uKt6|1JNG3zus@JBFD6s9DkHqZL>t0=)lPi z_P|X$c#NtiT?Nc8C5Fp{VTH_ULqnn zh$ntHw2D2>p1)6TA30npXxb$&pWgA+z|%OlsXlu#w@7AG@e6Br;7y<`6VL-v{Tq<`Gw%Gs8ZJT#!gYufdPp7iKh38I$)< zPYey*h`TQwVjv3tt)ur}_-nHi3F`~IgPd8p&1-OEKDJbtAWNf1+8xeZUQ^k&`*JMNV)F9>b*KKVEMA zbspxb*dGorrO{}jjT}gwwELnl1B(WtZ$7i&oo5_W6J%kTuT5m-NJ==G?!fv^r(#U| zM^2^&&%C!^?5oA{D>!ppc_SuY={v!*oB~ihuIRmQ;zD+L3mucKLjvmBB0GBZZ&P}g z4Bf;0Upv{#aC30>-9V{+YB z+lZBiFNjfKzWLnOTNX3L!LtbZI>-OD60J4k@bYYq~*0XnmUjBLtp-Q0B zN0mC)lpgS-J;auZld3gAm;*kRZS$ACq~kFjKj@Xg-(8MbZp8(ozgoKkyh6?iD#zR2 z-S{wVe@gw5(SKc%AU)+k<@n!TZunJt(OH`>9u&i;(1C}-{3Y#OomyCx8pN;P7lG?b&4ssg(^mH z9X9M^{_J7qa0M$z(r{E?p+#5V2o*0~GMBS0YGHF4_z%1R>!Fyz?+IrYA83nzpuaU<)E;ica=jQxD( ze>!N7HAo~ukd#2x(bGO!-)yoG$nCP|GE(y zhH9JZ#KWT8*)A|JVBtOBVpA;l;YF&L%WQ>9kXA(}+HmyjsiKECZ2-TXnnNl+)$ z8c%MS6;jdu%iQY%ThX$uS&KK_Kt+ymQTJYJksZx)NGhg^00AY9= z4x2Qy8vg`2?xj^Je}mdL6+>8>-tBGRJ9PAVp;?Oq1`V#qZ9J)%o}2d?>;$~e_E0g< zVE51Jj%1xOUGvgL-NqRlNvUDlsVi_s zH-M?Pkk_D7P3ZZjPgUarj0Mt{R^??XVG#rA>pD+70O6o+6Woy`zaUV8`oc#{cDuZV zrnGSVy+s*;p=LiC9hKS|Uw}bZP~`{(HeUl14n7>P{@ZQA`G=?AH*?&wVWli)wy+S; zV+%M+v{GPOY;PjNtnGe#RwK33TYZ>;4+L)38PsKTL?{s}|3UQ}V2(#A-@vpHBR3&% zy>ysDv{6>?x4e9PL>+I|RL=V`{IzP#Yyu}`dCDt!+VmqlZG!}q9mi5+EH(A#VTCP* zDRr*waT~k$%x{T@>y~4@7W)UxZ~Ha}r))4uWb4+UrN$lX&UURWXTUKPUae<5u3ohK zpnKeoiQd|pJ)^}*o+k01oG#kS!ZOgFGf&N{-8_7mEuF}LjL8UTT^L=jyv`A0wBnYv zlBlb#N>zHr8|#{Fc)>P(VfvjXYH8~?g`u0^J#ZkW5$h3K zKoc;Gdiahj&(;O*h?s-4K0%HE>*7zAsuSwc-1KvC;#z9?Qf1+`lEcrrn_XvwOqIh* z@sWfjk-D3~iY>@-eHS1xyHV?d&D7w?)>j|#xXGMwR@iCFMlNN{QJT_9R9CWQv3!?0J0V+d!9X6FOh zta6O@CPY)qq}=F~OMWjB8jza&Q?u>D=mZFPL5vf_^IP|0qS}J?1ae(tBduofqg80- z$!vYdU%KB&Ki=_f6&ejA2|`|cST%oO$U+-{5dnV7tMG`8EiP30*=K-G59wpg{Jkyk zJaeu1WI>*ep91e&N> zi(J0Js|@YPp9;(>FkwI1=zs~fu>mbVZuxRD>|3Dp9nQ1&=UaE5Ai%2R4KS8LF|t72 zR6!g0qBerw?I)&p=P74JbDZ-9MUs!Pt9GLBd7^^Oc%4h-Ak+?VS_%(g_j!09U$o;Y zpM~uIBlY0VPL}#e+rqncg4yB&*l)0izHw{Ox?5Yq6LjVCm4`75t;%g@13lVG4>-(R z4f)>1J0w@YoxDZZ%aDU5r0h)-&S;_!bjs(&S|^VyY&bgqPHbS=9ulcmWK9(Z zJ3B_dGVx)24Y8Uuo4&bV;h8`@K@~4l9OHU@QysL8VZtjE7_g4%=7=$3vze<-oBaOV zd96B*R{r-oot0#3*ORo8xm?6dKP$d3y}k0lb^idiAazy~IfOdEPMG0MP|f(wfPY?- zi;AEM7j482eX5g_-g`FZ!F4BuiURKBOA8jPPT8h!3GvQ-1KpLUznN)Ba~S>P>99J=5(8>Sqll#IwmOYgUpG6A9AGEV$pQpctt$%DeH`%zg~awzp|bQv{ktjvDd{dl%}W0JC^-8n&o zYwlr|S_1P@Q}l@^3OG2|c>JH%50vpA^wWEUyZFB`$R@p23)OZkcLhQ(b?08Q z4aZ+`CpIV55q>Lha42YwC|uYf%pJ!SS5hX!P0={<&NolRw_U7nqZ#uzi`@OLL;Mfy> z@coysZ)rR;+rR!-I|>NLygwvk^xIv+X>Eq<5`ZSa*qL8vJO$oc)>?yM2eIABo_m4G z$`%t8^LnpgI&JlqLh==-&g!f?RqNkC#)mOz)S-X$z9i#t_`T&B_IAx2>v?lbS>_1k z4V9pQv>DoCh*h=Yj*{SR_ELz(EsGEC%&DnyETQhu%-S73R0s^Sf$qW`*q0`8Act`` zDavrzY;De+-Y!s5?~X3h+}ELV>hs;#D_(PaRoF*;MJCJ+iR(VrImir7f!T%7K&zHDAtDRrHm~c(dy>XYosD5+$4R%x|CIjsZ#h z18hm7>#WXkK8Wt~@8`{1=AILXrt%c`df;RvO>f*dJaCKX$#SulbLR5tzDApiU2J@2 zv#daQ-1`VYw&rd1PD&65Zd?1QQ0gM@*urh!;k)}vi51yG%JO+o$TSko>I>b+_SWt} zv7^MabuLoP9WsKYR2jO={ObB2I-&zk;yw)i%2U9Usz7YNCwh>X+u)(;JGm44sy_$V zB4sY0T+!&|2lH^(83e@}Dt$=VIW5!N-iK7KzP{{MS4zER3xB3Skep-Ie>e9C3o+n7 zwq_pWxiWj*367kDqVxS{GJdZGZaqQ6L=*|4h)*Q zK-Gz@*>H{lq`-|COwX)&6OPLx-9^w<@$`(-Pj#6>6Be#_)rtQi?6Hyv5FFTC-B=+H z`=S&5wjJbyok2i}7B#aNYMRGSmaIR<#k9^LbNNA^4Wp7P#x=bqx=Y?1lPm$>^T%2P zZ#7TxFz@pribQX|>n`QiPj9PdzDYcpwewf$Ti9IN$6(*bj^ZCZ`T&^E6PBiO!3V(< zr}5QY5GRk7wn2kpPmUN!TgxI*<=G}!mZfFn&GAtW0GmH|{glsHu}I>^kb2YJLG*HF z`Caj*8flaWA3OYipm7_%6=tWM?E|y1jfh{cB)#8n4Wj z><#p=tr|052;^x_wH0a%qNw1lW3?9YHx^GVb9wJytleRiwxS>o?Yh9o7s%ZvAiJ7v zlvs=I;FpTZGGHSUIRKG1iW-pNkmu4 z4O8>wga3^yH>pu`n)sh5zPP32zhFb4K|>WQ>M9oTDCGYjD)F_2;uoAu3GCS=01$WF z^@T@HGx?RBnzkj(KB$czeZBh(JiYPkpuZENgt#hiG9R1&UUm&!3(jS3jv~tNI-fq} ze||HdnMV5Ga4f9b<^U={TTMYpQOPfTW!}7jR>l@qt~$V;L&x0idy{);>xcC$sSmJx z_D{O%0CO2X>7q+Zy0T22;cK2F8B+_G%;Vn}=<9v>PgAZqyhFS0JIRtlz$rgaCDfno z8h_-#2lPNsSI?h)Y?bw~RaR)*@v&9b$5vS`3jgm|W$icN^i4e<`)Pjcr|A*+{|BDV zooBw5*K(>+2J!Wiz!=_=bwAt_Hx6YI($E@MVgtD_;fmQg{QwSY&v&g7M|E6-8Kx5y z&BPr3diRiie6L<&d-sW*1eC(^idYNI9;l^c5i1GjQw5|NIg|48UBGF9TYjW02k6bZ zKRqy9_v(AmS}?CxCpC^loXeWDdnTbMS<0mQ-i6Otww zFkHzK>U>+(XR0rCR)-yP#VK)Ge^Bx`w%A|)%* z;)Lpw@Jq-{gX~?hvg!UqIXVtCRt?7%eb zZ*|YbV-XQyV3d<*pt=07{xoUD0w{N^z$k{`18a_-pq^gkG7-H0JtEd&t207wr_mC z>xLU&z2|}ZvO6{fp+ zP+1V`o7Rd301%zK?Oee&{e<@O93Z@8$z=wl(=t9E#3X|Fl|lv~wB;!+dED@=?6Lxh zsqzjr@So8HewZLt+{PW6(ow5pyk^`3N%Hqq1*bVMn+G+L_sqQf6LZ9veGD4s7M5;a zy&{U)`I`}|?a)JLrv**BdLQ_}7tC8uJ5!nC=jBs;=DyEuxZXr&U>Q9jXu`r%vlELT zHrDelJ9HSi4l)todK z81nWJ5sMveD7g2Fi?Da0W#T0d^_J*Jf)(QM+x^Aq9gy zed;;m{y+BK1uW`1Z6E&*pn!)sSfXiwh?uJhLZQ|ucovUaz2#;Gm zGqp(A;MTV7=Brd@ijIPcii%BbMgwG+`Q7(3c&K-#J^ugi@49|o*Sovg z>$=QmKA-1sKlgn<^3z?bXI&y$MIrlkH(YiU&HIxU_Xt+Wyk{xaes}YF4TFRD9D&?P z4A;(uE0%nfoCc^gUo7`8qSwvsv8H@ytPegu$#EGsRI?C^IH8xR7PCD5_i`J&n71yQ))?;Z*mQEHmX0O}u9Bvb@Zn@rx>`u2jHz zdKI{qzusl8xW>vn0%Q)cc>=kvA4M0`4IGhux|W~cUU?G2fj^tGuQP#KZrJ85R?@W+ zjA@yvi{PyCT7|Pjy*Qv|a#_U13oId78a@~*jLp^6jLj145!p8s$^1$l9Uh$2dt$vy z&|47$2No=UdeiZGH`^osYD|m=!fb>BqC5%QLhTmB6cHHNxg8YsHNdJS-v0`>b8`2y z(!eFyq#>-T{z()rD1-vU=!>zF($2&sWVKNwyq+9BA+od*XD-tATxGMe2ttjQ&*fTsTRM;SfTINpTBjnt^KX|)Sn4n9UTxqx18AlpLQC5@X~|<^ zT>?d;>v{0zq+o^f<8;iwP#Y8^V7yWN6IO43D}e)Rs%aD^y#oh8sbagw62M*9O4N)< z3n;HIS~!FJX!Bottq7Zq8_8b-=?yIs@gm3aU;!r<-#LVVQ%q)T~K_J)B|!gJW@Ca ztm3r7D1VkM$t&CL(%p!?9+Qh9Q1+5?DyxuMxIyR!joQlY0mlw!_-SwVEq;{@Ukw!9 zD{^mTHEy8PlRQ7WM~3VGHd2sm=2exI#$Qj?iq+q2GZUED3wXW8?ZPZ%u#8t&S0W1z zl(-tiD`v}lu0pggM9k&JoDog%(9$ZG=)XtNlxuv%n^S8J{s+o zU-r8CbGKjz@Ot;BVP~{HSL$@BSB2UsoSZwC%e9=XJAJ*ha}R~d=V3XZh&_im51Gvz zXo`!XA|FmRphwGiepJ%eqg1uRZlI|n?R5A-#DADBxhN~!L-6f5e>7C%ER``pBJ5i%FlvaP1IBb)DJFz1VQzt-IZ@hZg^% znO2|6dbf%#+O39j88S?0S!Fv@ZNpr_L`!lB@w#}5?JLiuN2En82!Ry zMtBc2ZE`$tE9mMBotd`~`?3A4wXoX|!V&Z^QK7~BU#lbQRS|KD$TQm3$p92v4}4!Z zy@0H#Xem?46Ho+}W5N6)qH7+sd@W{`cd(qg)d}k5j4$rx^q&z5l0J77HnVeExwzw3}9m^o5h~YxQ#Ihn_IFDlpS2E3*4j8R}`e0z(Wq zY3;4qpQGFMi<)0LfhJKDe!F$wgOIq%w+o^4;EcmADZh*-)<;MK6U!@QDS7llbx2&o zEJE3?N%9gSW@s_l_;nPkC_)Vr7D6&pjhGWE;-e^dWiv`JmR6l!PrXg<(@d2u*K8eC z<+Rvqps}q(=bQq97M! zws}P&Kwvl^@o^?HeCTawl>hCbXA7kvl_U|+FpSr)F-x>Cq&3`EC`=TB!KF3)Tv|FN zDF9yfr_0A|)yQoHWXpJ`ke-qTTVF?ocdC#(X>+NRi@|RtG?dE!sBWgtPCWY1qL23O zJ%RG+GZhz0*f~z(Gff>)W&S=`*hb#z6CqR2@T+9vY!naUWN5hrSAcs8%nZnS@hl`Y zQ-pw}H8lGqtx#1+?v6Nj7{ch5O&+64!&+2awjH8g))UUS0Jdkd`o19MYKna0Y-eEF zOQS40u(%b9*(K{1L!fvW@QJ(9?7v&O`yPV*jry8nLJ%s2OTI)zQDX?{H}JMf_B1c*JRsW<8{4Fp*ntF?wr9#Sx&w+v? zcR*ANZrN`H`*U4$shCS0Y6%&l)g@|Z27NW{mtjSpD;^wzd6CfpJ44OX|J+q!3KoYT z>mzr3Iqxc9?_3evtN(H-OLCk6+Y}xNEvC}Gmd(7v(rI)>qcF4uK9tXiI1bP8>vt8u zw{65I`4|7J&|(KTfF_v@>8k)nMS(0@?+z|+hbaZbEVV;(fY*;iN@C`dTK`LksYMz@%lW1k0LYSz)b)wqw~J9|y2u9Y z?`9wtMrJH|$iF)SUCXcbC(P=bB4LPNWqz5wSH4iiP&syguox(3eE;RTs%H84(l*nTQBiNRhqG(U z=aSGSM%K!IE~0R3%RcG8!lO$|j@Ggva@^BI`Tr;CRuTIESP4@wHVN3+aGExu$FCYb zzxvUXzFNfPr^Q{l`lo-ZY-KS(Zm?T9OE=BoNlQndxd7d{iomsa?E`>G&Zw>yMF*Li z%C-GXb6?qJ2qfA1Gbt)WH|o9^zU~R~&eO_Swqg{p>9%}C5pnr?%yMR3bElt=LhGXKRCZ{mRJAOM)jxf_?sB8uc@BM-YpwVSP@ir5k&UaC!gryW z3(OTLmTK&oTm&q#t2FYf^-ILXTcJFYqH3~l&V24MF$o<5c_09~`eKFlr`KjHJ6Hhl z_rVnL!9vm6tl7eEPo`r^1MI;=WCrIaB2RIjRH&j1TBcj$sPCmtLYU$o48HMKYQ!oS z*YD6M>Y`<=#e)kQS*`aIe*yIy4vG4!({#do;qL+L58c+|!0WEetHQ(YNuQbpe-afLf zq{DmzCd^Y6-kD%k*xK&Qai0^JrAfHB5>(B(@Ot%60(etnn|+K5#@c?ch*twq&e?U5 z4HFH5WIz(To|7E|xch2_7SY9G#%GZrdT?diyL{H*WF<-yB(^t#??|vy={6+}MI^z) z2J-HpgJ}Odig>-81)Vz*v$l4ZeZu#gpGON}g*MTjK$696LXxWvzj(m48N_V?V3a}` z`;y0vR*zo@AGFJSNTqyzAf`rsY{hb?T_I0NT!OK_2m_%5v}umdY1((2FXD>qbBl>D z%>h-2>RobonM;{YP`Gpk#Y3Dz{>@B8^j_E_!836L%=|<>;D+gQqP{>01(^nP?#dS zQHXq1K?BWFSPDDlA)F6^P^RMqSUyz$bi0{JDl=0R*OUZrgh)}!Ih@a%&4S<3BNOTx z&bLcz*y4c1;SZNGLIE_t+y6ObuE{BaPtVvoyEwkj+(Wl)PjqWoOhio z0Or?K#ti;xTGSupxhKoCgtq*`^$;dQEBl5}7!&xV(BkSc&&7!Gh~4tkrIwat0v{TG zq~b+2dZxn=q7{3;&EfyH&63y!ZudOgBCm(-G}U zmDREoL0uG0)LkPfqY<`*~0qTE=8UKS_e5kl0ad#Z;dhS$M z)jx4mwv;OliQB>PjgBu6^}l72$VxY0sMiFV6w9#Y+k*uISM3Q@(N-k8OCee7tH{Xa zy@2MI^tnr}<*y>l=~gZ~39nDIy{6CY8P#}9*jhkpbw}F@gGHuOlt(+%&ou9HO4Ped za+;a)K|>fO#)7n`%2bFzfnq>-??=^>W{8jx*r+RZhwq8A#4GX=TLn6L((s6_h>*m% zaRGPY!t1(Y+(60c#H%p*x>ipeo;bHAFIlpr#h&dtwr7!ZU|uGC0R9YQ9VCm9GC8ry z;`hisJC_)S2^MOI$Q`^%JBOP-xX~AWU<1oj*c{C{-<-?v6fwoF%TLcGG)uHe~nIyA8Bkr?Z!fc&`ebuaOQmB6cVBLI2aIANcr)0W{a# z$Uyj7J&kw?FU2!SJIW3)xw>G3q7gIqt9|NA#f)p*Aq@kE)uqH?Q8nQukPt|?&);y>2z)l z@$Tt#?&);?Z_(*E3E20(pnG3XOEUj|N^N~J)I=A5!eZFd{4xBnNHUkHS&ZfR^B_pb zg3h&1Tr0<3ba5l#n$7p`w?6WR6FuPKtvk$S4_*hA$1-IANe6z%WzmhOPEJN7Sn5$O z1ig1dZw6hfXWc1vy=}6Xp>SrGSRi^Hv72mJ`$aY%y~_0G;9jdie;+02C!n2-@7ZoO zkeY9|UHm;oR10ADBCZ|S5Pm;Z4&V(A6e>QNr_^8*J8aGM#6^RGccGRvZnvo^j=dBJmL<7G{|x zbW<+NAQM%kq2Y%t*9BGZR-*m|HWa1&%J(HyHf|aAzp^v->P}I>#NPjzmW)p6TI>Ln z08h3bXPde6%0fn#0$QN3m4rD!CtA+GlfmZ7B_iJ~LUq^PxGJ`ojTnf{hhv_sbmz{= z{EM%5*$oDUP$P-Jf3kOP+d|oyMmt19Aj#!I>HsNHB}DKguyheC*!?wHfLJBsicMIc zw1%P_p^C=-mng#6n{e{342IS%+c_I{tJT#Rw`8le{T;A~-Zp^X6#4!HiHWNtuS{B5 zo`x(CX4ff0RNJ{ED2=>$>Aebv`PX^Ne~(1#>YoHa<0u(rJVYC`pl}^aRamiuaeDN4S67#D$0o z2k{~=0E%WA%S{CAJLjX@R^4H^I(Z5K?VLz7Ubr!@mRzx=2mF?*>`*cFH}EQv`ydGG zK^TM46^0&-Lf+=cZz=hH%AGe-kUd8jtsh{G<=2y?9~H>h&u%0pLrbhozpz{e0*#Hp zBz{i><$)A><6IO^LVIs-cU$H$$!=V@wF5QB?pCa9w{t3hYLA2aVH8Mn;$u!Kj6!1L z=c0-@2p+I-%XnE8VZI9l{)?ut<+sf}o$Po)4bnxH&Cyv6m^83a5q{b~xCAO0H!hRd zXy2{=h*e>>nEUR#uYuA|Sqmq776lBQD)v@1xNKEU;(r4~ zBO~;=azRPCQb1ME6;sL>>wQl2l0Mdpn(Ow!QD?)9nV zWW*2+m^i#vHl}j2%@GHUa?FBOiJvlDw_6o*lq&>9h?Bw2EE2nJ0-<6T#5EV>6${aa zaeqRumG<{1mSl=#hTevQy%C%_M?WpHxi|_*`~*Uc zKXO`wMLtE5@^Izahc%GN&l51pK?AG6*uW zel}obF*Fzy@AbAm0^pJn>RS68Tsmdbn(;@`*>HBP+!=euiOSl(|5v^e;;Pnd)J&21 z|EfkadU&l^3N{?@s%q3ygp3(kvS$h>#TCq?ja;iM!JQ*mjMDv^uZ%L2pDlNpqdF(| z`5&rRTf(dir6~AjuHbg$o)h(zBp-9{7Y(>+A^y9((^A7o9%>dz4y#y~a$bBb)lW#S zT)-q108X&C&jGWU%XpcWT{QNd9vx35he%9B7$fT{EqKUwx&`vuP=_|Ru=|?#kF*4L9r5lm$wLrB9aBI! zTiVV}2)OmJhr5X*qFqWVs!W%tq@>Oo-?$!ZKN3; zC#3G>+zwN1MMtE*+}6Gs%vg{%86WUz3vAZYt@2O%>zZ`8{Z zmpn+JDsEC~4cnT=&Bn&AP8yW5e>NT$Kyt=G7X1l7!QwH7B-tB*(Kdf#xhC#68Sj1( zF&cI)Mh7tng@AQ!%R0hD`0X_fq$=JoMQThgn8nJ3+YTAE>{Z~5ii7$xJQGQ|{t|VM zDvihhAtztBK^8KSA;RSo$451qJKxAF8IE+-)ckOhGvt)y2& zidT6nahtI(ljZzeUZeP8lA7m#r8GZLG+o?i`udz#wux7;cuP7dP@OFt`tWCM&7A_l z{|Y~r7WBIS<&|y7OYqbnAvquGiZxpt-%`7j2^{n6TU$bIEIvsx-U5hx?ywc|p(xtd zMT`&dqB(%Y=0?k?Pfki8;QLmDNKGa>uTiT;8m!ufx?<(X0WFqbf(0$nL=lyb$xjC& zJLhvOsOO)Xvr7dX4&;3h47!Gv+%`#8hP#oKV3ayN+1wX7+VPkklP-7R|qG;>%B>=K#He?^FQL(dh$TAvngK=Cw4Z2QO*&QfG24i{|!lWXgxJj`e zG*$_A4=thhGEtCIS0CHhz;M2O@3qIBy!ANGf3EhbEtTqrE&kC+20ZRN7?5lkVEj=; zU0g@evT1h7&PiC-M%mXWIZCh;v7 zJ7=NEo6WFHP5))j89h;Z{Au9_zyxRbwzp(0te_9TYq*2*{rj)g)2vps&5=0^xV?Cp zY$7LMgOnV4KnCUo;^M*vEuXAPJec0Wrhus!2FqW`szW94nH0Y?%YRoCt{3nY0#d{# zfrabOme`9lhY=Ozb&zt>82S@*I{fk5Xuy;ESgexRrLwE2*lgg)u?v0`eLdXE$#c?@ zeEXleq!wYCuw`oG%5c~qG&VZOKAJ7UJzPcgKm+uJlP|zQB)g?|;lpWp_Myd$#AbqE zqbqJxPDEdF@qt*?IUz8R2KKpb1t}KtTBX?+au3gB2hw83_jrgEG?`IpnDykCb;o4E z2*bQ0fl>sEZOtSwi2Lx?Z`#Dz#lttDq$oHd5-z52MFd3Rxmr*upOrv2pXn;?)?DiVI6DbPM|Gc~q;VO$npw|lu% zNoQy}g%+x=y9h+LJqGeH^*nONtUHD4Pr|6X9Y>)NF&;axx?;9|3WPPutGKPxSsL>F zM*!Tr(oos=j$&gfn|45~C*bulQFrqzvMDwlRlg3})~%(sEuRc6(j{U7jkI65V@GnQ z*W4$9Z5nP>{cv`NvXmNmpwqdB3cewoM#w;lK!XyB+t%IMG2FVG8j%LB42fM&fWCqi zj@XYdKOPnp)I6B=sFxFp3679%LpF)~Rhic5)DWlV4V$%wxQ>KZCwH#>KN%iv&pK+_ zy{=PY1V0ap=N%YLpDQB_*4ejqqhSLh#aLWV;^SladSdhaOtov~P~?>>DvC0xq_l8c z_d^ZTH;4sOKLO!I&6cgb6DYwfYO|sOC%oQrG zA(vMvp2Y=6g-yf4L=mSgDGto25=2x$p}FdgtA~?ja-K8mLI;?gm>lhLRA+0p2<4kV zlOiFWyFlI|5?5MNUY^1qtb!3o%j!ee{a6c#Zt@vLSc%ouP#9h2eM2$CO}r!%;|0?B z96nYJyN-|ZzrMx&^NzjTfj;}9EIlXVZ_jquaxsHp z4Pf7aOx|b(QLtX`*OuDJei%Bn-g4@=>_Vl9kl#1-0rSUWsVybZ$;7?GFhlb7F|e$a zUXpuM#`NMkBkH`DRwX2du-sP(Ly`dJM+nIOp+eod%~4D4{}Q%6@F!y~YPIFfgWRUd z#v0PT6IkVT9OE$xv&BI~jM&}x*d6sOg2l)bruoi(y|QUiXL#ljILHP!Nbk_1h>Nf_A)^iND%S_kvfWAO9CKa4*8G^uiO zZ=U!S1ekgs`=%ZGmwg4xws}(6qg-%Lq1zt>OX<7K9Vd!plkF_n~c}^Te?(3E*ldmyNjJsVkkN>}PCOoqst2 zORyE!UcPpjyE~PmO)xA=t{1s$E1 zH@0jh`43JV2a7fz+G;BkNpH=s>^yK>R&2jn*527gb4nxqe~O55 z_Z7MO46TdqeL>&cqZ8kw6H7e0XZw%*bdOGakF9!-t=dwb+$$39?FPEH8|YTWc(2Un z@`t@nX{pY-yRG-iYzRZ{mD%^o?0aSQtr&5y%)VD<-z&54mD#uA0l?D#Z7eRds6*c$ z>kjK|yA%)evh3=yQ>I$y6cwauF1n>?=T@xjU<}b`h8agFE`>^3HJp7FlTvZEDA70V zM2We(K5A-gC)2#C)@jYf9Wo)%(14zrWU} zrrEuqZOZOk?ST^A08@~!E!-4cm0U3}y*jug!ZTXkbLzF8ig$_ocR(89v6bYTZGDx36t-Rn)1c%PJRQL6&XwXCJqZ9$p*pNQ7$rir_mZf7h>W&P#PH zGV`l2e*VtoeLCABRdnFBgxCS*xRFZ5i0=Nyr4!XTn%INtOa(`QpYJ)G41QG~p}3gF zRh(U+4OFFQLZ<2iOqTSf?CN3aOwE(owgD59GEZN|w?1h0v@Yk~d`bhC`1u-5G1k{( zzyg{v=Fz*cZDrJ`QPV>JtagRv#ENNT33-=)#x3%LX%vgTm8ZQV^`twVC$G2GxMo2LwxJcoj-q> zn=d#u?ln={M(7QkPLc1E2ty3(PL48TuU(E^%XyOQc=)4N(!;bI;r5cVXU|?t{_N## zK0d?UT4Ke|0sZC=hB}@w-2Qk=l$88jrO0)Y-{*#S7p0^?uldrW$SjveF0orhzK7x( zs2?AwKP=bUO>yxy#weSb(oYmc;45?YHRfvOR^_Mp4OK@~mDT)pUfmwdmkLJCT5}2{ zm&5|GJtI4pwr9dQBcCWfr}|X=Amy{htkEvDAC*a zqI{dBM#V$n=jp7NX1kdBjKr4LcGOv^8b6LHaD8&@^pFQ`tCm zoQro=etLBeJiHxg34D4L13il(Jk8N~e=2-v`xmWLWEZ*O>kQqDud|i6SD-$pv0nRq zj-fB26_)>f_2`%Q!X|1Cb`UL}SeeO+`{blD*Y(->cqeroW8Qo!&0{vm8}+iMMQAwU zyuy_l%Av5|&gv25INC+I{mK`)w&ja-^~BehT^(r6Nb{SZ{7&s>+Faz?+0-@IznDQ6 zUss81dO`=KHD2O`iqv)~yT_?hG;>==8|GK6?1wKi1D~zzTFV_ZPs^FwY17G>iiLJv zbjUB{%+EyLrt;=f55ND#k=Zo5D=|1s-7#-`I_GK!B38#GD{OVRiD9tneVB%1@Z## zz}1XqD6gLBR-q~~Pg9E8_O$lEA0MIaZ=PrVy1(`XMC$zUU%A1BpKng2QDoj1(T7R_ zOK;m_lV_c&(zS{CdUCo4c(2O3q#vefDb^9IHtvF7&~*dIla4RlNyk&>8$&H;^AipA zAk!;p?qT&Eyr#!KTGh(eHc}FR!uT-Zpn83@8p+5jSU;j7xiwy)Ca^7%l*!U5Ril`e zbuxu^2wkm0M8&QBa?p+Ou~}QUFWv%P_Uy>+5sl;&2)pzHEWJ@)dtuZ}IQi-JOzyq0 z(@`H09~r1KuT2N@mOMsIuI+^44+%KrT3vfw|z{O+3vsjDz^p@!kqtbH9Jvi0$C zIH$jn=R}|=N%+z}T}{0<(%jW8zNqcA*w^$}G`(fid2;+?M&`)CXRDanS zKE8wP+&7c6|LmCpEw?O9V%T#Jj7aymt8lne)-2xeE1|1eQ&ZNIq|emOJs4kQ7_3j?~XhkdEtZcvGhQH|R zc=EP_vm<@sf~GTy?dYc;3~Hb9RGV#&SwlArAO6MU?m?ok;i`-}^0gda`)B^%wO1Ku z>N9y|)NvL0n{4;Hc!zFAUB<$uZ$;{A%>)<4)CX6-CvLhb{#sA{DqbX$1@!~+?1=8D zmpYlc7MW-0b2L+1e()&#;0o#AB~+HrkBT`{W&1EKFak#|n-2}7>?@ybC~_EhLhpAP zO9w6DHIIr`uh&k%&lFV^7iD4C;54#mUeS!6(E#TbfcXu8k1H%ldccU`;V5BV$|EAE7Dp$hun!_D~723%+Uu8@l`8*vpmhqHu=4!Np%a<2cR@rrQqgPrAl&Bs#4vU z$Pyzew4>GQRoIWvYHvNi)9Wi|stZjO#QZoxMYUGcDS30zYCk zo@EGvHVdfgK->ra(FiUfrc&M$(^3z!i$}Ct=TeAD(!4CquL%E{k>HEaxL{>|MXz~v zi>KVM9es5C*OLcAEHxfWSj5hF`{D`newsP&2x;q2&zkXe$Sd0%pS0TPW&ZB0#PDuP zMQX{8&Wb86Aw2X!ln5(vgxaY^<{o+!ebu8-2xaWf#cdyk+7>|s1qJR)^{@&po~Boz zf;etGX$Y)X`7y%!yWzEO_SX*De$zI!>nPBRL825#HHL@{E9Pw9Gt~Dp`!3nblag0% zzY5*>_N$J|gMm(%Nh=$0MNsiH4O3QVCsd`bK+Q9*Y6Q|_MzkTis?i4*fK`ogh#Jij ze(td-WKk=0Q%sxj4fSPq8qx<9-TaEiexa*1``vJpGAfSAN$bi6tbOf;qgLx+uCpqp zEkXyM=^>K_eZVLp+Y#XVp9|mdBMZ=KI1YFnopy1He^S>pFVT4*FB*@b#@vLT3X!)e zZiLzk83xrrT0%diqSZ#`&;AG}{v*|1hs{DKk-=pn_Cbjrs7hR|g@*v<(hppB$w3 zQpF?Wxt_7$@s{1EKP4x~E>fO6%Slty=GSk` zUfl|$7e?>(jEc+B&^HHKU+AOv!s7$l&^AcF93P<>-HlfuJMcjKf0m{rilpV|MqAn< zI3g%L*$HpEUwsFq<)h@FAVljNhZP9r6j>e{H>MZrldP|i+|#Qgb50hI`}50)>6zb5 z{wvcymJrT+lA#8LrT7ukJO)l0SbF84^txelvRVt3*Ptc(dh7Y9p*Z8Y2h}|jvo(G3 z2GM3MZyCaN&|PVV1SaVt7U9bn%!X&I!2{oDqK|Qv#@_|^udzc~HDWTl zoFS{D4JbE#jUx=dMMWC=8$<&j4~Pax*K=FzEg^ZvXKcI9jP!-;kTAca;Ft>nY&?k9 zq3Is7ROt_5E=0!%%E+!bN?L0igd^@L=vP6t)a`nzjn9DrYZb9x6^7)= z{$(XJPL1r}KigO>+XXK@vA;X_L5}RT^3;R2jc`SJHNO&?_VbO{MiYsJMNSGA+tW^S z>kmI@FElN(Zc2zS1`&_QL9kD*Xtlm^l8;yXc2?WO+g5(exQL=<6+-F=oJ$7<4%26<>E{Dqz!cFQ2#F~ZnO*H*p zb7}PHg$B5T4x;br5V?vOSkR6CxkeghbLUE%bE7L9MPpkpr$OQOOe0U|O3dNLnds)- zkxbJ3Rt~XTP4`RJ2BvB@{0`?}kGg0oS$!OkIET!>9u;cbivZu2ZE|0a!%222kC|6@ zbIJ|fC`4khXr)*;Jy@A-e)md~erl%%>VQN$dSmhUvU=rA>%gGhWi)f9^sTlRTCh(~ zrQurHezWnT_V&dku(G~Lz55Vf1!ooHlCq#Hj#IQD@1gUA+?vIrZ_Jt2+~RQw-1H-n z4l&W2IwzuQJfC+M;(y9jQc4n$QIx922*uYcKK9Ypro8U49;$eKMuQ)ath8!GM||r1 z?1YV)1E>{Oh7SeicpnjxZm}MKXpyG+MpWc?HvOr;Hfj6Kf&-Bo@e_(cKGi-W>|Yxy zm$Rj%mBOv3tXv8J|KiBc(mk#%;>HjN13s2bAwEN9)|HA>Rs3(bHw}JeU89mWzw^#R zk&%%+ELhHi=#BD-qAfl?dQg{BHL97r@uQPDhGRLkv>y}y+vM!@;9yhqw#UZw65vAg zt=xhTw5+6Z#Fq;n!eUSHzW!!X(gQvR9CZkP@1gCotw@N-!c{^snAic}1OUP{`Qr>% zig184nNHH&!-3l(t)O36rwX=?AOPK`B5ug^ztFNZt@==k;#%<>TRJa9 zrB?l1Ov{*mH$}%=Td_SdUxZBIih5ztNfo& zIovH}8}=*Fw$+8ET{brsrV8qd1fLWi<2r4sTfFs|qKpY@FZ0sThWQ8adfxC3{99FH zhphC3en?IstUz=R;dF{mgqfcFt{$b)zV(x=nP+VNNA#Owm7$hEzN_RydSLG`E4 z%+Ez95RKAl=rPOIbX~T_Upg5KAKX*5kumXK&3=8{`ro~|Ogn_}p@UaoNddu~K(uEi z1%CiQZdNLuTdmpB({QZItKZn#<7xq(U&qavm&)FKbLgx!RI6U*ej_*rAobd^FtR|M zB(`w8%TJB@wzy@DD1(cx(SI2~V5!8r5> zVWBDLz?OOrb&3Dx!IyV@wa{>Ac|eij{{7bUi7&qQ?BA+dZEWyMM>Gs@#f=O~ZCDgh zF=DD)#lTLg+7KmG)Dt}k@@D$_iGO!||)E+r4F(`ELr_|Vo2xs>&FaqK92k2hA9 zIZ@*+sw1{04Fv#i;D95c2<1sHg5Z|tPgW<25y`43%SBvmM;M9C%W1Q|qp5H0g@PLi zDcX)Ii4FFq7vF9N;NHg!VI9%W9!#$WETVY)Hto~S5ivQV0-iXMbK$k_^Ojy}ub#f7 zZOW%HIS(F~cOl8E#_X;u`FQ_(X9HsgV4BFUw<3H&6hFMXD&9I{B+!aOmo8MU$^TxL zhuf;5g9#ms(sf=jXSi8a>}0qVL^=iAr0F3(2bfB+x8pt+w(tPLB;V^{GN7wpnvu>u8UMeLcHQ=&-|A z{nD&Vuf<+q8{b++wxCHs8 z*%XvD)gj(l*}eVY`CsykZOPf0`BPrS()HJ;M*Du&xa<2pYZr8Fq$QrLmXJ$r>;3vv z*e}XYu@ZDrlMeVhx7)fpA%bvHF^h(%<_l)XOU>qJM^?~uI42;_2Bysg=yAxPQ*c&t=7MQ z+Tf~D<%(Ij{v;A;XSYqg-FT-rCHPA2C#nUrXC-pr?ilg-zbXv(4*rmem4&`H!{ZF^#j!J3_~8m;TPJwU4l|xmuUEp-s$bNH zX8WZBSD8`O2oTyOz9e|g_Vd51o!P&v`1#VM9oC&W`^QjK;q<3_#BTZ@pMD_be!x*V zCIZ4&2r#l?T{op90@anGvxUq%_>8UTOzZf0^VZR(j&6!T&dX4&4}|-Q?75_60_GU7 zNyr1RF}XLyo3=t0Pl;IWzzVu7D5!WGCB0@^Qe0137aZ&m(a%X!?7O4)a)(;qXRcp?fSJ51BWB%G3gX(i;zp
#>|5 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⩔}Iq*##&#Cwz8 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 ZhY3tvOA|0j_LZ>7?(gH^s(~s& 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 Pn=t;-`?vpc+LFHk$)RC5 literal 0 HcmV?d00001 diff --git a/packages/preview/black-angular-frame/0.1.1/typst.toml b/packages/preview/black-angular-frame/0.1.1/typst.toml new file mode 100644 index 0000000000..582004491f --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/typst.toml @@ -0,0 +1,25 @@ +[package] +name = "black-angular-frame" +version = "0.1.1" +entrypoint = "black-angular-frame.typ" +authors = ["Miguel Montes <@miguelm7654>"] +license = "MIT" +description = "Formal academic slide decks." +repository = "https://github.com/miguelm7654/black-angular-frame" +keywords = ["slides", "presentation", "academic", "beamer"] +categories = ["presentation"] +exclude = [ + "example.typ", + "example.pdf", + "assets/example-preview.png", + "assets/fonts/**", + "assets/curves.csv", + "tinymist.lock", + ".vscode/**", + "tmp/**", +] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png" From 41f500fed70f34f07d7058ef4ce5a4f390dabb3d Mon Sep 17 00:00:00 2001 From: mntsx Date: Sun, 19 Jul 2026 00:52:05 +0200 Subject: [PATCH 2/3] Fix black-angular-frame 0.1.1 package checks --- packages/preview/black-angular-frame/0.1.1/README.md | 2 +- packages/preview/black-angular-frame/0.1.1/example.typ | 4 ++-- packages/preview/black-angular-frame/0.1.1/typst.toml | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/preview/black-angular-frame/0.1.1/README.md b/packages/preview/black-angular-frame/0.1.1/README.md index 86f51dbc78..41600f2896 100644 --- a/packages/preview/black-angular-frame/0.1.1/README.md +++ b/packages/preview/black-angular-frame/0.1.1/README.md @@ -344,7 +344,7 @@ The file `example.typ` is a complete demo presentation covering all template fea ## Repository layout -``` +```text black-angular-frame/ ├── typst.toml # Package manifest ├── black-angular-frame.typ # Package entrypoint diff --git a/packages/preview/black-angular-frame/0.1.1/example.typ b/packages/preview/black-angular-frame/0.1.1/example.typ index babb1b5b5b..c84bf7f3eb 100644 --- a/packages/preview/black-angular-frame/0.1.1/example.typ +++ b/packages/preview/black-angular-frame/0.1.1/example.typ @@ -3,7 +3,7 @@ // This file demonstrates all features of the template. // ============================================================ -#import "black-angular-frame.typ": * +#import "@preview/black-angular-frame:0.1.1": * #let presentation-config = ( title: "Black Angular Frame", @@ -108,7 +108,7 @@ #v(3pt) #code-box( - "#import \"black-angular-frame.typ\": * + "#import \"@preview/black-angular-frame:0.1.1\": * #let presentation-config = ( title: \"Black Angular Frame\", diff --git a/packages/preview/black-angular-frame/0.1.1/typst.toml b/packages/preview/black-angular-frame/0.1.1/typst.toml index 582004491f..be4844e547 100644 --- a/packages/preview/black-angular-frame/0.1.1/typst.toml +++ b/packages/preview/black-angular-frame/0.1.1/typst.toml @@ -5,7 +5,6 @@ entrypoint = "black-angular-frame.typ" authors = ["Miguel Montes <@miguelm7654>"] license = "MIT" description = "Formal academic slide decks." -repository = "https://github.com/miguelm7654/black-angular-frame" keywords = ["slides", "presentation", "academic", "beamer"] categories = ["presentation"] exclude = [ From e5e0d72be56c56f12107b11c17879eb639f1b7f8 Mon Sep 17 00:00:00 2001 From: mntsx Date: Sun, 19 Jul 2026 17:23:36 +0200 Subject: [PATCH 3/3] Update black-angular-frame 0.1.1 before review --- .../black-angular-frame/0.1.1/README.md | 6 +- .../0.1.1/assets/example-preview.png | Bin 196049 -> 0 bytes .../0.1.1/assets/example-preview.svg | 6057 +++++++++++++++++ .../0.1.1/black-angular-frame.typ | 18 +- .../black-angular-frame/0.1.1/typst.toml | 2 +- 5 files changed, 6072 insertions(+), 11 deletions(-) delete mode 100644 packages/preview/black-angular-frame/0.1.1/assets/example-preview.png create mode 100644 packages/preview/black-angular-frame/0.1.1/assets/example-preview.svg diff --git a/packages/preview/black-angular-frame/0.1.1/README.md b/packages/preview/black-angular-frame/0.1.1/README.md index 41600f2896..5e968dce63 100644 --- a/packages/preview/black-angular-frame/0.1.1/README.md +++ b/packages/preview/black-angular-frame/0.1.1/README.md @@ -5,9 +5,9 @@ A Typst presentation template with a square, minimal, academic design language: a solid navigation bar on top, a two-level footer with page number, a tinted title strip for regular content slides, and compact box environments without wasted whitespace. -![First four slides from the black-angular-frame demo](assets/example-preview.png) +![Slides 1, 2, 22, and 23 from the black-angular-frame demo](assets/example-preview.svg) -For a complete rendered demo, check the full example PDF: [example.pdf](https://github.com/mntsx/black-angular-frame/blob/d07d030e63d1b2a4a61f6e304819c92d03cabf90/example.pdf). +For a complete rendered demo, check the full example PDF: [example.pdf](https://github.com/mntsx/black-angular-frame/blob/386626cba356b4db9ca8070c612c74e54a5deef9/example.pdf). --- @@ -360,7 +360,7 @@ black-angular-frame/ │ ├── typst-logo.png # Local demo logo asset │ ├── github-logo.png # Local demo logo asset │ ├── fonts/ # IBM Plex Serif / Sans / Mono TTF files -│ ├── example-preview.png # README preview of the first four demo slides +│ ├── example-preview.svg # README preview of selected demo slides │ └── curves.csv # Sample data for the line chart slide └── README.md ``` diff --git a/packages/preview/black-angular-frame/0.1.1/assets/example-preview.png b/packages/preview/black-angular-frame/0.1.1/assets/example-preview.png deleted file mode 100644 index 7b565f1f6c5c837cc8499ca6cd9c175c3d39f5a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196049 zcmeFZ2{e`a8#e6J=_E?Z(14^8w$KTgsoh}8wAmD)NoGpsu}+kzWG+HtV{asc%nd3- zB~v0p1Iawk(|bL2{_pp_YklAQuJx{Ode{2)|E&HAdq2wWy+_OogfEhZ+<-AqiE{h65N@K2Y2GBLUA zWn$_(#l$3kmx*c9h5JQ%iulG~XEaq0GuaUTd+}rAPW&X3`r(5H?yUpumM6JXmuD8` zCP-RAERG8gn`ahgMv3eF{Ytah+7$Q4f4*WW zxyO9?zkYQe^5O!_}M7)b1K^^eDy_ZEW<_E`2W89>WDfJ zaqabIr{pY=0J2{D38u?7Q{Dv(%Oc;hb(=mrg^b$EUMLY?@0C^4GE)>G)ELz8g=@O# zqz=;opR_~NHGR5{na$m&hh5}&%%jIL#ADvY%J`*lIdqnpntEhX(+#h)@on92mzI_sxrNw#kV%Nb}mma34r_<>tPM)+ocTURg)8m?G2_vI> zCEGV`+T`fyXvr0_O{u!J)^ApBbbMT&6dA&=@@QxWee3!2=N%jz7?!=N{63u9wwawg zd6Go)7N+Sd84AD;uPFmU0t=+)P(WMdopnL zD{jkqcFaPgCsOa8$w=^C85zgsM{#|<#<!AnUSy2;--vKrn4yn zU0vr+ozfN4*-ou|_fCt5Bf+#o^gmqESn`kZY2ZICe7VLYjikz_K|DgaKHaQn%gjTi z`%f3eNZbDP=bvpwF8viZI37KEWdAuovn$BZ&~S8gbbfkRM_s+;@#(95JG8Xk%}w_A z_w^~;p2yP_=5jVP{Mgr&o?dJhZ%(1qV<~Zm{Y~j^<3I3s#~(j_lvVzfP^{LuSK6jA z%_u9r?|%96QgK^w1RmD|+vZ2>`IQwt#?B3Ql-7vbw>=$ww|pZwI6dk+-`-P~r7n(q zc^(+ZJUN)A9Vf3rqbPScOO~P(th0-8%j98Z9~b&(*70 z1^!yUZQJ^Yilw@-8Fb{lH5{`B~C_--x6yp=9npKjlQ|17q!bRrv#tue9jihRVJ?sbM!V`7J$ zaZ}ut>ao#LInN2JbLW!T&%C+K_xkl~GP9CWX}h=EY9UUDqjva5`zvm`Dv8wx49Vv?ab>zsA`1tr$t5yjJ2=w;$TCC5v3pLceOb&D% zY<>0S4R)85h=|CpUCC)_YRsq4oY~0EzTM|yYisN6+qdg&!?4-&^Yf`=ThB||G^A*$ zsRdH#6QiSalL7}PCnq&EwK#c~u1meIZ}BjKSy)-SUGUP^*T3ZCl>83~5pj5K=-gmy zp4ZICX#^$5#*NzXigW`~jnd2D;9%s7OP4MouXHe|qL(g>=UUdjuBc!Z$jHnzd195Q zEBroQDfZ5t?Qw6BiWnzye_&}!OG>bY`y?fG;uY`RyVsJWx}KFaI9|zXo4j+HS*fSG zx;lQCVy>?2yKsEcy}iAirW6wslW*N{)P#7=FU*er_19lmTv@NF4EBe5Nk`XjQ>?76 zrYHqb-U$1$jCm)6D?j3uU)$q z5)zV`X@BO-H@sDM1UEM~GI3&JqO|QtyY`~IYu8>!iW-^4H3yS)r}AluiFI^+Ax+Ji znVFe8ci4L))g>h*d#~;2%#Sz7FDfc>{91KFeAZzj2S-v?*6`P_7Z>MTW`9uoswGGz z!~H*h;@3DgZAwt`!ZjK)*F7>VuBbRHA(3@`J^!`q*WCs_=_Tr7Us#?yXE4HLWo@nG zyYQ4q{^s4H)7iSrU%!0$ka0qCcFL&FW_Nej`#6PLJTkWf1JmA$%^d0K>Crr5eEc|a z=%GS+2A$qg>g9%n|KY=jnHhJzANiv3BL*U!FErv_+BC5+KaF^RRCRPDBqVC<>gp;h)tD2LlD_x#k?d1XE8w{gTQ&SB%iPTYBn`Kh)C^vUJ@z8Z#vb5EQ2TuRl{77x<4;^}0>NSlJ zavkn4ZOtkyEL?bny8Xnih2k0c0C~*u8Am2=7*U5$kBn@>1LWY~$jrzvsHIVY4VslM z{WzAO?6YFUim9P?6W5xpTerF{pS7|Q9@I24azo-n1;d4~lOw#YHD{VkKfAKh!^7jy zb+%Hc?rOyE{M4YR|K7cOe>SBz<4Yn9U=dcXT-keW|KES#xN+led{aiI6M=zU&`5jP zl506WK3;oYPT#=5puoY@C7}=Lss8!Lj1&6u?A9TR^V7%$p9>rlZro5mbLJs(sB;pGBd`f^J~#vXotervth{r2_s_1-={d3kww%CXVWJv}`_{*RwL z$)Ki3MI4pyH_*9>s-TQwfg3V5HlCZC`?aShRK)!vQfjzOQ?=uyq^0r8wx>>Qr#WA| zI65-&sn~58A@LU*?{S-4m;R5LD7|CU7*wH3a$fKgORDJsPp)2Mo0cRi<+rHMY)8&uP?9X**0@8 z7kfmOjv0A(PLGVpqL?BfFE1_9)_J{M&!?r~6KbG(`0iAlgfdi-$ERQJ+qZ9OxU=(#wLY>9rC5AYBFi%||H+dl`T5*r zS$X;D=p?7y)S`o;qQurfs1+6$YnHc1lvXEtV$)dz8?AInW03j!1Rt!)f<+kMiF@k2_*mm?z=@b2HfeY<({W=Tm& zL%Z9~JT z3GUeBgIE7Lefo4uOAAVanvPENk{&YW_wU~u>g$I(%O#XXO6MM#my5T166M7tgZ&%! z#)%UrLPJCGC$p@BaDo_*5`pG(zQ)t1CD8>C>lbj?YW} z7#kbgvu6)V$<7@+&YV3A!lB>a?sPWs4-bdS~~CPQ&~Yl+L&o|S)g&AjrwYodDEs@;0#~{Uft!-@~hy2MzlC_RGn&eEM`;N2j);BKg6C?LtCtUcUT}w1|hiN&Mu63m1gl zb~1#HIygLvi;F8PoGrZ6(-E)Dc6y<+%gBy<7PB?5(W< z5hf=lx|$<)5ve~vKWa#Xp>w~xgToX*ouG_&@y`diQR#g3 z>WGPnf|S&gBGv&pK%e#!j|LQDAjYz$s3QBS8#PgbpFNzEsTVJ1_q9-`s?A4zRD^}q zJclHNh41*bbCBB#F9|6q%;SL~1L0{lKQav;($$$`0fH8o{4UWht}@%j(ZqJ4TA5oz zqn+3_YXCrQ-hBJ+oll?GaV>;keM7@A!o>eWeLcxb)3aWm=FBQOy>SB%Pi%a=F9HC? z0zv%t?c208;a-(*SJx}ge7U+Fpi`)Np(fodEz7Kw)TD^^=0U6f!?x5F_p-CIk)nVE z3|hFmO}lkV|J@=%@{PesY?B*-ZZ|e2n*9rZGx6OmX0eZE0h89PTSryh(o|O$y6hJe z6f`k0VbFjE&(iI=T|L&t-IR{?mVjg1Wql9Q73r%s8A*9WmaHmIt!a2afs=I2kq zHUxy|+xji5`qk^#+vJ>*5yHTWENj+;rqj9hjE#)AFU(v-hyWVSPxPKWb?UKo!|o<~ zZca{K*$WTa+9M+(6elb6?T1fLC=Ydo5i=8$leEvZfV&#EVlD0M+mlp70s{m4Y=k|( zzh2jr|0w6qojd47)Tdu0C-0J!%w^e6nc5s478XCzR1#3VRNL|NBDUnqXV11PDxPFU z5fyB{$HnqWUnjRARmaQIb3Yz40u0@gujXGz-&a-&PqqdNXZ-~H&@}z#?BZgJFwja+ zaC_7k{_R!pCYpobR%x5A!9kyqF9)rC3#Si@W!AfSSX%a=y+XND*9pQl#O|{}Q%9%w zqSrHf^Vb(-8)ScU3ek*ET9igXCQJ3Nyk7n3ldPDS*3xlA=5rr&z}0rQ&QiZ+U*NnJ z-`Z}TaOXE0bjp;U*ftMM^fusW^>>#06*#nOxX9~GWj}5!jhO$FGNnlWGL&JcQ#6P= zU@&5EVpNb^7GD{#y|h+TP!!48m~+F14Se#>vKPPkM@CXlp1glD_|Xh~JKFFf5g>`R z+Z1O$W|~-JIc0qh=+;7B?gmCOM1=9Wq(xtrH;8<|HtD2$owB-5S0eR3{ZQ#gvk)OK zfePfKZef6qO9Tej*T-Td(&-}pX-L-HNm*z}5y(Q?_mAhEztt#o7CE7DpXqJ6bSGC= z)c#?hYSE|p=%m!w?d4(#K)AOxj=DIbWTBrG`Bma{M^TRz&PAU`O;3=tea8!pgQB)6!~aXh2}+U zH8ozh7Y)6yMQ=o!rBIwki3ck2qpPbj>$%4LxVS9y@@*S8QbwoGI5>zeI!49ma+sKW z2HZmU5mbx(x!G;{Q)xBZ&aN_lXOcFsZ0GL&w7A#{=oElU&|ghkJIWyq%_VZPprGKG zTuNf1UZ0Sdz+v2xV@FA$-|`a57JX$~!Slh-1w0^ZGBd@v8s~@0%^m6lg@iN*i@OV^ zkWf%xlgD!(KORxfx(i@P7bi`}3zvT(co;`V34a34v9ax!lnn1k&d<)4LxsD|r+{`$ zvvmJV(FmXc@QamInvD<-&B0`BA;)6gHU2)A`}bZBEa7Q6Y|HwxhSrJncdi>IRG zKjj=TzW4`=K+Jx78wUq7d?#mkZ8c(Iu)CY;klK-@yn6NZzt6sA7RbrT+3(OM{I0R7 zX%HF4#)g5O72qv^eXJ05-M}Vvm!hIKn3hA=*4EY6YiMavg*nU0%AP-e?z95^v9&5i zFG2R=L%Z`N<(HZsBVVo*7tfD;eHp1?;pz(5UqCfyF7lcly8Oq=zD9aDYI|sC9S|9^ zkHz`(Wz!vA%S-cF_Xm(hl$?Klz%SHjr_rBDOG*8;cC+sBg=hi!+ddSpyiL1e*qV5=Hb!I(qZ%=wV_Uv6Dwva z=s5veMZ52QQKNl7E(>80eB*|QNxowb(GJV&Vnx7KG$qK^n9Tz7B{+BL96Khpf4?tE zB?}A7!=xl43d=7UKN9j;h30!{X$g%jI?bclV(9fLl(2<1Dv^wDMbH1a!>dnhrd!xc zlQBcj`KEdJRrOL$ddG8A__?L|VF|Rb%mRy6xV?U~zLXaI_EYE=KyvuAqo1m`)}12t z^!LXmB=B=`?$Sw{4`pItgGl{uT)`o3_}$SWJrfZ))29&p-b}H`L@B z-`XO1{#}f8efXV(giaKEenofPlP5D;r%p_ssu8PaVHx=zqJldqcX4(mu^sescRy}o zl5V)UV=Wp-V8HJD9Pj!aAlDu~d{|w=J-Ul4;j4u;UN$yAdU~RZ>8VQ%*0#2qFLy@A z>8?h_-f!Qk7VYTcvxwLo&MIFDtIi}6Uwc@D(rcEom;$YqU^7$~WLTHs4keG<;MwSs z)hOsfLaA-*Y;0_B8+10-(J5h*J&_{vxD_N&%f&2->COiHl#I-@`t)v4J0LB4y!27{nW-JqHSt|sXntvP5CBSlEKnv7de|6E^*sJs4)>c4KX5SlD~&U%E`{Yar0)zvBF5D zqwx>V(SqK;dGqG=>!Y3$hYY7~dQ#SDFzcN>x$u$OvE>Z?Se;VmI$E1wElb%Zy^ik1 zJpG|pjDNn9{+p#s=)JA~+(>t{#ROX+qq_4z`n1%qZLnjct@ggoTyq*I5TI+SLTHw( z7nlB`S(hhWag^obgARApgQp$MQ$tXo!GbH)(^Djn~DTrxI3 z4q~z6?!lAkK>-0rkfj#DwFs-IEYnlxCAsLxxZ!heBDQSZYWU+Dvl>t&Xcjc>Xb;UB zK8|MXLu;6kk+I1mf%6&9HC4LIO;Da!t~~$jz0xPw^+)Jovjde0gdGy>IW#sz~T`Uy%TG*l1WH>wx(soDe;^Y$%%O-gwm zI9US9%l)qYwJtdX4H*a#H4P2M(9QCCVJYeCoSd=g>4Nz%kna7r3FI$1+WM$xI<#x+r5K=}!G@4A0|5fGw0_md!n<19)D%3}>dJ%0Fi zl_;yK;x^ICF4>gZ`VJnYpj%LD5Du;Bx`;KsFd+ zB{NRsZd3AXdwTJzg5fHXz7>dnEbH+?r*2&Fy0vTZ!$q!xMM#=`@8?A`?GjN7muGtt zn&PsW&9DiS^LzfQy)Lj!TBq*r9DI8^jZg#9=f24?%;%a8J9sr%> zazgzYTKKl^FrNnB?{)u=GW0t_i8jUtO^()N>&*?c%*^)evu|+M8lxR(mp^>ag&G<_ z7D&BF&^93EIk~w>k=4M7Lc4csP$d+xeKOJDKu8KF&mp|LrUoD~0{YO0O3Lf2xnn?G z2Tc8g;77bc{n|d@0VbWjA2{%@YQGU6zUp?97qL9UQ=oXndptv z($aQo#iXTJLpsAYa9#x!Nzr}e0WK;|)hMHloC{)s0~DZ))rV71rRu|h3F|?~LL+7r zg`$^2Vlc(iryFRj=K>=Fuw$sz0KkG3&|Kbx8-5eQ@A%=t^Vm5*J%>cllG@Vmz}2Fo zZ@^Q=JyJh#Z5;9b@2ouWSW2Ip#U6+_oLBJf$rC9w3u2ke&1sq-&;R~gZ*npmI`7Jr zSNq;iifZBCL`D1Q0a3BBqB@$jS?I8u;--!G0t~y8i!*Gl6Z|5;2Q7>~6_sv4!d`#( z_N@U2D0QT-Dt;PkO{^ztR&px$*7!qo$;<~24wOt<8dF6`q_9)~T0HHnqQ+;>z5pDK zsrK5u^`dZz7JR@H=#s0ar_V)5DBYkh-52u*j1-^LP0Y&5ih0)BYMjUFXnobOZ&m8P z0PZbY3bEJF((c~9+i-p_*zj|IR-G3$R#fuks zTm%B*=VCbm?iK=AdaLdzfIbvJadGi_Roo4LPJeTjkz0qkb%A5&{(bwxShYM&7zT-^ zCGOeSZ(}MYAt5@3hTMFw3~!S4uj9%=c+XBM1&|35hthtqt<1+{(q5n7foyG?hR#H4 zbmM_3IRD)4r(oau164}^A0R27c*QiM$NZ+7H4mg_P8qxK0| z`q~zL72h^w4P+m{NaWhi)>e6t<|-=Y+JN$BPM@wTykx1Mpn(1#ZOg9RyZ>6f+Q{gd zIV+9jU1w*xT_PH7H}p;bYasVw2XH_rBM)^p_M1{eS+(c}bF;I0R#ZXI%h07k+u%ZZ zAvWH=O{7P4^&9uMD=2(!Z!bl6h;$6FY>RE=?mmN^U?4O0vu>w~N;!058(Z7;oA*BZ z_|X-af+4|LZjT)2&UW9r57+t7faEptQ^0gJ@}%&(b(t}{<>U&j8&W`*g*|!(Wf#AL zHsx1F*{0&V&`8GCm>wSw*C+#B1!4uemEyCprna^KlFv9n7NnV%mrd;A-ntdL7%VtQ zxjeif0+O&iT)Olbx(d*;%cjdk$R+;lP-_4;S_>Tco3Gn+{rHjcaZvxd=SyPke`Uwt zsnarsh}+-)(&sV?m&_|zN)oJpS!uq1#UnsR@f4r4Ny2Q8v_tIM>S_j5PDo)$5jmVg&6ErrOP(5*`@d|ly~Wbju&%5MBLzMpPh?rUZBGyJcspgspb zBpw3aP1jGY&Md}C78e%gVTb(#H1qo7M?+8Puj&EUdY;`Q?r*oUvNF_i1ZwcDTVh^( zx}_`3OFgN5rdzqvk0s&~QAHsbPD3Ea{t=&!h?3Y1ia>Nakvvy!1sep)UFWs=vlcAt znjSfJmf5r`yQIl%{6DJJguB3BzR~vUiGJOz6Wa-!7Zc-SEZ;AfcbPGn;gZ&T{-!YT z&%a(JX8$w(D8i})z0u%5R;6Qi_a6Lz%&PQ1bHV@r@BA-hg!_NxVLf3etR!~C}_zx{8x*YF?(KqM-7_vTR&YVG>LUPd3(lYn`o9L{v zR;|$c^-dZ$;8tR0PLq9ya%l=vns$-_X}GO$rxrxr@>4mCoHMV2hRc`DmhQ&H%q2%a za9%X4xt)Zi(-`?V_4Knx6Zh5yMJ9J$?ei%CB{QUV7U`W|}M%U#$ z3?z`50PKt&ousFx8s%+)6zMhH?iRp~>f7@4Vv_uAB`GQAZxuJlfnc+|$GWQeJ`u*m z4&y%`5;w~f`4IAOR+fa8Xk>LsiK4Z!j*d>EZlyItA-1*`jY55e-|~DXz*}@|%7X`A zUanV(NYX`Hi-rzP1Q^T6flx|RmS(<>*Q#W--bClenEzz{LLBcs@^J?{@nKA95nvdq ze7f-1SS~d3ZTS;^z`}0`<$Gd z{s9352%sCt%ge)t^MgKk2Q->?g0fg9p_Re<;}MDMR`KRdjeQ}CM`%KVBRpmxR46=a z)~<~xddxw7i<f7dippJVq}xS;(EROn`f9PSZ;Q*sa{4@Jot- zXdA!|uLcUXBA_$g10r3qOaFQJ5NQNV$Mq)nLjFR#XJcgrQM`u71Kc0Da*zn zBJuqL0}6aQ5MinDRII9d!@rb(0nMT&3W`Y<5NLc-YO0LS+yr>)2rYc366_lO{(tr+ zg@-qw+v%GwmK6`dRBw6azGbWEo;5xR= zdk=twfP%!Vr>nacx3Z3Bzi_06+^zERWkfsenk_cSSf5G0-RwYaEg_@(OiWF6z}Xld z-!a+Wyn5Z%U0G$PLGJSG2UGpE({GuJ{O77wK9fyGW4g!5%z*zAr@x}drS*d1W{B6< z)!mc3lw!k4+Pn8c>l15+p0Gd#zKsChllKn=2y3?-%P;9CUhdKl{qgZvo6IxJ%gutw zP|4Neb_{*WPHJ0mU)nZ`7f;~6ik~l%8JFWS04Il#w!tm(8Ugs~d>1F15lYq3Jh-_I zr+@c6H3i)>R1Hv9rnoPJ^FLRwLeft@;XHN!HgnH7YA8$91y+@v}MxbDa zQRbli0FF(e;b?Tl-UhU!SwqKWVM#<}`*2dH;L8@Ng^j~WSg?mPx0 zhwZG8RtF-Ab}@Fv%9X0Oc}3pYHKysEI`svJ*q{CD*RK?hzP`Sp*1UcM2{2-`{Di`V zFP9rXXhc4GGz9wP>eZ`=8IgB#&Oh%EeX-=;y^oIsbJxE`I>nVCkC-x}UuUDI{zC1z zUhJ1npXs=~yh${vB!`^8u!w2@Noo6Fq+#XW!_2}mHaXb@HR0mL(4EIngDe{Skb!|! zU0}`f$*~*!xmPdG@ez zk=t+wrT5LvE#Le5Z5ETiM^l2sEuGeqgunK_sz*Vq%{Fx>1(g#~8eqSTVe~kdH zbbM?K-~HQj;wSWdlnSG|DiqYq1uM?}Hoh~C8ymM`X}^8{jvsyT@+Iw_)2Ty|Pz|I& zns^Dxse!>Rt>u~TArwpJF=llQ+CCDAfz3=a44pP1dJ_($PCQMD zRS%u$q^+Ay->WXV)N@JuWQ2qNR^ZOkeP``W?hFqtDD z83K@umj5X#BCkGn1S;SBQ1P%q51b%RfhFplL2Cn63;7=}^Dd;&;WnO3 zP4GqPr~{D$c0mhi*yR;stu{`fz%EL8ejsg~32KNWd-PxSj^-k^U(^ivcY>Y!1J znHEjJ^mM0H&J+|i`f$dZrOxFgqnIUd(f|Sx(a~;j1{Fr$Wq$}li>C2~jwfPaV-ph< z#SL&|`JNX(WQfJk8g+1Gh<0)y9tjrSM7tce3e++s{iHMq!jFveG?)=OH&9-0LZ(G^ z0#XY<`q23CsVg>Tpwj~cDmMsVdA`^m4gS@tABep7_t~R}3R*7)0K`p;jsXJU!9#B# z$t*UT`?Z((cv&06{ru;jZ)2o2&E|lwC*Yj2Ilt>~sL{vLfs6x~MQ^Ug|@~-Z~2k0LCcpPG4VhNK>KHlC~;pSXRou(86B05mG(IAM(Fx%EA zS3xVGdVR$x4Sbsu#6C#&9f_}a`_>K#1$+nX+IytVM(m8lR#|m$#GtCM9=;zR&0^&y zKRcEKEYsP{q#+|F_|8>aJ^zw9@WB}Uw`7B#LccD$29!S7 zv7J7r1hr$C(GH;af%A%NJA%dnu3S_saIEmiTNqYVRt5$IZ6wRe%A(&Y`|>yXprfj) zJzZURXw3|&=543QFyMntn^M!$`@ek~JJ!x*Xa*F6`5Y+J$TZNbA{|ld=BuizfJLBb zSg3wQhJE(=2j~{(cdLn*PCJ9G$~ecYK|vE~$>&;$Y=lZs`$PlEph2u~>2{+NYl zz+aU+_tJ?JhSyyFGH)jvet&z?@4Z317gO4*EB_l;^MCOd0fsJ?UtBEE*4v?AvC3g7a6K zh>o$EfLF^Q=t<#!Dh!6L2=dvTurSIH1(g|j%)H3Cm-dRx@D3TvhO&LK#C^1z_f`4{ z&PYp)Z=uf$YN)^j4Q%$U8o!<^9)=;7;mb1QkroCuouqaF2@k-`?CFKXqD#h;*z=N@ zT@vs|Hfmx}A?dpG{FL77Ju?D7!qab3no)aZds7n_3aP(W^}ytITw^!nLz1|7lnU$+ zAZl%_t)=Z-ouSh0JbIIP%^LcUqG2}t*j1}PBe4r=Mj5!>Hsg5(N1D32j&Te$%JwaP z{(e8kI>d_b8yIik2%+|%nL;0S2_g%m2lyFn;rFvi?sMts?(Y8b+o#xEMfEJo1W`Vxutl_@Cxs6lv{aNKl0bNv89Wf44RP*~vnGQ519pPkByh_-Y zIM5HHjmTUG!hQm7MHYf-{3*VrZ?X))C$FH;-`@}MUln_`yPH1zfRp72@@fFPg4@u| zpdgm@>!I}=#F!m2lF_{;421o16$1nv)7E|@n~kADT&JEMQQa{k)8Wy>H^~=0aDuhG z6_2R~R5rAELBVePdgSa>-jgRV0NZ2ifrA6H4T%P%?jtcVF_1cNZ9v&&C=dDtKZb_P z5F_xUz%~m7u1|dJ?^`SB0DJXJ62lJByAAw)W_`lr*sT*k@bjl|tp|z|Y+%cC{aH>j z^-nK;2P-{0Gb7B&Vy%7j=xaE^H|;sDtE)TG*xm#zvv==@*ROxPy(fuCxFdP;3jB|F zfoh)t!A%ZC8KUwAw&vTL0M$hAIgw-6lGEusp9vd{)4c(}uj&X9R5pud2+=d&f+Yq9 z2D;>kVI+PPhx+6jHXeXKC`^mwK=kJo6%`S!mC$04vw_JUu43gju>T5hM0A5>W+Njb z$i3)S;bBTd^;KCIxhl2%3g{L+k}C7xXDR}L*g;23Lhe8(A}b3Y?IuL)*!{_4n zLJ~q2f*=LYE|dTh%xM5GL~K1^`@(+>u66?%?`~e^ed5reBm@Rz9daNXY#Am6+S+to zm`KIpA- z=eI0r`JRZQzEUl7b3cR~dKiSm3GAB!yOxK>Y?MYzWLaRF$R5J4kl;O5<<{x5iI!Z(;GXTx76(1bD-& zQcI2n;y<|U3fQQZ`1S8!zmB5SS3eXHxzA&)3%e6zWrjftMNgkD;5{hLeW+--2-BQ% zH#na&OpB+m{7AyfEtU!PpB^8S&X@#_ou8eBNk=_VbeLRJLx5TQe_?Ea0n|Z+e zJ0#QT-GG_`ga>a9{WTe>FC#09pNmV{p-r~%NGOF4rMI}OYzgpJ)cqo+G#rtGw{6>o z9v*{OAkj0sLZNzM+w9)G`&vLim89EXYZD#`5*ik5T4$>sN|QC%UZ>S=K#=A>labJt z;k^TUO5YlYWcQ)55sBZBV6KqTWo#OSVG6-;tGG#ihE4f%OEK@J?^{6|O5WND`z_#Y ztC!`g10n`D@Q{KI1D#P118zp4m1MGFD=bG z&YnGdxB_VqZc=y_yg)p`I8hUfU@C*t6&r$}NgUdZ*8EZ8D0Gzd)ym?Yba8t zL*fKg=9*ex0cucF4C&QCTl+R>K6rn4FTrbzhGh!9Kt2|aR7#;QpzB3r?m0cQ*d1-I z+`IN)+!IfD-6CKF;G-4gOG-&$(EBGyRqzHz8OKM7afQk$nyf!yhT+^zdau_5FR&y#emRyI&n5EgbFQ@GYrNB$#DXYj! zOt^N7i_IS)+y&I-!4 z^O2#^(MBZRv?8^I&S5nh-jDFDAst3*NjRn=3sOxSK$v^OxB;_-%-+3LEjis_Dj=YI zDsVLKwRjLc0Kkbhu@}1xQO_tgAa=hgrA&X9jy}TGIsWke#pU^8LUqH$ipuXu6o zN{{021?!fJaU)2Gf2~@Dv2y@fxHi^-=-2F@?SD-4%V>=S{NagM0@8r9hG9Sgbw$hG z*hHAlU}8eRf=(s}BDF*1Bdi`k65b~S2~FQ%Jrcx--6ONo)<>oa;0!2(Ue(}_i2^`Q z#87e67Uq1k!ssTz)w6#?uMGoORO?TJOiR*&(G{@UNVmw~ z!|lb>&A_XGTzObg*a;QHDvVKFhDKu37k>oM3@BT=sC)TL%| zG^h_oOvsl&P{G_{)$3Lv(+}Y`p&H~SCVtIzoinNqVBJ&(=#5y1JO+*r7W1Qr4?{vC zk}}E|L!|r1Nu8}5>0$Bo5%X1WM#@M_!%a3lJ*|Ve3)3zb$3L1vaxN+^wzal~FUZL4 zZ{Q|J3~umaa>2|DyS)QUrr9p`Jir{Bmx3wzg&vhbCCe{5_7 zd!$0-8GC!N;Zn@xAUCF^RsI@~G>IqX>F}g=g)v4C4Ir_Ii1HER5ALH{OwUYS;f zV`Jyh1O(}WgI*(mV;fG8*mqRle7MX1DGs2R_)Y{xb-Qul_tj|JkrUKn;-zg3@h|~5 zVB0soClf&Podw>Bz^a+Y<0hB|Fuey-YH5ccCZR@wB?%1+oeQ3&D-Ke?K+ELhB6@a> zBZ(Eu#y!lD2XhUoRH_x5B)OK-4^&@38Kw(2YF3Uwpg94kkORR7%!KPG1LeQ#stUJ!7lZRWb{$ECtg)Jn_YiPU;$GVXUa6<$?3M7EqrgG}pWx!)-U^No1I47tX5;|UBy78WrP0!IkK^7p6 zAt8`QzTF7}gC`fhzQC4+URr^l#8{HCQL8Vg+2jyJwwtqa+vC%R&=8>J1+b%8K*wT@ zzbl~Wg*=DS%_4v&(}wBd0|a%9{j}SEv*h_>h<(5uFKd1Luq_%07xzC!tk7M_522N z6f{uL795)8S8r~WX4rjs4zX?5u5;LpTm#~8T!Mt&NS1<24?^oBSw|3o^~16R$w-NT zy8)@@#&SSLya}q@;=%&v!Tm56k$T&l3o=5U9E3yByh_a9)zxK(Dfpzk@Z(Yxc}Zr5 zzLqxx!yd|aWlPH}@Pk;f^Rvr;pie+YVeb;n4l)EsOmJ@9I)~3Kn@NEOBw5C{>$MI! z5D=xaz1=isn}Vy|@#A;VR$?nfMSTQ--S613C$$7~e;6;tD*3Zx#XbWJBkCc>KWVI~ zNyjq5ZlTBLU;{)B0T+F43t$tv?U#7kU`f>-tf<)_fzT?IVKQ1pg$NGFLU16X4r1Ia z7A{*nEI50O3mn7*9q{l#&}i5T2nt$M1a3g5O;A(#c+5f)Z;KNk z00a>cR*zQZXJ23S=~N&RjPRhZoWar{yG0t|gbKnyfa#q0*1dvY3b3d!l_<|2b4j&8 z*%9Rof&l_e21}UwX$ItBq$DM`(=oBJtOB6-|3+($2Hs^k0cLYdvK`-glx%qNBrkT5 z|7Izx4^U&eXEBB-YM4=pLu`r{Ng@k2LKdGI8gkLDj2+|Si^EY8kj0NGKijk=aZw%8 zx?#p~0sp%gk3*~4?W%{)eHbk=fi^NSs_h^A#dMhg2#wME<7E=%%!TcRAc9+HfVM^M zqYnX6v4F%TCz1>^aKjn7E0`JpVl>P$6MOX#gZV>WzC5;RB3bvs7LRKN^>ego=?=zz z1K43N=tm`)IIjcK$g89))o2I!d3j4P;fT(ih&VKZNCepH$k6QMlVBUMD3p~F0u>+} zf4q+~v0+8rV8R0QLMs9dhxj1egMx!`iifxmfs9a>frrIky>{p*p_dJBz!Oe$y14=5 z<0qiJaBiGOfF587p~jE|4I=1o1%U*Eh$s*f#V;Wl<3Ngc@7@vZHw0s(ZghbFEh;$Q z0Y8WhhctOBFmMLM7M8(W;PAO~U7J9$fDs`CgxcC+{4|<1cvL8<-ngu#uh;qGW5zMb z1zGHUeZAB3e^#L>u~0|}pXhJaVcx*WX#gVZ`9~ZDqJ+LcOe_2WklI8#VGBXZI%j96=(n_xRW?W3z56vh%yo4a(H)_wq#RGL z2JeSmW(`~etpI5!ZtrO_&NM&~!;u&`y$G-xSrcQF+cs>-MiN=WvD;v_1G^OmUG??% z7oU3m58x^0whzH-gtN6sgHV~$%g%%1D5`RdiulZAYO@|HFuJ#O0{)Gs;4+ej`B&o< zhIU%|&3)5_rx5$pZ*rN*z=WlnR{ZvWODl0WuqO)5$XLS?FjQ+S=lI#Fk&r zD?5TIWZVKK#0l^XxeDD4m^tG77H~bO=P{u<80%QJfh=WRe-5$Toq}P5u%gt@IN;-z z2@YCHCbtpmDU-^!m%D?+IZ0$H490rapp3~6#B2ps2z#J+! zG4qWqN^HhV<9o5OV0SJdX6v`CVtS^jkHaMB0Ymt$u6u;>L$^o$>Q=+^H{S{ojvyR5 z^5|qC!MEV~78e(%E8jOb*5Qb34>0XF^YuEA4z_4@Pik9)gp({5|Cwk2H(>cPFN*B@ z_d{}q2Bb)cZCWjz{cuWQ6XA*T@$zC0I_cpoO+8E00Q!aFCiU)eFHW| zI>l*VQg&esE4zNQ1;-OCTc=0pMs5jM2HxSj}q3Oh64C<3=o=Q_m(YE?Be9AydJa_&7To z`WRtb!|4dQQEOmHw6L-wCca0@UDYrOis@DO(-tq;;c$Vch$mD)tb;WKf~!|wBIY{% zmVE>&@TZux3hW2!Iyy2qeut3mFd$etm=^yMRJjDGQi#HsBS8B~&y0-V5IBsVMT0`4 zSzz&2@qpq{qfjUyd6V-e0iW*7Z_aosbE-G6D=pUfFgPchnJ7H8%QgpK&1f7#5_bxu zg#m=&g_$bqGtfLp58y;B2*Vb*eiXA(a5|t4f%<70y-041xO&Be9^nOI?h!9tQ!fb- z5o~GfHKX+6&2WSA<3JtaDJ;$4DZ*1SKf6MY9EinR_2-|U-H8O))}|;eO=Z?g)#k$l z1b!alM-bEz-em{{^oASBC8wJ6!22NCL8Obi*45aIM^V0nt_;WPrDkTD;^ZngGSGIX zeltmy8taDG0Y-{2mcmOaP=N#tpP?aafeH%6fEG9?sT7n+{Zqpn5VE+bVWeebiw9^Z z5DZ8w%76#aW2FT7V58dX&BP=fcGND+w?QNtIxgT{x7HXm5^hZKH zfZ>cTd0K>}32FkY1N0m9$REhiJX~CPAe+Fdp{-uKdGD7a`&2BdIq5pBkPh%d#RsxE z7O&XS*5(cEf+b)FiA0i?c7c_E%PyJV`;GH({9^(rB;a$@Y(3a`VCT@dYOpxbpo8K9 z$tU7kfdNR){PXX&dU?&`ZE=$)jEx^1&n9o%NAwi#?IN#3_?M4~?lCKQS~R|(;a>K> z7)pBs0-4xM%%ksQIy1~liyG?zWC2<8@W}`)NZM$7o8ruw+>426rJ~#s4fp4-rF15D zHzhJ2Z!@TB0BfQObtNC7{Jfba_BT$k!ND+SKZ3h(63qiRA+W*jEBh3&lj#QWvKP-_ zw?QMnQ&fd{AROLBC#K$&2GqeFYG@FLxg|*Rz__$~cS>?{MMsAj05PMQFc_ve)f!(X zJQSC=q9*@D6rh`dhwr0Mg0~a2F-)`x_#=rxyrE4|(0RgZu!{xSXf+P41LY!JV~REm zuf=c0YU=8R7r$RiN&=7R4~wauUZ|ADLn-I*Uj&!U4eA!aK;JSu$W*;`%)|=5B!))Q z^wia>aOS~Y5D9*M%b?dGWmN`aIuvEv6~z@-vrABr>Zbh%8aM{BFGzlq>@%+be!A{K z3XhSr)ON94N4z1&uQxP;vWO)IaUtZt7es`V6ek&D9~$44@G}O*i0maip;A!I=g+5L z)&;E;afYLUKEC~o=O2(`U%J&nY~c{4p_BNxh?HN4$mz8g;tQsZ13LURT*Tjgz1-RU z&n0aF8R3-{fqi1&#!dXa=2eLv>mRHSLpi19Kr>&PAY z2HOQ1g?=Olar-V3w_&Lm^#>hD{6 zmL7-_X|@u14S)|~@c{Bz;TkZFkCs9xbc`T=N4O=2P&bN*bVKsNoQzAJ<@Z&Kqi^^L zaph9RC&UO?VJy`IvK=)n9B2kZ{;<+$L(M7Dq)|XT6N;pzF%9q;q-%W@`?hTk*4D)M z5&;CJ6Bm}TX!=$A&2Smm-c5~-5j|^xbh`gM@tbTNk$-rE^K$cLScP#049-UA8y+tA zo*m0s1F9BqT1cxLl@at4WE#v1WXFspCF=QdE(=;7(o!8IjOEn3>p+;GN5OxtD2(`1 z5p%yTo8C4+Vpn=&jJiU!N-ChLya^PI;l`n)4P<5jw2Y>Hd5N50bWsv6}Vc~^OB^=A+?__Ywg;Nf$ z1(e|&krywX0P;f|B#1~NyPDw(tSg~$wQfy;@QX)})BA?N++yJg zg%~B6XUi6(l74htK*?xRX!qTr&Jl_Xjs}F*%Eqrus8b5EvWnIrXiSNs505NTK~wfw zRqGVEY=9$yK+{2FV;N2kof%SZ2`?-v!WV6=two4Qd@gawB|BMF)e^)EB!8^p2M8!B zbF0)(ob=cSmM<~!Q zeC4leYBYV!uPhKVub^Wu>FRz!M1!wmg)mlqe=T}|uyWa6MVO_R0E%G07I}wY?L_ZN zoJ<95iX)13&FU&D&Y_#Y(^AHfXwb3Y`yhEZ12p03BCL&JPg5*2LQ+PcgJoXEj#8a- z3SdWmTtFKHTB02M976M6OpL}26_hgYwI`UfA>CS&-lS-3$f^RF$aywci`eeG+E=5e9~DkKo}<4}Nw--X)fe?p7uQC`CL)qRo{9 zgn=Or%3VDBLx4$?E;N8Ouzuq3LL*TFtAD#4oB@Pra75OsgZaUPKC}{F80O#ze~TvyS-bur;q?LyhI$U{zf34NrKRW*J3)T`Ehc7< zhYy_sIX_)L^>)O+O*-y>79-#ACkzh_mBC3Z;;UPY`-VH>0(^5YISc}`0IG(rSc$HZ zI6e>jAVk!_K)5l|WWDzFrm?cJ(zs}PIouLv3(r^c4|J9qXz_T25cAf~&L;upfe_~>`=<#3@rO6ii2KCPP$`)8=J6ka zNyLkY5qx}G8AKaAdEm}Bfwy*xn?|P2v;RCra0*4vz{W0c-kqpQibXVlutNs|ruQih zGq!%qXl!i!rOjj90>(+i94LNZ$07UxWH-VDQ0ciCu*>G&V+ zO`vR`04pjf!S#+nhNocxJV5P}03=@@$erLilW@E>8P-G?96I3_F^-9d*tKj%NRj|u zPN6wVJirju=bGyVXSUS(|d{O^PzyOuoN8d2qy+ovL-)JI!s6f zAZ9QIrFn@PhsST&AmC3Jhp^+ZK%%cUV-GNZD7L;Iw+p5?(Q`L;9v-Y3cif6 zcXCFh#8^6hZ;b$AzyHS%Zg%zy_%_Nv#KA0pRt&+9=_yKkk(sSu;mt4ut1-t7>&<6u z3ZxJ9(>JinnaHdtb@y>N(vu)Kj*vj`L~6u1FsF;0hux^jd=X$4=ngSB{3-j;djevX z&Hmu&{Z;f{AJvf;7pQ=xKO#1kuzR(&ofJ_)chon-a_+xScjjR^uJ60gw2)9%EwdES zU`!z;q-a2cUSudkp+aO#Bdcg-h$d4?DbW$EK`O^MVT@ri6ki^?ay88{rm0V zIQBmFKYPE&_qz^MZ_oQY_kCUGbzbLn-XJ)-+KAXrt=rIIQ{({9VT#1ooLORx{c%?6 zXfp_Oap!f(28i6gfA>=H$KlQQ$ERo-_UlL<`J_iOVD3ToLFLhQti(DWy5yE10R`+K4xf|HT0DXpk*c5?d6K+3CEuR5rpqZn}b z(a$K>=B}#jC9Uaz3G%bej-D$2QlHU-w$0K=-bt}M*Us+7f@IcS``>=cwUA6bmkB8b ztbw{7;vcwcmvA_Zj*eFRz9-fy?=~#&qetHedo_{NpUBB>c6RlbhtS(IDDDqUE`6Wj z>#{O*Y7{N=bmPBUcr!aj85C!*FNC#f;yMt{oU$+PaJD<8osh`7zwDv%FO&rx53Km& zgK1w{1|c~hO8gGx-LK!UzDupF_B?)ZTetxfN@UNPk`FHc0E2>)NvNbL8%6VyW07a2 zjk1nZy%RRP+pic9GRrP~xplF6nEYa)bU{c%$|VLdEG6{fbd+)};1c50!_tYkf0D|Q zmu3Lan8v44Ff{Z*f(NZ-)FIwRqw^fefuo^a2h+c&yj)c(DI#o^P2MA0ZMJMiQtXJ) zqr1q;hLjT`h4}e8wwZJG=4`w>ZP`MmNYVvLypHu5fZ? zzxB|Z-0S)>l2rU_i;EZb*}(g`Flh2T^!%Bbx7TXm{1`gel8$9II$okJz<Q)&N>`=@Sqe^QB2Pc_;hM)Y{XlHp-nAs1Ttq3kmJpV4y)kqVA=%-b|)g3HZ!4_n8fy9{l0&a}AQpH|;5;_tu+T{$ zWNhEQJ)-n6YHIP?PQPMlAG(q!b+~oxXxhBj*9w(bZN(_pq9K``f!k=AvfyZ6A9BMv zMOc=XJejWn%(QVdNwNioH`4t^_#k@c?04k=qnHx^vIC~4g8+e)0kb_cZg>n6JhIKL z*9e$d>ePXoZA?ou)AogjJ2BocZmP?~SqC2OBtZk;2%%-Sh!~IPj&R3FlzGC&{rb>k zO^^9>Y|Bo>=A6W4;G3DJ*D5?XVBA<{Wl^sfvwwFt=1=P0goJW{=9m=^?}G3&4bHQQ z#dxbo-|QRo{V3NM5wX6p!j*P`tLx3aAI%2;sS`2h%4p7hfJQ*EM9bHn1 zP0Q_?C~B_KLZRNF5+JjAfFo*d!Et;jPD@~h(bDDd%o75Jz#fuV$TEU)w(XvD)fzoF z4gI+1M@f>f9L%=i+D)(DgeE#`)}a2hF;jzTYN&8+cmK|X36!UMb(Tl`;t5coHG5`D z!8E$e@+H00S21okbYYafCwHh3iKUn$$|*n(unE6Wjh(h5d7iY5ygy#)&Zerl1uaCx zBCs3sj1t;W_%7H;CsA5no^O7$Dp${+PJ#T4VSboSv~DU68;kSV|H z=>Z(Xal)OGlT#zr129d@p7ButrsYCIeDn=CpN4}(@O~s4amvEgtB^1h$ZEe2ng-!= zlzk6dDT1?QwEf35jpRC@NE537J{}c>Fy;NKFCJnYTXWsp0%v-0WJjJhqb_sk$-;ry zJ023GEZjVwFP{-4w3Vnb&{cXN)e%nN+xgn=K6*CI)6{f&iM{n)*>LxDXuyp+kox(T zq)iYZBrG*|GWA+z(^UWXf9yCDt6hCOdL(kr2+Pba|<=O}QmXwqJ z%#pqD>5e{wkRLyPRx;ush>ev+(|A z?$zTfG?_J{x3F+eF!3w&@}Mqs6J*k7_;Xb(Yg`71%?38mClSRdfuxBT{YtqC+y8qP zeVgD8JE$C+cHl)-l@G~;Ku!rUWB-U4Qk#3&a@1icpYBl89@2HKdt9ugt}YyoBM%=2 zuJF5_z_L4oKuF7$SK*V-(0=-EzJzMd?Vlhf@lA0FP0&#N~X5`t}AE0zMj{-dbpO@|GZUNM&qe z)>G$>9mQ-K6}ZpWvhGRGAD{%G;lK~%zCY%UXmI4nk;02)=T0;_#NIb_&7u!(fh!O) zW-uEm@51`Z2xKAXrM_-$Cs;oro$(jvF6E{F1EHI&pLfz<^Ib^mOE(uSUAlprg6y@P zTT*iiOd_VTX;~2WBWS3h7faeL%%$AEoUfXb626Dd2|+` zRZ>RAdK~s254E?WXU8B9%qz_Ym)rIrZ!Qk_JR6vx)=mw%UwT@ag_)UkXR}#e^O3#r zra)8<7Ljb)sYHj%ecifSoEb!f9JR}S)<~c+aGXAZ&EBExQaEA=X@Gv1tgfW+9`O=j zDTY3_rd67WD^5wdxio7r7t2+^quO-!m$C2CFeS9b@x(Xu?a#5FQU-wF4NF%($3v3F z5H`J4`OK%dmkYr@5-!PpanuT-R&wJQa5Sn{KdoWI2qHcmi<2FXRO%rL+;`jN$~Cx? zjXWI930GwiY~xdKHaA!pp+EL{PfM4_Sg?6rxL#J&tFJ#?QFq2t2EoZRtS{ipFgCzGJ(!n{}fZUoE`{9xhXtYxd&g={QY6{c^&Nm6}%zO#9fr8MOf z6`y-~`*!Ul8;hcfnL$r(9wsVVy>49}ZO1?m7fM-HC8rbnMcNPeqpYZZ+kXmvV3n~WY$Oaf;t7wkCh*yimi2K+)bbzY>?xRr{L!ITz-Fo&!CiCjWi&${U z`7E%(f73jHg+cLL7(thVhj>GjO5x_tGg%U7Ds;59rSKP#?c;6iKAtGcMmPmI$8+ohI`tZ9Y$#+IC=H+iv|352iOa`h*m49S8pRZ- zuv7Q>D>)wZjq6NSq(*7wbbaKK<7$6h_DAH)6(@P-xhAl+%%Ud-ye(+8H z<|@>>(tf`lDDspA9FZhgKh!?!bN3+;&B$7g2Q_=2cTsGMph1=ySW!lP3hf3c+wSiV zonbO_<|xi3AlMlNB1XZU!ocgxDS);p%BN3nB#z+K79h{(5xxVU+=yWd8bE(gRX=DG z@f>UVF)ri&W7p1|^tk>QHedL8 z#9MT4F8kuzve6Wcn6b<{e{l*Q?a13-CK_81#iN~*Ptn^8aQOp~#=@*BG zgT{_MM>B{A$5gpZYe-_EJ~^WX#z)DB)H=1pY1lv-n@p4fDIlLq=tQ17w+X7&sDsA# z7R5;YYzJ>_9ZXHhbbIROkf3Rxky{bR3DF4K6bgkw_Y`@&ZWjbCm7H=d7Q`AFpXo^F zI*7A%K3?1(s$=hryPnVtb?%Hwiq(^6DtsEN&pif+;2~qB3k26iOvXCId3Q?RM;|yH z1(FC3)MoztApu7LwQ9q4F;~9o8?w3GEj-LQYf5n#aW^dAR45fVS>pV8a-*o63FqW* zMI%Z>Vr_13QF|hi(qYSGQ=5@Fa{IPf%1Gh`SC1ryBIN(c%{A|!qT9U^$c3>kO)N5H#E+Nm*l!8E03la&p4He;rprK?!)Q zBdV>?rcRztYYWzW^cI~@2spER8aE@|DwuWS$rEoDiBo7t6{I=BCX}&Q)Z;h-%ep6? zuapg`04!DHJAobsTSi^*`kH#gL5wwD$o%PGWM2R{09o}!Hys)Io$9ZX3Jw_@z9Gr* z6w|i&f|DbW2^~Iou!IrbOb0_1V=j%NdiU--d`y3NAT^NDCiEB}#mt%Bzdy|kCRTt- z0teA&ruw1+rH{BN-v@v}@7sX-Nf4}BTCSv$_-P z2|x=_HPO^!xT=9EZ&=gWf1l7Aq zxZQnW`;B_7NLq2xi~iwzXl%F}qCCHAxb7{|%{***v$MS+4)_8`OE4IqvP)5y_A}=E za9cvr91zg1ef!}U%)C8zGK_Cyz?ZYXAhI9*{r4hfJ9!X-!Qb>iiJ50yoYHg_XvPXB zj|*l$dxM*lpa9Rmn+Awy>+;FTM*CKtuce{v#m#6DK-JvhbD~xGk6qoF%?>qeGP*i6 z<`;Be>X6EKBosGctb+=<`RI8&TozflbQzAYB}oQG9Vjmos?H;46HM0cwR937aHYv8 zB3A%iYi}~Q>NlqM&yZXB9CSu@2-*DI6XWpQ=}S<*Z#ZTYW7TZw_`9|7xX?H|Esu z{K4;R&;OSPs{hx`@a9o#KES2Qzwg{RAszjhhx^vBm-ukQ+x%aAq?6m}zpQ+EL63U( z{HU5KF}AFvBeQ<}I+-8AC>4NPglonR>}zh(<$$lo=N4opnkHtIOP!oJBcMmGUgIz- z@d;+)4AH018DR$kg+;OCLK~p!su(3r{ekn?&Np^Olg?c0#j|mjv?NOGK@O>cl6(ET4mVXW4#(@@@E^Vw4VCfN-Gj}Xy z&ZesBM>pB_GJbEhi3vbQ4ze4|_%5vggvOx26D14a3BY5>Go*&^k$EthfP=zK8WtU_ zIj#WJrWk|A#+^2Rt-7L7Ahi^Li7X@(O79}V&EpmA;SUaRNXOZ;$j{f|)j+a|3d88) zD&QGc+-o7frV9>4M?)@*XZm@`k|i2jE|}&9zr9A?hT9vlR^?wF4gwmgOMiKSEY&SV zASIhLYxk~Q)9I3M?A(PlU~`TMuu_k^et^Ty>O#1d$jB8WD&`U5hs-l9iy-m3tXOfJ zQ(i7CzA|;NKSSKiL>5s)a%NQTOTdgvk9NX@l}bdn3Rnlw61T6$HDLR81cIpGlJq@E zBup|klEx0|IBOHsfv8M~e`#p2#~u1fRt|(5Zd0sku+ficTBDuw2kPk9rg(_Ue9%M( zc@R? zFm?62sLKf1?er>&QXZ{VV(l3P!ingQ8z=lw#03?la5mion5g(#$`{e?OkcjY*4o_T z)pZ4xf8kzQWdC(&(g5vO9zF7e$`lfMC}=h%r)jE8Sj_f@kh;!z__$Z#73(BhSrtlB z8kY}gM}u&v=YqAttVxnRU>PgpWyJJ@9wE6 zA5sZW?~!H$#`7b2h;k@S5d4Fl!k?B)9B%Ml$Jkm7EJ6t;eh*?7yd4(7ExCEprwP(i z?7?yCrRO)wA`Dd>J$eHmf^5f&`$?Y#QJKq=mjHhHIe<2-vjK+UTG=uiH`ddS9q;vp z@tgvr>tF_c4|ssZT>${+8B;QJBSlZRe4Qbtu_&5_lO%KQGiQE+#y#<6JTp;8FraiU zVX{Cl&9UGt!D@4c6F~wJ((3(!Q>~E(tiTR{llgFMhX?}aKY`Vx=SQ4{I6}=etHVds zH^@|qXL}N9GWGf*sRs-_+Sjd6Lx!!SU3>{{_54$@PC5MC~{Ngft^&~ z^y^DngE_{O>Vr7c<~O;Aj8C|8*boCjWv@-)xSiCkju=eU325B)%d5 zox^b4+ahW?Xu^CD9$h?!QASZ7+3T=~d0w0%DyF!78$ZuZ>LWlc#sgd44j;?Ro8V!0 z?hN~OEcA@k-zP*$K?uXrcA^qx%ZF?9#3PhdMso#Inob7PK?VGF$Iy&T=Z_3NrELqS;$yINt z_zyGClqUzGzShg98=;+uib@j@jGI5ANSz3n@XB92Ua) zhSjv8aB8k67dO;@aM<9=v?)~`^bJe~H>nG(0da)llZ$-mUjGBlhh<~5O?@SF=}GV( z3*0DB_)Ua`<@OOC_5Ak1yB-n$b)0g;gamW*Lxc^-Q%k|{rhWZRKSJQ#KO(O zxF!!`v!7M;CZp}9)hHi}G$7yq6)+oZ7p5J{5uWquFRm!ocJ=|2a9#~{wm4Z&aHR-Z zSjFyVeZUbsD`g~Wyl4C{2is3r5Y683IEiWiaFd(axl0#HJ&(*RPJep?jDUKET%|O6 zNHg{#0{U=`19V(py?TW>gx(Iv>#Tk z3BCk>K3di_Kcoi+e`i~ofqs4#@lWz!Jt8g}; z;+K?_Ba(K}ZgGJ!!}|cK5#_AQlYO;1sjHtGQ985L1vT|}URv0Yfdl`&eOsL203l`T zy>O54{lY9%ijIYxM6aRz4lv>^V2FJV&zk$h6aDnlugaWAR%n7M3kgT$U={zjH-{;m zN>5iby588zd}VlCaQ+{vf;J*0ksaUOPYAA+-esA;nyO3P17SyyQvS3OhOa&Cu}8sMSO~c&4SG=Q7?5wICDvB znV@O1>!alVLF&db!>G`5K_z{4&H%m24b5qItHqfE8$FP0oiOM%35ytRHjb3T{pXNu zc`jU5e6(iV$KO~K^)z%W{z8F;%#@QV&EKnYP|x=dV*+j9Oyc5|J~Xft$BY{F=z>R@ z&YotOZTj*xJTQ72LBX7COU{2l=IJ1sDQtEx;-KZw13V%QX&8dFEUFDQ$ewc8#~(Ba zZ0xWzphy*mx{%MftO>A392EgLmS4=|AsPEHtAb#xk+O+_7K9fQ?w{)}@Vq3s2ni3* zOUobI%aAFHdvFw^yz0P##&3HMM)A!iWPvHe88@pSXc2t{yfV}jcd{dGh*>aFj4#AJ z7$Oueay{;nWN<+K{Qe^YfmHkY^h4Ph5NE6eNr2Hv*khX;*r7Dgi6c&^@WbQAHIOfT z=$<6~_6$1{{3_{9@&VrjDh%Kj^0u5RWxzBA{APGoJwrh09Mt9%ampx0UYt*RGbNu` zu5LSSSwuHe#7ET(JCU};vEH9=oYKxp{Ol$6<6~-p|y`ryulOX(n8~YpO)rZTnYL-MYgdDH2@q* z*}rVHVZ8&oS@vFGwrZy2?-T6V_gJx*;5o})#Z$kNtgQ6QL`Y}`sfO0abEsSsBY&Ct zS>;v?8+_e(fECqAC9V%B>n3xHK}KfK>Zf^|ty^1HED?ZwN$qETmBsBVu-<~=fzgD8 zF#j+J_|M7W_8r!cZh+n-nCq@|21kt^T}Num^WINQ+=pE{pLgLypr0%z`k_oO%vl+2 z30!MvG99|!w(Rw5&Z~b96UHKD%_tdR#9`e*Wx^6uI6ibBWQ5-R`sFPAyS3f{&7>RF zoLGmmCCQXQx#)fS2K(<(zLA@Y0C4ulf|zk|h5_wV2>bEDjO|lVfODDQ|F*+zK3u|&@PR5Sf1~eT z?~DYDTll?T7iY(GQpv4z9^emqtFHfQeP)(D%C}mJJ-3RA&b(;kM2LiA$B^o7hE~t- z14t4kjN58os15j0Z?q;;Z6?GAy{c9Er_51=Ugn0!w{fN}V3HK`12Qd}g=Q)C;ltj~ z1r%ls7?5NjX}=W0uaHob-lAKRblAIR&j_{`FzZ6;XxfsRyG$6PgiGWm4IfSw+>XWscWTD|Kv? zvk@w{xK=$!3Stz9?j*PG$M8yWuaG!#$}+3~D|etcVLNQ@7QrNM6(d~c)|%mLZ+<-B zTN5{|fa!~Va%M4BVZBaQWYYBs->fud_;Ab3v(GL@pa3_Rf23H-gc~nBN;K1m20zAq zZJLXG{faBW{Wc@n2#$wELY>h{Uf>d=)_8EHTENURj&ZY3(PFT7Oe1Cm2L%C0gu?*P zCO{rOpOe1dP~S4)7oX!zClAE(>ey^ahAU8RD>Z^RMT6wWexg?}yS~SEq)7C#lSoC1 zPiVXM2Iv#g{N+jSpX=*~4;#i|njBKNnbgCCTh-I-EQ$m6DFrIFu2}^|BL4#)`SEAfmwJM5Q zp794Uh-r-8`AXk1$)#)8%2`p;wbW0lo$oF{g`9#$N+`e)XxNM%Nah)%qvQ2JeuDXA0SHTP#y5i8q{QT4j$8B>Q zm*zzsMi+sQc;7T+8TKQ3F>~|2s;XbFUYm)TfcQBb1f-&jWW!w-Tc>btuj%7C2e{w2 z=iF|(eMAh;y$jmNROcITFt+)bwP;n{%Y}$GikaK-*bS21srgw1Wy1m}@_hhqg&7D| z5TG3l2|<85v&wZ0fC_?#jP5|oi{Wsl3<+@Whs?&a$$pZ>@WOWps4R5jckQ}ObC=rM z4Ju^uVr_In9@a?@*4RFv9+}y=oEZwdz(DStX3l9^&ZW~-{-ye|$k_3g8XdIw^2H0@ z+lfQEAnj0)8YX$!rllk&<9&V$VSxdWFhAcWn}HEfISEyQJ{}7u zCejm7q8NOmew%7+JPj9O?XNqc`0vW=k|GKwR|b+nj7;qEt8t>C54Q}t)bJmT8!(n9ROH{iyC>F(r??|H7#ZzR zorz)c{{VF1^TqflaFz!kidAB_knEcE?blky56dK|vT*%V@tX881lak0Bo@)tyLUrO zVhSe3SUr67D7o(MZ(f||4pb^rx4p8RGp(!pWO2v0p_)v(6Qs2iGU~+(BSpc7I?==Q zn{9$uB30-2#zu?VCm}%)NXD(UVET?>b1_7SE)PC}HETNgWz&Ki^iQf7T&}FtN9mAI zb?5f&_k1E$>q&I>xHY^LseSg1XI)TJ&?~D%6Glb4dDA9lAFJS~AQM6xE_(0$*=`Al)S3RnoD!MuCJ=G+Vi#=7R5RT~HN=MaZhq3SwOrFyM=9 ziV0T`zuo}`+W3_daQ_9xK+s7d$3yEQ?_p&?4HZ9nRUk@u?c2ec!lpn;iDNQR9Yrs>`wrrS9zC-3@*crBxsBzh0^XQR(GRn^J~{8hfIfnE=r#LA#*m)4BjqhM<~53;iS%j zTTn9ar-lwfpj?nDHMf24wlXglK!H)m`8wfJ%ga{j{OdL{7c_xsAP0c%tS3ENRX3g9 z`0Tm0?KkCX7t<PzUvg6MYg*ttXwc zRR~j^E>*0^K5J_<-PCCFp=ZjWPgaap`7Ojrv6nQC{a?D(Ov+HVU$H~C$U$0wRTY8_( ze_uN3KMeJy^>6u6@fANi`TzK)9r(pRUkm?e+kDbX^Iu1F+WOzDdiS@R^nd?rO6?Rm zx$M|R7NgPbi2eJ=QoF#+C@tM1 zea%6ydsc|o;4BuvBczK{K1t0&s$~=)8(i0u^rTqx@uP+`22s$^##Q2W7|8M@E~O=c zP=Hv70ff8b-ru0R z^4d4(=k5N{PKn#CuotcaaFLC(5|MB+-43pbl%8;S91Df04Hx5DDE&;te^gvNbpE+& zQY|KHeDux8B+T~>YosHKkN87S4Wf(jEm}Dt!Jx_%zQEM1u#kSE3-|-kCqLbJW~c%a zF0_rU#k~~c{zyN%4;3fc!#M2#UB2=ekTVXM#pfrHzl=LP!xbMUNYy#?+u_KbZLS=OQVnaosZ*w$A*u4@ zukLH&3PGQQyw0++skLLo_$;qYkF6O`l~?H4rArh|C+MZw_<)*NlOUid)f9vxjvI48 z+lg*|1}qOb#LAfd$+~e1h^j_LTcuLoR=A>~ik3>Lo>WD9W&eJ4Rn{31KI-`}F=a<2 za}VyXN=6t59tlL~lui)jM!;~0nt~xZppuDk)=hMcU7vx6a1IfU$6P7wdp(%t2SUxD?!)OPP5xaOCa1ny+8@bp& za9w55Pz?<;ntx;g6t%O3*hHQcdQ*8y&8aiwARhf@oG4 z+k3vx5c`7UA^dgI(_o~To7+++m=<63yKB2vVSNMQg=@y#;pw?-Y7r<%4TqcyfniLP z0XV6pi)O&EOgl7sx-sm76-W_)ET->NyD2LR(@9`4=Xzq>=?r%=_x3DuAKR}8Z#=3? z3*TogOTh11cXo&05J>X}HtGr;J9IdQgfp-}Dyc+%2*}17X6^j>krXJI3GhB!z~8;Q zFa|14C-2dPVX)~-_a}hjwr}4KP5aNQ&Jh|jUz43FgYcowgsZPwL}`P27*H~)FK%|u z8->sn`&RVY} zOceqm=sx{mql$(p#y-IK1D}hKdeS7>HW_^N@?Z6Oxlgvo=bR=o2=h$hnXZoLa~|IK zREYPsZ=Xu@(D1|f`bz8=56{?0iF!E+!9^NW^HOhuutA#e{)hDly((x|RwTE$+g{ka zlNH9Qy{?J#$43G-Zz9c~ayQ&PU>ks^+@@U6at zH>!?LG3|?4A3V0{y}$~DA7_v?y6(weQ@2Q^e8*Z8Pr!_-4GTqZ!&qR z5=q81b;NF?M%_R6+x36x+K6*GXw^I_DOu|1i0aDa{oF}5QHyrYNVo|XeEs^V)Kn>F z)IuOb9kQ$Y{qYBg`7|Kv`&8Nzm-sbLX-~^4X&O(NatCydSfgwG=!>jxU~SJXI0jI> zrers=$z9!^VH(sr86`jId}^n1S1Cp!VhyVr+#u1%u2sAMv(pkf{0J7k)C zJoDZz*nK>|`|Q~>r1z8%3|EPj+e;$J_V~0E;}CY;;OPeks)C96p~$-5ch^mxv2^LN zk1=Pma_aI%pK3Ml0J z;(3O)CfPQr21S?{O}zWwX8>uln&Tsu6V%w9K$5!<7sN`#$B&NNCfN{iI&X&&;W*Sa zf|CReV}!sTglS*tQMQ5DqtGlTXQh#3WMSb>4t~ z<|WkgJhtY1fNASPM6|RGLAFInGsSz{9frj^32!z{KVj%YCk8tH)sGu!i)1GL2t!am z;ch#j#j1^LB@ z!_>^zNT!GjSv zAB!Q#C^^?QhLPW!THz(NECMreB#M~lExqtyiONb~1<$dhlFl0s=UUul_NVbH z;ZKLL@zJ9%$rHd4t4n{2Rt$%BAglq=F{C{jD?u(_)t#kGm>xDaT^MMMXI3b1-Mfct z=mH`Mp=Y2af_2i-B+)k92KV?6nHK((^+YD$?TNh1m6NpN5sp)29Z>P?^cp}E-q3- z8sg~4_zjk8!Rtp(p)x~A+g}weFw02vx&*SQI>f~nQa14f=v1S?M2#^w>rBtMGp0wR zQf^+}vOO54?+C;=ousK`Vm4!jFa)549j;2J9{~86YaOMnE&6|S;`@%@9M)WYZ0g@q zMELzft2VSQ7P5<9EZ3!#hi5$C92|xe6@bJry&wHrwMlQ+Nc_tu zo}vFhj^cIIqbz(jrTKaUgH)_-fBUW9xOF%^c@cnl@bEfK+#lwuZ1_1)caSO3Xh`FK zz5~~haWAhdIdBN^P)jTdrL)|l7sPE?NC=eBDN+G6LYsOfa2`tmzfN|}Y}z4QFx#6&5@b4YqF+%A z(7CJ5LfXuqR@B$kovHN{(}z(DfBmpH=Z6`)Oc;@s^@9{Ri^t_zPUAecY^RDO(dD~7 z<>!a08LO{9oJ~j0h35ua!(uXSHhk9c{qg1EJ^QzBS@D-ba|@ea`Dy&C%xZ^m7M9`< zEicQ#|Ea*V_#}RbjO;)IgU9)TJd>&Rj{)`mdi|f&vt3`(l>h5NMLdj7}G#bs3)J>0&9fTJ0qR2E?(d=R^>J^4I%IfNf;pYnfz!nWy@OLEy1tMN&4t(OD z0i8W*2tI#DF9|#5rmL(VELg-OF@2!t1q67sPGY3}?9Xys%Th>~D`RxS&5lX+Ff4mSz@nYUC-dt(& zc6PiNNqqF^(Srx|)UuH1xQpVf@A+~Kr?HWlF7`OfWr+Eaxw2}iqWTP6zN3O$auWx1 zix}fLPzfIuJF=`mD8#;)>hZ4_zFh%0ooegAq&}cbJWQLPq(>I zgo&c93=gPZyro<8S2!liSrlh2~Zh**o zQ(9_;vOxjEG$|7xYb;S<5q%%e4)FJ9HZ2*5RPvnW78|*e>W>>sAC{ScXZc;5<+b8L zifq--o>~&{*N7^{3qDU|qFLu1#et8Ym4_uI9C9NvGJPLa8;S{n<8hARs{BOiV3_t2 zx6$Wphpt_t2@>41jMhoa{)7hn0K`lmy|vq3L|7Z2dL%&Z1AHIM1>sg!RT(b1Dn|zA zu_M|NYLo~cpO(jWY3AjuC3P+u)qf)7vPIy$5Av6k$4`sleyPHr< zP_uA!g@gWg03dR(FS%ML=QMn6*=sVEqXbzNV1piuyCJM}nPa{Bo~(o~-3zjC^K!tf zdD~3D?}Zr&-?%L_D!q8lgvN3`cOVetKA=|{#)k4F)-RF zxEq|MmLBtjd0DW)w#%SNv?G_h*tFalnOj?e)MX|v;^?@h^{ZEpaAta^8nl82j!uR# zQqnT^ZixnWgZCF{{pr)Eq6T0{yJ{rJ`w=^yWh7=;tQ9AFGJiT4v#U?9rw?_^y?%Wx zvp|d7q!8^e2nP|DABDmCUVJmNR4U&K%@Kkq+YH(V-Ed+Bm|*aG)vWfO*6a50Wf5{qch+ zl%&Iktzv{_+t9X!XEf@T2qNWWFD04wR~Iuj;LI9%0A>WPyJv9yW?4^OFL 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%0AtEaJ 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
wEfVH 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

Kel*IBn3iC6-APuQxg!p+C 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 diff --git a/packages/preview/black-angular-frame/0.1.1/assets/example-preview.svg b/packages/preview/black-angular-frame/0.1.1/assets/example-preview.svg new file mode 100644 index 0000000000..f29ecafe1f --- /dev/null +++ b/packages/preview/black-angular-frame/0.1.1/assets/example-preview.svg @@ -0,0 +1,6057 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ b/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ index 1c3a9214fd..529aff6709 100644 --- a/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ +++ b/packages/preview/black-angular-frame/0.1.1/black-angular-frame.typ @@ -2,7 +2,7 @@ // black-angular-frame -- Typst presentation template // Formal academic presentation theme for Typst // Usage: -// #import "black-angular-frame.typ": * +// #import "@preview/black-angular-frame:0.1.1": * // #show: black-angular-frame.with(config: (title: "My Talk", ...)) // #slide(title: "First")[...] // ============================================================ @@ -75,6 +75,10 @@ if content == none { none } else if type(content) == str { content.replace("\n", " ") } else { content } } +#let _footer-single-line(content) = { + if content == none { none } else if type(content) == str { content.replace("\n", "").replace("\r", "") } else { content } +} + #let _fit-ellipsis(value, remaining, width, text-width, suffix: "...") = { if remaining <= 0 { suffix } else { let omitted = value.len() - remaining @@ -403,13 +407,13 @@ ) = { let hfc1 = if header-font-color-1 == auto { _muted-nav(primary) } else { header-font-color-1 } let hfc2 = if header-font-color-2 == auto { primary } else { header-font-color-2 } - let footer-side-width = w * 0.3 - _slide-x-margin + let footer-side-width = w * 0.4 - _slide-x-margin stack( dir: ttb, spacing: 0pt, block(width: w, height: 14.1pt, fill: secondary, inset: (left: 22.4pt, right: 22.4pt, top: 0pt, bottom: 0pt), { grid( - columns: (w * 0.3 - _slide-x-margin, w * 0.4, w * 0.3 - _slide-x-margin), + columns: (w * 0.4 - _slide-x-margin, w * 0.2, w * 0.4 - _slide-x-margin), block( width: 100%, height: 100%, @@ -429,7 +433,7 @@ }), block(width: w, height: 15.51pt, fill: primary, inset: (left: 22.4pt, right: 22.4pt, top: 0pt, bottom: 0pt), { grid( - columns: (w * 0.3 - _slide-x-margin, w * 0.4, w * 0.3 - _slide-x-margin), + columns: (w * 0.4 - _slide-x-margin, w * 0.2, w * 0.4 - _slide-x-margin), block( width: 100%, height: 100%, @@ -1105,9 +1109,9 @@ let al = if type(cfg-authors) == array { cfg-authors } else { (cfg-authors,) } al.join([, ]) } else { none } - let footer-content-1 = if cfg-footer-content-1 == auto { auth } else { cfg-footer-content-1 } - let footer-content-2 = if cfg-footer-content-2 == auto { inst } else { cfg-footer-content-2 } - let footer-content-3 = if cfg-footer-content-3 == auto { ft } else { cfg-footer-content-3 } + let footer-content-1 = _footer-single-line(if cfg-footer-content-1 == auto { auth } else { cfg-footer-content-1 }) + let footer-content-2 = _footer-single-line(if cfg-footer-content-2 == auto { inst } else { cfg-footer-content-2 }) + let footer-content-3 = _footer-single-line(if cfg-footer-content-3 == auto { ft } else { cfg-footer-content-3 }) let w = if ratio > (16 / 9 - 0.01) { 254mm } else { 190mm } let h = w / ratio diff --git a/packages/preview/black-angular-frame/0.1.1/typst.toml b/packages/preview/black-angular-frame/0.1.1/typst.toml index be4844e547..a4da07c1e5 100644 --- a/packages/preview/black-angular-frame/0.1.1/typst.toml +++ b/packages/preview/black-angular-frame/0.1.1/typst.toml @@ -10,7 +10,7 @@ categories = ["presentation"] exclude = [ "example.typ", "example.pdf", - "assets/example-preview.png", + "assets/example-preview.svg", "assets/fonts/**", "assets/curves.csv", "tinymist.lock",