From dd015bce1981f16e14b5dca9a5f040951353322e Mon Sep 17 00:00:00 2001 From: Eva Rifa Date: Fri, 17 Nov 2023 16:54:00 +0100 Subject: [PATCH 1/5] Add VizForecastVignette from CSTools --- vignettes/MostLikelyTercile_vignette.Rmd | 251 +++++++++++++++++++++ vignettes/MultiModelSkill_vignette.Rmd | 264 +++++++++++++++++++++++ vignettes/VizForecastPDF.Rmd | 87 ++++++++ 3 files changed, 602 insertions(+) create mode 100644 vignettes/MostLikelyTercile_vignette.Rmd create mode 100644 vignettes/MultiModelSkill_vignette.Rmd create mode 100644 vignettes/VizForecastPDF.Rmd diff --git a/vignettes/MostLikelyTercile_vignette.Rmd b/vignettes/MostLikelyTercile_vignette.Rmd new file mode 100644 index 0000000..66d9029 --- /dev/null +++ b/vignettes/MostLikelyTercile_vignette.Rmd @@ -0,0 +1,251 @@ +--- +author: "Louis-Philippe Caron and Núria Pérez-Zanón" +date: "`r Sys.Date()`" +revisor: "Eva Rifà" +revision date: "October 2023" +output: rmarkdown::html_vignette +vignette: > + %\VignetteEngine{knitr::knitr} + %\VignetteIndexEntry{Most Likely Terciles} + %\usepackage[utf8]{inputenc} +--- + + +Computing and displaying the most likely tercile of a seasonal forecast +======================== + +In this example, we will use CSTools to visualize a probabilistic forecast (most likely tercile) of summer near-surface temperature produced by ECMWF System5. The (re-)forecasts used are initilized on May 1st for the period 1981-2020. The target for the forecast is June-August (JJA) 2020. The forecast data are taken from the Copernicus Climate Data Store. + + +### 1. Preliminary setup + + +To run this vignette, the following R packages should be installed and loaded: + + +```r +library(CSTools) +library(s2dv) +library(zeallot) +library(easyVerification) +library(ClimProjDiags) +``` + + +### 2. Loading the data + + +We first define a few parameters. We start by defining the region we are interested in. In this example, we focus on the Mediterranean region. + + +```r +lat_min = 25 +lat_max = 52 +lon_min = -10 +lon_max = 40 +``` + +If the boundaries are not specified, the domain will be the entire globe. + +We also define the start dates for the hindcasts/forecast (in this case, May 1st 1981-2020) and create a sequence of dates that will be required by the load function. + + +```r +ini <- 1981 +fin <- 2020 +numyears <- fin - ini +1 +mth = '05' +start <- as.Date(paste(ini, mth, "01", sep = ""), "%Y%m%d") +end <- as.Date(paste(fin, mth, "01", sep = ""), "%Y%m%d") +dateseq <- format(seq(start, end, by = "year"), "%Y%m%d") +``` + +We then define the target months for the forecast (i.e. JJA). The months are given relative to the start date (May in this case) considering that monthly simulations are being analyzed. + + +```r +mon1 <- 2 +monf <- 4 +``` + +Finally, we define the forecast system, an observational reference, the variable of interest and the common grid onto which to interpolate. + + +```r +clim_var = 'tas' +``` + +Finally, the data are loaded using `CST_Start`: + +```r +repos_exp <- paste0('/esarchive/exp/ecmwf/system5c3s/monthly_mean/', + '$var$_f6h/$var$_$sdate$.nc') +exp <- CST_Start(dataset = repos_exp, + var = clim_var, + member = startR::indices(1:10), + sdate = dateseq, + ftime = startR::indices(2:4), + lat = startR::values(list(lat_min, lat_max)), + lat_reorder = startR::Sort(decreasing = TRUE), + lon = startR::values(list(lon_min, lon_max)), + lon_reorder = startR::CircularSort(0, 360), + synonims = list(lon = c('lon', 'longitude'), + lat = c('lat', 'latitude'), + member = c('member', 'ensemble'), + ftime = c('ftime', 'time')), + transform = startR::CDORemapper, + transform_extra_cells = 2, + transform_params = list(grid = 'r256x128', + method = 'bilinear'), + transform_vars = c('lat', 'lon'), + return_vars = list(lat = NULL, + lon = NULL, ftime = 'sdate'), + retrieve = TRUE) + +# Give the correct time values (identical as the netCDF files) +dates_obs <- c(paste0(ini:fin, '-06-30 18:00:00'), + paste0(ini:fin, '-07-31 18:00:00'), + paste0(ini:fin, '-08-31 18:00:00')) +dates_obs <- as.POSIXct(dates_obs, tz = "UTC") +dim(dates_obs) <- c(sdate = 40, ftime = 3) + +date_arr <- array(format(dates_obs, '%Y%m'), dim = c(sdate = 40, ftime = 3)) + +repos_obs <- paste0('/esarchive/recon/ecmwf/erainterim/monthly_mean/', + '$var$/$var$_$date$.nc') + +obs <- CST_Start(dataset = repos_obs, + var = clim_var, + date = date_arr, + split_multiselected_dims = TRUE, + lat = startR::values(list(lat_min, lat_max)), + lat_reorder = startR::Sort(decreasing = TRUE), + lon = startR::values(list(lon_min, lon_max)), + lon_reorder = startR::CircularSort(0, 360), + synonims = list(lon = c('lon', 'longitude'), + lat = c('lat', 'latitude'), + ftime = c('ftime', 'time')), + transform = startR::CDORemapper, + transform_extra_cells = 2, + transform_params = list(grid = 'r256x128', + method = 'bilinear'), + transform_vars = c('lat', 'lon'), + return_vars = list(lon = NULL, + lat = NULL, + ftime = 'date'), + retrieve = TRUE) +``` + +Loading the data using CST_Start returns two objects, one for the experimental data and another one for the observe data, with the same elements and compatible dimensions of the data element: + + +```r +> dim(exp$data) +dataset var member sdate ftime lat lon + 1 1 10 40 3 19 36 +> dim(obs$data) +dataset var sdate ftime lat lon + 1 1 40 3 19 36 +``` + + +The latitude and longitude are saved for later use: + + +```r +Lat <- exp$coords$lat +Lon <- exp$coords$lon +``` + +### 3. Computing probabilities + +First, anomalies of forecast and observations are computed using cross-validation on individual members: + +``` +c(Ano_Exp, Ano_Obs) %<-% CST_Anomaly(exp = exp, obs = obs, cross = TRUE, memb = TRUE) +``` + +The seasonal mean of both forecasts and observations are computed by averaging over the ftime dimension. + +```r +Ano_Exp$data <- MeanDims(Ano_Exp$data, 'ftime') +Ano_Obs$data <- MeanDims(Ano_Obs$data, 'ftime') +``` + +Finally, the probabilities of each tercile are computed by evaluating which tercile is forecasted by each ensemble member for the latest forecast (2020) using the function `ProbBins` in **s2dv** and then averaging the results along the member dimension to obtain the probability of each tercile. + +```r +PB <- ProbBins(Ano_Exp$data, fcyr = numyears, thr = c(1/3, 2/3), compPeriod = "Without fcyr") +prob_map <- MeanDims(PB, c('sdate', 'member', 'dataset', 'var')) +``` + +### 4. Visualization with PlotMostLikelyQuantileMap + + +We then plot the most likely quantile using the **CSTools** function `PlotMostLikelyQuantileMap`. + + +``` +PlotMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, + coast_width = 1.5, legend_scale = 0.5, + toptitle = paste0('Most likely tercile - ', clim_var, + ' - ECMWF System5 - JJA 2020'), + width = 10, height = 8) +``` + +![](./Figures/MostLikelyTercile_fig1.png) + +The forecast calls for above average temperature over most of the Mediterranean basin and near average temperature for some smaller regions as well. But can this forecast be trusted? + +For this, it is useful evaluate the skill of the system at forecasting near surface temperature over the period for which hindcasts are available. We can then use this information to mask the regions for which the system doesn't have skill. + +In order to do this, we will first calculate the ranked probability skill score (RPSS) and then exclude/mask from the forecasts the regions for which the RPSS is smaller or equal to 0 (no improvement with respect to climatology). + + +### 5. Computing Skill Score + + +First, we evaluate and plot the RPSS. Therefore, we use `RPSS` metric included in CST_MultiMetric from function from **easyVerification** package which requires to remove missing values from latest start dates: + + +```r +Ano_Exp <- CST_Subset(Ano_Exp, along = 'sdate', indices = 1:38) +Ano_Obs <- CST_Subset(Ano_Obs, along = 'sdate', indices = 1:38) +Ano_Obs <- CST_InsertDim(Ano_Obs, posdim = 3, lendim = 1, name = "member") + +RPSS <- CST_MultiMetric(Ano_Exp, Ano_Obs, metric = 'rpss', multimodel = FALSE) + +PlotEquiMap(RPSS$data[[1]], lat = Lat, lon = Lon, brks = seq(-1, 1, by = 0.1), + filled.continents = FALSE) +``` + +![](./Figures/MostLikelyTercile_fig2.png) + + +Areas displayed in red (RPSS > 0) are areas for which the forecast system shows skill above climatology whereas areas in blue (such as a large part of the Iberian Peninsula) are areas for which the model does not. We thus want to mask the areas currently displayed in blue. + +### 6. Simultaneous visualization of probabilities and skill scores + +From the RPSS, we create a mask: regions with RPSS <= 0 will be masked. + + +```r +mask_rpss <- ifelse((RPSS$data$skillscore <= 0) | is.na(RPSS$data$skillscore), 1, 0) +``` + +Finally, we plot the latest forecast, as in the previous step, but add the mask we just created. + + +```r +PlotMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, coast_width = 1.5, + legend_scale = 0.5, mask = mask_rpss[ , , ,], + toptitle = paste('Most likely tercile -', clim_var, + '- ECMWF System5 - JJA 2020'), + width = 10, height = 8) +``` + +![](./Figures/MostLikelyTercile_fig3.png) + +We obtain the same figure as before, but this time, we only display the areas for which the model has skill at forecasting the right tercile. The gray regions represents areas where the system doesn't have sufficient skill over the verification period. + + diff --git a/vignettes/MultiModelSkill_vignette.Rmd b/vignettes/MultiModelSkill_vignette.Rmd new file mode 100644 index 0000000..145c040 --- /dev/null +++ b/vignettes/MultiModelSkill_vignette.Rmd @@ -0,0 +1,264 @@ +--- +author: "Nuria Perez" +date: "`r Sys.Date()`" +revisor: "Eva Rifà" +revision date: "October 2023" +output: rmarkdown::html_vignette +vignette: > + %\VignetteEngine{knitr::knitr} + %\VignetteIndexEntry{Multi-model Skill Assessment} + %\usepackage[utf8]{inputenc} +--- + +Multi-model Skill Assessment +----------------------------------------- + +**reference**: Mishra, N., Prodhomme, C., & Guemas, V. (2018). Multi-Model Skill Assessment of Seasonal Temperature and Precipitation Forecasts over Europe, 29-31. + + +The R package s2dv should be loaded by running: + +```r +library(s2dv) +library(zeallot) +``` + +Library *CSTools*, should be installed from CRAN and loaded: + + +```r +install.packages("CSTools") +library(CSTools) +``` + +### 1.- Load data + +In this case, the seasonal temperature forecasted, initialized in November, will be used to assess the EUROSIP multi-model seasonal forecasting system consists of a number of independent coupled seasonal forecasting systems integrated into a common framework. From September 2012, the systems include those from ECMWF, the Met Office, Meteo-France and NCEP. + +The parameters defined are the initializating month and the variable: + + +```{r cars} +mth = '11' +clim_var = 'tas' +``` + + +The simulations available for these models are covering the period 1993-2012. So, the starting and ending dates can be defined by running the following lines: + + +```r +ini <- 1993 +fin <- 2012 +start <- as.Date(paste(ini, mth, "01", sep = ""), "%Y%m%d") +end <- as.Date(paste(fin, mth, "01", sep = ""), "%Y%m%d") +dateseq <- format(seq(start, end, by = "year"), "%Y%m") +``` + +The grid in which all data will be interpolated needs to be specified within the `CST_Start` call (256x128 grid). The observational dataset used in this example is the EraInterim. + +Using the `CST_Start` function, the data available in our data store can be loaded. The following lines, shows how this function can be used. However, the data is loaded from a previous saved `.RData` file: +Ask nuria.perez at bsc.es to achieve the data to run the recipe. + +```r +lonmin = -20 +lonmax = 70 +latmin = 25 +latmax = 75 +repos1 <- "/esarchive/exp/glosea5/glosea5c3s/monthly_mean/$var$_f6h/$var$_$sdate$.nc" +repos2 <- "/esarchive/exp/ecmwf/system4_m1/monthly_mean/$var$_f6h/$var$_$sdate$01.nc" +repos3 <- "/esarchive/exp/meteofrance/system5_m1/monthly_mean/$var$_f6h/$var$_$sdate$01.nc" + +exp <- CST_Start(dataset = list(list(name = 'glosea5c3s', path = repos1), + list(name = 'ecmwf/system4_m1', path = repos2), + list(name = 'meteofrance/system5_m1', path = repos3)), + var = clim_var, + member = startR::indices(1:4), + sdate = dateseq, + ftime = startR::indices(2:4), + lat = startR::values(list(latmin, latmax)), + lat_reorder = startR::Sort(decreasing = TRUE), + lon = startR::values(list(lonmin, lonmax)), + lon_reorder = startR::CircularSort(0, 360), + synonims = list(lon = c('lon', 'longitude'), lat = c('lat', 'latitude'), + member = c('member', 'ensemble'), ftime = c('ftime', 'time')), + transform = startR::CDORemapper, + transform_extra_cells = 2, + transform_params = list(grid = 'r256x128', method = 'bilinear'), + transform_vars = c('lat', 'lon'), + return_vars = list(lat = 'dataset', lon = 'dataset', ftime = 'sdate'), + retrieve = TRUE) + +dates_exp <- exp$attrs$Dates +repos_obs <- "/esarchive/recon/ecmwf/erainterim/monthly_mean/$var$/$var$_$date$.nc" +obs <- CST_Start(dataset = list(list(name = 'erainterim', path = repos_obs)), + var = clim_var, + date = unique(format(dates_exp, '%Y%m')), + ftime = startR::values(dates_exp), + ftime_across = 'date', + ftime_var = 'ftime', + merge_across_dims = TRUE, + split_multiselected_dims = TRUE, + lat = startR::values(list(latmin, latmax)), + lat_reorder = startR::Sort(decreasing = TRUE), + lon = startR::values(list(lonmin, lonmax)), + lon_reorder = startR::CircularSort(0, 360), + synonims = list(lon = c('lon', 'longitude'), + lat = c('lat', 'latitude'), + ftime = c('ftime', 'time')), + transform = startR::CDORemapper, + transform_extra_cells = 2, + transform_params = list(grid = 'r256x128', + method = 'bilinear'), + transform_vars = c('lat', 'lon'), + return_vars = list(lon = NULL, + lat = NULL, + ftime = 'date'), + retrieve = TRUE) + +# save(exp, obs, file = "../tas_toydata.RData") + +# Or use the following line to load the file provided in .RData format: +# load(file = "./tas_toydata.RData") +``` + +There should be two new elements loaded in the R working environment: `exp` and `obs`, containing the experimental and the observed data for temperature. It is possible to check that they are of class `sd2v_cube` by running: + +``` +class(exp) +class(obs) +``` + +The corresponding data is saved in the element `data` of each object, while other relevant information is saved in different elements, such as `lat` and `lon`: + +```r +> dim(exp$data) +dataset var member sdate ftime lat lon + 3 1 9 20 3 35 64 +> dim(obs$data) +dataset var sdate ftime lat lon + 1 1 20 3 35 64 +Lat <- exp$coords$lat +Lon <- exp$coords$lon +``` + +### 2.- Computing and plotting Anomaly Correlation Coefficient + +The Anomaly Correlation Coefficient (ACC) is the most widely used skill metric for Seasonal Climate Forecast quality (Mishra et al., 2018). + +First step is to compute the anomalies over the loaded data applying cross validation technique on individual members by running: + +``` +c(ano_exp, ano_obs) %<-% CST_Anomaly(exp = exp, obs = obs, cross = TRUE, memb = TRUE) +``` + +The dimensions are preserved: + +``` +> str(ano_exp$data) + num [1:20, 1:3, 1:9, 1, 1:3, 1:35, 1:64] -1.399 -0.046 -0.133 0.361 -5.696 ... +> str(ano_obs$data) + num [1:20, 1, 1, 1, 1:3, 1:35, 1:64] 1.556 1.397 -0.346 -5.99 -0.273 ... +``` + +The ACC is obtained by running the `CST_MultiMetric` function defining the parameter 'metric' as correlation. The function also includes the option of computing the Multi-Model Mean ensemble (MMM). + + +```r +ano_obs <- CST_InsertDim(ano_obs, posdim = 3, lendim = 1, name = "member") +AnomDJF <- CST_MultiMetric(exp = ano_exp, obs = ano_obs, metric = 'correlation', + multimodel = TRUE) +``` + +The output of the function `CST_MultiMetric` is a object of class `s2dv_cube`, it contains the result of the metric, in this case correlation, in the `data` element (including the correlation for the MMM in the latest position). +While other relevant data is being stored in the corresponding element of the object: + + +```r +> str(AnomDJF$data) +List of 4 + $ corr : num [1:4, 1, 1, 1:35, 1:64] 0.3061 0.4401 0.0821 0.2086 0.1948 ... + $ p.val : num [1:4, 1, 1, 1:35, 1:64] 0.0947 0.0261 0.3653 0.1887 0.2052 ... + $ conf.lower: num [1:4, 1, 1, 1:35, 1:64] -0.15782 -0.00297 -0.37399 -0.25768 -0.27106 ... + $ conf.upper: num [1:4, 1, 1, 1:35, 1:64] 0.659 0.739 0.506 0.596 0.587 ... +> names(AnomDJF) +[1] "data" "dims" "coords" "attrs" +> AnomDJF$attrs$Datasets +[1] "glosea5" "ecmwf/system4_m1" "meteofrance/system5_m1" "erainterim" +``` + +In the element $data of the `AnomDJF` object is a list of object for the metric and its statistics: correlation, p-value, the lower limit of the 95% confidence interval and the upper limit of the 95% confidence interval and the 95% significance level given by a one-sided T-test. + +To obtain a spatial plot with a scale from -1 to 1 value of correlation for the model with the highest correlation for each grid point, the following lines should be run: + +```r +PlotCombinedMap(AnomDJF$data$corr[,1,1,,], lon = Lon, lat = Lat, map_select_fun = max, + display_range = c(0, 1), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('white', 'black'), + c('white', 'darkblue'), + c('white', 'darkred'), + c('white', 'darkorange')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) +``` + +The next figure is the map of the maximum positive Anomaly Correlation Coefficient (ACC) among the three individual models from EUROSIP and the multimodel ensemble. ACC for each model is calculated between their respective predicted ensemble mean anomalies and the anomalies of the observed temperature obtained from ERAINT for winter (DJF) seasons over the period 1993-2012. Blue, red, yellow and black colors indicate that the maximum correlation is obtained for GloSea5, ECMWF, MF and the Multi-Model Mean respectively (similar to figure 3 in Mishra et al., 2018). + + +![Max Skills Correlation](./Figures/MultiModelSkill_cor_tas_1993-2012.png) + + + +### 3.- Computing and plotting Root Mean Square error (RMS) + +The same function can be used to compute the RMS error by defining the parameter `metric` as 'rms'. + +```r +AnomDJF <- CST_MultiMetric(exp = ano_exp, obs = ano_obs, metric = 'rms', + multimodel = TRUE) +``` + +The following lines are necessary to obtain the plot which visualizes the best model given this metric for each grid point. + +```r +PlotCombinedMap(AnomDJF$data$rms[,1,1,,], lon = Lon, lat = Lat, map_select_fun = min, + display_range = c(0, ceiling(max(abs(AnomDJF$data$rms)))), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('black', 'white'), + c('darkblue', 'white'), + c('darkred', 'white'), + c('darkorange', 'white')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) +``` + +![Max Skills RMS](./Figures/MultiModelSkill_rms_tas_1993-2012.png) + + +### 4.- Computing and plotting Root Mean Square error Skill Scores (RMSSS) + + +By running the following lines a plot for the best model given the RMSSS is obtained. +When parameter `metric` is defined as `rmsss`, the RMSSS are stored in the first position on the third dimension of the `metric` component in the AnoMultiMetric output. +Notice that the perfect RMSSS is 1 and the parameter `map_select_fun` from `PlotCombinedMap` function (see *s2dv R package*) has been defined in order to select the best model. + + +```r +AnomDJF <- CST_MultiMetric(exp = ano_exp, obs = ano_obs, metric = 'rmsss', + multimodel = TRUE) + +PlotCombinedMap(AnomDJF$data$rmsss[,1,1,,], lon = Lon, lat = Lat, + map_select_fun = function(x) {x[which.min(abs(x - 1))]}, + display_range = c(0, + ceiling(max(abs(AnomDJF$data$rmsss)))), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('white', 'black'), + c('white', 'darkblue'), + c('white', 'darkred'), + c('white', 'darkorange')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) +``` + +![Max Skills RMSSS](./Figures/MultiModelSkill_rmsss_tas_1993-2012.png) diff --git a/vignettes/VizForecastPDF.Rmd b/vignettes/VizForecastPDF.Rmd new file mode 100644 index 0000000..5fc44bb --- /dev/null +++ b/vignettes/VizForecastPDF.Rmd @@ -0,0 +1,87 @@ +--- +author: "Francesc Roura-Adserias and Llorenç Lledó" +date: "`r Sys.Date()`" +output: rmarkdown::html_vignette +vignette: > + %\VignetteEngine{knitr::knitr} + %\VignetteIndexEntry{Plot Forecast PDFs} + %\usepackage[utf8]{inputenc} +--- + +Visualize Forecast PDFs (Probability Distibution Functions) +------------------------------------------ + +Library *CSTools*, should be installed from CRAN and loaded: + + +```{r,warning=FALSE,message=FALSE,error=FALSE} +library(CSTools) +``` + +### 1. A simple example + +The first step is to put your forecasts in an appropriate format. For this vignette we generate some random values from two normal distributions. The VizForecastPDF by default will plot the ensemble members, the estimated density distributions and the tercile probabilities. + +```{r, fig.align='center',warning=F} +fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), + fcst2 = rnorm(mean = 23, sd = 4.5, n = 30)) +VizForecastPDF(fcst, tercile.limits = c(20, 26)) +``` + + +Input data can also be provided as an two-dimensional array, as far as one of the dimensions is named 'member' or adjusted in 'memb_dim' parameter: + +```{r, fig.align='center',warning=F} +fcst <- array(rnorm(mean = 25, sd = 2, n = 90), dim = c(member = 30, 3)) +VizForecastPDF(fcst, tercile.limits = c(23, 27)) +``` + +### 2. Customizing the appearance of your plots +Some parameters allow to customize your plot by changing the title, the forecast labels, the variable name and units, or the colors. + +```{r, fig.align='center',warning=F} +fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), + fcst2 = rnorm(mean = 23, sd = 4.5, n = 30)) +VizForecastPDF(fcst, tercile.limits = c(20, 26), var.name = "Temperature (ºC)", + title = "Forecasts valid for 2019-01-01 at Sunny Hills", + fcst.names = c("model a", "model b"), + color.set = "s2s4e") +``` + + +### 3. Adding extremes and observed values +Optionally, we can include the probability of extreme values or the actually observed values. The tercile limits, extreme limits and observation values can be specified for each panel separately. + +```{r, fig.align='center',warning=F} +fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), + fcst2 = rnorm(mean = 28, sd = 4.5, n = 30), fcst3 = rnorm(mean = 17, sd = 3, n = 30)) +VizForecastPDF(fcst, tercile.limits = rbind(c(20, 26), c(22, 28), c(15, 22)), + var.name = "Temperature (ºC)", title = "Forecasts at Sunny Hills", + fcst.names = c("January", "February", "March"), obs = c(21, 24, 17), + extreme.limits = rbind(c(18, 28), c(20, 30), c(12, 24)), + color.set = "s2s4e") +``` + + +### 4. Saving your plot to a file +VizForecastPDF uses ggplot2, so you can save the output of the function to a variable and operate with it as a ggplot2 object. For instance, you can save it to a file: + +``` +library(ggplot2) +fcst <- array(rnorm(mean = 25, sd = 2, n = 90), dim = c(member = 30, 3)) +plot <- VizForecastPDF(fcst, tercile.limits = c(23, 27)) +ggsave("outfile.pdf", plot, width = 7, height = 5) +``` + +### 5. A reproducible example using lonlat_temp_st +This final example uses the sample lonlat data from CSTools. It is suitable for checking reproducibility of results. + +```{r, fig.align='center',warning=F} +fcst <- data.frame(fcst1 = lonlat_temp_st$exp$data[1,1,,1,1,1,1] - 273.15, + fcst2 = lonlat_temp_st$exp$data[1,1,,1,2,1,1] - 273.15) +VizForecastPDF(fcst, tercile.limits = c(5, 7), extreme.limits = c(4, 8), + var.name = "Temperature (ºC)", + title = "Forecasts initialized on Nov 2000 at sample Mediterranean region", + fcst.names = c("November", "December")) +``` + -- GitLab From 892985d69fd4f72633b4b64cf8d3b8b574de6e9f Mon Sep 17 00:00:00 2001 From: Eva Rifa Date: Fri, 17 Nov 2023 17:07:22 +0100 Subject: [PATCH 2/5] Add figures and vignettes in esviz from CSTools --- vignettes/Figures/MostLikelyTercile_fig3.png | Bin 0 -> 11726 bytes vignettes/Figures/VizForecastPDF_ex1.png | Bin 0 -> 24579 bytes vignettes/Figures/VizForecastPDF_ex2.png | Bin 0 -> 26778 bytes vignettes/Figures/VizForecastPDF_ex3.png | Bin 0 -> 36684 bytes vignettes/Figures/VizForecastPDF_ex4.png | Bin 0 -> 29294 bytes .../Figures/most_likely_tercile_fig1.png | Bin 0 -> 11583 bytes .../Figures/most_likely_tercile_fig2.png | Bin 0 -> 7131 bytes .../multi_model_skill_cor_tas_1993-2012.png | Bin 0 -> 15923 bytes .../multi_model_skill_rms_tas_1993-2012.png | Bin 0 -> 15767 bytes .../multi_model_skill_rmsss_tas_1993-2012.png | Bin 0 -> 11432 bytes ...izForecastPDF.Rmd => forecast_pdf_viz.Rmd} | 17 +++-- ...e_vignette.Rmd => most_likely_tercile.Rmd} | 30 ++++---- ...te.Rmd => multimodel_skill_assessment.Rmd} | 68 +++++++++--------- 13 files changed, 59 insertions(+), 56 deletions(-) create mode 100644 vignettes/Figures/MostLikelyTercile_fig3.png create mode 100644 vignettes/Figures/VizForecastPDF_ex1.png create mode 100644 vignettes/Figures/VizForecastPDF_ex2.png create mode 100644 vignettes/Figures/VizForecastPDF_ex3.png create mode 100644 vignettes/Figures/VizForecastPDF_ex4.png create mode 100644 vignettes/Figures/most_likely_tercile_fig1.png create mode 100644 vignettes/Figures/most_likely_tercile_fig2.png create mode 100644 vignettes/Figures/multi_model_skill_cor_tas_1993-2012.png create mode 100644 vignettes/Figures/multi_model_skill_rms_tas_1993-2012.png create mode 100644 vignettes/Figures/multi_model_skill_rmsss_tas_1993-2012.png rename vignettes/{VizForecastPDF.Rmd => forecast_pdf_viz.Rmd} (89%) rename vignettes/{MostLikelyTercile_vignette.Rmd => most_likely_tercile.Rmd} (90%) rename vignettes/{MultiModelSkill_vignette.Rmd => multimodel_skill_assessment.Rmd} (82%) diff --git a/vignettes/Figures/MostLikelyTercile_fig3.png b/vignettes/Figures/MostLikelyTercile_fig3.png new file mode 100644 index 0000000000000000000000000000000000000000..edf922e1a3071e653c35f862e7fbfa0173ce8dc8 GIT binary patch literal 11726 zcmdtIc|4SF`#)?+QduHoFNIP}*0KAvN|qKRh7pxwFtT2D%ATc?Fi49nVn_(r*q4M< zmcekDG1+6Tu?@!Zo9^#@-_P%l?;p=!&mYh0buH(49Oto}uXDMs^LWQyH#g$lFTS6R zjg8m%%Eg;(Y#bo#KD&>TMX?aM@{9FSx^8NDiS^!hBkS0s%JVPUF{OjyZ1My)`TF{L zs<`Bqx#D)B-p(h}ongP-g*UsqyZb^UtXKj(o>y$V+1U2C{Jq)LPn{@cV>`-beDRzm zkhL%t=QMxj1s55YQ6Hz4@_Spx|6Nq&{*wYP{xK+E_WHUh9W@a8*t7EVXiD^=GTYWw!(Kn@usp$ciPz<|rlB{Gm-wPF6AG0+#u(q3A+|_} zXe*cbWecLKp^!WXoBY*cuIXkolZlE!(tX5eXaQcdV}u#dsc#e)CjGpi|4Edd?3BW= zVfNbYJqJI(lYy^d?doE%++n}g^JX0I7w?I7(`{Qy!ABd*K-?A=J1yauQLB&;uf)lR zmPFm!2Mc{CkRjj}Ih8zKc(M5xDBb7q_H?`w?`{i?k_ZX>E|J@E-_*;KK66-zzEidt zE(=0k26zs%JcB_D6*Qq#>OWeKD6u@eYbNrFYJGA)mmLo<9h)~1@^Lp2UJOg&QrW41 z&b(GfvJD5F&mq(Bq)!|W>}coF;Ny5hFa6xHtw65N3r7D;H0U3__JRB9TM6XrAeH`# zUB@-FU+-qcm16oU8E|6T1Rd8+l5fX|IDI?BcliXkb9zyK4svKpX!@T%I)9EzO1}HN zbq4>*NOOG}spb}IxER0%@5nV=+|lDeGnAjk=>IM`o0YuP35KpC)5o{hV*kd)4w1cy zh!%?Zih;)B7Yf+$lXrSaHsFBJQg;sytZuqEd1L}ik?b+ zAzKfAcH2!Rb=YdHj#e)_QTOeSj3;*24pydQSL*K*c}YBdr$}JUCd^adqoHz-&{BH* z%GZ+;cVBuXNV_Q@-n%8-_@)wAmTh-=BS`0}b~JyL(EqD(_J0k-%Mob;_afCP+gn|m z$5VZOIyerUsNot4CiL43W`z2lj-&bHJI`((+uU+QY2z*) zc>7LStX3C&HMIbv>{K^d7=Ab75X~98;P5_L?V2z=rRyQ{_>;6{S>1#jc_B-T9*VnR zH0rUIAqd&yzdU1mTqN>RM)i!%%-*{h%I1@*4jIz>N7Urd2YS<{cW<@UX^lHS+g|K- z5ii*1-|577dUk3d)0pn@`(y3xJ7RdEnTh`T&dbtA-vSpD`b`4@C$H8uk_MMUM;bQI z6F)RbAljK@^{2ljzCWT0_+>)|*YntD2LTH&!_)M|1IyAwmtKh*9VeQK&gmzq3zM_i zvGS|HLP6uTFo(#}>5xfb?x3pGNf%zY{uo*U%e6`1?R-wl-^7erM5|!O+3<;FoTWvN z_JCD}9;dF|Ej^3ryKpWj97!O3S%W>NGK!WYyM&$HH?&19S*<_jvh%Zk82MT5i4a+u?^R9V}Ectw8Y0)|N zusevVl#OwW>c!l=nSD2<}z3;-yn3+Qtx49+Lm6!+U)Q3bUTn+&T|(2_NhQ zN{>N_DPn$XSl@8#RuhT~g&?kgytfycW5b_y^SnD+nwT=qe-IpCN3+v-5>vENx(~p& zxPjh|uHNs@IaqWkg+9k8-Vk1WtdYcxeTOa4DrEml<^vdx>}j^%|L_6DoS;3txcf;| z(U#+HWdR_he5WeB6IEwt*}c0PCn0c84D`0ll zj>qD{Y8=oIjywo+ApTxxDYBFpHuxO^-pdZ%ppOu~pfT)N0kRYy&12Asr(RnYvfc|e z>h4F^ohEiTDaSB4L5D_NL3F%FvRf#<^gPk@v!5&uJufb;!QhuQub-G^;W`yb+4cyDmP zzdX@TNYhw425yZ;yNw*F3Q4u{4>sZix9OqFJ&B7s1)WdFxh@nW|gn0U!by)keadBBZ*e z93)M#;xKchSIGxLCY+!?y}p~b^IeJE2hGkhcV$+1hhNV%{$QDTZ%9)Vh9dnR zmF;BhpTots{{AsN}R*|Jr76D)mxtkXd_^ z$vlTsZL?_$b@IP<1HOnjaH5wfrs!bpsNi|CvcWp(JX_wX36+C*Z^e}aY1 zkO<4$)rW3T6OF|EO81Zg;Cjzz6OSdEF+n}#!Pt@4jNS*X3u3h?WM2MHR{!p?OLcFl zo(G>%9|X%2U-yxs)0+Cp+a9hrTfUBspBp%=P&EG%T2Go1fZ*qW*cMg!H?1$WUCi5y zjV)3F$H?EUhhX>H>k=NpPI?)kJ<+|XPPa38Z#1ePuO==`#c+9K%r|W5s~v)_k%hes z(N2I>sId#N)X@XXM89Q^U|a^5%FlW$oBi_giM}0&fTP(VX&{B|)cJ00*M-H3YYA!L z*4;e-X788bac{3`BQ@$a6Wj~xF(yjZTM#~kqK!Y1Le%ZtUNiiU@Wvp1NW6Bd-!9KS zGlPz!u?dKKdVIO8=nDt=!Rsbb$RhawI;!H-<__QG53MsBzJ43B+{)em`Nw_ z&}#7u4v^0jm6*;XZZ?E4xYtV@~fDK)kr?E^F{Nm|u%mBI001(UmB*ARwRmPPvAE?he9 z|5OUJwZ$z6sq)Us_a0$(DCCGEdLsR2uS8CF_ZrhjEV`1ZyoMdd^MN8zZw;J3Xo3;_ zC{~jki`;rzI&AP_3@{G156)6SLfaodX~X%%I)8%N#QphSZZb*MKZ|#$)d4t3nx#HA zuuT`bjmYsl3pSToRfK5bwQFZHO_|?kY(r*1!mBA%kD5+wuX<8}&n- z_k(fe@YOf!D7*x;KJ}roI2PESn3869Zt5gyCqn5*R{=W&;Qm3tuTu23F==TwmoC#Z z!|J)Y(VB_7P43d*THT(~woHBBM?p%}Nj}qcy|mfMzJy5Ydc!1VA-}eH|N6#E6MB4% zEaWrYW!+pLwjaOmYF}hFU5D_1vWjR};#G|iyypQq#BQL{sgNX_ocqAS)BUn}*PVKTb+%>O9%$>- zo38nFHk6!x_?dD>=>esg_#IR9w#fMH$h_4@);7Tep6opsp>^e6*f6bW{*vAODWbNOssXki7U?gYFzV|e7U2AATq%&|zFX3Q$%@RTXx8R!m)<*#wtrxg)F4m= zm6?`2tvoc3Zmg@mqA|Wq_lVj=9)a%PU2U$zc5l7_fk=&~ujbM1nBRjl`V#oCf7YG@+GB6w zsY|x??qk7R(4B9&W8Wm^vXY3IQ*pqq?frXTZC5AG=%f_A{%h9}fCuPkN2#Qq%@e0t zi(wxE`@kLb#>_4;KsRJ!`IXV|c*8GXn`fD|I7BdxKnTIT1Z+fF73yqjO72`~<9x_+ zsyPCdZq;3ZqQCo9OH8^acWY@+1?|B`ewh&k_^I2WqF~ds4pZw_W^1udMKiT{2;--W z4&(+`q!g7bQV+&ntUKMh3=QiNt+bQDb7Z-KZce03uaV2p`lX8BF? z67`(e;F`q?^w6*l&KO77ug|3Ucz{wyEvZuxc22g*icK3k$qsmHb72c^AmaG96_mQ| z#(FMl0NzC3teCX%_ft)P%WZJ1_o|SCf6nBR?|A-)mP~2gtQh2%o1(zej3anMtGA2u z>Xm@S-54QyeHVAt^BCTccJL)|rsSg~1K3yKJj$b zfwLrW%+tcKx^--V{5UNfsnPD%fl9wFSFstGqp{UKp+GGeJgr#CGZWYVB_jKoTHs=# zXTXtnca0s@E5LPkdT%?b*!o4+AsVri6U&as^D`Tu_)2*M?6cQZEYx9t(Olm019%U; zYS{}(qOZyvE^I&jI`a5LiHxG+gJF~sW8q#4xu-=V<=|uF58ZvxXw9Bgz&NpbQ^;oQ z!!(tu)Uq0G6lPl5!Bjg6ZJmm(1R7l7TXO^EgzAx0;Pk5aOPrTjeV6E7^_hh@B&^N` z!JCo+I2{n`m4$Q&zG*15&QwW1%7~a+_Ldf+46XlCb-}q3CN3HBfL4jOn1_m2b}3`# z={Eer8v9lh=WpLB3FbksW)>$dqMP&38aZRHW7Ap}pW};17I2Cn)Bm%F^?Mgvv~Syp z6yS?3Z8(MdvnV(EyJ&;8K+O}l@ngd|T$KeQ3xXTj&r#MrDxW9r1xbuYSQlQk8=Xu$ z4wPKY9_Oa;YTjeFbi(D{PA+vG$}G&MiD$PH7!{)RW&`gv zX$eSh=~E%{Mh#yMRCT%Q{d^p94kN_1Tre9&WD~j3mjWx+$7SP-2Nta#ku!_zdkT;n z8%e;^=_{>nzISt81BQ?J(ub%<Ih#|9)XD1JVLCJN72|+5+)?1BLqNgq5DD-xQ97zz} z*6u1t9(Z}ZrDoz;iD-$vOC-t1UUK8X+Gn~w>CBKp;L*$)UU|dqqqaAke@yHiGE6RV zo?mH^u#f1xTv#1#28GA4>SKq%#pb9%OqltvaCdba?mv*a=s#+(jy@YZl7v4r8Tg=4V)3TLK72i=UNjQjLuaPn+tH%! zenIz|ZPIV3xxES78Ls?oP|l-re6RmU;!(f5j*t$OYQ-zz(S)LRFa@9^n3y0q*YGe` z!}axh!jP2WLiLq5+i$yrrR+ovjK0UFnY}x*gnnG@Odb}+#=J%zlM79H{J>C?P>UJb zG9dnOypkySkaQrMs454QQKbr|OOCb9qc1ER1ZBrtg`As1-UGqjKuGpriKm`ZM-Y|a zz*^?siJk!e%!dyZZBk1FSDYAYg&E996sJNID+C9n)f7YU{B3 zW^vgjf+)RDxnx@#XbXApSJ$ffiv2Fd7ys5z6(VE(lJM1zYmWHydHY|I4wTw5E#P=R zZS+9#K@h*q3q^x9xB_!?N=_GZN-iN5n2Z)tFd<{*eAUH}}vJ>oQ> zly)ik}Dp%(4TB6hzCJSRF~LcgYG0||8X`f z`w8K5q8O8jrXQSs%!fPATn-dsOwen`kxiMK``!=3M)2l%_Win!3qDUBfb8|l40B+? zWqR_oxU3K9M>w@o-)mw*wn|c$L?S01wT~tSbx5igw`HcY%+I)LxO@2vDhNeEjMlom zQLXcQ6Weig>4iXSE5^{ur3w}MU8W#D+z>sbNdDs`TSp6L7*z$C^alBmJ!R0G#q5ZX z>!Ha{q+(z8qTm=18-XmRU8$fXlUK)8V_K8KtsfmZ7N@-RGL?)G&8p`a?uZ$tz?b!D z9J4WudK~X~64Gw`3GAwg5+J?ExV45qan-JvuF6;lDJJmh%C%cpP%`N^DdYw^5>XqEd9HfQFv)z}5E< z2hkQ21Qr2oFAkv)Eq?Y25X&$2&eV# zFoYKs-p{BJ4btKKSF6fxcXSg-BL{$GK)7{pQytjbY9CiBl*<_;{wibZ31-o8NGd3W zns>pf|%#dJ#i!T*ht>k$}#YUV1Ps3b|=t zK_S7ev566kj-YGYIqyS36Gv z3VNgl86FU&zzZs!N=fI&Ruz7vx_4kYdgMST&IH5$gu@2>$-5qIovj*si;za`nZGYZ zV+R*?Zwn$w`%8hI)uWUubtht2;0PBa!+2zmSNOULgn3P}njHc)gLfC!`V6i5?fECt zl>fLzRLhC&6L!rV4fjWUx$QGZ_iK`vA7iNQc`(}-D)vD;+$mlxyrt~zF&B=?hZCbw zNR?nM9&GUPi-p!WeBr#@6XI#qzQrC`q=ENJ>OCegGwzo#c5>!Y`qmk+xx_!V`GDz~ z3f40Bid{#tn;O{+dWd&s1ihnUa!>r?rL7fId9C#18+pR0d2s8o-M;xt?5F_s#A%R?d{NIv$a=s7tZ`y%MLiyxXvHJv>9M>%Ru z=eFQXw9JrQr)73o1DraUXSExV)3}`SOk7?OqSR z2ko=+@U2m8FCw#ZMX~z&u_+;2IKk4|!p*5=?SH|eCbD0fTYJ0Hq3KYsdyeE#{+ z$a0r&?d7s3ZYN`+yf0abdQ-h__G0{!qQ*_qo9C^M>0SJ}92>PCyLPyzj;^RXUiO@r zyt;rsu2%ZwelTOaE&0I>eo3W)`nt!*OQK$EWz`fX{K?Q^3e7q`vCd^H949Hxi0C}z z!EUL%9!Ghy{$g9QrG#&`?3}c@T3aAz6cALj6_H4t^y>;cGiY_$FNji!Oj6~qwvc@v zU$;b?+=x@zlwZEU-CLve{Ec#Lp9YUYTVfQlqI@AvPQ;_2>2b9rdP=}U0*$Hu1g_L@ zE+!Ml%6oSVpAcVVVpiI3FCuxcGxf1Vu+FZ+Vd_m+0y8O!JYlGqfM^vg%7r`4N z^g+>;bkj?A+}6^|J0F2454F(zgfv5;I3{dZHoREvX>-#E%qogjYcO=sb4!cwMnxfp zE$R@ciYzq6NK^yRz~)!k4)tJ=-d?zeAJL&fJgx6crf;^V^drfC_Jh9#!Ta`c$RVxA zqt?oACU^b0&qkhE%30rTK$b;y0V0Iqn8x=>cP9L z6H09`<6|XNw;a4NxB2LFggJfKLlNAO(i#oYy`lt_kT}tXDv(=mX2<;4pC1 zMq75u3gjp=naz_=M@Ee@y37MXMAqj;oDhu3?X$iYy;nuGR4)$aN#fD`Iv@va1gn!VZ@pw5odgH2@^NC$Mug zD~(U*wqlY#TV-XaNut+wH04{Mqgp*4VcPAg;t-8OcWwu#nwx}R!MxBo`Ak0iSgtcF z-P~UdL|O-@Kez(6BnPBvHL9Rp4!*Uq7C}f*rj*OR9K;4L|GxRCg;1uDgtoLai4C2s z943uFomv=pWgwUIR=J_vM3yf!HC3zLi~;g0=_o>OwsQfRkY`Fl5^;CwQP`J3Vf>7W z_Ed>SZ&=#I!hQdXp!zZBVayZf*qd@DUkYzS*Q)9Vf8{m?=^6e}Z0CVLWhElRY-wa5 zvms~YhrG{hrJuBawlci=`LV-(olK7@|6>rE6k-YP0gowpCC6)aw3B)l0pM<3W8Lr) z|Fy#k9uIGl^(83+r{Tb6pEE}7q@Rm-fV@7=@M_KD{1TfXwiqZ<>Hs-Pri25E{yY}6 ztq2k{1DW!FY&ax7Db%phBGf}4HEIBLBdmPJTq`T7WI|0t+dZzHf8%%*>?{@xuU0H^ z81mwU(3x9b<^Q0fHG&A?j60XxNyEyp-`6WF*H0Y)`1iC#D~lb$PP1c|<^R~n%QcdY z?HV`8un-5jf3W}y<2L|Jbg1G6{qw-*AQiL-qHZ5MaQfHIHg0-C|H5NoH;PJBQzi!{METch*FGxY@_+QdOK)3PGW%E$;rE(- zdpMUDFb~(1x=A&hKwTU9oL&K6&Gwj9de(CvXsCZh6X0W_$x4yKQu`1}4g!I+sTvVP zR0skVQB_8d)c;^WJ>I7vrN-i<2dq@j#i_bN+L)d{S&nQK?F(KY%P}!mu zYF~ve2YRWVe}^T*4TZo5z_!*W(TCs{fU1<<*hF z@<84#4y*{Gf;j~w=6&Hb*so=Sz|Ka0T-H4a<*2}3b&aPd&yHUtJZ`I{JQn-sU|ibX zCX@3O<8=Xh+v?8s9hN&(j{d1DyZL#oz~2-!WX1Afm=zl*RX^9d$QlFz2Tqs+iv*1f z>gj=WE_MX`I@W*eq1j_$KZPa}e@deGQ-hp%>+s<9Vjh+ z{NY~|;rcN_AcAog!XF35=$|>zoI{7|r4Z~i6m@LG;VDrF3`Nb40WEUlQT`je0IjiZ z=VP-(Fy($H-nqDHBGK>z6qy#z5I`4He{$=O^zT)*H)e4(sfn+G`JvxY2v!cw7!2{a z;w?#2fX(BpbFC|^Q1o__dM?_I0Dz*0j>R&V%HY;ew-oDKGI_!`1nW-GA?Ga=Y;BlT zScN>h=nA@ZR+BY)@;;n|)h?aWS`gMj>G;RtqQQln(L_8)x##t*yi2l5MuFU{2DU1-8XC+yV8QW(Ih)uJO@6(pMbUiH5?6ixlerqO72KO1Uzp}*Sy^9 zJy~*3DdAN+4g-rfR2HOLNlBMB)v@1lvoikhTO0QTAqG@n@R8+{s$euWm102;J-`)r zL_XFznvW?7DmG@?*WJ4K>;N6-c!8J9;w~RBkgXN$-M&QgMP`S@6Zf#htzBZhIic*l zZ?sOp#+akdxK^fWIq`+dfxo6r&wX_V926U@$r_hz_P@_X9mID=0X%eiK|FDGz_Pd`vT=TS z6;_<$fX<+c3Lm0)B8bE;O+8qXy3Gzfg%^W)?SFme0$sq%_G zZt`zMa1j?%TN93qV2z6N;OX&bRsymeb>nB1AP0?J6D|q}v7-%_$!(>dMB(U+eOR+g zq^tYDiU|#coK@lZNixNe9Kw!0B7@*fNb~e)5hSlt{lN>=lH$LP_}>C$j#Kl##aE>Y z01E9U?e3AaA`vG)KUYTvQkf?_7}nD9+~G;fP0i2JM&B~Ms?_>apw z8@`($!p|A^Ze-Mcuv4fs57fkNJ`uMBK!SSR_@=qtFJ1n z>I5vF_b2En|ES=8Afg((AF$#3chQwTh2`M_8-pBQ02THuxB&K@o_m*z$$o78JS)#{ z_OifT+ufMjGyDHkCVG4bdsv1Q|7Ey6Q$mXk0n2~;Yv(tdZ&<9CcF0^V1Fh@v4Kgtwuk#HAEgkaJz$lGwRFW1@Yt0t%$h%|le3Sl^;SpC-B$lkp?Z1Qj= z3v+;#+6VBt#9_qIdl11u(gGD;8viqbV;o@=Uu=)B2 zlVQALlsUXk^AwzPYYTIpmdNmT0!yd2rRMSNzAC_t-8vJ&i^;@;l90+wK+H!&*mVg4 z9!M|OHaE;qYt(UFX4VDVaE3_XM=$(u=)?aD754u-cBUryIltq@?>6q_ZrsVhh4$+! z_`qmK%;&?dyNs+n?qnVJ@XKH`_<)=@)9`)X#oYG-zr*`3cx{x;2xk5F2}2_Wch|+0 zqO_Lzn+gF&1N(33pazoIAFUR1^UsE~*T=D;YRnx6cyx@1Zt(W90a{mfrE5`xhRzXC%T|6Ih@{jShjfeX$bHKRJ!w_5{z0KG6K0Sb?W6VQwC3@f^K5YwxEBpLb{uZippSU6QGzzTisol5kL38fhm)#Nnm1?Ll^>nz zExvI-&?CGYIl7G74A3Y#2!GF<9w=0$J+VFsk-3zoSTxfPUf3DM7jX06@Y>9M2>nyT zfrg4$i#|PQ*D_|OKxbuq;O%aadA)I1(S`BVx4XrB+gRTvjqM^nLeT}8fwy5SK-s_W zQ~&#u7gCTT9xuizXMA@%*bi5%Ra5fDTXknWN$X%LW*kdp2W0qK~{ z`_9aoZ@zif`iEY)_j%4fXYc)seZ$pN<#Dmdu@DFZuEJxPCkOC2YjT;>3pHl(f@PbTx}S?c41?kGDPTJu{w z=Oel%T*pbPB7(Idg2zdgsWceK7;s(Rtth-BAt4bhk3a0^=huwV&Pzi>vxnfqg%?Gl zzgk;aS%tlO$IH$AL_@>D)wR)e`^)c;9Tg3Yn2?YVK^;PuX-@lJjsr2&izk8jQ)z#H4g-A${R!BVYm&Qr3WW)+~+?f(A zE@%+e(bCGz&9!gP*VD@_E}j{yfv4nr!i|fMD(b%1{QI|-zW$q`Ooj8~-G{8KfwQ}7 zYoz=y#|JayC;$9;J@Y-Uu<+vVqC7@GMP((tb#0KdtLuV&4fb7*ii(OPK_@wV{e+fh z_LcL_OP@n#>>QP)O%~~BXe96%8X7`ic^{fIiuhcN_w;Ozmzr5vSm>4*qaj4#lY4t# zF8};!V`IZ((fe7*W#eG=*EwN8hiQ3v`RcEflI(1YmoJsGo>=pKu|LDHGDHnZ3yC`- zho6V#HZ(L8`Oh_4^z<$jRine=k6NeI`1trn-|Lz7_MqYMiHX{Wf&vsfe-}Ghb&I#w z*1lC#5X)vEMMn5>{*L}&eR8-y9Ds(csHkW!K!Na+pkdSdHn-gK34st56~)7gii;zz zdGX>!*4wv=CXPF^O-+`+zUHW<7#JA1y1KS*-kv8NfQ6LCeITk{Q(s?@n=2zDv$V3p z&&SvB=3u3I)+bTalOF;5iiU^hU}K~}i-nJovE$F5y0S9Dosp4|4#u3uMq?u*BNLOR z;^Li8CO$|AUOql=;i+oMChyo^H&Ggz3}Jil023Q~cx>!GJ_bDAWVKz+pw(X1-G|0C zH8sqvtWWjzjhcKYeVjVp-r3mLfW_Wo&nz$J5fISR)*ku!bEBl`>h0UN`v(V$ZSF&}bzm;DcuU+SUJ$BOsxSf{cue_y0N_|MR8Hd1gvVO7Gnn z(FZu01E0Tqar|C&8vF61wxJ=LwKs7x8IQ#?PEvi_wC2Zcyi2RAp+Q0K$oUkp%pNeq zKAx<4MfB}&o@S1Ss3>FJ`&Osb{^ZnD8dz?9*7WAb55E8G>gxLQ$3V#J0o}iU{{kNU zFfHve-(MXm&@I!EoR>Tz$H&Ka_xp^Fii%1_lZ}Lg_;qzcw{C?h zed3^f@D)`u`m``Fk4)U>dr8Ue`f!euqhs{DM691Qk8pi_e1e069~yuE%>U|3U|?H! z?ES>V#Lg&cJ4;Jlb@jQ$MNNHuYa1K#yLXQdeu?)O=%YzQpB^3`cP{?LLC;7}r{m;Q zA7!D(=%(>a^~)T=ih5B%xO>YjeV`GWJWrREqb3c3-s&QC^fK=L!{diAVP*lWj zOL+(L>fm&~Efh8>rLZdkvC^L$L5hJUOKxp;d3g!@squVASOG7y=J(iGXlUqxa?&+> zfo{qBu(0R~MXWv(-^+jJyG`_5#Oa(2RLl@xbS%^VGt3xGxcWv$-b-BsgyESvIo0le z7a&clB=Y0lOAI?HX&0gx#Bn;T`YZ!Lq*{aEZ1_w)DP4cU#sPOSsLaKfD z?p<%M@|`;$`D{lI`x{=^*qrUnOV@B5`S}HZ(_>5fD3hj6iX$hZ=0kD2^BJd1T(dd% zDFu3|9-EVs6H*r6qeqYU`LWW_!)4N+goO2#l^@nC>+4Wq zYHddH{eN0=lH#L2fNW7j8_{9Po!~BFY=w!BI%vg9V8_k!@oneg;F_45D;5^k)yX0r zQkILe^HiOS5~0nZlA0PGdSHubaMP=2T z5x+X27Z4b4ZPvQlO%%i1kYMtKGgo~ut2VfGeMc+_Wks{JD0*QO7$)nahTJn zkkx`7;rjdg%STZ$5{8>|PmGRM<>jsa&eOy}4^(ENCo?6$C#IZNK?#va(x$ZK1T!A^m?g&;QI3Vb=fum%1vgYaEw^)F-om5A5GX@$OK5kYEb90pJSwDWsM9C1rR4n z-Z%VlNU`nLY52zY-hNe04s#VQPp3rXd+0V!G8tlZqk z|ND2Lw0oWI%VP0G6A)9vr?c<5Ut~#K@9#V6vj))Y!tZybWoO4HCbGiaFHu?t=|1Nq zg%feL9OB+;3VSpjpHdKlOu*ReLL?J|z)pLT2R%y(x*nU3tgNhrH5`D}brebbh>j=P z+TI^x<~KK4gHV}byDiFP9V$c470-kz#k^_;_6eS4J|~CYl9mpfs}{Qj!IH}eUhDF2 zc{X6htHA)DfgVWv7F7=y^1N8(^UuoJbH1>Q?5*o<&p0_r--U$y2ra~GRao2FA}*D| z{iqmB6ZV(^iyhuTJx}ZEjK1++I{hvlaaTyf_~5{R`@u?NVWmX0+tM^IO&BF%_~ELX z8D#qxu;_;LW7$ZNa`dt)9k;Q9hlYkct}bc|??^`5F8$%%o2Zt?N8?VoI9%6+HKrMZ zEztaolZ`}a)Bs1y+1dH(^4P?j`j$T)#O7^oe*V?+>c6W?&ztpZ>Z-SvDEp{@Au8HX z@3#9BLUt-!tP=R)17ToGbR|h3k+=6{;v>8N^#Tf2)b9Fv%*_k0UTupW(I4#Z-|UJc zy0L732^v@!eOoR8$^SHPcR38BE9o#C-x?;O6Ndkun0R2zj?Uf|iYM;2Ls6C(*i2N* zj|=V3_VzaH$$|9ZVjrKfnOKe(-?o-o4%NQt8pRG+lT1Uz7hH8R6mPHZSU+ z>4g4{zkx?w+~npp0(cGDo0wkY4{{0$-SApl2yU4Us^t4bk0`s`0QI`vKn*(TTCLa&p`jf8gq~a(A^nto8f_h zy*0hD>x)%!ZY>;1AN(2K@1DmTA|hUkKO#FiI^d9~eHC$lJo)|2!Ka5NhAF~Vd|6NJS%E~Z_m=FkN zVntb5v;^gqiuQSXSXfAextFhA#k|N43)4!M)7It_5;|-4M_FE8#z%E{%~Wg`+-;7f zn;xQ?lcCPcOaAKROA5<AQ@CF!?#A0c7ogp_&lHQ9h>q~9taNEU`xnckLY_-OjK%n~2*LB&+gu8tVZn==6z7WY&!0asF;NH^uK%k@jrR6#b;Z!5p`iiFftqBhMeqZ* z*onaL<@vGQp9+Po)==^T(azpuis3PB7ngs(ckjx}$cO-Dj1rV4or2~Aw#M!^3c485 zd-qsxe>`h%X-V7eh`6}$diwNf`0b!)&!3kzH2S~>hpwh<6it%9tGR@hg=OPtdvb5{ z@bEB0J__q|38d{8OI#5{oB8H`w3L!NyjYl_l$Jje!-4 zqa66<%O8J~TaHdn)FSSjUMG9(PpfdO?r_@t&VA5VIaX{Gn-uakIP9SNmb7%+CM}Xu zJR2F-Eq`8e++Zm{yl`3D+G3XpL`Fr4+s`#iOd8hMw{&){0_=>5iP_tPMdmU)n>t&M z7#JA%$f|q0;?rE1v-<;HX5x*#`L^L~6;@VO+t;s|Vjc$^Yd?A7=-^OlTst&6N;2W> zNAN=I)XdWI?#LgHwSly?H7keixTjiLS}d%rNC*HFME6xi+;*nQUi2Uk&O#0K^-rax zrP(rqf`XJkbJ9Y8cwm4*3u*Svn>U1gx-@~>C?eBvL(pV*EdC`YCr2?twz9El)Ne2a z{7&aVhkIKlMNJHLilwDx`QdNc%JtNO0^#SaL9MN=adB~bd-eb_0J@b=Y>kiW!HwU$ zmk8jZl^q}gpjb%OreKIx3siWSjYykY;SKr-kn`tS#foC2H<;sa)LlS(bR-amy7fryzP@G9~v8d zU?CI~6m)ez<>fu_vgjOvoF8smb8>P5cY4$6!~5zM8zzW(dzhLo^d|6>j$dEBnQ8P+ zv|XF^y%q(?d_3#>X^NpsVE;phDH=NZ(d1Uj)W!N=d8q}W;)c^}Yoo2LEq=1i68&g9BmDBgk^wTNC9S!a@H2Ey;qkX=!PJ^+FE1x_7^iaeAK}rlzJ2 z45%ags;jHh(r6KLa1a142vDdhDX|I&2#AVOA^?J)FS8mpfsF8AQ@`ShW zsHU2Ho1hm4Y&I@mT3R|W^`{QDp^49_>{jbCYQM3xodDHDgEW!=-;`&)*`j?7+zT8R zj;B>GXTHA~E4hB;99e)%jkf3hJu2$gM7d?+moF5Ql!Chl6b3_G&qnOC?!sZUwYEOp zENMEaD0yXDUOLz^4~@ysk&$l|rQuEx$L_wqzO^^|;@21SZ#tHVp*_6`l9(7(L-c<*`(CcCIKZbJW(p^IgArBqYba-{c%(2MOpd3CZYW>fV3vlye~2n27td?X+rD z@`by|N{a8>_+Fe1Z)inE;8T6BE`YMRfB$}|O+Kk%qt_|m1wFPS*l2g|+~MQn`=G~% zK*W9g2vt4#6I=JspWNKsAKLNvd*6}q7&rOgUVknzs&|F73E?^bLV)wR6dYPOZw(C% zE-o&<7k}mP@bHwBdH^!No~-JdnfY3vqNs@V$sAf(^uSV|%QNruBb6k97}cE6;NZX1 z23Ys@m>*E+rvNDkSr=N8v!f^fy$lVLzJ8sl*3Hvm*%%_jK?k<#bnM`+Gm~w%n;GsK zw1>JnIv$kgn?OfFf6y=s*bZP~*eliBFZt_lKx>%w*NUnt;KBAMIQqJ}1l;#-s4KLX zmF4A+@$o+n2(M3J*%@c*SQH=A#dfo?uoxs99YOSyRLYPfv!2jmEKon{rWRl^R8fgk zON6$>u-;WgNl9rIqH7WLsKW7j*9(02!+EI*hglK-DJ>qdMSK^jVSpl$G25 zRN4Xwf+24BymUM$2=&&jTZ0{65))@XQ?2dpKAfS@+>Z)cDStS(_ts%qc7Lyjzf14i zGs)-A(~?B)_B<<@A4rqF;bOwW9o*caqM}Oj^V8LtO=I9$y}$My9ULgBs;<-A3qv>F6(C7 zNHGG8y*RuK_hPy&4(y;pdHR&4R9Cybc~g6$6>l5#S?#u#kl9X*_*nKerPrJ5;iwc; zYAs#eW6AMC2mp3gnFyUBjr6V`hJqENwD~h~of2ciPz=yz8j7O=*b*j;g@p8NNQ^|@Qr?@Bo z($(cR>1+Glq=U{se>}3t=i!*ptrb5WSURcu&GN94^A`SLrhk)ff$efmAz zz8nWx&GHqiqYzwUE-tev3#*2Q+rEO(O8hnLAoTV1eLvYfXCZNLdSt6`kt1C0M(QH) zd&>P>RZR^I;n!)#Nsmra65jGGDJf~R*yyQ|5qrhTKFa-Qq<~c5c|Ip32nq;Lh^k-oIxU(b$$8z_0jS1BOV?gbpsdkh%v~v_+Yia3OGpZaohZK z&x$7@zo;uMP0VCf|Di!opAnTf*5qlwxmr;H#lntq>=rIc@~_YdYX03T=qtxsBzJeF ze@#}2MugdWoLAW-y*0Z|zJ3T8HR@B)^~qwCSCal6G*ueuCr^f;9zcC1#R(}XDFH@w z?T&&2@Xb-w;w!5+ms+yWMa-%aK|bz zJPqk6)E~1Kc&AaHRvFvqM+xbqGxDCi$Mwwc@ByR<9UUF1b=F-RXE7BQmzl<*vhv}g zymc+>C*p(zR}0&pg3X`aw|wr!EdQQ@OyB5ot_4NX^f_?=u-s!KBYj`^un_~0PLh*f zSy=oC&vb{T0+P~zRYgOCx2x+BG!CcE6vD1Ay}Z81$BzPU-9a@@XKfx^@;tR2U3p{c z@AJ}$4U~5mn$QNhxHRPEtj@2K-MxF4l2Ww2jTZ?)wG!vIeQS5-@?u`vs3zkRzXD_X zo4A1?z}!HMnmAW9HC@l?eIW>M2ZHrRYCs@JBA`M3D)OfF?;vnV6ebUal4mB(_9ow3 z@e0w?FAilX73dW0A0BQcD`{WF{4hpI+DYcKpL-Lk^dXn|K^_6d0K)$cCm$dCAF4-Z zX8oVJ%(!`YZsnsRBruk5F(3s?VZJW^rdK#%BZ2R{-B;hd}!alf3@0f zV|_h&pE5BznkEdA-o1WX8s31%_{IHbBC?H*jX-~A0<%SalZ9E0euA)IH}f3`2_;2E zU}-%QL+pfi#!DBWu>guu_3>kfaST37H@k~KeorQH0 z<Ny0VbQ*J)z{iNgmc_pra*;o$zy07|%!-YL zZSSZ)+3Iu|Yk=^cX(`ZGN%kh9^&3mfcL}`;bdjaU| zp;!h!G$|}BOwY);fl!8N9;Z2ps*kvboLu<)Xu@!5=m>5hBr=dJf^sKOfi;HWaf99_ z!~&!;5C!P$9~7;5-6Yc}%y-`MYylf$sENlBrdbZp2mlmWu^frMy!e7UTw zV@pFh%C%u~8E?z}TuOyJG+07KCl%i zU$zSey&PnUiAx+QHtx$9)>raYruY8Q!1@5!agU$LHi9EbnJFhLt90V!*IP;Zy}240 zLGS&@1s#`i)KD<2buoyWd9`@?gw=*rA7da87yCWsy}dRV0qV@ZSARv$t{(_bk)T1# z4l+x{afv>ASk|tayk%HoR+NiE(p+Rjm<)wSjewfhGiap&-*#~5V5Mp>A`NyVRD#E!CG!1K;*_+|_Q?iCSmN?ThGkJf1@W4}q07~HVUXOR9 zCpvzyovyfMAdPJ4OSZj-|BUO^pRPw8CRv5=5)$;~4)Fk~=H=x*p)w#e{}@mCpswlA z&8ZS|x>UD4mJKhk1ys7Xvcv&6F~_&Cj=qQeIXfc|^!2@N;6bEbnyu3RFE2n@+2u$9 z)=3bZc+>NXjai4$QLj24QXHYkY&L^``NdWIrX^iH1c;A&rlq-Io55QrSP6Z6;jr0$pzvc6nHTwhJKM@QPyx#UmuyVMH^=;f9!hW6X= z#4$dbOZu!azx+(Gh=U*%eBwEUF;p5*^?O}+)>U#;{7rcUm9H0^0+$w`QEAL`1RDp|?RloUV0}2jB&&{{C_gh>6e2 zC!h-gz#7!|6C`(_13-mTQRxE+U~6OJ;U?~LaRL<%s7uI=&CILyuXazXbdT0lY zK+~YGhlnxP0$c-(n4_G~`ZvtM$w^6BnU|9jkd&mCmzTNuQnIicl!=)pUut~(=no$N zxtYR)>@Rf#L}y@Rl*B*WUsifA0YU)Kd$Er*L8L9-0ZU6TAvHA~0y1@2RMa&P2C&IM zz@-xN(gWG-MNd35m`#9(<>!(;At8TTS6&D{d|18utaL3pnzcN+Yi8yL!q0kG?yJ!0 z{$>v&Dl!xIzOh2MShp5VabrMWhbbWFF`1GC0f+Rt^-1&F6R%`k@rGY?OKUrosl0R7 z!D>hwUN`5~-!i=u0dWJipy+9JF>nVU({ga!Mj%#;+}zwA0&3;pFmCYRyRdL@_zO)X z{GgGJ4hcEA$LaoZYpc}B{Tw$YV*y=J2xO_A;WQHB_3PL6UlMIuSj{w;<35dr z^_P*XZ)TU2%+?s3gGu4T)qqsn+SY^muc9L|9VbdIO7Blla>4xJ?~mG`bteGS77+K1 zY8}Dbf)|H8>qSDmV1hfGy9#9OY=jTuL^Z;g3i~CFg zhXKYA`toBEJYBav-$;zR(8_={1k5P{;WC6%yv)t{k`of5!u3Z7t4zp9=SvFKwyA;L znLYT35Tc^|tJA|J1bu%-@d)!`F&&UV#c+YeGYF0Iw^5|v97<*WlH|+M#Db*Qg7rb8K6k4O# zIm@-eN(t8@1~U&8m zuiHX*c3z*jy<~Q}zVhzh1RdUcvbn1(%=VMb`O)?sHppwcP1lZG*B z+Wpu9)eQwV7c1f!kXeZi0sPBf1pkPDXyZz z&cu{mTIvA2FX%=nh?moKA0=pTwC;%Eu?m zV8qRfl&(q9{=A&}%x(F8dvolg;+LPEEAMfz%XfDy)Uyp;gn5l*=J8P>)$#D~l;*yr zk*-l`gD5O4F0!++LG9HoG5{)iDBdv}$W+4vt30WyRfDFF2?OM5J83`(IPLVSG~3u+GJGXAj`_pFNv{ z0|6A)9M8y&E1|eHH8a!v#S6wD6H%<-fCvKI3i?m@1U#wObpBFl3_=YTV6J#WF3(Fo zJ=ALVi8!irb8QVHH!3_l++GsPiuX&)v$(0Q#*2dElfT){LQ1m-y;ZM%=@dD7o>#G` z$+sE$g)gL>=4WMf^!C1M@&JLjzTUI>&$S8WMX0@#Q>>K##}?dbYrQ(>2M8MQk1#U6 zfIIl)oLR`r*R48YuyDJkvrGD9YWGU+Au*xEX8 z&UYJRtUrHRDTb>mE9dP6c(J1&DZNBamy39(oHZgJ*0=Mc=0?v z#Wo=B2tQ`fE^gH7zi#I}KYxCBkFr1$a?HO32A}Fzlkv&Pmr$F)qZAArCMv3ZW%sXN zzJSqzB%Bxj4t&BBW@5tdpbpboir9IqU@0$ck$TShwL5MHdc4^h(YTU1Dcm+gGQh4~ zXa0hUV*-0=yG0Buc!39{fz|m4JF$;sx$zNJRb<4u+aKP7M|Lc@OnNMMnv`7A##Yvb z&@dT1eR`mQ7cA96%PED2biDk~|A7{D>Y??9kAY8ZS>PtK5$tN1)t+u_Hm5icj(6XOH)wfjTzV1i9;({=MDne+Q&4 zE*D4J*WA@;&$X9wh062ttY_jm#>*ppm-)!jMU+3*ik>+7ush6<(zhXvg)FIojiVB` z$?s9^i-q>^dPOB9e5PLCpK%WsbmWir_;Dd8gJ)zB*xwr&VXhhJE1xQ`{@wrje?;Ev zD4{_h{E{fI*}e@nFP6$*dGHJy3v&)2Bk&1LU1+Q2EZ?2P#)JhF6}{@m6NJ`5RZ)>J zow>ldIiERZ`pnl0KcKjn!?v;Xo1>DWV;QrxSx3P;k>*KW!v>Fkz{xy%Jw+4S4OH{c zJDU9B;+6fZj1d>qwRyMgeH6sNx*896{%2)=l8FA^LZ%P_B^53tP~qRde^1?bJ-51g zyf#SR^5`yOOLgo64LBbAcFXAZh==YF2GH2Ip+%!NmX34;@K-5G(37=!im%VL1d3lC z#zsT{+J#Q)Nv=*jtTxEh)6>A|#3v<9ofBe(u5X;}_6tV-V5{c-oyvfUX5>+%{Dh1) z3Tg10ixnV**Hbm%BUoo`w&Z411nnd^n62%(EE*buoUzw8kYGo<4R{m;0t80bbRo0P zOZ9Nj&1M_D2}jJ}L!l|dCSikT27aXB;R9>tSudU2>@``LK?lV-ZJi%XLr_GX zXQ~Ix!=?h&5hNt7Cr=>pAR~T{j<$ZPEBNE{*|yy0QV%`wg;nmKAt_KsP!Y-=%`?tiwG{HFPpzk?aYU%j7i1F@YeHoz z2`TC6=`WU3YZIQTne1TU;eF~)y?G#zna#{j|J;$oCx1PRPe!Id7nA8qY#IkS?^7pn zW!)?S5^(#3-p#-X618X=~IQs(7kbYFZA^O;2cj(KtStyIx{n4J662>XD~V`2UE?% z!-JUaNJ|JpYYd$h8{0dzdw>7)K`PST-VFmg)R$#&M{{#?3b9NM7igeGcHEypGQiYK zm9cjb#Y9+*X}XO?s~DpX(#AXn$6Alc_3Mk?8n@Ihdg|KReLX#%Cwudd4PGqRph@Cy zVY6PQEyu2{t=-6yK^JbpH~jLtOvyrUwF%g}{M()}w18#+sk5!Mm4w6a1mJ|v>C&m@Kwy4g=0PdTt{J^EPGx`S~w3LGYtLw$O=w7#I+_?xN!&euC}z2QUn~O>gq>1 zT>+%j%%GaVWoBl!xv?>K>swV7zt}b{f6!HmE+%>8nKQ%oDj7+B{z)H~o8dJNZc!#8 zJl`WDCuhw4*>7N+icRjSRpx>ejgWZ#n&U!BO>K8=Fk{Hs(hv5x<2`;lRuVS7xy?=N zdJQGo!2|=$0LBw_) zDp}QvHDV;hrqKX^wNo$p22?q4Y07+Z1>X!pLQ1L??n34h6EAo!EDQV8(Ie%q&o)ay zY%jOy3m|GBCnJM(f+WJn&wrG-HZnc!{X17<{{^|nYAG7xF>h>LWhLJ=TgJ5ZtAf^T zI(qrzLvU2b4G*)G2rsV1A=@*xm&+DT> z-}w0P=CLlR?ZF5b9LpBm*3;87I7on?3I0#it-*I6WWvkKOH546_OxoNJ)CHP+%a`B z8rA5@>(`fI1RHv69_L4vzZxsh(TrLbOQU8+-3_c8e0cGqI@wHon$~P%S!DBFm}OeJ zy4L1DFU7}`3~nwoxc?21pz%68w1(~xKv8#hH}ENs6%^)&vySvNwukBNn5ig^Tj5BG zxTf@3L_DI+l^XUO^!~S@eG;5W)bRH1%w+VhD|ztoN=kyUjA$_$WjdrC-(LS!uSUj| zv%SFACj%m$h4b5!X`eXyrcN$%3Fv=gqOxHH?;ldkXb-Z;F*4%b4h756VQQ9#X#?)6O(;PlSWI+YC0>T&7%CgFE}_=;;<>y^2LjfpYHdUIlyOUj=J`e zXE`lBMnyb3Sh)=1Vr1kUH87LNblkn z1q2{tqTR--!3}RQ`}60j{^k0P#gcWNTB0jjRHr#XSaE2!{C%Hi&PO;V%LVCaq<2gO z0F@Aw=d?l`aS*9RMcyEt1A_(A6(BZ7s(Dt%)Vb|=Rh15Q_Z0j}MP7*tS8Bi&_jy@J zVVfuJFI7#9qbmh9{739IQ;Y z&ksEG|FBI?O_Ds)Z9a+bfIyT77ZVPt422cEWb3Sc0@`hJGtGksdG+<+e@OPf?!sQ3 zxdhv7+1LCpS^d7qk@wa3Ez4=Wcd@}JI@f$@RHnytG-PVV`d=iLBl_(V?>7V(`ilp*q$2x5>&%-Ct_)g1Bunx!HMC+Vy}LyTD*VS5)(G-Q1EyMEk;gwY*;!kw0c*~TxGT$@-z>ry53T8|EfYgl*8+P_0m(5YkZ4Ky^0sae4t^n5a z1hpLcW5A_1@ij7nmi(uaW^#wABz}83&tNF^wG%_ML^FqpPl;t4L(8MyIfk8!f_#hs zJ%+>nC}X{wye!3^i0f<5OU_;sQ3?YWyX%BrV)J>=o~&@ujelV28H-+Z@5p@xR+~`l-XzVWsF{&||Tn%*f?{N#0cT+y|Q3$_d=T z9i}ZiNnmQB;~<`IzV|*Fq~Ei%Gf?}NS69K8b>nXM{X1?IfA5t{k+quxxyAD|G{oL< z&J>%?Z*oz;lt))+G^iR>hr0isrP}a5dNe$`dXeN*e4In_{qfz{?yYH!z0)8UQY!O$ zYt5g9`usq2+&-vmo+~wYk8(b^D0uHb#_WHd1z@Qppcb9uCb?k5cFHqwQnIy`j-Q{T z2b-51)a9@<8$m%AN=j#zj|pE4EtkBO<7qtq13<=C#n6kC`T*F z9~vGW_KZhOQPac4q3Sf1g!>&GbzOMu?x2FUh1>09SiDOdDR(^i4i7dOC?|HqBO{FM zk#D6kG^~34uBHE-%4ZIAt;`Q}bTD#p5%_F_b!NWhVbnbX%t=bIA2t?r?H2cbxtgwy zeV|@WAI#+rC6M#4TCR4|H*(IPx%a{wEo^&zX9pDK+1AfI00p_;QVw{<&vuK}4v+QN zqDG*Rof#1?Yo$K|PcDF6wsia@B(l#TJ@6Hn|hMa<|@>-q|;T0eVxr)~#de$P`Yv8N?n^Ga9u>kDbV z{`#>UEw(#u@`DJ5)Ig3kIEulMq6+PlvGLcyz(CSa7WddG zd9yDfK7^FLE!DBH(MQ65#o8GAOenb+NEZ%k4DQh5+doUqIsucT?@GdK>VvPx z-kiV4I2uBtWBPkhtenUj!oOEP52HdgI~Ym2$tDxQlnW7ywf%i6hu0D$0s1hD~B`Hb-;rtAg3`Wd7Ee%cjWFr=DFYwk-R) zOicYQ@;vpdryW)bL>K|U%mR0*P4aiwm3a$VqoG2z;fK>BuZoM&5eRSZ55fvB>o=jd zzc_e}!$-ny;0#F=`XZRG!|>r|=Y`C=aHs3spAIfg&TlY(1;$OVs(camZFHBX#D^v) zEzK31L||y0&Bdkl?^L{>Uxd5JQ6NkAm`D!_QB31cNmFoQEey#8YtjoaG zv^)cAF+CmK_{%CljV*z<<_ipK%^SXd{|dKb*7^R&j~{U3Ubv>M-WV) z79cz@tNoq2LjcHxgxpN%O-u*^arW)oH!xRKRgFUSb-D|_t5?7o!5kYLd6=)-n#P7= zsSfs3r;8H@a3)gwUJTC6T*1==S?CQo0w5xcZ7qNiaCP+&jT-07EKEJ_@9oV|D8rCZ zk9{a+U}sgI3(t`lUgSVMg4`)&+8U@85@VVI9ogH(!39@49)JS#rZMLQGs- z_^eGvVC-_`*L4S<&)>bzNf6B+ zmB60-5;#}*OI=OP^IyJKC}Y_nk{Q?6#nH~(1N;2A5GI%(iiu_9s;u(F`e0+Zw%Pu%VCS-hI)$HLba)TMJfl+av91&%l zkysd%1fo000X5xzXQ~$LHN51azE>A9^zw4xHVqDDWMX8h zQ|;5I1*a)z(b3TfJZ6mrr>gU8$f5a}QR0Huva%{H?5`;67pQYgm?}wrvux&JHiRqX z3{NDA*YV$8cOkk92xwtH_z1yqHjn6NTQEw{COJLn@#s^Ct z2~P7^{&*K1Z89}l)7`D8NGzn3=$$T)f&kHJDo%2B)YB<|jVHyomy66oM4GgEEF=US zSWbrILz=*9>l)AF*I=Mcs#$X$t6<0Eo~#{?>M)(8^gQ0vY{+iNqyp!q0fYy7Fip+j zao;X+G&nD)n;c`5${fvgR7~f`O&7~|Qz|Ot3QQBD>9qWOumX_j#joa4j$!|sC}u+>L>U*$^$hXD89 zxx}{09|VFwu}^%yvejRc-s@_r!lF-HRFv)A+b3?1P!P=)f$#XUC!4_&pPxqRSz#PYJcyBRETu~qI>T@q8TA!o2R5KxKzS+aXzSj^XP#}tmD!(IwZ^)J) zff5%g)I<#AfH9p1Y%d+1e}fZLf%Ua`Rj1vQfEgXZDzQf*;f{#9HSAHYgB1lSwRP!N zC6)u|Nhl#5(ON2RZk`YPYcK^j{x=b(O~EhP*(smz;f;b7NV07Asn23;Y)n^I7ycbp zC;JY3_dj~cNba$;Z{9laVca^rC>3TdWk@2Z1@NF1sYgan2KY38VC^zQ> zrolfN)nT?Unki_P{TKbYPJdv?54U9ku{O6|s+4%0M*G>x?a7oP{l%CV4I_!sZ{(>! zljZw4^90)?wm*Sj+HHV#8UP#8b=$z&dL67s;Bbe5GhlSG3gg#+sgD2jNmpAt;Y!7X zfJ)46Mr0V*aXy>Y=}S2a{g?m|#yBPs^Nu{XQ2g1COyUBZv5L3keCitDX7OyC<-lYl zFu%Pke+-zNF6PZZ(<=mmI{D^%0U*ixPN3(W${zsW4#47VOxsZWd;RDh+l&5B98Ly>!mb$TY zY=|W#+)KzWE-t`qg-0z$arf@n=;#j~N-Ovvm~8;3*q1K`%E~x_EdtJK__5uY>deod zbGx5_^$hM9*b*uQ1I*cLfeafMa=CA%QKhZ zjgbcLa{_cChz|_^f;=9Id(RbQ4{#g;_vJguBq%uX>*m@8DHiO^5M&^u0l!RCy@GqD zPq?^t;z(0xh9OsXZkHQNTrpQ$lRhXY8X6j#8;>A`)irv2+BSH4;tj(vcWVhu*JgzL zuC?3o(ez>)i(5~}(1?RO7lTJ{jkcKYFvr$rcr@|Qz=Wuat1CDE3OidPkGjg-u2$SB z@shBtNrz`^l4KVmnO`6QJFlNE>j zz(0(FrM`xZ*XQ2_e<(1CSlHMmTSrDU_RoJ$iqGYKw7W&fg>)NLGF=HK{Fa==-gcOd z{6s0Kf5v7R#MTxdUEh za8JY3d`-=Gz~4RiY45C9KWgTaxX7Km;t99y-vis@=|gVCJ%BmpFiiE{3_{HmFC6S^L$Qf`Wq5of@)IAbxE=54s)(9zsWT^W_aZ{5mj!_ZX5p464eSn9NR2CYGCC9Qm7q9oBHSUGc=#p9bcs z9&Wd9RaEfW+LmSt%aU@MH2Lt^GzprbI$8*J&A%dVZM(U$3bA}?Fn+=~(D(8UXh#Dd z$QYFRXwR2G#0I*h^M`e)B+ z%Q+2E^IFq0zrGBY{(R0j)`EgFn7 z*n63HIRr~sP*wZKzP+BV1NLiqX-PegTghPrI28(tcQyRo@nDL~U;5|c!_7<_Lc?mF zRD#5TXv>iVy2@?V`+nLW0cvJuCWDZW0nGe9zB7No7luX>afg%?Huq*Dc|~<~6gl7A zmNdpi-h;mL&wn3x4z%{0*)*}1RaI5}UgUWg_en|q5vrj7BrhsDI;c3u|DE`|IN-xj z+5Il@l3!R<)Ef@?BfFW4suz&^$}@)Lw?0j%cBW>QF&C`Oo^Fo4$KB#RGCL%rZf3xko|4cJ%N29G_r8em*#SqD7<@7>}2? zFNM9fw_Q5lQ(g%zVIeM*Q6f4(n48&OV?TTVKfaN!Zs&mw^vrd2(aVXUx4|1?2(tB7&=W($ z3ot$X<4fV(A-a3*Aj!(G^w#Z}q=byP8j&NZ3O(%{uc2H+jnnFT_fRnRz}%X|t{dQI zVluJ^GaBt^QLi5JCtiXq42sHhje}Wx7y-<4C5U=fk%pRcCnSl4f!q#*If5`U6wm&& z@fGCxa8#AU9+<;B-kJbX4eTzE^#P88Ed-1#=QdF-3sPpP$Oy0V*s0-RC*PFo@C}>N z4b~<=oLV|MFlPM5-*W{2-aRl`)tPqOhy}0_VOj~A?0+APRRqAZ@A-E@_C)vge;7jn zfjy1^_)?Xap{+}x<&noo?uq+&d3v6Mqx)RcdCe-XN43FN|M07CIeh;HD0XQtlfe%R z2%4CPhzE#cuz{896#{n*lLKIw5EicA+Ioo*0Hy4?g~iI;oIL;@L^Jp&AZ}nsHFa}4 zh8YVN@Q}e26EGX!nv;?!V2}okWYD#%er>l4?n0R=Ko_A(iHkFbLRU+RM=5j&Tl@28 zQut-)q9B)G1-o%+3nh!KMGU`v4|C%1-4+0uX)z4GyO)9rd@WEBlHdBSN0WrZ+3R0E z9iLr`8?E=~BRHVAn3yqsKOI3%)!jAv7>Y-YjCeiU2yJpkVd2)&(jhz#Y_+kUKUo9? zPvKJ`KS8?*`f7i7Hz+e80QL9xBm8=MdlwcKz;p!t^}>QF#0LHcly>C*Yxa%sd&d<> z#~ieveU&8y7~3a?0MDr4(e=N_P52U~neznf8+hlVv0OtIB= zvolafpFZ6LPA$iKC042FlHcdh>hknpds|fVj2oAYqyX^!{yuG7p8|Xt0L1%P7;rx* zdG<^)u&$u80KxO4vlFJeRDg~G1Py34x1b=A&z1y{+Rz{>EbIxq6Z{-0&X2AxD}d5_ zzh>auK<2Ch{rnID^V{H^F>dq{d_5(AXodt{8`PCy9gPfL`rDY8`js{#aH>TAM;%ul z4&~baXUswvMhS^X!V!{?BxGO8QjzUsA~BLBC6Rs2k`^TqS_UOc$)U2AC7h@bp@>RO zmMmGy@_wB6_t)>b-nsnay5^dh=Xvh?{(iroO+%x9E!n(tl|X!*G}m@EZh?4&ARxFU zHZifIz5SH0@1T}flk7h#DvksKfEcAp#9-{mS-hQ>wlO$yEoVWplY)W*e4v0`>`L6P z=Hy79*Run6&#SdSATS=<$neXms9g2!T^fB7IPSVztxt&%Y9x7b)urABK9Toj+^FN; z8y@4x`E~N1&fW-d&+xMPvvo99`t*ij-wiN-VL65;ZdoCyl_9UY_uom2a_u}y34a;LNJHmJTeQZoK za7NBGfL&Hk-N?BEG8N1(YM;_zgHS*D`K7tmV!M~NG?F)p-`}ncdi34{{8k*f%;rk$ z!<>KBMN6CA$+HHX?d>D^80DpkwBI z(p%<(9fwR(b2zLbMDmTFy>R*pQ;AXbA~$+2UkC1AA7X z7Q&U*ax1~36`Xr4V9ANvSKy%F3eyRkmdO=IhLdws6^}fJbrp*^asy=#HINqG_Dn)R z$58~XV#w*?2tuo*tLqGm#Z?7qVSsG1cUbkK3C}4>K-%O z^pf90;sLZr;3q#tlcz-@KsTgkHzbN08ok}!zo6`Q$mmo`Cn|gnDkR==B+n|W6_LH_ zepFeZ<79-pW4YC7R0qnU>fv_~a?tv&g~sHDAtFc=c&Eo+~3p zjHt+HKrpmouFi;(64l1}tOjBhsk;_^|c! zDL-RWI^CUyx?T)+SH6l{M1sQy6cDwFGL1sk%$r{na3EtaX`Bq7tcD$ZF?D zMr{~r(pT7aa#fi2<uy((uBlJqS$ z8Cv?_whucbo-I7j&l_{fl; zqR_yEzem9!IfKVSICLZ8gy`7?GF)W@6Ov->&{T1p;9ZfzzZnvq8ozs3raG+vCYTVm_lLwOyWF0C)(>2fE;zB)_8P!qwc`Fe+_ z7r>>5PWlj9O&DorY8`n_=K6=CZ^^I!@DJs(Mp_!j+-I?Cbr-Uki3ZLZ4;{_L>DT+# z^nzx8bk6NYwv7AB?V`*Z^^3a_1V3%Dc(ijP=d!$d_xSM38NVT^X444B`aC_ypca_; zfTp#nsR{8FaeB9*`nv16IN4_?iN9az25s#O^L(wxqnjSLQD2-Ovp@s|2Z(X8C5MHF1#H zHY9ag*jr9@ntHY!i>WOb;u6v%@#}9Zc<%S~P--wGc>arE{NQ?V<4L&EItv|nxwv{N z0!u4nMh|$^^5_D^@;h^8QzSrZ#>Wi#^FQsPw=6g>HvGwo@6liT`-<3-5*JHJMnBOIzr=RO-+LPlW7v+2Gk@r#Qe@Mmgb zw(01cPY$!Y_6T3Wz1-ZnuW1a;%#_r1W$qn)`8Qj-j@Sz$1L_A2y%mXFC^$Sc-zQW3 zcYR{<($bi`{O-g*xnFto2hd1S(b2(E`|6@;VIjW`B#t_)3g)g(A`L~>dZ}3{11{8Tay&YhmxrrCZrvgBD23_THPP>t7pBAVH203iL~ckT((g=Q-1Ey zmwPWm7Um&y$+!NFfW4XX#5A@BVYM8c$-40nv9;^w)6ERo<$pOdYE2@D!imulw5?%8 zEa2#0zkmDWSXa9gbyV*>Qq|bfY%jEKzIU|eQBhy{35~3(sy?*TBWp;i6cf^r+LOI@ zkMa!O`ENbCm@v`$bUiPGV*`p4UD8w!&Sa{>qcs=OGy^{}OalW0gMxOR>K0>=8-%N? zhQEK$lWSUm-%8dHS2kPL*ahp$b3Y%MnXoP&*iNZtFk-^vmnL6`1s5cj?VU`ptr+Uz zJ)FqxdBV*?L(u1(*|+^sI((~FJB^aVe(quRr~gy6P}n+mAgB2b;{7_0u{Jc%{u=eV z!V%7SVb0s^+gr>!kwuEfhd3Va`pKx}3@@0IYWqCqC*AWM#H2BH#v${;mBGrQAj~hW}KeHacMS> z=QbWH*it~Tu9~RyN)Kr23uss--Ilp&)*!{^8T(v{jpuD&pVw{uMDz^vea0}gHc!^j zj!{kTKo{D0d2{xrE0V^R{A1cK>lS+71e?45ef@~fxzI#?=Ih~8=;HtCAL1y@Ju8fzpGZf$4j+Qi@s*=Y&y7mRpU7nWC@5|~>9qnOS zI;*#0WUvzvV-)EU={iOVDYJ`t#fpFuoU*E96Oy+2O*4g*Lc5Zt z?(>B8Y%HR9>fY>1D}rDUiL{4F$VE5}6ddnb*t!I8q8rln0t0u6xDlwhhd1|1>8dpJ zepsildQ};>38@pf!UO1dyKM<+Bwrb|eR&;+Wn!1_K6#IiP9xdV(s7Om2nw=`DuiuA z<)AL_3$3ZsmC!lX3TxKeD1)c(%U0jSi z_-6i$sGAtPM)g7y!{1h0;+9!kZAevSUdC!xl3EB7VQiixA}XQyLB>F?jar>3R= zw627Au09`TiHNIJyS>7g*HWmg{k9esuNMl91EF-JadN^b!N7CDV9LQ_H#m%8bKW%% z%;L&2VqR;#3=?D%gJqet^8_bMRj(%VntcVoH}_@X*=Qv(p={I58XixLSjZxP>_J0xbgm+Ha_x^ z8sBX<&0^?IQvm}4D%qR-&z`l#QrM(g5tq$eG|bFqMzG3uHhDV_g#LHg#@+7H%VKsv z`phoD5#BnKrZy5&_4un{v7A`AIP&;#Je&i=X_$K%Jv)Rk^TM4C``Z%%Brf5Qm-jF*K@P> zuQc^OWX!9#EM9(<-79g)4FOmnRTQ^nvse_VjN;k|V`LmV|Bqj;YmwKXvB3)-ffb%q z&1V3>LX5_9M;jX$(cgT!Fc0A+c=64v8vzzgoJid}GZ4S^M(Pm$L*ij-L}KTz2d9Y& zp>GwHFBz>6oV~rchCopITdNjUYZY|3ujQ;W%Ey@T1z%BLYS?2_z@@P#OPM<&CdTmG zxdk}VU}S(w8?c@)Vu0grV-i8;!48O#TeX%&l8}RHh6_(g>4d@1yX`4J9CPzl=z1YE zP`rS?;dQBKLn+>Ed*Hwo?2y#dd4#BKiUfsMUS4i=x%Nf7`)OtzB?*`>;sjS-IpwE!??Q{;+?;@vwyTEJ-?4jno(Kj{L^0wxc97jk64 zu%;C&RI3zqC@RC@m89~(=HUP<<*;3;r>KsMtgL(YV-NDi_ zjBfXrM=H`Vj3m+KK1JjK*Vb}x@bbu07EwQyTU@;6Or?sDvqTtjHt!w0|Hcgl$sHbD zSs}RZ8q(5+;`G1Mcdp44JBwNZF?jyr3Uzt;efJK6x%hO@C&mcyQlddIB8w31RXP7P z&FP^(*3Gd3E^pd`6gN%mxT61S2yXj?x{y>t?=P%a;zPS2lWf8&ET1&N%xP!W4K2ry zL8|j!Nkv!^pw0$T2v`zv1B-(sd#}Oodb`xs0ot#)4mdWVRu4`f)a{>v0VPE{BO@aa zV{jB=cSEp^o9Wi_l+cM@&mN5k+6GBuS^hX+N`sE$_=V_&k=X>mx30DpzMlfy;$sl| z^YHMXE%#^t$l!MNc5tKX;K&G^9ouJaE@opPu=VglouH!yKTxK~(p^qYPOucPtn)hD ze?re6GCTI?;B^FdK|#_B7%WCCSnY>7t?fIT1Bn%uk7%To&|nHh-tMs*a@4R60FfX> z6<$F2mNBq^P6KZOD-kqp_KMbEe#50+XP7~884Z;}&$Dp59kfAM!*BvNUU^HV`!|`|l8Adn?8S&Y} z*s(XwT%Cl&&+GfYt#y-{%LDNvB`rPJgPDD9I4857!Rl|Mu)^eFZWIyG=pN0nZRu14 zbYx-@7d*5L$VyQWeP(mmDhuJRfboi1RnOj7`df2d#SE)kjvSAGg1Fap%dC)a+rg;JG7Et%G1gyMm{I zWl=xKZd!tc|HmK3A*H#w-#(n_6J@1PG${S8rq&yP5uN_$U<7-jtCggrWWWBeMt)3O zo#xp>u|A=}mC?a*WE~FkOaAj;QfT#{rA5`ewZ%Z0;nk+*D<+l+5-_QE3o%2rNVkS_ zH-n8b81c(??e&AQiShAy;CM_;r>3Wsd0wh%YdMn4FCpv}=?EB8!SmG*A~UX;%6P!V zv2g?MQYkeX&!w)X=NUM*5Wz#ldfT=Be1k{h!uIkiW=I^-s6?V`Fkvyul^YS6H6wp8 z*hVahBa)ms);a#E@Yf}(fz9~LV7iNxbsMfl~q zy_}X4f?zja{fEMHm$3jrXpzTK;%e?G8>w!Zgj$E~cG!2WU#C+;$qCL?LlJLz{Yq7> zh(2?)bFHNEwUxdXr>4E`g!U~#gC=SFTlP|&nfkPKel+v@X zz^!1*U-jOb+i6R9`6DeBDi*vhZ)i_q(9+V%(ZAw>U+huhFwoG@IB5I*{rwx!`yK}c z1fZ<>RoTx4{`90_+}+*%X~GqQ%5C}^3m5mV!)|w~ptiPlUteF4#dvIHZm#Lj=jY?& z<7lW&ZEZ_UL717VNeWEuZEd@J&GpDhEkX9pxM^OUI?u9zprHbdh!Qt4V&XTowL%$> zl4E22B{DvL{(N-Tdu=dZK8b^0Q1GxKsj{;2fpHr?78)U8f}q=GBl8VxY$oM21^T$# zR8-%;f9LO{;j^b@VR?0Krl1g6R>m7A=j`nK`{&P+*%Ti`omRrz1qt1@_&CP zD*pWWQ{(zqyUcP(^zy9P@4G~vK21d;y{ZK*K9WLEVl6{qokav zaZ`T!G%o!IE-r3!7~a-*&6tXr$w?uz?%SfGq7+fC|2D>4)`!new;J%#x>ER^&W?6G zJUn25>|I=5a=l0VV`xM-M~fF$`m#3GT3cJw($X5v|Gn_=sH&)_h=`DnDgM)tA26~; zdhg!7Z~6@)t{Y@;p4>_3(9_eSd}O<^W6WW6a^N7(7W?U=YX0Ho)Vhxd6O-xwN*}E8 z`1nb>-$elJr_$2ICpi}vr(1}Be}8{zY3X%BrdT;fX68Jzp0uViy#`+!L&Jdfh4vVl z^fzzN#Z}DBKV@WOeEIUFzW(CtiwasSqhd{1T{R62W_&DaYHGOKfm}t&43!TbK7@yd z*XjQ${WUan&=_!S+ribfJTg+j#>Qrg!_mo!n3&iw`8pb^&IRm+(9qB)Po7u}e|gXK z@=1)_-__OdCWBC1N)jrnuAYhI+n?r|!@g^>ANBA%E#2m`pM@2D{ra`8t}Z^>12P<5 z-m*t_(_;9}b3a1LtVY&WR$x6bIB0I)7IIlrbG0HNA?ZmMUFM0r%*D`)SYK{EUbTO_ zv9ZxIXD@ob|172lEAZp~zB4T3zjWA@tE;OyIXMCX0&u6W>dm3JH*j!FiZykV3w3K; zJKx^3pUTc=ymRNyQB=`WHML;TL~659nn$Oo1~l9Ch1pnfPp;)LYH4dr;H&BBDbeEF z&eTs04mz(7-=mL{%j$a~FaOfSME$F_bXMPo?M=cH~jU*^6YHy_&6&AgVS<%Dl8OyyR-Iu0;$yGb;Lu)zwYS%qr|= zM6d!A-@I{ha-zeUKVeOVAJlyDqPhL_aO-e)cYa*j&f;i)mGEYm*Y4tDMa3>ycNC-! z{i&=hGcWI(^okx5RIEU_qOm7^wI()nJG=$K!3nsD-Y zmypNqVk9~DDCgMN7&ecoR3^dQ#59BF}I?PKsI6Uya z@am^!W_FuzxsDb1tF!X~+3%5W`c-M(2WxMjR0#ciQDLiFX8AnEw`!Vn`z^-w$QvTM z@~Y6IBX>m1-MzA|uI}46&TuL15|i+#sIKp3JqY3~aNZJ5XlZH5sb8P1n!i5sjX6%v zY3cWSUaR4W3Oh+j$voxs&AGXZ++5eAZ9{#1eH@IvYR_m}~MSRaR_4RwS{Qt8*dzwrZmX@w+&bxQ-b{5(%ciL&xSPw4F zPlbNDxwycoyNP_v&$qC)#%UOsX3kT1ulnrSwHX%?_icl|OzFC0&wm@_%V^}`QuF7- z?)n<4!J|tQv+Mb_wK~emF}h;<`VC*c;2{3ZbF;_OnVFe`gKATkyYTi)OH1+b1U^1K zm9OLD`;|q{8QIt<2?@C^`Waumn1I6C#M$+M*Xr`(e0})qGj;WUhlfz|W_dyn3rx7i zT3he1v$I3x$jtoF)ukvSlj}xWm;dS0{rmU*W8jdUzGL&LKc_A&D?2~i>nSWOEYSE? z@3F^35|N|A^7ZT24b-l#u3x`?>7167me#ud9dC=G^D+>(-A*kPLN!%azkdA-l^JTZi0A&w8#WD9RnTST!MmL=O+i-yq4zX?^08{4DKTcKHAHdFMX6F$0sJ> z4ib}+MkXh{p)SnN8*y`ghkeiU@am;k@BRKV7p}jV);t^d z6TkC=5jb-w$k5PGUCqjQGzo_e83DoW+3{X(ZZ3mtG~7Gh;$NrT`PK;dY7>~1%gf8( zzPWnwK6*4UF;P%ZfQgC8{r)%XvtK`dDx?X$w>lUf*Jgb~K|(Uz+Y48Q!u4Lr@CRBq z>e(aSZEYb8!V70lXK`Bmv$M1Qfr0h4H4*P4d$=hm8P^c_I?Z{;JCiucaoXyAPAi|V z+L``-7Z(@ju(zaGs7#33yXW~#nP^@P0h@luW{R|tRD{=`))=_N!dK0rc*OpE#Ywb&*s{-Yh3SZ9sm5I z5_FZ4k@;u-Rv5RVXTt2e)kq+5W+ ztgsEfLs4)eg*9o^*1;s4KXUd=NnCMV6_0D=Kk!%T z|9fG+Di-c=bWBZ6V-lb-$|)(4LRNIErLk{%b-wzdY_xe%(;&6`a4Sb$jIZJ}p=2lkU zG>Zejm%&fLJ~b}Zba6TO)0q^pDjZHY7tM^!_GQUVO-->7vEILrKjuJtjFVr3p{qOf zyg(h$n1`2FbKC+wJ-v>O4(!08(NRqm6$I0Bvff88-YcLT1*RQb=F)c0f zu;z}=&hMIE0I|R4HbX@|saZaMP8=n}{qUhoh6>;t1fht6Qi!6T&&9=+q8KNa9UF_! z&(H5Gk%#v@m@f@M_)@;a#odaMAv_QiUlEmDE6jKVAYeOf{_M;fS_ZuMa_GGsM~e(y zU0o?3THk;8Q2qJyKVQgh-I`lkD)&A2ynQn)xYU4Q+Z`2|jfWN<^xcA1jt|}`fRKmc z>*vn`P}Faba@2b4g-T?o)vm7|H104GgiA|H!*O_%kRVz9TOK|0)h>_CIM1U;72$-;H(h1> zlR<_hc@}_*f+BwZ|JvPR*(fL|0XOKi zGmg%Vo!s0i%unKF;OjWzoSd5KG86hlL&AtX+;}U5X9a4Q=RON7>*ogIKZ}bhENW(E zdG>$fl9Iw`KNS?nS9Z{c=S5FS20K6p18A@`yNVnG1`S}X$3!nuF{T#2yn z?62q6)lo&sbar;$PioZ_`+wg5{~z)EzfRtN7wv~w&RkdWBS4#&2r#_c!k+uHO+j>Y zbU*In0GpPSw415F_hlHr+-71}Fb)S5RRd#D^6B&E2fKedpJvIRAk(!T#ugUv)mFQ0 zO+yFaBYS{D5yeChj(S7|TOalq_7vXh4wFokPfh0P28XOX6!(~!+szD7186llVKqZS zLS$rQPzV2@po!ZDUY~n-1HrG`+B0EV$tI_qTz4%t63>B6pofCINc8utY77j*pLrqd(V4#69Jp;o4 zFok_Mg;=^~C;%2*;M$mQ;i$>o-bSIX)JT69(jS(>Cw@jW`=N^qwfIeX7!n8#4vC4@{^?{p$a-LEiU4;>HfwG zneFc#8zaAU3kZX@hK8A`X>L~5Gfho%b8}5q)%mqGRw=?;!6CJ^X9km8v^bB^l0tLj zlTZn$rAR{2#d_9h0!uhzy!L`gHWeF3^! zh#|ob1K^?)g^g`waPa^9Bd8y6-?nV{+1I2f zd}#*<2Pr5hFq&sj3|9i=n(>0ae6e2q;Q$qL{vnz;HhgTmgq~hKEaRj)tsDxxqvouA zWo9P5!;1h~blU!HW4LG#AFeK%$X~8G20cIwc5naJV7I_m z;w+#$8A>b10oMsE0dMLa{v+{>Aek)v-!u`6*_7xvPA z0Gv-W)bx-yiHT@r3J8KGuE4bC^f+fr#tHGy&$pD9k2Fv`FfWIC7$SjNL`C;d5b)(3 z#oje~YzqUf_i&SE`X|-^`b>6?miIOY2?$KPQ|_{R&EB{f)_lD{-1WOTk2dH#{?#}b zL6_gmB_)H9pz8>TPGmT37Ky(0_WeykO4qO7`S3w0kas9cONcr~=Em{O(wdqVv!-!5 zV*w1Scti+dWAm3yqwv+l>x`g1mNlNprhW%Hx6S*?X+n2xo$wino=)=O!~!(COiTdo zU}I!NZ~Gz?D{YveOv^^=AGN!X-efr}j;j5Lf2+~K{ys=q47QS?MEGde&u<}yEOb<) zm~WowhJ1~TiXyI{lf=XdEYiGNX(okF+E0fIbPd#yzvE?p|NfmXfB6a#kBy9sto#~F z3y|_DOCo?|cmcHoWPch-Oh805xNM@h#pSj+`5t5kz(1g!pwnnPe;!38Sl)o)<>dw2 zy1t?8NLC;l1^JkhTK{>es}DmXu$!tzPv6?yw6(S- zQs)E+2ue>~%&9a;C(zt!{Lbju3p^Qk`w^t5q~ycM2baT5T?a}oA~9+f_m2QuH#Sm| zlPRgF{;sbJIxhYM%t{hLOh#sIWW;4T$nq~9#GemP*9r@54Gd^&ZA@BU6T`QvuC5-2 zN3*28bbfj`QEn5Y9~c9@jfcztwFro6j*h$e&+;(r@UvG7;fygQG@J>{3=Dj)tkj$= zmlKwlX<+#aRKLjy7xpXYg45H}i2vgRCJPG-6l8v30aOMM!B~iX{eI641QHLicXDEg zlS4x_94mRbHC;yuUAoF?8ALGG*~WmA6Hj+5>liK}9D4_c@Q4VYX4u!SYn7N>KNT7& z#H75N008stTlI~Se4yMwM}Rz3i}zpd`wNf6CMCI@>{}ekCf6NY3#2W7SHhib|EmC$ zNFAL?AXPVR+#tQDot>3+Eq&{0Xc!9UH9#gonK0GWP0h)<^WRTcz50ZVj5!~T?|@qA zZ;+ru>4`I+IyVB{7O(^kMpkk01A6)&O-(4s_J2w0zkmOdAK59r=lXN7K5~PE9Uy+= zoIME1+a}^MTso9yeiJ~08(wyj(9qB*iO-E67%;qnJ$Ij*ThQ#QfZv5TqgtGSLGfsS zp!&HAEL1zF3Lw+=^#SGVYHMo)$uxrG9;ivs^FZ-j%6^>S?d=V#OLhBp^lknUAb~)> z|8We|yu=QX$Q!7zox(<71y?sW|LyF|O_gCye=Ajz%24?P#9%AePp8+S7z zcRudRkPK_Fc_r28Y65Q=86N&vUOsDJ^;xb$ad9!q?KC1NkVX1SP&&=JKD3g5*aj0u zn6=*TavH=8*xh(EB9YP2Z)1<8MdDB`SPHGwikqo~*KiQNZ2WW`HN$V;y2==DhH-Oo zY1ca}fHo^_m8AyEDzM%B3>=V!wkX1idju`;7ZyBMQa#agk;@1fLy`Bz3FMSEfHHzGC4@_40Mu{(mu+yL z%sT8Rw1@8CFLi90eJk17z(Hf9C?7>rKH5CmS)liO6v%+?g!>EI{e@iT0JrmWEoO_v zaomT`Lf8P6jg1#Tz+kACJo}iH^*!;qj*1Gctt2DrXq@4%#JfNu{sQ#f*Z>~b^YiB{ z`@+h~5orG;5zhfR+uC;D#jRu8oN2fO0rcYH0*HTXwFTAPN-G4hPMfO?uBbb^PYSWd@u2U7*YIMgWhT-y~RBYzO$-z3X zLQsen^X#RiLvnMOyeIqm=qMc{o%WAGSGB%~-~=kHqyMInh!^-V^s#!kEo#vaaE&-M zOB#URwdO5*9wqm#?t@RmVt2Eotc>`hVx<<)zWt*?KvSTM2lB3OY@E$DT?1aEli#KoM>?<8}DBk|+uap&gdfaHTlDF!qg z8fz%Vp^xGjh){bGMtg7FN{%I zjGzqFeDDVeUVBJVqoao`rVB$;2}bLd@Q)+1VBzGv1n)$@);%sc8T2wQzG|Xjo-=}7 z$Mdgd`ke*GcEG*eBA&E^Y7=6!(JQ5_y!Gwz2`Cr%6?9kx0oiiR0oO1=Yypz(b#*b~ zy{igK<0EsF9HX|UoeoakCdOXO={839$v^~7_dUt4s`9{Bpbpg3*5)uIIX_-bzoIH< za<6%c#_D})z;9W8pE)kW#)iwl@REv3nv`@csh{=Y1(bYufeBBQJwMz#P{GHp*xz#;q4$)5{Da&Mr&ZtGoiC+B5`2aB+6DX9M&p#)^70jtI077n zqazm14b|L_9_bU)_|3P3XHYQP0^|U9aBqJf4XO3J6uEP!bz~$-ivIdAMVwq|NeP9p z-87ghV{`p}XtY?L$5t{KXSPiIx~3wFzl9on#D6f!dvtWfCm?`|KrM(M<f@@!mO@Vw<5%5e|AivF_uD2k3)svrEnA>IVVYEA6F`@xq49(5@gJ-Jy4RIU z*#8j}{mIuB+-BX@78bYSqxw-OLVkQaJ;xK4k|c=`rzp~7zn$MTHKnVr?g~l~K&sk; z-uLWGEk;F}Q#j(~e`a@%ijCVXWiMUkexQr9zqOWQ><7REkP5!=2i`~9Pz&&cToV92 zblt@OAoNoN1ezuqP&!xxgMy&hfWnf*sXsk7=J9Vs3%1g?Z!-+9eermBd7)O=*xFtI znBCbs9qv;UO*#4Z_)LPGdN!`-`J*<7xFYxt!0S#0aHrg0dX zB;aP0%wc!@i7@nbGfp=3FF~zaIWtJhBi2Ev@DDl6~blMX^ObT;J%>;;#*c$(52}ynyq>fo*WpJXud&`$tYh{fTM$g3;^_P zVxqn2#>P%Q6wUsA)$&-sqwN4Gdf=AU6Xji_qkIn@H~>`Eak_vy^s&!8CGz*sY8t7l z_loKL9_1Ysrkne=V-RMTxLLN37qcYf?GD!jau#lp_`3jiz5dnxX}ZS^m{BqdXU}!2 zomT-~LdEOWdjtLd?EG-XOT*gQy2YsY{Gck16`I$T|L0`3Beos02e23f851rKP-ekrgAQ*0<;qL~ zs=4=xrLlC({`GwEF^3sR6@>-M4eR^N@S{*UlG<@O#~Q|GW*W-N)mge;hk%+#N=$rw zbi}S(%>#~O&#nTA)j*wGPf^WYpyZy{%k$N!&!5-A4yb|J{p>FG1s4}`AHZs)TrcS- ziSIORQGikkV*IQ2h39H&3W|!LKiS*co0>Acc>+o?@vG}N-KAQ7;#qwd7#N`OHaj{3 zEIKl^3Kt`6h@F>nWK6Qr~J{JY5P&o~A+C1f~E zjEvb3ivhzGR5=Ze!;P`;N=i!GLVW-~wx((T$_tQ0yfiX$1a9Nr2!}5*EiJlzfsKs~ z9LX$_ywRaKodPaKE8@efEB(QHiyFR)HO7KZ=S*)1b24c&oH@D_ZpfwpbQ#OUj=#jAlje({f@uiJ%BSw zGTehM*l<5Y0@f6^gSDL6VhNq=5J+j?? zk_gJLwT+D+;SWN>c0oQqtcmRm8CVE7rBJ?90n-f*mV%UpAh#=^snmb^#3Cv>Gc!XY z@;*I%>(3t-01Ds=+u3b-9d3e5UGKhwiZoW)qPKqrQykuPJ$ME!tU1A3S7^Sgwlla`V3^zdkHYrAPu zG-}^HC+e|l0=xuPbm@6ot2PyJ`9^SS4{1AEtxw-z(>Jf@espnipv=9*961rcL;iw< zL#u?5pWh?)gn<5>swdjk(~NoV_xC~TLy)_7??RteV=aS1{_vqIFeC7l zpu^WXuf_wHEG*=xQS2rkqaJFyd@Y9u66o+ZeZSTII{RgZrB7|Dbhj*RO6p)f_Oe$hS4k#Q=hx;d?hn z@jgXM-8mX+6F|h4mSAl)HD^`>Bl5N7biaSQyK8fJto-|KLRs85Zc;gL@jgdK+&!jb z^NdVi%rO7zOw$={Pvk|!1xlo!Q&xSNMHDy5P18@uAE)fwCs5%e8348Wzy{`n^xLU5CTEchl zh8K`Sg^`stgSZN_QVMOH95BN(_!R1gZ(EI;2*82l-S(HSYi?s=Vw$dT>zSVR1)2m@ z0m_9A+YdwIn)mGAnCSrPw;1(BkO)`vS-eGR==cLh{vC(QbQ%={&cVKM!zZ%@!b}yG zL#$94wuniLM>R#-32#z*ZAp5TJ(d@19IdTA5w0($TR%w>2vN#|@E=#whQT*q+^C{r zkk0IwELH5!r5=dvWo50T)Z)C-^nipbLP9=e!aN zwAjGF00hh}A3i=Ua;L=5fF^$3DO%OCGsGoBANnR}p^$m=K6a^R`wI{)BPJ%spf3e8 z<|2BT-fJ(nV(R_#t0pVx2voz}ixRjulNMI4dgu zsa)(t;DKO*chI4zi%VW6F@uCLpTmxjw8hn7dvhlKw6)%E60vcuA-j&>@3 z)EprIYG|Mz2ro|ei&B$ZwY9W#>%Fxk>M75ul!>qpPB-q(U5Heu_YA2Lw79*Hlw1f% z=1(8HhM%37){jp`pjjTgyz7-V%i_$1Hkq#2*+D|k7aVOFDK_9{on=_Rcp0+ zF*+xRy4*ZGDFQBQY<98{iI7JLy95|`CE1sRDK@kbBE5Zze(Cz!LxZgLG2kyJU@tJv z)iK}@2^t`{B_gMivsC>3&QzweLyXzO`t}K6}-M zg~OW@UlH1_NY07Q_uS^S|2OYT<3Q5n%f&x%*yb`O{@P@TH`s zP1`k`Gikb@b>uC7IZeF#ESg5N9txd1Db!`CeoMj&Q~J=d54UD|{5*)TiK~4tB1-L? znbvnO>=3b)u>F6wCpr^PUsqnH?*-AW9E_Y*m)~@|!9WnL@k_@L@*VJxqoSe|fBnMV zyiHChws&}_U+-O&lEUI?HZZeu#zyC|HQf;%-K@oKUVd;M;)=StmZzF;6*0re#00vU zY7q%z)Y`wohn@{}3j$=4+%=ZU7JM#iiFtX;&?O*VTCBMNJcb-6bd=lUBH_8aun4-y z&GXpJ;-*-s#MHyn^KE_a?aQf&nt!IjahTH268M%qe=bx-@I5zHX)-E?d<g1Fx;PSb5Bg@&8TQo|e#so{MV&Tpq5 zj9+yoy+A=&*SD?b0920?J*GF?>X&k#fJziObB@u8$b+u=1 zzJ=|kpm5y+2o+GK2v!n{jRFtUW+=ZWk^3D>>`^`XXyw`R>Xu;HE_4ylj_$DUwX{O) zLey`mj3yBiM9d$&G6Zm;pwswWo*%xt#Q?XOo|e`vXqjdH$=Z^a_jy8`_%-DA?NDY$ zqUPlWp8_x9q~)rpAJYx7n1O)W{dHN8K+Dctj zeWGlk3E@i4hO>Cc;Xx8mO^xw-|HnLuo1&@QUggELLjSswQMcwuxJ@UUjQWPj?hW|tC1Ca!R!&NItSKh0ZNiJhpfp4;Oh`^|dog~mt?x7l>F zPeR$ykVKYBeAW$Xu+Si{=G?74G(3D2(3^jV={^>jy*OWIO|3H(@7ezXi>4Ty6+?#G z8+TvbH(5EB<^tkCC5M6tr{up=$VDn%Tr=a7F88c590Y#+;9NSkL@9x)vfqPEOu6UNw?%n&!{WcNKc*F!gT1MZVl`Dif0h1^zE6dBvKYH{?LqkJezEkVFDHMMF8dpVj zCR9X)Wzb!cDlhJ&h{KzmC8CSNq$Jy}ARKT@U7gQI%jNMht5%zcSaN>HMObbDK}@y} zq0SDl>L4$aXtE<>5)wZkfsD~V9&&?Js-faj9uK&W5Xyo53F$PTn~;jl&CZ5+rRe77 zCIJ^=&F0egW!h7Q9Ov#3m6OYAGNz?B^=G?ZvtDHS#m@O3)<^yTCh%&4#1JC*u68G% z0IG*i;6J{K)A!6`#is~t*C^ML;VgMIwYJLHSb0@Y`&{}yLK?3RHe8wzFFhZ5{4g4erUHDLneGhCbY#X;UDm>wNL+Tg z=AFd>4hj8zXfU>3O2;QB7b+gk4YFcljo|yt^0ZzhhF&+_+-KFvUZ@fl;+;63vx$+d zpz%2w@83-)ew~}!-OM>(y2Pr0MYef(=73&hF;m}RH8SpgX?Y?bsj9Bm5cc}@ufO>+ zmuGu1D>WBvbgeIgd^O)4etneYmDYw;{1SvZzmZDY(IW9zHcvRAR6=1g!yG3T|EMuX zkKW%qKIBt2`%J1O)2xT&&i&Uof@-yOG+#Au>5-4*Zi%G{PmK0C9A!$Ie*JnG7dbxe zitf=-_tF5u@BRH4)eCaSFG_8hC{=X$;`!c|$1Ypp;Ntq_lup%oX;gMSxhwyc9aPi1 zoSc}*;_@=MBB=G(>HuZ?0+Bh#hWoB(!=(}NuJk_UifBFA{S(20yN3HUe`r*bJV+cO zAfVnol5dtLG^3#uKHn|Tdik=;S>Of|8?U-bD{8d#+e`kfP?v|^BNw7WEOP>M><|KZ z>NWm{S+1Lr;Sp>i&Mdw>PkvHwf_41smnFz@+lO0n^w$Ictab8P7Of(gW@g858MT}DB53|O6i?E)Rr7@d7IHY0r57wB*D|; zV^9a^CT_RI(BOGdzM}0du%F|=^*h^+#+~6mgUbsy(^K08Vlo9{PA-E-cDXb?$ipXaJKjKCl>b)#9a8r{@#I1Zq4_v6 z0(cLh@idGKQv)!8gnQ6P1S6yuJ4Hw9SQsvbnhB_8bEm_SjizI~csmt1ce|5Z&$ zsVBDUNmhP|;i;fZEm8mMeVGI#IE} z1leRabhM738lI!$K4)Z=DBZ(9?fURA_($@)H zEo64dv~p){5B6(Z$F6*mh)w!^GZ0(ON;~|Dj(wXwRc(I~~$Hv=x3-R&4Xj%=?U+91sr$cBzAj`+0U&;cZKB#bHEltBy9$qa;64{5k@1$@L-qNP`m=%P_D(73Ka`Yg zR+a=P2sO0~Wcs|H1d#>MvIq;G$B16I?=3}DrZt1Ik4KYcX;rYgY?hzr#?3Q0Hmzs% zi%3_wM+FJaR|kjuY8(X$7YNX;z6;^K`jv8$#>U2w)l5%MhYacp?wX>HPhDIb*IAZ{ zMgGo?@lGH*9tr|#rg^FB>T`TS42jUO`n=LB?Fom>XK#=&1W@f6f)pa##rMrIaO8tCYJ&9dng|hBS5X zBqqF7TRV62kCH!&MUU*%mC_W>_LT7uF?)Meo3E)2ewMPb?J4{y*Lq5LKf#fJa&2N} zCMzo&Vf7lNZD7C&boChOmv0jxCs@iWbT%}Qm*L{V3WbT(Q=f&%67s|l6$Ur#)`G&r zba(^o*=zk%Q^I6zuc$csY1!BWT{kp=N`Tcqx8r`4J^EafE(0wP3F%i=?e8!sD$;a* z@+7CG1~yfVJMKCmNyMAvtgvmCg>97g2teV4I_>48V;H>eM+vg2SJ>=+-HyhQo@S-#aAFWuSI6}rgP7*l&R z6-4ICf{(twzVZC|(Cn;%vT_d)1$k34U#vj(AJay}ug<^zw6tBr zQekyyaL~lm6cYSUXgg64{~P*2|B2sW!llLj_RE)z{Z-1;6lxSiN7o0~9&$(u5!R;B zY@A0o#PNfgSYY&ll{K@^9Fzw}g8aI=7!z+z_Hx<&`_yn^cKF|cO`THk5Ff3H?Tfc- zi|83oK~@$aK7Nr&M?6%AU1Oj&5QhoWy5V(apOlCK7frLDI#W=jN?y|1n*EfIjcpx- z!E38Q9VQT-+4fugzPhsFA9Oaq+xspPBi<+y;1Qfe_UyXP!G1wk-f3QcyB^ez~Ff+zvl%yH@b zN#K79QFD$G*jZTQBW3t}t6r0e3JP3YXul&_h=8J`3GrX-<`^sdUJMRq10HU~v*aaq zHS%-;_zp<9G6WwWS8%o-*b6E3m^W{R;Qv5v%~g2+qsAU=Ng(yQsVuuO#`np9t_q~4 zy?e(JxQUN}dRP+*UTaAVFcVi$N!I;ko5NLua1tsRcEjXWeWK6zkK=K(E(fY z7&PlUbduIE-~sXw-fccO3k6@l;v%0uf1cMaDK2&Z$<5Zb(yYgPX=xga?T(*6Rh~Vg ztUcEKue`LretNuTMqfOG_YaF6Dlea);P;rRsVQcKceJctl`wHbPNM$Z{OOzj8UqLW z@y15o^E+Jk?qL{RQeWkZ7Z)ch9gM*vf~3Duc;!?wgsebXw;25N6eg8G{1AEqF;Hqg zgO!ahc;dak-&ZWm+q%1x)pRuiS0!BJw877*lIB{zR4UqNX_MjLg>XYNVjl`)g`;QTd%B1l&m*xKs7cmZlDCNPPnb?HbU&wX>KSs;^xETRiK=hknx z|Em7@KA%Z1PXFG;HExeaN8qwbD*W!hR}e_$kg@pm?OR2Wim0OrD`GHHU(wncwe2A- z?NQv)_BlVl1HRCkH>bawDa*)&22b9#cZ5-mqgfCt>Wr0vk~#iLeEYnhwzKmE38&I@ zX};&hS$|}tCA%xp?Ym$$=vo7~O~5{23>A!l14DWWAJB}0gXiMnSV7yLtn;b} zXu_6m^#EBAe=O;HRn;+kJZQYl2KQl?zo>G|ky=Gv>2U|Kf?9y+^1!MK^dC~c# zK|wf9TA6(_N~r>WHfp)=Z@)P+XdJJb+#fmh$^J_L@t!A^jQs-DJQApSx+3<3w+d$sxb`Je)sr+k3K zI!w@!vTOGC_s4^o0ht17y7LwZzxHR!%A9OB7M2fr_>Qt*;%j{b9r2%^&wWdBj|dyx zZ!@!42Us3Vz6lDx;F$`42b)aT??Q;5{}?=9xLnYaAsYtSZiqIR=t~G2bqMhD!z^z` zpE*JJ{@M_mQUC-UQ4tmv7C0GwQXl_Z3>-o@9h@p~QBIGJz-R$jrQn}&Obzl1;tx}* zM`F6V=Maq)dOM@VK0ICL)sw~x<03O9F9!;B{lb^VU*0Dx@_oe13z|PG$h#k(p{#7V zhlYeuiP~^IJG;ka>{$Bkg^g~26X}Sd|}_Scd4c>D|F1vX6EKtmv-jn zD+>!wFrxxaIn22QUbe*pd53(VgQH`nDwusr2fMp4(F$NBAbr!2&kxIM@G~qDH|keN z9Kvv12rVo$E{M}m7QvJ{2N?_IhT8lhe0Ep*7?4I_v3zdI+aCci{6H&BO(j7L+HkHi zThJ$N^rcNVCQ|^WYJdX|@@BYW#G0aCJN&`3$Ja5D*f-KZvA0Ga{OYmug~&n8>9f9X zss;J^Q?(vWa!;C}h)y^7#mHoVZv;l>RZfJ4CY@P14MwvI^3R#?slZ`kA;J!7ilh>J zE0F=-(!sQHc4npoBY`wwz+0&Q;7xdW0nD@o1`dh~>W0ITICL#3DJd8RfH_E@++d$T zLbpTmAIKX60|hnJ@5pdi9~4`+V%yMB3?u`|07nA)`&EqbK9d&4btPRsnA47-q5*zB zQE^#fpP^-Bln)FgJRBSGmrKl1`7CX?aw)--0HaQHSQJLrf&^Hfj3AI^D^f0z?1YB#)$ObJYq8FAhx1==*Z>)i^!6St#3)3Ts{gMnfar?z z32!a{ZRw(pv;8FV3XjGGgrlvKL* zi*l$TT(;X$f5YK>1~DGA*OeNXS=?`kJ>m~(Kcy7Dr(vl(LsIV>YA zBriX|%A|t;LVqB@LB1Q%>9mFuM1w*?1gJT$A@A-RNYB(QQi@{9M z<6Hl+ga7LX|Aq65Ak*tffOcO+$b+|Y@2-WV6=h*gPMQ6j#8dK4Du+Af60-qhsEw&2 zJ^~>9-@TikogJ*e1hM2dhovCJEG_puCnq0rbR7Nk>C9##c(rd7N)w!n*w}5r*-c(* zw{T&|3(})Kzkbc1D_&{3=`&y9hl7K)AHTbV=w2oce@G)U+*O!F1{{Fd*kHI@D7sMN z<{j{2nheg)dw~9?E9HIDc2R@DCe61nQJI&Qm(XF-{hU6Z=|4VY$zimQ($(&r5B{6N z&ybv4W7>sHXvY))`xj>L7^(U1ZKz~5AAh!R9xzH1g_Zn`g*<^oCm3R zhJ-3XtBA;@B~v&LkL99P=jT=TbsEuTK8Pxfj*2UW)j&>HP*9LB1Llb9V0qK6P$01a zT_bm36*LXXBi(Bet$>KHp4|YMw?(tE)r5=aJOHEr{)$sR8gFe+;(2s~|Cy^_enCM( z>>Jt#0{BmujO4-~E;H8B(xRCBaBN}%6CE99XV=&Fo@iVb?*)tHq3vL7QahZwzpzuU zjeY)Ya369E(7k|$hScaw>cCw<0BEGJ>>ityt3#jPVWEnNt7C{vR`~P-@&KBa*qaqq zRaFpD0AL52Bp4~cnW2vg>8Jx6-`IF}gY*L`QtwmH+1*WYgaU&G5G0y|={p~YpY-;k z_g?P6(+hTYZLEezon0QF;OFr`+?q6{!-DeQ%s8qt5Bf-slcd~kRu zo1p?v1#q^v=X2XksjnB=dO;v9-FkNB={_thSfeg2-MFz;!~t_Xo7Gb zd$UcM2kZL3Ke+U?x67Ki{>v>by?WTfyy8p$ZQ+)Lnu2 zFk))bHbbRxa1g${*mh&!nu&?~5b6Pd8-54*{jvYs4kS!qyn~pSm!0HBSaW!b7{^t{ zH$EPw;$L?nXw%+@?au%-tE<25Fo7C@?H1u>U@!}3;Iypj=g^P~ZB;WZ))OVA=kzc_UH!#p(>uy24D_ZTUt_x=-fgeO(4${vCK~s z_z|Xs8ym%n_oEx}CL36{W*TC`!vi#uHNI$G?R_Z=e1CYt090;_pa;O|FEAS6E4?aR zSL#J_y0#-w>9KmBiSe@Xot@T`lR|JpK=y;|G|A>B@ia`vOxCz@^7Ct%2-EMAZVtr4 z^a~EgH4)h0L37pKE$hu?DW6Ts)YtgIp) zyDh(eZ$L-)Z`RdGR8v@I|neVEr@%rk-qlQcB=L8cymbc9g{8X|}^ z%8UeClU3i{wiZDx=}8rI{I{V(VnrS$^Gr?c_8^}&n8>iamwE^R+Vy}M9x`(B;)GO4 ze_wmV{zK!KV#Peh7Gctw3HN%>nA=7Mi`K2kG{oiO6Kg!m6B?Fc_Kfz zIv{&+KouHFC?qrv3(;yMPE9?6@t6Vv`7n8Z_g|?omd_7eiibAi`}?cU00bQ=L-&Sq z9nt$a4eqke&+dl_7lh}>%;q3n1W%8FlKJH4lK11Rx;kBHbUXyAi_!geL6~^1E-uiV zVH)C<7|S&Tt`Wyn$dqj?oI2_ z2{pCI86LIMYXJE0HgJL9ip5WWv}bqY&MG{iq4K~G$~>5%&B zQ5@brJ`hh@o}Z`Jrp&nxbk=5q1I8K!1UcuOTj&!yybh;f8h?9RC1`*gixfzIdOBWv zhD5A)rF>BR)$0Oy-dOZLNWq!hYkqxzV$P~QS63^llfaz)T(08e6t)Eq#ceU-D*Y8g zC|*!@4n;VbnK8pg$#J0U070aud-?+ZB)EnLuo@8wiKP{ut)`m@^gpfQ`QF_>74H?6 zeuPX^i73J@z4xLVv>S!}_eA(d86b)k6~$6v zU?hOkqzK;*B#&?~B;jEsiG}sBh)`mn7#ss7lODb+(Et;>tQ;ImR10|G{h)q{UYK} zQJ<5+wzkmAe_HG$U;s3xi6n>6$`zSHxa%^bz@9I~pib=a53ot#u&U3W>wY(lQpx0R z?(*Flf6r-p~5TzpW>8$iE78NLxg18RgJOb_{lM!C4TB_$-RZ*Fqjy9d9&JlbKX zeJlgd7AY-Fe0CL@4Uq^)&^f$;6$r`41~&(9AQBz%cR&$=bmfM|LJ?03Xn=~)Vgd5FdW6Y)$h!VbEae&R%ktB$c7E)i%V$`uDOBGGiw1TxXg=p< zgCAQ-i2on5`}SER4fmWU+wsb zb@GI&YibrmO;ht1Fyas0uSt`5OB`~kM|K?$ zh9%pG4yD#EclEn?KRGOOdAfDxO};Mvw*W?4JepNa-ilM)60)|2BrPo4uM~JJIOU1$u1?S0RATsdm z5G<1K$}OekD_H|U4xVl|r$-Yxc_N}sSl}mOa zYauGhT9HsuMA^Bdk~Nei-}l__^7{St^H&+noO3?s`8>~iJFp7)q;l!B3lf9TK;y*j zZK}McuVeH4MwMpi;S`cD6qZ?fQ2<(!JuoxSrq?0SqFTwGj6WYmr9Ma9YE5KpL%k$Hhqyqoy3Ea_=D2Yz>Fv8 z+c4%m!K?{f3*NW8CXWHDrzsc$ZyX;Q$}B2E5ok`o{J#sg%jEFRAj`%%!jdmI6D>wc2)Um2ydma84VkJ zXpG#(slxn0Rh8QO)Hk4Q?Y!6Z?W##~JafN(ZGL&{h^wa8t+CXl9~RHrb}4wHJVHrn z>*#1~XlM<*$g#+B-Xixl?XSKc=SqAIowYF_V z&dtp1Y{S8`&Q4CaJ#7)MlA4N+s|tQxu-iyh+`A-`o0(F6zB z3azcL>X`E%yY$=XH5jm1aK93Rp^}4|bqjxYz^B&&_=Gb`CNk31{%c0Vg*?Co{lsR! z>xl3c)*NTAkE-ysjVdpCc}&Jx+HlhB;XZ%K`Gyd!PuC->J%;MC&rK!1x2uuXXLS*B0MYn_iL=VLmO1YxrXz|E? zTymT8q4N-;6>x!hxFaIqxQ6AKvRVB7srBq%p%=5V4h9V7KQWXR6?cEXGHu+JWRbvs zSy07|%8res%Pe3~$=aG}I^qg9H#gX1tPZFbwr<iM2r|1mr+niE4qb zJl!;qAn*Wz@rSkM`^*e}2a0g_ix*+&N|^Qn7Or-UO;S=4<$Dv6XkPvSO)`q+$$dO3 zoIiD?ei<5)Q%KEbC*4tIx^>f{!@|fEPUl=#yPmgmBo)peWhX1e@yjtU7rxddRzzoT zDYV*k|u+ZpW0ddRc zG}dDO5eP1@Ol>A#wmrXnMEMY7I<52ldqIi^)yzyuQ4xw<#8$b$`&(F| zom*1kYGDx%%;@^{><+n&MY}aMPsFaZxw>9BEc5>M$l|UcnAjc+P67%f>)qONh?8_+ zXK^1s;TpbHS8d*;BmarS&mR&TyxjE+PEQvjiiLqppf}selV#O2Bft8MS1u_~F6jR@ zRMc;5VDPSnT?|KqS!Oo!lo(=~Zmeq7Mi8m&5XPeAFst$a{s|kHJ{+UKuUPs)XBv2Zel;zoX$23e(xApo6uBp_Hyl$yDfZT zr~lf*QtzPOJcmSGl=E!E_(a*ksX~uNn{t#w4oXz_Vqq%AWXxtrhe7HM-Sdg@$kGyR z^4b=q)xhit?DGH@(sT!b`{BZ0Z)#qTz2*-!4s_lyHF7e?e~?Ez0DA)_jX{i+*M(1< zzGw31*|W~(=5AAcM?F0gI9806l^v*hdT5uV5LMFLOgCD=g85YCbW4X_1zJqk!C&^+ zUQPNIPjuZ)8R$$^koDWl%AcsQZEYbjDD=gTWYQ&-=;3=hcQgD+Pe;S=v?-B(SPmAA zUh?n&NcTMH3nJqt#MSTFyOM^Y#CMh~+SviAuJc0Wx3I{9E*-PObbL1@jf8&5bFwF> z25RfqZEYUs&y$YWoD5h&R#yJNPC6_B!(XaerzmbKEO1>o%!A30^kbbvq2HuAD%$zG zY1R2BN3N=RE%m!k$Jk05+pJMmT>U8h-c?Z33lM|bKQFu7VfUMQgxoF|dHqv6AY*o4 zr7(NHBiQ~7YFi_*i^o%~WFA52jDox`ur;cB-^|xm@{p<8G`BsL59V#UUf=udQ8_uN zB1I1f7O-NF$5&}?8$9Jk#>NSM)RJTu`px_gaBmiV<>QKh zT{3eY+uA_4eu2)ZyG_<$BSV1&HgBwF?r>%mPGoC>Bzq7Va0?!Nr|>6!D>C;O9CpBz ziK2^m#j|z({ZPDsv;w<#{9~{8ih_)>q_z8S;^$|!-&UuCCHEE=zX(`t6})p%h9oDZ z`9T#VpE$7mm3>jjLTvix7?+fhVdmgasEnu!W-#KIV_SMraPMN%E-H#_Fvt9OU{HSd z?qRGuz@-?4Uu@92&dk8a3&4TC5aGhh%d>@x9`~Y;M9KU86KA|G~Ajoe|kFtcmac9(Ot`Bq<|U^;Nxf>iwpNd%kbEu6&}jB zE3YL}UY&kYTf~hE53H0{(hC|6n?^l3GKf4>yc_*6YLcjEM1%QdFE0yQPOaG5GHO4IaoV|9O2tAYC93MM-{vv>(>*ckMARNMUl)e_hRK}FwYn{u=$;8qPw zj0Yt!1+%26mfyeMe1T8Ej)P%|#K}B6GZUA77w>T3C5Dw5qvW(y&3AUFlDv9)kxfnO zQL%-0t@)#*R8IYFG<;h2?w{p%&0CNsT)qGpYc4p3Jd`LZ zBeMv{0DL5(4|iGEd(FCj4DNjs%8@%zWw>|NL^eRta)RbC+Vj|SF$U~H&HlGv;6%KJ z<0lj8I$jtK2K`sqm-52Fz1-6ad)3++a=^JNB(QU6axy9*{|_#WSjxKc+>{uf_wzlU zDy5buBqv^E+3CfKN5kHF;X*mIFipW-j2K72M}w`wy8r>KyF9xmrt#M)UM%S`p=t2G zG?No~b}tHkl*aE9{3@dzkTdbw!jMgv`z4m9nyP9TYxHHbSGc=CTw${YREZkzP&|># z8Ig@|J>}8HBCGr@dQ(N%rJQTBNMJ~Bu2MW|V=$<*u>{1Db5ALQPa542c5BD3T_sHu z`a8~;a%RZS!PQuxXf4P_dfs>KIZMWylEOm73<^;=gNNm+Djvc0)=|fSOd(a%cAbyO zq|!QjmA(zwtFkS3Z;!csA{Xr=#h+T~KDyy=mbBcve7tB^uNw?bFR!>}GwmKAXeG83 zp@@EX@C}2($1}@Yhcv_t)F3ih3mZb}%{L)OqjuiIX|nvLeMSA!s4t9dK>NqaRCKysnaqgW{4}RsO$wupE@&C;0tVv%O_oGhBa9g-ujcLkhO@R3mh z5$V+W#{P9Lm7P00=ken|7uJ{ceHG2%96p|V{&C;a{09hBa`4y_dnMNdpzxQvzfcyw z2yBd}s^{vD1$_7g6Em(xp+ba;5cdueX~eWe1Fd_%^VzckrWO!T=H)&4`uWt;rzT3v z`Mb7;RHR)pp#iD{OJh0NQ>MQ0FcEGbx9dwI(t90eyryfG-o9()Vt(wFrJCnpXs6-; zmyd7t{EdkTyKJT%sixJJ%RnuhX&u#hh+qoiW6nS4-Uh7uwAAlnvgZ=7>@qVprgI9y ztYU-*;f*60Obi`2=rvsKgW#8*U8%06Lb#tHohkCMy*+a@vfWM>x8%jBNuub`}_LBIIP^fG4%zru!hAj#&Lc4XO+U892Rq~-ND%zMN^ovSy|JnuDjl* z{10z0E`i1&T&?sb=UeYPR6NLmQO*AE>&MOyJE*E*MIh!{-l~~1n~A|n{YxjAJN$?5 zFLaFbxA`(T>EZ5 z7u=Fq@K@%ePfJsBQaM|HNeZvA9y!yEW@u_RO2?Z)V`<4TeQr=&F zD%N`C9WogI^Lx-=Z<%@!LI@^LWjQYN%iAdWNg!Es4N#e+9+5`QBVnZ^J4Zlp5V?)a+1KWm(^nL|IsCFlc>vIf&}_H$)&2M==i zy!tc`IaDbac(~!@8JS28qqCFWzJsdIgJ&~EBC_*I{G#3O-hpD3>bU!{1J26=QryLPQN@|l?{!3T)ActCxKod6s%P!Obf z`&M!?!0rW4J`@NDlcL!Zp6Q32`K{@Zaq+$c?|%3>x)K+mcsxCwWL^MU9pj){M7BuA zn-^uz2KoyV-J4ny-l5vd8OQl)26 zUY;x@BhnAIhO0Zt7&kUycl;v2Ba#5gh$5ml@JX{xJOevHijJmkZe&-keG5KbO2Jg~>djy-{tVYExU{uG1* zV|?+L7xz;*Gg&rxtGFW)bnHG46BlK=(7B=QHHc3y!f%25gViFDR z%v8g>?Up8N#X{MQ&8hUd0F5hWgTPapa@2Ee4_@VC%6Mfb$Hr@$82|YplY^f48=b|7kGf))``pBrKp=|HpAoQ;%1*(J5UHETBf!$mfz=hJOs@AECvGps^1_&% zIWQ@a8G?VuK?g`>SJt5a2yV+wyviDtU5@R{z{&7R_U-NRuu@xS%FwuQXVYk$onIO{ zu%B9(FwwY7Xpkrbb`l6Qf<6;LnSlx^84FqZ|NZ8WGuurWX=w$dS%a$xkVQ%g^x?QX zKbjCRl!P`Fr^fe*fUHX@RS3Y(Da&4v(NGu`_4I(SMJji6O;2wx7|9Vu@y3phvckg6 zOI?rBQd5B^-WiyCN)HR~pek$%TopN_%|IY;IVgfhDBwONh!6^pA4bSQ)DvSIX&KGE z2yX-s4}1YLEHo@yu6~x0no4J4e?2@31{KkrH(o;BvUjnntZX)9iy}?(HI$2(S+?@G zPCqhRVXPwPs|^B|N0<=sN9?VFO8%>eOtqM1y{amc65Vae$ixIhUt-iG)k8>Xa zuV10Uj3g5yvH{J2DMF=3IzCS@8SNcn7{Dz8H2Azf!x#7#NGrswTiV*nTDRPU%XsS& ziw8R!>*r8(!F0+3ayVkJm9;gXDSB=Z+;sp$ii@LK$I$t}H@b)T^jsN$QJ}E^Mqutm z7l-sWM+b+?^67W)0{<)a<^O5)2Ama64%F2FfOi3qB#Ikfg48%xahXa<`h@Uzko|h# zE@nrrhJ-wW@blJ58>||f7^=|R{JhUnzbE#1?*)2lE`SQGRJvFXL=tEKq((z@hva;) zK1KH>G98DCvs|%nJ?So`=l?}+W7)WIFA*simS}p(R8!LdD3-AmV<|#Zl$wzdOK!%F zjdA_6hc{%W=uTk%q{HL5-|!#AS!)Y%|CBk-m~_nZU}WQ$sVUtPCyYU{d|v~(5*9`T zaOvn6868^{MZ<{Q0DUf0 zJ`hCR6UDmT@S3#20c!v+oGVLuWwVa{tjBB`!`?*%Qe3=<#CIfw;T&%jJ55ilsIRB9 z_B|}sC;6|YS%z;=i36ew;}RIfflbzk?4U0jh_!J^O6NK7tB9o!qR-dhH4unAwsMk6 zmAf#0(!+zUAn;M@q}Ae*k)_!>A=pL+{>b>a4BQ%N$2=)=a`?Mfu3W+MNRUu24x;77 zi~Z0*N=UqEZ52aq1}wX%(ebW(2g@ZfcfC#F4Y4r`Y#S=3*PA|g_E35(GHJZPCTi68oI1>|@=~iO zXOqr`AG>q>`aYThXG%dS+FD@ssBlW0s#4aH%;ZCV28wT z$35X7?l{s0=>P2DCL#t?^L97CDU9>aaXYNxI>+w)raLZUPls)25;)1bW_6~^qj>lM zY$xcv-IPe?Gs+Ewu*P#x*iA0r&XHG8IK^87JOXA)ng~J(z?zL^bw&IR-+I z(%+#veXP*FRIVbO!hvLN#1niX6CW>A@M5xZ){M^Q;>~Q4jdOTt zK|ukoK^fxWr)d^UpMBY#BAB6iI(!Qi7s>T;uImFn)7DGbha|{E)vWppj+tyZ*BHvm z%YA;%<$l-tja4MoFv#zpQ`y4btQU`8022^snse3GN**!LHhK)gL&4{iQQQ#ek=QDL zNza4y6e|O%Ua@N<7UiN>RCh0SK<|o&O?(*}vvzfj)wzRsz=?hfJYeNyh}ZnMwo-y_ z{Qtmnv}cL-NPrmzQKz_9LQE`0DL`>*BQqPx?etL^SVTzg(7lOu1bq)tCZ9o$9ySaM z7val1m6_Y~kzS4X{g;C@p>mLJ*b7ul3CHXIr0>Xb|6Y6lXWRSlUN{r5)htuH|8OQA Qv_T+fYv`)qQ#B9%7t9=VK>z>% literal 0 HcmV?d00001 diff --git a/vignettes/Figures/VizForecastPDF_ex3.png b/vignettes/Figures/VizForecastPDF_ex3.png new file mode 100644 index 0000000000000000000000000000000000000000..3525ad0ccef39302421dbcd5e8d47b3e0a4c549e GIT binary patch literal 36684 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 i7yjS--T$)7j;THen;;tm z0^u+;xMdE3FoN{^>Io*g#e&b^5B+iFj`2NR`t!uyOfip&o5`&%rNgfv5;YKsX+hzA z(<=w@8i!@Zhoe46E1!;zjy9ZJ1nJ(aFAS_bArQ8ve>a1o)TJT_XiUdDiUItqc7x&AlZ8xO#rIGIP<3P-*oxBJju@P57xA!z?D z|60d#c%f?7R9Z;ieD7?Rs9C%Hm8mE&Qjs$w!~)Qf7Jm(^Jrwx7Q8$gTjl{{8**;!T z&;j~pMc5reG%uJHL>ZhSlaXf$?M;55{tZQd=~{84(Y!s+?pm})uE>Sv=no+s!CqrW z?}GMz>JV~nc~xR*KE!u>W`5e%G3~t%rYa))*7s)3rp2eOF%o!nB+p2+3Ms!G_~u9k zw46orUJTGSe6u}*{l(e3cO z=Rjers;k@1cyJQE5`%}jR(+ws(rgkYuHS8+yj_pgli}U2IK(vt1WK?pQ}joTKK%5A zyxa`WB$CNh&zJzb?ZL~9KUKPRSF>(X{8fLhSY1yJ(L7I|Y4m3jjIjH)XnyDMGqaD0 z>!@(Pra7`kQ!tlwlHd3a&|_?@`nSR01TDPV61!NKHoI$WwFZZRPSa<`vVGkV{ZekKO?nu+JmAtfek*6 zXd6TW_e_`NBKs!%=5``_+8Rg!m@9orrav$DCKo%!;R-m`;;|#W*z3Yq+UlB{U)(*F zZaY95)w=SdV3|4+sCx;PGRpa)GN{)N)!sX{dd#!4i%mc}Jm@{=smxhguHQ`&izJaW z2ZwI+gwe3AW`(ZK54pnSETqM5nUDG9@9p;%uc$&kj#v{_*2b|gU%{%Wly`PgItN@lL-pkI% zM7`dVd4oH}-K)(V^eqFEb1?K54GS&xD0?yC2VJIx`e(2zI@p17ctBLJS5_#Le*{<;VFy9v#1D9~o3lmfWs6cUtkO9a!-EK6oS;7sp^RXg8m6XW4aBBz&RN z>-C+pL|*h%{k;m6y@~IHgDSF{z<~<3UY!9!kX5UXb>;@zH`|#08YhXcEir-1r0o62 z&~I@9Fp7R;d)oOR;X!8LolVq`66^2TkS)DyM%7op^|npVW?U&0YRi#^-Q1+x_Ef(0 zL`{2R%7&Cqp>8Lw)YkNOC!3zWvatwULzjui<3bgLLOn8z$3823jE7-uds7E} z3g#uoQ39gPF;qH;+Kq1~DgNk}Fcr!HJE4|XzXJi#J(APB*pway)%=O9>He-c5_izE z57`+5tT!FB1kjmhNS?byVy&_wJ{I0% zs5^sPxXeWC`ARn(19E^8`1XOZua|w9R==YhkMh+LQvRiSp$3;z4f0Xf(=UqISgBC9 z*(uCx5351Aa$P)0z2Do`+4X@S&g||htEt>_+zMW0H!h(#yK>8dkH|qh&@$~}Y{}`jApT4x?E=&Onxzd21f$(;olK+l1}P zUt!`(D2^tTeaAtu$i>`zdKiM#MELx!+6Xf<|IL$Q4S)BV4aNc#t*v`rsreXqp<<%H zxHP7+Qj-zf(u6{1*K{&#BB8EKOrRV6cY$+0=1-HPKAnhzw>vwfa!SeSm8*L!eTd

