}: overrides for \verb{@family} titles. See the
\emph{rd} vignette for details: \code{vignette("rd", package = "roxygen2")}
}
}
\section{How to set}{
Either set in \code{DESCRIPTION}:\preformatted{Roxygen: list(markdown = TRUE, load = "installed")
}
Or if longer, you can put in \verb{/man/roxygen/meta.R}:\preformatted{list(
markdown = TRUE,
load = "installed"
)
}
}
\keyword{internal}
roxygen2/man/load.Rd 0000644 0001762 0000144 00000003035 14047223751 014016 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/load.R
\name{load}
\alias{load}
\alias{load_pkgload}
\alias{load_installed}
\alias{load_source}
\title{Load package code}
\usage{
load_pkgload(path)
load_installed(path)
load_source(path)
}
\arguments{
\item{path}{Path to source package}
}
\description{
roxygen2 is a dynamic documentation system, which means it works with the
objects inside your package, not just the source code used to create them.
These functions offer various ways of loading your package to suit various
constraints:
\itemize{
\item \code{load_pkgload()} uses \code{pkgload::load_all()} to simulate package loading
as closely as we know how. It offers high fidelity handling of code that
uses S4, but requires that the package be compiled.
\item \code{load_source()} simulates package loading by attaching packages listed in
\code{Depends} and \code{Imports}, then sources all files in the \verb{R/} directory.
This was the default strategy used in roxygen2 6.0.0 and earlier;
it's primary advantage is that it does not need compilation.
\item \code{load_installed()} uses the installed version of the package. Use this
strategy if you have installed a development version of the package
already. This is the highest fidelity strategy, but requires work
outside of roxygen2.
}
You can change the default strategy for your function with roxygen2 \code{load}
option. Override the default off \code{pkgload} to use the \code{source} or
\code{installed} strategies:\preformatted{Roxygen: list(load = "source")
}
}
roxygen2/man/tag_parsers.Rd 0000644 0001762 0000144 00000002740 13545643447 015425 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/tag-parser.R
\name{tag_parsers}
\alias{tag_parsers}
\alias{tag_value}
\alias{tag_inherit}
\alias{tag_name}
\alias{tag_two_part}
\alias{tag_name_description}
\alias{tag_words}
\alias{tag_words_line}
\alias{tag_toggle}
\alias{tag_code}
\alias{tag_examples}
\alias{tag_markdown}
\alias{tag_markdown_with_sections}
\title{Parse tags}
\usage{
tag_value(x)
tag_inherit(x)
tag_name(x)
tag_two_part(x, first, second, required = TRUE, markdown = TRUE)
tag_name_description(x)
tag_words(x, min = 0, max = Inf)
tag_words_line(x)
tag_toggle(x)
tag_code(x)
tag_examples(x)
tag_markdown(x)
tag_markdown_with_sections(x)
}
\arguments{
\item{x}{A \link{roxy_tag} object to parse}
\item{first, second}{Name of first and second parts of two part tags}
\item{required}{Is the second part required (TRUE) or can it be blank
(FALSE)?}
\item{markdown}{Should the second part be parsed as markdown?}
\item{min, max}{Minimum and maximum number of words}
}
\value{
A \link{roxy_tag} object with the \code{val} field set to the parsed value.
}
\description{
These functions parse the \code{raw} tag value, convert a string into a richer R
object and storing it in \code{val}, or provide an informative warning and
returning \code{NULL}.
}
\section{New tag}{
To create a new \verb{@mytag} define \code{roxy_tag_parse.roxy_tag_mytag()}. It should
either call one of the functions here, or directly set \code{x$val}.
}
\keyword{internal}
roxygen2/man/RoxyTopic.Rd 0000644 0001762 0000144 00000017526 13631761325 015053 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/topic.R
\name{RoxyTopic}
\alias{RoxyTopic}
\title{A \code{RoxyTopic} is an ordered collection of unique rd_sections}
\description{
A \code{RoxyTopic} object corresponds to a generated \code{.Rd} file.
}
\keyword{internal}
\section{Public fields}{
\if{html}{\out{}}
\describe{
\item{\code{sections}}{Named list of sections. Each item must be an
\code{\link[=rd_section]{rd_section()}} object.}
\item{\code{filename}}{Path to the \code{.Rd} file to generate.}
}
\if{html}{\out{
}}
}
\section{Methods}{
\subsection{Public methods}{
\itemize{
\item \href{#method-format}{\code{RoxyTopic$format()}}
\item \href{#method-is_valid}{\code{RoxyTopic$is_valid()}}
\item \href{#method-has_section}{\code{RoxyTopic$has_section()}}
\item \href{#method-get_section}{\code{RoxyTopic$get_section()}}
\item \href{#method-get_value}{\code{RoxyTopic$get_value()}}
\item \href{#method-get_rd}{\code{RoxyTopic$get_rd()}}
\item \href{#method-get_name}{\code{RoxyTopic$get_name()}}
\item \href{#method-inherits_from}{\code{RoxyTopic$inherits_from()}}
\item \href{#method-inherits_section_from}{\code{RoxyTopic$inherits_section_from()}}
\item \href{#method-add}{\code{RoxyTopic$add()}}
\item \href{#method-add_section}{\code{RoxyTopic$add_section()}}
\item \href{#method-clone}{\code{RoxyTopic$clone()}}
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-format}{}}}
\subsection{Method \code{format()}}{
Format the \code{.Rd} file. It considers the sections in
particular order, even though Rd tools will reorder them again.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$format(...)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{...}}{Passed to the \code{format()} methods of the \code{\link[=rd_section]{rd_section()}}
objects, the sections.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
Character string.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-is_valid}{}}}
\subsection{Method \code{is_valid()}}{
Check if an \code{.Rd} file is valid
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$is_valid()}\if{html}{\out{
}}
}
\subsection{Returns}{
Logical flag, \code{TRUE} for valid \code{.Rd} files
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-has_section}{}}}
\subsection{Method \code{has_section()}}{
Check if an \code{.Rd} file has a certain section.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$has_section(type)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{type}}{Section type, a character scalar.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
Logical flag.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-get_section}{}}}
\subsection{Method \code{get_section()}}{
Query a section.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$get_section(type)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{type}}{Section type, a character scalar.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
The \link{rd_section} object representing the section, or \code{NULL}
if the topic has no such section.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-get_value}{}}}
\subsection{Method \code{get_value()}}{
Query the value of a section. This is the value of
the \link{rd_section} object.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$get_value(type)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{type}}{Section type, a character scalar.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
Value.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-get_rd}{}}}
\subsection{Method \code{get_rd()}}{
Get the Rd code of a section.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$get_rd(type)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{type}}{Section type, a character scalar.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
Character vector, one element per line.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-get_name}{}}}
\subsection{Method \code{get_name()}}{
Get the value of the \code{name} section. This is the name
of the Rd topic.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$get_name()}\if{html}{\out{
}}
}
\subsection{Returns}{
Character scalar.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-inherits_from}{}}}
\subsection{Method \code{inherits_from()}}{
Query the topics this topic inherits \code{type} from.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$inherits_from(type)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{type}}{Section type, a character scalar.}
}
\if{html}{\out{
}}
}
\subsection{Returns}{
A character vector of topic names.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-inherits_section_from}{}}}
\subsection{Method \code{inherits_section_from()}}{
Query the topics this topic inherits sections from.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$inherits_section_from()}\if{html}{\out{
}}
}
\subsection{Returns}{
A character vector of topic names.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-add}{}}}
\subsection{Method \code{add()}}{
Add one or more sections to the topic.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$add(x, overwrite = FALSE)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{x}}{Section(s) to add. It may be
another \code{RoxyTopic} object, all of its sections will be added;
or an \link{rd_section} object;
or a list of \link{rd_section} objects to add.}
\item{\code{overwrite}}{Whether to overwrite an existing section. If \code{FALSE}
then the two sections will be merged.}
}
\if{html}{\out{
}}
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-add_section}{}}}
\subsection{Method \code{add_section()}}{
Add a section.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$add_section(section, overwrite = FALSE)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{section}}{\link{rd_section} object to add.}
\item{\code{overwrite}}{Whether to overwrite an existing section. If \code{FALSE}
then the two sections will be merged.}
}
\if{html}{\out{
}}
}
\subsection{Details}{
Ensures that each type of name (as given by its name), only appears
once in \code{self$sections}. This method if for internal use only.
}
}
\if{html}{\out{
}}
\if{html}{\out{}}
\if{latex}{\out{\hypertarget{method-clone}{}}}
\subsection{Method \code{clone()}}{
The objects of this class are cloneable with this method.
\subsection{Usage}{
\if{html}{\out{}}\preformatted{RoxyTopic$clone(deep = FALSE)}\if{html}{\out{
}}
}
\subsection{Arguments}{
\if{html}{\out{}}
\describe{
\item{\code{deep}}{Whether to make a deep clone.}
}
\if{html}{\out{
}}
}
}
}
roxygen2/man/update_collate.Rd 0000644 0001762 0000144 00000003305 13541216367 016067 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/collate.R
\name{update_collate}
\alias{update_collate}
\alias{@include}
\title{Update Collate field in DESCRIPTION}
\usage{
update_collate(base_path)
}
\arguments{
\item{base_path}{Path to package directory.}
}
\description{
By default, R loads files in alphabetical order. Unfortunately not every
alphabet puts letters in the same order, so you can't rely on alphabetic
ordering if you need one file loaded before another. (This usually doesn't
matter but is important for S4, where you need to make sure that classes are
loaded before subclasses and generics are defined before methods.).
You can override the default alphabetical ordering with \verb{@include before.R},
which specify that \code{before.R} must be loaded before the current file.
Generally, you will not need to run this function yourself; it should be
run automatically by any package that needs to load your R files in
collation order.
}
\section{Collate}{
This is not a roclet because roclets need the values of objects in a package,
and those values can not be generated unless you've sourced the files,
and you can't source the files unless you know the correct order.
If there are no \verb{@include} tags, roxygen2 will leave collate as is.
This makes it easier to use roxygen2 with an existing collate directive,
but if you remove all your \verb{@include} tags, you'll need to also
manually delete the collate field.
}
\examples{
#' If `example-a.R', `example-b.R' and `example-c.R' live in R/
#' and we're in `example-a.R`, then the following @include statement
#' ensures that example-b and example-c are sourced before example-a.
#' @include example-b.R example-c.R
NULL
}
roxygen2/man/rd_roclet.Rd 0000644 0001762 0000144 00000001672 14115762720 015061 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/rd.R
\name{rd_roclet}
\alias{rd_roclet}
\title{Roclet: make Rd files.}
\usage{
rd_roclet()
}
\description{
This roclet is the workhorse of \code{roxygen}, producing the \code{.Rd} files that
R uses to document that functions, datasets, packages, classes, and
other objects.
See \code{vignette("rd")} for details.
Generally you will not call this function directly
but will instead use roxygenise() specifying the rd roclet
}
\examples{
#' The length of a string (in characters)
#'
#' @param x String input character vector
#' @return An integer vector the same length as `x`.
#' `NA` strings have `NA` length.
#' @seealso [nchar()]
#' @export
#' @examples
#' str_length(letters)
#' str_length(c("i", "like", "programming", NA))
str_length <- function(x) {
}
}
\seealso{
Other roclets:
\code{\link{namespace_roclet}()},
\code{\link{vignette_roclet}()}
}
\concept{roclets}
roxygen2/man/namespace_roclet.Rd 0000644 0001762 0000144 00000002220 13560327422 016375 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/namespace.R
\name{namespace_roclet}
\alias{namespace_roclet}
\title{Roclet: make \code{NAMESPACE}}
\usage{
namespace_roclet()
}
\description{
This roclet automates the production of a \code{NAMESPACE} file, which controls
the functions imported and exported by your package, as described in
\href{https://cran.r-project.org/doc/manuals/r-release/R-exts.html}{Writing R extensions}.
The \code{NAMESPACE} is generated in two passes: the first generates only
import directives (because this can be computed without evaluating package
code), and the second generates everything (after the package has been
loaded).
See \code{vignette("namespace")} for details.
}
\examples{
# The most common namespace tag is @export, which declares that a function
# is part of the external interface of your package
#' @export
foofy <- function(x, y, z) {
}
# You'll also often find global imports living in a file called
# R/{package}-package.R.
#' @importFrom magrittr \%>\%
#' @import rlang
NULL
}
\seealso{
Other roclets:
\code{\link{rd_roclet}()},
\code{\link{vignette_roclet}()}
}
\concept{roclets}
roxygen2/man/roxy_block.Rd 0000644 0001762 0000144 00000003256 13675431020 015253 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/block.R
\name{roxy_block}
\alias{roxy_block}
\alias{block_has_tags}
\alias{block_get_tags}
\alias{block_get_tag}
\alias{block_get_tag_value}
\title{Blocks}
\usage{
roxy_block(tags, file, line, call, object = NULL)
block_has_tags(block, tags)
block_get_tags(block, tags)
block_get_tag(block, tag)
block_get_tag_value(block, tag)
}
\arguments{
\item{tags}{A list of \link{roxy_tag}s.}
\item{file, line}{Location of the \code{call} (i.e. the line after the last
line of the block).}
\item{call}{Expression associated with block.}
\item{object}{Optionally, the object associated with the block, found
by inspecting/evaluating \code{call}.}
\item{block}{A \code{roxy_block} to manipulate.}
\item{tag, tags}{Either a single tag name, or a character vector of tag names.}
}
\description{
A \code{roxy_block} represents a single roxygen2 block.
The \verb{block_*} functions provide a few helpers for common operations:
\itemize{
\item \code{block_has_tag(blocks, tags)}: does \code{block} contain any of these \code{tags}?
\item \code{block_get_tags(block, tags)}: get all instances of \code{tags}
\item \code{block_get_tag(block, tag)}: get single tag. Returns \code{NULL} if 0,
throws warning if more than 1.
\item \code{block_get_tag_value(block, tag)}: gets \code{val} field from single tag.
}
}
\examples{
# The easiest way to see the structure of a roxy_block is to create one
# using parse_text:
text <- "
#' This is a title
#'
#' @param x,y A number
#' @export
f <- function(x, y) x + y
"
# parse_text() returns a list of blocks, so I extract the first
block <- parse_text(text)[[1]]
block
}
\keyword{internal}
roxygen2/man/roxygenize.Rd 0000644 0001762 0000144 00000003237 13545643447 015320 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/roxygenize.R
\name{roxygenize}
\alias{roxygenize}
\alias{roxygenise}
\title{Process a package with the Rd, namespace and collate roclets.}
\usage{
roxygenize(package.dir = ".", roclets = NULL, load_code = NULL, clean = FALSE)
roxygenise(package.dir = ".", roclets = NULL, load_code = NULL, clean = FALSE)
}
\arguments{
\item{package.dir}{Location of package top level directory. Default is
working directory.}
\item{roclets}{Character vector of roclet names to use with package.
The default, \code{NULL}, uses the roxygen \code{roclets} option,
which defaults to \code{c("collate", "namespace", "rd")}.}
\item{load_code}{A function used to load all the R code in the package
directory. The default, \code{NULL}, uses the strategy defined by
the \code{load} roxygen option, which defaults to \code{\link[=load_pkgload]{load_pkgload()}}.
See \link{load} for more details.}
\item{clean}{If \code{TRUE}, roxygen will delete all files previously
created by roxygen before running each roclet.}
}
\value{
\code{NULL}
}
\description{
This is the workhorse function that uses roclets, the built-in document
transformation functions, to build all documentation for a package. See
the documentation for the individual roclets, \code{\link[=rd_roclet]{rd_roclet()}},
\code{\link[=namespace_roclet]{namespace_roclet()}}, and for \code{\link[=update_collate]{update_collate()}},
for more details.
}
\details{
Note that roxygen2 is a dynamic documentation system: it works by
inspecting loaded objects in the package. This means that you must
be able to load the package in order to document it: see \link{load} for
details.
}
roxygen2/man/roxygen2-package.Rd 0000644 0001762 0000144 00000003147 13631764732 016260 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/roxygen.R
\docType{package}
\name{roxygen2-package}
\alias{roxygen2}
\alias{roxygen2-package}
\title{roxygen2: In-Line Documentation for R}
\description{
\if{html}{\figure{logo.png}{options: align='right' alt='logo' width='120'}}
Generate your Rd documentation, 'NAMESPACE' file,
and collation field using specially formatted comments. Writing
documentation in-line with code makes it easier to keep your
documentation up-to-date as your requirements change. 'Roxygen2' is
inspired by the 'Doxygen' system for C++.
}
\details{
See \code{vignette("roxygen2", package = "roxygen2")} for an overview
of the package, \code{vignette("rd", package = "roxygen2")} for generating
documentation, and \code{vignette("namespace", package = "roxygen2")} for
generating the namespace specification.
If you have existing Rd files, check out the \code{Rd2roxygen} package
for a convenient way of converting Rd files to roxygen comments.
}
\seealso{
Useful links:
\itemize{
\item \url{https://roxygen2.r-lib.org/}
\item \url{https://github.com/r-lib/roxygen2}
\item Report bugs at \url{https://github.com/r-lib/roxygen2/issues}
}
}
\author{
\strong{Maintainer}: Hadley Wickham \email{hadley@rstudio.com} (\href{https://orcid.org/0000-0003-4757-117X}{ORCID}) [copyright holder]
Authors:
\itemize{
\item Peter Danenberg \email{pcd@roxygen.org} [copyright holder]
\item Gábor Csárdi \email{csardi.gabor@gmail.com}
\item Manuel Eugster [copyright holder]
}
Other contributors:
\itemize{
\item RStudio [copyright holder]
}
}
\keyword{internal}
roxygen2/man/roxygen/ 0000755 0001762 0000144 00000000000 14115763565 014312 5 ustar ligges users roxygen2/man/roxygen/templates/ 0000755 0001762 0000144 00000000000 13544733176 016310 5 ustar ligges users roxygen2/man/roxygen/templates/rd.R 0000644 0001762 0000144 00000000336 13540202201 017012 0 ustar ligges users #' @description
#' This roclet is the workhorse of `roxygen`, producing the `.Rd` files that
#' R uses to document that functions, datasets, packages, classes, and
#' other objects.
#'
#' See `vignette("rd")` for details.
roxygen2/man/escape_examples.Rd 0000644 0001762 0000144 00000002137 13567327052 016244 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/rd-examples.R
\name{escape_examples}
\alias{escape_examples}
\title{Escape examples}
\usage{
escape_examples(x)
}
\description{
This documentation topic is used primarily for testing and to record
our understanding of the \verb{\\example\{\}} escaping rules.
See \url{https://developer.r-project.org/parseRd.pdf} for the details provided
by R core.
}
\examples{
# In examples we automatically escape Rd comments (\%):
100 \%\% 30
# even if they are in strings
"50\%"
# and \\ and \v inside of strings and symbols
"\\v" # vertical tab
"\\\\"
# but not comments: \l \v
# other string escapes are left as is
"\""
"\n"
# Otherwise, backslashes and parentheses are left as is. This
# means that you need to escape unbalanced parentheses, which typically only
# occur in \dontshow{}:
\dontshow{if (FALSE) \{ }
print("Hello")
\dontshow{ \} }
# You also need to escape backslashes in infix operators and comments
# (this is generally rare)
`\%\\\\\%` <- function(x, y) x + y
10 \%\\\% 20
# \\\\ (renders as two backslashes)
}
\keyword{internal}
roxygen2/man/roclet_find.Rd 0000644 0001762 0000144 00000001400 13541216367 015364 0 ustar ligges users % Generated by roxygen2: do not edit by hand
% Please edit documentation in R/roclet.R
\name{roclet_find}
\alias{roclet_find}
\title{Create a roclet from a string.}
\usage{
roclet_find(x)
}
\arguments{
\item{x}{Arbitrary R code evaluated in roxygen2 package.}
}
\description{
This provides a flexible way of specifying a roclet in a string.
}
\examples{
# rd, namespace, and vignette work for backward compatibility
roclet_find("rd")
# But generally you should specify the name of a function that
# returns a roclet
roclet_find("rd_roclet")
# If it lives in another package, you'll need to use ::
roclet_find("roxygen2::rd_roclet")
# If it takes parameters (which no roclet does currently), you'll need
# to call the function
roclet_find("roxygen2::rd_roclet()")
}
roxygen2/man/figures/ 0000755 0001762 0000144 00000000000 14115762717 014261 5 ustar ligges users roxygen2/man/figures/logo.png 0000644 0001762 0000144 00000050357 13523072405 015727 0 ustar ligges users PNG
IHDR x b]e sRGB pHYs iTXtXML:com.adobe.xmp
Adobe ImageReady
1
).= @ IDATx^EOʦͦ i*R|UTTTtD^EX_QAD:zMH!=!uMwf>ylHHݹ̜993sνæ65Q^%62sC$ V$v?T dsF.#ܝLlE6M!K)I o+{
dɳ1 /#s% Ud_M(6d~@OF#ڳ]j
yv_= n )"栝(|rB-ſ@ T}d"y\3ԭi^kW-(D}ł;.W@7l'WA3O/[-Av݆Ƈ5x{)6vϴkR!DH3PWjQDPY6ـ>AηdGY'+U5o5jg\nmH[ݰѦ@{QލSf
O?f8
vkeOXxB+co.Zewu]ۅfmپ=[ZF[M¹cE3{vrr6rX%e$k$WE/Q}rᇩbfIp둚\*EYb[FؕceX̺uqޠO'vqwN+;v
Ks="WX\fXƤ
NaEH|vBYvV.C*Ms[\ܼcٱU3Z^vPaן9:oi4]#oZ{$3ڹSKR}bx j(fH.h7/4ˮڬۻƮE٘{3&Uk!NzAF:+l[8x^ b
Ala@ܻiu%xϳF(S?is