From 19490f113b9ec89f3fed5b492b0910ed8ed2e860 Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Sun, 31 May 2026 07:57:59 +0200 Subject: [PATCH 1/6] Remove max_errors limit in devtools::check for CI workflow --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 01a158f..81f44b0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: any::bench any::vdiffr - name: Check package - run: Rscript -e 'devtools::check(max_errors = 5)' + run: Rscript -e 'devtools::check()' - name: Run lintr run: Rscript -e 'lintr::lint_dir("R")' - name: Run tests with coverage From b5dd3e4b5c769c90f0678ccfaf716c05c1b995f0 Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Sun, 31 May 2026 08:15:48 +0200 Subject: [PATCH 2/6] flowchart docs/examples: clarify spread assignment + modernize pipe usage - add regression tests for spread/connector assignment semantics - clarify in docs that spread/align return updated objects (no in-place mutation) - document that connectGrob uses coordinates from passed objects - modernize examples to flowchart() + pipe-style align/spread/connect API - add interactive page pauses between multi-plot example sections - regenerate Rd docs and add NEWS entries for 3.3.1 Fixed issue #68 --- DESCRIPTION | 2 +- NEWS.md | 6 ++ R/boxGrobs_connect.R | 7 ++ R/boxGrobs_spread.R | 6 ++ inst/examples/alignBox_ex.R | 15 ++-- inst/examples/connectGrob_example.R | 64 ++++++++++++++--- inst/examples/spreadBox_ex.R | 14 ++-- man/align.Rd | 15 ++-- man/connect.Rd | 72 ++++++++++++++++--- man/prGetBoxAxisDefaults.Rd | 3 +- man/spread.Rd | 19 +++-- .../test-connectGrob-spread-assignment.R | 57 +++++++++++++++ 12 files changed, 231 insertions(+), 49 deletions(-) create mode 100644 tests/testthat/test-connectGrob-spread-assignment.R diff --git a/DESCRIPTION b/DESCRIPTION index 595c2dc..36645f6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: Gmisc -Version: 3.3.0 +Version: 3.3.1 Title: Descriptive Statistics, Transition Plots, and More Authors@R: c( person(given = "Max", family = "Gordon", diff --git a/NEWS.md b/NEWS.md index 5ea42a7..5a8a146 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,11 @@ NEWS for the Gmisc package +## Changes for 3.3.1 + +- Updated flowchart examples to emphasize the `flowchart()` + pipe (`|>`) style API in `inst/examples/connectGrob_example.R`, `inst/examples/spreadBox_ex.R`, and `inst/examples/alignBox_ex.R`. +- Clarified spread/connect documentation to state that spread/align return updated objects (no in-place mutation) and that connectors should use the returned boxes. +- Improved interactive example ergonomics by pausing between graph pages in multi-plot examples. + ## Changes for 3.3.0 - Added `equalizeWidths()` for flowchart box lists, allowing selected boxes (including nested `subelement` paths and list-of-boxes targets) to share a common width while preserving center positions. diff --git a/R/boxGrobs_connect.R b/R/boxGrobs_connect.R index f106fc0..2b95c90 100644 --- a/R/boxGrobs_connect.R +++ b/R/boxGrobs_connect.R @@ -54,6 +54,13 @@ #' When connecting to or from a `boxPropGrob`, `subelmnt` controls whether the left #' or right sub-box x-coordinate is used as the anchor point. #' +#' ## Using with spread/align +#' +#' `connectGrob()` always uses coordinates from the `start` and `end` objects +#' you pass in. If those objects were positioned with `spread*()`/`align*()`, +#' pass the returned objects (for example by assigning the spread/align result) +#' rather than the original pre-spread variables. +#' #' @param start A `boxGrob`/`boxPropGrob`, or a list of boxes (many-to-one). #' @param end A `boxGrob`/`boxPropGrob`, or a list of boxes (one-to-many). #' @param type Connector type, see Details. diff --git a/R/boxGrobs_spread.R b/R/boxGrobs_spread.R index fc98680..47e7f05 100644 --- a/R/boxGrobs_spread.R +++ b/R/boxGrobs_spread.R @@ -26,6 +26,12 @@ #' The function will return the original list with the targeted element(s) #' replaced by their spread version(s). #' +#' @details +#' `spreadVertical()`/`spreadHorizontal()` return updated box objects. They do +#' not mutate box objects that are already bound to variables. To use the new +#' coordinates in subsequent operations (for example `connectGrob()`), assign +#' the result and use those returned boxes. +#' #' @return A `list` with the boxes that have been spread. #' #' @md diff --git a/inst/examples/alignBox_ex.R b/inst/examples/alignBox_ex.R index cc83d07..eef6f8e 100644 --- a/inst/examples/alignBox_ex.R +++ b/inst/examples/alignBox_ex.R @@ -8,18 +8,18 @@ box <- boxGrob("A cool reference box", ) # Create a group of boxes to align -boxes <- list( +boxes <- flowchart( another_box = boxGrob("A horizontal box", x = .1, y = .5), yet_another_box = boxGrob("Another horizontal box", x = .8, y = .3) ) -# Align the group and then individual boxes within that group -# (do not pipe the list into the function, as the first argument is `reference`) -aligned_boxes <- alignHorizontal(boxes, reference = box, position = "right") |> - alignVertical(reference = .5, position = "center") +# Align the group in pipe style +aligned_boxes <- boxes |> + align(axis = "x", reference = box, position = "right") |> + align(axis = "y", reference = .5, position = "center") # Example: align a nested element inside a complex list using a deep path -complex_list <- list( +complex_list <- flowchart( arms = list( early = list(boxGrob("Early", x = .2, y = .4)), late = list(boxGrob("Late", x = .8, y = .2)) @@ -32,7 +32,8 @@ complex_list <- list( # Align the first detail element to the early arm by deep path complex_list <- complex_list |> - alignHorizontal( + align( + axis = "x", reference = c("arms", "early"), position = "center", subelement = c("detail", 1) diff --git a/inst/examples/connectGrob_example.R b/inst/examples/connectGrob_example.R index adce31d..228eb3a 100644 --- a/inst/examples/connectGrob_example.R +++ b/inst/examples/connectGrob_example.R @@ -1,18 +1,31 @@ library(grid) + +# In interactive sessions, pause between pages produced by this example. +if (interactive()) { + old_ask <- grDevices::devAskNewPage(TRUE) + on.exit(grDevices::devAskNewPage(old_ask), add = TRUE) +} + grid.newpage() -# Initiate the boxes that we want to connect -boxes <- list( +# Build a flowchart object +boxes <- flowchart( start = boxGrob("Top", x = .5, y = .8), end = boxGrob("Bottom", x = .5, y = .2), side = boxPropGrob("Side", "Left", "Right", prop = .3, x = .2, y = .8), exclude = boxGrob("Exclude:\n - Too sick\n - Prev. surgery", x = .8, y = .5, just = "left") ) -# Connect the boxes and print/plot them -connectGrob(boxes$start, boxes$end, "vertical") -connectGrob(boxes$start, boxes$side, "horizontal") -connectGrob(boxes$start, boxes$exclude, "L") +# Connect using the pipe-friendly S3 API +boxes <- boxes |> + connect(from = "start", to = "end", type = "vertical") |> + connect(from = "start", to = "side", type = "horizontal") |> + connect(from = "start", to = "exclude", type = "L") + +print(boxes) + +# Start a fresh page for split-box connector examples. +grid.newpage() # We can also connect to/from lists side_boxes <- list( @@ -23,14 +36,43 @@ side_boxes <- list( connectGrob(boxes$side, side_boxes$left, "v", "l") connectGrob(boxes$side, side_boxes$right, "v", "r") +# Start a fresh page for fan-in example. +grid.newpage() + # Fan-in center example: multiple starts into one center bus and single trunk -list( - boxes$start, - boxGrob("S2", x = .3, y = .7), - boxGrob("S3", x = .7, y = .7) +flowchart( + start = boxes$start, + S2 = boxGrob("S2", x = .3, y = .7), + S3 = boxGrob("S3", x = .7, y = .7), + end = boxes$end ) |> - connectGrob(boxes$end, type = "fan_in_center") + connect(from = c("start", "S2", "S3"), to = "end", type = "fan_in_center") |> + print() + +# Start a fresh page for spread/assignment example. +grid.newpage() + +# When using spread/align, use the returned objects for connectors +visits <- flowchart( + visit1 = boxGrob("Visit 1", x = .1, y = .35), + visit2 = boxGrob("Visit 2", x = .2, y = .35), + visit3 = boxGrob("Visit 3", x = .8, y = .35) +) + +# Incorrect pattern (no assignment): spread result is discarded +visits |> + spread(axis = "x", from = .05, to = .95, type = "between") + +# This connector uses original coordinates because 'visits' was unchanged +connectGrob(visits$visit1, visits$visit2, type = "horizontal") + +# Correct pattern: assign returned boxes and connect those +visits_spread <- visits |> + spread(axis = "x", from = .05, to = .95, type = "between") +connectGrob(visits_spread$visit1, visits_spread$visit2, type = "horizontal") # Print the boxes boxes side_boxes +visits +visits_spread diff --git a/inst/examples/spreadBox_ex.R b/inst/examples/spreadBox_ex.R index e8c43c8..ba81a97 100644 --- a/inst/examples/spreadBox_ex.R +++ b/inst/examples/spreadBox_ex.R @@ -7,13 +7,14 @@ end <- boxGrob("Bottom", x = .5, y = .2) side <- boxPropGrob("Side", "Left", "Right", prop = .3, x = .2, y = .8) exclude <- boxGrob("Exclude:\n - Too sick\n - Prev. surgery", x = .8, y = .5, just = "left") -# We can chain the spread operations and print the result -spreadVertical( +# We can chain the spread operations from a flowchart object +flowchart( start = start, middle = list(side, exclude), end = end ) |> - spreadHorizontal(subelement = "middle", from = 0.2, to = 0.8) + spread(axis = "y") |> + spread(axis = "x", subelement = "middle", from = 0.2, to = 0.8) # Use device-level paging in interactive sessions so users can inspect the first plot # This will prompt before creating the next page; we restore the previous setting afterwards @@ -27,5 +28,8 @@ if (interactive()) { } # Example: spread a nested subelement by deep path and print sequentially -list(grp = list(middle = list(side, exclude))) |> - spreadHorizontal(subelement = c("grp", "middle"), from = 0.2, to = 0.8) +flowchart( + anchor = boxGrob("Anchor", x = .5, y = .15), + grp = list(middle = list(side, exclude)) +) |> + spread(axis = "x", subelement = c("grp", "middle"), from = 0.2, to = 0.8) diff --git a/man/align.Rd b/man/align.Rd index a4f8240..6eab5f9 100644 --- a/man/align.Rd +++ b/man/align.Rd @@ -80,18 +80,18 @@ box <- boxGrob("A cool reference box", ) # Create a group of boxes to align -boxes <- list( +boxes <- flowchart( another_box = boxGrob("A horizontal box", x = .1, y = .5), yet_another_box = boxGrob("Another horizontal box", x = .8, y = .3) ) -# Align the group and then individual boxes within that group -# (do not pipe the list into the function, as the first argument is `reference`) -aligned_boxes <- alignHorizontal(boxes, reference = box, position = "right") |> - alignVertical(reference = .5, position = "center") +# Align the group in pipe style +aligned_boxes <- boxes |> + align(axis = "x", reference = box, position = "right") |> + align(axis = "y", reference = .5, position = "center") # Example: align a nested element inside a complex list using a deep path -complex_list <- list( +complex_list <- flowchart( arms = list( early = list(boxGrob("Early", x = .2, y = .4)), late = list(boxGrob("Late", x = .8, y = .2)) @@ -104,7 +104,8 @@ complex_list <- list( # Align the first detail element to the early arm by deep path complex_list <- complex_list |> - alignHorizontal( + align( + axis = "x", reference = c("arms", "early"), position = "center", subelement = c("detail", 1) diff --git a/man/connect.Rd b/man/connect.Rd index b3e2787..ff7e1a7 100644 --- a/man/connect.Rd +++ b/man/connect.Rd @@ -182,23 +182,44 @@ the label away from the connector. When connecting to or from a \code{boxPropGrob}, \code{subelmnt} controls whether the left or right sub-box x-coordinate is used as the anchor point. } + +\subsection{Using with spread/align}{ + +\code{connectGrob()} always uses coordinates from the \code{start} and \code{end} objects +you pass in. If those objects were positioned with \verb{spread*()}/\verb{align*()}, +pass the returned objects (for example by assigning the spread/align result) +rather than the original pre-spread variables. +} } \examples{ library(grid) + +# In interactive sessions, pause between pages produced by this example. +if (interactive()) { + old_ask <- grDevices::devAskNewPage(TRUE) + on.exit(grDevices::devAskNewPage(old_ask), add = TRUE) +} + grid.newpage() -# Initiate the boxes that we want to connect -boxes <- list( +# Build a flowchart object +boxes <- flowchart( start = boxGrob("Top", x = .5, y = .8), end = boxGrob("Bottom", x = .5, y = .2), side = boxPropGrob("Side", "Left", "Right", prop = .3, x = .2, y = .8), exclude = boxGrob("Exclude:\n - Too sick\n - Prev. surgery", x = .8, y = .5, just = "left") ) -# Connect the boxes and print/plot them -connectGrob(boxes$start, boxes$end, "vertical") -connectGrob(boxes$start, boxes$side, "horizontal") -connectGrob(boxes$start, boxes$exclude, "L") +# Connect using the pipe-friendly S3 API +boxes <- boxes |> + connect(from = "start", to = "end", type = "vertical") |> + connect(from = "start", to = "side", type = "horizontal") |> + connect(from = "start", to = "exclude", type = "L") + +print(boxes) + +# Start a fresh page for split-box connector examples. +grid.newpage() # We can also connect to/from lists side_boxes <- list( @@ -209,17 +230,46 @@ side_boxes <- list( connectGrob(boxes$side, side_boxes$left, "v", "l") connectGrob(boxes$side, side_boxes$right, "v", "r") +# Start a fresh page for fan-in example. +grid.newpage() + # Fan-in center example: multiple starts into one center bus and single trunk -list( - boxes$start, - boxGrob("S2", x = .3, y = .7), - boxGrob("S3", x = .7, y = .7) +flowchart( + start = boxes$start, + S2 = boxGrob("S2", x = .3, y = .7), + S3 = boxGrob("S3", x = .7, y = .7), + end = boxes$end ) |> - connectGrob(boxes$end, type = "fan_in_center") + connect(from = c("start", "S2", "S3"), to = "end", type = "fan_in_center") |> + print() + +# Start a fresh page for spread/assignment example. +grid.newpage() + +# When using spread/align, use the returned objects for connectors +visits <- flowchart( + visit1 = boxGrob("Visit 1", x = .1, y = .35), + visit2 = boxGrob("Visit 2", x = .2, y = .35), + visit3 = boxGrob("Visit 3", x = .8, y = .35) +) + +# Incorrect pattern (no assignment): spread result is discarded +visits |> + spread(axis = "x", from = .05, to = .95, type = "between") + +# This connector uses original coordinates because 'visits' was unchanged +connectGrob(visits$visit1, visits$visit2, type = "horizontal") + +# Correct pattern: assign returned boxes and connect those +visits_spread <- visits |> + spread(axis = "x", from = .05, to = .95, type = "between") +connectGrob(visits_spread$visit1, visits_spread$visit2, type = "horizontal") # Print the boxes boxes side_boxes +visits +visits_spread } \seealso{ [`connectGrob`] diff --git a/man/prGetBoxAxisDefaults.Rd b/man/prGetBoxAxisDefaults.Rd index d77fdc2..e0b78ef 100644 --- a/man/prGetBoxAxisDefaults.Rd +++ b/man/prGetBoxAxisDefaults.Rd @@ -2,8 +2,7 @@ % Please edit documentation in R/boxGrobs_spread_npc_norm_helpers.R \name{prGetBoxAxisDefaults} \alias{prGetBoxAxisDefaults} -\title{Get default from/to values for an axis -Get default from/to values for an axis} +\title{Get default from/to values for an axis} \usage{ prGetBoxAxisDefaults(axis = c("x", "y")) } diff --git a/man/spread.Rd b/man/spread.Rd index 07b1ab2..57260dc 100644 --- a/man/spread.Rd +++ b/man/spread.Rd @@ -79,6 +79,11 @@ direction within a given span. The span can be defined explicitly using \code{from} / \code{to}, or implicitly by the current viewport. Numeric values are interpreted as proportions of the viewport (\code{npc} units). + +\code{spreadVertical()}/\code{spreadHorizontal()} return updated box objects. They do +not mutate box objects that are already bound to variables. To use the new +coordinates in subsequent operations (for example \code{connectGrob()}), assign +the result and use those returned boxes. } \examples{ library(grid) @@ -90,13 +95,14 @@ end <- boxGrob("Bottom", x = .5, y = .2) side <- boxPropGrob("Side", "Left", "Right", prop = .3, x = .2, y = .8) exclude <- boxGrob("Exclude:\n - Too sick\n - Prev. surgery", x = .8, y = .5, just = "left") -# We can chain the spread operations and print the result -spreadVertical( +# We can chain the spread operations from a flowchart object +flowchart( start = start, middle = list(side, exclude), end = end ) |> - spreadHorizontal(subelement = "middle", from = 0.2, to = 0.8) + spread(axis = "y") |> + spread(axis = "x", subelement = "middle", from = 0.2, to = 0.8) # Use device-level paging in interactive sessions so users can inspect the first plot # This will prompt before creating the next page; we restore the previous setting afterwards @@ -110,8 +116,11 @@ if (interactive()) { } # Example: spread a nested subelement by deep path and print sequentially -list(grp = list(middle = list(side, exclude))) |> - spreadHorizontal(subelement = c("grp", "middle"), from = 0.2, to = 0.8) +flowchart( + anchor = boxGrob("Anchor", x = .5, y = .15), + grp = list(middle = list(side, exclude)) +) |> + spread(axis = "x", subelement = c("grp", "middle"), from = 0.2, to = 0.8) } \seealso{ Other flowchart components: diff --git a/tests/testthat/test-connectGrob-spread-assignment.R b/tests/testthat/test-connectGrob-spread-assignment.R new file mode 100644 index 0000000..8ee2d4d --- /dev/null +++ b/tests/testthat/test-connectGrob-spread-assignment.R @@ -0,0 +1,57 @@ +library(testthat) + +test_that("spreadHorizontal returns updated boxes without mutating originals", { + b1 <- boxGrob("Visit 1", x = 0.1, y = 0.7) + b2 <- boxGrob("Visit 2", x = 0.2, y = 0.7) + b3 <- boxGrob("Visit 3", x = 0.9, y = 0.7) + + b2_x_before <- convertX(coords(b2)$x, "npc", valueOnly = TRUE) + + spread_res <- spreadHorizontal( + b1, + b2, + b3, + from = unit(0.05, "npc"), + to = unit(0.95, "npc"), + type = "between" + ) + + b2_x_after <- convertX(coords(b2)$x, "npc", valueOnly = TRUE) + b2_x_spread <- convertX(coords(spread_res[[2]])$x, "npc", valueOnly = TRUE) + + expect_equal(b2_x_after, b2_x_before) + expect_true(abs(b2_x_spread - b2_x_before) > 1e-6) +}) + + +test_that("connectGrob uses post-spread coordinates when updated objects are used", { + visit1 <- boxGrob("Visit 1", x = 0.05, y = 0.45) + visit5 <- boxGrob("Visit 5", x = 0.95, y = 0.45) + visit2 <- boxGrob("Visit 2", x = 0.20, y = 0.45) + visit3 <- boxGrob("Visit 3", x = 0.50, y = 0.45) + visit4 <- boxGrob("Visit 4", x = 0.70, y = 0.45) + + spread_visits <- alignVertical( + reference = visit1, + visit2, visit3, visit4, + position = "top" + ) |> + spreadHorizontal( + from = visit1, + to = visit5, + type = "between" + ) + + con_old <- connectGrob(visit1, visit2, type = "horizontal") + con_new <- connectGrob(visit1, spread_visits[[1]], type = "horizontal") + + x_old_end <- convertX(attr(con_old, "line")$x[2], "npc", valueOnly = TRUE) + x_new_end <- convertX(attr(con_new, "line")$x[2], "npc", valueOnly = TRUE) + + x_old_expected <- convertX(coords(visit2)$left, "npc", valueOnly = TRUE) + x_new_expected <- convertX(coords(spread_visits[[1]])$left, "npc", valueOnly = TRUE) + + expect_equal(x_old_end, x_old_expected, tolerance = 1e-6) + expect_equal(x_new_end, x_new_expected, tolerance = 1e-6) + expect_true(abs(x_old_end - x_new_end) > 1e-6) +}) \ No newline at end of file From d07737c5a42dd4d96f2eccc05bf0fc9d112fcde6 Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Wed, 3 Jun 2026 07:43:14 +0200 Subject: [PATCH 3/6] flowchart: add phaseLabel() and fix insert() between grouped stages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit insert() called coords() on its neighbours, which failed with a confusing "Must inherit from class 'box', but has class 'list'" error when the neighbour was a grouped stage (a list of arm boxes) — so a label could be placed above a split but not after it. Resolve neighbours via prConvert2Coords() so insert() uses the stage's merged bounding box. Add phaseLabel(), a one-call-per-stage helper for the CONSORT phase labels the issue asks for (Allocation, Follow-up, Analysis): it centres a label between a stage's arms, sits it slightly above with a small corner overlap, and draws it on top. The width adapts to the stage — the central gap for two arms, a full-width banner for three or more — and can be set via width=. Add the underlying overlay primitive insert(..., on_top = TRUE): the box is drawn after the other boxes and connections regardless of its list position, with the marker preserved through move()/align(); print.Gmisc_list_of_boxes draws on-top boxes in a final pass. Update the grid-based flowchart vignette with a phaseLabel example, add tests, and bump to 3.4.0. Fixes #72 --- DESCRIPTION | 2 +- NAMESPACE | 3 + NEWS.md | 6 +- R/boxGrobs_print.Gmisc_list_of_boxes.R | 20 ++- R/boxGrobs_s3_append.R | 40 +++++- R/boxGrobs_s3_phaseLabel.R | 124 +++++++++++++++++++ man/align.Rd | 1 + man/append.Rd | 1 + man/box.Rd | 1 + man/boxHeaderGrob.Rd | 1 + man/boxPropGrob.Rd | 1 + man/boxShapes.Rd | 1 + man/connect.Rd | 1 + man/coords.Rd | 1 + man/distance.Rd | 1 + man/equalizeWidths.Rd | 1 + man/flowchart.Rd | 1 + man/insert.Rd | 14 ++- man/move.Rd | 1 + man/moveBox.Rd | 1 + man/phaseLabel.Rd | 91 ++++++++++++++ man/print.Gmisc_list_of_boxes.Rd | 6 + man/spread.Rd | 3 +- tests/testthat/test-s3-api-design.R | 163 +++++++++++++++++++++++++ vignettes/Grid-based_flowcharts.Rmd | 73 +++++++++++ 25 files changed, 544 insertions(+), 14 deletions(-) create mode 100644 R/boxGrobs_s3_phaseLabel.R create mode 100644 man/phaseLabel.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 36645f6..8274fda 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: Gmisc -Version: 3.3.1 +Version: 3.4.0 Title: Descriptive Statistics, Transition Plots, and More Authors@R: c( person(given = "Max", family = "Gordon", diff --git a/NAMESPACE b/NAMESPACE index 51d07ab..bc64e3e 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,6 +21,8 @@ S3method(latex,descMrg) S3method(length,Gmisc_getDescriptionStatsBy) S3method(move,Gmisc_list_of_boxes) S3method(move,default) +S3method(phaseLabel,Gmisc_list_of_boxes) +S3method(phaseLabel,default) S3method(plot,box) S3method(plot,connect_boxes) S3method(plot,connect_boxes_list) @@ -106,6 +108,7 @@ export(mergeLists) export(move) export(moveBox) export(pathJoin) +export(phaseLabel) export(rack_box_fn) export(retrieve) export(server_box_fn) diff --git a/NEWS.md b/NEWS.md index 5a8a146..58ca476 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,11 @@ NEWS for the Gmisc package -## Changes for 3.3.1 +## Changes for 3.4.0 +- Added `phaseLabel()` for flowchart box lists: a one-call-per-stage helper that adds a CONSORT-style phase label (e.g. *Allocation*, *Follow-up*, *Analysis*) centred between a stage's arms, sitting slightly above it and drawn on top. The label width adapts to the stage — spanning the central gap (plus a small corner overlap) for two arms, or the full stage width as a banner for three or more arms — and can be set explicitly via `width`. +- Added `on_top` to `insert()` for flowchart box lists. A box inserted with `insert(..., on_top = TRUE)` is drawn on top of the other boxes and connections, regardless of its position in the list, and the marker is preserved through subsequent `move()`/`align()` operations. This is the lower-level overlay mechanism that `phaseLabel()` builds on. +- `insert()` now resolves grouped (list) neighbours via their merged bounding box, so a box can be inserted between grouped stages without error. +- Added a CONSORT phase-label example to the grid-based flowchart vignette showing `phaseLabel()` centred between randomisation arms. - Updated flowchart examples to emphasize the `flowchart()` + pipe (`|>`) style API in `inst/examples/connectGrob_example.R`, `inst/examples/spreadBox_ex.R`, and `inst/examples/alignBox_ex.R`. - Clarified spread/connect documentation to state that spread/align return updated objects (no in-place mutation) and that connectors should use the returned boxes. - Improved interactive example ergonomics by pausing between graph pages in multi-plot examples. diff --git a/R/boxGrobs_print.Gmisc_list_of_boxes.R b/R/boxGrobs_print.Gmisc_list_of_boxes.R index 44118e5..9e67451 100644 --- a/R/boxGrobs_print.Gmisc_list_of_boxes.R +++ b/R/boxGrobs_print.Gmisc_list_of_boxes.R @@ -5,10 +5,14 @@ #' #' @param x A list of a set of [`boxGrob`]/[`boxPropGrob`] to plot #' @param ... Ignored argument +#' +#' @details Boxes marked with the `draw_on_top` attribute (for example via +#' `insert(..., on_top = TRUE)`) are drawn last — after the other boxes and +#' after any stored connections — so they remain visible even when they +#' overlap surrounding boxes. All other boxes keep their list order. #' @export print.Gmisc_list_of_boxes <- function(x, ...) { - # Draw boxes - for (box in x) { + draw_element <- function(box) { if (is.grob(box)) { grid.draw(box) } else if (inherits(box, "Gmisc_list_of_boxes")) { @@ -23,6 +27,13 @@ print.Gmisc_list_of_boxes <- function(x, ...) { } } + on_top <- vapply(x, function(box) isTRUE(attr(box, "draw_on_top")), logical(1)) + + # Draw regular boxes in list order + for (box in x[!on_top]) { + draw_element(box) + } + # Draw stored connections conns <- attr(x, "connections") if (!is.null(conns)) { @@ -31,5 +42,10 @@ print.Gmisc_list_of_boxes <- function(x, ...) { } } + # Draw overlay boxes last so they stay on top of boxes and connections + for (box in x[on_top]) { + draw_element(box) + } + invisible(x) } diff --git a/R/boxGrobs_s3_append.R b/R/boxGrobs_s3_append.R index 4a32005..ec79d92 100644 --- a/R/boxGrobs_s3_append.R +++ b/R/boxGrobs_s3_append.R @@ -50,26 +50,32 @@ append.Gmisc_list_of_boxes <- function(x, values, after = length(x)) { #' @param ... Not used. #' @param after The name or index of the box after which to insert. #' @param before The name or index of the box before which to insert. +#' @param on_top If `TRUE` the inserted box is marked to be drawn *on top* of the +#' other boxes (after them and after any connections), regardless of where it +#' sits in the list. This is useful for overlay boxes such as CONSORT-style +#' stage headings that should remain visible even when they overlap the +#' surrounding boxes. The marker is preserved through subsequent +#' [`move`]/[`align`] operations. #' #' @return The updated list of boxes with the new element inserted. #' @export #' @family flowchart components -insert <- function(x, element, ..., after = NULL, before = NULL) { +insert <- function(x, element, ..., after = NULL, before = NULL, on_top = FALSE) { UseMethod("insert") } #' @export #' @rdname insert -insert.default <- function(x, element, ..., after = NULL, before = NULL) { +insert.default <- function(x, element, ..., after = NULL, before = NULL, on_top = FALSE) { if (is.list(x) && !inherits(x, "box")) { - return(insert(prConvertListToBoxList(x), element, ..., after = after, before = before)) + return(insert(prConvertListToBoxList(x), element, ..., after = after, before = before, on_top = on_top)) } stop("insert() expects a list of boxes as first argument") } #' @export #' @rdname insert -insert.Gmisc_list_of_boxes <- function(x, element, ..., after = NULL, before = NULL) { +insert.Gmisc_list_of_boxes <- function(x, element, ..., after = NULL, before = NULL, on_top = FALSE) { if (!xor(is.null(after), is.null(before))) { stop("You must specify either 'after' or 'before' (but not both).") } @@ -83,6 +89,10 @@ insert.Gmisc_list_of_boxes <- function(x, element, ..., after = NULL, before = N stop("inserted element must be a box") } + if (isTRUE(on_top)) { + attr(element, "draw_on_top") <- TRUE + } + # Find insertion index idx <- NULL if (!is.null(after)) { @@ -116,8 +126,26 @@ insert.Gmisc_list_of_boxes <- function(x, element, ..., after = NULL, before = N if (!is.null(prev_box) && !is.null(next_box)) { # Position between - pc <- coords(prev_box) - nc <- coords(next_box) + pc <- tryCatch( + prConvert2Coords(prev_box), + error = function(e) { + stop( + "insert() could not determine coordinates for the previous flowchart element: ", + conditionMessage(e), + call. = FALSE + ) + } + ) + nc <- tryCatch( + prConvert2Coords(next_box), + error = function(e) { + stop( + "insert() could not determine coordinates for the next flowchart element: ", + conditionMessage(e), + call. = FALSE + ) + } + ) # Determine orientation? # Heuristic: mostly different X -> horizontal split diff --git a/R/boxGrobs_s3_phaseLabel.R b/R/boxGrobs_s3_phaseLabel.R new file mode 100644 index 0000000..9a0c91b --- /dev/null +++ b/R/boxGrobs_s3_phaseLabel.R @@ -0,0 +1,124 @@ +#' Add a phase label to a flowchart stage (S3) +#' +#' Adds a label box that sits just above a *stage* and is centred between that +#' stage's arms, drawn on top of the surrounding boxes. This is the typical +#' CONSORT "phase" banner such as *Allocation*, *Follow-up* and *Analysis* that +#' spans the randomisation arms. +#' +#' Unlike [`insert`], the label is positioned relative to the stage it labels +#' (`reference`), not relative to a neighbouring element, and it is marked to be +#' drawn on top (see `on_top` in [`insert`]) so it stays visible even where it +#' overlaps the stage boxes. +#' +#' @param x A `Gmisc_list_of_boxes` (or a `list` of boxes, which is converted). +#' @param reference The name or index of the **stage to label**. The stage may be +#' a single [`boxGrob`] or a `list` of arm boxes. +#' @param label The label, either a string (wrapped with [`boxGrob`]) or a +#' pre-built [`boxGrob`]/[`boxPropGrob`]. +#' @param ... Passed on to [`boxGrob`] when `label` is a string (e.g. `box_gp`, +#' `txt_gp`). +#' @param width Optional fixed label width as a [`unit`][grid::unit] (a numeric is +#' treated as millimetres). When `NULL` (default) the width is derived from the +#' stage: for a two-arm stage the label spans the gap between the arms plus +#' `overlap` of each inner top corner; for a single- or 3+-arm stage the label +#' spans the full width of the stage (a banner across all arms). +#' @param overlap How far the label overlaps the stage, as a fraction +#' (default `0.07`, i.e. ~7%). It controls the vertical dip below the stage's top +#' edge and, for the derived two-arm width, the horizontal corner lap. +#' @param name Name for the inserted label element. Defaults to +#' `paste0(reference, "_label")`. +#' +#' @return The updated `Gmisc_list_of_boxes` with the label added after the +#' referenced stage. +#' @seealso [`insert`] for the general `on_top` overlay mechanism this builds on. +#' @export +#' @family flowchart components +#' @examples +#' library(grid) +#' grid.newpage() +#' +#' flowchart( +#' rando = boxGrob("Randomised\nN = 100", x = .5, y = .8), +#' arms = list( +#' boxGrob("Intervention\nn = 50", x = .3, y = .4), +#' boxGrob("Control\nn = 50", x = .7, y = .4) +#' ) +#' ) |> +#' phaseLabel("arms", "Allocation", box_gp = gpar(fill = "#c8daf7")) |> +#' connect("rando", "arms", type = "N") |> +#' print() +phaseLabel <- function(x, ...) { + UseMethod("phaseLabel") +} + +#' @export +#' @rdname phaseLabel +phaseLabel.default <- function(x, ...) { + if (is.list(x) && !inherits(x, "box")) { + return(phaseLabel(prConvertListToBoxList(x), ...)) + } + stop("phaseLabel() requires a list of boxes (Gmisc_list_of_boxes).") +} + +#' @export +#' @rdname phaseLabel +phaseLabel.Gmisc_list_of_boxes <- function(x, reference, label, ..., width = NULL, overlap = 0.07, name = NULL) { + # Resolve the referenced stage to a list index + idx <- if (is.character(reference)) match(reference, names(x)) else as.integer(reference) + if (length(idx) != 1 || is.na(idx) || idx < 1 || idx > length(x)) { + stop("phaseLabel(): could not find stage '", reference, "' in the flowchart.", call. = FALSE) + } + stage <- x[[idx]] + + # Stage geometry (bounding box of all arms) and arm count + rc <- prConvert2Coords(stage) + n_arms <- if (inherits(stage, "box") || !is.list(stage)) 1L else length(stage) + + # Build the label box + lab <- if (inherits(label, "box")) label else boxGrob(label, ...) + + to_npc_x <- function(u) convertX(u, "npc", valueOnly = TRUE) + to_npc_y <- function(u) convertY(u, "npc", valueOnly = TRUE) + to_npc_w <- function(u) convertWidth(u, "npc", valueOnly = TRUE) + to_npc_h <- function(u) convertHeight(u, "npc", valueOnly = TRUE) + + auto_w <- to_npc_w(coords(lab)$width) + + # Determine the target width (in npc) + if (!is.null(width)) { + if (is.numeric(width)) width <- unit(width, "mm") + if (!is.unit(width)) stop("`width` must be a unit or numeric.", call. = FALSE) + target_w <- to_npc_w(width) + } else if (n_arms == 2) { + # Narrow label spanning the central gap plus a corner lap on each inner edge + x1 <- to_npc_x(coords(stage[[1]])$x) + x2 <- to_npc_x(coords(stage[[2]])$x) + left_arm <- if (x1 <= x2) stage[[1]] else stage[[2]] + right_arm <- if (x1 <= x2) stage[[2]] else stage[[1]] + gap <- to_npc_x(coords(right_arm)$left) - to_npc_x(coords(left_arm)$right) + arm_w <- to_npc_w(coords(left_arm)$width) + target_w <- max(gap + 2 * overlap * arm_w, auto_w) + } else { + # Banner spanning the full stage width + target_w <- max(to_npc_w(rc$width), auto_w) + } + + # Apply the width (no-op if it already matches the box) + lab <- prSetBoxDimensions(lab, width = unit(target_w, "npc")) + attr(lab, "draw_on_top") <- TRUE + + # Position: centred on the stage, bottom edge dipping `overlap` into the top + dip <- overlap * to_npc_h(rc$height) + half_h <- to_npc_h(coords(lab)$half_height) + new_y <- to_npc_y(rc$top) - dip + half_h + lab <- moveBox(lab, x = rc$x, y = unit(new_y, "npc"), space = "absolute", just = "center") + + # Name and append after the stage (without repositioning, unlike insert()) + if (is.null(name)) { + ref_name <- if (is.character(reference)) reference else names(x)[idx] + name <- if (is.null(ref_name) || !nzchar(ref_name)) paste0("phase_", idx) else paste0(ref_name, "_label") + } + to_ins <- list(lab) + names(to_ins) <- name + append(x, to_ins, after = idx) +} diff --git a/man/align.Rd b/man/align.Rd index 6eab5f9..c5f1e92 100644 --- a/man/align.Rd +++ b/man/align.Rd @@ -131,6 +131,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/append.Rd b/man/append.Rd index 76a4527..a0dc326 100644 --- a/man/append.Rd +++ b/man/append.Rd @@ -41,6 +41,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/box.Rd b/man/box.Rd index dacc62a..5927b83 100644 --- a/man/box.Rd +++ b/man/box.Rd @@ -126,6 +126,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/boxHeaderGrob.Rd b/man/boxHeaderGrob.Rd index 7f25138..da260ee 100644 --- a/man/boxHeaderGrob.Rd +++ b/man/boxHeaderGrob.Rd @@ -102,6 +102,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/boxPropGrob.Rd b/man/boxPropGrob.Rd index 483f29f..4ad69ca 100644 --- a/man/boxPropGrob.Rd +++ b/man/boxPropGrob.Rd @@ -98,6 +98,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/boxShapes.Rd b/man/boxShapes.Rd index 4d7e4be..d79eb31 100644 --- a/man/boxShapes.Rd +++ b/man/boxShapes.Rd @@ -231,6 +231,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/connect.Rd b/man/connect.Rd index ff7e1a7..8791cb6 100644 --- a/man/connect.Rd +++ b/man/connect.Rd @@ -288,6 +288,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/coords.Rd b/man/coords.Rd index 7a89a28..3f388ff 100644 --- a/man/coords.Rd +++ b/man/coords.Rd @@ -34,6 +34,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/distance.Rd b/man/distance.Rd index 102ef95..b7ee148 100644 --- a/man/distance.Rd +++ b/man/distance.Rd @@ -65,6 +65,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/equalizeWidths.Rd b/man/equalizeWidths.Rd index 5dff12a..dbccc3a 100644 --- a/man/equalizeWidths.Rd +++ b/man/equalizeWidths.Rd @@ -54,6 +54,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/flowchart.Rd b/man/flowchart.Rd index c60f575..bacf0e7 100644 --- a/man/flowchart.Rd +++ b/man/flowchart.Rd @@ -55,6 +55,7 @@ Other flowchart components: \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/insert.Rd b/man/insert.Rd index 20342e3..35513bc 100644 --- a/man/insert.Rd +++ b/man/insert.Rd @@ -6,11 +6,11 @@ \alias{insert.Gmisc_list_of_boxes} \title{Insert element into a list of boxes (S3)} \usage{ -insert(x, element, ..., after = NULL, before = NULL) +insert(x, element, ..., after = NULL, before = NULL, on_top = FALSE) -\method{insert}{default}(x, element, ..., after = NULL, before = NULL) +\method{insert}{default}(x, element, ..., after = NULL, before = NULL, on_top = FALSE) -\method{insert}{Gmisc_list_of_boxes}(x, element, ..., after = NULL, before = NULL) +\method{insert}{Gmisc_list_of_boxes}(x, element, ..., after = NULL, before = NULL, on_top = FALSE) } \arguments{ \item{x}{A `Gmisc_list_of_boxes`.} @@ -22,6 +22,13 @@ insert(x, element, ..., after = NULL, before = NULL) \item{after}{The name or index of the box after which to insert.} \item{before}{The name or index of the box before which to insert.} + +\item{on_top}{If `TRUE` the inserted box is marked to be drawn *on top* of the +other boxes (after them and after any connections), regardless of where it +sits in the list. This is useful for overlay boxes such as CONSORT-style +stage headings that should remain visible even when they overlap the +surrounding boxes. The marker is preserved through subsequent +[`move`]/[`align`] operations.} } \value{ The updated list of boxes with the new element inserted. @@ -45,6 +52,7 @@ Other flowchart components: \code{\link[=flowchart]{flowchart()}}, \code{\link[=move]{move()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/move.Rd b/man/move.Rd index e6bf531..98f642c 100644 --- a/man/move.Rd +++ b/man/move.Rd @@ -41,6 +41,7 @@ Other flowchart components: \code{\link[=flowchart]{flowchart()}}, \code{\link[=insert]{insert()}}, \code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/moveBox.Rd b/man/moveBox.Rd index 7f2cde2..9af878d 100644 --- a/man/moveBox.Rd +++ b/man/moveBox.Rd @@ -108,6 +108,7 @@ Other flowchart components: \code{\link[=flowchart]{flowchart()}}, \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, +\code{\link[=phaseLabel]{phaseLabel()}}, \code{\link[=spread]{spread()}} } \concept{flowchart components} diff --git a/man/phaseLabel.Rd b/man/phaseLabel.Rd new file mode 100644 index 0000000..6dbb38c --- /dev/null +++ b/man/phaseLabel.Rd @@ -0,0 +1,91 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/boxGrobs_s3_phaseLabel.R +\name{phaseLabel} +\alias{phaseLabel} +\alias{phaseLabel.default} +\alias{phaseLabel.Gmisc_list_of_boxes} +\title{Add a phase label to a flowchart stage (S3)} +\usage{ +phaseLabel(x, ...) + +\method{phaseLabel}{default}(x, ...) + +\method{phaseLabel}{Gmisc_list_of_boxes}(x, reference, label, ..., width = NULL, overlap = 0.07, name = NULL) +} +\arguments{ +\item{x}{A `Gmisc_list_of_boxes` (or a `list` of boxes, which is converted).} + +\item{...}{Passed on to [`boxGrob`] when `label` is a string (e.g. `box_gp`, +`txt_gp`).} + +\item{reference}{The name or index of the **stage to label**. The stage may be +a single [`boxGrob`] or a `list` of arm boxes.} + +\item{label}{The label, either a string (wrapped with [`boxGrob`]) or a +pre-built [`boxGrob`]/[`boxPropGrob`].} + +\item{width}{Optional fixed label width as a [`unit`][grid::unit] (a numeric is +treated as millimetres). When `NULL` (default) the width is derived from the +stage: for a two-arm stage the label spans the gap between the arms plus +`overlap` of each inner top corner; for a single- or 3+-arm stage the label +spans the full width of the stage (a banner across all arms).} + +\item{overlap}{How far the label overlaps the stage, as a fraction +(default `0.07`, i.e. ~7%). It controls the vertical dip below the stage's top +edge and, for the derived two-arm width, the horizontal corner lap.} + +\item{name}{Name for the inserted label element. Defaults to +`paste0(reference, "_label")`.} +} +\value{ +The updated `Gmisc_list_of_boxes` with the label added after the + referenced stage. +} +\description{ +Adds a label box that sits just above a *stage* and is centred between that +stage's arms, drawn on top of the surrounding boxes. This is the typical +CONSORT "phase" banner such as *Allocation*, *Follow-up* and *Analysis* that +spans the randomisation arms. +} +\details{ +Unlike [`insert`], the label is positioned relative to the stage it labels +(`reference`), not relative to a neighbouring element, and it is marked to be +drawn on top (see `on_top` in [`insert`]) so it stays visible even where it +overlaps the stage boxes. +} +\examples{ +library(grid) +grid.newpage() + +flowchart( + rando = boxGrob("Randomised\nN = 100", x = .5, y = .8), + arms = list( + boxGrob("Intervention\nn = 50", x = .3, y = .4), + boxGrob("Control\nn = 50", x = .7, y = .4) + ) +) |> + phaseLabel("arms", "Allocation", box_gp = gpar(fill = "#c8daf7")) |> + connect("rando", "arms", type = "N") |> + print() +} +\seealso{ +[`insert`] for the general `on_top` overlay mechanism this builds on. + +Other flowchart components: +\code{\link[=align]{align()}}, +\code{\link[=append]{append()}}, +\code{\link[=boxGrob]{boxGrob()}}, +\code{\link[=boxHeaderGrob]{boxHeaderGrob()}}, +\code{\link[=boxPropGrob]{boxPropGrob()}}, +\code{\link{boxShapes}}, +\code{\link[=connectGrob]{connectGrob()}}, +\code{\link[=coords]{coords()}}, +\code{\link[=distance]{distance()}}, +\code{\link[=equalizeWidths]{equalizeWidths()}}, +\code{\link[=flowchart]{flowchart()}}, +\code{\link[=insert]{insert()}}, +\code{\link[=move]{move()}}, +\code{\link[=moveBox]{moveBox()}}, +\code{\link[=spread]{spread()}} +} +\concept{flowchart components} diff --git a/man/print.Gmisc_list_of_boxes.Rd b/man/print.Gmisc_list_of_boxes.Rd index e652f50..562da94 100644 --- a/man/print.Gmisc_list_of_boxes.Rd +++ b/man/print.Gmisc_list_of_boxes.Rd @@ -15,3 +15,9 @@ Outputs a list of boxes as produced by either the spread or align functions for boxGrobs. } +\details{ +Boxes marked with the `draw_on_top` attribute (for example via + `insert(..., on_top = TRUE)`) are drawn last — after the other boxes and + after any stored connections — so they remain visible even when they + overlap surrounding boxes. All other boxes keep their list order. +} diff --git a/man/spread.Rd b/man/spread.Rd index 57260dc..7b07d85 100644 --- a/man/spread.Rd +++ b/man/spread.Rd @@ -137,6 +137,7 @@ Other flowchart components: \code{\link[=flowchart]{flowchart()}}, \code{\link[=insert]{insert()}}, \code{\link[=move]{move()}}, -\code{\link[=moveBox]{moveBox()}} +\code{\link[=moveBox]{moveBox()}}, +\code{\link[=phaseLabel]{phaseLabel()}} } \concept{flowchart components} diff --git a/tests/testthat/test-s3-api-design.R b/tests/testthat/test-s3-api-design.R index 5fd1cf5..0e9a224 100644 --- a/tests/testthat/test-s3-api-design.R +++ b/tests/testthat/test-s3-api-design.R @@ -152,6 +152,169 @@ test_that("S3 Mutations: insert", { expect_equal(length(l_ins3), 3) }) +test_that("S3 Mutations: insert positions boxes between grouped stages", { + fc <- flowchart( + rando = boxGrob("Randomised N = 100", x = .5, y = .9), + groups = list( + boxGrob("Group1\nn = 50", x = .3, y = .7), + boxGrob("Group2\nn = 50", x = .7, y = .7) + ), + groups2 = list( + boxGrob("Excluded\nn = 1", x = .3, y = .5), + boxGrob("Excluded\nn = 2", x = .7, y = .5) + ), + groups3 = list( + boxGrob("Analysed\nn = 49", x = .3, y = .3), + boxGrob("Analysed\nn = 48", x = .7, y = .3) + ) + ) + + inserted <- insert(fc, boxGrob("Followup"), after = "groups") + expect_equal(length(inserted), 5) + expect_equal(names(inserted), c("rando", "groups", "", "groups2", "groups3")) + expect_s3_class(inserted[[3]], "box") + + prev_coords <- prConvert2Coords(fc$groups) + next_coords <- prConvert2Coords(fc$groups2) + expected_x <- convertX(prev_coords$x, "npc", valueOnly = TRUE) + + (convertX(next_coords$x, "npc", valueOnly = TRUE) - + convertX(prev_coords$x, "npc", valueOnly = TRUE)) * .5 + expected_y <- convertY(prev_coords$y, "npc", valueOnly = TRUE) + + (convertY(next_coords$y, "npc", valueOnly = TRUE) - + convertY(prev_coords$y, "npc", valueOnly = TRUE)) * .5 + + inserted_coords <- coords(inserted[[3]]) + expect_equal(convertX(inserted_coords$x, "npc", valueOnly = TRUE), expected_x, tolerance = .01) + expect_equal(convertY(inserted_coords$y, "npc", valueOnly = TRUE), expected_y, tolerance = .01) +}) + +test_that("S3 Mutations: insert preserves names between grouped stages", { + fc <- flowchart( + groups = list( + boxGrob("Group1", x = .3, y = .7), + boxGrob("Group2", x = .7, y = .7) + ), + groups2 = list( + boxGrob("Excluded 1", x = .3, y = .5), + boxGrob("Excluded 2", x = .7, y = .5) + ) + ) + + inserted <- insert(fc, list(followup = boxGrob("Followup")), after = "groups") + + expect_equal(names(inserted), c("groups", "followup", "groups2")) + expect_s3_class(inserted$followup, "box") + expect_equal(convertY(coords(inserted$followup)$y, "npc", valueOnly = TRUE), .6, tolerance = .01) +}) + +test_that("S3 Mutations: insert(on_top = TRUE) marks the box and survives align/move", { + fc <- flowchart( + rando = boxGrob("Randomised", x = .5, y = .9), + groups = list( + boxGrob("Group1", x = .3, y = .6), + boxGrob("Group2", x = .7, y = .6) + ) + ) + + inserted <- insert( + fc, + list(heading = boxGrob("Allocation")), + after = "rando", + on_top = TRUE + ) + + # The marker is set on the inserted box, not on the existing ones + expect_true(isTRUE(attr(inserted$heading, "draw_on_top"))) + expect_null(attr(inserted$rando, "draw_on_top")) + + # Default (no on_top) leaves the box unmarked + plain <- insert(fc, list(plain = boxGrob("Plain")), after = "rando") + expect_false(isTRUE(attr(plain$plain, "draw_on_top"))) + + # The marker survives subsequent positioning (align + move both go via moveBox) + positioned <- inserted |> + align(axis = "x", reference = "groups", subelement = "heading", position = "center") |> + align(axis = "y", reference = "groups", subelement = "heading", position = "top") |> + move(subelement = "heading", y = unit(0.01, "npc"), space = "relative") + expect_true(isTRUE(attr(positioned$heading, "draw_on_top"))) + + # Drawing the marked flowchart completes without error + grid::grid.newpage() + expect_silent(print(positioned)) +}) + +test_that("S3 Mutations: phaseLabel places a stage label above the stage", { + pdf(NULL) + on.exit(dev.off()) + grid.newpage() + + sw <- unit(40, "mm") + fc <- flowchart( + rando = boxGrob("Randomised", x = .5, y = .9), + groups = list( + boxGrob("Intervention", x = .3, y = .6, width = sw), + boxGrob("Control", x = .7, y = .6, width = sw) + ) + ) |> + phaseLabel("groups", "Allocation") + + # Added after the stage, named, and marked to draw on top + expect_equal(names(fc), c("rando", "groups", "groups_label")) + expect_s3_class(fc$groups_label, "box") + expect_true(isTRUE(attr(fc$groups_label, "draw_on_top"))) + + # Centred on the stage horizontally + stage_x <- convertX(prConvert2Coords(fc$groups)$x, "npc", valueOnly = TRUE) + label_x <- convertX(coords(fc$groups_label)$x, "npc", valueOnly = TRUE) + expect_equal(label_x, stage_x, tolerance = .01) + + # Bottom edge dips just below the stage top (sits slightly above, overlapping) + stage_top <- convertY(prConvert2Coords(fc$groups)$top, "npc", valueOnly = TRUE) + label_bottom <- convertY(coords(fc$groups_label)$bottom, "npc", valueOnly = TRUE) + expect_lt(label_bottom, stage_top) + expect_gt(label_bottom, stage_top - 0.1) +}) + +test_that("S3 Mutations: phaseLabel width adapts to arm count and honours width", { + pdf(NULL) + on.exit(dev.off()) + grid.newpage() + + sw <- unit(40, "mm") + + # Two arms -> narrow label (gap + corner lap), narrower than the full stage + fc2 <- flowchart( + g = list(boxGrob("A", x = .3, y = .5, width = sw), + boxGrob("B", x = .7, y = .5, width = sw)) + ) |> + phaseLabel("g", "Label") + stage_w2 <- convertWidth(prConvert2Coords(fc2$g)$width, "npc", valueOnly = TRUE) + label_w2 <- convertWidth(coords(fc2$g_label)$width, "npc", valueOnly = TRUE) + expect_lt(label_w2, stage_w2) + + # Three arms -> banner spanning the full stage width + fc3 <- flowchart( + g = list(boxGrob("A", x = .2, y = .5, width = sw), + boxGrob("B", x = .5, y = .5, width = sw), + boxGrob("C", x = .8, y = .5, width = sw)) + ) |> + phaseLabel("g", "Label") + stage_w3 <- convertWidth(prConvert2Coords(fc3$g)$width, "npc", valueOnly = TRUE) + label_w3 <- convertWidth(coords(fc3$g_label)$width, "npc", valueOnly = TRUE) + expect_equal(label_w3, stage_w3, tolerance = .02) + + # Explicit width override is honoured + fc4 <- flowchart( + g = list(boxGrob("A", x = .3, y = .5, width = sw), + boxGrob("B", x = .7, y = .5, width = sw)) + ) |> + phaseLabel("g", "Label", width = unit(25, "mm")) + expect_equal(convertWidth(coords(fc4$g_label)$width, "mm", valueOnly = TRUE), 25, tolerance = .5) + + # Drawing a multi-arm banner completes without error + expect_silent(print(fc3)) +}) + test_that("Complex chaining example", { # Mock components org_cohort <- boxGrob("Stockholm", x = .5, y = .9) diff --git a/vignettes/Grid-based_flowcharts.Rmd b/vignettes/Grid-based_flowcharts.Rmd index 2aa9459..11f9392 100644 --- a/vignettes/Grid-based_flowcharts.Rmd +++ b/vignettes/Grid-based_flowcharts.Rmd @@ -71,6 +71,79 @@ flowchart( smooth = TRUE) ``` +# CONSORT phase labels between grouped stages + +CONSORT diagrams use phase labels such as allocation, follow-up, and analysis. +These are not part of the patient flow itself — they label a *stage* and sit +just above it, centred between the randomisation arms. + +`phaseLabel()` does this in one call per stage: + +- It references the **stage it labels** (e.g. `"groups"`), so there is no + confusing "insert after X" step. +- It places the label slightly above the stage, overlapping the top corners by + `overlap` (≈ 7% by default), and marks it to be drawn **on top** so it stays + visible. +- The width adapts to the stage: for two arms the label spans the central gap + plus a small corner lap; for three or more arms it becomes a banner across the + full stage width. Pass `width` to override. + +The arms are given a clear central gap (boxes spread to `x = 0.27`/`0.73`). Equal +arm widths give a symmetric corner overlap — use `equalizeWidths()` if the arms +differ. For custom overlays beyond phase labels, the lower-level +`insert(..., on_top = TRUE)` is still available. + +```{r consort-stage-headings, fig.height = 7, fig.width = 8} +old_opts <- options(boxGrobTxtPadding = unit(2, "mm")) + +main_box_gp <- gpar(fill = "white", col = "black", lwd = 1) +heading_gp <- gpar(fill = "#c8daf7", col = "#2f5f9f", lwd = 1) +con_gp <- gpar(col = "#4f86c6", fill = "#4f86c6", lwd = 1.8) +side_width <- unit(70, "mm") + +flowchart( + rando = boxGrob("Randomised\nN = 100", box_gp = main_box_gp), + groups = list( + boxGrob("Allocated to intervention\nn = 50", + width = side_width, box_gp = main_box_gp), + boxGrob("Allocated to control\nn = 50", + width = side_width, box_gp = main_box_gp) + ), + followup = list( + boxGrob("Lost to follow-up\nn = 1", + width = side_width, box_gp = main_box_gp), + boxGrob("Lost to follow-up\nn = 2", + width = side_width, box_gp = main_box_gp) + ), + analysis = list( + boxGrob("Analysed\nn = 49", + width = side_width, box_gp = main_box_gp), + boxGrob("Analysed\nn = 48", + width = side_width, box_gp = main_box_gp) + ) +) |> + spread(axis = "y", margin = unit(0.04, "npc")) |> + # Give the two arms a clear central gap for the labels to sit in + move(subelement = list(c("groups", 1), + c("followup", 1), + c("analysis", 1)), + x = 0.27) |> + move(subelement = list(c("groups", 2), + c("followup", 2), + c("analysis", 2)), + x = 0.73) |> + # One call per stage: centred between the arms, slightly above, drawn on top + phaseLabel("groups", "Allocation", box_gp = heading_gp) |> + phaseLabel("followup", "Follow-up", box_gp = heading_gp) |> + phaseLabel("analysis", "Analysis", box_gp = heading_gp) |> + connect("rando", "groups", type = "N", lty_gp = con_gp, arrow_size = 3, + smooth = TRUE) |> + connect("groups", "followup", type = "v", lty_gp = con_gp, arrow_size = 3) |> + connect("followup", "analysis", type = "v", lty_gp = con_gp, arrow_size = 3) + +options(old_opts) +``` + # CONSORT-style flowchart A CONSORT diagram represents patient flow through a clinical trial. This example From 02287db9579a1d5b9b4195a8558eccb3ced9321a Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Wed, 3 Jun 2026 08:48:04 +0200 Subject: [PATCH 4/6] Update README.md --- .Rbuildignore | 1 + DESCRIPTION | 3 +- README.Rmd | 170 +++++++ README.html | 729 ++++++++++++++++++++++++++++ README.md | 149 +++++- man/figures/README-flowchart-1.png | Bin 0 -> 44357 bytes man/figures/README-table1.png | Bin 0 -> 49966 bytes man/figures/README-transition-1.png | Bin 0 -> 117700 bytes 8 files changed, 1042 insertions(+), 10 deletions(-) create mode 100644 README.Rmd create mode 100644 README.html create mode 100644 man/figures/README-flowchart-1.png create mode 100644 man/figures/README-table1.png create mode 100644 man/figures/README-transition-1.png diff --git a/.Rbuildignore b/.Rbuildignore index cdcd10c..ce92312 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -26,3 +26,4 @@ Gmisc/inst/extdata/Full_test_suite_files/* ^.github$ ^.github/ ^docs/ +^README\.Rmd$ diff --git a/DESCRIPTION b/DESCRIPTION index 8274fda..6791017 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -46,7 +46,8 @@ Suggests: dplyr, jsonlite, testthat, - tidyselect + tidyselect, + webshot2 Encoding: UTF-8 NeedsCompilation: yes LinkingTo: Rcpp diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..516d0e7 --- /dev/null +++ b/README.Rmd @@ -0,0 +1,170 @@ +--- +output: github_document +--- + + + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + fig.path = "man/figures/README-", + out.width = "100%", + dpi = 150, + message = FALSE, + warning = FALSE +) +options(boxGrobTxtPadding = grid::unit(2, "mm")) +``` + +# Gmisc + + +[![CRAN status](https://www.r-pkg.org/badges/version/Gmisc)](https://CRAN.R-project.org/package=Gmisc) +[![CRAN downloads](https://cranlogs.r-pkg.org/badges/Gmisc)](https://CRAN.R-project.org/package=Gmisc) +[![R-CMD-check](https://github.com/gforge/Gmisc/actions/workflows/ci.yaml/badge.svg)](https://github.com/gforge/Gmisc/actions/workflows/ci.yaml) + + +**Gmisc** collects utilities for the graphics and tables that recur in medical +research papers — built so they compose with the native R pipe (`|>`): + +- **Descriptive "Table 1"** — `getDescriptionStatsBy()` + `htmlTable()` for + publication-ready, copy-paste descriptive tables. +- **Grid-based flowcharts** — a `flowchart() |> spread() |> move() |> connect()` + pipeline for CONSORT-style diagrams, including `phaseLabel()` headings. +- **Transition plots** — the `Transition` class for visualising how + observations move between categories over time. +- **SVD variable selection** — `getSvdMostInfluential()` for picking influential + variables. +- **Bézier arrows** — smooth arrows complementing the `grid` package. + +## Installation + +```r +# From CRAN +install.packages("Gmisc") + +# Development version from GitHub +# install.packages("remotes") +remotes::install_github("gforge/Gmisc") +``` + +## Flowcharts & CONSORT diagrams + +Build a flowchart as a named list of boxes, position the columns with +`spread()`/`move()`, then add the connectors. Parallel arms are just lists, and +`phaseLabel()` drops a CONSORT phase heading ("Allocation", "Follow-up", …) +between the arms — centred, slightly overlapping, and drawn on top. + +```{r flowchart, fig.width = 8, fig.height = 7} +library(Gmisc) +library(grid) + +main_gp <- gpar(fill = "white", col = "black", lwd = 1) +head_gp <- gpar(fill = "#c8daf7", col = "#2f5f9f", lwd = 1) +con_gp <- gpar(col = "#4f86c6", fill = "#4f86c6", lwd = 1.8) +sw <- unit(70, "mm") + +flowchart( + rando = boxGrob("Randomised\nN = 100", box_gp = main_gp), + groups = list( + boxGrob("Allocated to intervention\nn = 50", width = sw, box_gp = main_gp), + boxGrob("Allocated to control\nn = 50", width = sw, box_gp = main_gp) + ), + followup = list( + boxGrob("Lost to follow-up\nn = 1", width = sw, box_gp = main_gp), + boxGrob("Lost to follow-up\nn = 2", width = sw, box_gp = main_gp) + ), + analysis = list( + boxGrob("Analysed\nn = 49", width = sw, box_gp = main_gp), + boxGrob("Analysed\nn = 48", width = sw, box_gp = main_gp) + ) +) |> + spread(axis = "y", margin = unit(0.04, "npc")) |> + move(subelement = list(c("groups", 1), c("followup", 1), c("analysis", 1)), x = 0.27) |> + move(subelement = list(c("groups", 2), c("followup", 2), c("analysis", 2)), x = 0.73) |> + phaseLabel("groups", "Allocation", box_gp = head_gp) |> + phaseLabel("followup", "Follow-up", box_gp = head_gp) |> + phaseLabel("analysis", "Analysis", box_gp = head_gp) |> + connect("rando", "groups", type = "N", lty_gp = con_gp, arrow_size = 3, smooth = TRUE) |> + connect("groups", "followup", type = "v", lty_gp = con_gp, arrow_size = 3) |> + connect("followup", "analysis", type = "v", lty_gp = con_gp, arrow_size = 3) +``` + +See `vignette("Grid-based_flowcharts", package = "Gmisc")` for the full API. + +## Descriptive "Table 1" + +`getDescriptionStatsBy()` summarises variables split by a grouping column and +pipes straight into `htmlTable()` for a publication-ready table. + +```{r table1-code, eval = FALSE} +library(dplyr) + +mtcars |> + mutate(am = factor(am, labels = c("Automatic", "Manual")), + gear = factor(gear)) |> + set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> + getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> + htmlTable(caption = "Baseline characteristics by transmission") +``` + +```{r table1-snapshot, include = FALSE} +library(dplyr) + +tab <- mtcars |> + mutate(am = factor(am, labels = c("Automatic", "Manual")), + gear = factor(gear)) |> + set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> + getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> + htmlTable(caption = "Baseline characteristics by transmission") + +if (!dir.exists("man/figures")) dir.create("man/figures", recursive = TRUE) +table_html <- paste(capture.output(print(tab)), collapse = "\n") +html_file <- tempfile(fileext = ".html") +writeLines( + paste0("", + "", + table_html, ""), + html_file +) +invisible(webshot2::webshot(html_file, "man/figures/README-table1.png", selector = "table", zoom = 2)) +``` + +```{r table1-img, echo = FALSE, out.width = "85%"} +knitr::include_graphics("man/figures/README-table1.png") +``` + +See `vignette("Descriptives", package = "Gmisc")` for the many formatting options. + +## Transition plots + +The `Transition` class shows how observations move between classes over time; +a third dimension can be encoded as a colour split within each box. + +```{r transition, fig.width = 6, fig.height = 6, out.width = "70%"} +set.seed(1) +n <- 100 +sex <- sample(c("Male", "Female"), n, replace = TRUE) +before <- sample(1:3, n, replace = TRUE) +# Most cases improve one class, some stay, a few worsen +after <- pmin(pmax(before - sample(c(-1, 0, 1), n, replace = TRUE, prob = c(.15, .35, .5)), 1), 3) + +lbl <- c("A", "B", "C") +tbl <- table(factor(before, 1:3, lbl), factor(after, 1:3, lbl), sex) + +transitions <- getRefClass("Transition")$new(tbl, label = c("Before surgery", "1 year after")) +transitions$title <- "Charnley class before vs. after surgery" +transitions$clr_bar <- "bottom" +transitions$render() +``` + +See `vignette("Transition-class", package = "Gmisc")` for customisation. + +## Learn more + +- Project page: +- Vignettes: `browseVignettes("Gmisc")` +- Bugs & feature requests: diff --git a/README.html b/README.html new file mode 100644 index 0000000..b576a78 --- /dev/null +++ b/README.html @@ -0,0 +1,729 @@ + + + + + + + + + + + + + + + + + + + + + +