_^Nie!#I_s7AG~z|xcf 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 HAHV(|KQZ3? literal 0 HcmV?d00001 diff --git a/vignettes/Figures/most_likely_tercile_fig2.png b/vignettes/Figures/most_likely_tercile_fig2.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba969e4dba881f34a5364707327524a84d56989 GIT binary patch literal 7131 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 fq*791j%-f0H>)6KLBIX*1T*_c!rfrS49Yh=ac literal 0 HcmV?d00001 diff --git a/vignettes/Figures/multi_model_skill_cor_tas_1993-2012.png b/vignettes/Figures/multi_model_skill_cor_tas_1993-2012.png new file mode 100644 index 0000000000000000000000000000000000000000..cad7506c9a9a442180cc891fd8dcae6001db32a7 GIT binary patch literal 15923 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 OHr6-OtJS#^_dfty%gcoT literal 0 HcmV?d00001 diff --git a/vignettes/Figures/multi_model_skill_rms_tas_1993-2012.png b/vignettes/Figures/multi_model_skill_rms_tas_1993-2012.png new file mode 100644 index 0000000000000000000000000000000000000000..764a6fc20dc86668addec44db2e556c80c538b94 GIT binary patch literal 15767 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 M*HouQ>+a+K19`kVivR!s literal 0 HcmV?d00001 diff --git a/vignettes/Figures/multi_model_skill_rmsss_tas_1993-2012.png b/vignettes/Figures/multi_model_skill_rmsss_tas_1993-2012.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4b4a1b6d0574b3e0489105435f6bcaa9f1d911 GIT binary patch literal 11432 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 %\VignetteEngine{knitr::knitr} - %\VignetteIndexEntry{Plot Forecast PDFs} + %\VignetteIndexEntry{Viz Forecast PDFs} %\usepackage[utf8]{inputenc} --- @@ -22,16 +22,17 @@ library(CSTools) The first step is to put your forecasts in an appropriate format. For this vignette we generate some random values from two normal distributions. The VizForecastPDF by default will plot the ensemble members, the estimated density distributions and the tercile probabilities. -```{r, fig.align='center',warning=F} +```{r,fig.show = 'hide',warning=F} fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), fcst2 = rnorm(mean = 23, sd = 4.5, n = 30)) VizForecastPDF(fcst, tercile.limits = c(20, 26)) ``` +![Example 1](./Figures/VizForecastPDF_ex1.png) Input data can also be provided as an two-dimensional array, as far as one of the dimensions is named 'member' or adjusted in 'memb_dim' parameter: -```{r, fig.align='center',warning=F} +```{r,fig.show = 'hide',warning=F} fcst <- array(rnorm(mean = 25, sd = 2, n = 90), dim = c(member = 30, 3)) VizForecastPDF(fcst, tercile.limits = c(23, 27)) ``` @@ -39,7 +40,7 @@ VizForecastPDF(fcst, tercile.limits = c(23, 27)) ### 2. Customizing the appearance of your plots Some parameters allow to customize your plot by changing the title, the forecast labels, the variable name and units, or the colors. -```{r, fig.align='center',warning=F} +```{r,fig.show = 'hide',warning=F} fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), fcst2 = rnorm(mean = 23, sd = 4.5, n = 30)) VizForecastPDF(fcst, tercile.limits = c(20, 26), var.name = "Temperature (ºC)", @@ -47,12 +48,12 @@ VizForecastPDF(fcst, tercile.limits = c(20, 26), var.name = "Temperature (ºC)", fcst.names = c("model a", "model b"), color.set = "s2s4e") ``` - +![Example 2](./Figures/VizForecastPDF_ex2.png) ### 3. Adding extremes and observed values Optionally, we can include the probability of extreme values or the actually observed values. The tercile limits, extreme limits and observation values can be specified for each panel separately. -```{r, fig.align='center',warning=F} +```{r,fig.show = 'hide',warning=F} fcst <- data.frame(fcst1 = rnorm(mean = 25, sd = 3, n = 30), fcst2 = rnorm(mean = 28, sd = 4.5, n = 30), fcst3 = rnorm(mean = 17, sd = 3, n = 30)) VizForecastPDF(fcst, tercile.limits = rbind(c(20, 26), c(22, 28), c(15, 22)), @@ -62,6 +63,7 @@ VizForecastPDF(fcst, tercile.limits = rbind(c(20, 26), c(22, 28), c(15, 22)), color.set = "s2s4e") ``` +![Example 3](./Figures/VizForecastPDF_ex3.png) ### 4. Saving your plot to a file VizForecastPDF uses ggplot2, so you can save the output of the function to a variable and operate with it as a ggplot2 object. For instance, you can save it to a file: @@ -76,7 +78,7 @@ ggsave("outfile.pdf", plot, width = 7, height = 5) ### 5. A reproducible example using lonlat_temp_st This final example uses the sample lonlat data from CSTools. It is suitable for checking reproducibility of results. -```{r, fig.align='center',warning=F} +```{r,fig.show = 'hide',warning=F} fcst <- data.frame(fcst1 = lonlat_temp_st$exp$data[1,1,,1,1,1,1] - 273.15, fcst2 = lonlat_temp_st$exp$data[1,1,,1,2,1,1] - 273.15) VizForecastPDF(fcst, tercile.limits = c(5, 7), extreme.limits = c(4, 8), @@ -85,3 +87,4 @@ VizForecastPDF(fcst, tercile.limits = c(5, 7), extreme.limits = c(4, 8), fcst.names = c("November", "December")) ``` +![Example 4](./Figures/VizForecastPDF_ex4.png) diff --git a/vignettes/MostLikelyTercile_vignette.Rmd b/vignettes/most_likely_tercile.Rmd similarity index 90% rename from vignettes/MostLikelyTercile_vignette.Rmd rename to vignettes/most_likely_tercile.Rmd index 66d9029..59f153f 100644 --- a/vignettes/MostLikelyTercile_vignette.Rmd +++ b/vignettes/most_likely_tercile.Rmd @@ -179,21 +179,21 @@ PB <- ProbBins(Ano_Exp$data, fcyr = numyears, thr = c(1/3, 2/3), compPeriod = "W prob_map <- MeanDims(PB, c('sdate', 'member', 'dataset', 'var')) ``` -### 4. Visualization with PlotMostLikelyQuantileMap +### 4. Visualization with VizMostLikelyQuantileMap -We then plot the most likely quantile using the **CSTools** function `PlotMostLikelyQuantileMap`. +We then plot the most likely quantile using the **CSTools** function `VizMostLikelyQuantileMap`. ``` -PlotMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, - coast_width = 1.5, legend_scale = 0.5, - toptitle = paste0('Most likely tercile - ', clim_var, - ' - ECMWF System5 - JJA 2020'), - width = 10, height = 8) +VizMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, + coast_width = 1.5, legend_scale = 0.5, + toptitle = paste0('Most likely tercile - ', clim_var, + ' - ECMWF System5 - JJA 2020'), + width = 10, height = 8) ``` -![](./Figures/MostLikelyTercile_fig1.png) +![](./Figures/most_likely_tercile_fig1.png) The forecast calls for above average temperature over most of the Mediterranean basin and near average temperature for some smaller regions as well. But can this forecast be trusted? @@ -219,7 +219,7 @@ PlotEquiMap(RPSS$data[[1]], lat = Lat, lon = Lon, brks = seq(-1, 1, by = 0.1), filled.continents = FALSE) ``` -![](./Figures/MostLikelyTercile_fig2.png) +![](./Figures/most_likely_tercile_fig2.png) Areas displayed in red (RPSS > 0) are areas for which the forecast system shows skill above climatology whereas areas in blue (such as a large part of the Iberian Peninsula) are areas for which the model does not. We thus want to mask the areas currently displayed in blue. @@ -237,14 +237,14 @@ Finally, we plot the latest forecast, as in the previous step, but add the mask ```r -PlotMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, coast_width = 1.5, - legend_scale = 0.5, mask = mask_rpss[ , , ,], - toptitle = paste('Most likely tercile -', clim_var, - '- ECMWF System5 - JJA 2020'), - width = 10, height = 8) +VizMostLikelyQuantileMap(probs = prob_map, lon = Lon, lat = Lat, coast_width = 1.5, + legend_scale = 0.5, mask = mask_rpss[ , , ,], + toptitle = paste('Most likely tercile -', clim_var, + '- ECMWF System5 - JJA 2020'), + width = 10, height = 8) ``` -![](./Figures/MostLikelyTercile_fig3.png) +![](./Figures/most_likely_tercile_fig3.png) We obtain the same figure as before, but this time, we only display the areas for which the model has skill at forecasting the right tercile. The gray regions represents areas where the system doesn't have sufficient skill over the verification period. diff --git a/vignettes/MultiModelSkill_vignette.Rmd b/vignettes/multimodel_skill_assessment.Rmd similarity index 82% rename from vignettes/MultiModelSkill_vignette.Rmd rename to vignettes/multimodel_skill_assessment.Rmd index 145c040..3d83f3f 100644 --- a/vignettes/MultiModelSkill_vignette.Rmd +++ b/vignettes/multimodel_skill_assessment.Rmd @@ -10,7 +10,7 @@ vignette: > %\usepackage[utf8]{inputenc} --- -Multi-model Skill Assessment +Multi-model Skill Assessment and Visualization ----------------------------------------- **reference**: Mishra, N., Prodhomme, C., & Guemas, V. (2018). Multi-Model Skill Assessment of Seasonal Temperature and Precipitation Forecasts over Europe, 29-31. @@ -192,21 +192,21 @@ In the element $data of the `AnomDJF` object is a list of object for the metric To obtain a spatial plot with a scale from -1 to 1 value of correlation for the model with the highest correlation for each grid point, the following lines should be run: ```r -PlotCombinedMap(AnomDJF$data$corr[,1,1,,], lon = Lon, lat = Lat, map_select_fun = max, - display_range = c(0, 1), map_dim = 'nexp', - legend_scale = 0.5, brks = 11, - cols = list(c('white', 'black'), - c('white', 'darkblue'), - c('white', 'darkred'), - c('white', 'darkorange')), - bar_titles = c("MMM", AnomDJF$attrs$Datasets), - width = 14, height = 8) +VizCombinedMap(AnomDJF$data$corr[,1,1,,], lon = Lon, lat = Lat, map_select_fun = max, + display_range = c(0, 1), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('white', 'black'), + c('white', 'darkblue'), + c('white', 'darkred'), + c('white', 'darkorange')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) ``` The next figure is the map of the maximum positive Anomaly Correlation Coefficient (ACC) among the three individual models from EUROSIP and the multimodel ensemble. ACC for each model is calculated between their respective predicted ensemble mean anomalies and the anomalies of the observed temperature obtained from ERAINT for winter (DJF) seasons over the period 1993-2012. Blue, red, yellow and black colors indicate that the maximum correlation is obtained for GloSea5, ECMWF, MF and the Multi-Model Mean respectively (similar to figure 3 in Mishra et al., 2018). -![Max Skills Correlation](./Figures/MultiModelSkill_cor_tas_1993-2012.png) +![Max Skills Correlation](./Figures/multi_model_skill_cor_tas_1993-2012.png) @@ -222,18 +222,18 @@ AnomDJF <- CST_MultiMetric(exp = ano_exp, obs = ano_obs, metric = 'rms', The following lines are necessary to obtain the plot which visualizes the best model given this metric for each grid point. ```r -PlotCombinedMap(AnomDJF$data$rms[,1,1,,], lon = Lon, lat = Lat, map_select_fun = min, - display_range = c(0, ceiling(max(abs(AnomDJF$data$rms)))), map_dim = 'nexp', - legend_scale = 0.5, brks = 11, - cols = list(c('black', 'white'), - c('darkblue', 'white'), - c('darkred', 'white'), - c('darkorange', 'white')), - bar_titles = c("MMM", AnomDJF$attrs$Datasets), - width = 14, height = 8) +VizCombinedMap(AnomDJF$data$rms[,1,1,,], lon = Lon, lat = Lat, map_select_fun = min, + display_range = c(0, ceiling(max(abs(AnomDJF$data$rms)))), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('black', 'white'), + c('darkblue', 'white'), + c('darkred', 'white'), + c('darkorange', 'white')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) ``` -![Max Skills RMS](./Figures/MultiModelSkill_rms_tas_1993-2012.png) +![Max Skills RMS](./Figures/multi_model_skill_rms_tas_1993-2012.png) ### 4.- Computing and plotting Root Mean Square error Skill Scores (RMSSS) @@ -241,24 +241,24 @@ PlotCombinedMap(AnomDJF$data$rms[,1,1,,], lon = Lon, lat = Lat, map_select_fun = By running the following lines a plot for the best model given the RMSSS is obtained. When parameter `metric` is defined as `rmsss`, the RMSSS are stored in the first position on the third dimension of the `metric` component in the AnoMultiMetric output. -Notice that the perfect RMSSS is 1 and the parameter `map_select_fun` from `PlotCombinedMap` function (see *s2dv R package*) has been defined in order to select the best model. +Notice that the perfect RMSSS is 1 and the parameter `map_select_fun` from `VizCombinedMap` function (see *s2dv R package*) has been defined in order to select the best model. ```r AnomDJF <- CST_MultiMetric(exp = ano_exp, obs = ano_obs, metric = 'rmsss', multimodel = TRUE) -PlotCombinedMap(AnomDJF$data$rmsss[,1,1,,], lon = Lon, lat = Lat, - map_select_fun = function(x) {x[which.min(abs(x - 1))]}, - display_range = c(0, - ceiling(max(abs(AnomDJF$data$rmsss)))), map_dim = 'nexp', - legend_scale = 0.5, brks = 11, - cols = list(c('white', 'black'), - c('white', 'darkblue'), - c('white', 'darkred'), - c('white', 'darkorange')), - bar_titles = c("MMM", AnomDJF$attrs$Datasets), - width = 14, height = 8) +VizCombinedMap(AnomDJF$data$rmsss[,1,1,,], lon = Lon, lat = Lat, + map_select_fun = function(x) {x[which.min(abs(x - 1))]}, + display_range = c(0, + ceiling(max(abs(AnomDJF$data$rmsss)))), map_dim = 'nexp', + legend_scale = 0.5, brks = 11, + cols = list(c('white', 'black'), + c('white', 'darkblue'), + c('white', 'darkred'), + c('white', 'darkorange')), + bar_titles = c("MMM", AnomDJF$attrs$Datasets), + width = 14, height = 8) ``` -![Max Skills RMSSS](./Figures/MultiModelSkill_rmsss_tas_1993-2012.png) +![Max Skills RMSSS](./Figures/multi_model_skill_rmsss_tas_1993-2012.png) -- GitLab From ed31a56f5e00c4c8e29697e4fcdf243cc99f0f58 Mon Sep 17 00:00:00 2001 From: Eva Rifa Date: Fri, 17 Nov 2023 17:10:30 +0100 Subject: [PATCH 3/5] Substitute PlotEquiMap by VizEquiMap --- vignettes/most_likely_tercile.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vignettes/most_likely_tercile.Rmd b/vignettes/most_likely_tercile.Rmd index 59f153f..44f207a 100644 --- a/vignettes/most_likely_tercile.Rmd +++ b/vignettes/most_likely_tercile.Rmd @@ -215,8 +215,8 @@ Ano_Obs <- CST_InsertDim(Ano_Obs, posdim = 3, lendim = 1, name = "member") RPSS <- CST_MultiMetric(Ano_Exp, Ano_Obs, metric = 'rpss', multimodel = FALSE) -PlotEquiMap(RPSS$data[[1]], lat = Lat, lon = Lon, brks = seq(-1, 1, by = 0.1), - filled.continents = FALSE) +VizEquiMap(RPSS$data[[1]], lat = Lat, lon = Lon, brks = seq(-1, 1, by = 0.1), + filled.continents = FALSE) ``` ![](./Figures/most_likely_tercile_fig2.png) -- GitLab From ea9143dacfe8d18a5cf616868e5a176d491b79bd Mon Sep 17 00:00:00 2001 From: Eva Rifa Date: Fri, 17 Nov 2023 17:26:51 +0100 Subject: [PATCH 4/5] Modify slightly the vignettes reffering to esviz --- vignettes/most_likely_tercile.Rmd | 6 +++--- vignettes/multimodel_skill_assessment.Rmd | 23 +++++++++-------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/vignettes/most_likely_tercile.Rmd b/vignettes/most_likely_tercile.Rmd index 44f207a..9efe1b3 100644 --- a/vignettes/most_likely_tercile.Rmd +++ b/vignettes/most_likely_tercile.Rmd @@ -14,7 +14,7 @@ vignette: > Computing and displaying the most likely tercile of a seasonal forecast ======================== -In this example, we will use CSTools to visualize a probabilistic forecast (most likely tercile) of summer near-surface temperature produced by ECMWF System5. The (re-)forecasts used are initilized on May 1st for the period 1981-2020. The target for the forecast is June-August (JJA) 2020. The forecast data are taken from the Copernicus Climate Data Store. +In this example, we will use **esviz** and **CSTools** to visualize a probabilistic forecast (most likely tercile) of summer near-surface temperature produced by ECMWF System5. The (re-)forecasts used are initilized on May 1st for the period 1981-2020. The target for the forecast is June-August (JJA) 2020. The forecast data are taken from the Copernicus Climate Data Store. ### 1. Preliminary setup @@ -182,7 +182,7 @@ prob_map <- MeanDims(PB, c('sdate', 'member', 'dataset', 'var')) ### 4. Visualization with VizMostLikelyQuantileMap -We then plot the most likely quantile using the **CSTools** function `VizMostLikelyQuantileMap`. +We then visualize the most likely quantile using the **esviz** function `VizMostLikelyQuantileMap`. ``` @@ -205,7 +205,7 @@ In order to do this, we will first calculate the ranked probability skill score ### 5. Computing Skill Score -First, we evaluate and plot the RPSS. Therefore, we use `RPSS` metric included in CST_MultiMetric from function from **easyVerification** package which requires to remove missing values from latest start dates: +First, we evaluate and plot the RPSS. Therefore, we use `RPSS` metric included in CST_MultiMetric from function from **CSTools** package which requires to remove missing values from latest start dates: ```r diff --git a/vignettes/multimodel_skill_assessment.Rmd b/vignettes/multimodel_skill_assessment.Rmd index 3d83f3f..24cc5d6 100644 --- a/vignettes/multimodel_skill_assessment.Rmd +++ b/vignettes/multimodel_skill_assessment.Rmd @@ -13,21 +13,17 @@ vignette: > Multi-model Skill Assessment and Visualization ----------------------------------------- -**reference**: Mishra, N., Prodhomme, C., & Guemas, V. (2018). Multi-Model Skill Assessment of Seasonal Temperature and Precipitation Forecasts over Europe, 29-31. +In this example we will do a multi-model skill assesment and visualization using **esviz** and **CSTools**. -The R package s2dv should be loaded by running: +**Reference**: Mishra, N., Prodhomme, C., & Guemas, V. (2018). Multi-Model Skill Assessment of Seasonal Temperature and Precipitation Forecasts over Europe, 29-31. -```r -library(s2dv) -library(zeallot) -``` - -Library *CSTools*, should be installed from CRAN and loaded: +The following R packages should be loaded by running: ```r -install.packages("CSTools") +library(s2dv) +library(zeallot) library(CSTools) ``` @@ -46,8 +42,7 @@ clim_var = 'tas' The simulations available for these models are covering the period 1993-2012. So, the starting and ending dates can be defined by running the following lines: - -```r +``` ini <- 1993 fin <- 2012 start <- as.Date(paste(ini, mth, "01", sep = ""), "%Y%m%d") @@ -122,7 +117,7 @@ obs <- CST_Start(dataset = list(list(name = 'erainterim', path = repos_obs)), # load(file = "./tas_toydata.RData") ``` -There should be two new elements loaded in the R working environment: `exp` and `obs`, containing the experimental and the observed data for temperature. It is possible to check that they are of class `sd2v_cube` by running: +There should be two new elements loaded in the R working environment: `exp` and `obs`, containing the experimental and the observed data for temperature. It is possible to check that they are of class `s2dv_cube` by running: ``` class(exp) @@ -148,7 +143,7 @@ The Anomaly Correlation Coefficient (ACC) is the most widely used skill metric f First step is to compute the anomalies over the loaded data applying cross validation technique on individual members by running: -``` +```r c(ano_exp, ano_obs) %<-% CST_Anomaly(exp = exp, obs = obs, cross = TRUE, memb = TRUE) ``` @@ -241,7 +236,7 @@ VizCombinedMap(AnomDJF$data$rms[,1,1,,], lon = Lon, lat = Lat, map_select_fun = By running the following lines a plot for the best model given the RMSSS is obtained. When parameter `metric` is defined as `rmsss`, the RMSSS are stored in the first position on the third dimension of the `metric` component in the AnoMultiMetric output. -Notice that the perfect RMSSS is 1 and the parameter `map_select_fun` from `VizCombinedMap` function (see *s2dv R package*) has been defined in order to select the best model. +Notice that the perfect RMSSS is 1 and the parameter `map_select_fun` from `VizCombinedMap` function (see *esviz R package documentation*) has been defined in order to select the best model. ```r -- GitLab From 105ba0e26f06ec0fdad460639c57f26e8d0141c8 Mon Sep 17 00:00:00 2001 From: Eva Rifa Date: Fri, 17 Nov 2023 17:28:50 +0100 Subject: [PATCH 5/5] Add esviz library loading --- vignettes/forecast_pdf_viz.Rmd | 7 +++---- vignettes/most_likely_tercile.Rmd | 8 ++++++-- vignettes/multimodel_skill_assessment.Rmd | 8 +++++++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/vignettes/forecast_pdf_viz.Rmd b/vignettes/forecast_pdf_viz.Rmd index 5ff66f1..d27d039 100644 --- a/vignettes/forecast_pdf_viz.Rmd +++ b/vignettes/forecast_pdf_viz.Rmd @@ -11,11 +11,10 @@ vignette: > Visualize Forecast PDFs (Probability Distibution Functions) ------------------------------------------ -Library *CSTools*, should be installed from CRAN and loaded: +Library *esviz*, should be installed and loaded. - -```{r,warning=FALSE,message=FALSE,error=FALSE} -library(CSTools) +``` +library(esviz) ``` ### 1. A simple example diff --git a/vignettes/most_likely_tercile.Rmd b/vignettes/most_likely_tercile.Rmd index 9efe1b3..6d59117 100644 --- a/vignettes/most_likely_tercile.Rmd +++ b/vignettes/most_likely_tercile.Rmd @@ -19,11 +19,16 @@ In this example, we will use **esviz** and **CSTools** to visualize a probabilis ### 1. Preliminary setup +Library *esviz*, should be installed and loaded. + +``` +library(esviz) +``` To run this vignette, the following R packages should be installed and loaded: -```r +``` library(CSTools) library(s2dv) library(zeallot) @@ -31,7 +36,6 @@ library(easyVerification) library(ClimProjDiags) ``` - ### 2. Loading the data diff --git a/vignettes/multimodel_skill_assessment.Rmd b/vignettes/multimodel_skill_assessment.Rmd index 24cc5d6..e0b16e0 100644 --- a/vignettes/multimodel_skill_assessment.Rmd +++ b/vignettes/multimodel_skill_assessment.Rmd @@ -18,15 +18,21 @@ In this example we will do a multi-model skill assesment and visualization using **Reference**: Mishra, N., Prodhomme, C., & Guemas, V. (2018). Multi-Model Skill Assessment of Seasonal Temperature and Precipitation Forecasts over Europe, 29-31. +Library *esviz*, should be installed and loaded. + +``` +library(esviz) +``` The following R packages should be loaded by running: -```r +``` library(s2dv) library(zeallot) library(CSTools) ``` + ### 1.- Load data In this case, the seasonal temperature forecasted, initialized in November, will be used to assess the EUROSIP multi-model seasonal forecasting system consists of a number of independent coupled seasonal forecasting systems integrated into a common framework. From September 2012, the systems include those from ECMWF, the Met Office, Meteo-France and NCEP. -- GitLab