From 300e22a5378841d65119941bfde5a0c3fe6be4dd Mon Sep 17 00:00:00 2001 From: Michael Albert Date: Thu, 14 May 2020 11:17:00 +0200 Subject: [PATCH 01/16] Show version of Synapse-Admin Change-Id: I354e3f3b3e4f45e5ca72318ce70b66bee433f3d6 --- package.json | 6 +++--- public/index.html | 9 ++++++++- src/components/LoginPage.js | 3 ++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7d754fe..002f90d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "synapse-admin", - "version": "0.1.0", + "version": "0.2.1", "description": "Admin GUI for the Matrix.org server Synapse", "author": "Awesome Technologies Innovationslabor GmbH", "license": "Apache-2.0", @@ -29,8 +29,8 @@ "react-scripts": "^3.4.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", + "start": "REACT_APP_VERSION=$(git describe --tags) react-scripts start", + "build": "REACT_APP_VERSION=$(git describe --tags) react-scripts build", "fix:other": "yarn prettier --write", "fix:code": "yarn test:lint --fix", "fix": "yarn fix:code && yarn fix:other", diff --git a/public/index.html b/public/index.html index 4209361..2b90907 100644 --- a/public/index.html +++ b/public/index.html @@ -38,5 +38,12 @@ To begin the development, run `npm start` or `yarn start`. To create a production bundle, use `npm run build` or `yarn build`. --> + - + \ No newline at end of file diff --git a/src/components/LoginPage.js b/src/components/LoginPage.js index 6834625..a5bcec8 100644 --- a/src/components/LoginPage.js +++ b/src/components/LoginPage.js @@ -29,7 +29,7 @@ const useStyles = makeStyles(theme => ({ main: { display: "flex", flexDirection: "column", - minHeight: "100vh", + minHeight: "calc(100vh - 1em)", alignItems: "center", justifyContent: "flex-start", background: "url(./images/floating-cogs.svg)", @@ -40,6 +40,7 @@ const useStyles = makeStyles(theme => ({ card: { minWidth: "30em", marginTop: "6em", + marginBottom: "6em", }, avatar: { margin: "1em", From 3884c500124916d24f2ebfee2c5217530fc6b335 Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Sat, 23 May 2020 17:43:33 +0200 Subject: [PATCH 02/16] Extend the room list with further attributes Add further attributes: - is_encrypted - federatable - public - state_events - version - joined_local_members Also add the ability to sort. API was added by synapse v1.13.0. --- src/components/rooms.js | 22 +++++++++++++++++++--- src/i18n/de.js | 6 ++++++ src/i18n/en.js | 6 ++++++ src/synapse/dataProvider.js | 14 ++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/components/rooms.js b/src/components/rooms.js index 8cac414..a28290f 100644 --- a/src/components/rooms.js +++ b/src/components/rooms.js @@ -1,17 +1,33 @@ import React from "react"; -import { Datagrid, List, TextField, Pagination } from "react-admin"; +import { + Datagrid, + List, + TextField, + Pagination, + BooleanField, +} from "react-admin"; const RoomPagination = props => ( ); export const RoomList = props => ( - }> + } + sort={{ field: "name", order: "ASC" }} + > - + + + + + + + ); diff --git a/src/i18n/de.js b/src/i18n/de.js index a467c1a..c7466b4 100644 --- a/src/i18n/de.js +++ b/src/i18n/de.js @@ -53,6 +53,12 @@ export default { name: "Name", canonical_alias: "Alias", joined_members: "Mitglieder", + joined_local_members: "lokale Mitglieder", + state_events: "Ereignisse", + version: "Version", + is_encrypted: "Verschlüsselt", + federatable: "Fö­de­riert", + public: "Öffentlich", }, }, connections: { diff --git a/src/i18n/en.js b/src/i18n/en.js index a7a6141..e6335e0 100644 --- a/src/i18n/en.js +++ b/src/i18n/en.js @@ -53,6 +53,12 @@ export default { name: "Name", canonical_alias: "Alias", joined_members: "Members", + joined_local_members: "local members", + state_events: "State events", + version: "Version", + is_encrypted: "Encrypted", + federatable: "Federatable", + public: "Public", }, }, connections: { diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js index 6d5486c..0729094 100644 --- a/src/synapse/dataProvider.js +++ b/src/synapse/dataProvider.js @@ -48,6 +48,9 @@ const resourceMap = { id: r.room_id, alias: r.canonical_alias, members: r.joined_members, + is_encrypted: !!r.encryption, + federatable: !!r.federatable, + public: !!r.public, }), data: "rooms", total: json => { @@ -86,11 +89,20 @@ function filterNullValues(key, value) { return value; } +function getSearchOrder(order) { + if (order === "DESC") { + return "b"; + } else { + return "f"; + } +} + const dataProvider = { getList: (resource, params) => { console.log("getList " + resource); const { user_id, guests, deactivated } = params.filter; const { page, perPage } = params.pagination; + const { field, order } = params.sort; const from = (page - 1) * perPage; const query = { from: from, @@ -98,6 +110,8 @@ const dataProvider = { user_id: user_id, guests: guests, deactivated: deactivated, + order_by: field, + dir: getSearchOrder(order), }; const homeserver = localStorage.getItem("base_url"); if (!homeserver || !(resource in resourceMap)) return Promise.reject(); From 0ada5287d7257c930e5c0f422d0ad48f2fc1aba9 Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Tue, 5 May 2020 19:07:07 +0200 Subject: [PATCH 03/16] Show Synapse server version on login page Change-Id: Id9b0d2adf83590524069d308f4fe9e5d14147295 --- src/components/LoginPage.js | 34 +++++++++++++++++++++++++++++++++- src/i18n/de.js | 1 + 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/components/LoginPage.js b/src/components/LoginPage.js index a5bcec8..3058b45 100644 --- a/src/components/LoginPage.js +++ b/src/components/LoginPage.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import { fetchUtils, FormDataConsumer, @@ -65,6 +65,12 @@ const useStyles = makeStyles(theme => ({ actions: { padding: "0 1em 1em 1em", }, + serverVersion: { + color: "#9e9e9e", + fontFamily: "Roboto, Helvetica, Arial, sans-serif", + marginBottom: "1em", + marginLeft: "0.5em", + }, })); const LoginPage = ({ theme }) => { @@ -138,6 +144,7 @@ const LoginPage = ({ theme }) => { const UserData = ({ formData }) => { const form = useForm(); + const [serverVersion, setServerVersion] = useState(""); const handleUsernameChange = _ => { if (formData.base_url) return; @@ -158,6 +165,30 @@ const LoginPage = ({ theme }) => { } }; + useEffect( + _ => { + if ( + !formData.base_url || + !formData.base_url.match(/^(http|https):\/\/[a-zA-Z0-9\-.]+$/) + ) + return; + const versionUrl = `${formData.base_url}/_synapse/admin/v1/server_version`; + fetchUtils + .fetchJson(versionUrl, { method: "GET" }) + .then(({ json }) => { + setServerVersion( + `${translate("synapseadmin.auth.server_version")} ${ + json["server_version"] + }` + ); + }) + .catch(_ => { + setServerVersion(""); + }); + }, + [formData.base_url] + ); + return (
@@ -190,6 +221,7 @@ const LoginPage = ({ theme }) => { fullWidth />
+
{serverVersion}
); }; diff --git a/src/i18n/de.js b/src/i18n/de.js index a467c1a..05d9a6e 100644 --- a/src/i18n/de.js +++ b/src/i18n/de.js @@ -6,6 +6,7 @@ export default { auth: { base_url: "Heimserver URL", welcome: "Willkommen bei Synapse-admin", + server_version: "Synapse Version", username_error: "Bitte vollständigen Nutzernamen angeben: '@user:domain'", protocol_error: "Die URL muss mit 'http://' oder 'https://' beginnen", url_error: "Keine gültige Matrix Server URL", From b7c3684b80dec933da31ee368d895cbe9cf9dcfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2020 14:50:58 +0200 Subject: [PATCH 04/16] Bump websocket-extensions from 0.1.3 to 0.1.4 (#49) Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c5be95c..72f4311 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11444,9 +11444,9 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" From 5bdfb80db79370662d485d2c898cc248524490f8 Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Tue, 26 May 2020 17:37:43 +0200 Subject: [PATCH 05/16] Bugfix sort users by `user_id` Users are not sortable by `user_id`. Set `sortable={false}`. --- src/components/users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/users.js b/src/components/users.js index 16167a0..d978c26 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -78,7 +78,7 @@ export const UserList = props => ( > - + {/* Hack since the users endpoint does not give displaynames in the list*/} Date: Tue, 16 Jun 2020 07:54:49 +0200 Subject: [PATCH 06/16] Bugfix removes the ability to click on individual connections. If you click on a connection in UserEdit, you will get an empty page. This solves the problem. --- src/components/users.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/users.js b/src/components/users.js index d978c26..fd334f0 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -176,7 +176,12 @@ export const UserEdit = props => ( label="resources.connections.name" icon={} > - + Date: Tue, 16 Jun 2020 09:24:49 +0200 Subject: [PATCH 07/16] Add creation timestamp and consent version to UserEdit Add information about the user to UserEdit - creation timestamp - consent version --- src/components/users.js | 13 +++++++++++++ src/i18n/de.js | 2 ++ src/i18n/en.js | 2 ++ src/synapse/dataProvider.js | 2 ++ 4 files changed, 19 insertions(+) diff --git a/src/components/users.js b/src/components/users.js index fd334f0..9f57e85 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -159,6 +159,19 @@ export const UserEdit = props => ( source="deactivated" helperText="resources.users.helper.deactivate" /> + + { From aaf1ebb9093b1aa041f9b7745a85012c45303545 Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Tue, 16 Jun 2020 10:05:38 +0200 Subject: [PATCH 08/16] Change field `creation_ts * 1000` to `creation_ts_ms` --- src/components/users.js | 2 +- src/i18n/de.js | 4 ++-- src/i18n/en.js | 2 +- src/synapse/dataProvider.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/users.js b/src/components/users.js index 9f57e85..e83b70e 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -160,7 +160,7 @@ export const UserEdit = props => ( helperText="resources.users.helper.deactivate" /> { From 3fd615943cc441ee154d4fc278b036b16fdd1986 Mon Sep 17 00:00:00 2001 From: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> Date: Wed, 1 Jul 2020 22:36:15 +0200 Subject: [PATCH 09/16] Shows encrypted status with icons --- src/components/rooms.js | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/components/rooms.js b/src/components/rooms.js index a28290f..4c598b9 100644 --- a/src/components/rooms.js +++ b/src/components/rooms.js @@ -5,12 +5,43 @@ import { TextField, Pagination, BooleanField, + useTranslate, } from "react-admin"; +import get from "lodash/get"; +import { Tooltip, Typography } from "@material-ui/core"; +import HttpsIcon from "@material-ui/icons/Https"; +import NoEncryptionIcon from "@material-ui/icons/NoEncryption"; const RoomPagination = props => ( ); +const EncryptionField = ({ source, record = {}, emptyText }) => { + const translate = useTranslate(); + const value = get(record, source); + let ariaLabel = value === false ? "ra.boolean.false" : "ra.boolean.true"; + + if (value === false || value === true) { + return ( + + + {value === true ? ( + + ) : ( + + )} + + + ); + } + + return ( + + {emptyText} + + ); +}; + export const RoomList = props => ( ( sort={{ field: "name", order: "ASC" }} > + } + /> @@ -25,7 +61,6 @@ export const RoomList = props => ( - From 8282a3caf886aade41986ea18a0a1b93c2c06cfd Mon Sep 17 00:00:00 2001 From: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> Date: Mon, 6 Jul 2020 12:35:26 +0200 Subject: [PATCH 10/16] Move threepids in UserEdit to a separate tab (#51) Separates information into individual tabs for a better overview. --- src/components/users.js | 8 ++++++++ src/i18n/de.js | 1 + src/i18n/en.js | 1 + 3 files changed, 10 insertions(+) diff --git a/src/components/users.js b/src/components/users.js index e83b70e..ff21436 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -1,5 +1,6 @@ import React, { Fragment } from "react"; import PersonPinIcon from "@material-ui/icons/PersonPin"; +import ContactMailIcon from "@material-ui/icons/ContactMail"; import SettingsInputComponentIcon from "@material-ui/icons/SettingsInputComponent"; import { ArrayInput, @@ -172,6 +173,12 @@ export const UserEdit = props => ( }} /> + + } + path="threepid" + > ( } + path="connections" > Date: Wed, 10 Jun 2020 14:59:55 +0200 Subject: [PATCH 11/16] Get avatar_url and displayname from v2/users API API was added by synapse v1.13.0. Change-Id: I927b81882fa20e5b3de3d9fc216e2136f7036bba --- src/components/users.js | 251 +++++++++++++++++++----------------- src/i18n/de.js | 1 + src/i18n/en.js | 1 + src/synapse/dataProvider.js | 18 ++- 4 files changed, 149 insertions(+), 122 deletions(-) diff --git a/src/components/users.js b/src/components/users.js index ff21436..c18555c 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -1,4 +1,5 @@ import React, { Fragment } from "react"; +import Avatar from "@material-ui/core/Avatar"; import PersonPinIcon from "@material-ui/icons/PersonPin"; import ContactMailIcon from "@material-ui/icons/ContactMail"; import SettingsInputComponentIcon from "@material-ui/icons/SettingsInputComponent"; @@ -18,7 +19,6 @@ import { FormTab, BooleanField, BooleanInput, - ImageField, PasswordInput, TextField, TextInput, @@ -32,6 +32,19 @@ import { Pagination, } from "react-admin"; import { ServerNoticeButton, ServerNoticeBulkButton } from "./ServerNotices"; +import { makeStyles } from "@material-ui/core/styles"; + +const useStyles = makeStyles({ + small: { + height: "40px", + width: "40px", + }, + large: { + height: "120px", + width: "120px", + float: "right", + }, +}); const UserPagination = props => ( @@ -62,40 +75,36 @@ const UserBulkActionButtons = props => { ); }; -export const UserList = props => ( - } - filterDefaultValues={{ guests: true, deactivated: false }} - bulkActionButtons={} - pagination={} - > - - - - - - {/* Hack since the users endpoint does not give displaynames in the list*/} - - - - - - - - +const AvatarField = ({ source, className, record = {} }) => ( + ); +export const UserList = props => { + const classes = useStyles(); + return ( + } + filterDefaultValues={{ guests: true, deactivated: false }} + bulkActionButtons={} + pagination={} + > + + + + + + + + + + ); +}; + // https://matrix.org/docs/spec/appendices#user-identifiers const validateUser = regex( /^@[a-z0-9._=\-/]+:.*/, @@ -148,89 +157,97 @@ const UserTitle = ({ record }) => { ); }; -export const UserEdit = props => ( - }> - }> - }> - - - - - - - - - } - path="threepid" - > - - - - - - - - } - path="connections" - > - { + const classes = useStyles(); + return ( + }> + }> + }> + + + + + + + + + + } + path="threepid" > - + + + + + + + } + path="connections" + > + - - - - - - - - - - -); + + + + + + + + + + + + ); +}; diff --git a/src/i18n/de.js b/src/i18n/de.js index 5ec9947..cc75b68 100644 --- a/src/i18n/de.js +++ b/src/i18n/de.js @@ -36,6 +36,7 @@ export default { displayname: "Anzeigename", password: "Passwort", avatar_url: "Avatar URL", + avatar_src: "Avatar", medium: "Medium", threepids: "3PIDs", address: "Adresse", diff --git a/src/i18n/en.js b/src/i18n/en.js index 2b29701..3c0fd7c 100644 --- a/src/i18n/en.js +++ b/src/i18n/en.js @@ -35,6 +35,7 @@ export default { displayname: "Displayname", password: "Password", avatar_url: "Avatar URL", + avatar_src: "Avatar", medium: "Medium", threepids: "3PIDs", address: "Address", diff --git a/src/synapse/dataProvider.js b/src/synapse/dataProvider.js index 21748fd..cebc413 100644 --- a/src/synapse/dataProvider.js +++ b/src/synapse/dataProvider.js @@ -14,12 +14,24 @@ const jsonClient = (url, options = {}) => { return fetchUtils.fetchJson(url, options); }; +const mxcUrlToHttp = mxcUrl => { + const homeserver = localStorage.getItem("base_url"); + const re = /^mxc:\/\/([^/]+)\/(\w+)/; + var ret = re.exec(mxcUrl); + console.log("mxcClient " + ret); + if (ret == null) return null; + const serverName = ret[1]; + const mediaId = ret[2]; + return `${homeserver}/_matrix/media/r0/thumbnail/${serverName}/${mediaId}?width=24&height=24&method=scale`; +}; + const resourceMap = { users: { path: "/_synapse/admin/v2/users", map: u => ({ ...u, id: u.name, + avatar_src: mxcUrlToHttp(u.avatar_url), is_guest: !!u.is_guest, admin: !!u.admin, deactivated: !!u.deactivated, @@ -27,11 +39,7 @@ const resourceMap = { creation_ts_ms: u.creation_ts * 1000, }), data: "users", - total: (json, from, perPage) => { - return json.next_token - ? parseInt(json.next_token, 10) + perPage - : from + json.users.length; - }, + total: json => json.total, create: data => ({ endpoint: `/_synapse/admin/v2/users/${data.id}`, body: data, From 6da3c8b8858fc3979b2b06a0446f2b4ea88469e3 Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Tue, 16 Jun 2020 09:52:08 +0200 Subject: [PATCH 12/16] Bugfix translation of plural in UserTitle --- src/components/users.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/users.js b/src/components/users.js index c18555c..d92041c 100644 --- a/src/components/users.js +++ b/src/components/users.js @@ -152,7 +152,9 @@ const UserTitle = ({ record }) => { const translate = useTranslate(); return ( - {translate("resources.users.name")}{" "} + {translate("resources.users.name", { + smart_count: 1, + })}{" "} {record ? `"${record.displayname}"` : ""} ); From ab709aee3e6daffa89978bd16ec1b188dc842053 Mon Sep 17 00:00:00 2001 From: Michael Albert Date: Sat, 4 Jul 2020 19:32:45 +0200 Subject: [PATCH 13/16] Add screenshots and install instructions Change-Id: Ibfede12d700924b7b3b01af5f3a3624f21a93862 --- README.md | 25 +++++++++++++++++++++++++ screenshots.jpg | Bin 0 -> 227036 bytes 2 files changed, 25 insertions(+) create mode 100644 screenshots.jpg diff --git a/README.md b/README.md index 903f4f1..ba6c7d4 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,28 @@ This project is built using [react-admin](https://marmelab.com/react-admin/). Use `yarn install` after cloning this repo. Use `yarn start` to launch the webserver. + + +## Step-By-Step install: + +You have two options: + + 1. Download the source code from github and run using nodejs + 2. Run the Docker container + +Steps for 1): + +- make sure you have installed the following: git, yarn, nodejs +- download the source code: `git clone https://github.com/Awesome-Technologies/synapse-admin.git` +- change into downloaded directory: `cd synapse-admin` +- download dependencies: `yarn install` +- start web server: `yarn start` + +Steps for 2): + +- run the Docker container: `docker run -p 8080:80 awesometechnologies/synapse-admin` +- browse to http://localhost:8080 + +## Screenshots + +![Screenshots](./screenshots.jpg) diff --git a/screenshots.jpg b/screenshots.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a0837598db7821afc304b0c0a7c0f0cc4760718 GIT binary patch literal 227036 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

wt z>x$@j>)v&mypOIBb82acv{}L3@_IrtG`8v#kv^skZKU~A|4kB-(QVLNW%-Xnsv~I; z@OH+!tQ3lpa9nlF)i52+uF{d=%2fDU8mUos`d{2kC$Nm~i|XKB6!idgN|VN2JDOOX zva>|P@*mYq=0+w$BA@j=s9fXi?W0}ZsP(rb#CVknr9yT%(?8#D#NM7Od+vzrnRG5J znyVB@d8aNO6mmc5Y4r+$zrCGcEgq~lV~O-CiO1Lb_bNn1WqoQv>@L>8>VqX(Z*+=_ zFYpx=B&GSm^tp1dQBmfkmj-$yDDsjvW5Ort_(`q=Z67^aJhqjKQ&P!W0dI~K|CAN^0cyMf5%d`Qk>~k} zLs1{SV%ARmE7w*`{S&q_>zW}A!cZME{oMe&&1|?`vUdD}+cWbeK4HUZr`pjpxtrBi zHC}Ei@@DIar}zkQ<0U)zl}UFVSKIPF+#PPl@(u!W6!X58SLuZqF+iire7-^|HNoja zbh0s50#)=!Tyc(95PP{wfzxI&y8dQfU0;j*NGIOZjN^3bCO)4wyE1Hk?+UvHb_sML zYGl6NoU}xDTk_(omR>Kysi6WQ(vPC!O~8%3v=sxFS`$Lj*d8BuZ9TYfbB5`*tNOgT z=h58>d03&DL*GhRvlRZ5gvT%G5T~Z}^Aa^8;G_ec70fl~TGH5B{IY=CjkbrPO?I|# z>pY_ks5px+cAOwnoSickmw`AgS&!Tnyf;Aq%l%Dvu2-K@1A9~bta zBts5{c4Ud$Bwv26ky@7^cqTKOr;21fm@8>rHVey(; z3!~kJd@1L^UTJcDIEo$d>Viaw z8EXm*P<6846!BSYyayC;&1Z$C?$rXI4h(JVF<@Nm%XUMaZq3`NA9;z7?R}w1S2B8eB;pEvTmiNF>-C`V_*KgDJRkzyZw(8x?ZfIZz8wss35$EYwsvpGBaBEf+rf&DP8dXl^X^wuIxFvVf_FcETlW18m z!vYn{@1f>do1F-C@5CNGq^yj*QJj%Dw5*ale0Eox?Nm7zTwK(>W;#$>bh|r^tBvCm z#C)%yecP0O60XhEe|?W_yTvA9$h}Tq3?D3>sOOy1-MzF`+2WX&`T-3>+Sn8#%pq>H zg;5`nYLZq8`S_e6uJ$uoi$UD@K9~CW$B2APQCVVcfHRHKt^_UBNn1hKSDfpuy(V|>qa2~3d zij_KynBojZTJ$P3iXQ{x^4|UYh(c56;RKd3{8+FX6I1^$gg6jKo20UcmCQ%e7Ilf< z#4g<|q(Mf0e=$mkCuYRv$&<*jgAve28!R^pzCRelv4%7!IAv>P53%Dp`5$HqM~#nb z3-)d)D%SNtAs973+atP~54Uk#EonZj77N$yV8#8)vH|(Nl}<_JEchXvboLKImG3{c zRc&jOY;K17ZU#|*QRX{m7Q)FLWWJrr?KBq&^22BAKg4%Uk#`CQH+K0=mt9WSp5WV# zj1-9Lw^{=8oWcj^&SfWfCv7HS);R7*M{{?ZQ2IL6a(xVRLGGq)D0ijq>n{@4bH;`8 zX}ofaDh%If>|qJPUOAP#L@D8yeycqu#$s^&_O3CuSl3!>LPr~R(8wgF|c!=!xybQYWmKxuwmSJCa*FF&u#`5n_h~m6TPE! zapq~JzatR=Lk6HZOoB5o-jN;bAa;=AI86A_TaQ9ty7LuT{EFsmF(rXLjGho)hD>;RcD*EjY5lcpYQr%1uzDtp!Z?F5wKs#mwPTGExR6lBpOVPi!SiEa zd}QfBx{KIo{{YosW%;T$!&(uPb&+r;yc=(fyi<#}E@OJtw&TaOlheubON({2G_35Q z4qsg2!Tm_lkrpFP!sSTR_^#r8#%#hJJYs-@-(NGU3OHHv>CtHw-~?}A=SRvHe8|yK z--LRn23Mvnc{H)?_N-$FzCS77IOTq6buZaYA*p!PMa`JYf7r|a;bZZ9Jl@<@}{t;NCMYZ z=tPx!YVyj7)Sgb6DAAZM4zt4Cd-UsiAKUW`GrN*}OrT%!;~N8!Yo{zaoyM} z<7nbcoGCs=U0vTg3zL+sQ*_zPx+wf=%buOu+rrwZede14zB)!e(xv8E3??dU6+U)j zWAU@dtWuw1@%54Aq~goQ0(h}9IZhm>Z;rto#yO?IMrQXfy$$WvEwb?WMTrA}qcmB8 zDm{mp`d2$zty+;ub~$k<7Cde$6#@-eNUPgALrQCcmQ|lF^kG4<)*1}8A(1}VH$>Cc znKY>qC;ZXK6y`n6$|7-Q`LKh!=}|+{#5~?tFkt*);m-TX+V?4k8z=Jc?{Zlfaz9CH zNrd9J^nHna*LMs%S+rpa48@?Bu32bttQ>f)?G{UC%w0zz>G);!>Soq$JZl00cAuc; zEE%&siox@=;vX~K3{FQ0aTu(6www@-8ZfwKtdLSeO~7#fLPR(|(jl)_TuSxhEE5ZQF`ZZRY{?z#2D7v`lWWi@{?S%kul=fe z+{b)-+ZG0V1EZS&RwW!Wo{t=qqqi^Yi*$HjVXU^?kv!Ns8+7q`B?B{?VuRnkqQW-< zrPaEh^TtFx8#*mf65GVM$=tAL8|(-k#%inHQcIBGoTm)RuNOjs+9d;pPzt3vF)Z?# zm~zMY=+_fsx@l@%gBEB6>aOcjNj+RMSMH2wZGZg&oSuLSpOR*#x`o>z33$^XkPIBXdw-0niu*(ji_fFwHaxW^nzesPh&qHj-`D9A8+ATUU{x8CkAM(05^W_6yg|QF6!j zlZHALQZ%XTPZG!2LlR!2KD4mcb@~++rfHGylgwQCT~RSI-mVLj_VBZh z9J10J6%8NwJ|);4+q;@% zhn(}WVw2>Xe;t7@TF&XaLmxqN3}{Hu&Nyw>7~gm#nZ~a}Dti19zP;JTY72$5S+^E< zA9S2lowMuoF0+e8xm1;w7FC#=m{&O!k}@MOG0sRouBYY(h_mEZ)^p^v3zAX%S@>Sb ztoSKAOiZ*Bw{@d=JKGV*Lu4~(m(T*MT~&!ytulP>{P_V2XM84bTsbj|Fy|NlBs#A2 zr6ip;NUDqor-G$WJgHv{#}1FZ9Z!m#{9vlC@1axVY+HweD@k>y7E#G=&Lq&ss5QI2 zkq^8rk)!UDthKxrC@VQ6zpQCM+3zrtxS8W&q>GtJc9-{@Kha!rpnW#I-+0K(#1NY% zGadpRbaUnm%Ok`sr<&K!nJ-2Z#Xh5_9#{3j#kLP&5F-wEzBmwDm;GOqSql@Orn7Bq zQk?S(I~2A3pF#CwRd-ZfFE|B7yT(kkX?o^Y59TRs5!5DiaqcSI1JSN@K9K>w5QLg=Dx0D4(UWIu6OS^qduLRbpKJb3f*k}N$4BMHy zv^JLYUe2AT%6MVvZR)$Sq~vjaHqQs4dcJe3FU({$n zA@0($3zp{eVa8o5M{{fXrDi-sV2JfQxkXXA-Yi|F??ROZDGLYE>D3N+a|X8@#w>2- zYHVU|qe+Mtg@bCrBASv61_1-?k1aP9-5ST&h7k?>t>Dw(O0yz@_*K&R7A&M^8`;Ke z6J}k@NwIzYx4RETaZXir+M#FNRs4dHlvGJThYCOJa_l9n-IqPMFNf94LiC1%Zbk?x>-O3us8f&^-)!Y4!4jrFq zfiVT+XN!_f#|JPle2Br{+_LJ%NWT7gsRfm<08z5kTDpYe?e+`rRaL(+x-{hl9f_w3 zn)M#$1mk&xkvn+oaA5rmf3^q$ml7^gVfGI6i!_|G&GKljF7xMf(RY;_FIFuGJgL1K z2eMPK(lxq5)cqJ1okh^b_4(&g)tV5~LQF(qDZ&D6=};5c;0r_aW+XtNXh9((@EJr| zd}IP~9a>ycl!R!0zYG3xJb9(=67oPT^k+E3;uupd$?=4R5jISN&4-UU7IoQb_sHs4Y& zl~5W_3*#P1dX> z5CqxMV~+GYd_9ap_V~&(Ff8Wz^&R>S`RN;<>3L3EOlf}!8IcG2g8T=7q_FbLi?X4{ZNRqCk)PYl4hiMV6 z+dzkK(=rtft`oIDk5>k;xFKQU&_LZv2J!R}2mZ&Ug~gbwuId^n=Z}`U;9Kdkbw3Xy z2AFztFKGmnp7;4XuktsG|2yC}pYR4fPXb=N+e_BqV#kmGHYA1EeuM;uCY*RQpJ*f`FyWtWo0sPV8T^C%Tk#{^1$cKc)N+B8_5G-+?Ga|0BN1}nk}UJk4>*o{QuxY>8dTjlW!X*%htxjSG0EG7NGI8_1VYD ziU-~ayirs-DT2_|$34(&<^Ffveo=E~%a4r>1{FO6ThrMZHl(M%^fy{7C_TkDNRZ}> zbF#Etr8=q+MxETwDYe8hC~It^V(xlKap3B0oAwSDIEQXspx<_BT z>O}NBNj0!WSJgK^1|N@j`B5tccaPAQ$xz|YSrC#ICKq6*rhRpc;Kd`uBd`iJzQwxn zmmU`AJhNqYf1mByQV)jal2c}RPjqBsQPpV^*bh8IlAUWvC{m@dCZgQRpkpBbM6CIGbxSJp-Rk3L9- ziklfJvawFG%+nZZBh%8=9A7RzM>Cx@!hKFBNGN|eaJ6bYHxDh5$V4cxo*qf!DK>pR z`{E4bC7oV3lR^2YK`pT`D$JYr1)Y6vL19}WyjfW2b=^ozOGEXc;tMNvciaMMde&*D-l#aWa47q$oKL#R8<+_P7>aA<0a z3Ym1RLd+0&RTH1zas-ScCxwk@TiZN~U4M~voW(LDMkd-Ike8wh>XffPFb7_iKn@MH z!RcSF*}T^>eHA5VjUmB`A2glkD;>}>3Ii{$EImyscQiRuG(ZPh9`qu}Oy5QMcI@kd zK44>YqtTpdds!m}1fwRlw;16w;k1QWZ-f^!drU`{r_!d!x=kftkMa+loh07+2P5ku&m+3@EN*&zcvP`Wb zea~rdZt=6XncNa31(`b|{H!pl_2yG?6_OT55H)05;aS{dKEL{{!oq$bq7T;j`fPqQ z(msKW6z5gN%f{30z|sO z#G}$}l23gd>a2{wSjzjttjXH^_fnUktM9bXmClnLGf%dD%1nMkvS|us^_ZXul+8=} zd?g*J){&$fuWI&liN-O&E9{a*8ec4%rKw!`fh0s<9Y`ym_lwg3x&)IHpRLeNE6Y;m zWgQWTnd-$HLQVvhDps{=I;X{e4<8Qm4LJpx%J~L&ylNKDAT@(I31=|*lXq2(=U7@` z4v%ZW#@g(*z4^8V1F{2BMz|T)oKJBh`4_EvKaA1zpadT0hv9>MMkb0H_E+N_!MBWv zrT)t^HO#zXM5&p(Os;7G*DS9-+JC;TYxqbGe-T_{Bt58+vBCmg+Y>%hlR~#vA7ES8 zsme}Q(Y0L2Zdhk>aB94#Vr|=RI>meSgn&i%*ayjNpS8TYm+a2iM6CFLz>kH9@kM#I zz&;4&&2@o5rJ<{Yyk~iwUCTar9p(~UurNy%V!?~BcGto^F-YE(nf9PQDD(1_xVS<1 zAY8!Cx`AX~OW=F{9*pw&LK~$xEqBpPYP?jD3x7*z8D;vq*JdON0}e`duRUYvILA)K zQv+kc^h~u(=kBEOJRq1mrIAiy3vF)(QMuEF%JDk+Fh8*FYjfe z{1eR-eM1!J!)EA(5K;6(!Gj%RP7m^BaxTZ#d9*NIw!6Z2gfj&f^N)-I>^t-mGTA#CeyWb5eIUZS2*v-7^6Bfta-*B-ldtt zr;SeK-Qx2kgC%;Ts~{qomZd|@X0CuxaFZOKdet$4M(T{;rnst6J^_F;qF;X9j`O>* z`dkbYSOpg1yIpj*j1D75sy-yMBYAON^T7-B*c=MTCu7Sq&;Yh?bGtEq@G9440(L!!uXQJGJ zg6mRdKlzJs+LdggI~17%+5!wi+c8>;KNjV>YVsv1tQwas2Q}^A8yv-RH5v|@ zyJz6yrERX76O8Af%p*l%_qIg=19bHT)Ld;&?r{4LYNah=@1tT?J&#n1jB^Hky@$2s z^AW{1H+Q(=7{s<@8zAaODlrL~S8RKds`2?#oUfh|osiFeV$Nh>iR^tw=TK!w>$sFD z$BFjlDjp&kj4@eX4r3}ic}@vX~Z0{tSkAI;&BWi5qO%`UE3x{=x%!AkfYGZcoHTl zDFA1}?NtZrs538Bo5b9E(_%w#OL3U=8sO!@RV!r~FStM9%<;2|5$I}w-(tHub|$bu z7u9O!iqf^0$yAJC+aHvlgaOOJO!?L$@+kh<+5E1qr2ss7v?OT|z@c4EvzlaSePI zsD5Je_I@961Zg8rrhcD>4(EP?;+I!1D9iL2nOWsVb{EB5Er{n1HD8=-6Fv(oZSnJ_ z=xWAE%L%de-4>RUHbxq#t2`Cl!Oss2^>?Nk(;c)DyAaKxXJR%K3j5f3Y!8$J8{re~ zl5yji>L&E`Z3zgC`j#MOd5c$}r|M8OPB=c+pbHV^McFyx^@C$5R6nksz+G(mKyA2n zo@lXKhg?S*%_Q3i?A?14ph}$d$!ZHIA27ITAa`-LpxF01mt7o3%uQ0!k~B$Q_uU7| zw7z2Q{xh%qm2ta#wvY1yHImPC;%$?VYTKOZ*qcMEV+-VMs5C5G#&XLeMN8Z zt8lQ5!;ZlAn&wNoy720oaUsgZgv5bK!~C0{9&X$8%yq}e2)Do@tLW_$J5jCiioCU6 zwmy<@gH5z?&Az7OI6Rwayb)-+Q@L~&OF|m!+xik6*DCs(>4*%nTOCJ`m!@-SPFCee z`1`v~#Z^k{?hS*8{j>$2nCciB&Ksyn?IP^Mj?%avG;-3{p&^g`cFa(}jOPq>v&Rgx z`NSLQjA2rouqOWxd*1=pWS0ILMC|Aw1eB^YArz$xh~hx#5s-vXf*?%@RjSeiW<>}R z3>btUhyg-KNRSe$fQWPu1EGZ~(n7UR6bHQ7+0~udo&7&|=I-9zd!PB9M{@F&_nhET<`1~V2%GHK0@<`PH0Hg)$+qR>}(WGTdHhp#lP&}^7xeX&O!z7Ey#uwOkk|9+p+P91nEv|s=Kvj z5fs{$z7+M+>Fj~e>JQGxF^7EK$`{>kSC)tFB+`-=)(+n73 z%+J`FUrAd`vAPVeJ@-yacmWMkw^BLlsg z)nk?w?<(&jreZaFo1hEruGUf56)<=h{qokWGyDT>xDoRD7eEi4_fR%rf82J%J-&SU z*3e|W8+UV(QQ-(gGO(#AX?|kBV0I|S$6LL{PQjnvvL0rTi71Q%J^ic`{mW?=08qMh z-+($P)iKu2;FJrK{o~IcI`}^x2fG8E7{2@1ZkThw)rOmA-%SBp`a*5K0DcVl82zEY zcon3$oqgimy4UB9#D;6}M|A9V-s4w?r#O488=ewtH*Wkl-V|e3U)tnfz<|R>3hpRt zOQtGW@gXd4J}a9eJB~vgKA+RQxiGki6^QEjPBe_RJp-O7d$Bj0a_gpL=+Zlm-+7bz zeU&CFvtc#}-DXf&ObFA~fZ{m&FPm8byUHV8ek2}`-sQeU1nh%n>HZI*Z}jw4PUc(! z9RA*G`#trYe_pA5p)@*yB{Xr4)DMHUIvsz%to#{2{P}sz`D8~$Ae=;Ym_i>2BVP4x zFN|_0!~8k(+2REkBUeVQSHUglux2%fgE(e9uBr%Gh;rWZ0>EPh)q{zaW*fA1!K!gp z1lgDDFvhL1$gEM9PZxON6_+I0|990-RCoZ7Ih*;0(@V(pk$>u!V$o zo@w#`y4Tu2&T_)l;52bnav~sc{EvXDK?xihiN`O4%{@ffyob~myFkcvB!0lkq}`?2 zN(Ii>{O7>ZUpoX@t04>F4E_Ytlv~S<0h^qF$vK(;7j)MRMLrsEUDcwC?d6bgkoSD~ zB1H50$H_Wfc0Q(G99#$c$79>|X>gNt)?_P4bMa*@Mu)`ZbvT82x>Ld@7}G5o?kLI# zjFQP=r)0;kU6bH&DB~7v83DY&wW|#{zv#IbJc`qgA{c)EqYfH5SvbHI{g;LbufH){ z;tx+GDry{iOm?wcNwS1llDpV8o^ZG4DJ(+~hkCpg%2UTy0%6IPv$4uTS~Yj z^O?Ow@B%pxgfYW#INS|aLsPS9SIRsI4~jC0w%G;3#d|srK#hjpGz(>P#yXQ@Pua!D z95a_Y5o??upnjHF{O7y|>7C>}NM-N_h+x8)E{@wSK9Q~QygzDT$+fDISbHKIPwK>Q?+lFg}jCaC(-KI1>6@lhBHDh<| z%QOwAK@gsB8tMFS=!6hOq!vN;TaCg6~tc;G5i?pjYna~}ZItUD>*54J^$ zV#Du9)(&(ZB#?@H)p%x74?WQkjz=ZLP9=6HpFL(*aQuOm)6CGGFxji+4&~%a4nY<4{%S>Tq?QMJ&EBu!3?j(v z8ENNB4!LVCnoHYW?k1!nhi}_B`_aBctzQg5U0K0|GZ(*=Biift2ih-)wi7?((UmALq_!_WW(^I$d{fIC*vX!pOyx^k zhE?P{n8A*wxAN~y?YW~*h1Vo_3xvYDQU{^0Em-9A`57d2K%I}-f2nTrO1Zf$|9#7v zWw?Ku5Y`7Q4_gaPO38M$ZYvbRBSd&{2`?E4U@hE3#1R9sVFm3|V64fj9h$&y#vO^AHU~tUW{}ttBY4-7; zxSHeq0y6jaeCfqBs@tdvhmfktvhpJN_PE?@R65$kw5i=T!7v|>%0_oeUO}%Gvu(J2CRlD3USv{iZf;v0cEX{$ zA0b0t!%`UcFub>!Npl8W?PVf=QKrgORB?3_z^)GNuuyDg zNFtIGD)L>S$umna7-=Xp9JlHyvcQ%3kOuz($iF|@tGz;_cT4*R_3TyLTwX&P zd3d?2V!~OFzMX~9TF5RPLAOZXv_S{ba-W5sl!}v=G_;G9h&~a*<`=emt!EmLAFLL6 zE|_lx3PT&rB42ku;d(w{eEl{CZq;llBsy$2EQFH4RpATj04+jphk*USC%xZy)Wqew zWfbWL(ls$~<{pC10eaP35PjIgUM}DGL!L1@2w^!P41>ShWs>zBeJkA^6%H19gL8;T zvgzwh&40Jc4kA!OuT@hZrAQ4Z`x&U3Lz1l7^u}Ol>-e6@zw~^s7<_u6$;wvsrJL2s zY=@xo5{AwbqaUv~+a$&=@9JOuo&pc6i|B;!s^KGG@AuV6cOG^5K{USB3b`I5GNHRv zDf=eF-pXv_IWsiCc8tGNb=Iqt%J>*lQE8*Fv9M0gz3r0WIc!?e8EeoCLtgzzJbGoB z?*Ylc3UO@i#jp@a0zp~BRTZ2OJg|DI!ek^XI4JQ-yO(43V+^dVZ5nZg$v|k{JB%B- z2=UH|MaA-8H089!w7h5(jOV&1Gwjnvv(L>`ZA~2?812q)+bfFIWQ4EV`hCGtzGxbOKwfiaD}h@et#ND(<#r{kdt5a zxq5+$RX}+3XkQ~xm8Z#E$OWZpKua>?DXa$ke6(|ztRf#jwX8{DnR3Haus|0qak}*e z-*T9O3r$YMmv-5zE~B&>g9o{r3Ha3ko{!@_sH=I#* zPT_|5G>{y51zJHeB0nUNRb2E#*nXFAV|)cjyKLqDK#k4fC}}3E1g{O8b41024SPMN zm0H^uIul%rZACGaAkEH~4c{sLMTORRIr+IMcoVxDk0bSQ!w*{~OE2WrGPr$w6NbDz z9nE2$c_{*Bv;+M~XKV$sCV;z|McMg^GC4gJ7*8tp7L`ay=(o+x1%xvWjk#55?LQgJ zt<@~ay1XIByVnGTN_LD=0Jn}tOO%c{XOy<;T^hDmS>S1V(JXnZh@JI`y;kBYhnA-> z*cofD8(VCbbg zbR&kd63@sspZ>=aJpCT)coJQNiXSuk9OMz-5$x>hD?D`S$$@wC=;UT|tKA_e^`^@$ zttv+)pBvDwBNcz-J0cgPXShhpDI}NEJJ0P)N?J(*TJmOG07%w)(9rMTK*-BMW7s)J z$6&i42=DumgO*4S>z@C-95*Go%kp7 z2wTK|JjnW2yYbUW&O=EN-G(&bbj9Xfmmo*>XX$FHo|6s+Ouu@Y!Qf2Qdw$L0@E@oD z(8+(#fZz}=F%&GZX`uy%^NzA%W54YcJZbwtBtD&EwtD2=p8wE4cJ}mc@V}C4=^wm2 z|NM0ayn9sO*QomtAl%$!=E?F^ZH6q*{SMPqpi`8YadD^lZHUf{j)>0x=;QpfXki|6w>Jf@m|Kh({09dC!jV# z($f$Umyb~W$Qqi?)zPQzPQYsRWs#S?Qilqw4&2v*dlmPFb#n6+XIEh2KaB|i=`G|f z(u!+n75Ce(?K(j%bOQ>nD_0mQ^UIA64N(K|r`Rq~qTn{LSI+nT@Z)OcDPzy+A!4nF zP-+&{+?g zbFC5gAb84`}#k%vL2zEJu6h>OIybf8|z0?bWgU=OmTjQn4w3>432Chc`#+%!n z(LC*W`!X3Q` zwQe!89Wcf3&AJ!23VUAer8IoM1!Lo;&=^UZEcPmgIc)|PsS>}s{9+$c6^}YLBCZFQ z<5vhzJNvG!%OB=Y-^?lPDJ6#wD+2mpsV?>hS~4ac^>?Iy_P-LLSuwe%Wy}E>aZnx- z4y0P^q(~ojNzLLrsQXQOUkm?!*y-1r{_#^(Wo`MR3~w}N%BwGc%~TV1&_l)-04Qc4 zrrm;_3{;&>+kU5&{kDjB{PJ0`leJ?DE5S<<>!22stp_E^8T2N;Gi>gKBxu*>)#X{v z>(d>J4mNYoSnGGw5@<%v;dwsVqni?TXc(-~o*g0K#6{sI)tiR*E@)%JK}gRT7bmE% z&6^f!lDI~QT;&Zxd+4T#gHpMr<%FE#I%d9d63#lF1aS{v2p zje7PsinH-lZ!hyvQJhf2D)iWO05VNmgrr-)#i*H+rFj_vG9GSeNX>~OGB*ksrtL8Q+vPGJGpYGL9gOT=_4 z1B%dvde*0b?E~=kQVouJCd|27#8To>{MP=@;pYL~QhnOp&*wWJA{CcA2JKH)Un63y zcBiTz8eSfLxhGrag25=E{$;8570ZetlzKbGUIddJB3Zm-M|PR9^pX~PUAWvnYgy=+n9?6&}BA){@2 zy1)OGy^nRgcy+5jv!iWMw2EzQQ!6sl><`eqJ{HYqTd-;Rup(Ywy(6^8-c3nR9YKLz zAelp3X{jzi!7e~*+1JP z%qIXZ?}2tSF<;U^t`23tlCd0Hg+)QU<&0teRo3lxCH)Z7Q|~(k<=(B;JtFPBHod^& z4pxZNG7gxzpDF=5S!Gn5A_Z+$FD}tt{CPisD{69v7cDOjxn^BW>M_bSL;T1q%sakU z#qa$OPGq`gF_mN_n*%n^ec+0zyI^T`LpT`SFKkm;J)ESZ=7vta(e_8RBBbd8DE%*J1aow z?!B6PM$G2DxpD3q^Q6i4F^qHpR;5#=!Bp~5QEAk`i4fhdn&H)=MoZ<2u!Vv8$7&vl!kRo3-_bK& zwUHlp02hsO59295E`(TzD`m>c5B9rxrTSiTXEr>jI#g7#|F~BINOXR7Mu7+ow}c7y zuh~>7PD)mJ^!A%d^x_57KGe9OZm40Fk-};eLn{xQ+sNC}^* zYkf8N$Hj@qvX{CIJ}iMb{nqc~Ubs*xoeOsQ^YktwnWXKiMTZ5xMK(y42mzD&ISBeHhh&evxm!G8xdJa?3w$f3d z$j3(M+0(wDI%JOF9<)4=c@f6#m8meIcmT6=`?9LLY^9(2`Ddy%Cm)CUh@b^sd-s84 z1W9H3X=^UC?3l2g0nnSuM}U+0uLNgOMj$~AS`~C3tW-gPU4&%Fv0Tgd?ua4r6*Jws z>+eIINi|IJ)x6k8m`kkDmR1xbk-eK7%XG+myNlu*J80cjj@7!TTA@}rV`}tKDOGqF zgXc^cq;ww8D31&xDfgD%E`X zAb9JAZGC-5Q{j*gA2?cD@o-`}jj=&~cwcpG!_H2M6e%5Ij=hq2CodkY-*|KI&@-R< zBFdtnl*B@Quxi?%{b+`jx?-4)YipEjcQpT6xV|s{LLtbjn8#e(b0C{5HsJ{^eWx}R z*tOz^JaG^mk8rEHj3A!wgao;1^)fCkxQ1VIrkkYO8++Sk7C? z63auflIV(61M*eB^6@EBwW=II@52olP%i( zk)tpAtJvS|;RgbmSGcfWE zEB3r^_5FR}-wsjy`wD;d{p;pcR8EkLq5&i4_u?vogcy4%NR57d^H?^N<==k%ZrdM- zqvfV;HPq7MPmHwb?ttpLa@FqELx^ou{j|aC$P(v0x&flxzJq(WhBjD-6t`%=R96># zX)$Pez}wNX3RL-#qv1Wq7qyxnCZ-3IT+UDP9I%2C9m);fM#a@LQ1i5xv!u$JLJ%Vh<*QT*`1>1`2$v{@(bXZ@NDvVACbcRAl18R zGjP8w#-@-@V_!3Zl7v9xP7z!~ULYb9pX^iB(n>SO3ut*#?yqC}N{~qVP#ivNwpzfZ zwVB)qRHybgk{(WmW*aV*)B8sK0?y;T{mzc?TX*6X#_{t0Buis33Iux_!^!KBH z!(EJ?^XD|`|El9R_yqSH$Cjzt^#@GW@*Y{=1@V5kcfIn(o{CGHTO(7P_NO?ueco|U zQlob&K1L6;Kf7fgq3h*3d4W=YLao$aY+&L$!Qrz<7X9M6|9J2Z<@_;nzP%lWa-%cO zS{h0!fh59e0NXwPTTN?lB0j$mmyN`ENT+3Wd~}rbm@}9$1KN?hs(d*+NFck`?-y!3 zP6eGF&@XL4TWjZy-h40~?WQKB`l0C@<88a@0Wx2*vs`ZLBM{qYFnJ=a&o@o0Y9=Qy zBG@ZQ&*30U`ii$>SuZ=lsLzFF%W{MuE9msTwyOHGC%pt$QQ|(F(!&&QRGRdNN2Z9} z`u!y%!Gwb~W@b9T%^U%@q*VR+88%9@PYyTT4AcN|kSpfqC??%T#p}t`apP{$Eu__ zv4~_bFoZ#R# zU%SQp0ssR5M{E~Q9E}F-zO?>eYH##EtL$rRGN(;NHTKpv1@UO?&Q7}MO_E<7`SY1C zfIg1d!upNkrKT?cv%NUNXJ$j$k?k|0$jnvbPS=ICXMf!IE9yDj`+WYS(S&L$$%WOH z1isQC9;M5+oBzv>f1n)r=aRqKe&Z4u#l; zQ89F*pzdcbNU>=lFvh^k{&3ks*@<%~ z#$1Rso^MY^el11UWDH;YJ#~&^SBI1d)k;FZJ=H36rao$HX4N-1x zl2_qbgrQI?V8L8;p%nEu+d^BQ=y1Q@%!&-paB(_ZT|}^=qtMnr{JKfO>o}6meEJmm z?WVJs(N}3)_C+wO5u|fYR{6T0bKd3ZY7BZq5fJg&@EpE$sAI(XQM*X#2j3*uh-8EW zDd|F9au{`*xu>apd&Ec;S5Nq4D|Uj;N>6&6hk4Y|HZE7`QgwLgtMKpOhN|U(t)?J7 zi&>DNc%`!1kT*gnCt}fHZF|ELSrlb4jf!2?6KrD^DDqgpc-X5Hx_T+%7N2fI&I9rW z)?uzr^Whx>V4{fRQI$_7Ne%f9?Nx`r8Wh=;{C^0e;Ar=_^|?L&);qH=0Icq!?lke% zdS<{EK+~Hqfb_%VUp4!e&m*XT%MCAuQwV~d`GjoBdn=d;hW5T~#%6Xcb+7b6HeH3@ zycj#eFeB}8xqL3IKH1h}*#)=Wwb_As_)(Fe-^$#p<43~v`_$=qdCS>-4lwOl#ww<0 z@~R)$RJz_NeeCmf&THff3xv3P{LA7vd@Ed`6$Yv!6$-kBZ!AUm`CT~s9h+=@Os!8} zmJo@+j4JqLmxx&W2ofEjSvpqw73Cm%*;soYfyz-yl&Q*1mjLURvuq%?^dYa&#L7Ky zVihMftPgCC4C*b&tw4fHu-FpiP@|coV^1daqX8tlWl%4ednvF@O1<0sU_c62Wge2ryj#d!Gc4VsYY2A>&BgT=z^t$~Z$GeJ9O%{(xIr)~MO?t~}Sjj)~{c0pu{f~Mb` zpG(t_M-91U2{X((m!W3?o~=GJ+d34#J48rdov97%-A{5rJYeJ+JE}Y^ z+*77ljNGaU2Yjyj+aTxokfiBW!5lHg{Lun)}w{Cg>DE_LDID*_v7>=*er8*sF7^1+;(ZRrJQPHaXz<~|(Yu1Y?wNfa&v1Cl3oRZfW$7SgQRe>?x_Q(YvzR(LQ3k5Z%p4m2JpY_8b zv~DxY-j=G@(lZlmFOn*w086Fy_o_*iL(do9?>}n7s^d;EMolJzTanAmy}eKG53`oT z#K5YTaCWGwO!@cS64`UL!!)?F^rZH8-<0`@KlObNDAaf@>UPTI`DV!~>jBO5^VbR% z43pJ`o;}h7k$-&Tz$!n#E>uwVa@`d2T-^`m08I~%`~uj{iM07D2S^QO``6Ziv`f~F zoWND68Jx}8{SLLwTlL8ivzb|zS3YvWCDSue+)H?7C(SG}lh;Y4GIi`!6%1;g%QQDB z-`v_m2rX%7hpJ>qB0orLN3TTxRW=8=j~O&570S@GKV$~4vs7y2edHu2P)uhp3gycb zI^Gn~JhqiJ6};PU!`ThJ4PyO6nHPQ}2Je`wq9&QG^A)Lm@^F;8i!i-xAITXKzqTR% zIePWk*Ovc&G{83r|K`H)LX$*PXm0~&-@sjqa=c-slF2@L!X$QRbQd5s)w6h{sIKo> zreRT~R`?if;DZ&L+UZrrZXa!!V0zo5sjWdS0Qi9^`;&sXkh| z@t5OL8vo>kcGq8y`;Yl_-`GnL_%X(A> zBcc1ii_wISSEG-D^^6Z$v;tKRp@A*xwD|bu@yzJk&S;iG!!>&M=a@|;}sKO30FLt%jk}(?gknICQ@sKE+sOzAz`n+=2cg2_E6k zIZV0F+ozn31bNE7LD&l6ku>s(*%{q)WZElh-8Lk#kPvslGMVkPerxW;tDKgFdw5TO z%tX$mF+PLmCS4=&l=|d;W3wc$%h|$|kPw1?qez|3&Rgl9{m!7l5h7LIOOAD-&|%IzfWwDjYEYhNY~BucZX%myA)d)DmqXXO3u4jPX9cTM)LY^i4j=t?8TR(oNgFou z(%RDyHi<=$m*bi6hx#b_%6jB_{Q+!=S5)x4P8pUzl4mCq;89`aoUCe=Pp^*GB-;hT^#xpg20 z|Lg_(7BfM7Iti^Bm0hMQn^fvh!h6+o+0Yv*B1Bvb7>U{y`x!E8h(CcKN%1IhSEeo+cVofH`<1q;?<@kSQx&fJvpN4;<^M_c+^-QB9E2(sJDLW% z5H|8B%S+=Sil9P9G;GT+_fc5WaA>rU9Qggnjh}Q2~l0+HE?OY9I2~{cE7opIHJr(mhyi zg(PgrMP67>_=DX@KZ|p@q}Yly5YE_E^(ala{a97*y?yq9_+a|LK)*h1IY}yL->R`- z{V3qu?r`6NG#a;GI%^p%!=#3fR!LaukamY`F};%b)Pht>!#r`xXahx=>0N5obSb(5 z876Sr+Uw|{@id2z9R7dn@9(uC5!q?dJPSzZ(T;0oty1=gQhi21iE^zk1G;GLA^5q! z#AE*5&XpRI3}#uks+Z!vgjg40kMx4F-Hm|0c605ewY$W)LWhGhUM?vpLxbgdlpAsu zxe@}3=gKe07_7M|W^BQ7AcI}+wULDaCP~8>|E6#Rm+!?;lcGYP0Y$8>r16#^T60IV zOSj_wC7%!*7Aa+xiG@Su{W_k!?n1BoH@P4C5F6FS-yd*JO{jH#C zUOx@>Nv%kMgttQ;Z_+d+!fl8}7#&IG(@CGdsphBB;F#iCTD7db-KGKa&ccW|EkNy- z=V;p=frHzGF)clN|AIK*2y~e9Bfbre0CXv?f)9tr%T75CCd^MS>Yn<)!BqHnE&kcp zbJtiSZ!Jy%_6p${ub`faSoycDpnNMH6`IJM+*MBEhhTvrRxRNpN7slrT1*x$ttTXL z?L<;Q$r*E-!_R&uh+RB_8w;Y&z^@Eg=)BXDOjSRIcY&?Cn*J~o_>he2nZ6E0E zK()Eq6Wngg4Af`>jR*pfrjO zr=6Bj{{m38wubdu_cD4J`9kw~$)DV?mOzUBr3g0fyRJC#eX>t3jScyt!+U!S<&}C& zKEA`&3`*Ec>#wJZj6{#vtC9qnmA#!{xbfu<^?`cX5p1_J8N*{WRF7KXw7qa2qyrOw zHL^%1WbcK^pHTyLB~d%52>2~_vKi;a0@a|DK0RZwgMT)XO^X73w`HmS^kvA|t6jC4 z8ytM~7CxPDkAlbf6lxmlX!ov*{AbmKjeR-zY z`EBV_-OEiQU0iDKV|-B~Qa&&>2W{B}dx*{O@z`E+^}{cK;mw?*(phwfUrK2lx}sFk zWtwPutO!<{&;# z1+#!*DqRb0t!Gz!XLmlFBmwK}s+vkH6ZKa>oWs*E!$w`)D&AOfRkvY-dBBM$!DfMq zYfb*57a;hY8qY(t-rVK#yZLs|gp5ZL`N+wHI+*`6?w3iP`T{j1ltwSiV({5O-P*cB z<1jptbuUcINUzvatz>q64xy8Pis9<%fK{a6L#*iVK`@sjtQP{|cURxf0}~~`1rPTy zxVDe?g_*9m-}lB-@`9cO;6kCTm{ZBZDjFjLd#%3>e&OW%iDS?Ekp%@$76#tgD^jy0 z&Fs?I2@)XfWkmw#h4M$~$D3z%#V8E!U-Ve? zSRfYosLanKe}WrLgPqlQAMqh9xZUr4GDtzS2BaMXyJ{d6tR5L!#G?&#h9usB8?Ca` z!*$=2%}JCk(;xzo250p3^)_8Dxp-8Qu^f0kpzeB8RFA(9a{0nzl#xUwePA>{QpHP@ zY4gqof5k22eE(R_6V4xV>>aO{(??ijx#{XYLJth;u>Mdbuo*QfAQnsHVXCg6>KrA@ zgYVzBd%!S+t6WIIB+VhLGM!ywCwGTDlHr4W&~NvUn;*8~T=0}6CWD|Y3^2@hrqR+L zA>bjTbGSD?h=elf&;qr|T3Sk^;m;+UJ`Wn3PY;ZF^;flXyql1{UXV)83@S4upfvi8 zF#UG@{yuiaw1nPWJt-Y~JhAY;@O3j7wqp})YS7<&pBuam(~5d~{u^`nzJB}4JgfRBf<6N?e|9FPiW`=_Xt)-9~7dDsqWWo=$VN#%P^Ry{=3E{*PI zUxZDn8C#J_WoL)$N^z;&bGoE9dRg~t;9Ac17YhQKb2hZE%1#Qc- zCO#rKtxmW0wZ5$e!14aDxY=+NlD zN@Xt$1Rt@JAJTSE0KhM)y1(7=cZI(ZwV(UDD}VXQIh$?cXVurlMdFup&Z=n_WplqP zwiLXf-2#B@L9g@N>c{e~TMPu?42;3HR{X9>BHKd!A%ufve6y`YHI2>A$65}26}N3% z(xlC{yg%XMNyHM;XDjE)`nTtMj5TEPar}k%>w;& ze`YNHNq^`4f?qAPEk0^zrBvK@l*?_m+p=}`PE33Q(?=|`DL6qKAoNKFA+6oL?HDv8uS;iovQ041R90s%HI8SayhU zrvw)Ep+Xhv?Akd`9jj%Bo@+_nK-b(ZQ^v>=SJ71!`dC;`0=O>NZ`Q6V z2lqOLVf#3XdS=i{|C4ZnxUzJK-3*&Z)G~x{;-Y!ZpyvD>hQYrW@!p!=aj#W-28x!& zZMtJd7h@Io$8tRF4OiP%C3t1Uf@I&2EA#mZEkPyD0h%4jW<1x;O*5~Z5njIX!xjEc z_q^;8->M#n**tBT6scPNo{SAFH6Xb8juk%P>eMZ^9H0+sf$W#9C{O5&8bbbClF19` zfOw^F8yjgq_HwUruALOjvu=0+R!)gc8Iw{?y2GcB>G7)Lb98SWi3gT18c??km?jyr z#5~*x;*%_Eebohd!umB!Q=K*eP%C;xe#%t2UeRjmTPZaaQd%O8>6M3mbgI&9s~#tk zvb&Tx_XlYhvC0GDx_KwbmG)jDq}#Mh1$HEafP`eA6`wWf^|B#5(cA6Ri>FmHT!Pi= zv-zGj1{mncVJR*M)GV9bEIsP{qy`+qQ`K+fnJHlxF&I`QUC_K(QskY8q0;~0xWv<^gn2yYu;%C2B|I zxhvZq#5)hv-vsifxoar86AoroT`lovX1|qV*r;ZY*@pR)+=tP}ZTeI2p23&m%&HO9 zmgEebDsRpX5l(6)-IMKG{{ACb{{8^-T6G7iI4Ok&Yma*Y3lIIQJ7&KYQt`;B2-{;5 z%oj3~kKyS=2al!)atua)oo@CDM7>(g!(Hj<98je7TII4cPU~YX*vueS5bR`9XD;1x z610zs8DuU9fxmz9377qjyCtL4Y)DoDl?L_n`!v?fyqes!i>R|Ynln0 zN#3BY^M?T$3~F#`7(G_2TYQ7AbE5ay>CFQ}M3$mjP)Q$~pWQ87@NQHv`~oPDBp&F^ z83~M?QS-ew09DSGRSe>J)}js$F+Qq>#8dZ|0p~cAZl!k8cCW3Uv9LhQMDB)`DkG~; z8o9ck)daFxYyH%pX)Pb4Yh~)Jj95Iy%Cac(_<-+Gi~)(!nT`pUkkwr~*+Ywdd?BBf zmGwKZ6%_0}b?*Qp%A5;U9S;JrBe&Fo_#;o$u$0GF@6j!^ve71XCO2Gd>4^2_o-mU1 z^zfZC!ZTv2Bl%G5D^qibdmbq-8&_B!Y#tGODICVbI*M0I2fcZ+zx>+86@SPjY(=e` zIKB5g9}$f=b~uL`B~BZ9CutDI{m=h^=Vws_)%u7@;LFz)ZQsMbD!9!Kn_TBl)w_iJc1t zzCO;UwRr?GvM0~H%HpBWg_?cT>Z`@@?+K*`G_MD;@?gvX?c5d4im#G)1KTYYGOGdyq%6hKLe;X-%7*bg4QZN zN4D)LbGj}fggqtD<|8OOBy79>ptZ~dfN`}kerjbkGTDIev(Y`LP*h*<;QdQW6 z*2z6;^_Oi;-RYfo(tT5;X7!WAy>w)hHfnDOSPf{Rb1|z5en)Hq2eq(HZxZCE#UM?GoYS}=>$#q_`}Xs zPWX}gv&JsHau3oKlT6QTVH4~tB1!3$0p87_;yL_t@BcJJF1LHs6?*FCI*;YBy49OI z#e>OB9-^%?9L3cv9kC3>8^b4TvGZLw4fdn0rPnw7b|qcI@>_Yp9vRgqk4gHpJU(IK zt|8D$vl0ta6w;X5^Ik#8JKI84m@8j`cAAhD$# z?BcOd4eG6{(iySpogGR*k99ubeu@hj@Vt~f{IoluWz__0tW~zB5e1qFtvfSP%QwFF zZ<$>LlceceIwy0c`{OBraMggy0q4~(fa$%**Bp&yW%!2@JZdbY6%vr?)p+n68-HXM zBURd?BjQ8&!Gv`jaX0j{2txA_Il#H5UTKHX^y6T_}H+8@E;HSp{4)op@FuwS$9^0 z3y(9P8yvqCjLxmq51VS(NwsU3xU-XU7zW=2`}vA(MQg$w$AEQJw-x|1uvMg^(IB%HvT{Hjs(0|3;bn3u3H16--rh^Utbj}C_V|QvxUIeI?$ZIzcLV#B3z{D8 zCwh5$y&j-L!RKzg#%V}k1pN8gkL~#m0@R13?LRJWZpJoO38OOU7C%LjA9Baud-2IV z+*XJOF{kOTufIXum*+}XH_9GtS!<>ur%;*C{)P(q)_~i{9Fy{V+guZ@dr+cA9%Z(b z`+v7DoG=+7jz)ohEeGt zbKPXYI176fI>+V&oVdZ`5tZJPA6he0VR7rn+Do{q#c@*Nx%k=u4d%qHFMvNC{ss{L z4u1Z|{9L54cUpcCEGd~Sd&nE?=p;;yWxWu*Xl?}wOi*~hJY?@+2zs4*WDr@bE$~Q; zO{j9rqducMZ_5qJKTIV@SVn;bZ1X-!j%L9x^*0eO~ziq@~=gq}SxbgQ=XpkhWR?a~Vfr6w#XY&Bvb z&#>+cWC@b~`Pn@3^m=^|op_?i7fE*g(1vyd_ZVo%Js3lu2&{;dtz{mq4{rvClWo0; zWFG}Ro>wpDM>6;Y2wi6``E+m^oW>bbX^bA7h_{1%#!`l|UiLx`sVWWv)qLDL@gs7p zHQZ8{?u{)hI3oJP)K4MTA;@YT9;;jB2hT%Tv!wT?x$mq7&ZA+uiTl~M%ye|4DP8H+0j-Y*FHYfTeRH zPSTOtbgfyJQcwd6t~8IJmJcFM`4o2f8Vw~CI1>&~FrAB_&(XE{w3>@j6K1nHb=}5X zkIPpGF-c%#HC?GQGt6gp7k27H9>1Vmt=P?MlC8XARmrM8#EeKWHymRHvTL>sDzCSX zgiYD!X=p2$y{FATYS&3(Q&I$~1uFLV3l2D*hQZE^D11Q3vgQ@;8ND=k0Sg=*4}G&$ zc;}3m9-(2-aJs(|*EaM(-F|&Fsn*ifzz4eNQhxY+DJzV=eB5-3#Vbc3=0twqYaY9G z^Ex<*cW46XyDR**&l>|IYx2VwxLa-+20Lu)?*J_+Atk#Dcf$gfHaUtbHH;U$f&#J~ zPLT~9h!bkx)8bLhUV+k(@weI&(v^a>ggd=G*E6n>T>JS}u~uAB)N3uM`gMaG5#3)5 z|HFcH%ZZ&*l{UmNpZsO_^Zmv^*acP2?5ci*M6ZZ8u2Is{F6r@Y6ji@D@PdjRxlEY` zKN6P12P&^;dC|#t&%h9muA2;brfALk6A8w=k3_FYH#bI3x?HdK1lRP06~vKB(AT8w z?AT^IT5?3U3&v8DNo;t*{RMEJ%!_{?)jBxpB?l^$OkxgR02z_xBHal+9%4p>9Up-W z-j5t7e%@L(ophnmn09RwzDDDqRQ2UL$?WM&A-xsDQ;Uj|@}DFrcfiQ}SG6;8GQ~!l z5E1i*Q9<%z?t`rH)g7nEZ~L-i=JNjE|6(qW`SjUziIxp3hCL8D8gu`?>UAxyq5$%_ zsTHxhTFvdr$P4XpDfTNHL6sK`(rRy4A3cy6K!Dx0a{p;&Vtj4lv9^tt*7JrEHjHK% z-1&squ0B&YLu}HC?8qYt_ZeyP6T2UPVb0bKf9k&!Lihr>A*TNxmdB@-R;(-~-|?-AU*18HQaxMU7Ll>6@YzTfeC?(e;Ke}_NFo|!#s)?Tyr z%%0UgiHFNzY7G?=<6rEQ-Lt#I-)gM4fbz>)YaG+X{SEeHcXfP8L=_b$SH+lwnO;`8 zMucGvTR1zPgup}BFUJWUTWT%*ffnzH+8HjpU5w~{rwMbmqPD`Xw6POs{3^Muvpgbo z7McTMXE?7+7Uc!+z1aTFm5Ewx7`EdSU(Kmk=GEuLR*T=y#e-)Y*$g{|jF*5VLfM?* zy>PF{o~FYJnfvqKsTLtKH3S|!xubfyI8`#pa~Eq}t1R7iL@n_Fa_r<$C0ybVR9?v2 z5axUtrNfy%-{KSj7`6@K0n2x34%*@_dQ2Ut@^p|xwgu8jKg-#XqpE@9!Gs1_x-er^ z<)A4=$Gk%Bvi;T3(tvrt+8UPf*jArd^l>MmQHP;G%Z1vhB}FLPg~)pKXdU91i3h>d zEJ!mmC}OT7!){rp^PK{ST#uS}cyci6+sys>S5?3;KcwLY?6E1?$#;)y38@+mytvY} z1`Ht#hXqMtS}{|9hu8RW^~RV{ZP8dd<7 zW0(rD_3xcugtG)x*wTV|11DvklQOXoAFb(0YxT>qGLJrgR6oJj^gl+;!WJp46Dc&r zOn5?jW|kzY6J_Qc97SxGim5}E1C~wgviH$SXGYV-E%zOFt5(|lSRwP=r{hh*1(MM& zdT0j}eeIk0xZ%(i1VmoP+$VKEvLr$%Js%g=uZJ1&E1=uX-me;LgP5=efO$P*Q~~kc z!}AXdCvYu`5=k)p@ks6ZvftX*zSHjYjgf!*?|)hV^MRTZ+!Ti1TTKG!?Z>D^sX^Oo zJi4-;6kBm1a;|+UVVp(e9&&oiE1&FiYE>gXCKwbw0JQ+ZI5V@CCH%~-I@b5-X(Vi9 zA-yxL&<}=7K2^Qkl~yE`xJ~kCzN`Q;Vb_9Yy;Q=tEg}nY2)Go*J3}TH=J4D=RBJQ* zG<=l3`#=!B3u)f8ISLNIHC8=rSfmOuYaVD#{sNO77m#Z z^OktRB=x$4-OV>FfBpO=g1@xjk4%I;8W#<$y@XoLXUGf-_a{uK=RXAcaT@P$zzP6d zt2Qr>6eBaDWNU&c1E<)A#Ys@)9-TjAzEGsmX9?P+OD;PRwY-UXHwP z)IbC=GFeQTt|vwyfD~jJhgiFNdeV4%V$V2N9@hKT3*M|~@5luUv_g_d^;Xbvj*P4< z1=*}z&XDM(Z+!sYn>6)iy_;dUC#&F^+)rf9tE>#_Yc_uZ^Hx;ke*$SA8fCAlFbuk0o+^N@mn=tL zwJ!(rEMKBJr)686ZU*XATeww0(P27u79vx9(ieLZvg2ys{AfB4!>{ofRjmR@6&gxg=Ba(5phvtn4b#)q9%}S)+SD zVY5;1}D(r(P z;udfn_}Z`(Ha+#TdX-)qRiWkAn!L7rXCNMf6L_vV)z}oA66B%=Tv?6@4HNyFaE8AP zh^1vZXzDdXQ|{W4ld^JoCPje^mk6C}x1CYs#GP9Bk%LHeV&w=(vzU@4tR1wqK^ZCQ z4Z3)q0Sg>dM$R=OYY49WDz~FZ7FJJ+ zr(R{k`~}q3(ADH{aBiWTttb1|GaVf3U|kmH0%JX$(G6DIP-SQ~lANx=6Yj)R1Pl4i zLAuHnY{Rf_$Y7N~ur*y|4!$*A{G$~&tu6Pho@BY_T~+QW!H6OsGI>Jza8oG0Jhb&MTj8Y2Cv%%x7rOjLvvDNP|4<-N9F|jRrYm zX0y1}Y5O<~I^$f3KKhc*d4a0&%u03SNyRqd(FnZ(+n_e^2DAq#JiyT?RlCu4ObWIb zAcy0&Vt)MW86m12B)|d$?*^d7Y-SRKp3MzrFK6&5M=oPnOtcA0nG0RvMIl^ZF>!nH z+~>P31D_OG^Q#a8Q!+nLt9v_^-F!Xf+?DSfJn_HKe~yk*nN{RVYT# ztLvV!5&^s2a63}{qfgOl@rD7L@z;n0_4msAm$u~?!{mJh&4U_>hM91~_XKrjgz8}? z9M#|d_D~06<+AGtm_qwIy{(CzZE|)o8?Xh|mxG>(Egf-xeb5 zBQ!L)z%XxhF0Vz_fFgiud7^@8Caa&4I#(~;Ir+|(lNvA%vg)9ri?)tBubD$Rd{^{V z9_EbF80z~~N=?ZQi<&i?&0yXHa$$T(zCQ#T`tWexw+noKIpkj{{Cism`rm53$a4ei z&sxa?{9qsaFRu3g620=b6j(OB@TqlEf$a;{Pe+IEKY&A_UgJwdCX%EDBf$CA!-Hy& zW0W-g${1$B+D`W>6Q6>4?gBI1rB6B{LGZv7puNBB#PDk9!%M1}I{q=4m@#c0dGj!C z7i)scC;vrOW?}4Uv=gOjLUsc-R7xKjyzGAqG+?^m__S48D+Rcsr`>NR8T5Aihs@Zw zLRFn6{9mjDlw>ALx^R@;_p|ITjO;4|JD7M?9cZ$v_a+6DYhh86nvJ0$&Yq%Awx_>h z4J2r%j$AGYmXCQ|UPAit!9|W%9R56EMC8U7J^$Tvj;sRJl~( zm6_Q5>a#hZ;l=~IqCt;S4{Qoku>(t<1vh(8+oMurR%dM$ytyN5WO%jj+m^nwUe-Bj z{gGH648GWE#(t^LNld~0(fF$|*8BCB$iBXVodxvn`C5HQN3!vQptw727%@LXX7Mya zbn)g*cTzrm3M6Q-RD3-Da8Y1?jrt`_YiHwU3|r@l>G}^8?=3Y@{WTS9GzKA2=3?U# zVVkN}v?}Im*Z5jBSj~(|Tkb^5D!jsw$M$mi@XCtik53*`-wJD5pRKlT&b#CBkT+Pd z_oIIL*uB~ep3PZY?ZnRW_bgq*mXm(FvI`gpe=3%iIVEwZn3QBq`c&hR7)g4C{@7IJ zA5&rCB}=Rxlk<6FyS8m1nd1)x&BF;qkF_iA=9&9 z(|Y+Q%>-di^0=0-_eEEWWzmP6)Nrk*=mpqG2^FUc~Q#sqv_Fav-nb4AC;G{&$A_#)FF(@s&YloV^tTt z)U~GBM>;+q!g*{*LSmLP8+%x}htxT=28|-bL$>vPec+t4JNcmhnY^}~b~h7OL+p9B z|KG^k9*Tw(ln>2l6O6_&D>cJsWZ*Ya2=QT=xz!DNV@tx-#wu>FRAWn3uP4zHB!#`Q zm!I5I_j|`O^NrvC(8mlV_LdcVQo6*|r!(1RL?zzL3daO2OK0Ke3%}7=I@5S#lhyfh zKiN#xoS|refLh5}VN;2yjn15Ie?4`_Uxo9#7W2(AV-{TfOyB>eRADxzLmUnRtA-7_ z^~tMplj81m{PJ@6-C5tW@gL;Ue}*3HLklHPnyn&F zZ85Q<{_jWkj!~s$kmi_fIHx=ww9|9t@+ehB|BNv`f%F>lwLC6!lvIc%J5hm0ONJH7 zw?F$XOL4+ay`6xe*2nIyfWJ=oOG^JotHvJLd}ko$sVXIFG(Cb@F6fV?5`NDM^n1?v z9;3=3WQCceYcCBu<5p6NM2JgX1Es5WRdeNC-Xbo41qAy>`s`W%(fHG{gO$G3IV*j{ z!J~#)Z$)NG7q&@#_V-*~T~v)vm`sGM)Ud38Ku!smh^XIp_=l}l#g=ha-Y5UC7XSzh zS0x_%xZe5PH?e#WB~xH+Vxj38UR2heGi1q^eY$!gD0#vOZ3Yi02^q~Z?>cze0rK(A zp*z3Q@lZ)Hlea#w8VL;Q>Rc@_ejcl~5b%+~Gxq9di0Yp^?vo>HND6HW)JifG9ge0o0>$26JuJ`G~BV>?*$^GkXkGB??xN~{u&M{fS;)gDg1mz7X`xkSr4)W)R z8X~R=pZN8<-|6jS;XxNqDZlW3bF#!7^(5SB1``1&H3_M57W%M_-rOqk5fe2pM``^}&`jxdmyY+96iA%Is z2tXj(bRtn!63@uj(YI>FV$Z;>#J#wCT32Hka7*ca;U7xw_fIgc9R*vCdueT)il+q< zFfP3dia!Kt}H{)bK}tugN&3>5c42TZH6UJ^El)b8)hCzg{O>%)nX_5iemw zo{UdORz-u<1DvsPHC%}!7ksxeEr1vSerAXrdZDVbhF*N2sHnvJO7|pRRxajEA!2^GO_CgJ(U9!4*D+Mr$QQ@fqQb) zYLV&QhFi7FuR%F$&t4pow1KUI+GbmJnNGmi*7ZnpDdG2AO*U)ax_^{6|%^kOzxWbpWBb7bnLq3o$C#TMEzBNN7>$nAGl_hp2 z+)^7kbuoH+z*AYW&v+{t?fHWtVcw!Bw1m-xsVH?6>Z&X?l~)7LoU-2Czn)YOX(}nl zD2*Om|@NLT>6Af7azI9ghelN@exOKFYO z4qTY&2Zy>9nc9jAhZY6B(XbOM)P=PMO0PO)Jz%ZrGaGvMnV(o%f;mIRZ??!e!>t#w zU?Xz+N1#p83-(XHn=>4IaP8vx5Db^s03Q;yZtvPj8`ff?J4ff&%+QWSiVcR>$+%L3 zRbVzhY~35}?+w=&g94j*24DuQ{;V8fM#cI4$gZCl$Fgoy$=K8!G(w{Up>wvt>BR!b zrxj3o_HIP0Jn>cP0l~yzF=*p{&j|_to)SEN39195p$MrDYuZ&k=v(?g&NtuZX0wR zOY5AgM=2O5R`(CmPGzh<3Xrbc_bJB%0^vesf(w(Ys!dh~`RcRpQXQ6FPQ|{~jrm3J zqPg1nh34aa_Bm!3i+y{FLUXc>Nq3&FLF!d&oO`O@JULt#CK8fVZ}0;|2rNc;Zk=*H zTk5lqd$o|>hTbn!z8kUg5chyp<45qqh~bZ-N)Xe;#~#xpCa|d!xfm0uAhg`e*27PS z!);6Gs_@eR;UN-t+ISC)tow?jFuJgZ+CtE?SKYue+RTG(+IV$RI)SfiLgmXPxwSU{zwS$OP=R1 zWBT(O-(wBcy#WsU5ge3eeDNh4Qqp`qSrQ8j*C0(Qj2Z`kQWpKn+a45fCC-#LYjU*h=6LYBi{H;hAqX;IJv^w)UnA*rZ_l_IR zcMiC`b|HwFA0QL7N1}Mx-WSeiJO+^$GS5i#y;NXMV-{#vK&d(9xjOeDCJJuS`N-p) zNDn(UmBU_0939FDw^9rsM8FOLk^F5o@+vTOflN~hDnVY=mYX~W@5W#f%B-w9(^>HO z2BNA= zwC13k$%<#Fs#_C;Xi`q5!hwW0Tb2i5b!^##W+C;%h~5?HzQ@Z}#iYcJnCCG*p=yjt z4*YeCerc>1ArbD~{Hdc!wvHuda`?FGUXcX)!q-CyXF^hcdtQLxC;D#Q@QE-#%Fgr|? z6|v9bdFA9~TdEf=c%VGY_YA=#8-wZQR&&g%eE{E6@h}@Y)HhN!@1H|#EH|D%2LAyH883y_>HuL}>jh;MF*X z!8ba8D^QAc9>;p6uo*7Em~d2&q>(!L|@{;g%#SPA5Hj^xG+by}+Sm z1XxG2L&8%IhzTA9+W{Dwr@U zPP;aTI7c0IPm9TZaD0BY$eTUvs_XW}GX5_t9?A$bbmZDuAdglBDwc(Yspo8&Z!)_H_3Qb{_=Br0cntD$r zo#p%j#;DuL1^u%J0L#OQuK?vQo6-OD=s!E-f7&NRyXTp$ds|XcMI~kO6};ElYNGg& z38+Yu{DlG?pI=}-w|E%T-fLY2Id;jv?T#esVgB=y&my`#O+f-&MA-Pn&KglOovJtI z=de{%&|PDASeocC`lHaj+29lKoj)2636=!WLFl}jsC0sf zn7YUV?vabexRPK?9SOJ>uv}~bwrDWDmzF8jJ(?|k6d@(k8sG+-i8}J(aZ+l)1%yRs zjpozEwU==`N|&Y==}BJqTASMwu<&;qd-nUn6veHP<8I<*&31B7A$6ZU=y2+w@30C|S8mMQS5 zFIq>WzH`Zi{?V0i zVtc1bkXF!YL&2k!Zp&DfdRI!`L$}=yBH#2U>sI$!hhBeFg~zQ9RKe4Y6X)eFQ3kdv7RF*v*bWHZybwRES-dot^A+Ih zA~OV`TpG>~e~r2UkV91l%T!Xp@>eF-=v@{b*WIQf&Bvc0G<5iUS`nihgO&EU%8*op zaV=MY1$dD4&=*6#@Nn7c*R0-vKeBLndG^9gO!OJR8Dm+w${&qOZwIeD2LpwAFlUwv zI@3YUl?T594A9Ka4V_nwdSd-Fn{$QRI~g0Q@S(Lrm!4p=3JoDjlyKbd@2JrHpc#oo zE+ArL$u5aw5Ed%Pb{*I+;xGe#C zsT-9}S6sC4=Wl^qXic}fW55-|ULqLk`&kYg9NPJ=T=qr8*s5x&q4lRwfN5Q@3)bX? z_0xUqg8sqzO^aMk zT+K$);o~;uTR0o5gUM&@td?r8YemJBuY%3=ZD18j#>?VC$pyY(IV&FEXilF_VckUw zeKYF{C7G2=NlC~#G#TV{Z`N)PKe~7!VuJIH@j`fe8-a5DL>QOr$))XB;_;(r9mM+s zKKU=O0&A=YI@YvYb}5A~R*gw*9>@51+MitW1uHU*gcOX7$nU4yut|8K8xHJ>`b0Ag zE{5b_%{%XXe50pb(0CCxt)Mnc$T6=d#%xp1+#qqZ~z`AhJQ*z|oRw~j*o)m1KG-66CtfBbNtvu>~beL(TSDJevFMTfJP-ViX|MiFo2#Z%0wEfV8|}Ql~^+9r@C*sTWq{ zrngDY=dS=afKSk&YU9e}b+tPvq1}Umqh(B&gpRD>lN%2Yz5jLm-y0A!x0TaxXGa{D zbTDHNH|2m)4Kl_vl*>p{m>L==p(jrGZ&G3D?%8$!3h>k$p7G;Vlk>*Ev)Sgw&0@n9 zpS1|bmyswRSPH9_H0T=hM2F`*D=dMT*>Kfvm+$7$dx*)c^!)Iq!11 z%q0Q`^hYy4zNHwS0L6yk)x*P8*vxC&3Wcst%Hk;>q{;bq7@{DY&;4x8Kdbl7dT-$4 z&5f}Oc(rs{w4>iL|NF^OzlPHRPEn|SasnNGz#Uw*SeUR@fb}mVU=2c7H4tdp zC;!pB(7ba%;gfQf4+ixGhP1RhhsC_?Vx$zNYs94F)(lu}YzX06wm@xo>OqJ>(0a!~ z$^67+!BAD8nshCoLf@&<_GPT*K{%U=KP6SF<-$`5^eY==T$bX_^WMF8hbh4d`6-qc z^*i25Xx1R7?EP#N_E(7d3eCcN6Gm-A-sXE(4b?hl;U$$-(_b<3B0e^a!uu}{pOiyD z_O2e>#+8)im;Vn`Tj)cN_2g}d0DJG9)t_)gYfTzHnF3{oMf>k*C6D-3UflG8aLIG2 zxrUH4k3H!|Wc#DVoYRezZo#sM~1`uX`vBVrxx-m_;;3VD^Zr$4&;P{C< z?_;AXk|6%fB7Q+2s9aYkuiPErd8s1~}{5CwRgWa5)nzi|7UH#O3T z*l$G()>W`pFd~XhKqhC=Do*!bHPSdPs0JO2*Dcn3rM$R45xDyG)d}Ion}B*Sui=(vc7E?GuEa_{cQ~A`@o*Q=s zQ_}8go+-97Q0gbV9MKorRrpZYyiz-jc?OC6i12&3 ze=)g3)g@P7!bCRXGRZ7~z|2pWhagRowsNXkCmwRSb{dZbCZ5{1-VHyia<2VDL{6du zc#z?`ctic+;ev}O>7vbG2-+1@;dyY4q9Pw5H0EO9cKm@IX}!2Cz+Vn+6v+Cd}hy-J>iO>`YI5wyBM@j*;n{>D1zUv zFS2Us#v?_8`kv}$KXWx~L=36A1Qcu-IblB6`&()~lQ4aBt~ei|VGD$y%)4u5pAK~n z7tO}Szh@cy{X^r!0)A3<>qe&?c|8OtOAWNt#iI+x1SP-}oY2D#%&E#l$a$z)1aUB; zTeW;}j4TS?i`e%P@pRsqftqh&yVQ@0o40T~;Yk54gv8lDudKS20=BzAho^SrN=o2B zQm*Da$DUUxNu6-EVbg&p7-xCaTvuex5u*BQ2y_nI2?+`&ju9U zzotfU)vnXh*B5I$Fy#6eZrJ@!>;YH za&zPZ%;r?Mb%m|0l15dg5y3q{#M2>(?r&jmsG?(iXA{p5P%aEAmmH6eTd+22y@Vz# zfb$PfV^-ae<_+n0Sv|mB2=4&KQ`ir&)Z-_RPn5THcem1E>~@j+p-4D zLnsv@K?{27yP_(1fh(MY4FhIUxBGQo1-zgIbcivtA@zS1!f#rvVeVhtKhN*^O-9^r zj{ec+_k1{L9N!9gV-Z?fQa<&f(A9as=g1+Fy6 z8&RFnnPtgYUd^@z_0#S3SG?qeShzGwYvF{e&9WOmB{(J;T<|{4YFkj{acT!NVP}>r zq-u3i;o4O<1G~}a>oVf;%mSfA?f24W_Wyt}uWKJ&tA`$Y8FhR%{bh`EH^=Sx+i+_| zYFqB!Mb`G`n3Ll*qmx~jd2>b9lf@NI-V3ZlOcV%i?%xj+@YHxr9A2(UW7>Ywql`y! zb4IGid(ya~uC_a4b!^3*ZF=xLds&1Ojk9@YSQ931K^iB^Stuc3v!<}=SgSZk3I8SWR~y6O#7LvQ1=Y+#?DIdcWAvK z9kgxjj=Vi~WemIjS#+K5d|Gb8*)__$TnT&h=FP!=-MS>!M@?S=4jiv^!I=;52W?r< z@|$k3e!eF9@Po*=E-ar8Z@<3&b}o$4$!B4(yQ0nU`s_&a$7i^OQW-lPo>kIo(Z6W? zUoMX|734v>4)yqTB#_!m`O=z;NE=)AdD0azcJ)zkj>B1do+9l>p4A}ZKSk;PfLE8_ z72G`p5Ae2kZQ8HOwcIr=!=)b{@D9UjIeo9;Mbwab(W$F>e;xQsB>xG@us7i8ZEKLm z>hkpp{P+3_|C9;(FNu6t!C9T)K{;VEeG5;|aCa{me!6&hCMqxH`XRct{>8hSCzV#FuwZFTnS<1w zF;DV+V$HDr-t7Uj=gWu(Ho~!I#BRLn&1(APn{`ja)2f^aeH~YCYHa2)X42?nj{&n3 zNqJ-H@;Nr2#t_)W?xAY|idVoVfEm}SOd^xJJKOC7u__r`ORr3*4(MN3F-&9L>Hdol zC|ukrMv5~1PGR40ktXTL*hWxjmXFTkF)Lw+(E2l>+bApOSHL63Bh<~&w4sWC_G=4e zC6l@8g=tp>Py902|K{h_FLeHGjqlPA$@@zQ1(}GX@eF32+UVigtUHHHZ@J%{Nc$ox z`l%^6@AuqZd%RpwZTj&?TNCZRR`Er~Io2%EO)F4-K?H+bLlfjay(f}?P@sm&cc7kF zPS_`(RHs;Ky^4HFY2ec!#ns|!2+tqgJCqtJR}>S03OFYP94d!1i_GCl&>GOg=yg^* z$H7rw?@VI&ep#QMqDUxun~JMFP7f3dr^HV3`5&=)NN9F|ns+965878J)AU*kbX z>$G%oNdkwxoR^9s!y8o!;wecW=Rw{G1Xo%ptjH=lZ1zKbt%ZX-xe$p2 z);wuz0J`0Bn+aHl+`9{k+^DJe zrFu3dNZ}!m@>u(${47V31-?bna*YmC1y7L`Ux}Wycqt|&68V4N9xEpdTnrG{6%#T zabE(nf}j!$daU4`z?7~n;>4wOir#nuuGb&}ju=nB&d)Ly^*dHr-aG@nsW@M%vJ1_J zstGcn1G3Z}L+g>EhT?U|EOPTK*rI?A7jTXs`-I%7-H1LB;F!8VDBbiyzdiNnD)j_Jmg8IfHo!VnIff4V9bpi#51&; zN+e>!au2>3Ryc*0vkFv2jMg}^)$88ej6B|8i$0pkH(5Lb`4m&TOOz8DGVg7M^C+z~ z1BS;dElj3D=x{rV&u#3Cp}e@DMRw<+1~>OAMry+mG;u8l(E~>;TB!Fkv&?jOzxYKk zU32uruIz4@5gm$N+lkJ(y(Bz<3AaXo-LV2^gn6WjdY7dFs`mz#nG3#mV&BveZM3a) z>oM^t$v2(2mNDl-sw6%2&_V=*3!A@q(q~a zv7j1hU7^{)cQ>TdWEDmbeQJY}ssje8Cgh5eyDOx)HL5{#M}-?G%C6o+a=6;~;s;=) z3Vi4kR?C@3*!BcE9CE$;N{C!f&jT*|)UY!R_H&J8l2tki_VT#avIMwlLjH zZ`T)C^NaiCZaS+JzJ(Zfl%9+h7^dLMYH^CRR{w=o%B>nM(YsSZ3DEJezv&PG4PA{TT0&MdiU+-Hs{&A zK-6v~;F!D+tU}T`Ctff;U3>zsR#fZHO5WADRJE@}PE|c~cyh(&-mshl71k^?v|#jh z?Fko8rM`)8mBz`DdOR3{UNm1as@oG}xe8j`8ZfodPriB{E5>c}tUFvmK5`5v%+9p-TM-PFVbf(p+tY z7)VWrKpD{g^BwhJJAqo{R&q==ULR`S6<`I^Gz>7N`5wUfcJrZqS}hO#LpI_eh35Nm z76pvVbJr{O#+$85>>x(So;w&0BI0JD0Wi zeFdO}^S+G=H04CjnScWKt`|`vfMuo&3r1R_H7w6OjBfTXP1S|;ZrEKZX=Ts@r4%v{ z*=k=(YxV`1={pcc#@~&v;;RJi4y#SiwLw8NhSNvE4c4-6boTJwMfHypMM=rk%1|oTLo(=l2+nJ!@2%Nh9|o%WOcI zrI8I#UY7=`Q)Pg)sBeUs{@}CyUjbg9c>w?&_mU`60DxO-*db2jmk$5f;D_u=UjzJe zL)t&~{WG?|r^Fqv+{voCu~cMNu+S#0d-L(gDP-P}NP)7?J-(mEasa6N)mFCs9p_9e z%(2_a{Qc>l{P*+r6&%Iy|2HHqe2f447o7chhyI)12dnAwPkI=l8+5Qk z1rygkPJ=u63sv2k_F9!g|4^@?n5sf1nv*8Q;IL-@MSEA)u7y-ZSybu*gFe3VWIWqQ zQ6o@HgS+efM?hJDfEAad&SOn$xF$LTqC(w2TP(4~33Em6s>+9~!pe)A7 z;>8k_9M>`Pu+cb7mR?64RFAH4RFih0eC25A#X9`;GncboRtTML8)t_Ln1Q)acUH)` zycY|O4k?{wd~7DY~H0<3;e$c%jH zv4LU_*9feS6f3E;cYvti^u{J6xU7i>YA#nED)>FuTy}%T@*%YoT*2Oo7v@^UdJ-7w z&wJSt>;^EadwTqeF$6UlLQWV9pRB*jEb7m~?q%R^<(H;yV5;$zEqwa(EUwY0n8wubag4Eh;EMZfpuy5St};MQF>~)~lTUlMOc9X;f`EYnX@+aKe&seA)5+tTo>V0|5Wc#SC^k?FD<9 z=`v{JSfim414fFlk?U{I5N{i>qtyEgkg3O$V;g4>=w#ac{(7jmdof}@z9VM7yRj!r zr^za~ZgYau+IXEj7aJ5RJ6y)UBmUMY9((2s00KQ1QkdUp>*=$4aeP@K74#D>5iLH* z1{R~8DXMUarqgZFjtzwd{jLc;4+a;z6P5`y*=N{S{z8mniNpF9K$>l^L66G>+5t6J zbm{Fv4+Z=(YwDJ6pTd-U=qU|`iSPZK)GC|)?h+!&sAD&TV*X*MV30VHqH?+89>zj@_*ulPwr!e)~A?$1-$sXku6ZR@+y=XjZK;mRVT;CPR)i9ss-Ol zRl+sv>Z~VaU6PCN)@nxWwTjH3ISYNZ9jSfnjdiJS)RH`Y+E%|cY!OtaerYvr^X}_; zlK?4$Wndr`y&~X>WMLEzIFZb*aET{yw_4bsmZm*+)C)>^ z*8tsu+*rwfZP+q~d9|nXuKbA_tF9ZhNIBmmTeC4i6kV1}<$^g7Su$Qu{`eIDP!n)i z49|L+H8kizgL%`{vWM<8OL5azd4O=}VG}+P*HJdXDc6_aB|pX1Yc)fDs_?;8Z2$9-fk6%-m&QPK5mF+uQv* z#n`E)E5X5x%(MAi5BojgaM#DgDM|fekTA__CQWGVf}1#EG)s-e>A9p^qBZoKU*n{L ze2vY@iZl{)Gfn)ZGrU4s6bcMjGv{$X%}cH7YBjumyIJk-^sp9{XQAZrH6WbYodM+O zd-pu{MCcc@RWzkiDb;lM*3b}G)ljoX?8Rb1VEa?@E0jQ%-b&N&bkaXf!J_wM zJfTB<^K?;R-=a7Jt~e8uCp0xcroN+U<+L#)c30ay$Fy?sp`0-e~^L7&B{k*6wyszECu)i|m) zUKK*h;b;t@Pp8qz3ElNkA0@HVtFANw@G#uEHmPwV36CQN7R2Q>Q;23_!t$sr73Iv!6o7{w;)luUAXf8&!=I#ctiL}qB!nS6BZ zvw+z|CTOB4$3T~kMQQ|Pr37cF?@?9u=G>K3)n}+rk+3hNyq`v{?-TwCNRgMukaL&T zA7ixO8{;Nv6k#}_QASWCOy0(x~s>q(Uac`Zk8tInha)RiZPN`4j7 z-&$OTgGTG>nss#5_Gvv4A7kkx(4?RHno}^K$^ySU`x6(w-4tYZ}{NF`8*$GrYgq&6$Q(#WH1>u)}Oq)(W0hFth2FsD%NEG_HlPT&Fm^J@^%dtakoc=q}VVP&qElkt}m80~5dUj2`3b_YgIumtI|oNz+LCwNG7;-R=p9wgWNqN>Mt zHye_T8LfdDWDEliZ*wAmSQ>w?V|%D{c^+L0-qM;v}_ogYa_M_=?PjU zWSY9K{t!5UDI2|v36B0{E$}z!D7b|LP_gQgi!Y*#nU|z4a{zhOQ#QYd7?0Bzv?_6C zf+G0piJ3);`zn;0dL+}kjfcG(lj+P-6u(g6x8MzY{GRCS@T(u`CiCNrO9EEuUoLPp zGttG{ocU;bvPZRgK)zLOI8y<6n^7_4%0BZkIZ@qD@c-9NT=+)9 z0dl0PN`H?CC?h{WL-BpyH)F@|mFo|0{paNz|6vh)=Lx|4h0s>LZUB!uLl1EN;mW@t z!^$aCp(?OOiCJ$sBGGY5@Do7E>?v~%%9;G;Q4_1gL%-L6zxMtmhyRcDfxB~rP@$cX zqOOM0`ObnC|3c^gq(gtiGx7};oei0g2vo_e!*qJ&_Fto-w?WaOIr6zz`$N~?>;;Pm+xk?boQxGH9+X zLOkJXmcKZPIFcfqopav(4g3~Gi4g-hXYQ!31!&OBt*ovX>M0Jl(HLIGsV!>e%!rZK zlkAS)*n87!L}zCCpnc#>>`Ab=WMa9&PNTY*#?P4Q{d#X)6Qzt(jlAH>;)>>@eodTB z-%k9`^f?L%CqMJ6Usg-eTr>fi5sIBJl}l+rPbsl9?uzEm1P$!y4PBBcrZ!sAV3kLz z4qQLqwlY?x*wf2_{zWc7H#k^B2TgNqDAiy=M;n(|bq#E?iS=2#9xo^Zvci@vFzB%= z16uL*XrGP2Z+B=3%y~U`B5MTDhF~pkS?@=Fne6a*dF_K8;$Tq%?`R2HjQp`mhPPzg z)wQ0{0RdaCttGk{CaXHzKUoZfhk&HE_Q+khH|k3_V-rSFHZ_gp(y885Kg}}4utn67 zi_3lk`y{T%7V3mIZF%=*+X?arg{6(xt3|UXdj7PXI+6JJErd;#OJz51F}ic7lT-_b zPGz~Bu&?v%i5c@pYSwj^D+-j?@{`*G1KmTFZyb>-9u$;6i7$JGNJeVdaQ;8+eFt1q zTef$+h~)|@LPWZP^d?=pR|$wTBMFfbkPe{<0hDgJA_Rd;??eLxNFYcFy@-HFCqO8n z2}p0!JAAn_-@I?`yqWjr&fK}*{NCgIfN=KNd+nWd*4}HEwf-v~50kYWi#xfAnaIC? zhM?eNRWfur441JGQ}#duK{mWpk-)iRb9fcx(|y2MFod&n28M8eWOcl+BeE~aGl1J6 zQ`$h;=ab^m^c>mPysWVNCLog%2I`JLH?0qbEBJJt>CO^UJBQSay7AY&aF8exl6xd$rJ z2?dy4p$2WFWd;3P|!l75{N)n_Vx+)Ur5Jk`g9`)nWSb>%*S0DQCdfV=^i11L{+<+jLNy_3pU+` z{)Jyi@%HgWMz2*6F`m6utkc$dwX*xSD27FphNq>nVJ~vcMB?X?a|{X`UXyUzf0DuOA0Kj+Js+wJUUfcV%K9fW9p-xBnJyzuvqfrsXL9Br$iv z|I?#Vkx291kuNHQKQ;FIJ|O`y2qTGHsI0VLpji@2)T&#hiQrHMIVs;&a38K^$~ThYPQvKtUY=ChbS-JXNzxlFv6b^@jGkWzOnG zLROQ=4$7zU`y2IG*CeVt>d*ff?(0A5wI6=A+;x+={uHAt&w_Xm9pAV{zuCnrI`!f2 ztFPWj3g$BRy=5+UN#*1AvyaZ#{iqQae;m5IcW#{KY-z-Cv169}?~sxR`Qo)_{}5)q z78UeoM29*~pltVXr;SeYQtxyAmhCoSIxS{h4ruwPwER@g;tSkJgfb-?3T^eVg4F7> zGc<))o-=?m;5>t7X+D@r=c?76!V#c#=+*B+)6`vJz`cX^g3g{5zP*%0L+-p-`LsY-p|F=? z1axKyMkzI4pc!T+RisB5jpY;#zw;}OS#Xc>aCE=BpWs&Cy9hB+F7*M-T`Muo_1ENb zDe4k=Qmws>2_+zeIk$vt8rfwnlfKcUWu))Qq%jqFCNh(GuWJY1yz&)M#(1(3NCmi` zENQ!3Q9PL*UF}%j+u#*v$o3X*1(^#&$QaA2M4B&w`f2B<-k1qVwVeRp>3S>UcXxJ}4eWCXgR0gud5fk{)1S?5jn}Z;!`| z2~@~_Ij!mXe#rT3CSyjidM-uCU$+UEfc{YeL-hO-FC?!DkUo4MLN4k}%CO9a7Dd=~ z&zkJ(pNzUJW+JgAUV1KOb8jRHD*Mh6X>5rpf;=D=+-)$NjK~V=wT7-UiYttDw4NeR zc`93h7GCok$tD`i*smJTS%w<&u)QeI9>tfWNYE6bI?OKrSc~cGEWcdcH52=ePeYPL z@=Ju%dK?;k-ijtAx7eNK?#7TLstQ3NitMRDSjeTJpc8ylE7Cc&%kygQ98f<);T^X3wXzT12MehX7eNI;}_ z;YnS;y=TK-a>ZndyJ2+9w;aX{C?o+0e(W%J9SO79EMs1w$^4U^`orgmwNM3;_g-%# z8KVDT(a4C>&!@p{u4s)U$*(jfxyW`(_f}n~CW{smCQtL1_JK@xcNjjG2lIv))K3ov zo^3tFN}mS1iFbF49djtJFAh8c2+DwrFQ>5gP9AFJQnIS|Z_q3}`bCuhz)pi~&`?p* zy~&E%LJK46j#lxWB}eLYwZn)5Uib$e4a^hxrEY<_A}xah&eG47)x*N8#VOmCxgnmD zR8vMfF7-drqczTnc|3@)D!JV>&&HYqRvs{#_FJoSl zRFo0S(yX<d!lbXio_^~m#CLV8#Fwmv|BZixs+wnh8hW}RKzdQXOw-@kjhVyqhNtBbj z?6`O^MO}B_w|V7QH05|Bi?8e?2UmHXcpy}zRAk({?9z2kJ=vHC<}iUuiC+CeUXPSh z$B`kmo??q%{4Rj`B{aF9umoo?#_Zwu1 z-AqYMhB7z_3XgwI`oFP_|7?T$@8;95%J^$M1_Eu0ZScvV+RO+7K!*^5YVQK{ff{V> z0S=h)!lGv~Bv(VqE!LURoW-m3?j{DFKbj_j7t)qH$PaoHSaz?wgbsw-3iV7UV0A)7kW9Vgo z%9H`_68#5-*JBv+q3uuuIa&yGpk(}HCwx)i&bx9!`+{DOv3KA-TVfGDrDxzVOnxpE zV;-&oc$nVBMk{(gf#U4pzG~26rXc&AS*dHv5-gc7OBj93rPf()gcH3~*li-^mX&R3 z6*SoZ250B{vyVPw`{`E=J-++NNp|G0Sh5qMIQ7(6NF1|rOZ%i5 z0=G!>7dyefzKi`mC4S8@;V1u;8rtt3|2<^?`8@w4J&}IN7T^-FXmgGQFKq27-AOdN z9yWz=p#eE}=dzZP>vS|dGkw>@9#U}GDNp#Wy1)Iivfqh%q)y?AC(4sotQvd36x9QTS@s9eq> zsN&ftwuW*9A~6X6$d{=D$>*(n!!jxb==Z?~QE?xR@r|XFA|5t0Qv-Q@ss1K@;x=LB z2MuIeNe?7HhUi7Sh}+du#|lxyOI;9W#yiDQ&8cz&W97u?selT?OW!GkUMteSuixA8 zIMbT<_9O}#fZ3>po!n>eezqaLnJ2qb7gzf^zl8wvzPa=rxx6}d@*V~CebC(1CsGq8 z_s?CWf zYXmZT;NwtmPz$+(UDo4?!o7#H>4`RJ2-E&?Q{TC4l=(JL-x-Is;2{adzxsHdYBX&7HOBVJi`rnLQquy=!ajxcoZ0%(M~D5rfJK({&en!#h;i z#AUB#52S<{4cK3@$xw5>-fmee20Czg4x!)#SFFFrp`@B}em?J#k@mPm7W#o(IC0$q zC&WD###=-cAeAfO(l(P4Q~d+WOizN$L{EnKT**S=$hvO$SR7Fv5)B1bs_StxJ7iU3sfX6lr*=`t?J~-JvE5H7o_e zRtU>dF!917yY+MlYk9&#A}Br5RQPJe{UI)TWhuTEHio?B{$3U9)+EnG8nblf!9`I& zP=OF7Xqrgg+4RHV=J<%HnZDtK_JJiDYi0PznoU|B)fSyJG;f<_eGbu^s+oNR0P}cb z8`Nqa4}?+emUZw+W|+=0-kb=M=5?{j1Oo$k0)=`MpZ0#LLH@%|3YLJSXDu2X2*}N@ z&~p2_pVDn(*`Eh_xat!jzw?36QvH)bld+f8#>L(`&wEeF8?9FK7WaDRVu9LFlOfNw z@vk4w@7)$e;H4|>F3H3x3>fMd?LHNhL4VFK<;IN#k{d_g(|ask9`;Qiv2$jgqkJ#q zU?No@AS7c5PuOnSew4cS1)1$%YPw*g(i}{XGPz7{;dPXuPY=~cT+fS2ajhe(eK=>N z>W=RUw9B9$Uj%FDDOY=EHt8uybT>CKglca)sezzdUrr^C`c%NW9_Big_L>OVX6L~m z8jyao2NA8g77jOR8R<*;08e)5n+dE+pG?IH)Qd_)uKIdtBhwwAz-m${Ev=CZc8cBV{QH6P8r0=g zJ@r&?LWrkRnZw$m3~_1nl<&~?++fEt4J`A9y|kEg$Fsti*g@ZeS@vwM=Ur-a%CKRY{De+lKB1vN48;$k5&23Rmu=|K2TveHuDVy~(K4m`dz}A9V{3HeBi5R$s>sGvU zM+xfq6#|B&4`Iy6jTZbW2hZ$!Q@8AkhnFDhGkY<+xXU_v4hGG!+eUrdWwKaXoJIVC zHdLMjn4A&176Ni%0(bUy8;{ozZ6@i|bRIMj36zQ_&)1WrANx7M(a!Gn-x6o7 zLYSz-gEJ3hp}*4~^v2%=%HVZ?FS)2F&Yu%nav7moa&>h98!9S&gFV z05As3jxasQti!E*VlHhsUzj}%GT3bOsSzw_$O5Y6Z7uO zPi6&kZu7uC;qWsRUWGJp$Ox8ags`C2HTUS?WWa#l7b`UMP5aM-ZlHH;oisyPfl%ut zLiiyrI3I@CV|;Y6dW_8?JHj&ML5f@1CEkY70X>&5w8aFQv?z9<1m*Nw>e~Tl6n1vo zExMN&;AawBtt?@*ZkDa^*VuA`8h9=g$-wC>_5#;!I{1n*E6TKBq+UPoM;FZ9@SQR~ zVGb4lrPOjktwDC&nUECy)QQB%>0emW1ku(-3R8IQH?32qd6lh|Kb^HtGw9GB$_ZwG zo#~^6z|dW%|BN*mM$0Zy#uDpwjAr^lUBk{T3nmMIDi zE3Tf9-HoMIp>0;4Oo%zD=#s5bY_-cFsmU9U9;WQH}8wYk<+Q zCduU$T__y1@-3#qkiP1yB4KizAyDUbr=&k3BOul>Mgr2_W4vVcxyv6X6LL*}#(_Pz z2N@tkSb+`ooPy*bUg;iKsk6-LkbvMN1`IsLE(?uK7S{$)Ck-!&T3!D}+9D!6%F3u@R0% zo)k*H8y*}`fJ3ED`-Hl;!in%ve?z@#mU~=*Ss7uW!))4=&nX#~cj<&}sPPaIufzB= zt4x!R05m1J+XZM_sY%X&-S2J1y&I$NrdJPT&ldTGh<=P@)`3d9w1g@~t>4^(ZaWSK zUVn_dY@bNj)ywP)STH%rZjSBRG1P#6EiZ6z07nnS326j=-=NK4l)V5EB7&&?N5UIz zLRh|Veq-k&z^0!#^$5x3+Z|v4%0L5C{gY^w$cCvG*^MqFw|DK)y^iok&W;|uNac`5 z#Cj=$aPBfu+S;CuHsGq77~;yMM+()Lo`XBn_Vth%gYQD&|rm5QiFK9LkFK1-t`eJXu2u zosmYfW+texK4C_7{RIE3CW#%+i3J#(kpP!I_%v@K$U+#+`~!@V1bYO;7g@Bx9k3-( zWBc@XShc(62Hp}FN9~GdHO}ucib;)HKb&-5U%}FcN!MOHZ+2(>d$M`pS(~)<)LGUt zuLl}0v+YvZXimHn=sR-K52BD=Q9ax8ZvDPuc`n5m z5{55-2_|opTHgS>@R;p$j%=x2w%x?rOeYzU(AX=a;Fp}_2KLl-_*=(kCrk?hV~L%j zCJe3b??%?=X}c*?BMSL!X0h&7zZr0mdE7HBT13`w$PbSQ!UdPof21C?aX$)PppH(| z3y&-T58I`um3D*lwYVQ`r#p+f`E=65OYRhT4v0kFH=M~Hz3#wBj=+WdLdw{I&t2g5UiIL5r>#3oQLPC3wTdN+ys`_)E z^z#I+{GeydT3Lm9*yx2&)Y&@)n9Co69MfG@@ zRVkp_@VD>wJ?C!DP2jAhb+S;vOsk;b+)yacD0RVTIQ8pyua-dzPbl$o;+M7B!7`Ck#%I0yIDd8?r#vT@m3NwLS#&(x|UcJd3>KZ1{ zUqR{lK}LJGDN5SXXwrbl0B_Gqo|gJKAkPK%9wd}KD64WN>u2Tnr|WdMgDKg85{6jA zUPkqXO}uH)RGxy6#mmk|%}*cVasp*>*mEzz zvK)z6KdaAyXWljHv$2Gcn|rj?T063S`U0S7lp$!d2W6Mtr-|u8A`(S+(UjK%uz^p*0-8d}}R_g~Y=*&d_OXS-P)QN%CRe%O&Xmr-JRp z?x%MOM-0Hck(Z4tptwqi?t`!0K=lV@Opbwk8jP%;`xA_Msqv9-+t?uE4B7v&Q(zk9 zfQ7?HGDm>Ioo9X2nH-JTo@zY(aoRBtehWF!xHL{S^L~C6z~_Q{26*Mw^M|hW*Z-V; zbD-$|{mCzX{poL=dIk}YcG$No0Qgm>nO6V+i4!P51Hj^$#H}lD>F%ErpkexB!f)Nc zU(jQzo%6qX7jQOd?k(V&smCv#{qp7nCY8`GJ0fyi0oJx4LEuY%qWIEmJ8F#RJ1gN;PN-uTp8&WxyQq_^O zD84s(1n_+QmGutEUutY4kgvY$s;4<}@m`rEb) zrw#N$*>rV^+FdVI8_fK2fch=(Xl^R&)t?2Nkn)27P71fb{V!-s_<$E7ZrqqXrtd=> zFwh43cMDf9$dLSEIX?o{;LHQ&$G6AaI2ML~U0*n1afbVOnYrb|;WlkR^shQTQwN-x z-e9`$i5$>AbvRfPyybp)#Vcy=$Dd|$6$HVLi3MZ4AN%g;@Q@>Nt<`f)vpWJCB!?RG zLH=j3HvadM!BQ+!)zx~0NXi^Om+0A&4jHs|qF1Nlas{4&ZSA>2z$QBK%jfq5TW+qo z&c%zJYj-jjFcg7leeDP%-BC8~kFPKo0@nbiZda5n4!l{?)$P_M&*Z_Kb4z+fc|ESL zZwS6#eUNXoSUJcP!z@TZ1ErGXB_t+=#YuY=V&`t{dFVSlPK*!RE^k` z37n}#c=gzU(qnWX-c}ZIi)I7+{0LB1th#+gb=%I@KzwK8z;?r1+W(46>+F9q7XGu3 zq+U{^+Wz$SIK%(5HT{b67YygGUU~*NsY^vaJN@i$6+FdAg?|R{08S!zQKu&mHPgrd zr_uVo@&G!erj6To{pOoIBAeV-?I@vF)10)WBipzw2o2ebb+kH-9hS@R64W+$}J8IbBNNddVyRCOQVN9 zIY)r)jw3*V9g&Vc{BH7B$yrJP&1(Ux)fdkT)yB=QqD*C^wYbZ>WkL;rvzwg*~ABW)H>giF^y z#k#GoC!|DuJM7UbQ~3#QKP(fX<+OFmBsMamhuGD~nAX~e!|_CXMg_mX-yI+tK*#Wz zb;-6|yWiv13H-7Z+IAKsw(Fa_w)t@H((4NbNH?1=Q)3kl@3%0Q$MDHIu5hz`9`U6~ z*Dr5M3|B*F%XT%9h9cf~lpmx8#AU{vfqFRAf+fW|8olT^pba=TLVRduU*Fu~=WwPS zt%>R4_7l6^w~hcqgIxP`T>H{0!p!@-hlRUUtg3W!Q|^EB)%~qk`uC^*{i~?IpXNWE z^Vfi$GCccE{s2U?LNr?|t0`U{_ZwCXsqDxDQ zL#-7X1Ma%rhm)8~ZqA)DIorn6+Mv(*cnUewjH@Q(nj4klf_pEg@fcdctPn^ZS9tK! zooJGd{I;b?Qv%wcW!5=jvSt0nava@_$pYU7Gmrdl8k1+A&JCwab05ptpGoGglQEjJ z`j>Ghc0%q-f48UMnHBcE2IO`g)as2Jp8$RtqJr(9lzL&5kkJRcC_HfbYoFh_F0KmR zMY;My{g3;;dUy9&H&tHEUKoztOd6L_5^tBCjr)L$c?!>dWAgtPIhtPY&nMpkPB2zkZ$JO?w`iRBaTN39 z!4bo2}t7ML!d=y0bL2IKmvhEh+>emYe=xhWJd z!u<6_ZkZnnz4dAb;NWa#k$EuYe~a}v*D)uKW#YJZ{4?W3Q+TO-ze?;GQh*^J%zWGW zmiVWk95v{FAfw&T`EdO6KZgUis5V{ywW9wGl;5u)@rOgiUy=V`ob|ua*Z<<$e@Xri zv&3H}{r|lCZ+2mR-=_UM+50!TLXAoZACx{XevnjrOcypp!&3q{zWHClgG-r`CstXM zu%^a5iP63L3{X||BS7+Q{NAPd#+;Sz4`df7_RYq5g|$tGC!W+Nc2E7L!$J)NZa^^b*a)$>GUEhsur7Fl64{9i*4g1iA#uX*|6L;#C zmD~{}#bG`wg?XwrB~M&-KD~ZD@^t18wfNbZ`nNeRjjn}WxKO!5!i`Ym7k1k#4-$um zYo=K_xx6OQpjAc4fsGWeJ(-G%fOcsmm9<87ypP><;c)|heox07JeI-ZPI5fV91qmT zn&em)A5RvJr(4Gp*8eXvYJy=U299@Ol8)@|Ohl);5W8^=Fyw2z-!W{wnH$^G9 z(u8(y+u^PjGkZ8;Qo2SA({xq(-s{+)V9TYB@vIqW;m4etGRwKg4ON!$~+3~9Jc-?)xb8);e zaJ)HnynA-M|9HHEd%QtDtp7X zKL?npljc|Y2oHqV7$m;aWRq0_;;^&(O#tKmoc(G%&6wQ;_;M0q4Ut zoghV*MY*!EmPs;J;=auUXoJ2O*LjZ{=Hh*x8x)~+tZ$h^y&*Qlb1t*jvhBs7VD*dQ z$p|ltK7^EwiKJB{oqSo758`lZp=Ns6AV86dcy5u`Z4Pw{tk=>{r@U?uxQ1dsM3JIQ6(B%8Grz56%wz z3WYTIpIn|08JiZ4u@*3@gIBSTSkeNU+!CuXCwI3s^_HX`(F zJG{xzCjQ=1a%xaxflyxU#hVfxE#0Qk15uVx=U(IHC&Kyz9d-Hptr=LzDnC`Xp&gQ2 zCmH5Nt9bG1gc$9&B?dziIo{ML<6{nKKGpQ=5z6ze)`UZ`HkGbP={AX?owcvkNe_Jr zzhG=tlf54I&ca{qDjRBPie!s)WNKO&>}KJn`OYrYUL?J2_#~8w4{GLi8)q7Sy!IL= zn6TC&`%`Z_fMzCDuSo1%D39|Ko3d~6F#Yp4c_LH|M}{OeIhiQ|_GCn!rETA+IE>~w zc2cElI`dy~M8{y<#_H9_Ns`BiUy>9B>KPu|bT4kD+nk774 zMUQcRj_S!kwouCBe|_e(;d6D^A<*&L{tB_G}L; z2DeWN)LRJFk;d^I!wi+Vg*GnGvG5~+PK$s$cuh7m?p#`?+vL6I=lDx`o65-R z!=LJ(PNCceRaHAkzTm)wZw>mXJ6`^#S<)q-ucT5t;##pif-SL=S?!oU0#rLOM~gC82a|g53&#e+tPJE`9}ZLFY!jJXz=aDP zMf{8@6=;;aP2;2S#zoSs(#^tNuP*?A?Vsiu(Yv=k%$(@58@jI&2#N#E5te$zS68%z z!4-_8+N|vGl9d}4IGpgCJP@a86vNI=vH3V3T2UX?(XlT(lp05M)!t~_LWM`SOyp5@ zAyTiB zLHqmB7TnxuVSPO+&9XwDD}eLkJDU1WJF7TS2T#Tb-W$03GsfMNqRkbI(}7u=T&fD^ zCBd&n~v}h>bKTV0#536*kiC-B8nJFiFa939o-+ zg4q<+U83sl~nS2a` ze1v@2ip2IoC{7Y5oOZKWStz_IvyRyrnye#ZJ*_e+I0%vrv|IJ69y9(s@GX| zg8oKXzQCq?JF8&F&BQ}=T$4*!R+Ut&K9gU7ToX1{^Q(K*-JR>6WF#31TTw|&w1{tx zZ|1z-+Bz+AzVvtPX4J~&oO1kZo(N+OMQems<4<6ye-tCb zMq5G9$`}rdewaKx8wEBmGjSqk&EF{?YyD{dqmEA;mxV>h4r~5pC(|_Hk%+Z;u+3tN zhpkJmK~b|-RGt>c9Dx=0+0p?>;^vl7cC27vWNOWLc!hYmuuvD$egw$N$!Tb7DvKFt zH&2tL#unXkDn0^$>^j+;d_#T49YsP!G*Nic4YR-=Q{-3YF)_1GFlS|C!rH*P=Zdsp zoxaI|YDEOmJ|i-0nb%S}AgW1-;FXr77zG@B31wjX22oZVwHX&P3PC=(8SZH|`Jz{$ z4Y)l%Vz@u(BJ2^pHgizOJ-#!knbvT_B!QU&Jz}4dD>iq!=ugy;C@bxwb*&fi(qsu@Wt*@vLl z1h;OAZ?F4ZTYZY2hHaq9+0xm7k(qi|)#&*mf6Q8-iHzjkVVJ6lnrVRl1g99{O+f{d zpWE90rhT27uGe7V5kOVEsp{)`&EYaZwG!fs73T;z$lA|d#MkK^0ZaqrXK(M&D>@-_ zyg3Y=+^j$1G_gp_^{5o~c&Dj-t#2DpIUXf7=xVbPH2@UUJJBMzxwU((-Q?Zujc0)6 ztR)r4RVNKOo-}-$$&?j7I6tjoCh6kiE8`k# z$`Y<8ux8kWQ;g9~q+p9RgtJ!bnyg=;^7G>tDM^f!8oD!&mW3$)WEim4+YEL6AE&4kYb=4y7Dbz0_FC9{e(i6}bQ}wWvvC6~-m5$RSE* zza$^x1W{Rq&WQ)Ure^Bx!-n^lh2*T<^9%}36LYC((m_Lv7s9%g2i+S7*1dct_6eBs z>K!w5xyeSVCZZBO>QR6nA>J?J5YDe{o*KvDcariNq%EDSIcL{*wM4TM-8?9ea&YHmphpOJKd6dRG-EU_m)-SmMHnqoHYhQ51+10V(-7Gna7 zxI@X172K3TgH$}K;u~nX{}r^K=!PW3C+vJ|78}AyVza}S(6hAD%Rb@D;w#s-v{k9p zRRy$`<*McPCuyy_#*8m%7{j4pRxvBbLiw4H8d_67oNmbF+;(?;22}y|iW1>BIGpWX zb}Sxn!fn`{P+Vs4g5d2tXcAEc=2+3S7OJoqUY^pwl)~&#vdw=TN{o@|c5p!OX2sD- zHE+0$Rk*y5sc<(Ar)P-vO(vA%ljoBAY`fU1K-^tzZaClX6QFqRUClCBivBoM_k4rQ z(^-tvu1GS7lKrhsKa$O3e8S0L@CRdMMJ{5SC7A){&vx*YFt%vAR;GPV+O*8&8}!C2 z;)YYIVG{Iyls4Hh@_I}skOri? zo5$M3Yx4-OD$zJlJiS7Of{Qw$^hOA`N|%>oXPYKiw|UTUG(9saiDSmR;fp1M1YBwir@Z*k7cvlxwN$Vj z8Z6kuFooYs6y-|U&?K@+qnj{?VrE~glf@Kj`Uwlxs~ZPA8+Lo2E`?LDqv($A{j!v+ zRnSrA^Y~mhn>yhuqtMWy*Y5)Bz=3JCcYu2vX81;9BRdFy#ujq~Se8jUl;qm!?4V9- z!;!P9m<74Dtlh@BgY&+^^IWOx6$i5w0S%f*07*3R1vQIC7Z-ofl<`GpUz3c zzNgUb2NEzzDlA0FvV`|jjkJU98Bat8E4F8YcR$&a+{#r?wu<^)tvpzEJ(xV?4REic zLI_N({&=|NGl6agLq^0r?klk3L#;Y1=txb9$>dsB3aX+B99XEfosHr4|0xu<1Z9Cj zTKyneF;uTdGW2|glW=B?ed5CGr7Aa`lCie15jU0gczk1A>fw5&$5UVV9p%iNY%Izy zdyWq!A0?7wNzPgy%>SIcKi^R~X)r^uKm;X(>qY2z=rc048|FS3buKDOPD~twGI4&A z1gYr-E`K0YiYCsjkkzyg7_kSi^cq z@{tJ!Eo)C`HY5+>9fXqfp)jSwLR!Z#Z(Ip&!;Rq**JhEy61^9R7S||*K9g-+@??lJ zFbC(SFEq#YU>)L~EgZ3==RJW6E_Am4rXvwM;KkWhif>4s3XOr%VIxzbnkimD;0h0! zbyC++KS5K6sSONiO!gt6a6yR{z8QY*flEauQSDF@G+miYNLvM`uX2MbGJj%an@1Hh zS_%KQ?W-SUVE5p6)g=Jl^z6hitOCl=jEO`L^Pk=PQB?KR8oE7C1yuNz>m9rqIt56lQ)>YA>sxjX?cWR-=B>1yL1pDuHS z>iaS2JI7<=o3BOUuw^Sy`DSii0ASeeQv{@6=(@YMRZlmcVfNPzQ}j&bl(y;lH&6-2 zNr_oSY4a7ChiLJe=!Y(qTkp!sG)TK)`e6!{M}Q_vO5Hx6c=^N;;56|~$<`ryGIMZD zmAP<@ni631T5}zRrGojhWmsOrzLKod-S1#AePe*|EKwqmUnl!}r=D0hs-k(t z=Urg*3Iv7YQcpKG4nCO}X5ZXe$18Sl2>G3Mx#VB;O_5+B8|EYZa}w7NgZ1cKrBh`= zR7ZiX9I9)<|INcX#Y1%oxK~JZB3S3B)ZFd<;1D00mf9xNzSgMG>AAu`uXo~@%rS3{ z<>t6E91j%7gXpnl_*t_aYt7>s#ql)hUp0m7+K9TtqT`9l>eYE8RiF*jrw;=S-JTv~ zUII&NtLwA)?CFLVI)NcjMinz%^aG{1w>yNN>>x5QM0s?iZ};6jbR640udI`?K28DKjZwMbfibpJW0x7lr%@Z3&-x_T zG?WveDbr!$Zx_e)dQ)lskjLKONveX%%aUMKqo?#p2C8>$h9T7-clZ3r^#l7aGOg;Q z4x3{#$Gka~o8!)KJWw1DqQ{!yXU%%7HIHW$$J3;L!4%S}jn*>G@t5;ew9!MO>bg(f zh}}Tv6InK2SdTxBS@55w;Jb(B2q(3v`~2U@sr88oJ-ao-lHhq_>Rr+^1WW0u9c^D{w=p5Xz}XxBq&3fA`c&8gqwNtpI0I z=EdtT{O+~?)e27}n|4Zlck!=2`#JG+@T@W``r>tRrsfA3`>x0IM()Wp1}Xf2&tQIsuwo`0eLE{dc(9e^a9V6%S6i`rK+gbL+%|>Bs3rQaP^LvzEqFc(}&% zY&$Kq>)Zn)rP&sXuUE!$2Rkax`}*};&{jBojGd-Nnms$9bYaRT;C0!pA^^P~cKME{ z2hwS6J~l9;$Aj}_QltS!s06{M$eyInG}wN+*oO$5N;F(7oX3RO3yv&=IbV`!?&Isx zwFYT>J*)oDU(JhaEqp0&ce)Pu_h9)o_vVks2y(y#7pi!QoqgKL%aqtBo5_4r5 z#ljaFr4^PN=Ej45VNuFoa`FVPnnVYaqz)Tj9EUOcR}IyZ4UhGl&zyYrx5)ov=`ZxA zxrX(|-+BYi@@xcLl>Afpmpd?hdJgFr-~(9!OYIJyxRYw%y}JC95#FgA)@@L~d)Kx1 zZYfp|CDzGTI6NaRy_7oepgD-LKrp~yFnc7=x6B_-7=1tIHIK08j*2Ki93P(ir*!NBj|+B^bF>3}!DG{qVH7PU|{R(}fVG7)I=} z7=SX1*>#_m$<;}1Xap#xoG6oAeAiq43D)G=aTx~HI-jvBkIVJ6ajN~C3o-K+;P{Jo z!Ktx7v4`KkfA+&4ANY2+^rm*arSP-mCOnuo$Bvs@7fC zSC_77YBPwkhc6Kv<_&E1jCqj}>-SJ)kF_6ffC-e4u$xye*Q`6NCLqg)hB3Q8=<`~} z@@r{;h4AUx)kV&3i;y}X2%i07@BIbRqhB`3H=y}^qE}us$LYOOC9RZ>*@AguXUQf^ z?8@HC7GU)yHq~ME^$&-&xofh8yN>0H?xF`VErBZgejk+H&Soa=zv~Qm@8H{(bC@Jn z0Y4XD?KT!(!}XZ!FKYQ^oxlF>R9Yeo?|8Ae^}ML_iijr*Zn38ik~$_5 zG{7Qtnb~3p%o<7!bhBm|#L)?m$19{sPuxvh42xui5#=y4pYgq?QkHX&MG3vxi34a? zlx^}PM(N}O)@ zCCsMSyy+w6}&1Vl%US={t_U90JSJr0DT9JJ_AiYN(+^Q+P>7({9~AV?9K8T(cK@T@N(Z zV1irlqEy$xpL&b#Kuv7d(KrT^j&#Y~E{YNJ&|BOK8-p(8H(@C^U}Ohb_59`5(#$fj ztGw=I+`g3dj$Vyp6_T&?&6+hd9qL#P>FhE@2=itH3fho$*xaVuUhr9K!$@FV&IF7w zuClO0TyTrgWIFl|v%Mo@w^53HdKLj!rdC*|OLhQ8U|CYQabJ2s5IyG+M~z_{zC3$* zkc#2@(*wz^_x^E`Y#v=k6@F^K-h~huo@BCHTHmQM0;txg!gDWWeYl?;Q}z#^Jal?^zk9`Pd*Cfi_l8Fs0%pww2Svvx&a$eT)pT{?&#R z6UnRbUiMuI^RFnFSB}t&xgw!q7!8P8Hfved`jiRGGAiDrjs#*b3s*W&%A5fqrDAod zK2HF;@y+M)7oX8gZH4pcmcbo_;a&!!YVC1C-8RjrQj8_qnf-&vp>~Q>IjOgJHP6T^ zNeqH*Nnmh=G^(_EJuB+qN3{vAwTR(HHydz087geRodTP-ZOhkRPWuARQyq5RdMo>t zYQoJlr4Shw8q(3^2OkP0;<44_oBNLm~Th%#0T|&09}WKp4-ItJyEG)e3>oTjbEFZb*|Jw}cmkU>O0$ zm)#nmI2FZ)Sj$uo(%8?;#z!K!?_~>(|3>m*hRRm909s) z)kggb44v&}*>oJU+zb@>M8Z(1+F3i`Y~p|$_gKY6{`Wgft1eJWl(!uk8K}-(ToI>? z^f{naKfL9Zs-=WB7VsrPhNMl4jTX6z)V@xNL68qH>hdAyOp~}`2vDf5Q&7dNgUi3{ zm8To_F(!_XU3)`4GfY@sj%VJEJ0VuoSp>mHuU2P^FMNDKAdU^Fl4zjcH5oLs)}ff^Q7WEez2#^L}d3!^T8!>9fbaOdTUKa3+~g2k^`1Xi#f+CgU-7DA)ZW`R2leRs zHdS!C*s&Jx@FCg5tXGV_nt&g~(SjDA7j>EOhj`cYm<)Ir+1|^6Sm;j~;EjUA2`GvffiMOLGla+F#DS=bYPpZufo9IeqW%yTAAC`XjrlcJ11GSJtjw zd#z_ZtJx?xy!mkG$(u^>LmH@k)l&liJ)c1!aO@TLif}YXmD+>hvxZw z0@yExxR^@h&w?iD^m+txT>QcB9m;?9cnha#BxE(nmJ<2kMezF8lCJI4078$t3dIdj zPLfM2!kPyg+Rf9d-n^)ghsqc_@vmO2hl1lijh()edksItY`ZMj!b?S+g=bJ)FZyNJ zJ{%${FcL!=WpXS|ZRph=A7eB}=OllK(XN&4m51p*dsgwDdAJ%rl4T^kBzg;eCMF#4lMRzAF5h6@cQhr$iRL*1RQ znI@l&gP9ry|tQ*Az}eL2ErwOO(yHyq0NvHHhx^E~>cBF*fa4;O1ZAH4bAl;WS4 zP($g6E94A?e4-N+!1prW zhk;APkg?6Dv63v(RxF}p55y3xOQlC{)^MfWX=M@gkkCVf&m~@0-wn}mD=914eErX- z`JR&Wl%%Jv-@>593J}<-7;i?t+|#8NuHbDYs9(Ff_nw9%L9w)A7`Tj zR19=GIJ#PF*w@|?LY)0)Ex}fii3R0F`GD%X&ZTy%0Ca8`3W=c{dLqY=C2k^%KG;Mg zKp%UtAg}USLv>W7MCO>0Ht&cMspC|Py0cXCFkA3h`LYooVz~RY1U8o z-uUb3JC9$Izq$LbrT?_u-Xe+%a6RfePVD4=+V?+IvCmHQ4Mh6{|JqVa?OOTdPD?<_ zc;zR{xBpY;`{(-o>o>35^r2TVwHx*A#LPbK8fh%@L6wnwSd)8w%s}q77v4&|*Pl!N zG|reTsT+A!>TiX|6KKWOLC$T7Ad_(GrfXvpp$`kt#gDIxANy$MLl-y@S*VT1QVDyQ%S!B>JeFh_1 zmCdcH8g`#2owhIC1yUuwh}AH=QP-hSI0Zx)sJ*qwnOCY_f&9RXd%z#15kMTu!Qk!B z1I-Un*us5?o;JG!4Yo(|3TtV_V;oR$)4e^d6hmENg+5_szBu%%sy(8^EEf79K5QF* z9xOq)wISEv~cw@ln}#o?Hd(k`Y(FELV~4Q{0K#N+@f(21ua(^}Y`B z*LgBiu@n6&T;%ADh)giaE`rUwLQdH3n?ut!`tXcX2OdtYoEe;kHn6^Wv#otVqJ;ke zd6{kJWUVZt>NZ1C&uLTb)z@P}RDvD#Pzi-Wp$d>I#kD9}4+t`TX(4bTC>^MhQ^}QP zH7R*?Qfase>P~)vZB`Arsnzv1f%_hED&lCV%pebOk?Y)=c$3BsycN7@9GzczOoa>3h zF!@W-Y{BeERp>FQxFQg-Ub!5WNU6Jd;XXCk$;O$>A_DQ(c>TIw9((;~wy_VSkFpGn zu4*bew&5EuVoTzHzDXy?nMi*g5Ro8j#WT7Yt%&a&yGj^~${^7|-WizKWFObN1}EAF zz^I016*BqF;7;-j3b<-6#NXfXob{E`n?(5&s5JaXtwSk+nplV%3a(ncC@O@mNunGxDFlW=kY^~_CC<~>_(w4rZX_h0|t z-@W~<_XzgTxuDR<1Frs6@J8r4wp37oVY(iWi^lnCw1-=L_~IRYC2l>-8mSn_s#(_y zoQNo*2TEhL9g(`iX7LF6>yfGe0J?jmKSMaLt|VthlwBos<)54_!QS0z0^8v;Gix>T z1(0wOaQHYE6}tB2+-lNb$BFk+QafbJlPsJZmljn$StvgYtDUyIe$yx=uztSm$|h5V z(~K>yL8_~pKhKgpP%9fM6(o-{*~q&q7!)ZOsD>-O2BCrBxSB5Wx&mU~x8Xm!to|6f z-&h=u4Y!8k7=(7c?TQxp9N1A#{a58@60XtfA^6l)E>5Ay3?SWrsDxS)+=4d09(zW78TD*1wPn8xR z?kE{ts4b8*n%p^Jy^6bQOQWlmCRS#|21Ws8h3S}*l#i+p;KRAjEmSH!HSMHg;qU(Y z{^bs~pL|ppu;U0|qc+R9yQ)K}A)gW)H3T-O(KdGs=MkERID1v?C{>gU^m&Zp_r>;H ztO>ge1DZu4WZ;~m^}y{VD-d;2#Ow2!hU~D`R^?O*EjT49I=E3abUcJ}bL{~jVm(ih zl7N^DdQ_QlvCDnqoA`=Kh&HDGWi5u%hrSVXtZcw6%DmEb?uGvFB1k%Ov!7A0{hbY$ z&PY0j%LO{eJmIrCu&k__H?8|YcM-i#Qi|iFoqi{mu<2pe(f;d8jeySi5bk(E6w`fI z4};lBE=`0~og!eXKy)%)CD_Ulc~vp9kh*CXN*5kInuN1OEx`n_+-wb{Pc4O)(EfBn z@3+cm+M1T++Sh2Sxz?9mDhyP!YWfK{nnqZD5*e!{9)BRIa&7}{RI%_ZXKq9OkVPtL zYEZN~mwNJxf&W_dOZaEumt#97{;gWc99>`+qF@)xnQIC`oI|fg*eS>NSXIB*H%!y_ z_pM^P_fO`^$%>F*KJc|c4H_uf*=fEJ3tgZWVQ!qF3$ zi!0Zo@|#PvWL;tvw%YqLnyt@%SaD?^41znnX#$q7YM_wolU_GpTVc>l-93oe|!#16*7$=ukXX5l=LHjo|sa3X|8DX5mfB zv<33=wp-0-F!XAp{1-s06Jvoxs`C1vDVG*{nh)#Xv1 zz_MZO#nI{V`ZigpP)*Od*M9c-7>6-RPf5M&gAH~{-Y>E%Iit$K`|H5|{$~R43Jjcz zP5<&xS1R(Vf@z2X_ngPliU8^`YZgbb4iXO2iqiRXAxh7B4I#HTa@%Je*0e{|d*W;c zPYwPik(8hJI?k;?vJ*>`0ivkcDi>}jq&6fW5OXCg0*Smkv^sN%5}(at*}ipLLNqDq zS;2=o^V=;)QFCu3&@O-CUFM9?ojKpSuLaz9K7l$Bl-}VPZ=?$JjJ>W&TtQSUJ57xdbZmziRpYxxZiqc;x*u74_!tR_?NL-0kCL*I4KB)H z9i$9Df277w#nt9DJZrva0l;GCtjCk`*PsD4?CMD4g&-k|7~t!Z$FwO+*VFsr)C2J* zSUH9@#qJZD|1H`TEOLgz>Vak>&r)P5rXhZSp?>91b^L7rj~kPbjC}d0@^!iz>yx z^Hqq8nH%$dF8qTxE(dWXq*-e2R{!NV&_mCI1!Vzv_{Spc;lqs9$8WN-u6=3PS@8HL zfDkhMrF-4W#G+h7L>K7pwzc{3>%UZY`MXjfw$_(s`+cSNY&HL>Ser$Ppo@uhHcYaPT!k^HIur^~ZSG<{o`}(kX-dh`G19 zDTgn_JGN#+pQSx$ICA3Oik26Q_gg&uc;jiPTEeY&Vn2-9Zb?jT|B92oF86GwOt|XO z@nlJjNywnrzJq@p_Q#O?{~#sX)FEn%dCo`>RzvYg``;}Ee>oriM@jNJC2jI?qvZp@ zUZmyq<-=bLU_Sve_fmgZ0st)BC@V%@niV~Wo_VPR6}J(sz-93HGsMkV$`w_$05hXF z%cA?6Ff6Wn(;)(??jN=3ksxJ0j%?N05u9q)6U9SKTLq2c+v^YYb#ROwC<9r27Ei0Q zJ_LeLBcXQEUadsN&d2DxN+a@V_tQ=s(Z10^@thnL6tW(ioTG?eXhdxmc^F9z? zIFDApmV|!D^El6^oAQrM$N6RfLou9TDgo~3>@0#>u)2~D4wr?^@6DReWh|CUCg{Y6 z^)kWytNRZy4bQH+Hy6c>GT3tW_I}?=yGN^RNkHep20zi0c zudB+o|1rG3nLDf~NS*HNifm|DM4MZa7Na=ld+oGw4{;O|&wd-+!}d7X&eDpGrnMXS z1yGg|UP1sT&_}D<{BV^Jq^a91HA2t)K=YyFBeilYP279kZX;kU_BzYetEkVY|H<;< zq|G%Z_MPL#06Zswj-Oo*nVs2o@)LPXL^xjFqnIEQSXybZ1_f#pkQE9Q6gtGrhrZ}B zucD$chTGZp?P_Pkn``g=TQg;}GgIM1bMhelqpBoA%0@3{)0R5bq$KAf_Tt9RZ!Z3F zn{JkA(oX;>9p%|SLH#KXjQe(odzEM(znjh`0@tB%=xcAe$VFSBaya)~hj!my!4(&t z;?ek!Yx->GmNGaTC6_0+Pj~)qrb4~=O69@+zD>;0Cj&j?Rvky?H57U-R?nM&lK%A3 zw*m;rpQU`*12yq58wn{c4S}Dq21c~XvTw&4%YSos6+>l3_zlyU>!6#fCw_j7Kg)}) zJk}a8!L!$}~;9hVzCvR-Z<-9Ts#_xZ3QKLeA~7$k zzhTcGx-$=4A3}N)UhH5;AAm!F!5OBz$M2W`75bME2uFiBY4e9qVnr5F1o(E9h#9Wo zg&WM0E!6TVOHZfU&aFX(6cBypbPqZ?IW_Us4MmT$B(LMO(8HxQ9-5ky%-WKtRm4Xd z6E^(YaR-xAa@uM^tgn{QPy7q(Lc$(2>4%4uTeXMk%SqXXVU>u-l;F7wyBfE;{;RQvSH`bn+6Dc1Qp6^Su#Ct@j_EQW)GVNTs$@~-J09idiQA2U0sxU_VPB2@~*RXlk)WKloDP||uepHO3F@mk#OO~aB%{apv-q#(+Nc5TJA@_!v{$i?;LQt9=g6Z|}=Nkc}S!e#yNPg-j z-be3*)v7bo$_kZGZ#k0LN8f@)$kmaX)$1PF!Z1g6LU?#1{i@urn zrga+FA5>%P!PHUjvFU<2oc%bWNC|RJ(E#zTEPx|k5fMh@o95BqH=$7*Al3)BWB&Od z8Wkug)9+AVyT5@MI3w_gAXGAAX}B=z$eEfKx{ktcO35+maCxA-dQs~>Ck z<$E1nm4<}AS5J7}1_mBI65QwHQ)jE!to5GV!XW5EF5p1)Ez1!PL!YD(4=8N=0%|k% zurXWxj;ZOXmZeUFBZ5z3hkpXx_wDBBTmhN3vTDtKJc56Bj_0y&qM5yF1&63gccP?a z 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 LfIygid;R|lNm~x$ literal 0 HcmV?d00001 From ac0657c428664ef6ba7c6879c9ceb8b404a98973 Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Wed, 8 Jul 2020 09:55:52 +0200 Subject: [PATCH 14/16] Add hint about required synapse version Change-Id: I8152681d695ded78d0f9b9d82bc038aa67723fbc --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ba6c7d4..5e5c84b 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,14 @@ This project is built using [react-admin](https://marmelab.com/react-admin/). -Use `yarn install` after cloning this repo. - -Use `yarn start` to launch the webserver. - +It needs at least Synapse v1.13.0 for all functions to work as expected! ## Step-By-Step install: You have two options: - 1. Download the source code from github and run using nodejs - 2. Run the Docker container +1. Download the source code from github and run using nodejs +2. Run the Docker container Steps for 1): From 61938405e95805b0bb2d13baba7ca5ebf98794ec Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Tue, 7 Jul 2020 21:28:20 +0200 Subject: [PATCH 15/16] Add room detail view Needs Synapse v1.14.0 or later Change-Id: I6e3956a1e02fad5ba2f847458cd184af6aaedef0 --- README.md | 2 +- src/App.js | 4 +- src/components/rooms.js | 113 ++++++++++++++++++++++++++++++++++++++-- src/i18n/de.js | 37 ++++++++++++- src/i18n/en.js | 32 ++++++++++++ 5 files changed, 180 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5e5c84b..4bae8a4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This project is built using [react-admin](https://marmelab.com/react-admin/). -It needs at least Synapse v1.13.0 for all functions to work as expected! +It needs at least Synapse v1.14.0 for all functions to work as expected! ## Step-By-Step install: diff --git a/src/App.js b/src/App.js index f943e3f..b3c40c3 100644 --- a/src/App.js +++ b/src/App.js @@ -4,7 +4,7 @@ import polyglotI18nProvider from "ra-i18n-polyglot"; import authProvider from "./synapse/authProvider"; import dataProvider from "./synapse/dataProvider"; import { UserList, UserCreate, UserEdit } from "./components/users"; -import { RoomList } from "./components/rooms"; +import { RoomList, RoomShow } from "./components/rooms"; import LoginPage from "./components/LoginPage"; import UserIcon from "@material-ui/icons/Group"; import { ViewListIcon as RoomIcon } from "@material-ui/icons/ViewList"; @@ -35,7 +35,7 @@ const App = () => ( edit={UserEdit} icon={UserIcon} /> - + diff --git a/src/components/rooms.js b/src/components/rooms.js index 4c598b9..fb30fa7 100644 --- a/src/components/rooms.js +++ b/src/components/rooms.js @@ -1,16 +1,23 @@ import React from "react"; import { + BooleanField, Datagrid, List, - TextField, Pagination, - BooleanField, + SelectField, + Show, + Tab, + TabbedShowLayout, + TextField, useTranslate, } from "react-admin"; import get from "lodash/get"; import { Tooltip, Typography } from "@material-ui/core"; import HttpsIcon from "@material-ui/icons/Https"; import NoEncryptionIcon from "@material-ui/icons/NoEncryption"; +import PageviewIcon from "@material-ui/icons/Pageview"; +import ViewListIcon from "@material-ui/icons/ViewList"; +import VisibilityIcon from "@material-ui/icons/Visibility"; const RoomPagination = props => ( @@ -48,7 +55,7 @@ export const RoomList = props => ( pagination={} sort={{ field: "name", order: "ASC" }} > - + ( ); + +const RoomTitle = ({ record }) => { + const translate = useTranslate(); + var name = "" + if (record) { + name = record.name !== "" ? record.name : record.id + } + + return ( + + {translate("resources.rooms.name", 1)} {name} + + ); +}; + +export const RoomShow = props => { + const translate = useTranslate(); + return ( + }> + + }> + + + + + + + } + path="detail" + > + + + + + + + + } + path="permission" + > + + + + + + + + + ); +}; diff --git a/src/i18n/de.js b/src/i18n/de.js index cc75b68..560e310 100644 --- a/src/i18n/de.js +++ b/src/i18n/de.js @@ -15,6 +15,15 @@ export default { invalid_user_id: "Muss eine vollständige Matrix Benutzer-ID sein, z.B. @benutzer_id:homeserver", }, + rooms: { + details: "Raumdetails", + tabs: { + basic: "Allgemein", + members: "Mitglieder", + detail: "Details", + permission: "Berechtigungen", + }, + }, }, resources: { users: { @@ -58,12 +67,36 @@ export default { name: "Name", canonical_alias: "Alias", joined_members: "Mitglieder", - joined_local_members: "lokale Mitglieder", + joined_local_members: "Lokale Mitglieder", state_events: "Ereignisse", version: "Version", is_encrypted: "Verschlüsselt", - federatable: "Fö­de­riert", + encryption: "Verschlüsselungs-Algorithmus", + federatable: "Fö­de­rierbar", public: "Öffentlich", + creator: "Ersteller", + join_rules: "Beitrittsregeln", + guest_access: "Gastzugriff", + history_visibility: "Historie-Sichtbarkeit", + }, + enums: { + join_rules: { + public: "Öffentlich", + knock: "Auf Anfrage", + invite: "Nur auf Einladung", + private: "Privat", + }, + guest_access: { + can_join: "Gäste können beitreten", + forbidden: "Gäste können nicht beitreten", + }, + history_visibility: { + invited: "Ab Einladung", + joined: "Ab Beitritt", + shared: "Ab Setzen der Einstellung", + world_readable: "Jeder", + }, + unencrypted: "Nicht verschlüsselt", }, }, connections: { diff --git a/src/i18n/en.js b/src/i18n/en.js index 3c0fd7c..12ba1ae 100644 --- a/src/i18n/en.js +++ b/src/i18n/en.js @@ -14,6 +14,14 @@ export default { invalid_user_id: "Must be a fully qualified Matrix user-id, e.g. @user_id:homeserver", }, + rooms: { + tabs: { + basic: "Basic", + members: "Members", + detail: "Details", + permission: "Permissions", + }, + }, }, resources: { users: { @@ -61,8 +69,32 @@ export default { state_events: "State events", version: "Version", is_encrypted: "Encrypted", + encryption: "Encryption", federatable: "Federatable", public: "Public", + creator: "Creator", + join_rules: "Join rules", + guest_access: "Guest access", + history_visibility: "History visibility", + }, + enums: { + join_rules: { + public: "Public", + knock: "Knock", + invite: "Invite", + private: "Private", + }, + guest_access: { + can_join: "Guests can join", + forbidden: "Guests can not join", + }, + history_visibility: { + invited: "Since invited", + joined: "Since joined", + shared: "Since shared", + world_readable: "Anyone", + }, + unencrypted: "Unencrypted", }, }, connections: { From ff59ee4c2e888f5d2d75ad3be93c326864b0c260 Mon Sep 17 00:00:00 2001 From: Michael Albert Date: Fri, 3 Jul 2020 22:28:19 +0200 Subject: [PATCH 16/16] Hide some room list information by default Change-Id: Ic6fbf0d941d2ffcc87fb5b7793517b96792ce16d --- src/components/rooms.js | 105 +++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 28 deletions(-) diff --git a/src/components/rooms.js b/src/components/rooms.js index fb30fa7..4a8a4c9 100644 --- a/src/components/rooms.js +++ b/src/components/rooms.js @@ -1,7 +1,9 @@ import React from "react"; +import { connect } from "react-redux"; import { BooleanField, Datagrid, + Filter, List, Pagination, SelectField, @@ -12,7 +14,7 @@ import { useTranslate, } from "react-admin"; import get from "lodash/get"; -import { Tooltip, Typography } from "@material-ui/core"; +import { Tooltip, Typography, Chip } from "@material-ui/core"; import HttpsIcon from "@material-ui/icons/Https"; import NoEncryptionIcon from "@material-ui/icons/NoEncryption"; import PageviewIcon from "@material-ui/icons/Pageview"; @@ -49,36 +51,11 @@ const EncryptionField = ({ source, record = {}, emptyText }) => { ); }; -export const RoomList = props => ( - } - sort={{ field: "name", order: "ASC" }} - > - - } - /> - - - - - - - - - - - -); - const RoomTitle = ({ record }) => { const translate = useTranslate(); - var name = "" + var name = ""; if (record) { - name = record.name !== "" ? record.name : record.id + name = record.name !== "" ? record.name : record.id; } return ( @@ -173,3 +150,75 @@ export const RoomShow = props => { ); }; +const RoomFilter = ({ ...props }) => { + const translate = useTranslate(); + return ( + + + + + + + ); +}; + +const FilterableRoomList = ({ ...props }) => { + const filter = props.roomFilters; + const localMembersFilter = + filter && filter.joined_local_members ? true : false; + const stateEventsFilter = filter && filter.state_events ? true : false; + const versionFilter = filter && filter.version ? true : false; + const federateableFilter = filter && filter.federatable ? true : false; + + return ( + } + sort={{ field: "name", order: "ASC" }} + filters={} + > + + } + /> + + + {localMembersFilter && } + {stateEventsFilter && } + {versionFilter && } + {federateableFilter && } + + + + ); +}; + +function mapStateToProps(state) { + return { + roomFilters: state.admin.resources.rooms.list.params.displayedFilters, + }; +} + +export const RoomList = connect(mapStateToProps)(FilterableRoomList);