Gmisc

+ + +

CRAN status CRAN downloads R-CMD-check

+ + +

Gmisc collects utilities for the graphics and tables +that recur in medical research papers — built so they compose with the +native R pipe (|>):

+
    +
  • Descriptive “Table 1” — +getDescriptionStatsBy() + htmlTable() for +publication-ready, copy-paste descriptive tables.
  • +
  • Grid-based flowcharts — a +flowchart() |> spread() |> move() |> connect() +pipeline for CONSORT-style diagrams, including phaseLabel() +headings.
  • +
  • Transition plots — the Transition +class for visualising how observations move between categories over +time.
  • +
  • SVD variable selection — +getSvdMostInfluential() for picking influential +variables.
  • +
  • Bézier arrows — smooth arrows complementing the +grid package.
  • +
+

Installation

+
# From CRAN
+install.packages("Gmisc")
+
+# Development version from GitHub
+# install.packages("remotes")
+remotes::install_github("gforge/Gmisc")
+

Flowcharts & CONSORT +diagrams

+

Build a flowchart as a named list of boxes, position the columns with +spread()/move(), then add the connectors. +Parallel arms are just lists, and phaseLabel() drops a +CONSORT phase heading (“Allocation”, “Follow-up”, …) between the arms — +centred, slightly overlapping, and drawn on top.

