From 38bf60c144b6953cbd6bfba32cf0fb5a5ab60895 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Sat, 30 Jul 2016 21:25:48 -0700 Subject: [PATCH 01/60] Added ChatOps scripts --- chatops/README.md | 123 +++++++ chatops/bash/handler_build | 126 +++++++ chatops/bash/handler_convert | 131 +++++++ chatops/bash/handler_invoice | 126 +++++++ chatops/bash/handler_pentest | 160 +++++++++ chatops/bash/handler_quickscope | 90 +++++ chatops/bash/handler_quote | 112 ++++++ chatops/bash/handler_validate | 113 ++++++ chatops/bash/test_pentext | 167 +++++++++ chatops/python/docbuilder.py | 234 ++++++++++++ chatops/python/gitlab-to-pentext.py | 267 ++++++++++++++ chatops/python/validate_report.py | 533 ++++++++++++++++++++++++++++ chatops/scripts/rosbot.coffee | 95 +++++ 13 files changed, 2277 insertions(+) create mode 100644 chatops/README.md create mode 100644 chatops/bash/handler_build create mode 100644 chatops/bash/handler_convert create mode 100644 chatops/bash/handler_invoice create mode 100644 chatops/bash/handler_pentest create mode 100644 chatops/bash/handler_quickscope create mode 100644 chatops/bash/handler_quote create mode 100644 chatops/bash/handler_validate create mode 100644 chatops/bash/test_pentext create mode 100644 chatops/python/docbuilder.py create mode 100644 chatops/python/gitlab-to-pentext.py create mode 100644 chatops/python/validate_report.py create mode 100644 chatops/scripts/rosbot.coffee diff --git a/chatops/README.md b/chatops/README.md new file mode 100644 index 0000000..8edf7e7 --- /dev/null +++ b/chatops/README.md @@ -0,0 +1,123 @@ +# Introduction +This directory contains the ChatOps scripts, based on Hubot. It uses RocketChat and gitlab as the underlying framework (but can be modified to fit any other framework). + +This document describes the goal of the scripts, as well as installation instructions and their basic usage. + + +## Workflow +Scripts are ordered by workflow, not alphabetically. +The workflow consists of +1. setting up a repository for a quote with the PenText framework +2. (optional: converting quickscope input to a quote) +3. building a PDF quote +4. setting up a repository for a pentest with the PenText framework, based on a quote +5. (optional: converting gitlab issues to XML findings and non-findings) +6. (optional: validating a PenText report) +7. building a PDF report +8. building a PDF invoice + +## Naming +The scripts either take the **project name** as input, or the **repository name** (and optional namespace and branch). The project name is leading, repository names are derived from the project names: the quotation repository has `off-` as prefix, and the pentest repository will have `pen-` as prefix. +As a rule of thumb, the handlers that are prefixed with `start` (startquote, startpentest) will take the **project name** as input. All other handlers take the **repository name** as input. + +Example: when the project's name is ros, then the corresponding quote repository and RocketChat channel's name will be `off-ros`. +If this quote will result in a pentest project, then the corresponding repository and RocketChat channel will be named `pen-ros`. + +Note that git repository names are _lowercase_. + + +# Scripts + +The scripts use multiple environment variables, that can be set by the user under which rosbot is running. These are ++ `GITLABCLI` :: the location of the python-gitlab command line interface (defaults to `gitlab`) ++ `GITSERVER` :: the name of the gitlab server (defaults to `gitlab.local`) ++ `GITWEB` :: the URL of the gitlab webinterface (defaults to `https://$GITSERVER`) ++ `NAMESPACE` :: the namespace of the user which is used to set up gitlab repositories (defaults to `ros`) ++ `PENTEXTREPO` :: the location of the PenText repository (defaults to `https://github.com/radicallyopensecurity/pentext`) + +## Prerequisites + +The Bash scripts use the python-gitlab command-line interface to talk to the gitlab instance. This interface can be installed using `sudo pip install git+https://github.com/gpocentek/python-gitlab`. Obviously, Python needs to be installed as well. +This command line interface expects a configuration file `.python-gitlab.cfg` for the user under which rosbot is running, which it uses to connect to gitlab. Make sure it contains the correct details so that you can connect to gitlab. + +If you want to convert and build documents, the pentext toolchain is necessary. Use the ansible playbook https://galaxy.ansible.com/PeterMosmans/docbuilder/ or install the tools (Java, Saxon and Apache FOP) by hand, see https://github.com/radicallyopensecurity/pentext/blob/master/xml/doc/Tools%20manual.md for more information. + +## Test the configuration +Test out whether the configuration is successful by manually executing the Bash script [bash/test_pentext](bash/test_pentext) - this should return an OK. + + +## CoffeeScript + +### rosbot.coffee + +[scripts/rosbot.coffee](scripts/rosbot.coffee) - contains the various keywords and redirects to the proper handlers. All RocketChat-specific actions (e.g. the creation of rooms) is being handled by this script. + +The scripts contains an array of users that will be added to the newly created rooms by default. + +Example: +`admins = ['admin']` + +## Bash + +### startquote +Start the quotation process by setting up a repository with the PenText framework, and creating a RocketChat channel. + +Handled by [bash/handler_quote](bash/handler_quote) + +Sets up a pentest RocketChat channel named `off-PROJECT_NAME`, a gitlab repo named `off-PROJECT_NAME`, and installs the latest version of the Pentext framework. Note that this uses the `PROJECT_NAME` as input, so it will automatically append the `off-` prefix. + +Usage: `startquote PROJECT_NAME` + + +### quickscope +Converts a quickscope (`source/quickscope.xml`) into a full-blown XML quote. + +Handled by [bash/handler_quickscope](bash/handler_quickscope) + + +Usage: `quickscope REPO_NAME [NAMESPACE [BRANCH]]]` + + +### build +Builds PDF files from XML quotes and reports. + +Handled by [bash/handler_build](bash/handler_build) + +Usage: `build quote|report REPO_NAME [NAMESPACE [[BRANCH]] [-PARAMETERS]` + + +### startpentest +Start the pentesting process by setting up a repository with the PenText framework, adding standard gitlab labels and issues, and creating a RocketChat channel. + +Handled by [bash/handler_pentest](bash/handler_pentest) + +Sets up a pentest RocketChat channel named `pen-PROJECT_NAME`, and a gitlab repo named `pen-PROJECT_NAME`. Will use the quotation found in the corresponding `off-PROJECT_NAME` as base. Note that the prefix `pen-` is set by the `rosbot.coffee` script. + +Usage: `startpentest PROJECT_NAME` + + +### convert +Converts gitlab issues labeled with `finding` and `non-finding` into XML files, and adds those to the repository +Handled by [bash/handler_convert](bash/hander_convert) + +Converts gitlab items to XML findings + +Usage: `convert REPO_NAME` + + +### validate +Validates quotes and reports. +Handled by [bash/handler_validate](bash/handler_validate) + +Validates quotes and reports using the `validate_report.py` script (proper casing, spell checking, long lines, cross-checks) + +Usage: `validate [OPTIONAL PARAMETERS]` + + +### invoice +Builds PDF invoices from quotes. + +Handled by [bash/handler_invoice](bash/handler_invoice) + + +Usage: `invoice REPO_NAME INVOICE_NO [NAMESPACE [[BRANCH]] [-PARAMETERS]` diff --git a/chatops/bash/handler_build b/chatops/bash/handler_build new file mode 100644 index 0000000..01cce2a --- /dev/null +++ b/chatops/bash/handler_build @@ -0,0 +1,126 @@ +#!/bin/bash + +# handler_build - builds PDF quotes and reports from XML files +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.11 +DOCBUILDER=/usr/local/bin/docbuilder.py +TEMPLOC=$(mktemp -d) + +# These variables should be set environment-specific +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $GITWEB ] && GITWEB=https://${GITSERVER} +[ -z $NAMESPACE ] && NAMESPACE=ros +BRANCH=master + +# Read standard 'command line' variables +[[ ! -z $1 ]] && TARGET=$1 +[[ ! -z $2 ]] && REPO=$2 + +# Reading positional parms is a bit ugly, shifting parms or getopt would be nicer +if [[ ! -z $3 ]]; then + if [[ ! $3 == -* ]]; then + NAMESPACE=$3 + else + PARMS=$3 + fi +fi +if [[ ! -z $4 ]]; then + if [[ ! $3 == -* ]]; then + BRANCH=$4 + else + PARMS="$PARMS $4" + fi +fi +if [[ $# -ge 5 ]]; then + shift 4 + PARMS="$PARMS $@" +fi + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# As quote used to be called offer or even offer, +# this function retains backward compatibility - v0.1 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +# Clones repo using global (!) variables - v0.2 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone -b $BRANCH --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables - v0.2 +preflight_checks() { + if ([[ $TARGET != "quote" ]] && [[ $TARGET != "report" ]]) || [ -z $REPO ]; then + echo "Usage: build quote|report REPOSITORY [NAMESPACE [BRANCH] [-v]" + exit + fi + if [ ! -f $DOCBUILDER ]; then + echo "[-] this script needs docbuilder.py ($DOCBUILDER)" + fi +} + +build() { + if [ ! -d source ]; then + echo "[-] missing necessary pentext framework files" + exit 1 + fi + pushd source &>/dev/null + backwards_compatible + targetpdf=target/$TARGET-latest.pdf + $DOCBUILDER -c -i $TARGET.xml -o ../$targetpdf -x ../xslt/generate_$TARGET.xsl $PARMS + if [[ $? -ne 0 ]]; then + echo "[-] Sorry, failed to parse $TARGET. Use \`builder $TARGET $REPO $NAMESPACE $BRANCH -v\` for more information." + exit 1 + fi + popd &>/dev/null + if [ ! -f $targetpdf ]; then + echo "[-] hmmm... failed to build PDF file (could not find $targetpdf)" + exit 1 + fi +} + +add_to_repo() { + git add target/$TARGET-latest.pdf + git add target/waiver_?*.pdf &>/dev/null + git commit -q -m "$targetpdf proudly manufactured using ChatOps" &>/dev/null + git push -q >/dev/null +} + +preflight_checks +echo "builder v$VERSION - Rocking your world, one build at a time..." +clone_repo +build +add_to_repo +echo "[+] listo! Check out $GITWEB/$NAMESPACE/$REPO/raw/$BRANCH/$targetpdf" +exit 0 diff --git a/chatops/bash/handler_convert b/chatops/bash/handler_convert new file mode 100644 index 0000000..b5961c5 --- /dev/null +++ b/chatops/bash/handler_convert @@ -0,0 +1,131 @@ +#!/bin/bash + +# handler_convert - converts gitlab issues into XML files +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.2 +CONVERTER=/usr/local/bin/gitlab-to-pentext.py +TEMPLOC=$(mktemp -d) + +# These variables should be set environment-specific +[ -z $GITLABCLI ] && GITLABCLI=gitlab +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $NAMESPACE ] && NAMESPACE=ros +BRANCH=master + +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +# Reading parms is a bit ugly, shifting parms or actually using getopt would be nicer +if [[ ! -z $2 ]]; then + if [[ ! $2 == -* ]]; then + NAMESPACE=$2 + else + PARMS=$2 + fi +fi +if [[ ! -z $3 ]]; then + if [[ ! $3 == -* ]]; then + BRANCH=$3 + else + PARMS="$PARMS $3" + fi +fi + +if [[ $# -ge 4 ]]; then + shift 3 + PARMS="$PARMS $@" +fi + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# As quote used to be called offerte or offer, +# this function retains backward compatibility - v0.2 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +# Clones repo using global (!) variables - v0.2 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone -b $BRANCH --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables - v0.2 +preflight_checks() { + if [ -z $REPO ]; then + echo "[-] repository name needed" + exit + fi + if [ ! -f $CONVERTER ]; then + echo "[-] this script needs gitlab-to-pentext.py ($CONVERTER)" + exit + fi +} + +get_id() { + project_id=$($GITLABCLI project search --query $REPO|awk '/id:/{print $2}') + if [ -z $project_id ]; then + echo "[-] could not find $REPO in gitlab" + exit + fi + return $project_id +} + +convert() { + $CONVERTER --issues $project_id -y +} + +add_to_repo() { + git add * &>/dev/null + git commit -q -m "Converted gitlab (non) findings to XML using ChatOps" &>/dev/null + git push -q >/dev/null +} + +validate() { + if [ ! -d source ]; then + echo "[-] missing necessary pentext framework files" + exit 1 + fi + $VALIDATOR $PARMS + if [[ -f project-vocabulary.pws ]]; then + git add project-vocabulary.pws + git commit -q -m 'Added spellcheck vocabulary using ChatOps' >/dev/null + git push -q >/dev/null + fi +} + +preflight_checks +echo "convert v$VERSION - Convert all the things!" +get_id +clone_repo +convert +add_to_repo +echo "[+] Listo!" diff --git a/chatops/bash/handler_invoice b/chatops/bash/handler_invoice new file mode 100644 index 0000000..0c8b7b0 --- /dev/null +++ b/chatops/bash/handler_invoice @@ -0,0 +1,126 @@ +#!/bin/bash + +# handler_invoice - builds PDF invoices from quotes +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.5 +DOCBUILDER=/usr/local/bin/docbuilder.py +TEMPLOC=$(mktemp -d) +DATESTAMP=$(date +"%Y-%m-%d") +INVOICE="00/000" + +# These variables should be set environment-specific +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $GITWEB ] && GITWEB=https://${GITSERVER} +[ -z $NAMESPACE ] && NAMESPACE=ros +BRANCH=master +TARGET=quote + +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +[[ ! -z $2 ]] && INVOICE=$2 + +# Reading positional parms is a bit ugly, shifting parms or getopt would be nicer +if [[ ! -z $3 ]]; then + if [[ ! $3 == -* ]]; then + NAMESPACE=$3 + else + PARMS=$3 + fi +fi +if [[ ! -z $4 ]]; then + if [[ ! $3 == -* ]]; then + BRANCH=$4 + else + PARMS="$PARMS $4" + fi +fi +if [[ $# -ge 5 ]]; then + shift 4 + PARMS="$PARMS $@" +fi +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# As quote used to be called offerte or offer, +# this function retains backward compatibility - v0.2 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +# Clones repo using global (!) variables - v0.2 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone -b $BRANCH --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables - v0.2 +preflight_checks() { + if [ -z $REPO ]; then + echo "Usage: invoice REPOSITORY [INVOICE_NUMBER [NAMESPACE [BRANCH]]] [-v]" + exit + fi + if [ ! -f $DOCBUILDER ]; then + echo "[-] this script needs docbuilder.py ($DOCBUILDER)" + fi +} + +build() { + if [ ! -d source ]; then + echo "[-] missing necessary pentext framework files" + exit 1 + fi + pushd source &>/dev/null + backwards_compatible + targetpdf=target/invoice-latest.pdf + $DOCBUILDER -c -i $TARGET.xml -o ../$targetpdf -x ../xslt/generate_invoice.xsl -invoice "$INVOICE" -date $DATESTAMP --fop ../target/invoice.fo $PARMS + if [[ $? -ne 0 ]]; then + echo "[-] Sorry, failed to generate $targetpdf" + exit 1 + fi + popd &>/dev/null + if [ ! -f target/invoice-latest.pdf ]; then + echo "[-] hmmm... failed to build PDF file (could not find $targetpdf)" + exit 1 + fi +} + +add_to_repo() { + git add target/invoice-latest.pdf + git commit -q -m "Invoice $INVOICE automatically generated using ChatOps" &>/dev/null + git push -q >/dev/null +} + +preflight_checks +echo "invoice v$VERSION - Congrats, another project from conception to ka-CHING" +clone_repo +build +add_to_repo +echo "[+] listo! Check out $GITWEB/$NAMESPACE/$REPO/raw/$BRANCH/$targetpdf" diff --git a/chatops/bash/handler_pentest b/chatops/bash/handler_pentest new file mode 100644 index 0000000..c4046ff --- /dev/null +++ b/chatops/bash/handler_pentest @@ -0,0 +1,160 @@ +#!/bin/bash + +# handler_pentest - sets up a pentest repo with PenText based on a quote repo +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# John Sinteur +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.7 +SAXON=/usr/local/bin/saxon/saxon9he.jar +TEMPLATEREPO=ssh://git@gitlab.local/peter/templates + +# These variables should be set environment-specific +[ -z $GITLABCLI ] && GITLABCLI=gitlab +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $NAMESPACE ] && NAMESPACE=ros +[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates + +TEMPLOC=$(mktemp -d) +pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}') +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +[[ ! -z $2 ]] && NAMESPACE=$2 +BRANCH=master +TARGET=quote + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + # remove repo if not finished successfully + if [ -z $finished ] && [ ! -z $project_id ]; then + $GITLABCLI project delete --id $project_id + echo "[-] deleted project $project_id" + fi + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# As quote used to be called offerte or offer, +# this function retains backward compatibility - v0.2 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +# Clones repo using global (!) variables - v0.3 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables +preflight_checks() { + if [ -z $REPO ]; then + echo "[-] repository name needed (without leading pen- or off-)" + exit + fi + if [ ! -f $SAXON ]; then + echo "[-] this script needs saxon ($SAXON)" + fi +} + +setup_repo() { + project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}') + if [ ! -z $project_id ]; then + echo "[+] successfully created gitlab project $REPO with id ${project_id}" + $GITLABCLI project-label create --project-id ${project_id} --name documentation --color "#0000FF" &>/dev/null + $GITLABCLI project-label create --project-id ${project_id} --name finding --color "#00c800" &>/dev/null + $GITLABCLI project-label create --project-id ${project_id} --name lead --color "#e4d700" &>/dev/null + $GITLABCLI project-label create --project-id ${project_id} --name non-finding --color "#c80000" &>/dev/null + $GITLABCLI project-label create --project-id ${project_id} --name future-work --color "#f8b7b2" &>/dev/null + $GITLABCLI project-issue create --project-id ${project_id} --description "Please drop all your positive/negative comments here, so that we can keep on improving our processes. It is important that we learn from what. No need for namecalling, who is unimportant

Thumbs up

Improvement

Not project related

Project related

" --title "Retrospective: add your feedback HERE" &> /dev/null + else + echo "[-] could not create repo $NAMESPACE/$REPO" + exit 1 + fi +} + +# Add standard templates using global (!) variables - v0.2 +add_templates() { + [ -d $TEMPLOC/$pentext ] && rm -rf $TEMPLOC/$pentext &>/dev/null + pushd $TEMPLOC 1>/dev/null && git clone --depth=1 $PENTEXTREPO &>/dev/null && popd 1>/dev/null + + if [ ! -d $TEMPLOC/$pentext ]; then + echo "[-] could not clone (and therefore add) pentext repo $TEMPLATEREPO" + exit 1 + else + clone_repo + # copy the framework + cp -r $TEMPLOC/$pentext/xml/* . + # remove the docs + rm -r doc &>/dev/null + fi +} + +grab_offer() { + pushd source &>/dev/null + backwards_compatible + if [ ! -f $TARGET.xml ]; then + echo "[-] could not find $TARGET.xml" + exit + fi + cp client_info.xml $TEMPLOC/client_info.xml + cp $TARGET.xml $TEMPLOC/quote.xml +} + +convert_report() { + cp $TEMPLOC/quote.xml source/quote.xml + cp $TEMPLOC/client_info.xml source/client_info.xml + pushd source &>/dev/null + java -jar $SAXON -s:quote.xml -xsl:../xslt/off2rep.xsl -o:report.xml + if [ ! -f report.xml ]; then + echo "[-] hmmm... failed to convert quote into report.xml" + exit 1 + fi + popd &>/dev/null + mkdir -p findings/ &>/dev/null + mkdir -p non-findings/ &>/dev/null +} + +add_to_repo() { + git add * &>/dev/null + git commit -q -m "Initialized pentest repository with PenText using ChatOps" &> /dev/null + git push -q > /dev/null +} + +preflight_checks +echo "startpentest v${VERSION} - Ready for some ACTION?" +ORIGREPO=$REPO +REPO=off-$ORIGREPO +clone_repo +grab_offer +REPO=pen-${ORIGREPO} +setup_repo +add_templates +convert_report +add_to_repo + +echo "[+] listo!" +finished=true diff --git a/chatops/bash/handler_quickscope b/chatops/bash/handler_quickscope new file mode 100644 index 0000000..2e603bf --- /dev/null +++ b/chatops/bash/handler_quickscope @@ -0,0 +1,90 @@ +#!/bin/bash + +# handler_quickscope - converts a quickscope into a quotation +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# John Sinteur +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.3 +SAXON=/usr/local/bin/saxon/saxon9he.jar +TEMPLOC=$(mktemp -d) + + +# These variables should be set environment-specific +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $NAMESPACE ] && NAMESPACE=ros + +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +[[ ! -z $2 ]] && NAMESPACE=$2 +[[ ! -z $3 ]] && BRANCH=$3 || BRANCH=master + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# Clones repo using global (!) variables - v0.2 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables +preflight_checks() { + if [ -z $REPO ]; then + echo "Usage: quickscope REPOSITORY [NAMESPACE]" + exit + fi + if [ ! -f $SAXON ]; then + echo "[-] this script needs saxon ($SAXON)" + fi +} + +convert_quickscope() { + if [ ! -f $TEMPLOC/$REPO/source/quickscope.xml ] || [ ! -f $TEMPLOC/$REPO/xslt/qs2offerte.xsl ]; then + echo "[-] missing necessary pentext framework files" + exit 1 + fi + java -jar $SAXON -s:$TEMPLOC/$REPO/source/quickscope.xml -xsl:$TEMPLOC/$REPO/xslt/qs2offerte.xsl -o:$TEMPLOC/$REPO/source/offerte.xml + if [ ! -f $TEMPLOC/$REPO/source/offerte.xml ]; then + echo "[-] failed to parse quote" + exit + fi +} + +add_to_repo() { + git add source/offerte.xml &>/dev/null + git commit -q -m "Created quickscope using ChatOps" &>/dev/null + git push -q >/dev/null +} + +preflight_checks +echo "quickscope v${VERSION} - Rockin' and scoping'..." +clone_repo +convert_quickscope +add_to_repo +echo "[+] listo!" +exit 0 diff --git a/chatops/bash/handler_quote b/chatops/bash/handler_quote new file mode 100644 index 0000000..ee825e2 --- /dev/null +++ b/chatops/bash/handler_quote @@ -0,0 +1,112 @@ +#!/bin/bash + +# handler_quote - sets up a quote gitlab repository using PenText +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# John Sinteur +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.6 + +# These variables should be set environment-specific +[ -z $GITLABCLI ] && GITLABCLI=gitlab +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $NAMESPACE ] && NAMESPACE=ros +[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates +PREFIX="off-" +pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}') +TEMPLOC=$(mktemp -d) + +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$PREFIX$1 +REPO=${REPO,,} # follow git specs: lowercase +[[ ! -z $2 ]] && NAMESPACE=$2 + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + # remove repo if not finished successfully + if [ -z $finished ] && [ ! -z $project_id ]; then + $GITLABCLI project delete --id $project_id + echo "[-] deleted project $project_id" + fi + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# Clones repo using global (!) variables - v0.3 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables +preflight_checks() { + if [ -z $REPO ]; then + echo "Usage: startquote PROJECT_NAME" + exit + fi + if ! which $GITLABCLI &>/dev/null; then + echo "[-] this script needs the gitlab command line interface (python-gitlab)" + fi +} + +setup_repo() { + project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}') + if [ ! -z $project_id ]; then + echo "[+] successfully created gitlab project $REPO with id ${project_id}" + else + echo "[-] could not create repo $NAMESPACE/$REPO" + exit 1 + fi +} + +# Add standard templates using global (!) variables - v0.2 +add_templates() { + [ -d $TEMPLOC/$pentext ] && rm -rf $TEMPLOC/$pentext &>/dev/null + pushd $TEMPLOC 1>/dev/null && git clone --depth=1 $PENTEXTREPO &>/dev/null && popd 1>/dev/null + + if [ ! -d $TEMPLOC/$pentext ]; then + echo "[-] could not clone (and therefore add) pentext repo $TEMPLATEREPO" + exit 1 + else + clone_repo + # copy the framework + cp -r $TEMPLOC/$pentext/xml/* . + # remove the docs + rm -r doc &>/dev/null + fi +} + +add_to_repo() { + git add * &>/dev/null + git commit -q -m "Initialized quote repository with PenText using ChatOps" &>/dev/null + git push -q > /dev/null +} + +preflight_checks +echo "startquote v${VERSION} - Humbly setting up your quote framework..." +setup_repo +add_templates +add_to_repo +echo "[+] listo!" +finished=true diff --git a/chatops/bash/handler_validate b/chatops/bash/handler_validate new file mode 100644 index 0000000..3afab44 --- /dev/null +++ b/chatops/bash/handler_validate @@ -0,0 +1,113 @@ +#!/bin/bash + +# handler_validate - validates quotes and reports +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.3 +VALIDATOR=/usr/local/bin/validate_report.py +TEMPLOC=$(mktemp -d) + + +# These variables should be set environment-specific +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $NAMESPACE ] && NAMESPACE=ros +BRANCH=master + +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +# Reading parms is a bit ugly, shifting parms or actually using getopt would be nicer +if [[ ! -z $2 ]]; then + if [[ ! $2 == -* ]]; then + NAMESPACE=$2 + else + PARMS=$2 + fi +fi +if [[ ! -z $3 ]]; then + if [[ ! $3 == -* ]]; then + BRANCH=$3 + else + PARMS="$PARMS $3" + fi +fi +if [[ $# -ge 4 ]]; then + shift 3 + PARMS="$PARMS $@" +fi + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + exit +} + +# As quote used to be called offerte or offer, +# this function retains backward compatibility - v0.2 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +# Clones repo using global (!) variables - v0.3 +clone_repo() { + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/${REPO}.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/${REPO}" + exit 1 + else + cd $REPO + fi +} + +# Preflight checks using global (!) variables - v0.2 +preflight_checks() { + if [ -z $REPO ]; then + echo "[-] repository name needed" + exit + fi + if [ ! -f $VALIDATOR ]; then + echo "[-] this script needs validate_report.py ($VALIDATOR)" + exit + fi +} + +validate() { + if [ ! -d source ]; then + echo "[-] missing necessary pentext framework files" + exit 1 + fi + $VALIDATOR $PARMS +} + +# Add changed files to the repository +add_to_repo() { + git add * &>/dev/null + git commit -q -m "validate fixed some files using ChatOps" &>/dev/null + git push -q > /dev/null +} + + +preflight_checks +echo "validate v$VERSION - Validating all of your needs..." +clone_repo +validate +add_to_repo +# Don't Listo! here, as the validate script tells the user that diff --git a/chatops/bash/test_pentext b/chatops/bash/test_pentext new file mode 100644 index 0000000..a8d77db --- /dev/null +++ b/chatops/bash/test_pentext @@ -0,0 +1,167 @@ +#!/bin/bash + +# test_pentext - tests the PenText toolchain +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +VERSION=0.5 +DOCBUILDER=/usr/local/bin/docbuilder.py +VALIDATOR=/usr/local/bin/validate_report.py +SAXON=/usr/local/bin/saxon/saxon9he.jar + +# These variables should be set environment-specific +[ -z $GITLABCLI ] && GITLABCLI=gitlab +[ -z $GITSERVER ] && GITSERVER=gitlab.local +[ -z $GITWEB ] && GITWEB=https://$GITSERVER +[ -z $NAMESPACE ] && NAMESPACE=ros +[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates + +TEMPLOC=$(mktemp -d) +BRANCH=master +reponame=test-pentext-$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 1) +pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}') +# Read standard 'command line' variables +[[ ! -z $1 ]] && REPO=$1 +# Reading parms is a bit ugly, shifting parms or actually using getopt would be nicer +if [[ ! -z $2 ]]; then + if [[ ! $2 == -* ]]; then + NAMESPACE=$2 + else + PARMS=$2 + fi +fi +if [[ ! -z $3 ]]; then + if [[ ! $3 == -* ]]; then + BRANCH=$3 + else + PARMS="$PARMS $3" + fi +fi +if [[ $# -ge 4 ]]; then + shift 3 + PARMS="$PARMS $@" +fi + +trap cleanup EXIT QUIT + +# Make sure that the temporary files are always removed +cleanup() { + trap '' EXIT INT QUIT + [ -d $TEMPLOC ] && rm -rf $TEMPLOC &>/dev/null + + exit +} + +# As quote used to be called offerte or offer, +# this function retains backward compatibility - v0.2 +backwards_compatible() { + if [[ $TARGET == "quote" ]] && [ ! -f $TARGET.xml ]; then + TARGET="offerte" + fi +} + +setup_repo() { + echo "[*] testing gitlab command line interface..." + REPO=${reponame,,} # lowercase, but of course + project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true| awk '/id:/{print $2}') + if [ ! -z $project_id ]; then + echo "[+] successfully created test gitlab project with id ${project_id}" + else + echo "[-] could not create repo $reponame - is the .python-gitlab.cfg configuration corrent ?" + exit 1 + fi +} + +# Clones repo using global (!) variables - v0.3 +clone_repo() { + echo "[*] testing gitlab SSH access using ssh://git@${GITSERVER}/${NAMESPACE}..." + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 -q ssh://git@${GITSERVER}/${NAMESPACE}/$REPO.git &>/dev/null + if [ ! -d $TEMPLOC/$REPO ]; then + echo "[-] could not clone repo ${NAMESPACE}/$reponame - is the namespace correct ?" + exit 1 + else + echo "[+] successfully cloned repo using namespace ${NAMESPACE}" + fi + cd $TEMPLOC/$REPO +} + +# Preflight checks +preflight_checks() { + echo "The following variables will be used: " + echo "DOCBUILDER=$DOCBUILDER (location of docbuilder.py)" + echo "GITLABCLI=$GITLABCLI (command line gitlab interface)" + echo "GITSERVER=$GITSERVER (git server)" + echo "GITWEB=$GITWEB (webinterface of git server)" + echo "NAMESPACE=$NAMESPACE (namespace of repositories)" + echo "PENTEXTREPO=$PENTEXTREPO (location of pentext repo)" + echo "SAXON=$SAXON (saxon binary)" + echo "VALIDATOR=$VALIDATOR (location of validate_report.py)" + echo "[*] testing binaries..." + [ ! -f $VALIDATOR ] && echo "[-] validate_report.py ($VALIDATOR) is missing (necessary for validate)" + [ ! -f $DOCBUILDER ] && echo "[-] docbuilder.py ($DOCBUILDER) is missing (necessary for build)" + [ ! -f $SAXON ] && echo "[-] saxon ($SAXON) is missing (necessary for invoice)" + which java &> /dev/null || echo "[-] java is missing (necessary for saxon)" + if ! which $GITLABCLI &>/dev/null && [ ! -f $GITLABCLI ]; then + echo "[-] gitlab ($GITLABCLI) is missing, required for startquote and startpentest" + exit 1 + fi +} + +add_to_repo() { + echo "[*] testing add to repo" + echo "commit test" > testcommit + git add testcommit + git commit -q -m "test_pentext testcommit" + git push -q + if [ $? -ne 0 ]; then + echo "[-] failed adding stuff to repo" + fi +} + +delete_repo() { + if [ ! -z $project_id ]; then + $GITLABCLI project delete --id $project_id &>/dev/null + if [ $? -eq 0 ]; then + echo "[+] successfully deleted testproject $project_id" + else + echo "[-] hmmm... failed deleting testproject $project_id" + exit 1 + fi + fi +} + +clone_pentext() { + echo "[*] testing access to PenText repo $PENTEXTREPO..." + pushd $TEMPLOC 1>/dev/null + git clone --depth=1 $PENTEXTREPO &>/dev/null + popd 1>/dev/null + + if [ ! -d $TEMPLOC/$pentext ]; then + echo "[-] could not clone repo $TEMPLATEREPO..." + exit 1 + fi +} + + +# preflight_checks +echo "test_pentext v$VERSION - Testing the PenText toolchain" +preflight_checks +setup_repo +clone_repo +add_to_repo +delete_repo +clone_pentext +echo "[+] all tests successful. Good to go!" diff --git a/chatops/python/docbuilder.py b/chatops/python/docbuilder.py new file mode 100644 index 0000000..5da7c57 --- /dev/null +++ b/chatops/python/docbuilder.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python + +""" +Builds PDF files from (intermediate fo and) XML files. + +This script is part of the PenText framework + https://pentext.org + + Copyright (C) 2015-2016 Radically Open Security + https://www.radicallyopensecurity.com + + Author(s): Peter Mosmans + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +""" + +from __future__ import absolute_import +from __future__ import print_function + +import argparse +import os +import subprocess +from subprocess import PIPE +import sys +import textwrap + + +GITREV = 'GITREV' # Magic tag which gets replaced by the git short commit hash +OFFERTE = 'generate_offerte.xsl' # XSL for generating waivers +WAIVER = 'waiver_' # prefix for waivers + + +def parse_arguments(): + """ + Parses command line arguments. + """ + global verboseprint + global verboseerror + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent('''\ +Builds PDF files from (intermediate fo and) XML files. + +Copyright (C) 2015-2016 Radically Open Security (Peter Mosmans) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.''')) + parser.add_argument('-c', '--clobber', action='store_true', + help='overwrite output file if it already exists') + parser.add_argument('-date', action='store', + help='the invoice date') + parser.add_argument('--fop-config', action='store', + default='/etc/docbuilder/rosfop.xconf', + help="""fop configuration file (default + /etc/docbuilder/rosfop.xconf""") + parser.add_argument('-f', '--fop', action='store', + default='../target/report.fo', + help="""intermediate fop output file (default: + ../target/report.fo)""") + parser.add_argument('--fop-binary', action='store', + default='/usr/local/bin/fop', + help='fop binary (default /usr/local/bin/fop') + parser.add_argument('-i', '--input', action='store', + default='report.xml', + help="""input file (default: report.xml)""") + parser.add_argument('-invoice', action='store', + help="""invoice number""") + parser.add_argument('--saxon', action='store', + default='/usr/local/bin/saxon/saxon9he.jar', + help="""saxon JAR file (default + /usr/local/bin/saxon/saxon9he.jar)""") + parser.add_argument('-x', '--xslt', action='store', + default='../xslt/generate_report.xsl', + help='input file (default: ../xslt/generate_report.xsl)') + parser.add_argument('-o', '--output', action='store', + default='../target/report-latest.pdf', + help="""output file name (default: + ../target/report-latest.pdf""") + parser.add_argument('-v', '--verbose', action='store_true', + help='increase output verbosity') + parser.add_argument('-w', '--warnings', action='store_true', + help='show warnings') + args = parser.parse_args() + if args.verbose: + def verboseprint(*args): # pylint: disable=missing-docstring + for arg in args: + print(arg, end="") + print() + + def verboseerror(*args): # pylint: disable=missing-docstring + for arg in args: + print(arg, end="", file=sys.stderr) + print(file=sys.stderr) + else: + verboseprint = lambda *a: None + verboseerror = lambda *a: None + return vars(parser.parse_args()) + + +def print_output(stdout, stderr): + """ + Prints out standard out and standard err using the verboseprint function. + """ + if stdout: + verboseprint('[+] stdout: {0}'.format(stdout)) + if stderr: + verboseerror('[-] stderr: {0}'.format(stderr)) + + +def change_tag(fop): + """ + Replaces GITREV in document by git commit shorttag. + """ + cmd = ['git', 'log', '--pretty=format:%h', '-n', '1'] + process = subprocess.Popen(cmd, stdout=subprocess.PIPE) + shorttag, _stderr = process.communicate() + if not process.returncode: + fop_file = open(fop).read() + if GITREV in fop_file: + fop_file = fop_file.replace(GITREV, shorttag) + with open(fop, 'w') as new_file: + new_file.write(fop_file) + print('[+] Embedding git version information into document') + + +def to_fo(options): + """ + Creates a fo output file based on a XML file. + Returns True if successful + """ + cmd = ['java', '-jar', options['saxon'], + '-s:' + options['input'], '-xsl:' + options['xslt'], + '-o:' + options['fop'], '-xi'] + if options['invoice']: + cmd.append('INVOICE_NO=' + options['invoice']) + if options['date']: + cmd.append('DATE=' + options['date']) + process = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE) + stdout, stderr = process.communicate() + print_output(stdout, stderr) + if process.returncode: + print_exit('[-] Error creating fo file from XML input', + process.returncode) + else: + change_tag(options['fop']) + return True + + +def to_pdf(options): + """ + Creates a PDF file based on a fo file. + Returns True if successful + """ + cmd = [options['fop_binary'], '-c', options['fop_config'], options['fop'], + options['output']] + try: + verboseprint('Converting {0} to {1}'.format(options['fop'], + options['output'])) + process = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE) + stdout, stderr = process.communicate() + result = process.returncode + print_output(stdout, stderr) + if result == 0: + print('[+] Succesfully built ' + options['output']) + except OSError as exception: + print_exit('[-] ERR: {0}'.format(exception.strerror), exception.errno) + return result == 0 + + +def print_exit(text, result): + """ + Prints error message and exits with result code. + """ + print(text, file=sys.stderr) + sys.exit(result) + + +def main(): + """ + The main program. + """ + global verboseerror + global verboseprint + result = False + options = parse_arguments() + if not os.path.isfile(options['input']): + print_exit('[-] Cannot find input file {0}'. + format(options['input']), result) + try: + if os.path.isfile(options['output']): + if not options['clobber']: + print_exit('[-] Output file {0} already exists. '. + format(options['output']) + + 'Use -c (clobber) to overwrite', + result) + os.remove(options['output']) + except OSError as exception: + print_exit('[-] Could not remove/overwrite file {0} ({1})'. + format(options['output'], exception.strerror), result) + result = to_fo(options) + if result: + if OFFERTE in options['xslt']: # an offerte can generate multiple fo's + report_output = options['output'] + verboseprint('generating separate waivers detected') + output_dir = os.path.dirname(options['output']) + fop_dir = os.path.dirname(options['fop']) + try: + for fop in [os.path.splitext(x)[0] for x in + os.listdir(fop_dir) if x.endswith('fo')]: + if WAIVER in fop: + options['output'] = output_dir + os.sep + fop + '.pdf' + else: + options['output'] = report_output + options['fop'] = fop_dir + os.sep + fop + '.fo' + result = to_pdf(options) and result + except OSError as exception: + print_exit('[-] ERR: {0}'.format(exception.strerror), + exception.errno) + else: + result = to_pdf(options) + + else: + print_exit('[-] Unsuccessful (error {0})'.format(result), result) + sys.exit(not result) + + +if __name__ == "__main__": + main() diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py new file mode 100644 index 0000000..a44f10f --- /dev/null +++ b/chatops/python/gitlab-to-pentext.py @@ -0,0 +1,267 @@ +#!/usr/bin/env python + +""" +Gitlab bridge for PenText: imports and updates gitlab issues into PenText +(XML) format + +This script is part of the PenText framework + https://pentext.org + + Copyright (C) 2016 Radically Open Security + https://www.radicallyopensecurity.com + + Author(s): Peter Mosmans + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +""" + +from __future__ import absolute_import +from __future__ import print_function +from __future__ import unicode_literals + +import argparse +import collections +import os +import re +import sys +import textwrap + +try: + import gitlab + import jxmlease + # path to docbuilder installation (needs the module) + sys.path.append('/usr/local/bin') + import validate_report +except ImportError: + print('[-] This script needs gitlab, jxmlease and validate_report library', + file=sys.stderr) + sys.exit(-1) + + +def add_finding(issue, options): + title = validate_report.capitalize(issue.title.strip()) + print_status('{0} - {1} - {2}'.format(issue.state, issue.labels, + title), options) + threatLevel = 'Moderate' + finding_type = 'TODO' + finding_id = '{0}-{1}'.format(issue.iid, valid_filename(title)) + filename = 'findings/{0}.xml'.format(finding_id) + finding = collections.OrderedDict() + finding['title'] = title + finding['description'] = unicode.replace(issue.description, + '\r\n', '\n') + finding['technicaldescription'] = '' + for note in [x for x in issue.notes.list() if not x.system]: + finding['technicaldescription'] += unicode.replace(note.body, + '\r\n', '\n') + finding['impact'] = {} + finding['impact']['p'] = 'TODO' + finding['recommendation'] = {} + finding['recommendation']['ul'] = {} + finding['recommendation']['ul']['li'] = 'TODO' + finding_xml = jxmlease.XMLDictNode(finding, tag='finding', + xml_attrs={'id': finding_id, + 'threatLevel': threatLevel, + 'type': finding_type}) + if options['dry_run']: + print_line('[+] {0}'.format(filename)) + print(finding_xml.emit_xml()) + else: + if os.path.isfile(filename) and not options['overwrite']: + print_line('Finding {0} already exists (use --overwrite to overwrite)'. + format(filename)) + else: + if options['y'] or ask_permission('Create file ' + filename): + with open(filename, 'w') as xmlfile: + xmlfile.write(finding_xml.emit_xml().encode('utf-8')) + print_line('[+] Created {0}'.format(filename)) + + +def add_non_finding(issue, options): + """ + Adds a non-finding. + """ + title = validate_report.capitalize(issue.title.strip()) + print_status('{0} - {1} - {2}'.format(issue.state, issue.labels, + title), options) + non_finding_id = '{0}-{1}'.format(issue.iid, valid_filename(title)) + filename = 'non-findings/{0}.xml'.format(non_finding_id) + non_finding = collections.OrderedDict() + non_finding['title'] = title + non_finding['p'] = unicode.replace(issue.description, + '\r\n', '\n') + for note in [x for x in issue.notes.list() if not x.system]: + non_finding['p'] += unicode.replace(note.body, + '\r\n', '\n') + non_finding_xml = jxmlease.XMLDictNode(non_finding, tag='non-finding', + xml_attrs={'id': non_finding_id}) + if options['dry_run']: + print_line('[+] {0}'.format(filename)) + print(non_finding_xml.emit_xml()) + else: + if os.path.isfile(filename) and not options['overwrite']: + print_line('Non-finding {0} already exists (use --overwrite to overwrite)'. + format(filename)) + else: + if options['y'] or ask_permission('Create file ' + filename): + with open(filename, 'w') as xmlfile: + xmlfile.write(non_finding_xml.emit_xml().encode('utf-8')) + print_line('[+] Created {0}'.format(filename)) + + +def ask_permission(question): + """ + Ask question and return True if user answered with y. + """ + print_line('{0} ? [y/N]'.format(question)) + return raw_input().lower() == 'y' + + +def convert_markdown(text): + """ + Replace markdown monospace with monospace tags + """ + result = text + return result + print('EXAMINING ' + text + ' END') + monospace = re.findall("\`\`\`(.*?)\`\`\`", text, re.DOTALL) + print(monospace) + if len(monospace): + print('YESSS ' + monospace) + result = {} + result['monospace'] = ''.join(monospace) + + +def list_issues(gitserver, options): + """ + Lists all issues for options['issues'] + """ + for issue in gitserver.projects.get(options['issues']).issues.list(all=True): + if issue.state != 'opened' and not options['closed']: + continue + if 'finding' in issue.labels: + add_finding(issue, options) + if 'non-finding' in issue.labels: + add_non_finding(issue, options) + + +def list_projects(gitserver, options): + """ + Lists all available projects. + """ + for project in gitserver.projects.list(all=True): + print_line('{0} - {1}'.format(project.as_dict()['id'], + project.as_dict()['path'])) + + +def parse_arguments(): + """ + Parses command line arguments. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent('''\ +gitlab-to-pentext - imports and updates gitlab issues into PenText (XML) format + +Copyright (C) 2015-2016 Radically Open Security (Peter Mosmans) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.''')) + parser.add_argument('--closed', action='store', + help='take closed issues into account') + parser.add_argument('--dry-run', action='store_true', + help='do not write anything, only output on screen') + parser.add_argument('--issues', action='store', + help='list issues for a given project') + parser.add_argument('--overwrite', action='store_true', + help='overwrite existing issues') + parser.add_argument('--projects', action='store_true', + help='list gitlab projects') + parser.add_argument('-v', '--verbose', action='store_true', + help='increase output verbosity') + parser.add_argument('-y', action='store_true', + help='assume yes on all questions, write findings') + if len(sys.argv) == 1: + parser.print_help() + return vars(parser.parse_args()) + + +def preflight_checks(options): + """ + Checks if all tools are there. + Exits with 0 if everything went okilydokily. + """ + try: + gitserver = gitlab.Gitlab.from_config('remote') + gitserver.auth() + except gitlab.config.GitlabDataError as e: + print_error('could not connect {0}'.format(e), -1) + return gitserver + + +def print_error(text, result=False): + """ + Prints error message. + When @result, exits with result. + """ + if len(text): + print_line('[-] ' + text, True) + if result: + sys.exit(result) + + +def print_line(text, error=False): + """ + Prints text, and flushes stdout and stdin. + When @error, prints text to stderr instead of stdout. + """ + if not error: + print(text) + else: + print(text, file=sys.stderr) + sys.stdout.flush() + sys.stderr.flush() + + +def print_status(text, options=False): + """ + Prints status message if options array is given and contains 'verbose'. + """ + if options and options['verbose']: + print_line('[*] ' + str(text)) + + +def valid_filename(filename): + """ + Return a valid filename. + """ + valid_filename = '' + for char in filename.strip(): + if char in [':', '/', '.', '\\', ' ', '[', ']', '(', ')', '\'']: + if len(char) and not valid_filename.endswith('-'): + valid_filename += '-' + else: + valid_filename += char + return valid_filename.lower() + + +def main(): + """ + The main program. + """ + options = parse_arguments() + gitserver = preflight_checks(options) + if options['projects']: + list_projects(gitserver, options) + if options['issues']: + list_issues(gitserver, options) + + +if __name__ == "__main__": + main() diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py new file mode 100644 index 0000000..c57edf3 --- /dev/null +++ b/chatops/python/validate_report.py @@ -0,0 +1,533 @@ +#!/usr/bin/env python + +""" +Cross-checks findings, validates XML files, offerte and report files. + +This script is part of the PenText framework + https://pentext.org + + Copyright (C) 2015-2016 Radically Open Security + https://www.radicallyopensecurity.com + + Author(s): Peter Mosmans + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +""" + +from __future__ import absolute_import +from __future__ import print_function + +import argparse +import mmap +import os +import re +import subprocess +import sys +import textwrap +import xml.sax + +from lxml import etree as ElementTree + + +# When set to True, the report will be validated using docbuilder +DOCBUILDER = False +VOCABULARY = 'project-vocabulary.pws' +# Snippets may contain XML fragments without the proper entities +EXAMPLEDIR = 'examples/' +NOT_CAPITALIZED = ['a', 'an', 'and', 'as', 'at', 'but', 'by', 'for', 'in', + 'nor', 'of', 'on', 'or', 'the', 'to', 'up'] +SNIPPETDIR = 'snippets/' +TEMPLATEDIR = 'templates/' +OFFERTE = '/offerte.xml' +REPORT = '/report.xml' +WARN_LINE = 100 # There should be a separation character after x characters... +MAX_LINE = 130 # ... and before y + + +if DOCBUILDER: + import docbuilder_proxy + import proxy_vagrant +try: + import aspell +except: + print('[-] aspell not installed: spelling not available') + + +def parse_arguments(): + """ + Parses command line arguments. + """ + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent('''\ +validate_report - validates offer letters and reports + +Copyright (C) 2015-2016 Radically Open Security (Peter Mosmans) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version.''')) + parser.add_argument('-a', '--all', action='store_true', + help='Perform all checks') + parser.add_argument('--auto-fix', action='store_true', + help='Try to automatically correct issues') + parser.add_argument('-c', '--capitalization', action='store_true', + help='Check capitalization') + parser.add_argument('--debug', action='store_true', + help='Show debug information') + parser.add_argument('--edit', action='store_true', + help='Open files with issues using an editor') + parser.add_argument('--learn', action='store_true', + help='Store all unknown words in dictionary file') + parser.add_argument('--long', action='store_true', + help='Check for long lines') + parser.add_argument('--offer', action='store_true', + help='Validate offer master file') + parser.add_argument('--spelling', action='store_true', + help='Check spelling') + parser.add_argument('-v', '--verbose', action='store_true', + help='increase output verbosity') + parser.add_argument('--no-report', action='store_true', + help='Do not validate report master file') + parser.add_argument('--quiet', action='store_true', + help='Don\'t output status messages') + return vars(parser.parse_args()) + + +def validate_spelling(tree, filename, options): + """ + Checks spelling of text within tags. + If options['learn'], then unknown words will be added to the dictionary. + """ + result = True + try: + speller = aspell.Speller(('lang', 'en'), + ('personal-dir', '.'), + ('personal', VOCABULARY)) + except: # some versions of aspell use a different path + speller = aspell.Speller(('lang', 'en'), + ('personal-path', './' + VOCABULARY)) + if options['debug']: + [print(i[0] + ' ' + str(i[2]) + '\n') for i in speller.ConfigKeys()] + try: + root = tree.getroot() + for section in root.iter(): + if section.text and isinstance(section.tag, basestring) and \ + section.tag not in ('a', 'code', 'monospace', 'pre'): + for word in re.findall('([a-zA-Z]+\'?[a-zA-Z]+)', section.text): + if not speller.check(word): + if options['learn']: + speller.addtoPersonal(word) + else: + result = False + print('[-] Misspelled (unknown) word {0} in {1}'. + format(word.encode('utf-8'), filename)) + if options['learn']: + speller.saveAllwords() + except aspell.AspellSpellerError as exception: + print('[-] Spelling disabled ({0})'.format(exception)) + return result + + +def all_files(): + """ + Returns a list of all files contained in the git repository. + """ + cmd = ['git', 'ls-files'] + process = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + return process.stdout.read().splitlines() + + +def open_editor(filename): + if sys.platform in ('linux', 'linux2'): + editor = os.getenv('EDITOR') + if editor: + print('{0} {1}'.format(editor, filename)) + sys.stdout.flush() + subprocess.call([editor, '"{0}"'.format(filename)], shell=True) + else: + subprocess.call('xdg-open', filename) + elif sys.platform == "darwin": + subprocess.call(['open', filename]) + elif sys.platform == "win32": + os.system('"{0}"'.format(filename.replace('/', os.path.sep))) + + +def validate_files(filenames, options): + """ + Checks file extensions and calls appropriate validator function. + Returns True if all files validated succesfully. + """ + result = True + masters = [] + findings = [] + non_findings = [] + scans = [] + for filename in filenames: + if (filename.lower().endswith('.xml') or + filename.lower().endswith('xml"')): + if SNIPPETDIR not in filename and TEMPLATEDIR not in filename: + if (OFFERTE in filename and options['offer']) or \ + (REPORT in filename and not options['no_report']): + masters.append(filename) + # try: + type_result, xml_type = validate_xml(filename, options) + result = result and type_result + if 'non-finding' in xml_type: + non_findings.append(filename) + else: + if 'finding' in xml_type: + findings.append(filename) + else: + if 'scans' in xml_type: + scans.append(filename) + if len(masters): + for master in masters: + result = validate_master(master, findings, non_findings, scans, options) and result + return result + + +def print_output(options, stdout, stderr=None): + """ + Prints out standard out and standard err using the verboseprint function. + """ + if stdout and options['verbose']: + print('[+] {0}'.format(stdout)) + if stderr and options['verbose']: + print('[-] {0}'.format(stderr)) + + +def validate_report(): + """ + Validates XML report file by trying to build it. + Returns True if the report was built successful. + """ + host, command = docbuilder_proxy.read_config(docbuilder_proxy.CONFIG_FILE) + command = command + ' -c' + return proxy_vagrant.execute_command(host, command) + + +def validate_xml(filename, options): + """ + Validates XML file by trying to parse it. + Returns True if the file validated successfully. + """ + result = True + xml_type = '' + print_output(options, 'Validating XML file: {0}'.format(filename)) + try: + with open(filename, 'rb') as xml_file: + xml.sax.parse(xml_file, xml.sax.ContentHandler()) + tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False)) + type_result, xml_type = validate_type(tree, filename, options) + result = validate_long_lines(tree, filename, options) and result and type_result + if options['edit'] and not result: + open_editor(filename) + except (xml.sax.SAXException, ElementTree.ParseError) as exception: + print('[-] validating {0} failed ({1})'.format(filename, exception)) + result = False + except IOError as exception: + print('[-] validating {0} failed ({1})'.format(filename, exception)) + result = False + return result, xml_type + + +def get_all_text(node): + """ + Retrieves all text within tags. + """ + text_string = node.text or '' + for element in node: + text_string += get_all_text(element) + if node.tail: + text_string += node.tail + return text_string.strip() + + +def is_capitalized(line): + """ + Checks whether all words in @line start with a capital. + + Returns True if that's the case. + """ + return not line or line.strip() == capitalize(line) + + +def capitalize(line): + """ + Returns a capitalized version of @line, where the first word and all other + words not in NOT_CAPITALIZED are capitalized. + """ + capitalized = '' + for word in line.strip().split(): + if word not in NOT_CAPITALIZED or not len(capitalized): + word = word[0].upper() + word[1:] + capitalized += word + ' ' + return capitalized.strip() + + +def validate_type(tree, filename, options): + """ + Performs specific checks based on type. + Currently only finding and non-finding are supported. + """ + result = True + fix = False + root = tree.getroot() + xml_type = root.tag + attributes = [] + tags = [] + if options['spelling']: + result = validate_spelling(tree, filename, options) + if xml_type == 'pentest_report': + attributes = ['findingCode'] + if xml_type == 'finding': + attributes = ['threatLevel', 'type', 'id'] + tags = ['title', 'description', 'technicaldescription', 'impact', + 'recommendation'] + if xml_type == 'non-finding': + attributes = ['id'] + tags = ['title'] + if not len(attributes): + return result, xml_type + + for attribute in attributes: + if attribute not in root.attrib: + print('[A] Missing obligatory attribute in {0}: {1}'. + format(filename, attribute)) + if attribute == 'id': + root.set(attribute, filename) + fix = True + else: + result = False + else: + if attribute == 'threatLevel' and root.attrib[attribute] not in \ + ('Low', 'Moderate', 'Elevated', 'High', 'Extreme'): + print('[-] threatLevel is not Low, Moderate, High, Elevated or Extreme: {0}'.format(root.attrib[attribute])) + result = False + if attribute == 'type' and (options['capitalization'] and not \ + is_capitalized(root.attrib[attribute])): + print('[A] Type missing capitalization (expected {0}, read {1})'. + format(capitalize(root.attrib[attribute]), + root.attrib[attribute])) + root.attrib[attribute] = capitalize(root.attrib[attribute]) + fix = True + for tag in tags: + if root.find(tag) is None: + print('[-] Missing tag in {0}: {1}'.format(filename, tag)) + result = False + continue + if not get_all_text(root.find(tag)): + print('[-] Empty tag in {0}: {1}'.format(filename, tag)) + result = False + continue + if tag == 'title' and (options['capitalization'] and \ + not is_capitalized(root.find(tag).text)): + print('[A] Title missing capitalization in {0} (expected {1}, read {2})'. + format(filename, capitalize(root.find(tag).text), + root.find(tag).text)) + root.find(tag).text = capitalize(root.find(tag).text) + fix = True + if tag == 'description' and get_all_text(root.find(tag)).strip()[-1] != '.': + print('[A] Description missing final dot in {0}: {1}'.format(filename, get_all_text(root.find(tag)))) + root.find(tag).text = get_all_text(root.find(tag)).strip() + '.' + fix = True + if fix: + if options['auto_fix']: + print('[+] Automatically fixed {0}'.format(filename)) + tree.write(filename) + else: + print('[+] NOTE: Items with [A] can be fixed automatically, use --auto-fix') + return (result and not fix), xml_type + + +def validate_long_lines(tree, filename, options): + """ + Checks whether
 section contains lines longer than MAX_LINE characters
+    Returns True if the file validated successfully.
+    """
+    if not options['long']:
+        return True
+    result = True
+    fix = False
+    root = tree.getroot()
+    for pre_section in root.iter('pre'):
+        if pre_section.text:
+            fixed_text = ''
+            for line in pre_section.text.splitlines():
+                fixed_line = line
+                if len(line.strip()) > MAX_LINE:
+                    if ' ' not in line[WARN_LINE:MAX_LINE]:
+                        print('[-] {0} Line inside 
 too long: {1}'.
+                              format(filename, line.encode('utf-8')[WARN_LINE:]))
+                        result = False
+                        for split in ['"', '\'', '=', '-', ';']:
+                            if split in line.encode('utf-8').strip()[WARN_LINE:MAX_LINE]:
+                                print('[A] can be fixed')
+                                fix = True
+                                index = line.find(split, WARN_LINE)
+                                fixed_line = line[:index + 1] + '\n'
+                                fixed_line += line[index + 1:]
+                fixed_text += fixed_line.encode('utf-8')
+    if fix:
+        if options['auto_fix']:
+            print('[+] Automatically fixed {0}'.format(filename))
+#            tree.write(filename)
+        print(fixed_text)
+    return result
+
+
+def validate_master(filename, findings, non_findings, scans, options):
+    """
+    Validates master file.
+    """
+    result = True
+    include_findings = []
+    include_nonfindings = []
+    print_output(options, '[*] Validating master file {0}'.format(filename))
+    try:
+        xmltree = ElementTree.parse(filename,
+                                    ElementTree.XMLParser(strip_cdata=False))
+        if not find_keyword(xmltree, 'TODO', filename):
+            print('[-] Keyword checks failed for {0}'.format(filename))
+            result = False
+        print_output(options, 'Performing cross check on findings, non-findings and scans...')
+        for finding in findings:
+            if not cross_check_file(filename, finding):
+                print('[A] Cross check failed for finding {0}'.
+                      format(finding))
+                include_findings.append(finding)
+                result = False
+        for non_finding in non_findings:
+            if not cross_check_file(filename, non_finding):
+                print('[A] Cross check failed for non-finding {0}'.
+                      format(non_finding))
+                include_nonfindings.append(non_finding)
+                result = False
+        if result:
+            print_output(options, '[+] Cross checks successful')
+    except (ElementTree.ParseError, IOError) as exception:
+        print('[-] validating {0} failed ({1})'.format(filename, exception))
+        result = False
+    if not result:
+        if options['auto_fix']:
+            add_include(filename, 'findings', include_findings)
+            add_include(filename, 'nonFindings', include_nonfindings)
+            close_file(filename)
+            print('[+] Automatically fixed {0}'.format(filename))
+        else:
+            print('[+] NOTE: Items with [A] can be fixed automatically, use --auto-fix')
+    return result
+
+
+def report_string(report_file):
+    """
+    Return the report_file into a big memory mapped string.
+    """
+    try:
+        report = open(report_file)
+        return mmap.mmap(report.fileno(), 0, access=mmap.ACCESS_READ)
+    except IOError as exception:
+        print('[-] Could not open {0} ({1})'.format(report_file, exception))
+        sys.exit(-1)
+
+
+def cross_check_file(filename, external):
+    """
+    Checks whether filename contains a cross-check to the file external.
+    """
+    result = True
+    report_text = report_string(filename)
+    if report_text.find(external) == -1:
+        print('[-] could not find a reference in {0} to {1}'.format(filename, external))
+        result = False
+    return result
+    
+
+def add_include(filename, identifier, findings):
+    """
+    Adds XML include based on the identifier ('findings' or 'nonFindings').
+    """
+    tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False))
+    root = tree.getroot()
+    for section in tree.iter('section'):
+        if section.attrib['id'] == identifier:
+            finding_section = section
+    if finding_section is not None:
+        for finding in findings:
+            new_finding = ElementTree.XML(''.format(finding))
+            finding_section.append(new_finding)
+        tree.write(filename, encoding="utf-8", xml_declaration=True, pretty_print=True)
+
+def close_file(filename):
+    """
+    Replace placeholder with proper XML include.
+    """
+    f = open(filename,'r')
+    filedata = f.read()
+    f.close()
+    newdata = filedata.replace("placeholderinclude","xi:include")
+    fileout = filename
+    f = open(fileout,'w')
+    f.write(newdata)
+    f.close()
+    tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False))
+    tree.write(filename, encoding="utf-8", xml_declaration=True, pretty_print=True)
+
+def find_keyword(xmltree, keyword, filename):
+    """
+    Finds keywords in an XML tree.
+    This function needs lots of TLC.
+    """
+    result = True
+    section = ''
+    for tag in xmltree.iter():
+        if tag.tag == 'section' and' id' in tag.attrib:
+            section = 'in {0}'.format(tag.attrib['id'])
+        if tag.text:
+            if keyword in tag.text:
+                print('[-] {0} found in {1} {2}'.format(keyword, filename, section))
+                result = False
+    return result
+
+
+def main():
+    """
+    The main program. Cross-checks, validates XML files and report.
+    Returns True if the checks were successful.
+    """
+    options = parse_arguments()
+    if options['all']:
+        options['capitalization'] = True
+        options['long'] = True
+    if options['learn']:
+        print_output(options, 'Adding unknown words to {0}'.format(VOCABULARY))
+#    if options['spelling']:
+#        if not os.path.exists(VOCABULARY):
+#            print_output(options, 'Creating project-specific vocabulary file {0}'.
+#                  format(VOCABULARY))
+#            options['learn'] = True
+    print_output(options, 'Validating all XML files...')
+    result = validate_files(all_files(), options)
+    if result:
+        print_output(options, 'Validation checks successful')
+        if DOCBUILDER:
+            print_output(options, 'Validating report build...')
+            result = validate_report() and result
+    if result:
+        print('[+] Succesfully validated everything. Good to go')
+    else:
+        print('[-] Errors occurred')
+    if options['spelling'] and options['learn']:
+        print('[*] Don\'t forget to check the vocabulary file {0}'.
+              format(VOCABULARY))
+
+
+if __name__ == "__main__":
+    main()
diff --git a/chatops/scripts/rosbot.coffee b/chatops/scripts/rosbot.coffee
new file mode 100644
index 0000000..64faa2f
--- /dev/null
+++ b/chatops/scripts/rosbot.coffee
@@ -0,0 +1,95 @@
+# Description:
+#   Allows hubot to execute PenText framework commands
+#
+# Dependencies:
+#   The PenText framework
+#
+# Configuration:
+#   See the various handlers in bash/
+#
+# Author:
+#   Peter Mosmans
+#   John Sinteur
+#
+#  This is part of the PenText framework
+
+admins = ['admin']
+
+module.exports = (robot) ->
+  run_cmd = (cmd, args, cb ) ->
+    spawn = require("child_process").spawn
+    child = spawn(cmd, args)
+    child.stdout.on "data", (buffer) -> cb buffer.toString()
+    child.stderr.on "data", (buffer) -> cb buffer.toString()
+
+  robot.respond /build (.*)/i, id:'chatops.build', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    cmd = "bash/handler_build";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /convert (.*)/i, id:'chatops.convert', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    cmd = "bash/handler_convert";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /invoice (.*)/i, id:'chatops.invoice', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    cmd = "bash/handler_invoice";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /quickscope (.*)/i, id:'chatops.quickscope', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    cmd = "bash/handler_quickscope";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /startpentest (.*)/i, id:'chatops.startpentest', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    if args[0].substring(0, 4) == "off-"
+      msg.send "[-] Please do not start pen names with off-";
+      return;
+    if args[0].substring(0, 4) == "pen-"
+      msg.send "[-] Please do not start pen names with pen-";
+      return;
+    roomName = "pen-" + args[0];
+    newroom = robot.adapter.callMethod('createPrivateGroup', roomName, admins)
+    msg.send  "[+] new channel created - Added " + admins + " to the new room " + roomName
+    newroom.then (roomId) =>
+      robot.messageRoom roomId.rid, "@all hello!"
+      args[1] = roomId.rid
+    cmd = "bash/handler_pentest";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /startquote (.*)/i, id:'chatops.startquote',(msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    if args[0].substring(0, 4) == "pen-"
+      msg.send "[-] Please do not start quote names with pen-";
+      return;
+    if args[0].substring(0, 4) == "off-"
+      msg.send "[-] Please do not start quote names with off-";
+      return;
+    roomName = "off-" + args[0]
+    newroom = robot.adapter.callMethod('createPrivateGroup', roomName, admins)
+    msg.send  "[+] new channel created - Added " + admins + " to the new room " + roomName
+    newroom.then (roomId) =>
+      robot.messageRoom roomId.rid, "@all hello!"
+    cmd = "bash/handler_quote";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+  robot.respond /validate (.*)/i, id:'chatops.validate', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].split(" ");
+    cmd = "bash/handler_validate";
+    run_cmd cmd, args, (text) -> msg.send text.replace("\n","");

From 25c92a6c406f6409696ec0dd97fbacd47482a1a4 Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 00:12:45 +0200
Subject: [PATCH 02/60] updated the front page readme

added file structure explanation
---
 README.md | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b657886..8f09070 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,20 @@
-# pentext
-PenText system
+# Pentext
+
+The PenText XML documentation project is a collection of XML templates, XML schemas and XSLT code, which combined provide an easy way to generate IT security documents including test reports (for penetration tests, load tests, code audits, etc), offers (to companies requesting these tests) and invoices. 
+
+### How it Works
+The OWASP PenText project is based on XML. A PenText Report, Offer, Invoice or Generic Document is in fact a (modular) XML document, conforming to an XML Schema. The XML Schema ensures that the documents are structured correctly, so that they can then be transformed into other formats using XSLT and the SAXON XSLT processor. Currently there is only one target format: PDF. To produce the PDF document, the report, offer, invoice or generic document XML is first transformed into XSL-FO (XSL Formatting Objects), which is then converted to PDF using Apache FOP.
+
+### Software Requirements
+An XML editor -which could be any text editor like JEdit, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The FOP library for building a PDF document and a PDF reader for the result are the bare minimum.
+It is also possible to set up the whole system with Ansible scripts or Docker.
+
+### The Structure
+The directories are used as follows:
+- scripts: contains misc scripts. Currently has a script for importing github issues into XML format suited for PenText.
+- chatops: contains bash and Python scripts that can be used with Hubot (chatOps), handy for automation while getting started or for checking document validity or spellchecking. 
+- xml: 
+   - contains the XML system and templates in directories dtd, source and xslt
+   - your report or quote goes in source
+   - contains a graphics map for your company logo 
+   - the *findings* and *non-findings* maps are reserved for finding templates for reports.

From a3e625f5dc600d891129c649bb81bdde7d29e423 Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 00:21:15 +0200
Subject: [PATCH 03/60] Update README.md

added compiling example
---
 README.md | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 8f09070..2d830c0 100644
--- a/README.md
+++ b/README.md
@@ -5,10 +5,6 @@ The PenText XML documentation project is a collection of XML templates, XML sche
 ### How it Works
 The OWASP PenText project is based on XML. A PenText Report, Offer, Invoice or Generic Document is in fact a (modular) XML document, conforming to an XML Schema. The XML Schema ensures that the documents are structured correctly, so that they can then be transformed into other formats using XSLT and the SAXON XSLT processor. Currently there is only one target format: PDF. To produce the PDF document, the report, offer, invoice or generic document XML is first transformed into XSL-FO (XSL Formatting Objects), which is then converted to PDF using Apache FOP.
 
-### Software Requirements
-An XML editor -which could be any text editor like JEdit, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The FOP library for building a PDF document and a PDF reader for the result are the bare minimum.
-It is also possible to set up the whole system with Ansible scripts or Docker.
-
 ### The Structure
 The directories are used as follows:
 - scripts: contains misc scripts. Currently has a script for importing github issues into XML format suited for PenText.
@@ -18,3 +14,12 @@ The directories are used as follows:
    - your report or quote goes in source
    - contains a graphics map for your company logo 
    - the *findings* and *non-findings* maps are reserved for finding templates for reports.
+
+## Getting Started
+### Software Requirements
+An XML editor -which could be any text editor like JEdit, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The FOP library for building a PDF document and a PDF reader for the result are the bare minimum and lastly the Java library Saxon.
+It is also possible to set up the whole system with Ansible scripts or Docker.
+
+### Compiling
+Manually compiling a quotation, report or other document can be done with *java -jar  -s: -xsl: -o:*
+Of course this is tedious to write manually. Therefore it would be easier to script this or use one of the Hubot scripts in the chatops directory to build a document in a chatroom. 

From a83f5750fa8099ef6e91e7ad2e2522efce0c84f4 Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 00:27:10 +0200
Subject: [PATCH 04/60] Update README.md

Updated name
---
 README.md | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 2d830c0..97fea2e 100644
--- a/README.md
+++ b/README.md
@@ -10,16 +10,16 @@ The directories are used as follows:
 - scripts: contains misc scripts. Currently has a script for importing github issues into XML format suited for PenText.
 - chatops: contains bash and Python scripts that can be used with Hubot (chatOps), handy for automation while getting started or for checking document validity or spellchecking. 
 - xml: 
-   - contains the XML system and templates in directories dtd, source and xslt
-   - your report or quote goes in source
-   - contains a graphics map for your company logo 
+   - contains the XML system and templates in directories *dtd*, *source* and *xslt*
+   - your report or quote goes in *source*
+   - contains a *graphics* map for your company logo 
    - the *findings* and *non-findings* maps are reserved for finding templates for reports.
 
 ## Getting Started
 ### Software Requirements
-An XML editor -which could be any text editor like JEdit, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The FOP library for building a PDF document and a PDF reader for the result are the bare minimum and lastly the Java library Saxon.
+An XML editor -which could be any text editor like *JEdit*, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The *FOP* library for building a PDF document and a PDF reader for the result are the bare minimum and lastly the *Java* library *Saxon*.
 It is also possible to set up the whole system with Ansible scripts or Docker.
 
 ### Compiling
-Manually compiling a quotation, report or other document can be done with *java -jar  -s: -xsl: -o:*
+Manually compiling a quotation, report or other document can be done with *java -jar path-to-Saxon-jar -s:name-of-xml-file -xsl:name-of-xsl-file-in-xsl-directory -o:name-for-pdf-output*
 Of course this is tedious to write manually. Therefore it would be easier to script this or use one of the Hubot scripts in the chatops directory to build a document in a chatroom. 

From 94e25973b2999cdda1ccb93f6050a1d085bd714b Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Mon, 1 Aug 2016 17:06:27 -0700
Subject: [PATCH 05/60] Updated README.md

---
 README.md | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index 97fea2e..f598518 100644
--- a/README.md
+++ b/README.md
@@ -3,23 +3,37 @@
 The PenText XML documentation project is a collection of XML templates, XML schemas and XSLT code, which combined provide an easy way to generate IT security documents including test reports (for penetration tests, load tests, code audits, etc), offers (to companies requesting these tests) and invoices. 
 
 ### How it Works
-The OWASP PenText project is based on XML. A PenText Report, Offer, Invoice or Generic Document is in fact a (modular) XML document, conforming to an XML Schema. The XML Schema ensures that the documents are structured correctly, so that they can then be transformed into other formats using XSLT and the SAXON XSLT processor. Currently there is only one target format: PDF. To produce the PDF document, the report, offer, invoice or generic document XML is first transformed into XSL-FO (XSL Formatting Objects), which is then converted to PDF using Apache FOP.
+The OWASP PenText project is based on XML. A PenText Report, Quote, Invoice or Generic Document is in fact a (modular) XML document, conforming to an XML Schema. The XML Schema ensures that the documents are structured correctly, so that they can then be transformed into other formats using XSLT and the SAXON XSLT processor. Currently there is only one target format: PDF. To produce the PDF document, the report, offer, invoice or generic document XML is first transformed into XSL-FO (XSL Formatting Objects), which is then converted to PDF using Apache FOP.
 
 ### The Structure
 The directories are used as follows:
-- scripts: contains misc scripts. Currently has a script for importing github issues into XML format suited for PenText.
 - chatops: contains bash and Python scripts that can be used with Hubot (chatOps), handy for automation while getting started or for checking document validity or spellchecking. 
 - xml: 
-   - contains the XML system and templates in directories *dtd*, *source* and *xslt*
-   - your report or quote goes in *source*
+   - contains the PenText XML system and templates in directories *dtd*, *source* and *xslt*
+   - your report or quote will go into *source*
    - contains a *graphics* map for your company logo 
-   - the *findings* and *non-findings* maps are reserved for finding templates for reports.
+   - the *findings* and *non-findings* directories are for findings and non-findings
 
 ## Getting Started
-### Software Requirements
-An XML editor -which could be any text editor like *JEdit*, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. The *FOP* library for building a PDF document and a PDF reader for the result are the bare minimum and lastly the *Java* library *Saxon*.
-It is also possible to set up the whole system with Ansible scripts or Docker.
 
-### Compiling
-Manually compiling a quotation, report or other document can be done with *java -jar path-to-Saxon-jar -s:name-of-xml-file -xsl:name-of-xsl-file-in-xsl-directory -o:name-for-pdf-output*
-Of course this is tedious to write manually. Therefore it would be easier to script this or use one of the Hubot scripts in the chatops directory to build a document in a chatroom. 
+What do you need ?
+1. Clone this repository
+
+2. Install the toolchain
+
+3. Edit the content
+
+Listo! That's all you need. Now you can build PDF reports using the content.
+
+
+### Toolchain
+The *Apache FOP* library and the *Java* library *Saxon*.
+It is easiest to install the toolchain using Ansible: check out the role PeterMosmans.docbuilder (https://galaxy.ansible.com/PeterMosmans/docbuilder/)
+
+To edit (and view) the content you'll need a XML editor - which could be any text editor like *JEdit*, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. To view the resulting PDF files a PDF viewer is necessary. 
+
+### Building PDF's
+Manually compiling a quotation, report or other document can be done using `java -jar path-to-Saxon-jar -s:name-of-xml-file -xsl:name-of-xsl-file-in-xsl-directory -o:name-for-pdf-output`
+But why do it manually when the [ChatOps](https://github.com/radicallyopensecurity/pentext/tree/master/chatops) directory contains so much nice scripts to do just that ?
+
+See for more detailed information the [tools manual](https://github.com/radicallyopensecurity/pentext/blob/master/xml/doc/Tools%20manual.md)

From b62d4e5664bc00f90eba3ef350a61f2169b75358 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Mon, 1 Aug 2016 17:10:31 -0700
Subject: [PATCH 06/60] Edited formatting

---
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index f598518..c3256a8 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@ The directories are used as follows:
 ## Getting Started
 
 What do you need ?
+
 1. Clone this repository
 
 2. Install the toolchain
@@ -27,7 +28,7 @@ Listo! That's all you need. Now you can build PDF reports using the content.
 
 
 ### Toolchain
-The *Apache FOP* library and the *Java* library *Saxon*.
+To convert the XML content into PDF files the tools the *Apache FOP* library and the *Java* library *Saxon* will be used
 It is easiest to install the toolchain using Ansible: check out the role PeterMosmans.docbuilder (https://galaxy.ansible.com/PeterMosmans/docbuilder/)
 
 To edit (and view) the content you'll need a XML editor - which could be any text editor like *JEdit*, to a full IDE- for editing of course ;). Preferably something that can check XML file validity. To view the resulting PDF files a PDF viewer is necessary. 

From 83dab68fba831f210f1a307c1a8e10cc59ae6549 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Mon, 1 Aug 2016 20:13:00 -0700
Subject: [PATCH 07/60] Always use 2 digits for day

Refreshed dates of examples
---
 xml/xslt/qs2offerte.xsl | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xml/xslt/qs2offerte.xsl b/xml/xslt/qs2offerte.xsl
index 15d5a6d..eb53451 100644
--- a/xml/xslt/qs2offerte.xsl
+++ b/xml/xslt/qs2offerte.xsl
@@ -110,11 +110,11 @@
                     
                         
                     
-                    date or date range in text, e.g. May 18th until May 25th, 2015
+                    date or date range in text, e.g. May 18th until May 25th, 2016
                     
                         
                     
-                    date or date range in text, e.g. May 18th until May 25th, 2015
+                    date or date range in text, e.g. May 18th until May 25th, 2016
                     
                         
                     
@@ -136,7 +136,7 @@
                     needed for date on frontpage and in signature boxes; it is possible to add a new <version> after each review; in that case, make sure to update the date/time
                     
                         T10:00:00
                         actual date-time here; you can leave the number attribute alone
                         ROS Writer

From 5fbd1ca472330e1a52b458df79944ec98bd7d193 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Mon, 1 Aug 2016 20:21:48 -0700
Subject: [PATCH 08/60] Always use 2 digits for day

---
 xml/xslt/off2inv.xsl | 2 +-
 xml/xslt/off2rep.xsl | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/xml/xslt/off2inv.xsl b/xml/xslt/off2inv.xsl
index dcb93cb..18f23ba 100644
--- a/xml/xslt/off2inv.xsl
+++ b/xml/xslt/off2inv.xsl
@@ -5,7 +5,7 @@
 
     00/000
     
-        
+        
     
     
     
diff --git a/xml/xslt/off2rep.xsl b/xml/xslt/off2rep.xsl
index 6e65e5c..a343e0f 100644
--- a/xml/xslt/off2rep.xsl
+++ b/xml/xslt/off2rep.xsl
@@ -44,7 +44,7 @@
                 
                     needed for date on frontpage and in signature boxes; it is possible to add a new <version> after each review; in that case, make sure to update the date/time
                     
-                        T10:00:00
+                        T10:00:00
                         actual date-time here; you can leave the number attribute alone
                         ROS Writer
                         name of the author here; for internal use only

From 82e92efa05a982c2da13da8946dbbf30fa73fb2a Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 14:38:25 +0200
Subject: [PATCH 09/60] Update README.md

---
 README.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/README.md b/README.md
index c3256a8..803f427 100644
--- a/README.md
+++ b/README.md
@@ -38,3 +38,8 @@ Manually compiling a quotation, report or other document can be done using `java
 But why do it manually when the [ChatOps](https://github.com/radicallyopensecurity/pentext/tree/master/chatops) directory contains so much nice scripts to do just that ?
 
 See for more detailed information the [tools manual](https://github.com/radicallyopensecurity/pentext/blob/master/xml/doc/Tools%20manual.md)
+
+### Adding and Modifying Content
+- There is a guide for [report writing](xml/doc/report/Report%20Writing%20-%20Procedure.md)
+- There is a guide for [quote writing](xml/doc/)
+

From 3a11c7fb7a4b7ef96ed52b1df45d260328cdec3d Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 14:44:47 +0200
Subject: [PATCH 10/60] updated readme

added links to the report and offerte writing procedures
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 803f427..fb17434 100644
--- a/README.md
+++ b/README.md
@@ -41,5 +41,5 @@ See for more detailed information the [tools manual](https://github.com/radicall
 
 ### Adding and Modifying Content
 - There is a guide for [report writing](xml/doc/report/Report%20Writing%20-%20Procedure.md)
-- There is a guide for [quote writing](xml/doc/)
+- There is a guide for [quotation writing](xml/doc/offerte/Offerte%20Writing%20Procedure.md)
 

From bae29fb9f255635cbdd760d4a69e0a79f7dbd3ea Mon Sep 17 00:00:00 2001
From: Deborah Maayen 
Date: Tue, 2 Aug 2016 14:50:00 +0200
Subject: [PATCH 11/60] Update README.md

Added example documents dir to README
---
 README.md | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index fb17434..c998f7d 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,11 @@ But why do it manually when the [ChatOps](https://github.com/radicallyopensecuri
 
 See for more detailed information the [tools manual](https://github.com/radicallyopensecurity/pentext/blob/master/xml/doc/Tools%20manual.md)
 
-### Adding and Modifying Content
+## Adding and Modifying Content
+### Guidelines
 - There is a guide for [report writing](xml/doc/report/Report%20Writing%20-%20Procedure.md)
-- There is a guide for [quotation writing](xml/doc/offerte/Offerte%20Writing%20Procedure.md)
+- There is also a guide for [quotation writing](xml/doc/offerte/Offerte%20Writing%20Procedure.md)
 
+### Example documents
+Besides the reports and quotations, generic documents can also be created.
+Those can be found [here](xml/doc/examples)

From 09f0e62429ee5ff89d1b7168b1a1d2f1e5da0fba Mon Sep 17 00:00:00 2001
From: Deborah 
Date: Tue, 9 Aug 2016 15:31:22 +0200
Subject: [PATCH 12/60] removed link to code audit methodology. No such snippet


From 4400754f90f8b5a3049f8e61c8a311513baf511d Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Wed, 10 Aug 2016 13:48:30 +0200
Subject: [PATCH 13/60] Updated pentext repo link

Support NAMESPACEID parameter for namespaces
---
 chatops/bash/test_pentext | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/chatops/bash/test_pentext b/chatops/bash/test_pentext
index a8d77db..afc0fdf 100644
--- a/chatops/bash/test_pentext
+++ b/chatops/bash/test_pentext
@@ -16,7 +16,7 @@
 #    (at your option) any later version.
 
 
-VERSION=0.5
+VERSION=0.6
 DOCBUILDER=/usr/local/bin/docbuilder.py
 VALIDATOR=/usr/local/bin/validate_report.py
 SAXON=/usr/local/bin/saxon/saxon9he.jar
@@ -26,7 +26,8 @@ SAXON=/usr/local/bin/saxon/saxon9he.jar
 [ -z $GITSERVER ] && GITSERVER=gitlab.local
 [ -z $GITWEB ] && GITWEB=https://$GITSERVER
 [ -z $NAMESPACE ] && NAMESPACE=ros
-[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates
+[ -z $NAMESPACEID ] && NAMESPACEID=1
+[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/pentext
 
 TEMPLOC=$(mktemp -d)
 BRANCH=master
@@ -75,7 +76,7 @@ backwards_compatible() {
 setup_repo() {
     echo "[*] testing gitlab command line interface..."
     REPO=${reponame,,} # lowercase, but of course
-    project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true| awk '/id:/{print $2}')
+    project_id=$($GITLABCLI project create --name $REPO --namespace $NAMESPACEID--issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true| awk '/id:/{print $2}')
     if [ ! -z $project_id ]; then
         echo "[+] successfully created test gitlab project with id ${project_id}"
     else
@@ -106,6 +107,7 @@ preflight_checks() {
     echo "GITSERVER=$GITSERVER  (git server)"
     echo "GITWEB=$GITWEB  (webinterface of git server)"
     echo "NAMESPACE=$NAMESPACE  (namespace of repositories)"
+    echo "NAMESPACEID=$NAMESPACEID  (namespace ID of repositories)"
     echo "PENTEXTREPO=$PENTEXTREPO  (location of pentext repo)"
     echo "SAXON=$SAXON  (saxon binary)"
     echo "VALIDATOR=$VALIDATOR  (location of validate_report.py)"

From 4a9b5135c1380736d878267ca39f3fc7471967d6 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Wed, 10 Aug 2016 13:51:59 +0200
Subject: [PATCH 14/60] Fixed typo

---
 chatops/bash/test_pentext | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/chatops/bash/test_pentext b/chatops/bash/test_pentext
index afc0fdf..e9bc38c 100644
--- a/chatops/bash/test_pentext
+++ b/chatops/bash/test_pentext
@@ -76,7 +76,7 @@ backwards_compatible() {
 setup_repo() {
     echo "[*] testing gitlab command line interface..."
     REPO=${reponame,,} # lowercase, but of course
-    project_id=$($GITLABCLI project create --name $REPO --namespace $NAMESPACEID--issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true| awk '/id:/{print $2}')
+    project_id=$($GITLABCLI project create --name $REPO --namespace $NAMESPACEID --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true| awk '/id:/{print $2}')
     if [ ! -z $project_id ]; then
         echo "[+] successfully created test gitlab project with id ${project_id}"
     else

From 857c2f0a6d5fbe404ba0ef7edbb8029c7c4962e4 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Wed, 10 Aug 2016 15:20:35 +0200
Subject: [PATCH 15/60] Added support for NAMESPACEID

---
 chatops/bash/handler_pentest | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/chatops/bash/handler_pentest b/chatops/bash/handler_pentest
index c4046ff..db2f2a7 100644
--- a/chatops/bash/handler_pentest
+++ b/chatops/bash/handler_pentest
@@ -17,7 +17,7 @@
 #    (at your option) any later version.
 
 
-VERSION=0.7
+VERSION=0.8
 SAXON=/usr/local/bin/saxon/saxon9he.jar
 TEMPLATEREPO=ssh://git@gitlab.local/peter/templates
 
@@ -25,7 +25,8 @@ TEMPLATEREPO=ssh://git@gitlab.local/peter/templates
 [ -z $GITLABCLI ] && GITLABCLI=gitlab
 [ -z $GITSERVER ] && GITSERVER=gitlab.local
 [ -z $NAMESPACE ] && NAMESPACE=ros
-[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates
+[ -z $NAMESPACEID ] && NAMESPACEID=1
+[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/pentext
 
 TEMPLOC=$(mktemp -d)
 pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}')
@@ -81,7 +82,7 @@ preflight_checks() {
 }
 
 setup_repo() {
-    project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}')
+    project_id=$($GITLABCLI project create --name $REPO --namespace $NAMESPACEID --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}')
     if [ ! -z $project_id ]; then
         echo "[+] successfully created gitlab project $REPO with id ${project_id}"
         $GITLABCLI project-label create --project-id ${project_id} --name documentation --color "#0000FF" &>/dev/null

From 7e95688d37ec0948c0a22645c6b4a565d98057f6 Mon Sep 17 00:00:00 2001
From: Peter Mosmans 
Date: Wed, 10 Aug 2016 15:22:57 +0200
Subject: [PATCH 16/60] Added support for NAMESPACEID

---
 chatops/bash/handler_quote | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/chatops/bash/handler_quote b/chatops/bash/handler_quote
index ee825e2..7704b61 100644
--- a/chatops/bash/handler_quote
+++ b/chatops/bash/handler_quote
@@ -17,13 +17,14 @@
 #    (at your option) any later version.
 
 
-VERSION=0.6
+VERSION=0.7
 
 # These variables should be set environment-specific
 [ -z $GITLABCLI ] && GITLABCLI=gitlab
 [ -z $GITSERVER ] && GITSERVER=gitlab.local
 [ -z $NAMESPACE ] && NAMESPACE=ros
-[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/templates
+[ -z $NAMESPACEID ] && NAMESPACEID=1
+[ -z $PENTEXTREPO ] && PENTEXTREPO=https://github.com/radicallyopensecurity/pentext
 PREFIX="off-"
 pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}')
 TEMPLOC=$(mktemp -d)
@@ -71,7 +72,7 @@ preflight_checks() {
 }
 
 setup_repo() {
-    project_id=$($GITLABCLI project create --name $REPO --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}')
+    project_id=$($GITLABCLI project create --name $REPO --namespace $NAMESPACEID --issues-enabled true --wiki-enabled true --snippets-enabled true --wall-enabled true --merge-requests-enabled true 2>/dev/null| awk '/id:/{print $2}')
     if [ ! -z $project_id ]; then
         echo "[+] successfully created gitlab project $REPO with id ${project_id}"
     else

From 41e6aa8916ef5f29d415800b4e092f255e1b27da Mon Sep 17 00:00:00 2001
From: Deborah 
Date: Thu, 11 Aug 2016 14:07:47 +0200
Subject: [PATCH 17/60] renamed the font, matching the expected font in the fop
 config

---
 ...webfont.ttf => LiberationSansNarrow-Regular.ttf} | Bin
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename xml/rosbot/{LiberationSansNarrow-Regular-webfont.ttf => LiberationSansNarrow-Regular.ttf} (100%)

diff --git a/xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf b/xml/rosbot/LiberationSansNarrow-Regular.ttf
similarity index 100%
rename from xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf
rename to xml/rosbot/LiberationSansNarrow-Regular.ttf

From 43cf34aa259570ab97d2e3037f07a0de44084c1b Mon Sep 17 00:00:00 2001
From: Deborah 
Date: Thu, 11 Aug 2016 14:09:16 +0200
Subject: [PATCH 18/60] renamed the font, matching the expected font in the fop
 config

---
 ...ttf => LiberationSansNarrow-Regular-webfont.ttf} | Bin
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename xml/rosbot/{LiberationSansNarrow-Regular.ttf => LiberationSansNarrow-Regular-webfont.ttf} (100%)

diff --git a/xml/rosbot/LiberationSansNarrow-Regular.ttf b/xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf
similarity index 100%
rename from xml/rosbot/LiberationSansNarrow-Regular.ttf
rename to xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf

From 2cd19460d215dbe5d45b8a8b98900b5382c08d42 Mon Sep 17 00:00:00 2001
From: parallax 
Date: Thu, 11 Aug 2016 13:25:57 +0100
Subject: [PATCH 19/60] Added usage functionality to rosbot

---
 chatops/scripts/rosbot.coffee | 150 +++++++++++++++++++++++++++++++++-
 1 file changed, 149 insertions(+), 1 deletion(-)

diff --git a/chatops/scripts/rosbot.coffee b/chatops/scripts/rosbot.coffee
index 64faa2f..2dc342f 100644
--- a/chatops/scripts/rosbot.coffee
+++ b/chatops/scripts/rosbot.coffee
@@ -7,13 +7,127 @@
 # Configuration:
 #   See the various handlers in bash/
 #
+# Usage:
+#   build
+#     Detailed line 1
+#     Detailed line 2
+#     Detailed line 3
+#
+#   respond
+#     Detailed line 11
+#     Detailed line 22
+#     Detailed line 33
+#
+#
+# Commands:
+#   hubot build   - Builds a .pdf file from  in 
+#   hubot convert   - Builds a .xml file from  in 
+#   hubot invoice   - Builds pdf invoice from quote
+#   hubot quickscope   [branch=MASTER] - Converts quickscope into quotation
+#   hubot startpentest  - Bootstraps a pentest
+#   hubot startquote  - Bootstraps a quotation
+#   hubot validate  - Validates a report/quotation
+#   hubot usage [command] - Displays usage information for command. If no command is specified, supported commands are displayed.
+#
+
 # Author:
 #   Peter Mosmans
 #   John Sinteur
+#   Daniel Attevelt
 #
 #  This is part of the PenText framework
+#
 
-admins = ['admin']
+USAGE_LABEL = '# Usage:'
+
+Fs             = require 'fs'
+Path           = require 'path'
+
+admins = ['peter']
+
+###
+  This will initialise the usage information for the chatops command used in the pentext framework
+  It will parse the file comment sections in search of usage information. See above for an example
+
+  ! This section should always be above the commands section and should always be terminated by two consecutive #s !
+  ! Only single word commands are supported !
+
+  robot gets a new property .usages which can be used later on
+###
+init_usage = (robot) ->
+  robot.usages = []
+
+  load_scripts(robot)
+
+###
+  This will load all the scripts in the same folder as this one. It will then proceed
+  to parsing those scripts in order to extract the rosbot command usage information
+###
+load_scripts = (robot) ->
+  if Fs.existsSync(__dirname)
+    for file in Fs.readdirSync(__dirname).sort()
+      fullPath = Path.join __dirname, file
+      robot.logger.info "File: " + fullPath
+
+      body = Fs.readFileSync fullPath, 'utf-8'
+      parse_scripts(robot, body)
+
+###
+  This function will parse the script for usage information.
+  It will do so by looping through every comment line until it hits the # Usage: label
+  Then it will start to look for a command tag that is identified by:
+  # (3 spaces) . The will let the function know it's dealing with a command identifiers.
+  # (5 spaces)  lets the function know it's dealing with info line that should go together with the previously encountered command.
+
+  The sequence is broken by two sequential empty comment lines. e.g.:
+  #
+  #
+
+###
+parse_scripts = (robot, body) ->
+  parsing_usage      = false
+  current_command    = null
+
+  # https://regex101.com
+  cmd_regex          = /^#[ ]{3}[\S]+/i
+  info_regex         = /^#[ ]{5}[\S]+/i
+
+  # Loop through each comment line until there is none.
+  for line in body.split "\n"
+    break unless line[0] is '#' or line.substr(0, 2) is '//'
+
+    # Determine if we've reached the Usage: tag
+    if line.indexOf(USAGE_LABEL) != -1
+      parsing_usage = true
+
+    if parsing_usage
+      # Pre-cleaning ...
+      cleanedLine = line.replace(/^(#|\/\/)\s?/, "").trim()
+
+      # Are we dealing with a command?
+      if line.match cmd_regex
+        current_command = cleanedLine
+        robot.usages[current_command] = []
+
+      # Are we dealing with an info line ?
+      if line.match info_regex
+        if not robot.usages[current_command]
+          robot.logger.debug "Error parsing chatpos usage info: found info line, but no command line"
+        else
+          robot.usages[current_command].push cleanedLine
+
+      # Detects two sequential #'s and quits parsing usage when it does
+      if cleanedLine.length == 0
+        if current_command == null
+          parsing_usage = false
+        else
+          current_command = null
+
+  # Sanity check
+  robot.logger.info "--- Following usage information parsed ----"
+  for command, lines of robot.usages
+    for index, line of lines
+      robot.logger.info "* #{command} : #{line}"
 
 module.exports = (robot) ->
   run_cmd = (cmd, args, cb ) ->
@@ -22,6 +136,13 @@ module.exports = (robot) ->
     child.stdout.on "data", (buffer) -> cb buffer.toString()
     child.stderr.on "data", (buffer) -> cb buffer.toString()
 
+  init_usage(robot)
+
+
+#    ***************************************************************************
+#                        ChatOps command handlers
+#    ***************************************************************************
+
   robot.respond /build (.*)/i, id:'chatops.build', (msg) ->
     msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
     msg.match.shift();
@@ -93,3 +214,30 @@ module.exports = (robot) ->
     args = msg.match[0].split(" ");
     cmd = "bash/handler_validate";
     run_cmd cmd, args, (text) -> msg.send text.replace("\n","");
+
+
+  # Handler for the usage command.
+  # Note that the regex option group (.*) also captures the space after the command
+  # This allows for the case when there is no command specified, supported commands can be displayed
+  robot.respond /usage(.*)/i, id:'chatops.usage', (msg) ->
+    msg.match[0] = msg.match[0].replace(/^[a-z0-9]+$/i);
+    msg.match.shift();
+    args = msg.match[0].trim().split(" ");
+    command = args[0]
+
+    # If not command is provided, return information on which commands can be handled
+    if command.trim().length == 0
+      msg.send "I can provide usage information for the following commands:"
+      for command of robot.usages
+        msg.send command
+      msg.send "Issue the command: usage  for usage information for this command"
+      return
+
+    # This deals when unsupported commands
+    if not robot.usages[command]
+      msg.send "I have no usage information for: " + command
+      return
+
+    # All odd case have been dealt with, let's get down to business
+    for index, line of robot.usages[command]
+      msg.send line
\ No newline at end of file

From 97e0ae34dd70e1ac8dd190ba0d710f025317a7ce Mon Sep 17 00:00:00 2001
From: skyanth 
Date: Fri, 19 Aug 2016 15:13:44 +0200
Subject: [PATCH 20/60] removed '-webfont' from LiberationSansNarrow Regular in
 filename and fop.conf

---
 .gitignore                                          |   2 ++
 ...webfont.ttf => LiberationSansNarrow-Regular.ttf} | Bin
 xml/rosbot/fop.conf                                 |   2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 rename xml/rosbot/{LiberationSansNarrow-Regular-webfont.ttf => LiberationSansNarrow-Regular.ttf} (100%)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6d770bb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+
+xml/PenText.xpr
diff --git a/xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf b/xml/rosbot/LiberationSansNarrow-Regular.ttf
similarity index 100%
rename from xml/rosbot/LiberationSansNarrow-Regular-webfont.ttf
rename to xml/rosbot/LiberationSansNarrow-Regular.ttf
diff --git a/xml/rosbot/fop.conf b/xml/rosbot/fop.conf
index fdb8233..15376aa 100644
--- a/xml/rosbot/fop.conf
+++ b/xml/rosbot/fop.conf
@@ -79,7 +79,7 @@ the location of this file.
         
-        
+        
           
         
         

From b41313036f06918b6d37e40afa97b9dc922e8971 Mon Sep 17 00:00:00 2001
From: skyanth 
Date: Fri, 19 Aug 2016 15:24:41 +0200
Subject: [PATCH 21/60] fixed generic doc schema (no more mandatory
 appendices!)

---
 xml/dtd/genericdocument.xsd | 38 +++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/xml/dtd/genericdocument.xsd b/xml/dtd/genericdocument.xsd
index 280dd61..c84664d 100644
--- a/xml/dtd/genericdocument.xsd
+++ b/xml/dtd/genericdocument.xsd
@@ -1,20 +1,22 @@
 
 
-  
-  
+  
+  
   
-  
+
   
     
       
         
         
         
-        
+        
       
     
   
-  
+
   
     
       
@@ -27,9 +29,9 @@
       
     
   
-    
+
   
-    
+
   
     
       
@@ -38,7 +40,7 @@
       
     
   
-    
+
   
     
       
@@ -46,9 +48,9 @@
       
     
   
-  
+
   
-  
+
   
     
       
@@ -57,10 +59,10 @@
       
     
   
-    
+
   
   
-    
+
   
     
       
@@ -83,7 +85,7 @@
       
     
   
-  
+
   
     
       
@@ -104,17 +106,17 @@
       
     
   
-    
-    
+
+  
     
       
       
     
     
   
-  
-    
+
+  
   
-      
+    
   
 

From 18c72010cc4aafc3974e607ca6f4ec431994200e Mon Sep 17 00:00:00 2001
From: skyanth 
Date: Fri, 19 Aug 2016 17:49:45 +0200
Subject: [PATCH 22/60] qs2offerte.xsl can now deal with multiple third parties

---
 xml/xslt/qs2offerte.xsl | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/xml/xslt/qs2offerte.xsl b/xml/xslt/qs2offerte.xsl
index eb53451..ed45b95 100644
--- a/xml/xslt/qs2offerte.xsl
+++ b/xml/xslt/qs2offerte.xsl
@@ -80,27 +80,11 @@
                     
                         client_info.xml
                     
-                    
+                    
                         
-                            
-                                
-                            
-                            
-                                
-                            
-                            short party name; if no short name: same as long name
-                            
-                                
-                            
-                            
- - - - - - +
-
+ From 2e7fb134abf4a819ab1a8440e3d156ce80ee9fa4 Mon Sep 17 00:00:00 2001 From: parallax Date: Mon, 22 Aug 2016 18:11:59 +0100 Subject: [PATCH 23/60] Added some verbosity to the error message in case of missing packages --- chatops/python/gitlab-to-pentext.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index a44f10f..020b178 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -33,12 +33,16 @@ import textwrap try: import gitlab import jxmlease - # path to docbuilder installation (needs the module) - sys.path.append('/usr/local/bin') + # Path of this script. The validate_report module is on the same path. import validate_report -except ImportError: - print('[-] This script needs gitlab, jxmlease and validate_report library', - file=sys.stderr) +except ImportError as e: + print('[-] This script needs python-gitlab, jxmlease and validate_report library', file=sys.stderr) + print("validate_report is part of the pentext framework", file=sys.stderr) + print("Install python-gitlab with: sudo pip install python-gitlab", file=sys.stderr) + print("Install pjxmlease with: sudo pip install jxmlease", file=sys.stderr) + print("", file=sys.stderr) + print("Currently missing: " + e.message,file=sys.stderr) + sys.exit(-1) From 53c5dd38acc13c2ad4365e81b1e9fc77289f30c5 Mon Sep 17 00:00:00 2001 From: parallax Date: Mon, 22 Aug 2016 18:18:46 +0100 Subject: [PATCH 24/60] Added required line --- chatops/python/gitlab-to-pentext.py | 1 + 1 file changed, 1 insertion(+) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 020b178..0e42b22 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -34,6 +34,7 @@ try: import gitlab import jxmlease # Path of this script. The validate_report module is on the same path. + sys.path.append(os.path.dirname(__file__)) import validate_report except ImportError as e: print('[-] This script needs python-gitlab, jxmlease and validate_report library', file=sys.stderr) From 430d815f8413895857c4d3668519087f3a5b10ad Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 23 Aug 2016 11:26:48 +0200 Subject: [PATCH 25/60] Fail safely when no issues can be found Note that it's a bare except... not so nice --- chatops/python/gitlab-to-pentext.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index a44f10f..5ba2a14 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -140,13 +140,16 @@ def list_issues(gitserver, options): """ Lists all issues for options['issues'] """ - for issue in gitserver.projects.get(options['issues']).issues.list(all=True): - if issue.state != 'opened' and not options['closed']: - continue - if 'finding' in issue.labels: - add_finding(issue, options) - if 'non-finding' in issue.labels: - add_non_finding(issue, options) + try: + for issue in gitserver.projects.get(options['issues']).issues.list(all=True): + if issue.state != 'opened' and not options['closed']: + continue + if 'finding' in issue.labels: + add_finding(issue, options) + if 'non-finding' in issue.labels: + add_non_finding(issue, options) + except: + print_error('could not find any issues', -1) def list_projects(gitserver, options): From 134ea255356a096edcc8adc4bb92fa8e103eda71 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 23 Aug 2016 12:05:54 +0200 Subject: [PATCH 26/60] Skip issues only if they're closed --- chatops/python/gitlab-to-pentext.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 5ba2a14..2a780b3 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -142,7 +142,7 @@ def list_issues(gitserver, options): """ try: for issue in gitserver.projects.get(options['issues']).issues.list(all=True): - if issue.state != 'opened' and not options['closed']: + if issue.state == 'closed' and not options['closed']: continue if 'finding' in issue.labels: add_finding(issue, options) From 2a70821b5a33d8241bfd1e01a9a46afcdd963103 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Thu, 25 Aug 2016 15:31:39 +0200 Subject: [PATCH 27/60] Updated gitignore file with temporary files --- .gitignore | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6d770bb..9a4476c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ - xml/PenText.xpr +# (Emacs) (temporary) files +.#* +\#*# +.projectile +# Compiled Python stuff +*.pyc From bcdc1dcbf0b68ca0473c20d622057baa1864070a Mon Sep 17 00:00:00 2001 From: skyanth Date: Thu, 25 Aug 2016 15:40:39 +0200 Subject: [PATCH 28/60] deleted test docs --- xml/source/contract.xml | 79 -- ...ract_info_sample.xml => contract_info.xml} | 0 xml/source/invoice.xml | 20 - xml/source/quickscope_sample.xml | 58 - xml/target/contract.fo | 466 -------- xml/target/contract.pdf | Bin 62985 -> 0 bytes xml/target/document.fo | 1002 ----------------- xml/target/document.pdf | Bin 407445 -> 0 bytes xml/target/intermediate.fo | 146 --- xml/target/invoice.fo | 181 --- xml/target/invoice.pdf | Bin 43252 -> 0 bytes xml/target/offerte-latest.pdf | Bin 111943 -> 0 bytes xml/target/offerte.fo | 568 ---------- xml/target/offerte.pdf | Bin 99723 -> 0 bytes xml/target/report-latest.pdf | Bin 94220 -> 0 bytes xml/target/report.fo | 132 --- xml/target/report.pdf | Bin 105482 -> 0 bytes xml/target/waiver_....pdf | Bin 28644 -> 0 bytes xml/target/waiver_dad.fo | 80 -- 19 files changed, 2732 deletions(-) delete mode 100644 xml/source/contract.xml rename xml/source/{contract_info_sample.xml => contract_info.xml} (100%) delete mode 100644 xml/source/invoice.xml delete mode 100644 xml/source/quickscope_sample.xml delete mode 100644 xml/target/contract.fo delete mode 100644 xml/target/contract.pdf delete mode 100644 xml/target/document.fo delete mode 100644 xml/target/document.pdf delete mode 100644 xml/target/intermediate.fo delete mode 100644 xml/target/invoice.fo delete mode 100644 xml/target/invoice.pdf delete mode 100644 xml/target/offerte-latest.pdf delete mode 100644 xml/target/offerte.fo delete mode 100644 xml/target/offerte.pdf delete mode 100644 xml/target/report-latest.pdf delete mode 100644 xml/target/report.fo delete mode 100644 xml/target/report.pdf delete mode 100644 xml/target/waiver_....pdf delete mode 100644 xml/target/waiver_dad.fo diff --git a/xml/source/contract.xml b/xml/source/contract.xml deleted file mode 100644 index 274397c..0000000 --- a/xml/source/contract.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - fixed_term - - battle the pirates - - Consultant - - - - Peter Pan - Lost Boys Inc. - -
Cloud 9
- 1234 XX - Treehouse City - Neverland - peter@pan.tech - 50 - -
- - - Taunting Captain Hook - Feeding crocodiles - Flying to and fro ('to' and 'fro' to be specified at takeoff) - - 2016-08-18 - 2016-09-15 - - 30 - - month - - - - -
- security consulting agreement - -

WHEREAS:

-
    - - -
- -
- agree as follows -
    - - - - - - - - - - - - - - - -
-
-
- Signed in duplicate on August 18, 2016 in - -
-
-
diff --git a/xml/source/contract_info_sample.xml b/xml/source/contract_info.xml similarity index 100% rename from xml/source/contract_info_sample.xml rename to xml/source/contract_info.xml diff --git a/xml/source/invoice.xml b/xml/source/invoice.xml deleted file mode 100644 index 9545fe9..0000000 --- a/xml/source/invoice.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - 6-day penetration test Sitting Duck - 100 - - - diff --git a/xml/source/quickscope_sample.xml b/xml/source/quickscope_sample.xml deleted file mode 100644 index f18e53f..0000000 --- a/xml/source/quickscope_sample.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - en - - pentest - - - penetration testing services - - - dsfsd - adfsd - - - - - dafaf - dad - - sgf -
fsgf
- sgf - sfgsfg -
- - - - 6 - - time-boxed - - crystal-box - - - - TBD - - TBD - - - - 100 - - -
diff --git a/xml/target/contract.fo b/xml/target/contract.fo deleted file mode 100644 index 04a8eb2..0000000 --- a/xml/target/contract.fo +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Radically Open Security - B.V.Overdiemerweg 281111 - PP DiemenThe Netherlands - - - - - - www.radicallyopensecurity.cominfo@radicallyopensecurity.comChamber - of Commerce 60628081VAT number - 853989655B01 - - - - - - - - - - /Radically Open Security B.V. - Chamber of Commerce - 60628081 - - - /Radically Open Security B.V. - Chamber of Commerce - 60628081 - - - - - SECURITY CONSULTING AGREEMENT - Radically Open - Security B.V., located at Overdiemerweg 28, 1111 - PP, Diemen, represented by Melanie Rieback (“ROS”); - AND - Peter Pan (Lost - Boys Inc.), with his address at Cloud 9, 1234 XX, - Treehouse City, Neverland (the “Consultant”); - WHEREAS: - - - - A. - - - The Consultant is willing and able to perform the activities - mentioned hereafter. - - - - - B. - - - ROS and the Consultant have no intention whatsoever to agree upon - an employment agreement and this agreement is only drafted to enable the - Consultant to perform incidental activities for ROS. ROS and the - Consultant explicitly confirm that this agreement does not qualify as an - employment agreement. The Consultant is free to perform work for other - parties, and in fact does so on a regular basis. - - - - - AGREE AS - FOLLOWS - - - - 1. - - - This contract shall be effective - as of August 18, 2016 for the period of 28 days. This contract will - end by operation of law on September 15, 2016 without any notice - being required. - In case of tacit extension of this - contract, the parties agree to do so for the same term and on the - same conditions. Either party is entitled to give notice of - termination of the contract with immediate effect. Notice of - termination should be given by email. (To ROS: - info@radicallyopensecurity.com; to the Consultant: peter@pan.tech) - The other party will confirm the termination by return. - Premature termination shall not give - rise to liability or financial compensation for either - party. - - - - - 2. - - - ROS and the Consultant explicitly do not intend to enter into - an employment agreement (in Dutch: “arbeidsovereenkomst”) as in Article 7:610 Burgerlijk - Wetboek. The Consultant guarantees he shall never claim an employment - agreement exists. - - - - - 3. - - - ROS instructs (in Dutch: "wijst - aan"; not "instrueert") the Consultant – and the Consultant - agrees to perform the following activities (the “Activities”): - - - - - - Taunting Captain Hook - - - - - - - - Feeding crocodiles - - - - - - - - Flying to and fro ('to' and 'fro' to be specified - at takeoff) - - - - - - - - 4. - - - The Consultant is working at his or her own risk (in Dutch: - “voor eigen rekening en - risico”). The Consultant is free to perform the - Activities at his or her own discretion (in Dutch: “naar eigen inzicht”) and - independently. The Consultant will use his own resources and tools to - perform the Activities for ROS. - - - - - 5. - - - The agreed working hours shall amount to 30 hours per month. - The Consultant may be expected to perform overtime outside the - established working hours whenever this is necessary for the proper - performance of the Activites. - - - - - 6. - - - ROS will pay the Consultant € 50 - per hour excluding VAT. It will do so after ROS has received an - invoice from the Consultant. The Consultant will send an invoice - within 14 days after the end of each calendar month for the - Activities performed during that month. - ROS will then pay the agreed amount - within 30 days of receipt of the invoice. ROS will also pay - reasonable travel expenses of the Consultant, to the extent that - ROS has given prior written approval for such costs and the - Consultant provides ROS with an invoice or other documentation for - these expenses. ROS will not reimburse any other costs the - Consultant incurs in the course of the Activities, unless ROS has - given prior written approval for such costs. For the avoidance of - doubt, ROS shall pay no wages (in Dutch: "salaris") to the Consultant and - therefore, ROS shall not provide payslips to the Consultant, nor - pay to the Consultant any money or allowance in the event of a - holiday or illness of the Consultant. - - - - - 7. - - - If during the course of the Activities, there is a risk that - the scope of the assignment is bigger than expected, the Consultant - will let ROS know without delay. - - - - - 8. - - - The Consultant transfers to ROS all intellectual property - rights created as a result of the Activities. To the extent that it is - not possible to transfer these rights, he grants to ROS a perpetual, - exclusive transferable, sub-licensable, world-wide license to such - rights, and agrees to co-operate with the transfer of these rights to - ROS. To the extent that the Consultant has transferred these rights to - ROS, ROS grants a perpetual, non-exclusive, non-transferable, - not-sub-licensable, world-wide license to such rights to the - Consultant, unless ROS considers this impossible, due to obligations - ROS might have vis-à-vis others. In that case, ROS will explore - whether it is possible to grant to the Consultant a license on the - rights with a narrower scope. For the avoidance of doubt, any rights - of the Consultant vested in software or services developed prior to - the Activities are not affected by this agreement. - - - - - 9. - - - The Consultant retains all intellectual property rights he owns - prior to this agreement. - - - - - 10. - - - The Consultant will not disclose confidential information and - personal data he receives from ROS, or gains access to in the course - of the Activities. The Consultant will only use this information or - data for the purposes of carrying out this agreement. The Consultant - will take reasonable measures to maintain the confidentiality of this - information and data. The Consultant may disclose this information and - data on a need-to-know basis, and only to persons associated with ROS - as employee, freelancer or volunteer and only if the Consultant knows - that they are bound by the same confidentiality - obligations. - - - - - 11. - - - The Consultant is responsible: - - - - - - for ensuring that any work performed in the course - of this agreement is lawful (in Dutch: “rechtmatig”) and not - illegal (in Dutch: “niet - strafbaar”); - - - - - - - - for ensuring that by performing the Activities, he - does not act contrary to a non-compete- or a - confidentiality obligation he may have. If there is a risk - that the Consultant will act contrary to such an - obligation, he will inform ROS without delay. ROS then has - the right to terminate the agreement without - compensation; - - - - - - - - and for paying any applicable taxes and social - security premiums following from the Activities. Should - ROS have to pay any of these, the Consultant will - indemnify ROS. - - - - - - - - 12. - - - Should a third party lodge a claim against ROS or any of its - employees, freelancers or volunteers, or the public prosecutor - initiate an investigation or criminal proceedings against any of these - parties, as a result of activities performed by the Consultant under - this agreement, then the Consultant will co-operate fully with ROS in - defending against this claim, investigation or these proceedings, - including by providing any evidence he or she has which may be - relevant to this defense. - - - - - 13. - - - Unless a result of gross negligence or willful misconduct, the - liability of either party to the other for any type of damages is - limited to the amount of Consultant's total fees under Article 5 of - this agreement. - - - - - 14. - - - If any of the provisions of this agreement is annulled or void, - the other provisions remain in effect. To the extent possible, the - annulled or void provision will be replaced by a similar provision - that has the same effect. - - - - - 15. - - - The general terms and conditions of ROS apply to this - agreement. ROS rejects any general terms and conditions used by the - Consultant. - - - - - - SIGNED IN - DUPLICATE ON AUGUST 18, 2016 IN - - - - - - - Treehouse City - - - Diemen - - - - -   -   - - -   -   - - - - - Peter Pan - - - Melanie Rieback - - - - - Lost Boys Inc. - - - Radically Open Security - B.V. - - - - - - - - - - - diff --git a/xml/target/contract.pdf b/xml/target/contract.pdf deleted file mode 100644 index ea1e09002d7649108f5876cf81e603091c25dd31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62985 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

ikfVvZHL%Cz8UGB_4MCRVI>>NNa2EIIoSN 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 L$jmIMAVv6p1>|hG diff --git a/xml/target/document.fo b/xml/target/document.fo deleted file mode 100644 index 253096e..0000000 --- a/xml/target/document.fo +++ /dev/null @@ -1,1002 +0,0 @@ -/Radically Open Security B.V. - Chamber of Commerce - 60628081/Radically Open Security B.V. - Chamber of Commerce - 60628081 - OMEMO: CRYPTOGRAPHIC ANALYSIS REPORTFor PACIFIC RESEARCH ALLIANCE V1.0AmsterdamJune 1st, 2016Document PropertiesTitleOMEMO: CRYPTOGRAPHIC ANALYSIS REPORTVersion1.0AuthorSebastian VerschoorReviewed byMelanie RiebackApproved byMelanie RiebackVersion controlVersionDateAuthorDescription 0.1May 10th, 2016Sebastian VerschoorInitial draft 0.2May 11th, 2016Sebastian VerschoorConversations developer fixed the issue I found 0.3June 1st, 2016Sebastian VerschoorChanged client organisation1.0June 1st, 2016Sebastian VerschoorFinal versionContactFor more information about this Document and its - contents please contact Radically Open Security B.V.NameMelanie RiebackAddressOverdiemerweg 281111 PP DiemenThe NetherlandsPhone+31 6 10 21 32 40Emailinfo@radicallyopensecurity.com - - Table of Contents - - - - - 1  Introduction  1.1  Terminology  1.2  Attacker Model  1.2.1  Attacker Goals  1.2.2  Attacker capabilities   - 2  Protocol Analysis  2.1  Signal Protocol  2.1.1  Protocol Description  2.1.2  Security Analysis  2.2  OMEMO  2.2.1  Protocol description  2.2.2  Security Analysis  2.2.3  Malicious device  2.2.4  Forward/future secrecy  2.3  OMEMO Encrypted Jingle File Transfer   - 3  Code Review   - 4  Conclusions/recommendations   - 5  Acknowledgement   - 6  References   - - Appendix 1  Minor corrections   - - - - 1   Introduction - The OMEMO protocol is an adaptation of the Signal Protocol, created by Open - Whisper - Systems1https://whispersystems.org/. - OMEMO is designed to work in an XMPP environment [26][28], - where users can have multiple devices with which they want to communicate - with each other. An XMPP session can involve multiple servers, instead of - just one Open Whisper Systems server. The impact of multiple servers should - be minimal, as a trusted server was never part of the security model that - guarantees the security of the Signal Protocol. - The predominant part of this report, the protocol security analysis, can be found - in Section 2, in which I analyze the full OMEMO protocol, including the used - Signal protocol and the protocol for encrypted file transfer. Section 3 - discusses the results of a brief inspection of the open-source code - [7] of the Conversations application [9], as a reference - implementation of the OMEMO specification. Finally, Section 4 provides a - summary of results and my recommendations for the OMEMO standard. - - 1.1   Terminology - OMEMO is a recursive acronym that stands for “OMEMO Multi-End Message and - Object Encryption”. In this report, the term OMEMO refers to the - protocol as specified by its ProtoXEP [29], also - called OMEMO version 0. - In order to eliminate confusion, Open Whisper Systems has very recently - [20] changed the name of their protocol from the - difficult to pronounce “Axolotl” to the “Signal Protocol”. The old - name has been used to refer to both the entire protocol and to refer - to just the ratchet component of the full protocol. The OMEMO - specification was created before this announcement and uses the old - names. This report follows the new terminology: “Signal - Protocol” refers to the full protocol, “Triple - Diffie-Hellman” refers to the initial handshake and “Double Ratchet” - refers to the ratchet algorithm. I recommend that the OMEMO - specification updates their terminology as well. - Throughout this report, I will follow the tradition in cryptographic - literature of naming the end-users Alice and Bob, while reserving - the name Eve to represent the adversary. Note that the end-users - represent persons, not the device (or multiple devices) that they - use. - - - 1.2   Attacker Model - Section 2 of the OMEMO ProtoXEP lists only a few requirements for the - protocol. From a cryptographic perspective, many basic requirements - are missing, including the basic CIA triad2Confidentiality, - Integrity and Availability. That does not mean that - the protocol does not meet those requirements, it just means that - the specification is not as explicit as it can and should be. This - section aims to extend the requirements to list all security - properties that OMEMO achieves. - To claim that the protocol is secure, a well-defined attacker model is - required in order to specify what the protocol is secure - against. By defining the goals that adversaries might - have and defining their capabilities, it becomes clear what the - protocol needs to defend against and which security properties it - should provide to the end-users. - - 1.2.1   Attacker Goals - The attacker goals are closely tied to the security properties of - the secure messaging protocol. Table 1 lists the different - goals that an attacker might have and the corresponding - security property that a protocol should provide in order to - be considered secure. - Table 1: Attacker Goals - - Attacker Goal - Security property - - Compromise messages - Confidentiality of messages - - Alter sent messages - Integrity of messages - - Inject false messages - Authenticity of messages - - Identify as another person - Authentication of communication partner - - Block communication - Availability of communication - - Learn communication metadata - Privacy protection - - Prove what was said - Deniability of message content - - Prove that two persons communicated - Deniability of the conversation - - Learn past communication after compromise - Forward secrecy - - Prolong a successful attack - Future secrecy - - Not every attack can be defended against by a secure messaging - protocol. It is especially hard to provide availability when - an attacker is assumed to be able to block messages on the - communications network. Having said that, the protocol - should not make it easy for an attacker to block - communication. - To protect the privacy of the users, the protocol should not leak - metadata about the users’ communication, such as who they - are communicating with, how many messages they sent and from - where. Communication layers below the secure messaging - protocol might leak this data as well, but it could be - hidden through anonymity tools such as Tor. In that case, - the protocol itself should not reveal any metadata. - To provide deniability, it should be impossible for anyone to - provide convincing proof to a third party about past - communication. To deny that any conversation ever took place - is a stronger claim than just denying the precise contents - of a message. - Forward secrecy3also called Perfect Forward Secrecy or Key - Erasure and future secrecy are properties - that ensure some damage control in case that a device or key - does get compromised. Forward secrecy ensures that keys that - are currently on the device do not compromise any past - communication, so that the impact of a device compromise is - minimized. Future secrecy ensures that an attacker that has - compromised a key in the past, does not get to prolong his - attack indefinitely. This is often achieved by introducing - fresh randomness that should remain unknown to a passive - adversary. - - - 1.2.2   Attacker capabilities - A base model for the attacker is the Dolev-Yao model - [5], in which the attacker has full control - over the network. The attacker can listen to, alter, inject - and drop any message on the network. - However, real attackers have capabilities beyond control over the - network. By inspecting the physical properties of the - implementation, they might learn secret information that is - on the communication device. This is called a side-channel - attack. Device compromises can also be achieved by low-tech - attacks such as a rubber-hose attack or through legal - procedures. An attacker is assumed to learn information - through side-channels and to be able to get temporary access - to the device. - An issue with some existing protocols is that users need to trust - in the communications server that is being used. The open - nature of XMPP allows arbitrary parties, including - adversaries, to set up a fully functional XMPP server. But - even if you trust the organization that runs the server, you - might not trust the government of the country in which the - server is located to protect your privacy. Therefore, the - attacker is assumed to have full control over the server - that is used for communication. - The last capability that is given to the attacker is to - compromise protocol participants themselves. When Alice - communicates with Bob, the protocol should provide some pro- - tection in case Bob turns out to be a dishonest participant. - Basically, the protocol should enforce Bob to play by the - rules. - - - - - - 2   Protocol Analysis - The OMEMO standard is best described as a wrapper protocol around the Signal - protocol. I will analyze the standard as specified by its ProtoXEP - [29], in order to find if it achieves the cryptographic - properties that it claims to uphold. In addition, this report analyses the - OMEMO Encrypted Jingle File Transfer protocol as specified by its ProtoXEP - [11]. - In Section 2.1, I will first briefly inspect the Signal Protocol, to see how it - achieves its security properties. Those already familiar with the Signal - Protocol might want to skip this section. After that, Section 2.2 will fully - analyze how the OMEMO protocol uses the secure sessions created by Signal to - set up an OMEMO session between multiple devices of two users. - At the moment of writing, version 3 is that latest version of the Signal - Protocol. This is the version that is used by OMEMO version 0 and the one - that is analyzed in this report. - - 2.1   Signal Protocol - Although the Signal Protocol is mentioned in the specification, there is - no reference given to this protocol.4The OMEMO website [10] - references to Trevor Sprain’s GitHub page [24], but this is - only a draft specifi- cation of the Double Ratchet part of - the protocol. This is not a flaw of the OMEMO - specification, because a normative specification for the Signal - Protocol does not exist. The open-source library that Open Whisper - Systems provides on GitHub [30] is a - straightforward implementation and I will use it as a basis for my - analysis of the Signal Protocol. In addition to the source code, OWS - published a series of blog posts [18][17][16] that - further clarify how their protocol works. - Figure 1: Signal Protocol version 3 - - 2.1.1   Protocol Description - A simplified representation of the Signal Protocol is given in - Figure 1. The figure shows the start of a conversation - between Alice and Bob. In this abstracted example, the - participants are identified by their name. In reality, this - would be a phone number for the Signal application and an - XMPP address in case of OMEMO. - Notation The following notation is used: - KDFs(i) derives a key using - salt s, info data i and a constant label that - is unique for each KDF computation in the figure. When no - salt is specified, the constant value 0 is used. - MACk(m) computes an - authentication tag on message m, using key k. - enck (n, m) - computes the symmetric encryption of message m, using - key k and nonce/initialization vector n. To - keep the diagram simple, the precise meaning for asymmetric - keys notation depends on the context, but it is - straightforward. For example: a0 refers to - the entire key pair when generated, to the private key when - used in the DH computation and to the public key when sent - in the message. Only public keys are sent in messages. - Prekeys First Bob uploads his client-side generated key - material to the server so that he can be contacted by Alice. - He sends his long-term identity key B, his signed - prekey b0 with corresponding signature - sigB(b0) and a - one-time-use prekey bx. Bob can go offline - at this point, the server will now act as an online cache - for others that want to initiate a conversation with - Bob. - TripleDH When Alice wants to talk with Bob, she requests - the cached data from the server. The server complies and - Alice can initiate the TripleDH5In older versions, the - key derivation did indeed consist of three DH - computations: it did not include the signed prekey. - The name “QuadrupleDH” is not used to avoid - confusion with a variant that also includes a DH - computation between the identity keys. The current - computation can be referred to as a variant on - standard TripleDH: “TripleDH with signed and - one-time prekeys”. handshake. She first - generates her own one-time key pair a0. - She combines the keys by concatenating the results of the DH - computations and computes s, a shared secret that - initializes the Double Ratchet. Using the KDF function, - Alice computes the initial root key rk0. - DH ratchet (every reply) Alice updates the root key with - the DH ratchet. She first generates a fresh random key pair - a1 and does a DH computation with - the latest DH key she received from Bob (initially - b0). Using the previous root key - rk0 as a seed for the KDF, she computes a - new root key rk1 and a new sending chain key - ck1,0. At this point, Alice should delete - the old root key rk0 and her previous key pair - a0 to ensure forward secrecy. - Chain ratchet (every message) Alice derives a message key - (mk1,0) and a new chain key - ck1,1 from the old chain key - ck1,0 and she deletes the old chain key - for forward secrecy. Alice derives three keys from the mk - with the KDF: an encryption key k, an authentication - key m and a nonce/initialization vector n. She - encrypts the plaintext message and computes an - authentication tag over the (public) identity keys and the - ciphertext. She then sends the SignalMessage to Bob, - consisting of her one-time key a1, the - ciphertext and the authentication tag. Only with the - PreKeySignalMessage (the first message) will she also - include her first one-time key a0 and her - identity key A. Bob can use the key material from the - PreKeySignalMessage to initiate the root ratchet and - receiving chain ratchet, from which the key material can be - derived to validate and decrypt the message. - This diagram implicitly also shows how the conversation - continues. Every time the user replies to a message, the - steps below the first horizontal line are taken: the root - key is updated with a fresh random DH computation and a new - sending chain ratchet is initialized. For every additional - message, the sending chain key is updated and a fresh - message key is used to encrypt user messages. Note that both - users have one root ratchet and two chain ratches: one for - sending and one for receiving. - Key verification In order to ensure that no - man-in-the-middle attack has taken place, Alice needs to - verify that the identity key she has connected with indeed - belongs to Bob. How they do this is not important, as long - as it happens over an authenticated channel, but no PKI is - assumed in the protocol. Instead, users must manually verify - the identity key “fingerprint” (which is just the full - public key) of the other party. - Message counters Messages might arrive out of order and - can even arrive after the DH ratchet has been forwarded. - Therefore, the sender of the message also includes two - counters: one for how many messages were sent under the - current ratchet and one for the total under the previous - ratchet. With these counters, the receiver can see exactly - which messages did not (yet) arrive and store only the - corresponding message key mk. These counters are - authenticated by the tag, but they are not encrypted. - Multiple prekeys In a real-world situation, Bob would want - more than one person to be able to communicate with him, so - he uploads multiple prekeys to the server. In the case of - the Signal application, Alice only gets a single one-time - prekey from the server. When the server runs out of prekeys, - Alice can complete the handshake without Bob’s one-time - prekey. This message has reduced forward secrecy, because - Bob cannot delete the signed prekey b0 immediately after - use. When Bob receives a PreKeySignalMessage, he should send - a fresh signed prekey to the the server, so that the key - that is cached on the server gets updated. - Bob needs to know which signed prekey and which one-time prekey - Alice used in her computation, so each prekey has its own - identifying number. Alice includes that number in the - PreKeySignalMessage and sends Bob, unauthenticated and - unencrypted. These numbers are generated sequentially. - Key lifetimes The identity key lasts indefinitely. It is - possible that Alice sends a message using a signed prekey - that was already updated by Bob. For that reason, Bob should - keep a few old signed prekeys in storage, so that he does - not need to discard those messages. How long this should be - is not specified, but the specification should include at - least a guideline and/or upper bound for this lifetime. The - one-time prekeys are used only once and should be deleted - immediately after use. The server should delete a public - one-time prekey immediately after they handed it out to - someone, so it does not get used again. DH ratchet keys - should be deleted after the other party has sent their next - DH ratchet key and that DH computation has been - completed. - Used cryptographic primitives The protocol so far is - lacking a description of which cryptographic primitives are - used as building blocks of the protocol. Technically, the - protocol does not need to be locked, but at this moment it - is non-trivial to change the used ciphers in the OWS code. - The following primitives are in use: - enc: AES [23] in CBC mode and using - PKCS5paddingMAC: HmacSHA256 [14]KDF: HKDF [15] using HmacSHA256DH: X25519 [1]sig: Ed25519 [2] - A standard of the protocol could benefit from allowing different - primitives or cipher suites. For example, when a - cryptographic breakthrough leads to breakage of a primitive, - clients can simply reject all suites that use that primitive - and remain secure. Or an implementer might want to use a - different suite because of business requirements or - performance issues. This cipher suite should be negotiated - at the start of the protocol: Bob can upload a list of all - suites he accepts to the server cache and Alice can pick - one. To avoid downgrade attacks, the full list and the - picked suite should be authenticated in the - PreKeySignalMessage. - Note that the identity key B is used both for signing - prekeys and in a DH computation, which is secure - [4] with the current implementation over - Curve25519, but might not be trivial to implement for other - public key ciphers. The used structure of encrypt-then-MAC - could also be replaced with an authenticated encryption - cipher/mode as long as it allows for additional - authenticated data (AAD). - Metadata The protocol leaks metadata about who is - communicating with whom and how much they are communicating. - Alice’s request for the server cache leaks to the server - that she wants to start a conversation with Bob, as does the - PreKeySignalMessage. The plaintext message counters that are - included in each SignalMessage make it possible to track the - rest of the conversation. - Unlike the ratchet used in the Signal Protocol, the regular - variant of the Double Ratchet [24] also - encrypts the message headers, which would make it possible - to avoid tracking of the conversation. It would only make - sense to implement this if this information is not leaked - already in the transport layer. - - - 2.1.2   Security Analysis - A more thorough analysis of the Signal protocol has been done - before by Frosch, Mainka, Bader, Bergsma, Schwenk and Holz - [6]. In their work, the researchers provide a detailed - description of the application, the underlying protocol and - the environment in which the application operates. That - environment includes the Google Cloud Messaging - infrastructure in order to send push messages to the - devices. - In their analysis, the researchers found no major weaknesses in - the Signal Protocol. They give security proofs for the - building blocks that make up the Signal Protocol: the - initial key exchange, the subsequent key derivation and the - authenticated encryption. In addition, they identify a minor - weakness in the authentication of users identity keys, named - the unknown key-share attack, and they comment on the - claimed additional security features (future secrecy, - forward secrecy and deniability). - Unknown key-share attack In an unknown key-share attack, - Eve downloads the public key material of Bob and uploads the - keys as if they are her own. When Alice wants to initiate a - conversation with Eve, she checks that the identity key she - downloaded from the server match with the one that Eve - presents to her out-of-band. Alice completes the handshake - on her side and sends here initial messages. Eve forwards - these (still encrypted) messages to Bob.6Forwarding - messages is trivial for an attacker, because we - assume she has full control of the - server. - The result of a successful attack is that Alice falsely believes - that she sent her messages to Eve, while Bob falsely - believes that the received messages were intended for him. - Eve is unable to compromise the confidentiality or integrity - of the messages, making the impact of this attack relatively - low. - The underlying cause of the above attack is that Eve never needed - to prove to Alice that she was in possession of the private - key corresponding to the presented identity public key. The - researchers propose a solution, where the users engage in an - out-of-band interactive zero-knowledge proof over an - authenticated channel, such as exchange of messages with - QR-codes. Because this solution is based on an interactive - protocol, it would disable users from sending messages - immediately if the recipient is not online at that - moment. - Future secrecy Future secrecy ensures that a key - compromise at some point in time will not propagate - indefinitely. The Signal protocol achieves this by - introducing new randomness with every reply in order to - forward the root ratchet. A key compromise by a passive - attacker will not propagate from that point on. However, an - active attacker that has compromised both the root key and - an identity key is able to set up a man in the middle attack - that can be prolonged indefinitely. - Forward secrecy Forward secrecy ensures that when a device - is compromised, no past messages can be decrypted. This is - achieved by erasing message encryption/decryption keys as - soon as possible. One of the problems with the Signal - Protocol is that Bob’s private prekeys need to remain stored - on the device until a message has been received that was - encrypted with the corresponding public prekey. If Eve - manages to intercept and block that message from being - delivered, Bob will keep holding on to that private prekey, - so that Eve can read the content of the message if she is - able to extract Bob’s private prekeys from his device. But - for any message that is delivered and decrypted correctly, - Bob discards the private part of the prekey and ensures - forward secrecy. - Version 2 of the Signal Protocol was also vulnerable to an attack - on the forward secrecy of the first message by an active - adversary. Eve could provide her own prekey (of which she - knew the corresponding private key) and provide it to Alice, - pretending it was the prekey of Bob, together with Bob’s - identity key. Bob would not be able to decrypt the message, - but Eve would be able to if she was able to compromise just - Bob’s private identity key. Version 3 fixes this - vulnerability by introducing adding a prekey that is signed - by the identity key. This signature ensures that Eve cannot - provide her own prekey and pretend that it belongs to Bob, - thus preventing the attack. - Deniability Deniability for a messaging application can - occur on two levels: denial of the message content and - denial of the full conversation. The researchers prove that - the Signal Protocol achieves the former, but they claim that - the latter might only be theoretical. Because clients - authenticate to the Open Whisper Systems server (similar to - how an XMPP client authenticates to an XMPP server) and this - server needs to know the addresses of the sender and - recipient in order to guarantee delivery, the logs that - might be stored by the server can reveal that a conversation - took place. - The fact that a conversation took place might leak, but through - another layer than the application layer of the core Signal - Protocol. The solution to such leaking of metadata should - also be contained in the appropriate layer and should stay - out of scope for the OMEMO specification. - - - - 2.2   OMEMO - OMEMO uses Signal in order to set up a session. In Section 2.2.1, I will - show how OMEMO uses those Signal sessions in order to set up a - secure conversation between multiple devices. In Section 2.2.2, I - will analyze the cryptographic strength of the design and describe - minor issues I found in the specification. Two major problems are - described in their own sections: Section 2.2.3 explains how a - malicious device can compromise the entire conversation and Section - 2.2.4 shows how forward secrecy and future secrecy can be affected - by other devices. - - 2.2.1   Protocol description - At a very high level, OMEMO works similar to how a Signal group - messages [19] work, but with multiple devices instead of - multiple users. A Signal session is set up between each - device. Messages are encrypted and authenticated with a - random key and the encryption of that key is sent as message - content of a SignalMessage. - A complete overview of OMEMO is given in the use cases of section - 4 of the ProtoXEP, but I will provide a brief description - here. A typical XMPP setup is shown in Figure 2. Alice is - registered at a different server as Bob. Alice has - registered two OMEMO enabled devices, while Bob has only - registered his phone and wants to register his laptop as - well. - In order to register his laptop, Bob generates a random 31-bit - device id and registers it by adding it to his device list - on the server via PEP. He then generates a random identity - key B, a signed prekey b0 with - corresponding signature sig(b0) and 100 - one-time prekeys bx. He then - uploads this in an OMEMO bundle, again via PEP. This bundle - contains the same information that Bob caches on the server - in regular Signal. - Assume Alice wants to send an OMEMO encrypted message from her - phone. She can detect that Bob’s device(s) support OMEMO by - requesting his device list with PEP. If he does, she - encrypts and authenticates her message using a randomly - generated key. For every device that Alice wants to send the - encrypted message to, she fetches the entire bundle via PEP. - If she wants to add more of her own devices in the - conversation, she gets their bundles as well from her own - server. Alice creates a PreKeySignalMessage for every device - by picking a random one-time prekey from each bundle and - encrypting the randomly generated key to each device. She - combines all information in a single MessageElement: the - encrypted payload (<payload/>), - the plaintext iv (<iv/>), the - sender id (sid) and the encrypted - random key (<key/>) tagged with - the corresponding receiver id - (rid). - Figure 2: OMEMO version 0 - Bob’s device can decrypt the message by selecting the correct - <key/> element based on - the rid attribute and use it to initialize the Signal - session on his side. - At this point, Alice’s phone has set up a Signal session with - each of the devices. If Bob wants to reply, he still needs - to initialize a session with Alice’s PC, so he also needs to - download all bundles and initialize Signal sessions by - sending a PreKeySignalMessage where necessary. If all - devices (but one) have sent a message, each device will have - a pairwise Signal session set up. - Device synchronization The regular delivery mechanism of - XMPP was built to send a message to one user only and to - send it only to online devices. Message Carbons - [13] are used to deliver the messages to - multiple devices per user and Message Archive Management - (MAM) [21] is used to enable delivery to - devices that are currently offline. This achieves - inter-client history synchronization if no malicious device - is taking part in the conversation.7see also Section - 2.2.3. - The MAM was designed as a message archive, but instead it is used - here as a message cache. The ciphertext messages will remain - stored online after they have been downloaded, even though - the keys will be discarded upon encryption. This does not - affect security, but it wastes space on the server. A client - should delete the message from the server after they - decrypted it and deleted the message keys. - KeyTransportElement Instead of sending a MessageElement, a - device can also send a message without a payload, called a - KeyTransportElement. The randomly generated key might be - used for example to encrypt a file, see Section 2.3. Sending - a KeyTransportElement also has the advantage that the Signal - ratchet gets forwarded. - Prekey collision When Alice wants to create a - PreKeySignalMessage for Bob, she gets the full bundle and - randomly selects one of his prekeys. When Bob receives - multiple PreKeySig- nalMessages, the prekeys might collide. - Because of the birthday problem, collisions are expected to - occur often. With 100 prekeys a collision is expected after - 12.3 PreKeySignalMessages and for the suggested minimum of - 20 keys, a collision is expected after approximately 5.86 - PreKeySignalMessages. - When Bob receives PreKeySignalMessages with prekey collisions, he - replies to Alice with a KeyTransportElement containing his - own PreKeySignalMessage, so that a new session can be - initiated. If Bob no longer has the corresponding private - prekey, he silently discards the message. - When fetching a PreKeySignalMessage with MAM, Bob should keep the - private prekey in memory (but he may also delete them) until - all MAM messages have been downloaded, so that he can still - decrypt messages. He can decrypt, but he should set up a new - session with Alice anyway. The specification warns for a - small subgroup attack [22] that applies when reusing - one-time keys. However, that attack does not apply to X25519 - [3]. Implementers should make sure that the prekeys also get - discarded if the MAM catch-up does not complete successfully - (for example when the device crashes), or the forward - secrecy of the message will be compromised. - A more elegant solution would be to do what OWS does: let the - server send each one-time prekey once and delete them - afterwards, instead of delivering the entire list of - prekeys. That way, no collisions can occur on the prekeys - and fewer initial messages get dropped. When the server runs - out of one-time prekeys, the server lets Alice know and she - can complete the PreKeySignalMessage without a one-time key, - just as the Signal application. - It is unclear if this solution is possible to implement in XMPP, - as it appears that there currently is no XMPP extension that - allows a server to delete/mark PEP nodes while the user is - offline. - Device ID The resourcepart of the XMPP address [27] is not - used, but instead a separate device id is used. This is - because the resourcepart can change during an OMEMO session, - in which case a device will no longer be able to detect the - correct key in the header. With the current setup, the - device id should be unique among all device ids that - participate in a conversation, so they potentially collide - with any other device in use. Using 31 random bits for a - device id might be enough to avoid a collision most of the - time, but if the full XMPP address were used instead the - user can guarantee no collisions as he only needs to take - care of not colliding with himself. - Colliding device ids do not affect the security of the protocol: - in the worst case, colliding devices are unable to - participate in the conversation, affecting only the - usability. - - - 2.2.2   Security Analysis - The pairwise Signal session in OMEMO are very similar to that of - the Signal application, so their security properties are - similar. The server model for XMPP is slightly different as - that of OWS, but since the protocol does not rely on trust - in the server this should not affect the security of the - Signal sessions. The way that multiple Signal sessions are - combined to create a multi-device OMEMO session does affect - the security properties of the entire protocol, so I will - analyze that in this Section. - Signed prekey lifetime OMEMO does not specify when a - signed prekey should be renewed on the server. When this key - does not get updated, the forward secrecy of a PreKeySig- - nalMessage is not protected against an active attacker (see - Section 2.1.2). The device should send a fresh key to the - server regularly and old signed prekeys should be deleted - from the device after a while. - Cryptographic primitives OMEMO adds only one cryptographic - primitive: authenticated encryption of the payload, which is - fixed to AES in GCM mode. There is no reason to fix the - cipher for OMEMO, any form of encryption with authentication - can be used. A non-authenticated encryption cipher can also - be used when the payload authentication is included in the - tag of the SignalMessage, as described in Section 2.2.3. - The specification should allow for alternative ciphers, for the - same reason that the Signal protocol should. Preferably, the - negotiation of this cipher should be merged with that of the - negotiation of the Signal cipher suite, so that clients only - need to negotiate this once at the start of a conversation. - Unfortunately, Signal is not standardized and it would - probably be unwise to specify in the OMEMO standard how - Signal should negotiate its primitives. - Metadata Communication metadata is already leaked through - the Signal protocol and probably also through the XMPP - transport layer, but OMEMO also leaks this information - through the plaintext device ids. The payload is encrypted - in GCM mode, so the size of the plaintext is also - leaked. - - - 2.2.3   Malicious device - One cannot expect messages to remain confidential when one of the - participating devices is malicious. However, a user might - suspect at least that the integrity of messages sent by an - honest device is guaranteed by the protocol. After all, a - secure Signal session with that honest device has been set - up. However, the Signal session only protects the random - key. A malicious device has access to that key and can thus - re-encrypt and re-authenticate any payload with that key, - without the receiving party being able to detect it. This is - illustrated in Figure 3. - The displayed attack only shows the attack in one direction: Eve - is able to modify and read anything sent by Alice. Eve needs - to apply the same attack to Bob in order to setup up a - bidirectional man in the middle attack. Note that Eve needs - to strip of her own <key/> element - from the list of keys in every message in order to remain - undetected from Bob. - Figure 3: OMEMO man in the middle attack - Two careful users will not be susceptible to this attack, because - neither of them will ever accept an unvalidated key. - However, no matter how careful Bob is with validating the - identity key of the sending device, he must assume that - Alice has never made a mistake and none of the devices were - compromised in order to be guaranteed the authenticity of - messages that come from any of her devices. This trust in - the other party is not necessary, if the messages were - authenticated inside the Signal session. Also, Bob could - make it less likely for Alice to accept a malicious device - by creating a cryptographic link between devices. - Message authentication Messages are authenticated by the - randomized key, which protects the message integrity from - outsiders. However, anyone with access to the key can alter - the message, which includes a malicious device. There are a - few possible mitigations, each with their advantages and - disadvantages. - A possible solution would be to authenticate inside the Signal - session. By authenticating the payload with the tag of the - SignalMessage, the full message is authenticated in such a - way that no other device can compromise the integrity. The - ciphertext (and not the plaintext) of the payload message - should be authenticated, so that the MAC-then-encrypt - pattern is applied.8Which also means that the payload - ciphertext must be known when the header is sent, - which is problematic for on-the-fly encryption. See - also Section 2.3. This solution increases - the computational load on the sender side, because the - payload needs to be authenticated more than once. When the - ciphertext is added as authenticated additional data (AAD) - of the Signal message, it would reduce the message size - slightly, because no authentication tag is required on the - payload. The payload encryption method should then be - simplified to a non-authenticated block cipher mode. It will - also require some alterations on the Signal library, as the - current implementation does not allow the library user to - add their own AAD. - The payload can also be authenticated by including a hash of the - payload ciphertext in the SignalMessage plaintext (and - therefore the corresponding encrypted hash in the SignalMes- - sage ciphertext). This would not require changes to the - Signal library, but it would increase the size of each - <key/> element. This - solution is less elegant than the previous, as the hash of - the payload ciphertext is sent encrypted, even though the - recipient can compute this value themselves. - By authenticating a list of all recipient device ids in the tag - of the SignalMessage, Bob has a guarantee about which - devices Alice has sent the message to. Bob’s client might - provide him with a warning if that list includes untrusted - devices. This protects him against the specific attack - described above, but the protocol remains vulnerable if one - of the devices gets compromised by another attack. This - solution can be combined with the above solution of - authenticating the payload ciphertext with the SignalMessage - ciphertext or tag. - Device linkage There is no cryptographic link between - identities and device keys. In other words, Eve can attach - her own device identity key as if it is a resource belonging - to Bob and fool Alice into adding it. - There is a solution: each device could sign a certificate on - each device identity key of the same user. While Eve might - fool Alice into thinking that Bob has another device, it is - highly unlikely that Bob is tricked into accepting another - device as his own. Device identity keys with a certificates - that was signed by an already accepted device of the same - user could be accepted automatically. - In order to account for compromised devices, users must have the - ability to revoke certificates and certificates should have - a finite lifetime. This solution can be extended into a - full-blown public key infrastructure (PKI) or web of trust, - but I recommend to keep that out of the scope of the OMEMO - specification (although compatibility with such systems - could be taken into account when updating the OMEMO - specification). - - - 2.2.4   Forward/future secrecy - The forward secrecy and future secrecy of the protocol might be - affected in unexpected ways when a user has read-only - devices or inactive devices. - Read-only devices Read-only devices will forward their - Signal chaining key, but never is there any message sent - from these devices, so the Signal root key will never be - ratcheted forward. Such a device compromises the future - secrecy of the entire conversation: if the receiving - chaining key of such a device gets compromised, the rest of - the conversation from that point on is compromised. - The solution is simple, the read-only device should regularly - send a KeyTransportElement in order to forward the ratchet. - The interval for this message can be based on a number of - received messages, on time, or on a combination of - these. - Inactive devices Devices that are no longer used and never - come online anymore, should be pruned from the conversation: - they keep a copy of a very old chain key in their memory, - which compromises the forward secrecy of the entire - conversation. There is currently no way specified for - removing keys from a conversation, except for just removing - them. - A device can interpret the above message for read-only devices as - an authenticated heartbeat message. When the device has not - not received a heartbeat for too long, it can decide to - prune the device from the conversation. - - - - 2.3   OMEMO Encrypted Jingle File Transfer - The OMEMO Encrypted Jingle File Transfer is defined in its ProtoXEP - [11]. It uses the Jingle File transfer - [25] to send the data to the other user. The - KeyTransportElement is included in the Jingle File description and - the file contents can be sent separately, encrypted with the random - key that was sent in the KeyTransportElement. - From a cryptographic perspective, there is no difference between sending - an OMEMO text message and sending an OMEMO-encrypted Jingle file, - even if that file gets sent over another channel. The one difference - is that Jingle allows for some file metadata to be sent. This - metadata is neither encrypted nor authenticated. The specification - does not provide a method for encrypting the metadata as well. - Message authentication Just as a normal message is not - authenticated in the presence of a malicious device (see Section - 2.2.3), so is the file content not authenticated when a malicious - device is present. - The earlier proposed solution for authenticating the payload - (authenticating the ciphertext in the SignalMessage tag) would - disable on-the-fly encryption when sending a file, because the - payload ciphertext must be known when constructing the - <header/>. If losing the ability - to do on-the-fly encryption is acceptable, this solution should be - preferred. Otherwise, just authenticating the list of all recipient - devices should be sufficient to protect against the described - attack. - Metadata Even though the metadata is not secured by the - specification, it should not leak any information on the raw file - contents. The Jingle protocol requires a hash of the file. The OMEMO - file-transfer specification is correct in requiring that this hash - is of the file ciphertext: a plaintext hash would lead to a - “confirmation-of-data” vulnerability [31]. - All other metadata can simply be removed from the - <description/> in order to - minimize metadata leakage, as they are considered optional for - Jingle. However, the “size” and “range” elements can be included, as - these already leak from the ciphertext length and the transfer - method. - - - - - 3   Code Review - Conversations is an open-source [8] XMPP client for Android. In this section, I - will use their published code as a reference implementation for the OMEMO - ProtoXEP. I have inspected the implementation, looking for bugs that - compromise the security of an OMEMO session in any way. The goal of the code - review is twofold: it attempts to find security weaknesses and it should - reveal if inconsistencies exist between the specification and its - implementation. In the rest of this session I will give a summary of my - findings. - The Conversations code simply uses the Signal library by OWS. Generation of - Signal keys, encryption of <key/> elements and - managing of the corresponding Signal sessions is handled by the Signal - library. The biggest problem with this approach was that the Signal library - accepted messages without a one-time prekey, which OMEMO should never do - (since the server will never “run out” of one-time prekeys).9The - developers fixed this in commit cc209af. Combined with the - fact that the signed prekeys never get removed/updated, this means that - there was no forward secrecy for PreKeySignalMessages. - Key generation for the Signal keys (identity key, prekeys and ephemeral keys) is - handled by the Signal library. The random key for the OMEMO payload is - generated by javax.crypto.KeyGenerator class, - instantiated for 128 bits AES and a 128 bit payload IV is generated by - java.security.SecureRandom. - The Conversations application does not keep prekeys in memory during a MAM - catch-up. Instead, the application uses the Signal library, which always - deletes the keys from the store after decryption of a - PreKeySignalMessage. - - HTTP file upload Instead of using the OMEMO encrypted Jingle File - Transfer as a default method for file transfer, the application gives - preference to HTTP upload [12]. That setup adds another - layer of indirection: the file is encrypted using AES in GCM mode, using a - random 128 bit key and a 64 bit IV, both generated by the - java.security.SecureRandom class. The file is - then uploaded and the sender gets an URL. The used key and IV are appended - to the URL as fragment identifier. The full URL is then considered to be the - payload of the OMEMO MessageElement. This is not necessarily wrong (a HTTP - client should not send the fragment identifier to the server in the HTTP - request), but it is not a clean solution and there is a significant chance - that some other client will get this wrong. In addition, the additional - layer of indirection suffers from the same problem when a malicious device - is present: it offers no authentication of the file content. To fix this, - both the OMEMO payload and the file would have to be authenticated inside - the Signal session. - - X509 certificates The code allows X509 certificates on identity keys, - although this is currently disabled by default. I have not looked in to much - detail, as this is outside the scope of the OMEMO specification, but there - appears to be nothing wrong with this approach. - - Purge The conversations application allows users to purge the key of - other devices, which says that it irreversibly marks the key as compromised. - This irreversibility is not guaranteed and is only enforced by the fact that - the application provides no user interface for reversing. Users have no - method for purging their own keys or otherwise marking them as - compromised. - - Group messages The Conversations application allows for group - conversations, although this is not specified by the ProtoXEP. From a - cryptographic perspective, these multi-user chats are no different from a - multi-device chat: to send a message to all users, the sending device will - have to set up a Signal session with each of the participating devices, - regardless of the user to which the device belongs. - - - 4   Conclusions/recommendations - The OMEMO standard provides a protocol for secure communication with multiple - devices. This protocol is only secure if both users apply good operational - security in securing their devices and in adding devices of the other - party. - When both users are careful, they can set up a secure multi-device session. - However, if one of the users makes a mistake and adds a malicious device, or - if just one device of the users gets compromised, the authentication of all - messages is compromised, which is not necessary. The (ciphertext of the) - payload should be authenticated in each SignalMessage, preferably as - AAD. - The current OMEMO specification provides no link between devices that belong to - the same user. Eve might trick Alice thinking that her key belongs to Bob. - Bob should be able to sign a certificate that tells Alice which devices - belong to him, she would not be tricked so easily by Eve. - Each devices should regularly send a message (a heartbeat) in order to forward - the root ratchet of the Signal sessions, so that future secrecy can be - ensured. The already existing KeyTransportElement can be used as an empty - message that achieves this functionality. - Inactive devices, devices that never come online anymore, should be removed from - a conversation by the owning user. Their presence in a conversation means - that the forward secrecy of the entire conversation is compromised, because - they hold on to an old key. In addition, I recommend that inactive devices - may be removed by the other user. The above described heartbeat would - provide users with a method for detecting if a device has become - inactive. - The lifetime of (signed) prekeys should be mentioned in the standard. Signed - prekeys should be changed regularly in order to achieve forward secrecy. - This should at least be done after every time the user receives a - PreKeySignalMessage that uses the latest signed prekey, but it can be done - more often (based on time) to ensure the forward secrecy of dropped - messages. The standard should allow for alternative ciphers. However, the - standard should limit itself to the ciphers used in the OMEMO encryption. - Signal also has no way for specifying ciphers, but it is not in the scope of - the OMEMO standard to specify that. - Prekey collisions can be greatly reduced if the server hands out each key only - once, instead of all keys to every user that asks. This would not affect - security, but it would make successful delivery of the first message of the - protocol more reliable. - The specification should update its terminology to reflect the recent name - changes by Open Whisper Systems. Specifically, the term “Axolotl” should be - replaced with “the Signal Protocol” and the message names - “PreKeyWhisperMessage” and “WhisperMessage” should be replaced with - “PreKeySignalMessage” and “SignalMessage”. - My final remark is about the reference implementation. Unless a change is made - in the way that servers provide the keys, the code should not accept - PreKeySignalMessages without a one-time prekey. As stated before, this has - already been fixed in commit cc209af. - - - 5   Acknowledgement - I would like to thank Daniel Gultsch for helping me out with some of the - questions I have had on the protocol and for his quick processing of my - feedback in the Conversations code. - - - 6   References - [1] Daniel J. Bernstein. Public Key Cryptography - PKC 2006: 9th International - Conference on Theory and Practice in Public-Key - Cryptography, New York, NY, USA, April 24- 26, 2006. - Proceedings, chapter Curve25519: New Diffie-Hellman Speed Records, pages 207–228. - Springer Berlin Heidelberg, - Berlin, Heidelberg - , 2006. https://cr.yp.to/papers.html#curve25519. [2] Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang. High-speed high-security signatures, Journal of Cryptographic Engineering, 2(2):77–89, 2012. https://ed25519.cr.yp.to/. [3] Daniel J. Bernstein, Tanja Lange. SafeCurves: choosing safe curves for elliptic-curve - cryptography. http://safecurves.cr.yp.to. Accessed: 2015-05-04.[4] Jean Paul Degabriele, Anja Lehmann, Kenneth G. Paterson, Nigel P. Smart, Mario Strefler. On the joint security of encryption and signature in - emv, Cryptology ePrint Archive, Report 2011/615, 2011. https://eprint.iacr.org/2011/615. [5] Danny Dolev, Andrew C. Yao. On the security of public key protocols, Information Theory, IEEE - Transactions on, 29(2):198–208, March 1983. [6] Tilman Frosch, Christian Mainka, Christoph Bader, Florian Bergsma, Jrg Schwenk, Thorsten Holz. How Secure is TextSecure?, Cryptology ePrint Archive, Report 2014/904, November 2014. http://eprint.iacr.org/2014/904. [7] Daniel Gultsch. Conversations. https://github.com/siacs/Conversations. Accessed: 2016-04-07.[8] Daniel Gultsch. Conversations is an open source XMPP/Jabber client for - Android 4.0+ smart phones. https://github.com/siacs/Conversations. Accessed: 2016-05-10.[9] Daniel Gultsch. Conversations: the very last word in instant - messaging. https://conversations.im/. Accessed: 2016-04-07.[10] Daniel Gultsch. OMEMO Multi-End Message and Object Encryption. https://conversations.im/omemo/. Accessed: 2016-04-07.[11] Daniel Gultsch. XEP-xxxx: OMEMO Encrypted Jingle File Transfer. ProtoXEP, XMPP Standards Foundation, September 2015. https://xmpp.org/extensions/inbox/omemo-filetransfer.html. [12] Daniel Gultsch. XEP-0363: HTTP File Upload. Standards Track, XMPP Standards Foundation, March 2016. https://xmpp.org/extensions/xep-0263.html. [13] Joe Hildebrand, Matthew Miller. XEP-0280: Message Carbons. Standards Track, XMPP Standards Foundation, February 2016. https://xmpp.org/extensions/xep-0280.html. [14] Hugo Krawczyk, Mihir Bellare, Ran Canetti. HMAC: Keyed-Hashing for Message Authentication. RFC 2104, RFC Editor, February 1997. https://www.rfc-editor.org/rfc/rfc2104.txt. [15] Hugo Krawczyk, Pasi Eronen. HMAC-based Extract-and-Expand Key Derivation Function - (HKDF). RFC 5869, RFC Editor, May 2010. https://www.rfc-editor.org/rfc/rfc5869.txt. [16] Moxie Marlinspike. Advanced cryptographic ratcheting. November 2013. https://whispersystems.org/ blog/advanced-ratcheting/. Accessed: 2016-05-10.[17] Moxie Marlinspike. Forward Secrecy for Asynchronous Messages. Augustus 2013. https://whispersystems.org/blog/asynchronous-security/. Accessed: 2016-05-10.[18] Moxie Marlinspike. Simplifying OTR deniability. July 2013. https://whispersystems.org/blog/ simplifying-otr-deniability/. Accessed: 2016-05-10.[19] Moxie Marlinspike. Private Group Messaging. May 2014. https://whispersystems.org/blog/private-groups/. Accessed: 2016-04-07.[20] Moxie Marlinspike. Signal on the outside, Signal on the inside. March 2016. https://whispersystems.org/blog/signal-inside-and-out/. Accessed: 2016-04-07.[21] Kevin Smith, Matthew Wild. XEP-0313: Message Archive Management. Standards Track, XMPP Standards Foundation, March 2016. https://xmpp.org/extensions/ - xep-0313.html. [22] Alfred Menezes, Berkant Ustaoglu. On reusing ephemeral keys in Diffie-Hellman key agreement - protocols, International Journal of Applied Cryptography, 2(2):154–158, - 2010. [23] NIST. Announcing the Advanced Encryption Standard (AES). Technical - report, NIST, November 2001. [24] Trevor Perrin. Double Ratchet Algorithm. https://github.com/trevp/doubleratchet/wiki. Accessed: 2016-04-07.[25] Lance Stout, Peter Saint-Andre. XEP-0234: Jingle File Transfer. Standards Track, XMPP Standards - Foundation, March 2016. https://xmpp.org/extensions/xep-0234.html. [26] Peter Saint-Andre. Extensible Messaging and Presence Protocol (XMPP): - Core. RFC 6120, - RFC Editor, March 2011. https://www.rfc-editor.org/rfc/rfc6120.txt. [27] Peter Saint-Andre. Extensible Messaging and Presence Protocol (XMPP): - Core. RFC 6122, - RFC Editor, March 2011. https://www.rfc-editor.org/rfc/rfc6122.txt. [28] Peter Saint-Andre. Extensible Messaging and Presence Protocol (XMPP): Instant - Messaging and Presence. RFC 6121, RFC Editor, March 2011. https://www.rfc-editor.org/ rfc/rfc6121.txt. [29] Andreas Straub. XEP-xxxx: OMEMO Encryption. ProtoXEP, XMPP Standards Foundation, October 2015. https://xmpp.org/extensions/inbox/omemo.html. [30] Open Whisper Systems. Signal Protocol library for Java/Android. https://github.com/ WhisperSystems/libsignal-protocol-java. Accessed: 2016-05-10.[31] Zooko Wilcox-O’Hearn. Attacks on Convergent Encryption. Technical report, Tahoe-LAFS, March 2008. https://tahoe-lafs.org/hacktahoelafs/drew perttula.html. Accessed: 2016-05-10. - - - - Appendix 1   Minor corrections - During my review of the OMEMO documentation, I noted some minor errors in the - specification, most of which are typographical errors. This appendix - contains a list of corrections. None of these errors affect the security of - the protocol in any way. - In the OMEMO XEP: - Section 4.5: both own devices (should be: both owned devices)Section 6: axoltol (should have been: axolotl; should be: “the Signal - Protocol”) Appendix G: duplicate references Inconsistent usage of “.” (period) at the end of list items - In the OMEMO file transfer XEP: - Section 3: Remeo and Juliet (should be: Romeo and Juliet) Section 3: file tranfer (should be: file transfer) Section 3, Example 1: </file> has wrong - indentation Section 5: intilization (should be: initialization) Section 5: the hash of encrypted file (should be: the hash of the - encrypted file)Section 5: rangend tranfer (should be: ranged transfer) Section 7: might not the Device ID (should be (?): might not have)Section 8: Last list item is missing a “.” (period) The document is missing a reference to the OMEMO XEP - - \ No newline at end of file diff --git a/xml/target/document.pdf b/xml/target/document.pdf deleted file mode 100644 index 38152b3d22031df430b43ee5a19bdcf1510d73b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407445 zcmb@tWprFivNb3!fyHbwGc%W%nVHE#ifmT;XG_RT&qM{wpx|I<;%sdCpCEq;`4}N$=wwPrDZF$(TR=$2AV!7B@nVlMgzw0Q?3Tu_CbHxw@7mX0O+R+5O8adE&JM9 zA&dtxuv9Rwr6}uE)CbJ=76ih_XX;sjsBVz=?1W}bVkQuUl&FKNhh-gX%wbMG^$fB` z`QelXR@n(gsR?4u0A{s#$17TGue(%JM6PS*AYSZI$B7-&i`_MfU*EV;I-+6?urUvy zADWpv$c+P?Btw7$cDp~Yz2w+IDC5@X_Z^i@tm%y7D47H3ez}8eNet^>%rIz-O`?t> z_D_sy(W8(ShhdZJD2IHDM~&Q`oRmF?>>p!9;P^(e!?cu&t%6&|Ff$h3a>Db&Ui9YpsSRH5}X zbliXeB;sd>GlKV5{1z`grM?|nbDHwCH63ZtY%3~;!}F(X1Yco&uSunj_47SLx9fP$ zI434yJq}wlk0O!2p@|*)$4~p&p$`OrH)nhdSHVTRfzV1|=%Wq#%<3 zH$s3OypxxdtCq{2U#199$SmQXQ=Oyy0(*-rD`u59K0R>=;zY}hof%0lrk;~Ng?Ctc zhy9&#x&&Ly}j7S00zFgG^DvjFg?q zpOnak=#(Opc%8VNFn(Cf1kr(4Q)WZRmOPtilcG~GhgyRgg7N}Qjb@J0iCRa|ttd>L zRpmxSry`|VBiBvjtHfm~ir%n9cx9iWR-sD1lgd%ZOdYf8vKW^Nm#}-SL*y0Yo;Vt9 zf7p)jwqgY3Go?ADu}V;xys2{Yob#O6Z_VGF@WL!bkW)&Qg>`lofpt{q5fPbEby8VU z-$uToQ{m;}OoJaD-7r5HJ~=<}sM4v*t9JY*pJ$(^DXX5}FL5uqoR^wgnHQVeC}o-R zo|~O(EOjm2oCR8@SO!_`emR-uEWdO@u!$bUJj?xo7&%vPZl#Z4_rT7 ze?Iuu{JYsf=UBJU_EV!sW4o=AtFCLbXW%n9qBmlec>G{cajALPf#9UM-hv)+HA3~G zwfUXY9hF_*>SSx5=Tztp>Ynnc&WDWUGOHAZ=G+!==q{%98vX$8z%@8v%5Um4_r52pH!0YgAQ}b{ zt{TP{%Meu&X}Z&|#b7uf39_2Fop_Y^TqIRQGS4F)Js&kMJzsy&Z7^X_!no2%eLyc_ zHVn1TdC>S*{;%|%V$3JnwPt(XZvI@(?I+@2qVAFOv}7H{fKmQw7MN*9I- zTvqW@@j_vT9GvWG_8k=;c{?9?a%{?16$#`bm}lmCmTTtF+OgV*+Je!HiKJR>rQLu zXxB6tI29g@JgH8V6_$IbA6L_B@pTN?jr-RJ)mvKmQr6MaGI%x9o9W8Os!gZm{kZix z){aDv5bft+Z?Y~~4O^jH;%u@!D=L#Ekai=(l&+Mfk=nG|x9xaH99K`&_g;ysGp!lR zwVqTPQ`=rRUR`U%qg1D#WFT0@|Jm*cFcu$Q>^Lx~ylV*=fIzHj=&>20rIsOR^Z=sIun2VEOLeSQJzZ=DUU`NSEr)97P-{?Bf8je~{7zdT3J z?+Ir4)Ess8+?HW_!t+qG<@U2P_!FIfA06$^8n;V(oM(jdIaV^X*P zn~;zHHy`(fL3bdJ@!Agx0n_&zpSDAyN5lT036X1(Rq;V`Zwdwhy$81!$%XjT;(h^| zcb(_4-DTHKw-;tcbRM=hotu~0>U8~*&ZYO6Gt+aYrJGlE>}oT;JoA=ff zS5%hf^B?Cl0x3R+k61UCXT?$S**@U+LD$cJ=;q&a@o(b!hg|+eK-sw1|3OAs|L)Uf zkQ5dcGITUGA^gKnm303BVEY^J!IwX1sfxS3DItTbsgt3Jp_AdC9%W}Er@uNiWM%$^ z$g=+t@-K{)SHSIqV_TUz5gM7ATiWswpSN}r6Iz<^5v#MwGRoQun_5^(csQ6Ud&sF6 zdsrEBnGg%`!@}~qal6^r+kEIFbhELxb>w#ABR2eC(WcxV_kX$>i1}f89Zbx)l|;n; zhJ3X6h%KC)?70~jTwPu1U0LYu9LyP*xVX3&7?~NEndv?dbdK(}PKIuDwvHtKkRW2} zXzXBV@AQZL|Ccfo<9`aWcXqJ;ON@yzgQ>Ntjj64ZBLfpX69X~fAMJ)lcFsw(K*{%+1k0<@-qBu_g^40I|my>Cw@bFduvN$!#`RX>`l!60{;Ez zFWARAoAUq3Dd-qE>6lqmm{_@4n7IE+EVvmN|APMof#qfRW5~Zu;_rp|m!7|;^`YjU z^RjiM|7$(zjqPmy=>M1#%fHX*;{o?a8ufQ>#Q%{^@%{n-YacA{UmbtvOZ@+PM)mio ze}Mi!*!-~z{&$<*4DCN`X8d=XKSpr>m7AIV$;|%K68;b5$EN$oP&)?|J3H(D+sXV- z+<%Syhj;wHQTuGiL~`F(V46&e%t&T7dot9Hw~G8ASiVK~ zN}b@mGfGYZl?KoIl6N^plPncw{AER;jI?gdml|<&9#!`B^aAk*<_1*W>sz6H(5DXH zG=6jE-J3o87CavxC7+RZyKK+&1mx}&-u1MjJKonf>5g`jojb1mNlB^G>s#tVF4TjU z6aE*bbst^M;EGtu$4Sy5WoH6ycVvCh`>N>j8s6l|*ue?jP3Cds#7uaH_!*i&9kc<2Hv$sbk&}y2;T9OVv(>2-M9n`A`qlPbi?0 zPSiiV_DfSj+ZJessjtJ5&D=5f$A6B#DDP>ekl}xi#P3g9nr7vb^YT3#K)pVA9HLJX z7F2MOt0*>2yV39+HWr<@#24;SEe}psEBA|2o+4I|2tFK+XZ3kL26j8WGOoYza~cNf zK~0)YL7$#7y9u$VVw0ZvVDknDst#95z}2^aB(3-f{tBHJfie_?9gnJLjewI+JaZm& zi1zzz3^5%9l`9C1LN4CIQ-G|btiJY&0}KoxLhHp33`CL)o=b?Km|0&ETvs#!ZW;tn z33c0d)dcZwLh`Vqh~73$=EgEEA=$4)$00r&d8KYIeP%-usw3gvXmlv|42-dZ8{f8m zm#Y@sHAw2FCW;wwEqiB!L#!UbmOc0d)priNM6g3Ru&e#}7fTxRPq$KnkSUBpaCGGi@qduAxgAP?5 zGY@@U388zXf?FjB^CEYVrH>BY1snPomEgyia!v{qn7IXZ|GS^WHIiuDsH&aRe`C*Uj*=i8NqnjRB}1H1l7F!s3X<+!GouXZXJV5oXs(a;3x-6RV5Mf-i*p&I#n4p z!*brtmgUzuHvEWc-CM=T(GUYGB=k(=O~LR30hkg}S=OI@+g& z;rRS;i$q)rvrWrYnrlPiDeO#L%g@Lsg7&233zs#Xfu6!^d}70cE3jibg9=~}B$VUp zi(OPVTCW>Q`_|)am#Sn{9ABPRDGSEap1qjI(wk>yuM6Uk8-f%C-fsKdVu&9SjPfoA zAQ0|w4@LdZhOt<@1%Fx!FmTyM%%$1cf&WhTOPF*c?y$&YiIg#9-1&L>Q~qS63;X`Y zL%@e!xhO2vMcbE00ed4T%~h+~=S=k;2md5rAfgaU)IHvy9Ve0uSc5ISj_kP5V$w{ETKozAIuSf=N9r>kKGaHi|owpmH4 zT-uBd(CX_M2;Z(Ul3utw**cixS|h^6B}5zT)P*2csvRa4o)0**_*4iRG}za@i&tGn zE%-J42~>g%M4a}Lu|}(Ly1s*65m6NU{L+gn2N9-8lzu>_eN9}T`Mx5Ey$w_1rGlN5 zYmB0Hlu!|Fm6zwu6-}qBj^3nc5N>wzGBm!!`;31n$2m z_1|=!>3|vD2T9zw66P|FOXQf%_+&m$dnNS=22}J_^%p zOzeNeNSIohTR0K2{8vlJ(#cW5)Ir$J#@^2MkJX%it&*L!orCfR+y5{}#MH&o*i_uX z(EVR>0k@1(-P3?y?9eyQopmei>q}1{5GWEuhCX#aNJBu$^(b6d_0$QGpdrBgfq!2N z_>^|4p*F%HqH*-#+fZOK*xOnF!|^HVJ(U2Z;BkkIPfeZAt$Nx9tvQ&#ND+hJtnHHk zJ&@$~Pe4C+LLCE;Z2T^|8trAA?HTYo$R5ZM&RK9na9P}Ae|!JW2zS6GAe=n~$9=L* zK#f0?jt9s?*@Hc1Q_|TiIObFtxE)k`dJ5{19G|_Qjl;&sr>Je7xU+e1%q8N*$`?rG zOo}~QK6`(7hu4s}BQV5@5^xXm?!k)0n`zH?H;3*pS_@B6Yz3u1VXV5tj*M@+rl!7qM+5&s}TOb9RHtvT?9@@Ma+{^lfC1v$p2K#_LY z_2i1}e@cG1e;nrTI(XxFHHTj!10o*5TnVrVAe&TmqV^zIR=o$wne72@t@tqxF~-{m z!|El$iwpsic?XgvPOc4E2XlhPQ8k1#c%+^IIB6Zd8MX60{YUM30+JhC;OK*;-_?=ZK|TBy%MX)D7ZzDBx24ZhmQ^x zlm8ME%ScXz2=o~!FWORnkyu6!V8!C{;ijdWR zigC7uz6!KTeswxl0pD+8XA;*GAsk?Ds@=&Qmy+YCRvQg^HOP$j16ah)LNizkK|qR% zeiY3pX!kba{0Ry3dYdMgemcl<23#aF17*DHi~4ztEs=1B)8VJ@!2X|p6sy5nRK@Wq@f=fh$XoStfHANT( z&_r&u`P7Cmdwa!LDcuE`3D`lZ>P&eN&gTVuo}0g@7+PhAunpw_-v^4~e5d0PV?!ev ziMQtl+xN@&n-38XbV}N~Pi8Sg86lP&uuiw2?1`l~WP=#@R}yCBJY`2D3=bur{G8gc zKwRdbh!p4E^nD)~t%$e_gXs=}Q*n5qhw7B#|G4XA^7#zQ50{cHp;AunSUI$!^4InG zL_{?@asYsDnvNiDj|DF4H#-0qvN8!K!s{B(Sctvm@-jXUMS^U;i|Mx91##%=rMCR@ z5GX*f9Mbno6?dsKA@1_UjiQ+8YuDX1%6j=jmTa^&ApkdEuiR1jiIy;9dF+M4iWutx zch74@-jGqbVHgQv*AF~rp4u%E@btmnlVaduOy?CV8W>`Oy*^Evsq@5u^TSszxLbIu zA<4>dJ0@7DP_)LGAAQjyhT95#%fOP?ZV#FiDtEO{H*7EzHjuG1daFhM!TH&RyOPDWAf`wKmba_&$tQ$HUM5FOjTh;}cm+~s& z+CaNSTu8cVs~uS!HTSRNuuQ!5O~<*aT$ibQP|-CWI0(3L`^~(hXes9^(r$$;q?` z;9Ki-Yg*HGG&f|XS9x=+0@nL=4vU>`arHEuE|d^YFlK^jVi_*|F!6LaQ9arKcQi4* z={j_%4`m}9FV51FkQ>z3u-`LhocvpNaC^+tRdly%`1LPV^6k61A5Ilg4A6NwD0OO} zs#a0SHNXzmVNhxP?)QUWPPRKZ48a_6r_vbxndA;-Qo1n2S;=_~B3M47lGpSRdBY%L z?Id&r0Z!~?^m`!8IE(4FL1}R3k^*_{<&=HxV*pMvH3~)E)OZ<1^X&i(969g<%JyhR zf7;CN3j}|@`Dm2}pLCT8Dg{QtKhtXvRcQ4EKE30mL2{0RUz67)Lsl3I((~Fc4W?La zKrG~K(UDT~GD3yo6E5@cV0Z*wb|?{f$sgJ* z@``S}O92Bq1_@d2oSvPHf+S!92b~MxB;-?*Z=Zy6&|d^!pbLWbJ*jwW79p5Bw7}8Q zJV8h%;?0UX7Qw;Er^dXcW2jzrdd<1@3HQqr0Z?B&0|C3_jFJpW9{M}t(A#0(I+nq4 zWG_a^@46hRN(%XB6};*JedLT14AZH)M&cHk_hwe`9lv>H@b?f_d1Jc1KjLMYvO0v2 z!Xtt#83*W-KM3Qa$Le;Qr^SQFdQ$S%bb~)&`ltZELS|da5%cb)GTi&kL6k`{ynV}& z!N;HKM?f`^k&%)`WS#u9?XQa;W3M{cy>vh~aS75*k4*O6A^iLr=uOIdk%*tOM3%R! zNKbU_CpE8z|A2dHhJcvB*#&<4mGbT$V(f)B7y!)J@xN-}b2P;VI_KkKRTvSDku9Wm z^?~2df)rwp;o@`lfzPu!6i{&R`WZ9>(g-f1X6J=GA-Lek)GqzBSai0$5KSm7^ccUo zZLJu9AuD^LWf-{`z*g~r;6d`Q79I#mVc<8twO6lsfcPBbQCMiDSl5)ex^JPZ!=lap zkY9*A^uOqWSV;35hsc(`^}q0gTJZ3*0_y`SU90YZK$-cLbi)lNA(NA0bAog^&d>`! zMJ#@WX>j_@PdHecFc;Sm|G|Z$;ug3G@!+rGL$@a4Oqr`Hcf(;&35daFW|w4gK-`ty z_Ls#k!9EhA`DsF??gyGe+E3QJe!5?ULUA#NCwAb-*PJ&QqW z>|TEbAj1U#Hi9p@Q1%hq^Vv7BegfTq6USANhzNCEiue~Ry`O|JmMR5Oy#tgh#=pK( z2LYt^A6Ibi;RjM6T^5b@{YzKY8p;EO`L=$4hhJ|94=179+N(xvviS~ejIpG@>x1Za zGJ+*{+x2$fe{kNoN~sxo0Tf-Os^%EM3-cL-+`P~mpZTxH!o7 zQ-}@SNiwbk_~f&_t?bkGCMN4uP%#pOsN$D&dS_q9kCf!RY=e@(Sv(&xzqXpN_hlKL zf_jU;P9p>}xphu~7rmc?-T?ff0dIMOnuHs6UYs>Q{W|ht?@sKTwA_L5iySh%F~E)E z``2;<|0oErIvlZqf{|k!D2$;=Vy63>B2lZc-?;JJ(%5YI?VPmm5lg*|?P%4!)Y4}YH{dDAG zRLP<;yDib$(gy%MNM#f=XRf*q(7V%Nw&GWfF8BaS7H)n5l4>5mz1pGhevy_@DV>1| zF;(+gU5NLR83KFQle76ZXoUt-$n?ShF`fA_KIhIEzpaUI5weRn8IaQ{1+?jEU^9RJ!-a{?=O7^g z!DlyzB@DQ7Kz-aJD5?ghNGS3mA9EdIgI~aR59S>~l6qpwA&)^Thc1R^UIkYS&x0}U zK_{+(&UtQ<5+hbbyI%x(37e^}A>{E7HQSSBRHaV3O%03FUJr;B@gE?@S%twa{rY}Z zJYHH~*fJz7S!4bVJNT@0sZ*2%kYctPGABhfliH93*n)yCv-iW%s*L*L2Khas4?IWt zbYO#p4U)zb4USJn#5gO>1Phv+GV2c4CUN5f8?19VsA-HOg$>xb^^2(uYA=D+5eGb{ z3GIIT(neI@hzKymb3T{W5Frtyma8k)rk6c~)P^KL8n>Trip3yj?kG!V-JauKnX1I6!IGiYN#UVV)hy(BA6Q*0wM3XHKE{m4K_2B z8s^I1Xl{%S<&@IPKxzQ6&l0_)D==1DRCA>2x(TF0u38M8Jjjc3B*Ft2fl2r@S2jo3 zGbEljR#GVR0)kwkUJQ#W#E)VsMmM(&og!2(#1_VQ6-&wTB^Fkm@f0*mFx-oDBub08 z2i4jWSYQutyo_@I54u>QRsl6_gf+UsVGBJ#r$D0hNqe0Ku+h^3`9&nsu*~zIOIv|> zzHFXQ3toBsc^|&J1zZJXv1YFQ>juae576xLlk~cAzNYm@yj4St5~ub6R)ZF68Ejs6 zsnlda_J9}ln17loR`>~gp{%*-Y6ItH{equD%ZgbhT#q%%mor#k`VpNo?djlhbYL;U z2K}w-0SQMv;M5w2pxy)SaD61(^;6*F1=JW1X9A2ZN#5cnB0N?f$`F&>x}ui817v>d zKzJf*I8160@?L-|A2rx0*7&U)$~ANi3k>)$TK<8`Exf^T;49=T2j=&`8?J$A;d4H* zU%(=cy(|Z10roXrwykdwq3Cjy-waOnjG!#*Y9M z@7e~bx92|y+2i+^q5P@!Ys;IajQoYyN1P=WFR>?Cj{XIg5)=WLn>*=#M3*tL4Y6y2 z4+0d0JivZHeC!~MWn+9`zeZptFoyf$r9AcnoJGqoLq3zop7}!m+A#LNj#Th(Lbm$> zblVDX%BlWy4gA57sz2S@ILCyzETeDoF(3G0g??Ywz0c>RCMa<~I!3{^{Q>tnnw=?E zc^&PgNty*H?ZQ_5*gLBIGWq5K9ino5t!1eL=T7HL6u7O4)H|koW525LmTUCS{4PL3 zyjIR#fNmh&<_kFhm&n-x94jT@nSU}5A+H|^=(VqT^@dh5hMt`t4KETjB18|k{{@in zuUoy#RR@2rAi#%upc^65WYB*-3Df66`0qNBALtu+Vr+)(zZVeyDvbT9AhL3>aQ>r$ z$n=lX@&7vfmixQH#{3^EY<~{S|0>-5Z$IJu|GmQY@8|Y^RLB}SS`q$LANa0< zX6JX@MwA0U(+QPojs0&ER0=ROyp5f>U^MHk-H$^q_v2o$88{4$BSHgoi7pT+JSx=^ zg@{+~WJ zoLpSXr!L;rAHW=j*4C@7?!ajEkH%E&>gwuxQE;NXr$jz7cxe8b1emditw6;7A|< zk+BloVAR5D>cb4A$|17geaw_K&>Gn~yhCS51uz&;yUUV~wS(w_Le4gB_+!yf2<@Ft z^;eJF@QqsY$(DC9kS?&W)!2cg_9~E{RQG7ObOmfTbSdN@jO^y-=D|sAFR+B^*Voqz zT7I=y#Xu@^i9pWV@p!VKlO&HtDF1?W{@Y?*L>s5t|oAPF9gQq^nJXHy{Rp) z5ryoGjK0d7k2!s@Q6e<;=P=Z5^L*B_=7(RouHX(A&9Z-Sf5bbIyB7lqwF{k2(73vy z@uP-_pDR3oijAqca`5noXooQyW_k8~x#II>v}1gK8@~<{^YVHu@T>)~=$4pD(b@HT zV{#?S{^Zs_ZlwT05_3zABR9b7$rL)~mYDY9a&3I^q|b0(JciIW*CjfiSJ~&E@>;m3 z4uZaXe(!W2-Ue@UQyPH^K`Df3vP@wbF1FyZW288`jgx^FgHhn6c2C1uT-KP_gizaA z_X6AX*_i@bA;{G2ecyfLA)8JBeme7ed_dn~*cVl1N=d40XAhNos74tvZAtvV69&3Y zFh+@67_fUuwMemU`-sRm=nz@Ka7^y8Sx7iYKCUuD#S0{$r zkLU=S7B3FAAb~c|03z{Fh%T_K2TfIWC*?D+U{|h?2^ztvWl0WXA7_~P`cs*%pq>_&FJ_ZGY40`M#$Zc zRBG}vc<&w@)T4LSCS!2MCEH*~1nem-cnnEExYi|N${=|S$qn%J+${c1cL~&2`Pu2` zL``WzYUpUrw5IBG&%)+(BcD!Jp=WX^svey_()M9b60V-U1ElV1T!ENeYoY{Bn4_bk z^1XrVQTYX-1+fs&_bO1R9O%tgT*z5@uIP%5$^UJiat)9!d zsRTuMk)fX;IZJij`*EMit$Oz4TRPT*XID3U6<>JPpMk`9EEL!&3xE~!LRCUIHj-n!7*i_)dk zvoh7wCzy}?T#d+1h!dl16MBru#vplO@YH~1vsHfCt1L%`blGAiiy9l<>g?A zpb$(SXY27+=`pce7@3$rXf%C3p+(22lK=gdrWFe z5h+98QCk`~t(b49QX}zT%8G-lxzi^G3ubj<*eovTk`#MVUB3w3&A_|8|922w78F9rFfJy0W060NX565_4DWxrsKZ3 ziEu z?1;atMYT}apGXyWN`&}Q(T%CNXggD`r&``c6|vbeDo21cX^b#Ge`qGT3`L3SyGZF}`+O zJby=EsOOuE)ScEJ2~qFd>D+uopKq7jv*}N2Gs(BTLpKrOR)?!=lWRwyljzQ_8<3VX zI}#g?li6y{Narsb@~+^KE54qvg|*e1h%MJua)0r!T3W0Ag<^SeMc;ya#jO;MJ7qpO zISEjJP#zT_(9`Xg?;Rt2HF!cX6D8y!`GQR}sjEFDe0;(N!Pji?i$p!kW3|ef`$Lq6 zrC`>vxP1MKydWI&P`X_bfiQar@sf;8cMGu3d+;a%nEa)2l(5M%fko!0Dl+&XPHLa7 z%B5}gY45xh+WlF?OEuO@OQ}M71NveoDWSkKEcR)BWqbAh(_0ejL(x!{vl>@Jhb~mE zX~e4qF@X8#(m9v&#I>peG?iP)%O+HNmBYvgM|vM}dER9oQVY&xeHf;k{yW~6MKzik zFz@GpnIZ~>VE7I^*jY{$rjWUI^%hjasDg#_OzQ{q6*IPP{bugUx=K4VS_O(b& z%rQqbIb9Q1bCBEj2#mvxpHYESt(8j%2@mzP)r9EM&3GM)8-VKoURd#cRdVRi`7;qL z5_8?D=`I|knPNm(ou+(gZjh@LQ`M6Vf2~%G)oeKRKG6Q3|Trj8P~F!UJh=6VXBfF zmX!F-T~MFGOoF$K7Us_bI3wr4J6YO`3iK2Qx+$^Y#+R!I)W_MDP?N?)ubP)~7XI`S zNG+RR=Rp`I${e+n>(DJ$%l=~DW-{oN8yun2LW)08wE*qX)6eN`HxVo)Iq{;&W2Gxl zFyDW+ludl56~OyuE8?R4H9=7_#c3E_sje$LSE{YE2&_|Gu#%6q#lB}L%62o4IWm!L ze<-n^;8EPLKtYO{H_e+AKg^L8i}`Y`YD=8Cu8T>^qlCe1^M_^kVHif$N8q}W?@E;( zMvrc}!n@>ac>tlK%+(zsl#|XnlTAs-?v>ND)QIi0X*Tkh$zR2djtIb7qT+G9fsftb zSBJwTvbRotv%08#Q&w|Li&)87>N^v<1CMl*6Nc>!!(gcY>yqHlAxsr-r$3pd0_A22>TJ8lybb{MwWfa*V4YIFMbXHVH4WpaaI9};<>||j90IjFAVi-xaUzlT7G!46C zED3Qmhuhi47=7$L`TJ;K`=%1#`a)=K2n_&O~?ai#9naYUti#PwKFuHc!p* zR%o)*R@GiQ$*e?z)u+m*-tumAG{^XnKob-ckpptY(Tj;rN6PBEhQF@t(biI__nfN> zNRYgHyejvV(#6GEa6F8E)!w%AkZ-z*=wv9WIV<<+-Kxrn>3YNkr4gq7^$2%ez|4ysRaZO(Yssw~?xN_uD*3 zgyEv5DEn~%7wMUwE4~h1YHg*0$pQ`uE?pN>Ks3py};HF@n0aY z8WqH!DUbY)=E8|9EdU~P*Qsl>;Dy`Ne{4ReA8lpI?G+s6w+4sEVdtV`!rR4uOD8D$ zZIx=UbzQV?vm7SfZC%jZ1HdRRMm8Ozre9qUt6xrcGrxc)5j~J1sO3Pq#DGAhRX{p+ zcS}L6mU)_fc_r?cZW=Yi_6z`_s{x1q8d&RR7}7xqR%d|ziC56VRS!L^*V5|+=<4$| zJ#^d#+oC%Hi@6V)-CQ!D*C*Y2$FJZZpF!y~c!ar;opSZXSs)9_Kys+20+@21Ie(YM zqW#WOfcS&J3ja2S+|tMb^6TRs@wr$VBPl)}71s*{sG9>R%zUxIN@Y(2u7GUO-6aw| zfS;c;3#I^P(Y;j1DZi{D*a?{fI~A~v{l*I677t1Z`1sG`kilL3k}TXE6}SR)odFL7 zA|-DATC3~#B7t>nEWcYYx+OFRkU=*{8c~o05W1z$92^|NBcMf4f3*nn|GG5+r&}Wb z=zYyQgNN&q^2e}FBGMfmk_83gPX*AiWZ@d5Li_RNK;oF!pt5{bIo8?ebbq_ti~k5R zEsGF0kXj&z3-@eW=x{nv;V}>|_a7CP>#Nqzw^ziFx7QCU)!JCyx(M$Css(cQ{3^i} z+0t12b!a6XHVoq7#pkxyjzhqunnDB10+cg~48ZwJ+cTIff1^VI5<;Gsm}qJIGzEn7GXvQK zooF)TZ)=H=2d#s6n97!btRs#oQmMd)=S6UR*0Jx50^SE?6MhI@z}F0_Q3@Ei`-(1c zgB<_5=m?RfqwdoxI{JW?G9boqv>UluMhSQ?cH?E|M?h&%&6=EB9! zP5_yoEk<1zf?I&!q({7p^;$#BdbAASCxi4XXd0S@EY)&cmsVFK3QnhfQ5Pyiz{&k{ zVil&dU5j2!e-;W@8f}7p_DQE6vy{G-!=SPk~# z_6X}Nn*0xe{bKb)c{y|KSZRsLe7bba)EpUwOc+%a!15@*;1LijG}cB-zU~GaK8dOF;+$h z(I<~XCwc;W8{om$KFLVj4~5~v2+<##wOXIe5EwqL7m~lta4l=#1&?^aSVw5Lol?w! z%)x;A6&W(wB++XpK!P+5{cw8~lvn$uheqWF(N|?F9n*(T9_~gWeH}jIWa7tavEJ~~ z-Lccr7W%`z7%ssRu^CCuhY;eK%%}u9T2vU5M@xIT_t(>X@n~ksC% zl;fRepMZv>YsgZ}w2i)mI2@bS;oF13JgpSDP}jkMiAaZ#fP78*Y0q=zE)o z{@z-ulUwTH;&HaqvpjtNW3{^$BaM5%N^FAo<++30({;VyCerti87%{sb(9Z5#v@-1 zcyTnGN&D(7@4^W)aOJH8`_3+LuIdQM;+l;ZqdF>#DU`_}Lpvjrm+>yAz!WkK7!9kL z@0gJRaKjJTg zekJY<&;ntPEakH>Yj-BAvC_!aXE2}j?eOV~sPU?FQ@gsodYjgS*-S$zysOT6g+}*H zKt(019!)v00B9#;MDcln!PRb_pZ1}pdOyJud5-#kHnbDNp7g$6U-2l0_8Vlg%^#Gk zrrF7o(3RMZJGsVT&fYUy#4@*9d^qLZ@d?=x! zYmVcMMX?wvoxfUmh9h}bB!8T0!Ho@Y3Bv(-%KAK2sDAC0&Ms2~1lp@b1iNNWFAf*g zHeswitNrYZJg?9zPo^85ucfp|2Car3b}g&`3c+;^{HRqjVUJc4s!I^2Nh9L_ z^o7x1wFa^H`vr+)!zrQMM_955a%43eG;)zh@)uyx;G`)Hw04n*vM@T%EQY+%{2Xuf zm0>O*|EMBRD@Jcy)xuxpWA}dE&N!a?k)m5R-oDHAWL5z=4yckX%?5@jO~nWY~E5h&*y@`(3UkNf?I@yIXMx@1?=U zB{d|==l)Y*HCST2LnL@MB%yfs>$XLWZH33kfRynkV!e`W*)M{Nh?_f*bq2PS6<$-; zAmDW%v{3N7CEuO12~*aO;{9tUlOMcZEw;Hi-6_lp1*96e3buY4y>C@PY!29I0O8EI zvTmFPPTpKCKs7#jcs;=UPEYJP=}qw`Q1f8D7S^@+oOeLZDwuM6sk_qF70#D}0_Lvm zOn32JJ?r-C=}^tuYeAeD1%m-&3q{581{nIZws-P(+WB(fkE;HpZmv`_rktOG$q+S0 zYfHOqwJ?%*Rs0_O_y5D)TSnEfY;B`BBoN$#ECL}A+!yX1JOp=wd$8aZ+(HPh!QI`1 zyK8U>4#6F6uO$1N_Z#myUA7r)jP9l=GEyGW4Vea=bUJLxrP6R zb;d6DUA@}w@|csg&hCdiU{E~??@vcXpYTaceA;52IbW`eyZaI>oiIxpAcqT;+I%G~ z9!&ehC33Ug7VGMCwQNy}k;6tJvZ=joIytJAl03Dj86lVEliu(~g;H?W@K;@7Y$(j_ zhF6B~XW3!-Yb&qW4a={F;QWjbXG0Y1$k#vTxm9mF<$uHl`^KPz(4{7;H%5tOe)Ok; z${e?i@3Aw{A@LAUNUt;6TFay!()7Bo5iv<}zR9y<6bUmExt2TVn{cOQT6S>7 zR5N1Ov;2eu)NBo z;d+hOQr^1ADrmtMQIm%j$|YzZf}EYrGXev3ZB(|HfIH)Tz#TEu9rFEHk4|DrpoGu5ucD6KK3UWIYZK>Ed9)m)R$5gu`co!62YyW^;WV zP8~FY|A-h9W!R&ohJ`rNN4$ig)C0=mF{V$Hd)mI#Ma(R?7Cxa3a}#FSz(%Z8_*UDx zR>i)=9|OFraA5{Df@;nOLmfD~6)5u2p(F_2FjnRw0cr#(xo$yS5M4psFn^|r64wjY zYo%jwv@P!?0UC(mPYe;7JJ|k{1;-Fx+h-PgP|sZ7i>Q)5=&GZ>K`8KBHkd2Fbd+PDLk|4 z5KP{h=nOtC<=@B~E#P9$VQeK_kfQ-i>!&cNlEL&E+`xBlzQd??Ay$<*sCTJ(=cy=^Z_q>gH#)*hLx{P~< z{$cdwt5=;!fc!GLs*@9WUY7Xl7BDWmc%qeD#NocFjyoeJLk5^&npd8UliW^rME^Q*t-nr?a;gt?xPBj(+(<5RL zWZ46$((Yr$2-)pWK9s$RG=*VW=kWS=VI33`tnn*gMg~Q|%D#^CxH649kerK~TUzqW zs}NPUiB@+285u}Sobky|5G zW#wv$k(weHQjrc9o3m9Q)029YLUg`?0#`OOCI=%#ULi}FY?=m+(@3*lVHyp#W zLl1!KN7~}{@O#%=I1Nt{^^|4+*jhWbzQ%6L*CUwn(K}BF!t?4cbdW&J`#Sa2{}q zHcWydbkiIQ+jryJM=&j4X{1jNbxJ&U77%@|(T%(AMF~hi^Q1 zTmz#@jNp{yK;Y7g?X}Nyx7I%%Ks^q7pvAHYG$`;3bY0*Vc7mZ4kpsx9)zkE8*{qebb zH_DS6-xG0?yX!X21)6!E4E1GjHWM4v?$VWTAft@6wE!;hRWP2Rw? zOtK4a^zF8<+lO|oQ|fJ0cdf-qTz}$hB@S~&x{-A3(}Ls=QY0th*Eye-k=3Ez_*Ly2 zokAU4+)TA3gjQg|O9|WGV@0e>!d!ax>X*FTTJ&*_!JI|e5}_<{3hTM@4rek}BAtcV z4m3JHjbW9b|3Dn8OHkMuUG2ynrH59$E^YB52ie&N6J5++)4G66b*Txpc zcZNSEzdUjeQvKdzY`ntZx)cN5ZeaONuwjzy9LCe_%5NQn4>B_&lOW8L*4>|YbJ`P* zcK1=uzdzo^o)n6ke^!C_K0Zi2vPrPZR$$mtaRk0xYqdO| zQ|?`G*`Nx!HxmS7BgC2uxKEWZME2F?4o~jRu3zvEodDgUpTomJPG;qOh!U(X_V%bc zV}A)QjrAesbbNGv4hxq z$CHei+dNjmBtHG#^ODs(Jp)y~tORvDDOQo|we4}-C6%Xp2=+(ViJl2>ZcF8w&~qNv zk;fJ2!1J8Mj}PG^MlLnBT6$dc5M79Xr8TV7`L{yP3Uprzn~pEi->*8WlP$t@Y53!f zz;WuN>X#CK)7ddr#K!dBAmWvB`bm6bhz{ zhv(b?_6yx43@=%&EO`2IDfntii)036Zi#*-pLRSe(gHSpY8oAGTR2$3!=T;!bJx;0gM z&-KZx_hC-bS+pR7A@SkM0^wT(ab#5OlresW7V;GnE;V$GX|AY|L)cjl#5y6DqnRzI#8(|1ccj`Nxc}lCAx|+(PJb=0R z$r*Y1J_Y*imvibL;l6pVvv|}@Z0CUe+3QeHpZ%HXJg%fj{;+9#DnEn zf{l+n@G+b2w>#H@9nd4pxPwkfgQGMeYn{Ml(^(T83ZG8>kDI!NmUVclPnW1&`OZw< z6)6tM0MV>$6LzfxAiK*vTe1q{4mz+*yKJQ~p;ps3GlZlG43Y1r339eQIqSAohR&7` z-(;8y6^)QH!GxVhUmY2I7$PJ_WmVohB~$AwaV(C}f9X5>#DHH!T?Zvb^uq>7mlNYrCca4Uw;z?;EK)N-n$K^bw`=lzfbv!X1C^ z`61KoPB28;kgL%57R}R%X{($4ZRDYe;QTFuvhI#XM+nm-9eL_!>t1x*7X6{PC)`70 zWMo@aMA+1hZ}{Pq?CMzF6(1>FmcmMEU_X+ZwC)#}QdGB3$-9ilJYALh(mNK_p)h~k zLamKyZ1zc!iQ2X(NGIm)buR9J!|7IPiFJK3N+pPR492{FS@RVqY9Y{93ij9A?)tfo zl3zXhj;WJD)kZ)&xf6dBcMCesJ^rB);jQ#NXz0_y!zAes3i>s1dRMUHVj0zhCSBZI za=MPrw!s*N858mlOpg5L&`Z=pndChNbkRuIkj{ld_|@GF_ol+=8Q0{lcy6oBC&z8e zZpQfXwp=mk@W+0^i-S9uvK-&vynLjHbBcJ^QeKr>pEh9z>_=ONROBbs_@aSr&_5C@ zlt$LkleErfy|&K-7KTKsAJNJ&CVvPN`hu1IrXZ^9SXAWOa6RT8%CXXQ`fJL|ZxPxn zTaiXPNgtv$T1mo|t@Y^Qb}EneD=IIL|sIY6Qu+?vfkLkJzd;; z8~@T~YZRCS!o@}?qDs*a)o+PBInvN^QjKboEew&7)z`SyD0FErM-$J|09{VXXB}g%>QXtHw?AV05{f%D#aCNJH%6HTC(C7NIhb@2 zSD8W^$5rhw{n^ca!YUIc6W;v=d_o}6$nEo#mamUW^AuB;cU(k`lE>(&Nqxm1z5D2t zJ+QSal{f|Cc?(RmC&pmzc73KND(ZmsZ=`fxSL8JH%+aUS3 z*~bP-AJ$IrtdfE$WozDtG!57tW!#%IMXsu<^TAWjkzgKT2=1gF<;bBuO&W}HxX9TGL97DVl><9D8;jeijBK~Qxb}WsbW`7vCrbKM zB46D-qu)4?CUiZ?Of$F~QApyM5i&Gu-5-}g&L8G_uRxPkt;C&=`u3al&UG94XC9&x zyv!S!(-Ztr=F9M~*3CJa*6I(`unmbP$E4@Q4I25*Vf@W*La=+l99*Ud^(xRP>(!HW zBjpL07lFA40_r*PAuUQT(Qi$;$Wti-rKu;iR_r#!)FYdF3DtG6_%2(0s7f`+w6F__ zH7Z!*6Edh-k$-G}z-*C|jrIM@L-mgd;?>(t^Gi`;o>`9@(SduzEb8>vGvo4PJGuAz z8e(2gw!j~`cT=k`?;S}N_U6|ZqN2Fg+7;;zM%8Mx`FL#Wv-_GW0e-4fJYk@Xiqo-T z%NhArUyEp}4AJ`tx3%b^sgsaPp_uVl*%z{6LyP91`t3yf>UE_RMez$_ZmWijU561L zWr3-^tvsR-obWcJsc~JHFI5y71>qeD<#Jbmaz5}f5133ywKb_fABU@(i(Zk@#9Yat z?sVBL;DjaPE1!z>S5rc0%HFvR3VTn{ZMtsE#o`lRk_G3#W|&l-SMNj&6=Yc`Cr3bNgMX;fl`%+jM!%^AA|0N7e+)(4&A$HWvz# z5%kf`i3wUi(y@@MZ$TpMeT#8h>o)RWZlj@we%*A6U(Ok30(}>Rcoh_j<2>-4G?3jv zSLO%(4_G!fh7oCjaBewI>uYi-I#m>YCU`^}qYxN}?&!abTqU9dX+?l<9H>;4eVBCBtT!YWBd@5z(D!;jJ=k8pl#oz_r zjdW?`y|{(fehB);TLfQ~&`DY+im=|0iz`y@@s1GL37(+L$hJgf5O-FijHL z-LD>QSU4SC@v*oqFlG8)I*_rw5SlT}hg=`AYlN}hx>hfT9^tHp_w2;n1@3!-IZ3Yg zq5z(ur{Gz8hwpnvH%~5i*V_VLJ@xmyC~H63? z_9*{@*QolBtLu*s2-VKBMT6g6yp<{Wg_I}A$R*gGC&LdDJ6cBV5mP$q^$cSmI_dXg zzrj?Oj}5-pB#BJ&q+z_@&T?xDLyIO7KtlE8r{N^Q!g1n(&j^ear}?VK6}G7mZl$e_ z$=?|4PS9Y)ybep33(rd_w#vhyo&V}FW<-!CJXi9W%bGz!dsF8z*&(vIH|<;6^Dy7G zPvFp*{pgnlD#*q$lR~79uyp8|?e-a0_ z@)#TNJWV0f;*ty)P3T%ikdm6}#3Pn8JVjt#F7Hkr8k*Ft0TM#TkU&&V zOWzi#JIbV?Wyg@XRcLp{&9`83TxL3nY&SA2K-d;QW{oO-`Atz7#VQZA1XQGsou9gU z1Z;tO2MlrrBF(-K0G_*WN|-)QDGOd;g<_3Rh+7l|G?6JwCawhfXk-P6JRY!!tO;91 zk7KippQ#)OBV(-2dJL=?lvUl{?F1auWN@uMCODq~j zRy)wzzddJr3wX)EXAE85xZq3+dQhV2dE=gt1UB&1L7^xq8`lT<95O;VWQsSq$RZ$k zfPKRyrYgm5#?j~L;d+J%BlL+}VKIn{pJ<}uWmAT=imQ97aM>22) zGks7i2wovq4uo-RK+}2QUPc~$6vbR*n{Sd@0KO_9W7E{ePAKktQV7rWu4JjM0t2f8!kRo! zh+a&4Sx`u`R6zRAQ01e`CubS$$?^NzS>SN=INjtsk7i#-J1 zV482DgzaT!I6;{ z%5iMjb$QEj1rR`+JO;`|GQ4%5Xpz+xXRq77oWH=v%JxZUl>iV2o*e9(^9o)bpOQV9 z-oUv=d<1tFTWF87$*kp9EcP%dd4g|@2nU7ZjSCg&!y>rM>BDa|JmezNl}br?j6;EV z8a5*ig$t_=CGd<@e$$zxe1-=e^iF0Ry4$2e&O6|O;)&tP_L5=mw!?KdWF@OH2amub z;thd^miZu{eS$~=<|4=k3k}miBWD6$)mz6`F}*mE%_rOJFD-~YAKb*u3`dn$XL^jd(F9!pc{m~3tM(9a2q_7Tufp~_FOcRjaU{oajq3dp6t zP>|PN1c0~ofEUZn0Q}Gb^YT6?tF5iw(#C>_ z{^!4#^#@qV#FfYY;TyQWV!bl4fd9uwaDT;+W+s%QSJp6834?9rVFkB1b( z>Rmkb-`!MXIr>-B(BnP<$ID|!fiVaN$H>j!>KTT;o5c}{Qc)VU_|Dbu)!b5NN zgj$l8TcxbYjRh^ZFTQ)>9vmT+L`NhNCDQ(UcD0gvG^+bkU44e(sjJ(J^5NR_f`-h- zQvBKlF{g~CkvUl71ERUb)RzpYSWVlxiNdz)o{EnNqvjXB##Umy!QkkZP0c;%^hgtI z%m;}~-;&0kr*Vv^qvvWE`kkTmoLIfPu#wH>sw)DU_T}+h-S7k{@FQ`Z`;Dxyl65Y# z9<{Y)j<=D9%XFkDo6wsbO5>oNe+X^D`~1<&Y;6Df5MSA0&mx@myRF)`H6h8FH0{)j zv$f@_=$Fs8a6m2$O_aI`-x-qxRG((Y@5re3eITzBd+ZGtfbzjlb?ru{%R2i>_A?56 z3k+NzaC&J?|K};hYWC%ima%+r#KsCqvDqx6)D0mz)=DJ>QSsf~ed-$que;vxp*E=F z#COt|DivqmO;oC1h!o8_wi>^?WfZfiq&Q;=Si-0y5oii~NmJmro28jpyk-?pG4!QA zlnr^K?m#P9g4kqOfLMH3if1-=ReGG|vs{0nZ=JX`w%UbV(7tje!_vM163xh{|2&A% zPGy09LAq%t-_`q|ImnXWtLPzC%+xwp?h1XuH;RiV$=z=~oRd9h%H$H#pTEd*)s~W+ zrXnP~0BvLvPI;{DIgcOm+3B%A+p>y47sO~63OFf{sgK4A&FFVj-prm(Ut#yha@-`? zZdl?U*g_SI0KHwRTl^l9k{f9-f_`d#ZF`ywwj7qY03QB69@?K_F zke$I`w>m)D!4wmof?JPAU-|f=t+%s?v&3j1OyFsUAQ zlqsdve1UdR-7~FO_%ee%qkVlLt(Ykxl}holjF?*w=J`}y#EMA@QPg#F2F_>;=>R{q z30+n`AOC(cH@GOF+6w37;Z&tXwk29drj}JFYG>E#q4s9QyBg>1bo^5&0}eHV)IzKGZ0g#`NEQMd11cQ%1WtuQjR;> z;`!Q>5>7umvrwG%PPaAt9yc`t=reAQ86k9UGOT0cljn!>y-o0Dl2R#{2337)8{R^Vlh-21FHH@Q4#_$e zF?Dod2frBQ$VGB6TiL~gV0p919bU;X2jUt1K+3{F;3s&0N%Wo>|CaT*DLHn#X``Xo zDlt&l6(N>Q8M=oH*niFt4r7q;mOA6y^e9hh<&m`}d0CmG0-`NEJJy%YJ75)7EhRz}5~RFdPM!`6*drJY2Y>f=VWiFIH}-t~#b`s!zkb17~8e%UX* zkDPAhW;%*Y%tl3@&4!?rs6GAsT9&Ls3h#|*->}0 zXDRghOS`N-6N%8Pk~X&OBve^eXQ&rDX)I!54-x^#mwd(kY|d04v)aOfs0bTPe#p!( zp1q?t8vCG-VNetk&gq${^scsWYr-jAsYc9gL|WVf#-Qgt_!-EC(sMx>t_b}J zv{1jHNoIT)Eyt+eQl#KG4yltYXMp-uZ)y9=~6ZQjWqnEOua-M?MlXs33 zs3!6gn6yf4Kgx3tu3@5sYxnl3@J%(BL8jRKJZVwl*k^&w8BjA3P||8q3Wx=k3fLRV z7@^hSM_;CA+1$h#1+z=4zQ+6z84t2Ge`H5xm3bI~rV{uLDM#@5oq4({f)ef%GL_JS92O=zmm+FWKp8k+Xj1%=mUOF#e(e>#IP9zfJ zfKH0kAGS@V*0D=Qe$k8}%Y)ZqdFC|YD7I&}=Zy!;iwey?$GP0IL;eEE1v7f%AS-jE z$piyEeI2ud(VwbZ#qcn*Ttz>uAcW0Iwu@nJ6nopVF30$L@%8qF3FoRizt$mEt6uP8 zn|o_Hn!_uQK|hh()22=Qv!PHuj9TNZUD6{x~LMXN8)mLv8UoU~0|7 z4!!qrXsLvEGggwh!CUhdmmP_nKk{r=zb$u6Z`K4zoOP-_-oU<`LJ`#){F?B*-g#}b zv#8fOh`w0#x<(W)8l^$XIq~|ceKgj}DTqziN$n%-;Tra0l>PAIP>t^y(9~8m$tsRF z3td+HZeBxR7^?XT+JlDEguQ}S)TxWx4D+hBWreCP?>z2{g3d%8!#4Y`arX3^q;A^p zj?NZaoTTHs)Zn&045!2nC%(Zdos5y9cxnwtFw|X>Lt*cja|V`Q)-oT$XLqWgY+nd&cX!C468N?iW;2TA14q(aI7Fi{{)}UyXyDQTapN2sbq5+C#u38PU@ECLSm6vCi*= z%#1R^x2jM1d^cTGt_ZhLI{Yl6cVWM$I)&#!Q=?4Me?|Hdo`Qz(o!+b+u~ay{Z}ZiR zLN#}4N%-;+)s^*OPxdIRP*c3q(Nmd0$=($zT>3=yqoKWN8Cip%<)9N_t)4TM>(bF< z1}<_UiL;RpyO*a)dpyhYg#u^H2Hl<#_^^!js^U_dBge{kJC>4_g|oDgE+>igO8te* z<1uH^+i0^rN~$gVMH3&B=R8T7Z15dyWt0)YA_Ymyb7w=nmJvHsDrANDtw+#s2*>pSCvOax+F+T5#GLycd3sTfY+ zKt7y2u4HE^Z51U$@kZGU@lre@FLe-V`FG~%;cT|)rwZxFkSe^Tx&4m43EHqdI0#_u zPRrTBY<{pW@SClZ5rR!#untq*d>vcHtloyP+J@V>0aEsp_;zfjg59B!PCweqYpUNx$((o$-I4kc(!}gB?zmDXoJPc zoMhvs$3@FQ=W^6BEyYg5O}+~wR4}2hXEIkm>CiAlOHxtLC2{5;=ow|YJ|sR`vp;kB z6a|+Qao1?BHCN}Q?QR+(rSf2WdCE|2RHsIGNB&7V&nJVa^*OpAFGMK&h_I*hIGQchv zu82#au9{NJijW(QY(b|ldQobLsTOQbM&*)!ZS~TXym%ZP{e-{`KawLWc2^>+mQ8^` zju;d8L|o9p*oGO&Cm?9f54dv=L$J=TifkI`b-5@?gp{I09c7J-CNmfA*7U-I$58ao z15f_X^HP3#r;wO1%v*R|Kk8bAk@nL4;*!fU;aPiN;CgEuJm6Az6e@bS=&GU zcW~%erdH;UfwmjigET;F?DXuM%peYCR(e)84j}9dBRvq|1;oL^PS4892GRn~Sp@Ea zc>0WxA41l4hQP^&|06{Z#QZBPHG>2Y!1^&HQuOaR1M|NF@cca}ENnpCO#i~d1_bYB zVQ2Ygu>7?;0$B(7bq>zoqJ@c(o)JO|3nM){7y^x%p7HO}@@o$DziIhv0{M5LKxhFT zE5~mv5L%cyS^pU<|DL%12`%hEcy)FNEv&5cjO-jB4n_`o_P?20B9`q%zu*>mY)YVJ^tUcK$Pnb zX<_H!00F)ACzhYIuyX!0SpHO@f7upxc6NF&gcc4KdQMg*5IYB$9{hJ{`4y1sf79|m z*ERo+J_AYwM8OCBg@uikk)9I_{%5fKsY3szg^l@_$z=tUi30)+Fu{M9mY;|I{DgV=v#`DI&J{~0WQs?fh_VP^SdaycLaH9!jh@$Z^kR*2sICtCh=Q2ePx zK;6Hw{8A#ee+J8+D)et!7&(8LTz0@$0DK2_X29(I-QMzZALKvumOmX70q1~`6QJQY z7D#VlWC2X>KY`^>75Wz~Y@DpWOfC}}JtrH`kr@FK{5NS~gXryl=q+r2Iw%6PumV9C z|H1;Hg@p~UE&l|TKUL`8w15FfKSv^FdN3n901Ys~f0vg3;^nga>7WSdEf89MWBI8> z04@IrmOoYK-?RV&^iMDMw-T`d1N7fDxorQ%%LQ2eL%-#h60!Zp@|P0*BUt`ap?}i? zxN$$dTsAO02NN(;0xa;~?JWPr$z}i3F%jr2Opwm<8_G{sAf4r(!1Aa1{F@aPj$alR z444!SP7oU_V1fT8E$sir$pt2Pf7V%;Iq5l>*g$N*u|RYP%=Qmq`BQ!VO$#tHggCj( zfV%>O`T(E-7WnVd@?V@>_CFmH0a{quf!^{P3xpO{MxeL+6IlLKpMTTB2>!jU0Qmfj zfD!@g3xC(*vi}z+m;F!2L_mpHfW-*5-&i0@#0(VvPhjErQ-%IT3o9@_Lo6;cBMUtn z7y=Ejz<;y10H)|aj?Wx_Iwk_Wg@cnF^cNOLZ{hfdp!}&m|7L}Q^Y^j>fQ*q1Kn57# zzst&h@o|Ae;Qq|CKrAjW8)N;A1=3l7Sj_(jls{GH->k3$XW2oV7AAldz=E=J00#K) zvhrVCT#i2-5g{rB<^Zw&#sXo5g@x&#!SWx}*#L5)GO%O`Vi31}ZT*-*1f=nEL3k^^S2kvTZG_7X_T zParZ8OM`v_7e?>!2>m5=<01cu_QAJ#T9&({`>2H6-Y(!}1O{@Ruk8!x!|FHup4^^9 z=bjHT52tSai`@|q_tVx7+Yzb!QcoN@t|IPsbXxAqV{I}$-d%U<@Y@ZiM;M?K-L_ni z4r8q9J#g-?tc}a5U$;D*KWq&LBml=YT^&yAxZS}%oIG3~@$YRA@!#Lo@ZUF+_QVVI z&rYqMt{r;bUFzI#6!PyqJlyjax13#g-t2o;E!`c-@!#K*wp7`yZ{_E+FN+Z-+YVxU^HR6b$GtS z@6a{V;_}MVay}yU&f}JcpVxBGQC=q1(#1V~(J*17M}*n#P484r zq}{}I*VMEPEAe+{{wRiB*Dd3zYwxKGmT3Km9ADy+Wb(3aN7505G@*dvLk$qZ)(P7IF& zKH)rNJk65Cf!Q?0Ln40X+ijr|GT|`rgydw_=gujVaGND`L>dz+m8?s?z9{ceb3vIO z_I|nA_BBbkiy5z*%BN)fcD_xwa)!CQe&;bJJm-Nt|6FO6@Vx@ZY>YhxSA^O{M`oGn z;-s0XjRD7}rq@Z_H;yT@#l7_|8!&RA79r()o6t*>n8K51G~;OXGjz0bhzqEf^q)y& zwc6}_jm3EPs?9^@9xY9oJ;m4RunRC2D5B+ph?>*?EbuG-0GMZ^rNFR(V;xK*95*f@2-?L*L~>uSA#94%HrX=uN;%-o1#x6qn3k48!W-6ob500 z1L(#Wn0Xld_eUI_n8SLwian{@F(}3^J^6aysMS5wKp4Rinu%6l#zIcQIgvj|GtV%? z&R}TSDrIae#uK5d!tCnbvpD4}_6>8#mt@a3#Q4!9eQ~=GKaxE%@G?41afC6r-hG7l zfI$CMx;fsPmExCOX5WO|M{LH?EfpsC3Mrk9GVv=ViHSXk_50FIX^h&C;nb-D_)IQ2 zH`~ws&pE$+#)M&-c|M6tytj+>?vac}+1xT>vTKi88__&#hn>F?kgyW35VeoG?@I!d z`Z;+-In;x{AIX#|t@sDJ8H#b`a2+wgif)NH4f|s^6}m2(`ru^PW=Y)j=MBNh@hMWc z8}Bb44TruFnto%^DkEG8F4=mCyOQ0us`QQce2w-6k4eZW>VBuXcdC5}G{WHMm&QV5 z)qx)_hI%PlXM4d?CCB6e=~}A3w(lz?N_JozMb7VM5C+)&uUA{22$xG7R+>vQFxpo~ z@}TU0y>3J0Qp;6wfahKgZ}Yi~w1*F|>5inG;6__;UVh7$%x1set_v4QJ4RFQbw~T| z1in;)VH?J17|t8hV%R7^V44GYeh=@|DDmeV#5OI!ts(VZ&ueugdSy`>fY5y<$JA#d zl}~n`q~PQ3Y&dT0F9&`6Y+GS%?-P3!T_9?89#;H=IhA&zV9q}bHiZCp=dD(&EdG}l z$Y-+fpBNiuvOZX;lxgc7Q>$gFR6Tjh81|8NOd4R!rX8q?yOOHCz%75l(SL5Ut-!5Z zwZ!BpyKZ0#?G)q|MiDvOUE*NMcRq)TPt#|W3#UnfZ%Rj(1vLus9B?w0{1?B< zGse^Ku+UDKJL2qyY46ZY^*^V1iaLxEa#mdV-jAuiDOHauVSrJ|lA%k8<3_BV#;IC< zIHdy>+J9?Ss7XnsOm!BIm9*W_f4VEu-3my`2bbVnM$t|vaXt7Q*;Gp$YHYjRd`qW^ zp=Df1q?@2o)5B?;Fh)L$9_2^F|MD$+)0O%zN%kB59A16vCA&s$tfj&sqMIb{j+R3j zED+k6aH)USIOHtBr*~}Sg=JYv6D>D_bI~yFE_I1#3ZvNY#-+ACKOPR>=R@A*2E#J# z^8UDm^(|?_6`p+>_pkW8(=0R1ec^hoO6@*P*3Zu?;9aHmE>KI(s`np>SCyPT>L;!1 zJbVjDKX5IAhJ6#lG9h%{j4QrR~_HM)`on`X-dge)vTaTmRhRG;P?(1Y{H`myb z@|uORJ$@ZoI_{PH&W%3Vmh@D)RS&<{6)`H+i#|HvY_#f3E1UgN@~6qm6~W-J!gCP0bf4jS5ci- zuey^z8wn_}wWW}?vk31iZM=kSb5g!js-CSaA44gv2a=hD58UK*#O!kCqX!T9CnqdEOHr`No%>wQG8;c!n@dFCgclKyEL!FLh$e56X8ICWDy}$)brH8$;=N`9kx(5mKei&f}QnaIzF!2F?9X zzV0?mUGfg_(l*`blOmJF93YJodLh2`gG*I+W3W3>|F&tX9 z^Ru9xFFQ`6*f6-qW~2y*uN7ooD+dYI8UzCQ?6mE~zWdz5(%S$(t*f~E?a{!aK^rZ` zQ&A^`K9lE!@YX8SJ_R%y)~u)cX#)VTRCR&g0FrN(G4|GCL@DoW$m|de-QZMBq*T-R z7?M2RXRXd+K;TQ?BPaC)=;zVu5b=6=tM23&F)vXUTwWbh(`vrF1e+WHt)(#-k}Vb( z{2Y0njlw};R(Vefcv=NXHd$G-*SL0)PLR63C^F^&x9OK!PC~km0`N$qm|A5~_B$~{ zM?Q7B=kC39{6#|T_!tU4ZbLFeeCNxUc44cQuoS0#L$H>qDFW*x7Emk9 zgjiOAs*j*cx$fbJ(JLT5dSs6oB0r)m2goCp>N1$IWCQgo;?IRD*IJhLm%>{E%`j?} z=LNVS7jS<)7y1@ID<{FybLP9Q*en7EnBUGjjI0RVK}XmU~~rLziVpi9nXVfYrl$TeIErAboT zXcBKC$+Jv49beBrYo;l)enA6xPqf*UUT7qhK!q;>Y4X-*&DI;|6?FA>H>@~uldrP+ zOSPiN7%6aCAAKs+&OgjNuW-q;$EeUnfT2SPp&o|&#HTj+x-V2&6{;+4)3xr-0%Pg( zH~y6@zJmBZ{XUlVOu6d7Lycbd&*8i^4=&}4S!=1UFN;@?CZ064k%n|%DNTYsU*gdu zx=}H`{~W@9AMN>uZD@%B5AUWvZ=i^9$W7<;wG?a?LspP7y~oNy&5ODB21}n}Q%h3z zm+o2~+%&n?GL0tq!=-)Q@Z_hjE9kY#r;=JcU3eE@fG?z*h`$E#pFR3?oa5@T5q9UM zPGvZ0&TGjMG^K)kae6;X|ENf1+FSpcZ{%7D+Wd6=F)YQ60+dTB`5Rm2Jd9@~$7 z&&z|1{k;tNo$Njo)p#ktkgrUpfTh(Pm;Peiw}MWAKOyQCVARA_}{gL4#&=A7U+Xv0N}Y0?-T zn{UuTqjEGg{;ANIcQZJ(hR)9*^!hTnYlpl<5#%wksY(b>aeXxL z7zVpgOs5y^xf+*Mz_^j$OU%&!PQ+rze|SEDY} zp83Xa@If09z*ToNKiYHbm_=6t+r#_{!$#7Rr{b&EGlk1!H9dg}d4>gb4>&4K-kYKg zV}Ww{VI>-r$n$RCS}Hmh(#E0Omr7_&#}9jKCizz2Gv)12A)`PaDg3;R#+PeDz8yfw zE1Ew=P0!21=V0KmdWr7Y>A+*y%-bX2Y6hJmf~^X zB(B~$8-0LgMmYxZ)$#X-3e(PFf8HQLW;|TTn1+CS3KR{yj=vs{1Cz_A76KHSw&x36 zN4^s9R(yqmw8#ev`J(SfwIl-7pgyAeS1sZCO8)cD{&-Uq+rukbpHL!CyBjD8K;3B` zrdPAq7^opH80h$6=rqmFNyQpJD*k9Rt>;j>%hLnzxs02+j}78(<)p-k~Dhy0!JH)9)B`E%9cdv7-;}NrvZ;M1bE^#X|^F(7`kPPOc1oa zLL7$)h610dZUG3oewmpwUQG2;p8{@r1V8~(2gQ=r&5~Gv9ENVX_G{T!?jtCHOZ_{W z6b&GVSS;1;L4t@EysL`7XDdGM=4n$$^UF_FE&u`Rc5#+8+ zxeHJWBn~@1S=#~R>oIRsfP4EcFmLi-#jO6!V>oXxk1C3l(ZAZpax1KK_qNpGETUgp zj`+~4Y<9bAeActS@}^x2qw(=4QqQ@MHD()t+Z7UHrm6T|`Dx@;3a@DY%@Tw9bndy1 z)8YG-!KEzdT zstE}|z2Zj$1hBM^V}?2ps?bYyyIrG3TqOA>K-!BfI1FB$TuP<`P$3RRa+t7tc5JRu z=xG>GJLn9jGEwUW`C$aQdO!9gg}gpQc0+1}=P|>GMW%$E$X|6aKu~R6W0e00TTfg+6Fmhfbybl!B#Q zjt8W$tE?B|SpZBdXI)5<-wgoaNYWoh+E{*_eBVYEv(1(XOUvCjnHh#U^y4I_{j4sluyEt+N}luIHL*k@6) z8i1->o)2OHT-xQGAQrev^7TA+BQLrHGoS(J^E|d)URK<~kek&bs5y)TP`jgnN>)e5 zv5Wx^qQ`X=1==h%-p&9a+NO3suE-jgRIKg6j}8J@#Xz8ZFMWtSQ(6G~2GF1x zgFc`^?VKB3D7kvC>X=~tyVMtedVvN38S=FD4Oqq&?#S+aVHjx#@sJwJlha=e;mfx( z0U}#c_zUmp;3W1|>D6$$x0khJIWKQ23LKIwDX@Lk487TfI@(({z`fL9#T4; z-8-Phy$(PEPGT2QU{5u-J&>dh&Y6#cZU>Y#NYrc2I2-u!JQGrR%|d!VP{{o+BqM{a z`T&JVK!x@MEQ@vqFg=_#GJw2Y52T^l)SfkfBzY(`hnQF4J4lh8?176|{az$PkR(DA zNWs(-kb);sx*Mp0aA)j+^c-RWT*9e9nTE*AjX>ITWnTj|E;Q~DF+K1MGc3`yfU+_B z0N&F)8LB+hHf4btGfV3sZLGRW=jdeCbz`Vv*qr~_pmazsMcHw-Dx7N1Me;Xc?VM!_uVog9m->Q_bmh#sK{{0?}L7Th#2DWzk4^qv_ zZYR9sf|hLU3_jgWMwef8to4-1@87V@dx){MTi#77WjS~@JbZpqYm}DE7wUlew&`;C zOyqNkeluml=V{-&ABL$bxi^i{gNw^0A1D_#t9lDDVCsi&x)PuvSHNuzNYV#%o$v71 zmD?QhKesttF0ozkAinO!6*aqo*TG41g_yvo`=Zkn%82_tZerP4{b0jPD70f@sy@(b zorp`-+|x(*u!P*vtWLsvm~j3b_KkH0XDAPt6e|r1l||iUC!_<-Yh?#M370 zLV~oXO(BCwpu2C|`YhFa{(PNAD3LL97n3Mk)iO3^1TYg=oc~J7O@CEJ085eW`0wA3|oMdFov%|P0jmb#gByq*B6 z0YD0f4#-DmMEyqM(vJd5JCg|9hK<(#%q><7%^?`lN{s{{X(k?mL|%3MS1BQbBiAhc ztiM_bAQ`c6b%vx-QA272QCB$)FsAwa1Rp)uX@pej#US^S1^^gds7!xEeuP8xN5YhsbQL!~qXJ2~*K^7zH-U@=23108nv>m&KyVZ(@}ub8QYQh!*fiXmkKaM;vnA>f9aN)@mohzWtHCyx$o7x?8LCTC;FR z<-LM{yQ?MX!}*IhSf3|~URzE-bb0W-rxlPHefQC%$;wM=n&^ePXV9)uP%8Ac9d^sQ zD@y6p<>*7E)&no4<^U)lCoC2Es{Cip2=U0Lk0_ArsiCSM&LQ zxO>llsJ3NYRFDh;jY^i(s3H#a>Ilxd5y=Lp3Tf#@rV3r2L99ShZAjYO zrW%W3sreobJlvTylyYzME8H;_2KMQ~IDPyaVHk#igg3w5%!}C+ z$C-hyEdvRqz55&<*ED(WqX~_d+o&m8y=xl%n53r8(Vk5ssFVkRHJYE}8U}ev{406e z3(g~>r3qHfwU}gsP%u4^U16gi&xO~Dj#)Pg58c0vLrj(#FxeymIVKI4x1z~gy-U)7 zizSiB_0KzZVj=H^Zy{U#KN&ON8YoHgB<7hV5mA~yW5Ik&ixR)y;!PF=g{akwz-Mq6 zk0oy%xE(MicD>~i6{*|Z4;UVbAej2|V5-sp++WrP+Pxr*fnsHxVt#fI#&Ww^l7+`J zNH_?D+mP@gj!lT%t^&wJQ#AQ|Z!%~&jGrAO3Sdi#$N!IZASj;aIc7+cyXRHCi+rAE0o%O^LiYgwH#5(d*mM;6`vLij6*DQnDzCk#@K>@5 zsaf^BgZqm)3-SsV(<{4`uD9f7><=oL2Omvulm&!tO?r%LQQ2z!UKL4M-T6o)tri{4 zd1gW$dvyF&@KudjYWnu{?EF^3x^1#$rbHOEN%^b1BZtM!-hic&gkJihvV|RKkK^ft zpGm`?R(DO@{Uj3v?-xDj)%kgEIlueUGd;#vfpj~VBp4RfmK#6s7$_rpAH+mDQ`!X5 ztF_GCw%(+es+tRS4SffrmU{N2_+eNVR!?u67`jX*ggSH~w8fiR)8PA&{xol(`Q*{Uo$LMrV?;#`GEjJDUnjKB` zrFy)8FZLdlccoC2wiWHVm*!^Sx?-;I8iJIm<1xQqC0YHYQMKDng5JJkRv!o7kiur2vf1_gCdFGg zD)THB6RoYnrY*(RTuI@svK56o*o;VKmx(3#`Zn{!hpB!^(+mRJps|-p*4aUd7>yVp<-Z@?(@~K6<)F=^xLWno<9}vwLALv-w28 z%@PkrJ{W&Mv&YlIRjD(vwggCf(Nv4oqhP9wy7UO-$17Hwm@s(Z-7C6`2FPAn8crBv zavQ#&Yaj}CXQ;n70ErHvSVOl_F$#`-Z$qLe3%}<&#i1|?zl&EZ*Q2uD`>4OCWPC8T zlFEb_dH~Z7$5tZCbM!{)N6g2c~btM1!uX0~nYy3z)|E4H5^Ln)Is6vvlk zQ42gjc77>^G-t^=-}HxV{>aspGw@Zg`!x80RA0q#;B@uwEp9|fc}w;~bcoH`uUTfq z5LN2%uC5YTGj>XxEZoUid^YM~lnm=*D>rWoLRwb4q(^dV;_IWmGWlyB~|%ovW&m}F&@ zZCfO!+RkmY?atk6wwG7jK zXZxz{!}cnP!kru)oAfvYea8u|DAxffZ~Wo2S%!^9Mgh zHl%ehv&b%6uM9qWsyofjsA3#t;k!11rrcDhVLPBq?3y3`$yHZ3ZQ}DCbxW{eG&~qa z;1QNsky3z`-F&=#g&5AZ?IIwAUa);q6?Z_XpVYaf_zp=tU-Vrc*>8lL{KaL^{B%QT z!7cmigM&gGdkm!GlUf#>}>st^tnx^ z<=f+r%QJ+b{0uf@aaYk9o9d9qw=b9vad2Vp-2jii&uEtD4+~(>bW;NiGCtwW?!)wu^L9}K)&2p4jobxa8_ z220zTNXUkhkB5c7p~x2$HNmFtVyqN07^r9++^aJXv>cn6#r3a|dB|lzs}EVrMyEQD z9^6ZQ=1p%cDJe@d`skF2z%A2Qb8NTx5f{_D(XX#3aGr3=k5qKyA$AG@+;b$+3G}yH zwn0n2&6`71hN73L&Y*D`BC6`U1XyQKXD_%ulOfXNsYoP;EfSqu5wAj4y{6KGeN1(4 z8Xt?6%0FpCQ8xAhu4Hs)xH$HT>f0UoNR1!P5)iSHxL9z=NIH*^Q9KT$D`Uf11f-H3 z2O2SjMu3d_T>BR^qJoHtyGpdcDEVIoHq8L2OrLTB_=^q!e~}t}&K({2I4lmrqPHo# z5gsD9@sbQQT_I#X+ioCJnHh9;dc>7DYGv#Ahyifjwue%29!0qECop87fhQz-n^gav zp*v*u9dh1{a1#NdfK4c%Yg5qQ(Q@cu84G!?WbUREK zIe!`?yGg4wj|GoT<8qzHVq$yA23>u?;d6=ehwXq@_CaFFg>nR>Y>PN)$R1&p(9@to z#18ho5!|->Y|&qHdT8dqa=$%0f7qiblHO_Q%bOB%_sWo4O2<@B55L7G5SZ1*uI}yP zt_iBvc!Fn0m>HAh4DSZ$jIZiai>9qFmgk>F@GfN*SeLENwzZ9%ZBrEIb9f7G%TMiz z2{QY%A)ZP>xpM z?4ONX$NK!x&5){PCLxR~2tq6dh$;}R!!!U^)e$as`1bE$GfQb)hsU?*6JitDP?q@)p(If)Wfzr|q z&DhL24r37r(gZmS$Spv$Z7Ic}SbCtOjsqcxg%q}F;sQ=DCh9Q-6B8Yj=`tw4|ClJG zZ$l7}p^E$bh%%rUL4KL)5KSPt$O&L-dVzBANavpPcS!gTf26QNlY^&!3L$?5H}vA! zi#Y3bT@HVg6u*5?D-q+FBgmian$5O1sFdw=G`&kF#!D2;DY@2Xu4c`?@2J*UBCI4B zPT!TYdXc;Zxz#ZfGhc} zbvRq;q)&4L$4i3MVoxpMp&ecUYucd^CtMYiMPKrEJ7}a{{v=>R?Jm;W<7zxKoSk~; zlZRl$sL)}9)Rp1ddpwMoE2;+y(Qxn8^5pHO>Y=03!(OzD8ldW>wqw8|;((4%BdCKlopG^Wrrm$?Uv<_}2dED9S2$?5@59Y>% zWq>o{`1`(=WmCN_KTu>rCfl^|J}g0#PR2R`Z5QGMLvPogbKAl)*A^425Y4DOtsHec zSd#V$uXhk^I5|}Kbr1~rfG<#TBLcUvznF$L(;}KsO!$2^k$6iL8ylaj{1WS8u(T@BE+!oczB_h)-<*{4Ig&OiR45~z;P;K|b-TXsf1h?m&h{*K4k}zDPWW?REkHmu|@>O$KMq=E7 z8zoBM_HrYRc7>yYVE08>1R133jT7m{y~AKHcVfQ-gUdTVtY2(wDkVI+fiAE^(v&I) zQf%-jCtO~l?Edb2tB(=ka>&ZDvdvsh)W=`J)+4Bnv(y=K&hJs?eP5!!1a1d($m_${ z$4z)t8ApjCSk00rQBRui4$?bS9MBm(_gnx+IBjQv2vQqo$?h2lki`xZikV4}nD1vq zXdaq8zX3Ne?W_lw(jGxMhR8_bB@P%FgU+obJJTDW+f3BsWlF}YJHjPFFdmfzyJb?F z5#dduJVRgYzWEuDj?u>*-3}<_52sN&O?c%QoxdE=EJw{qIGbZnEFmcfA2sZ}7R1hqjFdl@! zQg2=$Y+NAR?!(1UYY=QxC821AQsutK+hJ~m#FAa~4W^k-r|2R>U-!OwF;SW32Oh-5 z_rdFWBgz!yA>&9^6bD)}$YvCW7e6PAX{t~q;qfYEXq|K82!tRp7=&^E^ktI{6EiX* z@Q`;n2nIAhtwR5fUyL$NZK{-7yCi+~iU>Y*YQ;Y&RO!@ZGV-UEo>O~VCg+PTkS33xxQRe&ODyf)} zADC{yr?BPbfF0OdwL}1x42a+1=)>)3)z(e29J_5ed`XaykUG=lI{72l+s(FDi+^wb z;7bkTq}iDnfg_7O+?NP9K4%^JJ&O6(HM*7g?8Iz)_O9UBPH)!sX_lpi5Rcmj8 z=UC?8%bjPxS6_bFR=8VhZ77ytuyeAWU#(rc$uWDfvEhZdIw! z@Vh$Nu}LvpcrlRPaa4~dPy=mqk}j(sE{R*=c;m6eoY8~Yc9N-qSd6U#_2I_S%N>nFchUZ@>R*c)&&{wzVj|~ zIbr{w0>n1Tv2@51h0`hYt7!Gy^_rDG)oZ=~Wwoj9Q&Aj8J9ZS1?xHtCg zwx1*zHd}l5r8Kz-FCWgWJ@EFln)AeyjVYzaTzawk&ik|Q5$t(=`w%cYI0R-zJD0uR zKW^&>X1qK1rG~{$NV`B4K+M>A+wJ?yy)PEtc~=}9Fg~|%^u#LAur5DfWZ>kLEUvNC z1=q^fn&8^ggX&|^q4(!Q@}849~jb|8*1(|GFTIP;+e+0rpI6# z&^q-1q&(;`TjwU;dDlek!M++)&yK(IuF~9NOtk9oz@v<@0g6LfH68%mk{)wpZUlhu zMwkI`0U|sM;}~pT?>xEiNNNlQ6=TnO6khWv0|Qo{B{3=H+tw#eQK31dD9*q;NTk&8 zi%X1&mT+&p=ZtzDPf&PZV;sixOs^C}3U6Wbm>yH3UY!n`39}IU)njjzcgdBrdtWt* zyqaAJ_cuRDAf@m(VDwChmOfs1&ta3%M?T&uSz(daVaneR@JL`?rAd-l1>otCa*s;Y zv2u@S{IF}A>Sk-{c$-n?a$h?$eK?g;-0RaTdhQaP?DQUXpYEfau+2^@^WAcpbFnA$ zn0HQ%gMQ7c_T-N%=$(E&qaRby(oBDJSCC)#AL!m?9KuC0+ zr2m>Z5F{l0r!b&&{>|-A^S@&Iml=Sj<)66yQ;g8G;BR#QV+H_?{|3$kgb?A23H);c z1pXHO6SsdKMGDCG`4l?}_EKP0M%9SNSjp8+_T@|m?q_;CU0*1{4MWJ=t^M3MXmUF+ z$LRFj8gGq5CrXg09c!1%>+u?8+ky{4bD{$hPuA8FW}Y1O{i;y^ot7aV#Vmbe{*l7N zKXlufgCr$x-zWLMy3XOva;I5pPiiR@va}*UkwbTdxvf5NWq<)5Ec^X8#KoBP=MU0as6OvU<{E45+r-b8SPR!6BXE@{bU9QgBuG$CMTsL>^seO=Z?Lzmx52 zKya)Dn+$HGGr8i3hp%=R_A)c7rcy_OY;6V;|3J3vBO(0BQZF{g1J?+23Z1wcF;Vk_ zx+L-F*+jeCe>cVO@P zpGxq&z))FJ+U~Wx&KBCqd*kX4~r}tg^DH)(<>;AlgOCqYpVNvUXFy-w zS=?UFV+HW(Z8U-SPgYqSU5dWHokwMPd@j2u#>_nAg9c^Wy+9;CtNM=5 zW%JhOhXpVsgS>Ni?l0xcs`8C5-^u*ABR0N2kj2C9ZmT(=-qoir*N)~fFzVNe*55bK zAaVvs4D!S4#2X=HDJKxnh?;uYNFJq1koCazlnT-JKyRvNPtQ`FbU|I`SN#{l>xVV! z>SY8T=M(bq7@Dq(FUu68@zu&ZQEExn13P*N>|S@aEgdRrJ)cdC(nlVBI7v0<`n56J z6z7_KYDrk5gC#Z^DU8;8?_KNlFve2)Yoz3>+L%Qj_w|F!a;lkxEC*Wkd&*~8sWnI2 zdj>z(!|ALhZyOFRaoLpFY+U~e^bP}e zL=hd6J&jw=4nt^UDIN0&&!Azw3!4*AG0q2`j&~Tk>3zg;hE_LhhJ29E$lXFR+6+m^ zY>$HXh`3}@GGMCUC_7_ZgzLY%zrxKxPtd(i^*khGxb_J-u7{nS=2N$jg*NkGn6%o+ zbUX%*e-2D_IvN}+R(65+NjmsT?YC|rENwOg4NYm|vVJd_Z3`r)$%6!=P}6;74`kvDWP<0X4^ofV9WB&p z{0-N?N^GA&B@&;WxzYBQArjs8mW0gs;P<^`cDRI$#{Rz0#yuu>Rted@*#@x9`D33_ z|K9X;BQRUpXXuWg2WC7ohQ88)!Ek!!*1{Qp9Pf_KXyTa#xyW+|xriVk^ElY#t}|$A z`h$ebMR*H9n@h-|XWN_b0&b)W(__gwj~#&N5~qhZem*_`B=6BPFHLvhzW&U1NSY+q zJ>3o5DI5ZK^7L>vdv}XN1{i&U1YVeNAD|R_NC^uz?#J~nt~vyPXhMN38zMy_b?BKl zHj!^|WcjUnXi+V0ZAfiIhZ7nfTiUpj5DtBTZ9=mz0OJ}kE@T5ypAKn(8oJI z^9h4KOI`WP-(1B__xeB6p;uj%$sINZS@q7+vPAXbPfn~SSXZehOK_WZ5{q${l};DE zct&vMH20eZ{pKfiPp3AHb`rX*3K(WS+wrLx0Em!Cpfdt= z>V+U}zP#PvfL$xZ&I{c@8j=#>4%{_E>>WTX25g4hGNv{4IbK|e;1t|G*c$N&mFU1} z3gi|-?*@=?=E#3zH&747r3s=og#w}$JP!!+y97DZYcxQI=x%0uaWQdTVB_EiX8y55 zf-Elkui+piA(Ou{c%B?G1qmp^T#P8#DmS^$SB*vkR5Q53vU-4odUq_;BXvbIT;iZ?Va9{L3j(kN`!F z*8wsp$D(xN12g<6QcbFU{iirdRg`)pB7tN`yDy!x*W}>w)#0TL0Z?9q|~-jHGXtmO=FCGBJa$@(-mLw zJ$s92nETNowZv(AXHKDtgvla!dc91soF$^t%mGb zK5dwiI@9vI>e2=i)}$Sg?{j|dbJPzXHpL8WJX>M#Lb>ITT@G{aftfhg^PCi^PgC5% zvX8pYqSY{vASZSpdlP3SF)&xUbtUEFuSs^1?o}F$R*}U&M8)PPjfrdm9~&%(+x2jh zIR7ZYFyk)I#>MD?g<)4_-@#L^Yk6>o`|Ci;oqdFNkK*HXX>a$DMuy5ULX1`c#V-_? zS(b!pLxdQPrNZe00hgpRZ$-K$?MQo)=4~US2z6s$cRsHSQcde1#JE$>ZLEu@9ATDK zMcQ>gdstc*%e3T+H*2_7Gyx}8AD5>Mp%+G&X7nKk<~F76?iwBrOFmzA44(2cGjc(E zF5+^@u`i0ny27cNBS@($Cb8j)SoZ!Q9)edc2_J-WFGu4wGp1?|AiaAY7G?Q+!w$Iv zqOpX+6{7hSvBF44+02*{ac4u<-rvGV=6R^wgZN^(pu%sd}sFQw|uz{3TB9qieW#?17oeJY#*`>3mm%m32B^~ z5jXJ}NcIG>Kj1a%)9QvHmyNG*nSa0v@jANx^&6$mVb)gc^@mu^l+VeTVO^F!3p=s} zx>H%qxGCAR{@%1!J~4HVh@yUf;SLDJ3%U6ZclmZ>-fd`W3{F1q6c6ijpRD4Lr2G!qeZ8C9XELbrv<=9j>2!BUrt)i=mZ% zmScN5_lHyei^{V-620_ix$Xy^XFqDM)5M!Mwz1Y?b8LlswrtV-^f+7J9&DBRU>$xt z4SZ>0ZYHzc{)`&7SykmmM{~2#J$r42@AA?dTRZBrusl3jy8rsIZ5xVh@~)CHZ?fe; z4{D+51$#RxWu(q#K7&eSMr-!rO8}uo4VxaTN~H=_dtSEHN0hOdyNTq7H@;w3#CzBn z@r4im{v}a-_6y`k;5Qp)Ll*-?J%!*0Usv|9OP(jUm9$Xzb5g0efqTrCW8myOT)tI0alb&k(Q*zDdy2WyY_N{+nA7La`K2Y9*KYe$w|o+L05vFcuo`~3nr{^BW*0T{+-Y#E9MuBzH|z&D&P zo-!fQraON?gaNr$h>1sg4$@npDIqExEjtQE`k;|Ufg&;(&kZkt!t|H(<|atr3}Rjg z!Rhg`!jwB8_46nlfb8oKaFN{jmn>RZ?6&&J_t<0kE7R^Gyc6+Cff}=huuqvXVVbctH`BjkJ~;>|Y#2Sv{$c0Kk8OJTs4^aC3_)>1ce1`g$GgXWz-% zLw6pgN#31DM8)ju{&?eS_J+dOzi~5J`YXwVxus2HTJymVBleN?4z<0ZtZxjFBV-Ba zj6H?wqF#7#W!E)W#iTe;onhZ-L6zK;fB|R)cOHgwb4XTmA^W%wzMX_DUzQEb#(H8q zeDCduqHA!djB$aC*IV#*`W7y)Z(r+1Us;WjPg&1Bev(js8{QfL4Am#UjEfT=uDxu0 zE6{PXH~-@c3o+oc58&hZZ#MSteZAB^)Kyc?rw|5^P$jeC_>A(c$sTrhe=~o+igY~L zrM+BJPVHH?8INAjnz#z1E=*FCfBBo)ADjf*rA8`Wr&OQ#2s3PRV?x{)D7Nds6_Yn$ z8$CwKoG0bVursifec4ztkJ@JI4!P2w%ZhUtv5WKtM9h?AWb;kvT{yOx0r&7+)@rv5 z2eVXhSP~VD(#S`cwD|BYZD2fe^yiJ43nB1i*5<~OYz0E!4&OsciI!H~hHpmffi(#H zP@Xe{w5e2{PJG1hfLOr=;(<;Nq%(e@^O2M%Rr?>wgF-&{2cT^r=$xwCmk%TM&ItmY z6eukfv*O^TUUi$PryQJxLOw@;3Q_{d;8PH?ri&8JHdqBHTZmdp_@0r}Kb&0!-`E4U zWp6Q#x(H=t$4vA#6^fWM%_v{lc#+5;39(27_n+7E6FHl{x^|O~XsBk^@5Q8QWSwO^PPnH7CSeak{1N-zPX>MVd=LpXdW+EN_}Zas;9ZaX!M|*It#?}_9YVe@TB4f z4h|n~Sq278Jlyt^_DLT~wrN1A9q$TekR#B(F?s< zw$ui1mhHnb{fJFz3i)&S6O7%uH;hkCCd`NoMvhqqJA18F?~Z0y34Kw{i>shJ%CY<4 zt6iCqM0DKtal*LqfH~n;){Xv7y^YAN`>i)h!}YyaxaX;Hj4acGrlaTmywk?}Y*=IQ z82UR><$EWvF&u3?ZxJ$n&1<){lIY6}^v+xDvuTRJ3NdK9g3Fj_qtxpO-nHt~C@9g0 znJzlSMb7K6tF8;iJ2yo)kI0Q*_r!Vfu=iNz2cAP-8F)Xa+V`lH@EFZf@-h0UHrn(<+Cd;C z>_FpbTZrt)LzmYHFn*RVHmos}-8U7tFeRCo2VG}@ViHj<- zxmyZAM!XosQjbc*xx)FI*T9$K_9DXRde*&2$VyJOQZx5 z{2Inz52+j)T713a?+_NkW^b27X7726fIHc5AK=z2L%v`z!;C`fa=?;hsp~hUB-~Xf z!5@K=eJ8?K^|cdaG}rqL>AR;)z zAkHL_6mFYgmq>bfWXa`)Z@mblRNn;*!PnUmm;FF;6)KmH@Cp()oN+*Qha+sCIddn! z-6R50gmAPkANht1&TW7zB(Wv&H3O+4_Sx+Xgl}{t1cA~Q0}%T2&AiGenD`8E#>8eN z293y`kEpN{#SVy}DH+8t`;jKi&7QMa=rwqY!5#)F_f;N4$f`bX2lv2@Yz~CA8`e8O z2qPD26!EC04DC<+wc{bv*VSXcYXBYyZO^=cQa&oovljA6qAqTTa`H&PVDFQdcVs|} zx6RXzfrr8#=}ed^Bof%yva)Q`s%+WDei9|s4>ioPbHs(O(00$R);nSHbB;zX<*oA? zXwW)4d(gv{bS364k$}fZ7d9RH_o%x2Ag>4`2Ts;K=sFbPn@~c~^{JDa4!uB*8LvC> zz!y7E{Z3MMhNM>4e)Y3Ace~&nDse)6V9j)2cQ&X25=|#ROgL$m4v$!z>Z6!;Q;3Ku%br%7uz-P|YYp$Gfg#U({9Pt;j!#J|l;{ys1%Urq4vH_p%6IWTJ<@+=j0 zKQ*LK;%}tgOFQ0KkQD2t(CC0o)NaaoQkdd3#S9Ks0YuuuosMz%BPe=~K^VT1P(+LUpS1CPuX5Rn|@ zd8J&_uXNa$jC5bVa|fD?(|BMk*-WTaN5IfGn(;lr*QZ!n1Be<0FdYg){J;`>0F@jE z{|@lGUdaRXx;NdfK#yVGYOsL^u}V4&MhY~F%OPLpu@KP_Mu@2XXHzE~HfFw=9!LRI zT*eUro9)Xvk2pXe8Pb560iw)&zk5zDQ6+hzW<0$^x|+{@BnJYAXk|&HqokCq=}PJm z2BI!Gu-6YDg%p=@MZiw_#=GduJ$V=U$55FLMdL}4uEdt??UH{i@h#dH`X4!zMyW_dw zDY(RMZ#+kPn>OjdE2FXCY!A#4Tin(#>PN*OC9p%k@~LR_S*yr88# zcB&0lQu)bvg$B-(s1qpQosGzYCI_F$yGk7g^XVxPb9RBMM}w26y}!1aPF@_FDn9C& zZt^-?E}d?wJ*zS`7)(l&%v)FKGP2OH;jbuy{^=? zQ&Fi~LVk8K>Dfzfb_NQsoo&R>k{oXR+~^$idAJLX6 zIk_;1d**!baehbRNmnKLsf&0)Ij1BXF4LTyiu4lFfkzM~NVZn3Yv{UJ++)YIPAE7 zC^)G;p=7U9dbU$~Mj@d_rv-I1`RDF3=auu$yUTF#@Cf|b@dQ-zyeRjlMR4ASMU~*Z z2MRb`RCwjND96ZiQP}jncZf>Kr^_yFgPzvtV$qo!R5RjFSxqk za$bfOTwQQEufD2Ea9;Qn94?>*FSwi++XTW3F6TuiRSC|^F@nPd^m(TqC~-o67v?1R z|8gsy^ENVe4Chm?3Pp0?+REP8${vU=a`Rsr;y_vYmtG$KrqZR*dHVjNQkS6r$^RuH zKer%^ zUIqWFwD5syy-=4Beqm6F7375vROZfzo+tVmgWDH7H&|im=CI- zEC`wl04m&IDe-|Cx%?nKQ17V!WQsulqJPij@4Lc()Om*&szMGGF^0-+gNopMprA4@ zRIe8lZxsaHL;fQ!7q_ebwp@h&mn)YS6z1jT;$z_B7C5g?&I^_-xb^b!2yqDir&Ru5 zRxZfu->XGU^&ta`slELxI}uJ!CsQ-KSH`w>E_U|DmUbN0wkDi+&I{*4T7TbqxViqf zMR7sBZXpJ!6fU^8gO=i;+^+zGFt}$3{AW$U&Kdukbh7<=W%J^Q8&#XQvdY=(9EYPHQinmww+;VEs>`PuyGR zIS=Of&-RZ$W=C^-H6CAmc3^yWkh2#riuo)@@xg~+9|s2<&s%q#j9M8ud!K(PQYBC8 z+;n4?obNogHr$#wJM7E!h<_HR5F!`2fC$k&&F#ot5&M#FoSvz;`l+A&Od#)zs6(+% z+M%Px4rklYoPC^xoUSp7qr%Nc$a(h3Hn* zA$O-f^jUtrT(4pr3niidNw|(;il2A{l5{YOyJ)v3LzLfU$#3UNWf`ih#9x8$i>Dw> z+|KpTd_O3s0(>exG@#LTMl6QJDFoCam^kITI!0 zwRgO`p3arwzNws4(T9*ME4cRZ3PFD+Ir&78e3Fb`M%w2Lr9SQSXA3wox2$fM>(km( z=Tp4A8J8Lq$aG^|?LEUZSFmmh?>n+L*YwHnf4+x*??d8U27Of1H-nG8#4Ya9S2qo2 ziN0_p2%SdM-G}KYZ^0H~gnFnWX6!snb}+!uRo{ zqgifUV-=ji6XVu3irKw!moSjAZ+6}qKRAB;g@_4#A$9#I{=`UXpyJH(R zkMD*L6`1=FRpqVHjFJ{VlK8#VWZXMiBT04HP1kJQE+zCDXx0rF1e4$G`DRG{UNMIt zq2f(F@hW#x%j!p`KZ1`bzk0+A3HFU- zZZ1CdFlaaPl4C`e@8oBm4MZ?BU!lQD!VewdG#7aJ)^1RV4)HT2P1E$wR@QXZuE+O! z;W?dpnc_rJS?MT@r!}}H(OXZ$IIbiW3{~>sVtfTZqNz49k0MAawDX<+wxBE-clYh% zs|_x9IHQTAbI4&GY}LspOyLZku}+QGw(m`)Es*%ZSz1$KsI8L~^4iNItQ!O?Zs0xh z44Qb&I?8o}gP^o!hw-QyFpW?4XmK$zi@vStR^4`6wg?vY<SRKvA4Jr81f!-Q{s2qoHVeUW%iQYbrgNbBlyTsPE;B1 zrYz?)Ua1n_bo?Xz$_v?>^>p_~VpF*qt$gSaUsTYq*<)9=ka2N#aZ?#gR^1PVEQ?(_ zJ`Zt|my{W=Q5-fuiv2!+?d5|-J~ML-U!i@T9Dei4-#K%rBU+tzR3bW&4IM-crt&by znqS3&KAZ!IPl*LydARzKd}MQI`HZ;YDiQqNztFsZQneO=Lb`KISjOTXf?v0N4)-LY zt+`C(XBy=`>HGGLkm#?onff}LJCvpG@G&!Ptvn|Baid70V2CtelJV1QMh9w~b<}7B z_3ie%7=1?U1r0-&KMn<_uE*DB<1XDDiDP_-=ie}zJ!V?5g*E*Y$wTu)4OT!t+Gz}) z+kJZl1C@Ja_QcZm9e$L*ydd@0hQ)pROwL5)|9n ze9GG$sOUrOv1StYp`%s3e6jI}F~U}_xBE!XCHq5KydrG^dvyMCsB_k#kgtKxEjhJ> zp1z{cxr*3V(>sZ(+;_%5SZh;0@$J{D#kRRo;1Nw540y&Hj*4pWUB^o!wSk zBX2cnv0!?%zL=w!8a+bGFfQABc;!S6fAnTn=`CgO=;Oj5QAeF1_mzReu;hfuPL6_+ z)V@7=?}8O!dM)-WZM82Lp~Xaesh`$;c@v}8*>23|cZugkI>x;-+Y#cB;LyT2;C5V@ z`?_5F$hi_;z|UU%coNTjR_itENh#Xd?kR6gO^~#O`|WIt35ud2qRKQIlMI8#*LoD( zD{Dfz>lNmXn*Cx8r%A7x{dO9xxEIo7e3jNGzz=gjYVu1JXQpgL3R8teTU%Ss2M-M29Hsj*Qn6^I-Lv{j=*6!jD=`MmA4!bwqkcO#1jV|kd#d#3 z5-eFrn%GX6Qe4j&smgtMf7iW9OiJU8i^8yptRF4Ud^2Lw2Sy$5OB0nDB0K=VDEy0ym9DG$m5ZV6vNu$lD<-`cXlKf*H zU&?3oU6}UuNuBKJH<+%{lbgZbCC`~1a(lu}_DvJ##Mc^VA0rniCPGtpS78G47^}ZM z-#R>qcAjea?gwoOz0sDxFs=Q_*@a zoxSa5W)v+Q)5cRGsr6pOlHu!wnB#%Y)x@i|GG@&p+TFf&yEwT*lC@D>yF#%_KKcF0 ze$)L74nABj6JAu;E#3^u@}K2ZNO-YD@Vfu|g2TY~GAa~?Z$Pd6yYg*)#%V)*!-SV# z^#x^C;+okDCQ%8j!FBg~2Se_OP89M=u1tK4o8u_k@#^YqU`{G#-6D{!yY*3faVGLj z*ZTuQt%H&SQe10if5W~9Cy4TVeDgX*#p5(=>ZWKN)`a0pk5WI7e`pV#g+))y+<~!} zQ+&*P%Ob>eqc2Zwc_HhYkA8#}Ij)=jKScUZ5ua}!N zb1_%k(&mVfD`=Xqy;=RF4OmfLu(l@Mr>{=Yu|+uOg-gP_*TvP>%M*}2 zDYyO0YKzR7;a5bt*+n@=ib9EMwXh5l>gx_%sR>I>ZA~A^pA`woUJZLD%r(|DOkC}d+20loE8j_r{xJMqLnz^nQ9$`9|9;oIF^xBZ{IkJ#XsZuB z7E~KPv*tO83Hf~O3Ksn=NfhaWcl>$YmY7;74K=CeYU`Q-{2VO4to?o%tp*) zJt@*WNqnmkSwSoR!&8?^({0^|-02RN&zEur@QcXJwY16z+2(N!`vA8%&SeK$izj!M z9BSBD^=8{#my61i!gCKkk6TwMMzXinxUpyrXz>g2rZO+j(^YQVz zv|Gc9FY{2JR&3~0m#3L~a;)_!TXCLp<}FrD?u?XiON^{AP%NeoYw6tl?ocD@A3`=U z*H<6mEopMRME>Dr2k+i7o&J36{%IjvFd+QUI{s&OI{ofKUMXW|+Z2PfX78-eRyb~{ z{D<_s{Fjl{%rmokd{M?v_M4#w5(kB&56ylE+&_JxsUs4J|vaCI{cM`jGCmU#MYO)+dQ666L!3CU=#f@y9ep zM4Yzas#fT;xInRwBwpfqNjc;$SI1%_Cn}o~ucEIs>t!B|m;2O)maW}zDyTj9l(uPN zK9jfbjquO_y=(e}yrzQDQF&dqFv9$^nCPRLk^0D)P!4VUgNNIfKLiOR_>lO!4^@!m zV@8rjak*ftGQYE$Sha{t4H?-4P=9oF6cZfA|x z3RbRFwuRp)?Gm+OywW}NWW^X+XS=1TD8uuOQ{DYuT;MCEHTspX)8n4VhAC!kOGlAE z0;=W-Iy13W=6>aU?|swwJBgvtyIgHl+nK<(Q!_3%zrDf0s((^Aa=3NAdT#vR&g zd?pyy$quWuJV|AYj+cgn$mK_j1;-0(Q~3F#PEli=dg&$05ytFKgf3+Li?hbQb3Ac-fN*(eH_cM}yDNROJh2g;!%9{q`YP zU1La1Xmr@kOd5L1#U|ZRa>dbJK4~Daz*1+Joj*oFN?ho)qm7Esn#S)r!<#1T%R0&l zx0SC7zPnsqoEyAjDkbh3ZJ}n`k?~-InK5_;72P`;D?$!!PCdWnE?T!lzREkRN%(PTZcGqC6L<^bomQQ%oKI?K${|Jr4&fff z>z1t@`G&z4`(f#;BGbQrDH0Rgo1u%Qb0siDixJaRqcYv0r`Vxu-J9uGZ;$2p>!dD-D z{+ZawU4Qcm#Fx<`jabb@kKswZhvdes zFKBN)dNIYjcrV(YP5zp+3bVATm(`P-C$*fv+6Lq_ma`@&1iaF0)%bHwXkA$35tH7>06pf>PqbhkG3 zj9pDHuOxG2LGq|(Y(MyErp0Ka-~YqjTL8z^bXkIyCE2pjVzQXoVyQ$HGc(&_#u76# zGh57PFRXetebSt$&>G%s?|%L;y*l8 zuUft$JQrO>`aW#fV?6{soSzE5YR!LAp_F`1tAABt2pPUO>n>ADpHFHzyt}U3nZkMC?)iNF;F`eM$blptZhw+> z#KMOvLuBXk%*JVfHR$fZR6->KMWpGVyri5$h$2H#?gk-AokrApIA+G&Y4Y7C3@*Pfq|@-!y3 zhxo>`^qhFOL^C0iAYT@3Ft!~}1KYWMc>B|WHz}JuxI)Z|79k0C8qo{CSK}Ago}%bz zA6HXYw0UX{wnFkgjb6+EOP4U?FGqgTSmRyG4UK#;@Rs*3m9+WzR~+6r(x&&E#3(LN z6vXF+!3_R2hKxA&>nSi&O!l#QrV?r*+D}a^v0PUHmo0M5T77&ATu?lnPaYX4=tVKp z%c!`vw+j_n#8-5}`@#~-E!CUK!3_dkd~vnnKiC$a1Ep*l#1{;J6u z2hF&2Qgv->Kn4{?uV$S)%cxEiR)1?()tp)7-M6PdoJt^aD1;gKqgJw@!cp&FC`^z9 zJ1o`(HIX7-8nz66Y6e01m$7ZU_DXFI+fbB9>EJ+3dDUUe7ruUcagn6BpH8MIk%K*l z(YEODH#)mzO2z?KSYbvl3`;N&WhD(B)C;rDo1{iPN?-7P#Llj> zcRU>&zMOD9u9MfJxMJ5`+C#*%VKm_IEAmtacwx^3`<^uuq-{Zbbv-xeXcysd@sXKU zJ#itz84&Tzl!5<-43P}4+m+X2*1fK})nmvZLx7Vqm_4~uN>u6p{=V)LhkN5S;m0Y} zuY(Qh@ZX@D77tb5>(nA6&npV*|2>#Cf|^bQwAQOC$D~;{e`F z+~(l7S%}1e6s=_JRdQ0GQ!evB!pz~v0%e+`RLa{pRFL1 zzeTs`84Ncj!gmyQPP!G-L~6}*=454(k$M!Vj;YL4ehWs~*_6xDpD)r8Xr0{-C6p{$~nOOeCSN^8Z1vn3HjBft( zN>*kDsVjF@l3`u|Mv0rQCDd;3{tWz!2ZK%rf@I@JvC~Lf){q3Tj-17sUSbeE@*1!~ z7~QvlMhz|>gQ^22Vce|+rgF2c;K_KRDErB9Y_-6hr?o#lh`7$B*;Tt=I4d2MXJEHj z*8tfoy|;m;x4kTr;uhTn>)-*Jv8A&j!Z!=|h=dYAl#T^|?(@CVG}I0eVv8qPWIV(Z z-(;&rYt}YK)FAhf%0}P-ZjZ3dwZ@!IFpWUQA3OYVWHzek&K7b+OEB|~?~3M{o84su za7&~XL26>25wCd8PoD2$cVz@BamnQeao)Rq_(ds+dAWrO6wOnf4@TpY(bq zcLXs482$KR)8+MCVOl1r43CmJ5(ds3Qu}d9!qt&Ez3hm#qz1bDZQe6{Cwg* zLO?R_4y}8{4|4y~!FAxQ>>h0WqM z+Iw6*iojT|KI?ZkCoe_alY8SBH~rKw zEl?hU!WX&E%Q6Ii z3)@Az{=fk%%j>)9F{I&;PV~aymp!|UxQy8vR244cWg|5yQG-JnCXU1=xCU102{nXR z8Alia7bF>@@ZNjGF@wkmSExXJdeN@%(T__XL~Pk;tl}Q{2t$zazOr6HEV(#}1bn9| zJC$=gaLn6?YoZ|MBrq!%&iXxvkb)e!&p}eGwWm~-&Vf|`?Ls;x!-=8B2>8YkNabTn z7^oQy^Sdb_Umj{UpWAWQ!_82I`O;aYC316+$Es|jtnX&(0?4P7uMHOO(>s&=va`K( zpIoeFQapIM1B)p_b$%!5sYy9d%&!tTo!RblO<~YaNen^^y!JBN} zfplBESb9ADXc-CXw%L^*t`#>y^+4Un$X&kb)x&ffTS^MW~!rk9YXQ~^40uE zd!3a9V^@B9L7w@H<$Z>S-^ldOfPE!c_5fp51Q_|JJ#PKd1nnRt%1+vr$ zuKKRMPwKP~EyDTqc$)K}us&y4EA8Q<1D3X!z6h*%HZDeF28()^GrEEmi&m2F?CIpj zu$oV2vtgkAmy{seCW0kUKYIr69&Cc<7=zbKg;XU_BG8b6vR%|yQ9)&QSm8)$enqKn zd#>uMEbF5cRJ}%H;lplWC7;bsThyr1@H*Nec32kdPy#G$77=aB_U?P0d&MHDr}(WW zsFNo*sKk8NJ!=H>$@$dkpDUD_$+`qReWH`^+kEe-#uw*p&#VW3^1Fslbegk8z$I@3 zIB-I4;MllP2=ZD7+i`u|c96?a*Ee|a?fRSl$b>9kF2J3{|Eat(RBbEw&pL;uxClj{ zkH3<#3%S#`-fA8OeRv)E){dP(_j}r3s6x4&av+KK#3o_jnRYR#*X zjqt~CSsHq>bi1op;T(`ciZveQCavG|&Er5#Zp_?GNT!MGHnB?_2_KCX>q60=+OP1<&dec zhUuJ$^B2oQu7n)NIs*IYZ5iCxl#r`az~sWdjfL1x*^HzvqLuCF^KHVHA<^y;J4F?(<6WEx#b_p5m7xIA z;f7sp21O#{{$LeP*wj)@#s>*O<&Um$pk(HgoE(~7kJOGx88X&4QBkZQ+Yz{_(}KEo zT>Ea5GBc4Q6NJX9ri<-IdkT{xTx*9yN0`}z8Ad!it+4uvu`au;7l<3VEw9eC2{X7Bd*w5HW>(v z${2NJyW1B0a4jWkMLFJ%`rAnUs|jM#w>TTCh|QMDBG%A*iMBXs-AQfN50NX_*#_`R z)1h;4u-eAl?E+ULA}YGZIa=E+Lxy}Ba<-R9zfDS-ajctE_SYQxV`sZHzUHddI&_&} z%CmZ!CTklIfnvpGvfY^DSWJX8bGsnrlk+IZ4vdH|acnCFNnxVa$l;uX;s{-_SK-lb z#fKD7LhRA@?L_(Wic$?k`~5klGtJ|^iN;2VK6^6+9FR+>gdl$P`BZvHV{;|ov-Vk9 zA};l4Y%UKFn~L>WT~X2(o|O}u)KVk5e0lH_oc^46&$JEB=Cy&H5uram`7AjnadR{e zv7L6Tb)1r-BCBTTpW@We9<6T6xQaz5wEG*`v{y*-n={CN29W<1#448~?{Fnc11Z z*!Vw+su;mBeE&n9|927_roSRz6S6UbLlA>CdCXvy&s&&qHkP-b^8Y!74dd6p$&mjb zYhh&kpOk_yF)@Q>Pi%xtVEG60+yA$)@?eb(^H)xAP-vF_C5;UuSU>bXWf?{`PH>cF zCPHukcY0QEWf3^ei*@(|EKCBM#g`ol(@MG8U9tA!uT&F$p0gU zp)DCj(gYT#RGtxtmE&JWdw+*$Ip*DF`v%Dg#YwgZ?JMQI`05p$hoT&RP|9Xrvda7` zErWF^@j8z(^hvC_gBuhF`}%@LP%)oj|8f;IE~{(T#EYQM?kX5{Hd}a|WVIjfa4zZa za1FW`;+icJZ^B6fj-ti80k3<@Q= ztS1~ac7c8@zKXv7sFxV2F>HE^J|FsN?ZvPJP_}G)f~F!jO@|DrR=#t{-s^-$GK#2UN``p|_Ixb3ZgSS^a|VR0Zxt*4QI?VES1to3cC z1Vedfg!WQyjAIU`hHoVZ&!4;COJ}L33_A-+>DqHD>#iTYgqUL!wJ!#g15n8Ep2Z19 zbU-Tz9;%G^TcF?80IU1G2cq(~CThR2(_3R4@!R*hHPLV}pVzXVhVEf3KkxeMOVH_% za|`}CNicVGtl)Gw(76;XGO{b(`YAx4pkNonpo^H=^y|yj;S~F!aMbGdmRI5W zi^IbXNUtw{nOc|7hXJ}3jHi2?U_jOEbtu`Aq3 zrI#Oydw3fhZ^oLIY^OcWur;85BEX&a`8$}YefmiWX-QKUp3yuB-3?53UD<51oLrVc z(l^-#qep?2~rPmgQ%Mzm(;?Xjk#}|RiEl(;_Hx&eN121z1UmUO4Mm+s$ji; z+-r)=cIEXtxfG5j^Tb&;{*=`pY&pI66Qu(00Ta)~!L6Qr!=b zt|cJg!z5Pcf~|Jm|2bEo&LRl=-6UCcqbJlI@!Xx$yR~RBx#ken_=aP1M(3vcIdc|S zF@tjqyerBfgmu4(JH}g-K>hshSZuvWox~=wTwieX@~&_n>)Yp-1J@I}Cl-rPoR?P; zcGUsg>HGXYZ}9Cz?lSyq-nc*F0yfb%6Tyn-so& zV}3*{$qs+Y&t095)BfKZn=0@wo&3e*UK?C0{KNBHbc}k4%Qw1~44}xy_#!jfot$N6 z-K`u5(lJV#g~GyodFMX!Ls`Hj=XoX)YU^Wl)E;ypEa@1ExDCVG8bE7&W5RC)g%AvY4l-O7Y7n5la<4j_H?!miGUy1WoqxHF)LO>+Sy7X4#xk#~JoyGo{NjIabS5{7+P=#3frTsk*J%=qCCT!aBpBq&u zI82E@)qMTg5|Y?E8`1UN0+1j#S$FV*q#^Q`=28_`@JStUN7Gj#r+Ur$Y#wM+-lj5T zFAY&C03FNtVd|^`-+bUvX2hq53bg=}0W}$RCx^qbY=?NeW(Lh0v04r5y&{?fJ&3d; z1Z*^tcle{&GyVaa$&^jD&hQ-oGu_S^JkBx?nCRsVaei{>NNWGlUYL)hK?`Wz$Xr$9 z`fL6l7ks!z+)XNnJfKV%+@SD+ZRJMr2|lb5gcqSPM_`TJHCClqQ{Fo^LK4_K^@4QH zYQNWnsqZ2;@pW+d1b%vb`9sf}p!d3qSmkET^l?76AiHK^R#2Ql^kGL&W-OB+zA3oV z?mU7*#^pW(_A*G6?L_PuRn%Y@Qf<2veVv8RPBeOw2*T?OHt|<@@|O$v_r-i3Tr97h zG0vO6{c|T5q8YX!&|agKJ^LGv1s9pmq6YA$v$6 zPD>TQDy?;$-8LIF9tt0{#d)9N!jz3!VLnt;DZov{b*H5NHtwSzp);(Md=|(u&AvVA zRTgi7zmOCHF|)@AyQ*MNW5oxiQUKQax9Ya?s})s=8p^G1q+!qfj5GJGrEk&1z15kp!{*<^*CQ&Mpb6rSkpZwhG{HT7K`_m7NWKf?j|6$d# zSg_d$-M9;6qe$jxXZrxxpYt=~km*)0_RJd&-`O^#U9=#{(%Ac^d!`qL%DOKg1Zr6^ zW|o1J6s}Y5Zd}EJpx1K(BWvCuxSEXob(=q$@_Oc)!$GB&5{>=0a#?IJ7 zfgr}mcFP^5stQ47F0}=-1hF#hDw$XjOL+W`q$rpqjX!!NW>3^{9i=ES3Mb;#e$dRJ zsGA!QZ)2s`X4N9;duTa#*$;Q!b|tcx@79Tb&NG|;IMrmEj1%{cs{VooO+e{01zzHmmt~ zeRD5!z^T;U0%0IIFXC-v@zWX6{<}ad{Hw>OfwLjpKiKo4D-%sb$-bR=TO}9$rR__O zlj*SOyj|+$%DQ-7%SPeu7AkaVGg4WmT(%!9x~yukTk<+nO}%p~(e<_j@=ZPhB8nSt z{=l2QEcdpy(m&X-6tDTWlQ8CjW*8oBG|80~Swa!`7;yXbdlcL3+ftws>_v)x z+GSG(WBH`{TK5$wwz|}l(b_{CRe#dh-8OaaWu0*D>UrQ>Fgo_D#f?9&heno@NGPy? zkYH>sp`PMR;H+bx-(x5y=(*uq+l|yCU~75-q{Qqqn1PSLOa`A+k(6yJ;*Q z#E)2sfN5DR6i_I>Y)E$oRh%zX*%{b*V_vm^=s3xAW!A#>l^m?9V#HYf8afG~=F&~2 z3cLNRbYHphF~lm6UCmlnKw`1J;f$T*^g8jH9&1Ao3Nfsa{_`@YwPYe+ub9?j3c?u1%ni^vFz4$_WeAu+HEvKWDMVjpk{P;^1O5j~uM|J$q zVGMj}3H$VLpV?(a5Fjox$+60nG~3cEY4UyyCu;!W^(d~?t4u{UuLozo_5S8|LgC+Ebza>0^ZD!7s;yP|7`C1 zS6+~fk?|k2E#to(_Im5O|2l|R-V*66k&3IZ=Km1{DNq%lufKy><(#W{gbCXYH1j&ydyV zkVged(I+RVC+C?z-a$a}+XgnBo;HoId0-@SdR}r~?)5nFdVToc(H{TD^6++zLgEu$ zVL(%oU9rzw`+N%rJ^L93YBQ7M8j?|N)3f~D3qhOP?FpmOUT+xY7evvOO7tg~3>mNI zhq^{%37*e5I752XJg~@)(k; zF4tQYN~H)Gu<=@wEv7IVYt&mb+3gI`Y1Rk34T(`oN)8uDr!}{w)o*v^iK1OS+KPrpO5@$-jD`W~R$%`J|34O~+ z53#{|-Scp+TujuPPc}Xh4OVysm$)f9^4gaY4+)=J>P$pGp?E=?#PqK` zwwfIdGr3)eQ%8`Ik<}bv|BQphCunCbWOwWL7AP=6x)o;xq$dNAF_8cOV7^k<>@zRMm zdNIdP8#(~=DXU9BpP7<7{YjA&t6wtS) zk~+EdoPMQud^&u@9Mg7Aiyq#7$#xY2ybqSoDA2dPYhv_huCq3taA;Ii!#F-_RH|ap~dM}?Nf9CLkWpABD_QByshzX;DQ~}B9Bb=&i!10pp`n! z2CLO!;NhIppR%0I4w$ z;(2|Ts@4HF3pgU5$&8$e(b?6GqfA=E=kyFbOIqnYSuV>WIk|U?G z)X1!RDe}0^@9tZkH|QrMXQPFsEr;gdvD9@c*-tQD3uuWwjM5?s1UK`G9KiMC_9RUQ znf(R61)kxAQV7fM9R~r3h6{_Qm-VnA(4FWKG6;rH#33Ql*EfvW&5W8_it7pRvNb3p z&1ztnYJG;7UqkI7=8*s{mYY8NBEj|jCSUC3ujyDtMMVW>`-@^Jt6s_a5C-PK`xH~t z;^N|zdxNpl_TL}C_J4{5qK&a=$a@+!+c4!DZbwr|$pjRW|G7+w_bs~uZkA%Z^jcU2 zOgB4!`EcIU`yG{_tjBMH3Ju5a4t#@GTdVg^gG8_U)1D}s6lhNMu0rWydZQ{A^j*Fn zBKPlX=Tu`9?O`%h)H&5=S*~DfZy@DwB{U>Bp`a*+Ke(TYb?-{#ZD_8Oq9+#S+5}Ef zHRUt2L}`F3d-pDYwJjI)L4A6YrozGj0lhuC_*Sdh_7Om+&$$2zQODiq>QNRnL)T2W zK|{u^vXAB^L&I2zTv(ck!Nj`xB#+bDs!5}W)(W9Rk*aXcGi8{(6>Mp9Woq?$y%#&B z^A=TAi*Aq7@BL_=5FxUVZx41c(xhpmr9&7hwX8iaI)n7)PPt8d!A<1Jg9klQrmE`5 zp=qtA%#@;1rqM9Cvim#2>7HdH1fxev625V7!=TM|M*>WkO3$a@wLOyu4WW6k+1b5! zva+w^exhXKylJ|1#MFelgnU72t9NPSaDE8FWTuu8(?L0BInk_W7yqmiPWbt&{T9K| zMU_rVs`Jv$u&QM(-~~|fB%yrMKm6JRP+NtI2z$K)?#^x=bt&mA+! zWJ@|8zr{cvf77M0*0{FU!r?U&JGV$L1Jw+S}KYuwa=!$`>8k(tdquz4303wga&tam`9_fY0U& z6KfhcC4tZ679ALBYBlSD$j6JFjbz2MXZMo3udBk6g2Fy5dWSv;g4d~(b$E?*98E>; zqB-6ft|n_gcS|J9WqHT*YZe3Kx!5c5Ce$RA+m+Xex*xDii>Ps;vf3`SiO-i&&q=OI zX*573ae-30RVGWpA{qyNiPv&_IJ+n(tt=loleZNgVBDoZwE|eU4SpL8&0?YuTrQ8v^#`FB1r(4}WadW` zdJG6w1;vDdsqKd@M9;%1;p<}k0d}bpq?oT9fJx8yGTU|N9;^vyh7m8?KaO1N2( z=Vh$xv^niBnh!bA5NR%tLnq4<(9r`&we2?#x+!F>nlu>>@+xMGf;ENcbNj;LJU+ht z*c~A48Ccw@5HVw3atOVy3URu|+qls-JE^zR#IA0@M#E(?U2COb7V7t^?fPdkLo~|D z+KJ_OQ7L!zT?_kpmtxm`HD)j{o@ii*^_0`7I^}v-va&l15BvLqfX~e3Kpd9DqG#7; zaF{-PU4p?whBJ<^;k01u9FCd!Kpl2{&(oP@ho}>GLwPFrG2C^2398?DBkrz49L>vp zDn5t@l9Esuf7M%JGN;%}l257A;X!(v^iqHpRx?fO-kpMhh~An8~~b;!r}n`zzlnIXKSR^7W;@M>a3<%1|` zmansfjVRhGowHVrs=o^{)1hN4AQ@-fLOa+T!%rc93qK&n3+o=gGA|=9Wk0eKVhf|; z{?cWff1Ea>tj%8`&R%+(qKn~NMvhlJ$ws22jAkG@wvHMvMb8x!qZ^NdkCHIFQ_bh{ zvMi<;GvlyS_lFb^*S%qb&AFl3PhC9dbn&ESdb?ZswupD6M`HIE;MB?`rW|ml=gSLd*_-xbf!2s`qBo^zWNe4u;z` zV@X{yYA9k#&Rf-?x7m@@>W+xWpmRW?Iht>1J$mG;`nQnspjR3y5NH6K+HY>lB zrY7ifzF!VBd(!xmGLpH<<1uh^YIh&Vru^jxo^8yEZ6za&c*tFNUxW-pJP(b@+ITN3 zt0PmxW7?eL+P}g{PEXndFK<;H#qz|gqz{PVk{_BC57cXWQgeqrEX)4o7EPYYib8A^ zAHvYFLdTA=Fsui4bxe(C^0?jGJtjvA0b<3ZDJ4#ObK?CAvpcx^>#F-bR?|@6( zkNf+oDuX6eabg*TR<$*CPPBD4!8xJ6;g4HTebx`sm~UOl4uG*<{~%czlk=maT5>LB z`2^tplKNU0&y5k3>=Le-*zBr78avpSfLnfqCtfWQbP*heVK+uOBA-@rikG zCrr+kPg~8Rtb8pm?mn)Fn@#sO4Xie=l&+w-+jEnX3kyB-iP=YeJZ$Wgj=l0)TJU4O zF)q{CCrJ^2ZWP=j+NqJ!ZfR?e$>)a+2XDQ=iyV(`?19X12aF3a(PQB3ru2QYbf3mO zU9$>OC7ApQ7Fxpx_3balrA=~kX}K1!Ma&>BC7;jX+LEFOJ@>GW9eITB)=hJOU(DR- zsG{U=EYl}0;g&yl*jzigUeER}bs)aEBpp0>_r0C=ZYC_zNpVT@*jKkj^0|`X1na`W z`TT?LqqNyP)&HFLgT&w%?x{`J;?RZ~c$teaF^5psX(=eyvjv0LGW?ekpL8|b>K}DT zJ=)&8920^&h^~yNr^s1~1M>&ADW!y@q$JCV`HJOekmQ_>Cx*CTtjF9w>a)m5t>f{M za;oWrWy9*TTo0|ZD2i#ilbmbs<>wUaD5Ls$)dbKVyJJBJzqH-GNs&s%L4$T{HMaBR z&pgef9ELmF8g-WQ&D*w;1lr@y2Pe@$I~M?=Q?m}}S4;hyua+e)s+m=Zxkm-xWW=sf z8N(z#|Dqu0`C}$graWz6NWjyP0iGh3%aZ&RuSkPSxj%U3huC~H( zKtnfEO2^?-Hq+ZG`mhS39B|&AQj(0AvAUv$GsmS_W;n7;iah;UMoFRdhp__a({DD# zxCsms5dw@|%f1)^rs(MuNIm)S>%UJgUSf{9x#`~A@Sc*jG9TWfVhT)oEo)cByt$QX z=|RYte_DoDZ8JbMDT*R>lM1TwF(6($a~p}i9oBLntHFm+EtjL(LX!fQgb|j?I31r5 z7g`-qQzWV2@E+rR0!IB7rj|ORifAr>e*$>3YPt;r-mJJ_W`2o+NO!>}d_Rm_gw7Bc zRJP#olwP=REBwk0a$q1$8lvW#w_UwgZK_?b!o_z?}1)+#G=oqf{i2BIyi z;)9>;ajBo2n8)Wi6AB0@&IX9}Ew8f^lVaPmBDbR`04QEmz{C}VVFAEoeV; z=l+DSq_SsKoHcoV*K(>2Ld|+pCf3_Jbq(CUba8L@mMkcG8y?p2{;P zi1W}6+GjVNSl`r>>eaMRN;ZX;2Ot7JNzrdBXS%6Z-Z+@d#v4=}<(%fb1Pb{$uHSwQ z9YGl*kO^GhcXSN}_>H%PX4_HI5f1JI<0sQgh)({n&D(nYWSdXIcn*u2NqbybnN4^* zj^9z6GXf{Md{8`m#mIx7DNfI|Py1(j)A4z^A*Ez~49pdb8ZOfd-`7`07IfiHnzCj0bfI75*O#=qq(Q$QC6qonk?ME;3{ki^|7s!*vJ9>J)d`pUDXU44Pb3X!1h?F=QJ# zu#?j9P7hBmnA*Mlh7De_z!Mvj;Hj=BK3a_G$Y&km?yadf0x9-6Wuj*fDh|4v7*V(G zU8cZpZF=5u$^v`I0vs~-N$Ytp24W_x^r>M3v9^wwNO!ZI<_-i_Tr4D9))_g$S?_`2 zi{8XV@fIU&R@DT&i^|8iGbupnc1TM6HWJdyrF)t@DR-Dud?cGHB&=sYHr8K=A>+^) zvO&d=2MemKI^FK)Cdv zyTgjbH%U75CK<#v2y})xMy$p~2HF+_I(H4di5)|dTGoV}2PY(;W7xCW={PLJ ziZL)q!gq;%Hl*O>Iw>Az=`J{^DeoUwuiLv4COCz&8mk{JK$zO^pd*ZNrd*nJ=+fU2 z>wl#Ia{*;AVKQC7qmC8Zy-s}!i7(vS7RGHq)_V96SZC2wZ&MAuSgC`?NOHb1PnZt= zG18!JZtJIA|88n-Y;D|b1`G#Dkfewx|*bjL7O{$RU`zHN&8L(Bz&jaCgp+Du=Ysp^hTarY%~6w6N-Lm>`E$f zYPR&rL)(m-3?LJB@(7O4nxqntB& z>s@`>>KAA7g_n7wZ{p^|g&?=DLTI~0|M-mm@@xJ4yqr?BIoE}m*bZD{qs#bh3qAI7 zLv}%lXMY7xvy+OdBI`bzP2_5X(8e)0*6o+aIxXma1})+MUJt z*s+yWWn5@`OLtU)tND0^rInSAHH!Kd-Udpe@rsNJOkX%jRrsyG`>f?A5A%G{?|VT! zZSAYGi%U~eQ(Z%IwwEz*?Hi`OJF1;%q#mtJ_RARN8}sEB#|@2{9%yK{%k;7QfH~9- z_ur`*NoSMe#!*3GxzdALU{?#UeNRZ8Hb$2w5m3C*{?V~zc`4W^_1AFmqje6fdROrf zUF0oi?fTYJ8a&e>ZdTmN3WX@r3DDl2=ao2Oqy)ga2pv;-dU9j)s~Uy3s;xUQPL)8Y z05f4FA|vf-_rgbeIrFuP=@0swKiUi)$h8wKLANh^A|w4nk?GAxxL7Gt`l=~rPpv&j z>_|tz>N>iVdqho{6?h4H1CM)ps|(F6zm|~O>r37}p8DqaC+O;R_otgfcdi?QA;a;zELVKIr^S(G znQmWexudzWz=$Ar|1N^Jdes2+*794xGCcZR;O;L^4&6Iik--K=&-uaK^}sjy_YfPY z=l@1ir~)L|!Kj%q21Kd;#>s&%Vt{Y{26&@R!E6^e1%@JEUQ_@);rt8B_*d$EF!EHj z26(E405hpz&*%MH3hb~5094?>3wrR>`EMUcAporBZ8=Te8(a77?E|p?2WFeqstDQH zlRCeD-Owy6D~pbd1#`zOPN!pogPjI1new?JM0jLblz6)B?&A3hj42&dyu9t&Eso&q ztM}*1HE&N=>1b(>h89B8A|fIh*|TFIAV08JuYCbgZUh4@R-3Pr8TCg-N5OXnVdW4B z25L3gL4zm<$1-_JOG{e}22u20#0CuNsfgAri%eFV9i-FPgu!HJZ;5hgUlakKjSdB(IUOOvkj+{6@GvO)26U`tFvuy%G2$-SC|vi;o%`_ zT$A~Hh2BbFC7o8|+3skXn5g*f-X1&nhR`^dg{mK$86z4R8fIo@;4)FS*xW}aCnx9U zRaxS|>xkD#5E8+flHATmlhW{1t(h^k5RUalx(l|Cq<+1!KT6X>vVp7 z@c$k~}A+hK7dup;5nn{VFLr zxY!xa&B^I$#O4!W`J{pv?{2~NM#XP&o31vqo|`^y55~pEqrDZ$m?CA{At%SP$wNUx zA{c&|Cm4iSQ&ZDpeKj~ZsJ9YMK*-zFs8!LZOZo1zACKEjQE935Qf-KHDcWuQyC)P> zR8(R-5@O=Bun#j%+RZ?sDMnga_{SoMZ&QSL{APc@Ain7l{a51uv<-kq3t+Z;3IYW4 z4#gb2mm&m6O-m!e%WfA0_|AL-y!Y-A`0LHTB)TBXqj5Oqk-^gv@;g%S1o!sle>G9P zhJ1D}^&xEhb#^|i+rYM|a9lLSx+IiVp{&2|Jdy(PmsDKK`I5Q@~11v_q^<^ z+iNmWVKLafUp5Gu=lp)(S9zTdnp-o6rnKt1fuQp%t4-i~?g3yQ=kJa*V+**b$rTiQ z@AqEvMHB`R2F95J1r6&93Pwh};>e#fv+J3Wm5GK*{QLX0X4lR`tMBvy_j~sIzYSyI z!iuEE2&h#d_-L-0M{|%bRgRIQ8Blo5XZgQBT_xJ^9#_8_kGPADW2zg>Rkq#*e9F@4 zIJ>=WbJ+-2{icQQM^bMg_^-AEFD?cjv{p_xEZEKaI^rm#Q@IU86Cxt)Ke4mVUtjKx zrgZ?1$UMvxT)Be4QRe{YFgKFUr^TV z@1>RBEG!aaBqHJRf}i_Y$TH~-KFhu8vYP$_((ThnqFQpl-?@dl4mxwsr{F{CLb2w& zFFQ!6wp+=i-8IPFACs}tj@-_Qi*AsvOTlXyVRdvQAuD+6jgyLK{A8VnM_5-=S)^ci zA%KEG>!yw3>TILUo@+HpdcP#UWWl=2y(73b72{)4>c!G)XM28InmM&&^;P6>?kmV| z?&+!ykWDgVR!N zQU@f2Q&IF8&sGxnU|6#uQq%AZHA=G!l1WevrfHN+rD|{XI$p)OlTOSd=LN$cVl%j+a(4r+Ri~tT1IsErr-@AeTFF(iH8M z6Pk9WM+Urv#Cl9fu)w+pCgf1U{2#V!mhFEEV}7hxieYE$KueQE)$So0p~vSUxmru5 z(ypDs1>zaMa4;3_?hGJZYw6D@S!+!vTMiFrgSZg)GZ%*~Az75ct{$%=H{}&$X;Ch# z&bKe!mt2KBTE}#>W$rrt@+m7C79Z~8j6dpUfZU#@LQAv|=)OR0C8lN=H|cVFT?`Y> z7_h*-k4nX=SF_uHxnmiQ?PC$AR{_Rt9&|-RL1Uy$%X4}xA3w%Bse}dN! zX=V-#IW27+R%?DtUsOb} z25D$Zj?uujy4!5|^78=p_oeSn_03|6;-SKU9T_r`6mPx8^{^vJ&GEZi&i(M2?@J*%l*S9!kl)_FLvpbvfMRA7POCG$Ir8}A z#YCMexDomxxQ>(WdCNtoB9#kT8iQtwz8Bqnb#1q>qw^&VR*x?8x;=7>LXj7jTWjjF z^VkQjJd9b1*mxIbzAj#Pbc;S?)^S3rYM0ZQPwbsP#nbqi+p;{UX@}rB%-2LUC1vcN zGm;n_EuFZozSelFgq6x;wcmJLvwU=Jm-%T&eQHno;fLHJAvgR8@rR8-lh0%Q+woe` zm&|^@rGW%`GdBL_-@rS1PUshcJo7k*CPUcp>L$C_^u)~U*UyQz4-p8DSuW^;;25cz zU`fY6R;a|xeadOWO$~EV%y~O{49Qp1b-CkHP}n%{r^?kFUo!a;Y3_@~y~&)_@S{d^ za!a5%1EW z+nhkokad5q8h;9%zwvz#>x(JWfPoJN< zZ$D)J>C)>?6xo%{y)g5v*KeOc@&uHG=9V+K59Qki4E8nFjj72h_JK6My=1i=;r(O5 zkDRW)+Z^G|rvRvE*hTBcKY8vwK}gS{w>(+CvQ5*c2&xdV2Dt>?soqw!#a1fxcsha$s}Wb=W}h6V_AJB~3&vtJDZX;)w|z zwm)JQzl|pe4pgCppUu4keBFUjJok&MAWy!b6Q2>Ic`}%|8?ZnXWKGF5*6mF?(cj+7 zOf@OXB{lchv82!N146yK3kO0`DHMVR3R~AF*1jo(p}G1v0@!(F1V2hs@>8|ug8BBy zYA2O2D-U5Bvh$kROA)!o!NtWz&FD4Y3X5BRa4D>kSkl@{krj{AM|2N|O_f>QhLWQ$ zcytGYVl{0>M7Qpq54wQUyx!#`rcF`3okQvyIT{)R!R^}6yqxTExQ+Tn(o{^Tok9aQl(nj-?)Evc= z$XRQ=3%6Nmy$^Mgdrw?HBLYiuq;731tWn_t+|Wx4wv08d68QU?B_8}RUz|3^R)^Er z$4n-j{{Yhtt6g-3Q@p?Gm?AQ5`qEJO6EgbCCcxu$6LZ<86q-nn= z1QI{bHLEn2#8rHTR6dsv=KpFsE4Rxq&Tg9{*xN(6QioF}3g30*ku5K~_t~#%iJ7eh z7-W!|rKs7)FPbUrQ3r!`eizvMf#xL0a2BY2v%Sn_d0pGArV~0yx5}b&QQon90H)@S zZV(uV@nr~$Y$|q=F6j@6sldqkU;IEOy!-4u6>Kx}|Hj^1Mb)(}VS|ta_XG=0a1Ra} z3j}uvuEE{iN$>z0cMIp-QC^km2>Yo_w@hNqsQpC=8ZjIuDNQ~too|ztJ;yE zIc4>+s9jMV@7SwDXpJHi@oqX|(d~-ZLs#kLQgAB2o*d2EqQIin%NE2zCe^NrV^F7latX%*EtKQGO*Zq3lT-9qLu zb`}zz?K$lvn2um-HWpKJWK(*-kC#Z_Lap}8#6MNtXjW0m=X72SV=f?L*yZD-a|^bX zcWf$#$5@Wc0D`rP)J!+VX!M760nf1Byk}cZd{)mWiQ>$%nYZTya+5ib`LThYXQxuX zY1mM8e}OAFnB^%r$O=C>LQ8x9D!Ybdm0d=H$KikO37*}2g_zc{b`EiKW2G815H6`CLRA3oTGh_7 z_1*ie+bf~NB|~XcKJfoI7sl}@8Jga{{xGyw<_>u=Wl`g8Fg^ytUefy{^|?9qB#BHW zPd-Z-ICiUo`K+5kERWaGp>tSoKU}S)D@z%Ve1s5We100!p|Rf1oGaA?P5~=c(rE16 zN}49Gyk_;yEd%E=&gkqM(@l-lROhw%r#Q#dP3L?z!nrfJ>7?Ogj)TPo*M2lqJ=Tty zlp3H9ZtZmGrzfr7z}CmUq?T_+890Ty;DPA2Bd{WoOV6n;htL;*O={#Rn*ARGNf zhfC=%NccQ(aB!O6!$E)NRs|H*HGZ+xaoOr=TM^tvD`kTL}ACo#B7R4sx%)8bn-{RpDtDBw`gCL zZH1FgYHl}Psf{R9j@YDJS)P=Y^P3#llhOZ;#$>ie!Dp8~QN7Tzg?~hF7%zJWddz6t z#?i@*RQFsfgLE8evb!`8DS7K!DuBQX_RVaBjR?+!;rRVPnHe(h^xG}Iq#!(PzQ$_B zsJ}CSgX6mAnx|>LoRHIL{0ARew1fVLjgvN~i{ry|U{e!e_lTDJse&tMTGZ9EFr0xl zj8zARcC*XDa<)`L-F*>l6D*})x2&$yy_tqxu9oDLgGK&I&Ot-hLqvL$>)HC4!7&({ zPPF!je`Ru!lRQL0PeE9vzjf@$F{nW&f~nvZzLUfoiYyj`^*4l)u{*KD{u`b zIV@>~Bna%#7Nf)`LKG7jxr@4>+IOgRtuxr z*dz_eY5yJJHi`En1_fQ)xHvdCJf(kGuJhQ*mKu%O~0G z=XVjapp&A5>tW#335-h0-Rc0h>g$&nXsiJvY{E{pdVK0u2B=%3h?iy@gVXb(FNS`7 zCoZ|^rE93Rn6Vp?+TmT~)YLq>s;F>rv~AlYj*;7`sy-p$6Mv)uSmB7B+}DJ$ zIc6pT)rbQ=>*K&Qv5`BiX1jy?IV3w&AtPr*f1^%%4>oF9fb((S%^UN5+DTpe%4 z>v?#qE;sTTE{%gRWmc*90Q2Tx?5;*K$YG9#hZ3Ljxc1Ro*g3ZgFj=RCyzpU6exqXz z<4NHqYBulINN)2~TT)1wPR_?k-2=(W-%zNuJRp(n?XOrl8TPohNEI5VowobCz`5Ae zR@PNjIoa}ibFv)`SR0~-_tQ4oxajpFydz5s*C`KhqFrTCZ)pnV`JaR#K~6)q4o{+W z6DL;QG>i$)?|N9>knsY9NULd2nm3L4@RoFZ3Od3!Jp*^IeeX_C>sc-L?8yp#Itq~Q z?A3iMO-8x)e0Q_KlU}hat+#a=0{?%t^f zx+&bTei?<1UZ6wHG0R{E#XHl?5YMlhWYm6rB}wKWbIj;AWTq0+xhn>lJEKLVX3EUw z_>MA2W6PUuh0vdwFj%l5J@&>3eg2)FEnmgY_9bL9g!=s23F4MVC1I7^*At6cFA9Xn z_m)k#F<+j(^Le8B;S%ZF(&};#4S^qSNk7E>HiS*Poe}pKO`2&R%OhW2xdLX%*EC4O zLOt93NeGK;006)m#Y({Pp|s+A5vN5Ng7y8kxl$g~N-w;mp-o%2!_;Q{m#LGRlcCYc zsxFF0< zjfH@hX56}C8PdtfzY5qM7te@Su5xLBrWXsadKNiSY?kS zF%G%CC-$5#rGB!Orf$xyvF|BkAoC_H3{aWp# zX@OVng`O^vPp(^$4tklaj{U#^gu~B1|9wmQzBB%y6XATX+RLv)r;6z|n*92sRae-{ zoMrBAYI3{GMnh})W`>lINBm{2wkyWG$J1k*--DiJ)rP`5dK1%$#1|g#<0E6Elat?K z??MJT%snHzH%xe1!$+7N91#4eK>O@-yLT-0mP}cvczda6`1yEjN(c745{AshlGSJH z#9U!)xGm3})nWS6axGd$eig%y=U2r#3nf&SS%N*^5+32x0aSCCrLeW%5J zaTdlRUD#-HpK*OED`qX8Hz%@b7d+H`=&@ zD=|6|6CWP{l!A>Gyx(WYGWHG+_Vx}N*dOrY4^$KeNJI%f-&kvLdF^*LI?PxLAS23A z|4gufW*YWcDJxB(bT%)V`nf>=#lZuP>bqa-)emkYQR(FBZu66Y0?Tce;a`S3!iNqz zt-tm?57A}@3w?3@+f!|jUs0Vd#&;Dnl(&TDPs{Yi@uP%xZN^J8LPvU4*_XVPsmtW;ZHmiFBTSo{CUX~gD}l?%JE z)mblT=<2>q7Je~gQFndE2Nm)sO#AEn$0`lP)+ac4d3h-*^LX*LwzjaauuO)MuO9Cl z)}@5iL|=)w0K~IDE3y!R9D~Kh@bU5S!YPlfpl>NUg3zdF&o1{S=v2!r7wSsCe}7f@ z=8RY@3|DY+L(A7)NJ=X7wiNCU`rAES>ktOb&(D7VsvBhEQN3M28xc@byxyOZQdU-0 zQHd89TPJe`N`-VPC2BD8a%|?4;g*bQv~6)F8Ev!`5EF+4oXh$ha**9vq(VPjz-?C%w=p8CKh z^g;cns&c#C1m1$?HW?=H@$sRIq3LFLb1U&rYEYmdC5)PcnAg?U4HYO6|D7lkMI(#mSGdW%u(B)Qr`>U0YKhzs!z}Si7g6AxblB zpF$q8wM6x#D_$BqhGnmv>o_=^ov%G)bIDWUWxf7S6rxsI;E*T79w+{}P6X>?gC{9bkaA+$+fA1~>p5I@Ba!H} zU3?5~f!3X-C(Vo+Y`EyDYzXE#v2ELRP#Yx@g!FFvHi?>dllt#hU+C zZKi0YdI-;S*){bpr=W+}unfhIpU-rietz04?s+J5d>k~Yrt?<#C3odwJ}nNe?A>= znCIB*V)^OehIp}cZ)5B5YprFsEtXO4aYvpF=z%sxp=l&a6Vqv2Z>aZLk`~4B9`(*+ zGm^2W|3~RVn0nn!=Bbe7T77Ju!Od7q531!#t!{?wJxVO5p@dBHu$CKpTco;EDKYfX z-8Fak6n<~twWj&@yO^H!wV2KSL(*dJkBFY&P>CdQN9)B*D6*~%jl{`cANbv{6bz21 z1-vr;RY`Hg7Q3m5qG{~3I-HHe^ysBUk6kk+A3sLe_GHZ!KExm=rk+IPpt9hq1KIQH zcj^ce+^0n(AJ=Ur?wX)0Z|#uwzAX=Fs%lxB#7bB{S7TR)*?mF%U(L2sBX`gAqhTM& zAyj4?d%IJBvrLV}L(S!N9Bkl*aaqNwXS9e3#>q*`_xfrNQyLmmIR^-#u9CZdavHId z?VYWR5ll8|v;H|QFZ7Y51gP$PEfaN;)_BO`q1;V8GS$6&-bA3qUfj&GM3dgM(wD}m zQ<(C%NZu9xT%Mw!@0f!BiTYHE*$9K0TI7alXz6Kzv?|V4K9wkcoA;`R3mO-U_|&OauG-FQoW4iYLF2hY+|d3EiHwYJa%c#fo6KaL7Qj zS(Z;{J64hIa`aSUCJg-o|ovV>HDOAOnH^IG6u8i5_z= zA8j${jF^)hmbOfd*NQR9HWM^=q&*rOQzYz!_WU2ie`CdZ;S2Q5R3^nIBb)8}`RmKh zHG;{shhH`xs;Xtx48eOPE)B7mF0NY z%*T?@zh>_y1XKspQ{Jw5Oxm~Dy*7fm^DZtoj#OW4cd2e-SBZ~#&*d-!AQjk{p|uLu zcB1m6NeK~&%%#MoC~ik@br2rP!uv?AK}wun1;G0_kX{tNV@j8a5l7r%Vu3G95@4g4l+09{8Xj>q(MVN*MF1NaJe1i7;jro za&$Dt-ilX5(_fSH(Wf-7wA9aU>Brt@W#w3-g^1-VE-)kSu5@#aT8OyV+rovxxCO?0 zE$-GX<1sEh&HlO!$2%{)P)$+~wXp?krbPa$jB4m4X@Uw$#iq`ie)NAE@f;qNd6`Kp zOiW}HlyIp%S{j-}ycQYqQH~0VO2~EdPG%diO)^a4 zx`{9H+?w<7P%t-T+?_{{cz&wlV^OSYqQFVdxo*o?$Fbri5z9EGSWr{D-g=*TZ#xe?LI) z(yTU?ar^Y)FYXV3B7qkNS}4PTeq(^1A_lephfj0~U^WGXDB%wnFXXT6fwh5NVw^sBHFVg9>-nz4M|0KrKYkzr_z+>CK!J>vwHlj20{}|@ zp@=j#Hy0Nc$|QbVJDjUdfZq258nI0e{Led>QN4;~# zWk4nANCtn4!%la=gpOdJ;c$jeDAws-Y}N;sxCfIT62C@}+ghx4xUON3Q9OM%KkpL80+bAf29DZm9;p5aZ-@7)`(M5ab<%gUQdDF*o~lFsYtq zkSQoJM9_8npf$HN504qX{)2-#7ko+NJE;_luvsU8=*j{Z&6#JkYsRBF>Ccs+ zQ*pPR0BLI#=dT#;DQdvbRgY?$eOms5lN0JtwyGzw;f@Fwnv!Z9RTL$mEUo_3Izu#p zbCCg=lVW+Pf?Jrt3##Vr+Tx&|kJAzNx#`l$1$mE7+PJVo=e)&UY*CaXD$i132rM&v zR3rN^hxZ!QL{zv(m;*vz&Qm*gL>IpU>|O!w-0hpK2@ALT-{t=h&F;ze54r_g~#_1)KwIl!}m}v4C1rf#)8BixktM%h_|1`hK#P_a!a951i%8p6P16 zMH?Gajsg!5{6b_9e&n-qc05}9Q|dhOD^6fC!!{nF_DR>MdGkiBoHryh?OUESQ@Jns zSsWQ)GT{E0jA>$VF@El^imWms(Iro%;^w*8S+8`SgJhm2l{bwfzC=)9&3Kk)|2$os zolZuaFKe?igiYyKn;ybyd&M6yV9bg@AAic-Fc>Y52``L;<0}VJ#L)e< zb1^H8_ieXG!-_cL-dmKaw65c(XWOe*SAh%Osur_G`?x!LulD^L=lhOI20Uk72ljBS zfk(<9_iLM}EH~AiUkzH6DHm71KnMNb?jOh(g$kjvTjYp-cyb~G)gS63ul-;lko-}8 z)m~@b|D)0Al;$oU{y)yevBq!3=)S!BJgW z)FL1xAV^K+$l&s@tbRJ{eFaVw^VO%cbf@gQd zw%&dwMVXqnbWad0oMQa!z1yf9IFFZR;-Pg8s$J@^dO1U468d6RBGCE*5EK7n$HXM%&8F%pBys8>{SboIByY;ucgAo9$e@&5+XAw>;K0H8tgYRHZ-|yCu3DN|%${ z=2-jjXr{TkF7@{@m4wjYrYIYlkMERx(`iZ-;j5- zmexi1Mw zj>?U7A!+%H+o(ns_=tXbnDAxfF>dD7MqzF1WuEi@3?4tBl$>KM`>jW9Zg_2YIK%I8 z%QHxaax9hvVb4j+BTI99ZVwVh`bIwaf_bOpf<d$$u%lt*#0p<)y`4D@(3Oh=NgNk=L$Pdd zOmYRAwoT}XtNUp<)UDB4QFR@E+PxK_X={DcmMza$;R0l!weYoM>g(xHZ%g^~=vo5W z_rjyv2!wXQ3cR1B1pcR%V|NJxtneY6oE$TXXQy%nT~6zslBbK$_eF^3uk#q2H;H4l zV{i7FS~I~ay46T_jh6y$wd{X`3l)GJbQc1SQPr@*KCYuPfOwBXz3v(|P)*hiW%@cz z`|%tcVO5+-A~4p)nMA9x9l54$KQ?sTgCN{{<`%n)!^yX(4a`#6^*XVltmS~Ka!7Ax zvnXKkTDTg`;iZjXIAq#y9%IPom!^IzG96^#kYdh8EhlEZ9yct*E)k9`AVn4mo`EG! zUQo*x6bsdSAFIz2r%;@isjZPyQ26mm?{UV1K19$|l?C4A-2m)bzmNz6MUqv-It000 z1xP2lKC}(}^nUon!EFd}e&?i_VT)MY{eaMynLq!&j>IX=@mK`8bhBs9PIUplmK?}s(){l>}tTYJ61yi-+$u!Uz234v^exTYQ4o&D%&UpNiG0`57Qo)U#6? zUYdv=%efHmOcHMR`~~^*fdfpjpd8mxg?nOU(T}W_mQ*b|KiSWegX%9CHm{Pdh8zK8 z`~a}Sq9(6y2V6lZJq9}uO_w$~b6@w{R7EcPeMAMvCaP18N*M-$9|n40$d9#EtKV%< znqO(_(O$i<*+oBREji(WCY;fDQI3J&XcTrQiK877lK|TwGP~8XxVmWfmAAA??8!Q5 z@{9F#NIyA{m43VjcW2-5f*;&5h(sko!;3dXkvbiYn44}xyQQUBrp{|tI&)3DW2!Uw zwUgv1_Nc&snn}bzZcSw=?~l()oTi`y-K%JiMakb9yE}x#l8>X;_tc8_xMr{eaju7@ zxBPQ&iT?l}e(}HnZn|sC38OV}D(-~`+l>V(~Ubfee zAr9lb0qhsny!vGG*NPL+);Al%a3;k$WElRcl(kj`C0vf%<{3fW30kH3*YbOudSj(> z>hwBW5m16-ni*;Mc{Nl(SjiIV1&3y{3>U-WH z1nu1q?zsANTz}(s!G;WFJ#=^WDRk8KgH6>SQO>d5y?0R^n0)N4%f=PPHz>=xOzj%d$CluG3vVI{6+qgEwr>2 ziQ}*GeR{sk5lxmHdeCf>8)>dlRB5f9d!RR;EA$ff>MN{udW;0VB&QTjm{+bgJnC%L zE@`i|u?b?;L%Ygbm?GLhgen#rPr7FiT2A=KV2L3{;6CV{zwQA3qOg}~` z>7fz=o0cEh4sC9zq!(pwCJb9TI0D9TOfehtE9#In713j4qVP1s;Dx)mA&{=L0^5 zbw!;{PZd>J(%48@Pn;3PJs7>cV#46?-s)xeP*fIM+e zkC&BGL_TBQ*)CRjr^~p!`embC=nrAVK*>R~rQo7C*__scR|1nG<#4((DKT;K-DSJFu+xrQv_0}04+^JHs2JQ5Q8s!r} zwf~f|6;VKz5W+-9$1vz_ViG!~5ad`7n~xR0YMTpGKXP;3_Lzx}(-yfbFeSw-25YeD zzfYJ(&%Gq>;mnjgnmp@|2rFD?(~g+8U?!d)5A& zK$L{Nn>`oo)^=SS|5&~IQ&ruMB9lVGqX_|fvQaFZ3M(eb5;drUTEf#O3>%7ouHL@>u(~%YTnxRg8PT{9(p2<@Ix`la!Pkw?o_WY z`#mz~dfO${3g`;_bL>G{2;l6GN8Rj7J;2S0T7&omm(?}ONj7rb$t^!P6em1a@A|3& z_|TJ&U@=XkH4L`Q9Y<4GZ`?jxOC{pKmx#M#m?ty2f87r8dMKrJV=iAGv6y->Q3FC4Aro* znr^GRXYV{zk@48SF*P?50fIh7QZgNu-a5X~flUNFg<~}`zxZFNCpNQjIVn}7AhXp zRj|@TXxjwvON&cUEe0#}ItB*=FAru!sMV~7*)ShC0H?ui)rMQJ$!0h;*quu@6V2w%HsDPqNl9HYCYtX z7xNv5n#6#Ds!@Lq2B}c!Hm{r7*!ZYm4>J<;Q^hKA_Sy^u-8=8em*gdH^c=1j9~SoC zue&}E{sx*8iMYMD?d09LWehdhBG~c7H^|Pml+M(|MwHD>Yqv6xEF88+tCmD@fBu}~ ztcDMxY|8_kbv0g~>9*O|@^~Hkc67ZC0uu;W;iSv=Zcnbh)6ubO`Fe8bd9&Plu`{xe z;T0oSa%=C9Kw&;uR2r1d?{U1fb#(M}K3Dy)b0lY_W0;#=*tW0W-zoVW`Q>DW8fnUs22OI<#!Qa;zHFY?T_&p(z+w0NYnhcI|PAm+{>mh|86yJntAx>l;- zTX}MorP4Al!K(CZWt>Yy!;yA!q1i-KHW2(sI91fRu2vAmHN6fW+|Qd#Mr%Ir892D^ zK_lGctVut+PZl-~27l?ulTXy*f@OD2a9au!C3uMLAb#7Y_pyPu3xfV{b;p^mu%;~e z8RO?v%h38|U{hjEyCd(yflM*!%IF)Gy*s^%!8eGh4nld}X15w)8Z&2gk-13Jmu;SQ zbe{X$AQs6Ovf~D6kdOEV6Skk^cK%m#<`h#p0}}$=tYYRzLnX#I`T!R*zk3dRSu_7*T5^G)-&iqdbtT%gVc8Wlr)4d->aBhW*Brf-^QI^OvSfp zkEIZK(vpsbdM|2o>5b%1R*B-LX}=wmqfyd}a3#;gv8CPP%T!K}&1( zUin;(#_xh!LLlI@RTjKRdnW%GmHFaMxja=ePzY{O0Yb3A0y}q-;p9Qo`jDC&qpPN* zl^BD2*>8P9i(iVt3WmsK{}`rQxd|r4cAG4=J`zxKP26HWpwf3_3vBAf;!LFI>~pR6 zcw;=sKce>bbJ=02Ek)`=^_wyP`L49xG&FJNfjAT%ky8vX>RZqS zWKdA1)ir!hO1Pb|Xh=IUtSfHE?R!{tUnqHkj9D<##4AWI+i`mWsx3uPblYAI`4V>I zmKGP&m-(BF`~%{0uii%>|2AK0!Lvq5z&7Som+QH;lO_%C14;!19My;k_?ym>a`hWO z*Tk}=a%KoNKTGkk4|)FjQJpc~uLkMURzhN)I>~UG=sv0tKvQj>>>DOcaw;w1b^krn z^MZ?v@528xHE*?VSV&y`w?+I5tKE8MoO8soyN-5??R9?~$Cn%4U`EQP5P7Ko!G&Bi zCx6}FhAc@#*4K(mR&N-qi%6)b7}&FOlKYfh$r1)_aGVDMs$qCRju8xF zB8PS5QnNkc=i!SeWd!!lSyqScd9@WeCX>hCO?s?mO0=4%_XZQD(r1VX)rL$~0p!oD^@sth|*h?*88X5y|h+ z`gRLFN%F$@)jqsDo-gPXlrM+WXD3Xl4WKfBL$7AL)sF>AdtSkQ3l#|moNn%aPglH% z>@n=E)JBd(3^0#1o?cy1LE$$rvlIuo)_<=PDi4g;oAc{f>l`o0%!C${e|dfankd#F z3D8h4NPx>k1MC3zf9(LL^`h^T9WbvJV3~Z$lg5zDj%;+;`BRD@g1ROCJvxg1=a2tX zE%Ndx<;9?&MqwLWPKfZrbs*kPz@S|BtNq-vGE|6Xz`m)aC9nA;wFA_u&l@W%tJ@|R zU{9}rvAf_d{k72df2pTMa1RI@6O-5T))r`G*Z-zf@%4AUT*mms1S^#93yk~CF^UEu zbU*ZN1u(eS3cK+AG{C9R|0et)iqmG9Jf`o(={+=5Bh-W;lq7J;f!!FJv6W}5kx)q| zqGMxULsH%noW3CbOJHo3$zk#&Oj-?}$lt!iR6#=xy#ijy?7wdh(eA**7Jv2aG(idm zss`#`|M#du2<`iV1)R*^km=PV#!t3?X(r5n*ZEuQNdHxdzy9dY=Ks6eKMw=&@1ITo z;d+op94En!E`u}g>|BVEc=-Hv5KG|utx?`#I0JXkI@tl_?dZ3V_Zqz!qe`!YBgfD!<+ZTsQDi_?vqZ`Dq|0z;>7dQ56>apPK*xNh3g`G|=S5 zU;tJ9^MTd-pJ3nV*TDM$ss;T1NfWk!?B^AflM>0FSPZy5@qmt*^8G(uqQ=RU7d3^f z1=MIMi_#zu+z%6A;Toc!V8k~C2BB+b=KE&IFDs|Sc)1~;PhFxL)lUggZX%sNrQ4z< z!CCU3uDOP1C`o~*z7x8!Pl@yiJ~Jyja-86B3Q&{N)+TmCm!mA{J z_s@UWYnj1>lf76CkYV?Lh*LSc&&4g@#|;?V4%Jp_dA8G)`Oby;K>VHzMG@6VJ zv`Gd{dv;}iK$KFmOR_-?%P`dgJR4x3DH7Riy1H3sh+7_FwO}6%oo-m%+qXbcec07^0Jw{G;;kZFTql0Nv7T(tC+x@IJRO~vAigk4=8)9f5 zyUhze(8p)Mi!&MxxZqO?q?SdDDSaz>eI88jcD*__p@mw1Vrf4t5ZYbjp*vdTSqhsO zpL+c}YHsxz4(eF|2%$#ZeL=M7Kfw%s@z>%7U>M=NigiV8j@_*J-$c6!5?>t}gm81# z#ZL}cOJ&%nlu1ovmr^jl`@@8|AkdI-S~^KP&CRAmoZM~sB_{WAA+6s)?aONES7XO3 zzd_07OF_vi@Pl6~u&y1k64pM8vZpX`Q2^fs$JKRkkBSr{Yfc-yR(!Ip%(~Tx=D<&o z&f`!OJ~TF~sL>H)1z&xBAnSGM`+nGsyl|tsO$#r(*yw_*C>Xk_6u3Qb|GGT`rb2}H z?j+o-U*m@&0qXAPFQ;d9<#oGYr{>Lic|tv#P808z3VU?LFQp5S%(94A-Q5H7NSwc| zREcZy5Dm`{sdUm+gc*_Arh5$=YcK+_JX{)yicaDxJl*}eMK~C3J&6YkYUM(=EFgd> zc$xV7(K(I#y~SymT4ax&3uiKnDQNYg@jsLmRM=4cq&pThdwu8-J-`z42c1x1P_2pcuL)3*m`o{B*OW45MN)%MoUa zHvyGsLm0!J-);<8_b^#rLd6a7LI+BH4q;m3n~3fP z@4O3a>d-zF%Xnod54|EIf`&4J``g|PDTomzh%olch9Dy#prXn$l;p(}575G=t{h#f zu5OFnxBBeFsK^#|8wK7&e74pwRA1qvL|H)=_pP%*QXN^jikG^+@(f-jy64fE3G4YdEvIVwsy83=km!=a$5{eJB))( zN5|>$D)iQT=xb~sBHOB|kWndWh;z~q@xd$!jBL>XtolCJofg-(?#>-iZfo4^?96$) zRa3DOVc22?8^aAG#aGMjypGOo9y`~5CQLqtvGB4Pp;E|52&iF0WrhwECuEHL7apdz z@_69(we!w>+(fY=7e!v8*En@h%YmP??qj8b=#oVS!4dbT+gmYkkIBw$FOxk2ZNlw` z4U_8?qmjNj`hmL#4gRT65Hx;W7KEJs!-mKk8(qjC|Cp5mNew;qiv}jDY zRF+?+gjan(*_@{V-;xACs=r)G@Zx^2!CR@eHZNDxqoPIwhLWBX>)Dgb$IO_eMw~7b zD%W0wk}PTLM}a)gNlt>j3)>Vl(y7dFRpMpdx>tqSFuJ7If_ILnPa9iKYB?P96;dbA zuOIO73kyGp(hFdu>-;XW8eBgKRt$Pxa`9Zaga+Z6pMv4vOb$86Xlg}KpP}Z53AoKk zYD#H~z)TcMskV|js4@}d6=ovJv?_jz{zB*z7oneL-E5^$d|09P*)6L0Q==b)v@S+%QE=XN`G-*V^PY ztIlB4!w(F1{4Y#obvyzsP4g{j9EVfWF6Z!J$-3=2u-&9_y{54Wx!ZXSId3-$aJS-k|*VqTTs%fTPv=i91EX9(pfrMoF8NxB1pO&UF42_7?K}s;4^&uO^eK&_ zG2u(%DHT^|ShW=TJRW@P*;j`Hr|Sep;#56@ag5hKu*tK?PKJ3+`vy_A2uy+4@DB6A z&U@B;9%ES)QU{gBnep+IFP?Zu70b@k-ZM(%^qLjB?HOFByv;>XjkE-c!&_676*|{M z#%)jQ+6h4k#~ti|?=RMxsM(c9JOmJv-j;$# z$lgw{uvAx7JFrY_kUeRapAdyjs;KVqI<}f%1PH7~rth=ZZ@!^Rxk@~!>b!|_ni|RA=6hO?{U=0VZtg7U{D2qj$q3UpXA*tE!>H-o+3Q>L-yfstZ&+DCI`@M={gmmp^f_afnw;(m zcDp(kvyOAUi^9AiRGSR|orH8uyzwbk7Bj5ZJC1^RM4(^%;UWf`S*w(JhWfpehrJ7$ z>hj|}ywZpdBZP^>?)Iva@e0(4o}0_~qSm9k?#Yk7uBB$}Y#uYy(4g+x`H82_O+viA3M+vvqRw`VD{2R`^VJ z-(*l=%+uRXRsEx@mzyK6xel@Yx-&?z=;M#D5tHq&wNpGYcKztoN#cafa_SBGUH!_% zs^vP(kHiDdct?}UP1nrtEzEEfEPg{~8-i6&-WBa;eWB_(!vC3F`pU}jLBjalLZbxi zHV#O{3BPH*N)<1i7JJsDm?U=paFsXu@R7&JCC}6pg+D<70RYeP_J4!C4-ufM;&*i^ zLbSoxnz}~8dEBStOEU#UMYu$$SP{k>=%KB|Y4dD8C8a~j6c_b}PL4A4A2_f+h$;(u z>y)J$8m$#2R?RS#DU0QtwcMB~E4GoQ&UffBuf=rr2w>i(aK-7Df>4((%98uBz0+?u z@E|6Qbs|w`);%OOc|X#Jrq~qIaz9QG?QxnU4>Ae9l<`SPNq#%miT^jqfebuxXjO znVHeZ3cDHI_23VD1mT4jlfBZLG`a1=vGX6_wNmk`Rl*nzmhmn$x^e)swm5&nWq_~Z zdu;Dv`uOpq_^+)kbj5deX9m#WUt;dftCM?67(SIuQ=8VeVl}Jsqtgnw${&Vru5KitOq0xC*N!j9V*hD(t@j2Gq7V3S_du^t z%B|ieMLV?cW(|8%7$VnMT;E4NHGi;E>Y`754WuD~0O&thKT3=+^bz$u1yb{Tr$VFh z?tCIZTN!;fMv!YPV>blty3m=u^@ce+T6!qrCfRh_Ztp$hoHC}eSM5w4TP7_?p0Fns znPi*-f5lacBe#Ww4#d*CauD9!{Lp$~p#ai&`(3pd9K+;A8sc119-zee8*W?YNi<#! zCRe@B?TszctLxn?y_1x8N}tvyQz)xRaw5k|-cR>hf4&g_V}fluy?_a-Vq!8dRZDkV zNOB30Vnqv*@bR4fKYm0-MR~*V-+zCZ5If-U-mLeWM$b}7Az3K=RJ>@=CoQ|TLs!8{ z)@*gFA&n)oi4m_ic(KdN+g4SC{VI))5EWoA7t)SMg3%BzJ&yL)j<;L%!kXgo*!FJr zP507h;tYez12haqayh25dS8$c=T93O5Ly8M*AFEx_UQn6zu?oRyx8#$E142HJPO^8 z+;;=gR8WVj;t*3 zoj&OVo12@lr&N?Lc~f>HDTYOzrww@SBAYy_4@-2SXrsH9i>)uKnXf(IyQw*pdK}jD zo&HD>?Kj*sKREy60a#kj>qGTaWu-I^`y?=1RLN-)Bhc%*Cw{C^v6+pP;&yb&=Ipy& zV!H!c74ZsIA=tNx_*y)2w=T~eezNk$Hq+ z2(L}3Yz7>*FMiRA>x{*H z@e4Jy-%ZAK4>H`j)@oD~+hrvxVteG_ygDc`k@xLHq2rsZgg)Ba(2!xdxixZ`<_%MMvSVvr>U213zuSO51-Xbf$ zo7z$LY-~WOC~N^o+e#i=vk96PUE*>$ug@FIWV9fn-e@oC=BNE2*ypM|W?G;3s+5Gu z{g67%uz~Lu7h!B_iq@Q{fzl0RCnZt;rEmA4weV_$oUWVj0e(HCVqC+@%7Tu(=OG=W z+RT2#A{Y{9oO(%)_kx(5%;zx3*%v2ErhVNYiA0f1kDZa_8t*4c?pa=^{VlXT$E0`G z7E=lzU*{eRw}HSt`vpRuhbiL5xU{_I_x5*r+;MY+7glYiqOOjr5PUwI|BBNQxG1z# z%dlvW7U~SoRZDXYFWk8F_52`kQisl%62^3Y?Daq#TbK7kaz)Q0Tj~ID_WP7!9Y}1_8boOZs-BR}7rUhX& z74lzZc6p!5T$PWz2S%ym)>Pape1ybSD83{<-f>xio}XVi)dT|4tIGr_u2`OYAFntc zE{QJ$ALj7gi%<2{SLfaU;dVdlKf-%|khsZBf>0k|$!aH+=h2AF&giq`Ss?O7#kL76C6r$hz$qAzKHqZiJDB1= z@u^Rz+@VC&PFMvGf;ax=zbk;DpgTz_ehY<#Vg6FjjO!+f_Ljmw6At16OpiiIYo&hu zQW9IiFACjs+4!6$=hd4d$##_2R5BxiAW0qfwuPTvS$7*(e|5yF;qaP!+eA@+5KgXV z&a~87k#O4GQ(+LR*r4B_qkHO1bv!1nLW#$VF=wC`ufOX~6aOoS=#)15dkYxKH~RJ8 z834D*O4{phjUmiz8?iQD<$oRU@K7dcXol|>6g5rE?cD8!_=)kCZk{79|6fdfWmsEL zvvrFUEnYlO3Wegui?_v!yIXO0_u}sEF2UUi?#12Rf&_=4U*3Cf-{;Fep5!^_?8EHY zGizq8IaO6wZXs6uTo^S9dCD33Tay3XG>c@#pkA5Tdn8$Du=Weh)mt7gY-CeNu43^x z>&#d1+Nhee^oO@&xMRw>7n=L^%Ei21xMh_5Yjbj#i0a=$?Ku?$d8CP##0Ug1@*Y!Y z*#^uA?@08gC8edMx7j+Uv#bIz3wkE%7Y$A(^@@6>^k5UwrXGU$ky53r*LO&w{|0V$Vzw(sQDOPz~QORO+UzCi=-CO2%lk}h> z|72l!aCS)xG&6b6!O<53bTE#D6c^>LgAQ`GFhM(Do*Ij=stDG3`5%XbkQW^l8y&@E zhh}shy2&2Vy~e1t?KZ{1-v}sk(&a_tDTebk9@&*@%J&O>5#iN)sIx4+75)_OYMXVE z7g**hn%=%Lzn_cE*qv6zY}t2%lNXJ5f)>}kQ`;R+95sjxkXlYM1KvGAB}il8H29jZ8QYw_4m2z^4}P~pUdsh^$uu)CZw3{PO;@Dcn? z=Wls?>_YBwLLx6=VHhTB6tVKuQb)bAK3ZbTo^dQs=xETb)m(C*f1wYkbglDQ&p3*= z@%d}!*kXSF2W|gybQ34iAndlgABpF0I>(ZP9E!?(WBl#954m=K($mi~uE!cRs|H$C z0ZAfSPX)Atu~bVB%0j=XYs&N_qH5c9bo$X{;^kA@yX8irx*}PD<4oZXi-0!1?Tx@I z%V-dN;p_g!7TaNZZ((pXvV5(AIuS z&=A)3^vts+{i8VM-1R=;$iDn;ZGLlJ1le#MdYiQ4J1<8EtH2qlqBmqXM(Tv2)yWBmf zMruxZlgF&4K1q;RI84-X#VJI{6{7G;{SyndS)*O=)nUi-2j@6OAHAK$w(Au zZ9P86r{TN3+I{XfFBZ)KeZ|q)pxeuDt+qKb!Ea@L8cB-OYbaMGa>1yhDilkDWVylz~|&^`^JwOSQV^;r+@iy9m@VhNTi0Q z!BA!UxBtADNGT<`^=Bq#UVcW#rW6VTY@+WZzS^;ec95u<2FYS(0qOGJ&kK|aB*95U zUv0vm+jSsUI$TgI4!>-4V|5F55+yG;-kB8297v2kX`9@c_Pq4ES z8NLonbV<)2-oOTI{`c0ff)(szI{FVAMEFn14i=@e{#!e&S^)d|Pb2!j^Xv}~Ct~!V zUenkSrR`EPsdZ%gkDb~joKTl5f-t_mvV{<|EM zTuw}9hTVjjyHT7px2W|C_YiZD252^+oftn=*y^n8*Yzofedm+;7EYa?P+nMBsunjW zHtuow)qzPmWxOZ|2X`|$(1g8~Re#6GLZyRCxy7EWI7mK|nE0Bp?m^JijMHoUCcGE( zhpCd?2Y*Ug%1E>cN>X)l9&{ZujVuG2>8AF8;y3p-~|X z%|L%~^4FHJ#l+M*_vtTXxLjUWWvQKBCe(tgVyWC0g2NkZ-o66+3Z?=T!$_X*;}KLH zLz|cNP|?BzZZMGEs>3%`{-dMwJlx(l3^)m!N0Py-iZ?Brjy^WLPxN#tn#2P0nVq6)O z*>!>*LD6gK!4}EP8|V|%J($pwn1iOw%B;GkvNgx~?xV{@g6yl*IDYlM?LjeW3{tBb zffl7KbU!WPv;D>&Jg4riMcaEWVmivJYjwqU)@t88rkiUtwKtQ+9Q3;+Zn^oEUAsa( zSQ61?X2_)-Qp1S670aVwE;#w8gQ;{SptsMf%?VnYzm_Y6gmB}%8IceF1R1sM&~0^p zxd);(X=go(QsJw12LpLA^6wvaR=8|31ZYa{>R{kX%hqk|kl_N>jLvGy>8`1bPm=DH zv#nG{rB2IUs(8ZC>6pRJCy2}ffb}+x{0zd;F#F-PZLq>33L_ZflDQGqrN+ba?VOq8 zrQdn&?Ea!I*}ARcMv}P_ze8aQiG`gmSVI>wJa zt9!a+fS;yp07cGhU``O(!Sg-->qt{_`(q?*3O#W`m9)BB=Yif%kf%07!u`v$}9`8F|&{4L~dE~jH z=wmEbAGo9J4SAtTtK}$GK?X>V9IZ%pwX3@myEEP{QI_{yp>val-bsUDa>oGc*wGK@ zugGEFh8VSzm4lUneXN3*zLBOZ4ozQG!1_A=w<2q$3oy`G>+n2Eh*Wn`{(yi$#IWeI zzu#~yvrx6s;qiR_mk4(dgH1^_y>&a}_&~`|?Q&5>V0-~^daIdET!wN>T%&)mG+JqA zQ_e_2;znGu9V8QGh`Ua{Xd$ri|w%Cbf84Dp3 zb1dFR&xliC{AQqGO);{57E9El!&XU!jXwBcYf>#@xwc8rPTD0w61bz~710Zsja7W< zT{=oz!w=8WFsH*R*nniu5Lj!w*!vwnFBkgP6=|m5awq^;_hMju)%tnOPI-I-D@V(T zLNg4lK(t%1p!*6%+u++_Dg0#raL}M&j?wAc$0!Y_^Ycj64P>16c;zDjGcz1gqFUmW z51JL)H^2KpEiQ8x=iduBwR)KR2QzqlVtq#Z!mS?5fs~KL-3xzf^Ihub&GKC6<{*>b zv>S|Uwk6f1LB@r%b|6yl5HO_0WhZS-MIQNqfzJuVgivR)m~wmkCU~>UscHAqPb=ib ze$btbRt@iOgJmJ<51{s&u_Q=!+X=Cz#NK?h{>EyjJM>Rvs_9HXgUR^%L!9zww~J~z zpRCkee#70p0*MD*^tTLKOfm!uEl95akm$uCWZ_gZwXjD75I^)M$iQxU;2 z8>sp??{7i|rI|`4#fb9hs?%gd(rcK-mV4AOmUM=6?vv?A6orp=S4udm&6@R<)M2+E z+-`WV*3CSxL9~{qd$G#=4&7f3G|=Yji}w)50SiV`dQB0mrEo~R|IYjW99)b*rsJ9+ zXDoKg<`9OZKGC6jPxBxVuJ;_Knf* z)7GIEHppK5p7}dNC2F!-%i@Z6>6C^9G4!20s5zZ0-!Lk2ohRu#%wkRPFwXM#eka`A z7DEGy@ExsvdBQ*+&DsPcaQ&#cJ*lTZ(`6}N%snsmZLP5@VUNnR94O60^b7~8*s#uS zLcbd<@P6bnYkMn!wr)sH-4QAl4FZWa_5NAOMtkX7ya@IVnleXwYb8}p7 z5o@!1YD`v?z+EH`bbHlu{?N2>87{M?LtvB})c7XOi$3{8+@{vax`pLR+62&BmHAL} zy<2C=C&Y?iR+*0e)mFav@c_Gk$>xH(lhm)CxQoJ8qin%$vm&}>%3 zzr?{erJW016ve>NmKpZ1s|ShPwh%LAciGZzRN4@KwKP>l|B2`~-#ifKv*5*m5*=Hs ziU~w?x|8Z}I@BI}a2!W3hMXa- z`QT9L;{J6__5R|4Tg+oG?V(gTIS!(Sd83UgFDILbczm`7MCJ#I~gh1(qF&odx5@6=$f4Pm&8$fw>4-1j!+uF zrUY6dv0%Vv5mE*lWH`D9WKyFXCq$5f(#8Y6oU7T=`HP?q9-=xthdSs8Af@PlIc@YHD55&7HtrbcoCo-^s}+uKGRKD2mBi05!s1wBI_0&)*TnZ5d|?qa9gH-jRxK1pGaNQkZt-F z6v2d!(BwPs&bN)DQ(UwOuOAVVAWlV#&Wq1vg5r+OXlDrDP>q8Q#f$w$jiQPEb0u77 z=a|B%r=G_%vb?hQVtTy?d_UK&3O<8}=+XJ+$}FNgm||Uta9zP-KWd`&(l(eznM_Zj zf^|ni7?_$q<5q0>dwyfDL>sw<-g%b#wPOCuY^E8UcIT?;!r3VOh5YnBZP$gDy-fFY zZUA?x(iDoZwHuVNChyVI`&zeTJ_%;@-}Mp$;W=SOYl+FvU_LNcMfCuAUmc|5?DDvo zYhb;Ljm)g_-Sqv?b+t{QWuV0y=I4G4hSJR8R+@{N4cN?{PkBE0Ns8abTC2HROdgL- zBkE-<5|$LM2VqI)%jlc{;mc6h40-Lb@UPwA#)ErrHD;~92t?ptHyRdxoLX3MveqZk z<2$vq%^BAvlUVoLl8jyP;&UHd;mWujruY0W?N6~Hio#yTRr{TKKWwJ^OMa1QZ(c?y zESxtw@AN*JyMfIxvJiZ;WWBp&$S1Ah`;x-*Qu^dxkEJ-d^9T*tZW*ps`OP%3EK%9pH_ce(7! zQbpwg^)3ykRAs3%`zLm;aaunu$I((R^i;X(gXUKL(y8Y!zh>~f!1@uaCom(9LjUlX z-~;oIer)8?;V9>Ao6T)-p<=4(0^B0-)J!L5GVDV6SDrvYXvIVm5S#S~I0l7|0Q*(H&o0mp%q4y^RIUd3L`4K#rtRz0`G=X&d zA>l_&#Ym#PU?=y&a;ztArvRbqS!6WTqv{>+4|&dXu{;_eDJJTeV{PaK=0cNLlSN6C zEixy`kzTR(sChw?2BBYZG3P?i@0-f-28xfI5vr0oCZNOLe|~(Yrk@9BS?F1CxDR9m zdO(mqtJdwhU>0qx>$IMh>lAJo?Ug+^fbYWzTgvm9p572Tp9pE!75@SRpWe}S;U2Fc z2arELa8ARzKMElblU2R#mXx3R{_E!7Q1@8gp55{`JsH3{zi2mlRNSzqPtBN&ZMY3`HAXDAlSC@weFM29UwH7@pR)(DhyC-j z!ro4XD#Dhmf$q_2$AEMp{hH|xm9o-OOV7m5`C|U*k6Zo=D@{6=7xSaV5$m%ITN|bM zhwzh`B{&x;%&|P5IJIFN@GWhG6AM{UBn(dVv&1EoJ8K}{Lubm3BIRdibB;RJtrDZb zsln$FD6^w=pOI#H6rJH#j7Y*A%c#N2s%dEjuxQ$$1gbm{E%KqCV&TOX(RJyx3PHZA zNr^x&zd%qEX|${G{HJ<;`%4Z_t@**!ceFEt7~yp)1u@fInS)}So3pc{BlmUu!a|sl zazm@oujPa=-BsCBjCF*n?(eU!<=E|qO03plb6!ORqn1-lfu-jMfAFwAD@pSuFCD=t}ne0_HNGBR=6h4xXT-q7ZidY#@23FS+kea&}1L3-aimZ2UmNlbKWD( z#U|GGVvSavLdV_mmJ~iY30pSrp4^tdBz8^_7ruWTN~11}%J5SaeMq4|Y9FDU?)2Kk z^0epWNB1XYH7`?j)G^wMHoy%wFDvaqg2sr+2_w4_`T0g6cdQ#Q0Q`0?B^92M?!C;?(RZ(~H=*F{v^f#tyT3M8iGNi83y_Pw0%`uWfy~Bx zbj&U%CNtIc!rz9ze!*V$Q=`?KFcF)XDeBnrw|?Up6h`pqF@5CTafEWkSBPn0S6DlW zjONFDCOj<3TXDD#V1s}R@rw|w38#p-4|S{h^7i+R^a{zztjqatJnQ{}EdD?9VQ}pv zaPEKh4z%n>PB~m@1e-7VWa1i@_kZ_ca|j#z=Eg$KwPisB4828cnZveYVu)s{h*%$8mP2z^8^96 za}hJkqT2lc81c>Y=H)O^yY$o&!6_RRwH+OQqFB*%gL~b*NcrFf)XSxSRg^=C0)>ef zzb0-lfejo_p6m^QL*zvmpl<#;OQQZ3&uW+^3`UNE)_8YpRy z*Eob2T?AZW^PetJ74Qgz>eo1BMO1ylpy)%1cydoE@cmCLXR~kkOEs@0To;866v%=G zAtFCTgYzZ($3LO}_(JN3{0+fq4E62a-h-Z+bi+#-Ih6|9=fDg51|Ah$J8t&iPT}}X zQDjVin}Co$$0e?x0YXUpyJj0wr4a)gf+bPl;rod9B`bO57^U` z0GJ(3Jl-9edM#_ZFW)fBT$s?5S-;DCM0a_PqqWqoyx(4IN*6F}=B3J4m<9edkUuA4 z$?g%N?DUfS+l#F>MrifxX31y{v0}<(xFJM8E=Pq>U?s9Ghk_T9Qo7;N`%B@)Ft%nZ z#vpb{85V9^A;21-VeTlRlS5G&k>zHy0`sk}puVC&D_J(XTfEOZ^#N}!1$8@}%67xO zr0MjCeVaL!yaRiDnI?Vnc-b#x zEO)&){Fy|~AiGfD5gZ)zc;7kh^)qWLRShEEnKx>l@ba-eWGIbia6plfScDLqCq7!*5$p%zknV^fmy@+amvV z(mHv{RP#w-4o|RO)DT0$=#D4P<2JQLc0Mwwk979f5(c6LP%PH;*~fiEcqG-rK`q@w ze;b|JJpM}-4gA7hS>ITds(Ry!k5d*^jW&`~t!8Alu8MJ5U7J~N{^3>B6)#0=ZSm_b zRcZXxL;IYK`UD?u|iA*?2VdmCku^dTYenqBWyXrFug)?jhYsx#Az5hLU_HfQ{ z;XoEE=UNJumZ?i$6Hz5;J5eby#bsW&Go2V$>m9Q;+iQ?cAhlPoKA7vEwD#qjU77X~I}ZCTnf@F-DtPX|?H2nN&Op0cCm!>6xg zZ2m+owyxSAuih`q-(S2sQkHh&S(v0hBd-U1?JIa4fgg;@`esME-xmd3gTX&ohDVv& zjH+n>vL%NbSidSbDw%ehyMM{1=}OYb<8$=TZx!n7%wqG#6H!N<&w(+=4zqa+@TY-17d3aQ=D;SXa-RnmMiK`-)OG4lyIt;YZ ze+(D4hevs}^8hiSzErUAf6QJyFMcbX6D0|e@JLP(ERN#n8}f;me8SQyvG{7)jc$?4 zLv|sZ{GU5FuyvXDQk+lVVPfXAYjL5^V0dgQqXyEVcGoGwoU8UtWaY<8p|5UA$)Ah8 z>>|hA%-=Asb@;!1$I62jot3{zuoN%3LUKcFL-8W*j11e`Cmjx(>&VC@OT`1l$@kT7v>kUvR06e* zrzTl-F%RbuSyzeDROHjAVl$m;eO$ByMq*VN6~rn&KyV~{I)4?D{=;~L1)O&6xGkv# zp!>7pDm$X-7(|mF&>kt-U2n<;G~Xb$#n?iZxLcr5s9Pr`7Z(jzRr3)$hIAQaw4%KQ zSwVi(GY0Go_mv%mFg?5(Vh*MEkdc~HDvzr%3(Vcv7*dSl_M zrQW?{_IMMkA%}Ul%Q{7p`oYzcK|}Hb_oFjeY!=MhGnGEp_0=wmD%r1IzI-8R>k1Ng zJp{_aHoVgTOk^nzmWa6B+o)cDJttW=E%x}CdDEZ-IM8{ND!+5HF34w85$jkBpjXd3 zV&mJNXn3&QWmqpzW>tSW`$m>2*k5$@kZiQO+~hDlBhsqDwqc^mWnun>ztPLD;%XiO#&Wzbt1eUh3sxiwcR{X_z|uJ!-&9VJ_UqEf*Z@HYfT!(q!FQ zqyz+KflGsWr!UiRffz!gpY|+}O?&cc7u{53q z@#ji`W0OKap%`u3#sZ#8^Jdt5!B}wNV3k?4f*1gsxm8t2cEg~wurNr+^MF3}hg%)| zPa?~E9l9j7(gTTK7Ue?jiPsq__T_Z~_-+qEN#zkCVRD1#@4(2NrF4AGDf#uY=#Q3< z8s97GD)38SJtvDkn>Mi{i&y%Is2cFBynCvj!865$0$T@roIG(M#fdNHvP}7G_BzCe zx%2#C_%4d9(^);)+*`V;6s-9l?Ra2nsFz4Q#DKW*Lu80FeP@RqpM>K3+@?zdc}i)s z-9?We_aQ|Ho1u~L6B~F4vpZaShh-TY)Y0TUUN-tY@m8skXJipU)e^}op~B15%c%gQ zR^dA(oRaCOD~=u9g~-W1bZGk%F_GL)ftdfGFjm0$w3l4i{S*|z&UMc=_{>UcAMkO_ zs_<>mS|vefp0R`VS#V~Mnw4Qwq25wqm2-(6PdPy(Xouiv&fF=phCm_U-IurAXF5n; z*Ww$FsgztWL4qFnE|0UuKR!Ezx9gX*$x1E;9J+ubq6wtyLsKUu^K!~DG)@+FcEe7w zEYopT{+WEA37MF!vuJf!Ez4gLD4}V`Yn>*^MqGaVnQMQ`lg~|VJzlVy^icCBOCUz> z)~9nQ4M$T4waYZ0nm!)>%C2-Dszlr9zr?Lz6W=q_6$}hUKoT**OWuhS^g%^KMU@(% z;W)uQP;Oy9wPt_XU05~$I*&am`sP0kkn)42hsULKbXe?nyz1737wYTKK(ZWD>Cb1j(et)VOm#h9D zdV6Iri{WBF??4z4ig;g$r|eMR?Zvjk1*Xg$UbwU{>8rkkmpRsRymn_sAOB=)KEx!M z>x{2@c^sF0K8KB10ag0+Jf~jee3-|<>=W1WPJeVRR+%@!ZrV)^a6JFnpFT^vp9bWV z@n?Q&^0;ZoOsgZALo%UVK4l^Hu562X%Z!4BfV2Lv}3jzcG(F7F@TwGN?CIMt;GTBU@a35O~LWIgf^33f5JREJSg zo?=Ifd9}<7CrriCwgT=W=}CzNmaa0$-WBFedk>9seNGT%iY!;Hb~fkr{;TqYZqYmt z0CtVqAlGI_VE=}Y%ve+6?Ec)?GVrUBySQa;-wAyrcKlea3Fti{rZOM?@{W)#6kQN5 zMW-#IW;sL|Q$N7#;t6Y2W1XyG$u3$Ju?F18vG4iITK&n3(rXr)(+V8x;r#1kEf&VQ z+e?9rAC$AjmtSA3iO!-y&=b&hrPgN|Y?MaG*sC5zF*hr*u$Q)+6t$$ho$$lcsqdpo z;D@*ZF!SRL6MV#Y;n&poL>P9>5X&<^G5ICpXWYUEdVWXV4v?m{_biF=a4F!8*~-@{ zO393csj@#dp$#jGE$jIn&SZ@nY{d$fCfqZS5;KDGk?rH$Z=W=6+)wL77lXL(6n>+~FJ_DmMZd>Hy?#yA95;>m`RQs8 zq?7rTro&)!qxR|Q)BgJ6Y(KKq*F-^+;PFD`0M~D18QdO86(X+-8*`HoZ`#}K0(H&G$-u~~t<5K*;1)WvO28ISH&nQHMJd9`!=Q7#v^QKBJhg>xS< zx3d=}Uj3%ZkLOuYS|(U!{ZvITvZAPl8(qP=U}Zp0L!)#Ov~Y9}r%Ugpn9c5aaZvV7 zt-$M7V*<~(-4oTxOHh8bTQde}pxNMt%5;GTNsAP5pj0ITv{gPEQcr*8MPIg?P3u`o zrSO4?hH-Mu4nsu@*UAz`^yKSgu?rBgohL1unb|R+gg+0c{|*qLxNn{Q(`kQuuLu%J z40xbu=0gkzFM3r&8xPbC^*ZbbmFQkaI-8_o+U=H)o1f@#QmO6sUa>5HeoxA>Yf;{9 zr6o;*$Y{6F}Pcv&=7R0UUUfFgYTs$o7zKYe?V0Qk6>J3ymPqbaxVEZo$BeVV5nb6X>{oz1@Z8 z)plg#bqU0K!T#CrK0L=v;qElEeGcb=cf1K-9j6~ zK+5=qIBniS)p^?Gq?=c(^U_(GiVULLKg@v4iR$wz3CAMg^5w^mJOTpLUnY+)#<|zT z)Mc(mDPGO&c4?5&Zal&6S6zNAJZWIMkSv&5s@L|z^)T+e`sHp?Zzy7Z+btJM`tObd zFHf_z2~%tJl1GOHBrcaK(xpP&r*|Z^FS~n4nB@J5a?N}y8h?sOJil*IdtJx*ADp%E zy`*T3B&g03tMQ+s z5|o3D7dfhM3uB$;8w%!M~i?ML#Bl9ew{E&Ys+fQy6kqKV)1 zl$<$%D4o!66&CBLK@D#1}?nKbCzJHvT+#HP|hn0V~CHVOCs%_BmSl=*5(DWrq z5;n)6>K=S$bM6@_bn} z{G-$UdeT7?-Mghr+Mo(|0o~3T(n|*s#8WXxg0m-zB1uA0oX=aLeY(;gAC03MJ_P)p z`M^ccwv<1xF$y%qdzZo4XTB0_C=T42*2L~%viydy|Lh2*IP_r!D!7kjriF#TI9k0b z*FD@k=O4 z0~gLFHou_v!x%E9gcGZFJ6i_wc-EQAHPs$A-gu20?y6L=I3=w7vpfAWyadkaBrd1F ze}6Sy-wz+Z(}u$hLFa7xwAV1mb}w2Do~n!Y^^NN9F;Io9x?oOJ;6D&RZ{F2K8C&=( zN`6L6iFvxr7B?nVblJGOzVUcGANpAa>3l`A6iE^6* zQflW!p#h%k{8Yqb)Q7I+*XlWxas?g*50oStkS^(b7}EK>9s5xhxFFB`q%@es0wb#< zrxt0pLqBfA`!QZFKG+(`D>~mm);(@I>R$~Yd|hd+%Wph;o6qWb6|K3PN1tVirt1ety;C ztmPnT_lEbtvp7kC@b&Ax8*6zQW94t5>6UJ8C_vQ_Z5cESSomxoty`bRS zSikj57JsKqql>-$8g`0KnPaY6WKRe;pGj138|&))llSRT8&BFv(?`nJ^BySK&^*VA z^Vw>Lp8sII+4=Z{J@F!+=e>+2$saU9K9j~31W8kiAWx8(sM}$s zx?<+Z=_w#Xdv!ukoVxCFhxY8GQB3YljVDm|uZJXs!Rb;}sUawe=yNpbU+IUZ+x8z! zS=71kU}UrC{e?z3U~P!t{)EWce45otZ205o^%2<_Qx^7(5_R2E zKju{|e5HCF0Ce6XZCwVB)~{ZE1u1XrIwTLZyigox3i*&ti-%@yuajp(LH_-LX6U8@xtV*NFFs|f<5+7dBlU=)~bq(|Tn zfh?NwFMcRnk!rxM##kJq++)We6^K zeey(8IR0{Jt_t0{?P(#y_!>3Nr1^}4c%*=+X?myP{3H7MuUS-_Jfs&~!bV>tW!x<+ zI&5%YodSC7wb)ZglRW&x)8nEyg?XjXhDKA>G1lLB7|0yWcMX4;xCwGUZUhX4Z~C?) zi)9%MqZ_*god2O$wO#^wEijXqjAtC3HBK{ENYsCly4X2|ch|pNf1LbSheOeHB7Gi5 zZo-SoG&OKFaXHG$#GuLEJJmfk1r_}%kUDIH&sPoJa9CK|hb_r(GWXfN8GuRq3%HY>O zY78CJaNG0C@@ZUm6Lol~BYyr+no?XY4QnQtg{h6aljrBgOctTQvb|Abs0@9&%UBUa zpuCM{A$*okjyK;eT5`s+zEKRei6Z!th1B^tRk0wAFTDO&aF@HcIgHlgnI7PEMfSq`epx( zEFbTnEv8S7`FGhBOqM1c963?bR0R=xG+{P|MX4=Dte05j%ikrRjc=h%(%UHe1xl}H z_|#%LyNX8E-E0Rovb%HiQDgQ*1@D@}sCi_ItoLUC@Lzc(^+)?zM0JEV8S2F$xZF1i z+$Q(en1in-zGUvVPGe$Ih{f{TEBi=`uTf=PeKV_z7pj(!^<>b#oMrXb+DUsF`XA2YS2l zYj0$BjB=-jqao4~gXZpKz?(l9+A&O710#ERTarb6N?-JilwJPX+%)G1Q9`t!b%v>a z{IAnnt_iyFd8e_Y__#G7lMYd#9qO63zW3A!dM(8kT(6>NV3yH*aBT~`xEI_|nTpvn zcV)NyONVA~Ov&;M7)mAe^yq}2vX%cFw(BUFR`nCG70lvZ6=_Cruqn$?VOkBB(y{`B zN_9LN@MMF16x_5VriTmn;RpCfZDLjhyS3G*ppN4IK)*jRBK z{O4MlSalQgS{u-TVDm&ADe>R?R^%1}h8KzYq|#r>($XBw)faqsvi7&BdULllW893! zhO*C;>C}qaIYxS%ow=UZX+RkxIPJ&{HDw+t8suT+iKu2Z$itnE5FXFjLce!V#O8D; z-7NOYJNHxWj%eUjVTxy59B?~K?*p0biOKU0w7!-)YLm(H$-!U)8`s+Bi6A|$!=DX_0!u(n+K!S^iR75+(-N^(|mYO z=JKt*18uS%#%cTW@WyEtCMEQt+udV5H~U4Z(`E0}fe`UL)aXw2n#_f>GGKkbbg}jv zyfJ3?;(b|lkljAPG$ao4*ba_uyxqz^PV+%nEN~Ghld7QB^4Jjlb4@Ql$b6C(aK!nX z$)(F|ZL0c7Z@#!}hWf^d*X6)WMaNn~YN!^Jf9ma{A{pPzV^5%ROXP!J!y)~0-PQE* zXq&E154Vy^x#6Y6^D{VP)sHA1>6;D8m!7GW_?YNKd#6@u!6t{M-a7kO&Fc0I!nTcU z{q*41?xxMHQqYEn7{PSH*uDZBW-|MR)%I?r3HfKQ@d=@iJdon>=Wn)8VcHI1E z?d?y+H%g-{u);TTwwo`DpyBZlr{2=Jcr6yK1{*|2-2$BZ^l^y7+H}JG~wL!bs}fC)wu$(w_n74;>I@1{v_ald7PUXTlo#C0YMEgre}s-N=a$(!nI$l&zsNFgU7!n=r(yy z=_}r_d%N!E#->$7%Il2)LOe?sLN&|_U!5%*pW#}iwK5r!M`oef4tATdYI4o|);{Z0 z+U8?PAw(CU5=+=zeOxk3lV@vngq0VC>lGFV9vV_x%s&Ro0HeMZ#)=h35kIdK9q1}Je}fZ*#Jo4ytsd$lRcFkH6bJ&--5l2aB7dlJoZhq!sIHItq#S`yYA+x1 z&qu?3GU_~AuIh>?I-^+hj@zp-6Z7eT;Vh=Va z9?esaDQWp-FQMO-DDuPS&u%S*61gp@R*Xz;39u(S$ z3HpbdSGL@8Fa9_m^1c){Hfl_5=(n;T>R}%~+oCvq=!d$w70x+wuM86G>uE-;E0B<} z+?1JXo`u8$Em0x9dPGBPXiHz?!p;8&t@uH3tH9~!tXTPMx z8ai${wKF#6X20wNu2-CxPGhH!g1xV_H?Y$crsaiNKOLZ`BU|{u&x`$cWT=pbi0-S^a@Z9Tu()sZWf`=t+S+y`MUfQy)!UM8Pz~{W&!tXYh+lC3EGq*IEINd;DVY%<~XD?rd=X|jbaLE;JaAox*zzA&bMcXjdxmn{6 z*7<;wP`G`95F;3%<9b~qwX}SliEga$XJW=Ba3o1c`9C6y{}VpL;sF@PDTfV4E6ox3 z4&eAdaWzNde}TgPk)Xz5B&dH5@a?JJ#9p;BDakv?$e!;Y>YFzuDF41SFQwE98$3Qg z(R=@A_Vs23MHjo`WKx1Quz#govVWRS)WBM6w(VzP(V}gr2uscI9D?XzaWYIC0mktE zLk$DCf6OY1S$oOP7t5M)B={UU?aN6xD9l{dq-n66XZuQ4RRMv$^AcSus;YV@mNj-4 zDFtcZwB==<3sHu|F@M4G%JOnxX=R+8I?AiRoU(Fcg-zb%;^hxPCVx3yU0qcgV3`d5 zRPi^&&=6>OQN$p~Ay{@5FHJ;VFBZ*ssTYU~@Oiu+(CB;z*Z7UgK z(Y5b~sGccf1<9E7X4=K$lMz)EIWj~~AOZ5v6q9!o;la@We!oq(>%$fY6Xx{@8-1A4 z+SeM0Ck82x>wO4K`{^OY#LN#j1nP?Ywa+#Xwk(gkv-QC0$Dvfk^X!g^41SM?)r$?x z%<~SrM|A}i4&Q-Tcj=VH*^h!7J32a9J*|AvI@dQhcYzn3&ZlV`7dtv)(e6DfGC>BK zyKy^pH4tWx6!jI?&ho-C*9P^atw)+0!0lk7tm_z~I80;m#R66tErE&Vz0WJ+(aFX% z%gw1Hzj*zn7MkSMPila$l)+5F(y7A+ltsDXc5#L{KI*jcXkZy~J8lb@O<9=+G?=9e1jKI87$Xq!(cKjihI=(YmCHX^r|GKcvWxOX) z+5G-Gnm{GR+h8wUZfc!$iu8nJ5E~YZ`H75vgl(zsys(WUN1hW!4ATlU@l6Fy!9|wj zFB}^??OqK#A>NIblkzVe={sTzc{`)>d&RftqdZ*(rW4pX>g#%0DQ)n(u%;LI2mZa5 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%0D5~6LcEb&Q;tGeo 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 bhDUOf(-YFtou_Hw4{{0V)ajAIQ6c{Z3n{(9 diff --git a/xml/target/intermediate.fo b/xml/target/intermediate.fo deleted file mode 100644 index 294f1a1..0000000 --- a/xml/target/intermediate.fo +++ /dev/null @@ -1,146 +0,0 @@ -Confidential/Chamber of Commerce - 60628081 -PENETRATION TEST REPORTforFull Client Name V 0.1AmsterdamJanuary 1st, 2015Document PropertiesClientFull Client NameTitlePenetration Test ReportTargetTargetVersion 0.1PentesterFirstName LastNameAuthorYourNameReviewed byFirstName LastNameApproved byMelanie RiebackVersion controlVersionDateAuthorDescription 0.1January 1st, 2015YourNameInitial draftContactFor more information about this Document and its - contents please contact Radically Open Security B.V.NameMelanie RiebackAddressOverdiemerweg 281111 PP DiemenThe NetherlandsPhone+31 6 10 21 32 40Emailmelanie@radicallyopensecurity.com - -Table of Contents - - - - -1  Executive Summary  1.1  Introduction  1.2  Scope of work  1.3  Project objectives  1.4  Timeline  1.5  Results In A Nutshell  1.6  Summary of Findings  1.7  Summary of Recommendations   - - 2  Methodology  2.1  Planning  2.2  Risk Classification   - -3  Reconnaissance and Fingerprinting  3.1  Automated Scans   - - -4  Pentest Technical Summary  4.1  Findings  4.2  Non-Findings   - -5  Future Work   -6  Conclusion   - - Appendix 1  Testing team   - - - - - 1   Executive Summary - - 1.1   Introduction - ... - This report contains our findings as well as detailed explanations - of exactly how ROS performed the penetration test. - - - 1.2   Scope of work - The scope of the penetration test was limited to the following - target: - Target - - - 1.3   Project objectives - ... - - - 1.4   Timeline - The Security Audit took place between X and Y, 2015. - - - 1.5   Results In A Nutshell - - - 1.6   Summary of Findings - IDTypeDescriptionThreat level - - - - 1.7   Summary of Recommendations - IDTypeRecommendation - - - - - - 2   Methodology - - 2.1   Planning - Our general approach during this penetration test was as follows: - 1. ReconnaissanceWe attempted to gather as much information as possible about the - target. Reconnaissance can take two forms: active and passive. A - passive attack is always the best starting point as this would normally defeat - intrusion detection systems and other forms of protection, etc., afforded to the - network. This would usually involve trying to discover publicly available - information by utilizing a web browser and visiting newsgroups etc. An active form - would be more intrusive and may show up in audit logs and may take the form of a - social engineering type of attack.2. EnumerationWe used varied operating system fingerprinting tools to determine - what hosts are alive on the network and more importantly what services and operating - systems they are running. Research into these services would be carried out to - tailor the test to the discovered services.3. ScanningThrough the use of vulnerability scanners, all discovered hosts would be tested - for vulnerabilities. The result would be analyzed to determine if there any - vulnerabilities that could be exploited to gain access to a target host on a - network.4. Obtaining AccessThrough the use of published exploits or weaknesses found in - applications, operating system and services access would then be attempted. This may - be done surreptitiously or by more brute force methods. - - - 2.2   Risk Classification - Throughout the document, each vulnerability or risk identified has been labeled and - categorized as: - ExtremeExtreme risk of security controls being compromised with the possibility - of catastrophic financial/reputational losses occurring as a result.HighHigh risk of security controls being compromised with the potential for - significant financial/reputational losses occurring as a result.ElevatedElevated risk of security controls being compromised with the potential - for material financial/reputational losses occurring as a result.ModerateModerate risk of security controls being compromised with the potential - for limited financial/reputational losses occurring as a result.LowLow risk of security controls being compromised with measurable negative - impacts as a result. - Please note that this risk rating system was taken from the Penetration Testing Execution - Standard (PTES). For more information, see: - http://www.pentest-standard.org/index.php/Reporting. - - - - - 3   Reconnaissance and Fingerprinting - Through automated scans we were able to gain the following information about the - software and infrastructure. Detailed scan output can be found in the sections - below. - - - 3.1   Automated Scans - As part of our active reconnaissance we used the following automated scans: - nmap – http://nmap.org - - - - - - 4   Pentest Technical Summary - - 4.1   Findings - - We have identified the following issues: - - - - - 4.2   Non-Findings - In this section we list some of the things that were tried but turned - out to be dead ends. - - - - - - 5   Future Work - - - 6   Conclusion - - - - Appendix 1   Testing team - Melanie RiebackMelanie Rieback is a former Asst. Prof. of Computer Science from the VU, - who is also the co-founder/CEO of Radically Open Security.FirstName LastNameInfo - - - \ No newline at end of file diff --git a/xml/target/invoice.fo b/xml/target/invoice.fo deleted file mode 100644 index c6bf081..0000000 --- a/xml/target/invoice.fo +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Radically Open Security B.V. - Overdiemerweg 28 - 1111 PP Diemen - The Netherlands - - - - - - - - - - www.radicallyopensecurity.com - info@radicallyopensecurity.com - Chamber of Commerce 60628081 - VAT number 853989655B01 - - - - - - - - - - - - - Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf - - - - - Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf - - - - - Invoice nr. 00/000 - - Sitting Duck B.V. - T.a.v. - Reed Street 42 - 0000 Pond City - Amazonia - freemoney@sittingduck.com - - August 25, 2016 - Services Delivered - - - - - - - - 6-day penetration test Sitting Duck - - - € 100.-- - - - - - - Radically Open Security B.V. donates > 90% of its entire profits to - charity. - Please be so kind to pay within 30 days - by money transfer, to the following account: - - Radically Open Security B.V. - IBAN: NL06 RABO 0188 2813 12 - Reference: 00/000 - - Kind regards, - your dedicated team at - Radically Open Security B.V. - - - - diff --git a/xml/target/invoice.pdf b/xml/target/invoice.pdf deleted file mode 100644 index 8e1d4abe14bd16803669565c0c91e5798da21266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43252 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%0D0K_Nt^hGn8|6tF) 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 i-OR?E#lj2cAuK_CXs&f4Se8hVH`dG2ZR1 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

n;MU)K3VI@x{v2MdVv9UIPsmPu zMS#qxt+S1fzZIVCCAu0o>WCU1j4?HbE@2jg?+Rz!%kNv0RVOmczSJu({YhGn*Ip00 zOE|u9*D_ixI~>2478?jMcKtlDvp0%vc5)R`+98HKq1E`(Vs@M%AIT@L5K9OrZZ`rW?Mtk1#Zcd!NoCat6q&{T)$z(;5oA0<&E?qir4@N#S ztsh4X=FSx+8{lLP2<_W*U~tfCDk-V&;F6b3ILxum$W`p_86ksI#hzCM9OQ}449Pd9 zDOIxbcHLoS7y0g3cb*U>+|NJ`->)zo8$jS>4ML+IE*Ex=7V!0~7@7@<-yyjl1bn~#MQMtMEV5s<8r-M4xE#okDpY^ULbHMx zs#Da6Q3DroRgl&0RUs~LJE{Y13k#kmA3n1ZlLD!U;&LQSjBI(&nc;>|x_-zFcYzum zzg-nefDB`$IBElb`jp*e<>C8;>EVY=M#=;$pnQuus z>~?HYAfpE4^~YEvdCmz*=jUr&+1vqkm&%m%VurVxlx6%W{fG)$L81Mmlx2dVwSv8- zk>Pmp$Hwp4%sh}dU-#9t2dd`!uUOdq0`KxPo zGp>$XM661B-jQrhGuk>cU(7L8?9hvxW+;Oya|K?+yI>yTb^EOs(--pSGZCW0N?RbR z5KZ4uUVtYeW)M>O^?6SSI@9lnk-S4mbs6Sm@d8oF7y~`)`X->(h<=YKl%m@mAu!+z z!@5tk7;Xb9)L3C+0MxA@NKxscJr{?>iZPoYb{9HoAi0m z84v91Md&+=^wlWT3H}3++u4ZH_r0IpeW6{t{4c)Snr+QHeyhm6X!pL8YsKfB@Z!k@f zMq9f;oMEEv1P2hSYXj-BwU6)w5aB6 zKt^I$bM0~q$GEw^3kUaY@<$Fw#P|BN>>gf`At09L>6?}wr_aZYXLb6WuiA32ok5_m zPrfdQc%MQVi^%6?v)PQNj$Ipjz=ObN>TSNZ*GhZsvMSA3T3XIIo_ywO-xu3d=F&a# z`Og(0R*B%~P^C`VZ;#E*G906>Md@|}%&;0_YTw6q>1;rE%pkY7rP$$G+hjd+br2Hg z8$-=&hTqYEZQ1vxwwk`}hWZ}e%gdK^)u7ReKQ(sW;SQ~vhP034h?O@a6qq_$Jq#Jn-GLEfQ=!JUj$|!r|g#2SUU7 zBhY|2^uQVZhtB@V9QWv9_K!E-W9jeYdjC^8!T;GS@4tH|1D$FAC+}pAADQcZ^G^N& z{SwN*xO|#N@IQ0(f5b8Q(ev>?IVS&d};tFZw?c z4gTd2{HvWG?~iT%)$XGc@~@JANyfv z{+R^vM?3$b|J{)pc;P?Hp&#=9?{i2qc0PQD0Y&t?Gn}>sy>h2Mj&HSKVLp}hFhSfo zsNl-CSENCL^-KFnm;DL_Q92hPMtk4;KfECbPYc)N`gnFxQ6^)|Bt1K>-w6CHv5`z? zURSBNQ=9mD{rip@Qqftmo6B6T9gl;wC9eFL`?pv66MP$<7NeI8^aQ*2$-EypS^I7* z^;5pqHhoCY4j4Vz-{wW|9AUMOp*(IH8^8K~eVBvW8bA4V!Z~eHp9i{Tbk$zw0qf|5 z@g>O{b?(>hDHcL+aw_)djL($&hZdUMQ`7D$Z#;Jyqa7>?7uPQlEH{kO;!>34*+Zg> zv-vq*haFQ4z`t?UoK452GOU@-tfk=54H#)gBh6=~N-r$VEFCZ2-iECaV5N|$gA^`) zv+mpdX>)4y)8?UZ9DT+Tx~4C^%QJ*Zp$Vw90Zq%u z^hol*&iBaiBXGcvUd4qK4eSUxetI(h%Ln=g$}QSY+OD{h11>0FEw_mJ{e zlm`ypn;X&V0126ZR&ahcFqoeE4sdtA`|T!2kU%WZemlaCTX75KZt&}iU(br5B6Zb? z2*4-`#2P(xD4IN#WUz%@m`A9gMtNYp&UWSQU0;>qOY9L4tsVoc?|HN1mOJGtHJ|f@ zpDKcgUc7Q);ZgzL1nH$nBItQ3wsqqH7%3wx+2DgGEQ#t`Py1}Sq;*L=2a7C#8*DiiZdJBIGF7^5Q(&7@|viT)zGg#TDlS7DG5MG~?Lun@@na_(I2J8^XpBU#7 zE|zDlFgzd>4`JLe@JZqrpt3q;VC*{f4*}nxnkXSC>T5^VQy3f9Q`sRG{ozawyDY+O z7w)XrStT?~L?WZTj;Yo5kQIo^Yp5NH=noJT7$Xbi-c>VioH@6lxXv@< zT`Vx0&~+^Ct$je3q&PR5 zH>mw3nOm=L*L(U72smOh7zHj#U-UbNauDp5W+E?Gwo5cu2ioxWL5*P8otD}EMno03c2wign>_+J=;X(4nX52Kcrc4juQhx;5tgCfn->&Hpb!~ zra#i)g$LsfK3TT`q}q_sbTJFG%jOuHAjmUG=Ti#n`VU8I#ssAWkE)>_2`So6E!(p= z;Vp>eK$od@uEmx0%@d@~QAlUGfKfU7^uvnD=Rs32NNarTjDsDOLNBzcaS1aa;b?fz zebfQ1VSymK?ct2eGY!Sz?JW3- zX*oKRoyTvi(Et?ZtSj1ru^lGSeR-kV6DhpjgC z=5>b-&b7_fxu`Y+(>qgq4o-n&tUT|uyUt;OODjoLrS|@7jt{cPxp>1Xn=5i@gkX9d zrnibwg<2=%d&e(Y^p*>pg}Bu`SsT=_^V?k9N)By&xjh&k`oG-D+abPhIN4I?T8v@Z z6XAeu`CI}MU<<+k1z_yJke_^8)ddV^+5u1B`Y&94lzqvCe$Bs)@&5>QR zb*1Wj1&&{awOaDUsl`G1sGqoS+}SX1(Bif{NH$@~?#mnVY3VAavy>Dy*Nr-;K^3Ke zx_;q=lp14yljN$Dlo^!P+oY>!0Zze5$yJF1I+;XGhE{_z=J_q$o##k-WU$x_i^KtF zzKW)nZLynGY&Y3GUoQ=jXmK%Z-x*jfaKM+8%g#_sM1EiT){_w;1PCxdP)KvHT&P3n zfkMLJ(D<}8HglHX@kxocN|sJLmzb|zH?jj)LQ|63Jn-9B7)`XE3}w+Kk}-^oa2Sy} z{GN=<%rD+Bh@v)I^d!L~V`v#0Fsvdr*q50GdhaDr1C`O_nLhN#>lMwf(-q~HXjhs! z6K+|tu@t7A63G+LyqcDPvk9&nREbm)lJ=Cloe97q!^}1vhZ-51dCL+T*hyaaQusvz z3!Q)h1NIw$)p+D_<*~8`@P|d0*TcjiMKpR9%JB&sX%7o*0%(YtIt+JT+PK(V7thAj~@!O6a z_UAh=N?gG@W;=V4ktnquA$ihts_Lj;%$EP2X05om3Nyf#4byo2)L1fT+&@Z< zVWbenen2N;oEvbeQY1mGWKv`L1zRsivuat+EUo&Pie5G;a9SP)7c@_3*GSO3qtZ7M zj)2oYa(-2BfC1kx`##}1^|{)-!_pf6JptFE>uNU_G_rEp%nNSvh_dG%CXO37(14Bo zq3NW;Da_Rti4)T`gt`}gm}DNb zs+(3O%7Mc9d+DNccZE=Iy9c{{9HFwLPsa=DH;dFJL)Ps-fa6fwC-^ZUm+ZoxsD9u% z{0t5FC>1vyvl#)*>lQE*DiY^;K6mAMlv6yf8%e;2>sgPCYP`JxdNpMfK7?y5!^(5D zIOKUyCHt@w*;sTn^K(`Blr-jydt7YIsTNzq ziJlN#nT4KtqLNep7XaNNvZ)?vhk?M9E7yO+f(wiLGSbRyOEVw6L`#c={iac7?Q zFZ+nJ$b5>e3{UvH9$G8%4t6&gg%y2Rr(%Y5TDh{mgQKG3d1x*%^B_lZ>298-nRYg8 zkr#k!Pj6S8`k?So?LMtP`pY4PnP|=1oHtZ#9_w?E#+HtENQ-fwk1xfv4@~MMF)lF9 zTTBn|w$Ua`BbAE!kJb26s3~9X8hi57b;N9TH7W^>aSNH|)u52QDoQw7;}?d%tdJO} zQLR-%8qn-5tkG?iN-5g;tlF?Hit(JScLtA#_14oVni^{zH${F-vJRrlH9fV5TO+YUVz7#|(XY;?lp zo%eSH1Mn7$sS5~Natm?mDko_~%ByrXaN53YM_(I!w9eV@N$AcNZmy#36EY?`ryp*+ z)eTPc?>oo4q;wjemn4-FL^^YyHN6@LG(xH z@}ma(QxdwS0+B~5p&P9b^PUgZsKegiIitL_kZ!-=!|hDVa0fLi>UNoj2I1?(yro>t ztN&I-bJMG}SH1Y2l^Tk-aLqg{d`ajn4i>29I9wRu`|%OFDVP znmRjY({2uGcYXC;)GLuaPslmW&#(}OU#XX964Q3-18*JeG@b!FShC-Ezr_{Z6#xEnolqBHlWQAA(B{uFh%-!V7E7kdt<)) zG`R47%3+QC&}fG6Wt2oa!v@QHwCC9h^$xMNH-|}|SSdTJ>TRB-^YGXZ#_SMuQ_)Hf zNcWygWg0OQy!3Y!+76BG4W|lfZ5`90ijrPgnU%8v^cvK=!JQ#zE#S@JSCu1HAb5=K zsSKMJ%=btUCrKbvbD@3C>a7(fixKs}kwMOMg|kbKhH%V-p5E@z${|U@mO8s7cz&%P zOOduV(M7FNdUB3r@z$HR$CG;j4Q-CAR~A?2sUIo zk_b;WkS#SO%0M8U&2q6+5UfpIqY}P0${j+GJKrWXy!HCt$uRR8wQos-Z!&tl5uRF6 z!x6J6N=Xw?I@h6swG**T+h0MoCtyNwT-EI3yiYqb`wTNNdf=r?j8IU&7U_JR9jR;F zK#&>#HuiyhoKz(rYofGahl?uoJu3F3}RDHTbIqqz7(EbSA83l?SKiG zbbvS&w3Iax9f2gchv;CuS31jqgrtgaf+6qvI>v&f;5s7Y2XVFp7JvAO?O=6QX)5<> z;P#TmVnu(M9a$?cASWbDDxNif#)TKov>f(5LqoqzM+2&smTTmwuPGee#cCqsSS?oC zH~aevh>P83oR*Il>(@>U1w1{=^8KT&%Ub>LlH-}&mJ-PNvd?LXVJWhDvY8?W!b3}8 z{jQ^1>ZM6Oo~FK)#dIv@V~L+hg2On?@xKw89Altu#JhY5JD0V`UxeG>Z8w5V_Kmn| zezg%UXY;I9LD5KxWQ~4hhU}a`(j>w%=YUSQ^;uai)We`^a^oGy1AMPv$k2cIHvjlN z_Lnj8?=W3I0(|{<>rzttxAyjm6>4x0_+YTw|IqlOrT3q&#Q(B&K7RMM*RylBGWcnz z{SmTEP}kN#6lgXeq!$qYzW!Gxga3tb_U|v;KMewJbuH{3d$A={=lEeo``tME2>p`B zzZiaMoc*uN{okS?b9_{Z6|6OY|qxwwzfWZ|nc)!rdVnKiB;juyq&RNRDGPwa^d~TjjM)cLsa`6K! zCTHXp;OarcaHQ6CC)O^qReiwKjzNNyhR&r1SGQff@FhL}s{>-ck3;=03ji0hD^>?% z`57Em+MX1iY+sY$Wrn_drkWnhVb|T*ckPVEbrN>2*bs@MHj7TbL=ZX zRe;;+Fhnnp!J8;l3}K&qgx4yfv5om}0skqE+EdPMNY{!g@0CuK-;9n*@Cf0wjUjbfOng0d;S{)df0j&S( z>({(y{#Tp7CJrlrud)6Ffky+6 zip%;_f7yP9&Sm>~O2zhbDFj+0A4z@|G#^9g{>At&N&Y)5u8=O!qG@ULX!ZNSFyW8N zKa7C77Dj{=PPFzGrWTft7L<>ew1J)OTVM^sA3Xi4B&DloU}j7BgC)3sSs8!brJw!% zSS|nh$ie|UfOzEcu?bO@$K!>6N&rIkpG`epV`U)Z_%XU44L@>eW2ygW)KsUJ6BZ?; z7dHorS@5rSA>aaS;AHp1`l>3cXJVjlN65|ncoBF2^HWB^&rHC(@k2t7tO8pUvNW@_ zQMA(4H~2v;Y+$HsZ)T?;CP?@X*}q2hOP?Pbma#Vn-cp7i_2dXC7%3m64HV(yHDH

<@kWrEpF*28M9J z^Cn=FPlmr=glw$9X-jBG_yc2PUjXz@43!3tE?-!TpbHsECWH}?4X@wPs} z7@2{$=y!~Xoe`*RPcfiwJ;7L+AD5LaWDe| zm_Ho{GwY9N$-j*aNcRVS%s@Fm?Sq+}^^fra>3}QL@3LZMWdRo9z!?(-Y+XF z#~*a80OqInl9?UA_H=A4Kp8y6fONp)+9!Rmb38sAe(M)l_fP&f7#^c?|3=5m!Nl|w zV*!fvsZ4#eU-jC@O}hdH`JG z{?Ij6HkQXn{O@%+SRS_ozhi7HtWWiTm4oe%aj*eT^8et4gN^NJACK%k9UHKV$4BsQ z{Q~KLKMQz*v9Lb|=>MILh5e5?$i~X>xYhfO4k&uy&jy}iEPu!aI6EGroj<9|@yGlC zu(15W3jnBAPvyrBe8l{Tu|4jce(Qssjs1^xmmR?T$C}L!_;YTtvjZ2R-`fLbGGG8a zkv$M&1U!)o5MzGa)%}|nAO?KEJ;j)Tn)L_9&hiHaU}Jcqr@*sY0K*d<0%Gh>*8|}5 zm+`6mfEX~^@Y8rfZt68MFoLkWD@2j{O=?`wx^25E(Sj~M!*fDt(~ro-H*Kz RaJK=Rm2jk_BC?`z{|`wL0iXZ? diff --git a/xml/target/offerte.fo b/xml/target/offerte.fo deleted file mode 100644 index af6e4f2..0000000 --- a/xml/target/offerte.fo +++ /dev/null @@ -1,568 +0,0 @@ -/Radically Open Security B.V. - Chamber of Commerce - 60628081/Radically Open Security B.V. - Chamber of Commerce - 60628081 - RADICALLY OPEN SECURITY B.V.OFFERPENETRATION TESTING SERVICESFORSitting Duck B.V.August 25, 2016 - - - Introduction - Sitting Duck B.V. (hereafter “Sitting Duck”), with its registered office - at Reed Street 42, Pond City, Amazonia, has requested Radically Open Security B.V. - (hereafter “ROS”) to perform penetration testing services. - Motivation for this request is that Sitting Duck wishes to get a better - insight in ... - - This offer sets out the scope of the work and the terms and conditions under -which ROS will perform these services. - - - - Project Overview - ROS will perform penetration testing services - for Sitting Duck of the systems described below. The services are intended - to gain insight into the security of these systems. To do so, ROS - will access these systems, attempt to find vulnerabilities, and gain - further access and elevated privileges by exploiting any vulnerabilities - found. - - ROS will test the following targets - (the “Targets”): - - dsfsdadfsd - - ROS will test for the presence of the - most common vulnerabilities, using both publicly available vulnerability - scanning tools and manual testing. ROS shall perform a - 6-day, crystal-box, intrusive test via the internet. - - - - - - - - - - - - - Prerequisites - In order to perform this audit, ROS will need access to: - - Test accountsTest environmentContact information of system administrators, in case of emergencies - - - - Disclaimer - - It is possible that in the course of the penetration testing, ROS - might hinder the operations of the Targets or cause damage to the Targets. - Sitting Duck gives permission for this, to the extent that ROS - does not act negligent or recklessly. Sitting Duck also warrants it has the - authority to give such permission. - - It is important to understand the limits of ROS's services. - ROS does not (and cannot) give guarantees that something is - secure. ROS, instead, has an obligation to make reasonable - efforts (in Dutch: “inspanningsverplichting”) to perform the - agreed services. - - ROS and Sitting Duck agree to take reasonable measures to - maintain the confidentiality of information and personal data they gain - access to in the course of performing the penetration test within the - Targets. Both parties will use the information and data they receive or - access only for the purposes outlined in this agreement. - ROS warrants that all core-team members, external freelancers, - and volunteers it engages to perform the penetration test have signed a - non-disclosure agreement (NDA). - - - - Pentest Methodology - During the execution of penetration tests, Radically Open Security B.V. broadly follows - the following steps: - - 1. Requirements Gathering and Scoping; 2. Discovery;3. Validation;4. Information Collection;5. Threat and Vulnerability Analysis;6. Exploitation;7. Reporting; - - -Step 1: Requirements Gathering and Scoping -The expectations of both parties are discussed and agreements are made regarding -how to conduct the test(s). For example, contact details and the pentest's scope -are documented. - -Step 2: Discovery -As much information as possible about the target organization and target objects -is collected. This information is passively gathered, primarily from public sources. - -Step 3: Validation -All customer-specified systems are cross-referenced with findings from the -Discovery step. We do this to ensure that discovered systems are legal property -of the customer and to verify the scope with the customer. - -Step 4: Information Collection -Information from Step 2 is now used to actively collect information about the -system. Activities conducted during this phase may include: -Determining which parts of the various components will be investigated; -Testing for the presence of known vulnerabilities, using automated tests; -Identifying the offered services and fingerprinting the software used for them. - -Step 5: Threat and Vulnerability Analysis -Potential threats and vulnerabilities are indexed, based upon the collected information. - -Step 6: Exploitation -Attempt to use vulnerabilities of the various components. -The diverse applications and components of the client's infrastructure are -relentlessly probed for frequently occurring design, configuration, and -programming errors. - -Note: Radically Open Security B.V. uses open-source scanning tools to get its bearings, -but generally performs most of the exploitation by hand. - -Step 7: Reporting -After finishing the audit, a report will be delivered where the step-by-step -approach, results, and discovered vulnerabilities are described. The report and -results will be presented to the responsible project leader or manager at the -client's office. - -Steps 4-6 may be repeated multiple times per test. For example, access may be -acquired in an external system, which serves as a stepping-stone to the internal network. -The internal network will then be explored in Steps 4 and 5, and exploited in Step 6. - - - - - - - - - Code Audit - ROS will perform a code audit to aid pentesting. During a - code audit, we manually examine the code of an application to ensure there - are no security vulnerabilities and use our understanding of the code to - guide our pentesting. If vulnerabilities are found, we document those and - suggest ways to fix them. This is done by highly-trained penetration testers - who can both review the raw code as well as interpret the findings of the - automated scans, putting them into context. - During the code audit portion of penetration tests, we take the following - criteria into account: - 1. Risk Assessment and "Threat Modeling" - In this step, we analyze the risks of a particular application or system. - Threat Modeling is a specific, structured approach to risk analysis that - enables us to identify, qualify, and address the security risks, thus - dovetailing with the Code Review process. For example, user data is - sacred. We focus on encrypted storage, discover if Sitting Duck employees - have a backdoor into data, and cut loose stolen devices by wiping them - remotely and revoking accounts.2. Purpose and Context - Here we focus on risks, especially in the quick and easy sharing of - internal documents and itineraries. Account details aren't so secret - when we know who will be in meetings, but what's being discussed is secret.3. Complexity - The complexity of the system is in the frameworks that support the web - application. We'd ignore those and focus only on the custom code and - backend code. We would also - focus on implementation mistakes and known flaws in the systems. For - example, we'd ensure you're using the latest versions of software, - but we wouldn't delve into the framework itself. Since we assume the - code is written by a team, it should be clearly-written code. If you have - several full-release versions, there will undoubtedly be several revisions - and audits on that code. -For more information, please refer to this link: -https://www.owasp.org/index.php/OWASP_Code_Review_V2_Table_of_Contents - - - - Team and Reporting - - - Team - ROS may perform the activities with its core-team - members, external freelancers, and/or volunteers. - First point of contact for this assignment shall be: - Melanie Rieback (ROS)Sir Knowsalot (Sitting Duck) - - Our penetration tests are run a bit like a Capture The Flag - (CTF) competition: - - - Radically Open Security B.V. has a geographically distributed team - and we use online infrastructure (RocketChat, GitLabs, etc.) - to coordinate our work. This enables us to invite the - customer to send several technical people from their - organization to join our penetration test team on a volunteer basis. - Naturally, we extend this invitation to Sitting Duck as well. - - Throughout the course of the audit, we intend to actively - brainstorm with Sitting Duck about both the penetration test and the process. - This is a continuous learning experience for both us and you. - Also, in our experience, a tight feedback loop with the customer - greatly improves both the quality and focus of the engagement. - - - - Reporting - ROS will report to Sitting Duck on the penetration test. - This report will include the steps it has taken during the - test and the vulnerabilities it has found. It will include - recommendations but not comprehensive solutions on how to address - these vulnerabilities. - - A sample Pentest report can be found here - https://github.com/radicallyopensecurity/templates/blob/master/sample-report/REP_SittingDuck-pentestreport-v10.pdf - - One of ROS's Core Principles is the Teach - To Fish principle – otherwise known as the 'Peek over our - Shoulder' (PooS) principle. We strive to structure our - services so they can also serve as a teaching or training - opportunity for our customers. - - - - - Planning and Payment - ROS will uphold the following dates for the planning of the services: - ROS performs a penetration test on TBD.ROS delivers the final report TBD. - - - Our fixed-fee price quote for the above described penetration - testing services is € 100.- excl. VAT and out-of-pocket expenses. - ROS will send an invoice after completion of this assignment. - Sitting Duck will pay the agreed amount within 30 days of the invoice date. - - - Any additional work will be charged separately. An hourly - rate for additional work will be agreed upon before starting this work. - - - - - - About Radically Open Security B.V. - Radically Open Security B.V. is the world's first not-for-profit computer security consultancy. - We operate under an innovative new business model whereby we use a Dutch fiscal - entity, called a “Fiscaal Fondswervende Instelling” (Fiscal Fund raising Institution), - as a commercial front-end to send 90% of our profits, tax-free, to a not-for-profit - foundation, Stichting NL net. The NLnet Foundation has supported open-source, - digital rights, and Internet research for almost 20 years. - - In contrast to other organizations, our profits do not benefit shareholders, - investors, or founders. Our profits benefit society. As an - organization without a profit-motive, we recruit top-name, ethical security - experts and find like-minded customers that want to use their IT security - budget as a "vote" to support socially responsible entrepreneurship. The rapid - pace of our current growth reflects the positive response the market has to our - idealistic philosophy and innovative business model. - - Radically Open Security B.V. has a number of values that we describe as our - “Core Principles.” These are: - No sketchy stuff - We don't build surveillance systems, hack activists, sell exploits to - intelligence agencies, or anything of the sort. If a job is even remotely - morally questionable, we simply won't do it.Open-Source - Releasing ALL tools and frameworks, we build as open-source on our website.Teach to fish - During engagements, we will not only share our results with your company, - but also provide a step-by-step description of how to perform the same - audit or procedure without us. We want to demystify what we're doing. - It's not rocket science, and we genuinely want to help your company - improve its security posture, even if it costs us repeat business.IoCs for freeReleasing ALL collected threat intelligence - (Indicators of Compromise) into an open-source database that everyone can freely use. - (Sanitized in agreement with customers.)Zero days - We don't sell zero-days - we responsibly disclose them! -For more information about Radically Open Security B.V., we refer you to our website: -www.radicallyopensecurity.com. - - - - Terms and Conditions - ROS will only perform the penetration test - if it has obtained the permission from Sitting Duck B.V. and dafaf - as set out in the penetration testing waiver, attached as Annex 2, - or provided in a separate document. - - ROS performs this assignment on the basis of its general - terms and conditions, which are attached to this offer as Annex 1. - ROS rejects any general terms and conditions used by - Sitting Duck. - In order to agree to this offer, please sign this letter in duplicate - and return it to: - - Melanie Rieback - Radically Open Security B.V.Overdiemerweg 281111 PP Diemen - melanie@radicallyopensecurity.com - - Signed in duplicateAugust 25, 2016August 25, 2016Diemen    I.M. PortantMelanie RiebackSitting Duck B.V.Radically Open Security B.V. - - - - Annex 1General Terms and Conditions - - What is this document? -These are the general terms and conditions (in Dutch: “algemene voorwaarden”) -of Radically Open Security B.V. (ROS). This version of the general terms and conditions -is dated 15 July 2014. -In the spirit of ROS's philosophy, ROS wants these -general terms and conditions to be as understandable as possible. If you have any -questions, feel free to ask for clarification. -What is Radically Open Security B.V.? -ROS is a private limited liability company under Dutch law located -in Amsterdam, The Netherlands. It is registered at the Dutch Chamber of Commerce -under no. 60628081. -To what do these terms and conditions apply? -These general terms and conditions apply to all agreements between ROS -and the customer. ROS rejects any terms and conditions used by the -customer. The parties can only deviate from these general terms and conditions -in writing. These general terms and conditions are also intended to benefit any -person employed or engaged by ROS during the performance of an assignment. -How does ROS agree on an assignment? -ROS wants both parties to have a clear picture of an assignment -before it starts. This means there only is an agreement between ROS -and the customer after ROS sends a written offer containing the key -terms of the agreement and the customer subsequently accepts the offer. -Communications other than the written offer do not form part of the agreement. -ROS can rescind an offer until it is accepted by the customer. -What can the customer expect from ROS? -It is important to understand the limits of ROS's services. -ROS does not (and cannot) give guarantees that something is secure. -ROS instead has an obligation to make reasonable efforts -(in Dutch: “inspanningsverplichting”) to perform the agreed services. -ROS will make reasonable efforts to perform the assignment in -accordance with the plan set out in the offer (if any). If ROS -expects it will not fulfill the plan as documented, it will let the customer -know without delay. ROS is not automatically deemed to be in default -if it doesn't meet the plan. -ROS will make reasonable efforts to avoid disruption of the -customer's operations and damage to its owned or operated systems, but it -cannot guarantee that this will be avoided. The customer agrees -to this. ROS is not obliged to restore the systems or recover any -data deleted or amended in the course of the assignment. -What can ROS expect from the customer? -The customer will provide ROS with all means necessary to allow -ROS to perform the agreed services. If ROS needs explicit -permission from the customer to perform its services (for example, when doing -penetration tests) the customer gives this permission. The customer also warrants -that it has the legal authority to give this permission. -How do the parties handle confidential information? -ROS and the customer will not disclose to others confidential -information and personal data they receive from each other or gain access to in -the course of an assignment. ROS has the right to disclose this -information and data to persons engaged by ROS, but only if these -persons have a similar confidentiality obligation vis-á-vis ROS. -Any person will only use the information and data it receives or gains access -to for the purposes following from the agreement. Both parties will take reasonable -measures to maintain the confidentiality of the information and data they received -or gained access to, and will ensure that persons engaged by them do the same. -What does ROS do with vulnerabilities it finds in the course -of an assignment? -If ROS in the course of an assignment finds a vulnerability which -might affect the customer, it will report this to the customer. If a vulnerability -might affect third parties as well, ROS retains the right to disclose -this vulnerability also to others than the customer. It will only do so after -having given the customer a reasonable period to take measures minimising the -impact of the vulnerability, in line with responsible disclosure best practices. -What does ROS do with indicators of compromise it finds? -If ROS in the course of an assignment finds indicators of -compromise, such as malware signatures and IP-addresses, it will report this to -the customer. ROS retains the right to also publish this information -in a publicly accessible database. It will only do so after it has given the -customer the opportunity to object to the publication of data which would -negatively impact the customer. -Who owns the products developed in the course of the assignment? -ROS retains any intellectual property rights in products developed -for an assignment, such as software and reports. ROS, however, wants -to teach as many customers as possible 'how to fish'. -For software it developed, this means that ROS gives the customer -a permanent, non-exclusive, transferable, sub-licensable, worldwide license to -distribute and use the software in source and binary forms, with or without -modification (very similar to the BSD-license). If ROS's software -is based on other software which is provided under a license which restricts -ROS's ability to license its own software (such as the GPLv3 license), -the more restrictive license will apply. -For other products it developed, such as reports and analyses, ROS -gives the customer the same license, but this license is exclusive to the customer -and does not contain the right to modification. The latter condition is intended -to ensure that the customer will not change ROS's products, such as -reports and analyses. ROS retains the right to reuse these products, -for example for training and marketing purposes. ROS will remove any -confidential information from these products before publication. -ROS retains title to any property transferred to the customer -until all outstanding payments by the customer have been done in full (in Dutch: -“eigendomsvoorbehoud”). ROS also only gives a license after -all outstanding payments have been done in full. -Who will perform the assignment? -ROS has the right to appoint the persons who will perform the -assignment. It has the right to replace a person with someone with at least the -same expertise, but only after having consulted with the customer. This means -that section 7:404 Dutch Civil Code (in Dutch: “Burgerlijk Wetboek”) is -excluded. -Due to the nature of ROS's business, ROS regularly -works with freelancers for the performance of its assignments. ROS -has the right to engage third parties, including freelancers, in the course of -the performance of an assignment. -ROS wants to be able to use the expertise of its entire team to -help with an assignment. This means that in the course of an assignment, it is -possible that the persons performing the assignment will consult with and be -advised by others in ROS's team. These others will of course be -bound by the same confidentiality obligations as the persons performing the assignment. -What happens when the scope of the assignment is bigger than agreed? -ROS and the customer will attempt to precisely define the scope -of the assignment before ROS starts. If during the course of the -assignment, the scope turns out to be bigger than expected, ROS -will report this to the customer and make a written offer for the additional work. -How is payment arranged? -All amounts in ROS's offers are in Euros, excluding VAT and -other applicable taxes, unless agreed otherwise. -For assignments where the parties agreed to an hourly fee, ROS -will send an invoice after each month. For other assignments, ROS -will send an invoice after completion of the assignment, and at moments set out -in the offer (if any). The customer must pay an invoice within 30 days of the -invoice date. -ROS may, prior to an assignment, agree on the payment of a -deposit by the customer. ROS will settle deposits with interim -payments or the final invoice for the assignment. -If the payment is not received before the agreed term, the client will be -deemed to be in default without prior notice. ROS will then have -the right to charge the statutory interest (in Dutch: “wettelijke rente”) -and any judicial and extrajudicial (collection) costs (in Dutch: -“gerechtelijke- en buitengerechtelijke (incasso)kosten”). -If the customer cancels or delays the assignment two weeks before it starts, -ROS is entitled to charge the customer 50% of the agreed price. -If the customer cancels or delays the assignment after it already started, -ROS is entitled to charge the customer 100% of the agreed price. -ROS is entitled to charge a pro rata percentage in the case of -cancellation or delay shorter than two weeks before the start of the assignment -(i.e. a cancellation one week before the assignment would entitle ROS -to charge 75% of the agreed price). -For what can ROS be held liable? -Any liability of ROS resulting from or related to the performance -of an assignment, shall be limited to the amount that is paid out in that -specific case under an applicable indemnity insurance of ROS, -if any, increased by the amount of the applicable deductible (in Dutch: -“eigen risico”) which under that insurance shall be borne by ROS. -If no amount is paid out under an insurance, these damages are limited to the -amount already paid for the assignment, with a maximum of EUR 10.000. -Each claim for damages shall expire after a period of one month from the day -following the day on which the customer became aware or could reasonably -be aware of the existence of the damages. -To make things clear, ROS is not liable if a person associated -with ROS acts contrary to any confidentiality or non-compete -obligation vis-á-vis the customer or a third party, this person might have -agreed to in another engagement. -What happens when third parties lodge a claim or initiate criminal proceedings -against ROS? -The customer shall indemnify ROS and any person employed or -engaged by ROS for any claims of third parties which are in any -way related to the activities of ROS and any person employed or -engaged by ROS for the customer. -Should a third party lodge a claim against ROS or any of the -consultants it engaged or employed as a result of the performance of the assignment -for the customer, then the customer will co-operate fully with ROS -in defending against this claim, including by providing to ROS any -evidence it has which relates to this claim. -Should the public prosecutor initiate an investigation or criminal proceedings -against ROS or any of the consultants it engaged or employed as a -result of the performance of the assignment for the customer, then the customer -will also co-operate fully with ROS in defending against this -investigation or proceedings, including by providing any evidence it has which -relates to this investigation or these proceedings. -The customer shall reimburse ROS and any person employed or -engaged by ROS all costs of legal defence and all damages in -relation to these claims, investigations or proceedings. This provision does -not apply to the extent a claim, investigation, or proceeding is the result of -the intent or recklessness (in Dutch: “opzet of bewuste roekeloosheid”) -of ROS or a person employed or engaged by ROS. -When is this agreement terminated and what happens then? -Each of the parties may terminate the agreement wholly or partly without -prior notice if the other party is declared bankrupt or is being wound up or if -the other party's affairs are being administered by the court -(in Dutch: “surséance van betaling”). -When can ROS not be expected to perform the assignment? -In the case of force majeure (in Dutch: “overmacht”) as a result of -which ROS cannot reasonably be expected to perform the assignment, -the performance will be suspended. Situations of force majeure include cases -where means, such as soft- and hardware, which are prescribed by the customer -do not function well. The agreement may be terminated by either party if a -situation of force majeure has continued longer than 90 days. The customer will -then have to pay the amount for the work already performed pro rata. -Which law applies and which court is competent? -Dutch law applies to the legal relationship between ROS and its -customers. Any dispute between ROS and a customer will be resolved -in the first instance exclusively by the District Court (in Dutch: -“rechtbank”) of Amsterdam, the Netherlands. - - - ANNEX 2 - penetration test - WAIVER - - Sitting Duck B.V. (Sitting Duck), with its registered office at Reed Street 42, - Pond City, Amazonia and duly represented by B.I.G. Wig - - - WHEREAS: - - -A. Sitting Duck wants some of its systems to be tested, - Radically Open Security B.V. (“ROS”) has offered to perform - such testing for Sitting Duck and - Sitting Duck has accepted this offer. - The assignment will be performed by ROS' core-team members, external - freelancers, and/or volunteers (the “Consultants”). - B. Some of the activities performed by - ROS and the - Consultants during the course of this assignment could be considered - illegal, unless Sitting Duck has given permission for - these activities. ROS - and the Consultant will only perform such activities if they have received - the required permission. - C. Sitting Duck is - willing to give such permission to ROS, the Consultants and any - other person ROS might - employ or engage for the assignment. - - DECLARES AS FOLLOWS: - - 1. Sitting Duck is - aware that ROS will - perform penetration testing services of the - following systems of Sitting Duck, as described - below. The services are intended to gain insight in the security of these - systems. To do so, ROS - will access these systems, attempt to find vulnerabilities and gain further - access and elevated privileges by exploiting any vulnerabilities found. - ROS will test the - following targets (the “Targets”): - dsfsdadfsd - 2. Sitting Duck - hereby grants ROS and - the Consultants on a date to be confirmed by email the broadest permission - possible to perform the assignment, including the permission to: - a. enter and use the Targets; - b. circumvent, breach, remove and turn off - any security measures protecting the Targets; - c. copy, intercept, record, amend, delete, - render unusable or inaccessible any data stored on, processed by or - transferred via the Targets; and - d. hinder the access or use of the - Targets, - but Sitting Duck - only grants the permission for these activities to the extent that (i) such - activities are necessary to perform the assignment and (ii) such activities - do not disrupt the normal business operations of Sitting Duck. - 3. The permission under Article 1 extends - to all systems on which the Targets run, or which ROS or the Consultant might - encounter while performing the assignment, regardless of whether these - systems are owned by third parties. - 4. Sitting Duck - warrants that it has the legal authority to give the permission set out - under Articles 1 and 2. It also warrants it has obtained the necessary - permissions from any third parties referred to under Article 3. - 5. Should the public prosecutor initiate an - investigation or criminal proceedings against ROS or any of the consultants it - engaged or employed as a result of the performance of the assignment for the - customer, then Sitting Duck will co-operate fully - with ROS in defending - against this investigation or proceedings, including by providing any - evidence it has which relates to this investigation or these - proceedings. - - Signedon    August 25, 2016in     by -    __________________________________for     - - - \ No newline at end of file diff --git a/xml/target/offerte.pdf b/xml/target/offerte.pdf deleted file mode 100644 index 8b55640c8eb2336e1fbda047a422cf70f9e847c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99723 zcmdSAWmsIzvNjAPxP*aV0fKvw!QI{6ZE$xF&fpHgJp^}mA0)WD1PBtG;F9E>Z~k<5^}VX9yH~?qy{f5{#U&YmOzbFBYW|-ff0RI<5C^%LlhTUw zva$d@I*f+6w?RuEAK;_4ml7;IX&j!`~8YO0p4eB z0j+GR7NyVW&Fl)3EV7g2I>D@($*$ku>G|Gfn7`t=Vg>UPjJZzkm|uKdr`e6=!Rn4l zG$z11K)P>Z?WQ&jagzxX9&-FzN8qc-2}7H-&b05UW@g7|nncSQ%(&|f^F{iz(ZwvY z_V^U`*sH+AY*uz9w0%!lWXc^Cm=M!r+3-5ck7 zAg`-r?j$#$m?4*gg-@|KWMp#3=>cs&FZ`Ya@u&M+T);DBcLehX3GuOFc~be*CcP2t z2>1-qFyZ^W%==dZKR>OsrADsa1Ey28;fl!K2>ZWq zEEu_gbQdV&!kFOD5lkG_a5qx15u*A~?F7QFFW|)h%0wTKsKi92;c$eH^HocU%EOKd zEDrS!Y2Dtm!=Q_`vKvQm`Nw_vzLG?BE-WmAH}Oz<7P1FIc%rn1Wk+Q=DG- zVxEDO2GYI&v{8hDN&tbF0N#($ECAeoNzp_vN@M_8MFQ3*IBVh6gtwna+M=WrOGflw zBS=U9mE}L6j*{Sn?tDxw&@A9AELTBP&M6g~*O;fZLAe1aNZNj!n3+6;aeK#0kQ2=$ zsg<8KO?=pJ2)O2c#6butFpUAm;RnbQQR6hgH4roq&c*SB5)8$FitDs1c^8R}qtFLk zYEA5b%_#3N-($Up=Zo_Tq1bVAYUVc5=U0qifM|Ttb)s?7a>8yU=)~H@Jdb%bcy%#$ zX?`#1`^q0lC@znT7CQ#H8Z0eJ4`M7xnwI32YnAg7p~Sk0P=q*r3~UY4mf;uYS0bY7 zrc#l%pyZ?rq9n5?JEh4X-yrWIP5vxt_R57{M}AY(fjW5~)ui^+TcJ*s@{mS$j?E)`xXX(o_EW^*zkyQ{C-6HiuH}!8}vyH48E0R3wJYwDr zF45oN_oQCG8;sZy+g6F9eWJCbHB|?fE19dc&AZP_9_bu$ql>W>!%wSP7d1Lsg*4LP zL`CJuHp=G8#*RAU&=D69&b&DMcFp<-dUSu}(_qw4(&#>-Uf^6{D6d)AFZC|HT#%h# zU67pLEMuGZo1dF+Df2AbniIB8w+7pOwK$VZxB29G-(=!GLW1&S!#9- zEOz5?|KU#6e$yV(&gL`Zqv8|lbLw+ayoPASj-x`OuRN7WmRC?u=iO(<80uP z16BYDS;HrY$Km%oCc+t~aTRezqYVMbYYO6T#nDTS5bQo?~GxeOywIMO- z>FZwl84^+$GEy)Bnw{wd&eSblB18|NnA%(9c#86Q^Hh28?q4si^y!@VE2gr@H1LdjAM*6#mEWsespMgBNttE&fyk7l z;i4gV4Mxq9o#n0UEuAA|ZK?zEemZ;ydr$4ubxUiCYo%qub98FcF?5SApfMof7w0cR zSY6ol!2Q57;o;ttAU}~$`S2nOBCmocf+hL{$eg5&M{W~3uFwxq4?IJIrvs-?3-0=3 z22w-)NaB!Rq1GS=;DfMLFlTxK+l@a5r^45ecae{gpNnUR%Y5`H#3{u7m{n*r>^1yh zSlYD8L~F<}YAymB;y!G;TezFGQ-b&SZoSQkzfZ7$d;5`mSHe4*>D{7scK7`~)*w|j zl@!)YBruXO@|>q28)5Q#Hn6BkuB6rOjOh$J7ts;XG3k7i`9O)XjXH%!K-NQHGnYSO zCs#G`yLvCKI%;moW65Gsw<4;-THY<40CktZi?qaaXLV^nG4c~@6WbMQc*A%@RKusS z?6gyTPAU{E4s)@U==zR9_LZsmK!|v~A#3Jts#@|DH5c!lbgoM-i=%Pd%6Ek^n(uyB zJ%&NLeFign`Fgd@#%@IiqmLTX+JH68i6%ic)GYAL+0vN$bXUFz`es5!Y@p3^MR(9*qgs4+gD@acJ+L?{f4 z@=N#Qd3wt!$#okr@z~xbQ&`scZNPuq|65SR3%`lDi3!F`M)NACicjv}jr;q?w!8x7 zHiqmf97|f#-ok}bhQAHSx<9=c5D9-DUmMrxXL)a6kJwcB3HwNYlV>4img+R__^sd@ zuf~?)qLSVBW9N4ya{`*K`g>k0$o-KYvGWx7^Rfj~+>gF}`#NXZCFgUV9Vy^i#oXz5 zVK=>Ub>KUd^X=|L$b0kVxej#_FV4`+;H3SlQ<-b8fBr7w6A3Q@F#=yWQFuEupTQYH zE|>34)KkiwR##1K2d>lU?8tNC_OZ&6I{xZ1q6=-crT3mLikMA>u7|`e_i``9+EwP2Emi!R}^bf!_%tD6u zUe7X%$r&YsLJYt3pT@tgc=mWbv$Ejuas1T3ex9qzGAiv^{xy4Me(tt>{X>hO#=fv z4j#_G$te3@GCgJ)F)>k)tGOBJZ+@z3@Hc?tF94J;LuskHx05+3vx2!B$PDBL`Ylm& zH*xzT)K-xH7b45~TgksLR(>HbD95%ncOx}1x3qQ;AV2TuAt$vq6Cl^(P+(DT5;M25 zmiBQmSMyO+H}$bKLjbg^Ux^6>C5v#>I=vNA#ujIQ1eZXhp4 z2Um)}HHe$Lnz~p!x&3DU|7Fa~^dE|x++FPcs4+8THn%gkH+OJzWdQtWszP6G=xQ?mV>3V-|JYB^%`HIg@@KdF&n^FZ8~)z% z+?+grZ)mQ6Z0LVPo!q}S>%WaTN&hwGJk|Rgx66sy^~CV}LZ#LEMKElq8;J{HZwqP3 zOJq!AjH_R15pFmdNx8a3#R4HRh-_gSuXXr7uU_96$6MUrsXZSBSG89Q{k+_}NEtc> zww5>lm`R_Ci*3q?HHbCWbfB_=JjL?K5rilAHtt&94IV5^V_;J zaP9Qt`FR@+-1L3?;q~O6P4ZX{1f{DXvTx;vPg&o;d=#8ol=Iy@89?0EQ{rB_$S~bN zuh`jbo~STHgsUDHF8(z%5z1Kd=olRo5L<_qC6*Y;#ID&*W-f8d$==ZkG5 zagv=qQI|F(bnTB_#XLV~wTADN*lFY+>H-5A$G`W#c)o^+?eTw zixlSX$|^JB77^d@C4zmDsN-v7?8C*iE6&{e>Nr6CF1}7rR|%X0CA+72Vg{j$dm^q1 zA=Ng1Y#6#MR*brv`F*+_>+S4^3`=12lLRlY-}0_8b+ENhk{f66E zpFK_){0`AF6Xqvfu~qbly)aJR`Or)kyU-(IF#gh2$R%k)f}6lwul;gn^HTQK7y17A zb%k<=zfjfn^J8_|gbO&M&Xjx)`)w0j7T#Bf5ihD7GTSIojF@fuMU=o;w$|l9`&WHIy~)!|ZgqSX2$?o)-QhQ?L}aIXKf$EvPZi zRQvcG=rV^utCYBht!K`^Zu~ZT-H{8aE1wux_<^ zbNbVD=&Hj6Uhpk!QCU1(;s<4?BB6#nP&O^?P$cFJ#YMNKFO#m`kIkN zZxlc^pX?~c6kN5fV`+H^m{JE#@X~S*&-LZAaPD!7Dx|lf2~dM4Mm%$m2bUT8O0aP7 z$kpnmPf8e5CfB8v=s8_36TJmvud?;Ne_~!@lm%6Lpx)S4c-LCU?Rb|)Op5xU|EM0e zT*+Q1j>j(M)8eX`a@QAHv|2e~+nP{^@5G_rxed0^$trG3)o?P1>ed^xe5gJY{iJr_ zT!PPEvA{(sUtru*N$E8oP96FXY{`vw=1+(AR<)~1KhGQ?i2<$Huc|u+lyn4tsG8@x z#2|JIISlzmOdv*S!d)8opmJS0g?`8oE783bhqCEc(Uh`6UtfOursij@L$07q$L{i+ zWyqLl$hpniTa<*3ID{|#6N$AQ&W@$RQ*+wcYf9WftKxUXHC;2^%`FN{!|+uEyWlJ7sdb>aWwLe4)x9-C zG4IAMs)OkGL<~cnZ2t1 z&;hT?V~hJ9j-K>Y4)Ez^rJsXW8}M~sP(1oB0~IGZ!Qc9XK2syTt&fb1fj4^n-D%>U zAomc#$ZZVOXMdmLGk+yb0K&rQVd+ENdWa|Q=STncSp=uU8!@JZOA!#UXLxjV9G&yj z>v2)5-ED7?8mzjUjW9<{C4!Gp&w@QkPTfi%}DNw$HpHkhxDLqmD}`KnI*QlB&!m$V|0%c>ib`q3>?HYl`FZ z5W~_X&Sbd)Gb`6a(L#Fh#fJR;K&PNMioURIKR<1Kx6MZd0>=gJPWuYpH*&`tzA7KP zqao4$G)#Dnik+2Tztvj@Tm zMm~b6o+V*nm5`862H*Ydla$|#4KeE58Edlfd>kYT>^=xlK_4+ufgds>?#$WDxN?XH z_gweKy+ipRmTh?(Sm~0xgMl7x;DGD@qyxYI(f_6cKprlZzxe>qKls3J`mSp3>geub zYVJx3Wckes{z>|kp@jB#OTpaC8YJrIMXL83z`?`8#LC4%%FPaB;^yWt_>B;Aadi5R z08u-0bF=@5P{hW;{Fl!$k_iiEn3!Q(DQpP7OvlFq|L1@t=#@@ ziCVk4Dx15AIodlpI{fyU{m(2p+Bv$YL4zW5QfTnyU}o+GjlGz~%{{D5%~hpDNr4=s z{On?!JX}BtZcY{;hXf~w1dvUFn?n*>=ivkbxg`JV$0H^w$}I^EZ#YF*{vUsWf7VL@ zt?<17xq^!t0C7j2=%E^Xu)e?`4-jVJH@My&kVo!9@L3d(XK;aRK8itm++(dhUccp zoUBzy-u)6qryFl53Bh?W_mmr9OMnfRE281n8Ye(Pw>QKioqmV$i%9s>ycUs`Gu}nM z0psp6s@JrC>ZL|7JpbWV8M8p#nd;?_LYkDvBMRDBv6%8Ly6T@abYFzZ`QMa`V9IIa z(5dQP=-^~I>!J!)XtF6f_E~CJ4}DXumBFFj?S#>a;10(GYMCeQ)Xejv`^cihm+`Bv zs^Szi|0=eyo)IacexX_&SRsYpFI^U6SlLYC%douW^7SEOj^b&F+b*>;F2>f5kKd!nzT2}Ml*9J-7Py_I zV*x^;GP-V@+i6C_yYWj#!zw-4J0EG)7zAmy({@#h$R^ovxOT4>1LKGDkeyXNsm`$< zo&b8#!0|#@JLI%tdFgIr)V%?izmhSvTfbjL$|$o{Z|`6p;I0&lRB>Q4pt(HDt@x|+bz8z z)t{79#t^LQeBWb_l@kTry+*9kqW^BpPq;Q@CUR}7W{Xn6 z+i{c3_+T?Z=w@;G1_x2is*3FV7@KN=~4S6Yu8-ZKPFN6^sB`RVjY$9gYr0guN84y zIJ-;jlZ@T%FtUZSN&W7baQ2g?a?~lZnkwOf;<5r!FV0t1dt6F1`HFN<=2{;KZU z9R~~>L8__vtxs?Re(aIQ^+a&JJ$l3FDO2T6I{DNqdm_0$K!eng`m&{G?W@)}E*2#3b z)`{mO@C_~^jW^?1&JqNyu1ehFB_i8hlyagR zV4v^qlFvHEq#)awoRe&==Up&(oTGMlr|6Gi1u0zIEN8vqIXc|}wYJf>Ia30b-}F6v zkIwmK%{r4^@+DBhNO+RbV}B0zBlt3?Dlwa>VR_|eka$VuG}v6ote@UvQA}6YW%RI@ z8h1euq7AuKbNWTYW9nv{{8N4W7W+rD$-#H089LJ!Sq^wNIKcEM+F~b&gGZ&#c}9j&A}QAEs1gjqvu8t+E;yL&tW} z6Lg)1T6OWhg{WpV7NdTDa-7maLDmIUFB*&~xRjsbluZe(zm4zd+N7nl8f=v&Iv)6t z1)*;A{Zjo?XIgZj-74>9%@88=BjEa78*-tI0R`7!=(7>V1_I_{93Vp#vlk$geW=p@ z^YTYu!^<3ewd3h5!5^Nm0cyG4XU;!%?_AZaFL1I$%iO=PJabYt%{D8!F|eLY#6#B% z5Lrj<+)W7TwtM9vB$ifdMlHGga-Ood<^4E%m6Y^7K`WT*ZW)skmLoC)S=ob{h;Io4&@wHS)PqQE7#V$mld7tuA2)5S9sf^v$Fyb?DpfYxCj^ z+R)U)Zr=DBgoq+SvA-hzA}4w~hHCHiONperbz?V{f@4odmbsPU^2s4@xXV1dqJ~AEH`;M$`F*Z$I4R2xc zl(iK1s~DclBeoAWvKHbk%)qEM24BB(GC2@UR9r9EcjBYPFdEea!SRc55xdqkA@@*o zuVVRtBX_2Ni4@JR^F=$32|}BPDNf|?AbJQXI(|I;h4W77t6Qh+Ay9A0#?6cq6Vzve z=igbLm?15vXEOQgow)9PeJ-+n&U6Fe*;0Wv0MUDtexgewIt%^KU5bLT>c(ym$;qy$l&x%WPVhf4A7DscT z5HyeCbo`A!UQlOiV_5l2r(L0)TWhpSv=#Q=zV&37b-!t92XEUFGRy4RT;@La@a;w| z68Y)Wm~-c<)@lG20a7XPE&zQr+zE^DtP$Q(c--0K;r!tq-5pcUeKLz^roRw(+)nE+uMDQ|g`a|g`1UbYbi zAtfS{ww8>#3F=t_7-dAUFKO5*LB_b&%|Y)?H=j4qBDC1WA>Rl}+FDYw;1AuHLGqX%rlX)_A0b|0<|YYp3o%46@md z2oN{6V|35JX*cwO02b?-=4D>VC%rVW9%@!iGbkXWtQRADFkyLLHdZr@p0x5ZNgvv= zgcSD~@RLxmi!!aQXns%o&hOFl zUqKbAYgtDs0otd2%ruQd1R1*#&sp*Yj?{L3jKXEAP;JUag7_k7w3iwTV%la?%de?f zPcureMBjl1i@SM_X@Sz^SJU@pnf(wBfBe=@aG`-XX?Ro!O{`$}%4JMymw2p@s7qwA z^uTyB@`77}o`@yT$3WVdiWHH`nJfM9NVty>(t-(-Yj&tyE)acR6{XICI7b zf+L?M=wl4+jNA~-bcPoJwacczk*o!vkYvQbp+60a%IEX?7NU|10d-U)R*qQ|@iKKP zXy?t-ap;09rsSG<8K^34gj{kBLSCJMz39_~718Ia4`~YS*JVcTf5SKEt4(=i^ zvYClfS=M0FY`<;^t|ESC2v4l-U}%#fTr@sk-|)wQKT^G;V&|&P+C}7^h&phI^XZ$% ztU}~XcdL`Y)hYOkyajl`^b3Ut@C;OdX&T@x9;9b^ zakk2XiMQf}Hkx_i9o{+~R*2^XFs1Qy;2E{!_6h31IQcrsILvX2C#8W(^{z>5-8jHe z9rRmK*&c1v_Thqs{QbPkYr^pNWXQHB^NKr}7N(?3 z+!%LoOePmY5c~+#xPg#WePj|FvKTo#QE*LN4`-0>YtZ!-D-Jsmi6{6i4BTc4V!e-9vG! z+$vMa1{N%_y1%2>o(!Xj=D>rI0zeSwbRrd0pJmUR{|*STRF|9c#oD5wJeyybo{imk z0uL!3c60VWOT2S_u8%7Ae*GRGM}z_SIXb_?WWusN{D|a=SJ!(vrklC1vMv#mGtq*A z?1~5EtoEz0)-zEbqo^!M_AXCknWL$7J}oP^k4)CCz$c`}aL2N!GO4yL(hngA>REDr9mdBO+BT8W?OM z#-t|3g#0d{R-K(s5pJ`-<5&X*c2?gam7qi7ON~C%NrO3Tu2DhJ#?JPyz%q=8@2XFO zSiVVOLCatkI{AEr9?Wh`1X^p-O?c4k(-?=gBWgShu%9{^kG8wPE$(t6WTaExa+e?8%u|3y>CgU@Ik)@e*x2$IeI< z<^@u~8ain8pbiN3tn-u6?TgqL8}7oS_V*_e_d;Ato1a3tLf&!%A8+XwW?TTAX|DZA zz-tgN;cd-lef4ZqX@P| zhjfY#JAPAiZe0~#r>1`PqSm)2-IqZ2pYv4{0BvH0VO2Nm8B6|d2T-qHFw=+u3t#5d z@?v-I8!3jFVC{2FSoWqg6OGpnQTwK2LcvzvU=Gjc669@Oy|{TWjdSa4>rnK-bMb?P zZ0l(2(2H>zUm>b>7$#aiAacX7mRkSP^YLe;GGrxKErO+VM&hgskYwvnYij1jT#Qq! zGb6{gBU?Ym5QoLwIJGYujXp@<6wAWVaB~WoD^PA!z6`m7XWO=y%Di|Ud=O|GV;hM~ zf(vH&T?#QGY2hznVH<**-t6j{^mEDe-wZZEz~^aTLWqQU5d^%DCP1Z$~$?9YLgOM%Cz*fPj9h2pWGV5xLZ zmT62XdNgc0WWtZ)p`c*T{cx$}KN9}_&cd`XS``rVj~*5$Y&EkyC8ZrynM41TqLuCB zbj9f%@4!n(Q&HD2PRYneS>kw>W2cI`>4g^LDcd7$a7u=gdr_Q3I$Leqw8k=*D;&^P zuYZ|sN&AQ!tiza7G`*m8w5kqf46W`~O*`2bNEOvGD%*u{OyDnR9v(5c6ZL1;S}?jT zr0^<|?#I~vsUd(gwHt8Tp~iAp7-Y3k4g8AY-bQeks=qI&sF^Q%C{HV#*3ddS1oIT~ zq8LEU%WIea7L0(+dD|6JQg~TG6ZrEQhvgkwQqITEArC=TFWiR|9O^RYB z&;-G}^*|E=FonfZz6D)t(N+15N}GE7gp0SJnh8W^p03r~hVQBr3i&tabbsFaCZQ=^F&XHa*CJd<^ z;>)aRMqZk8#YD~7k7-+QbSoc@(0c<~ERcIesAvy4uNl_*$z}1rh}P{bXZB)*k^g1d zj0}5kr)Y^U5)Jzf*NBFHg!ZBKkFa=jXfy39uLsW1gI&UI5Z~EA z{C!s>*RhbKSPE%@$Dj9gD#D}VWAI$Y{$PUPhAi%1{Swh0!qW zIzbpySa@V<-+=Bn+O;DJdo+Wsu;4t8BM=_=obc(5T|SUzf*~8c9|?YWy?O(dO(&vy zol*-?@Y^xEh=-{ly(7%@QZP$SXe(2SweRU7Xi@K<7nR~fF35VEU*5MLogqp zG>3)kwF<;xfzGeI=m{pZH^I{~ux%?Jw_OTjJB<6VxHHZuv++kSZQHcUdy7G`cV6NN z<6dKNdh{TL4$M@U5kWnvn<(^(2!lg>nU88>M2kx5L)GT;XI!PBikC=oLbE}ZL><#W z1@eB1R&k+bU5OLXVfILFCI1JKwcOGA7^or>sghRkE}oa3yWQo`I44DuGHvGTe8yc35(OqVc0vpx`6kWIgAuYZ?(d6Ky_6<`Qi`ITPP?hH z>6(Wy)PS2Vp}=4%czFglq~wU_cI0X`@$Qh9z{nBDA`p3;{^9E|r}dWE1pJ)rVEsdB z&hfK!sX;$)oNurE#ECpjV>f{DQO|LFid}_p)GI8-lkQPJY^YYl^uoE%GK7_Ljwu0= zMw?rwn^Jy1na;L7rSac_YupEHtxh^RA<{Fd$ZFNFng_fEwj1|Lc3TbwWN|+C#83f; z`Ui`g(^*3hcOD!D?&mO^B$nny1%`~^{jOAub|q+po55Hds~6jR#*7hAp-!qGudZbJ{=19P!9mHEy_2BjKhjB2hfvmQcQ&5s!#W%CtOR%R0l4NjtwjCpL z2ix5$}HkdKA?>2X1M66?jq2Zh4DGpV&p}O?4PrEb?JB5bZ3;7unSw~N zlIu{2Sze^1)&lFA@@edLAhsY|-mILc=@F=j!aZ%h*dV0!Ff>(7+ zZI=w1aSM61Fin}0M=CS2jt8Q8P?uWU;MSKdHCHk(@?SCd10>o%+_B!4p&_PZZinso zz4xM58d}}eGPmmwu{!`3?V01e?V*{Yy9+shHWA0s9>G3*8!b-xf$p}&dCDd8vRKA!!)83Ce3eHFT7Rvw zCrMS|fdTQ^?cpz-pAY^(wiEjcs)`L&ygAy~JZ6B-Sljdj@{)pTr$itzkx&VVxCcETel z`|af?RW%bjRET0cEs@jc{@DcT1@xOPM3WbCF80wWca6Jr-WNtT{QhC@$HpU5fgyA% zFvO7oj)(cG4X|`t5NI1s{u@@P++ayW85ZZXCeDUc<&9RmJ!!OHiDa;5e-39M%7%g~ z9Ww+6?q>-1hCzJFPepVwX(P3eAJYZBdXl-L6ipf_v#FzGs_J;;`?8KhP0$b0))TEJ zsDcbd1X}iemPK+y8pXziv)qGBL?-G{@+#h8+H|+9n+tGnUwaaq+r!?qN43Pfx(PRK zI3s7=oua=DuVCs$q;x~>-xeF=?n)iKpT1V zzJIB-qJ~tgyX&IqD6S{r)hqfN4KpUqg${KtW&;7tjh(AO;!byWyra)8uZ&cc+PNRp zx~GedkH!X;^bil$*1~(3-C!SG?k=3xz6rfp6ncEVxR5ByO-uVp(nR-F`hTXf{7KRH zliJG0#{PFM3-IrBc7FbU=5qYbVE^A_x9We6qig|mEopsymA=yr6Bel34*O)04@-iU zR|${F&id(>P`X)?4E2?}hWf$$btA_ilR8y$9~C}d$ny_U>bJjsCUtk>jz6*dIGEeM zQ)QxN%m9F}GLcJWEAE5o#{7JrhNr^kkmRo@Yd%e62 z@tV`AoH-lwU+1R6r6nwiKT5i-vK{+XT3nm4?=oTKE0Y5@dS+R68NB7WBS{E^O1NbO zgyc3-!XLOit#L1Z@o4h-{W|})cWz)gRExPnhVMvCSaPP0)E7FhQ)p{G`c7OZ`U%yM zT+>AuP^-+>SoyXRb*ZSB^Ojdc#sJB1jgVg(-!F8CR>Z`fhPotO-j=#hy3E$&vm8r} z)N^UQ;(FuvMvK{^BE{3G<2M;(HA{1HG`*DZ;)z2^gPHN62NBEkMsTS~-8_a5BF*7nQN0t26-yU9=!>T6Nob z@#gsS<@_f%m^XN`)0CNJ+t_fY#&#bI#H^GP2f6{lz*V%JZj?=TSCOwV2pE7*OZ_?V zQ9wC270Q;(rfPmJy4)svpT#Rjom|&0MX@W>62K0P+>wOZ)YLb=qp7CF{ld6!%R6P` zBTo*JC^&}FoNqqDw#F#GmjxTYD<#FrC$olFprFf;wN-=2Y_J#Atu9(U)wL;4jmJq} zlxZud+|=NB+!%?^pSm=|&PFRG1F~iIcFv8`wp3XNNxYvDH-BDTtmPl8J)rEzla%C{ zw3v)~2ru56)T)U!s)a_%7bL;HP7}yX>|-YCU$9G~CZt(mTfw-A^s*S8+AIHXoY9ZS zVVs=0gDlQuL%K?DE07;G&RLv+CE+7(@|~D2OZ9MG@)KGp=DOzNnO*9jlr9d+{Jy+= zT+wH=81_J|-O?H_IP=;pHql}D1z&omFkq7 z+C&pLg2eRK^Hfa5JHqv5i@}gU>&Q*&9dvFFRzDD~Bt>w}c_EMfmAHg{osr=-`dqjM z>40!&h>i)Q4?yNHD2f|w1oIh0c{)I(N$3Rpc8mc1@c)Eub47rYq|*vfT$}@|zgQq7 z&Qm=}!WoQ+hr3}+7Pr+ISD6xT70H=}38pDTl0zwNI1I)sS6SY7zSiKk;dd>PG!s{r{O-vq%ZhG0 zB45N^=qZ5BvFFW|<|q=g+I+~EO1arn^P`)&QURNs9-%H9gnTK`f7I}iBIY4Q3aoKbqI(@EO*)v8Pz+YQtAsz;tSAp zQIJ1uoY6`2&Wzuilb&e-aVugmcNtv61RWAG>qC04G`QhpasEbz2*fs*;{I$mtO>@F z3_0q|liT$6{^pg}z^T_uWTl;R?1HzXR*2;lPUZ~dp(8o*M9?e4gn0a!Rr1SLO1$=| z*RO$}&|XIprKe>noGlk<7+9~E;K@IsNBU5ETkaFg9|4+m%i}0NYJCRQT-%FqwVsBc&BwoT3rZf@Gg;cMfYOSS6#1Y$uMP8!7 zMOTQzg)|#i?Ma9&@bk~-Chh=78iI!UWKQeK*BKJ~WnJChC)3f@_c4iNKz6dzb>dUZ zWQcU6>_mKS*WUoMIgP?n&v>eMB&JH2e(vW7uV^|;lDf63Fv&CAx|9%0!c@+sSMEm? znNr)-qa)=PzQSB^#rdGZ&-z{X4S);6x}E~vHj8Lj4S^v(YwvQ34(%Fz+bK?!!yot! zCxE37@Ydmc=Rf#1J(iBk;u>vpJr<7Rym*FNPSTf%ADE;_&rjsKc~Dy$oxfJ-gWCy( zn)BG;N2`7F(h|01iFKZ48K(;R=ZSx;`e&AWFj!M!^Q{grobpSNQyJ0#-F>N_Djdl` zaqnKMgc%&PAQ&_kWEzum5mj)I-uNtdY9?QKnEH`KG<3|G7{qsjR)P}M@iLMsXosLt z;O!ZJDbbnd7vE&L-266$6hX6qJBESCVCS+KuRUbCH~MCMYjh?f1KHxI)0ikPZ%tup zh^?Axz}G95fNvSI$YqNPvIxbMigeQDaP)#OhrM>I7D&iOFvfz?dYYH%Qhr5Jr)MVs z7_&Fr2H${56>NI7TuH~a8Imaw`Xy$pPiBfY2UCw%HiY-9{!`>q-GXzA=7N40-!h6! zCa{mR-yPuPtl=L&y969mZ5ly!c~>~oK^ZH#}m zvzBsVZlI#&>2~EhN*lnHS5-G*ajupR#@G8g$@Ax7FkvR`*L5Ph!{l%sX3wB8Q-Q0` zWgh&~sfaN1w%YaAEW}b6!%C8Lmq)O9lje%q+4_A)pUF-W9i|@8B%?b-r|n6vgrEX>vU%QH!g?d>&y<_Gh0|Mpl4uTzX}>T<*UuMUe~VuQ9JD{ao8kpv1#5mBFY zce!Kde!luIIX0g1SEF5e12H3>tUCmWjtpX^;hqB9W0_wfask|()+kMp=WV(hC^teM zHP`=5<~TGP`LD~P+-(0y9S8n>z3jg(hyMRRcl=NM@P8$b|C`%#!2j)aIsLIH$`-7R zJFWRw+*O{k#%MSC>p2B|sJkg7|A)JGjE?N>y1m0rI_cQ9U9s7*ZQHgxHak|ww$-t1 z+qRQ8{eNyf=efr?_ZjEYdp^~uUAlJd8a3AMnrqDox<3y7@`0uzFFq`~S6oswUYzoU zRgghRoLe9#WHMCbeuK`QY`gPf+Gl;R>!s@D>}F&mU+X*qv+NtE*%$WX+rz@U9=UJp zOJ~b-Y8yc)X`~1Yb`BV+tSHWvs3d zd0D(&c;8z*-eff2k&ME^HJGl7At}dDRT?>qr;m$APA=%|+{?XJ+u!eg1D1Qeof-PC1=XTMA$>T?ZpzIjsuCUm`Yz^ z!-jhunHk#PyX+`MwHBuOlLnEq^D<< z+`&{tHgL&MKTNnT>R{NPYp>r9K7e>nBDdD?vDbiA)k6lAbo&jzryYlXJC^tw1`>CC zzmUte4@rDmMS+dH)|2M7!MwMFVIw!66L=;PJ$MgPoNMFR$^ctOf9ee^A5?txZY5G* zwc6K$QMiXPL^=59mzkjhPMw(SwhxcJ%U)#(*F-)fn8*nvYe`9yc8H@rND|zma5j1; z6eO@%ZZsBaN3liLFCQfvyHl26rkCA|<^)TWV+rmY`QG!{Sc!M#GOA! zp1*yIyx=3RNxQ}CVI&vx^yYJ}(Zb_Nku{BB2<(c6;EE#?J)pS}y3uDvtmz|E1tdrWw#WDMMv&&FdV4bOH9iH%`Uc<|(roH-<@zsf{9A=003VwIl!oKI(-z99K=a1i*jt%KsT zT7L*lFP%=kU7D~c@k+^U$loZudwhM7-A}sFOc^Iy+5w;JBx}Qe+f&V4cso7d-fy6f z9BCtH8$D6Lr1ZI!6j|S~`@C*m*V1q;JKKXXyVy&tm{dKd%f|%Cxfd#_?;w` zCtK#Y;fDiHJs`zhxC-9QmfxK8vkJE~5S&3{VP5aWT!`||ZT_Nl(o4%T%ebJkr=BA@ z6Q5Cr)357#vC~|$Zf^QM0i@r8JYpl5`E<=CiRMNdAm$aFF9QO7aI~E@Aelr(;bta; zVF8hGXuHh!E01W<7r!8)f>Iv9I33o~-ZGSdsrgHebK!p3ujm_UKR^o{8G@Eioerbd zdj7t_GN!%zCyF5MptFS!w?VFCxHOA?cLIz~s?kP7PlBpJ1<_IE z*SCfj82YkoCgj*s)h4}tfK6X(u~cylp1;EhheR}lD&W)2jB0nqVM7-R!IQwOE#4V2(yzd4!pcSw3VdeQGE51XZB;T<>8}aJx zE;?AEaB}v8Nmx-My^y`=yW!*Uo#ehb7uZ>pB}@=^m|G6FU6Y^|PU$)V1Kzt3%S}R9 zzB>$;dj&@N0zlQId~G3ou|jCFTb@z9;OoHSPcS{IF9l5}S!Ew_AV<|w5 z*;}WO(p#8>bKuzmyY2Z~2X#hf){yIWudnt@2{=Sc%kRT&?Gy4lD)bh&*n0vnCD1$-eRP=9a|lEi8?pIH7~1)c zI#JoCKu#`8h???vEkcrtam#XbqFqnSott_2=w++~qSpmTX6ZU^(;R8j@Sffq#UEn9 z*$>&G!4NtjakNp$1Yibx(jq(L5zutL<=Ef${V!isxSy0$&}ml=-a# zdGWkzay98kn&q}1_w;2%!FhAv!J8!(S2)lBYipU8^o#uHmhy}GO;W~>z{DNDw_&=} z8*S8A?xY&uBcMGsa)29V}vZ5H14gO^tH%sFsc+%TxaOWL_o8djAbO)0?hZ^l>R4T( zMvvDc;lE0OO>I?pIGpV89~-sxi4JP!<;@MB1obS0%RbaBmk)dz|~#8{0&nn|r&J|E4SH@PNCgrJU68 z!~^y;DeUUaj&`8~QAj_wtEXn{%Z}$N3@`|<>=T$}-lhi7D~$Tx z`1{Ye>O|6yonf)s!yO`1-TTj~d+sRE_1a}oO}J(-R;)(l{&TTQQE5SDR2rhiGDzkD z$Tk6CFEsc0$H;oq$(D44DeHu|r3MxH_AUAQ(vK*O*{OITsV~2l6~QfNNep9b1;I1y ze>hHQy5*!n#l0QKdLYD>@YoDV*FTvS6b8(_Tvw_i3fJ5nZ-0&qWup zMm<}94Heds^k9@A-ka)(R}_Q8F=;0M>}Ia?Y2QKcmN8H%IgC)lbE*%xWeZcv9ct_E zALlRKRjF4Zagy7BH9KX*XD<@+5cDSnD`lJgHBb_ygnjMV7*4QOgsMTZEWBFKa~Fb0 z&2%gqfBu^_$k>Ew_E$1Sz-+}NdNUKNI};i8A~#{2zy)*m6F$+U=SwESOy)%8CEU3i zvuV-?c9y9azHV|JdVkD_<3aC4KIfsN-FCXbTI6ZV%b}1V`(2R-l(Xpu%#=O0Bs@Wc z`uz{Unm2_)&3tY|7;?@@x44Pu4lolcJq?7Qj?2Y$wdn=!PM# z76|=bXE8gYItl4942>CO36+j?KkMAE!rT6e2f6AB|8KU||2`%PUVVA!CSgs6znGeHZHl^?z^^@Y0#um9?B#2DiDqcOROX=i%HSLj2hKLlb(0by~2kf1HlLv!4`Vk!BsggrP4QJvzS^^bQ>;?0&bie$O zGpM45&^zYJ#$^dFW=|c}Rr(5vXrL2O9lO5EgQd?H0>N`C`?>*X)!Xm}WbE!g!n+^6 z8=JVeov8;H;A-Hye-)H_)-kJORvah4Y)!+pw-3a5d_#uyL=%oO;JW<4cCWww?t}{1#6}SRPtIa9%)OH|Un2a7!RpGZnCZzet7{`<&8Db59j<%gE4w;NAE- zIu=kcA*fCCAm^^lumG9;> za266vH<~pFjIh1a!Nws~z5tKy_ljBi87Bqr8vTJVi zVYjZO++;y>T)+}fxCYZtgHK2DDa}heFEq#e$*vuv8)Sc1-5> zY+G^Mm5dR7Mk#`FITeX_MZ@Lsca8kT(kMj-Zg~BK%Gf*bMZbWQ}*lj#d>Ms8abU9f@uY}SLf zOed3VVtGlgS@S^PeD(yXP?3f;3gwh>az}y=g!MA2XXy)UB1?$0201@j+9###lcikB zm-V1ZoXiw60JX3=V#!aj8w5xT`?sa&Bf}R25+l^tvmH&+=0)>tw-53q*WbW;qYmql zo;Xn;dg=rlrva#bli1x|Jfb(+6J)(~!IY6APPAT)`+gw!iWfQIU$)cKwz&p^QTq4T zmCLkU$?ks8x{o+8u{jaaG2xa}4@+c0gl`ULbHygX*>Ve|ckz~tm?*kt+JfM=UV2tZ zx}V;2;L>|>O*80zZSH9Nj( z5QN^q`84e|CXE_q>((Uf@DleJ6a!BW1QU-*b z6ZVp-jKW~ousmjHmJV@XP1H;Y?6uygd!=&P)1T-o0QMTyWS*qk*_e+gsg2#B`C~lK zeD68;zCs<#BprS>)t52$y+;R79pE?EdBtcHQisFdyZwQ=2CIttg40OHVKyGX-doXVWPNjJ+tCg zt^>OScX?`@Ipcull`Ti5Lfv)$UHyjheh8oyYmvg2MD-&+%CBPek`fY_{q|SCxx~K0 zQtv2vkvkx|ZC^(XP&u52WRK37c#GC^W`10@Vc~ZE%JQq`rf)QXZC!y)m!CJ71C6NX z*aR{Ir}{c1L2Rl-zrXTwG(thmTRi?UYM5q^Sa6mm}I<>Ym=meng* zM}cr1`iYJ0f1ZN+x>~S^f$qcf<;U9kQiY7Ty`WsLg(Sj0MnepkgO$}*$b}$?iDRmb z--h!>K9BUA+5u`#m5SwX$M_4CnC^~KiijB%?E>8!8;IE386jTnR=-4|{|m-BC_Fbc zeAS-$tA1qzSshFWN*CJY@1P~1Zp`E3K5%UW9q|1TP{SyrGeC99I+y~O8KwalC4 z()|J8tWxF-PNySJs)Vu76(Pg9qf(9VG`RT)BoEJhj^JQr+P96d(bPP2Ufn*K2D@+h`OWOzA z7`~~X9aeLa`4aX4-?ctxV`Z!4h6NXEYupjj^ykIb{eOIEQOdbS@18(2rpzoKa2BB$ zacAMR?Lgsf;c%fffASOa&n|nNgNT!ii{` zBLQ_*A&j~b_M`N&gpvWl6Jl-wn9r}>K+)0D3j3}UOvIpE6Ev76;~+L!fwH6HZXvQ> z(Z%!-W?vbVdP;%cwI&J%MM)0ZA@9htjhPalV4~&87IC0=Nw9mb=bzK&U>&QSaS;SW z&<;0<028KL*~ENJov~uGQ#5Dyk9K{(< z{aif^)HEu{9|nRKJvk5eI8 zz|6k_uem|dEO*w^`LLnng>1|Y?GhKwiB}a$#>yz=9*hz$FlO@;bnVq#O#s5tkwU8lsq%x{Xf(xoZkM@dtW90D-$HX+X>Oshkj!`)kOnYuHd zgMx^%Kn?=9&sG_q&SVNdK>Q_Yz5gfI{8h~VDewX8EX;pz83O!wdzkv??K+!4u*BkzexBb61U@89P3(9Y8ZR7a))W7?LN}5?) zKz;fQ893r=-~*T#X&IQ=@tNrvX;~QY8QIurS?L+^nHiXASw3|Ztxu2s&u9GsGx|Sw z1Z?aLKV9+vI3!1z~*nhKY+h0R)0?WKUfMAfR_0aa+%mZKbjFA zz)Vle#LSG(#LoJEzmk8-WdG<&1N=pw|9h~U`v+Ja{sBv3L`aau^YfndFQ&S1{L-yM zKwaY?@gF{rV%0^zZkK4ww=*UE`CVo_XTuHWRKELgA4&Ipe8hUY7J6I=K3vchR_1HD zjNkr%&2Vndw0u6Cx$hCX^TwVIE_v~6Y0L6;3TP4H40Mar8;d^oG zwAFX&S!gb*FFa0Evztk2^nbfyOMDJ?D}PqQh<{GI#<&}ENUS!4*=DUYLFGYOgXuJT zmB`u2ztr8II8HyRl}I^}@1I&W%P1c79ht3R7K=KV9$;vBlj(H4_~>n6608(FHr1Rq zI=*_(nu#`>&uV$tkg0$xXecIVO!2PSnV#AeUP+sx;TE*Uc4w{Lnx@z?ZHk&NIsm7s zKsZCaWioYI3=wPjm1#;q3|F34XJC}w$8aKRRdGAJzSbB3ZHgqJ8Yz#E@)h3jTMQPV z{Ai?RhbVWli0PuN&|r{D2xKw#FpLdqHPv)vy}r^fFWMy1d3eo1zsxzPrDg3B z2hgwnh^RKVaugj2*;ahslUvXHXpjkg zmPwN?)j4=^7rzRN@3eNqIGl_03<3_SRmWl+oAzRg_8>rc5Xq|7#{JXW?+&}yaw4La z9fd)+t2anH^|KSSCk0H|0Pt-oo7G?Hfz^2T2LzJtCi!0o+g(m2CqOTNv&8iqN7_JY zwqUqU`Ueh={A^vC^tU-xJuSDKb^-qTbj~hzGR;0@Ji!PD+aV{qniQ;?OAP{*i61`W zh`U3ftVdnpu(Y5yF$M@xs{Dgeek*WT`#5(3Dh5?vgE2`rU~Wnwg}-?*qQqq7{S6`4 zTj&S(xgMB5uN}Q;;cum3)J0=mdX!+F>9(BTTuC*;e#wv(!xr#uLX&Bk!6v4qWgEW@ z7Opw@&A`5EX>c&o1e$C|<4|%ywIym8wJ1kB2Iw_>9@6Y30P+ z2(yiW=5)4(;8-6UjZ_bfXq(N38P*qE#h@)P7IAzuK?Mc$(wGso58m0c%b!3qsY(}M zx$G-sVF2{4)|v(Ls^9ji1tVFqhTnV+6J|NYu_=MMWEDfpNnwoJN;s zUpuCMBacK*#&FF$qT-e-jfoZ1FJlfJv*e8NU2lpu|Rg71~OuPKsmIM6Ya{9@@h%2X2(5lw8 zws$M!828i#wxt5w7@<`cAiJME+gZS*+&iNjq>^^#9-jm6cYtV8@=V>HOI5U<>Pzn= z712SN1~Spdo^0J}=s+)6bQ^5yRDTC?qgR})z-x;e3gDc@v!6-7J<~fuW#C+e!*XfZ z1*aVfsDEVq(0w7$!;n^Ca{z5FM<5f(hkUDX;LPEDz#r7u%V*SNeW<2d&9qJUhF5W! z=!9V{oP!>bazvUJ+EtqpBibbR8vk-c5XPAm&ZI?#}XHOe(8q$Jju`rf@0SyIKgr5~_r zq^??QH%5|wH%|48Q6K}U4@v~u0y$SsZv7o|sm(Yi{8l}7`h-&CR}xR6%Et9P-$CT) z#nDVM&2LvLjAE>8bg?nuMujAgJZi`6j4~51CMLnw$_Z{{H(XN?08n` zl)440PU}W6UPuu-4zM|v@bc^VV>z~J8~az8AZLrd%}=b&}HfD~$~*oi4Vx_KC*XeQKhkp-H{AKWLW{PfT@ zN`C~|EbmA1PaBA1AE%5x#SY?SVcb_L@)l6L?z;AHKu74=p*iB?OVZq}j$)yo#V7z{ zRik+o+MPl~)ezX=iNM=Rt6qmS1t`H>_Ynw$z+;mWv&+*&$LpekG6c{7tD&79DOX9a zR;;g9sqKVE_3I%OJc%A67GOy9)6-we<;rDGVF7KG$yxqOsGG~6U?1jcl&^zn2@RzPHhO)l9m|(K8xqAyZqF@ySsNF+IobzL`w&N~p>{~{lf?&CcRVQUnnChZ7`x*sLM|Ut zLThWYOw)W|@H{GJ)LvCZsLNYx`mZDr9|7XEJ%1j*fbSoadt#xV$_|NMxtZIcJ@Fx< z12*cO8A|bs?3M->0Om-Bmo<^t@H$F6j5jSg&Do((iYFY{jb%!2*W3OjH<4~B;m396 zUf(GZ(-k$q3RaqZsg8x~JvjT40@dYx=vEp7)}g`s&GfC=rH-#9z&9oP-TYK5Mk{-*OCY zA;VE>yUA&(OGyhcVDe$5I&KcuLCxn)gmV>Z$C9sUShQ>jJNzqL*j?*}HaSs;O;6>uu!=4cF_W=ql|N>BrXN z6eDq{9Y#fwc?H0mc|ub;w8Dkbqr)4PdwrK`2hPmtWj(dR14vC1U4HEgzBaHM_`>cC zBA{t9@WOFrux&uX*95gKYX;WF0=Mq57z3|;<<-Witis13-QI}`7zpOhu?sx`dC<;Z z4aAh(5iqKZ;#;?P%HX@Ha$O8_a~?ZE(*E>bOC8+AC@)aP1{1;hma#AquOh}{7Yff7 z^Nruy-SGDj;f1|y+Bc%7>AP4^4^CZG0g?$N5Gqbu-16Mt3EI_F*|e1^fPz#LvajTY z_;Da&_xiym)Knh{^n_|xl4~roSfurG>|S)TNL)uoVm-J*bE-*Xk?c=_intOR6326H zhg)+Q*aAx2tkDo|Wi8%cFUiZcNmq3t7FZUhdY2ZkR6(HqOCDA9(sS@pJ%f=Brs9^W zg;toB^HUYv`u+i3gip{NE^wY=!5#bB zn}h#7$kJii@-{Ibc=~W`|BEMeE~02-UK01Dv>J%niVU1bcObr?tQBTTj(~uF(5~r+ zgX}rw90%&Bc-O<8p@^R>#YDCb$$b7VlneZaa$#UZO#X;>bv^dhJ{)gfd2stt3{kx*40R{L&X!1~h(UCmVKVlvL|BuLff6=A`KH#q&z5lXV{hKc=;2)6` ze*;9uf7Sc`8yB0HIhs1@{}qW~uV?s~&R}WjW@Bq)?O0kM<#~;&4R{>nTd}Wd0vTP!{@_WH*p>PXIKBZjap40#x9gMo<;_v z_h#-9Tcay3Bhzt`H=853Y?Ii}#5!zlm5~QP;kKv#oazM4dTz6^^-iM%)~?y8y~oO1f)t z_6sI!!D(0FJ+HYY!qGhkf{M~C#c?jVk2+bWxqH8jN<^ZMsh@WFA?j;PDFb#s)ZXTe z$^|KjFfU^Dgwvw=?G-Z?wdy@V!5&v7=7UH)HL_#%N%gmFru%y|-%Z)SC+RzcOvz*w zs)^-9npAD5B+CmYBlr4DAf$R77<~RU+QoI}Z;o$KeIfH4^(mn1lIlHo>6B*UdYc zI^-VD%lN`Ha{Gl1%@={PMh;DATmg8W=3>}835Q6GlEXk{K$NzuHaw-g3vH)tEAX3& z2r9=TsVLS&D@!2e7dUV)maO1AEWIaG8PP9PbSC~&LG54s*2TsnamTPN5~F`z1#zc^ zHik6@jYC6cv`fC|*2Q+wGEpAfliJ!G%$DgxlSzkCZ;%1WOnU3iRBRb(PL-Udb09Tb z1?}KA13|FeixHzwVrlrE#)F5d7y$c}s&wHFPjf~qWa$DaQY&`b{kUQ3EKIsv3&aw2 zo;b0Vh{(LagK`4(g8Vx^xxN#PX}Nf8>!LX|mg=B5h!On}VJYKMR0;ixA;ouV3wv1{ zA8W#f#@Wis(#BDVwzM04LY5B)i;trR+_hro+-!E6MzJ2BNqQ^M z7GVkvslAzgDSt##xauRIw4c@#A=*gcOZD6vD4Wz}HcR|~6>eEtKAJYOnK`6X>n>5Q zw-nJhYSu1CS~IC-&wZ9@>ffG&Hfj;-*Em$$ILq}Q;RZoW`LfGPE|6jpe4M=$rMt)m zkR_sov{RNiU6yBEqJxuFOk3MKwI+r**D+Sd2XEWSB8=p^qLYuygLRvhwGp1dws_g_ zOMR^R2{8oF6qvB;5H#??A&`WlO|-#kg)^(l=k!%QhhK`ZlSr>KKT39btbif(io~1X z5wEK3j^yt2A+TAuv82Zw0?;dWA#Kz8j?uO8Uhei{O!!d@Ks~@`su}nWd@Thip5*4d zW^x|fm>L=Bz|jNaws54s5kY=K?eWLD?}i|pyUg^C!OLSVatOFqR&}+Jf3bbV2sI1t zCYGmj&fYQ-c3}{GtTMx11+B+jvp`6sf8cI-+A*~k71G%N;8xuVeuYK7Y{KyT?Puhv za25Qkt7#`1LSXcnO(gpI(>Hk7rlvsNDVK7w!dCEmm)1*}MdrQKm`6FEHdcN^vRy4b zWo6g1{+RXhnU=$+yHx4jwXoG>}6t%|$B1cmNa$p`Eib$Qnd z2b3|n=us(3OAo`m6>@)LjGj2#-Y=ivC*;SNqjHKq8&gQ$Jc8bmqevt#zUcL<`THfj z7O()pa^NC<8_b)!+~IH2IZ;oE=hC{#Sb~hMNvb?r!Ae%}@_WKjhnjVCJTs`_V;1>} zwFnEGyki!p_vN9(3x=wwZx{G?*1?#877WXuJ1b2#PIVTA8ONUzQ7ofk70jZM`=^J62pD`k7yS8a{C(L`!#iN}+R$1*?(mjX}85x?EqU~TwPc0)k zTGb@#tXoL|D<0#e0tkXiyf0P3%P z)59X^v2aG7n51AazpmuBT|2(^Jt2IZuLfX^zXgYrL&RTSJtGXyPA%^^fer37!9}ic zB7f%Oo$D&YNPMkwhiTV+gn#n#%#h3l!^gw80^;+#@4aY1%O;! zjG@+Z(r+uH&@nyxZM|*w!xwtogXVGzWYm=&qjF5|z>h$`Z3b@4$MZob=xYmIqX6zi zkK!=i%$1Nxt#Jgqhezz?GgN0Jw`2X)sBM+Uu|jbkTK9<%6f)2Y=xr@(9KA=7^=iFM=?*@U8qRqBWe0=gi>rRPN^naV ztt(xY-!aa;BXy%exodjLy5V(&fv4}{M}xuD$B*3)!^pb%~rWTr8Y$Q zywanW3|>dX0;D=f_avCrB!qT>CX$SrTpIC`T=cDrr~qjGpzLL2fM93<7|hW8<8Ot6 zLb-B-E+P(;UNaGJ|0N+d1`)_dAdx}3oIb*37)-Ii9vb*4#Y$6-Fba4wY%%b0#6};k zH}HG#Ai)2Gkk8uhZ_`3d^bCI&WElT0$Y?uSRVN`(%$o1U*_oTh0Ika z!J;vG{|qlr`>XWcJ+kJ^@|B^Wfd?MmTbtKnn(^UsvzF)O(X9Fm+lI`>M|>yeisMX{ z@e^X!``KP+b!)$iaWWLo$4__F`lr{*naY`}``eX~JuiaA)DDJmtQ`)Q8Y?6Y&Zr%s zkC(!ktPM+-nx3P#h1s=Glj$S=nN%Zupbs(q+71m5D#(2Qj+DFsqw%rC)GinqV=y;EZc`hLSu@|-070$U z3<2*|1Z?E5#tsw)+-X(*Pr!=xjQoN~&r(v1#ht2UYjwB&p^OfBmuEvQ0$XZr)$#;c zX6?7XE%(Kx%%d~C!uCQ=Ds0noOM`~J#Bpd8D={~1AXpBgcj3`2COy)(EOk2s;p)Edhv`ZDN z8V^$wv|-=bW3ME?gkRDZb@1d2*#r2q54?NH5vQ`H<)hzy(IkE>oNe{KT{msK`u1;B zPuTO{WO^YJfhbGeUwTX7>;=oaRCjHa_^t>~UPD|l&XN;Bjd%!k?>a)#O0BAAIJ6d1 z3Bq)f+!6Sv33jFmBHB5dN^;zPDU};@k|I?Lw&n`{h<+fc@7Dj3=i)J2fvi0rLtK=q zE*Ldb#t8Ln1tSlp0*~zpRCmH^(-ceqJog+fs#m(rEE&VoB%hW$AnlLuRb;<#45HNL zt$V0hXcJ&rwvbmic+Q7Yq!GaEFy!KbaX-z4&@=iJe!%YFv&(abvnR_PK4;XnxGe9&5_RTwyXMvvC&g z&8kw7Y#JcjnYldqAhh9Dank)-&D4=&M^erLZ#C4{f3|w}vSx>)qS^qjVO?qBRmq zRo{kiYK@GcwhZ15vjrI`o;;Ie3jL~4(eLO2z8BfleP7tJbu3!Gxs2{4?%C{6!hs2en!8dn1<#u2`a|13cw`1nEq_1o@Rd zl`~%IeDu!YT5{hwW?!B=e~VgpT78n3v*tJz3y(*d3O{0!#zV^ST7%*DswRA@2}$aG zE(J2;dH?TxVH2rwL;DoB&}2l7S{@=EBnK|kx<8p_YSkmE&zz<(ExL|5pvw(WF{hg{ zpN)S|!h9(Q8~DXV=Sgu=(Hp8hKOw(SUgf3KTj74n6sg5?Kn?`nCSez9e4S_a7NXx{7B` zD=ml#1Av!n&K=l8K^vHpFWu%~5G|kOt5p~k*)61YT!m%;8kEhttRxAyJjT!3f#i1Q z`~IDqDe85O%ll@XsIU14Hr?Ch{UP0J0l`+_TG%f24wK#M7VgeDA^g2bkoK20yKWA* z{6>%*O=vpC%N53;N_lV|r-Y_EJOD>T<7J!~OEfwz5t(U^q-vHVyGyivcYIR^1Of71 z&7cG9qI_EaA-z(ASg2}l0g1e1;vqF0_gXN*onIhS%HUmy%02RDW!cd?>ae5Th^pL3 zz>41`C?~G&@?|M%l}n}gsGj)Sb{A9ST2SnrQ62Q;?nl}Ho_Yc5My`5P)<8Ihw?W$) zBKY|FD%w&Yk0Vt*YE=gtaLD31XpKQ z06BW@N1$so9>r4@(4uwVcEUXgD*t{f+mCQnxXwD0Sznw~q8)wvT%kkr4EC)ZF*jb) zB-VE}BsCLn9KW`dHGR2^mRiCoGex^Oh9N)CE|7k8^_A#rBZQ&)sVJA5#sHtSsi&y7 z9IqE%K@Mr>5L?y+%joIMXd|Dzyr(r*e*vRj3GWk25zULzQv|>6?N9n=>^;pQF6&DM z%<4co5{MhpaVFZLj?T1dowO|osU*y$K({gX)>4_x?vw8sKIK7yxBU`XXxXGV6NQu> zj=`i{!`xm!cM7C8ddZ0iHQ@w~aX^GPfSjCNgN|q2Y2qqmrltg(IoXPp@Z0Zkea*L( zKxjhWnTp3r0)MC!JRc_|XrtRYx-J*NX~T&Yyy%C&pAt7D1wZG3q6Tw4#?@V^`kAlbiQHasgPHnJz<(!vmB-xC#0p2lc&%e4VmHH62|jc2i5y2ZNhis#}b&Z z5T4Q69ING4g4FlVO@Ya5*7@f(#jJ?D^@h7*NKVb%7Oz%BAjJcKlKXgllHDCXt|LcD zlyr8$Eu=S2g$ty7G3il=M80{%y)PH%w|)GoO`rxm+tO!H?+1~xQP`$ZT5g2k!Q;9$ z&^W9++2CjD{QG`IoT&Wq$(ap5YFg|{>@aX7A(Rr|K^;Y?c z;NlW7tfj3EGph_*!Xp+uebjD`gua-13!fRa?Co=G_XHe30BP9@#>dDUSW4d{9#x-B zZ-u1*fy#`+S%B;rIykdIyCNgSsEtrl+htwrSsxJ%0s_qJQXkjO155a4T&I?*^~otBu!=lN#8GmT4Uib`Tnk+;BnLsrV{TisNmzqj+@! zP$_z@Q_WKl&e6AMoiZyD_E$!@vt`yJ(Lx?*>ohg-4-8QEA4pd?=RE2Po`+_aA8A$N zQA8?|*j!nlGSD|QC4adR_%aEVY9KUz2a@C8TRTWE)q>&;v1?P4KXs!v6YZ0Vv~(R6 zxS2`AlZ$;3v2Z+1jTx8jJ}0JJ{F%Z?JESOvMeb%E|3S+caq*6`L#+krGb&VEnV14x z`SpZIa1d4%$sVa+PkrJWN1{9RgT)$OpqcXIS*3?j4u?t;;;f2DrMjkQ*1AHHo_Z+l zZ+gP?1@A`odT#*R(9rQRvwfk*-BeVz)`xg=i>~`XMjvR*FPqnC5Yu0q5mCRNeKZT6 zlNY@;3)D}h9v<|+SW?br4gf>M1!pUYqzjaO4>(JB9xHlQ$bY)-d;NizrP9ei+3=Qe z1~0S2zg0&_Y>}N=y21Opwlp%#N>}>Ud(i{QQ)|g7^Qyw@spqv4;SHtHBVW?w zFnN84^DaNOiMf%#QO$5OF@&#cYOb5=9l`peCB3t$c{M&Ha%3^*IH!z`$9aC$Vt7HB7V? ztE46L=gB18@2$^~$m%S8p46!_!BA6tPh>it4`njHVL>VE+pM1>ku+?RH{XnHv8b-o zMRw)N#0s4n&*QkDHg07sy8Si-vKOi41%D)ip-@!OEbeQO=S5*eAJ$b(WE(+dk{%;X zK%$%{Bd90I8X%nE&V8dH4`4pSGXI>DJ4Kqmbr>^j^!fCN-H8-F`=6Nm7t{P{C}jiy z*#3^WOn;YeJ~8*dRH%Q5Y)t=@Q~qDz+rQ5Af8pCdatQwpoc!~7+~5ZT*Nwm=$dB`$R#>{E&KoP&dK9U>j-&S6i*+wk z>CPZM?}|h;Vcl(obE5=IVKYpE9dd*CnE@&EAhtFO=?_bFR4gZSn^_^#jfOJE^PeS3h^8MA(pkt<|AQzF#O!s)V1tQ<0BBEB0D))}%Oau)-l6vH z&s&VC8EmKq6Vx`$#cKqXQXq^7{zJx-`K0=hO*qx7pSpc8HE01>xA|)FKXO$~30KP{ z#CO}GTXU=9alHAjHIlvUb0|at3y{N_=lk_1rDnvbnH2cdvphj+W>fBvebgoel@ zT?EXRl5+8JN!U@|Pk9DrO=J;CSv%-aI?H{3;zp_EKx-?mq`X*JCB0J#6rr#u%1C;T zwV@313V_;6q3OFMn8+8e^5-<(F)%tK?pe>?_48Gn|k5jKF?VR?D8?^<((w`Pra}G6)<;fA)nH4bayGnXipN&$dz|BG5kt z>7M4h*pl-PA;Cc??EOi8#Dc4#aZt18dXB_EM?<=Im(u>6AeA;)!#L%WMh;Ip#xxM) z>{dm<6j#zsp{Y9O5o`kEgaaSPA>7=4`X-1xh_-?aRkniq*jS$ZD-!D-T(|-B6-mnn zrPjjD`ir}N7!nUR_8O|{(v+iLe9Nz-4g_as+4>W@hq+|MxeZ0xMy&V|uIW{0^cu`J zFhivxA@wQ-5#cyjR^trD@(8wcnoUaSar0Zn2O=#^^`xFS$Zb683{9HJr1FymluC2Q z764k=7?pw7nlzDie-2S>dw5jwV39G6yn3^NG=$CMsck8Udh+?zi8TI^m@=*jdT(DE zZhD~yYVLOh<48nvZ){P+nJw~y7s%!4UpIM452dgvo8)$J1xen5SUie z3NfwRaKOaH&J?DagOnf=yF!2Go2--mear^M_P|=dKs;$!l`D!fWrPdmVf{?_ML-rB zHze)^YuTaV%jGiieQN(!yV0ro$gFhUlBR*;kGpsKlrh>WSsGK^&wa=obrKmWA+`df zjaNU8)DEm<7kB4%Err_Wn_)Tpfp%3I*3aflEiFOa4msY|1o($EwG$=Z=!Ub(saAIN zZx(t2fqF{GEg9Ru%31|FD1igKX6bXR$Jhhke2s&@9BA2@auR7;xk{X7udpN9fNDmx zZpzDONYTW5`UF~OE7FXV-%G8KO3S(JcRU!j3++(iLiGt&;9S79PqWLp=nQ`gmIEf| zMM6rlcz@A^Gib-k&iW-4jU8z#S6GnbzDUaHugPor z_$k2?nAzI^p#P7%Z;FnrTifjpI<{?fY}>Y-bZjRb+qP}nNyoO`NyWBt(%(Mc-seAO zU+mknYt*P(YpyxwS~W&p%;$X{wByI{9k=3#QC%xM+%7I!)~DKILpi>=wwP)P@cY~_t$^4I zMkRpYh`Y4r$>6(}E!6JJuz~KDmO}Q-32|LTz}xji$Y}{g3mdAI6teh$YlaaWN7+N} zLTDx_PRF%=fWZhYQv93k(%)SHdUm#dTJ|#i-4*z6@euoK$MZk7K>zA${Hq%NAId+@ zw8yMZTM#y0KA9_dmn0HEeqW!rb$+n=_)_^*#EpO9xAsZ>&iCv(s@VYw60L~B!B!YaI3C7KX~JLK`0&e zRnrzXC-dqy@*cil-j8vi7+U5uK_v#?=d2C7aYGBHtgJQnZG9ky=?aQkzZPp2o>Dkh zB-ru30WR;CT8XT*7)w|hnD6!4MV`d`k4lL0hhR&H_J$_!j85emD_$|Z_I*i#p0zH} z-<>MPqpap+zw<`+m(pF>%^K4mwRlA~>F4=pnqXq4Pv=HuBFZ0J5+Nau?HqKBLvQQi zi=EVlg+@exbVc2rxe*h?&m;+%T44eV8P7;rv&+t^0PXp-3BPNWNJ` zXC9|x0!0N*+y`Inhs^L=UKOK(iy@BfF8V`@oVDNA6w((48~L>=E(8UaQ1a^o!xy&R z?+{(WK8`N$vy<_SHYWmc$dx!y(u(T6s@!A(`4>4D(KzIgSi1{)@%4c%tmU)Ga{aD;8YwPj9n-xhTTP4f8$z6%{zs>TtmTQO;08G!4m5%FiA4D_o(|jkIK!?LR-MkKi{;s68T~?temrDzTu9!7GJ;sN5R5^^5rG&^W=jYo-rR zjo?Y+lVi&hbP4arO|)u4EDWo*ZXnrXt?RR0E0huMfsi zYPDfRc&Y$wRR>ckRUrY(nV$_EXuFP`NX!*1ep*;RfA}DXuZ*>@G9>UUZ=q1&s=2P1 zDyixhX*;}zJiBYl!ok`CWx<@nF$z?QV_b7QJi{7pN5wb{I_qUpU%xROG2?3Wra2cN z9dt%8OLG=(sP(H0nYB`x7J6b>OI;WVKP+T9m~@X)0#6;$GR@ipY2!Yye{Dsp3T${ znl7~|>O^`wVa_Qq92#Zkj(E3|DHO3>=-3n{{f&CjvM`Jqe3M~<7GZp{uf}a`WnGmy zWg*}(&E8vV`oZ*$<2_h{XZBi!cL1jB>5R2Hcw29aOM*Fo8$0@}M44ZJ;z16x*{wwXXwDv<*-)Ib| z)@mv!P&`|?OFTyzi{wINl;`0tVy{^^a7yj{C2H>~FCQNRP30?VVrYPbhgqM9A0fCA z__<3-;kH*YKv8*Q1cm~g4OXfmte6Ij3O5eLE1=BvOATQ#{6H#c3JT(dAWRP#IKg>S zk^x48(81eoa!MwiO-9}RZda%s)K){WCZt zV*=r>%c=}@S5*iZJ-M&GP85Z(u=SNw%U*-I4R@_Nn6ip^*r=u$o(Y3I^sDxs5{a@m zdNtr6IuMS`mRcPB#U^Y4zoF`7UKrsM2bDpX9mm@C$6@EBr)6UmnspK-vD$x+Nsd8I zqR|xf+v))Jj~pC*@*(C9pczTmIU^5D5`2>a<-U5XuHSpor#o`IqsPB84vewhOna3X0Dx=~3c#5ZK07dJ}R{)o*aqA@BhRs|^ zKJb%#Ge@(!mr%>KTpQPGIaF-%+syO(o3vsp@3BA-Ofl}()#`_>^be(3@o$lmjx=yuphY8*?I1xaL|N>t`j2re zX7{xP-Uv$5-MElFpknWVX53?%2d{H^)MX>1D9v-C5wJ2rNnFBjvaD(bjCyi}JXHZM z&8~CSzryg7H?O|6rZ1FYSuYA+j$HJNB%HR>o*8%@BV>yH9jvhgJD#6Kq|NhVlZr)gxKcBX<&1F4(JD=k40M)e zpXH%Fa&Q&u;XS6gaPmcn1-7|iOm1TZth>lyjc6vR*rh^~Du(=`iAuEYejdBd*SDe8 zh^3{5?@ZYXBVPve#z5ywRhi(uPo=wsp&tox#Z%_OQ%P#!D5+Vt>68a`$&q%`I$;$&(wcj8BrYnHa6i6z z6Yszp9hrE)^2q`aXdeA67Brur@A`b#uVd9G`w}&TcEnp6GLhGM6+&% zG^ z;}T@Tg8dE#&ffbG=5!S;@WK9vi+{+KJXr~s{*CDPo8($Z+iBXXp6}!GDp3|1LcZd) zOLlkI59^T9UDOvapmpMV%>I4*zz~;S9i0mz>^7LCg#k>Mj+u8Hf$#S1T?;z)Xj6}b zZ%MOOeHk<9H14z9zaw4?!|h)salr3(lP@;gRmU!NukWpk2y*kVGo325$5!n?=AwrW z9YJQN}7Xuez=&j2EebQfw80LeNIK0>no$6mm^4HdaJ?Kv!sC==-Avn;H}_{pKx zeTNHgz?A+s@aAtS4+A^vU!15vm0_lTv2y;uF8Tf~`p0Mbzhx9m|Ay?t{2!BjMy${N zf;X?g@(!~gATV0GYvG&BzqMnO{XoE{!{0xog~EhUMu;}zj!q7CF(QMqDPWmvN#pi- z@ow`q-e1B$=-D@<=UyM9d2!z(&YovdtCnu^oilMOKW^RM?36Z`Zr}5NzCQHLVPz}P zY8!J--7s-=yGBzr-Mi?n4lZu`d(t`x=X%;>tu!){hvc zI8H!3@GRcJb_#JI1kZ0U363`p4iSuo21PcAC;=3giUh4x$7>t6r zt{Rf;oG5Jr8AZY`<4g`=A5z26>5o5B8vx%!vDQSQf@~ko*aTsjp5(u7I@j*1DyRt8 z`qfBgG7tEqR|~hCA^E^YzhDa#_Y3bYhcQLM_xIi88zHsllshs{M(a0iSqnUeyYGf? z=iaJOZ!d@kIEx=|X-8`*dkI@3$0r-A5HZ5V1ZNUV%>ZJ}-r2 zho5}I_Ii5(tbGZg-Ga9Us`z-5Y z#SSAo3v$G?>aF_sVRslVEX`R+72B+lj2!UI6aDlvid#c?u-}P6jgj_Xnk39j4Zo`( zs++3QFzp)&lN}KO{3e~BmM$(uiHvo+KM59kN)tZf)6`|UbTeWNu+ewI{PFYCI zeAH3H`SKxTp2M6;U8p4<@_bkws8b$io6Ecds4kl;1YB<>Jp*#b<`sC%!(36eI1s-h36$l{9^rFm0NdODz-YD6m~-fo0zs5q7-Z4 z?pSBOgC5IjelQ)>Hl_tz*KMNUTGq7|q7aPn!S-{`!`B%naz6CCO0p!Aj~Myr5bw7IsWQq3^$nxpheARkhmyWHb)W^H=gd9OtGbF&_a4*@iS55mfyK z-)W=)f6^}@tvK@R1<1fazpn?dFLB=I-ZX%Xv1djLTH%BWFGvWB#e0eIRqg>Obw)!7 zneHvYpREpdIhS%u+UAAxq9v&k*^Tzb#)(XdIkcZ4d6jIUDA&mEC$+S?^{!VUq$f%G zn#;aAs>#jCRle1yLo9PIz@I>I5e=h=;xT5 z=!B|2-DIozR`@Vb?ElbG<0C8Ce~_8&q!$|P{rf8(*O;K3tv35)=1i>6t#{Vk$5l?tHsI*@jm-U_2>M%yq|O0 zb_J$2wgS;56v~(CurtjNp2aNvel^*4J6XTk&fNSWcVOL{C_wEnE0l>ENt(Sj9~)+9 zKftwsu`j7T*vaYOVP%o4_+FYRofC;AV`k?98Eo;aUXlnJ}7I7~U zVC_KO9XgIJJ-(27FOt9!U&IYRKdN?<6)0lckHVe68t9!zP4q=^Iup78DZ|X`?6B_* z*+!;4;Eu{hv~dy5COtg)!I^g((k{`HV@;{|559vO8X&TAjFaWPiBLu;VD1Rwx;aCJ zjdLGUd(?u+=G*mNL!zM_xC~$-j`_X{x4YV1nRTKMF@p@cEM(ZFx^*9DGkY~l4LtNW zeB%}tZ@zonsC{&A;Wkx%2frz+<1}eLugBpvv+F#YKSZ58bQHwoeGD&uD`ADaGPZ3i z9-;WPI$O@!Ch>Daue7R0#Pw)F+xcYK>av(K>uR$otoeiO^;N>UWnm~grj|1id&qGK zN$ZaKBK~LAV|hkd*Y3GUX005~g=EH_Po%W5P{u_NPB*PO`02$1N%%+ek8yX!)~(=- z&v$SDuRGV>CKY;=>OfXkhjlU=`ZE(X8QNKsf(_X*iKmKF-5~gDKTP#h9J?L4Y1vP4 z>om&bpAQtV<+^@}(I373XiAxZI>l$)tUz#RPx09mJHC1lj^%Al@({sC>q7f_U%BT`bw95kI@~wbQ%!hS5JMjjj zZ+BxG2}9xG*(-X2B)nj;#fLe2){6N%`NK{A$JNQwA4i^!85YM@-G@M&(bgsQ(g~~* zMv6M~NhSg$isWGZ7GJq-3`?NHLN9RMu!g63%Pf(`Bt84r2F=$;9wOP$7T}!q{W62y z)@iE+o)UIi9a34hg^^v2e%(H2Ub z8C%Sy@6_4Pb6%UyYN4`&jZpACRa{RvysBWHHKwRpk&|WCzVtzwX18ELGbgl=lc}8T zbf~VK5JJbkF0MyYp?mH?#?Px{+RCNT)Mtlu{f1$#jr_=4{PgeR#R{d74Q=Ys?HURt zuHxM&aygGqT9OB>KiH1?!3 zJR1;J5?rBF3|LB|R+h#a`Nb7>c_v<%07iS%##wEAm^=Cd!AfGN04RbpYqIiL*1!(u z`rQ$+gyzKpOXa4XidGY4t96&DVs!1ATE$~26qY$$Teo(3dR9nJ+>0R z@d0*9FKs*qIC2)EJx9Z(Ghg)u1Xj&#DxOut;0wvLU|bO5p^2S+HRxm5#&0u6Kz`zl4U z+-z1*^~Es^zm8%-GQ+-O1&Ia(!OwC|3>t+H5t&%D-MeH*=IavuHbMsGwJF;yg{{o;+yyhMSGiM?Ajq$!9=H}wmh zBPXpzQnuGOAqQPmR|F}{8_M;7WHUVt&`q`_XrbiSQ?!mrY6t4=QP-`it$~NEL%d{e zHhR`bD6axmq3XT2A z>a$Rq#luG)a2+=dB#=#3jR%z-iPedl7YQVgjfi4j%@Kl&ax@0c`aLEExH;uxyC=4~ z`8}G#d6>1@gaU+l-tRN14L^t{R^sphm|_f6)cWB%%kSLXH~Ajm76NC23^tUXZ9|gg z#)jBiI;OZubQ8tZ#@ihOtqJ)im?XNVZ}$cWQSpcs`(&P~^h@z7Zhm$;?CRCw zE$Z?0Ld>&YHPV><50ky3jvR)QMpSFG>pIhF%p)6&M({RGj=(U@WOEap)e6yav16IC zX`AA*wD6Yt*#{_qxD5q6rME?d-+}jgVHLk?Zf|}k7_mCA^&j6L*xLn`Z(%A5N4Yul zO;)2t?uP&-Pmsrcz{p}k)B}eI(zM(67Yu1xevnyRF`^Bc2}?DM(i4ngS1V7!wi_(2 zr2A>-MdqGXjSt#Xtz(8D$%s7AYpqT>}{}P zXyY(<&#G$*bAquL6catvHkQu~PlV#kv$RpS25w=E6qFok0Utte@bu`UIv)OhME)go zD5_cLj%q#~Bm!(%0rAk5gicN9DWZ#5x7Q*lo%qn`|tX;Ee`$8!FjNaS#SDmbauxd(Bt-b8q4#EmgW( zLINM9?XVs2Q~@#uMwU{+&IeBdTbi{)9;5+7LH2h3s6D%N+n-kXJ!iPJ`w?6p4b*58 z*HHEVLL8F(1d?r&o^Xn;={D5&x|C3 z_+L9)r?j=gnK?~H$Jm!b@+GiLu_MJQNJ&V!G)^S&7NT5dMxI}KM6Z3{GU95G?y@O- z$rX!MQwL&8-+6D{tT&~quyw$QA4AK~u><-h;Rm(3-qyWnYvEA{^nz(HI^i|qOC zr7DqM3A<*iyIapk7XDIa`4i#Cb0goE&c4XH1V=fiqO8o6QN-P*z!pZHBF2VWdg>9u zaaOJ#K|*}5P6%cbS~Qh5JzqK0AGsV&J9kx1>k?L;KimTw!4<++&k6%Tl?yk|C;PW2 z3iS41aAn{j8_B;TGjnHbRxaWzk8V~m6thht=vA3FDSL0Fi>%iz`fIqQee-AQvV&z! z0#3s-cUtWQgQ}j*vneV45#3&KV~%RQ&?0v-aV|i!gb!*HURPrI1;J?Mxni?;vvQc< z^qzXvyPj*u1YTUujra*%1^XF$j8F?xe1H+rfGT&_9(*g|7%}va(!sCvs=gV^BEcxJ z;hymD%HTbCq%Z?$s9`p3)0@g6rCgq)d5pQ|E)$~~`r^#FwdfjMcOh5tfyz!7>@+bh z*JCd;>@v*;P2htC?qg{ISv~qM5+V zQ-$$L*w324k|iO?$%!7RW%cx}S=ILWBmInS)q{vTGs}!})nq~Y)I7W*=S#{lWO!0y zahMwlWp1@`{zf1zzUgpRn>r=MZC?_E&e`LEua@EVk8HybbL)@ihu;)__q+>%z)`TJ zCYfS@Vp5Q&9!2|uLo)oB#uqz0b9KU8GPS^EmtA9Z(>UPILQMv{>sUk!yi=Aly`RRN z4+Qh1fIq*6F-=G}wLJtS>^JO&9wcMKEm`(Rx0zD}c>@P2t=_|lkMRce7;5AbBip6_ zPFPz0e!Tci$*=btcys>4JQ(HH1(U)}tT5qCitQ1g%oZ>y?y3LFV z-dVyy7_2S1)#F{B3HM)pg$n{XrUU4yg>k^wt|{XkfzjS?EfkiXhX#-qLHpFY-{+~TF>3Q;|5&YUSfQ4ngz7W#QA$Y=+QpczTf*F`4p?I!A;OBs^$_N$t)Z3 zF|Uy7Bt;L7l0ltp(M}_CYLOodv#ltDA}F7#yNHA&f$&nl)wO1cvHhSoFQ;=xqwN8t zpxuhY7;lD2XTwJxK?ywhMu`H6zuHE&jou_kfZbBaf?s-N<;uz`Vte=;tzmPq_@^(j z@T#UvfeX1Hd+Qs)7c~+bG_c>{I0@eYoQ}cPy*_=`8E0%I0n@*Gpr5m+s&1QuY2CEs z1{JL>1?HZ~s#+4m+#8s?E$vUl!}H#tU$Li*U0n|#qB^PLFS0MeUPzaodbU0Wc;+IH z9@c|ikvO`dYwg~+l8^S`OYOc^LO9W;-EF`-j18_)V|$e?x^g;u9v@#<=_Hh7myr!_ zifxIISxaZ-MG#0eRwnot*fv3V0vxOPM{#0)bncmR9csj^P<7y0=q|e~f}=6#zo|83 ze}y3w+STn-7Ci3(Ii-ss!*6OB&ePCj1-50-p;mSL>m6&a9QuHa1sJ|F&XCxqO zAs}Z7pP$Aj&R|5Grh~aO-I|D2GKf`mF|7O1Zw;+bU0K)%Ca{IJO z{(r)AnEz@O{RfEQe~{b?!F=_6&YM0F!+;mKCx1vvX@*we|8v!^NPrX{cn0@~?j z=kH>=t~2+bEkaQ_U$MY?>lV_mWFa!aj=`yU#61gs8>g~Qgz?m zvfSJ7P%+~?%6Yz5LJH22fz2NDkU4o0d~JEspTHl_5zndcITcXrjNb_vv3se&Hknxh z17E%e+{UQ~fft#pc~P~SrO~?lI76Lr}0`ekf)ceCK>>B|`?Z%h!e$G1er^EtzF-OWRT0LAU63%Yox+!0Kh3ihF zAI#XtegY+>9%UJQz5PLD`eb1eJTgh;Swv!hh#qa{kP0Q~J=;UFDxU4ePMO)L<)zvn zpKZx&`srHjYBQD}=M3H0FjU<4_#;Gs18cUsae7SHR{e0_-5VrQ!ipU{rXkP?i|h$t z@^d*;kQ$NHTPps$*&2Nj)xaCNFcE!ofdrgN@e~8g$x_1)69FibDAyL4o1Km#qA5j= zB$;W2OZIY-xmZ`Va2IHr?^o7pkeY(6Di#&N%&hW#R+5yz%^nTRMLjPg`QneJOHzMs z{9fK|m19?Fbh&075SEhd3AVzWC&XKFHl4Z1uttS5;$nyG)EAxxN<`hGZTQXgi*xvk zNklA1j6uHMK`H}D-f;FoDv8T$hb@t(H-QA_&Ubl0r`*2&I~Qn8)U#C2snfZkIp=2* z{NstUkjW>|AZ;RQ%(Y3?P~8P%H@vThwDU?a+BfG>bt@e2`LU1HFQv{r0@a59>~!K) zKw3Q3d2eKYP52H>j;=z}mvHyrz73K-{5?5zCK&%wp# z7YOtRj(nPQoMEkka_I*yELS0VWJ9LyS|<8xRu}{(+VpK`g@CZJ@<@1hpC@>5@EjJf zeK`CjbFQq(OJGd0UV{ixtu+j8U1m79R}T$4f0cFf!+ ze{ou-IucKWMCW`CAs?;NaO!cg?kVDYQ=Trx-7_RN+BG<*02n#`8^>o5`VT5pDU`52 zIoerX*d7W^$0b6~9lyE2UIE{{WGh~1Y8yjCGW^L0;4FB+Y=p9dj&trwgm3Y@E2o2< z@wj}j8L4&va3v(Z9WIf>*mMpum5B^N27dyFqGnJDdKN|eH|ZL0W=Vy)%Ibq35~OnA z+q-pJ#z1mlFZs6PN@J#HaZ6B2;pLr2mvp6nJ9T zS_QH&NRUt;Qz_iw4^pVvt9D?i^d}07QpJ9+3Ct9{OgL(t_aKjLsKBH`CE8cwLrE-g z%d(ybj@Z`@bOnX3yHyNlZ%Rxl*C(cH*?Zme?KB}9l$4>fxQ}P9=qIG!?oeBSgh*H% zu;QrKSkw~l>!fcMGC*?}b}%Ym1TMS=~5*?fQRj&pH=W&Wd z!6yGuC>@Zy-z{z6Q3qagS6$`LwlO$EWgog26o9y#O*8@ABd9OOJG}PXU>10;0?!h& zwU=*t9xk?&K|EaZ2LnHwJNxpF`gqA0PXB(<|qa^mW3fP0?X$_6PlB#m0197Lfl|3iTpr)4&vi3(8JeB&)f=BYS4HW8lty}#V zQ%0=P19w$Z;fu(jz6p6EhZL(Ur5^z=1D!Gkbuh=@rY_)#?|1hEO(#`DS!{LHVAWC4 zu-ZYAvkP+WQ^09dl8q0{QAX*7Y?44%Jx$&ysIM?Zb|hR-?-ZBg8~eFXsr#$$Ohg8_ zCm!b)wMOKvPZ-CnTfcMelphpb`1Wemxxxeybfy<7lZ&I(N5ux7`7aprWDczLSS-OV zi~N)7jaVn9$ywlTJe%?@TH2W*!)NI%wn#88j<9jO@ttm_{kIBgYq(mLA19)|i@XQ| zPPB>;JxebIT!F2o4}KoJ;s~Q759XVRo~I$Nnn_dR*mR*Vs?A08O=S`zuMVG=1S=tOuhML!|-^}bXn`SGAo@`yOz+HEX zb-f#Oy+NqD1dqL)^-T%+?iOLu4|bmSYvXtv_hRtCl7kJ|+crJG)Yjc&(OHt zMyxM%gA#LM7=?9BXKg8iScH{07~XQq zCb=qhhWPOV zhg;*sPoHGE@CH;(iF>FsP%6#PoyqbiN>NazuKCHzc(ekwW|pzUNyBKP97Fd9^{?E5 z<~o@P@*G7D+zmKHR(g^ zT>Ne>xy^FQ{b05w#CQ$o0i(tA?K>~?_x>{DsVp{4g6Icy{nGlzne21F#>IFz6IAoe z2&oYWy!iQ!$IzRX4-L^?j2!xmQoVVEvKEpa)1pWU``jNd5gh4cO|Z~rd#-Iu7HYYg zC!wgfn=W?7ZL;20BkLak30j=cZiAg82aWsn+5k426W zvu@VO5jz}P2M$Ja4)V88bsnN7)7KA2AZiE6R}vae9NE+_*WbM3jcp?@Uf=Kv>7}#1 zy7I=lN$4`U0b@uJgU<9)&pSXrNfRb#o{Q2+O*%HP4au{vnrv1><2zmU1Vf+o33c$x zJbXkif*7jNgW+~|K(z`yCRuVT5ew;6Tjxkf%ub50gjHQq13k)(lP_EhpRU<9M4C=!IwfQ8){<=S z8Su#I!se#%@i~N`G65u`KNlo$7;$IJ^t1WL;JKvd$+8gIS`0;oX>tb%SGmnGG;9%? z8mbTNb`|xqYYMY9NiW_`=03jO**vuW8|3!4PKS}6{hy{~%zu;m{%eriAE5R>klVi) zivQ~M{M8Wp50IOdcr>65;jh?Jq3tqIaNOy0XFPkXPqQw+jJO9}_#Z%0?;iw&%EF1m zvS-&N+)$Tvhqcmn<%x~*x-$2c``+FXc!o6_Y%&MlUOb+;&hD^P;m#au(p# z{zrp6MZx>8FGttT&o||fCMT0N-6KzD>+aWcOp$L-XE#q5-t>dK7>1qnq@I&_N4zgw zAAx)Ap<}^~V>YbRZ7YJ+=MT+P~p z2aSp^LV$hlcHj35pT2ERn`h~U>Xu2PBBw~MMT822N$8=Qu;2*6AhJ_H%#iKcIc{c3 z_@xCc)6^Ug@Wa%NmeUV~sH>AuJkOqVVewP}Oxg{>3QI*54#V0DhC@k`GPx*h7*fW@9= zY&jwj&z|*Zj8NAGk`ULHwoX&kZvT|62y6Z^=9umZc|}E-nV!H~aNm?*hKK{97sskZ z;BKkZ$)aj_^bP`2&C{U=vrs3*AD|$+JyyLG3#V6^PM`tc5bc^Oc$}OY@T?sqjRJvj zxu`(vij|%C%<$dbjCcB9qHagEXy;w8RGGA79oY`RqsTlEdprp}@R8e98!O=(CHNx^ zm^cI$=hGFzFO4Mh#{=zH_T#A8pe?&NS+?962(m}GA|%}z5LR|4_Z=D371zcLzE64y zY&}B=Zc!zCYmGgfrd-K8veELsA>0?}t{(d~F?PM?u0J%H&9l-npTzoB=OOD{le-o5 z26@iPdz17f8=UW)GweyUE^$sLuJcXe1p@^72K_?|-WQt`sjX-7-htQM=#;({Wuwu^ zCInl>6=*iSZq^^(bJ^mWcAlkD#WU+cIfniXH!xTrE8V@2*}&JdgrKgE3P&*Q2PT1S zhie*BEPZsq^D+!!v%z2WSDeomR%?7RLpkb~X^^g<@C6mL+xAS&mS)=pfAtnAVRcK78}``w}VcBpAmd z5e7NN4NWNI^8mG)@uQeqn0BOpmz3?=#Tan= zRF!+Uuh=z+s~HvqG8ii(aW6hAtD|N*Qa0vYJ^x|0fuWgX2~%Wey7`*vs71Pi^k}nt;$}Bf_qb`0J`A8SYOCW%tQ27xonhF`m#}JpA=aS>u-Pc^^m}KI4KQ+b{ z90y=4kJ*hgFV-nVZr80dOuTzB-I?$14BFoBp6y?zn3|zS`qC#qUhZDkj^?1PWmqA> z9B{cwQ-W>ptwnsGZa`K*Gt3w`GYMvXOb8~1$m6AvD=oO@;um6B-)Zg82;wkS28m!E zzdlY*lZAa*VNqdnj<-=TSRh3GjK}ho>nP##hq7HZX97fKEs+fW;6O_Mtpy6%-(Q~Q z0R^Mrg}H{v6E1noMwDnsy(CelKunX0rTFVjxBT4`O?zkA&hi-wrM4~~XTeuEA+&E> z(P>vL`@Ywq%mL@Q;oCUNEB2LFhP4t|7Tx9paHDQ|Y%9@4rHPEEtW(4@Y=2)CoeS3& z>~ckhpG7^X3fxnrrLg`lKPet#v=*a&W(Lt{)>*5J&MHe%3e_>iq1bCzP@!S@leR3o zFbT`}l+-KOwrGIv41y7>UJN@D41kZCoR>UIA0$TMAg$gKkK^H0 zeeMRY*@)S1D(KDevG6VPVa%?tz`?G{X24^%t+@ z5>27FP;8a~&t}V-b4MI-B}gqnRd*=>)IEW;&C=hNGL=jGfY7kg0mRrzP1@TqHlv!bTBW!q~w?82Jd0v6r{CAOjn z-r>e>DNjhE7tua^cSKLD#F&{hPOgtFp78QUbN4xvet-PRuLKgaGHoe57)q?Pa04fV zfkaNgAvSV(3^R|u*Yi=aDdz2seaVG46kiMXux6|t{s6ULAt996O*3MLn9{W$ z$w;qsn3UhOXCI=Hpc&gF-_Tuxu_=oyM(s4ykiRFJJ9ctL*?dJ}){{ZyTxf=ARHmr| zKT$~()b_OlOOr72Z=qK!%ab3?3@>egG%2=D8M3kl`Yy?T;>2(Q(cyDFXd0v)N?{6a zTzO4}25-hLPc4sDoiM7jqj9dtS6fucj-{d!Ba9#SsufHoUsoFFUOa5>?@ayD$(59O z|6SJgw5SXqf^yaL+CbuhvNTod%UNK1QDqU!Mp#^tNg0;B2IBT0r)r*6vOX_j7nrHhd{oZoPolF*(fH*L0omB6Gr&_z?i*z_t!?-g?pl!qKr|~p5}$Nev(OQ z!Y>I0iM>-kHodB16D=B(Y?zK&ZKki;g%wsTvzu{lU-o~gCarYq;$V>3G8DN}Xdx$l zhp#Rw*p#q3aC*xcwP)0$9n*c6ak1nJt8x)UTkj}He@o~@&Ws+8n+xWSZdILrkSlJ5 z-5l-!plK(I#NI*vjoFFmriW93~iS}0HMDdm+ zKc&!3Tai44G{cnaNzi_vOL)n6rp~84w!$CW)e&+^}ZXyG4}uYSi8(C zGk&NmV+a4~d);+RIE`0{zyFfP@U!C$8nw4GIB;i!=6OzwS4*?ittRf=#LkqL=d5xv z>778Hb=lr>yl~TIybv)es%W=`jYka;n*sN`&8~x*+8~#E{UG^~6CU>129zDEyk``9 z7-#e=B5)U)`jCjEn0AMa0qdsu(zux0knEfB*VrFBm#?G%!h7BBKp$Ow1?wZI79;HT zs2AKpLnlx#H(oKUL2RorAg4UgPYqGnF0+R1hDsMTQ*dZ8sv~Tq2{NO`-kC{?N+q8- z?Ru?Y+a0bTaAF8%x<^5y!u^tOy#Q};amMVdf<0+fk#K2-XoorgZ=%Gm}+ zR~K;Sd`P&3S@CUeBYFW;fae}eoLBboyiX0_z9tsD6`}8zb3HMpsW|J~@)=^I&1u9= z-JyGt%wf!J(ci;K;7a9JEE;J_P>0z&PSCs$a!6+@s^w%9JXl{shh1vtC@uePg)QIn zd)=jPBFmNl9G*B`*wPd}4xb2g5z`ZCPhJj(2={ERm)#$g09}fSEC`%= z^D9D}e>D{v&)I`6+hV}BsXU(7ptrhhW; zSpF5+^53DRV*ZCi*uPRsS^g)t@E^IQBA891MSW`r8GU%|24x>-^2l*o%PSLpuVk`k(r69BR&h;UjzIOhM(y*e@*^#{m--fIsdcFpYwm* zhu_-7(g>fLp5f1s;%7vT3O?PRLuoSyhtCikRkI(Crl09Fe~tZlei1WEBL;kyKUBki zn23oBDH?s=@-Lp@{}JT+*Ni{^gnvNre`LSV9pJ_GjR8;mvqi+T2nla!GVXHZmsQ18oX$Js&`wIVx?+OgU=R*vxz$J8? zC!|eG5*ue3PD&BF$RCzRwW2~emc-rUF_45aCcX%0}-?Axp@H}0e)Ngy%TW&I_2|HHzf$-K1p#k0e!+q?UvF_KPTI09Fg>v)wX zMl3Zzk`a6XRNwL8(4R33AiRcY>iwm=6Ra2(r(Rq9l|Z278-exf^h_{p*OK>?1vrFp zK-q2|fXI+_vGV~>pL?2bB3S>|HCpf5^asx^B`jV#yF+#S7W7-T;K%sP$P7Zi(>p4` zyTvrGyXEdUvX{6ASneU|A?1*0RHW|YYd*|#Fv9HH#{BL`Dks6MQ-Fe}qnG(lk1!8Z zC;kueTL6^19$Dp%+ZFIFHB-QSF6%ULn-8v_$u!ZSup_LtfNZ|W^vR*yEv8(m$VCpX zfNUOyBXnf0;Nh3q>CVHixA<*g?>Ns$x1`5{I3;*6dDa2oVF{qKu@i8xNXSRG z2-=P%o+*)@Mru!zewlW<+&%Pr)gkN}vMtL=@40ue+qT@>hDbbtj%VnQ@m1SD3HuLc zZHZqmr@dizgMocm9XT(LZ1E9E4ID!(U2RjOq2YkJ>5W&qo3joL%-OvlH>UUxzSu&8})UD<47 z@1CK!p9Ku{UF`W_frS;NomBDiv(DGVRb#N@c3JQ+JQT1zZD zTJ(wShURy+7Jd64_6_KWd?X~BrYxo1fCLBJNi7$(++fuTqsD1!~Cq_1Q^)G z=1i|ImTc$GKH;|r7_OV$qqMmane>k#;a%UNEpJqJ^Mn#`1kC~K>2|{QWYNx#&j&T$ zRYmec_`}-GLwetHhu>;mM4i9jvdzGdZp`r(5P;l8IGL;VT;h+Ckz>HobdKQ=(Lo*n z=HODl!JvBo^s8$0@#^QRqxFY{54aTzh*04(1$kT(80G-&dO)c242XGy3Bab?e@7L_ zVg!F`g}?T%0`(OEUpCBPg`9%K<0HGKlodm-cEQLM$GBDD!!GlG@Kjm_ndkFs3Ze@` zB#`+evt1=`A^i4DbYheczCmQGz_5kI!I-))YGX8gJHFiP4L+R2v0a$Bs6@KHm7rVx zWO*@K$a65hFy|$p)B7UqTqhvL*ckQBoFl$QBEH_RZc^&f0;s-9O&PW(+lwL{Y8NyF zfw8G7Z>F(-&D_HWbWb}L^+Ks|I(k4FP+A=`t6O6GJ?Uv5@df*c3 z4;m2?PQ<~{t0SC(<|v=>7E8msqNUzD$@C%9lk5+*@%%o<3!ix5{jt9RUYY&D{vuM7 z{Hm=-SvEi#YZRDiHY}emUChjSDnnVEp0JsIg4oafjmvdAR>>DvH%xI~Oi4Tvm37UQ zXp+S;R3lVF*>m1CR@Gq6EVFAq^+zY)0dVh-u%8h~W7y>Ur1puXdp?knB=87(go`oL zkQ_Lay-_$ErZT&6eXHK;WR5>SX&`cO!1nGdG$@8wWkz{brJof{AZA7349>LLSrk>R zF$ABnGSG4Z-Z-LnQi1`q3-g)18cfo(vLmYFQq7W)Gn*&zyDrR-iqeqE#}*A|uTi)o zL~&9ZR$%Rya@^)Me(`#tnsRwpmT;d^r(kvU)Cm%--bvWiU#ckN&31@*wk*ze6R8bj zgGU7pVA;~Ht2CMY_MX9C-<~ZaA1q9pA~fB^NilD^yn+^vfPLYbELSsK4-w+6{M_^0 zj7?r-pR2Z<#@KT2*VCkMG3>?YAaLJrZj`8gqGt(?kmu zCe0B>kI`$~r2GQ*MFq2%hRdK@!mrKTeMj&ty*^w=MJdT+L!Ff^5f8+iP&wFjLeZqV z#3l{X>TI5=kuAbHF!bx3KvT@V}!C@y7h-us>NksHf)~Wbm z<)Mnv;?JVWMGPS4e)XEv0kl#Q!XG4Vr({*Fp!BX6 zu=d;IHDY_1>THboM!d%SXf<5f%AFKdlkhG(;aONDzik4OMgB5d+mNXxIDs|LGU?Ul3EG&GacuauF;Q7>JoM@6+oT|3c zX8>di)o&=J{$R|2nfmI;+a;K4uB3AenF}a@BZr#|6FDxAKZkxkfn+U&>;Ei-`JG)tzu5Uzpya9(2S*wMY_{X>=>5E*@5h|uqc+X<&!j{e=@v+0f4X=Ae=10wO*22%#t`75t;&!_Yb4Iu`w_U0m1f?AR zAwHVcsW1HwX_2EK*(5911>A)LrMg1bDu8QEEuZnYauWR^w$q3@TxTfDA&0+lWSdJ- zK9f!Fh0^e=-yG9mE4lk()rQDit(z{>=FwdbTceTT zn9JBAENPpY^(cFtQ@7NC%6;>1$`K_t{Yo@{CvT?X-I_S!%JkYm#PCRT2$W(eA zIYj5PmG9-}V#!X}%bHj#P7an!S;v8-+_ox)f!#Z-AQko$sg@Xp+;Xi(hq4Koyl`$$ z6ptOuCh)w$4Tx^p?&Am?-;w5e2X6zn2){x3Ik|cZe$2sm< zxBj%{E$>t~sA7n}<~S(JVCG#ZO;Zb{C7Vc6kt7%%K;Y;16YA^^gUAcm94%Nzbt8J* zf|dvmW~gDNEDdT>d!Pdy=G?;UD{tmDI)7U9*`{P-$(YkcSI0apIE2bn ztK*S4uKSusTuW8@)9ezHBY8xg+yr>SQO&T8QBx%w6u?AnL#IgSJCMIlUUE)P79mA| z;s@!jA1+a2{}(UWUxxL^^E6WiDkVuH*fi+&;{~Kkp(?}L_Jh%>N;1y69I-{uR( z2c^3JJc;9MLqfA*S3#XemUn}sm0-^+_f?VV(4cbt>w{TaO^v}UN>~w%7v7}wiEBKHr z6=A#V^3KR^`d$d`Td5idF*sv`N`dnlNc{UtGpJ!;d$MG4KvL5^&sa}VDL46=A{Zhe zKsftlMM7ZCZWh!7yV^#IEN%U^`$@{{47E`r+`uao^9|pZEp{e826ut8y;VdUFy5VCJi0C_W!mIq3+STEd5vvR&3w`M2qLqD zRrIHgpElr-PMq0!2~!I<4bF#_T$k(fQPc|FB~I*cYm|sgNk`?cx!UT=1T>+jtQ$M+ z=1%mHE7Qn)HJsstvIZL^TriGd+CAI$u&04lDi~L_&G=+q6yBC4(IaC%uXLYi2uy^O z6z*YjuhA~?m?Z;0GW!CmY8K=pyq5{Z9=IjL?F^;wS+4S|P?;Hh(yl1+_S333bO5bm zl2f`7pj#@Lmmz~;#vNrtuq~3l_H#V|Duh!Ia-_-RRI62*#FrDPu(jw$H^TW);=VtJ z+%>*m=dWjZGNyz6w5pyLi#mONU+b$~-&x7)4bNz<>L6)z{=Q6b|@vi-UZ0D`@H&g^=e%%#Ndd^JqS z^vj(-HK%S`05%u)fCwqe|4tZiwWjFwTHo z@qOLTT^|?QYMe~MA{?0fv6z!C0FzX?3CYHqQb0XyP=%=(w|=I^W$E8zQad7@yxy_Q z;@YEC(jMvt%c~PoC*`E1(#nzJB*JhcsV*)NyVs2&6X;gXdP)Z#4C@Mefm`Xd@^(+4 z9j4eu>FL+wWFvb-y`}B)TK^Nb>n)^wP8%(`KsXcLoFM6}r%NOa+SnarX(o~zWxZj) z(3J#A|GR03Il+%^11&$7gAiI7kGf?@(zM}t192_yWZoKI-b;ovcr`x$x%{JNV~}uA zdqANUZl>O|EUjEtFp{D{v;t1heCP7lNfP{O8GoP3V%GMeL`9UahsI zZD2{S;gm_lLkA$XnFI@Ex z&YHVaH90&9nHMqC8UVrZ6EU8dG7`kH;Q! zm4dobDrT54DO>u^))a2Dg^sYae_Y_fw9!^DBMT_YqEotJdbU0QH8EkeguuVH{ElVn_ zgf_#H4yJXv-Ss3TuM&6#2jEs%u3aLHv2s-Sn$W{_qu7?aAUCG5|&`fXQk@w`7!My6px``Nh~ zRX1|qO@9vzrIY;CFQ%#-tC#g_*sM|SeK{@c1J?i(v}#y4w!~O}N|K<_g+~Uyl^FUN z16mf`z%JH?*?|(HB2N}*7e!p5m!beboj%cIqaT{EA}@24sx%K)jDgSO6e@ryQHl7y zO_5)O&eV4ae_VNCmAQ-To}p5hud`eKy$ra@Ok7+HYmf;5{K^WP!3I&6WHY)t4v!Gp1?oj&xhgW{jj(BaMgiUMG<-L*uLrRLS0$~gc9ayQ zQ9+>{4c#Od-0849o$>QqY+`ZqTF<3lF@dFBCUejP&Q6>~BOlHzoJV^G*Hz7ONcU{+ zYoFEM)Rc8NJ*w%mqOdMCvN_8sTLrUX%u8aEHnYeR*5=o{%1%K&?tQ7#KzU}}PMr## zN(OtQeCr2BD+rOMZ8&su`tUwuM3!NRJ)Ik%X1Uur~>b7NE%E(YVr7 za!-wZPlo{gL2k5pX6?xZgJO2Z&C4j+4hA#>dR~k?M1A5OvgzxHVue1uU@Ie&=rKbrXyaht1zJ*;RR&+&1v9*h_iS37R+XUgXra?sI?PwZ1h~T`<50w>cd%?SdZ1l6%R0>Uume^PQy=eAgUCmO>|A}#(4nXYjcoX)va!Y z4(ZfNA#L3ZoOU<;Qbnu%xuui*T~Qacy4wXj#zhF|D`cr`iYJqi;~0DTig8Ei;&VCd%$oR$*tL0P%kkuZ87W`jzIn3S@A@)YW%8J};{YxvCf&x1@@l+ged z^&XvesC*T@_ii+rzLKem7MT3x-zU|5VGnxn*0t$$+fDKE>e{hM=Y4ctno4@8z=Y|d z-$_Biy2E?|hcVz#kzzZGl+g6svuL$LxGfT3{Rg}a$g#H0JMR1oONbYnJctLmzwP;a zi}8V)+jiaMH`K+-q8Rl9WazFZ+Y4)+^ry;+)kVmIkZ1l@;fk1}t(mOyT^M3mv#am% zRF9{ds65O)tM$un5h&q-Qi;)m+^~)?u63$>vjdH2r9ukYS8Yxke^i+^P-(I?@!oW5sqkm@`v=0B|6{5U>I!{lKQzNna|KJD4i zcZ6ki!!-ree^`jgUvmtc5SL_;g^}?St+?Hy#uYk#-ar*c%8)#bA=6DGQ#BS=uN6^t zGqy~&Z_m_d-=>Zlb_n=ZHYZ&Tf*=aiKRs4g?~(~K7&sRUWfb_qbZKWpfNOEZCe>)i zVE8sNc7c(&pLv_-&hs5Ud)vYPC6M>Ay?n>l@=k&|0B!SS{LpR72{*-}h#5Gu`+S#~ zXvoYYMHR8^?p))EZF->eel{&iT3J{$0x|i+{ze`_%I|`CdDC60e&PKzwda+zuf2aqEh|grIt3 zEJHX#lYWltFfGFyUIpIb`cVMwH+>|BTgFW2JPT^x>;zWgOR`SVaFKi2oD8?Qya{aI zmxFLV5el@H=irIG!Uc{}1c)$jGm;(-p#&pJe^FTWeZzKhE;QP zTf8e=WAv^(BgMm7Y5<%it}p9>5|PX5V8MES72$WH(1mH4t1-k)qiE_*Bf>LWOam^r zCpBO`^6?j`!vs;_Sn;?qJ{{+qV*?R7R$qyX_Rfyv^D>Pyog3`Ui4<_NKBLX8Vj9*Z z_a^`yBWq{TxOqadU=Q!2P<>V6A9=stakSu~IMAO4?kLrxlg4p94DH?y?{|{|vM**G#u9kL zYXuV9mm#Zg)Ija=@~wFN6w$@E52ASmXz=+22OADCbfS>i(Pabg@*rcRh;MeO{u_f* z^JMseb>@Xdwwa}e*+kkrviIpcv5bU<`_b&4yR_uh0c2gXr(Vbl#9=wiQ>;-w2L&-* zEK{s+$k6R=aAhTuh&ZFq*W_m1uYeV3s15|kADklz|fo#LO&MPrYb9%kf z%%-JT?ew%m%E-F@nfEvrn7K%Z)6L7}Gj;Lt+y|)jTz}?mxZewRQD6BZYV_9Pkr%t; zx;gx3;QmVTt*8!UZ9cA-i*2TZlOC49GZ7sxK>1*IbJZ)I1CQ;kX1OE+?tuJQ%#pe}3 zt2tEw9pL88_Mw~)m+9xPkn@I1u!1S?3wbj5v1cj%WZ<~3I^7U6YP{!UUSL9iCMHMe zT#{u_u8FXosunlH{u2XDKH^uN15F|0k8}DO!GMn{15E)=w$^AXZo8X_`YT_~w)9s5 zDqaWlSNuo~1!^aJvp-C0C;A?B&{hD=24eL!gm_*P zKU+(?TKR0PGu&Il;zSO_xqgu)2a-q2B7Ji;8g&KrcHz~0pa~@tg-3+j1W_tCc#0{F zFL+9i$sajEKMiYTnuiGst9a62}x;6Bu3K2Sbs3mDCvmt2p~JWigvttsrox4 zz7Mu39Nmk2>qXE?(?`}&X`t)=x1CucMx^+mMBmsQ(nL$5+1Yrybts8%izFhsjEr^; z`nMkldmmVYqsN{e>|%zt?rj)z@e)i}ve;1_7$k$mGBd(3R|Yr9*1A`BlseiUv>h3p zZI_>al{^`cgrg|vM2rW&?4Y~%A)u!N^H7%H4GwPp2(65$mEnQC2p2TR+=r#7V2p4A zu=ktJ0yxT(Z-Al$LwDlOB3tXlPAro<%=Ej$Ac>VsQpVl}29IK3K{qHGDXi|s~X3~RdE^s+g3bJ5IdBj%#SaQ`Y9vR5uv0~m52dhq6I4kAOOZGH-#@(0 zx}0vf1f1W|UdxU?@~;NEcn6)c@E_S50uP;`OVN3GE39%piUDGSo8eV>nQ(Dvh+7Ze zbM>~v2yeRpsM+TI{yQ%6XZQa%B)~?`_@BXd|DXi_AP4@&1pe^v{}vL!|7S=b9e=vJ zySF>1`{UyU=?hXeFw4K`^e@vh1KsZrfA_@lmx;c#XqzE|1?(G|C4dyL(&S02`O5C6BClsv-x{upXCaF-SB6H z--Gzw1;d}}3a<8_gov1xkv0DBeC6_n#-^WqhATc9|K~IslH=3L*clkw{k~H&B|(MH za|K5m8w*3r-`EM=?_bm(1ma>EFtgMD%QeiOQIP+%_gR;fl@b57XH7?^4}hkzn9_v(qW+$H)hsH2QU2a1WCOjTvPbf36MZm9#Z?3f6dE>DpG-; z8fr=V@q+TCj7D*DXqt=3nQ5uft)c=$?S9`~X?9rsdt-5Kc01wx)WjkTnj{u8NtpGV zSo4U04L2N-W1^*dlYerS=CuKpI~;G{p|R6L&P&jFYLU~D_gz|hEvwUmYvsb4o85Uj zM;+1F4z3zb*V3I@E7}smn0}UJp?^HafhG9I&0`7dbxaA3JP+C}T^c!^d`-Nyn z=R;G&vDf@u;A8YvoBN8*$K-Z?t~F3h;unE-@5_73{Hg=eFa2-;6~$oNwVg82?bn=N zhCFtyaryilI~|Ckz-%=cYZyCT%8dJ8Y+vc3RzTxB=zZQ#Y~Gx0+U<-j9_W@x@p_*Y zY${*}oCZ6ZGcx<>M_JW_TKNwpGX0zu;5HJ&f`OZS>;U zpjiZg;REsdsB96lfsk&|y&`%6e1OMa^1Ncb!b&F%sc)hBpK$0e>w2T3GE0L-z)@rc{drwj=I8P({p9z@f+-(&^Z zX}I@m^Fn=j!qnNRoVU0?HxY~+qNFQN_#Gbw(44ca>e|uWUlIE2sM2y%?wG_%tG^;- zO`&%7!@Pgyy8-Mf4L1A52cvWjA^utpr7L~%!RGK)jZ@aO@>ASws5bXKGL;wQfu?dTvyJ%-@Ihm}G`U8OB5m#_ zihV4FArH;WXozCV;m~(_K+EuYfT~(MDT(6I4((=#M^D26Wl0Mdbg&~eX5Betj<^XO#MLpA+{56*SFM_AZ>~w>;os0L>_1tYR zg+&qzCx>Q-#k&Dq3AWJd-z=MTuv`$$cp6XWzn(7aNoC_`lW(01L14Q2WuU?4NV3Z6 z#Fo@MC@L&AZ53LV6 zwI8-KmNxl{DgGL$I7McnDC;24BE>&FP-kk39fEK6m}`kr@|l%87;O%MRQvsL?^MOS zpVhpenCBufi^DPOs8XQgd&vUy$~6L6%6Lr1dVU>5$bgKYLk?Mi#`UPiWX8d$Tzvt3 zB}j?p=#p$s#283iAFq|ZELTuytQ1I^({xrypZRUr59>LNZQnHetH55qi628~P_zr9 z?lOkiJc-;sMZPxgz{^d3Lj}k$@*)B!bjY!ygWad`MBf4tM||!fOmx&lX@4#?mt3)O zukwi1%LfxO&i2ok3OQonl~7W|5K_({2gW6-*JAXf~S zwG>gsUF9yMno%Q%3V~ZfA4xrVP_f-WJS>F2yG`j-=arwE3f-AK++KwyW(Phw&`T%F z9KzTa86Kyzbv_n8Kxb5$wpRBDVUbj{<{}l3=m{(*LbQoV@fg=9D=^w zUKwUFa;lx$m}U3?+)&$*(YttDIbIk&RVZPws$q1*2r>o>W2>WQ&`(N^CE6CYqaU%r zo?&yaIoPR=;@^?)Fn5At&)caE>2doHp*45D5Yd$JV`MMn5O8Z|wWcVmV--5e zspC!LD6%+-loE+s%7wKcPHbMQjr)?ph%lPaVj&BcvWr9I|3aR~*{NUbCriwm+9%92 zphHOurwZ#+Q$H^)wN60;Up{SgTt@R0O^2hYs6#!NFI_j&v8qIc{FvTD<87y_#mAW# z6Kx^3U_uV>CpG&jbbNerY)gh7QGvx)CaPwt24#m(P1fm}(|t-7nMPez7k7HIp++j2 z$BzshM99yCE_BrWYsFyCY?>_WT618F0LNfJjD8LAY~!kBsLexcc4?tM`DaCWHmz?&8Q`4VPJx|mtKt1L{3&!q?Ui%#)L(5GBP1g5b`<_*H*Cn#VBTsLq z5Yu(!W?8@H#>%iYqzeZhn3~eXS7!~MxV1t@sy-L_;JvxwTwu=OKErA`%j%>OAfb4I z@-kiIQ{~AeixLE}bh)lWOp&r)kB8Kyo@!Ei#@j?u^g60|{Kny|y47mOtAUe_!~#S1 za(gQQ=NwH!mb=dSO4jQQ3@dMIN9Eyac<)kJU^?o=1$dG{^RDMwSf_dqi0QDZsxft# zLB+Vj!mgZs?Lb&o+VpG~yrZOE^xRtVol3Zf7G@)v8$#=$yaOdqSc0v6EEG4j(dTd} z2OVp>j%lb&DDthpUZ6a0+sBJ4FxrpH1fVr@ci8K_oCSl`eY9`oH{W~L7|R&mEN^06 zuL}!qET%o5XCbL0h=%XNt!P?ugc8bEY?31q>B>WesN;6);qafPcrIg(aJ82xS5=N=uZcr6 zHU++!nh{SK=)FDTZLv-q*%im*sr{(B*jTZmvRQjx4duM_Yw9(M!CP5)+hh?c_)!kF z>%YLm)7V9i;B^i6bHk%gp{rG8Wya-lmZ-UXq3K1m&dKr)ik9Z%dINgiL3#bt9GArV zG8~*jgitk_?WzBjDCG6D<92x8^~V&lePc4Gqi|*jT69y0>fQYishW8#;R=skP#Sy76tA1(e%a8%-_demSE{csrM86G48fqFrD_<> zDVA&vcBm@LIg8uOHPVZ> z*YeCpRtS*nKPE0CVuBOr-+J#U% zJ-@AN`Z}I8oUELd3f#?+yLpn+x>iuNOT?~mJ2ZE!71;zAsGu8zPq3@zHE>Vc_NF^UzdvLyR4lgV3z(Nf(ZDFKRIYE%NR34G*OwA^ zU+g+>y7$|+cr(|bd`e#GBhX%nsz#*gLE_K07FRb-DF)Yu+&Y zAUvtw{ormK2E-X=gXG#CV1u+!M|U0Nz8pf&GaV0dAjL*QwE3Wp!*&xc`1(Ru*`n-} zEk@B|P^1DFrFzZxr}gHWaxW`kDDhagF6fn7533NsOO3^*FQ-TVhQ~g!AU=AQA6c~Y zZX7%~_tHbOw^O|Vyl~G>C9!j+aJ7g(>w@`BRoA=G6@SaFKdo=Cgv(^=F6kb46y5|k zh{p-iDTx{#77Tio06zzCZ!ApB%S~$F$pWd0KiV%i!>7B`#(w=(fvC-sTh-$7*~ z=!_exyhK?7pu~shv*9ej2Y93Nan?jh!;fI?r_(=)#r4-l4`7SZrwe$3*$P9BLLBDo zEnT^!_2q)-pB-igtRZCgaHp8&jZseTjns4Wq?qSKSNSgJnQI^}Rq*ZCVv}WPj}R5k zw|#S)J!Q@0?Gq$2Z}2^<-RG1b$B@EH+7U0UA0)NRSz(1pBLt4$Elh;8&?E}uM6HL8 z_?ct^VUZDc_HPN<*%ynQ3cmY?u73~-e_#(k1v*H!I7k)p;Q2=aQ*!2xq|K6Pg`l!^dW=2M!K4yye0uu#yM^$4Em4`9?KPnB}s} zq4^2R>8s2M(!{Es+O1H^m(O_nm-<5ZI@^?SrCSD*LA-ifWFNEF73=_*4=$wAQBh`M zouVgF=i|gBXc(%!_Ij%WeTh)Bl62J>gG#TdE5rWD!+J;hGEGU1flTT=fZ;YT!E`?) zWhPtnw6#}aXTrJI<6mNpkqghdtq&1jRQ+CV8pbM9Yxm^6=}J4UauLR7t8#h9p(N%i zxT?ir^;j{+uYiBWx@h8v76*Sr4HQ_}_Czn*QnYh#XN^QSfr}(@`YOQg8k+k)B}^|V zt_}D4;r3FD`BNI5?E}K=WDBOH_W;Dsi9(4E@RiO|m3 znV9*}y|uM;7VdIG>^TYkziU~4q?g|U4HMJfi46Y8IR8Z-XZ>TN`(Nne-BaD&wcGB1 zU!cx`(Em+`e}z1y|0A6L?uGR)x%~f?HvYfT(EewAob|Ur|Hp6m-}G_TKhpU>E4P12 z{+gh_wLZxIs*nGVWBdPyM*c^<{I420>*r1WrICNSGx2|G+rRbh-`e-@_uuC%jQ`Nl z|CE0o|1SHjd;fm_SFQWc^!_ztf60D-_8tD`C8aep@>}Z$-E_~=k2)f78JXt;Pe|~C z(<)g3iz&1vEHNY)1MBiMeCrK_Z1dn}qL zBNH<{ir?09>aD7a(UkE&sA8~`(GV(~E)vZMh@9V8 za678}X71hceTO{S(?Ze1XhB79Lue>rz?CHtl7CqyJ?0(lidn6Qp|zWJSo=yh(13J2 zQsscF0V-2Rpl!VV1B(_`)Lh*a%?iR=uuTYs-&K2G7J}Rat8s(Btz->%SrEj*M}8f_ zmG~CC5JfsfvK;CVm>FIWkwXBo-hv=#MimN2A7CbXvM{CDp|l=56N)&B6VseiMF~qg zD(LJi1EpGr5VYXmY<{u+wT<(cdGfD~DAvEk>;L+&{XYuTg8x>i{!7vRPX{qRH3L08 zJ{vtdJ{v3RKS|S!f9$~jclP1Wy8og~f41@a{GZ*!e>TPb*WO{aKWQd^xAD2Z^xHek z_79=@Z#(s$8vj_1zpMRYL4JCN+38vSboC!A^mA+Ie=AITK)4_eWm+pe++wGdA0#nx z>`!s$r%p$R%pCGe1@a-{`v$Z)5ZZo+-9hq)vj7-eT=eN-;jys*Gj984cS`JKUE7h~ zABv;{F`~g4<;=RIHSn2s+w}<%3+6&+j$1(Yz|gtt!c)dWOG`;>P3f-sLecrK4Y1Ukl7QDx!!ra_$LC0>=jUiK%`{4~&(CJhrfZgORoUQ+ zh@#Y}H5+%)ev>Lxbnj7xo)ha{&b8gor1DwlF3=|N?l^O` zHY#qK-=wQGHa$EA#?HN-bGq<4ho0`rl~JL@yAFFE1TL!FRVwWu!Flqp!`U0kysE^{ zSkpCYb!&63+N_8&U%5R7iEDnGX(#6lYmnufcaBVt@S}|=vaOwa9ekyxP82WbLpF72 zk9Y1vYxG)hci`aYq9iNvD1X+hQnnu31Xam4HxPXWHZ3OQ7F?(jQ#mmh%W@cjb2rTnz)sqVmTWv?N5r$GCAsO8Lrqu^HreV=SQE_^5{% z4+g%38s$Q&XpOX~7 z0N7P_uI~<7;23NZ@M*>;qlj$N?_jx&FXRpUXo0}MM+Re(z+e@4ffM`+-+Lb+favMsG<%+CNyN)(zy$`?WS<}q+rU2N?snDuD> z3_UJ(Qut9Nq6Dz(%w}*JvV%UhYkqAg-Hbq49pJiif8)-sZ^LjGk9yDpAmAW+6+PMb z$m(Cveg$r(6I{u0s&Enn!NH&5 z>ZeHGpD}s_k5`{DY7t%n>TYkctK8mD4Q>k2ff;GhX+!u2vIB=f$Rw|f@&{NA2}|L3 ziv@bXktIYigSoa;s%LZ=h63VLvDIU-@dRnHp5j7Au%SVAd0!JTb9r#Wal1yaRg8WO z>eGMSrJ;;SvFt?6U((o&eX#;J;=aPbO(v4eK^esn1!rJ z;3IERpP^43V)!dML}PyJbqKZoO|(Oeiq~ykspjkYrRw zeXq3)*r;``(}1TYL3RME^;&e;N|H4xz&Lb*n8^GwtKAp|0gw#6qNwKKzv=?OEJ&(L znYv|Jd@MpPKT`*y*Q2K~RhDSBdsmENY9deER&#JLU>S7I zHRkrHt-7zoE%lw&&9@i9Pp3eeNmb}lqTrMOGw0)wX-k&qRAq!>4Lh(gWP;{+o5?!F zt2M?9p!DHu>S>SrtC^Jb=}m(wm<0-;_arcU7sxVIpD-*$1yX@xsm}>MLTQsSqGzN; zMZ%Jo+BYqzExREuDwecz7TVOtrLSR$S30@_PIChc}}0dh(`PUQ;M@Uu3IeYHwgj-x8!QFLSd}-{p=)J*&EWU_n7;x_|sG zF*<{O@a`N%lZ7r>PEGqIsLbkT*DKt|^-24D?(uCDaaI)fSeMeG+>vG0>$GQE7CHrF z1Xri!OZ@lTsb^B+G$}xyW#C8A;2GJ#uRwWOAW_82WRV~og$f);{5OY%N-DnRwum&6 zv$KYzGn=r+di4{dUv~Cd_fnrOzjnT5MQ7ux+P)68Atlo>ULM|mhE~nOdka}<-hJxd zGbOlsNmkCbX!{@yj(WB6hRM6Ge;Orjl9VIA%J&y72!aR^v0- z2b$1$rB7n=8NYJePwlW*pJ1GD7SyBY8u4zl7%2ZJhKG@I!~{|;eY=2#*zO_*bR!ML z@gcyURij5}AWzP+mXmlds+_6BpVyAaCxk00i*xxNA<<~OWXCy{KuluopC6|3-S z-fsGLM`w*Y=?+rORiV_p??k4sEBw4vz&NGC1BlMxWulq@3f+EDusTpcpl5}o(79i7 z5!9rpNXSL8r*&zSQ=9Pm9@lzo?w}YQ}>PLYNqZYhz_*k&(_3)FErsXIKK@;gs!Yd-jGLw!DOE46r z#0WaX!>0_@K-Y3pOiA+R&85F0P-d;J6z|$8>d$WReByplR*rm_M^~UwSzm0wdQ|@y`E?u{Rm41p0oP`p zl)OeKbm)p0Cw>bs&OtU|k4YILyp^6!itlIFVi=^27!u<1gZ*h23{UhV4>0WxXu`z- zFYHE08a@|g{u>{kSHo7JNyh6SoxPa}j@i zk>@zK+?e+K*tWD}XSZBI-Pq{JUmLp&^AFwdV57eZmq7%BBcb6x@7ov`Z&((yz`orQ zfilEx5-E{`&lG~@Zs25AnHgzk&niJT-Fy#wXr6)a%NTDEgwY-#zDysb_=05$F;r(b-Q;MKPP2@ zb{PC}7$KPe7o_O%C^B_fSB+RlhW;$oK%v2J+y=Ib0Z(N9REvkVv_P*>!eP$|$o z>;nsF{eVW29@zYabiG>^PDKM>PEO+*Y^Pvuq_%?-_`z+^_lJ^%O2>3u)z-=#6JNvo zsEp&e$P*{^2drN1=DUx+=;$p8uqFo@&5_*tYdfUm%qMktIor`kOf|>M$kqLMwFz)j%#Fm_f&_BI$XlXVfk7MSJCx(&gkiWfM#F zf7)pdTzX0vZRne8v_~c~oMi{v2FU@nf(+P06bBIMCs~P*K@H&;v~bLgGpWR%_@HdE zp}P`k`GWg^Gfwje!3ew5LW)#V`I)lm@kq&*F!VrUcgkXne+gCl5$9S)FU2kw3wJDp z16FRxP%JSBkyHpv+T%-+Ej`16w*pX<6GTy+p@?XZ%TQA(g+;2-bphU(^oS}{_v71~ zZ&nA;hReD_p2VzCf-#!Xfx4QoS;hC7`z&{9ho(m92A6CKEVGB5?!gz1dURo>+5d~V zdyJB7Th~RMu5?z~wr$(CZB}Mh+LfrZZQHhO+qSKnHP@Q+oW1Y5XP=+p)=qCfAKB2h@+Np4WGxpe#*kp%8YEB`f(#KQDBre-FCVzD{sWnmuXJnVt8io8uB zhWZNhTDBP%k5q%IlA3vz1>%&W$B$ktj1`692!qiv9MqC6BSEIiIt93^oCQl(mN4JZ zr{xPyB}WPwvk_O)l(7J4Rg&McI20AqbDJ>kp{)xSr=aS3fJdE=E9YYKl-9R8HONW$v zk_ig^s;<}H1|$+TDl$o+&W{0%1^gmmi3>RZFhKNR-;&7#gEvicsYBaZiaDGw&~v|g zW*qbWsjG4dx=hy%3n?kuEvoCjOQ7I-`o2aGSI;}|3b3k8FfS4w=~I9N8` z&6dALJ|rb=N>)JdSaO7Jzrrq=M(}}5?rvqjJS`fUc&_&NV%P7 z49|eDM>8gNdvZ}%eB$YE9g$_D@^WI)j_l6zOxpAN^;G(29#`KO=#TODF_>kL+;ePq zdL@N|y>Fm$`VhY%2bu8KO1?R9U4vGDy%r13=S7;!_%ihwoQU)KqevtbyYYx;auR`(lI9)Qe-{>k=%7VOd~rAJV^jqoq=}c2tOf(pu$V1$)kz8iN4f<)7SG1 z&tVi5OaJ1Tc}Ab6O_qNA*@MLCysRr6xoJKxyZdtZDq;x$I_ov3=<*Yd-H?Q%OX4Zz7VnzW;3?z;h z#cV8KKUIp!?40n-Z9VO0M?#0rknBE^TNY1b0Vq+pVBu{UZ&C+R6>c>f7tuZ!fI>B! zBS&R;v_A}hLI3t`UK%oDjUkB3Vyd!5dAHH9qpST5Bony^4<+YSJg=5*kO>Dj(^!-S z%13^I!xAA(RnQStNOZmtVFDF2OIaIAqUIi#FkS-qsWC7cZ(OBPfRY6Asc{5P&fE`) zc>es|43D=sg~{SLu=I!OZwQ-hy7{Wt6!r4?Zdahf`(>-sdn4nzN!qrCAJ#0??ew#| z+Dmf%Z#Sct42S9KuE6~t6+LIm0SK~S-8N?3mt}mi*=!J2!H{;UXMH+Gl>GPoet!Eo zN86@)%3^PPVsN4Sda+EqVQS>nBl*RPopF9_U^q*BW0KE|b|Xq&I`~u&d8)(V1^0n% zZvw%Nw>Jt>fqkHKRH@_@Rf#i0QVo70CRFCf{3o1q`ork)gp7FM#zMn0O<^%j{2<-L zy9|INO`A3D1ar#AK&YmIjya?+JGF4_M@^c_a?@$7H4B=DxE7<<#SmoRUUaIaBi6 zHp!9e1vG`LMN7Syh;Iz|x-v4=I4o zoBGD{f;7lhThu)cEGr=v4uL<*q)^Do?nj8`cghEUWph$}D0*vAwTHw(#QPP?6agw@bMl)!KvU~Vp^HHF}a8|{_a8emf7Hsxz(Ss_zonYpyU(Vg!$Wzf~bAU9;;&iKH zirmtACqFkZo?pnT zZ?c1z=a%S=}P+ag^$gi`V^a!Rd|5F z5V1Pep-spD0Bnyhd{~W&FaWUNUSvef(XTiz8d?aXCyVNkK*8Mq0XFy8?c1j0bH3EW z;pfk@JvBD2w=26HtP1X`#|+?L)@Dy;O#gPFf;tOfe$4a3%*p3#hE4$#=nMt#Ld$i z>t)ja)V#^<1CO8A@88|5&OfGx&aEyyncw6{cfoJXb}!-~jGH*b#ArZ4??UOEYN%5&I_9~;HRl=&(Ga@j6=jI&Gt^eL<+s!OOK-lB)! zk3^tB0|b_6MW#5X1|f-z!iR!rW+$ph;r&&TmDrHz2}q9>fr9-rP^W|$98!l)YYQX+ zH3_Qgmtq<}U=-B%RE2)v?KvXidkh8dkNZiQcFC&+rLWM4W3!UNNQ<(>5Axs#syl5; zY3r|>5=Z3S0$LNs4;NdV^oTCTJA241(hY-p?EodPF*^x4g+=Zr$ZRpbV1F|;R?8o? zuKXml7F{A$ro556&J%0QugluAYHS6I%Pz#Z0sY$#p4F(CGGTPYPwRd?5s;jNpj_CJ zWS`c8zZHM2mx#E_w}lOb)Z#JNqWZf0;z!QH#dDXIBg=guPg#@veZ#b(4)DFj2bB>| zvh6^lNpv*NIzRxUg_16`4c|%KH)lxyprYn*>4jb$8nXusew~gA`k9H+Enhh`cy_QT^4%Tg2vu3=q=zj_d#dqf(UW8MSAu+mZ(|2*qg=GI*NGB5>nF7ikZFjvy_@fXFDXmY!c|MoO-J42ljD!U%S{o{<7OJ|_PRhz=%=rMDQH_H2U=Zg2op zNIyRgR7n|$#QO<-RZ~Nm=KcTg((4cI%jhj_np4Hp* z^nD>ILCpxRJM;Bm;Uo!9C!I{(8>0Ir?{e$go~+I4>qNB;9k9_jYj;YeGF9NTDzURf zpFvlM($SrN`N$U}D^dLh3I}5=W2mxE7Q?39xs@96J=j3a(y@DHM!AvNsTpOn!Qwnx3)T>VHFK!q zqO|Osrdmy+#d7F`l0vcl zc|W*1dN!4U>okM(v;rjA0wkFsJ5qj4Xo{5965EPS;c|^@^DY`3fX~zqt>{?u;n+4t zVj~XPKeMvLBL+t10DU?^DG&1wSq2}N%b8Mzf-o1vGL?QF{ewmp{wQ)AC zG}Y|L?8GjYllqoD6i)K%0weW>X#$4vfQ9a`nyonnQdIZ&$aej$a1QQDmSQhEj_a9C zpY$?XOS9i1r|UnR4(@3?p&ap&P8#)4fsa^gCg_`uQpp%Z1aQqMi2;&Wx?*8~ru$~k z5hXGwY1;*lcOlXI+n@*v-x$9=T)ds)eyRu;j$J8I35xS8;74ZKA2w$l<(tDwJBVWh znJg**mx$AllDHW9VN#);J{;^FOk0C3`{mP>owi7znDMA_8 zYvGtyM`&mTjgA1iDefz&&;$TepFJgM4xT3deBs(WTUDa`Ujm@Vd#Mf7RU?cQy6 z4+=D`ChThG`LT~fklU9T`@V9|KvS*Qi2^b&^sX^ALvpg15?7-;Dz6@1I;*{Hr{-iU zT&iPlxsD~Z9tEcOm@E{VUX&&GHLavOMI;}!KzB3-M!FQi1QQ=}*lK58NT*zaP^F}U zpiIr)r21@-WFm4yTj+s?P6ppVLTfqCvh-THai7vF^=Oi!F@Jebm4t@)!}H{JLfg>;vH8d<|NDyebU_tqOGP zgzb=>_$^d(7L*b=^61`#p^Qf`dUnT2IC z$`aBpafNjpP5yQsQ4fBh^{vU3w2^jNs#Dm}0i?s2KlJN&_K}Sc5(3&zGeF}qRzH*~ zF&QpNr-3>-aVN6*DkOs3(BT)j!1OsU*JnT}N1sHHo8Kv~EVbeK=nq$=wUK0Kfvb*tV0n>bqzk@GI0Yh?g>HD=nLgTb)w-J>^fshySX(0&iuM{~ zW}xX-8UB>C*uium@qYgheZ_ej%spo?gQDs*{(-){AJ26k+m7D9j~>hzd^Z&`z%{IH zn)ePhMat2KND-@jWZqsTD5dmD=$Uk3@Y_P|rSifs>2rq%OrF8P9sP7-YCWt`c6J@Q z-zn!O`1q+Yw_LzOwu|e{S$0sy!}OTc?SOq`MocEq;8>^un3*p$Mni#V{+UrK<0cnk z<00bCYB-;VA3h^PK0wSmQ~BLf=qPy{6GgB|mwpXFoA@1SFZVdsZQdLQo zYmwDq{0`)7wAWpaiK~IxgDHhvis5k4TVIiXDQIW+$ab(U5T*PB;Q7&*n3x>r7z)<{0w-^fRTj7`ADQnWV@f z+9O7AGn}btzg?+~SFoC}1iT&6$<raUUTd2zG3uvl8#KV-BoAH$U;!LZN0Z_U71!#lGk$8K_! zG0g|kt{Zkh${}$T5e0PIHVYHp1HTkA{l(;VEJnzEQ8aBKHe#{28$QP{D~7$~bev+u zIv$urYVs|4ve~l`aXym7sxWvXpI#OLvn)2ZP8`~|+Yu5&P67aLFN(_DS}cL|Ad^h& zcn$yn!Wh!8cN5+|+5t?tKZwQ-0y@AH;oa3;xybQ{Y%m(2h@mJ1oX>BD7~ zElf!!ZamSgvV&uXMMBG^Zu;eXvPEU;F%f3E_T(D3JJgu{16<_f2k`xFUOI;A}I3 zTCj0WoLq)P4kNv3rz%08igWk?=U&Ajuk5^_!^8Wt-E@TIsbJH`OX*^VFoQdn4SqcF z6ps*RK$WmEPIVbP9v~w<1DEw!j1IrAz{m{f?THIU&N192rc6AuE$`XIr-CR58nKcx zlRW!4Iv}nkbD%&nm039Z?{`tGpN@^f4ZEk8m~OD-`HmgmN#x5EdfrB}*1P4a6ff!{ z+b$k&xN-cr;M`nX>iWG(MV`Xi2@E^Y(V{6yA(@)WP-98adv-7i7eL8q$(W+SMcJU5 zSmWNkyPV33LltR_8?mRoK{}YRbjjcr60D>|`5h$p_fXewn{)sM6IvNYlDJ$SX2a-i zQQ11iwxX}U_lbqY6;Xr3&3;lmQo zWc$k326davcvU~B>AOF^O0gad`u;8!9YMFB-b50kivc~49_Vmpk9soVO_?1IC8rix zoECs@P5_7@_3!-nO(NCtWQ(X$@N_Tq#3q-O;OhBsx9_c=!O8Sm%FZqJ@WPgpTy$Y- zydDW^jKDdlUh=F4>zHvu;cI<$&*GClF^e$CT0 z!Pz&H2{M@`LFO=7qqZ=I0!i;_g*Q8Bo)*+MOo(;ti6t!zp>79o!O`>DHxil0XFZYefdM7>Yr9z>0_*mP1rR({YlmO#$->=bL(o{CRCdT1j zVVUE6jceri=+w%Y5=3Y;^Yai))ym`6@ zIi4w2oi0A?ox63d23aC!gjVwwDGOYl)#i{BCN3~Me@{5n& zG%k`qSd(W!02T`*;^!9&n*QOc{=A4Qav1`Ri|%sX8lNfy!(yYA5O3VENxvk|y=GNU zS8yWi>07b-Di~>`^e_PFj`CDn`a;o7=ulm0gJNSY#TD!FGT&FJtG#PeTy$g)d&eRh z5s3>)6ULTm`<@zJ&iW|IMUA=2Njg{p)DEHmz^bhK4D1}kDYaY06Lo03^<%IU92Zrn z&m>)lD4UMqd_H@A3kq|#1iUz`CHXjpCWU$$aNaFXul(Ag3Z;gei#?cdL9ihM6;+@C zTBuGHc3bAh0Fc{*jXpOLq-045(bx(!vA6oWz|D{*Pymu8N{VyGC&fTZhCK>_w0FMr zPyW-EkQrv`fBA4^i21YNrgmfYgViM7vsCHs&$!K+iX3PRl==#4 zO3hU%jD!~L{HgC38Dm9EypS!f70>&)lpcb6{%O_j$+v2Z<3VGT~*D}o1pU)XD0xTF_JRbFvM^K%P0^s(%>1ybM&GG+cWe}*t+q-}Bex`#)b{_ajrPJe1Df#qswC@L%iWys44kZ(grj+t)yqUIv$ z@p3CdrwT`xO}PlGUKMNr(N0r9D*VeY1JbpcUw-5SuoR~LAyrdoNXmPBr?40<7KJM6 zW{1byG0at6mM(5(9er$!$kY(Up0iHH!Q5=v@%HjwZaw~i_^j|q1B3z)vRJ+5=@9Xh z9y>D2bR8eB*fILhfH#<}S>Gj_crpF2K=s2iAtM3+a?44J4J^{ucI1-2_4(1?o$D15 zaW!~x1(z52$))^~eqbhHlv8%=%zMu%_YJAjwnf@w=a!MZ-1nswIB#5@>2kL zI7Aa{yBsMUJO2=5Cg-ar0zZ&S1KG@rsN`r2FI@5~yJj9&4@Q+V$Jb54Z-=t=y?N&L zW~EuM-8sI3lc=rr_3RSolnj?^3fYW|i7~C-V7g`Gpqj*azF^lv%F#JL0p#LENgSb|!1aSZD>9 z8dKBZn)Dm}i``2^!uqD{+i~_cFK3%{Mzu`SyW^18RL}TRINH_Q(8IyB>;gYV2;<3& z7&*P+chrXS*P~+Pd(O$ePd%fSna@#6{TN2OMG zQr)~Jy!R2}gP<%{tGzec_x4l-JKu<*>I62Chi6VYqThM|Nm=wn*a9`Xu=6wY8uFz? zH^GO4U{V`JnobroxXOp|3+`?~JUy)6RL;(Mn8Fv0Sj#FV*cgUcGCR(&JuO77(~eNx zB2r(Gxd+!nE}kdT_iSEINxu|q?Aj&?X)`8jodmsHbu;n9=Y?D&u|@FGmG`4r<9BcT z>t*j-4^~aX{^jK0O))ly&3MTW3bjKfC7SdpLa#~?reWEdnb_}i&#_cGFVRVNid2{| z%G$57l9z>zV6Xt3GL!pHQ%y+e$ux0iNCArMAdj!a(8dL5kb1d#P@z0-A(~g>6_nkv{d;M8 zfM_mIrjz)V$<`s5(#J>|2S^INk$bog+RjhInxhNbd0%C$`<87M;^26hYF@gh&7AT! zW{)U-ZWBTqt-~x6t7o*t8*{>%!DZ;vK615{XB)g%`z}bgORFmV-sbyQlkUJ_HBx`X0X-w1rt&v%H3D;uVey07=#)+6*3t8*>qc5>9WzJZKg# z5vZ>w@&k(64-m`BP>VvcxGB?+<;-%Yz4ZspZ85wUpHjn*1bSD}i|m&Ukef0V69 z{V@KyY_%YiZEZ8mxY;GsX_h7px$E>j!9)$DO1E?x*{ptb9pdC;i`pX={ z*nv2#=f&BwfDK}u6~}RBaO+iqqK zgdWy}THTfdqD9R*6|G)O!_``xnV*@Sl|Gi>ZgCmJ&yLknt^IM0T4VzG^&lV0J;=UH zKy7Jpdt}$gn^O5(H(?C@0j1`E7h}o_dATLb*o-J;Laj^y#L=Q z>o4cSTKe1+iIM`p&XkYPY|3sht ziADQ*{2^a|*8lbVC-UsyF=~IspMAalo09z|5ty1E&sdk zzarQE-S*GE{Gn%m$F%(u$M(h4{*GE>U}ODj{hx8@nOXnY-@nP)KVyE4^XK&+;`XQC zzhc||@V2kVpKbqI_wP1;Z}a#2tPJe`v|(fXSIpaA?f-nPe}AU`%HaMww*Ed`{zgWB z@xuT4l+un{4Oyl89(Z|+)Uu{S)gV%n-i1I$9-wu{H_PK=I9!}v9loozcW!x_DxDo@ z^w@ZCH%=Cd9g!K~$(nlh%EVO2mfCRIi)7pDX_3P|D7k1`mNdm&TXMIqb^0TgdZKX9 zI%3gq6Lvr!`65>XBlcbGqj`L`x6K2(m)(mFzv1-NR`IvuqVCveW$*FxgCp+X*Mx`H z<-KF=Gr^Zs?2ftJ#TN|egq=2=UW2*u$i@Em%>Kziv~VKp;%sz*w(y^bg)N{^ILh`Y^2j9u z*0DDh&ApX;^J*4>j3;3hSBOek4CCL6%Y^FFtYd4~<(0ZsVuIPR<(D6>A&y$%b z73WWY6HKGa7m{U~sPeoJT)B>Cd1%z%@Dp7rkMYMvYOIZrQc5UXu`{qeae2VR1e0%EXFA@7 zj*GpjMG9bU=c99|lIb{s8k2Fp9WH48CEU;gq-_jlPR3JYbS`LI(DLtkWWUwBwu)+f z@GoX!rmYDsTlbqosn}H5o3uCDZ2<&-`gfUYtDl~DUi2RDNRLuTrLvxP{e1oD=}~d@ z15LH^?is3`%;-M^Reqf#|GMrnv$FpU1lj&Zga7@)`+o$2LjMs6QvXS^`*Xqm6Y}_P zB}mWwUo-3&8UL@LAU)l`AmP7+?tjj(`|ED-e=i09b?N(GQjq;$bnt(Zg8$V^{v!oh z*#A|~^xr4(*BSqRD+S#lTr~UZKgYD|R%YgHmJ>XQT@$I7V~jO7cKeo{SF6+gi6Roe zC?IDr&sw5-^WWJa0x&~2}xZalDNeyJpTs#>YItN zc&wm;woA{;Pfzb&?D2HYQ+Csd=X6HIFC|ER1lE@`U`*|+CvmJzOMoQ)Yesp!RkZIe zJwkt|6MFKYBU^ek%+MDX&)*W>z>O8=?ELk)@N+rf`y-jazF?|*tJ}xR0#qjdD}Iq~ zH990T)DwkE&?TAaZ9{Y^?RgKSRADJ0drP=p89J0=&X?guDe1UR3XRUMOG4-2l`1CbMyKBd1S~%aX@zHw6Ats``t%)4godYC2_h}34;hK;crmH#oOtZ<4H@U)K9tA8V1?Zq*v7df zb%G!LdBtC#uwWMsy?O$=XpuhtM+;-`X@ZMx5R
HE|&#QSxBv88IFSc$>%FSzcb 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 diff --git a/xml/target/report-latest.pdf b/xml/target/report-latest.pdf deleted file mode 100644 index 5a1af24e7cdb83417e1f13c6af9230b29ec3cf53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94220 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
ks+cD_fvPl&u__3?$6}j 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

Tfkqs}vEcko5=b_ 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 diff --git a/xml/target/report.fo b/xml/target/report.fo deleted file mode 100644 index dc1ad8c..0000000 --- a/xml/target/report.fo +++ /dev/null @@ -1,132 +0,0 @@ -ConfidentialConfidential/Radically Open Security B.V. - Chamber of Commerce - 60628081/Radically Open Security B.V. - Chamber of Commerce - 60628081 - PENETRATION TEST REPORTforSitting Duck B.V. V 0.1AmsterdamAugust 25th, 2016Document PropertiesClientSitting Duck B.V.TitlePenetration Test ReportTargetsdsfsdadfsdVersion 0.1PentesterFirstName LastNameAuthorROS WriterReviewed byFirstName LastNameApproved byMelanie RiebackVersion controlVersionDateAuthorDescription 0.1August 25th, 2016ROS WriterInitial draftContactFor more information about this Document and its - contents please contact Radically Open Security B.V.NameMelanie RiebackAddressOverdiemerweg 281111 PP DiemenThe NetherlandsPhone+31 6 10 21 32 40Emailinfo@radicallyopensecurity.com - Table of Contents - - - 1  Executive Summary  1.1  Introduction  1.2  Scope of work  1.3  Project objectives  1.4  Timeline  1.5  Results In A Nutshell  1.6  Summary of Findings  1.7  Summary of Recommendations   - 2  Methodology  2.1  Planning  2.2  Risk Classification   - 3  Reconnaissance and Fingerprinting  3.1  Automated Scans   - 4  Pentest Technical Summary  4.1  Findings  4.2  Non-Findings   - 5  Future Work   - 6  Conclusion   - Appendix 1  Testing team   - - - 1   Executive Summary - - 1.1   Introduction - ... - This report contains our findings as well as detailed explanations of exactly - how ROS performed the penetration test. - - - 1.2   Scope of work - The scope of the penetration test was limited to the following target: - dsfsdadfsd - - - 1.3   Project objectives - ... - - - 1.4   Timeline - The Security Audit took place between X and Y, 2016. - - - 1.5   Results In A Nutshell - - - 1.6   Summary of Findings - IDTypeDescriptionThreat level - - - - 1.7   Summary of Recommendations - IDTypeRecommendation - - - - - 2   Methodology - - 2.1   Planning - Our general approach during this penetration test was as follows: - 1. ReconnaissanceWe attempted to gather as much information as possible about the - target. Reconnaissance can take two forms: active and passive. A - passive attack is always the best starting point as this would normally defeat - intrusion detection systems and other forms of protection, etc., afforded to the - network. This would usually involve trying to discover publicly available - information by utilizing a web browser and visiting newsgroups etc. An active form - would be more intrusive and may show up in audit logs and may take the form of a - social engineering type of attack.2. EnumerationWe used varied operating system fingerprinting tools to determine - what hosts are alive on the network and more importantly what services and operating - systems they are running. Research into these services would be carried out to - tailor the test to the discovered services.3. ScanningThrough the use of vulnerability scanners, all discovered hosts would be tested - for vulnerabilities. The result would be analyzed to determine if there any - vulnerabilities that could be exploited to gain access to a target host on a - network.4. Obtaining AccessThrough the use of published exploits or weaknesses found in - applications, operating system and services access would then be attempted. This may - be done surreptitiously or by more brute force methods. - - - 2.2   Risk Classification - Throughout the document, each vulnerability or risk identified has been labeled and - categorized as: - ExtremeExtreme risk of security controls being compromised with the possibility - of catastrophic financial/reputational losses occurring as a result.HighHigh risk of security controls being compromised with the potential for - significant financial/reputational losses occurring as a result.ElevatedElevated risk of security controls being compromised with the potential - for material financial/reputational losses occurring as a result.ModerateModerate risk of security controls being compromised with the potential - for limited financial/reputational losses occurring as a result.LowLow risk of security controls being compromised with measurable negative - impacts as a result. - Please note that this risk rating system was taken from the Penetration Testing Execution - Standard (PTES). For more information, see: - http://www.pentest-standard.org/index.php/Reporting. - - - - 3   Reconnaissance and Fingerprinting - Through automated scans we were able to gain the following information about the - software and infrastructure. Detailed scan output can be found in the sections - below. - - 3.1   Automated Scans - As part of our active reconnaissance we used the following automated - scans: - nmap – http://nmap.org - - - - - 4   Pentest Technical Summary - - 4.1   Findings - We have identified the following issues: - - - - - - - - - 4.2   Non-Findings - In this section we list some of the things that were tried but turned out to - be dead ends. - - - - - 5   Future Work - - - 6   Conclusion - - - Appendix 1   Testing team - Melanie RiebackMelanie Rieback is a former Asst. Prof. of Computer Science from the - VU, who is also the co-founder/CEO of Radically Open Security.FirstName LastNameInfo - - \ No newline at end of file diff --git a/xml/target/report.pdf b/xml/target/report.pdf deleted file mode 100644 index ba2fd25ae52cc7841d91595b36f6e17798d2b74f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105482 zcmb@tby!@@vOYTKAi*sJo8UHBa2?#;-7UBU3GNnxy9R<=g1fuBYY6V{{K$8{z0ba9 zpS$n9&vW@_t*-TURdugb-EUP76bd3@U}gqZB#Ppa(lR7w5EIDG=pzy@FA}4$qp6{@ zog;`^(B9D4!W1MXuK-drb#$_{vjwp*Fw-D0DmdDixEP!MC&*t)UVDfbI-7#1MYvg* znAw>)S=g9anOT@v>6lokn3$+&koftLOl?j6SZ4We4?rMBInW2B*Ncp)t+}%W=)>zX zr9W*kOKay>vy5WauWCh1jqOZK|EO?ses$Rf$t^u2(N#rx0XJlCzrbV`?nLwqGof;PA=_l0Pr=tD+;9Y#jXi2&yW8OZ zB;}dsCNd%mX~#;p|Y%K7t&w%amjt6jKxJ*>M<2Z4^tntpjklxQ3%XFgkTp2s~xts9itwAwhjX=NF566 zV8FcYj~xvq0>Z=gt;v2H?_Xv>RS55rjlmkgZvWQV&v>1c6Ug8ux4C+V6Q3`Pe3HKBJ4AO`u*n)u*#!w)PN1zZEl7Pm69AqmM5*7#V=a}tk?@~Lz zYXqPO*JUeOVBX_+0LhpT^E<-3yB zF*J|_{0cC9(J{EcMKEFDc8UqbxRE1byf2By%!9UsEJhROku-!$#1!;vW5bJzGAqc$ zBM*|`1Z{px%u&l>&n;F2Dr6M$PpeK-e?+>%kQKA~HZn1~3vj0A#?Odg5L3@i8z*A<>st0y_UiUn_4v)0tLP_@XgwFFLuaP9VxDN; z2m(=A@2RmO5z7N5glG-HIkDqnoYM8uZi3{PSD|v<_TPN#gEb_1MR?^2DOxEMCCtd# zY5d6F+q^%b${<}KZ2`p%h?$@{@@mSg3fWR-y zRcBSXRM9C-uF%MF6LF9@E5g(pkO(X5R@C~glIyIp7d%Q+Pu$oce*BSkb>D8hS z(_Yh4({)9zMQc+K%Vf(ytF4cR6PzVy&Zss~Lxjiav0NcL%d>%OBdlbs>K4aSgyZS6 zle6bjgOkOR+__gOY2`;b8O1Ha4}sTtsH%Ok;@MTgJ9(qV!AM7U4-i0)hNmEpPJ-^0Vfm%-PeoCVW&VRz{UKLuBO ziTq*|$^O;_pN~cD11i%fhb>#Hl@PlFho;%2f#V3a@gR%rhZP%-g*WU~9Ma4s%mgeU zBSgb++f5@O;Bj0zT%ic~2m%?*skoFbYttyLNpJud8QeslrHQZ6qis{QUw3a|W0zsO zV&T;nY=mW@Y%yhgQBsxyo~!M>Uer0)S!*cS`84KbYi`?Dw`A-(mHCmxsI8-Q?l~YJ zH=sXf#Bg$=oq6KN>=}GSFOsp1S%#|+k2_b{C+_Xb*@X_xL(lm;JiL7AROyJJT=(9K z+lzNQUmErs9CZ$KzuUg46RB&lRdUsJjrtt$0E6a*mMI?B7g$haUc4hXX0A7@M_Pee zF=uUlEp<&}*S$2>)ctupWE1PR@{!Y;`WVMT-Hhwt*s5L78jVl2PxK4>3jvfC)Uxlk zZxN)gJ;BdQFfSWUa7GZ#f5cz3gYUh)ghBsxbkhaO4)Ts`kpH;v_)*SHXJl7mkQYf5 zA{uf9qR(4HEJgH*Hs3~r0slm}3epzRA<`3(6cNd99=SNVSl`le_50lV;`=0w%Z$`} z^}?q@vASLQjDO|+O4}^JyQg1nu;=aI&*9v-C;cVr9>G9AtC8M%dyCmakxn6wIT6Mj z1`a#n%1MVGy`1#@UL##lZ+*;gjFkzr1KP!&3^MM>lQ&Q%Q1MB9l3mT@P1(#;iaA$l z$5lbjEVwV2{oX2vEW4C-O~Xgo!UvNSlkA`(fsv2+z*6(!f+eJCxGKCVZzw(KNQa#Q z36srKcp>6vQxEIH*tBoA$WJ|%)L)6paTk;v+&2=Lj+sn$1`P}6vO`qoUKee8ep(&6 z6WZC@m9+-W-**P@RmY3Jmw2cjR4{1qwf5SL_|*i~SX%i|S2NHvdNwea>B`5bO{9MN zapirW9f1=r+QY$KZ(X<)x=20GS#NoqUo1-^?M8toT_#N@wPv?%+j^TYqMo4dwHRA% zS~;9!J*GCSwlRCKv|L9-tCUuQwr zRH3G3-^)enO5%&U?B_DGqx{9WCikX_!?XD*wE|UjtsC14gOd@Dw);`|+~9DpWG}7< zVsC9k{-tARL0nBcWOPpaIxb# zma%tpDB!+&_4osM6fa88ME9_9%f85|-8=gi@PULIo(P^NgfOI$kw^C!Ka<0AGyEZ8 zO1-5bvkBM!XtMt?X5&C{&Tdtr{(Z|p)7`Gxec4W(lkM2DrW2l5-B#vgOZY?T4S_f7 z(+}N!5Fh_OANQ$2M*xrU@((Hj)0a!{=H2&qhCP9!A{S&!;(e4}REz?8w{DM;vvDZ} zJpyzuIuFBJ3$AT$k1R|$JZ#T8myc5wY5Ik2^DmRfrYFwxmrv^W6=r%#&5Axw>)->M zm!@P_tPc$*KThZblD&8D-d>&^7evZudBfZUUOfDvn}5^AzlrA`a`_hlW#eN12N`Ak zTc*t@DJ(2x=wxaF`om9^bpHWh`y24emtSeAio3ljh*8$m+0ew$+3=4<*~Q5DFQJC4 z%)by>_CHGgg|YGqxV>_0D^q8Xk*T?*Eg$JgQyVGB(u9vxolTZW)?V1u!cxM+(Nx(( zPQ}>6%9zW9RDd4|iPw$W&Bos5)gH*r#@g12+l`OZ@RdcIa=+gH5i^qVBk?+#m~ktK zi2V(DZSj#>I6K>OGcvlmx-z(aV6byEXJqE$;$mcCVPs(ezaqd+?zYZ`ZeUv{vVUk0 zF?BL_w6u5r!~Xxvn2GT}71_HuTK}cS#F)|4+SJC>*4c@XnSq&+6!gcsp^=@7Gau<6 zRVK#V)`qs`E{5i&{BB?uTPs^TS6g1je--})GP85EF?8lPw70jmG&cNWmC@eB>@VQo zkN$$a&a)~1pPT~B#0h3$Q(7DuW8iZxe@Xi|Hkb91^d5F$6s&t_2Yhhn~eVqhS$bFLBNnYbU3aiszczw#`BBhX_%|bU3#N4;~;wXFCil{uKB^*d+SFC#rIt?t8hm z9Nu}|NrtY3-tOd#5)r?4@H;p4!m60lXgRp9g~ zvqCqf$SdKy)yr`J=QBTHRM%7yPlu$b&>1VA8wPvjgYz9c?jV~3-paNaS{>;_vF;1cbrO*KL%Aqn*eww?^58OelOTd8KO z$$nydIek`#FDa~1S;2uaC*5aD2J?5P`hon&;sXaWCem~X)R zbn5SvJFUls+(bj|lJJ2He+=TV&V5ako5!xuPrTFh$iBVTn0z2To}~8SbIPEz1XuJR zkQW7qT9MBhdY98KSKX!}%Y>~3-;ikBU=ci+_froHBJF$?{eks`@8hR0QVHM3wu(2- zB@!?{z<+fnvT=YDY~Bz4fs*!R%|&(1{UWZ&4W)8AI4cCw|U7|PF$){hIfYE3;|r>P&{4sjf{II*oYG<@H-OXRrFTCJUZOiPD* zkvE;&X_|a{VW)aLn77)eJ}B4ac%^BRcej{imPWAeHS@#8J3-#Kcw`QDcsaeu$oW=F zU1-uXpT+jfgr4J9VYp!V)Y&6v&;Af+nw?XAvN|jTk%+t}@7vMOqqxD05lNm;Uw$}C zgK36Wnrn^ejOV_AlXVFy6LY!tPNm;-u|8Ge#Ib+QqoWvajpze$OgNK*rX@56`V)N# z?Zcq$C6{_j8<}KtwDlS@$9UCbPacD2d^P{Mbh(*m-ntB$@b$C>`#1OA` zH-$~sNMIQS1DuJ3Ri!mLRzA$4Ur-=RWSzl~V#wQf3tn0iEA1`2EHrMPXKNEiewu1~ zBAgeuvdMbR*dp!A;HmR9eXZMiaPrvHR9YhJZt*%xB8OXgX=O0JAc^L;oV#>yDe)Q_ zX;BxL&Rn_rtm_V#9pn!_&75!ys5Iz&QmHh(AHWf?Yfqt_qF&76ygMy#G5H3_AFPn0ZdSZ0?e-<*)K zYAp;LeZzcIM_Ec`dLr!DN)~rhlM?CSeWjFkyYDqjhCW*^I@yR7+xK(?ZSoyZvY_C` z8I-68;tUc3y{Nqacyl`cn(eXrOg*{3hJm{3`)$0zpMB+^)A-2Gne=x zXb#4=v;x7MKzCXsm^MrwK2Y~(;TxhsN}VCyTuq|fNegbB_sMRAF``o=vw`hQ%#`5> z$Qz6V`b2?K|K!oddOWMyXH zJ6a(~Uwf>7o z{mtQ+|3~%E(B_qoN!l>~_sBHljXs(hJO2^2{}_I9>^yypCCmh7zU9F<=w-m5zzrk^a0O~oAz z-T#FEx}_iK9{K-bN4R`wt6pqbnZF0XVoLNIdRPA-4~C-DqjFu+QwO0Vz(V^${=OLS zDQ#B3uZF=!5$K^bVf0Wg^t26{vhjYAqXi;c+b04$ z;VA9zA-?V)9RolXaXYwDdx2nM5~doi6K;@m3dRsdmhiyO-tQgiHDn%wY){2;lVsyx z=?Aal0k|!`wa2SZJf4EV8!v{jgKtSo#@dtPvlp~+TpfH9xxo{AJOhI_PdZoj2&bGu z_1l)u-Vep`DL8fy8m+Vt#>2d$uQcIu;`57}V@D{x#b;4`1*O~MAJGoCPEgdOyatGq zum>*23w?YB3c{mEwBLmXO}*S#v)%5E&GncTjwpa z-#qh&!R%5IgkvaP?D=+OS@(6Jm4+*1kww@`<%S|eBqcpuHni~>c{kr?EC`Pkh}CbL zX{wQ-9I9M?X(C2}*mrbujL;M{3}|nv-Nqf8ob9Am6$N$P$3pZ2lF$BuuCEG~gd7WJ zFN#Uf?s?GV4LaV%23-)tM4;s)j7Ua0=1BWT^^<7Z_rmFtn|^7vgA)TO)h94T?uKvj zAYyg*U>wxa3Z>y2*G6m|d$q#_wS=^!Tn&G;Sr@^b;MRqAuoIfsp$`gE)MhZ-%ICF~ z#}SUY@xq%>$rnP8IjD_w#Jo&H*TX>fCa3|16u4|cOf-;HRmQJxb2>OMZ<4+VUPs1X z<=)1DmiBjG9osQN5k%(Peu?aUa&^2EHikLJjrjFDVM3%wJwqiG1{F#T>U?Zc;aB(i za5&c%@pd3i1euGVl)=xn8QLOF;5(QJ2y{Cb`P58QZK$V|0TJf|;d?qXBYYmNaZo5w z6Qj=NO*87$)j3m{bUR!Ia1*_}E%{M6mlybMdgipWe~BH|HiQRe8zM^Z70e^XhW&mp z&Yl~3+c(#DCRjkwIdT0a>4O>OAgN@pb(#frXAIRY8|;Xmk}xah5jz?vEQE6GT}taL zX|abQdaQf>*KJ6YBH9)ro;!e`boW#b%Q@NaZp+i;-SJyrLTa}7GC8>e<&e^{Ul%8% z;T1R-{y@G7FiGt156GGO>_9@evP8si&kG`BA@<6%v$z0E35uC^=BtuVX#MApRVDBG zp@4!Va6TW)xrDyDn z-=2%|hD^$}1L&w*zA)J{v~Cf=d*y_T#Ap;m(;3CmTE>_l&o^Uc>O9df{3vC!?iOBZ z=(2L$PVp8hR86twdmr^kk=H|>)8EQ#w*-y}mAKlc8P*yK8_3uhJy+rU;M})%7pd!$ z{SIJ`t@8Ln90-TUXzvvP{lXu8hMn zv=#5T)bQMa6Q@A(n^M^R_m_a>th+?nY!2}g;&y)O>9ebTD-)28 z+JBcpT;tF0#_-58{qJAQ0r8} zmoH&aYC!L-AY#$`-fRaV9&WU97(zP{j;AvDG0W}BB)8*=vr_UJgnxL4MOoSX-U|`! z?Ph#yAn?#$M!yr*jI#i|0YyhRofyDtFQ@Ed9}RStsZ_}Kq9sbtpJ@T&63D^qP`5-e z`O#;5ohA9R^3f~x-RmlolnD&MykpRKU#is|aQ{M-3dcDDb3s{|1XpS-$iQnq-R18TVv;3 zx;~H@ZuR}rvR#~?n_o%3^Bogf*sz)ssN3>oG4*z+5qY@A2IM})kht#dFil;gu*($O?eI$h@6`k?KS1R(s!&jG+KN+wB0B@g{gafFS~FRcqO z1hS_?l-KP}G=<;!rxZMEfZdc#5{wfmx<=v_88>EDD6RXvGQ_`8mw2PwzupmLn6f$s zlcS&k=8gUJDQ|^|abk2k%v0k4vY)AWD?4Cr@w`+3?dPj<#3r>zLmGkDdWK7%(WlI)+qx1^027BwL;tgIFaiPvpmAm9HC<8|0v#?7tJECn# zZ}`a)7vk@U@X^F~pF+?)(WtL1$)#^XH9r4_%9xbvaYP%(pNJl#MM;}ao|6s(AuD|a`F&qLh@LTzUgq951^j-N9 z{@@E|g6eiO2HnIH=_3KIY*O5SvI!-sY*Ac-Yew18Y(IT*YHX?I;~axI%Z1>>;JO|3 z`P)7H^2b091g-|1wqtIiwdAs|zWoVtgNz=ON1&lrw<{8#E_S^U#+@${Nb&MlE*)`r zp$!B|ZQm^t-k|g*!+n}F+V(42T&^t%5awIo|BA9w8x}?eUjJQzR&Vna!5DX5f6E)q z?Qrm|+*SMYj^EBn-4eBC$SFj0iKg7bH-Oz@T>(wQTQu;+EF$Y(6@$1i>}*Z{QmL7} z6NZiXeyD;0sSe_nO(}O1ak=^66D7=N5PbQ_V0`Si@>2$bm|9Wo?pRBJa~ehsQwOI3 zsn4T5ct$m*1fAH8nh&QQbHh)7Uw#JMn}VzGoI0!R5P?B#ud!_8*#zAGrh{GgHpBxW z4y_OqvYBXH2K3HldtTh8?@CD0E2Uu~305U8Z1c*xh#M@-e%yc}L$-L>V|i*aVeif~ zJc9BPf0{rIVs>jAhsl3Ag1Q9yMggC{^=X1u?L0XvfBLrOB3&QaIcvE?;^sJHc%vb! z2RBb827ZySp49|my?KKN1n{{1W2DSCm-(Vr!}~e6QfQ&z@gpgI@7$0&p^=Yh&13Ht zaj8R$%kL&nA!?ehHZEoO?Z#^WYjig2zMF@Qe56v(BgD~KzU3KqxYSC8^%}mT{Xd=f zm{c-p%&rQx*7bov4{{mBjLGx%9h{Cd#Pzr(qf zA?6BRt5fkV3PVUIdr}tvD!ou&GKF3!FuE-_+WW*Mec$>$A!=5^8Y4y;wSYFb5-H>0 z)1F=sA7mA=(ddYYosfnAiAMM4z|UICx~83_Ea1(P^%@=7yIBKU?tr{W`n!R{tmZS8 z9u_0*j?m|^%_{XE15);618?rG=1%g3iPDx81$eH(sZt@wj`h!H3o=1KCXC!C;-E#h z;G*x6&r#3M5qK+9;#|e1A`IAGS%d6YUL+DD$e#^&nQCQdq7Th3So_M=Y zCoofM0}=*Y*-+l@;Z)^)<78CdBJOe=V}c%GwsvNm0EwN^C2$8&W&NiElTU(+h9^O| zH&CM&5SMRmk`jYf@3%e*@`4&@FJR?~cQsoQCsm~mJ4_7=QlEB66^Uy9JF*slEMb;-1-Hy232Q}itrtt zqxcqIerY3`FYifk#k1cPRlY|jNhwiRtV%0>08|CX!x=X(@iJYTjAIpvQXd1m=QGgO zV6ukRd_HKOA5u=k;0M&35%r7DP89V}o&ZH8qc3S`>Q1JYWf7fY=XJ6yehH4x&M8nAT@AUTi08s& z+0{CdL-Qn;LAB4^*hr!A6YP3R;@ne_6DrL5eH&>gT)?f^PcYS!og5I<{Kk_UVzJ2dRq!HDw?Pd)Lc79rXZ7P zRnr4D!H#L~(~?dpm-QWa#<%bCSrI;$t0;K4nam=V)iJ(=(e1$7Ly^b;YS~ZZ(AtZB zUto(H)NL$$#9V{HGYT+&-*NJ|{f)fjSfuC_;veAdhyocF=2xac7e#_wVT5Du52^j6 z)c!sY92a}iNg_S(=rVyHIcpAE~PvuHj{4k;k|V-aQ&Xb@v8l8*zvSG zB3t-i&+B<82h-aOMuja^-YqEVKsr_Al^p8G6zF2f+)`Vp!*bS#o{7w;%e%d`(g3JZ zq!~z^7|W2N!A}+1+@W=jkjXh?4~fA5iMQg(l$TVr@cGgO?3GII5ijXTguG&xg@WQV z*vv31S<3dY-IyFpsHGPmv_MF=B~D>`K#aDi=3x0nJ)l&sLJWs8(35&F+yfGh2fCjw zo(6UHi+>v~{4Vqez$jENK*AE@$21iKPj4V33)Kj*g)*JTP=ELsgCx&%1eGZm=1D#n zsYTj}W&IhFXOCjMK(K=XHCL!s3O`}=c4(Eu7NHlcK&JIZdxZzM+Sv&AQ6$2!`14M? zwgTx)@eD`{MS1068>OQWMg?=Oa=OJ~6)?;LF*|!By<(iJY5lt2s-Z=S(|SNEpbE4M z)-KvrDl_3aVe&i8-;5V1{DeGGS6;R^!*H{HBu=Jh#VZ!Bc{{|H-Ir(jx;tmsgORg! zkZ?o${H$t#@q3*xv>LlmUcK(f-DDdz<1mzYw79p&0!)pGUg9PqJXWv9&=TF+Bj>*Y zW%hMoKci_lj%k5-PhphzYHbuNeHVA-YTE|{dcBz}|3KwtpOHC;6|xrsa(iA3m!Y+Y zIq%s|kUcvn zz_D(-HpA)t_UnV|^u0@0e$(X8_^c@-f9m(cVZ7;dt>(VLn93cRfHC(UP;^ca$;5J_x^7jr}en6#VKj z?0!Jp)`Ok1EB;&qelVu!Pc+p{GovlY=$pKb2W3E^$A|UzyOSal%-A2TL(m(3z#ARS zw&e3~tt~}~nt7Nl!d5-_o2orBx#s?@qH^6$#VNff&L_-NgiQ&wo2I{qe^n4IRO%o5 zo&thB7f(Jx+yEWsv)RB;5mUVcR!Wd#za$PE%f1P;B{as;W`HvO0Kc}RB74H7G-|hYXUSa$9!`eS4WDT9HK!4Q-|MlSY zweFVD_LZ;>a|c*|NTXV5zi)y?1&vL#x)~dUZN0u_z)Rn-jH|H+GQg2&2S^do zs1_>Z;Lv=IAuSjsq`qjg$I>xGrj3_m4;djD`FNdl+a7Ih?!jsO$xBl0huba5%L(BB z>Cc9fi)-QNlUKznFq^Td>3qE-AWHqUF&?wDw6sz;d4QD7HkQf9(?%!o@>r3UmUesv z1<(j670IDsY=bWB^lodbujg!`v%VV}9o=2ysYp*xkEV96U;?zGF2+tFv<=}vxJ;H# zR+@Iwo+NT^;`E~Zohx_&**uG}J6~{yDgc9sQ7<_N0AG>Ik1q=gnn`rNjtmS8=hcwG z03aGu8H~Y@h1K}08|Y>I6hYf~$;(icveiVpE^rFah){NCg|Bl5+YXPBWnBBmqyAv} zYn=)QkDRd8D)X_%7coFPbm&q{Z(>V1;3v%uHX%5V?Gl_!31DJ3H#ZMTY<@%nrCnTH z%xZyx@)1v8<+PaCsWtMguQ$D(8s3=x~uOaE#fyNhfk27jyP`P$3lMTO4`S-@I_clOw)7sU1u7)2?1 z_d6WOd-31Cy6w+EO9OpVvyPa;WXd;PA?oTTKY|$LNwzhgIkPHATwcCIqO-eSU&in8 zbNbCV(6Z)7S-dFa4in9^e{{bi+LOBx1BBRxOvG!P zpVRr$!p2R1-+_;bt~_`2@Ca`~G#mKv;PZIS=fh;j^zuA%5h~{Cd6)OO3SiM8F`lfm z<@?O+N|E)(t!Kna0hTQKijqLCm-jPs$go>N>f@&i0!)b8na(V1^$-G0eW z-+!wEa28H(oNvOKQH(B&!m(hfh44%ks7%AeWBDKGBp+ZmyGhLXCnKgUNgQy< z2yTOBlDI;IzL9iG)IQyqnVC@Z8cgL~*ear%4!=WWz@k9GouF}k zXsCUMgStkEH{WdiWgjb$C`!5zxG>W%G(I=OS4N&XZ3`nsGUzu-?Q9JFN6Ke3p}ehFCD>I6I)bkBadUcS!Dx&5?H0s1OG z+kBmAsZGcYoy?h+Rh@4>usL7Kr-4iLOm;=pqtXVOU;RlW)YEr_(_MF_7IWIR#me3PF6%1B6P@9~+xNq%2n*S&+$Sj+hN^Axd>dde=5t{|dN;Re8Rj zGeLSXZ^lNg=)AQDG#a;%R8x=FN5Z1%DriiqweyDZn`%ABY4{k&T5*((L~!Rx6sPPP z)gG>Uo-=bUOlYS9QQwL2wU?Q_lL7^ z=r`4`X z{=)p_rGv|Fk#xgIxW%h#lXuA4pcACUi%c)FM|ctIeU|D_#zi)J5(SQ2asJ$5?F*}i z5^fqn5nc?0dpOP_UH2Zs2TH5X-|~&ED?xORayuzk3q>kj_+(p$wVS}aJW1(th`hzd zuWkA%qN`%x#@#?S9O(oA;N6TooEcSO8CT8DM?v!5FiHfRq^fz9@UlcM%bcrE^!B3Q zh@yoFJ8lOGom3tc5g+T@}H zEq9kE6em$mk`-Ia&fL!zNsI^98|=h#FebC`M+Y#lE_zf(lrLTEMs<0= z^WsUGWtPL0`0;Xxs&`v$wALCHG{^CMLc+K0ez#Px?WM45=%l2EeSoqyL0%k;E}dD| zd}4Pz{#~lXzkyYYep7Dq>&M*#Eg3OVQx&e;%T0&Jb!q!6Xa8Yn)5v^dIzuccDc@)O7xfU+&4p*Om3ZF~m>A ze);t6sQLTDr$#JBvH?Nf1DY{t`gHMOjzxSf>56FebV8cTqJFp4hO(%u#Grfw5`=fE z?mqU*-`2Ku%F2alf0X6(&nqJDwz)G9d{p`{Od(1~Z!kIRzBW%JQ2rOP(9So1cwej>4!w4=VCLN#f(J6b$_` zId&GC;*ZObja2rBQhA>xf_-Sf!z!P&U9#{Fe+o6^F`NF}u18bjbJULQzDhroczE4S z;}0sz=huR-@9rm5#1M!OXkpi?WR4?p?b8nKTD@04M1Ex-a!Oc9xftxbis(S&=AN`@ zPF+#Mtu{C|cQL3;6j&J@_ZOKg)Bi-Pm|6PWXM#4oqX=rpKhzpF?#Nh>(caTZ5RZJC z>8bVf;VUX*4c}OV?u7neuzK5O+u9w@OpDxao1VmGlU&!-1xfWEgL`PP2 zue7Aup4dPHH?FeW)+I&u`U2FY)VM>l%@_u3 zB~f>wCWuyvxE6x0wwv){zBIPBwk(aZk{?6G3O1Z+J}G6$5Xrm8zwX}WDx_~^MHm?r z?ux3dosh**C~P$+rE?byc^8Q&6`u~-LYu2h#1^W{xIg-p&o5W}!n8a+XK2JY=T-_M z95){u8v`o9Di4W}=;`*zcMXG{4DK<_L_s`cAMxLh>1vM)9~`p5@--OzB2&-wSSq*X zepTgRDVTX6E?@H~FNn<2pJtaxBFr94Ixi#B(Fp1G>e~y4Bz>$K0@Yi_e~|g9iUG4r zkkYNIa%P)#)HP#;eRCZCSn>9;u}C4U7H6)F93=37gnyJ<)>5&3|D4Ero8O=5qQ+I* zstccE8vbNK3S`+kbIIX6bS-a%O5s-Wv=MH1gur9=ps zITm?KX0AIv(N2IqS%AiCYO!Ioo{zf7fj=9SyC8Q0> zVTzL5TPg9&>%eY>$#^dtExeyQ$VM&!*Ru4dr8vos;Bm2my2tZyth=ek5Rc9;=TNAEFOJFFF^FgR^*emL%gD7vhx6rQgwS+j#P77K6IP9U>P5MqkZRmr0v=_ zmWTwl?f!%wk~?w3JOwFQ-c&Dg;!r2nw=8GNV0dzw^np<+Se<-1__15Y^cLw4|6q0O>>0EjV++qq&^#>XU+4J~4 zX;lXblR8zVDHpM!EnPwEK|3XJ1k4(Et#ND?=XB&B<7UUl(*lkbS_$>}LC7u*2}m99 z^WbEa=dE?K&|`K0z^r*UwFe- zbhTR)AL3)_b~mz&ajPxz<+-!rh9DdzYWE1ZaBJbU+La$w5*Ng#5yX)bCFSq`5N%S= zmS#p|ahj-}h5_pCTk>~$=H;nMahjAXWBeW-uA_&`Y9qFE-rt9|p`Xq&SZ+tTFsii3 zcocE^bB!hyR~0Hm{dPcBVT`&pxSY@aL1Xn_^QM0pOn2{S9gA+>M!G+12IKH#wUo4$%h zz4Js}K!WVW<4L)@2pk(@!Erm{puJ(|Eu#q|+2DxeXvC-=?KCcG^!;*+V)cDS?PSbn z_tCX;IuSXEv3igdRL$FJ14GWeU27O_-T8$4Ca=MUVWOep8pz=(%Rmt6c-=+5S(Fro zJ852wK#SYsT(>4~$Q|+4?Ls$@v5c_g1G8BIilPf0`DDBM>7yw53iKHcZ9!RnCOsk% zSL3;|chI`%ZqhcG+fZ*j2{&Ygr=`D?uyj%MyK6YO8G^m_l(yrMdG7Nv_OdOOI4qHe z*MZnsDxtVn5_2Gt(scR5s;x&uyl_xK#Ef}wHqBe>-uQsf{}+eZHBS1PDrdbvu12CzWcKflgRXe>aenhJ2 z=RZYdHOh-SRvz4s;v$GG%7dVGRI6)$APTdodHwj{e>4{>x0G_2Um5ITgr0~}2yYbl z&L3jxHrU>VLJvE`2=O%J>MC`2Ln0RV^FtQ#1fR zwG_^&qeBXIsra+$$0yR(iTWWk{LlUXa3u_iLqL_UVQ?!5y4nEe4X>bus~%2hm!;<; z#MRp&Eo8(7-=ZV@ElW27ySb!)mv`i22b5MN`}ISM6ZRn>NIZwYRUCR8Zvy(w8@29{ zk&!}avCF2>v9TOv0R5Y4gBDmcAW1%~lLHLk9TZrDN0=MKIY(do16*D)Ae&~~pE>)1 zbH6wSd;gmP>>tG2urI?HjddRYzh3Xr9tyN^6XW8r2t5H1-E25vmeW;M8hbhz1q_Rh zc9E!F;@s>hXa!`8j`?a%`2`ihHn?o0asLhcXI5CZI4El1>p!~n8(i1S%OYRXz$hS8 z8}PuQQ4{7aH@SYz7g*7L>w5(ap2v0s^tr*&i2~vQ;Q4nP92~-fQ2FqGwLrOl-I~CF z=P6&MPv4GFklUsFaIF*H>kjnGLP3bf{lOnH2@O&Ze0j6s2+S+7J~*fx=&ZK6KcD@M zd);Ij=U^}4v;e!aH*D)T$U5+0(Xfvdq&h71a*t3{`*+2?( zCH~yTAnO#i{11Wc0`*;aIdkn8X^F91aGGXHr$#w>W!M=CLa#dJ$Bph7ZsM(3E0M@q zXdyeB>z2aDMpRO%M_ekFKJU={HR!|x`i8x1I1t*t5IYru_U_~>+r9G>_Q-A>_A`~6 zMaBi07o|r;?wDdTA4H_n1Q(@OAJSaw&;6npn!>k$qVCHVUO0DBNABavh6%B-Z`~S5 z7@b~!o&9H`968d1$Mel)#>pxepX8B%)5b2lg%fmlG=j%d5E%J^@pddR;JPg1`cY3>8ap8YO1dr8AblC}zp^qTkUY!SitNPeUr*etrqq3fc=glXNd?}H(f|7nX`eUg; zZ(#oVz1bO#ibeN!-bkADZ8blG>V8j&JT53$CObHj#7Ll|-bT$sHkYT`N zSiy45f&oMxxXq$O_)|}u*sQ+Kt;GGa3f;ZjXPG>0!mM{Tkx6qL;;o-dzEeDN-TU!H z*^vEQ+y$rwV2>!`voLFMp{TUd$kJytpYmz-?hdc?EOS#kzdC=O&_rBI#r%FPQs1k^MppOT01%F#!m6NM|%Hx$Q!D*g%s(q>*?a0M=_+wAd78g zr*J9NPL>Q@XglKU8jCk|!(tJ`(q!=(++V0AMKtT)aP53|_p6$av12gcux;u>&Ij>f zhKMdZjnw7G;HtF!YUCM+;9ZpbaioPj+{-154B;v6{;Wdt>vz%A0+oM&y;^vXYu3cv zKz>y{?(&1$&$ft@QoWKS@W4zJwM7zC1;T*q_fm)ua(nNODkT&4XhwoExI-chPJdQC z3esn@+V2Z6ZVR@!)BgJhOdcv-1hDnSRI~a!Bkk`n<|)N$2_lnhBi>ZRaQvvX4kCm z;&V6e$CknUw8*VH8*Hu2*UFaO?7IqPvw)hX{KVUDcJsVrsDS+Z8se8ui9A#7m#eJAIRa673?vINSsbOgo3gA8HT-8CnU z1p7}-MWxt+V2O(6*N!U;kugg;T*-xz=jnNv zB^>JFeWE)ioCXP%m^>Wy?UONp4 zvKd$ArE~A$v#SM^#v2dMTg3gegwDgRWIqx$57rA|U5j_$b|_f|ldsNn7n|F|_>wW9 z-L+l7r(e}GuN;p0E0>@0V$G-+4VW6KN)J|{aVE6AlD^WpqxTVyMQ(Y?y!exrOXDI|Xz*{U266RYUi>b+&r@tQ2qU(Af|j~C#5-O)32l|l9- zQ8o#YXbPMeeedN|(H0Ji4a7NQon$98AWVJ7T7A_wXwXIMlVai56-A^j+G`TXCmz$r z?RsRPg*fnOlGX6awv|u6N9@C03K`dQJMHdUHP(5@LZ?Q}gY`*QJN<*8qSsCJB5EiH z6@A)2EsdbfE^qm#0qy}Ur*!H9Nr*fyAglFGT0EQ{#UpyB(E;o3a`VTk6cdNNM0876 z$6Q8iJtbLISu1=YU7X?A?<(c+-my*tVQc{AUXzT8`vN{=;iB8+O2T zDd*v%po63edV>FL8a1hIkU&#c9)&yHk}X3=s>|@O35XP2)0q_>?F)zyMJ2~K+0g`r zzLuFLUsy(O*HVm3M813!xtBj4oc5w&UU&J7t!dYotvqu`D~g-+lM%K3?WGIJ*XkjN zFcz$jDiuL2piwIUq&f+mVX^3nu7ck?g+nUjRDEhKRKYTUiL1(=JC=9o5p8#}>JHcy zS|c*=>QlT>Li_SkFdOxFMe_5JRd)UVaQBvBRd!n&C=Ciy($ZjnbeEJ!H`3kR-3yRT z5$RI8yBnmtySqCi&$HBb$F=vqK0Vj_=Nx{po;734d)#x5G3!}#es3+Bkm%A@esQhC+$iTYT6doNO2|Yj z-tKSQwWsMd%>u|tG!TH#;>mr{|L%W`0uOhi#u zkAqpRoVHj3j$ywNK-D|}Vf2R>@m(?>nI#k{+Sfij)`Gu56rkh7N|hnC_{NvCHP#+< zQp~fSGn~i4l10~yH!t-XaIK$0A&UCHRAB|!Dr`V0b--5?A5!t6end-!g+H%nI!Wj3 z<(7kX4cmiCCG|}Z!g@u=H&4>*Q`bB;4i&hQcrrblqIJ>2Fy)9(7FEJIMMK#&MNy=h zoRpLSf3Hv*_22y(Mfbr=bRfw}^DMZrfd3JUY=v zv8-3LO+;BC1rfw2oUA}mLpY!o71poNURi~o+q!9^U>EnHPt@lF(<1@_M9Blu;?5J< zaLMfuZlt}kRGC34r?A?#x0*;sPe;E4GcpKVCYCkK$K|P<0c0GUoMIy9pnPPl1}d#S zL_{DkVcZ+z5%29w9Ozy{eA^a{gaa<8BP}^0ju)ACUNE4K#Z8CRu1~$%3?d2H!r$s? z@?PdbNyh+->=zsL*>;wsRycPcG4B59Lswu!`xd49wC^D}Ev3b2DP1?BHQQ7Gg^()% z>E2z4uE}|90z!4;;=+M%l)Fw#Hxu?MBKTlD`zDw)FYTie@kJ3IVsnI&q*PTQLPI!h z3c}$+W2Pc_dQz*HkILPb=gMqCZ*Ktq20=*5(jN=tRpR!+OFw4)hIMdy-~kx=5jD9z z{Mz+?n~E)heD=Bz*jhWWyvAtB)yAFh*1m`j#0K@|+Y2M-w2nN-K`*0$_95h8xYs-F z2AL)tD!F?2n%$?wEPhuZrX+sIM09vi7n&|G51T-6QDQ4l158Rf>CR(ucE`VW7&z!* zsCvHS0d32iNR!)Ik6#1r%ynypseS97adj^h)=@g;0~q5r!&V*d*>=0G22{K(WWx+2 z^M>K=BdDg<*J5Xfnnj*F3-Bw6iHTcJmP+5rERr=K^O#V2XlQce!qy)=u7Xk`fOAZ= z$93t(0PS<#t@e)kQ;b3`4vc!4onRVdSL?PqHtEheLEuD;Ye|+KIiS*>g=TwOB z?z)A2{`H)9n#vMeCOtF6ZtD!*uud8U%VeqATZ2Tut-pKMh|Kfx7bS)+y58TJUy?MxRF75_nPM7~1vSD~#Syj%XTcJHX)LESgD} z#+M*Q3pc+#s?vcoQX8dkP0Z|NAk?E4@S;N#^L$`>iG6){7*@U=S086S84oZxibD8W zW)@6LQw))r2rJ>w%Y=QD1?`=qm3(lcnl(~kEs()8XJ1b2u8U`>w>mOEx-=0?O0v`-e4R9AXm_5@Eb_F|GYEg|n_Ol)I10e!X!n zc0>@IJkv67?&AVgA{zKQta%5`Wrtu()dw3t!z$F|F@8?S5HseW(84a(3q4}>v~R-p z=OkOo8p={+JM_A(+NP;rDq!b$+dTngcrom5-Ti%eKr{S0>^#WSVFKAxaKgOE*1zQpUD>ZjvU0?JDjFX-R3ay zC35R@Ulgt6XzMC*XT+;ui!upZuWpZGEh;|SgR?uvNbrnTxGk1yK+SqsLmZW%W}9Ot zczg&OK6ItJ)zsyp4ex>vEUi6FnbYSd&C{ZMYdpF@bHC!GLb3qWq3VY{1na5nv}}Op z?Uh#McX_=n%<9(?htPEJY(J=At*U-Zc`)kETD_-nwQc^BJll&gIl^37N7f#=FEo77 zDF_nI_FudE;xjF7umL(CD@SJ*&7y^CHX4H2NPb>wJ*FT2G zz@V{@$KrXwPqJ(l_OXT6yKyB;yefpP2lYL-)S%N3Acm(-4HLNFv20G!*mHd%?i}hU zmO(|VJ0LW8mG|}*P6!cMBYA{}wux-nh(j4wb&?};=n#6^1HOjeB`K>zivp4R9^P<# z;&SGOhkOd}n3*(3exXNW$hGtcnt_Y_x*iJGc&E1AiL1Dxp`)QR(gT>ApPrMI?vtb5 ze!ZYL3iHW%pTVVUWIY4yACC^F^5FLnHXD&Sln=wQ7 z_Y!(jMD?Zj>bTF|lDZqmzFl|WtJ3wNXntS9#Y|T*>13$o|B-hjm7u@$DPR2~4;=J{ z`|bACAbZqs6VAXhqM%6Ch-yc+lF5v*Z!(|G{7xD=29`9rD$f=vT)EGUYzt%uB!DA~ ztmAhrc)`2NTw9VdqxPE6^t;T((IFO-H&b{-@w5@nlek&ip6oSS%LC_2hYD%N`~^c~ z^iZJ}QQwbseFyLekeTE+&q$PeiW~}~btrwN6?|&Ruu<;i%_>kdo90e4h~QmRl#}z{ zkadvE&Z$tdZ;Zc#iP>9;yr^dk<9_~vfm%x5=ncssP7`6gWKoxVOMt7-5c_wrd*Rc;y5ifpPaNTxf$X}TXRHz zfj#*Uw9vnUF3Gx~K>0`(^9=s3sk9=cHg(Jd*pIdhF3U}<@6SQrwhd_*Nhm*gA3|Mlq?g}lg;lXn8MgSF^;NGEdFU*5mCnhn=j-ik2TN%W0U zZ6*v|vec%I-6=oWFDob3IbsyR5@3s$u;^~hdFS#DF+r5~TZV!i%(I0({Wwaitzlpi z2on=7i!AyYzjjOD$+4=Yqf%spWMQbu3Qp{*2`RNSPC)PCfF}KTNJ~YXasn01o2O?y zu+&D7^AvKXLW#Z}-ORkEdz5_Zgd&Gr$(6r5;w0&7#-#kR`usX_FaS2DzC9B zk*HHChZD|I0b5SYWg20q=ukYKvpZ(~8iF-3!ChTJJ@O(IMv}wayg%_Wwmg|CmZQ>7 z?6aHQm_<5NI;{Ik*!Teaq1)%lO|6fLb7WJNc3j>WB#qEe5cvo_vi<0o*|)VTnlJ(7 zc?(Rm$3~#;cD*OZ%4&f1Z-idM3}FiVogt%AEpyr8JiRDAK7+V#)`8OcnJ2n(zN@F$ z7KuSGB&(c*8~SXH)9#HLB36`CxM5%DJUDmR9SJhqdwz^gPsPGNFmtLWkUdCx`V!R* zWdjzmZMlB}zdv!OSmEqrg|4Z?XTs&d$?(U}YzZrtQj$5;RZ?WsM#qfnD?;t%s zd^;(}SyCv^68j_VFSE9S;VX!3N`al6^@Z&eI_6s+EV~aK)Ds(sV?{lR5#o2GH0uXq zc&?}Esk&D~GKpMM{CXzM`=i2$xq}?eGOsf#J_=Ja6SXX%hQ6Fd(eARF#|}-x zT{;otrz{88khyak80t*kX}o60!RQ?Yms0oT*;)HQGg8&9C z5jy6M3?=>rg?(ceZuc5ND=B6&gT?LS=yv%7Qr#x9Bg*?8ODSt_c(V7()+6N=e|#gjxBK+Acuh=*-Qwr1fRE7R&?On zv8I_+Z4&}fw?5i!wcF5xsgUF~zPAPk+5#(JU{P(~ZOsBpLq5u|qEr}zVBWPx3 z+95ICFit5?%WESkIG@Q zW^n`(+dmV>hDyd8!hSa~67Kh`zm;b-eBX_{)De3e>Tc{NIk*OM0NCs%N9Q^npk1G~ zFA8KI+-+qCW zeJo@ROqn){`_i`OL(&Gh5o^PD4baw_S8JtE!=03|Nl#5(U^e1S3A2S3c(L_7`Oe$E z`8d#bTF(#O*HP4)Lv7*9Dd^NjPUenMYH)K6Z*Z&h-Tis~mm5 z{`de_=`>x?zv1E~|AL2KevE`nnE81U>>z=IdE_3!3kU74K{R+ron8zDbQS5CpnEmK zh(yoVbobjCZY`lGQTV(F$eui}*$JOwIL1;hxwZq?=p-INKl(9l5VsSk3;tutU) zgQm`gee*(ag^N`qSNt)0c%T|AN7A{=s%~CeL;DHIA)=`ll|I!)s87o$wveg)C`w&L zM8oKDej*2GYSi>LyP|H4eAr;~#L4g1wGS7VUc!pGY;=LrVO zqo~kfb8^;8-^vnRT>`I4MER^L!rb8-d4>BnU|K67V%-1>Kpafibg>b*??h{QV?Ss$ z)P-aX#l1>}ZPlrXeQa7iH7TOPW7IP2*Q(ZRlY=QF3TIpF3^@_tEfD$c*|L#eLoE|W zpALCfD^6dz&q~yZzWj9b`TBO-K|>+wkT-Fu@3fi1DZHb8Ns$lMHxd$%&y+{b30v>< zv5&Erq{!MKCmhHNO8|tL|Mk5x!AK1r9OCnl8$`Gp<5VC!0;;!s6eXV{gA?JPW4^7l zT@eypuu)4SqFf#^=NHtT$czb{B78`eg&-GlLuLr5a^e76Vf>(e+1EY%DHxiKb9zC* zG&Cqt9~uNfjo{tKpZ98D*kf8az29j9olk%m&B#kCMg-FE`MM3ajFqq#%{pf<%yD6u zA@vv7ACbHL?QWFt?!ALN53dIgyQd?B@mO}}3!m+vvR|0)ZxNHiM0q0&L8S<)hJ3FN zSLwy`-fDH&K(v)&3?bWg@v|!klEMedK`tlmnp>qH^Ob^7?jRGvid-|eQXjFGdXH-# zjO#;88i7#W{6(ST5nf$#N{SR=W#Vh5DTR`CbBMUq3}8#AV338M~2lo3i}1B=LN&=oY8R!cbP@&Qm1 zhAK=az?wlx#qHgW|3Ot6$I4^elS!{yUPSznJJ>z!EsbSL9Bf#Vot={EzUJQT8S7hM zlnnfgp~DM{E!~WUIKlX$eve-m1NhZJ{yQRO4qxdk5jEm@Bfa@8u%g>RC72OvWS^aaU0njkH_dM#q;iaMhTXK@;PGgxC zP<*B>!mEa6uOV=G5qYVB&27^p_$u+Pg9w#W>_$2Y2!MWG^&ZSG!xrAetHxeVp=hFy z4Irr@sEOZosWPin6Cp>BD7%IVoq#~Fz*?n4-y0H(?~<>+2Lx33hcgsd$K zaRNxxU+VA8${l)O5#^2V0^Vjgw{mIlVvWTB+31-~G`xVI3Lg+Ck$s&zSo$p;0(hGO zLRHYT1urcSP^ALiEyD(m3IYh*0D90omUI{U0D&*A?#(V9)$h|=Mu)AO{pq_};J47M=Tr9>!cG{ znD}i*`4AzjBJ6QwVGva#-ARh;BVZ?B%OOC-k}i+G7QIzI3>>wvfXF3Qv9hrlX<&ee z^+92(G`SH0Tj{-0`|!`<$Tt6tz2Dq$F%n;+-;$TR~@}*d}Y&yIo zIs9=UjUEGX5%g~D$(tlKgji~}ujVc>o@RQ-Hwy!Z15OY2P2cccot%+8nOw)bhJOTe z7n5&?xyhjZp-}K)T;vqT5FQ2s(+dkC!kdwAiQSvWVsOAkq9f%6-U%i-{8{Lf5Cj&q z3Is1Hlk}z&Vd)eXEU~S`C}gKmnUt6RCHWJ*74$DpC38tOdyDg8P6;x2MO#+*C)0x?uI(PWwGaWw zuR4{vNuNnxB);b*qIs$&cS5o{c=*8)g6a{VD1Z5`w@@;yqoiH z8B*Ok*?Qq1fURt!7T`xqmpwr2miHcQbwk6x1}^YLo$bw==OoqD)ms`*!CC+NU-a4o zv`E78uEkqU`hT=Z!iJg!;Jkm*%;(S=_yUKvZUOV(5WcDulJRh!m z$*{5{dl6^Nu_kBbZ!zoW7#=~8x|=dUN%{gsx@H2E07mKyoh{rX(R@`n3Gc@&Khz7G z(nJ&+i?wNFrK!+Z?z)@9!iTy2n}gmAPUi2t_GeLf*u5k}Tkzge5#LIo1G7rE;6UY zp$(cd(HI{b+%iX6h;qzTs&Hjxoz1Cj1eO9bHf`E-2BV&lRDP3qlg^YSo{SEY`h3vv z%6sema2EMPX2;(7u9|2Zp_@q8L2>yRVJ|jPQDiRC33ExBtecjxF|S*~vH>npe(pXV zPW#JxsQ8r|W@bXm<;O5-`4F#Vn&B|Q%Pb%ncxQ#nL&$dx2<>0gR!<`^gibBV@~4zg zdw<`1j+_4qHqM<8s|EJ0kK{vZItKMi1%pt&?Lx+{5}=NOxTpgZg%uqx5%cnqHVva2 zzDt1-Jfxlvu%^`CxO1>x=@-IAsj(%#G!OciY3&5RuExFEuc#njX0ErFMk?3vLgS$G z*=VWc+mjNblz?Juf}I_gaply>yn=@Qm<$Akiw|?&YKY8DyQQOAjFqA-h%QAc>%%$= zL)pb^TVuwP?^_2VSz7KgdP?BHJSItX6`-t>dlNquQV?i@oa|C@KBm*KA_J15-NB`HEc0Yf7`v3j&>*)V+5b$3I*!}Z_zJGWYh98IX{okHtUwzhM z6*z$OQgI77fK&qg5e6)JC(TgRSIBGWGviqc8MDV`n%6h$(&@sYLRd*`VP*2zh5Ph} z@$81e$Z@os!&aAv&<(iMvGkSSugY)G*S;EaPAKCp&PmmOFR$~QbGOA%C(}E<5~Aeq zjeew^Pp`)6&Did0YW_05GixKpk{!Fj6?fo!OM~iVqvN6Dfjv*x)!T^S-Q_yXgiay{ z|IYdF(~a0@Ykh_IHtlCuLvSSXz3yoKB6m@|HC3w-k|)cK*W8tZ?lC%Mi!lU-=44c5 z{c>bm>UESid?)NNuiDZx9ui|u#GCx_c@FP0HHsxK$AUe%GahHt5d^V{vp(D|+{z$D zq(}KlB(K1u%aIVJ)UV}y=Uu#gP(yqk?mO_jey{b26Q$kV;{L2)z5lXK)5G4_)AsXS z-D!q2^(Pw-%6LkFl$f1_7k=2V|xk%USXC>avD@xsRRqPmsHaUZkDk~}Z7H(_&- zv`2PRQPhhO8zWx6e;xj4V9P>b&+SOw^n?@}v$z-&?`o6hgC4FDYuSr}t&Mg+A?hbm zz7`rCOi6e&yBe9PQESIl1Qcnvh0eF8lO>g()1>EIzv#7Y$!xv1L%qo5r2a5X(D$iW zzjlx^lD7-?mE48K6r)AiUU6Rown_B!CyHkTdR5G2g>YU)QeJTdve7 z|2el8!W!k&GLESWEk2DepRKp7`UXn8* z#-cbN481rY&lQ}5bm@4De1Zug^vRph1{QX+4p%sAb0bTl2Y5XlqtvDrWQx(%QJTtSMbuevFLkukvwk|cr z+)PW~m>7W{V+%>sDwA}JDQsnbzAu4Aj|HR6kBA&A@zzatERSj`X{9dq4oJSCZ+CH4 zTtkf}>h?9EusR`^8_Qnkz<5B+bh1Th+(a`G%LfqVh2nCmx($rd65EN&`VW1Bdd6Qw z#xzLwY5%$I=h34nY|v$%e?ao?l-wLggOkM|kt~5(rIJv1hi#T#5nto-u*u zgz{^5+Vwn_)(BtL+?0qha4R=A`RcMETRqVbImpf5~Q{0(-R^`ns*8!^{qQNZfYl%n6#EV%JsBj#*>QkDyuvE zF%IA3FQCJ}p`Y$0>8aE#a-_u!x-Upo(d|gdka2Flb+*$uP}b-FBm_Eaz!Zgc-4${W${siT^a=hMjxcq5g0`tJ;9OJ2p5ha5}y)P8tkQ+Zcg)JdP+%B z-n6snE}VQC)HrU@9Wb@Gge^2<`Vay`bH4DE`mx;XaaE}H5_Ju|{JLVcY_5rz=$PUf(UG>6c*%4~qWmBb$#?Qg5F=?tVO+S3bs|HpQ+VwSg z3}`i|y2(&ugp=2NYfRVG3^8TuZWY#)YZYz8Bekm!;ubH_#Hz&5mGk3=_w%QXp5DCG z-#WhNXPlA2Dw#rhv+(j_V@jP#AGZ0IGpl)h;t~2He>7xs_3|ZTqa>px-K!f8DF~Kg zLBk@LJxq?9jd&64`EY;O8NRnd#Z6KtPA~e3VEyh$rwi2eK2Jb8*FO{t5bzyo|x{->oueq)Z3@w{QJ%-apt3=-8nAR7G{F&D#}us zQqLD>nu}|S_eb@*4U-;qn8o_99?Cz>={h;|^Q>|nd3Sq;?UG}+E*=tmYT{{A_&!IE zRX8JtXx*IhebeEFk|bKvbhFFd(LvK?;G@;Us0q)k!Ld<~ur`an;T44!w8PbhJr(&i z#Dg^uT@)e&FI>MZ(m5k~)R`S6?7$U`(BcA{mOM8Ye07qDmQTy8-sV&h`kp<0cAJYL zBg~TWYD}}*)0R`m%JtYcL9-$uRdI1cWx6hR!Sl%{UKEoW`VUP8lb0B;H+;U0q?EnA z>fS7~XO6SJ33?>{T-@SCw{Z^0+w}uqH++#nt*$%_e3mSarFh`Pd<$@lWR5lP3*sI9z>LYF;HYj#3{-M%a5n^Yk16G0*h_2HK`y^mtm7FoN7;-@bx8 z>Ze)d>^2YZI&QI$|2cI2F<=BA+`_=j%m|MD@%%4Wy8-8+{QqF=3?3@~>*3D~|2+Kp zud6utEG#VT9{=+MXK`Z-)5n1Bx^~2>#LO%-EbI)#tPD&vOw6pr^vtX@EWm)Am63&p ziHVt59k>AxNCh5z(}BP6TiWOWch3Dw2p=)S&$FXxg@IG1AA^r`{)_B?o|5x>P#BqM zSQ!6_g&8?-CI%Y1-=*c}wB|o) z`D;%1yHEgH*cbsCeqjOA!bk^H(cgjPpL5ASp@juF1Dyp-3jl?M6@Wqqw3^?gQ08A)z_c*Xv;I9;{^=(Eh!!>g!Ve>2reR{G2cR+1F#IMhK)VMU z@_*6-Hm*OUg@uWgnB^CiA4Wva{`X+{Q-l8LTUc0FXxPBC&@=sLEi9~TG;F_1%gxKGYydRC1^+HBKdxi> zFRkTYS5AJD7G_4Ewfw>YriG3UXf1yO7N$Qn=wGxjvi)?qtbnVfV+5c9F8DWTVfuMF z!hf_Dra$czf!4wdSR~6YEI(-hTF>8s6go80gMP}$aH`U{!Ln#!FKy!Xkq@-P7&;K z8JK|!Q+{IkK?^(3dj1Y9e`?UbXknxKHOgh9p=V(NpaCxUcWL<_qg>`c?G(X=%fL#^ z{0qwu-@?xR_h9)`gZ@Pe&_RPoxeS02(bECYfDZb1T`th>|9fls(@qhfg&q*b{0qwu z-vSuX--6{&4f+=?%)sdO$8ZjyhmjtD2DsqgZ7u&}l*{s`og%ok0Noe!FD&5J0*s^n z9xQ)q(7$M5Wc}%K0pnq2XC!830$lKK(!%mTM!771+9?9GFtP!@cwgZ@Pe z9otWr3oIyrC-ckl<7nq3u@wkPR4Ji8;7BDRgU|;h$U}61JgZ@bi6VNIC zTv%YDVFd2Ay?!|LE{p|Fn~30LldF>@O_Lz+8&~c(>ti!Sb&T;@1s#Y(Ivz|Mv?7Ne#VW z^z!iJkm43Wko};mXbRO&ZxYg&r*leT*#%jUJ>s;z&}qAl^N+DTcz0*$Ny$; zOT#+qFGGPbt$M#&wc2U%@Q`vQ722s_dULGlaeqOydcG>uqiT`$pxZR#d3$5o^l&%( za6Cx%z&1eS`EdFDb;DL=x`wT_W0p8<;DZ!rs&}2KIU$AZ;@wj z(R0ePNwa9*Gi>r~G3DX=!`<=a!}+YH=fj2NAyHPQIm-EU`gQvtQAtNZWdn2Q?ZX67 zcxBRs<7J!1f~LpF(8EpDLk>^Vy3)7%BF{t5<71TDqKAvsrrA#1EG>3>p()W2mKSgY zd-gV^l3{+gcbcAMX^W?x_dqdM1!fL5w-u}5$1~F>cPq{p*t_`WhMpu-LTVbfcaZbp zSs%~O4=e8Z=lD4uU{$Vz&4VcbEn zHG_Lj6YhVqe%M%IUDiZF{HFE%NwF)b-m@rVgsD`U$FGps1`77%KgobV>WMh8ObBEB znJmxVCl5|Nvzo!>wi`M>KH-757#HW*QXz?`lC~eB=1(>6d{m@dZ1}En^$i(UTFXI@ zLSw@`5vbHxtJC$x)yJ>%5z678pAuSfvAW7mbLu$>>dwfH#k^>~p_$mHa`-591-CtQ zLAJ#XWm%UFAFjSy)>3AIGNkk=S@5VX+6{d!^vX{lnb=; zWNdF99frhLrQ=fRIVqUV@@tO3IvJMR&NBP>LN#$yTeK(F-k>cf4fjM#sv9{Z?ORtT zO&6BUucH<}YfFAaeXy6G>^dVlWKXllpW-^NQ;A4`;-E0NTKq1E#!la{!#G&}=9Xnc z&+wefY*^jy%d$*&gql!*WFNPjyCc5oV1gUH^mSR>+EhNKruByObHNn3!`>0hiv zDPFre4V}+Yo;R%PJH(R5 zicea+8;r`PwDZ^y()Wi{s0jBaiVs7nQT92Lp4Kt9=D5S&NY2hfdTEs;xMziTScGb| zEPQEK`XH8KHBn$fAH7^kqVz4sj5O~F%`@+JZp-2-pjMyC0Lw`eDg!4|m^$Wiyw{xd z%v394EFa~snjd2wO_%i`Lt5y=AYNUEiGJX75w3%^y7){3nM@vh^|fEOqD9}QK!-*3 zWSYL&HYyiD@+=A2Nmr>krUL7=)i^5EQZP%Xu_+XkJ||Ur`83V~PK~*Ia0v|bxfZ16 zgid~Qufeg#5LIPc4YyK#me3g*@)ffEV(x?vMVoRTRAYLDlCM}CkaUR3fb})ZOr@%@ z@i8ISmV?r*f#%lxK(pW_k3K;AVm)$|7^Qr-i}xpRg0 zCvRd+wY^CJ;wA=^{64yrgJ_Km^IL@9!0j8(@{RWU0q-#_?Y(}|Rstj$>4=qxM$Mkh z2`z!kIsn8JDkBx{>LRI@1dN0MdSe|Le{96Y$(oJdEGuvi-YhD(gO)rWCT-NAU)P?* zgVGP4!Ff$5U1fP{sCq-6GC6VY+#Ie)qFI@GB5XDIQl$&KoL)f-id>~jsOm!3v(o)R z{w6-a#izn$s%btQVH--2(lT?^!y~3lRU=Gsf~GO+BstRY^fKke;a6%kd(?~h#zEOd zi-pBcPVuVewXma7bM~csCkCzyTzB~mK_6>IYpo}1ZZ$SDjmy13kNX)MfQQS*@$ z%zu|6`mVINgDFp*b2OctAhowEA%h`o(%YPjpywu!pR={1=h;LV@?OBcwW&$qqtPv< z0G^K@t8avI8{@Mg1X=%tspZP&AoA7E;qnmE3|t^xMTi_|8msyhAp+|!&FDO&OVukv z(8-pQj=aZdVbfok;a+*Xr>fxbz$OAc_Yi1yZVxZOKT4H?jR<;;>@>8A&Pz&61xXH# z!An^TYQyB-i6E;#Z3W~I(;SmQWAISsvn|sLw1?LY;3kh%e+x$tX7tcoJrAkqO(d%iC8GrrM_+w}3?j1sf>_U3x+3I@3D1?MA4r5-{4E?w`ZgPJe#!TB5YayW zBtnygeMh+2EjkYafUz~`smEeGAZH6{&_s1b2#)GUxih|%=g*)9)Q?v$#ZoSh#jd(Q z&)o!?zhIUW+G=CZypTsE!c@QqoMa~;Mk|mA&5F`v%-3RXfDKTM^3&s^@?)QF!$+^hp_02&9AD6hpos zTYpN9Io~_X3o9+qyER83>k8EqUEb+P>NXROC81J;>oJD>gQHZj*a~eV;WCyGNc%GB z=`i40sjPR-Sy(!BFl?r=8QMr)V3GaNe&fiHVO6|`LmVO8=7U&<`Z&-%`AB3Sb?x9C zDNY!+et5)lPw5W00(+i|Uk$drnK zaFS;4hB^R|_2_~{Kc+`|Y*ntWk`E_ti}xGaCvR7&C+fu7a3WahUYju^WnD)EQ9rq1 zf<8n-yf^@g{h*B30jl3;36*EF^;fIX=`Ggv&-2qNSx|r00b(-+GE&=>S=x!5kyX^O z`~X-8Xc7+)^s0;n2@-2}9(Y6mbLBkYN1r+{LkA@ge10%P2lq`GkiY;)7&0)&fufqK z0}BHlp?C71ylt)-1d@CJC*cCZrFmw@!?E_jvI4-e^ue;+D=UboXZ|f4?+nlEY?ZPl z5KRmgP_F#U59H=nS!L;Y1>jok1w?~vGE>aRGIc^{_OqnNY8=EF}BBQM@_Nx>E09@kq{-s2q?EtC_)`8SL#ECtRjxrnjv?nX`AH zioK4^OX6`nPq!(R;rDfyQ5v9swO-k5i@1l!-o}PVy z7)i?14o;Vb zl?C|-q+(ykhYkUUL6Ly?x=QxagaNEn*->>>b)*P6z9x&KRC5C9eUdT#2!sHv$nn#e zT^-(t!~@_1ggR_9kE+Xl;Z%^N>Q<^RG7Ubwx09|T8*G-J8g?LD&0qD{dIeOke!?M87AfXG$ zOeLIQsL=yJ!un>?1Nl;ge`e<|yNMY-ZEc;n?8lil5PF)1P~^9sS0#_r)hQu%RS_yH1>e z=!kOTktKI)l~~hH?G@v`Ag$x6&(OXvnWsb@2V;;TA(d5MTp(MGTdBm>#klO-lkjfv ztN0lg1w&$mXEXu_b2DR^$4zkxTWDs#S=RKSL&3M&`Mx3nio#aG?U#KT>{eXcSVTUbB?hp`{4 zrmBvRT^EuM{+g&d{v*3^C6^gEU#^2V5DcS~UNuWKQB{khRpmFKGqa<^yAX+`3;rC9 z?yeYr2jMzrQ7O<=S&M^O_4UU%Myo|*OoysX|7~%^VYxFX{(5tpOhtDMp#6UfQDW>w^qy_44C%PO*j7}B>>nKSj1k-6+c4|hR99}B2 z-L;)iMIEjiRQc{lb_m2P};)BHU&K+}8YMsj=?sRaxh+JWDQ;zVR*)&Wh*sFFKB1_>SVN0~VxpCLuo zBNPD%L1%VA?Lu5=|H9@?jk+t}*#kBUrJOrFw z`Dga{H9K{_S;m2VJ`qx&2^FoGh^rl?vJktwb7nlf?<1rT0YCD`i4+&wccG zDnE#`pwd&*&63t zH!+nyw@v6x{)MyEbN^GKn*zb{zAeHs^$Zs(Xje+629#?Z{+rI;&Pa;k&;AJE{)~%D z=T21kNZ&BwqHS;eMO#RVSq-KUkL57fy+Ljad(v=ghOHiBjCCYwaL_wYe?_;t5H27Z zEba4xdd9j@y@W+OIIO2`nWG0}rrr9A+7Ltu&I*-FdFZ$M3VLsQqc9CgdVL;<;Vom+ zj*2Er%{j5C4rAc`?AT@>1vw7on^&F~q6k&&0u-ocLl59eZ3WANz+4C&v4K(IQfeqq zgruy01_*kE_0n!qhUxbG{CqZ*A!z47P@f$dxRnTq%ATc2vhmJ?(}zfi0hBUrDls$Q ztyCgW-)4bhQnfo&tbGF60|74NYy0CgKw|rZe?ivl&{esm|9g)|GF1vLP#Ckg<&&lb&`+0=AV zQ(;o;I_QX1Zdm~Gq$~Fd(-5TLhSYU&w0!(bk)EYg{@@3zi2%%j$og^{vmd1O>^$&) z<`tM#Y2Pbw1;e^!0b+PDSHSVPs6cc0AqJ=qj^huPVo?xg2Y77|p94`QWnj97`@t2@ zaJ>902nUWScoDz^72osC9{~9N1-F?l4v;|m*;`ODBv5N`Fo;WG$rie+^3S=|fGGEq zWjr4U+`1=|GAtVJR=|xxe|DY;C>ot8lOBN$oD3*}@)+C}}0uOFSBX}a_(^_?vuW}zvX_FK8k zO5OC+YH}47e#zxi#f#ODcypt2>tWrbvDdi4qru^Rkr@MgBzUwFJ!}|3USkq@o^tEx zkEsiPx65=fC^3n58^p{D_S#6nA{?HqW9Z!e1nP*{A6nD>i1BRk{mEigX_wVGtuzcy z>*>d)P^nQ;$k3`l(bKSZ7)JHA*hVuYSD;Xoc_M9pqQ&T-Do!Z8#msqn+@cOx3&)U- zPGjI-4ESG_aR_h6YqD4o>P)gS5*$)4J(R~IJR)ay`#o>*KH22QVv z%b@LlWCx;}*{Q>EBP@D#SsEq584bNu2^opSdv)Q~jGg;HEY#s>(u3e9HXxmJ<~lvp z3^(v(1tf+`pFN2UEdnq?*gP}S$az{!Nc$?Plp_(1KBRe&TN z0KD$$Uxi5*VFO(Jko*cP***oxg76Q?VAYgT9l@&o5SjIYDI=8IL3r>>_mX#ZLQTrb58(15LibvplIKcS7=3n#i{!_XCnhhXl2+ZAyGnfuz zu(DuCQSM-6|3S8cDq-3&WuOBP4ST8If#_V->(c>vU;0zhE0 zDQ6JnaIL_T2(ItufXW;|3(y)~06!j0FEpO4feD%cxZ-68<|K+=ZxzG8y_UI`xR#Th z9!;`MUMi|Ni95Xit}g2)VXoR|eQ7eU>8bW5%k2B@UDmWsoi0mGX4Jd$vW<=ACiGrz ztGl&z2FZn+L4Wcx_5E7Se%0rn?@q64Hj@-55*i!p8y{BhDr|4xJg5rQE(m!(T%Dfd z*eT5D1DEyfY2IHvQ_UJUd*mUdurFuW1Iobig>>E#$Cb_+z<^|ka7?0rUKxvH;C1jN zOE%<9;E;pq;$5)ML=pxk=CIF1i14}{iYq%<41++mQh?-EKr%7-VP-6jG?f6HfDK6SO3qLeVp~w%u;)i6 zh&LtvfM9z-uoXTy4IPlC3;eLbA;)yf1uoSZ3^@~ktepasn)t6pK?Fxw{99QCjPF)Q z*#Q{=;A9Md4qZ23AmTu(5#S+JGKm7JhaO0P08YRKJQ#r?y8z)o$VdfJ0yg|tf?qm` zLezDD(}OkmfsO@`%r*dKqSihWutk8o#D6bn0l?4wL#2Pq6tD?~GtVK%(g-ezYN770 zqQF?P!C2hDV8Imw#`2TCA4=QpicepGRm%QHNhg1)M70E#6YxuEuuh^7!CPSVwkLoZ z{K4-YIMxa*Zz)NH4-oWObszarJJ>Y>N(=7_@w< zxx2gRq2GGDXg?>1Y=(PejV@mM3U^U7V)bQjnbtb>O|f1JAuo@y;q~!_++lc5dF$b% z=X|z&*3gaK0$Gz?cVd0)qL9g6%Bd&O&euy5(!7oUzH>Bv&-?VPy~2h!aD5rc3v5ycr^wc8?}I}yeaa#ND^oFf9t{1M4} z=D)#0RT}ImUkF>GeSTzO^N9%s-T1=V>%%RyAQ`s6E5wO0MX4Pw;cSIs^%E}Pwdr11 zbTLhH!E80@hV%3xAAzWe-N-GzuXA^5IH}%zmRnGPws|T~g)`s-$!jK`kNOBCy-~** z4u%tw!xsKfklmRa1Llp2s2~0+lny$#6=TZ_*;RI{__e#@*q9U7`1RTN`kWm zng}*STWsNU>b&t}4A%(Yo(V*<_uN}gG>Fj*{IP|nBvz<3h=&cru?4d~3?>!K1JGJ}#N&I~!{oP=RWlCuOwKr%?q zNkIk~f|8V+L6D>b$%JEl<56K?+DNK)i!ZooX#!eyf9;TV=|q@) zlu@qYc32r*yFy}Hdk1?f=S|Ghktvc@s!eu+>RRnqMs0_A^(SVQ=*WCUd?Uin55m-D zJCVh>(ii!=FW`+AjS7tYh}}5bH?PddWD!C~YmvzvBxLr3pJH?55D61obl~Hec=He6 z|1ds2K`Q2(t=^85qG?vh>5JJ#i47OCn(4?Y7a8_XR0ol=eOi@dnshwx0}5%FwhZ$aDL*GM~MGXEe=0v~3Q&5p9-U!4dGZZQ%6jwKs5K-^u{5 zr_s$rUOy%9Q68Sa$^iRjs?S5fG7mVFy}W8eBjBll^VEY$@bh()Xn6dXwh9a(T;_^{zkcP;r`Z#V@>llG)1RHY*&h+aQIE<=8fGoqE^hC~AxQ57l6gP)J?p z`^iq6*p8R!O;l;%j|BVn&k%aNJmgVC$2r4V*<}+{)=X`68-f#CxC2 z6=8%LZA7Gj1;G1IS9q7dlz*ZaY#Fv}4JhRM{FXo~7$CC6FcKcJMHs#kggWv2y%&R7 zu`E{uNCamK?TaXo>P;kfzxmXO!6v=Z%z0x##;~So+On`alx|zL#RKH{9$^A!%Swf^c(Z>Uaio`95Tp;}Vb_ z`D1x=cpviVca?IeQrM5~_~h4uP>wkuWhgciiKaMO@IGt5xk?|X;eJZ;8$l@hO;ZsC zmU(kIP`nh%XrO85gF158>k`5~4n`X`19P{i&fh`SVU9iV{y>v+b-ghm?A2g2Fw`L9 z#KMJZ{K$&!-pw=W*Id{hom2?Dd|)7{fcwVFK%X!2&`G~RbxW$(wK~9(3@hd1jhT2- z=K>Z%?7nnw1$kD^keq12HZO$m<|FEFP0(5*3_UnIP!QWv@HFpyKa?sRyme z!*c0Fv&Xdzh8z3?e76JAT;dX@N?QLsZv8%R!eTdxl4a<8BopF0@_SnL2q)|felT%~ zc=mPU)pnBC-ry2#a8sj=fgp48Evd%!5r1x3>yUc&#M_OUYn#!KOojFaeN7kat^#`x zzWX7L#X>d)D_5kXNw$<2XZT*#jPRvY4hJPWA&h#p#F#p%Ih+UOv+iABuZyEiv(Y_1UK-7l?}BYbbZ>fikgL zU|$#zwZTlj6{_MWc<{B7-}21I9xO9>*Qbrf`gd}28Tz^Dcua$2s{%PZt~}6sr;#;V z%*d?4hbnj0qQ|34r24Gk4U48iMm750Y2QI-28p{2(j;(gYW`;pZXm%s!x;-6SS#5tf!3s}+MWoox^?w85_0g&m!2h4L>qITbr{!& zX){Oaq)>JxzI&1eFMox zZ9r2j8EoBA2Z~D_SvW32#ib`+zHl-1`h9Bc`)lgC3e=KKoqO>`W&!jCt<%#xmL`+Z@oHThsROU+yl?-_7Le&gOdR9GFrUf=tiOs?>gkDkK}+Y>d1B?KMwcv=NOZ&$rK~kIt-oj zdXQCU3D1!`GVVm*omU@$O@KM`AQ9}#o@EI)!CxaCP_LNQOa!~CwG-)6YbRk!z&#ka zc(W|q>JlZS^r;zPT%!8caI=k7QV8dV2B1?5&ccgg0jNvOuR4@I^-r|Luq7JJ6n~BC z2Eb@dj9`t*wGUGQH!nXV2JFe61q<8n7xZmKR^0u`59P)2K-sEc&_TI8(tv*=8GhYK z2+6?lKvs;qQvBp!1cZdj3^9aA~6xEP0?eYAUK%R6-!l|UxhJtUXU`($*VmvMF z;)HlsBchm~>4Fh+cmbM*IZsrC8=)?!I%jGPpHQW&!u6Z4sfil1QYZP7P@{iaqdapE zlOuP%w1{dTzm#YWQp`0RFj{LsJrG`M>5vH4soALDY$8xFtceNILu%>Fd-UTWJghgz zO|0S6B;V3AW`+|>6;ghH*iB~KpM%XNB#sTJA=VC!dEKBcvvG;MZd6>w2sbO$f8deT zj6&2A@by;U@D#42TUlA%gXD3fGbur8Z4&f4o2C3fmO0W5S|OAt?sblGzziC2;6m&s z2XQQdIh-aDLhk^V>Q}H~^&dSQOUdNbNsbblfKJwWM%7Y&+`==N>A441qO6HY*GDK% z-b3r3;S&o4`lUtWl{#BTBXtK2YCk>=L!a~_d7RKaRh4>eepPiLv&PwxFhD3z`57C3 z+5;lV>qcs6$T`$Df9gSp*OP+oI#C$ty4uWO6si38EYFc>td9e$zQS|sgMfVNsFarh zI6L9Xg25;%?&C=52kL>uQcD|ha1Wm8SE%$p)VjpPSWvzP?FAgjYPvpLkKJTx+}IjE zeaJSqE}=pPR(Qtg0IveFB3S}pRNuq`WTTG*mgnfn=^$Uko%3YR!6p&>rY6Jk=1`w3 z3}bR4LieMT{2#%ml&9^{i!FUDw>GKC$>oT3EPfUG-w5z*c(X5 zaOsX!FX+9=Om_;{i6Hrc2e_gCSD8+2eY`OA&2Xt}f}yy?;2Jg%ldFl11ppbH z$S7f4@rct0YKVTxlo2e)Q-70L?Wx>!{ZB&KIEDBkbkl&|wq$WNUUpKXjR%0y#u@q3 zx*L5H01u1sv(#1sS-gQ8OjNcNT8ve?nP)!-QF{unBg2nI{MpDlHAdX$zT1zEsEgx-?xPiAm^1gM?S^9MUD+PC zqQpgNG>-8|vqI7j&YLk+$^tGO0IxgcM~tnS0+Jhs(1}RxPv-72XXJzfB>mu>MVG-X zUc5c;o&D}ay8SmKkAjlo9lUKX6^xSug~ZcZ#&}+@eiueuAMGui8xmLSYLu5}R$iFZ zhy1xz2nrk$72{@3BKbXqD5DQ8hVV|#K)+P-5{H8->eR`V6}=@e2X!7rhD?6vBq}1T zD4aWFg@-UnO4#~#*;+uU$E%pM)B$dH<0U9vCq-YS9`yN@D5 zs!jzNvwl2L6`0NN{FFq7abL3LVx)l>!*|a{PRd;W*BB}J1uGs6LauMZAeJ{XMD1GJ?h$2eBkXM za{^FT)CeZ#u%5MC!HkeW)l5RV5DI6^W! zxM;H$!0bu6Tu1=V4nAOJiZ-jo#NZlE9mNMy@Cn`DhmeqJZZO8iWFiQ|)m2|k&iny6 z=}*pDr3GG$$;me$3_DjnIXPoO@>`Ev%>LXZt*C*?%b8E#CDo!7#KEL>;Dus;C`AI% zvEl&HDTm%#os0mCDzyP4)4L$j<90X(hQl2|OBxB-+{VFdv*g#3`!X2~a_1oGHP8XnTf+lL1N4T)hyKcXRlWT8vDK`}$Z7#Mc%6?|_uKh2+= ze-zv}CN%eB=<<(9dTq0FsJG_YS`qI7;_HdoWIa(k&kP4n;q*SE@NtTvfSn`{2)k{Pad_VpC^4orib-c0fVp^@S; zs)*w7oc<1U(pkIwB0xYsh;Qeh8|mm;zAMNt|B|nH01lckyO%ZhB^BQq0&%Ev2D6xDidKyiXG6jA^KPvzWC?J(1aK1I4 zv>_SU55@zYzzr4##siT#Qjz9c)6;07;uui7a*&)Y3bG4|yRhf& zZOymaLDa3MEO%kWitUz^_!#;@e9c7d$j?V*KZ@Eq0(lurcc!lt7vhqtlUNLLmiclx7iTm(t`oAufY0%9V8sNRB<})oks=cmOJKV zM~puaJkPibOUe6Tsf!O@wd4P|tI98r^Q@V>9i;!|tobgql?Mpn?UOKjVAF@naWXLJ_88J`f3ZQvUSAfGUeeq+-WXa{POM3niblSA4fJ! z^pIV}5eL#7h$6;5(f3r@uf*o^pMS`mfLU{PHV7KsRIn4k`>L~?Y@U;=i^=W;S%gIRpiPQNCPU2Twmsg)#u6&4sr<-f% z0_t6O3o~oYUu(14T~{lvz{VBT-Q3JXekW&otGIRi@};c2l3^AJ%$*Tkru-#Uc(>4{ z@p^ARTdzJJiW`+hFFQOYd+GPWf;CyfcE_g25OrfX<+-5RmERG9kYj)%r5C2P{fmPM;OVih5sT2eHx@C z^G!-o$mxCPjwo`^piBkq?A?_UjGg;Ho_(B$SSlpzIID5WpB8D!Jd@G{Tjjqt{Gugu zrASwR_7}S=S2b**Z!{2k6Z+OS+X0{#|Id~KsH!L(tP(07Xf zXSdixxy?9k zwG~}9HU8zCh2}(f_j4XNI4IT0^wDl2;pAk~$2eZuvSD2TH{iL7#$dts+N;p@mEV-y z1Dih4rxz_(A{z5^*GskZ1lQ;72Mm|(=JCNTpRY$AZMg_5(Ub7*1RqmwLyfY|)dH?_ zTWmjlYsrZ%jGdrgE36f#pZ%qL_$+3w^R|TjpQFs_%r#ktwbgIp41MQ&KF`ZFt?s*i zZwcDlgKgV2Uc5`js@IsFmNBF*+%(H@ZvEcNFO}*=-$d?E@Ape;aJO5)SaGY#h8TM| zas-PEp**mPfd}aBNx)ULB9R70Em#R zzg#QmoigFY17$t`9^&fUNp!TZj?RaxO(i3UScDr1yn zScueFzkXWf@vH`*(WxZde5W8O*nGVW6y@r)FnaMzPG0@Gbwuc<6QKC2qe2KIQcsZmIi^>FbvhK-l`5&Z%)olX}i{s_X*5k1){0 zNc{q!eCQ(PEDxRV8~odnJBWv24A`u*Ftr*?d)^`2I79noTa$5!4zG4JS`?C<5&X^f z4w-e7cm5sdvY9{H0cSGNxiI+Tz8Mgq=Os;|2B;!y@AE%;YePD2s+4;?flsxXt;0b_ zTa#$t+e&@%?_dod^mC?@LMW%uStxY;)WISF8~y{xs34L3MIQ2B-p``*hI|ZEq&=R5 z`Ca?w-+>KZ+!zVo7;RjlU1X~%xN-64aoK;W4I13!=nTjaM82Q~@E5jNGl$OeiR_I# zgJwV`#HVhC{>C1WP&%EcfsAX|Mn{r(arFdtC~$D`^!m}+=jotIWMFS+Z`fqN%YpOe zW_ED>=#<;G3-ANClyN3L6=NvG{5^JMt)uowEqeZr*uBj5YNxUN1N$$m(({yp&4$~V z6h0>!Q{Pg}CS|Xecq`gUX7dlhK~1t-1-%>hYBuXaZ;iyRn=Y@q@8K%f7t;qd2*`uP zY@&2<$D#F)GBHUe`^>3`fH${dO8|=LIN%}tF{^b5M<)}(OiSH{i(I_gJTog~$tiry zKc4=a1;*GnnnzgC{^`7%fmQ111@8FRCGA5pM4F+^AQqOL2upa_s}7H8yxAbLiQ--O z*c(2mX}U@*p^Kb~$!=d>9AH_mL5~x(TVGWzO8()ni`hxvW-xaUmRvO=8809YWcLAn zBxA&v%fUB%z}bi=lb;u}6J5FrHKTQjH%mA?P9dvF@yqV(e8r0U;TfhXCgrRWm+~r; z8|f;L>|*|gWt*Hw_fuoiR?qFq z(?})<4ilxfjZnZA@j9?CPvD6PS)&=hS=KiUsuMMdGN#L%M;_(@?G>qQv-9{BR0GST zY`sE_D)o)}fh&UP^2{#MRfL-u6fhzIbf5y`do>!bNh zs3MbrP!D!IsE~3=t@-D6BpY+9{^$0PM&Z&~zXb|d3ODt1t?6dn>Y>lkvsE4RbTPtF`?K5K#h4! zgtjIl8>KErj5*&;ri!MYz~7KrD63FuuaJo4F(Koc^}pAe*R>8ELM}2gOCMY%?C?Pu@Y*GYM$!FPYuK38L9Kh4Lp4J8cIG9`G z-Z09a8>G(h07|XL1IKE~wdONY^XXG7r75#s^{sJ@)su%_Dk@aq+PoFCEs!H8J!gpg zzJa=n8PKgRZYa9`Z*a~|iW8s{}>sB4LVOE}`nY+3?(Up4Kc_&vaD<^9{Vz@cbr93%e(*;YEH5H|}W ztF`yr1f*Rx1s`(VqQL5lVcK=!NL3P}90PR+)*wvfVf&#;{pxTK0kvl7B!2W+L$Rl0 zkrq(85-F~s%5J(ADy{(y=$F32^&6ppwMO`c@i>fBc?~LkVRoQ1E1-fHmx#>Ro|5L< zU$Q0s)Gw{450$~lvnLWM)vrI@${FQ6yS4k82WU+FsaTpa3V=Wz;}qp{?W4d8J#2a@ zUhBo9u{!u>BgJ;yKb7PRt0$|x^qu&j=HlT9g{v~a@cpy*4F=8Q9weimWJSvWPqGlP>!p(OT{#R3+%_Mr1{gjE;a1}vEo~RN zug4VDcrq{#M{$HnUH`snHk7&aE2RARvOQuaG@wbX_}99SPJ~r}*@Lw&r(UMpKm8}; zP$W?pbkw|Kp&~jjtpZGbtbXyyck$;v%;1H~nSNL$&3bRFXfG*gC3zXOM~m6IBI#{U z43|r(akp(OSjpMjD*N=?;M2bHU1*kO59U07rf+4Mf}9EMDv0zP_2)AAkWP7u2ZN}Q zSKfH~7wGZ*6QNX~81>wn2?Ty@$&|i+b{~7V-9F|Pg{x+vI5wQwTgi9J@mA5h8dsM?Q@t~i8ENg4ZDe<|8F!fE zq$#|`vD?~Bi7^zZXI_)S<)&U83cTx!r*P1;5y#GJHv$^gr(Y9dhj0rxM#d}gkYZT4 zCIXeQ2P>pni9K|Ya+tK8Ni$zCqGO}7X)${iStCLUxOS8=$>ybMJyJy(8M&Xjfr_G% zX)#*M2zQikK^eyBv_O#BuBKmPnI34#yoPer|Y9jb21&KIjo^IsS z!gxqXRr^#028Jhp987MuFqrlp1I2|H_Hw&4F@_U=EG)#&f6jmigpBe;_fD&HOZd1s z@E%azYIX&xMozRqQS6@5EzcvbSX?0)t_)Y8Y-CLfRGX-7hh)8+t(C>XTwJ7#2>CeP z4wjo~bg2~s3RT9mm|K0Ho2Y?$PKg+1QDUuRd-k3M|0^KufJM@u1?sfafgpE%Wog!pW4iBjb%Rj*uG*~oId_mt!&1wQzCM#Bw^ zGMzQ4mdxZttbJEt0~b(8+_nP3brt{>0WUKu2`>Q_kKPS6bY5Upu$<3oMZu?hjqggu z@v02HJNk3x|$SJG8w07@FT{32I1`Xcty7ZrczsPT>Hw~YB`tm~S`T4jRMHiB5 zi547AR>Q)F)?TZbc-C{pfkp6`-Y;qREw2VV zko%H^DEy8I20J<>04N~;#%&$~D|nK7U)L>xR(g$g>riA|O>wPw?{9)4RQ09kn-CP6 zTOYNt99-GN^D_WeqdYh~dJuxD(AV)aW`qGX4+IM-7@)YGunt94H00F*I_>h*$v6V? zJMS;LaG~;x#erRzzy~uau7G~eQ?(u7mk)THGUtbg16xE50Crtd+US_-?N+x{@u4|% zH3&CAH-`ux#@z*~E8Kzcb|Gtw=S9h0gvA+q8<^2c)qdO{&PELb4*WS)awY}8G1xA{ zw}QtpTz3%zk5!N78P@M3gwFP2|1d&_CHRQ+8L^f#>q%t25eeH;L%-c^;PH^_E-(~2 z&OK;K-i2gRxLR24L)rr$$^DrIL+nO&iscYSMt97BHm;jCP}G~P(4ezAn0z``)0imm zAp-*4<3#Ivu^fDyQL++d)`iSpB4K({%8s_O56v&Z1Vfx|kg%!uW78n8kL_R3HlGyH zP1${+u0@#Cq}E-s`!CT`Z4Z6GSMmSwbpz<13Gja!0^6YYSb~X{{orI4?P9&RaNufa|c9gT;d7i>Q6&t0sy$^nZ+D@t4e`I&T6DkSKAN!7DWJ4Hm7 zgeQZqBCr71;vs~Gol7dBRW1RQE@YK(ujA=ETEE~z2q8RVQc@pig7(A)=TTB;U){Ko znj!*kn?-v8OiPv+*b#`k1Q=#iNaSA`D3$vJk@On)FPr612nO4*S;sc^?A&XOcVmVb{Ls4lQ~6-#C~i*zBaAoH#hb%I%kA6i2XDBL!#xJpU=gIT?4tl+c6 zIH;MvbZ~VcIq^O7&e_@Z_z%xf_1_lm86k?AbZNYR@4=-@o=pH3z-78j4+q+_UR-Kz z5%q!ObV=y&oC^6p$=)v>;g!ealcIBl=$E2Zb>HtViSz|$^#_16xcbZK+z%W|Oy4p2 z3r=5dcm8pTo&Iy3D_$mj{YdhXer1Jp?C|v4>E@yG$_X%KaDGM?0Y4=XcGr)YGQU`Q zL;R@4-?t^;&pA=~-Gd{F@}hmFhhOcx55tziEXPIvo#||g(-4` zU9O4g%6R7s^tr2YegSzd9ED2QV zcP1m}A+K8}W+kvPAYK#6H|Kv2VDyk^Jvyj#BP1SOE4>FEr+qv>9$p3CkG^Q#W ze-7Dbe8x;8uhTbbu%q$TN)Jlw36m)|A=S^4&Mj^->AE)sio8Zo!^mLfl|PVAzAp;Y zQ!&bK2&p?||J;pVwi}5`qRwtpUXB&8F7MxZ3QXzcO5dj?@^CB{nLVfE0p9rH_g@i! zB~ZHRlF4^zH`vutX!^LV6s1Q|@(RjFg3HYjVPW-p*P7IcRm%b6(FaeA~)reL@ASTK#-bp5s3 zc+yN;7}zUW$eaIuSQTKUf3BrVF_mF6X28U>U$eVoiN>7n0^+Ql!1k`@e;l?CI~FeV z*K`|p9_W2QHBe(Z(~AvOS$`c^#s3&SNlc(wE`p2F3Th)#C$-47l!?g2!vca*yMuN; zg9TV95;@yH2jR`UYDnROPUZ|csiWPyNa2$|1B;5>4-1c3e`W({%Px+x0I%I;<~G#g zLAkuRY!*%UH$>?^HKg*jI=}gKjD{lEagj&bW?S|-KWjyPZl9skpwcdLY`vd}?KWC- z`!d2*6~Ir}ZH+Dkg39}lZF=?zUfA2j%_o)$%e4Y{ozqs{i4 znawb;>k$4mhmjThjISIJWf+OA#mn_gT6?zuFx&`HDGT%)H#aS7I8mrLz7c6ns@G2H z>jkVRTd7J$!|jxrV<4$7gifR_fQRe^;kZ{lkAstp;!2KfBEvHduJlPi7r4%i*XVta zs&HK^kzSI%GcMcG>t0?iI+Am;rK{=F^5?Totle+%`6b8C;R!B*P1gf~fraCeF^rWbIGMf6!j*qI#F4W z>~Hzfz~O)O9dnv{pHgLu81C))pA#Os)BqZ;#c9u$ov5;T3^Qsi!s^HUXK}$jVzW>8 zQCi8I{Zo8UlP>_mUpUh2ge51oeq_<}*4KdYxoLDG5#|O@>T~qjq$#>{6`XLG%Quie zV)mCH($?O61+c{?cqq!BkYVEx$B3Lob4`-2BWS#-Xjz~Z9F~+At0NINpqsAiaUa`+4 zE?8CEKy!*uUdTk5 z8V4S)`Biy}QJ%e1Vo-!oxu)n4==N^D|Kv+j=_Q|wenF_C$UzJsh5e@Vm4fMLU22clYd;&ypwuLpsA)!_-IohpK11YB$pcNVyUOz<9#Eq`CF5e)K zj|QNf5n4QlmVs*zMDlFHB+7gMlwN~Gz|$~+m>re=TSunoB)l@kN1#I$o2@xSf&O|p z?A<;jf-15ciM~f;_mqiL~!s^S>+369hmzKsFq;L)f`o9MHBFzrV zl^hn7BQiqg*z++Oeq+=*-cO!w!N@t;4*@sP^+U(5YLcbRPS*OZ2=R#*#%u)O%!!&>;Fj8F3#<3s*nvdQ9*fb`!7_jKA!1=u>6$D%+}gk;F-1k@7^4NU|zCbjtEdme2EwKA0dT#5{q$vF+X?I%x9a&YD%LpK0y zg^tW{ZUa7^N!8Cl$TXdb?SnKQ)jqiXb?Z}uF}!3Vfq(L#VY^XBl^ zK=3cm9YBtLBmB$fdc$e1gMY&(4jld(0K|D{6`{WdLVux!{uO`M>SR@NXgl1mS`J9qWH*aRlhx{|^y`0g_67fUp0*Bi`&L@qgr_ zkdPRUIKSZkMEn;ln*UzZg23Ja!T@Xh|M2l&5JvuchyZsh55K_wWW&6n|NlRVnqM5? z*93Ud|GSR>Y3x5o<{w0oH^1KhJ(1+dL$z2MQNrd6!ygRD;u9=3%n#mMm`yllSrJ)< zc`Djg1Wd_SmpWv^IYL!q4eEF9hFV4~s%3V8+b8;OS1X^Ma0Dxsz)^O-CqAbrk7_aA zfWd8og5~|aX8~e=o*4vb`}v;!)Hm7=)8TJt+s?`36Ua+wd`M59Tq~>k9y1^(VIO-A zuX%Ujf>@?gHJ)>D-zM;KYXA4a!r?QYPu{E&5cLlkzal%^5zl1069iUSCG=Eme{zz? ztqApeXraIA0ltQUd=EM^68ebW{HHnKmNzcw&n*lpKBy7F)@YTdgYMWzSDftlRk3_1 z!`s1{oZK%M`4aMz5c_vtAKW*>GEuYCK7U?5#_h&k_|RWM^<`rjL&zoE&PqJGNEui2 z)x5_;8Da!mkomHh^7{qD%BZN1cf5G;DD_kaTteRBhowREG?+5Iapa@Hxnh_G0-xj$ zyJ-W(_jfp)slUrVdL8pN)ZaPAxh{|KNu-6Ps6u5R%QYkET}St)WBiV?P8Z!L7hdjdX9SG&1;9t9|y)t-}|1n z{7!$SF*3(8D$KS#q~8B(v)aEU$`$(Pa4z@9!=<{@C63@d{RLfE=jSrZXa_c`syNrr zox}a)p6SO^)(O9T8$PH^d1XH=?ZWCYGcr)?zr*9YtsTlWjb8%wuYpK z(ElC~CVoGh5Mi~W7zrYA1xq<11uc?a33>^U8{bbs*}z#L?+5PS+RmE3=zfdUYObbS znp?Cb(#y`m?=cywbF4xpLDb@za5i>PR=>f$k}?f$S-tykfVCqN_cAHxExv+%yb^p* z-+QjtbyDCAEG6j~|cBpPZ#Al0fkApA3sW zw8HL@==YC$>!9V2w8BK9>JV!RWzUD@;<_QkC8&S*ZuT*wpq*uz8 z?{O--sr%N^`K*lFlg!Dv@d&s(aQCZfyLxk9qoTC#F?S8V;o73!Q-&! zlSgN8&qv4#Od8469#;eC@a)5L4ShD3ob9$dHW|A3irOqMjTzd17uS^H7C`ZU&OldEv$gFBqg#WX)DZI^SY;feS=Gk=7~G`%S;ZGqq2uz*1c zrQt1ex1f~7s3$S;IFX`lI7BW@;x0@RM8OVB?BA&IY583xf4GhQZgt1vpssiuZz&}T z3KSEiovu&oCP{VE`k}xfoK9o4W1Vb>GcJ~#^YOynk|*NjCMTb;>`$9rms*x5aeQp$mZMZu>lnqca8oZ} zKfA+R!p0TnS!Vz0G)4~RUB^h*;$xfQUmps;PNmx28_zcH-m)Cp)z9eenH}NyN3S3Cn=uE>z!)E+BbiM>bqT{EJ#1!L2{;_xJUEsmT%XC=9Ed$p)_kzH11t+E4dq{Ve57yF79K zI(b~YW;Z(=U|n{*?(4e;&KNFDw{!(;ZMTnCh$eCxG3qfF_&3hXzP{8zFGK zBNNK1gGP&`;-U>(Q z((hD;{B+mVFqyc!3-o{+QR}juXN6*Sg6g03>cosU39mHYmYNe-ahAze4UA}-9u(~u z6V7LqIt+@?{n7f#I#aefYxFT=2YWdv{TIoIdt{JwxsOKCpmmspq^U9|=fPC*YN39} zh5pDCo-JE0$y3*JYX33M9ZMFY;@?jYm#c~-s{?oH5P=(PfkfjXluF#!5snTn4!@n0 z{J#y(zD=m*JH>Q6jlcCP7E_)NS}%0<8gupKbaK9XW)p4p1W|8g$(fUj^NZCC@8;^A ziSOS(RQN;QgoUn@Jha&<2@#{f*dXq|$nw8KWg?F|nCbDdpAc;FQq@RlQuG91k__t^ zHKflsUbHKBbD*Q%mayE^W*_t&-15^P)aHzd7YuWH!Y1getvUNbhbpi#0K!i6*HU{6wK~Vb;DKQUa+K==aD} z6AX*w?#*R`wmUB7U`k}8P^xk0(lU~Z_1L4(zo{i`Y0%}VCqnhcAf7aISV za{Xh1bhDuO-%pU*4b@$y_z0UW4A)5XV9c8YY`8*B5|3-2V0f|l*^dz`NM%{_gW*TpLR&UZ%(BT&N!DZN1zUmv)U!5P!zyB$xB>xaFOJ+)P@nY>1R zueu>q{;5z2#{4KqzC#2QgOg_?b3;Gmp$%(ae~0 z!)Dp&I=t{}#~XH8ADzIw?E3$sqrwM67S*6%Np}uDMqQ1!KccSjT*=()( z50Tedfede>k|Ww3tG-mi+lwwjkL|FiYGNFv=L%W>gec6&y#EN(IOPdmF?ARwzx7F{ zN4Kbwex(1S^l(2%wPy0GJxi_-gA&v4epSblX*acbYiO@rW^19M+Tbzab{@!Oy!3EIOhH7k)!8>h z+b;>*u?T+O_x*$2eC!5H$lFMynk7I0&#iZ z4qjbq^ZBh7HMKGQG&A`s{z9q9sph>jGs!g8uj5pIJx6ml`60UJBLn$onYY;Kj0%T% zC+E2Qcl4ue=_!9{)9mJjPm9b&sm(_Z5+|RpWH%JqaE9PAtJy&< zIb26uz`A(~X`Lg!e5Yg7FGF)}&zHmn3{<7@Az#Ph7SsVPKKc7@s!dfy>1_p{lTsH- zH&XSJr`yTNB9l2cn7#ekAWz=8J$MhLmii2}gZ0eje0*-j9-71aP{sM`=i86gDdzGe-P7bhZtB2}7(lV=e}7ZoHc^X( z)quktXz#SYKjM*ngVaM-Q@ztf`mcLK3x`3co9gwsdYvbk=XVjt z5NjkPL|m2hUI1#Kd+B0zX|4q;P9_lZmg$i9gSpki%Osh?d?KD|?qD9^J@V75Zwu!^ zr><%m6__4IY`r8h4C=~lN=W{bKfIUhxmtGSaqp>LKC0WCBbHrV4;Pe)y*$!=_d0!k zESMo!b@_wQyaAUof$c)H%1m@eAZN=~{?Wd?V&@U|ge-?%A5&S;=VxWlID;Q?u)3_j zb4cs?!Dnu?Bv8#+aQKVdJq>&>)#6k!!ipvIw?X?-;RrNAQ^U%)6B+Q(=Wfg(q0~oh zBVJ3wGAF4h*#mi!4{r?M$#t1}uc#5H%!1N(_pFCp3}us7Ov0@v;W2d86fpx)S{}No z1;vq-0-BDS%l6sY-Kr&}o8}t_hxr?YDE=c~gB6L}apIpIllO5_%3C}2vuNGD^-`EO zaAxqj>O-zoX6~Wn*tKqIS?n{7^I%`wVga+HYtO(k%@?$KMtWFjva0XyiU~fznPYmr zUFYt*Nt5&J@f$azZ?PxeUkWJvRJtqcY7Xj2+YNX4%wod)#Xfc&7aXL-8(FloE*@j8u9gel1IvopDR*zbdG}_HL~Z50NYBrc+|QnG zBGM8`zr(x~4#*bQtPEEpug}RA)nBaK7G-7?HlRpjTM1w4aM*cahMXZOdD)1enRKd46$;-`h;93;iJw7$bs`f;!9u8*hu+d+$HDQ}}Z=fDgBm+(iRl6!;_B$o<- zry>KC3&Z(CnRZ&9#P}&?TK_H)(W$ry5vtUn& zDCT-MBz2WJ8SXLk*nRS+@uc`;(H61YSK5xF;pGKp2QoV*ip!cbEWukBOtGkmG`l*{ zlq7qxUV}fn{94^6GHo>Eg?ec)JaZ0)wuj_ncmL=Q8QhJkJ{hF9o>EjG=zMiQ{{z8B&pnRpT^swdS#00EK=3Ovf z&@t;`+kT5g(S(QhgsGk}7RiO?%-=d_4$qWq)y^`s>vw~Zy=C2srWULgr3tfPX*%CL zT2p8qA?po@N_YyV?>!z*dZ+!ifi-YD{FB|2OycZVRh|BvD@qa$&(sIRzbo;g;O0^i z#*E+I2ob41dXTu!_e$OWa`s7#ozT@rN1-);Y~dqRfh;`X;B$=n)yMa%>vF#owazdq z|J*Uo_O;NERB0+2lz{wbT{b+B7+Sydr3qrE`EqbsElDUt)A=e|TqxtSvk(7^1N|p3 z>%?2B^VI}TIYjDT^og;hOp#O1Y0*HL$ztz@z>2;D9u=&AIl%gJ^k#Ci`S^)ku}|_)DUDtJT*K7aS4J0GFCDk(cTM zE-Za)VT&F7RLy17F`=_8Mv8Auu)Y+4XiaT4WOsJlSx5_nWER_b{tz34q1>V!p8v%C zwIC`;Utxe92~g3_lpkjwuq@zhODn_t4RW7y*=9W)t^4Mo@=magV`G%ul8aV{!a!S^ zRLxoV*-!3VJm%U4XZ2E_Rh7^u&+wT{-w~%NDdxVCx9s3u_=>l~Iil(_2+9mgo^CVn zX=|Fda#Bb>i_W=qFSlIn+`4)JQa#L39kKzrW)dywIjJew&TFCC1%(pkB5* z-fzA0S;Xmig-jg_&16AUxZPMsG_Nl&jx+;;`o1_l2bPLGb7-dc*s90#dLG<6G95=4 zj$}pLtca6}LNgnIa%KaQ`*IW-cc!~o7hjP+78(;}qxoOlopn@R%d+5uySux)ySuvw zcXxMpx8UyX?i$?PEjWZ=fdB(J_uO;dyfbU=`*Vi1KKQzK@7`KXRrjx|maMB0yZ9@? zQ9@d`QUws}t~a3`oOmIS5*LM0(gURP+dWmCrtcI0=B=33F8r_*K3S^OCjP{8jH6<6 zB#J8jhTm>q7zr5yUP@wd!XY_Lkf8EyhLyAz3*OKn7mDs72*r`X2{9!l8!$O#Q`FTd za1kK1Xq_|6;HO9F=H*4jp0!~#xa5(qRM-7=VhrY4%X0%A44dUUDWGi1JPW-M+G zMjG_FFcr?DitRpiB!5Ho@_8c?-9+f%oyKX}SlP3eHiq?>OPI*v60K4cl*nRTz7_8{ z6du4TJo;`v$~791ok=r6GG&|O4fK#usZ=8@hGA0;dA4%YY5lgD$r3L`0JYo`2&@?q zkn)vhPJ8pjyoBr&e^rS9>l-1N=epWr$M+kFOAt6!uHC|jEdkesgCO&VYH@UbfYwi# zAe)bnKDk2ZvUL}mG?lU!o4v+xk(y_N4pqi`^TT~nlRho*DY}diiJ-fV-nmoKR<4u9 z7Bi4iukls69^9wSWphykjGEHLFo}AlyUZ}3jDA_J;W@B`M&$Ke-TK!2GItat8v?>R zXc(K0wx$!!qaqptyRn`^&x9siF@o-9;>3e zQ=!TJF!Pcn14Yy(vH)q77rk-UJ1fu-y?l{$p(;(a&b4<~9W<%(T$@8RuU@kqlD#1) zsWNQ-peLJxbIyr+h5mBX?KTO^j|z}so|F}m+CPrGue^{S=Pn-JJlTlHWz$Z6z zaL38~5CjV(7{%hJ$)ZEJHy&pPJD}5(pVPivEBjb;&aCCAo*0+Xq%Usm_ z8gsx3-L!;^eeG#|*3FH9&Aj#MdA4%`%4KB}UEah-n<@E9vSRhZ{So5=R z_yN-)9T);cM_n-iUXK-h{D#u77%yBQpeaG9w*)! zXU5Aum+QdP4riAO%Voo@tP>|MAK~dQluOuZzC}Qv%Qu21TQaN6jfruE(EYwUW5K$5 z-cBg)lZno<*+?`Py|NPytu#F?0vGcZWiPB@7~687bI?>R<|=!Q8<3VFqJ*)ssW+Hb zOqNBaYc84ImOqBY=Oa5tOgOwu#}OGprYDoH;y?B6n4wV-X0gTYb_fCI*$FKUI7+pL z6bOYO9>S1?p6xJde}D|xU_-+QQJ|j=93J(^#ElN^Gk{a!Z{h8m1FS(90-?<8@&N6F z#0DXG0Is873AGCEyI=C~k8u}_UtAyJlTq>trVAUEOeaQ54iYOV(!A8bY;xtvNK+tc zU(#w-=fL`Yb0F)4Y1{CAX;fK;l*wiL7c#X8_8QX0pn!?CAzT%mHrJ_OIc{xkhkdwa^tG|%r{;1BI-6?51{E83^<+<3Yo$t`>_oY_cux zmWNZ;=Bsh2N6vberQmJ}6-p#4$OUtqZ_7r!^qGsI)DXXr53lR)mtwk*!&`T539yjc z#_&P!{^Es2#=m}gFfH3&f=3ryvOA?CAGh@ad{o6r(1(s$y3x)q7wa(C=K=s@sXxYD zF%jqgBuq>>XS4;1$b1V!Jafw?uc!h7=%hv?2MVkRTrz)aUSSGEFU)%&Z5|0iC=l8$ z3@S%k7{5lxqPRE@JAbHiC_E-6?u5qJJj%aJ1TP5AI2l}yoZ1VKUD16orgQld5b8?V zNr<#mPpJ^F*34UT+?EHM;;RA zm@1T)o3%u0O(@wd_0zBTTn5$F9r1Y8mo$9tAt7kz$w*ZWErW4p6M-M*9QrFF28D;W ztGbc`;pNr)?kQ%Em35hH_iOo|^+u=W`!Zsti;fwVZ4!|k>ze%GJ_94ozrR2 z0?%XsJbZdODhkFe%rFXWS`Re!4#w}oYX>CM;Bwv?UWSKp4ddU-R&j-B(&usXVYLY@ zYOc)O;&KneSwE&aTF)}G7P)c!T*7_laz*L@D49o1>y7iB`}~~9q4{)Tmx-z<$aWq4 z3nWZAz3{L~`Mvc;eG4V}{rhiB#0 zG&Yz8n!(0Gb+5*Vqx0_DPn96e98E4kWLb9)pXDNQmZA!G*0fY|2$FYX5*P_Khx6Esisy4l45_N=brUWd&c1#}^L^kG3it5}2|b?1*1ca%nkE9LUHBhGk^O zRtVnXQy6kU8k(Vv&X2*Xt0SjDu3(w9^KV>wQ!Q|;^=>*2c-lN-RMW<_1RwHX+gPdZ zT$Oc@sr@XSZ+1#4mkk+S`|9l)x$EN%XX!tii=@is+`c#z3o}$arnPNQSvBr_{0#QvvF&hh7byB6ecZRc<7;%^P`4@L3+X?6Wy?Bee$ z{jcoeZ=LGz`up!h-~WMb{IB)a{~%v9$KUn$f2nN@^#5sQWaV*-eSY}PX|)MBqvnop zi$DbMBRBfC00OZ3a_$0QXbEq8RQ8V)rVFoMvODtr}%a)GD^?d4!#P7_1C7n7y~ zv%?39c_(pddfOAlYHtac(^}Gz3@%1W_uX9uyfjRKX2?_S?`_m@>it%v44#aN%R$poW3%f@~-b! z^@%oQ+ptd;48|g`F5SJ#nnoo)jVeA!=Qsg4&!f2w+&;Ch#;SsZrHS`4U&fi{$?*Nv zu$0soWb4;NVF&a<9NBc`dtmZte5P0I zDMc9jYfkLstO3{ zZfoX=jBSz0kOq7HB=ai^kkxx8nEfo!HQJq)#HPs%)N0B?TAdtnv)$LZ;8Md=j;3&@>%DMhqSM*a)MS=o(DI4lmH%cYeoM%I5yF44y8eNgV4(lk z0@;5cg$(bc>0jpGzs2xh2=f2Ud`ec9vBYNhz$PBy7LpI>FeLFatYEu9Kt0HLnq+dF zfWE%*3ExjS)hCL%j2ldF^YKW?-ScwY8}-O}&kqVT{mcP-;NCxXgedx2zl!ivtR-XP z8y9W%kQ`iva02$1rZUAFX#z#-DwO;AKHoRN!NnBB*{yq%=je;&W*4z28`H{~^$I+n zr_=ky4qx4vBYuV0vR7JSyVbn+=!Jng(-ao_6ymxduvK8PVo>?^6eY0gm4j6Tp^>>QiF6-7%+2? zl;km{$pLBRp-r~OdwSlO{@tMWxIP6z{rg2By{vVlr{IBTu0gbfF(GsngrtB3i9{YY zhl(;2RzTQq>kpSGUbK<(|0HLBP7W~t<=61X>-GP^zrTMA+8;vjcS&QQ|4Y<929rPL zmqg#ueqm!rLkDv^CtHV)`i~k}ee3t>4iSNmA1Y~c17in$Cv#gHC4C!5S$ziwTUQ!E zTPq_8Cw(h(!$0>C6ts22*P>x~|F=rRM9+l(KA_RR|6=6O{@ub#-_#MGgYDzHkiMO` zvAL<46Fw{Z?+O7&!*}KnOz0cn~`A0(`31KDUkE8saNP+xo=I4(#e?9#_ zh71OL1{PL&_K!XPJ%;=NFud3N!zl96;lC$ghCCtMuou&IDk>_jo|P-K7A?xO6mw3O z7CALb4y96TsaJ=asmD{SRvGJi@xKC(0wa!2Scwa&G)XhU5@U*!rUk+N zbO-|m7c-#Omtm#XQ(Z}U@U77d#bIiAo_vqd^s?L$`}XqSi4RFoDAqy<+Ek^JBYu*o z`-mdQVng0#avcKE_xz;TR_1{H}2h?#~Fd|U12yk ze8FB`E=ZMy@mym(p<9AE!Y#Rz$FRf&z5;wga(VN|&bRDOI8QWB5Mu=`vr@-&$J8E3 zFNiOg-e5d_K4DV@YBS3-zCww|Bga5aSnW985Z5=j9?06l)A>rr4aYx@eZ~S|3xtx= z@@F_30ld+ibF&B|B1W4PD>diIs$27Ph5J-nN+WKYZWHU}?x1=QD6}?kkjhH0^Gjm~ zg*n?Dw6_!VeDO&cXAxTPo2yQs!mM8y;-mMf{q=T`ynU~ap1WqMuks(Vd~E6Q9pZWG zoTXSd<@?G*-=CK(h^k|oQy^jvmhs`gjv^NnDnv$!4f07Ty&&ao zh|oph({2t01dN2Jgd2;m24}(n0LU;q{rP(yfWKBLIk*W{)pIs1WBVaEE9|NnaXppB z!T%gx;uTQGJjY$3x`pU)p%mJ20p(_rrpbg)$v(yf&xV%;{^}&a-MRuwqwm|wZ-v#5 zacoG;)Fj;j1W-fo4LI{DD`mif6?F*}e^PojmtOk|H~DSV=PQ^nW#4Uxm6@BJ@LW5C zpW!>7E_0pwa=w@ikLU$EYh8od^?M9~%I?V7>0QMParJ3iE36ELPwO>St)OuCMfRt6 zn_M9;tQ2r8h&DMp$y4>1iUx-9Z@3xag`7PFaOvOm!P0q^>VfHXTWjY;0WWZ@5GVnH z;3=RZ^9T(&I&$O_CIRYv8l3sH9nyc*&>PDCyny)_-Ye824E`hK)MN)`M{bfK$SJXR zV*nf@Hw$4*S_xc3mdGf$ne~w)cMIY|yM^%JQeadmFb-|a!#6ap2A$xI{8z5`r(ww6 zmRpvffZh&cdf8HdJV<~%Ni#JNLt#JD0u#LfV|*w*cL;>pV;%Lx$aV0!U@?{6NaTnx zE1d%*!sHTRmd3PU_a$n3WnrV6gpi0_Bj+{5+9WV)f6vu*y5lc-P;mBGd>);VAQGR5 z2Ft)orEb6JNz)-B;D$pFC-fb2<3fbgE`mL}g?VsG^IX3^7v`YZEezm@Xf{H8)$Bxc z)+tnCoX!O&IYmssO_5h~DsOrUb~2`MG1;g&HUo1%x4?s*vgxoN70L!d5A zrUG+DN23=sHtqdpf@Q9i4neXlp}5#EEri8)`$Bc@FCYc!oz^JL)N1>5(``g{0=GrT zB~a_K47~+;n66J8K_Ep3edT-6wcJ*KhttP?0}#_aT`kCP8Y#{?@W{wGG1H zX(&B}ly9l&^sPu(Kc(4`#t2nugS>r0G2T7|Nyg->RVK$G=F1L+F^K$#jJ@Ina4EE0 zUxWklo>e@y489P4B!SZ;hKxuYeTE}y1Jqa*@EUj{(s3_*%k5rDn*pGAq1r@dMOZL_ zmV_RPzXG%|I!uFsym6yC6X7q@@v!@-1JiaM4 z_hmmoc+CF0W)2g>-$6imFj9?CLPx!&nPPqA@c@G|iFM#3M&#k~VFA@8Sw@pA%nnNZH zyDB&o7rkj*%9<&rrKuXFhTJk#&CFh>s44mwCSP=HBS)xUs&G)KMAvA2vNUwt>zVhD z+RTc->NMpGv|a_VT$Vea)8Y2t&U&BJ+|n=mN%H56K^OPzby|Vc!$+IX#-rU)te(z@ zI#{blf{KF#m3wF|6bj4fIF%Ig`|Dv&l`$yP=95l^KT)VUK=Cs!l_^ziegn-FC9{~| zs1k((D;bDG+C0h}ux=8OZ8DkCu#3z@GIgYdHa2TN{_Ko_5n(@;CP3ya8@+T$n>m!o z*|oU4(2h#92DCxNB#N|yCNTu9hXWv?F3ghKu^|p3weMstquoWLo>MLN!<=^%ogy?x zvgGu%EazEGB(VbP7pBVqnPd#!FRw?ep*JU(g8TuJ`v`-kDfx}sI)dg|DJ)-luIIo= z-)7TumE=yzU8bi8D?0Hv4B`p~+@FnB{cgx}^=Q5raUlLdX6dMt?z0JiAT>L*p0w3F zQ-H1eB~b|g4H=kru9I!wz%Sh#WrwuvzCG4n* zK4Z0Ik$*&Vl;EJxnuy#QVgF40-kmM3lD!3tRFCuzN|s6FWj0rpetS;k2~pYStgn#` z(yZv`V^3LAM^?kxn{x+1_xW`xg$k2J4HJ&|<5uJ$YjG3$)S)+!DLn3kBaQP0_;jEX z2{^TpVZw>$0O|y${R=w~yF(UV4K8l6X^hM}MY~C5kywE(YM=ASrIt-8j@norxIIg+ zvh$v@JF?TzAN%#5v|SsU@~uR~x?~1C_f~IijB%VuWVHqvQ**(+>&= zHdkH7|lv(k|Ssws0g0217Oi5(YyW0uM%=nXL4Ha%($q*qq5N za;owmlZQ~e8hB8DxRK$!$`FIi@sDY?m)4LVE2%(ythkQ!(Gbkh1E*1KjU&Q*0C5Ld zcH~jktfEtaJWL8+aAie2RWk!w9YaC;xsI1rl4O*!7#^uHw<^oKEjc>dtt1$84b2Me zn-WtNk0a?>`QOB=~AZqE1d!fMhLmMhK%)>f@|mpQ)eMTIsRMcy(g zPfzZ)5!4TKSB1qViP9y`v-i3SG@*i z1g=Mq5Xs$%l#a9W4{%MZ3m}^j&CTKm3u!GvYnebnIwtDs&)pedsN8|5B&3hXgFcKb zElwamHxmspx6dYk%o-b|C!In=3bvgXg{?G%+JhPA7=L?@_w0a%%@jTM6D!NocXb;dSSKZDlK9HL+kl&Ttnn{?ge=kX20?KU34nep5+N*4zaW+T z6rFaRQC9+ptojTEVlh5lMLp@L>CRT%SLby!TfJ>8v6s}f+}Uh(GtIglq@zEeuCF3o zl~>g>P@**KtrK}FR`7MPBzIj>ty4A+4de1OcFrxZyRADcALZRNi9KD^sTUm0qK(1p>Oy^k#V+;Cg7%|^Q6ZuB*vxb(+&mZ#jZ-}1X0AHpY> zakrH<+MFyew%YS#NE%Cit=_rH7P{Pu)!tljlvYCS4kUaa!j>x!&c)NVfOq zzRUsYwc}DK-CD6$^Lneb6pDpm8Px z$|gxqg3-9WkfG*wBkv6`|w-s zW~V&>YNI-+(X8300l+pX!yxj~9tO%jKk}S?78JP!es*wCQ1vMZJ;|ZB0ya?(E{h57 ztC+?lHRnYY|JfPN=lGf;Pi^NBJJ&YNea+@?EA2cjs0x)5o3BT5jnpMaucLO{;~OaI zjw5!BWHYsOvt+lp+sT)37n>#JI_Y-B&0EdQC-OwiY#}Ww7ZKC2wYF^TbJi3pBJE4f zdZu`wm=O8EYyL)1#Rw`o-wn!d5+RJfV-gwwy0N6eXU*@dhDB*W0_FK7Re(lvLCY=^ z&uMf*Oi%@g%z@QG3sTNRa`HSvVw6z=v?9{GgrSJQGu4F#*)Nv8j_N<|bFdkQJjIJyljq&wf zHf)fyGT(Z0)iPLK_Sybyw9zuZ%G`)Ko{ze6{U9)nTu?)hM#_-USUI9OoR-@6Jxshj z-$~Qx2cm%@h2$-Xu!kn|A<0{3vAa^d1arz!rtq#?m}$f~!59#-bYO9w`ve?%L=uNu z&^QLM|Bp|KSdGyU56Coe@kaRqW(_(~^kiV-jDhPW2r`37;D{y3z@VSK$n)4glR_>e zI!$A_;@$bKl}Fx2RncDAJ-cNIeLFa-a1J4p{E|V3ZD{k_=d4{o)z7&of%(?dWcv%? z+?Pgh19&ANd4ZK!sn!<)W8QofjB7eAlB$;(R9`+BesVq^WJ9$gK3bfK6ptp0}5f+zo(Jm&3l75Y71I9W#IXJY_KI0e))$4seEWqSyoj@F;C?Rh7EN*qn2IQVEE{rn515?0)F^~L1G=IRFFpG48Aujimq za;uBtOPCwN?UxfT}Ak0J}kc%kuAFTpzUAgo0kz<*dc z>on67UvjN3px65;TL6|VWWt|`WBVZ$)AWugLX8qv!>){JMXi?CVIIg6e{xX}wW^O3 zRNx^?^P3F2f!&oKHb#xl>D%5hrsPG=J1x5kVWW*~X|CBg@%p;j@etF5WwV|D{(!A6 zxoBmEh$)J<)$k0(WvOh+uAARQxP{_)Z+k*zs5$XfMk=*xyR*t<-L$$)`W8=P-Eq7r z+Cnws7~|dP?^;Ic3^b+&wuqC8MsT2frD^$9B7V{*XeDby!AKaF+206gIDnT13j+}- zZ6OU>6sWm`ypEh;tyqMX&K+t*^R17>p)#cPI6M-xq0n_Q47b53D0VAz{zQQGP#T?) z%-JJw_CSL^fCMh)!48-Uk~aW=^ms^s$?BUh`BRRoud}bvh)gWp^sCooM-8s;w^0P$ z&9N1zjoD!!-Bpg)gZOFVZ0dnKGPDOU%}= z$A(w2rd(TMtHTqRegJH~Lf&hHuTcPe6?vTCwljIu%1H&HKI(}HS}3!kc;4}3v=G~O2zv%E7S(11W?$RoUt+%by5#KxolvU76>QA<9>Lq%^?v$`xb^< zLvW!3&Gd%eHudwN`o%|Ick6Z7U68sU zR4Mr*$@B;|VDi*Ft!7A7at{q&mAot1-!95y)+i%I=SS}i21dVdtJg+hdWkSlRoE{$ zB?Yg#ny|$Lu|;urjFwVrID4_7s}L2a(^`Z6e8N4JXX?%x=2R|bXiN9|Oat+?Jo9v+ z3vWxaHK<=rZiU3SDi_M#PNs^fq}YPbBY0G0FCH-vKnPi^^LB^tStb~T7c+F zQ?-2P=0I_y#V=&bLObJ%28M#SGLc`oTh$X}!Yf%R);+%cV)8ASDO`uf)GY@{ugvP- z^-f(6N2y(J3o|0!WNDHmQJ15UL`qJ(jcTNgsa({yTA1bqg?VZ4E&Mgjq}xh=PxXYNG^X{9A$d5_ z=4@#GOATybbqB)r*Mcn&D+lN{d)i#NtS@jsk&yvJks{D+M4=uErD1JN1RAN%V6Jbe z6VHLtH-aLh0#*>cIZ1M5|FS>`lx@_4Qx16Cn*1ruL2{eVMGb2 zYr^ZSK_AwjkHRWZFPj1$$t2KUJKyk*OCNDH*93G%H^^AoMNUGmTn`?&7XkKwpdN;A zf!JYfQv?hIPKnpSaIEH43f;7Y9ujq|E<oUvh%KUa=Atnzu)UI>&Je%E#4ua)YJP!MDi{ z>MXq@lEk%98VbcAW1Q<$u-%_6ggxCjMCig<-+^k}+&#o2S!qAlTHDh0?h?yMBwC7f zLEE(;1<&0Ot!mFKy{*mQQ2cqQW;O>}QwZQiCYkD?N!Ke%LszrgiZ&wSxQvF^OWQ)o z^12(zI70{xZZ=f<@X%QFk~EkX%4L3!4e0!BD#QP$`f;)?sF&$<=K#-x0!*1o8Uy<7;OWxOSy?SXEj^2Sn_%EoFco2X7`jY6yQv*!PaVb$*+s<> zPFk(jR@$9+NPB%%Ijfo_-jS}s8Re(T%buGmF#c;z{gxZEObzuKNM7P{nby&S?6Je1ol(*8|HM$9=N)_a_>*<{nQ#%QrBwpTP) ziV&#HW6tL}fF!~lQQuwaFXkUdGq6U7x^Ya~GJ$-JMycz;h`s8hdBW}W8@OndXeqI! znWhN*AXmr{uS$oOa>E1a@9I{K;d-R-O1!40c*XZi;G%}BnOb{cFI&a`^L6S$-Bnsuc^ZZ%IJ1swyDL0`LF(*j5%Yj1j&Ey_UQ?;bs^ogam!J?@$ zyXRZ*@~Su1_!1Z$_I^xukEQm{6n4j#d{^-muzb+?&;H*p9YPtl5K^>~iAR~yWYaxm z302|WogGv9Mf1m~(D?Wr2K*oS?b~bj8l`u&gej#j$smltjUW!d4;TjD*%ZQQl8@Q- zL3pexT(&kSvKc8oh7h-F_)A)#PU@c-F(J;9vueEfZG{ zL1x3c0LmZQBFk;^dCB7!eG0{~*6m*mvmq#4j=Ee1(uZe^nve$#NAOEo`7% zg>KdfHC+35-vm4aSSo0Z6C+ohU~ z%XuV-TgvNLE|3b_XhI*^AHd;t^3g3SAW$GSs*^Rb9@rbeeQIQmt4$ibV*Q0(Y8?yW zS;Sgl#AphMM%%=)MBSwKv%-xebcm!tIOUs7YiXkQNDHwC-}62eqoI}-3*D*aX|uO# z*hY7qx2>GY+1)mKhl#O@Yx@dDHOg2j3-E=MjpymLqw-sD#|ss2QfWE zIS(!w`(A%EyINL)wUVLB&J}A?$wE%LDj;m9b%A@8z0seEm`Zi!gj@dh3f9SK(kY#v zM;RY+A}JH&In@lDR$0K*2#0ne~#++QZ6l=1yRhzd|Q}Tt;cVa7E z<(cto!qlva%7b^^L3+e$=(x3sYkYPdhXqWRvk<$IiT$GWiSR;^QbWd*O$T<*eYx3K*av@G!%H1H>H_!r|-WJm^WNmI#)|e)J}cC=)3a<`hs9i`M@2+_ecwl5RHA z#qf$J{EFW8WMx42km5eNIr?YX_o4IX+(*lJw>S>HO|mnd8w!H9vx{8O=riV+06+

Rr|TVC6C52(MUx7j4|iQ2Q(1{d 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 P@Hi~@u3cIN+T8yH9>VgE diff --git a/xml/target/waiver_....pdf b/xml/target/waiver_....pdf deleted file mode 100644 index 38171cf47cfc4dd67a58f43945b6bd233a34688d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28644 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/ - Chamber of Commerce - / - Chamber of Commerce - - penetration test - WAIVER - - dafaf (dad), with its registered office at fsgf, - sgf, sfgsfg and duly represented by sgf - - - WHEREAS: - - -A. Sitting Duck wants some of its systems to be tested, - Radically Open Security B.V. (“ROS”) has offered to perform - such testing for Sitting Duck and - Sitting Duck has accepted this offer. - The assignment will be performed by ROS' core-team members, external - freelancers, and/or volunteers (the “Consultants”). - B. Some of the activities performed by - ROS and the - Consultants during the course of this assignment could be considered - illegal, unless dad has given permission for - these activities. ROS - and the Consultant will only perform such activities if they have received - the required permission. - C. dad is - willing to give such permission to ROS, the Consultants and any - other person ROS might - employ or engage for the assignment. - - DECLARES AS FOLLOWS: - - 1. dad is - aware that ROS will - perform penetration testing services of the - following systems of dad, as described - below. The services are intended to gain insight in the security of these - systems. To do so, ROS - will access these systems, attempt to find vulnerabilities and gain further - access and elevated privileges by exploiting any vulnerabilities found. - ROS will test the - following targets (the “Targets”): - dsfsdadfsd - 2. dad - hereby grants ROS and - the Consultants on a date to be confirmed by email the broadest permission - possible to perform the assignment, including the permission to: - a. enter and use the Targets; - b. circumvent, breach, remove and turn off - any security measures protecting the Targets; - c. copy, intercept, record, amend, delete, - render unusable or inaccessible any data stored on, processed by or - transferred via the Targets; and - d. hinder the access or use of the - Targets, - but dad - only grants the permission for these activities to the extent that (i) such - activities are necessary to perform the assignment and (ii) such activities - do not disrupt the normal business operations of dad. - 3. The permission under Article 1 extends - to all systems on which the Targets run, or which ROS or the Consultant might - encounter while performing the assignment, regardless of whether these - systems are owned by third parties. - 4. dad - warrants that it has the legal authority to give the permission set out - under Articles 1 and 2. It also warrants it has obtained the necessary - permissions from any third parties referred to under Article 3. - 5. Should the public prosecutor initiate an - investigation or criminal proceedings against ROS or any of the consultants it - engaged or employed as a result of the performance of the assignment for the - customer, then dad will co-operate fully - with ROS in defending - against this investigation or proceedings, including by providing any - evidence it has which relates to this investigation or these - proceedings. - - Signedon    August 25, 2016in     by -    __________________________________for     - - \ No newline at end of file From 78966d97c77aa17e4411ffac5185de6b651db211 Mon Sep 17 00:00:00 2001 From: skyanth Date: Thu, 25 Aug 2016 15:43:06 +0200 Subject: [PATCH 29/60] deleted one last test doc --- xml/source/document.xml | 1502 --------------------------------------- 1 file changed, 1502 deletions(-) delete mode 100644 xml/source/document.xml diff --git a/xml/source/document.xml b/xml/source/document.xml deleted file mode 100644 index ed72e81..0000000 --- a/xml/source/document.xml +++ /dev/null @@ -1,1502 +0,0 @@ - - - - OMEMO: CRYPTOGRAPHIC ANALYSIS REPORT - For PACIFIC RESEARCH ALLIANCE - - - Melanie Rieback - - - Melanie Rieback - Melanie Rieback is a former Asst. Prof. of Computer Science from the VU, -who is also the co-founder/CEO of Radically Open Security. - - - Public - - - Sebastian Verschoor - Initial draft - - - Sebastian Verschoor - Conversations developer fixed the issue I found - - - Sebastian Verschoor - Changed client organisation - - - Sebastian Verschoor - Final version - - - - - - - -

- Introduction -

The OMEMO protocol is an adaptation of the Signal Protocol, created by Open - Whisper - Systemshttps://whispersystems.org/. - OMEMO is designed to work in an XMPP environment , - where users can have multiple devices with which they want to communicate - with each other. An XMPP session can involve multiple servers, instead of - just one Open Whisper Systems server. The impact of multiple servers should - be minimal, as a trusted server was never part of the security model that - guarantees the security of the Signal Protocol.

-

The predominant part of this report, the protocol security analysis, can be found - in Section 2, in which I analyze the full OMEMO protocol, including the used - Signal protocol and the protocol for encrypted file transfer. Section 3 - discusses the results of a brief inspection of the open-source code - of the Conversations application , as a reference - implementation of the OMEMO specification. Finally, Section 4 provides a - summary of results and my recommendations for the OMEMO standard.

-
- Terminology -

OMEMO is a recursive acronym that stands for “OMEMO Multi-End Message and - Object Encryption”. In this report, the term OMEMO refers to the - protocol as specified by its ProtoXEP , also - called OMEMO version 0.

-

In order to eliminate confusion, Open Whisper Systems has very recently - changed the name of their protocol from the - difficult to pronounce “Axolotl” to the “Signal Protocol”. The old - name has been used to refer to both the entire protocol and to refer - to just the ratchet component of the full protocol. The OMEMO - specification was created before this announcement and uses the old - names. This report follows the new terminology: “Signal - Protocol” refers to the full protocol, “Triple - Diffie-Hellman” refers to the initial handshake and “Double Ratchet” - refers to the ratchet algorithm. I recommend that the OMEMO - specification updates their terminology as well.

-

Throughout this report, I will follow the tradition in cryptographic - literature of naming the end-users Alice and Bob, while reserving - the name Eve to represent the adversary. Note that the end-users - represent persons, not the device (or multiple devices) that they - use.

-
-
- Attacker Model -

Section 2 of the OMEMO ProtoXEP lists only a few requirements for the - protocol. From a cryptographic perspective, many basic requirements - are missing, including the basic CIA triadConfidentiality, - Integrity and Availability. That does not mean that - the protocol does not meet those requirements, it just means that - the specification is not as explicit as it can and should be. This - section aims to extend the requirements to list all security - properties that OMEMO achieves.

-

To claim that the protocol is secure, a well-defined attacker model is - required in order to specify what the protocol is secure - against. By defining the goals that adversaries might - have and defining their capabilities, it becomes clear what the - protocol needs to defend against and which security properties it - should provide to the end-users.

-
- Attacker Goals -

The attacker goals are closely tied to the security properties of - the secure messaging protocol. Table 1 lists the different - goals that an attacker might have and the corresponding - security property that a protocol should provide in order to - be considered secure.

-

Table 1: Attacker Goals

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Attacker GoalSecurity property
Compromise messagesConfidentiality of messages
Alter sent messagesIntegrity of messages
Inject false messagesAuthenticity of messages
Identify as another personAuthentication of communication partner
Block communicationAvailability of communication
Learn communication metadata Privacy protection
Prove what was saidDeniability of message content
Prove that two persons communicated Deniability of the conversation
Learn past communication after compromise Forward secrecy
Prolong a successful attackFuture secrecy
-

Not every attack can be defended against by a secure messaging - protocol. It is especially hard to provide availability when - an attacker is assumed to be able to block messages on the - communications network. Having said that, the protocol - should not make it easy for an attacker to block - communication.

-

To protect the privacy of the users, the protocol should not leak - metadata about the users’ communication, such as who they - are communicating with, how many messages they sent and from - where. Communication layers below the secure messaging - protocol might leak this data as well, but it could be - hidden through anonymity tools such as Tor. In that case, - the protocol itself should not reveal any metadata.

-

To provide deniability, it should be impossible for anyone to - provide convincing proof to a third party about past - communication. To deny that any conversation ever took place - is a stronger claim than just denying the precise contents - of a message.

-

Forward secrecyalso called Perfect Forward Secrecy or Key - Erasure and future secrecy are properties - that ensure some damage control in case that a device or key - does get compromised. Forward secrecy ensures that keys that - are currently on the device do not compromise any past - communication, so that the impact of a device compromise is - minimized. Future secrecy ensures that an attacker that has - compromised a key in the past, does not get to prolong his - attack indefinitely. This is often achieved by introducing - fresh randomness that should remain unknown to a passive - adversary.

-
-
- Attacker capabilities -

A base model for the attacker is the Dolev-Yao model - , in which the attacker has full control - over the network. The attacker can listen to, alter, inject - and drop any message on the network.

-

However, real attackers have capabilities beyond control over the - network. By inspecting the physical properties of the - implementation, they might learn secret information that is - on the communication device. This is called a side-channel - attack. Device compromises can also be achieved by low-tech - attacks such as a rubber-hose attack or through legal - procedures. An attacker is assumed to learn information - through side-channels and to be able to get temporary access - to the device.

-

An issue with some existing protocols is that users need to trust - in the communications server that is being used. The open - nature of XMPP allows arbitrary parties, including - adversaries, to set up a fully functional XMPP server. But - even if you trust the organization that runs the server, you - might not trust the government of the country in which the - server is located to protect your privacy. Therefore, the - attacker is assumed to have full control over the server - that is used for communication.

-

The last capability that is given to the attacker is to - compromise protocol participants themselves. When Alice - communicates with Bob, the protocol should provide some pro- - tection in case Bob turns out to be a dishonest participant. - Basically, the protocol should enforce Bob to play by the - rules.

-
-
- -
-
- Protocol Analysis -

The OMEMO standard is best described as a wrapper protocol around the Signal - protocol. I will analyze the standard as specified by its ProtoXEP - , in order to find if it achieves the cryptographic - properties that it claims to uphold. In addition, this report analyses the - OMEMO Encrypted Jingle File Transfer protocol as specified by its ProtoXEP - .

-

In Section 2.1, I will first briefly inspect the Signal Protocol, to see how it - achieves its security properties. Those already familiar with the Signal - Protocol might want to skip this section. After that, Section 2.2 will fully - analyze how the OMEMO protocol uses the secure sessions created by Signal to - set up an OMEMO session between multiple devices of two users.

-

At the moment of writing, version 3 is that latest version of the Signal - Protocol. This is the version that is used by OMEMO version 0 and the one - that is analyzed in this report.

-
- Signal Protocol -

Although the Signal Protocol is mentioned in the specification, there is - no reference given to this protocol.The OMEMO website - references to Trevor Sprain’s GitHub page , but this is - only a draft specifi- cation of the Double Ratchet part of - the protocol. This is not a flaw of the OMEMO - specification, because a normative specification for the Signal - Protocol does not exist. The open-source library that Open Whisper - Systems provides on GitHub is a - straightforward implementation and I will use it as a basis for my - analysis of the Signal Protocol. In addition to the source code, OWS - published a series of blog posts that - further clarify how their protocol works.

- -
- Protocol Description -

A simplified representation of the Signal Protocol is given in - Figure 1. The figure shows the start of a conversation - between Alice and Bob. In this abstracted example, the - participants are identified by their name. In reality, this - would be a phone number for the Signal application and an - XMPP address in case of OMEMO.

-

Notation The following notation is used: - KDFs(i) derives a key using - salt s, info data i and a constant label that - is unique for each KDF computation in the figure. When no - salt is specified, the constant value 0 is used. - MACk(m) computes an - authentication tag on message m, using key k. - enck (n, m) - computes the symmetric encryption of message m, using - key k and nonce/initialization vector n. To - keep the diagram simple, the precise meaning for asymmetric - keys notation depends on the context, but it is - straightforward. For example: a0 refers to - the entire key pair when generated, to the private key when - used in the DH computation and to the public key when sent - in the message. Only public keys are sent in messages.

-

Prekeys First Bob uploads his client-side generated key - material to the server so that he can be contacted by Alice. - He sends his long-term identity key B, his signed - prekey b0 with corresponding signature - sigB(b0) and a - one-time-use prekey bx. Bob can go offline - at this point, the server will now act as an online cache - for others that want to initiate a conversation with - Bob.

-

TripleDH When Alice wants to talk with Bob, she requests - the cached data from the server. The server complies and - Alice can initiate the TripleDHIn older versions, the - key derivation did indeed consist of three DH - computations: it did not include the signed prekey. - The name “QuadrupleDH” is not used to avoid - confusion with a variant that also includes a DH - computation between the identity keys. The current - computation can be referred to as a variant on - standard TripleDH: “TripleDH with signed and - one-time prekeys”. handshake. She first - generates her own one-time key pair a0. - She combines the keys by concatenating the results of the DH - computations and computes s, a shared secret that - initializes the Double Ratchet. Using the KDF function, - Alice computes the initial root key rk0.

-

DH ratchet (every reply) Alice updates the root key with - the DH ratchet. She first generates a fresh random key pair - a1 and does a DH computation with - the latest DH key she received from Bob (initially - b0). Using the previous root key - rk0 as a seed for the KDF, she computes a - new root key rk1 and a new sending chain key - ck1,0. At this point, Alice should delete - the old root key rk0 and her previous key pair - a0 to ensure forward secrecy.

-

Chain ratchet (every message) Alice derives a message key - (mk1,0) and a new chain key - ck1,1 from the old chain key - ck1,0 and she deletes the old chain key - for forward secrecy. Alice derives three keys from the mk - with the KDF: an encryption key k, an authentication - key m and a nonce/initialization vector n. She - encrypts the plaintext message and computes an - authentication tag over the (public) identity keys and the - ciphertext. She then sends the SignalMessage to Bob, - consisting of her one-time key a1, the - ciphertext and the authentication tag. Only with the - PreKeySignalMessage (the first message) will she also - include her first one-time key a0 and her - identity key A. Bob can use the key material from the - PreKeySignalMessage to initiate the root ratchet and - receiving chain ratchet, from which the key material can be - derived to validate and decrypt the message.

-

This diagram implicitly also shows how the conversation - continues. Every time the user replies to a message, the - steps below the first horizontal line are taken: the root - key is updated with a fresh random DH computation and a new - sending chain ratchet is initialized. For every additional - message, the sending chain key is updated and a fresh - message key is used to encrypt user messages. Note that both - users have one root ratchet and two chain ratches: one for - sending and one for receiving.

-

Key verification In order to ensure that no - man-in-the-middle attack has taken place, Alice needs to - verify that the identity key she has connected with indeed - belongs to Bob. How they do this is not important, as long - as it happens over an authenticated channel, but no PKI is - assumed in the protocol. Instead, users must manually verify - the identity key “fingerprint” (which is just the full - public key) of the other party.

-

Message counters Messages might arrive out of order and - can even arrive after the DH ratchet has been forwarded. - Therefore, the sender of the message also includes two - counters: one for how many messages were sent under the - current ratchet and one for the total under the previous - ratchet. With these counters, the receiver can see exactly - which messages did not (yet) arrive and store only the - corresponding message key mk. These counters are - authenticated by the tag, but they are not encrypted.

-

Multiple prekeys In a real-world situation, Bob would want - more than one person to be able to communicate with him, so - he uploads multiple prekeys to the server. In the case of - the Signal application, Alice only gets a single one-time - prekey from the server. When the server runs out of prekeys, - Alice can complete the handshake without Bob’s one-time - prekey. This message has reduced forward secrecy, because - Bob cannot delete the signed prekey b0 immediately after - use. When Bob receives a PreKeySignalMessage, he should send - a fresh signed prekey to the the server, so that the key - that is cached on the server gets updated.

-

Bob needs to know which signed prekey and which one-time prekey - Alice used in her computation, so each prekey has its own - identifying number. Alice includes that number in the - PreKeySignalMessage and sends Bob, unauthenticated and - unencrypted. These numbers are generated sequentially.

-

Key lifetimes The identity key lasts indefinitely. It is - possible that Alice sends a message using a signed prekey - that was already updated by Bob. For that reason, Bob should - keep a few old signed prekeys in storage, so that he does - not need to discard those messages. How long this should be - is not specified, but the specification should include at - least a guideline and/or upper bound for this lifetime. The - one-time prekeys are used only once and should be deleted - immediately after use. The server should delete a public - one-time prekey immediately after they handed it out to - someone, so it does not get used again. DH ratchet keys - should be deleted after the other party has sent their next - DH ratchet key and that DH computation has been - completed.

-

Used cryptographic primitives The protocol so far is - lacking a description of which cryptographic primitives are - used as building blocks of the protocol. Technically, the - protocol does not need to be locked, but at this moment it - is non-trivial to change the used ciphers in the OWS code. - The following primitives are in use:

-
    -
  • enc: AES in CBC mode and using - PKCS5padding
  • -
  • MAC: HmacSHA256
  • -
  • KDF: HKDF using HmacSHA256
  • -
  • DH: X25519
  • -
  • sig: Ed25519
  • -
-

A standard of the protocol could benefit from allowing different - primitives or cipher suites. For example, when a - cryptographic breakthrough leads to breakage of a primitive, - clients can simply reject all suites that use that primitive - and remain secure. Or an implementer might want to use a - different suite because of business requirements or - performance issues. This cipher suite should be negotiated - at the start of the protocol: Bob can upload a list of all - suites he accepts to the server cache and Alice can pick - one. To avoid downgrade attacks, the full list and the - picked suite should be authenticated in the - PreKeySignalMessage.

-

Note that the identity key B is used both for signing - prekeys and in a DH computation, which is secure - with the current implementation over - Curve25519, but might not be trivial to implement for other - public key ciphers. The used structure of encrypt-then-MAC - could also be replaced with an authenticated encryption - cipher/mode as long as it allows for additional - authenticated data (AAD).

-

Metadata The protocol leaks metadata about who is - communicating with whom and how much they are communicating. - Alice’s request for the server cache leaks to the server - that she wants to start a conversation with Bob, as does the - PreKeySignalMessage. The plaintext message counters that are - included in each SignalMessage make it possible to track the - rest of the conversation.

-

Unlike the ratchet used in the Signal Protocol, the regular - variant of the Double Ratchet also - encrypts the message headers, which would make it possible - to avoid tracking of the conversation. It would only make - sense to implement this if this information is not leaked - already in the transport layer.

-
-
- Security Analysis -

A more thorough analysis of the Signal protocol has been done - before by Frosch, Mainka, Bader, Bergsma, Schwenk and Holz - . In their work, the researchers provide a detailed - description of the application, the underlying protocol and - the environment in which the application operates. That - environment includes the Google Cloud Messaging - infrastructure in order to send push messages to the - devices.

-

In their analysis, the researchers found no major weaknesses in - the Signal Protocol. They give security proofs for the - building blocks that make up the Signal Protocol: the - initial key exchange, the subsequent key derivation and the - authenticated encryption. In addition, they identify a minor - weakness in the authentication of users identity keys, named - the unknown key-share attack, and they comment on the - claimed additional security features (future secrecy, - forward secrecy and deniability).

-

Unknown key-share attack In an unknown key-share attack, - Eve downloads the public key material of Bob and uploads the - keys as if they are her own. When Alice wants to initiate a - conversation with Eve, she checks that the identity key she - downloaded from the server match with the one that Eve - presents to her out-of-band. Alice completes the handshake - on her side and sends here initial messages. Eve forwards - these (still encrypted) messages to Bob.Forwarding - messages is trivial for an attacker, because we - assume she has full control of the - server.

-

The result of a successful attack is that Alice falsely believes - that she sent her messages to Eve, while Bob falsely - believes that the received messages were intended for him. - Eve is unable to compromise the confidentiality or integrity - of the messages, making the impact of this attack relatively - low.

-

The underlying cause of the above attack is that Eve never needed - to prove to Alice that she was in possession of the private - key corresponding to the presented identity public key. The - researchers propose a solution, where the users engage in an - out-of-band interactive zero-knowledge proof over an - authenticated channel, such as exchange of messages with - QR-codes. Because this solution is based on an interactive - protocol, it would disable users from sending messages - immediately if the recipient is not online at that - moment.

-

Future secrecy Future secrecy ensures that a key - compromise at some point in time will not propagate - indefinitely. The Signal protocol achieves this by - introducing new randomness with every reply in order to - forward the root ratchet. A key compromise by a passive - attacker will not propagate from that point on. However, an - active attacker that has compromised both the root key and - an identity key is able to set up a man in the middle attack - that can be prolonged indefinitely.

-

Forward secrecy Forward secrecy ensures that when a device - is compromised, no past messages can be decrypted. This is - achieved by erasing message encryption/decryption keys as - soon as possible. One of the problems with the Signal - Protocol is that Bob’s private prekeys need to remain stored - on the device until a message has been received that was - encrypted with the corresponding public prekey. If Eve - manages to intercept and block that message from being - delivered, Bob will keep holding on to that private prekey, - so that Eve can read the content of the message if she is - able to extract Bob’s private prekeys from his device. But - for any message that is delivered and decrypted correctly, - Bob discards the private part of the prekey and ensures - forward secrecy.

-

Version 2 of the Signal Protocol was also vulnerable to an attack - on the forward secrecy of the first message by an active - adversary. Eve could provide her own prekey (of which she - knew the corresponding private key) and provide it to Alice, - pretending it was the prekey of Bob, together with Bob’s - identity key. Bob would not be able to decrypt the message, - but Eve would be able to if she was able to compromise just - Bob’s private identity key. Version 3 fixes this - vulnerability by introducing adding a prekey that is signed - by the identity key. This signature ensures that Eve cannot - provide her own prekey and pretend that it belongs to Bob, - thus preventing the attack.

-

Deniability Deniability for a messaging application can - occur on two levels: denial of the message content and - denial of the full conversation. The researchers prove that - the Signal Protocol achieves the former, but they claim that - the latter might only be theoretical. Because clients - authenticate to the Open Whisper Systems server (similar to - how an XMPP client authenticates to an XMPP server) and this - server needs to know the addresses of the sender and - recipient in order to guarantee delivery, the logs that - might be stored by the server can reveal that a conversation - took place.

-

The fact that a conversation took place might leak, but through - another layer than the application layer of the core Signal - Protocol. The solution to such leaking of metadata should - also be contained in the appropriate layer and should stay - out of scope for the OMEMO specification.

-
-
-
- OMEMO -

OMEMO uses Signal in order to set up a session. In Section 2.2.1, I will - show how OMEMO uses those Signal sessions in order to set up a - secure conversation between multiple devices. In Section 2.2.2, I - will analyze the cryptographic strength of the design and describe - minor issues I found in the specification. Two major problems are - described in their own sections: Section 2.2.3 explains how a - malicious device can compromise the entire conversation and Section - 2.2.4 shows how forward secrecy and future secrecy can be affected - by other devices.

-
- Protocol description -

At a very high level, OMEMO works similar to how a Signal group - messages work, but with multiple devices instead of - multiple users. A Signal session is set up between each - device. Messages are encrypted and authenticated with a - random key and the encryption of that key is sent as message - content of a SignalMessage.

-

A complete overview of OMEMO is given in the use cases of section - 4 of the ProtoXEP, but I will provide a brief description - here. A typical XMPP setup is shown in Figure 2. Alice is - registered at a different server as Bob. Alice has - registered two OMEMO enabled devices, while Bob has only - registered his phone and wants to register his laptop as - well.

-

In order to register his laptop, Bob generates a random 31-bit - device id and registers it by adding it to his device list - on the server via PEP. He then generates a random identity - key B, a signed prekey b0 with - corresponding signature sig(b0) and 100 - one-time prekeys bx. He then - uploads this in an OMEMO bundle, again via PEP. This bundle - contains the same information that Bob caches on the server - in regular Signal.

-

Assume Alice wants to send an OMEMO encrypted message from her - phone. She can detect that Bob’s device(s) support OMEMO by - requesting his device list with PEP. If he does, she - encrypts and authenticates her message using a randomly - generated key. For every device that Alice wants to send the - encrypted message to, she fetches the entire bundle via PEP. - If she wants to add more of her own devices in the - conversation, she gets their bundles as well from her own - server. Alice creates a PreKeySignalMessage for every device - by picking a random one-time prekey from each bundle and - encrypting the randomly generated key to each device. She - combines all information in a single MessageElement: the - encrypted payload (<payload/>), - the plaintext iv (<iv/>), the - sender id (sid) and the encrypted - random key (<key/>) tagged with - the corresponding receiver id - (rid).

- -

Bob’s device can decrypt the message by selecting the correct - <key/> element based on - the rid attribute and use it to initialize the Signal - session on his side.

-

At this point, Alice’s phone has set up a Signal session with - each of the devices. If Bob wants to reply, he still needs - to initialize a session with Alice’s PC, so he also needs to - download all bundles and initialize Signal sessions by - sending a PreKeySignalMessage where necessary. If all - devices (but one) have sent a message, each device will have - a pairwise Signal session set up.

-

Device synchronization The regular delivery mechanism of - XMPP was built to send a message to one user only and to - send it only to online devices. Message Carbons - are used to deliver the messages to - multiple devices per user and Message Archive Management - (MAM) is used to enable delivery to - devices that are currently offline. This achieves - inter-client history synchronization if no malicious device - is taking part in the conversation.see also Section - 2.2.3.

-

The MAM was designed as a message archive, but instead it is used - here as a message cache. The ciphertext messages will remain - stored online after they have been downloaded, even though - the keys will be discarded upon encryption. This does not - affect security, but it wastes space on the server. A client - should delete the message from the server after they - decrypted it and deleted the message keys.

-

KeyTransportElement Instead of sending a MessageElement, a - device can also send a message without a payload, called a - KeyTransportElement. The randomly generated key might be - used for example to encrypt a file, see Section 2.3. Sending - a KeyTransportElement also has the advantage that the Signal - ratchet gets forwarded.

-

Prekey collision When Alice wants to create a - PreKeySignalMessage for Bob, she gets the full bundle and - randomly selects one of his prekeys. When Bob receives - multiple PreKeySig- nalMessages, the prekeys might collide. - Because of the birthday problem, collisions are expected to - occur often. With 100 prekeys a collision is expected after - 12.3 PreKeySignalMessages and for the suggested minimum of - 20 keys, a collision is expected after approximately 5.86 - PreKeySignalMessages.

-

When Bob receives PreKeySignalMessages with prekey collisions, he - replies to Alice with a KeyTransportElement containing his - own PreKeySignalMessage, so that a new session can be - initiated. If Bob no longer has the corresponding private - prekey, he silently discards the message.

-

When fetching a PreKeySignalMessage with MAM, Bob should keep the - private prekey in memory (but he may also delete them) until - all MAM messages have been downloaded, so that he can still - decrypt messages. He can decrypt, but he should set up a new - session with Alice anyway. The specification warns for a - small subgroup attack that applies when reusing - one-time keys. However, that attack does not apply to X25519 - . Implementers should make sure that the prekeys also get - discarded if the MAM catch-up does not complete successfully - (for example when the device crashes), or the forward - secrecy of the message will be compromised.

-

A more elegant solution would be to do what OWS does: let the - server send each one-time prekey once and delete them - afterwards, instead of delivering the entire list of - prekeys. That way, no collisions can occur on the prekeys - and fewer initial messages get dropped. When the server runs - out of one-time prekeys, the server lets Alice know and she - can complete the PreKeySignalMessage without a one-time key, - just as the Signal application.

-

It is unclear if this solution is possible to implement in XMPP, - as it appears that there currently is no XMPP extension that - allows a server to delete/mark PEP nodes while the user is - offline.

-

Device ID The resourcepart of the XMPP address is not - used, but instead a separate device id is used. This is - because the resourcepart can change during an OMEMO session, - in which case a device will no longer be able to detect the - correct key in the header. With the current setup, the - device id should be unique among all device ids that - participate in a conversation, so they potentially collide - with any other device in use. Using 31 random bits for a - device id might be enough to avoid a collision most of the - time, but if the full XMPP address were used instead the - user can guarantee no collisions as he only needs to take - care of not colliding with himself.

-

Colliding device ids do not affect the security of the protocol: - in the worst case, colliding devices are unable to - participate in the conversation, affecting only the - usability.

-
-
- Security Analysis -

The pairwise Signal session in OMEMO are very similar to that of - the Signal application, so their security properties are - similar. The server model for XMPP is slightly different as - that of OWS, but since the protocol does not rely on trust - in the server this should not affect the security of the - Signal sessions. The way that multiple Signal sessions are - combined to create a multi-device OMEMO session does affect - the security properties of the entire protocol, so I will - analyze that in this Section.

-

Signed prekey lifetime OMEMO does not specify when a - signed prekey should be renewed on the server. When this key - does not get updated, the forward secrecy of a PreKeySig- - nalMessage is not protected against an active attacker (see - Section 2.1.2). The device should send a fresh key to the - server regularly and old signed prekeys should be deleted - from the device after a while.

-

Cryptographic primitives OMEMO adds only one cryptographic - primitive: authenticated encryption of the payload, which is - fixed to AES in GCM mode. There is no reason to fix the - cipher for OMEMO, any form of encryption with authentication - can be used. A non-authenticated encryption cipher can also - be used when the payload authentication is included in the - tag of the SignalMessage, as described in Section 2.2.3.

-

The specification should allow for alternative ciphers, for the - same reason that the Signal protocol should. Preferably, the - negotiation of this cipher should be merged with that of the - negotiation of the Signal cipher suite, so that clients only - need to negotiate this once at the start of a conversation. - Unfortunately, Signal is not standardized and it would - probably be unwise to specify in the OMEMO standard how - Signal should negotiate its primitives.

-

Metadata Communication metadata is already leaked through - the Signal protocol and probably also through the XMPP - transport layer, but OMEMO also leaks this information - through the plaintext device ids. The payload is encrypted - in GCM mode, so the size of the plaintext is also - leaked.

-
-
- Malicious device -

One cannot expect messages to remain confidential when one of the - participating devices is malicious. However, a user might - suspect at least that the integrity of messages sent by an - honest device is guaranteed by the protocol. After all, a - secure Signal session with that honest device has been set - up. However, the Signal session only protects the random - key. A malicious device has access to that key and can thus - re-encrypt and re-authenticate any payload with that key, - without the receiving party being able to detect it. This is - illustrated in Figure 3.

-

The displayed attack only shows the attack in one direction: Eve - is able to modify and read anything sent by Alice. Eve needs - to apply the same attack to Bob in order to setup up a - bidirectional man in the middle attack. Note that Eve needs - to strip of her own <key/> element - from the list of keys in every message in order to remain - undetected from Bob.

- -

Two careful users will not be susceptible to this attack, because - neither of them will ever accept an unvalidated key. - However, no matter how careful Bob is with validating the - identity key of the sending device, he must assume that - Alice has never made a mistake and none of the devices were - compromised in order to be guaranteed the authenticity of - messages that come from any of her devices. This trust in - the other party is not necessary, if the messages were - authenticated inside the Signal session. Also, Bob could - make it less likely for Alice to accept a malicious device - by creating a cryptographic link between devices.

-

Message authentication Messages are authenticated by the - randomized key, which protects the message integrity from - outsiders. However, anyone with access to the key can alter - the message, which includes a malicious device. There are a - few possible mitigations, each with their advantages and - disadvantages.

-

A possible solution would be to authenticate inside the Signal - session. By authenticating the payload with the tag of the - SignalMessage, the full message is authenticated in such a - way that no other device can compromise the integrity. The - ciphertext (and not the plaintext) of the payload message - should be authenticated, so that the MAC-then-encrypt - pattern is applied.Which also means that the payload - ciphertext must be known when the header is sent, - which is problematic for on-the-fly encryption. See - also Section 2.3. This solution increases - the computational load on the sender side, because the - payload needs to be authenticated more than once. When the - ciphertext is added as authenticated additional data (AAD) - of the Signal message, it would reduce the message size - slightly, because no authentication tag is required on the - payload. The payload encryption method should then be - simplified to a non-authenticated block cipher mode. It will - also require some alterations on the Signal library, as the - current implementation does not allow the library user to - add their own AAD.

-

The payload can also be authenticated by including a hash of the - payload ciphertext in the SignalMessage plaintext (and - therefore the corresponding encrypted hash in the SignalMes- - sage ciphertext). This would not require changes to the - Signal library, but it would increase the size of each - <key/> element. This - solution is less elegant than the previous, as the hash of - the payload ciphertext is sent encrypted, even though the - recipient can compute this value themselves.

-

By authenticating a list of all recipient device ids in the tag - of the SignalMessage, Bob has a guarantee about which - devices Alice has sent the message to. Bob’s client might - provide him with a warning if that list includes untrusted - devices. This protects him against the specific attack - described above, but the protocol remains vulnerable if one - of the devices gets compromised by another attack. This - solution can be combined with the above solution of - authenticating the payload ciphertext with the SignalMessage - ciphertext or tag.

-

Device linkage There is no cryptographic link between - identities and device keys. In other words, Eve can attach - her own device identity key as if it is a resource belonging - to Bob and fool Alice into adding it.

-

There is a solution: each device could sign a certificate on - each device identity key of the same user. While Eve might - fool Alice into thinking that Bob has another device, it is - highly unlikely that Bob is tricked into accepting another - device as his own. Device identity keys with a certificates - that was signed by an already accepted device of the same - user could be accepted automatically.

-

In order to account for compromised devices, users must have the - ability to revoke certificates and certificates should have - a finite lifetime. This solution can be extended into a - full-blown public key infrastructure (PKI) or web of trust, - but I recommend to keep that out of the scope of the OMEMO - specification (although compatibility with such systems - could be taken into account when updating the OMEMO - specification).

-
-
- Forward/future secrecy -

The forward secrecy and future secrecy of the protocol might be - affected in unexpected ways when a user has read-only - devices or inactive devices.

-

Read-only devices Read-only devices will forward their - Signal chaining key, but never is there any message sent - from these devices, so the Signal root key will never be - ratcheted forward. Such a device compromises the future - secrecy of the entire conversation: if the receiving - chaining key of such a device gets compromised, the rest of - the conversation from that point on is compromised.

-

The solution is simple, the read-only device should regularly - send a KeyTransportElement in order to forward the ratchet. - The interval for this message can be based on a number of - received messages, on time, or on a combination of - these.

-

Inactive devices Devices that are no longer used and never - come online anymore, should be pruned from the conversation: - they keep a copy of a very old chain key in their memory, - which compromises the forward secrecy of the entire - conversation. There is currently no way specified for - removing keys from a conversation, except for just removing - them.

-

A device can interpret the above message for read-only devices as - an authenticated heartbeat message. When the device has not - not received a heartbeat for too long, it can decide to - prune the device from the conversation.

-
-
-
- OMEMO Encrypted Jingle File Transfer -

The OMEMO Encrypted Jingle File Transfer is defined in its ProtoXEP - . It uses the Jingle File transfer - to send the data to the other user. The - KeyTransportElement is included in the Jingle File description and - the file contents can be sent separately, encrypted with the random - key that was sent in the KeyTransportElement.

-

From a cryptographic perspective, there is no difference between sending - an OMEMO text message and sending an OMEMO-encrypted Jingle file, - even if that file gets sent over another channel. The one difference - is that Jingle allows for some file metadata to be sent. This - metadata is neither encrypted nor authenticated. The specification - does not provide a method for encrypting the metadata as well.

-

Message authentication Just as a normal message is not - authenticated in the presence of a malicious device (see Section - 2.2.3), so is the file content not authenticated when a malicious - device is present.

-

The earlier proposed solution for authenticating the payload - (authenticating the ciphertext in the SignalMessage tag) would - disable on-the-fly encryption when sending a file, because the - payload ciphertext must be known when constructing the - <header/>. If losing the ability - to do on-the-fly encryption is acceptable, this solution should be - preferred. Otherwise, just authenticating the list of all recipient - devices should be sufficient to protect against the described - attack.

-

Metadata Even though the metadata is not secured by the - specification, it should not leak any information on the raw file - contents. The Jingle protocol requires a hash of the file. The OMEMO - file-transfer specification is correct in requiring that this hash - is of the file ciphertext: a plaintext hash would lead to a - “confirmation-of-data” vulnerability .

-

All other metadata can simply be removed from the - <description/> in order to - minimize metadata leakage, as they are considered optional for - Jingle. However, the “size” and “range” elements can be included, as - these already leak from the ciphertext length and the transfer - method.

-
- -
-
- Code Review -

Conversations is an open-source XMPP client for Android. In this section, I - will use their published code as a reference implementation for the OMEMO - ProtoXEP. I have inspected the implementation, looking for bugs that - compromise the security of an OMEMO session in any way. The goal of the code - review is twofold: it attempts to find security weaknesses and it should - reveal if inconsistencies exist between the specification and its - implementation. In the rest of this session I will give a summary of my - findings.

-

The Conversations code simply uses the Signal library by OWS. Generation of - Signal keys, encryption of <key/> elements and - managing of the corresponding Signal sessions is handled by the Signal - library. The biggest problem with this approach was that the Signal library - accepted messages without a one-time prekey, which OMEMO should never do - (since the server will never “run out” of one-time prekeys).The - developers fixed this in commit cc209af. Combined with the - fact that the signed prekeys never get removed/updated, this means that - there was no forward secrecy for PreKeySignalMessages.

-

Key generation for the Signal keys (identity key, prekeys and ephemeral keys) is - handled by the Signal library. The random key for the OMEMO payload is - generated by javax.crypto.KeyGenerator class, - instantiated for 128 bits AES and a 128 bit payload IV is generated by - java.security.SecureRandom.

-

The Conversations application does not keep prekeys in memory during a MAM - catch-up. Instead, the application uses the Signal library, which always - deletes the keys from the store after decryption of a - PreKeySignalMessage.

-

- HTTP file upload Instead of using the OMEMO encrypted Jingle File - Transfer as a default method for file transfer, the application gives - preference to HTTP upload . That setup adds another - layer of indirection: the file is encrypted using AES in GCM mode, using a - random 128 bit key and a 64 bit IV, both generated by the - java.security.SecureRandom class. The file is - then uploaded and the sender gets an URL. The used key and IV are appended - to the URL as fragment identifier. The full URL is then considered to be the - payload of the OMEMO MessageElement. This is not necessarily wrong (a HTTP - client should not send the fragment identifier to the server in the HTTP - request), but it is not a clean solution and there is a significant chance - that some other client will get this wrong. In addition, the additional - layer of indirection suffers from the same problem when a malicious device - is present: it offers no authentication of the file content. To fix this, - both the OMEMO payload and the file would have to be authenticated inside - the Signal session.

-

- X509 certificates The code allows X509 certificates on identity keys, - although this is currently disabled by default. I have not looked in to much - detail, as this is outside the scope of the OMEMO specification, but there - appears to be nothing wrong with this approach.

-

- Purge The conversations application allows users to purge the key of - other devices, which says that it irreversibly marks the key as compromised. - This irreversibility is not guaranteed and is only enforced by the fact that - the application provides no user interface for reversing. Users have no - method for purging their own keys or otherwise marking them as - compromised.

-

- Group messages The Conversations application allows for group - conversations, although this is not specified by the ProtoXEP. From a - cryptographic perspective, these multi-user chats are no different from a - multi-device chat: to send a message to all users, the sending device will - have to set up a Signal session with each of the participating devices, - regardless of the user to which the device belongs.

-
-
- Conclusions/recommendations -

The OMEMO standard provides a protocol for secure communication with multiple - devices. This protocol is only secure if both users apply good operational - security in securing their devices and in adding devices of the other - party.

-

When both users are careful, they can set up a secure multi-device session. - However, if one of the users makes a mistake and adds a malicious device, or - if just one device of the users gets compromised, the authentication of all - messages is compromised, which is not necessary. The (ciphertext of the) - payload should be authenticated in each SignalMessage, preferably as - AAD.

-

The current OMEMO specification provides no link between devices that belong to - the same user. Eve might trick Alice thinking that her key belongs to Bob. - Bob should be able to sign a certificate that tells Alice which devices - belong to him, she would not be tricked so easily by Eve.

-

Each devices should regularly send a message (a heartbeat) in order to forward - the root ratchet of the Signal sessions, so that future secrecy can be - ensured. The already existing KeyTransportElement can be used as an empty - message that achieves this functionality.

-

Inactive devices, devices that never come online anymore, should be removed from - a conversation by the owning user. Their presence in a conversation means - that the forward secrecy of the entire conversation is compromised, because - they hold on to an old key. In addition, I recommend that inactive devices - may be removed by the other user. The above described heartbeat would - provide users with a method for detecting if a device has become - inactive.

-

The lifetime of (signed) prekeys should be mentioned in the standard. Signed - prekeys should be changed regularly in order to achieve forward secrecy. - This should at least be done after every time the user receives a - PreKeySignalMessage that uses the latest signed prekey, but it can be done - more often (based on time) to ensure the forward secrecy of dropped - messages. The standard should allow for alternative ciphers. However, the - standard should limit itself to the ciphers used in the OMEMO encryption. - Signal also has no way for specifying ciphers, but it is not in the scope of - the OMEMO standard to specify that.

-

Prekey collisions can be greatly reduced if the server hands out each key only - once, instead of all keys to every user that asks. This would not affect - security, but it would make successful delivery of the first message of the - protocol more reliable.

-

The specification should update its terminology to reflect the recent name - changes by Open Whisper Systems. Specifically, the term “Axolotl” should be - replaced with “the Signal Protocol” and the message names - “PreKeyWhisperMessage” and “WhisperMessage” should be replaced with - “PreKeySignalMessage” and “SignalMessage”.

-

My final remark is about the reference implementation. Unless a change is made - in the way that servers provide the keys, the code should not accept - PreKeySignalMessages without a one-time prekey. As stated before, this has - already been fixed in commit cc209af.

-
-
- Acknowledgement -

I would like to thank Daniel Gultsch for helping me out with some of the - questions I have had on the protocol and for his quick processing of my - feedback in the Conversations code.

-
-
- References - - - - Bernstein - Daniel J. - - Public Key Cryptography - PKC 2006: 9th International - Conference on Theory and Practice in Public-Key - Cryptography, New York, NY, USA, April 24- 26, 2006. - Proceedings - chapter Curve25519: New Diffie-Hellman Speed Records, pages 207–228 - - Springer Berlin Heidelberg - Berlin, Heidelberg - - 2006 - - https://cr.yp.to/papers.html#curve25519 - - - - - Bernstein - Daniel J. - - - Duif - Niels - - - Lange - Tanja - - - Schwabe - Peter - - - Yang - Bo-Yin - - High-speed high-security signatures - Journal of Cryptographic Engineering - 2(2):77–89, 2012 - - https://ed25519.cr.yp.to/ - - - - - Bernstein - Daniel J. - - - Lange - Tanja - - SafeCurves: choosing safe curves for elliptic-curve - cryptography - - http://safecurves.cr.yp.to - 2015-05-04 - - - - - Degabriele - Jean Paul - - - Lehmann - Anja - - - Paterson - Kenneth G. - - - Smart - Nigel P. - - - Strefler - Mario - - On the joint security of encryption and signature in - emv - Cryptology ePrint Archive - Report 2011/615, 2011 - - https://eprint.iacr.org/2011/615 - - - - - Dolev - Danny - - - Yao - Andrew C. - - On the security of public key protocols - Information Theory, IEEE - Transactions on - 29(2):198–208, March 1983 - - - - Frosch - Tilman - - - Mainka - Christian - - - Bader - Christoph - - - Bergsma - Florian - - - Schwenk - Jrg - - - Holz - Thorsten - - How Secure is TextSecure? - Cryptology ePrint Archive - Report 2014/904, November 2014 - - http://eprint.iacr.org/2014/904 - - - - - Gultsch - Daniel - - Conversations - - https://github.com/siacs/Conversations - 2016-04-07 - - - - - Gultsch - Daniel - - Conversations is an open source XMPP/Jabber client for - Android 4.0+ smart phones - - https://github.com/siacs/Conversations - 2016-05-10 - - - - - Gultsch - Daniel - - Conversations: the very last word in instant - messaging - - https://conversations.im/ - 2016-04-07 - - - - - Gultsch - Daniel - - OMEMO Multi-End Message and Object Encryption - - https://conversations.im/omemo/ - 2016-04-07 - - - - - Gultsch - Daniel - - XEP-xxxx: OMEMO Encrypted Jingle File Transfer - ProtoXEP, XMPP Standards Foundation - September 2015 - - https://xmpp.org/extensions/inbox/omemo-filetransfer.html - - - - - Gultsch - Daniel - - XEP-0363: HTTP File Upload - Standards Track, XMPP Standards Foundation - March 2016 - - https://xmpp.org/extensions/xep-0263.html - - - - - Hildebrand - Joe - - - Miller - Matthew - - XEP-0280: Message Carbons - Standards Track, XMPP Standards Foundation - February 2016 - - https://xmpp.org/extensions/xep-0280.html - - - - - Krawczyk - Hugo - - - Bellare - Mihir - - - Canetti - Ran - - HMAC: Keyed-Hashing for Message Authentication - RFC 2104, RFC Editor - February 1997 - - https://www.rfc-editor.org/rfc/rfc2104.txt - - - - - Krawczyk - Hugo - - - Eronen - Pasi - - HMAC-based Extract-and-Expand Key Derivation Function - (HKDF) - RFC 5869, RFC Editor - May 2010 - - https://www.rfc-editor.org/rfc/rfc5869.txt - - - - - Marlinspike - Moxie - - Advanced cryptographic ratcheting - November 2013 - - https://whispersystems.org/ blog/advanced-ratcheting/ - 2016-05-10 - - - - - Marlinspike - Moxie - - Forward Secrecy for Asynchronous Messages - Augustus 2013 - - https://whispersystems.org/blog/asynchronous-security/ - 2016-05-10 - - - - - Marlinspike - Moxie - - Simplifying OTR deniability - July 2013 - - https://whispersystems.org/blog/ simplifying-otr-deniability/ - 2016-05-10 - - - - - Marlinspike - Moxie - - Private Group Messaging - May 2014 - - https://whispersystems.org/blog/private-groups/ - 2016-04-07 - - - - - Marlinspike - Moxie - - Signal on the outside, Signal on the inside - March 2016 - - https://whispersystems.org/blog/signal-inside-and-out/ - 2016-04-07 - - - - - Smith - Kevin - - - Wild - Matthew - - XEP-0313: Message Archive Management - Standards Track, XMPP Standards Foundation - March 2016 - - https://xmpp.org/extensions/ - xep-0313.html - - - - - Menezes - Alfred - - - Ustaoglu - Berkant - - On reusing ephemeral keys in Diffie-Hellman key agreement - protocols - International Journal of Applied Cryptography - 2(2):154–158, - 2010 - - - - NIST - - Announcing the Advanced Encryption Standard (AES) - Technical - report, NIST - November 2001 - - - - Perrin - Trevor - - Double Ratchet Algorithm - - https://github.com/trevp/doubleratchet/wiki - 2016-04-07 - - - - - Stout - Lance - - - Saint-Andre - Peter - - XEP-0234: Jingle File Transfer - Standards Track, XMPP Standards - Foundation - March 2016 - - https://xmpp.org/extensions/xep-0234.html - - - - - Saint-Andre - Peter - - Extensible Messaging and Presence Protocol (XMPP): - Core - RFC 6120, - RFC Editor - March 2011 - - https://www.rfc-editor.org/rfc/rfc6120.txt - - - - - Saint-Andre - Peter - - Extensible Messaging and Presence Protocol (XMPP): - Core - RFC 6122, - RFC Editor - March 2011 - - https://www.rfc-editor.org/rfc/rfc6122.txt - - - - - Saint-Andre - Peter - - Extensible Messaging and Presence Protocol (XMPP): Instant - Messaging and Presence - RFC 6121, RFC Editor - March 2011 - - https://www.rfc-editor.org/ rfc/rfc6121.txt - - - - - Straub - Andreas - - XEP-xxxx: OMEMO Encryption - ProtoXEP, XMPP Standards Foundation - October 2015 - - https://xmpp.org/extensions/inbox/omemo.html - - - - - Open Whisper Systems - Signal Protocol library for Java/Android - - https://github.com/ WhisperSystems/libsignal-protocol-java - 2016-05-10 - - - - - Wilcox-O’Hearn - Zooko - - Attacks on Convergent Encryption - Technical report, Tahoe-LAFS - March 2008 - - https://tahoe-lafs.org/hacktahoelafs/drew perttula.html - 2016-05-10 - - - -
- - - Minor corrections -

During my review of the OMEMO documentation, I noted some minor errors in the - specification, most of which are typographical errors. This appendix - contains a list of corrections. None of these errors affect the security of - the protocol in any way.

-

In the OMEMO XEP:

-
    -
  • Section 4.5: both own devices (should be: both owned devices)
  • -
  • Section 6: axoltol (should have been: axolotl; should be: “the Signal - Protocol”)
  • -
  • Appendix G: duplicate references
  • -
  • Inconsistent usage of “.” (period) at the end of list items
  • -
-

In the OMEMO file transfer XEP:

-
    -
  • Section 3: Remeo and Juliet (should be: Romeo and Juliet)
  • -
  • Section 3: file tranfer (should be: file transfer)
  • -
  • Section 3, Example 1: </file> has wrong - indentation
  • -
  • Section 5: intilization (should be: initialization)
  • -
  • Section 5: the hash of encrypted file (should be: the hash of the - encrypted file)
  • -
  • Section 5: rangend tranfer (should be: ranged transfer)
  • -
  • Section 7: might not the Device ID (should be (?): might not have)
  • -
  • Section 8: Last list item is missing a “.” (period)
  • -
  • The document is missing a reference to the OMEMO XEP
  • -
-
- From 00304b9e4f7c363686f1689db34d310d74543acf Mon Sep 17 00:00:00 2001 From: Deborah Date: Fri, 26 Aug 2016 16:32:04 +0200 Subject: [PATCH 30/60] using tag instead of hardcoded reference to pentesting. --- xml/source/snippets/offerte/en/methodology.xml | 2 +- xml/source/snippets/offerte/en/planningandpayment.xml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/xml/source/snippets/offerte/en/methodology.xml b/xml/source/snippets/offerte/en/methodology.xml index 7a26cc2..eacdfb1 100644 --- a/xml/source/snippets/offerte/en/methodology.xml +++ b/xml/source/snippets/offerte/en/methodology.xml @@ -43,7 +43,7 @@ Potential threats and vulnerabilities are indexed, based upon the collected info

Step 6: Exploitation
Attempt to use vulnerabilities of the various components. The diverse applications and components of the client's infrastructure are -relentlessly probed for frequently occurring design, configuration, and +rigorously probed for frequently occurring design, configuration, and programming errors.

Note: uses open-source scanning tools to get its bearings, diff --git a/xml/source/snippets/offerte/en/planningandpayment.xml b/xml/source/snippets/offerte/en/planningandpayment.xml index 9de70b3..5bc06ae 100644 --- a/xml/source/snippets/offerte/en/planningandpayment.xml +++ b/xml/source/snippets/offerte/en/planningandpayment.xml @@ -8,8 +8,7 @@

- Our fixed-fee price quote for the above described penetration - testing services is .- excl. VAT and out-of-pocket expenses. + Our fixed-fee price quote for the above described is .- excl. VAT and out-of-pocket expenses. will send an invoice after completion of this assignment. will pay the agreed amount within 30 days of the invoice date.

From 4cb4080323bcccd4a5dfbfe658de9eb7670b8e22 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Mon, 29 Aug 2016 21:42:59 +0200 Subject: [PATCH 31/60] Added script to pull framework changes into clones --- pull_upstream_changes.sh | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 pull_upstream_changes.sh diff --git a/pull_upstream_changes.sh b/pull_upstream_changes.sh new file mode 100644 index 0000000..0629431 --- /dev/null +++ b/pull_upstream_changes.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +# pull_upstream_changes - Updates repo and applies upstream changes +# +# Copyright (C) 2016 Peter Mosmans [Radically Open Security] +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +# File which has to exist in the target directory to qualify as target +FINGERPRINT="dtd" +# List of files and directories that need to be updated +SOURCEFILES="dtd xslt" +# Root directory within source repo +SOURCEROOT="xml" + + +## Don't change anything below this line +VERSION=0.6 + +source=$(dirname $(readlink -f $0)) +target=$1 + +if [ -z "$target" ]; then + target=$(readlink -f .) + if [ "${target}" == "${source}" ]; then + echo "Usage: pull_upstream_changes [TARGET]" + echo " or run from within target directory" + exit + fi +fi + +# Check if the target actually contains the repository +if [ ! -z ${FINGERPRINT} ] && [ ! -d $target/dtd ]; then + echo "[-] ${target} does not contain the correct repository" + exit +fi + +# Update repository +echo "[*] Updating source repository (${source})..." +pushd "$source" >/dev/null && git pull && popd >/dev/null + +# Only update newer files +echo "[*] Applying changes (if any)..." +for sourcefile in ${SOURCEFILES}; do + if [ -d "${source}/${SOURCEROOT}/${sourcefile}" ]; then + cp -prv ${source}/${SOURCEROOT}/${sourcefile} $target/ + else + cp -pv ${source}/${SOURCEROOT}/${sourcefile} $target/${sourcefile} + fi +done +echo "[+] Done" + From 5e741de8f709f7283dbee264d99d217134b99e59 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 5 Sep 2016 13:40:18 +0200 Subject: [PATCH 32/60] ignore mac filesystem artefact --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9a4476c..226322e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ xml/PenText.xpr .projectile # Compiled Python stuff *.pyc + +.DS_Store From 60979f8701fde330ae5f6b464c78246b0ae6b6c8 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Thu, 8 Sep 2016 16:20:56 +1000 Subject: [PATCH 33/60] Enforce unicode output on the console --- chatops/python/validate_report.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py index c57edf3..6c182f7 100644 --- a/chatops/python/validate_report.py +++ b/chatops/python/validate_report.py @@ -20,6 +20,7 @@ the Free Software Foundation, either version 3 of the License, or from __future__ import absolute_import from __future__ import print_function +from __future__ import unicode_literals import argparse import mmap @@ -334,9 +335,10 @@ def validate_type(tree, filename, options): root.find(tag).text)) root.find(tag).text = capitalize(root.find(tag).text) fix = True - if tag == 'description' and get_all_text(root.find(tag)).strip()[-1] != '.': - print('[A] Description missing final dot in {0}: {1}'.format(filename, get_all_text(root.find(tag)))) - root.find(tag).text = get_all_text(root.find(tag)).strip() + '.' + all_text = get_all_text(root.find(tag)) + if tag == 'description' and all_text.strip()[-1] != '.': + print('[A] Description missing final dot in {0}: {1}'.format(filename, all_text)) + root.find(tag).text = all_text.strip() + '.' fix = True if fix: if options['auto_fix']: @@ -502,6 +504,9 @@ def main(): The main program. Cross-checks, validates XML files and report. Returns True if the checks were successful. """ + # we want to print pretty Unicode characters + reload(sys) + sys.setdefaultencoding('utf-8') options = parse_arguments() if options['all']: options['capitalization'] = True From 073ec455198b9831744b9861a5d07e1dd48443d5 Mon Sep 17 00:00:00 2001 From: parallax Date: Thu, 8 Sep 2016 13:31:14 +0100 Subject: [PATCH 34/60] Expanded rosbot's usage docs --- chatops/scripts/rosbot.coffee | 46 ++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/chatops/scripts/rosbot.coffee b/chatops/scripts/rosbot.coffee index 2dc342f..30eba0b 100644 --- a/chatops/scripts/rosbot.coffee +++ b/chatops/scripts/rosbot.coffee @@ -9,18 +9,46 @@ # # Usage: # build -# Detailed line 1 -# Detailed line 2 -# Detailed line 3 +# Builds a .pdf document of based on files in . The file is stored in target/ of the specified repository. +# Usage: build [namespace=ros] [branch=master] [-v] +# Can be either report or quote +# Specifies the name of the gitlab repository where the files needed to do the job are located. +# [namespace] This optional parameter refers to the gitlab user or group this repository is part of. Defaults to ros +# [branch] This optional parameter specifies which branch to use. Defaults to master. +# [-v] Specifying this flag will yield verbose output. +# +# convert +# Converts gitlab issues in to xml files. The issues must be open and need to be labelled with either finding or non-finding. +# Depending on the label, the xml files will be put in either the finding/ or non-finding/ directory in the repository. +# Usage: convert [--closed] [--dry-run] [--issues] [--projects] [-v|--verbose] [-y] +# Specifies the name of the gitlab repository where the files needed to do the job are located. +# [--closed] If specified, will include closed issues +# [--dry-run] If specified, will not write xml files, but only displays output on screen +# [--issues] If specified, will list issues in given +# [--projects] If specified, will list gitlab repositories +# [-v|--verbose] If specified, will yield verbose output +# [-y] Assumes yes on all questions # -# respond -# Detailed line 11 -# Detailed line 22 -# Detailed line 33 +# validate +# Validates the XML structure of a reports or quote to be able to generate a .pdf file. (See build command) +# Usage: validate [-a|-all] [--autofix] [-c|--capitalization] [--debug] [--edit] [--learn] [--long] [--offer] [--spelling] [-v|--verbose] [--no-report] [--quiet] +# Specifies the name of the gitlab repository where the files needed to do the job are located. +# [-a|-all] Perform all checks +# [--autofix] Try to automatically correct issues +# [-c|--capitalization] Check capitalization +# [--debug] Show debug information +# [--edit] Open files with issues using an editor +# [--learn] Store all unknown words in dictionary file +# [--long] Check for long lines +# [--offer] Validate offer master file +# [--spelling] Check spelling +# [-v|--verbose] If specified, will yield verbose output +# [--no-report] Do not validate report master file +# [--quiet] Don't output status messages # # # Commands: -# hubot build - Builds a .pdf file from in +# hubot build - Builds a .pdf file from in # hubot convert - Builds a .xml file from in # hubot invoice - Builds pdf invoice from quote # hubot quickscope [branch=MASTER] - Converts quickscope into quotation @@ -240,4 +268,4 @@ module.exports = (robot) -> # All odd case have been dealt with, let's get down to business for index, line of robot.usages[command] - msg.send line \ No newline at end of file + msg.send line From 7029ed422a1f84e7fff2548203b6a669883e92e4 Mon Sep 17 00:00:00 2001 From: parallax Date: Thu, 8 Sep 2016 13:37:33 +0100 Subject: [PATCH 35/60] Fixed typo --- chatops/python/gitlab-to-pentext.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 0e42b22..1f9fe26 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -40,7 +40,7 @@ except ImportError as e: print('[-] This script needs python-gitlab, jxmlease and validate_report library', file=sys.stderr) print("validate_report is part of the pentext framework", file=sys.stderr) print("Install python-gitlab with: sudo pip install python-gitlab", file=sys.stderr) - print("Install pjxmlease with: sudo pip install jxmlease", file=sys.stderr) + print("Install jxmlease with: sudo pip install jxmlease", file=sys.stderr) print("", file=sys.stderr) print("Currently missing: " + e.message,file=sys.stderr) From 0d849aeaef63f200ea2e5fbfe51626c97703f200 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Mon, 12 Sep 2016 21:11:12 +1000 Subject: [PATCH 36/60] Added hard line breaks after MAX_LINE characters --- chatops/python/validate_report.py | 80 ++++++++++++++++--------------- 1 file changed, 41 insertions(+), 39 deletions(-) diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py index 6c182f7..3a90922 100644 --- a/chatops/python/validate_report.py +++ b/chatops/python/validate_report.py @@ -45,8 +45,8 @@ SNIPPETDIR = 'snippets/' TEMPLATEDIR = 'templates/' OFFERTE = '/offerte.xml' REPORT = '/report.xml' -WARN_LINE = 100 # There should be a separation character after x characters... -MAX_LINE = 130 # ... and before y +WARN_LINE = 80 # There should be a separation character after x characters... +MAX_LINE = 86 # ... and before y if DOCBUILDER: @@ -63,8 +63,8 @@ def parse_arguments(): Parses command line arguments. """ parser = argparse.ArgumentParser( - formatter_class=argparse.RawDescriptionHelpFormatter, - description=textwrap.dedent('''\ + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent('''\ validate_report - validates offer letters and reports Copyright (C) 2015-2016 Radically Open Security (Peter Mosmans) @@ -172,12 +172,12 @@ def validate_files(filenames, options): scans = [] for filename in filenames: if (filename.lower().endswith('.xml') or - filename.lower().endswith('xml"')): + filename.lower().endswith('xml"')): if SNIPPETDIR not in filename and TEMPLATEDIR not in filename: if (OFFERTE in filename and options['offer']) or \ (REPORT in filename and not options['no_report']): masters.append(filename) - # try: + # try: type_result, xml_type = validate_xml(filename, options) result = result and type_result if 'non-finding' in xml_type: @@ -225,9 +225,9 @@ def validate_xml(filename, options): try: with open(filename, 'rb') as xml_file: xml.sax.parse(xml_file, xml.sax.ContentHandler()) - tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False)) - type_result, xml_type = validate_type(tree, filename, options) - result = validate_long_lines(tree, filename, options) and result and type_result + tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False)) + type_result, xml_type = validate_type(tree, filename, options) + result = validate_long_lines(tree, filename, options) and result and type_result if options['edit'] and not result: open_editor(filename) except (xml.sax.SAXException, ElementTree.ParseError) as exception: @@ -269,7 +269,7 @@ def capitalize(line): for word in line.strip().split(): if word not in NOT_CAPITALIZED or not len(capitalized): word = word[0].upper() + word[1:] - capitalized += word + ' ' + capitalized += word + ' ' return capitalized.strip() @@ -351,7 +351,7 @@ def validate_type(tree, filename, options): def validate_long_lines(tree, filename, options): """ - Checks whether
 section contains lines longer than MAX_LINE characters
+    Checks whether pre or code section contains lines longer than MAX_LINE characters
     Returns True if the file validated successfully.
     """
     if not options['long']:
@@ -359,29 +359,31 @@ def validate_long_lines(tree, filename, options):
     result = True
     fix = False
     root = tree.getroot()
-    for pre_section in root.iter('pre'):
+    for pre_section in [j for section in ('pre', 'code') for j in root.iter(section)]:
         if pre_section.text:
             fixed_text = ''
             for line in pre_section.text.splitlines():
-                fixed_line = line
-                if len(line.strip()) > MAX_LINE:
-                    if ' ' not in line[WARN_LINE:MAX_LINE]:
-                        print('[-] {0} Line inside 
 too long: {1}'.
-                              format(filename, line.encode('utf-8')[WARN_LINE:]))
-                        result = False
-                        for split in ['"', '\'', '=', '-', ';']:
-                            if split in line.encode('utf-8').strip()[WARN_LINE:MAX_LINE]:
-                                print('[A] can be fixed')
-                                fix = True
-                                index = line.find(split, WARN_LINE)
-                                fixed_line = line[:index + 1] + '\n'
-                                fixed_line += line[index + 1:]
-                fixed_text += fixed_line.encode('utf-8')
-    if fix:
-        if options['auto_fix']:
-            print('[+] Automatically fixed {0}'.format(filename))
-#            tree.write(filename)
-        print(fixed_text)
+                while len(line) > MAX_LINE:
+                    result = False
+                    print('[-] {0} Line inside {1} too long: {2}'.
+                          format(filename, section, line.encode('utf-8')[MAX_LINE:]))
+                    cutpoint = MAX_LINE
+                    for split in [' ', '"', '\'', '=', '-', ';']:
+                        if split in line.encode('utf-8')[WARN_LINE:MAX_LINE]:
+                            cutpoint = line.find(split, WARN_LINE, MAX_LINE)
+                    fix = True
+                    fixed_line = line[:cutpoint] + '\n'
+                    print('cutted line {0}'.format(line))
+                    line = line[cutpoint:]
+                    fixed_text += fixed_line.encode('utf-8')
+                    print('[A] can be fixed (breaking at {0}): {1}'.format(cutpoint, fixed_line))
+                fixed_text += line + '\n'
+            if fix and options['auto_fix']:
+                print('[+] Automatically fixed {0}'.format(filename))
+                pre_section.text = fixed_text
+                print(fixed_text)
+                tree.write(filename)
+                close_file(filename)
     return result
 
 
@@ -399,7 +401,7 @@ def validate_master(filename, findings, non_findings, scans, options):
         if not find_keyword(xmltree, 'TODO', filename):
             print('[-] Keyword checks failed for {0}'.format(filename))
             result = False
-        print_output(options, 'Performing cross check on findings, non-findings and scans...')
+            print_output(options, 'Performing cross check on findings, non-findings and scans...')
         for finding in findings:
             if not cross_check_file(filename, finding):
                 print('[A] Cross check failed for finding {0}'.
@@ -450,7 +452,7 @@ def cross_check_file(filename, external):
         print('[-] could not find a reference in {0} to {1}'.format(filename, external))
         result = False
     return result
-    
+
 
 def add_include(filename, identifier, findings):
     """
@@ -465,7 +467,7 @@ def add_include(filename, identifier, findings):
         for finding in findings:
             new_finding = ElementTree.XML(''.format(finding))
             finding_section.append(new_finding)
-        tree.write(filename, encoding="utf-8", xml_declaration=True, pretty_print=True)
+            tree.write(filename, encoding="utf-8", xml_declaration=True, pretty_print=True)
 
 def close_file(filename):
     """
@@ -513,11 +515,11 @@ def main():
         options['long'] = True
     if options['learn']:
         print_output(options, 'Adding unknown words to {0}'.format(VOCABULARY))
-#    if options['spelling']:
-#        if not os.path.exists(VOCABULARY):
-#            print_output(options, 'Creating project-specific vocabulary file {0}'.
-#                  format(VOCABULARY))
-#            options['learn'] = True
+        #    if options['spelling']:
+        #        if not os.path.exists(VOCABULARY):
+        #            print_output(options, 'Creating project-specific vocabulary file {0}'.
+        #                  format(VOCABULARY))
+        #            options['learn'] = True
     print_output(options, 'Validating all XML files...')
     result = validate_files(all_files(), options)
     if result:

From 00af6a3c4e8a9215f29dfa61f59c684a8b549cce Mon Sep 17 00:00:00 2001
From: skyanth 
Date: Mon, 12 Sep 2016 17:04:08 +0200
Subject: [PATCH 37/60] preprinted values are back in waiver signing box

---
 xml/source/snippets/offerte/en/waiver.xml |  2 --
 xml/xslt/waiver.xslt                      | 19 ++++++++++++++-----
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/xml/source/snippets/offerte/en/waiver.xml b/xml/source/snippets/offerte/en/waiver.xml
index b113701..b598401 100644
--- a/xml/source/snippets/offerte/en/waiver.xml
+++ b/xml/source/snippets/offerte/en/waiver.xml
@@ -74,7 +74,5 @@
                         evidence it has which relates to this investigation or these
                         proceedings.

- - diff --git a/xml/xslt/waiver.xslt b/xml/xslt/waiver.xslt index 7aca87f..08594dc 100644 --- a/xml/xslt/waiver.xslt +++ b/xml/xslt/waiver.xslt @@ -110,10 +110,16 @@ + + + - + + + + @@ -138,20 +144,20 @@ -         - +     + select="$signee_waiver_rep"/>     + select="$signee_long"/> @@ -177,6 +183,9 @@ + + + From 5476c0f466effb38dec28160a69ca755e9fd8584 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 13 Sep 2016 19:24:02 +1000 Subject: [PATCH 38/60] Don't check XML files in the notes folder Fix issue where not all words were properly cased. Unified output messages --- chatops/python/validate_report.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py index 3a90922..6c1a499 100644 --- a/chatops/python/validate_report.py +++ b/chatops/python/validate_report.py @@ -221,6 +221,9 @@ def validate_xml(filename, options): """ result = True xml_type = '' + # crude check whether the file is outside the pentext framework + if 'notes' in filename: + return result, xml_type print_output(options, 'Validating XML file: {0}'.format(filename)) try: with open(filename, 'rb') as xml_file: @@ -269,7 +272,7 @@ def capitalize(line): for word in line.strip().split(): if word not in NOT_CAPITALIZED or not len(capitalized): word = word[0].upper() + word[1:] - capitalized += word + ' ' + capitalized += word + ' ' return capitalized.strip() @@ -394,7 +397,7 @@ def validate_master(filename, findings, non_findings, scans, options): result = True include_findings = [] include_nonfindings = [] - print_output(options, '[*] Validating master file {0}'.format(filename)) + print_output(options, 'Validating master file {0}'.format(filename)) try: xmltree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False)) @@ -415,7 +418,7 @@ def validate_master(filename, findings, non_findings, scans, options): include_nonfindings.append(non_finding) result = False if result: - print_output(options, '[+] Cross checks successful') + print_output(options, 'Cross checks successful') except (ElementTree.ParseError, IOError) as exception: print('[-] validating {0} failed ({1})'.format(filename, exception)) result = False From 17da0c984621324f29a33f5b622e7ea12ad26370 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 13 Sep 2016 19:26:43 +1000 Subject: [PATCH 39/60] Pylint fixes --- chatops/python/validate_report.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py index 6c1a499..a0ec428 100644 --- a/chatops/python/validate_report.py +++ b/chatops/python/validate_report.py @@ -172,7 +172,7 @@ def validate_files(filenames, options): scans = [] for filename in filenames: if (filename.lower().endswith('.xml') or - filename.lower().endswith('xml"')): + filename.lower().endswith('xml"')): if SNIPPETDIR not in filename and TEMPLATEDIR not in filename: if (OFFERTE in filename and options['offer']) or \ (REPORT in filename and not options['no_report']): @@ -313,7 +313,8 @@ def validate_type(tree, filename, options): else: if attribute == 'threatLevel' and root.attrib[attribute] not in \ ('Low', 'Moderate', 'Elevated', 'High', 'Extreme'): - print('[-] threatLevel is not Low, Moderate, High, Elevated or Extreme: {0}'.format(root.attrib[attribute])) + print('[-] threatLevel is not Low, Moderate, High, Elevated or Extreme: {0}'. + format(root.attrib[attribute])) result = False if attribute == 'type' and (options['capitalization'] and not \ is_capitalized(root.attrib[attribute])): @@ -472,16 +473,17 @@ def add_include(filename, identifier, findings): finding_section.append(new_finding) tree.write(filename, encoding="utf-8", xml_declaration=True, pretty_print=True) + def close_file(filename): """ Replace placeholder with proper XML include. """ - f = open(filename,'r') + f = open(filename, 'r') filedata = f.read() f.close() - newdata = filedata.replace("placeholderinclude","xi:include") + newdata = filedata.replace("placeholderinclude", "xi:include") fileout = filename - f = open(fileout,'w') + f = open(fileout, 'w') f.write(newdata) f.close() tree = ElementTree.parse(filename, ElementTree.XMLParser(strip_cdata=False)) From 707a119cc8d19f6b2772cee42a0ec49bee4c879d Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Wed, 14 Sep 2016 12:27:03 +1000 Subject: [PATCH 40/60] Show gitlab exception Various pylint fixes --- chatops/python/gitlab-to-pentext.py | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 2a780b3..3a80c73 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -46,7 +46,7 @@ def add_finding(issue, options): title = validate_report.capitalize(issue.title.strip()) print_status('{0} - {1} - {2}'.format(issue.state, issue.labels, title), options) - threatLevel = 'Moderate' + threat_level = 'Moderate' finding_type = 'TODO' finding_id = '{0}-{1}'.format(issue.iid, valid_filename(title)) filename = 'findings/{0}.xml'.format(finding_id) @@ -65,7 +65,7 @@ def add_finding(issue, options): finding['recommendation']['ul']['li'] = 'TODO' finding_xml = jxmlease.XMLDictNode(finding, tag='finding', xml_attrs={'id': finding_id, - 'threatLevel': threatLevel, + 'threatLevel': threat_level, 'type': finding_type}) if options['dry_run']: print_line('[+] {0}'.format(filename)) @@ -93,10 +93,10 @@ def add_non_finding(issue, options): non_finding = collections.OrderedDict() non_finding['title'] = title non_finding['p'] = unicode.replace(issue.description, - '\r\n', '\n') + '\r\n', '\n') for note in [x for x in issue.notes.list() if not x.system]: non_finding['p'] += unicode.replace(note.body, - '\r\n', '\n') + '\r\n', '\n') non_finding_xml = jxmlease.XMLDictNode(non_finding, tag='non-finding', xml_attrs={'id': non_finding_id}) if options['dry_run']: @@ -148,11 +148,11 @@ def list_issues(gitserver, options): add_finding(issue, options) if 'non-finding' in issue.labels: add_non_finding(issue, options) - except: - print_error('could not find any issues', -1) + except Exception as e: + print_error('could not find any issues {{0}'.format(e), -1) -def list_projects(gitserver, options): +def list_projects(gitserver): """ Lists all available projects. """ @@ -166,8 +166,8 @@ def parse_arguments(): Parses command line arguments. """ parser = argparse.ArgumentParser( - formatter_class=argparse.RawDescriptionHelpFormatter, - description=textwrap.dedent('''\ + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent('''\ gitlab-to-pentext - imports and updates gitlab issues into PenText (XML) format Copyright (C) 2015-2016 Radically Open Security (Peter Mosmans) @@ -195,7 +195,7 @@ the Free Software Foundation, either version 3 of the License, or return vars(parser.parse_args()) -def preflight_checks(options): +def preflight_checks(): """ Checks if all tools are there. Exits with 0 if everything went okilydokily. @@ -244,14 +244,14 @@ def valid_filename(filename): """ Return a valid filename. """ - valid_filename = '' + result = '' for char in filename.strip(): if char in [':', '/', '.', '\\', ' ', '[', ']', '(', ')', '\'']: - if len(char) and not valid_filename.endswith('-'): - valid_filename += '-' + if len(char) and not result.endswith('-'): + result += '-' else: - valid_filename += char - return valid_filename.lower() + result += char + return result.lower() def main(): @@ -259,9 +259,9 @@ def main(): The main program. """ options = parse_arguments() - gitserver = preflight_checks(options) + gitserver = preflight_checks() if options['projects']: - list_projects(gitserver, options) + list_projects(gitserver) if options['issues']: list_issues(gitserver, options) From 3772eb96b743bb83acadbc80c87db6e7a62b8fbd Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Wed, 14 Sep 2016 18:40:53 +1000 Subject: [PATCH 41/60] Fixed issue when issues could not be retrieved --- chatops/python/gitlab-to-pentext.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 3a80c73..9af6f56 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -26,7 +26,6 @@ from __future__ import unicode_literals import argparse import collections import os -import re import sys import textwrap @@ -43,6 +42,9 @@ except ImportError: def add_finding(issue, options): + """ + Writes issue as XML finding to file. + """ title = validate_report.capitalize(issue.title.strip()) print_status('{0} - {1} - {2}'.format(issue.state, issue.labels, title), options) @@ -127,13 +129,11 @@ def convert_markdown(text): """ result = text return result - print('EXAMINING ' + text + ' END') - monospace = re.findall("\`\`\`(.*?)\`\`\`", text, re.DOTALL) - print(monospace) - if len(monospace): - print('YESSS ' + monospace) - result = {} - result['monospace'] = ''.join(monospace) + # print('EXAMINING ' + text + ' END') + # monospace = re.findall("\`\`\`(.*?)\`\`\`", text, re.DOTALL) + # if len(monospace): + # result = {} + # result['monospace'] = ''.join(monospace) def list_issues(gitserver, options): @@ -141,7 +141,7 @@ def list_issues(gitserver, options): Lists all issues for options['issues'] """ try: - for issue in gitserver.projects.get(options['issues']).issues.list(all=True): + for issue in gitserver.project_issues.list(project_id=options['issues']): if issue.state == 'closed' and not options['closed']: continue if 'finding' in issue.labels: @@ -149,7 +149,7 @@ def list_issues(gitserver, options): if 'non-finding' in issue.labels: add_non_finding(issue, options) except Exception as e: - print_error('could not find any issues {{0}'.format(e), -1) + print_error('could not find any issues ({0})'.format(e), -1) def list_projects(gitserver): From d535a6c80c0491f4cbe0c9442d1b622020dc64eb Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Wed, 14 Sep 2016 18:52:08 +1000 Subject: [PATCH 42/60] ...because style matters :) Fixed pylint issues --- chatops/python/gitlab-to-pentext.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/chatops/python/gitlab-to-pentext.py b/chatops/python/gitlab-to-pentext.py index 8918e53..6200c2a 100644 --- a/chatops/python/gitlab-to-pentext.py +++ b/chatops/python/gitlab-to-pentext.py @@ -35,14 +35,14 @@ try: # Path of this script. The validate_report module is on the same path. sys.path.append(os.path.dirname(__file__)) import validate_report -except ImportError as e: - print('[-] This script needs python-gitlab, jxmlease and validate_report library', file=sys.stderr) +except ImportError as exception: + print('[-] This script needs python-gitlab, jxmlease and validate_report library', + file=sys.stderr) print("validate_report is part of the pentext framework", file=sys.stderr) print("Install python-gitlab with: sudo pip install python-gitlab", file=sys.stderr) print("Install jxmlease with: sudo pip install jxmlease", file=sys.stderr) print("", file=sys.stderr) - print("Currently missing: " + e.message,file=sys.stderr) - + print("Currently missing: " + exception.message, file=sys.stderr) sys.exit(-1) @@ -153,8 +153,8 @@ def list_issues(gitserver, options): add_finding(issue, options) if 'non-finding' in issue.labels: add_non_finding(issue, options) - except Exception as e: - print_error('could not find any issues ({0})'.format(e), -1) + except Exception as exception: + print_error('could not find any issues ({0})'.format(exception), -1) def list_projects(gitserver): @@ -208,8 +208,8 @@ def preflight_checks(): try: gitserver = gitlab.Gitlab.from_config('remote') gitserver.auth() - except gitlab.config.GitlabDataError as e: - print_error('could not connect {0}'.format(e), -1) + except gitlab.config.GitlabDataError as exception: + print_error('could not connect {0}'.format(exception), -1) return gitserver From c470a07458cdf1e695836e48efc4b5d4d1e32c59 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Fri, 16 Sep 2016 10:20:01 +1000 Subject: [PATCH 43/60] Show nice error message when importing lxml fails --- chatops/python/validate_report.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/chatops/python/validate_report.py b/chatops/python/validate_report.py index a0ec428..fe9ae61 100644 --- a/chatops/python/validate_report.py +++ b/chatops/python/validate_report.py @@ -31,7 +31,13 @@ import sys import textwrap import xml.sax -from lxml import etree as ElementTree +try: + from lxml import etree as ElementTree +except ImportError as exception: + print('[-] This script needs lxml', + file=sys.stderr) + print("Install lxml with: sudo pip install lxml", file=sys.stderr) + sys.exit(-1) # When set to True, the report will be validated using docbuilder From d51dfadae9e877371e78d214f2663f95f38d9e39 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Fri, 16 Sep 2016 17:20:51 +1000 Subject: [PATCH 44/60] Added support for using a different quote source The third parameter can be used to specify a different repository to use as 'base' and pull the client and quote information from. --- chatops/bash/handler_pentest | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/chatops/bash/handler_pentest b/chatops/bash/handler_pentest index db2f2a7..88595ea 100644 --- a/chatops/bash/handler_pentest +++ b/chatops/bash/handler_pentest @@ -17,7 +17,7 @@ # (at your option) any later version. -VERSION=0.8 +VERSION=0.9 SAXON=/usr/local/bin/saxon/saxon9he.jar TEMPLATEREPO=ssh://git@gitlab.local/peter/templates @@ -33,6 +33,7 @@ pentext=$(echo $PENTEXTREPO|awk -F '/' '{print $5}') # Read standard 'command line' variables [[ ! -z $1 ]] && REPO=$1 [[ ! -z $2 ]] && NAMESPACE=$2 +[[ ! -z $3 ]] && PREVIOUS=$3 BRANCH=master TARGET=quote @@ -121,13 +122,13 @@ grab_offer() { echo "[-] could not find $TARGET.xml" exit fi - cp client_info.xml $TEMPLOC/client_info.xml - cp $TARGET.xml $TEMPLOC/quote.xml + cp client_info.xml $TEMPLOC/client_info.xml &> /dev/null + cp $TARGET.xml $TEMPLOC/quote.xml &> /dev/null } convert_report() { - cp $TEMPLOC/quote.xml source/quote.xml - cp $TEMPLOC/client_info.xml source/client_info.xml + cp $TEMPLOC/quote.xml source/quote.xml &> /dev/null + cp $TEMPLOC/client_info.xml source/client_info.xml &> /dev/null pushd source &>/dev/null java -jar $SAXON -s:quote.xml -xsl:../xslt/off2rep.xsl -o:report.xml if [ ! -f report.xml ]; then @@ -149,6 +150,7 @@ preflight_checks echo "startpentest v${VERSION} - Ready for some ACTION?" ORIGREPO=$REPO REPO=off-$ORIGREPO +[[ ! -z $PREVIOUS ]] && $REPO=$PREVIOUS clone_repo grab_offer REPO=pen-${ORIGREPO} From 8b2d275e1401d2b30f63d6c1070674d6d95a38af Mon Sep 17 00:00:00 2001 From: Patricia Piolon Date: Mon, 26 Sep 2016 10:02:11 +0200 Subject: [PATCH 45/60] Updated FOP version --- xml/doc/Tools manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xml/doc/Tools manual.md b/xml/doc/Tools manual.md index 54f3276..27e7a6f 100644 --- a/xml/doc/Tools manual.md +++ b/xml/doc/Tools manual.md @@ -28,7 +28,7 @@ Download Saxon Home Edition (HE) 9.6 **for Java** at: http://saxon.sourceforge.n ### FOP -Download Apache FOP 1.1 at https://xmlgraphics.apache.org/fop/download.html and unzip. +Download Apache FOP 2.1 at https://xmlgraphics.apache.org/fop/download.html and unzip. ### Fonts From 1a2ea68201a81c6a28e2247f4ac7ffe23fbc51ab Mon Sep 17 00:00:00 2001 From: skyanth Date: Fri, 30 Sep 2016 14:39:38 +0200 Subject: [PATCH 46/60] Fixed some Dutch snippets --- .../offerte/nl/codeauditmethodology.xml | 51 +- xml/source/snippets/offerte/nl/conditions.xml | 10 +- .../offerte/nl/generaltermsandconditions.xml | 488 +++++++++++------- .../offerte/nl/planningandpayment.xml | 11 +- .../snippets/offerte/nl/projectoverview.xml | 33 +- .../snippets/offerte/nl/teamandreporting.xml | 29 +- xml/source/snippets/offerte/nl/waiver.xml | 4 +- 7 files changed, 369 insertions(+), 257 deletions(-) diff --git a/xml/source/snippets/offerte/nl/codeauditmethodology.xml b/xml/source/snippets/offerte/nl/codeauditmethodology.xml index 3ae1430..d31a45f 100644 --- a/xml/source/snippets/offerte/nl/codeauditmethodology.xml +++ b/xml/source/snippets/offerte/nl/codeauditmethodology.xml @@ -1,39 +1,36 @@
- Broncode Audit -

zal een broncode audit uitvoeren ter ondersteuning van pentesting. - Gedurende een code audit onderzoeken wij handmatig de broncode van een applicatie + Broncode-audit +

zal een broncode-audit uitvoeren ter ondersteuning van pentesting. + Gedurende de code-audit onderzoeken wij handmatig de broncode van een applicatie om te verzekeren dat er geen kwetsbaarheden in de beveiliging zitten en gebruiken wij ons begrip van de code om het pentesten te leiden. Als er kwetsbaarheden gevonden worden - documenteren wij deze en komen met suggesties om deze op te lossen. Dit wordt gedaan - door goed-getrainde penetratie testers die zowel raw code kunnen herzien, - als het interpreteren van de bevindingen van de geautomatiseerde scans, wat het in context brengt.

-

Tijdens het code audit gedeelte van penetratie tests nemen wij de volgende criteria mee:

+ documenteren wij deze en komen met suggesties om deze op te lossen. De audit wordt uitgevoerd + door goed getrainde penetratietesters die zowel raw code kunnen herzien + als de bevindingen van geautomatiseerde scans interpreteren en in context brengen.

+

Tijdens het code-audit-gedeelte van penetratietests nemen wij de volgende criteria mee:

    -
  1. Risico Beoordeling en "Dreiging Modellering"
    - In deze stap analyseren wij de risico's van een bepaalde applicatie of systeem. - Dreiging Modellering is een specifieke, gestructureerde aanpak voor risico - analyse dat ons in staat stelt om beveiligingsrisico's te identificeren, - kwalificeren en te addresseren. Dit is de reden voor de vervlechting met - het proces van Code Herziening. Bijvoorbeeld: Gebruiksgegevens zijn heilig. - Wij focussen op versleutelde opslag, ontdekken of werknemers - een "backdoor" in hun data hebben en snijden gestolen toestellen af +
  2. Risicobeoordeling en "Threat Modeling"
    + In deze stap analyseren wij de risico's van een bepaalde toepassing of een bepaald systeem. + "Threat modeling" is een specifieke, gestructureerde aanpak voor risico-analyse die wordt ingezet tijdens het codeherzieningsproces en die ons in staat stelt beveiligingsrisico's te identificeren, te + kwalificeren en te addresseren. Bijvoorbeeld: Gebruiksgegevens zijn heilig. + We controleren op versleutelde gegevensopslag, onderzoeken of werknemers + een "backdoor" in hun data hebben of ontkoppelen (indien van toepassing) gestolen toestellen door deze op afstand te wissen en accounts in te trekken.
  3. Doel en Context
    - Hier focussen wij op de risico's, voornamelijk in het snel en gemakkelijk - delen van interne documenten en routebeschrijvingen. Accountgegevens - zijn niet zo geheim als wij weten wie in een vergadering zit, maar - wat besproken wordt geheim is.
  4. + Hier richten we ons vooral op de risico's, bijvoorbeeld wanneer (te) snel en gemakkelijk + interne documenten en agenda's worden gedeeld. Accountgegevens + zijn niet zo geheim als wij weten wie bij vergaderingen aanwezig is - zelfs als het besprokene wél geheim blijft. +
  5. Complexiteit
    De complexiteit van het systeem zit hem in de frameworks die de - webapplicatie ondersteunen. Wij zouden deze negeren en ons alleen richten - op de "custom" en backend code, waarvan wij weten dat het gebaseerd is - op .NET/ C#. We zouden ons ook focussen op implementatiefouten en bekende - fouten in de systemen. Bijvoorbeeld: We zouden bevestigen of u de laatste - versie van de software gebruikt, maar we zouden niet delven in het framework zelf. - Omdat wij aannemen dat de code is geschreven door een team zal dit waarschijnlijk duidelijk - geschreven code zijn. Als u meerdere full-release versies heeft, zullen er - ongetwijfeld meerdere code revisies en audits op deze code zijn.
  6. + (web)applicatie ondersteunen. Wij richten ons voornamelijk + op de "custom" en back-end code, en dan in het bijzonder op implementatiefouten en bekende + fouten in de systemen. Bijvoorbeeld: We controleren of u de laatste + versie van de ondersteunende software gebruikt, maar duiken niet in het eigenlijke framework. + We nemen aan dat de code is geschreven door een team en dus waarschijnlijk duidelijk + geschreven is. Als u meerdere full-release versies heeft, zullen er + ongetwijfeld meerdere coderevisies en -audits zijn.

Voor meer informatie verwijzen wij u naar de volgende link: https://www.owasp.org/index.php/OWASP_Code_Review_V2_Table_of_Contents

diff --git a/xml/source/snippets/offerte/nl/conditions.xml b/xml/source/snippets/offerte/nl/conditions.xml index 1fc4e71..8ab5737 100644 --- a/xml/source/snippets/offerte/nl/conditions.xml +++ b/xml/source/snippets/offerte/nl/conditions.xml @@ -3,15 +3,15 @@ Algemene voorwaarden

zal alleen de uitvoeren als het de toestemming heeft gekregen van - zoals uiteengezet in de penetration test verklaring, bijgevoegd als Annex 2, - of verschafd als los document.

+ zoals uiteengezet in de penetratietestvrijwaring, bijgevoegd als Annex 2 + of verschaft als los document.

voert deze opdracht uit op basis van de algemene voorwaarden, die bijgevoegd zijn als Annex 1. - weigert alle algemene voorwaarden die gebruikt worden door + verwerpt alle algemene voorwaarden die gebruikt worden door .

-

Om akkoord te gaan met dit aanbod, tekent u deze brief in tweevoud en retourneert - deze naar:

+

Om akkoord te gaan met dit aanbod dient u deze brief in tweevoud te tekenen en te + retourneren naar:


Overdiemerweg 28
1111 PP Diemen
diff --git a/xml/source/snippets/offerte/nl/generaltermsandconditions.xml b/xml/source/snippets/offerte/nl/generaltermsandconditions.xml index f2d95f2..50fb3f7 100644 --- a/xml/source/snippets/offerte/nl/generaltermsandconditions.xml +++ b/xml/source/snippets/offerte/nl/generaltermsandconditions.xml @@ -1,197 +1,295 @@ - Annex 1<br/>General Terms and Conditions - -

What is this document?

-

These are the general terms and conditions (in Dutch: “algemene voorwaarden”) -of (). This version of the general terms and conditions -is dated 15 July 2014.

-

In the spirit of 's philosophy, wants these -general terms and conditions to be as understandable as possible. If you have any -questions, feel free to ask for clarification.

-

What is ?

-

is a private limited liability company under Dutch law located -in Amsterdam, The Netherlands. It is registered at the Dutch Chamber of Commerce -under no. 60628081.

-

To what do these terms and conditions apply?

-

These general terms and conditions apply to all agreements between -and the customer. rejects any terms and conditions used by the -customer. The parties can only deviate from these general terms and conditions -in writing. These general terms and conditions are also intended to benefit any -person employed or engaged by during the performance of an assignment.

-

How does agree on an assignment?

-

wants both parties to have a clear picture of an assignment -before it starts. This means there only is an agreement between -and the customer after sends a written offer containing the key -terms of the agreement and the customer subsequently accepts the offer. -Communications other than the written offer do not form part of the agreement. - can rescind an offer until it is accepted by the customer.

-

What can the customer expect from ?

-

It is important to understand the limits of 's services. - does not (and cannot) give guarantees that something is secure. - instead has an obligation to make reasonable efforts -(in Dutch: “inspanningsverplichting”) to perform the agreed services.

-

will make reasonable efforts to perform the assignment in -accordance with the plan set out in the offer (if any). If -expects it will not fulfill the plan as documented, it will let the customer -know without delay. is not automatically deemed to be in default -if it doesn't meet the plan.

-

will make reasonable efforts to avoid disruption of the -customer's operations and damage to its owned or operated systems, but it -cannot guarantee that this will be avoided. The customer agrees -to this. is not obliged to restore the systems or recover any -data deleted or amended in the course of the assignment.

-

What can expect from the customer?

-

The customer will provide with all means necessary to allow - to perform the agreed services. If needs explicit -permission from the customer to perform its services (for example, when doing -penetration tests) the customer gives this permission. The customer also warrants -that it has the legal authority to give this permission.

-

How do the parties handle confidential information?

-

and the customer will not disclose to others confidential -information and personal data they receive from each other or gain access to in -the course of an assignment. has the right to disclose this -information and data to persons engaged by , but only if these -persons have a similar confidentiality obligation vis-á-vis . -Any person will only use the information and data it receives or gains access -to for the purposes following from the agreement. Both parties will take reasonable -measures to maintain the confidentiality of the information and data they received -or gained access to, and will ensure that persons engaged by them do the same.

-

What does do with vulnerabilities it finds in the course -of an assignment?

-

If in the course of an assignment finds a vulnerability which -might affect the customer, it will report this to the customer. If a vulnerability -might affect third parties as well, retains the right to disclose -this vulnerability also to others than the customer. It will only do so after -having given the customer a reasonable period to take measures minimising the -impact of the vulnerability, in line with responsible disclosure best practices.

-

What does do with indicators of compromise it finds?

-

If in the course of an assignment finds indicators of -compromise, such as malware signatures and IP-addresses, it will report this to -the customer. retains the right to also publish this information -in a publicly accessible database. It will only do so after it has given the -customer the opportunity to object to the publication of data which would -negatively impact the customer.

-

Who owns the products developed in the course of the assignment?

-

retains any intellectual property rights in products developed -for an assignment, such as software and reports. , however, wants -to teach as many customers as possible 'how to fish'.

-

For software it developed, this means that gives the customer -a permanent, non-exclusive, transferable, sub-licensable, worldwide license to -distribute and use the software in source and binary forms, with or without -modification (very similar to the BSD-license). If 's software -is based on other software which is provided under a license which restricts -'s ability to license its own software (such as the GPLv3 license), -the more restrictive license will apply.

-

For other products it developed, such as reports and analyses, -gives the customer the same license, but this license is exclusive to the customer -and does not contain the right to modification. The latter condition is intended -to ensure that the customer will not change 's products, such as -reports and analyses. retains the right to reuse these products, -for example for training and marketing purposes. will remove any -confidential information from these products before publication.

-

retains title to any property transferred to the customer -until all outstanding payments by the customer have been done in full (in Dutch: -“eigendomsvoorbehoud”). also only gives a license after -all outstanding payments have been done in full.

-

Who will perform the assignment?

-

has the right to appoint the persons who will perform the -assignment. It has the right to replace a person with someone with at least the -same expertise, but only after having consulted with the customer. This means -that section 7:404 Dutch Civil Code (in Dutch: “Burgerlijk Wetboek”) is -excluded.

-

Due to the nature of 's business, regularly -works with freelancers for the performance of its assignments. -has the right to engage third parties, including freelancers, in the course of -the performance of an assignment.

-

wants to be able to use the expertise of its entire team to -help with an assignment. This means that in the course of an assignment, it is -possible that the persons performing the assignment will consult with and be -advised by others in 's team. These others will of course be -bound by the same confidentiality obligations as the persons performing the assignment.

-

What happens when the scope of the assignment is bigger than agreed?

-

and the customer will attempt to precisely define the scope -of the assignment before starts. If during the course of the -assignment, the scope turns out to be bigger than expected, -will report this to the customer and make a written offer for the additional work.

-

How is payment arranged?

-

All amounts in 's offers are in Euros, excluding VAT and -other applicable taxes, unless agreed otherwise.

-

For assignments where the parties agreed to an hourly fee, -will send an invoice after each month. For other assignments, -will send an invoice after completion of the assignment, and at moments set out -in the offer (if any). The customer must pay an invoice within 30 days of the -invoice date.

-

may, prior to an assignment, agree on the payment of a -deposit by the customer. will settle deposits with interim -payments or the final invoice for the assignment.

-

If the payment is not received before the agreed term, the client will be -deemed to be in default without prior notice. will then have -the right to charge the statutory interest (in Dutch: “wettelijke rente”) -and any judicial and extrajudicial (collection) costs (in Dutch: -“gerechtelijke- en buitengerechtelijke (incasso)kosten”).

-

If the customer cancels or delays the assignment two weeks before it starts, - is entitled to charge the customer 50% of the agreed price. -If the customer cancels or delays the assignment after it already started, - is entitled to charge the customer 100% of the agreed price. - is entitled to charge a pro rata percentage in the case of -cancellation or delay shorter than two weeks before the start of the assignment -(i.e. a cancellation one week before the assignment would entitle -to charge 75% of the agreed price).

-

For what can be held liable?

-

Any liability of resulting from or related to the performance -of an assignment, shall be limited to the amount that is paid out in that -specific case under an applicable indemnity insurance of , -if any, increased by the amount of the applicable deductible (in Dutch: -“eigen risico”) which under that insurance shall be borne by . -If no amount is paid out under an insurance, these damages are limited to the -amount already paid for the assignment, with a maximum of EUR 10.000. -Each claim for damages shall expire after a period of one month from the day -following the day on which the customer became aware or could reasonably -be aware of the existence of the damages.

-

To make things clear, is not liable if a person associated -with acts contrary to any confidentiality or non-compete -obligation vis-á-vis the customer or a third party, this person might have -agreed to in another engagement.

-

What happens when third parties lodge a claim or initiate criminal proceedings -against ?

-

The customer shall indemnify and any person employed or -engaged by for any claims of third parties which are in any -way related to the activities of and any person employed or -engaged by for the customer.

-

Should a third party lodge a claim against or any of the -consultants it engaged or employed as a result of the performance of the assignment -for the customer, then the customer will co-operate fully with -in defending against this claim, including by providing to any -evidence it has which relates to this claim. -Should the public prosecutor initiate an investigation or criminal proceedings -against or any of the consultants it engaged or employed as a -result of the performance of the assignment for the customer, then the customer -will also co-operate fully with in defending against this -investigation or proceedings, including by providing any evidence it has which -relates to this investigation or these proceedings.

-

The customer shall reimburse and any person employed or -engaged by all costs of legal defence and all damages in -relation to these claims, investigations or proceedings. This provision does -not apply to the extent a claim, investigation, or proceeding is the result of -the intent or recklessness (in Dutch: “opzet of bewuste roekeloosheid”) -of or a person employed or engaged by .

-

When is this agreement terminated and what happens then?

-

Each of the parties may terminate the agreement wholly or partly without -prior notice if the other party is declared bankrupt or is being wound up or if -the other party's affairs are being administered by the court -(in Dutch: “surséance van betaling”).

-

When can not be expected to perform the assignment?

-

In the case of force majeure (in Dutch: “overmacht”) as a result of -which cannot reasonably be expected to perform the assignment, -the performance will be suspended. Situations of force majeure include cases -where means, such as soft- and hardware, which are prescribed by the customer -do not function well. The agreement may be terminated by either party if a -situation of force majeure has continued longer than 90 days. The customer will -then have to pay the amount for the work already performed pro rata.

-

Which law applies and which court is competent?

-

Dutch law applies to the legal relationship between and its -customers. Any dispute between and a customer will be resolved -in the first instance exclusively by the District Court (in Dutch: -“rechtbank”) of Amsterdam, the Netherlands.

-
+ Annex 1<br/>Algemene Voorwaarden + +

+ Wat houdt dit document in? +

+

+ Dit zijn de algemene voorwaarden van () + Deze versie van de algemene voorwaarden dateert van 15 juli 2014. +

+

+ In de geest van de filosofie van wil dat deze algemene voorwaarden zo + begrijpelijk mogelijk zijn. Vraag gerust om opheldering als u vragen heeft. +

+ +

+ Wat is Radically Open Security? +

+

+ is een besloten vennootschap met beperkte aansprakelijkheid volgens + Nederlands recht en is gevestigd in Amsterdam, Nederland. Het staat geregistreerd + bij de Nederlandse Kamer van koophandel onder nr. 60628081. +

+ +

+ Waarop zijn deze algemene voorwaarden van toepassing? +

+

+ Deze algemene voorwaarden zijn van toepassing op alle overeenkomsten tussen + en de klant. wijst algemene voorwaarden die gebruikt worden door de + klant van de hand. Partijen kunnen alleen schriftelijk van deze algemene + voorwaarden afwijken. Deze algemene voorwaarden zijn ook bedoeld ten gunste + van een persoon die tijdens het uitvoeren van een opdracht in dienst is van + of ingeschakeld is door . +

+ +

+ Hoe stemt in met een opdracht? +

+

+ wil dat beide partijen een duidelijk beeld hebben van een opdracht voordat + die begint. Dit betekent dat er alleen een overeenkomst is tussen en de + klant indien een schriftelijke offerte stuurt met daarin de belangrijkste + bepalingen van de overeenkomst en de klant vervolgens de offerte accepteert. + Mededelingen, anders dan de schriftelijke offerte, maken geen deel uit van de + overeenkomst. kan een offerte intrekken totdat het door de klant is geaccepteerd. +

+ +

+ Wat kan de klant verwachten van ? +

+

+ Het is belangrijk om op de hoogte te zijn van de grenzen van de diensten van + . garandeert niet (en kan niet garanderen) dat iets veilig is. In plaats + daarvan heeft een inspanningsverplichting om de afgesproken diensten uit + te voeren. +

+

+ zal redelijke inspanningen leveren om de opdracht uit te voeren conform + de planning die is vastgelegd in de offerte (indien van toepassing). Indien + verwacht dat het de planning niet haalt, brengt de klant onverwijld + op de hoogte. wordt niet automatisch in verzuim geacht te zijn indien + de planning niet haalt. +

+

+ zal redelijke inspanningen leveren om schade aan systemen die eigendom + zijn van de klant of beheerd worden door de klant te voorkomen, maar kan niet + garanderen dat dergelijke schade zal worden vermeden. is niet verplicht + om data te herstellen die het tijdens de opdracht heeft verwijderd of gewijzigd. +

+ +

+ Wat kan van de klant verwachten? +

+

+ De klant zal voorzien van alle nodige middelen om in staat te stellen + om de afgesproken diensten uit te voeren. Indien nadrukkelijke toestemming + nodig heeft van de klant om zijn diensten uit te voeren, bijvoorbeeld bij het + uitvoeren van penetratietesten of een basis-securityscan, geeft de klant deze toestemming. De klant + garandeert tevens dat het de wettelijke bevoegdheid heeft om deze toestemming te geven. +

+ +

+ Hoe gaan de partijen om met vertrouwelijk informatie? +

+

+ en de klant onthullen aan anderen geen vertrouwelijke informatie en persoonlijke + gegevens die zij van elkaar ontvangen of waar zij gedurende de opdracht toegang + toe krijgen. heeft het recht om de informatie openbaar te maken aan personen + die door zijn ingeschakeld, maar alleen indien deze personen een vergelijkbare + geheimhoudingsplicht hebben ten aanzien van . Een ieder aan wie deze informatie + of deze gegevens openbaar zijn gemaakt zal dit alleen gebruiken voor de doelen + die voortkomen uit de overeenkomst. Beide partijen zullen redelijke maatregelen + nemen om de vertrouwelijkheid van deze informatie en gegevens te handhaven, + ook met betrekking tot personen die door de partijen zijn ingeschakeld. +

+ +

+ Wat doet met kwetsbaarheden die het tijdens de opdracht ontdekt? +

+

+ Indien tijdens de opdracht een kwetsbaarheid vindt die de klant zou kunnen + beïnvloeden, geeft dit door aan de klant. Indien een kwetsbaarheid derden + ook zou kunnen beïnvloeden, behoudt het recht om deze kwetsbaarheid ook + aan anderen dan te klant bekend te maken. zal dit alleen doen nadat + de klant een redelijke periode heeft gegeven om maatregelen te nemen om het + effect van de kwetsbaarheid te minimaliseren, overeenkomstig best practices + voor ‘responsible disclosure’. +

+ +

+ Wat doet als het indicaties van compromittering tegenkomt? +

+

+ Indien tijdens een opdracht indicaties van compromittering tegenkomt, + zoals malware-handtekeningen en IP-adressen, geeft dit door aan de klant. + behoudt het recht om deze informatie ook in een openbaar toegankelijke + database te publiceren. zal dit alleen doen nadat het de klant de mogelijkheid + heeft gegeven om bezwaar te maken tegen de publicatie van gegevens die een negatief + effect zouden hebben op de klant. +

+ +

+ Wie is eigenaar van de producten die tijdens de opdracht worden ontwikkeld? +

+

+ behoudt intellectuele eigendomsrechten van producten die voor een opdracht + zijn ontwikkeld, zoals software en rapporten. wil echter zoveel mogelijk + klanten ‘leren vissen’. +

+

+ Voor software die heeft ontwikkeld betekent dit dat de klant een + permanente, niet-exclusieve, overdraagbare, sub-licentieerbare, wereldwijde + licentie geeft om de software in bronvorm of binaire vorm te verspreiden of + te gebruiken, met of zonder wijziging (vrijwel gelijk aan de BSD-licentie). + Indien de software van gebaseerd is op andere software die geleverd is + onder een licentie die het vermogen beperkt van om een licentie te verbinden + aan de eigen software (zoals de GPLv3-licentie), is de beperkendere licentie + van toepassing. +

+

+ Voor overige producten die heeft ontwikkeld, zoals rapporten en analyses, + geeft dezelfde licentie aan de klant, maar deze licentie geldt exclusief + voor de klant en bevat geen recht op wijziging. De laatste voorwaarde is bedoeld + om te garanderen dat de klant de producten van niet verandert, zoals rapporten + en analyses. behoudt het recht om deze producten opnieuw te gebruiken, + bijvoorbeeld voor trainings- en marketingdoeleinden. Voorafgaand aan publicatie + verwijdert vertrouwelijke informatie van deze producten. +

+

+ behoudt het eigendomsrecht van een goed dat is overgedragen aan de klant + totdat alle uitstaande betalingen volledig door de klant zijn voldaan, i.e. + eigendomsvoorbehoud. geeft tevens alleen een licentie nadat alle uitstaande + betalingen volledig zijn voldaan. +

+ +

+ Wie zal de opdracht uitvoeren? +

+

+ heeft het recht om personen te benoemen die de opdracht zullen uitvoeren. + heeft het recht om een persoon te vervangen door iemand met minstens + dezelfde expertise, maar alleen na overleg met de klant. Dit betekent dat artikel + 7:404 van het Nederlands Burgerlijk Wetboek is uitgesloten. +

+

+ Vanwege de aard van de zaken van werkt regelmatig met freelancers + voor het uitvoeren van de opdrachten. heeft het recht om derden in te schakelen, + waaronder freelancers, tijdens het uitvoeren van een opdracht. +

+ +

+ Wat gebeurt er wanneer de omvang van de opdracht groter is dan afgesproken? +

+

+ en de klant zullen proberen om de omvang van de opdracht nauwkeurig te + bepalen voordat begint. Indien tijdens de opdracht de omvang groter blijkt + te zijn dan verwacht zal dit rapporteren aan de klant en een schriftelijke + offerte opstellen voor het meerwerk. +

+ +

+ Hoe is de betaling geregeld? +

+

+ Alle bedragen in de offertes van zijn in euro’s en exclusief BTW en + overige van toepassing zijnde belastingen, tenzij anders overeengekomen. +

+

+ Voor opdrachten waarbij de partijen een uurtarief hebben afgesproken stuurt + aan het einde van iedere maand een factuur. Voor overige opdrachten zal + een factuur sturen na voltooiing van de opdracht en op momenten zoals + vastgelegd in de offerte (indien van toepassing). De klant moet een factuur + binnen 30 dagen na factuurdatum betalen. +

+

+ kan, voorafgaand aan een opdracht, instemmen met een aanbetaling door de klant. + zal aanbetalingen verrekenen met tussentijdse betalingen of met de laatste + factuur voor de opdracht. +

+

+ Indien de betaling niet voor de afgesproken termijn is ontvangen wordt de + klant zonder voorafgaande kennisgeving geacht in verzuim te zijn. heeft + dan het recht om de wettelijke rente en eventuele gerechtelijke en buitengerechtelijke + (incasso)kosten in rekening te brengen. +

+

+ Indien de klant de opdracht binnen twee weken voor de start annuleert of + uitstelt heeft het recht om de klant 50% van de afgesproken prijs in + rekening te brengen. +

+ +

+ Waarvoor kan aansprakelijk worden gesteld? +

+

+ Een aansprakelijkheid van ten gevolge van of in verband met de uitvoering + van een opdracht is beperkt tot het bedrag dat in dat specifieke geval krachtens + een van toepassing zijnde aansprakelijkheidsverzekering van is uitbetaald, + indien van toepassing, verhoogd met het bedrag van het eigen risico, dat volgens + de verzekering wordt gedragen door . Indien geen bedrag wordt uitbetaald + krachtens een verzekering, is deze schadevergoeding beperkt tot het bedrag + dat al is betaald voor de opdracht, met een maximum van 10.000 euro. +

+

+ Elke vordering tot schadevergoeding verloopt na een periode van een maand + vanaf de dag volgend op de dag waarop de klant kennis had gekregen van of + redelijkerwijs kennis zou kunnen krijgen van het bestaan van de schadevergoeding. +

+

+ Ter verduidelijking, is niet aansprakelijk wanneer een persoon die verbonden + is met handelt in strijd met eventuele geheimhouding of niet-concurrentiebeding + ten aanzien van de klant of derden, die deze persoon afgesproken zou kunnen + hebben in een andere verbintenis. +

+ +

+ Wat gebeurt er wanneer derden een vordering indienen of een strafrechtelijke + procedure instellen tegen ? +

+

+ De klant vrijwaart en een persoon in dienst van of ingeschakeld door + van vorderingen van derden die op enige manier verband houden met de activiteiten + van en een persoon in dienst van of ingeschakeld door voor de klant. + De klant vergoed aan en een persoon in dienst van of ingeschakeld door + alle kosten voor juridische bijstand en alle schade met betrekking tot deze + vorderingen. Deze bepaling is niet van toepassing voor zover een vordering + het gevolg is van opzet of bewuste roekeloosheid van of een persoon in + dienst van of ingeschakeld door . +

+

+ Indien een derde partij een vordering indient tegen of een van de adviseurs + die heeft ingeschakeld of in dienst heeft, als gevolg van het uitvoeren + van de opdracht voor de klant, zal de klant volledig meewerken met in de + verdediging tegen deze vordering, inclusief het leveren aan van enig + bewijs dat betrekking heeft op deze vordering. Indien de officier van justitie + een onderzoek instelt of een strafrechtelijke procedure instelt tegen of + een van de adviseurs die heeft ingeschakeld of in dienst heeft, als gevolg + van het uitvoeren van de opdracht voor de klant, zal de klant ook volledig + meewerken met in de verdediging tegen dit onderzoek of procedure, inclusief + het leveren van enig bewijs dat betrekking heeft op dit onderzoek of deze procedure. +

+ +

+ Wanneer wordt deze overeenkomst beëindigd en wat gebeurt er dan? +

+

+ Elk van de partijen kan de overeenkomst zonder voorafgaande kennisgeving + geheel of gedeeltelijk beëindigen indien de andere partij failliet is verklaard + of is ontbonden of indien de andere partij in surseance van betaling verkeert. +

+ +

+ Wanneer kan er niet van worden verwacht dat het de opdracht uitvoert? +

+

+ In het geval van overmacht als gevolg waarvan van redelijkerwijs niet verwacht + kan worden dat het de opdracht uitvoert, zal de uitvoering worden uitgesteld. + Situaties van overmacht zijn onder andere gevallen waarbij middelen zoals + software en hardware die zijn voorgeschreven door de klant niet goed functioneren. + Indien een situatie van overmacht langer dan 90 dagen heeft geduurd, kan de + overeenkomst door een van beide partijen worden beëindigd. De klant zal dan + naar rato het bedrag moeten betalen voor het werk dat al is uitgevoerd. +

+ +

+ Welk recht is van toepassing en welke rechtbank is bevoegd? +

+

+ Op de rechtsverhouding tussen en zijn klanten is het Nederlands recht + van toepassing. Een geschil tussen en een klant wordt in eerste instantie + uitsluitend beslecht door de Arrondissementsrechtbank te Amsterdam, Nederland. +

+ \ No newline at end of file diff --git a/xml/source/snippets/offerte/nl/planningandpayment.xml b/xml/source/snippets/offerte/nl/planningandpayment.xml index 6400d61..34ac1f4 100644 --- a/xml/source/snippets/offerte/nl/planningandpayment.xml +++ b/xml/source/snippets/offerte/nl/planningandpayment.xml @@ -1,20 +1,19 @@
Planning en Betaling -

houdt het volgende schema aan voor haar werkzaamheden:

+

houdt de volgende planning aan voor haar werkzaamheden:

    -
  • : voert uit op het doelwit
  • -
  • : maakt een concept rapport over de tests
  • -
  • : levert het definitieve rapport.
  • +
  • voert uit op het doelwit: .
  • +
  • levert het definitieve rapport: .

-

Ons vaste tarief voor de bovenstaand beschreven +

Ons vaste tarief voor de bovenstaand beschreven is ,- excl. BTW en bijkomende kosten. zal een factuur sturen na afronding van deze opdracht. zal het afgesproken bedrag binnen 30 dagen na de factureringsdatum overmaken.

-

Eventuele extra werkzaamheden zullen apart worden verrekend. +

Eventuele extra werkzaamheden zullen apart worden verrekend. Een uurtarief zal hieraan voorafgaand worden besproken.

diff --git a/xml/source/snippets/offerte/nl/projectoverview.xml b/xml/source/snippets/offerte/nl/projectoverview.xml index c9d99b6..07c3ee7 100644 --- a/xml/source/snippets/offerte/nl/projectoverview.xml +++ b/xml/source/snippets/offerte/nl/projectoverview.xml @@ -1,21 +1,42 @@ -
+
Projectoverzicht

zal uitvoeren voor - op de onderstaand beschreven systemen. De diensten zijn bedoelt om inzicht te bieden + op de hieronder beschreven systemen. De diensten zijn bedoeld om inzicht te bieden in de veiligheid van deze systemen. Om dit te kunnen bewerkstelligen zal toegang krijgen tot deze systemen, proberen kwetsbaarheden op te sporen en trachten verdere toegang te krijgen door de gevonden kwetsbaarheden uit te buiten.

-

zal de volgende objectieven testen - (de “objectieven”):

+

zal de volgende doelwitten testen + (de “Doelwitten”):

zal testen op de aanwezigheid van de meest voorkomende kwetsbaarheden, gebruik makend van zowel publiek beschikbare - scanning tools, als door handmatig testen. zal een - -daagse, , grondige test uitvoeren, via internet.

+ scanning tools, als door handmatig testen. zal een grondige + -daagse, test uitvoeren via internet.

+ +
+ Scope +

schat de uitvoering van de penetratietest op ... dagen in totaal:

+
    +
  • ... dagen voor het testen van ...;
  • +
  • ... dagen voor het testen van ...;
  • +
  • ... dagen voor de verificatie van potentiële risico's, opstellen van een Proof of Concept + en het vastleggen van onze bevindingen en aanbevelingen in het rapport.
  • +
+
+ Out of scope
+

De onderliggende netwerkinfrastructuur, ..., ... en eventuele loadbalancing-infrastructuur maken geen deel uit van de scope. + Uitgesloten zijn ook:

+
    +
  • elke vorm van social engineering;
  • +
  • (D)DoS aanvallen;
  • +
  • ...
  • +
+
+ - + @@ -20,26 +20,25 @@ - target1.sittingduck.com - target2.sittingduck.com - FishInABarral App + target1.target.com + target2.target.com - HotshotDevs Inc. - HotshotDevs + Third Party BV + Third Party - Hotshot Dev Lawyer -
Silicon Valley St. 50
- San Francisco - US + TP Waiver Rep +
Street 1
+ City + Netherlands
- 10 + 6 time-boxed @@ -52,10 +51,9 @@ TBD - - FishInABarrel + - 1000000 + 40000 diff --git a/xml/source/snippets/localisationstrings.xml b/xml/source/snippets/localisationstrings.xml index b071a32..1bc2b2f 100644 --- a/xml/source/snippets/localisationstrings.xml +++ b/xml/source/snippets/localisationstrings.xml @@ -31,6 +31,10 @@ VOOR FOR + + Kamer van Koophandel + Chamber of Commerce + Over About diff --git a/xml/xslt/pages.xslt b/xml/xslt/pages.xslt index 9923efa..7874cfe 100644 --- a/xml/xslt/pages.xslt +++ b/xml/xslt/pages.xslt @@ -68,7 +68,11 @@ / - Chamber of Commerce + select="*/meta/company/full_name"/> - + + + +   @@ -77,7 +81,11 @@ / - Chamber of Commerce + select="*/meta/company/full_name"/> - + + + +   From c793af6546efe1d9e17f150b9b770d7b232be1ec Mon Sep 17 00:00:00 2001 From: skyanth Date: Fri, 30 Sep 2016 15:36:42 +0200 Subject: [PATCH 48/60] Amended bit about workflow resembling CTF competition --- xml/source/snippets/offerte/en/teamandreporting.xml | 3 +-- xml/source/snippets/offerte/nl/teamandreporting.xml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/xml/source/snippets/offerte/en/teamandreporting.xml b/xml/source/snippets/offerte/en/teamandreporting.xml index 93c2977..5f6c935 100644 --- a/xml/source/snippets/offerte/en/teamandreporting.xml +++ b/xml/source/snippets/offerte/en/teamandreporting.xml @@ -12,8 +12,7 @@
  • ()
  • -

    Our penetration tests are run a bit like a Capture The Flag - (CTF) competition: +

    The workflow of our penetration testing team is modeled on that of a Capture The Flag (CTF) competition: has a geographically distributed team diff --git a/xml/source/snippets/offerte/nl/teamandreporting.xml b/xml/source/snippets/offerte/nl/teamandreporting.xml index 0747930..cbfe084 100644 --- a/xml/source/snippets/offerte/nl/teamandreporting.xml +++ b/xml/source/snippets/offerte/nl/teamandreporting.xml @@ -11,7 +11,7 @@

  • ()
  • ()
  • -

    Onze penetratie tests lijken een beetje op een "Capture The Flag-competitie": +

    De workflow van onze penetratietest-teams is gemodelleerd op die van teams tijdens een "Capture The Flag-competitie": heeft een geografisch gedistribueerd team; wij gebruiken online infrastructuur (RocketChat, GitLabs, etc.) From e66279ab681a84faed5059c55818acc900a4f9fd Mon Sep 17 00:00:00 2001 From: skyanth Date: Fri, 30 Sep 2016 16:23:59 +0200 Subject: [PATCH 49/60] Amended bit about workflow resembling CTF competition (again) --- xml/source/snippets/offerte/en/teamandreporting.xml | 2 +- xml/source/snippets/offerte/nl/teamandreporting.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xml/source/snippets/offerte/en/teamandreporting.xml b/xml/source/snippets/offerte/en/teamandreporting.xml index 5f6c935..57387fc 100644 --- a/xml/source/snippets/offerte/en/teamandreporting.xml +++ b/xml/source/snippets/offerte/en/teamandreporting.xml @@ -12,7 +12,7 @@

  • ()
  • -

    The workflow of our penetration testing team is modeled on that of a Capture The Flag (CTF) competition: +

    The workflow of our penetration testing team is modeled on that of a Capture The Flag (CTF) team: has a geographically distributed team diff --git a/xml/source/snippets/offerte/nl/teamandreporting.xml b/xml/source/snippets/offerte/nl/teamandreporting.xml index cbfe084..3ba1eac 100644 --- a/xml/source/snippets/offerte/nl/teamandreporting.xml +++ b/xml/source/snippets/offerte/nl/teamandreporting.xml @@ -11,7 +11,7 @@

  • ()
  • ()
  • -

    De workflow van onze penetratietest-teams is gemodelleerd op die van teams tijdens een "Capture The Flag-competitie": +

    De werkwijze van onze penetratietest-teams is gemodelleerd die van een "Capture The Flag-team": heeft een geografisch gedistribueerd team; wij gebruiken online infrastructuur (RocketChat, GitLabs, etc.) From 34a229a05306eec37482c6f938d962da1b3fcf2c Mon Sep 17 00:00:00 2001 From: skyanth Date: Fri, 30 Sep 2016 16:59:35 +0200 Subject: [PATCH 50/60] Localized invoices --- xml/dtd/invoice.xsd | 8 ++- xml/source/snippets/localisationstrings.xml | 62 +++++++++++++++++++++ xml/xslt/generate_invoice.xsl | 54 +++++++++--------- xml/xslt/generate_offerte.xsl | 3 +- xml/xslt/off2inv.xsl | 9 ++- xml/xslt/qs2offerte.xsl | 4 +- 6 files changed, 107 insertions(+), 33 deletions(-) diff --git a/xml/dtd/invoice.xsd b/xml/dtd/invoice.xsd index b368dde..71c7e27 100644 --- a/xml/dtd/invoice.xsd +++ b/xml/dtd/invoice.xsd @@ -14,13 +14,15 @@ + - + - - + + + diff --git a/xml/source/snippets/localisationstrings.xml b/xml/source/snippets/localisationstrings.xml index 1bc2b2f..d80498a 100644 --- a/xml/source/snippets/localisationstrings.xml +++ b/xml/source/snippets/localisationstrings.xml @@ -35,6 +35,68 @@ Kamer van Koophandel Chamber of Commerce + + Factuur nr. + Invoice no. + + + T.a.v. + F.a.o. + + + Geleverde diensten + Services delivered + + + daagse + day + + + BTW + VAT + + + BTW-nummer + VAT number + + + Extra gemaakte kosten + Additional expenses + + + Totaal te betalen + Total amount to be paid + + + doneert > 90% van haar totale winst aan goede doelen. + donates > 90% of its entire profits to + charity. + + + Maak binnen 30 dagen het totale bedrag over op de volgende rekening: + Please be so kind to pay within 30 days + by money transfer, to the following account: + + + IBAN + IBAN + + + Referentie + Reference + + + Met vriendelijke groet + Kind regards + + + uw team bij + your dedicated team at + + + Spaar papier — niet afdrukken tenzij absoluut noodzakelijk. Lees onze (unieke) voorwaarden op: https://radicallyopensecurity.com/TermsandConditions.pdf + Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf + Over About diff --git a/xml/xslt/generate_invoice.xsl b/xml/xslt/generate_invoice.xsl index 15ad398..91bd179 100644 --- a/xml/xslt/generate_invoice.xsl +++ b/xml/xslt/generate_invoice.xsl @@ -21,9 +21,11 @@ --> + + @@ -60,8 +62,9 @@ - - $ + + £ + $ @@ -75,7 +78,8 @@ - -day   + - +     .-- @@ -83,7 +87,7 @@ - VAT 21% + 21%  .-- @@ -91,7 +95,7 @@ - Total amount to be paid +  .-- @@ -108,8 +112,9 @@ - - $ + $ + + £ @@ -135,7 +140,7 @@ - Additional Expenses +   @@ -163,7 +168,7 @@ - VAT 21% + 21%  .-- @@ -171,7 +176,7 @@ - Total amount to be paid +  .-- @@ -188,14 +193,14 @@ - Invoice nr.   - T.a.v.   @@ -215,27 +220,26 @@ - Services Delivered + donates > 90% of its entire profits to - charity. - Please be so kind to pay within 30 days - by money transfer, to the following account: + select="/*/meta/company/full_name"/>  + - IBAN: - Reference: + + : + : - Kind regards, - your dedicated team at + , + @@ -285,8 +289,8 @@ - Chamber of Commerce - VAT number +   +   @@ -302,12 +306,12 @@ - Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf + - Please keep digital unless absolutely required. Read the (unique) terms and conditions of Radically Open Security at: https://radicallyopensecurity.com/TermsandConditions.pdf + diff --git a/xml/xslt/generate_offerte.xsl b/xml/xslt/generate_offerte.xsl index be74545..f00ddd5 100644 --- a/xml/xslt/generate_offerte.xsl +++ b/xml/xslt/generate_offerte.xsl @@ -18,8 +18,7 @@ - + diff --git a/xml/xslt/off2inv.xsl b/xml/xslt/off2inv.xsl index 18f23ba..ffaacc4 100644 --- a/xml/xslt/off2inv.xsl +++ b/xml/xslt/off2inv.xsl @@ -3,11 +3,15 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="xs" version="2.0"> + + 00/000 + + @@ -22,6 +26,9 @@ + + + @@ -37,7 +44,7 @@ -day -   diff --git a/xml/xslt/qs2offerte.xsl b/xml/xslt/qs2offerte.xsl index 9a9b339..180937e 100644 --- a/xml/xslt/qs2offerte.xsl +++ b/xml/xslt/qs2offerte.xsl @@ -90,10 +90,10 @@ please choose one of the following: black-box, grey-box, crystal-box - + - (euro|dollar) + (eur|usd|gbp) name of application/service to be tested (if any; if none, DELETE target_application element) From 68740898c0ee65be75d9f6665046eb29d0391005 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 16:40:07 +0200 Subject: [PATCH 51/60] Thorough snippet edit --- xml/source/snippets/offerte/nl/aboutus.xml | 45 ++++++++++------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/xml/source/snippets/offerte/nl/aboutus.xml b/xml/source/snippets/offerte/nl/aboutus.xml index 1ae1a1b..261081e 100644 --- a/xml/source/snippets/offerte/nl/aboutus.xml +++ b/xml/source/snippets/offerte/nl/aboutus.xml @@ -1,38 +1,35 @@

    Over ons <company_long/> -

    is 's werelds eerste non-profit computer security consultancy bedrijf. - Wij zijn een Fiscaal Fondswervende Instelling en in die hoedanigheid kunnen we 90 procent van onze winst +

    is het eerste non-profit computer security consultancy bedrijf ter wereld. + We zijn een Fiscaal Fondswervende Instelling en kunnen daardoor 90 procent van onze winst belastingvrij aan non-profit stichting NLnet doneren. Stichting NLnet ondersteunt al bijna twintig jaar - open-source, digitale rechten en internet onderzoek.

    + open-source, digitale rechten en internetonderzoek.

    -

    Onze winst worden dus niet uitgekeerd aan aandeelhouders, investeerders of eigenaren. - Met de winst dienen we de maatschappij. Omdat wij geen winstoogmerk hebben kunnen we de beste ethische - veiligheidsexperts rekruteren. Met onze kernwaarden trekken we gelijkgestemde klanten aan. Wij stellen onze klanten - in staat om met IT veiligheidsbudgetten sociaal verantwoord ondernemen te ondersteunen. - Het hoge tempo waarmee wij groeien weerspiegelt de positieve respons van de markt op onze idealistische - filosofie en ons innovatieve business model.

    +

    Onze winst wordt dus niet uitgekeerd aan aandeelhouders, investeerders of eigenaren, maar ingezet om de maatschappij te dienen. Omdat we geen winstoogmerk hebben, kunnen we de beste ethische + veiligheidsexperts rekruteren. Met onze kernwaarden trekken we gelijkgestemde klanten aan, die we + in staat stellen om met hun IT-veiligheidsbudget het sociaal verantwoord ondernemen te ondersteunen. + Ons hoge groeitempo weerspiegelt de positieve respons van de markt op onze idealistische + filosofie en ons innovatieve businessmodel.

    -

    heeft een aantal waarden die wij beschrijven als onze - "Kernwaarden." Deze zijn:

    +

    De waarden die als haar kernwaarden zou willen omschrijven zijn:

    • Openheid van zaken
      - Wij bouwen geen toezichtssystemen, we helpen geen hacking activisten, we verkopen geen exploits - aan geheime diensten of iets in die richting. Als een opdracht ons moreel verwerpelijk lijkt, nemen + Wij bouwen geen toezichtssystemen, hacken geen activisten en verkopen geen exploits + aan geheime diensten. Als een opdracht ons moreel verwerpelijk lijkt, nemen we die niet aan.
    • Open-Source
      - Wij geven ALLE tools en frameworks, die wij open-source bouwen, vrij op onze website.
    • -
    • Leren vissen
      - Tijdens de samenwerken delen wij niet alleen de resultaten met onze opdrachtgevers, maar - geven wij ook een stapsgewijze beschrijving waarmee klanten in de toekomst zelf de - veiligheid van hun systemen kunnen testen. Wij willen graag inzichtelijk maken wat we doen. Het is geen + Wij geven de broncode van alle tools en frameworks die we bouwen vrij op onze website.
    • +
    • Het "teach to fish"-principe
      + Tijdens het samenwerken delen we niet alleen onze bevindingen met onze opdrachtgevers, maar + beschrijven we ook stap voor stap hoe de opdrachtgever in de toekomst zelf de + veiligheid van zijn of haar systemen kan testen. Wij willen graag inzichtelijk maken wat we doen. Het is geen hogere wiskunde. We helpen klanten om hun kennis en houding ten aanzien van veiligheid te verbeteren.
    • -
    • Gratis IoCs
      - Wij geven ALLE verzamelde bedreigingen (Indicators of Compromise) vrij in - een open-source database die iederen gratis kan gebruiken (Opgeschoond in - overeenstemming met klanten).
    • -
    • Zero days
      - Wij verkopen geen 'Zero days' exploits (nuldagenaanval) - wij brengen ze op verantwoorde wijze aan het licht!
    • +
    • Gratis IoCs
      + Wij geven alle verzamelde gevarenindicatoren (Indicators of Compromise) vrij in + een open-source database die iederen gratis kan gebruiken (uiteraard gebeurt dit in overleg met de klant en worden de gegevens opgeschoond voor ze openbaar worden gemaakt).
    • +
    • Zero days
      + Wij verkopen geen 'Zero day' exploits (pas bekend geworden kwetsbaarheden) - wij brengen ze op verantwoorde wijze aan het licht!

    Voor meer informatie over verwijzen wij u naar onze website: www.radicallyopensecurity.com.

    From b47f0ec1f9d544b0bea34685768bc2cd393f70ba Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 16:45:25 +0200 Subject: [PATCH 52/60] Thorough snippet edit --- xml/source/snippets/offerte/nl/black-box.xml | 17 +++++++++-------- xml/source/snippets/offerte/nl/crystal-box.xml | 18 ++++++++---------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/xml/source/snippets/offerte/nl/black-box.xml b/xml/source/snippets/offerte/nl/black-box.xml index 34cf3b5..7365f5c 100644 --- a/xml/source/snippets/offerte/nl/black-box.xml +++ b/xml/source/snippets/offerte/nl/black-box.xml @@ -1,13 +1,14 @@ -

    - Crystal-Box vs. Black-Box pentesting verwijst naar de hoeveelheid - informatie over het doelwit; de omgeving, architectuur, en/of applicaties die de klant +

    +

    + Crystal-Box vs. Black-Box pentesting verwijst naar de hoeveelheid + informatie over de doelwit omgeving, architectuur, en/of applicaties die de klant in eerste instantie deelt met de pentesters. Bij Black-Box testing ontvangen de - pentesters helemaal geen informatie over het doelwit. Bij Crystal-Box tests + pentester helemaal geen informatie over het doelwit. Bij Crystal-Box tests ontvangen de pentesters alle informatie die opgevraagd wordt betreffende het doelwit, - inclusief broncode (wanneer dit relevant is), toegang tot ontwikkelaars of systeembeheer, etc... - -
    - In dit geval zal een Black-Box test uitvoeren. + inclusief source code (wanneer dit relevant is), toegang tot developers of systeembeheer, etc...

    +

    + In dit geval zal een Black-box test uitvoeren. +

    \ No newline at end of file diff --git a/xml/source/snippets/offerte/nl/crystal-box.xml b/xml/source/snippets/offerte/nl/crystal-box.xml index 7d5f984..00e7579 100644 --- a/xml/source/snippets/offerte/nl/crystal-box.xml +++ b/xml/source/snippets/offerte/nl/crystal-box.xml @@ -1,20 +1,18 @@ -

    +

    Crystal-Box vs. Black-Box pentesting verwijst naar de hoeveelheid informatie over de doelwit omgeving, architectuur, en/of applicaties die de klant in eerste instantie deelt met de pentesters. Bij Black-Box testing ontvangen de pentester helemaal geen informatie over het doelwit. Bij Crystal-Box tests ontvangen de pentesters alle informatie die opgevraagd wordt betreffende het doelwit, inclusief source code (wanneer dit relevant is), toegang tot developers of systeembeheer, etc... -
    -
    - zal een Crystal-Box pentest uitvoeren, wat de voorkeursmethode is. - In tegenstelling tot "real world" aanvallers, die alle tijd van de wereld hebben, - vinden pentests plaats in een beperkt tijdsbestek. Crystal-Box pentesting biedt ons - de mogelijkheid om zo efficiënt mogelijk onze tijd te benutten, wat zorgt voor - een maximalisatie van het aantal kwetsbaarheden die kunnen worden gevonden. - Daarnaast sluit de Crystal-Box pentest het beste aan bij de "Meekijken over de Schouder" - optie die aanbiedt aan .

    +

    + zal een Crystal-box pentest uitvoeren - de methode die onze voorkeur heeft. + In tegenstelling tot "echte" hackers, die alle tijd van de wereld hebben, + vinden pentests plaats in een beperkt tijdsbestek. Crystal-box pentesting biedt ons + de mogelijkheid om onze tijd zo efficiënt mogelijk te gebruiken, waardoor het maximale aantal kwetsbaarheden kan worden gevonden. + Daarnaast sluit de Crystal-box pentest het beste aan bij de "meekijk"-optie die biedt. +

    From 7c019748f5507449156d50e88595cc9cada025f2 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 17:01:07 +0200 Subject: [PATCH 53/60] Thorough snippet edit --- xml/source/snippets/offerte/nl/disclaimer.xml | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/xml/source/snippets/offerte/nl/disclaimer.xml b/xml/source/snippets/offerte/nl/disclaimer.xml index cbe6c8b..d8452fa 100644 --- a/xml/source/snippets/offerte/nl/disclaimer.xml +++ b/xml/source/snippets/offerte/nl/disclaimer.xml @@ -2,23 +2,22 @@
    Vrijwaring -

    Het is mogelijk dat in de loop van het penetratie testen - de operaties van het doelwit hindert of hier schade aan toebrengt. +

    Het is mogelijk dat in de loop van het testen + bedrijfsvoering bij het doelwit hindert of bedrijfsschade aanricht. geeft hier toestemming voor, onder voorbehoud dat - hier niet nalatig of roekeloos mee omgaat. waarborgt dit ook en heeft de bevoegdheid om - hier toestemming voor te geven.

    + niet nalatig of roekeloos handelt. garandeert bovendien dat ze bevoegd is om + deze toestemming te verlenen.

    -

    Het is van belang om de limitaties van de diensten van te begrijpen. - geeft geen (en kan geen) garanties geven dat iets veilig is. - , heeft in plaats daarvan, een wettelijke inspanningsverplichting - voor de uit te voeren diensten.

    +

    Laat duidelijk zijn dat er grenzen zijn aan wat kan leveren. + kan geen garantie geven dat een systeem 100% veilig is, en doet dat dan ook niet. + heeft wel een wettelijke inspanningsverplichting.

    -

    en komen hierbij overeen dat redelijke maatregelen - worden getroffen om, de vertrouwelijkheid van informatie en persoonlijke - gegevens van de doelwitten waar zij toegang tot krijgen - in de loop van het uitvoeren van de penetratie test, in stand wordt gehouden. +

    en komen hierbij overeen dat er redelijke maatregelen + worden getroffen om de informatie en persoonlijke + gegevens waar in de loop van de penetratietest toegang toe krijgt + zullen worden beschermd en vertrouwelijk zullen worden behandeld. Beide partijen zullen de informatie en data die zij ontvangen of waar zij toegang tot krijgen alleen gebruiken ten behoeve van de doelen die beschreven zijn in deze overeenkomst. - garandeert dat alle kern-leden, externe freelancers en vrijwilligers - die betrokken zijn bij het uitvoeren van de penetratie test een geheimhoudingsverklaring (NDA) hebben getekend.

    + garandeert dat alle kernleden, externe freelancers en vrijwilligers + die bij het uitvoeren van de penetratietest betrokken zijn een geheimhoudingsverklaring (NDA) hebben getekend.

    From e6ff4028edec7607d936551362b8242e99170af8 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 17:07:41 +0200 Subject: [PATCH 54/60] snippet edit --- xml/source/snippets/offerte/nl/engagementtime.xml | 4 ++-- xml/source/snippets/offerte/nl/generaltermsandconditions.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xml/source/snippets/offerte/nl/engagementtime.xml b/xml/source/snippets/offerte/nl/engagementtime.xml index 553f77e..25bfbb3 100644 --- a/xml/source/snippets/offerte/nl/engagementtime.xml +++ b/xml/source/snippets/offerte/nl/engagementtime.xml @@ -1,3 +1,3 @@ -

    Gebaseerd op de verstrekte informatie, verwachten wij dat het dienstverband dagen duurt. -De planning van dit dienstverband is als volgt:

    \ No newline at end of file +

    Op basis van de verstrekte informatie verwachten wij dat het uitvoeren van de opdracht dagen zal duren. +De planning van de opdracht is als volgt:

    \ No newline at end of file diff --git a/xml/source/snippets/offerte/nl/generaltermsandconditions.xml b/xml/source/snippets/offerte/nl/generaltermsandconditions.xml index 50fb3f7..175dfc3 100644 --- a/xml/source/snippets/offerte/nl/generaltermsandconditions.xml +++ b/xml/source/snippets/offerte/nl/generaltermsandconditions.xml @@ -10,7 +10,7 @@ Deze versie van de algemene voorwaarden dateert van 15 juli 2014.

    - In de geest van de filosofie van wil dat deze algemene voorwaarden zo + In lijn met de filosofie van wil dat deze algemene voorwaarden zo begrijpelijk mogelijk zijn. Vraag gerust om opheldering als u vragen heeft.

    @@ -19,7 +19,7 @@

    is een besloten vennootschap met beperkte aansprakelijkheid volgens - Nederlands recht en is gevestigd in Amsterdam, Nederland. Het staat geregistreerd + Nederlands recht en is gevestigd in Amsterdam, Nederland. Het bedrijf staat geregistreerd bij de Nederlandse Kamer van koophandel onder nr. 60628081.

    From d2248ccec720216f15a460293f8d4536bd849543 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 17:26:19 +0200 Subject: [PATCH 55/60] Thorough snippet edit --- .../snippets/offerte/nl/methodology.xml | 66 +++++++++---------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/xml/source/snippets/offerte/nl/methodology.xml b/xml/source/snippets/offerte/nl/methodology.xml index 5d71ff5..7f3ff47 100644 --- a/xml/source/snippets/offerte/nl/methodology.xml +++ b/xml/source/snippets/offerte/nl/methodology.xml @@ -1,58 +1,54 @@
    - Pentest Methodologie -

    Tijdens het uitvoeren van de penetratie tests volgt in grote lijnen de volgende stappen:

    + Pentestmethodologie +

    Tijdens het uitvoeren van de penetratietests volgt in grote lijnen de volgende stappen:

      -
    1. Benodigdheden Verzamelen en Scoping;
    2. -
    3. Ontdekking;
    4. +
    5. Vaststellen voorwaarden/vereisten en Scoping;
    6. +
    7. Onderzoek;
    8. Validatie;
    9. -
    10. Informatieverzameling;
    11. -
    12. Analyse van Bedreigingen en Kwetsbaarheden;
    13. +
    14. Verzamelen gegevens;
    15. +
    16. Analyse van Risico's en Kwetsbaarheden;
    17. Exploitatie;
    18. -
    19. Rapportage;
    20. +
    21. Rapportage.
    -

    Step 1: Benodigdheden Verzamelen en Scoping
    +

    Stap 1: Vaststellen voorwaarden/vereisten en Scoping
    De verwachtingen van beide partijen worden besproken en overeenkomsten worden gemaakt -betreffende het uitvoeren van de test(s). Bijvoorbeeld, contactgegevens en de -scope van de pentest worden vastgelegd.

    +betreffende het uitvoeren van de test(s). Tijdens deze stap worden bijvoorbeeld alle contactgegevens verzameld en vastgesteld wat de +scope van de pentest is.

    -

    Step 2: Ontdekking
    -Zo veel mogelijk informatie betreffende de "target" organisatie en de "target" objecten -wordt verzameld. Deze informatie wordt passief verzameld, voornamelijk uit publieke bronnen.

    +

    Stap 2: Onderzoek
    +Er word zo veel mogelijk informatie betreffende de te testen organisatie en doelwitten verzameld. Deze informatie wordt passief verzameld, voornamelijk uit publieke bronnen.

    -

    Step 3: Validatie
    -Alle door de klant gespecificeerde systemen worden kruisverwezen met de bevindingen -van de Ontdekking stap. Wij doen dit om te garanderen dat de ontdekte systemen +

    Stap 3: Validatie
    +Alle door de klant gespecificeerde systemen worden nagelopen aan de hand van wat tijdens de Onderzoeksstap is ontdekt. We doen dit om te garanderen dat de ontdekte systemen wettelijk eigendom van de klant zijn en om de scope met de klant te verifiëren.

    -

    Step 4: Informatieverzameling
    +

    Stap 4: Verzamelen gegevens
    Informatie uit Stap 2 wordt hier gebruikt om actief informatie betreffende de -systemen te verzamelen. Activiteiten gedurende deze fase kunnen het volgende inhouden: -Vaststellen welke onderdelen van de verscheidene componenten zullen worden onderzocht; -Testen op de aanwezigheid van bekende kwetsbaarheden, gebruikmakend van automatische tests; -De aangeboden diensten identificeren en de voor hen gebruikte software te "fingerprinten."

    +systemen te verzamelen. Mogelijke activiteiten gedurende deze fase zijn: +Vaststellen welke onderdelen van de verscheidene componenten zullen worden getest; +met behulp van geautomatiseerde tests controleren op de aanwezigheid van bekende kwetsbaarheden; +identificeren welke diensten op de onderzochte systemen worden aangeboden en de gebruikte software te "fingerprinten".

    -

    Step 5: Analyse van Bedreigingen en Kwetsbaarheden
    -Potentiële bedrijgingen en kwetsbaarheden worden geïndexeerd, gebaseerd op de verzamelde informatie.

    +

    Stap 5: Analyse van Risico's en Kwetsbaarheden
    +Potentiële risico's en kwetsbaarheden worden geïndexeerd op basis van de verzamelde informatie.

    -

    Step 6: Exploitatie
    -Hier wordt gepoogd om kwetsbaarheden van de verscheidene componenten te gebruiken. -De diverse applicaties en componenten van de klants infrastructuur worden -meedogenloos gesondeerd voor frequent voorkomende design-, configuratie- en programmeerfouten.

    +

    Stap 6: Exploitatie
    +Hier wordt gepoogd om kwetsbaarheden in de verscheidene componenten uit te buiten. +De diverse applicaties en componenten van de infrastructuur van de klant worden +grondig gecontroleerd op vaak voorkomende ontwerp-, configuratie- en programmeerfouten.

    -

    Notitie: gebruikt als basis open-source scanning tools, maar -voert in het algemeen de meeste exploitatie handmatig uit.

    +

    Opmerking: gebruikt open-source scanning tools als basis, maar +voert in de regel de meeste exploitatiepogingen handmatig uit.

    -

    Step 7: Rapportage
    -Na het afronden van de verificatie zal een rapport worden geleverd met een stapsgewijze benadering, -waarbij resultaten en ontdekte kwetsbaarheden worden beschreven. Het rapport en de resultaten -zullen worden gepresenteerd aan de verantwoordelijke projectleider of -manager in het kantoor van de klant.

    +

    Stap 7: Rapportage
    +Na het afronden van de test zal een rapport worden geleverd waarin de resultaten en ontdekte kwetsbaarheden stap voor stap worden beschreven. Het rapport en de resultaten worden eventueel gepresenteerd aan de verantwoordelijke projectleider of -manager in het kantoor van de klant.

    -

    Stappen 4-6 kunnen meerdere malen herhaald worden per test. Voorbeeld: Toegang kan worden -verkregen in een extern systeem dat fungeert als een opstapje tot het interne netwerk. +

    Stappen 4-6 kunnen meerdere malen herhaald worden per test. Zo kan er bijvoorbeeld door exploitatie van kwetsbaarheden toegang worden +verkregen tot een extern systeem dat fungeert als een opstapje tot het interne netwerk. Het interne netwerk zal vervolgens worden verkend in Stappen 4 en 5, om vervolgens te worden geëxploiteerd in Stap 6.

    \ No newline at end of file From d03bc63668f6e53cdb50fe1545f782ef0e3be7a1 Mon Sep 17 00:00:00 2001 From: skyanth Date: Mon, 3 Oct 2016 17:34:20 +0200 Subject: [PATCH 56/60] Thorough snippet edit --- .../snippets/offerte/nl/prerequisites.xml | 2 +- .../snippets/offerte/nl/teamandreporting.xml | 83 ++++++++++--------- .../nl/teamandreporting_basic-scan.xml | 25 +++--- 3 files changed, 59 insertions(+), 51 deletions(-) diff --git a/xml/source/snippets/offerte/nl/prerequisites.xml b/xml/source/snippets/offerte/nl/prerequisites.xml index 46acc51..615e43e 100644 --- a/xml/source/snippets/offerte/nl/prerequisites.xml +++ b/xml/source/snippets/offerte/nl/prerequisites.xml @@ -4,7 +4,7 @@

    Om de diensten naar behoren uit te kunnen voeren heeft toegang nodig tot:

      -
    • test accounts
    • +
    • testaccounts
    • een testomgeving
    • contactgegevens van de systeemadministrators, voor noodgevallen
    • diff --git a/xml/source/snippets/offerte/nl/teamandreporting.xml b/xml/source/snippets/offerte/nl/teamandreporting.xml index 3ba1eac..b5b6d69 100644 --- a/xml/source/snippets/offerte/nl/teamandreporting.xml +++ b/xml/source/snippets/offerte/nl/teamandreporting.xml @@ -4,47 +4,56 @@
      Team -

      mag de activiteiten uitvoeren met haar kern-teamleden, - externe freelancers, en/of vrijwilligers.

      -

      Het eerste contactpersoon voor deze opdracht zal zijn:

      -
        -
      • ()
      • -
      • ()
      • -
      -

      De werkwijze van onze penetratietest-teams is gemodelleerd die van een "Capture The Flag-team": - - heeft een geografisch gedistribueerd team; - wij gebruiken online infrastructuur (RocketChat, GitLabs, etc.) - om ons werk te coördineren. Dit geeft ons de mogelijkheid - om verscheidene technische mensen uit de organisatie van de klant - uit te nodigen om op vrijwillige basis samen te werken met ons pentestteam. - Uiteraard geldt deze uitnodiging ook voor .

      - -

      In de loop van het project hebben wij de insteek om actief te - brainstormen met over zowel de pentest als het proces. - Dit is een doorlopende leerervaring voor zowel u als onszelf. - Daarnaast hebben wij ervaren dat een directe lijn voor feedback naar de klant - de kwaliteit en de focus van het dienstverband enorm verbeteren.

      +

      voert de activiteiten zoals genoemd in deze offerte uit + met haar kernteamleden, externe freelancers, en/of vrijwilligers.
      + De eerste aanspreekpunt voor deze opdracht zijn:

      +
        +
      • ()
      • +
      • ()
      • +
      +

      De werkwijze van onze penetratietest-teams is gemodelleerd die van een + "Capture The Flag-team": heeft een + geografisch gedistribueerd team; wij gebruiken online infrastructuur + (RocketChat, GitLabs, etc.) om ons werk te coördineren. Dit geeft ons de + mogelijkheid om verscheidene technische mensen uit de organisatie van de + klant uit te nodigen om op vrijwillige basis samen te werken met ons + pentestteam. Uiteraard geldt deze uitnodiging ook voor .

      + +

      betrekt actief bij het project door tussentijds + overleg te voeren over de voortgang van de en over het proces. + Door deze manier van werken wordt het project een doorlopende leerervaring voor + zowel u als voor . heeft ervaren dat een + rechtstreeks contact met de klant tijdens het project de kwaliteit en de focus + van onze diensten aanzienlijk verbetert.

      Rapportage -

      zal rapporteren aan betreffende de - penetratietest. Dit rapport zal de genomen stappen bevatten die benodigd waren - gedurende de test en daarnaast de bevonden kwetsbaarheden. Daarnaast zal het - aanbevelingen bevatten, maar geen uitgebreide oplossingen om deze - kwetsbaarheden op te lossen.

      - +

      + zal voor de tijdens de + aangetroffen kwetsbaarheden onderzoeken en classificeren. Onze bevindingen verwerken we in een (Engelstalig) + rapport. De belangrijkste bevindingen worden voorzien van een gedetailleerd advies + voor het verbeteren van de onveilige situatie. De minder kritische bevindingen + zullen door ons minder gedetailleerd worden behandeld. Voorafgaand aan de oplevering + van het rapport krijgt inzage in de conceptversie, zodat er nog ruimte is voor + vragen en suggesties. De bevindingen uit het rapport zullen telefonisch en/of per email door + en worden besproken. +

      +

      Een voorbeeld van een pentestrapport vindt u hier:

      - - -

      Een van de kernwaarden van is het - "Teach To Fish" principe - ook bekend als het - "Peek over our Shoulder (PooS)" principe. Wij streven ernaar om - onze diensten en rapporten zodanig te structureren dat onze klanten ze mogelijk kunnen benutten voor educatieve of trainingsdoeleinden.

      + + +

      Een van de kernwaarden van is het "Teach To Fish"-principe - ook + bekend als het "Peek over our Shoulder (PooS)"-principe. Wij streven ernaar + om onze diensten en rapporten zodanig te structureren dat onze klanten ze + mogelijk kunnen benutten voor educatieve of trainingsdoeleinden.

    diff --git a/xml/source/snippets/offerte/nl/teamandreporting_basic-scan.xml b/xml/source/snippets/offerte/nl/teamandreporting_basic-scan.xml index f6a2fd5..e37699a 100644 --- a/xml/source/snippets/offerte/nl/teamandreporting_basic-scan.xml +++ b/xml/source/snippets/offerte/nl/teamandreporting_basic-scan.xml @@ -5,29 +5,28 @@
    Team

    voert de activiteiten zoals genoemd in deze offerte uit - met haar kern-teamleden, externe freelancers, en/of vrijwilligers.
    - De eerste aanspreekpunt voor deze opdracht zijn: + met haar kernteamleden, externe freelancers, en/of vrijwilligers.
    + De eerste aanspreekpunt voor deze opdracht zijn:

    • ()
    • ()
    -

    werkt met een geografisch gespreid team. Onze teamleden bevinden zich in verschillende uithoeken van de wereld. maakt gebruik van een eigen - online infrastructuur (RocketChat, GitLabs, et cetera) om het werk binnen het + online infrastructuur (RocketChat, GitLabs, etcetera) om het werk binnen het team te coördineren. De online infrastructuur biedt ons de mogelijkheid om technische mensen uit de organisatie van uit te nodigen op - vrijwillige basis met ons pentestteam samen te werken. Natuurlijk geldt deze + vrijwillige basis met ons pentestteam samen te werken. Uiteraard geldt deze uitnodiging ook voor .

    betrekt actief bij het project door tussentijds overleg te voeren over de voortgang van de en over het proces. Door deze manier van werken wordt het project een doorlopende leerervaring voor - zowel u, als voor . heeft ervaren dat een - rechtstreeks contact met de klant tijdens het project, de kwaliteit en de focus + zowel u als voor . heeft ervaren dat een + rechtstreeks contact met de klant tijdens het project de kwaliteit en de focus van onze diensten aanzienlijk verbetert.

    @@ -35,18 +34,18 @@ Rapportage

    zal voor de tijdens de - aangetroffen kwetsbaarheden onderzoeken en classificeren. Onze bevindingen verwerken we in een Engelstalig + aangetroffen kwetsbaarheden onderzoeken en classificeren. Onze bevindingen verwerken we in een (Engelstalig) rapport. De belangrijkste bevindingen worden voorzien van een gedetailleerd advies voor het verbeteren van de onveilige situatie. De minder kritische bevindingen zullen door ons minder gedetailleerd worden behandeld. Voorafgaand aan de oplevering - van het rapport, krijgt inzage in de conceptversie zodat er nog ruimte is voor - vragen en suggesties. De bevindinen uit het rapport zullen telefonisch en/of per email door + van het rapport krijgt inzage in de conceptversie, zodat er nog ruimte is voor + vragen en suggesties. De bevindingen uit het rapport zullen telefonisch en/of per email door en worden besproken.

    - De managementsamenvatting wordt door zelf geschreven. Het rapport - zal een omschrijving van de stappen en de gevonden kwetsbaarheden bevatten. - Daarnaast zal het aanbevelingen bevatten (maar geen uitgebreide oplossingen) om + De managementsamenvatting wordt door zelf geschreven. Het volledige rapport + bevat een omschrijving van alle stappen en de gevonden kwetsbaarheden. + Daarnaast bevat het aanbevelingen (maar geen uitgebreide oplossingen) om de kwetsbaarheden te verhelpen. Het rapport wordt voorzien van een bijlage (annex) met ruwe testgegevens.

    From ff49a2a44008552b940f0bec5af6ec2d87f817e1 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 4 Oct 2016 16:59:55 +1000 Subject: [PATCH 57/60] Added more explanation about the attributes --- xml/templates/pentestreport/finding.xml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/xml/templates/pentestreport/finding.xml b/xml/templates/pentestreport/finding.xml index 2925744..8b2f3f5 100644 --- a/xml/templates/pentestreport/finding.xml +++ b/xml/templates/pentestreport/finding.xml @@ -1,5 +1,19 @@ - + + Title Case From c8de24f24fed877877c037cd5116b07395b7b430 Mon Sep 17 00:00:00 2001 From: Peter Mosmans Date: Tue, 4 Oct 2016 18:45:20 +1000 Subject: [PATCH 58/60] Added releaser script --- chatops/bash/releaser.sh | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 chatops/bash/releaser.sh diff --git a/chatops/bash/releaser.sh b/chatops/bash/releaser.sh new file mode 100644 index 0000000..e483420 --- /dev/null +++ b/chatops/bash/releaser.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# releaser - renames (and encrypts) pentest reports for release +# +# This script is part of the PenText framework +# https://pentext.org +# +# Copyright (C) 2016 Radically Open Security +# https://www.radicallyopensecurity.com +# +# Author(s): Peter Mosmans +# Marcus Bointon +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + + +source=target/report-latest.pdf +name=$1 +targetdir=target +type=REP +version=1.0 + +if [ -z ${name} ]; then + echo "Usage: releaser NAME [version [TYPE]]" + echo "Names files TYPE-YYYYMMDD-vVERSION-NAME" + echo "Expects source to be ${source}, and the target directory is ${targetdir}" + echo "defaults are version=1.0 and TYPE=REP" + exit 1 +fi + +[ ! -z $2 ] && version=$2 +[ ! -z $3 ] && type=$3 + +fullname="${targetdir}/${type}-$(date +'%Y%m%d')-v${version}-${name}.pdf" +if [ -f ${source} ]; then + if [ -f ${fullname} ]; then + echo "${fullname} already exists. Exiting..." + exit 1 + else + cp -v ${source} ${fullname} + PASS=$(head -c 25 /dev/random | base64 | head -c 25) + zip --password ${PASS} "${fullname}.zip" ${fullname} 2>/dev/null && echo "Zip file encrypted with password '${PASS}'" + fi +else + echo "Could not find source ${source}" + exit 1 +fi From aa67a4e2b8c25b7da7f7e535037f24890e7687d6 Mon Sep 17 00:00:00 2001 From: skyanth Date: Tue, 4 Oct 2016 15:19:46 +0200 Subject: [PATCH 59/60] Improved/simplified Quickscope, implemented mandays --- xml/doc/examples/examplequickscope.xml | 21 ++--- xml/dtd/common.xsd | 1 + xml/dtd/offerte.xsd | 1 + xml/dtd/quickscope.xsd | 78 +++++++++++++++++++ xml/dtd/xsi.xsd | 6 -- xml/source/quickscope.xml | 41 +++++----- .../snippets/offerte/en/projectoverview.xml | 2 +- .../snippets/offerte/nl/projectoverview.xml | 2 +- xml/xslt/placeholders.xslt | 6 ++ xml/xslt/qs2offerte.xsl | 4 + 10 files changed, 123 insertions(+), 39 deletions(-) create mode 100644 xml/dtd/quickscope.xsd delete mode 100644 xml/dtd/xsi.xsd diff --git a/xml/doc/examples/examplequickscope.xml b/xml/doc/examples/examplequickscope.xml index f7c1bab..285f0a3 100644 --- a/xml/doc/examples/examplequickscope.xml +++ b/xml/doc/examples/examplequickscope.xml @@ -1,10 +1,10 @@ - - - + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../dtd/quickscope.xsd"> + @@ -24,21 +24,22 @@ target2.target.com - + Third Party BV Third Party TP Waiver Rep -
    Street 1
    - City - Netherlands +
    TP Street 123
    + TP City + TP Country
    6 + + 12 time-boxed @@ -51,6 +52,8 @@ TBD + + AppToTest 40000 diff --git a/xml/dtd/common.xsd b/xml/dtd/common.xsd index e485ab9..a1defec 100644 --- a/xml/dtd/common.xsd +++ b/xml/dtd/common.xsd @@ -109,6 +109,7 @@ + diff --git a/xml/dtd/offerte.xsd b/xml/dtd/offerte.xsd index 7515393..8db3d07 100644 --- a/xml/dtd/offerte.xsd +++ b/xml/dtd/offerte.xsd @@ -67,6 +67,7 @@ + diff --git a/xml/dtd/quickscope.xsd b/xml/dtd/quickscope.xsd new file mode 100644 index 0000000..0545e85 --- /dev/null +++ b/xml/dtd/quickscope.xsd @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xml/dtd/xsi.xsd b/xml/dtd/xsi.xsd deleted file mode 100644 index 3bf63e1..0000000 --- a/xml/dtd/xsi.xsd +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/xml/source/quickscope.xml b/xml/source/quickscope.xml index a903f48..8c9a0bb 100644 --- a/xml/source/quickscope.xml +++ b/xml/source/quickscope.xml @@ -1,10 +1,10 @@ - - - + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="../dtd/quickscope.xsd"> + @@ -16,29 +16,23 @@ pentest - penetration testing services - + penetration testing services + - - - - - - -
    - - -
    - + + + + - + 0 + + 0 time-boxed @@ -51,8 +45,11 @@ TBD - - + + + + + 0 diff --git a/xml/source/snippets/offerte/en/projectoverview.xml b/xml/source/snippets/offerte/en/projectoverview.xml index d416f65..62f9300 100644 --- a/xml/source/snippets/offerte/en/projectoverview.xml +++ b/xml/source/snippets/offerte/en/projectoverview.xml @@ -16,7 +16,7 @@

    will test for the presence of the most common vulnerabilities, using both publicly available vulnerability scanning tools and manual testing. shall perform a - -day, , intrusive test via the internet.

    + -day (-manday), , intrusive test via the internet.

    zal testen op de aanwezigheid van de meest voorkomende kwetsbaarheden, gebruik makend van zowel publiek beschikbare scanning tools, als door handmatig testen. zal een grondige - -daagse, test uitvoeren via internet.

    + -daagse ( mandagen), test uitvoeren via internet.

    Scope diff --git a/xml/xslt/placeholders.xslt b/xml/xslt/placeholders.xslt index 970e3c3..b5a854f 100644 --- a/xml/xslt/placeholders.xslt +++ b/xml/xslt/placeholders.xslt @@ -147,6 +147,12 @@ + + + + + + diff --git a/xml/xslt/qs2offerte.xsl b/xml/xslt/qs2offerte.xsl index 180937e..8bd07c5 100644 --- a/xml/xslt/qs2offerte.xsl +++ b/xml/xslt/qs2offerte.xsl @@ -75,6 +75,10 @@ duration of pentest, in working days + + + + duration of pentest, in mandays From 44619d46122821027b16f844179ca79bde2b7d23 Mon Sep 17 00:00:00 2001 From: skyanth Date: Tue, 4 Oct 2016 16:30:04 +0200 Subject: [PATCH 60/60] XML invoice now has additional cost field & vat pre-added --- xml/xslt/off2inv.xsl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/xml/xslt/off2inv.xsl b/xml/xslt/off2inv.xsl index ffaacc4..fd35214 100644 --- a/xml/xslt/off2inv.xsl +++ b/xml/xslt/off2inv.xsl @@ -41,6 +41,7 @@ + Add/delete <service> elements as needed   - + + + Add/delete <cost> elements as needed + + ... + 0 + + + ... + 0 + +