+
library(Gmisc)
+library(grid)
+
+main_gp <- gpar(fill = "white", col = "black", lwd = 1)
+head_gp <- gpar(fill = "#c8daf7", col = "#2f5f9f", lwd = 1)
+con_gp  <- gpar(col = "#4f86c6", fill = "#4f86c6", lwd = 1.8)
+sw      <- unit(70, "mm")
+
+flowchart(
+  rando = boxGrob("Randomised\nN = 100", box_gp = main_gp),
+  groups = list(
+    boxGrob("Allocated to intervention\nn = 50", width = sw, box_gp = main_gp),
+    boxGrob("Allocated to control\nn = 50", width = sw, box_gp = main_gp)
+  ),
+  followup = list(
+    boxGrob("Lost to follow-up\nn = 1", width = sw, box_gp = main_gp),
+    boxGrob("Lost to follow-up\nn = 2", width = sw, box_gp = main_gp)
+  ),
+  analysis = list(
+    boxGrob("Analysed\nn = 49", width = sw, box_gp = main_gp),
+    boxGrob("Analysed\nn = 48", width = sw, box_gp = main_gp)
+  )
+) |>
+  spread(axis = "y", margin = unit(0.04, "npc")) |>
+  move(subelement = list(c("groups", 1), c("followup", 1), c("analysis", 1)), x = 0.27) |>
+  move(subelement = list(c("groups", 2), c("followup", 2), c("analysis", 2)), x = 0.73) |>
+  phaseLabel("groups",   "Allocation", box_gp = head_gp) |>
+  phaseLabel("followup", "Follow-up",  box_gp = head_gp) |>
+  phaseLabel("analysis", "Analysis",   box_gp = head_gp) |>
+  connect("rando",    "groups",   type = "N", lty_gp = con_gp, arrow_size = 3, smooth = TRUE) |>
+  connect("groups",   "followup", type = "v", lty_gp = con_gp, arrow_size = 3) |>
+  connect("followup", "analysis", type = "v", lty_gp = con_gp, arrow_size = 3)
+ + +

See vignette("Grid-based_flowcharts", package = "Gmisc") +for the full API.

+

Descriptive “Table 1”

+

getDescriptionStatsBy() summarises variables split by a +grouping column and pipes straight into htmlTable() for a +publication-ready table.

+
library(dplyr)
+
+mtcars |>
+  mutate(am = factor(am, labels = c("Automatic", "Manual")),
+         gear = factor(gear)) |>
+  set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |>
+  set_column_units(mpg = "Miles/gallon", wt = "10<sup>3</sup> lbs") |>
+  getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |>
+  htmlTable(caption = "Baseline characteristics by transmission")
+ + +

See vignette("Descriptives", package = "Gmisc") for the +many formatting options.

+

Transition plots

+

The Transition class shows how observations move between +classes over time; a third dimension can be encoded as a colour split +within each box.

+
set.seed(1)
+n <- 100
+sex    <- sample(c("Male", "Female"), n, replace = TRUE)
+before <- sample(1:3, n, replace = TRUE)
+# Most cases improve one class, some stay, a few worsen
+after  <- pmin(pmax(before - sample(c(-1, 0, 1), n, replace = TRUE, prob = c(.15, .35, .5)), 1), 3)
+
+lbl <- c("A", "B", "C")
+tbl <- table(factor(before, 1:3, lbl), factor(after, 1:3, lbl), sex)
+
+transitions <- getRefClass("Transition")$new(tbl, label = c("Before surgery", "1 year after"))
+transitions$title   <- "Charnley class before vs. after surgery"
+transitions$clr_bar <- "bottom"
+transitions$render()
+ + +

See vignette("Transition-class", package = "Gmisc") for +customisation.

+

Learn more

+ + + + diff --git a/README.md b/README.md index 1a60554..396edff 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,143 @@ -[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/Gmisc)](https://cran.r-project.org/package=Gmisc) -[![](https://cranlogs.r-pkg.org/badges/Gmisc)](https://cran.r-project.org/package=Gmisc) -# The Gmisc package + -Tools for making: +# Gmisc -- the descriptive "Table 1" used in medical articles -- transition plot for showing changes between categories -- flow charts based on the grid package -- a method for variable selection based on the SVD -- Bézier lines with arrows complementing the ones in the 'grid' package, and more. + + +[![CRAN +status](https://www.r-pkg.org/badges/version/Gmisc)](https://CRAN.R-project.org/package=Gmisc) +[![CRAN +downloads](https://cranlogs.r-pkg.org/badges/Gmisc)](https://CRAN.R-project.org/package=Gmisc) +[![R-CMD-check](https://github.com/gforge/Gmisc/actions/workflows/ci.yaml/badge.svg)](https://github.com/gforge/Gmisc/actions/workflows/ci.yaml) + + +**Gmisc** collects utilities for the graphics and tables that recur in +medical research papers — built so they compose with the native R pipe +(`|>`): + +- **Descriptive “Table 1”** — `getDescriptionStatsBy()` + `htmlTable()` + for publication-ready, copy-paste descriptive tables. +- **Grid-based flowcharts** — a + `flowchart() |> spread() |> move() |> connect()` pipeline for + CONSORT-style diagrams, including `phaseLabel()` headings. +- **Transition plots** — the `Transition` class for visualising how + observations move between categories over time. +- **SVD variable selection** — `getSvdMostInfluential()` for picking + influential variables. +- **Bézier arrows** — smooth arrows complementing the `grid` package. + +## Installation + +``` r +# From CRAN +install.packages("Gmisc") + +# Development version from GitHub +# install.packages("remotes") +remotes::install_github("gforge/Gmisc") +``` + +## Flowcharts & CONSORT diagrams + +Build a flowchart as a named list of boxes, position the columns with +`spread()`/`move()`, then add the connectors. Parallel arms are just +lists, and `phaseLabel()` drops a CONSORT phase heading (“Allocation”, +“Follow-up”, …) between the arms — centred, slightly overlapping, and +drawn on top. + +``` r +library(Gmisc) +library(grid) + +main_gp <- gpar(fill = "white", col = "black", lwd = 1) +head_gp <- gpar(fill = "#c8daf7", col = "#2f5f9f", lwd = 1) +con_gp <- gpar(col = "#4f86c6", fill = "#4f86c6", lwd = 1.8) +sw <- unit(70, "mm") + +flowchart( + rando = boxGrob("Randomised\nN = 100", box_gp = main_gp), + groups = list( + boxGrob("Allocated to intervention\nn = 50", width = sw, box_gp = main_gp), + boxGrob("Allocated to control\nn = 50", width = sw, box_gp = main_gp) + ), + followup = list( + boxGrob("Lost to follow-up\nn = 1", width = sw, box_gp = main_gp), + boxGrob("Lost to follow-up\nn = 2", width = sw, box_gp = main_gp) + ), + analysis = list( + boxGrob("Analysed\nn = 49", width = sw, box_gp = main_gp), + boxGrob("Analysed\nn = 48", width = sw, box_gp = main_gp) + ) +) |> + spread(axis = "y", margin = unit(0.04, "npc")) |> + move(subelement = list(c("groups", 1), c("followup", 1), c("analysis", 1)), x = 0.27) |> + move(subelement = list(c("groups", 2), c("followup", 2), c("analysis", 2)), x = 0.73) |> + phaseLabel("groups", "Allocation", box_gp = head_gp) |> + phaseLabel("followup", "Follow-up", box_gp = head_gp) |> + phaseLabel("analysis", "Analysis", box_gp = head_gp) |> + connect("rando", "groups", type = "N", lty_gp = con_gp, arrow_size = 3, smooth = TRUE) |> + connect("groups", "followup", type = "v", lty_gp = con_gp, arrow_size = 3) |> + connect("followup", "analysis", type = "v", lty_gp = con_gp, arrow_size = 3) +``` + + + +See `vignette("Grid-based_flowcharts", package = "Gmisc")` for the full +API. + +## Descriptive “Table 1” + +`getDescriptionStatsBy()` summarises variables split by a grouping +column and pipes straight into `htmlTable()` for a publication-ready +table. + +``` r +library(dplyr) + +mtcars |> + mutate(am = factor(am, labels = c("Automatic", "Manual")), + gear = factor(gear)) |> + set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> + getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> + htmlTable(caption = "Baseline characteristics by transmission") +``` + + + +See `vignette("Descriptives", package = "Gmisc")` for the many +formatting options. + +## Transition plots + +The `Transition` class shows how observations move between classes over +time; a third dimension can be encoded as a colour split within each +box. + +``` r +set.seed(1) +n <- 100 +sex <- sample(c("Male", "Female"), n, replace = TRUE) +before <- sample(1:3, n, replace = TRUE) +# Most cases improve one class, some stay, a few worsen +after <- pmin(pmax(before - sample(c(-1, 0, 1), n, replace = TRUE, prob = c(.15, .35, .5)), 1), 3) + +lbl <- c("A", "B", "C") +tbl <- table(factor(before, 1:3, lbl), factor(after, 1:3, lbl), sex) + +transitions <- getRefClass("Transition")$new(tbl, label = c("Before surgery", "1 year after")) +transitions$title <- "Charnley class before vs. after surgery" +transitions$clr_bar <- "bottom" +transitions$render() +``` + + + +See `vignette("Transition-class", package = "Gmisc")` for customisation. + +## Learn more + +- Project page: +- Vignettes: `browseVignettes("Gmisc")` +- Bugs & feature requests: diff --git a/man/figures/README-flowchart-1.png b/man/figures/README-flowchart-1.png new file mode 100644 index 0000000000000000000000000000000000000000..517dcd0306131f1ea359c4ed37a791a263623a97 GIT binary patch literal 44357 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 literal 0 HcmV?d00001 diff --git a/man/figures/README-table1.png b/man/figures/README-table1.png new file mode 100644 index 0000000000000000000000000000000000000000..86b224abad6f9e76a1e7aac336339ba75ab95ea4 GIT binary patch literal 49966 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 literal 0 HcmV?d00001 diff --git a/man/figures/README-transition-1.png b/man/figures/README-transition-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b563c75cc7eed813c612bdeb465025fd55fd494c GIT binary patch literal 117700 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�@d;#UT56cSatsQ?1cjOat~}cYG={XE*R2r%WT;Fg*FfnDj+5dM~Hq}c+KR`f(TtD9W~6cu(U+G2*C8N5_^nq5QP7}Yu@9-+IrL(Q= zTYM^h4SkObr;Z90C0kTnOc_-o;?QeRG;sy-L|r~kFk zl{!_uTH+~>Q8x&dNq+0W6^YTTaj@Q&dt?!zSAH3Ghz1@}3WKHpy**nZ1h4t>R6g@8u_P$$rwjgSjT zK*g8wOYIx-q?dP!dpMB_Q>m0{`fCE1L-c7^QSwLk403OB^x1B5G-LbK}s1bZAVbRR} z743J>!XoHWA<;$6Qc_sx589m)kg6%a1U~8~C0rJ`a>4f&3>OW3XZq&K*F>1Bjef4L zqk4qlj>sh~)z#OdZ90LHz|XHcUz*EJ$-Ou%_@O5#rP=QH{kpeT)e3^-$s?H%Q!Ct3 zl^Tgsu8fI3?c|sjWRct}Vu|`Sf^VILA@~oxrOTnjhJ@P<_t(7WG$>ep=j)tO-<1%m zu;|7=#E8^2zJ`)#dB{Cm?*ejb00><26EJ9VXbAh@OkrNRWEeQ}h0C!3rmF}VL*Mf& zlEe_|vVBYi#P_8oX>in_e~XW<&MbgRKL#p50E=Jb<-LU}qY0BZs?m@3yL4c9aRnp8 zWzH))%?sU`CZr%vjQ)KBoXvz^1+{~(%ft24=Z>=mC=IwhYu#*@Itg2FD|jC`I)csb zDU8pJO-wf3YsJ4bc|fWB9nAHoE$)Z*kf{<9AP~bJi1h~)T@8SI!`i73bvE5?sj9IbVy@nGSIO}*ISUlYWRVq7Pa>oHW(_gJm`nxRn&aLeZ^5mC|a z?spfDhkLB*EDH|$Hd|CmhD(kXVw9iQv}$lBN54{kCR>oCMu@vO{=$05I!MeoaQ^!B zE&^`a-tkxP8%>5n>+KD{gC#^x{@z~ zIrV0+;@VyqdD@ySyG%=vG5ABQqGBT78rLdEDe4BFe7(GwnV$CDoaB0PWb?9}F}WKX zQS2qD6QRNWU!_rXxCT2q6Sg4o3K1pn*1)gB9%xOgWin!sZlT#Kg&j=GqLdbYa-R19 z;1^^_pv#>mEG!HHvzD~3s4hpw6oM>0x78fATdIR)ye{`UJ{%H+zZQ6`ETKtoWFbB{ zn~QO)LG~%w%_@Kyy{G2^tgR5(Yq6@Q!RmGYH`Dz@tA^&>NB4EKBOl-u4Q9=JdR*QS zCpB!Pca*tnHgZLlD|OZ0Jj8vi&9Jr*NK;F&p}SPImwJuq1Oqh|_G?g1!N%GaqoPb4 z=3j&HKD01Cu|VAP&VP4|YuKcvpFnsEmV_4S(iKJt5)x;Sk4{tWp3`5qsuO{d?d3TKnxC$9wdy z(ymq5q?A}$_*!3N{36OlKq6klk;z3;PpHt--3_n-wBK>}d1=de*~q!z!vo?7bC!jJ zE6T(d{wWxkh>4G}_fv0D5&QsK1aOf8iZt<|YT<=1SR~*_kW*7feJn{x6u*uPTWbI+Q%OZb2x(_zAByP26VYn`ZCJMC#6_u@5TsE^c3l*jG#P zI$yl>mT>m?)M2-yWgARH8lG2HQ*!{&1$+)T;Kb${)_)F8ewrTS8J*?PSqm7oaEf_~ ziQQw3hc9$p-Ml=WMOI%H$(|D`=`G$62qdNki&a2&Aqhu{*woTdXbyZ7(J5FEmOeshcasC#6dc>fvLBbWXfe5!=<3)p+CsX_Tv6!;N97=URfU`dlF%~p?#IS!`v z&k`$Jjd({{SpU0e-PYY&8Q3 zEO5(M&t&Pso-u{mNxZa7<06kn?sJ+|F@`|^EO4m76>{>=in{)efqrB3wIzPshvw?Z z3am+b?9M#Ri#eBmLBSXi^7}_e^$iVAesrnZ+1s-xtD+mfiiZy2T`1{+EaKqP`99Of zy|MO+WOQSbpPu(H38Ju(+>fZ9o1Cz`RW0-HGUG0Ncq{OCd-1c~`w#1)WCTArSYO>m!%7yM0Rmg#B|wGl{}>NV{D*hsD4t3td7dmrAWp-&YML zv6^pT)&s)9tOXznizC6$OC60Q@O*By52S{!t?+%F)apm=DkqNA*4shPbko%f%NJj|3xG zlidBACPl`rY06)m7t1q(owpF$Pyz;8YoEOz&>Vw`2xhsUIB*AatLkn_;VHSKk=6Ko zC;j}3i#S!vF4I7q$4%l7BdU_SYC}pD#fKaShaBQ&BBumR)qjyNbnc%YolaYD%URcK zUUBOaTReL|gc(^3NgaqXqzP=k`T3xrNlj1x4Zo?TMu2ka(w>YZ`Jvs`Bb!|(o84iN z#;qfz^8Aon1{J?BAAMiU4xw6Eczi>Qvc8%1t+!zk4u5KU$O)r2cc(+kZ1l$Ek4eK z2b+~j@ff(?n}*4Pse{V{%(Dpjs&eQ{(HIduJ(Oh|ki3FQ|LDg@Getj_)$VHPYruOm zhcsq51IzN0v2}&1;LV)o`vZe_fBp8QJLyoJKHo%r`}28Y>zoy98FOe4)@4xt0JCQZ zHieHL)!_hHfV%oKd234<;Ry9LqgIcH%Eq&C0&91P$`Orssue_f^dE+7m)-O3?JcUC+Dpr5j{D}lVK$B)|>&f2@IkoS%Hn;ENe zT(@qLmxyCCT-yK8n7Hp88Ybv@u^EfQW2((iw$)&jILN&loO{hv{6DcizpO)c3aAWEMdUgRO6(a1_u`;5~f#5vDboO z$_NiyV4F0dvd?64a+{RWs8=wh!+#9Fdn=TSxcwXMFC=^nx@<9@HIDJ_S;FB(aasZ@y=9m!ffDE#Oq+iyc%g29&o>zBLWO?$cTEQPfq*~3n+Rhw zFuv4!EyH0$OIuBej|1+n`~F~04x9``DBvXk&w+gra`!XNQ{CKx%Fc^S<5`10B-^yv8GDYOU?e#*+)T1D1*iYgnB3R$|gEm`Sfitr;~ zC4qkj*O<*72S{KAL=JX<-{zvEP@T!|@wt9ZWoQ*6%lY+Y*7DDWa6Mk(uo30A6F*Pi z#w6w0$KoZ&tkl`bZTtP85g^-y-9jIhrfR?7N#FD)EH6el6;6>R-5iqWWbwj@J zU3+`(=e1uakN+{2kXP2veGl=XdTwN!WM<9Q3~zt=aa?NeEA+ImT9>?MbTcL=JSY1m z&Tl(`?T$f377rM^0PqUtS&WjED_5QY+admjC@{GM1Oya^?J|;yGQ0W^@-`ANCKapQ zFX0+MzXwu%U)#Pd9a;2&Kok@de1qP$d=ZUL!E#>^g-av}qOsyJ=n+9k+4=9Nt@X0( zM0HysgEGDyS{e&WvAek6{;X~3Hy%W!6W)`tTCC@{;yd(4WoUy-J&e=u z`(tadfp1$3EU-7++R(a!C)u=&f1$90{SKU{fw6Y;hoKEB?$Zha;n+9*KvIj{Q62n_ z0X_kf9B{S44SY8mdL0sIfog^uNJ$FAo^7tJnvl;)zca4g{4<;{`58rW;r;&l=WN>} z>qjL&^GR-%$LP~?oVhFS5bF5)9?OzgBXpc1Z?oQGrASDQE=lI^|1ue4_mF=@{<9X~ zl1c%7_`eU*Hd4`ok`i~W)1Z@)^?mcVi76crr%48STx+E zBH9QTccoL$m*fx{CB-hhK`UrvukliBVj#}Rc0{0tPoRNKpAa|DF>n-VX=vtNb@%d4 z;(S5R1~9gO`wWjegl)~7eTk%?jenVx^bWjofK5IiZlV(rXYWjcV4}@nx*LwFuW4x! z7ZN%Il{0uCU`ZL_g)85oiE~z)_202iEjlZH-uvvmSTH{i(3e8LSuxsX7!GV1{-?Iz zR3OJ-EtAq1PmG1llG(*4%qJvZn<0=<8mXa=o9a3sBy5}U-+s@gj5c8pt#fQF!A=_G z0>xgoPg8hdA&3kJfQi0H-JH`y6|IQQcq}V(0^bLD7E%#P+KgrdHnR>5?n4!8FL2m- z4pHo}u~7Ri%930QFCcR^YM(#CvNPYGD$ko&0&fv9+T+FAlw9e{Cq3E!?MzhPRY)yt z5tm3IjkcxDRT8usC(Q6xpvc1LNwSs~w7M>!LAb6=$=$xj^|YdUtwNV`Wr|AsV+^nb zq)4xxh?@b`Tr*3^34|HwU5Af`n4;&LFsf%8j8b}*|DJulG~|A@O>}~5|MspVgUYM% zVe@ChCHN5!ptS}p8u(p2xA(E+bS|HEp$y-(L@6Z(O>TDaoB#N8xPg7MYkX<0hBqHE zjuEC>szW$HiG`o0RXEOtRNzk2D&Yr6k$X5v-DZ@KMhNR#GRg-d*P1jMU&5cNBy+X* zdYYZFXLABq3-A~JiC!Kz!y5i1N)!_^6HC*4nolI9(~ha!GB$LOb=UY<0R z`~e6*sVONz7M6n^A3@v~t+5qfIn~KIN4?ZNab2mLaI3BkW>|+P)F>tMWZCrguvx-X zSyEAVCBqa;0T#y$Q)JT}q@+z&Wlurb3ZyBPCUfEDG7{F>9o~dqfcQ%jvcmJI;SHd#l4Z-itTPu?0RG|c6Iz(rbf1a4Nt_WcPlo7 z_Igelo33NIfRk+v%su=uqh&{}1%mEY=5J}L1ew|y`x+P<+MQ5DH<_<(fy(hyw&-sC zj79cc50*~}yR7icgTY)}Lc&`}v-fgQ^SnBkL_`|*;6t)c-GKNU@T&UbZ}@>X9=Iii zG2F(MW5ppXo_J^5yLDyz8Oyd9`4`{eS5 zS8442rnmEh2Lhn4houP8PTsRWJCEyG20wa8I=aowEXTa9Ba%KA_mB+inF_z}9Y1(< zGo}dexk(T;Krskt_ zX7SeIKbU=1x3{H$lmH0K+1Xi7+E+QusGeX*NB|uGuou%{-+e?B{Yd^*HEF0$23_Vm zCFX0OX^eRG42Wb7P)cA)S)eD|G;tl0Zwi~+Ribr6ZLZew=5J3s~Wa8jT2<5G@N`)Rfo8WDX@FYTwJ;ie5 zC`5`b1#VTs77ckApEcOM3i=7;M)|Oxj-^Lk?X9s0*A-90;Rq~XR$@*U5j7B=N*9?< z7oJXUsGqbp`fTY+59OXV4ClaON551fOn5Wu8Mx7)MOY?voKjNeT&d6J%Q-cO!#Tc1 zBe{o6SWx{st1t%vnU_ECZa_Rpa_A3l_ak__aiZ%~7nQSn(!c;l?-OB$g%J+vbRsfrxRg>p(|$h!K;h6ZG# zh(V)}LA{Vc1A)oW#cga%W+o;k7M2HqpTUHTkM#)(Ji%e0fOg%0wgk+$?C6J4amuf< z5!j>~>~}MbrpL;4IHh4s356}pQYS$2RS-o8R~6k>Mp(BTXNEBaCk>S>Ot&;l&o%tW zg74EmXr&uh(I82j6!yf2NpL&otoTk3NV%g!LmzF+@|Pg* z;2;`GqYm*Y8h-ux%Z^cH{NCliUs-?Jl%*TXirWo%BVJlOAGU{(5S%Oj4s2{4&KD!R z;DZ4G8ABqpw$QME8{nz6q>fDS#0ETI#3UqNYwTj-@5TO6FMF;iih)P0ZT$@onTevZ z`T~e3WDIn|v<+BX!T&BlDehBUo>3GV_VZS$=LZoyoL28QwUUk%t zbaPp2tRpa)!>ObXH!P{KbXZVh8_xh3IsOJU4b5Gc`+&OStz~6Z6^Mb*2Ursh4sOtr zf>|RDHa1G@@b~Z6V~*!y4^i5^eSNq%I3N=}gr^(@8Ly&Aj>>q+5b$o>l4;hhvPurN zvHx4<0MY+FOcnlp%%p$sp3yrZkI=8Kym=|N9Oc7U36%>OYz3-S2dD{fSdwKYyC|*( zurPNPw`;Odde=3^Jp213;chDnDISPd0T~8zJ^I++XHLx@*|nkRb8))G#T}Tl|3`T< zUgGzT;nWOwTKi80aFT&T((6auW)@U>Xo4mPvEAL@rKaj%E|N@&0s;&3yH*fifC)51 z4`1fFrgoE_yjq84Bk8#W+keE>s!Z3eqW_69FMC09 zXq68yIt?gn;Nm|HMjud!F8b`#Bbdmdn>BeV|5$-GIJ8;ME5 zyUZVWsPzUX>ck&{bDQ)w*Nq`CfRXTRfpupq`^h#4A|k95F(gTWB4fzitr(+ zw@AHNqezj;GgFZ{oh!{V6Zr-?U?%{!7={BSpfTbm`)H?^sc}0s+HQR3ObC}ll3^G2 z^zH3!5J|%U*-k4f&w9?kH^OYdGuxzjm}jB%WkcyT-JpK2JF4#~=pO!rFIgQLglu%t zl#g(U0oBd4)tgkS!bkP$bwRU#0r&$qx<7wld(PDYDMlW2Ca`+|&C;44#SHO%EMQX% z8b_#ct{?`KB(b$w^oTHI@hBCLT=$<#AY?&AL<-Vvux$J+eHMo<(@-ib)sXFL2Drle zwO>~PZ;!fz$_1J<=*{wXdgSVcqkwjS9uU9DI@mAg3KlArBls?z(XqZz|46?W&*`}H zYhq%76+&+5xR85MJgM9F=q#Tvy@g)iu zEFC?;Wy;TwQP}y#>(^`0Pr+l`dZ)GGxx}-!X%P#r8&xG~^9$URbz3e7y-c(!2US$p z)b^&S=*8KBpB!!cHA+e$P`QI105TuDu1^%MLVp1R&4-U383wDf-C)56wp(bSdM2L1 z05UN~_e2d4A>Jgx%Kbs@O3lXH4ThI&Yg6iYobbIY?F z>g(dUXgM}y>MDX!LqGuY0N$AaLlzuBr13sIbeejN7v8VGf%hIG6a&eXel^TKOOlDn z3f^|u<*-D*kQG9s1%efL??nV&jo^Eb9M{y^3*HnEi}-$~qX8HwoZ*L_ z3nEpo0Jij6D>o)F@oSxvesHijzR-5(J@{KHB&zV6);A5Rq3 zQw^vd=u_Z3w8fy%sjU^{<6A$Xgf|O@L2$sc04N|FMn+%2jqlgM-|?ci`Lz7Tbb?+9 z%{cuF<8$39Hul!e565RxlW~!AM!dV#7E1uhYnbSmq}eV{&Vn(xiJ~X39*u7B1JqOSlXgp!uCj_Ak>tQ6fe0+RBf^G18UjKLJb-s^*K%*e?VmP*s{`%%(Z*;0E zA=jFZrt|MXY{y$d%hmdDBiyF=n=cl38eEZMH2HIN6J150e<-IVGTuK3%A^rK@DdKC zD1Lf9S=AO4aw7BN<0-@T+1c4%cj>^k&&9Ofyr{*y90~&6uGzkCV2A|GGz12H42qI`yU4*f`mtzXq+dGd4Z*d80H~&YFTw zn}FrRrswoT&00%W&R5RDz+7{t9kA`ibLWoHv0N|T~Vu@gD;NU^)f251tVbF(27z(N!JAcDX!hF-!KEaP#ei>J~- zGU73B^62N&WX?%#_q!`HZp!=OY%=GkE*cu2fP!@7Y24(1yyrNvb95$idox+}!&S8l zDe*UnFI7hSc&B@V%@)qp$XbAS5W9Bhu{p^k^espk%nD)VQEdbg>+%q2y5Z2&)I@&= z6J_|5rsnL!25^z=j8|t*1zau732i3`$BP$u5#8yXcxm$Wt46b)Z?-F4ABs);8j761 zYx?X)y+ZlJfqKP`dZpo@sh!~|)ARg%OZb>TMT9+id1qWs=}!9YZ0#C^GH(5~Q`l3a z3nSzsL=Y;Zq5j)=Vh8CUB+`GrK_ckSOq(lCt3Xu(kiFGV<#CuF=Fgk$ zq0aDtze;CQ0&It1SmN*ZFP1K?!||AOu3b^{S{gg40qS3{z{n96zr06Z*#0RheO`+7&mWZ2bw!nKVJ9(DDNjSW6^)q+0*c4-i& zXE)zCp@MSKQ`7QO@9Rz0z9@?UQ5jqYU|!KPFc4QL5;1_FZMW^0mcs*(Ektp!-j&2f zGM8a)jjwhApB&Z+Xqv;A%SPZ$OZPldpUV8bEUk;Wq;L6SwbTi&G3N z4j^fktB4nWdMkeU>;3nALfm4@sJl&ILj6?cE~_sfV#3_`06OojYA2S&!mU_2QNy_fs4g{fzA&Y8i9|Iy)RbvH^{Weq^l&tf89x&p*mM z+0mW6$~^bv{H!I!IKC}FSCh}g(vn1!Y!i$K(D|}O$uL9(FT`%@E7)>xKJl3Uq|e=^ zH>b~ecv~zOiL7bqxWg)X>${q-b%0vc*@Hn_SlCn7V8aeNhOxsUwN0o+o?h8s(2JrC zB>Vc5hi&k}IhYV#p_`X43Wh!>58J!V)~r@GE`@Js@$?5`c; z$2-~)I{hP`&V1Xp@p7oAu!})x>AU7Bme>z~?7xUM&^3k8&%a|P#RLB^WV9mGwPIpo zpG|~z6-#t-w&@n>a^VZk6-9aO=Af)wmp0UXvc6ODq9Q!O!bEv_{|~fxpU@G)Z2|DQ z2QnfK4}kjLdAeD#+i|AFM()I*KuX8JBwL$KiP#fjE1B4UjR??8NDQWXzE6y1uKtEy z@bm5yDRIY1^gCNvpJW%9M2$6RsWqb?A5ug!%(WA4SK+}3e5=k`6coe zJfv`&U{nj;pERts5!GB!X?-_J^z`-d^YrlZwWHm%BccaY2S#KeO=K9chl=5&o!N@? z%`DnLdRfT5gytEjK5j5AOmv9y*1dnf5nvd&Ih9)?cGyupq1TbzKWkDYgkcH(%paHUA>)#3g2=Nx$ur`J)WCRlo+`*6&m{9OKk1gu~?v>mobkjfB zQ~9?fJAyRF;LE~`#J@R~!M{*7+l`4KfxircJ{zdD8K{1A8!Ke>`7BPTd?m-|HhOCT zsy^OxLbCto0_?&C0Nn&gvep>g?5sDIfBx9m{IMahX@IFu*@LVG9iW0Pp%o3{L77lz z(_YnwScCd0DQ#V)lGtlJChx2;7H0T$fbougih(n5>6MOy`CjmAXj^;xS3rFL>?Epu z-1P+OsjlODA0lObLKx@*x&c#J@fWx0k}KLyWxeqiTSs#iyzI#pTqZtio_7XmTU1Mk z&v_j67n?r%O&*Q;Od!C+eNQ!Bv9K#ty#!ib*Tt42AS=Tp54Ia%=77;YsNstBf{dwA zuBcAmUwywjFY0{P8vHu`tT#^dGuS%d_ZH=;NK@kqbq!5)7U{~er}Q-iJvlv2z{(H# zH60`RN%NxGfl_Jg@bD1cQkc?$jqfVdXfO_(`^tZ)Zf0(-4W41JH-o{FuW@hC5>gc= zB)}bm78eb0!Bg{uh7DUzT!Hk%;$k~2)ll|`=Mcm5nH+AJ|EmG3Fg?Ok!`Nr*@t^rM zZNpBh#6>|h(}X9%?n{l<`hM#pY?tt+K(dbaAG&Hd~#Y=l`wr)}Gu{Qn#BCXld`~1YU5c&)e+>2rGmY z9xfkY4+0kvt$6&4_B?-^ap!A&(A3}F#Zs#@bvt$SkHDY;V+de8qYbc^mfm*mVjMnz zUOfT4?jS%51O@kgv|Pmwhw6I_d=0_W@XnpLa9OIZT$M|LWL=R6d9jd-HsZBzVvVZM z2WQI(dvzh_!75+Aw^Q^q;rOLj-HNpoKbIj`$f;9Z(Gihs{=E}Ym5WL`K8=h^;%RWb zx<4I)!G$+YLLLn+9&kYRm@i=uSem&lG$q4Z`ts#;r2|(?Q7@Gpe1+V!c$G9*yeRp2 zL8{+BP9(^XniCrfW$#NV$47`mGi}$;j60b*7b;(heHKqZE0OT^j%uf$#Qu+?w-RQn zo+tlnj-^qe2lJ|vIhQI3&!RVM{V57&wt&Bm3=N%u=OFrCcYnB>26q(>zpuff;^Kk8 zVg-CGR7L=g7DbTpLd`9FK*8K5vA!<^9M z2X%F4XYR!Qt-x1`+`&n?CrlC)2rDQ1oh|;rH|dG3wYT=2Yyvf?qF4|GdH5m^9 zC%{iUnFSUw_&Gq~d{4!#o-8m$y#%UuIBs8afyEqp6__6jgdx5TFgfZJ=#?EE9l?}z zo>rSLY-4IrQ0s#K{B_OCH6NTS2 zHmtUO0YXA(lwnX4g1LERvP=`TsbBZY!=RfY(mF%F>~_Ul$!zbkmbVQv4t2m*+peEM zx@liJHWr8g!FLJ`LoZfVo<5VN-PMtCiJm!sAj#4_t->DZ?9@_mrI90 zhdg&|3;Z^Vftt^`Sybtkm7_b^WjN2i(MbRPsAVa|wm||?D0(g6r#L%9oq0bsB?U4@ z1Ep}~lJ;$|N+Tj9Oy<8uEB<6;=8C}xbsGPP@m>dkh%7=mTb7B_7=+;QQTFnMs+Ej? zYU7|zt@3#un4bjpoDidN0u3fKPp5l73W0!f0$QAUKuJN6z2)8l(?S3b;OP~E3^n}; zho6Tu${;x*x+{fS?Czt$tGeW6aZkAQ^mL~2(SDvpYuOFDo9@dgozu;p%71e>h5mx- z_y76|L@2D?u=&7n6d-PJ2^+EDBW(S(evzy48v}7H(%{AF;D5Izr3^`kK#+zy*Zd?i z;P>%4Ve(;{3m_WSlMcs#mv&uH#HxV|N#x{$?%) zY`MTI#W#Yx=5e$;k0-Vm69kJkYssbL`Fy`zY?N-@uwug}3IR4C3>m=t($UpbQ(b)y zpj!YL8*RADD>}|r-_M0yZsmTKQSS_i`72l;b)|~L6zC(IrTh61q{C~3 z3Vk_c6Mmg%yN!l#s_TDR++b811E2-~@4oKt2mAl^f=!42;KLj127gXZL1Ff;q2U=3%JNFzIWoleB zeN%g25@U3GN1Oqe9a%n*XKxPopvG>fFENU!>+IUoE+d#H!)5?QA6nlCZMjcH-<|-x zGB7Fvu?GRds&*Dqo1lAvtU>tCH_4atIPhq1!(hcvaqZjS>u~vd4AQ5|kNYyO`1p|X zTr#NaDNhp<*kgBy4F|s=GqVa;76+aN2}vR-gQ}XFPhjW`K8&4#N6s@=y6ow>+FIiI zInS6>LmS=vbx=J0S)n~o@3&*Zu=WA+%6og8o0@K0!V7e;`Yt)p^4I?U$qw)!Ve^DgFxb^V5aWHOzkCx|jDEPK zFj|2b5vZi#c=F^4+^ZJh$w($uUMs#iQPLDI+0nev0yn!N@(zsr2TG0J4exwJM1;4G zZfdh6BZ0MrOpk7gFI8NkDJ8uaCYD=#H~SMPeh{vdtO^dY5L`YBYo;#`S%meM^EYv4 z#@7)DYKf?UXnnJv^w0e<5qPqrBg*TW4_@WEoNo4ubEsn=LVK-75^@-%Zq~dhXWSI)i{v7Mn`X~uipi>CkP&38Ok$= zT8@BB5wuE0u!M#%GV$L50!#2Rm6DXCA*{@vMuQEYTY~D7>!7Mx@>68~N7z zo54ctc!3=)Dj^1oVuZCD%s{#Z4`W8g5SYU_R4!*_*Enb-c>8%5CaGTDCN5EH?U!|U z+s?hnfFSIhynb4)5W%usyueZR`;pI(*CyB!p|NkcE9>iy_)4*NsFOy(86F;MfSJMV ztF^RsBLZr<>_`xa0KWxdGk@LV004QZ#pm8pb$z`LSO=m}Jok5riQ1M(`H0!W(a@)} zhosnYp{i^k$cEz_WP31AM{nz(W(Iy$E5pQ>@xSwB#Rvo|yUXbZJl^}F_z^|U|6%i$ zw78_Q_o&sDA%BII)<{RF6YLWZ9v`_mI;l5%)wZ?N%&Xc8%tEOLEOVgkKur&UD>2|o zX(ZFB%}*2e5B_UGvLwT@37yUb=vzQg5ZLSw$dr%I(btg6#S=Ve&ERDMs0|zvtE-pY z?*ilobSxnALJz3H4g_L91~YwqFGwH+lna4a_YMTF1XWd4I8Vqsxjn>}#HZxqdfxtb zZeg?GKv_;d3dv@`Neb{2KYx+eCrv3jF^oLJw}ee{Z#(}7RCeV;PD9^D}*6i1Z~$tZQpfz5*#mIsEE!LQNcpM z$pU2o{q#*}$cd_#)Bu|kQa=EFkm>~fQ@+9T^5SBJDStvlXwR~wl$1f36F`9r?hBSL zG?fBE*zI$*ZjCsm$#h<@gtN}Zd74sgbc%eOHLmLQC|C;}f+7hkeWQ?Ck2?)KsL^r+ zxXnPQ43g>_eQ)Lbg^h%o1dDss>B{TZ_4^pI(6*rLXBm1Yb5$j7NbgI`?Mgk#NJ~G< zNd{e9Ir|>Wuh0I|Dzt#*5Ec*M2g2^*0G73tJ$(K~CMM-Ydi3Ofmj%v;Oj1vmT&z{f)6e|tt{wLE%MCnbVAtzcM~3)nWd$rEq)}v zu(Nzq)DS0aM7TAg=S5aSl>IZ>G<708JRO`;cxib*MLq3Wj~$%(BxZv-+y)zZEkUYXEqzRO3` ztP%2Kt~4}}W#fQ0o^8XT!wXwFtPOJ=778r@zUG>D0CCpPa2gs+nB(k$n7zBZTTZ}< z`&#S-w43AO2n1euQ)_DlyXMpIaF{^g26`)ye7tr3r-#CF4c~`Y5d(V98?}0C50@|g z4u{(rx`)@1{CmpD!qiJ(JA^d2h{w`0($W{Ora|cN?o0Zw%#`eZgKsYH-qKL$8T_uW zm}91@n8J;RQ{G-eqZ3iIiDyu|h@^U%qN-@gyUWjDQHgo67J_^yhKszb1T8968FhDpwy#j8w%3+cf4er`fr%CYDqmwyZ3c%Rs4-`zrgDMA3C$(M z+AJn4H#X+C`{J0jcH8p3#*Px3olC}J^HGiQb=rGYenS#q^$YSyYXprT%>;**F6Syt zFGU#_-FA8El^_!K-!&wFT@ZvzATb11PAP2gmS3eO(_lw*Hg5Zs45te?9^4b(4`zrcRHjUT2><+Aa^cNtAP-W0d z1=azCIM4qWLq>X^1@V4zz_z=|O5&CaOBmkd{5F3mswJkpcw*$!V*~$~Z+i`fBKO3m zAC$3mzPigQ+B!pJ4KFx1K}n1{^=%_k3JNR&1Q8{~@JL9s0)2i&1!C_4{vEJ`fV~^Q z*06y8qi366y2+%emzWP7DJ)v2tYE45*~eT~uY`fYQ}5qur#HWAdvvI3s;BEYyM7Bpg9cqCc*3sm#6iz z+-02=VN^3*)WiA;Kfu-8T-l;w{dz?^tRX<;0Lxgk;Q@>*&~-DIbOHrlx-CGJ!+eW_ zH2On&G%u7o%l3rr-5;yiF3l! z95y~1Lv^6nJ|>hOOt*p4j}|@!1e}0m3fg58SgwA(i!3eu^XeV~kI~HrP{{|?mWtsTVoC{ucMcJ0Hg*vAzBg{N#833$`1~^&oM7rN6z1SAhT^jQ-oE$xh<>_dsO7gV5YrmlW`bukz z#F`2J@^_B(xxY(%VPmMgt`B^$`A|bK^9ShW1OxYbkfmy?=i8 z3b8D6d85zyqM%lQ3n5F9;Javqk9f})C(qUl*CbzB(BAV^Ypr0o-o6qAxN(g44aX-XcMOEbFM+5#?pO!lyrQx)_~%Ux z4c+_NNG$i1jGa?$;HBRp&qvx_(XU97*bVI0W4oWyBwzRhe84Ar5Q7SV~l3{qK{nX_BTm2C~3Zm+QrghcDo;OFx4B{m%cLQ{$p8-dg(RzFIJ zDgUmokQMfslh;j@L@w%GQE7Sk4i3&2B^F&YoA3dw?BnB}z<~pnU#4V04IqrtyL8|M zEN9;}{5EzCFF-vb_DN08^PDf5wKhkdT z@MzhUQq^@T;+*o#Tm89ol{+sSXQ*N+tSBd@fN8w-aOvu^q$GJ&-t3k^dr?#Syx)nM z+9GzfwiE|vf5Yqr1<#=RKN->2RS5_TL^qG%RvsuX-wm^pWAJl-T~Z?4YNu3k@N+5_ z!BkzdNwF|LGjxyb;pl(&rPRs_PhU)GQr@h6sr>Aim}JAixa=d>Ky!LpuYO0fAL@Uo zdke3sw=a71fJ&!Dw{(Lb(o)jh-5t`+!7CjCQqmyO-Q6ijcPocHbT_<>-`{(G!W-}H z;W&eL}wdR^@PSC7Y2MP{ARS-c~QE~Kf>H$&%aG?YNg!AnviYxA7WPNeiwU+9Z zKt&t=4oed*Mm7qCDL3e5dNdsaO;(`4y$8@&K`TBPXz(4fFDNZ+B!t4OZ!td$<81Aa z?d~`*$3So(`K1gc>8aH;sne4o(mCJ$_-B&0wKK@6eNg(_^4rC(#WOIX0aO4%h=ysC z2550nKo1`vLsSwGC|FqB6H#BI0}sPy*TSw_Of|{cI^4dCH@*0GE#?8yfR%$u#Jvj; zYJNZi0VEFKH!z%A#7nSscD+_TxmK+TIdnQfImfQ9t1&}CfGEG?Qnh0WoYw>apszr) z4?jPbwqDW?CMw#h=E_Ru9+}6AvD_Vyk%zQ{T30vl)BzI5pwtc4d!UG}K9cLZ)LV0j zJ9R|LBUf~DW_4my#K&uKX)9;q16Kfo?oyq)eGq3p^5TJ=B(USG*mFiZc0xOb2-Cy| zB0X*33PkF#qlgiDFCPO07QyF zD;p%cS?WdDB)rv+!jw1XYJ_F|s)cbg4l7R~K}J6OEj~*vB_%l+IBc>A;?{kCo(S)y zUdKHvkDr?#uoby`Qdm9zqw*WS=VLz#5qg1o5jaNxg;}dBaesgR3lb*bTT4YiXmN3= zu9#E9tz>E~XR7;fVYLc>(8Sm2e?_^D1Ju zIAWIx5-nwRFStC6B`=cIKUz?&?rI}gux})dii;{v%3@E-!b03vGzsrqHTIOk9jW8k zC};&C*}SJLLVI7I#iL#%G8QqLVY@%Vlk(-4uDH$0C6jv|tc}sCD$a5y##W3Kvl<$u z%@jrz#V-(pZ&Du}osK(SqnVj0St)6GdU~U$g7Q&(d=2mn=t>0Iw@;8Twg55;s=$Ds zOGZix^m&(-O(-WFRf|;KZN+wK|7FTt!hC!^m2X1Dj{B*i_`!#E$vFTXA6v+QB`qk& zqcXZ()FdPxR|0Lgp{eyC}zzha-b>P_10*+ol!AZCP({rz!7J>1T zvy+>fQ-X9cz99lUm%e02Q@dsB1ukm9qXe*<8~?L3d5r?)1csN=@$?-pA#^za5di~C zo&w)75DorgC02u069D-D`VolR5j(zkt`G=#xd72!fGY!RmILsak_l~GR&Zm4pDNZd zv94Ep=?b)_c(Mt-#1YBAF~&Fl$Laa13)(1+jaMJ%=Khj5*p$pQh)Wbkww>3m-XHrw z47H}`mdEDCItHXE4K+m#l+d`Qa=D5Gl+d2$E0UL2Re(piPCvDCR>+{{8Cdy4d9Ih@ zs@D|Ir_9ZPolx~Tz_!*74#)s84OE3Rseni+g5|0P-AnBfH;@>BJrk(wKIVbnsAWV% zMVa+Vk;!n;sh`3dBb8f~hm4xH^$+U;!GqO!G_uf~U2tgAQ&p`7Ksu;`k^y0RKuw(@ zdHj)jSi<*kpEg~`s^A4}#KlxLmEAFd$XZ1GlSmUN=Wrdrby46#yXamrsexwIpt zb4nHIYqU!$F0A=V)KdV*AvJYz%M}j~4+@2X{zjls3qHXhBO`NgZ~$fmU)!uU^PzsA zq$PB<77I!cE?|EHEx0M17GHr1g5eygZGfX+Vd{nC6o4OLZaZD1fP@AjzvOqms8gg;(?UX=@vLqsTl z9@;}$(NaQ^)0_@_JI@f`D6N)bUz1#`2Lci>9!+?+T){I|1JVawI0}Hz{OAL^v;^An zhBSk)0HY;RKP!$fcfbqaK7hSY2S9tUEo=U?#pa&wSq}f)-MABDzM1I!C%~wh=-(t> z3Kb^Df877rO+dFsEO;`2-1Vqe3)r>H^z>FRTo+zFKP4kSCD)vSNoixosu<~FF-mr$ z5TpO-r0FT9o@Amtlcs}|GcndwCTL4}eERcVf5cHct@aU1lI~J+HlNT2YZv4l;NY@3 zZvyV*0QCh458%T51Au!Dh2*(_pD!4Ec{k=0Y}!RXei;8dt!%fJnl8X(dCj6b8)@y+ zBxnr#Vu<)7Ce!S1N0)gZ0bf`=a}msy3+_bdhXaqEDWf+Q653j^i> z$5+^+GBD_Y0q$F1`h5V3TzBM!48Y;m{xUdTlPPxK=kriSa&ipOLhocmf1}qb)?2pH zD7fXt{x#o1O7fZ4>DPJW`?kRpQqQ(~+j=E9X89KE3Sclhm;?Sd0C@pU3dEfM7~SEb1j!T#GrG<+ zhWuT_F$~FT_Z=nOS#NUPLh_Q-jmBv+l8;yC8=WuzZ!SQ=&&IA7H&O~4OxRs)))N1w z--3x2&?*5`MQlGHmjQgD0R8B3<$?1Sz})Axc^X!4)d(@;rb)CIz>6#vLquT2!684} zh%A&qK!FT$U{F0rf2PWi6L-u%a?~uJHv{fEt@MjY7Vkfo^e|9wciUV4^N0L(IB=5( zd66*K7^+OPrk9sVApoL7r2xvQK*8P!A7tz;`YY#DJ7->9)`*~~@39>Ss4TPbYiSIEYsvDY7zeep5L0~l1lEz0AmfB;xgPUcd zP%sTvVo<$CEy((taZKFj%%3;oOx)*q>uWXlE)jrR)9>Kl0c-*|>%fSm6(58S;7ZB7 zciDA7;qfjPo08k<9C2@>3_rItWeeN;e!PpzS&Ueo@1Eo=FWkB3@#K@qAxSXPPy>N%A307X z21UTkK3_RE4LBPEL>=mJv$MH@4j!NV&7 z1%(x-+w7mdB=1Qjf4w)?nL_NM6G1sc0g(4&&6(Gg0b=|?8NV`8OAd5*9#Y_w6gAS;m#T{1zPm5@u zLgfPBRrVM-gM|Vv{IMDW+$F~Y;iRgBcR6BLKl2+W*8jdCnHYif*Q8>RzV99!9&G4% zQ?KP@W|TBPd*1){-|X%KE8G|`PODE|^bY;V z$28=BkIn_0&0qja2xP#YcLzB?sM6{J$vJ>hf|5M5thOnlbU`|-UGhM!H<|{8f{Xd~ zr`xam^cXQ4M`DZba?^8joQ?5O^uk+U8E{-dTe5u=)HbRd+2$9$~ zcZw{$pAX5yIx2WT>zgo{0Y&Su(!2ls=j2{4UV5J6a zkD)Oc2+!~IrTW>BGGIJi__SYPr(l)yuc$P|A_@c9GSC^b1e8NQd_gJ!W;4t?4rju| z3h#)UyJngsQ9gr5ARfq*;wCI&I5(+(c9VrDY%T98LX!?X=}HD$u80Ic?f^yyL@v4# z`A1g3jt@!+fQS$79(+D-|AQ}6@?np1762N3Y{LOUJs`rYadB)+bv}AF^DP|d%&EXv z{EexgHt*I{4c@+K4c~{aQKw!W0nj@Q4{4}S`n<_Cn>)kf8Vi^YGy47y(u@Yn0AF9J zKovw|Ah49r2i7F^%RM4Wz91e4DPT&D%-E}=IKTUki$U*z{j2MQ|NNlXO6%L(l{S4L zXU4WbUm^mbcIT`A`XyS#V>w>+nK%!r>#AZuo+KiN#`aqd`_rp#of^17eh3WIZvfZogfd2#o1j9@dG6Ir7w&StN1_E(^e+YyJBw0B!lj2HfD+dZM!)HBB5Q&&c z45^Ltu+EcsXM^*qo0WC)^BD?8QM7vXX^tIZP@fH9Z|A4YZIGP-$^Hun_%SW4q zi2VSK{b1y-d>dQ`w+zl#@Cm?P@Cou}@Cn+%oEn-pC-bmCgA~940m~d6xWT$;HDadc z864EBY3BObdudkT#!__a)6^!0E;!{skVs!|D{`EN)|atGP=d(732?)}0C$(-7ryD) zpv#gt2v{7T{Gp^2Ly`3wm?Glg5#8_Y>!~7R;2ZX50;D{FMW#-S-c~Td>%{&jCF%_O zsM2NuUKqLlx=3)z33i+&;+%-Z74&#qDY|#EMKnDQZ}iyq6Mh3_1rX2!)etSMqFOBpqMi&n_WBKY#I-P5@^}vq;O{CycO)UqwTv@w}HVsc*!q_Y)%sdwkZr#9(*Vk`+bK*XjMK>oKnP(a!$MroztSMunF2|NMo zTfCnkAwA9zQ11a42u(A+bz&T`xb)Y~@f_iyuEzuq*NE##3(f+d1_Dmh5gfHK`tRO!A1xg^#ElE@He^m_+E+R3#!;}ieyD^ zYCC)r-Vz)ucm;w3CY$a5$OCX7{@{V#DhLbv8|nI}s>Ydx2PnQXmd3|KMg7Gx$nLF# zV@;LTsLN#UyN&^-5-|Y0$E<6>iD_58OfQnpEQ^{A_!jiYQ7J8SC^a#SZ$xS0wHsfe zP^dEV@LaZBELXYEgV;1#tE%SFQHfWrKwi!Ie4Koep`@~2I_6+)&Gg@Oi1cHC9|fw+ zPyN4D%WSY^4y|YuI4M5$UxYKtG0I)i*W{m{v-x6c!f)PL~@X0Z4ZI`vn{?y67Oqx(&+h9NQKT z$ihRK9mM(B612gZK1IH&xxP z)U|<6HMSa%0sx+Bs()ES$vVcA^C4er{r%B}d?{$ELC3`>ry^hY>Y`FCSWXJ*t6sDlu^6LE& zPXxYJ!0ova1b`Q8gJZwh{!lS7?E+k2Io;m<+$Y-GmsXK@B;YsI!}RBF0meYFcRrV& zKyOSgk)kxH`~!|Y-~~@!^@yTSpnI*yYXpdV=xxaOgwGB)RSRprt-k{bxkJmza)#++ zeE@Xi6nz?(&7;)>iczYF zgongX0`FDI&Y%2X#YEGMK9Xo!Vk4A*fPkmZo)M&!OO>btJ4`14YXM4n0qVX#4#ETgsnWGFcO)|0!IQ?nFAJ0dA3rMbk?sd8l z)XyRwAG`ue>21J^t#ewJ1}7el&fubmI0tRJwz4Trvwk+qkov0}m2{w|7#0%3HtoI- z$|`_;_2_Hrz0!FLt_t{$0EGkq%kTgb4*8;+JTG{W>v9X|BLk0xZ zZjN5(BZJ+h+2^WKI_Dak2rHhOBrXsOx>=&%G9T~;?V`+lQn+jexOZIx<%=J2*H>5IFif^tr<-(E zlm-SXfN%pAGT@e6^zF%Y@~j~^gb**)I#K|loj2B7=*KiNBT zTg23ar4=^oPoO0R(D4ocoExMx4$^8sf)mL)^lM{MivSW)o0mKPjZdiCY$g8ck%53Kyd8r}@7r}Ws zp&+yb%8c42Gy$`7b5c3V;G~a{lpP$~LJ)n#0g3yzT^f&%odQL&W_D019^nIc>}NE89EIIw;^?BhPk%!V-m5*g6(3Wo$-N)otg3Y>cB6!F%~OX6j&12W9-$GK=Cd?dv^-@seH-T zE2DVR7f@v{Ee7Ey5j=MCj%>xBN@O3m}(xa_0&IgN8W-JA7I1K+wUL)-Mm z96MLk46JyZUf3@Z@n$Qt16iM|l9d%-C)x6}%yTT!ka(HyYK>ODlp-5@?4gQH0iDp< zh#P09)w~K?>Fsg@$-~Wg_(+?6+nJ_FOl^*x+UD{WGx>j`8VVY4jU#D>su!4&eoS`w5s+lAU){`RPACIfo37qn-gJb21%JCL}mwcGQ& zsH4cC=F&zuzl1H~$8hgDnU`y(o%1^e%HxzfSlYR7v^tHwpJRPfekr$qNK0>XEpyG4 z*ubV;`d%l_T)l&`Tv$t*^s731x9AElEXq$r7Y7s6kx#e`4!h!};fC`s5HBkkZScU4D_H#d=U*lr1c_|7BC4#qv6uoKMb8WOr_f z2r3k-mcznTjVB41+5U-yaT&CTz06hhm%u0z{cy)FIo zGEav?hio3)nev6_g}2_Da1Cao-&{tzQS!9aC|Iept7cvV-| z%uTQ5w{=+<6WRFwkf4p}fkxgz=x%8pW;gFFk7NBgXMzo`RR0@uf|vk8KK^g5TN&cT`>xT&HkkJ zZQ&m-J65W=J_8J61pL0gWp)bOx3wNUB?cMc)fB=3xCgrSmsYo;yyqIT)e~ zaFAhS=fBv73F4DKg;4H3?AP>ujvc%{qTmD9dNY1EV1D7?QO=iv@fs1utIbh=>JL%a zmyyd#;Wsa4%x0Q|j-TmlG;nl#O=|qwvo@_kSzqoc4Kfuxo#-|fJic0tjN%~>xf3OV zFFBpoX^5jD2#;PY&2A8}Ey#QC*N{&u{)ZI2dII&Gj6qmsgX-M9Y|pu~_z%-4HHH6) z=2t0;Y;I2?+tjFm>~G`VFsox_5RR1QKF-xk;}Ze8C~o;GM>YqCs23Z=Z2HNAKxN#sQnhqA0@n*~;aYq-rzS3JGulIH@7^#N&o_B)Ue zkM2sdCxmrQ9Lp#7=OK(w+6S?1h1BNYW2Xh7^j?O#y}e>mgg#wvyP{Mjs8ckwKb>k= z3x}b#P9G^=Tra{cM0qVFU68j9bn8_+pWqxF(vo4@nI|Bu9&L5vdm{=@X|OJiPVHG* zl2CX0D?VVkb!5HzB{fG}o)t@j{Ep|PV;W#a0FfaV+M@H@@oz1R8X1aV*#-}vT0d%7 zW+Aif*;)=eti%o>;M@eK>)?!DO5>jDpYA@jLCkDxviVqCI!85m0!i(9O*c|}y8u0~ z487SMY5NWv`=dTiRVG?U|BEr-vc;%1y|V3|U$^&3xxRC{_fM%P#O-K{1hG&Q#ic2d zrin|eeY2;DDRISrKHw8@7W_SkKFfIif(24azAZ1cH_~l!*LeG258tIJ^Kh^1*&GnY zehDVq#OQxjc?Vk%;Zcj#rw8UN0x3$d!7`{21DA8v=GK}nb`BzfCqN8DgZuV2&+M3z z84@#4Y$M3h5J$Fr#S-f7>9W2+)!4!R<~pKU77K!Zaeudz@<3E`eCBL{;Lpm+GB(}Z zKRB_kb_j{Ekj!*N9uzLNHKj!Kar|JEZSc(C4eKgGNKH-k#;tX!@6~<+|7x4d8M<$y ztdNV!FjAt=hAb(vaQ7FQNLO30I_gpwjW`;DF!bPbJ7OBNNxb7*o9#a(w@)qNq-}Ds*3VtVv*82M_kT;Tr{{Abt z&71otDF<2(6G9BC5Qwh2v9h>L#*fZ^R1;!?LjLlN3FolJNUO0iwFh?*QLT##SdoKd zwdKr!!f@dm(Usc^-I@JEp0X-b0wHP|8gn=mRkG@^+Qi^VxCg}06bq{cCQ*Mn=}inl zK@>$SxE(miXl*s!kNEz5y9$s0W_mN_YhGNPwt{k$>1;Qya_6Rl-d%LZu8^H z%H(Hqm)%)7(esS^iDL)Y8P>!y)It}JaMW;MPI09nEf*Ow?O^!R**Osn_KIM;1JPfQ znj&YaaLgWx6*;zi-ImzeT!4^LaR9wCjny3&EfWoOfA~uU7rT1LXCXAiS`>$@5h#l2MI{=sIy*r0|!mP-8#ZA7tP zQe(Y?`t3J_WpqI=GynXnYzk8jnTr>~0!SHcew9F%i098rU4+X5(-P0bC^f6kRn7EG zvXz4`udW0nBp&*^$iQx~!J!ZIcJM6g$U^Xgr5@x8{9a52)^!Dn;T%WB+HHl-3mlqx zzxF1)j*wr9)|hY)XT9=le1$+h9Wz0;Z_@V`O-1a_^OoJ<*<)_^Gv#zoPF?VWQp)EZ zt`8iVF6?g{rz*2p5E0uwem`V4))5*sIuu~b6#o!vp36ac``wA#`kMDYk4|1HJ*JPV zwf6cf8~sbx~!4f@9P# z(^u%d<}@cX^vN`2Y3*R&_0H-@@dD%>uCH0lhS<6y{Z;|X^tB}xldCzz|IG79OlP0& z`ga<1XU23Dzt?Y+DA=0!+}XX2#6lE*b1vnCG!E-Rx8r`(D-=W29M85a1x?Z2SNtyM z1Emwj7N6y8c|IF!$~-C|K~o3gFx|WtP2uy03r$7XdU{B^-7Wlts|)Y#%nBJfP4Rt9n`=Cy2#M$ z2P2gPD-E^we0>VhTuGECys9qpJuUF&<*+MDP}9Al>{S`PybZgx@O3XT|73YJ)`naz zHtBx#YQlW-W4;-_gp$SBl1EutW)HT7bWNYZp*e!Tqi%Cs$%zqT?1kU;@3?zGEad_f z#nYdC_eW6ZQW1&%2;PCuKrF>Kij2kmt^DQE&t>&3j#>r;2oS?X^Ly2{1d$q;qYffO zSaT+(%)V7g^@d7gJ^kTtgQa)xq1=kuO)@6#(5f`7w)tVQ{*wY<=(lFtJ-?tMzUK^k^HU0iMBE+^orML8rpvB%(c8I^_Y%)CSD0gp)L9e3+6KF}0 zu3A%79PM&CZH!-VUj|o(|KD7Ip4T(`Md1$~<*$rdUhi>pU>=1_+j3kHO(RDq1+wM3B{KMUuiY>UqT21uj8 z4Eb~NZpg_Pf*%#wBpvBu+Wx;s(vurp0)ad=dT2CeQs00YEY(^42|l{U+MS~C*)NOY zW$!lcgpL!6>6B7l44;K38pj^T>8;~JTy_3Ukv{0#(NS3;*Dn=Xn_N(V9sBRX4%;1W z%sNX<`^)oEwE>Pkmx-zKBLf3`(0dz+@4l|FFL8MTgqn>loF;V4XFB7%?R{KR>*^aR zA}jWqJVbTHn|A14-XwalLm-_U8TbWL*4TTI(2t?0J59DwJEp&b#!xRS5&z=G_X#0- z+3A;SlIn>Ow?nCs^T8BNd2U4B_{#T!gE&ZDcPCDLHVaL2?&l`bxaZz&PhNza zhwPM}v1x;uXalCgADhhxu6hd}f%#EU&u%>T25{rJulfwoj6=&ugjlED^v3W~@66{u zv7)k1`g1BD#3(#$HWO3Pa}We6O={J98$=coT*VlzsT5hyAcDDFydos;e%jlSxU081 z^t|Xp(W*6;nxp5LWgiWdE-H-Qey9eE^`&#hVVF*eKFOYvKq9vh$+ghYT#W3CqDZxy z*L<81;h$A?E-r8J63^PUu`nu9j(vxCNL#o1ZJwCQ^=7`vy2vK_)+Cl-oxeRds^?29 z3xRaQ$5tYkK#>{V$Og~G(%5mWbIzY_n*D-6{;gug&GMy;LOs^PsKx2%L@Agd`y=;e zYhyYY<-GHUPlY^vU0FRQ&NQ^laB-Yp|mDg`y)u8FsQX!wvabU{t z1@NN7R`=*>Anlu*Yg|Hg=s<*jMiH!TfhArKJ8R=M?TYuvx39~*D$0!JJ*MX36$kb@`n*sq$9}D&3pJ}wRlIA)&R@Nrr$xf{gcnVC@=AB>o9Kgn z+3~3%2l-R0g~lzp5JZt%O-SbTYUj7}-(?f3Jx5byq)abPy*;NWg+RWNu7qeX|rjf^l`-rpWRYq;Wv z;7pfv%~-zU3x0br;<|9+Nq(-9k#sNx#9Mk(K2_&0pB5PU!xx8ZdV*q&H})~NmkNsHTxO? z@y{Fy+Zl56`h)&XwuW-FT0X;Bs;< z$(>b?-r7C}d+#i~LL04}2Rr1{gs(c0zJBdsSu3NnY53|whf79aY*hv?_KX|_3O|U2 zmnll<=CvJqkfUEOY_ile!e5BU8R3hkedP6;=OIFDH#=Bym6}*v@Yz__({P257GS3%F0YJa6L2L+nuzWdTzY4K|?JZzh1&}J!y5B3TT;*)!&hO z%?30+y0enO=HUW?lIT%op6)$i>knRjQ_J5rpwG{8e4(%KUq2@nnmw&9<3BrUyNECM z)z_?flX*V#v#59yfenjAJ~C{ev9YNfqFS)kePRQjBWH;vC1j$6Twm&We@h8^?R%Tv z^2-ZCNy6p(pD41na8t*7+mNP{O|o|`FGKdawO-goIt0%cEmVA9SMf%Nj^34LEzb}mqx8Z?S33Z7MrfO$U(Dx z#SUz;($G!V2N8(TL;O3UT05(iPy;i$MUYIQjiy!UAcA+J{$F1V4(_{jH_pRJt#7^fO9=hZTwJ2?i{ooi4-} z*}IC&7kPAVuWUbQ3CY%QV*Jo)EF1e7=F^d(;86)_=NY*wp%Rk2;0Zq4R++|lg$Rl1 zzMVb(j^B)hIX^0^P;h_V_oV~{f-Bzan>B_n?K|(TLW~bFyt{Y%`2*%%6AND?YI!Dx za}D1{I#6u5p{GT{&-2tFx_3MbOtE;6V@RAazogdp-wzhdE;_hs5FbEQ8H%N# zKH`fP&bNV2{ZSAN_@`q=6np-*T~&!qKD5|GHU@3K5G1t~_pczUSQYy)M6`4K_1-z3 z8NrzA62>wyBb9M^L{0%PjOvUCx&Nk!&wAXi36L5%Sh61)1S*Qp?TeY4Yqx8ZSeOtX zy{^|mZ)3XzGwM8RIYmujtx|R_5rtJ{&#C|#BWj>ul4hI-U;eszt%*xsi+%Tfso{y8 zoFEb0+2Q>4b4aI`+{1>~9>WLSqbmiP26l*W_Y_?J#SFpbQ;GS2?8eH1Gk_8hy+QmnHc5!1P4L3&2Qmxbb=sOTcUQgGt+jBWHa;URV#B@nukiGnCqER(T zRuSrR_Q@O3o@zj)EC3~hZMWoP=(l-#ok`SPO&_^y}ddUi6F6OQExzUf2Jb4W|2e)VFboLi_<-;@2`Gd;QL?tadfLmi5pu z#AVh3RW4X^TLt=kqZ0zDz#`^+H~`L!ov`dD#YGvce$5MNq}xjG9y2UnecUELBe7UV zbg^BbJDAEdk}D>dlV3VmmkUxm5x@V-Z@Ji9q1yX??I4GLlaJ@VSatdGtE;sIsx1^h zC$4bf-1qQPi0cHKOn|*;x<0goDoF>rc>?lwpawA{`87Y{!SO>`(1F}jdlPlyp*qFL z^a6`7u^DTEt z(;cs1Ho4DB8QEbtcefj2*^$d&uDt#~$meCwiy;NX!9;ys&Y`-$ve{z0?_l9Fnv7wx z;&eU3z5R&Q$3)0=w~mL_(zVUXYik6f(9YdHGJ*}N?fzm9-GPU6&-)pSyrc{}AFhEd z+0@4W7#E;dcYk_*Qm&G6vw3w-&T%3&x|!-$H*CXZSZ@2csZ=Vsd%cElykIB3gqYK# zuc%WO+cpoc0wQ!hpY^8-e97(=I6bUZ`b>h~h@t3uHW&yxoR17Hm#(QhBtELDnWZfs zpOAel&7l_)#2x!0A(z5g6V)RAQ99X!JD+!RJbk5>tR*Qy=Vwg4$Fq+;zrB6th3mfl zJ{c7lp~z_6b{Mgh9D71^IO#6L#HGLA>vinfzj=Rj{KK{GjGXX%WUnZ%Uwc6}$<6EL zph>M%UJNW-81AHNqHY`9mWq$lR&3!pZ2-*rLm@Oq* zRiF>F7tp}^#UAUC6fXcTe+Up2#&foofe#oX1H-@n9rWZTu!z*T19~4Yp^{1b;SDOq zO>TS1IWnK4L(9$oSD*d=X2CTpPP-8UC8-mrhxYWC0WN+5i{v{uP;^g{E!;J(iw$X^n`GfagS1Iie*KYHG^qFQn|4!S9zXQ)+0M zwJU7#>^#B24P9Tx|4W7gvT)i+F4?t*{=N3>ke>B5tLr2@%(3Gqi{ zzs=jo2r8TLL4~wSUPqD$%qO{+dp052sqbc`i1RBNrcwf@3Owyb;ryF#S2x3$v6ItZ z6-!nRLvM*&_4*8Nk)K9h7+OEPeDAruVYAN5neZIqj~R+ZxF-VfXB=4Z63^m3Il_g9 zf-T{xFe585eeceDO}x#nRXlfAUEqv7c?_$Vg76q+%Nf zO=}c+jhh7e^zzJ_i63-k^VmPbia&O3@J{Omg4{O496LK;k1Ky>;x7hdYhQJ*p-{0d zF9IdY+=x>^1SN|lsDgB1rByGUx)TzmbbiSnpja2cm5stBCN|8%A=QGXU2ti*yZg)o zU97)3L<2gqd?N!}nAhz%-8l(f_M zuDtXlJ#F(u`xiAWqAFTLk1pn?9aR7D)RsN1q7zwqd4KfC!sW;>)s>@%u#Hzd*#QS&r&SQV7D7-KiSAXQJvwjSmXN z$v-w}{!ZqVV?*702&8w+Bo#_zuZ-B|7{u*W*yfj=xht56O=0Q=rc~BVFyoMX_z+!8 zqB@;t*6(R{x>2FUL3!H&4_e;_e%d2I|9hU+-}}B^Lz4`zC^uzMt}*tzhIUqt2qO_5 z_CvWaYjEvQ-A|Q`yyZbUI*kO4!n26kfq~v%Jqt4ngCA^5fn;C~KbJt8qEc4=s<=9b zg~o^>E8b1|JBruVBnIEyDFuq5Y@+zTwj_femYMB6y>c75z3j$97v}X<=C370l9(1( zh6m+MSzn=f$mdM24KgZM4x$(So*EsQ_2xN0iQ`=eH47-pS6muoko!GjD1;b52o91_ z-*!d^QohT*&o+t9YS-8ANIUx%z2#B}t6XfOWlo?zJ{vVuA34wXaf0=!EY539gi}bo zePH*oeftb9T)~vx1K9`NP^RS9W_>`^NT!T*{&*>-o=NSlLsiTW_Rbu{Q`xsAk<`lC zo(J&1X|%&V=Jao?k4V0u?A>;LluJ7vHN-C1K6!Tdia^7SSkRrlM)DUI|0{KQUnC4~ z7g<$Sg4)r{>-_7}$ZvT6rHTjCpMmG5MqK1zw1Z@Kx*0!OGzEL1Wa%>cqoTFTx41Z2 zcTP1=sx__R$`C%Lo3@=5gZmL<=j@cHj7~%8%P(#^wb!pnd6RAjuU08zH@GCWJ_D$e zf)gh5V%n$G%0!xa=2Tt6(@cMLI%A)hSHOOK5If4r`Wm_4LihbG?1}+Rw*7Z2=YOtw zwLoCC0>i9JR7pFYs1AD7Cw_2ib3|tZFIy>I@Tsf(mFZVlCMi_A9$p+aBbfS{++O>& z>wJ2~w7nG56j8&vavJ5`M(csSL8SNUSxyWK&6<+7qw_)Tfr6RZTh70b^`bC)y+u4I zC%5@@bDy^fHGQGzx?{r;HXrs&M3Vz{!9Q-cVMpv|k@H&xa)ZG%&x2`SV|%g48W#`w zqx7^O1^A8jInQo{7nP~izWfqtXuEWOf7*U^Pg%RIgG1@;n#MU}cKoM0%1@d{WxSOu z7spG{DDtVuMt5Q_^zh)}E>$;H4Ale%f3YNF?6T5s=&f`n9T>-;tk7I@eF4j1o^Bou zJ4v~(I@Xk+Hd)`8@xHB>QjjGT>|80`ppiZkPi(!~9(nLUS$@54)*z1-Ufn13T3Fm3;t!Wa3Rgomxz-9NmzmNyuFGU9Oe zH@|slil=(@Iz!0MnWKs(^tt*f4h}xy93Ri*l7yJGd?4@5Xo7*CEL~rMjA}6Jppau! z9;96}GR);A!Ahkc(cMwNG+{fzc6FfWJ*j@8Sk1sd_sgrf`sONB@zB8e#$Mzsrj4Wi z_x5{!Pfcu>R(z~RUm$Qv#VMOPYT1h1H}Fwgt?Lf0AXc1VYo8fERPe|MfsGh!dPy&s z7fxUY3ze=fAt)8tgh%kz?*JtZ(xD%*;c!U3c7kQaUh$%-CPKHf$q>C-*vG4`Zg81f z4;Knol~;MUYBo1V4imq@x8=FE^Pqm-FwFM~2$ov6V|tK)3KAaQZ5#H#!-#A@<@Jt+ z&K|U&=M?^z66|*0 zNLvt>EzDKW$FfNDjpYEmPg5~YGMAs*FqhBfd#+|o zOskvsc!!JJ8E!~BE&pN9TvoQOCL+1Z(bWtrhkhk*)9{QAegro2NgR!Giyec|AYNJR z8-=r{mqA+lMQv|ZLqLmM)70{v4N4Oz z!Op!x+fhS9B}V42`m|c2fNggC(tl)lcusBPWh}3@=oDSy=dtu%q}$YXFrrLk66VHuqKo`Natby#(ii{P8?;R5F8S=~UZ_I% zf|`qKyv785mr{$eE!V$hu$0Q!Pl^XJpdUjol`QVgL;7@4AdY9wpJ=E(?MiFvcF69H z4Mb;iazg9$7eBGe={y`>7ccyJ7+~-|>!GL;z(?%nE}p3rd{4Fv7v5A2AVqmRphE^% zs;JxKbe^a5c}J2SsGm?XFS&22qdtQe5+k+VTqse<-B=;Ao&PPnvlH39364E`X?b-- zRl$mdzwFab)fr;tj3HJ1cV`?F%%<^JiFm(N+MC>S_h{&*oLHmyW(PNt4FArC#A&D% z(oIIL=B>{?n_5!TI>3$nLj7}2O`+#QOjhkjv_U$EnwqMzr44>g&kUhQQ5+;P!n0@Fi0$1ieJHvJjCyhnsCQjv_!h8ka_M_NE&i~ zabxz4)lEw%bl=-kc4fp0(mHz=#te@qk5{?Bb=E7!hxBTj%4C)p#Yxgeo_`{TKzuxh zH&X~{#^y7Mbni3d3hoThF^v#Hre>AWZD5>XY>_|GF?D)yIIvkZ=ZD2ap9m0fn;nbs zWfw>jvzdPo>Y~%vjwgnyP2EO@p!`RJ?P!0lpt|*EOVih*m)7f(WfgXOcgIpiu39QL zApjJ~?Gpel0`&UY$(qVdwfOT;;F8?%!69>^zaJ_nsah zS)jYH(teS1A&xiyCR@$I;iU~71gEbx{Ymony8$tbPw%Q_^HrQiG-|!XShkf{=LJx0 zF5cW;2;1i#^&TEsqO)y9WE^iga>(f!L$Gbwi!j2dXf%o>HgZEWGdH6K>^>5JawG3Ctp z#h?6wH1$apYuz1uv%QiLCeNmzfSNs4Qp+>xoOzu@Wrv#UQn5dKwgbBDZV1C4rhFj-3X6)hZ&#zNS^5&U zuj@llaI)<38Ba8L&xynZ2mw8p@OhB$@tq1bDh3q}1ab+F0VR?+^_8EOL3)x1_1&gj z?bL?5J~s_Dx)~z7EsJUWY5ZuygO%&NmMjq*$^}OZJ&mi<#rvW+NK*-TKlR({H%HV{ z1XDW9EX?t>g+pEa%S;&aMBs30s=5I>2s1Ow7($Se>KFAjGMROx;HrR-;E%jA&(S8& zS{Y9-Z2NewYsrhhG{N$XvPL9O=E)?I6rp@w_CDfPA~t*bW>>GMCwtN$IE-W#NPx$g z4p2^!4Pi!3bk(36)U0DFK5YGx66KO#W!1}VK3ZRE%?;yzi1diYuE#8L2=&gJQaYDjjRWV7N3x_0Vt3d7A1U`Sq1vNJRZnd=)39f7iVpMC6L|Ak{y3 z8xYs07^nktC!({{!>otq&Dl^e8 zIyf>ad~)H}{KVY+pq4SK^@4$(irCs7WwGBOWhJ|c*O|l7L2yM)$v%Q;NQrE>Kj{P= z{1@2sO|ewfa*OW`O5a}9+5Os^Rnc>W4ot%Nik$7!W}T0B*Ht|y2u}Du%??Pro{e1| zFIYq^+25pVM>d|7C@LsB@m(}d+Xdj`CoNnmb~IcjOKm;Fg28*o@T!+348l=vZ;+Vq zVehzS=Tl{%xG{Qio20$NX2Yt9wFe9}okZ;L?L!9$g>z&?N-!xi6kP4OrbaKI%oP}PUZ-&9xTodGw_|(ir84t=jR!pyZ8BcTtRwX0 z-60AB#gD&WtGV=f1$k?mEfkY!x8vc?c;l&ndF^dbkUu6a0c3p`nle}Qzf!UkWU}!b zca2T&$rg%P7Kgjp@S$m{6q(?9DFWVjKXHh#YE^zX`KRA~CticeY01^KNv);G3^DcZ zIhiqH8_6t>wj)<=iSzQcsHNcqyllMuOp_qRm>T+}tvXTTFY}A-@0N(s&?ef>*~8wF zx1w%cq;&!Wf;KEA_Ca-u1o_Z;zY=}75~!IpQ#_qTb`Yr!OUAEePgajqA&ab;$G1zV zHJ`V#n73S<8!nvlH#)F7<)@IBpQ2&f~$!V@X>?m#{Zey+@`=C zY`=5A(iZPcaq__?>ujp`{#;5^>Pouv$U*Unk9SV=->{33!51rK0l)d<8Q+FEetY}s zxsNc;2LGIGGRw#}}`dFOKc#WIQtuv*OF_rD0kMajW15<+xJKRH;-Te{SioGRB8~(wX{m z(P)s{N$d~el{H)>sShIF6#NOPW0)Q7n-iGEax!ZQ+2hQoNZTI%0blNY&lTf1Bkk1g zM<=5X^s2h24w^N(FH^GF4Y|Ad*vuX);DnVD!oIu22fH@Vsr@8EV8F#@)QcCSqh_6O z-+=L}&p}E5>?@y9>F=}tX+3q%$ov_2HrY+18{YX87>+qiocvu>X6{Adb&^Equ*klI zu01?QzH9^iZAZ8Mx^xO(64-sTuq`IB;z@yXc5!xcosg@H8sx%jIYTl3(skWo4q2it z_BgZBMSQlqhariXZxaw!mHD&5k9NR)eQwcL$*uV!A@E2Z+~{L#mw+%O4&1zJ#4^p0wu4YL_F$DNp!XpG9Vevo{4Yj;}re)GA!LVmC^;n7)!LqvkjP~6W+ z6iRgwDUS=ou>cGNn?TU3!)br~Yt#dK6=pqaEuyCzP1eCyk|k;t(~4F%h8g=|Jl9}i z4^#AS2y7U5N+$4;MTS(<30o>1tuO7abygd`$i!CW%iR1W8}AYz{VX zOZWiKuZoT|aPe<=(|)gdzR|K{V!@aa44_j$o_1nT%aP*&6lnMZ z26F2HyI4-GvwcxB`HFY7dEOk-oSYusG%%c}j$CF<$LJL~k>djqjv*nnuLYB|z@2Rj zE9BunI8BsJYe%qttKdWb>9Fx!DU$oaS3}ZN&N%rY|nTpXOql48j@xp$w~iVKkxTEEO!CSHwf7p#i{ z8L{L3jvVP^#F|AqX0~bbbnSls!mGF0a+dsV=RSV0t0`n`SaHC`2vka;(4^~;EVlnx z5|o9Sp%3cPu*985pAg$a@&!`FAlI=vJ;@)%sWMFE#vaKN<&UtIn+W_|hhV%SDspH4 z(xX1@ zS>(RQ)4-A9hieSeR|Wx^D&Uu+o5$!A9DkqrJLAP9QLfyEWmO60@pf(y4}7IvJmS=< zQR5E38vV8qlSz9N+pqqrTwkne<=duiE&S6k8wwS9lgqWw3bq*7QtLg#G^xzGxFqFw z927I0L0zAskOf5p#UUcm+!~7XWgF}4)8oEG_pdL6IWY|$3iXayTIncnijJ(`8~Xdk z!D1>drd0q3~ zTt)fM9B-_P^q}|$BCxMlc2VEFTdo<2Y>D{$O89dHxHARS2^G0EoFSE{rsAFb9;wn%rH*mtCVcoLw* zzI|POvf=)n8XDVc;~ECXj_2kB_LY10f_#Lr?6(g~lyeqvf-?wPCzOLVDkIOxz?Vx$ z&X1dwMKQEpndTN^65j@nLxd-tDG7UX9h+UJZHi-9Sqs4_50reiHO$ha*3!AscC5zO z?717#(ksrob`;@zeI$QQXJTClq-4$sxC5v{J{IMUHpO@qo*NlTFieO)ySVtersY}B z*3!8J(wbP;DOI*$l_HPGFVAfqibPZNV!M^!&Je4uOhNM5YW(=jTHAVRb#hp_Ru|ch z-9G+roBleabJoA#uV1@rYelljd{QSE5@qV>(NK38 zQ}NrPs0>+aa`<5>min*RLUkKVzMUusKlFvPu=37rhtJ;{6Usun`+SDYm%sTFou-Xi zOhzp?V*}*fxFVN{7OI?41*JVicH05J@2lK5MzKJHFEYWM9qr+=$5F!5b;VxA zuB@lu@R(W_^3m0MwekE$ydg}h$3av0^Fm?76lCJ1X4u`Uv4U9w%fb~ah$QcaCTHm8 z<`xXzl(*ba3H!=1-IL{*I@3-zd+9j%;f13&=LuZU2P|CH5Kh%uO{_~zx_W^A?nB%D zpsw7Z&!9aUP_p!8M4r@xYXI{%unRc%w%P>%*{;RA3jRX(b02`*D8Q)qdmQ{1J`)9m z062W=K*<2`vIk$v831pQFN>T7@P81XQ+nFDfh%l5sifZjlXMB|gFFt*hzr{OMQ8%E KG_2Eijr%XPIT}d- literal 0 HcmV?d00001 From 8b5acff9c9e17795c0d1eae97bdeee545f71ab31 Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Wed, 3 Jun 2026 11:40:15 +0200 Subject: [PATCH 5/6] Enhance README with descriptive statistics example and update table formatting - Added a custom wrapper function `get_stats()` for consistent statistics and formatting. - Updated the example to include additional variables (hp, cyl) and group them using `mergeDesc()`. - Adjusted the table caption and footer for clarity. - Changed the image width for better presentation. --- README.Rmd | 90 ++++++++++++++++++++++++++++------ README.html | 53 +++++++++++++++----- README.md | 49 ++++++++++++++---- man/figures/README-table1.png | Bin 49966 -> 70382 bytes 4 files changed, 156 insertions(+), 36 deletions(-) diff --git a/README.Rmd b/README.Rmd index 516d0e7..25d5a74 100644 --- a/README.Rmd +++ b/README.Rmd @@ -95,45 +95,103 @@ See `vignette("Grid-based_flowcharts", package = "Gmisc")` for the full API. ## Descriptive "Table 1" -`getDescriptionStatsBy()` summarises variables split by a grouping column and +`getDescriptionStatsBy()` summarises variables split by a grouping column. It is +often used with `mergeDesc()` to group related variables into sections, and pipes straight into `htmlTable()` for a publication-ready table. ```{r table1-code, eval = FALSE} library(dplyr) +library(Gmisc) -mtcars |> +# A custom wrapper to keep statistics and formatting consistent +# (e.g., same digits, p-values, and header count) +get_stats <- function(data, ...) { + res <- data |> + getDescriptionStatsBy(..., + by = am, + statistics = TRUE, + digits = 1, + header_count = TRUE) + if (is.list(res)) { + return(do.call(rbind, res)) + } + return(res) +} + +mtcars_prep <- mtcars |> mutate(am = factor(am, labels = c("Automatic", "Manual")), - gear = factor(gear)) |> - set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> - set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> - getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> - htmlTable(caption = "Baseline characteristics by transmission") + gear = factor(gear), + cyl = factor(cyl)) |> + set_column_labels(mpg = "Gas", + wt = "Weight", + hp = "Horsepower", + cyl = "Cylinders", + gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", + wt = "103 lbs", + hp = "hp") + +# Group variables and merge them into a single table +mergeDesc( + "Main" = mtcars_prep |> get_stats(mpg, wt), + "Engine" = mtcars_prep |> get_stats(hp, cyl), + "Transmission" = mtcars_prep |> get_stats(gear) +) |> + htmlTable(caption = "Baseline characteristics by transmission", + tfoot = "† Statistics: Mean (SD) for continuous; n (%) for categorical") ``` ```{r table1-snapshot, include = FALSE} library(dplyr) +library(Gmisc) -tab <- mtcars |> +get_stats <- function(data, ...) { + res <- data |> + getDescriptionStatsBy(..., + by = am, + statistics = TRUE, + digits = 1, + header_count = TRUE) + if (is.list(res)) { + return(do.call(rbind, res)) + } + return(res) +} + +mtcars_prep <- mtcars |> mutate(am = factor(am, labels = c("Automatic", "Manual")), - gear = factor(gear)) |> - set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> - set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> - getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> - htmlTable(caption = "Baseline characteristics by transmission") + gear = factor(gear), + cyl = factor(cyl)) |> + set_column_labels(mpg = "Gas", + wt = "Weight", + hp = "Horsepower", + cyl = "Cylinders", + gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", + wt = "103 lbs", + hp = "hp") + +tab <- mergeDesc( + "Main" = mtcars_prep |> get_stats(mpg, wt), + "Engine" = mtcars_prep |> get_stats(hp, cyl), + "Transmission" = mtcars_prep |> get_stats(gear) +) |> + htmlTable(caption = "Baseline characteristics by transmission", + tfoot = "† Statistics: Mean (SD) for continuous; n (%) for categorical") if (!dir.exists("man/figures")) dir.create("man/figures", recursive = TRUE) table_html <- paste(capture.output(print(tab)), collapse = "\n") html_file <- tempfile(fileext = ".html") writeLines( paste0("", - "", + "", table_html, ""), html_file ) -invisible(webshot2::webshot(html_file, "man/figures/README-table1.png", selector = "table", zoom = 2)) +invisible(webshot2::webshot(html_file, "man/figures/README-table1.png", selector = "table", zoom = 1.5)) ``` -```{r table1-img, echo = FALSE, out.width = "85%"} +```{r table1-img, echo = FALSE, out.width = "70%"} knitr::include_graphics("man/figures/README-table1.png") ``` diff --git a/README.html b/README.html index b576a78..085cc3e 100644 --- a/README.html +++ b/README.html @@ -681,18 +681,49 @@

Flowcharts & CONSORT for the full API.

Descriptive “Table 1”

getDescriptionStatsBy() summarises variables split by a -grouping column and pipes straight into htmlTable() for a -publication-ready table.

+grouping column. It is often used with mergeDesc() to group +related variables into sections, and pipes straight into +htmlTable() for a publication-ready table.

library(dplyr)
-
-mtcars |>
-  mutate(am = factor(am, labels = c("Automatic", "Manual")),
-         gear = factor(gear)) |>
-  set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |>
-  set_column_units(mpg = "Miles/gallon", wt = "10<sup>3</sup> lbs") |>
-  getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |>
-  htmlTable(caption = "Baseline characteristics by transmission")
- +library(Gmisc) + +# A custom wrapper to keep statistics and formatting consistent +# (e.g., same digits, p-values, and header count) +get_stats <- function(data, ...) { + res <- data |> + getDescriptionStatsBy(..., + by = am, + statistics = TRUE, + digits = 1, + header_count = TRUE) + if (is.list(res)) { + return(do.call(rbind, res)) + } + return(res) +} + +mtcars_prep <- mtcars |> + mutate(am = factor(am, labels = c("Automatic", "Manual")), + gear = factor(gear), + cyl = factor(cyl)) |> + set_column_labels(mpg = "Gas", + wt = "Weight", + hp = "Horsepower", + cyl = "Cylinders", + gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", + wt = "10<sup>3</sup> lbs", + hp = "hp") + +# Group variables and merge them into a single table +mergeDesc( + "Main" = mtcars_prep |> get_stats(mpg, wt), + "Engine" = mtcars_prep |> get_stats(hp, cyl), + "Transmission" = mtcars_prep |> get_stats(gear) +) |> + htmlTable(caption = "Baseline characteristics by transmission", + tfoot = "&dagger; Statistics: Mean (SD) for continuous; n (%) for categorical") +

See vignette("Descriptives", package = "Gmisc") for the many formatting options.

diff --git a/README.md b/README.md index 396edff..317a58b 100644 --- a/README.md +++ b/README.md @@ -89,22 +89,53 @@ API. ## Descriptive “Table 1” `getDescriptionStatsBy()` summarises variables split by a grouping -column and pipes straight into `htmlTable()` for a publication-ready -table. +column. It is often used with `mergeDesc()` to group related variables +into sections, and pipes straight into `htmlTable()` for a +publication-ready table. ``` r library(dplyr) +library(Gmisc) -mtcars |> +# A custom wrapper to keep statistics and formatting consistent +# (e.g., same digits, p-values, and header count) +get_stats <- function(data, ...) { + res <- data |> + getDescriptionStatsBy(..., + by = am, + statistics = TRUE, + digits = 1, + header_count = TRUE) + if (is.list(res)) { + return(do.call(rbind, res)) + } + return(res) +} + +mtcars_prep <- mtcars |> mutate(am = factor(am, labels = c("Automatic", "Manual")), - gear = factor(gear)) |> - set_column_labels(mpg = "Gas", wt = "Weight", gear = "Gears") |> - set_column_units(mpg = "Miles/gallon", wt = "103 lbs") |> - getDescriptionStatsBy(mpg, wt, gear, by = am, statistics = TRUE) |> - htmlTable(caption = "Baseline characteristics by transmission") + gear = factor(gear), + cyl = factor(cyl)) |> + set_column_labels(mpg = "Gas", + wt = "Weight", + hp = "Horsepower", + cyl = "Cylinders", + gear = "Gears") |> + set_column_units(mpg = "Miles/gallon", + wt = "103 lbs", + hp = "hp") + +# Group variables and merge them into a single table +mergeDesc( + "Main" = mtcars_prep |> get_stats(mpg, wt), + "Engine" = mtcars_prep |> get_stats(hp, cyl), + "Transmission" = mtcars_prep |> get_stats(gear) +) |> + htmlTable(caption = "Baseline characteristics by transmission", + tfoot = "† Statistics: Mean (SD) for continuous; n (%) for categorical") ``` - + See `vignette("Descriptives", package = "Gmisc")` for the many formatting options. diff --git a/man/figures/README-table1.png b/man/figures/README-table1.png index 86b224abad6f9e76a1e7aac336339ba75ab95ea4..0b5ff5409da221746fb941da2b75867da4f2da4f 100644 GIT binary patch literal 70382 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 IM6N<$g3kFHhX4Qo literal 49966 zcmbTdV~{Ap)+O4uaoV?~VChOuUHs@!rlKS&>zdRT){C zx%XOYhs(=~!9rm|0RRBNN{9<90ssJU0ssJtLje7@tdI}(0RSKXNC*okyJcN^^SEV> zt@J*7Uq6ItNoa*v7yXtYRl;Nm6UB68(%(uOLv1AcJJ|vCKNtV0K-KzH>`}F=e+x~` z9~Cr}4?bXVL8Q}-wSVb5jW?dCz=QNo$6mAPKc5e?d>kgDs)bmb)%pzSB1 zvxkLrl@c*KABA>O&9||r{r8TunEr+Gd!;BGh1nktyRFoNmV7)cHA%`qvkcO!z75Z6 z06R!j3ckXVvtORCst+I3h)pgn=#HkEF1>5$pf!TX1eFF)f3LNS{$5mUxVQCo_i%4} zet1SFOG^u*|BwcxP&6*tWf}639gRCN``2_QJg)RofaU<_oO~K`(|jksuX>g1Rw4+0 z*5coK&pzOCZN0*0XBy>9YNSlWall0R0_H5E#Ma zK#eFrq^B?0|KB|T_zNU9Z?b`zD?j#*JePvxXydk z=3Ncp;J=@xXH{__KL!D4w`45gp`Wr)8N>6OJ54H+_zPvnjP!ocLB*sk8Nf~I~Rg|e|+@Yp#NNH zcYm;0$0lUsv+*#^*=baa&EI(hya_l}XjV7LX&6(;2>O{K#V_i^LYNDNaQ*x6%QYV! zPum(2%Ro*UJbcS$Rcaq%pPC8w(t_y}y+0)(cR?PBlk}-GHMvE_0}F-LL!!YM3Yq&l z5Z;#B5utDqh;1ZZH8+e1NGa|Q5~BjA5z}QAGxJn5-M#G2_@E*+0|P2Pcg&?iMkJCj zOBawb8cZpRGv1Zh)s+6>5Nm=`3kg=SSsuN*NB?K*XEA>9;fws1J)z7!4^d-HM3_F z0=kM4RA}s};Bh=Sf0bNujaf1fJ&a~xOf1SP69x15{*L`^wbBZ!gyTKXXp+O#aR&2M zkL>z!{;96bVGr zgTQh3$t!@@J>JQ!$~Frllecg-7$}hnw}0oy&<1BoC?M@N+f~Fx=LaRC+ac`(H3grs z*nRP!ps45V>!o%STv+*?^%!!ey_nzpElI1$t;WaOF?nPQyNG&*5&(#yAB>`4@}}aJ zNIJDds7)?9$0#hp-hC0{T~~3Vl`;V1jb4Qt!_^^El_NV9QZo~~RLvwLQ_R$B0%4uN zeZXRwR;K4nKd?FH*v0K}(KJh~lSUxPVpsd;GeV(nZaly(%bIM}jJTqqI9*fp#(PIq z{SKeOz?_%Jw8!0)jMu}~;i$92Fytyl!yxSv0r=p#MreU{iOr37sS0?!(c z*)A3&{qLi|&?FNHt*(CY2x*y6-qK-Lip}{u%aqy4aTqdX3)|BqBTmqc<7MWDJuN4jjKuGBrkF`l zdt%4Cm)Da(z{rH`T&Jy{Jpp@-VzIs&mtRIvEjMQJ3n_RmKiLp0Re!bEm}6q5{%&UY z$|FIhC-3@np9s1vvv zC1t)b6`Ld^QvSz8s;B*rLrfX9H4oTW>ykaI0dEYnc6fs|VMsC<{Yjfu8NQhUwL7T}1sJ@u7r9OyLim1Om~@}HN&xr*l25%W}WxD{DMEdWKd zV=P*cVV2*;%&73G;9`4|7Z==BW(%%)_4Xv8)$uJD$oOMa1~OZ~njK8AY9&giCZZNB zEyT z&!lF4F_loO@MY7A-q9tN!{3-9wQ-TomElX%ibgoEm{FPDIMt1zQWB;ZLTObE(;Jl{ zy@rp?HbTZb*`q*Y#-#eO;58;0qHR9;I3sd;E_ntIFQ*^S%Pd3w5W9!ZS3+Y@xO7LP zqo-b<^G;!veZW42ECMcKJF4r}6NB%N=xEdCCdsX|*3oismE_?(xcB;j^ON=SMc})k z3y7#E7o9@kcU|NXc>!I4%d71xQz`hP7nm5ThQyTjsMVjsf^(+>NeV{=DQ7!&pYs$$j`h$)0%#|0I*9(>?3@C{JD` zz4C2XljT+WcQXeAl;emM49;K(bx9LgrRsasku-cf}UEqwCc#M!2bAtGcM;EO=JQcKp#+fl`J zqIpTwwmRyNsGx+w$?EMC1{S-wmqfsH8GaNqP@k%yg(64e(TLXoU0=3QEvwg<+tPfI zSW?U~*y!b6Qubb9xTNWFY}5%ZCr{$E{j<1&Y_2NMws3amxR5&c|9=iTnKSvFZQb{OVDB))R z%zW{9-S_0Pt$kbP|5%)`D)1cL@D6g-adHT@%`B)_X{+PV6`zxrSqPfA_C`!X+ zPb>zap>D@I+Qljyo%m|$Y}9!L{-w)tB_FZ!il_uT-#f%MarC|prhUc((1XZwZ>i?m z%s`Zk&tcCTT-&~gQrN6aDBd%_gw#N3os*m?m}Iu#2tLf?r$jDFEubQUtAZ;bs+tMA ztJDrIG;bD8;Fe;#nU5C?tAgb)j7p)f$SQeyQV6?mb~wL4>JfnL(OooV^>z!mYWt!a zn|1QHsphSOyM!At3EyG9)B^*91s~2C)je|@$}OYao)$mLB!p+SwqHJ)rV5HGd{6w4 z6OvN>*i#H(QVu#5Zz`wemIw#mva7(lpe627Dmw2FD>NjA(9!sm&&*1r%f)sf8x28m zscO!r47eQrZVOvs55>DT#^HrdUGCTg~cQBB`jpm^h7i z!0vX<3f7hR(UPv>x_RtTFb~g`<+Z24ARUew!MTJ0ae3 z2UIrc$p5tP`^2y-5|>(E8y_EE6Ju#e%`M_{(KQ@ZbBaHH6OGOJkTmc$?~lO4)QnRN z!8u2eUjL*Gc}&-gf`;|ePCkh25nL6VfmBHOR-)fD_=t^R=qWO=Y3};dwsh2F@8Z9g zHc>_>GWrEn`u;BrZCuiN!TsCV#&uhl<_^`{&uJYld0IO;v90Ni1VcfaO8AChR87Z! zPbmy0DNgd02tDeZT7_ohLX&%2_qw~~ir@hemeQPq#iNMP_Wgpg8kl6_|)OdkMa;YS;U1Sp+NC88y{>i zfEV~{&~B~TULOj?k!8c8`V9~e#~tKr%;K$m+*1H})}e4tE?UBjRvfFcSZ6Fzc^w=X z1j9XlKRuS$AA(1D>EFfI-$@s2=*^ky-PrEXcX9>i3bbtTQlPnm%{rAqAMDPi+n1OY zkVnLMVZ_rxS(afS_~{{`GD=TCHbK*5=K-nytRgNp`~pM`sUu~%5?7%x->!AGx)AKA!G%%Ip2Lo6Os&hADQ`3rEoby7K=$_#_<6zU=S~v*xs_ zO?rvI`|m`gGX}vkWg+I#H#UF5-a`Ose0W>Qo_l3bU*}iR zK>&<_*+hAI#p#-Bwg4Z_TW;|=J0i;$naDW&>n0y8b@KK00r|=2Rc4c40tdZBy85u8 zlLhTq_w-E8jOx=e)lygGRVS}a*a1=4WLH5FG_}(^AqC#TJ|tyC=-rBOqm@V)ep7W7 zezZU%ulGMrgZNiY{>>+kAJ(l~5IoK|cgl%HS=5ZDvlz+dquHL-F z%*+QpnW&U^w5aAPZ^Ym?a-MKxjIE66>2_~%u=jLzV2o9Gwb!qZ$GRHb-Qd`m)4q$h zyVu}O33WIX?r<5x0e0+v=cysDr6Po!aY!Qw)7`LlE1vfl2|J84PS!Szm>)~i3bNe}N&6UuUhRu~jUq;pcUFq+r-gzQu4$%^krM2RvRr711 zM)Chp+e|@N-&;J*5ISF|)4iSSeUMG?3zW~JufE{T@c4f2R(F2eY^?Eew7uT%M}JT6Q7a8fy~%0V9R+sNlSfX; zH*i1|y&b6X-HTk`A3Afc5b4;v$YpQ4SYF9YG+&u)$XWHCfPa@oT&|PG(kf1{6P6!= zy4iR4xUm!PQj7Eg2s95dIO9}1ELHNFDjIuQ%0s$Y&@@4WG-W9lUpKXMXrUXK7txjl zccU9h0`l1?pnK)*3tiosmsExb@r$&fgt%)->#2$$^+Dh!^#>S`x9h^apE-lmuFe|J zG!tG%KTNk!cvtL-#QsK>^V9x(He0AxRb{6oS04R4zCIiqdatct4*zdAm=p-B?{KhTegqnB2#<@Vr2+2cOS zwmCw4@r+cK!GONUpYQkgvq4oJ!`&?{6`9yNU+AfgO3>Z{bS3`PSZcbIv439P=XwG1$NNJhcP`gsW>wx`#U#e4LjxGuklia`|C?~NqykX|Nh2noLm`GyTy9RAsMKyJ{Uf>kl zv?s?a*bXcO#qknaV2ILFoln3d7@F%qXQy9LW)sqOd_SI2b1l~Ha!dGZN|QN7^VZqB zFVo`xiSoTPK>tlfwribWbNj{;uN-ch6TB6GRT5}N7K4S~Rj4XTe>W|{=k{3~sQBG$ zQ1t{*tawT;jTuamKCz11Q!JfL90b*cwf)&Nn+qOmkWiJV%6c8dBFp3V0Bi`)N`szI zu$vH(_OVV*G%aab4U1EsHX|j1v>yAyeQ@3VrK2@IYRcCdhf5Qy zp9kE$Bb{CyH&&*6Y)ZaEY3{qb=l1K4)QZ$O*Ujt;OC$^PY*;f-2)xy+O|lrB5^Xmx zUeEL^kocF<+#Z0})sqK6-#?BkV1fqGE@qjXsa2%zfSYMlVxPz7xtU6m;_z$dND1TA zGHgQ^B97ZRkpC^7xI+Co5RAkJI0*_9G%C%=QA9vNC69t&={0_yOMJFu(F2rDkABq~ zOHz8%lQTpiw@ruAc8Z{CYE|BEYg05UfJ0uNMbL=p(-ei=bajc}XuoFY1qA)$A2qn; zu!ZF=-FE`CDnD&bWW^_h1mx>Q^!a2@VZT3Cq6INJX4urp*-I*Mi3H39-}gi%I!=~- zfg?L7`uC5UsuE`eE9nxbdx}fsGeywE?LjfICD9BPaojSw+jKazozdA%ML^!Gy2kFQ zdZW*BLpm}#L<5o*8+@OX*eT!C1;RV%Rf2B%TW@P`zCQargtmfV7yRRQ+DUPIN1lLG z>fv^XsD^flYG zg4&aO|HPuyQ7ErNt?DDHh^Dou=|5o2ULs(;6#`4qDUjD4#qs>|@Jk%6V{@BLW=QUr zYlAqDP;6eFK&(5+7H6kmI9qNH9j6wMF#ou*=N6g4Hh1xo84`4r_>@Cf;AFhBO>Fw6 z=<|S3lAgY!Dk}tf5w`vSln=soaki(%zv@Xfp04lTu0mV8?kNJvt=39x`v|@UG72K+ z8}Sk{08hj<5l-z76UwU!P~@tDe1y?-#s>36GBbR6M2_*S55u~fUJ@*h45kdtp+XLfB~*BwwmGJB3DqIRU^V|)#fpE=XQ z3Yk$mU#5b46PCGK>q5EkVpx-^!{My7T<5_#O@>WS2hTnynwEsg`2<4a1&Vdt?xVZ{ z71vTb%9RX!qBFmhB>!`HQ9APxSn9c4jJVlC9>Ctr^%8PFUFd4#N1!^oCc_1WHR8dw^yk67tS){;Qmh;yU8R_VS`v>*U)kg z23AI|8r3_La=YM$%T6AR>#AohxfNPAo*z`ZM-A){T5@+Vdi%CE?G~wbrv1y^^|iyk zQ}9Sj2^rO3-U9GM30CqyuPzS04vg(*#qEEoRxv?P6$Jx$0$p+$W%!~ucV%&QFW>Kv zr|-_MB1ca`I(QYT&kh7o@J&HL`oX#;fOA5hW2jeJVKs8T21c3^lgf(X8FX zH7Au=GBSx~xmAQTnSc62hdH@iQ^9X&Lupf2_|Pd^qY8iq%P9X~{Q)y~C*iS_E~ zSwo2&nK{Fe^apsbVpRe`&07EKq2%P=r@+7{5_cZPcL1l8Z9ikF;etvJiHgSgz?69ukwx_ z@B6pelyV4eG&MrT1hJ>Ms`I8^AMQPTRs!*|FlmBc+HBz4(3B2UI zZH%mbE+2An(Z3$ql2sf^#YOA)gm^D)YigG#%@OX)_E%P}$4mLRZ-b^Q)$?qatN8|= zF_#_ftR4k2UyzcFHOV@$td_&p?m8+a*#Dl`jtVRy=sVxe3{d%iz{W%Q>#-%nVdLnp+#7j+&c^`Kg9`x3x8ku7&rRcV$gRlGs{iB&(WvY_w~-2l;dN1j7t^?q!t{S1yA`M&-) z{}+Wi&?@rIav#0w%C|xJKxZC{PKN-EJsbAR^f5r%P)z_#m!_T!_o+ktmj|puA}{5Y z#1VG6`+@aEAAtt_FHJZ}WRD`t>=icBd{gk?3T@T!SlBml8Q8Gu4?7bA@UIr zpO>F+J-Gio34HJY)>1?NAIky!?+g3-+`#(wq5gXh1K_6f_Z$A(wDSLj+WbHHPj9T( z7U8cXfc`SuI8Tq)m~yQvySox!#9!78b`|fND9X)-ew$_d*=dIWQpaJRw;#y1+aG6=m?Q=L7?4os%oC zlCZSZX$P&Y?Va=%d$3FDJKvLOMqe#5&!&=Fq{pLj{bya$$K$nzfFW6LXKW<$a49w> zTa+ZnsxupVgo(fP;q}$t*Von6)6?7M_F5%cMfcvr%TV9piDs9hpXuoa-b{qu6froM~RIMug)IpJn?U4x=L`O~lSww1cYf38UWmHpo6J5&$} zf0z#jH4Tqkb>syd(I0>!E6KpvkE1qxK+5ZU%50NA&^p;Va^me7SR~BIIjY9a^EV%; z{Xfr2b9b`HwEbPhYQM3zg~w;otRJ;fNFQKS2nI(W8bleW=}e30VNEuciI=cX-$MxL zQ6z%on7UwMNqYtsh+}HzgKnA=Ix@OW}|-B=IAA^ryokdH)7Gm=$a;9Y1Pmh_$S)BU^+E}49b;wFemN&CaiT8&QB~RsT)Q_I9svbab_Qy1}46UmtvJO+Ou-^>?bF zYNn;woN#sUtLb)gvG=xnUWUl+XybN!iZDc61z)ZDcsDwExqSFx-f(aBFTd3CFJrp~ z^%Wdg_4bIe?Fi`+ax8g!{c`{9+}nZM@&gf0KVE7=c3!^DJ}$5~QM|o@+iotO-%qtH zx=uelxR6jBIu~C?&s^Hd3iv{ZeY}0TUY=i|XuO$jWXE9j z1LWxPnZh*iZ5^N+J-Z&jPUUl_*&>FQ6Ajr(>Ohv%2qmyJ@uB}*TN^@-iM-mp{wN)%i5~d%$w2ogF!`t)W)wl$ioP;zt z653r$&(^57HjL`qDgBQ+p=NQmq$M-myLb_dAKsv-?U~TWHnp2>kw`29CJbCOs#+IjvEA7DXH-#XV_3jEc>t=WFqr%pirU6jIU#tdnN zjIY4rdCCzdSirsfY4-72h!HHh+dDg3Wn`al!6V1lyu0#-RCl@DQh($^pZ$}uE;2VZ zHZrlI9rx!yqzr(#E`la&m;P~bce1bTRFMsmZ+(1>o*tc^uZ3PU2Q5~37Lp{sdTS-m z-XQC&ZGPE5BjT=am63jZv4x;Q$QYTF%S>mHucYj}|kph9a z7#CbuNteo>e8Wu}W$>{?pelq}&vc#>o>7zqLR-vu>Mk`yJIv1F=wZv%t$G~>aY?>&2P%=3@3 z=5TL8J7gXNt%FFRuDpy!!gq$(Z01HL@Gkq_=VFg284&yPq^ORKoPcz=Z$x(G1x5a$ zTQ-$%DG4a6OBi@hG1J|8k`9F;qJYXa=dp)fmNw^Hu4Ym~_PBY`>KN+236H(5USD#T zDp>GT+xj*y*KQMbi=kk&lTE}}IjV-%Iw-8PrpW^*Xl~iK2O`~X?y-Vh(YJUQV11Q* zgx5u25BKr*;&YprRWPm*hh~IDq+V@vj{>h3hLlMrb7BH05m^SWB-{DNHccw^oZ8O* z8X*QfK$_K-P@ayAKw?-vU@~;TiC^oLFIdp0!Z%$2z=q=V_x(U%qkf~?j=C!MpXm+N zT%IDe(;RdeX{jOh(^aggUBI41NTKVy^{Q2WqP4?#KO{2FM^=}ExdtPSgCm@-IGOJ2 zKTAL}lAqx5H1Lb;;YPv(1`c zA}U*~Hqp^^cLe}Zr#7>Va~4E0r;rrb#1)p0?LbwmlgepjboBjMQw?JCWZb$I9g|d# z#0)Xjm1II`NbGYI71%pOqy+=FQ~bkM+o#8DkDLNS5}gwE7eYFyNQatLkQF}c^gp7~ z`NR`imWdagg$TYfmV?DIB700Vf4}@C)r?U_e@^KvGV&@`m9=!_mVtV zKp9H?eBRXZ^>_scsJs&M0S(&BIo4nqkA6;SO%H((nS_-hJ70Ky-$!sLAVxj&{d|1P z{_-?AI%Ps54AdwonCSof(YWggZe`@Rl~HRLFSdp;Q^gnDnqWJ(K0Vk?JLV+8)w3{M_1){BTDcJgkqHHP`9q| zv(?NsBf>*CdYsVJ7HW}dy>t9JTrl7AlKM3>@KV80M0LfLlel)hY%W@+ZRuGWzhe>z z7*#1-x)rNetvsx`evkE|5suwarj9w}B>B-G77G|39&eZTKUps^_&s)ac(@I&%K9F_ zs|e&&d-P5e(R(;!4E+o`L^A6(w}>4ps80D$?F)QtHuf28n5@QufoOHF6NY<^g#K;p^o@%? zXh(>_4|5tQV6=EUrDi+d1ySMO^4QgFcC>=`{=DFST-$Eg$URCMIy^DoT5m~)I9$W& zesLS*IKr3NbD~kol%vmn>dI3=g}4|J>VzTOy4v#(DH1{8fEju59BB})fyBF5!1P2K z&ZoZY?!9jX5l!Pmko>J}31W zKYbp%04wvp@Qi28)Y09OT|MM_wx=!4iYODr{_3Z$idcCwqA ziPfzi{fQm)5L^rG$6P5JA#RVB?pNcvs+_9H zzbqyL@rBNXSRvg~hPtsNy(pFidQaTZmojRdYT>}3yjM$Kb4L@99-!`Oteuz&v?5@0X?k)r8Zf zLotO9A|rh{h1deM|A!@vzFCL9H@&`#uXouJ{u@*_zw`iEUxNZzBf0h_BW2>byTHfu zbx{q!cFd6QGvW9|xU{ zzv2=qFiIe)yKRkC>AvlLB=^`*To(SjF%oV9qsS1bdM#qCMjdVc66t{ki&6)*RRvRo zDhXKyvvs{z!5F6!+$=Pi1Rh`Al9-hP>g@MBG|p?QJe*^TwYn6Err~|dC-iD0^|BSF z=TZL0j~YD1)9v$+MY%TgmVgeQ4Lo>|+GHdB%X zMDvn+V-0+v4_zmc8j8kni0!%yPmn={B#kvp;ULT4hwZY^cq>|rchMY*`r5e@EIe#3 zs_36H29zGmJZZVLmVRtdzTc@ugMc5%fY#JOx;g?jS;*$FAQmr~ zXu3Ce@rxDUVQFNJ-2H^{8LP;bt%q5jS9_G+B4HD7e{uiXWe&`Jb2r^cvWt812cn&o zP6A@6PJZsq49Jrn9oK1!9frKFS4k{`j1yCBaO+Aa7Qp>kZ_Gen;~r*c_LWj4K$*X; zoag&fQmg@^R&?Q3P3#G!t%SqrZA0?*S2zg`v+x4*Z$JrmCj~|8na&e(I-O3OEF^Cj zrEG?T?{TcPMYOW9t;K}1lt$R|g3GWnVpkb%%?L{pRkvNB z#OqML z+tZ3M#a_9pngHtCe%s_xDgS))3RRyEj_lgcreY$J2yE|ie{W)Tme2*} zVJ2Jhm^O6_a>g@=84^*AE@8A8L=}N5tLW#MF(%#wG%7ll_l0g~?N#Eb^x!Qkf6>pF zmzsC15yFK1yNx#wMvCXU9@ei(|^%M^W%z^={jE!UDWCdK?TD*~^9WU<<`V6@) zoT`D_@uctTt+$zrhwLS-e(?Bz{(8c;A(NxuWZa@GfsTtfIwGPg8E~F+dK6os8eofEC5tOxPJwRKowg3wxzhf@)BMIo;iFpLw|$iEIv3VH9t z-&L4=RGK7$AFAy{F138=t{~o0ZoB$mA(y=JETdD<0LMj$A)$%ac?yqh3Nl`v@?_AM zF>6ksW^SF!(K4cvlf|LTF0xT$s!hGLx{4G$j6bt%R^5k3V(`h)%Oa#-B0gE-(x5TZ z1xVa%%i0@Clku4#BVTVfj3hA_=0Y@QRJmlub`Z4{z$T(5m*(3$9?K^4#=Y zIE9TDJwslq6GSPW;zDCIFKKlJoCL0u=0mS4;Rgrc^Hq@OEz~%+Ei74ste zJ{CbPgCeP!olEe%-o3sv#d}4@{a|P*=&TDYvQovcsD!2>lCe2V&Y?}v^F{S$m79<< z>$r(8_sXtjd2pgJ*wNeOzmTkr^Xq7l7nCI9*6e>UQWasLV8!P8`mLmpm`s3l)22^8 zK0R#PYPO2vxRv{|_qi2NU$b((Iw}* zquLY-lSm(XS*`2T#;qsId#1|h>90n*nBsBkTxwk3$A?zPh$G}t?i3D!NzXqs!>f^B z(Z&J?znX-4&wGqN$&7RH3N6dhW)IXeF@!oJwnV0l-GILeK`l5{4(HR^6p9%Xhu5=Q z-|zANW?1NZ?ezWs#wh=hk|i?D#*?&;NVR z#tx`WHadUQJ5&iGhvWz%jDrh)Q6rbmqhIV#U~YlqzBCs?)CTlGjR#mK3o+@En)AJf zMqy4+q^@g|@m439LXfL#ZKfKa$7+llIOz`(rof8dgz=UwcqA*jTTFfgw>+I?gL*!? z?3CpkQ!rFll4=%-#d;`e;iFzePrx3CM&q#tmB7X>l{td=jJj=vp<9YNGbweNI_>Mh1gvkPR*h&0z+1=R6gtK93JRE^_+rBMp?oIKQ4P{T`6?jL)B}-O!D^n zZZI(T_Fhs@K`4a85mgSMoow`6!`1$|4!)XTSr`bmAK~Hp#I9xZ^hMVqi00%3td92I zv=1sfZ%5~pDH@0!1@+_I6m>oa>G~F8z}Fg5N3K+hrj%OSiV#x82XD(cR+1dP?yC}Q zD!VN74tB=B0$L|$FKRvqb1jD=BP@s9G6L)!61n|?Mrv#*HHm_|XJfRri16&T(pk$Mc#K+Tj-tG?rD{m7E(7fj94dl3`aHl0 z!~)#iS4Fxs)p(d4Q!vp))S@Zdof@!jv=C_){@%HwPjBxn1{IrGgHd5Q2XZ%xVLcu0 zrsjg@g!k6z2QdpFHC=c8b7twG7FjkfuX5{n{+%akI7x0*FhPG|}m zFV~JY%{IB}A>sz%EQo-Zip+&;{F*X@nR&9{J{Q-#mif{O(5DdoW`Gui8qL)F>Jrl% zwmk$aZzknT+Ra??Su<*@BJrhE!&xV39e>?7&bIZg>2vJTogff*Y@bb3e#P@3h1C!( zDa974uGyP|%W#v?tm4Y-8Vgl{8zp6PEdx_Db#q(>%VIa$fv$umEVmmm(+_L~6FpjHUSCL)$>d*0C~91#|Y%w5y9Y3|on)e<>pL z{LUj5IiiJNN?Zfi{>&9oh3FkIF53?swaGPN>1y->IA#`Bj$Hs!M#0nDizX7&Mq($& zyMHLmTSG;6W8XbxqM1gCt>&h4t8=k6%Gcn`iJG>lWhZAlxK}D##ypnRqs0PUjsM{# z^+tn_-^(Md&H(3uM?+I~OvL&ksLE!t@6YZi(_(V4`DS8oCOx@Ke~oe6PQCf5-{1Q0r&no#ar z8}H&3z4&uUt|V6_&y2XaajR(XHN_zIYGCbleDU$zm2$D0{p+7ECM7~+6UU8p#|n$O zyfhY?*7_7ZFnO}^2x_c%V9rU0iBwnSi0JNoS<9XBOtoILeBy)i(%9dcY%edcdw?^f zc^R#uH?Sk#0Ir0-Yi)lYnm5Lgy*iw=o`hA2m2wri`^P?Bf3D{njSHcG@Tv*B2RFk% zv!SVblZ}!u53cY33ycH#)k4iwrBvOFO;r|#0r06G_mKiw42+hD87w6QrR$exXWFtO zr*P;~}FHk43fai1B) zGKXaPQxca}0JZ-#M2Xmgm6?o7i(yr86i6jhRfj0wmtCaIL_>L_+HlU(^r6THzu}Dq zDK-oOaYmiRK7<()Kv1^27c)k@Xx(O4reCuoNTcbU3rNe}eRw{-?J(8|03pC6@2Ag~ zln)6L=~7#ke#Ib20*&u3u# zxo-O`O~qGCAf%%(;mdezI-`Dd&@fiUid0p^%zh}g$|mFV*If{rDV9M4c}@8+O5X7) zu-;Uc_l4y%lA#FojDkQ@wJgg7Vr&B89X(izdMBF83H2HX$LlhuaAi`KOyi1SP_-C% zEBB`_)%hhg+bRw%?ex?&eT4+MV%*hm5wpfO6yswZJ!^%aMr-&_k-&~5OwBvnBckMP z#VzM=n}UAsh(w~Q0420jg^+~7$rWAe?OkF)8s^qEwW*Gi0GP_Pc~qdPyD4fC0;r{H z%^vN_CZMKS>tRqT;mU-ySFk_^K!$r_69TzFuA z`LF>Mr2qzrMVd&KnCL^5&LdM}B>an3$W7q=KcO2>n+vC%sFhlwozb9>bfK33Dk9R= zQxTWXErq|rf5kl{$}B6h!u)96QElPnuqm~g71a$(!+dsU^JekAZOVPUF#<=Vr5BnQxD z+#`v6>umOq&?i-FoS{0U$Pbo5?xQs6gV_+~W+cb~UUgrp`)cUge=ER2BWZd%e4IUljE8q^ zTSF%Yzuj9iU%){bz^!Gv_A;u*=K2zwZ7;|L|I)gub|S`A>st)6<*oY%TYw+m{pC_> zgGJb5{&Bo-IaAa4lr7HH>e@8SE5FD6^(;1}+P-;zAd2cbsyw)-lW~xTCp@H!@jjjY zv#Nrp%7s$f1V?I76awsxp;_yZN^btlidl68Pk?f^%098mvXz_fc8i*<_on?SOd#IE zaJ4aWVP1#4O4$KaK)=q9sMXLLEod1jytAiL?7M(+Qfcx9T7-!RxpduZ$p=gDBcq~% zQ&H9tyw>r;hz6ct7PPlRS@M#Wd&36)aE9GN^V%*T1-i{N?vt}V$5!$QkAx<{+M-`AUG4!%wFmuP~QMx67a?W*OZ3@QD;5~N|K^8`jdDk95*ZA-;u)Vhp1wq11o zP3R@TbBR*GHz|~M_XtwlO^pmrr+a27`El~m+Kp}=!_$_634RHYx<%@0j8gFAmA%?C zBglmsRd(M~d@*UQ0#zhdQNWZjjl|mGs7x~!k)#rZumiYB$7y;SWJnAI)iE(7>Z(Hl zuK_3)l3j>qmAJSaN5OiXGJwcOtq^MQd6XAGUH}5IK zZvK!??zlF$5m3pJk5Sd-3W8Ji6)|pj~55R`!4PWfi)6N#VPzv>rIXU_V!$F1F)=dJlNg_#vAwkJaP?J!b z5$4s07axOn4{v~+fm?!n2x98to6p_s`r;rlQxT&FSO>UvG24pIJq*`18i(HGROAz+ zV~*$qgMm|9yoa1{?At*TY`Zk{Q1POQ#Epjt3Q;2BqnXz*FrWXP1$<_wz~+-}>A zLKauw&-ar(DUiaDnq~YjH{;QS9lX%|j;+R7-_NIC8O_T}t{xwbt*``Q_6CsxYxiaX zf9C8kITK^lZm|^ME%=Hcr@M2tonk2&gvXs!0DglhcFoW@G?Ov9j9u&)EG;O}4>TI- zqv0v&4=2)o#ZD=8K3*HtlM<<=VK2K>yu#%#>D0l#h{|gNi4^u(ND6M4NiJ&i0D;)V zaIL%-owDjktz$awn`z<8Gw$ zz~dkfNtmQ6f;x+qRR5lZkC(VovN#Y}>Yti8Zlp+a23>w&(M$-=b=3Yq$3Q&XeTnzJ2fWKIgoS zV-Cnis;u4ZL(#Y_0jxNow3Ush*2A4V<+!ZjJ;oOUhy#>-_OX^oJ8JXh zw)RHLtV#ZgV{o8Ewj$mwUW{?c_m6So{7zXQU$?@;qlRHkP!jd!9nJ=2WcX;-k*6@U zsv5zypgW=GEvgj1!TF|t#mnAc1&e9C7m32WKW=&_<*QX8P21M7Q(j4Do@!Xr7xdAV zn{*339%kqBuuL-C!df&*)7=$4OE>0y}}b%RrVhrn8HwFF7#N_$|ByG`Wk}dfi1Q zPT3U+%?kNjnPt-(do}jm|0U4UoMC?DC^S=FAgG9FE%ge?@K7en%{)|75Ef65vSQ0zyFC6B`JnNtU!5WKzJ{c9V8;JQ!G6d zTRwVPs3{K_Q>IlJ&j7CkSfbzi!Qy&$;2!V*;$JzIif0w=p!J3!@7k4hQN0|>QP01X zL)77Ww+@W=O=((h;}{WFoo={pL&Gy`zyo5uq{Kywp&Y22nD|oA8?5`ojd>Z1uU3jF zEcm3ILRUO2JqPp)r-TP&u0$EhYM?iH#Z|Rv*V>?!XI{f5 z6phAf@H|U*7(%lbtD&p$Yv+9LsK)p6qdV^cn{J`Vu?QDE-=kd^^Fe5BQ zU@HeU;MGWFT5yg=I&*A8;bl??-YOVyS~UoZgAysgCo^WtbMr|VQD#zn)K~m`=wcZ- zPMxg384iz@sai)CA=^66P9|`*xA+G5DXfpL4h>o+P-|y88BU zH2dhY9$vrK#=&zlPQ9AW9Y`CEI3U-jBVTM1pb^C(oEK+isECnblhs)6*>^kQ4F>`t z-mAF(Tb^h&ZxanY`9x6!d$IIhW_Ub7eLE#~fM^33r-gX0Anw<)l?ng8J4yUuZ^Fyv z0EVK0JG&vgx$@Vp3q0Lw3F^(->Ep1#*Avp(T>))EPjF^U-+P{qu)YV{w#&ZBWNlW; z7tm|x^EyL&JKL$+eeihai;!=P@mbCS5LuxSo<8?`(MI_azQH3Tcv42IXXyE=!{g8 z9De~*NK|*)MZyI4)BhW;7#E5(9?@axHqrfPI&pV+kMJ%<0=hLv_V}wENkUtrrllu* zf>@TCc$amDI(Iy|n2KfH%x@E8boacsU;!GH3!b{_5JY4W&G;HU(&5j&WV*8j!=nJ= zP}zLe4y3$qnuzBS}7CRFK#tRIY@t?O%{g^ep*O2zMHzBSVM zUvUk&?-OaS?<&d+j?uM~{+yC(QO7_Su{^}%&#FF{2?DIk^XMx*!)09AdC;)370Sob z$lu)T&>N|4{SmkrPLUva-?H_qy&mHdl^`T8A*#JM*E4wGsk+A6keni|#%}X+`T|iw z`gHKw@DsxzE?_Qx-K`P8*i5;2-F@blR$2RQxCcN&!sWjz9~l{I!VqsFs&UcaXKIu> z$n#n@7k@hnMIJC&ok471b(v}MEQWCm?2w*T9N=3}X&kw`F9m}DwL(u9*`@jFY*EZb z1;hOH=2L_*H(WrFoEJv|;Ra!qSz71xaD2&6Cs5TM#e4b$uk(wUbQ*V3q4`HRY5{Q)2-$>e|SZYz8Ju|K_l!0VfvtRJ|t6idip9MiB z-18-F$m*zrW{t~pI(vt8a0>(DW9Lv|c~PHpH=BDj%7?)CF-Od$4asg^Sqf8%U*M^Y z*u1idsZ)SRM?@^rv@}ncJG7E^Nas*pG$t!_OKNg#I1wW%KA#`IzIbPpx^K~MBg7GSS6)kx5VJ|g;64)R zUTs3mA!lpeloi>BB4D)22^T#I&1k$|I+&?J)e6mKtNT8_ksMaFvJ=IrVNX>qXB6L3 zDx%PR5ef3}(AP>v3MW;}cUr*S*23W~(N7Z$sKS7|yCLNQVgx)!k`;@ak$fbxyc^{ia{V-)I$1kMAB5x0S!`-nPp&gFJi3#GX zj|NkhDP1JAUbT5A+3+lm-eb^a?hK#xC_yi^{2e8CoZZ+U+IFr?`vu;1{4dS57Bl$pvx>hCOBtx&h|z8rfxI)x=sn(P{WtmC1Ixm zcuybNqC;sjP}0)h`EVMtsf8022|mL8-ZivMH6kuQZ$GY@AXUcD35aL5kn^~y$fo?G zgrL_84F;m@LWlO8dCPx8(2s86j&YEikmo@0s>dVXeGkgcEabpIBRJQw(r)u{#&SG4 zZ6f^(h_p_&f99+FZZ`qlR#5s;GwBSRZ4|zhNI%F)r3AtC1L^q^niSRiT!=vT-7hUOB@J}?+Ud+|9{~!eEP1LZ;`8j>2 z_wAcf2>mZTJ{SD)o1lCz5~8%n*_X=DZ%dB)a>HEGc|_@4iYqW+2eC#!a%*g-RfP~0 zYebX^+>mp;d_3KqJh_}i46Ff6^E$x|{ko=wHwEzwf zA^ScpH0*sc?#Tqa3@{?{!P!c)oTFvQl&e9&ObEuCqujO#qMfUAhih`y)!bTFHHTUG z=r_{&<5Yrk{*6s}ZeP~iyCG}EI5kC$KT%WKM*6u! z!P8=9AQFY#EzpRTWY&LK!|XQi-5BV$u+u36BVS%qVy1W}yak@SE8(`Y(by_5-am%_ z{O#YYif$BdMCXQtEe7hWMsL@*FU_Mucrdz9`V zcrK`q^!j~*AucbK_Y2e?u@WBX#IrV9ll~|j1h?wMhksSK0uj>#r~rH3z9_Kr{Xpyl z@PHdB5--cODAe>u0!}AN_#=|c+w>S8ITGGvWgenGB5UYna(wUbv1QuchN(0}!+%xP zhPh04fs9YmrH_=mc$!njb^o@0+jktFeYuL-`2?>%#D^T3fYzdcBMg`Kxfp01NG%os zr;je|HPZviY!g_I){%X##*nQUGMQL0z3L8(FrD1^$Lmg?2XEFne4mV={>(@}kP@ zt<%>?8fH|78U`9)MsF-O+-|Hq)+TYn_wKfnE^_zan4?ySc9CL?!P*O&&E<$>Y+Vrh>f`ghW;w23AIs>4}{%r^x z_@i|oJt9Ty%eUEh#TJu2KI8vu7SQC#2qLupn`Sv%HM{d>POx6ix;e+Q!;*%v5K>Er znt`_+f|hC;5*X;A11GOdYV6x9-eAoY0K5BL?EX^Q_LoDKFhW)t!r$4KrsDDM6G)*W zbLMh3DyG^r{Qs+X&i~E_{C_1Q|KGewbeF~s{qzqq21z@p&NdC}jWWFSD8Fo;^|i5^ za{MA@)iyqm4;Z#aZ0p;<1D+0RU`Mjeu-D%y|gf)@i$p{11PXA_!xB>A9v@l7oiP zo^BrO71@rv&CD7r@;{})4eOk6mHV5G;sZHyQmtwl>m2uo9m9jbtn{^~I+6tfy9*kS|R>S6>sWw^foC;5W1={ajI5KiZAm1OhkZE-T+&pI>;D)WAP zj@ja`MdCAbar#+sKnllbc9prIC0Kps)QO z2c9X*hb-XU?W?J(2fz@(kLTmRi64`ty`dEZDR^v!VX#y((OyqY-)R7~m7J&FvBt}9 z*B*C(BpX%%A{UNw_j?Xjp{$OHUVK521gD2IZN!|#BtaAU%5gaxcg;oifv!rL8tZS0 zx>-OcO=#{$Cy)0y^pK7kl4YC^+IV@X5cc3_P=CF_3yJ`|5X^B_^;9FBCE%qufmV+o zrtisEHNVS01qyk?v@q!N+OBaJv^TmDt3^xibibmuM4mxk%)08~8Fg6tkaJq^yljVZ zEhMRWB`Qxnp5S}V!dnF*x6WN3n^Mw`>HV^1{lX;NGqI=Fu1se#Yyx402K%S>pHJoh}BTN>p!{(j7lcH zqPSJB-v;8hc$P}rYgv`@m^Cq{ffLil@Imvy!4IUbhFN9u-mx2-|C<%bOj!1X1u76d z1o}lLg$yF8m}$$rnCGBY=n{ZQXaMuI>6UL@KYvu(_|`X)bTzCf!?-m8$FgAazah_H(-0i7UOabmXf?JWmgl&oNrt z(NTwR9yn)E0_7G%`RHgqy7dQ}S4Ssq{3lN*Wo+lguPlT3%=LO7XW2L4IvPnxqa>A{ zwL9Pcb*!@d5t7`aXcKzj|2+@BT`CTy__umLB!Od;u#|Yh5^Ns8N^VbkfR$I9V=sp$ zgOwCAEFn$_^!&-mBU=K9OZUk zE~Ef4{ZLGc{l4nwoe%4x=ARzd22<)dVn_q?eq3l=QF@!%C5b={3^i0-$#HdzGrXK} zOtBSCgOd3s^)7CFx%P1Ps5Mz`$?$(lGii*SRp}@O9C}_xJe0l+fs0&XWq}o5e7+fc zC=8Zo`Ii%3gVpOp??Yvb{}-MYwA^x^p7k(}?V7D-ekh{?Gwb9W35T1V5+`wj+Riu} zx(NNgpzka+kowoDNT0k6?z4f1Kr*JqYTk7;DW0jn*+7=rov`Zxkx#?{-8?yk(2G+= zs@&cKy8){*$6gyhGskGZ>*gt@g}!W*&RrOXxOU<44CcM1@zq0EBWlys#KRsT8jZF( zr!(#g)8i1vyGMaN%DUL1v9}_r+o%m!vN->{iCbFh(l*1CO=of2XcvI z#l9d3h3+p0%A_?4=_du$Zjh+MB{Nx zHfqhu`PIH5cnX$8@?r3w_!pIbtleFvEHyPR!?s#HcZ;sqp`SKoEtL|YHsJFtq*zi@ zKz-_!PWTP+)2x7!pU=ed4$kex^feVr8C>Fy5s~zXG6*eQB$;q?{XnMZeNfgdAm_v> z&iB(Jm)0#ZrV3>BzsF!c7tZqPmnmG;-0m*>xS#j+6$mpeaD2F2&ZXqw{sEnk>I9Q4#;-{)1 z*?d=W2~BanMwIxlRrALUlotTWj6sh)ob`~>F3d;hNL#VXh&_N)YWE?`Ig& zoNgQB37KDARbg_*U>q449kuHOY8)$E`MJ?(#~7t)IaZAY)Us`X5Tpk{&3TfvKuA5N zMIn7>{taqECP~!)DDCD61%v%RmAXyV&(4ENHSS?h519DtYKyGgOkdh4SC^Q{NZ=6+ z=tOC?!*3scMh4gfcbDro6;-IB%wP3nJ+vGcDg=YDR}OLgIEe0_u7*+DzOQ@jHlC+b zjmT({sH8kj!EmV<%hLs>b3$DMkgZ}zWZf_oX%f`>MIbzgq2`>9p5IRoFZ01TfDdr4 z96)XQN>BZmOX(Xialc}B=N4C2Tc@w6@vL{pKM1qOSH!N0D=HskDbm8#6{37UgJ|rQ z4&hbDOVv=>m%PUvvX{0hS!2W0%@0%1VCKT>>_l4^&W=fKZmOs%Anj2=ZS#OOjn~&9V3g(w-2bs-L_ySaX z41+U`fkuoM|0~nhJ?|M7(k*#4Q*~-&ppiVEm>QZ^RfiP*sNG|qr@WrG(d|dz<91|0 zk0(7@hGykVW7uND<|Ey1`J(t294r14(hZJ?x~eLNHHVym6zDS_*6k70k4>sZ^gP-U zP^Hf!z}9)Tu7K#MIrYKz{ydSja++mDwU@Kog?WR+ftENv#KN1jlT`(Wiw{ppAE?fF z#@`W>n-!Y}m8ij-Q(tw$-{pzZzD>k=GE?HNqt<=ogW|l~y#$n`DjH=7*O-;=l%Z0Ky_s7X}4}U`=l8n7R-%pGya63!tJa0~ZfRMf_ zV2a=QA9H2!iQ8B8y+T<(idtP`j%3E4eclpGN_z|ttyh=bvO1y548Gt1+QfZj20E50`O2_(1<0jb<7>e+OJHKosN9A zWmX13GoHxxGmy`=?Y;<-r9gVm^81#!I_B&9^6}9AuKkMC!q)X5dBZ(3@9rO{~LV>Ts$ECL|cheRye{S;<-^t zon1}H_l8Ku6lWx?nL9Q9GdkyG$YRp$>(<(6>F!z6BC7Op9TAoCo+IK=d;AkQ*ybF@ zzjIx5epn%7s!BnTSfvZhIMhCBg|w!koLL?1^cz5gdu6{kpbekWz-gtj8<} z+MIjcIcl=9s2_n#FyyRaBwC6;KasZq@p{MdC2lf3%`nxFe~XP=IRJFBz1G?67aRA) zMTG?sljwxj^OsUdj$gg-`a%|Tw_P2=Mqj`UCmkxLkoc5qU*nYijpZ1=())TGpZ@xI zSq1w7+*_EM+sf!aH%YabG zRVtG2u5MDu19 zYR8}Q%`AT(@Ghv6r-)_(K*ue)BD=4;LSG1*gFVJn47*4Q@O0Y*d_L~3DFR>$Cxn>1 zyJm~s%H)r_docSw+c+kl3{W+l&-U+@1-^j3?$6J=v!lex5vaLN0SIpnGDomyRde}* zJdyMNH47l~XwS1Ck6IdkZ!bBihA6*OudJyX2E?k}8%`Ki~J}FbS zE=M9y!=%_(Xd+KaIrEn7V{E2#!#LNOl?uOakwf4*MW!J1{K!BJ*J_K9kUTZhq}VX% z3|F^x**|&m2Cy)Q@$N+SLOvd=;JfxeFjAnkykh!&b@S+Sq#7M>Cc6i5P)V=_Q=O`r z$XCLF`*lSp%D1N;Dxbe*Ydh<5h6)5S&H_9mHI^4=*8$Z0JQ%+d6h1ORCN*u%jGeXB z%@|4j*;AzcQ~QfI=ZUL#2j(iT`$4TAePqK19}Yb+AJ>=1+6~f!rkfZ-R<#VOQ_NR# zUGZjhblH9+e22toK56CpONPx9emk@?Eb#f*Loq_%xN6#10S0M>X=0!e0?y@YM}L=Z zs4#deRS}${1^I>ZX%=sI45XVIscZy@?}rqrGJa>OD~h1zyMF#8agCi*#cr_da2v)L zX&kusKiP-?tpVTRY07^5<*(2qeL@UncGdV@kpFzdUiim}jqZLSosO=VweYtLIV0Hk z&NU$!EXCWz;6HPMD%e6{zK#LZFf25FGozcik+tL!Pc0?iF5dS@yExj6)Id_LR91=| zJ;}ow_gy9@4&T-Gr5S<$6~Ai8C^sV3qZd>J!;KofAZYKOBea=1j|L0n=>-Z`1ilP z`ouiD7`U*>Ha5bHpiBcRRhc8=)gINA zls;nfEI~~?>A%NNy6vvRS6lc;lm%zae z28wZ0jiya*?zkcW$D#N)ov+n7NvhDI!O94ea8|m06{?OcWzJ{`IaxOq)P~06B2Q12 zJSpyr(ltK*rQB^CiRFQ#H3XgQCL@zGojPkXP9_7LQ5${YJmuu}e=3lBrRAnc4G~~c z=9?ReuzYV%t&b&kymJ)Uw>5h1%39E=b5N> zA8X6+6qUHtPfLfNtj2*QjBIp>-~9eKzC>JP0BJ_fHKY{R>BwwY#Qdg+<{bGGLsev} zXKHhC_N{`fu8lz&S=0=3R7LaU6bO;c9moFcJ$|~pa5kK?iLkE$o+0V|XTd~?sYgSk zSncg2jg_`XjDt$xPp#08Vb^Su0`&;m9Fb!(VG_I6uZlZl8#1V(Mrk0=%f2a6`$zL; z(0h6a83EV|2kM2zxdM9CI!6$vD;jf4u$!vXgIX>5|I|rocIEV&(So*0aq`t zZbuKc#$G1XhiYBif+n#n0|DnNkhOC;QUq@Tua1YFtHSd{ybS}&;LjwX=iaLtOXeHL?DtZoQlZ^`r^2e@2IoyzC6-y_= zR(?8(P@O3kS063npV6SSqp*x=-wR>Iw1M{O=Jdn%i(u61#a6`$@jtJ@Lq3}|Z1}#{ zks28GJ2gYtdnL}@=H<;ej!Qq*=-7gNhGh{2e9{IDQ=FEWcNv7@Q71?DhwNMc%bSoO zaPmO>S-|wqM$mL5_VUZU9*cm)!|2?s*fIdCg~P0ID~tYd0To*yr%of>Qq8GX2?q5kW8f7=PF2BQ4;l>0w~pGa zzA?1@`$o1f6w}y?ykwjd%jt9IfaGE+#N7?~w#)D$8@!J+=5C|yi|KPxFGru_ty%R) zr|Dh%MSjfCt8)B128PyX#CE~rFh{^Q$b3ZKl&)5p3Ya}IWCQf7_w?oeKbzX`RB;m~9X{OHLhVSV~r z+rBDu0wnQX6?C%(|HQ{izbgU>pDwXe+06U_Tl%{{t zRFP;e!O>u`Tg7Lk-l;+_ls?(p-5!)&im$OnSTm~6y}=x>orvCg2OS1ky*>fv``Qb< ztfYDQF;YEK|EEFHED=gvbA6Og8ZrM`y2GFHLu@=SBoWzNXVa3bHX+X^Q)y3wXqg{t z-Qs4I={^}tJ$Y`RMQ+e$J(lVc1(qyK8}>PVmZcIp^`ee}6Ld^`ZrpTej)gH-kbNcm3%(q>Z5^_cbm&w1zywT0swT@-XI+tAZ3!s`x} z0=pi|lnmy;!-Md$R$v~PKV!v62)_&?)KYm|eVnj}>AsDVedR{|$UyX=r~^fIal5c zby#-9b8a&&ay(%w#@NPPA5ziH-v*3tQ)vfADl&JtS=)&$KFwlFWSx8_84V7EST%^n zg~v3&Mh+pRYHIA41>fX02#9<7*b(+#ArSDPHCHuEutb1&v90Ohk~cSo;O&z6mR?Iv*lJZY4YNoKZ-Q+`E%3-^pD z0_$r7Vv|-(8aa8Hu{rHulJc`IzwTjbA0KsrX(r-p_!FKKgZmKB#rFA-Si`_=D5Bi$ zCZ9ts;bPbPk&(47Gz5kQ3Gs_wRyX?Lg+{lh5B%`y{Ii48Hn^@J^HAYktr-@!%^Qaw z-wN^qkW&f2&lQm38aTY{J#1A(bdf;+hG<-(MT)bP95W9W*cNqiGc~VndmB`IQ=dhV zD4*;I9h~Xp^LeY7T|oy|iNRW`u{J-N{a*euba@1h9sITf7dr}Fsbh8P6@z)qWXm(}r5rAee<1(pXsMyb*& z3!nh0rQ7SPy{Z?SSq$p%kn+(tF9M$oJsdV*&U3abfG8`U46ZNus(!e6b852pECNw< z%HMPY^3&j+y0oKs;GHm(IYi6-^IPb-}N3O`xSf;dN!}A#M3=^he&$a>< z#Z;H#n)K}Bz0Si(Tv+g9lsZKYcGe{k_yBUi{GQsPs|!$Xq~wSs%2cgX0B6MC)Sjc8E@$pr?SIbiyC0m<3#4~eNRIRGBS>HxvEh> zs#Zu`mN_Gm70LRAClq+LKrX}$r6p^DbZqkczBnq#uioV3{jg$BH;fkIqW0F~6FX&w zfVAYeJ#Z3gf-~51-Fi$t4?LmWY%OlfUnk&{unePM_pCdI7Kt+RG9KML-X1?X9ESjH zb_T3Jl&*ei4lo6Vp{%GrQ`a+bK7S7_{{n2v;dAAF9=0!_^t_Q&viV=|70lDMl7t}9 zINTk3h^LDAL>ognhe^t_DZD>ZZ_L8bR1pC~W1(*eQI@N0@qkt@Ns?P(BklQQ_P@U@Xm*P$$U9ZkEV|E1{VWXR~)f7xpv}DvIF`2T# zd)eme=ERuiWM?WBFZ0bT_v^Q&BNjcxot~?<9s^=C$5Me%IId14E^ClGVu&E28)B<2 zcauR)tuV^57tl=br+-qspvfS=t;_SV*rdXdYRq3FnLe)+sXg<|s`I-rTivohW>?e2 zZwcA;n6Us=_Zz8VjNQZwn@dlL<2>$vnhs`N|5ur(~ODgz%vO-PP&>fl-lVMT&68x)>%cQi$szxMRgi~T3RRgkG9UQ z9HOhyvF8xT>4f6FpIZ5IhG{IRV55?AS|rPziw{@ZX$OlW`?|l9sJ=6=yb^*O+_K$n ze=W*AQH;_~FGYDe2}d?e_>W@)pmLI1NG<8GOka*J6#z??QN$H(2CGdbrKH*wom>dP zss^29`kB5KL91dtJ(mw9pN8m{c_!4a-VA`aOkVb?5Rkfq5)FtCQPqh@ppEUPJo+6< zU6ATQiNSlOn@t_9(@HEcA;7pu! zQ5t2bZN2?F|HW3WE!Z?_I>(=jMv?V_J{qvPp7JZ-rlaw!&rgss7=`Y3Py-Vqg9qX3 zdY1pm=Ic`DXqH3#*T@(PL-+qcIgO+RHaWsanSuO&dl6+gFcKuEx~mydt~x?`gC<<3 zREQIUMX^|`&3K{@^Y43qSr{ zx)`|uKHk&SC)c5DW`#}Gc?$JKXg$IG^0|q}=eyqKoE-fFIKi}<+b8iuPvq@kcv*3- zG4R?j&oO;0P@P>%Pu(lhz)FuV8SmB!CEGuvG=fi`r`rgVRt)Ta|B($agUzIH>S1SE z`3^Zvs+EQe{7sky&+N~R)dpf7op+%i_-Vp_ox11AQ;9Wk}uh2%x3Ey-=o|FEYr#HkNsN`Q`NzXzf1o`~>Jt zvyXoWxY{~-i@O60=yH(N7ONr!K0_WqpN@tvUbm}xl>eg1@|dT$@om2sM<>?!LggHN zJy>)z$MGYTu%o|fotNnf5Xj|O{TMIb2x|eYkX1_%Zf*G7iCnI4;0zH*Hn>+%fgdJ# zbvTZ-X>|P82r57sm!;(4aBAc7gf21(W$P5Ut5D&tWQ z6rFval88`CMy18n(TW&^2!H-$yduve9c(FAFEMjA{TzIBEP`|Uf#A3ji|$ERXOICaPeFmy>CrOSk+Q(neHHL-lXfr*)dJ17TxFp+cnJi2P3z@{ z5~yDRO?%|O*=S~UV~V&uh`$K4x*nha`puBm3mT?zVTwhZC2QRa76?jxSe~%n^;^81 zKG>4w?_m`za9=p@;Q7C|5I!}xeoH6DbW>^$ekw!y=uM2kiIy>RFp={E1-IsFz{7!s z@+O;d0`OOTw|_sW9l3BJyu8}(&a9XZJRAxyGo#9IOPP=!zS-LhZO6++ug42XAtKuD zep}BRS2p)S|9+m{1_B!Xbm_+^kg~JdCC;h#Zxd$Mupi;|Om0^rq_@lKVG2U7-B~1%2t! zIl1nchcC0nSb&sau`wpXYL}pr zYy%kQ>P((tkytEqWAl8SVGD#K!kQ;=7>RA*pISm(|Hu3`70{c5o2nZ8I&?V-38Lo}2o2xEch)Fn@&5lZOK zCPs^P>U4RZ2~a?YtFgiNaiE9D%Kdv0jH{upJ8nURTRz)3h=5=>8$P$#(>J-yK@ndV zxqZ5jbm!*7!vSTO*rY<45`pZN*yu0$osHcMF$kfQDW#es>YQi4&twjv8^u2fDzHHq z+*)Q93PF9@6#}spw>Qu-GsS+>_I2y0Y&wdS8y*fMq&Tc!YN>;AXNTPQI>RD|nL8}Bk}d0VLC4XNw-z;%<*8~<4xqC-B@Tm!jr*gkwC&>7RS0j z4*7|RfIrwdW<~<5mF@@L_7KAE$BSYPvfKXAq$8Rs2tp1K3=(ZYwiV&T8WwjGOTikD zKpX`0`P;a;!g6-C7An08X+J7&S*O8&08Is(YtXRN0fzb}I2VdUlVyx0m&KBSrJv|C z6tkFzAnzp~TPm(>A{V3FF<6-iLv@pCb>fQXaz7S!S#W`*?cjdLA#dLohd>cSSd~49 z7O3lYk}mD6p4;}%`xOkPTjH~qF3xjrKca#24I)flGI<`-)b}SrQ-()$owA#V1Z@zo zGa6`AVH|#14obuxa2Fffzrx|g(za<{!wrx&gKfn2FrE+|G?5uN<2f&R_zLbFgRS)uOkt=*E<%uD8mU&Qj#${$}PhOcd)MKgF7@`gT_UyTfz5x`;}f>op?s|`{zAC&&TuOaC2++4^|fp^@*t+S6DBTy&KA8V1L=BLHq!pai7%p;cLzU^>}JVyXcO zQCNm9;yZ#icyeo5)NA05vCjG7>3I=7(u=Z16gAf3AE&(yyic{&5g6qOOf|%UtTZ(= z9S2`OdcHn+HK+fu;ym9$w-uQo6?ZA`+tvVxvUE53Cp!HNcxy^RN#`5*bAPkdC%o|> z0YP0?=4ws$ro_MngBj8AyAjx+b7SWimF{#^6YIM5{^%HtqB5VI4kg?`Q)cjIq{3!b zx1KZlC~#8|-y!ipd>yX?Rydm)ar4JgWbc(BBbZ&?pA?}!9B2;_YrA}-GgB+( zH%pBu%<_jJ@XAFGJrp%}{4sXM#btI^1%98;y_)VWeD)As=J|?5EJ^VNf~%SuA_W(Y z@R^)P8;ha|{BYs!Jk>pRp z&G90?PN;)z2)DHKoK>sB{+0B`Key%AkNL(EAGR;jIx8#(#szyE1G!;&nzQ+c{1A+z^tKn=jb4X->b z!N~%b5^9M+o7HH-pI<=e$8})k*8&pStQKy;B7qg%2|{tKX^H`JA=_fgv$ljGuCu(P zq0t99ttmg#SEjDz^=pFNycD1X@A>PFI24vl^7Yy|O#45g-3~gBsu0M@9D3%m1)ePlvI-u} zJ@f9ASa3S490&cn+&~rYvcubDcVF8EKDU^an}8O((g6neyv{l+s~D=AQ1rXEXdRHX zZqvH;^~ou-aB$j$6|)LtPQBZK)FhRzT3^M+5;fr#L*QcXq}q_aV>A$q6I`$0%1qid z5G&@F3b|E*c{vm3A*aeEQ5C&i_>&5Z_>MbktMxJ5{~9O6r&KL~dU=iHYXlFG-Uvws z;Ybkqbo0K(eQqnrY{I*cM%<26jW2tDd_3mf3qxZvNE0G+ZDUCq*j|lz_Axv9Sm&tm z{km9&tq9p_-XSm}s9{riTxL`K;r_bBiwd#0oaf{F@whqFd-HP8x`8iMhW$to2&z0# z0_++X(xG1BlyY73_3p&xt1+aZfzRDf6~Af$Ku%L`@(YcFHVT9oAOv8G zWtgD_|CU>{E40cfW}SxeY8bl>g!clLIf+WGSyj2}gkPD{U=-{C9Ddeh}#*ofw>^uyNhRAGVL6m_yC&-9qMyn`XS$8E43XW z%|d4Z6b#G=#jmxO780O>FJeuz_V7Dho1FG`aeOaLgip7#LN%iicBkDH2FeJ=M!LSF z$5F-N57i_ro*Aolh3FTxQozcLrwIl(hiA8XgGVs5mg`fvgMw8-+6JR|kI0!;ckg>TC#TKid+mm7bJOwhYWuhWx}m!W*?(UviK z;M;QxqL-6dc#MPZMm-(n4IJ>fch)}kHWiWVl~*|~yaly5Op3<+#{HUHexldLDKo}u z!5zLd=9+Xc5cjWgBzt$R`xCOWj{4C?RddAqPAE&aY3+C!~;^q-sAcxID31~EEQT!H+SauSu72zdG8+WS7^7z(AFF2 z>sLaG2Ioit%RlevD;3_XPIL!^!3Yjm)jzSW_0XPeJ?QB50CSUvZi}h`s0e4j|7L6% zyWb7`R4$tOZ}>9)%%f;v^7r85=4E%^&ezk?s7g0lp7o9;GxC4U0;aH}4?K*#t)BV^ zj|4su*P19zRcxp%V6>iJPmF!7Iu$R7%o7+n*pUQ$ta)fSSdz&LSE{ConwG|3T9wMH ztqFXb@RgI(K8?4uU$c0Mgi+2vfWsKiLR~`22;u(#cx4BtyueBi;7Z0LjvH_Q21d3- zH&_n+^0}^88!=pbLiCC#`aitt;Vuv~bX)73pJ688_(h@uh-U4&axQGY4PObUl-r)` zc{xW<1ZHA-T7E0y`k$v_rmi3F|Ev6?9au8)Z)3%t2Kld`L|>m53>b|7ZvFl@@c+Mq z2>;)%RLcSc;>n8Xm%?hk!w3Sw0sS%=Yygr6MjRoTBS~x=APX;@hnqv2fIje}_@6V&l?pQYnJbAVW*2xOA7|17rU`onqneFnhG+N=u zeZvm;%6-FHnRhp7-6O8CHb=h1^@{+1LK837O6B50Y54JWEb zm95wPW5=A}3r*C!!{@FJcLRxG-Rau`{=D%R3dKMM&!&kx369wBPbo`C2;NgCkH3DQ z4&1Tcey<|H6_<9L0RvXFUjPf{XI3~S8jSjcV1Tx5K(zNTQ$W+y{8i2Szr}lhig=zA zwtxhqxb>`mJZJa;ax&4;?p12z+tirf3%6D>a8pLx_>W1~*8!D0z3Dr%2LAYQ&_6Pn zX_mqeRRh}sEFIV5OKIlk&bv5ZK~}i->tfcWR3okilJYwEVvlP&n&<b#f1G`m21v%u zxYBOwVor?Ad|!5TW5``XgB9xR-glpt_>#vzWauG0J5s8x~ei3Z5aGtDTvjC z+eo1?^s&dNT@-VLNtuY#`zOuEnbY{cdO**L4K3_3?)vaar$okOS(E^ZTrP}7hp(SU zwtXO70)G6ocYXH%TW9YWTv^+;>&CX7blkCR8y(wLhaI!Sj%{{q8yy=RCmq|i*68Pb z-fyj{z1NSu^D~uMHAmH)8RI^$^EwWLk4*BaSdE}{@GAJsLH5V_;fHmIfazMG$ZbfH z0B1u?=bTI42bsJsYQDVWLYDD^S7bJ8)bsZSD~ftgkBi=x%^OsJx4ZqtGxKSXos191 z@ha&XURO!O)6CgOQI8tV^JbHdrl2!@Ui_=CO0IAQjcsP@psEBGvU*pS!|EuyjwU!f z=f+aw_;-@%exXa(ECZDw^7wwJsFjc0Ol63 zXx+Hwcf)S}RSqV&vJf`4Fblez$`%{+3A{`W`j zS<^Hbxi}(afo1{ip?=FgMF_zypLnZqSq9xit{E!3{(gWa5hLdO)0O4~av;Tk8c6?O z)%;i?3)$Bl8Qgw7TGYa)?2m@>4_$Z5}I9D z7FL|76_=&9b1SFC*Cwu8*il&4mj{A^sXv@AleFRv$g1^e^N81)RpQ^8R9xq*v(P0wYVCBIMI2nh(Oa4Ou-RlC`F~D% zc{S0+1V0n^t7yx?IW_mP|_&lOgA@c!q&BTKj=IeNHi3%YK{`^%lo{kn`ZudLOSrLHRkQk zOyi3>`d7|5_f0S1FZdU*wE+k>wrZd|l{E}w^^ywGN*$w@-47wwP0ostOe$H_e{@U^ z*~9~XYPI?M@^Rf)M8j^(tJ1m*UKgPCJ1pB{DCRG*eE~U1EEMsWcgn=2+ZlK!hA%SO z!z>vT<=jPQ17`*X25_naMNB_bxW(eOA%6bxFUw<0(+t1z+5Y^X2bsHSlb4=t5aj=g zystnR=I!D0FWd~v1lB`FWC#a#5Yq`kJEW>Kq6{~A_8LnG+eahj54&1&4zn*3Po+0r zU0!d);J zkl{6p?0K;xp0hXM|Ag($i>Kv;K1xNHOmhkZ=B)bA(661y9@ELDLljc9HO^;Gu!7RW zqf!ReTe2eVD5)=q}yJ6=- z2{g>)g1GTc)`nKy5}YXrMT#oE8Y-@^TvC2QFp_ksH_hJ>KQr9g%}T-e%XN^sWQM;w zL$U}(_Zt{=dOY}ATo^hWtYv6)zg=&@m1~}Pv`~pnR!r-um@h4h81-zLHDYf7xOsP= zV11Ie;O+MuvTq7bUW#0lY%)whSomib|3%vw%O(U^O{9SdjAR54$GU1f@5uzGPj~pP z-9T4XbnnBL`i?OACzyz-vw|2t^ri4({!k9#ch=UEtr zHX1y^`8~TE>j`v9xkEYrU|fc3SaV;%Ulx6=JS7zKM|qFh(btD9#_DxK1HoL?gEvLD zmFNg;BvRQQ6A(BW%Gu%v`?u7Su!`GT&ztg5apPLJmeWmVSkD0n(P^GwzaF{V^)XEa zM7v3>^Nn(B)%zIq2s^>0pKqqRU!RZHP-W<8tIx8zlUYo#ylT-ro=HZ}i=3spFPvqd z3SqS8ROf<+PJ)`dKfoOPV(OM;Z9?1dEZ|6!zXgjB$7f<;WWX4D%0a%l^LRjR_aRHR z9T3T$NGPUGVLb#38Io6y&b2VMIt-zqBP>6{QA4S0G=Ke|%`Cg%P+}Q-dRgp#zaDdN z=%u?qPA(d8$!-Uf(Qm3za<-*wLE3hd`4<^e|L2b~1 z^{M%LNI3edXubeEFR#x}#(w;|L9OR!%u`dzj~MPKXRyU!h3(^Yr|8nz@odtY7@vie zk#`uP{D&ug8AY%sBkd8jV5y*Q@=3;QKebMS$+`)%{Sg!(vaei}eF9{PO|5=cjb;xV z7-WLE91e$MSE#1+GPp-A_bSYtU567y%z=li*{w%sji2_v`|e8944|&s1d)W%Sta4? zrtkT54(*=_j+D8bj4hv=7ibS-k48nEA?Ik@8x%zGk5aFV`aML=Xk26mxb005qLNCU&ikO^S?$U9uA}YiZ;tatvt!S684h0(TwDpaZb@R+@Zsj^_QHaJ7ctcSS)8 zhC!^nQEDtXQUV%l1*Y>*@m0N zcm;<7F#gFc!8HV0E>m~DPv>A7ZPbMz;pIu~b>ZLl;yx1uf~MrG1d#kBfViB*oYi0I zb`-&{@3Omliy^YikYQZMImYe8lbhL_e4C(nEj~(!*cID-_t%XbhL*1KK4y9s=d%*O zuQ80pu*2|WV(-8=rh%#ZGNNhJ31NfLp8aczIZS=L&d_JEft0uC)8+DrW_BrC0UCx4 zF@haAb^#3OJYQsFAvAcyW}11slx#??TGYqgS1%tAUr$d@k6=?wn(cxgwa=m$7SCuf zKGc>c%378ZBY#i^;$tgl*qWxgUY`~X3gOc@Rfyea7W63!gsOY`}4~b zqs6LWZ)lrCQ$17{8~HE$OOvzP*H4#o&|yNEqG9(2d`1MDLqfF@p|Ccr1MARoR#@gU zDe6z`*<(oe4Zo^>+%w-CmEth1q7gqC$7}5;fXYOj1CCJBZ=HBP`c+C*)eeOE-d0+0 zvV*!*it6SwiTt!kK5RReI;m?}qURK*_R`LzKlF&3#rUq1tvn0HT7Uqwo5yQP|8hv z?pMA01^fxr%jM)r>d!AziX{mLfjUBj0POEyIAaFp$NK8n!THBJx;p*5YoZV~Vm4G_ zoZp@Ua7F75My|_pz_QAx(F-w^E5z{y+wG`i zo9}cKRMW`}G6P2PS^34Ycet4KR$*5h#n<>Im{rP4hbU4O%s;oXQ78^voCVS^3{$aG zTegMxlAtr%(J9aWJXA%FNHa>{6jmMXLMKzxWp+6%^sy~mrO3ut(Fjf#H`B8E=yNwY zg_eWOjQ)wKU_W-zPC`qbtigyl7EYTlQmgt{?p#@9#z^M-Qn2z&e*+CG=@XlFz zq$#?x*j_~xvZg@n2CYxBU6TrI&sfqcwBxfrH!``LYLi<84#8ZK7t`GBvsiXv#!Rg~ z1}FR?`13Slbyd}E10R8EstD`@J@yxPYUGX6WB%k6gmP3z{avN-zHBy{SX||FUkZbG zPf|z7IH_pFAGw0*pJ}PSMwP6XREbSB**>>E`0~1@Fv9w-E9tM{k3RkZbuGQ(fC|Yd zg&2i<*@)pB9XazgR0|%Rsd+*Bsr(pIA!QDdLtN(dgs0bcx?gCtjMj`nHHaU09xd+J zQui}Pfg*BN>45&@t{|YK))Dq(@(zjCvMu@K@{bNzhYadf8~4>Dnux8q zXP31*euSXpkDe=2&5YkH=sVDG|dreKqUI+`|y7!?OMv z7jG;_SJ|99As18l;8zpP^u+1Nso^$$-y7NBeX|LWW7O0Y#%g4dXbnx9vRMU1q-JgLyclH` zGF()`pzo1z{H8O)tClnxS%>6NstJ__C_h2Ef=cZNf~T|K%95j*j_;$5ya?C#4@eh|9}ztnO`{Rc*k3n^1NkWs1yU;hD2j$uB6~Ni@1M zrFe^pb{8fvmdg^iXk~(&Yr%7fg!U;3_hx_MVJymF0&a{mB6+yBx}AI#o0l)s4|G?( zM|zxh)~+|>)7YiKH}TWFlCIZV4@|LjB<2JMnwGXUZ9I~WSGk3C7(7qS9d{!$tlQjg z=#kFzZ;VwevPm2@UgXMM9g11!-aa~Ty!ZT` z5?LP`&?Cm+Qvn~P*GI77v%0{2{HE5z=>71cAiAN=_QR`~vpTCqee~1dVWx@Ofpv>7 zu@$jwQ4h;7Yx3!?sWT9#OpFunRnIB z8WkxcE@b#`J<#KFNCcD6WwuVu&0fW+^&MK_A}rH+q-@C7kYNg{nxbz?mv@9M+Pe+nnyH>Z*a2H8khQ$u=Wjo$j12M*lgK{RP^GiF0| zlk=YP{|*qIAK!;wABn*gyX0|pHX!F zj9NbWEdt_MUdi>f^BgOaIT-LFLUC>Dh1eNSie(Va3$re{@b>|cS+^?WVI2zYH&#%f#U%wLNbEBNgbe-?w%d2@$26zG> z*im)vhg?nz{%@zPWaD4Ep#dtWd-u33@Gb?x{x?-9=2y>ts0HoBSm^5tE4KP4A;VG~ zGo})=H|R?c=qd)<=C$kO{7X&EPRq@4A)qVvx7uc__kUH<{J$`S{=Y@{m!{irSyKA1 zuu7=(x<&SQfla?OrY++#YsE0Nr!aCc1JyHUWE_207ck>2j_{;=2u-8R0Rm9P!niYf zgG=;xNnBTPXce)nxA1tXIU__qodoxy5NcSS2_T|R88VT&mhigfodNMNNk`xtQhM1j zs8B+n8g1*;4S#i)iKs|sp*f6-Ks$b28D~buqs1?fE z$ScV-PA-rWoCs*NidKzrSN-ANsRjGElwn-fkw2~cEnd5YCR zv$NcL{iK135ul*@j4%y*-S`(Mz}5NpdE<27X>ACo4VB*%WN~(@Sz0AKi%)--(THhP z`($}yWI^?-K5wJ?TQsA?IVy#4v4g_KOr&igoXdtfCQjdLI-PS;1*LS;@*is8wiSPW z2BAL9AzpNSyr%E>`VTvx7$_EeXzyU1!(1A(QG6cCg2*ncX*Bq2e~vMLsrLT--7}d`}=N2Cw)wbeiI*alc^9<%e+no z4V}H~bM+o^wVCt~*a_sObU$D^$?t%u{Ll#^cz<i#TwM*X7lMVFs$gTx%^kg;E0-IPc zJL}Y80sfE?P%G0lhgF7_Kz;tMmiHM!EjIKQ<`HnB-8xKOY`Rz6490%LcC(Mx)X&l_ zCR|{gB3@&t_kU}ejRuNtCsC?^%+J`kh_C!}*7`5j`3dA4qppv~S0nT+Ru3N%wjqnr zZ!QBMdp|#opvNG5q6W>nUuaDhMB45|CLmzAmqb zk;uWIn~?M3&%LP(c7v4VclE3GCulcR3c}4Z&XRjojhkhGa0%!HVU`LG9Qia2f}JK<{?kI!=;1*@Wie!}w+1%u@tTl2ePoxTTAnrQ5%{GL zys~(y1Tqozf@K-R$IB+q*{*lcV1cgdbn56SLVQiHj0pI0Qkn7Aj&u&YIv`oe$BygO z)LiBNLwCSL36?60Lo&SBjNE+EDh}$|76Dv74;50@>shlc)h%q2W`L~9`do*Q?;=1?5wf3ANsY1SFBcwoJT?IoUDcG(DrW# z|8CFxeFK76mDNb@{4W6-S+@$tekhjldNot4@iJ>k z65IgMmATHm^s_(c`I?dD{QzPH!+G#Q6rUVG%%o+hW>;EKGwB*ixT18ME$2Bjk6#|m ziqB~(qd{hyghUY~23Uznxa8IPY;mR6d|#}vz&n6rZ)3qXLTB1I^z#w?+zj3=xbY^~ zC@+rK8F_tLEP(zmSB6J6A9nCt#C$mI?vE6brC8d48nl}1mtOh*W&t(nU{m%olHc-b zw9gw{QRtwq*LOc>6Do5^t2gRo6F=IkhYddb8Maa(rR_WBkgEGP(GQ;HZ{@ncV@rk3 zINrUl8S;&6D&I)*U$%d2ePnM+8 zt~pU(gRrmilOJ+cT_VnG>0!{$(Yn5o7lr%g58iz}s%&74Z z>{@pgsWKUlm3Qn1Xf62!9P#9$rnM9y)lt!!g0mrg7%4@DT~vB!C+WZy;@vsco=d4X z6IJRd=8nE{ACsZE15lT ze9K#npm8R#4#?5bR*B}TlepRi6V0sEyT@|zsf`JPaY&L``D`F+_?&`oq+;2vyY7MLeU2;X z>FlEW_4=fospg9|@7z2WE<)*whSYrWuBPwA?5Bv*T;jYAPm!01Wcib?gjz^zFJr)t z^2hUypWpjl^WsHZg~!Tebi(FV{x#MjHs#cO{JC?$Ra)V{0 zpF?dOsa6tvRQa&!#h*-~s8O1pzPn!;c&u$})x&I!eXf^FzoT#5FcWI6VJ)r7XbsHAQMQ` zbFPfoZ|~}IeY`?$W*ql==_$5r90hpQTBT=HH63Xs_(qLf(X80qR$2b~jn_^rD#2AL6#SBDIiwfaIDZpg z)uByVZPg*KOtfdvPb3e{NIR;)I5_(HnrIalG)WC)9>YjEV$TkGPn0NMzWs{Bj-00| zdi`DEiuIs8?+MB8CvJC;EpB31ZPUlHgvSv|0=d!*)l7}x1xG$|m$iV=pzx+wYl%(a z9kPM04!YJ{cnuszb?W`Hgrf21QBC0_VA}u+Lf5EEPd25sYb5kOz-Ci`5xGg+E1Ka3 z0q0B*(}sDP!VzO3^i%s{85Noe zX9U_QSy`&d!MhGDH+q9$>-Zkn0RHjL$4xiz$T=(T=#0h=>fI67bG#J7zcW0Uv1Y=#*xKF6!|(n;Ge5QL$ErnEUASuzv2eGmKJj zy<8s{`1!oyg!~|?CbtrCRbk@I-+$edUcz=!K}rxc9AwwSm1dy+9dC3hvAv_9VNv!6 zr{6o7@AH;|*(&^Gykv7|h#Cl({92=ZK!lsX?^;8<-m!>J2f~?_$od zO67$4K-#T-?L8{J{?hiC`;X7!8{IdktCcaTf9JX;5#kkFrUChRCzO0z0Y_pnx8k+llHKZLaV_3(% zW;)ukrrWRY_bD^8puWD&czYE5nO#rZudEvA~EDt85%vYlaZDTTxXr$;<>PDZOzoJj2p4JXsfk(tNo zI8w;;!HOi%Si!_!m%LO3wIzcGY=rLfik?Gv!cuhwG52UfJh~5BM6LH;JSV(rb(K5G zRbvqJZ_3MhL|>JmlGtUZvOes&xdTHt(OE>3aT8q?oWGAD&N z?Lwxc?Nbo_U8k_$Gz=Pi#X&el6KugKWoYZT>r7L_Sj~!vj|xKPJ^3A(hA0$g`pi#y(Q6y*oQ3OiYl_5f@((6wC%=UduT1>yV~Tj$V#x%QG}WXZtnk?HN+oX$YPaO9YST*f5xq6>ktL=#6UN=N zUc})DFBNt(&r@nlrB4%<<%AQnihXs$^gAW5?8D>Hl{)ka1TU5wGiFR&&!xf@R-QGS)oG)BLub@U%mRrD{B6u(OFG(KOhN46z)IHQ{ zh+{9eY=WugXsYKO^M2A+OmGcRJ%2#^hVH4=%(=)21;&TCs1) zXpF_x(#8Tzhy`*HL$t~`yu*Za;>-e0?V~YR6f)2-U#hFWX$m`sfGu>DhhL4vsQic%>S)9zYW*B} z3XTkK`RikSH3+fWvd^2A(}?5EH|dco!y&R52&<;>2k>MiU#&Vgz`uK7RDN@dvyi6C zLX^;auTh&yUfvL`nV?z<#ui7zE;^p;vzX&%mmTr_DQZ)*u=jDS!$>6!Z@?TgL2>txbuQa9M^nCSfsmG~pXzcKp&?f=B=P|ud( z1xH!y3~+imx-zhPe(U5-+KB$WC`L4|Syf^lIRauWN@C~`wW$nXFLwqqY(EO;od?Qf z{usZ?f*@v>=Mb%lmr*7df>0BgKOm`}3aqcm^I^;sD-%4w+{N9>GQe6XfApmuWs)1YB@CZpd+}M43ap!Dr=4@{oF}TsE&vG)m zP+G)qEM@a!f@VUNrOa$mj3_+#{O#`O*PYe1t5KZJdFie*L?D`cJ2kv9HF5g`=K(b5 zK|xmP7a7R;AP6cq-`I~d2q`nOF^_M)F?F^Z5AW&K7iG9k#1#JDuj*K6<=ljfy@z@h z=AEIhxq_((*VFo_z@R(%j#Kz$jwIwAj#G$HYv4oKWcO-+1vU)p5kcX|5<4= zBD*5A-ch9e`3ozy5-^Da5m8n3{8;DjfZ*rn`_LGJ)u!G_Ol~r(I7uBJs#9v(-}zg< z{HuD^5Bg9$0s0R|$S!=t%}fkoc-8+2xAm(BvxfhhZYxt!`m$bwhft(EnzzA9sJgGc zzZ%smGwc>LEjCRO@Rp0fL%)nWL_5!uQGd`5?#731nFF1mH-ja(m+^LAd#fTW zNIArFIBQxwaY=AnTeT)#t1vO~HPKO%hdQVB@SSdOb0*Zc(kJdj&bR7HxtDs6BLs?-;>EAFK6o$^V{7mfH7)=3r*Ff713x>sApg(hYjv_Jz62`2^vHD6 zo!;{LUk+(3Q*$)pV1rTA>eT8=E<-wHbeR^ista_F(F~3*QFQqpqyU#bJfgKzEU`1jW87rRkO4G5dtOMh$ySR7en3U+XC$sz;7HTjO> zwwGmPT<<^Q7?07T&R&Z#I|7fkfBu^VXu#RLgv?}KeTgbJ0DPs!Mv4J56&nRPHK0{o^}F{v5Mgo>7(;t~&Z-n(q>bQaSf(uLr~PrZmuT zM$oJeig=H*uNSB!i3xn)u0MmCXuVQ3gSr3Jj>a)Amb&=L%$1N*CVz&}t(-c!nRgZ5 z#9=vD332qji9Pv4;8@|HNyAy)e_c`J;+;eL7o2XX_wq0M{MXH;z(y^?&h13*7_ z%C@4Zcb(j`epC(4IGL{i5 zCp$J;bC$CC?`or7>GPl=L4OnY`Lm)}!~IK(fVI|R`2gx`!?ImIfbKH3s_^jc6nf=7 zMzHtMwRQ@?-k+OblC@B6>1AgbE_j6Cc7iP2}hFP8v#qg@jaD}$pJU`V!hb@ z#F0-`*UK`I_ANLh7tnu}YxJuFIQ~Eb`icK}ZRx}KGpkc6DyrV@(Vo@-r{NOlej%lQJXM5?|ziJ3Q#j)4u6P%T;r6WBAHw)n9wS zn~ue8a~!`Smkp+<>OS#UlPuZo5T&I^rT_CIH>g=;UAw^MZ4x;DsRe%ce9dxWq25}K zaGDpE$mjdfQB@N^JshB1OtaAK-gTW&fi(36qox9gS+~)^$Su>ZfOK5db+^JaJ_)ln z!q=5>R{A$eKi=822CQf~jA*t9kou3hJ*o~ducZyuI_RpEtjK{qL+3(7?$yFMLMCE8 zC-}2T(^X+XeDxx88e{{|*m~cAv-4xB4bJ_k7Btr)rJnvqE338EbQ zGt?#wIIZ+%sA?>U#?Sv+t#vujFw4-65%jA0*&5E=cwdDVzO-ppC?_d79|2D5LGM@+ zEP+<1sPwA>0|5#{x|qEIwP|~CZER|Zr50_Bnw~86$8wojs~ZAwsMnHyG?4$bUoudts$s!1vT4UQFU|LiDH7=`uA}4J4$GBV%ryKhtPFxzyG4E3i z0%4ankVTHR-3)&VxGk>Py#mAwzKWQ`^&sRrta9PAr z53A7e+YHK2H?hYVts972F{Sf#q=7<~>_Xucou8qK-joFcg=6PDS-Lj{xp2lx+T)7w zfXf*G+D9E5@R=DHCIUrfqAt(>qsJWiBQgcJ&y)jKI%+eJ7d3RULzZ~Q6M6o&w{8=m z#uP3G;m&WYhM!4_dlGy2Wb2K>KC4A=NexWk13Fpvv*1ZQXQJ>Z>fMzDBSGHNtg3Zd zKE#Vk39Eu~pk_uKfH-mWq;u@$>ukz;KUuPv_ExZh7+c(-$9~lgk}q`yAfqrZU~hnqQPBS(t5DXj=s~jpnt|8WBm=NSBmt zM#HsAc||c$Ut~hwFAY!9v(FL8aHZA0?JyKJCS_p0eboyCMx7(Y)qWDhZ+|Pra+{#M z=cxy37A0PcX=qI9fo210n~-8Sal>kyQv^d_Ad|t~@CXDkXf2cPjOevNvTPtN;>^j0 z@32wg==meAl%{%l0XweaU4tPSOfHGNOYe(0c8u(Ox71YxC=tn}a$7Qkv(JVZU@k)B zOE=5w#$9lBNwXl?1Zu`~*k*Ecihx45aX2n9Tk^6&^Xd38X-JAH&f61_4aD} zwC^0ssnPYE0eRh@`yf)Hgf6Y}?f(7|%QmI)tnaUe00H1lmU*?3k zt7S9Pv{dGH2H}6Ff>DJjGQfB2SKW5RE*s|~G+VJCp$Q*xo79i=IwJZJXs@QoLt->( z_3Xy@z#imnFm~3%?N zdjGsOSehlNbV!>`u__lmHaZ0sOzgONNx#r(rJ!^lA zCxkjnk1_UdtR|H>Fk=fm{c|79gPm(caYNK z4%+j3N@+}_X)u8jXBmCOMfL=H;W=eBv8n_y1_QVA{#jy@--=;SicpjZ2q-@I!&7nv zASXX97%_`k%7w{FBN6$?29##SxY4xaAJ;d1T1PZJK1APIOF{7I9XLz~JMC=DTX@wM z()qaNX*RjOWKb8L%`DWJA`Oq0TkM($# z{a7OZ0D%g7^I6JAZ+G~@vl1Z$biIG+N^GG>vPom@Lq9L;HGPh@VF$>|K363#eSlv% zw?TcZS}kiuvf<#kwqBq(S4IaM$Jt>hdgug4RVUyE5x!}xzomt_C|ixd<0MO$$0L4bjAuk-p@RNT#RsCM~j z*kPhby_+Y@olywoCpGToLV|lpSuFdn@vtCBX>5n;iSo1>F z;EBLi_VD>r+hl)`keRV9PE1QEkGfduCYgI}(7XszH_RqNQH%B|5!TkyH+-f5ah7E@nzH1{hhGTe7cwct0{6M6*HC?hM054kx#}8G4n^E6J5ro}=3U-Y9 zvDv(+P)(*+)n%hi1LRN`5cF9E8wNv#o})H8q>3+1RR;HP%ZZ#*bUyoJ*95`7t{`Kb zz_us*ZyA@Ds@@r9X!w{9Naf#6E^lQT^d)VCMD?lOgY^*46Wr+wSM^uwGarv~H*7(dQ7xc>is0^ONwVrE11PBjOn!kDcc(jNe?LmQ-NP6BeRjnxh9$ex+8(%BcfygdvNKrB zpcBwBrSu=2xPbZdy2eV@p-C2bl4G>9&(@cuZ`F<^nAJ$}SRNR* z$2=0&C9tg!h!53_*r6Fwzc;IckN=a`MJH>2MTQY>()ROxu4!-WQfGXitX7K24%DAa zp#-p^^Hu;nvd=9CZCbM0;Vj4J9h~Qv;sZ=KpG=P?7Hw@6Q9MB|5%P)IE(f7@TkdST( zatU?=aY>Srm{KY&EXUjLg6W2SiUzgZfTKpGXM zAPmJTS5I2NU*-Y;U07=Szs6zyAFtgX4Scc0FP!N!hj|Tgq@4yZU e)ZdR6ILJ}(Z}qXWixc2CAkyLrVpSrBf&UA>b9QO~ From 8df4ee2a5fd93893fce1f744f923014a19dd8a40 Mon Sep 17 00:00:00 2001 From: Max Gordon Date: Wed, 3 Jun 2026 22:59:41 +0200 Subject: [PATCH 6/6] Fixed copilot suggestions --- NEWS.md | 2 +- R/boxGrobs_s3_phaseLabel.R | 14 ++++++++------ tests/testthat/test-s3-api-design.R | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/NEWS.md b/NEWS.md index 58ca476..67465a2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ NEWS for the Gmisc package ## Changes for 3.4.0 -- Added `phaseLabel()` for flowchart box lists: a one-call-per-stage helper that adds a CONSORT-style phase label (e.g. *Allocation*, *Follow-up*, *Analysis*) centred between a stage's arms, sitting slightly above it and drawn on top. The label width adapts to the stage — spanning the central gap (plus a small corner overlap) for two arms, or the full stage width as a banner for three or more arms — and can be set explicitly via `width`. +- Added `phaseLabel()` for flowchart box lists: a one-call-per-stage helper that adds a CONSORT-style phase label (e.g. *Allocation*, *Follow-up*, *Analysis*) centred between a stage's arms, sitting slightly above it and drawn on top. The label width adapts to the stage — spanning the central gap (plus a small corner overlap) for two arms, or the full stage width as a banner for three or more arms — and can be set explicitly via `width`. It correctly handles nested arm lists (arms that are themselves lists of boxes) by resolving their merged bounding box. - Added `on_top` to `insert()` for flowchart box lists. A box inserted with `insert(..., on_top = TRUE)` is drawn on top of the other boxes and connections, regardless of its position in the list, and the marker is preserved through subsequent `move()`/`align()` operations. This is the lower-level overlay mechanism that `phaseLabel()` builds on. - `insert()` now resolves grouped (list) neighbours via their merged bounding box, so a box can be inserted between grouped stages without error. - Added a CONSORT phase-label example to the grid-based flowchart vignette showing `phaseLabel()` centred between randomisation arms. diff --git a/R/boxGrobs_s3_phaseLabel.R b/R/boxGrobs_s3_phaseLabel.R index 9a0c91b..5d25cbb 100644 --- a/R/boxGrobs_s3_phaseLabel.R +++ b/R/boxGrobs_s3_phaseLabel.R @@ -91,12 +91,14 @@ phaseLabel.Gmisc_list_of_boxes <- function(x, reference, label, ..., width = NUL target_w <- to_npc_w(width) } else if (n_arms == 2) { # Narrow label spanning the central gap plus a corner lap on each inner edge - x1 <- to_npc_x(coords(stage[[1]])$x) - x2 <- to_npc_x(coords(stage[[2]])$x) - left_arm <- if (x1 <= x2) stage[[1]] else stage[[2]] - right_arm <- if (x1 <= x2) stage[[2]] else stage[[1]] - gap <- to_npc_x(coords(right_arm)$left) - to_npc_x(coords(left_arm)$right) - arm_w <- to_npc_w(coords(left_arm)$width) + c1 <- prConvert2Coords(stage[[1]]) + c2 <- prConvert2Coords(stage[[2]]) + x1 <- to_npc_x(c1$x) + x2 <- to_npc_x(c2$x) + left_coords <- if (x1 <= x2) c1 else c2 + right_coords <- if (x1 <= x2) c2 else c1 + gap <- to_npc_x(right_coords$left) - to_npc_x(left_coords$right) + arm_w <- to_npc_w(left_coords$width) target_w <- max(gap + 2 * overlap * arm_w, auto_w) } else { # Banner spanning the full stage width diff --git a/tests/testthat/test-s3-api-design.R b/tests/testthat/test-s3-api-design.R index 0e9a224..d7a2274 100644 --- a/tests/testthat/test-s3-api-design.R +++ b/tests/testthat/test-s3-api-design.R @@ -315,6 +315,28 @@ test_that("S3 Mutations: phaseLabel width adapts to arm count and honours width" expect_silent(print(fc3)) }) +test_that("S3 Mutations: phaseLabel supports nested arm lists", { + pdf(NULL) + on.exit(dev.off()) + grid.newpage() + + # Flowchart with nested arms (a list of boxes as one arm) + fc <- flowchart( + rando = boxGrob("Randomised", x = .5, y = .8), + arms = list( + list(boxGrob("Arm 1a", x = .3, y = .4), + boxGrob("Arm 1b", x = .4, y = .4)), + boxGrob("Arm 2", x = .7, y = .4) + ) + ) + + # Should not error + expect_silent({ + fc_labeled <- phaseLabel(fc, "arms", "Allocation") + }) + expect_equal(names(fc_labeled), c("rando", "arms", "arms_label")) +}) + test_that("Complex chaining example", { # Mock components org_cohort <- boxGrob("Stockholm", x = .5, y = .9)