From 70c12955f127ab59fde5bb5e332366fb12a247b2 Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 09:58:43 +0200 Subject: [PATCH 1/6] Add federated-authorization example A self-contained demo of federated authentication with centralized fine-grained authorization in SpiceDB: users log in through different identity providers (Keycloak OIDC and GitHub OAuth), each external account binds to a canonical internal user, and a single SpiceDB instance enforces document access control across all of them. Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- README.md | 1 + federated-authorization/.env.example | 33 + federated-authorization/.gitignore | 12 + federated-authorization/Dockerfile | 25 + federated-authorization/README.md | 259 ++++++ federated-authorization/app.py | 738 ++++++++++++++++++ .../data/documents/.gitkeep | 0 federated-authorization/docker-compose.yml | 78 ++ .../keycloak/realm-export.json | 81 ++ federated-authorization/requirements.txt | 13 + federated-authorization/spicedb/schema.zed | 19 + federated-authorization/static/style.css | 165 ++++ federated-authorization/templates/base.html | 36 + .../templates/dashboard.html | 29 + .../templates/document_new.html | 24 + .../templates/document_view.html | 99 +++ federated-authorization/templates/error.html | 9 + federated-authorization/templates/login.html | 54 ++ 18 files changed, 1675 insertions(+) create mode 100644 federated-authorization/.env.example create mode 100644 federated-authorization/.gitignore create mode 100644 federated-authorization/Dockerfile create mode 100644 federated-authorization/README.md create mode 100644 federated-authorization/app.py create mode 100644 federated-authorization/data/documents/.gitkeep create mode 100644 federated-authorization/docker-compose.yml create mode 100644 federated-authorization/keycloak/realm-export.json create mode 100644 federated-authorization/requirements.txt create mode 100644 federated-authorization/spicedb/schema.zed create mode 100644 federated-authorization/static/style.css create mode 100644 federated-authorization/templates/base.html create mode 100644 federated-authorization/templates/dashboard.html create mode 100644 federated-authorization/templates/document_new.html create mode 100644 federated-authorization/templates/document_view.html create mode 100644 federated-authorization/templates/error.html create mode 100644 federated-authorization/templates/login.html diff --git a/README.md b/README.md index a4fbdfb..7c8e716 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Examples in this repository include: - How to set up SpiceDB with tracing: see [tracing](./tracing) - How to invoke SpiceDB as a library: see [library](./spicedb-as-library) - How to run SpiceDB in a Kubernetes cluster: see [kubernetes](./kubernetes) +- How to federate authorization across multiple identity providers: see [federated-authorization](./federated-authorization) - CI/CD Workflows Have questions? Join our [Discord]. diff --git a/federated-authorization/.env.example b/federated-authorization/.env.example new file mode 100644 index 0000000..7dfc8f0 --- /dev/null +++ b/federated-authorization/.env.example @@ -0,0 +1,33 @@ +# SpiceDB +SPICEDB_ENDPOINT=spicedb:50051 +SPICEDB_PRESHARED_KEY=demo-token-do-not-use-in-prod + +# Keycloak (self-hosted, defaults match docker-compose) +# +# Two separate addresses are required due to Docker networking: +# +# KEYCLOAK_ISSUER — container-network address for server-to-server calls: +# token exchange, JWKS fetch, userinfo endpoint. The hostname 'keycloak' +# is only resolvable from inside the Docker network (i.e. from the app +# container), not from the user's browser on the host. +KEYCLOAK_ISSUER=http://keycloak:8080/realms/org-a +# +# KEYCLOAK_PUBLIC_ISSUER — host/browser-facing address used only to build +# the authorization redirect URL that the user's browser is sent to. +# 'localhost:8080' is the port Keycloak exposes to the host; the app +# container itself cannot reach Keycloak via 'localhost' (that resolves +# to the container's own loopback, not the Keycloak container). +KEYCLOAK_PUBLIC_ISSUER=http://localhost:8080/realms/org-a +# +KEYCLOAK_CLIENT_ID=federated-authz-demo +KEYCLOAK_CLIENT_SECRET=federated-authz-demo-secret + +# GitHub OAuth (register at github.com/settings/developers) +# Homepage URL: http://localhost:8000 +# Authorization callback URL: http://localhost:8000/auth/github/callback +GITHUB_CLIENT_ID=your_github_client_id_here +GITHUB_CLIENT_SECRET=your_github_client_secret_here + +# App +SESSION_SECRET=change-me-in-production-use-a-long-random-string +APP_BASE_URL=http://localhost:8000 diff --git a/federated-authorization/.gitignore b/federated-authorization/.gitignore new file mode 100644 index 0000000..f8bde4a --- /dev/null +++ b/federated-authorization/.gitignore @@ -0,0 +1,12 @@ +.env +__pycache__/ +*.py[cod] +*.db +*.sqlite +data/documents/* +!data/documents/.gitkeep +*.egg-info/ +dist/ +build/ +.venv/ +venv/ diff --git a/federated-authorization/Dockerfile b/federated-authorization/Dockerfile new file mode 100644 index 0000000..80f845b --- /dev/null +++ b/federated-authorization/Dockerfile @@ -0,0 +1,25 @@ +FROM python:3.11-slim + +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcc \ + && rm -rf /var/lib/apt/lists/* + +COPY requirements.txt . +RUN pip3 install --no-cache-dir -r requirements.txt + +COPY . . + +# Runtime directories (overridden by volume mounts in compose) +RUN mkdir -p /data/documents + +ENV DB_PATH=/data/app.db +ENV DOCUMENTS_DIR=/data/documents +# Stream print() output straight to the container logs (no stdout buffering) +ENV PYTHONUNBUFFERED=1 + +EXPOSE 8000 + +CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000", "--log-level", "info"] diff --git a/federated-authorization/README.md b/federated-authorization/README.md new file mode 100644 index 0000000..1dc1859 --- /dev/null +++ b/federated-authorization/README.md @@ -0,0 +1,259 @@ +# Federated AuthZ Demo + +A self-contained demo proving **federated authentication + centralized fine-grained authorization** using SpiceDB. + +Different organizations use different identity providers, but a single SpiceDB instance enforces fine-grained document access control across all of them — and users from different IdPs can share resources with each other. + +--- + +## Architecture + +``` +┌─────────────────────────────────────────────────────────────┐ +│ Enterprise AuthZ Layer │ +│ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ +│ │ Keycloak │ │ GitHub │ │ SpiceDB │ │ +│ │ (Org A) │ │ OAuth │ │ (AuthZ) │ │ +│ │ │ │ (Org B) │ │ │ │ +│ │ alice │ │ bob (any │ │ Relationships│ │ +│ │ carol │ │ GH account) │ │ + Schema │ │ +│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ +│ │ │ │ │ +│ └──────────┬────────┘ │ │ +│ │ │ │ +│ ┌─────▼────────────────────────────▼──────┐ │ +│ │ FastAPI App (Python) │ │ +│ │ │ │ +│ │ 1. OAuth/OIDC callback → extract sub │ │ +│ │ 2. Resolve/create internal user UUID │ │ +│ │ 3. All authz checks → SpiceDB only │ │ +│ └─────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────────────────┘ +``` + +### The Federated Identity Pattern + +**Key insight**: Every IdP gets its own SpiceDB object type, bound to a canonical internal `user` object. Document permissions are always granted to `user:`, never to raw IdP subjects. This means a Keycloak user and a GitHub user can share resources without either IdP knowing about the other. + +**Login flow (both providers):** +1. User completes OAuth/OIDC flow → app receives an IdP-specific subject ID +2. App checks SpiceDB: does `keycloak_account:#bound_to` (or `github_account:#bound_to`) exist? +3. If yes → use the existing `user:` from that relationship +4. If no → mint a new UUID, write the binding to SpiceDB, store profile in SQLite +5. Session cookie stores the internal `user:` — all subsequent checks use only this + +**SpiceDB schema:** +``` +definition user {} + +definition keycloak_account { + relation bound_to: user +} + +definition github_account { + relation bound_to: user +} + +definition document { + relation owner: user + relation editor: user + relation viewer: user + + permission edit = editor + owner + permission view = viewer + edit + permission share = owner +} +``` + +--- + +## Prerequisites + +- Docker and Docker Compose +- A GitHub account (to test cross-IdP sharing) +- A GitHub OAuth App (instructions below) + +--- + +## Step 1: Register a GitHub OAuth App + +1. Go to [github.com/settings/developers](https://github.com/settings/developers) +2. Click **OAuth Apps** → **New OAuth App** +3. Fill in: + - **Application name**: `FedAuthZ Demo` (or anything) + - **Homepage URL**: `http://localhost:8000` + - **Authorization callback URL**: `http://localhost:8000/auth/github/callback` +4. Click **Register application** +5. Note the **Client ID** +6. Click **Generate a new client secret** and note the **Client Secret** + +--- + +## Step 2: Configure Environment + +Copy `.env.example` to `.env` and fill in your GitHub credentials: + +```bash +cp .env.example .env +``` + +Edit `.env`: +```env +GITHUB_CLIENT_ID=your_actual_github_client_id +GITHUB_CLIENT_SECRET=your_actual_github_client_secret +SESSION_SECRET=some-long-random-string-here +``` + +The Keycloak values are pre-configured for local development and do not normally need +to change. Two separate addresses exist because of Docker networking: + +| Variable | Default | Used for | +|---|---|---| +| `KEYCLOAK_ISSUER` | `http://keycloak:8080/realms/org-a` | Server-to-server: token exchange, JWKS fetch, userinfo. Resolved from inside the app container via the Docker bridge network. | +| `KEYCLOAK_PUBLIC_ISSUER` | `http://localhost:8080/realms/org-a` | Browser-facing: the authorization redirect URL sent to the user's browser. The host port `8080` is what Keycloak exposes to the outside world. | + +The hostname `keycloak` is only resolvable from inside the Docker network; the user's +browser on the host cannot reach it. Conversely, `localhost:8080` refers to the host's +own loopback inside a container, not to the Keycloak container, so the app cannot use it +for server-to-server calls. + +--- + +## Step 3: Start the Stack + +```bash +docker-compose up --build +``` + +Wait for all services to be healthy. Keycloak takes ~60 seconds to start the first time. + +- **App**: http://localhost:8000 +- **Keycloak Admin**: http://localhost:8080 (admin / admin) +- **SpiceDB HTTP**: http://localhost:8090 + +--- + +## Demo Walkthrough + +### Session 1 — Alice (Keycloak / Org A) + +Open http://localhost:8000 in a browser. + +1. Click **Log in with Keycloak (Org A)** +2. Log in as `alice@keycloak.com` / `alice123` +3. You are redirected to the dashboard — no documents yet + +**What SpiceDB recorded:** +``` +keycloak_account:#bound_to@user: +``` + +4. Click **+ New Document**, give it a title and some content, click **Create Document** + +**What SpiceDB recorded:** +``` +document:#owner@user: +``` + +5. Note the document URL: `http://localhost:8000/documents/` + +### Session 2 — Bob (GitHub / Org B) + +Open a **private/incognito browser window** and go to http://localhost:8000. + +1. Click **Log in with GitHub (Org B)** +2. Authorize the app with your GitHub account +3. You land on the dashboard — no documents visible (correct!) + +**What SpiceDB recorded:** +``` +github_account:#bound_to@user: +``` + +4. Try visiting Alice's document URL directly → you get **403 Access Denied** + SpiceDB's CheckPermission returns `PERMISSIONSHIP_NO_PERMISSION` + +### Session 1 — Alice shares with Bob + +Back in Alice's browser: + +5. Open the document, scroll to **Share This Document** +6. Bob's GitHub account appears in the dropdown (fetched from SQLite `users` table — for display only) +7. Select Bob, choose **Viewer**, click **Share** + +**What SpiceDB recorded:** +``` +document:#viewer@user: +``` + +### Session 2 — Bob accesses the shared document + +Back in Bob's browser: + +8. Refresh the dashboard — Alice's document now appears (LookupResources finds it) +9. Click the document — content is visible (CheckPermission: `view` → `PERMISSIONSHIP_HAS_PERMISSION`) +10. No edit form or Share section visible (Bob only has `viewer` permission) + +### Verify Revocation + +Alice can click **Revoke** next to Bob's entry. Bob's document disappears from his dashboard immediately on the next request — SpiceDB is the live source of truth. + +--- + +## SpiceDB Relationships Written During Walkthrough + +| Step | Relationship written | +|------|---------------------| +| Alice first login | `keycloak_account:#bound_to@user:` | +| Bob first login | `github_account:#bound_to@user:` | +| Alice creates document | `document:#owner@user:` | +| Alice shares with Bob (viewer) | `document:#viewer@user:` | +| Alice shares with Bob (editor) | `document:#editor@user:` | +| Alice revokes Bob's access | (relationship deleted) | + +--- + +## SpiceDB API Calls Made by the App + +| Operation | SpiceDB API | Used for | +|-----------|-------------|----------| +| First login (new user) | `WriteRelationships` | Record IdP→user binding | +| Login (returning user) | `ReadRelationships` | Look up existing binding | +| Dashboard load | `LookupResources` | Find all viewable docs | +| Document open | `CheckPermission(view)` | Gate document access | +| Edit form display | `CheckPermission(edit)` | Show/hide edit UI | +| Share section display | `CheckPermission(share)` | Show/hide share UI | +| Save edit | `CheckPermission(edit)` | Server-side auth check | +| Share action | `WriteRelationships` | Grant access | +| Revoke action | `DeleteRelationships` | Revoke access | +| Share page sharees | `ReadRelationships` | List current access | + +--- + +## File Layout + +``` +federated-authz-demo/ +├── app.py # FastAPI application +├── Dockerfile +├── docker-compose.yml +├── requirements.txt +├── .env.example +├── .gitignore +├── spicedb/ +│ └── schema.zed # SpiceDB schema (source of truth) +├── keycloak/ +│ └── realm-export.json # Pre-seeded Org A realm with alice + carol +├── templates/ # Jinja2 server-rendered HTML +│ ├── base.html +│ ├── login.html +│ ├── dashboard.html +│ ├── document_new.html +│ ├── document_view.html +│ └── error.html +├── static/ +│ └── style.css +└── data/ + └── documents/ # Document files (volume-mounted) +``` diff --git a/federated-authorization/app.py b/federated-authorization/app.py new file mode 100644 index 0000000..7b78da5 --- /dev/null +++ b/federated-authorization/app.py @@ -0,0 +1,738 @@ +""" +Federated AuthZ Demo +==================== +FastAPI application demonstrating federated identity (Keycloak + GitHub OAuth) +with centralized fine-grained authorization via SpiceDB. +""" +import os +import uuid +import json +import sqlite3 +from pathlib import Path +from datetime import datetime +from contextlib import asynccontextmanager +from typing import Optional + +import grpc +import httpx +from authlib.integrations.starlette_client import OAuth +from fastapi import FastAPI, Request, Form, HTTPException +from fastapi.responses import HTMLResponse, RedirectResponse +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates +from starlette.middleware.sessions import SessionMiddleware +from dotenv import load_dotenv + +from authzed.api.v1 import ( + SyncClient as Client, + WriteRelationshipsRequest, + ReadRelationshipsRequest, + DeleteRelationshipsRequest, + CheckPermissionRequest, + CheckPermissionResponse, + LookupResourcesRequest, + LookupSubjectsRequest, + Relationship, + RelationshipUpdate, + ObjectReference, + SubjectReference, + RelationshipFilter, + SubjectFilter, + WriteSchemaRequest, + Consistency, + ZedToken, +) + +load_dotenv() + +# --------------------------------------------------------------------------- +# Config +# --------------------------------------------------------------------------- +SPICEDB_ENDPOINT = os.environ.get("SPICEDB_ENDPOINT", "spicedb:50051") +SPICEDB_KEY = os.environ.get("SPICEDB_PRESHARED_KEY", "demo-token-do-not-use-in-prod") +KEYCLOAK_ISSUER = os.environ.get("KEYCLOAK_ISSUER", "http://keycloak:8080/realms/org-a") +KEYCLOAK_PUBLIC_ISSUER = os.environ.get("KEYCLOAK_PUBLIC_ISSUER", "http://localhost:8080/realms/org-a") +KEYCLOAK_CLIENT_ID = os.environ.get("KEYCLOAK_CLIENT_ID", "federated-authz-demo") +KEYCLOAK_CLIENT_SECRET = os.environ.get("KEYCLOAK_CLIENT_SECRET", "federated-authz-demo-secret") +GITHUB_CLIENT_ID = os.environ.get("GITHUB_CLIENT_ID", "") +GITHUB_CLIENT_SECRET = os.environ.get("GITHUB_CLIENT_SECRET", "") +SESSION_SECRET = os.environ.get("SESSION_SECRET", "dev-session-secret-change-in-prod") +APP_BASE_URL = os.environ.get("APP_BASE_URL", "http://localhost:8000") + +DB_PATH = os.environ.get("DB_PATH", "/data/app.db") +DOCUMENTS_DIR = Path(os.environ.get("DOCUMENTS_DIR", "/data/documents")) + +SCHEMA_PATH = Path(__file__).parent / "spicedb" / "schema.zed" + +# --------------------------------------------------------------------------- +# SpiceDB client (module-level singleton set on startup) +# --------------------------------------------------------------------------- + +class _BearerTokenInterceptor( + grpc.UnaryUnaryClientInterceptor, grpc.UnaryStreamClientInterceptor +): + """Attaches the SpiceDB preshared key as an ``authorization`` header. + + gRPC refuses to attach access-token *call credentials* to an insecure + channel, and the ``local_channel_credentials`` workaround only permits + loopback peers — neither works when the app reaches SpiceDB over the + Docker network. Sending the token as request metadata on a plain insecure + channel does, which is what this interceptor does. (Insecure transport is + fine for this local demo; use TLS in production.) + """ + + def __init__(self, token: str): + self._extra_metadata = [("authorization", f"Bearer {token}")] + + def _with_token(self, details): + metadata = list(details.metadata or []) + self._extra_metadata + return details._replace(metadata=metadata) + + def intercept_unary_unary(self, continuation, client_call_details, request): + return continuation(self._with_token(client_call_details), request) + + def intercept_unary_stream(self, continuation, client_call_details, request): + return continuation(self._with_token(client_call_details), request) + + +def make_spicedb_client(endpoint: str, token: str) -> Client: + """Build a synchronous SpiceDB client over an insecure channel.""" + channel = grpc.intercept_channel( + grpc.insecure_channel(endpoint), _BearerTokenInterceptor(token) + ) + client = Client.__new__(Client) + for stub in Client.__bases__: + stub.__init__(client, channel) + return client + + +_spicedb_client: Optional[Client] = None + + +def get_spicedb() -> Client: + if _spicedb_client is None: + raise RuntimeError("SpiceDB client not initialized") + return _spicedb_client + + +# --------------------------------------------------------------------------- +# Database helpers +# --------------------------------------------------------------------------- +def get_db() -> sqlite3.Connection: + conn = sqlite3.connect(DB_PATH) + conn.row_factory = sqlite3.Row + return conn + + +def init_db(): + Path(DB_PATH).parent.mkdir(parents=True, exist_ok=True) + DOCUMENTS_DIR.mkdir(parents=True, exist_ok=True) + conn = get_db() + conn.executescript(""" + CREATE TABLE IF NOT EXISTS users ( + id TEXT PRIMARY KEY, + email TEXT, + display_name TEXT, + provider TEXT, + created_at TEXT + ); + CREATE TABLE IF NOT EXISTS documents ( + id TEXT PRIMARY KEY, + title TEXT NOT NULL, + filename TEXT NOT NULL, + owner_user_id TEXT NOT NULL, + created_at TEXT NOT NULL + ); + """) + conn.commit() + conn.close() + + +# --------------------------------------------------------------------------- +# SpiceDB helpers +# The authzed Client exposes RPC methods directly; the preshared key is +# injected as request metadata by _BearerTokenInterceptor (see above). +# --------------------------------------------------------------------------- + +def _obj(object_type: str, object_id: str) -> ObjectReference: + return ObjectReference(object_type=object_type, object_id=object_id) + + +def _subj(object_type: str, object_id: str) -> SubjectReference: + return SubjectReference(object=_obj(object_type, object_id)) + + +def _consistency(zedtoken: Optional[str]) -> Consistency: + """Consistency for reads. + + With a ZedToken (returned by a prior write), request ``at_least_as_fresh`` + so the caller reliably sees its own writes without forcing a fully + consistent (slower) read. Without one, fall back to ``minimize_latency``. + """ + if zedtoken: + return Consistency(at_least_as_fresh=ZedToken(token=zedtoken)) + return Consistency(minimize_latency=True) + + +def write_relationship(client: Client, resource_type: str, resource_id: str, + relation: str, subject_type: str, subject_id: str) -> str: + """Write a relationship; return the ZedToken of the write for read-your-writes.""" + resp = client.WriteRelationships(WriteRelationshipsRequest( + updates=[RelationshipUpdate( + operation=RelationshipUpdate.OPERATION_TOUCH, + relationship=Relationship( + resource=_obj(resource_type, resource_id), + relation=relation, + subject=_subj(subject_type, subject_id), + ), + )] + )) + return resp.written_at.token + + +def delete_relationship(client: Client, resource_type: str, resource_id: str, + relation: str, subject_type: str, subject_id: str) -> str: + """Delete a relationship; return the ZedToken of the delete for read-your-writes.""" + resp = client.DeleteRelationships(DeleteRelationshipsRequest( + relationship_filter=RelationshipFilter( + resource_type=resource_type, + optional_resource_id=resource_id, + optional_relation=relation, + optional_subject_filter=SubjectFilter( + subject_type=subject_type, + optional_subject_id=subject_id, + ), + ) + )) + return resp.deleted_at.token + + +def check_permission(client: Client, resource_type: str, resource_id: str, + permission: str, subject_id: str, + zedtoken: Optional[str] = None) -> bool: + resp = client.CheckPermission(CheckPermissionRequest( + resource=_obj(resource_type, resource_id), + permission=permission, + subject=_subj("user", subject_id), + consistency=_consistency(zedtoken), + )) + return resp.permissionship == CheckPermissionResponse.PERMISSIONSHIP_HAS_PERMISSION + + +def lookup_viewable_documents(client: Client, user_id: str, + zedtoken: Optional[str] = None) -> list[str]: + doc_ids = [] + try: + for resp in client.LookupResources(LookupResourcesRequest( + resource_object_type="document", + permission="view", + subject=_subj("user", user_id), + consistency=_consistency(zedtoken), + )): + doc_ids.append(resp.resource_object_id) + except Exception: + pass + return doc_ids + + +def find_idp_binding(client: Client, idp_type: str, idp_subject: str) -> Optional[str]: + """Return the internal user UUID bound to this IdP account, or None. + + Identity resolution across logins depends on this lookup, so errors are + NOT swallowed: treating a transient SpiceDB failure as "no binding" would + mint a fresh user UUID on every login and orphan the previous identity's + documents. An account with no binding simply yields no subjects, which + returns None without raising. + + This resolves which internal user an external IdP account maps to. We use + LookupSubjects on the bound_to relation rather than the ReadRelationships + escape hatch: it fits the "who is the subject of this relation" query + shape and, unlike a raw ReadRelationships datastore read, benefits from + SpiceDB's computed-permission cache. + """ + for resp in client.LookupSubjects(LookupSubjectsRequest( + resource=_obj(idp_type, idp_subject), + permission="bound_to", + subject_object_type="user", + )): + return resp.subject.subject_object_id + return None + + +def read_document_relationships(client: Client, doc_id: str, + zedtoken: Optional[str] = None) -> list[dict]: + results = [] + try: + # Deliberate use of the ReadRelationships escape hatch. This is NOT an + # access decision (those go through check_permission). The sharing UI + # needs the *specific grant relation* — viewer vs editor — so it can + # display and individually revoke each grant. LookupSubjects on the + # "view" permission would flatten that distinction away and also pull + # in the owner, so reading the raw grants is the right tool here. + for resp in client.ReadRelationships(ReadRelationshipsRequest( + relationship_filter=RelationshipFilter( + resource_type="document", + optional_resource_id=doc_id, + ), + consistency=_consistency(zedtoken), + )): + rel = resp.relationship + results.append({ + "relation": rel.relation, + "subject_type": rel.subject.object.object_type, + "subject_id": rel.subject.object.object_id, + }) + except Exception: + pass + return results + + +# --------------------------------------------------------------------------- +# OAuth setup (Authlib) +# --------------------------------------------------------------------------- +oauth = OAuth() + +oauth.register( + name="keycloak", + client_id=KEYCLOAK_CLIENT_ID, + client_secret=KEYCLOAK_CLIENT_SECRET, + # Browser-facing: the user's browser is redirected here to log in. + # Must use the host-reachable address (localhost), not the container-network name. + authorize_url=f"{KEYCLOAK_PUBLIC_ISSUER}/protocol/openid-connect/auth", + # Server-to-server: the app container calls these directly; must use the + # container-network name ('keycloak'), not localhost, which is unreachable + # from inside the container. + access_token_url=f"{KEYCLOAK_ISSUER}/protocol/openid-connect/token", + # jwks_uri and userinfo_endpoint are stored as server_metadata (Authlib + # treats unrecognised register() kwargs as static server metadata), so + # parse_id_token / fetch_jwk_set can find them without an OIDC discovery + # HTTP request, and they point at the internal container-network address. + jwks_uri=f"{KEYCLOAK_ISSUER}/protocol/openid-connect/certs", + userinfo_endpoint=f"{KEYCLOAK_ISSUER}/protocol/openid-connect/userinfo", + client_kwargs={"scope": "openid email profile"}, +) + +oauth.register( + name="github", + client_id=GITHUB_CLIENT_ID, + client_secret=GITHUB_CLIENT_SECRET, + authorize_url="https://github.com/login/oauth/authorize", + access_token_url="https://github.com/login/oauth/access_token", + client_kwargs={"scope": "read:user user:email"}, +) + + +# --------------------------------------------------------------------------- +# App lifespan +# --------------------------------------------------------------------------- +@asynccontextmanager +async def lifespan(app: FastAPI): + global _spicedb_client + init_db() + + # Connect to SpiceDB with insecure channel + bearer token + _spicedb_client = make_spicedb_client(SPICEDB_ENDPOINT, SPICEDB_KEY) + + # Write schema on startup (idempotent — safe to re-run) + schema = SCHEMA_PATH.read_text() + try: + _spicedb_client.WriteSchema(WriteSchemaRequest(schema=schema)) + print("[startup] SpiceDB schema written.") + except Exception as e: + print(f"[startup] Schema write warning: {e}") + + yield + + +# --------------------------------------------------------------------------- +# FastAPI app +# --------------------------------------------------------------------------- +app = FastAPI(lifespan=lifespan) +app.add_middleware(SessionMiddleware, secret_key=SESSION_SECRET, max_age=86400) + +app.mount("/static", StaticFiles(directory=str(Path(__file__).parent / "static")), name="static") +templates = Jinja2Templates(directory=str(Path(__file__).parent / "templates")) + + +# --------------------------------------------------------------------------- +# Auth helpers +# --------------------------------------------------------------------------- +def current_user(request: Request) -> Optional[dict]: + return request.session.get("user") + + + +def get_or_create_user(idp_type: str, idp_subject: str, email: str, display_name: str, provider: str) -> str: + """ + Resolve or create an internal user, writing the SpiceDB IdP binding. + Returns the internal user UUID (canonical identity across all IdPs). + """ + client = get_spicedb() + + existing = find_idp_binding(client, idp_type, idp_subject) + if existing: + return existing + + user_id = str(uuid.uuid4()) + conn = get_db() + conn.execute( + "INSERT OR IGNORE INTO users (id, email, display_name, provider, created_at) VALUES (?, ?, ?, ?, ?)", + (user_id, email, display_name, provider, datetime.utcnow().isoformat()), + ) + conn.commit() + conn.close() + + write_relationship(client, idp_type, idp_subject, "bound_to", "user", user_id) + + return user_id + + +# --------------------------------------------------------------------------- +# Routes: Landing page +# --------------------------------------------------------------------------- +@app.get("/", response_class=HTMLResponse) +async def index(request: Request): + user = current_user(request) + if not user: + return templates.TemplateResponse("login.html", {"request": request}) + + client = get_spicedb() + doc_ids = lookup_viewable_documents(client, user["id"], request.session.get("zedtoken")) + + db = get_db() + docs = [] + if doc_ids: + placeholders = ",".join("?" * len(doc_ids)) + docs = db.execute( + f"SELECT * FROM documents WHERE id IN ({placeholders})", doc_ids + ).fetchall() + db.close() + + return templates.TemplateResponse("dashboard.html", { + "request": request, + "user": user, + "documents": docs, + }) + + +# --------------------------------------------------------------------------- +# Routes: Keycloak OAuth +# --------------------------------------------------------------------------- +@app.get("/auth/keycloak/login") +async def keycloak_login(request: Request): + redirect_uri = f"{APP_BASE_URL}/auth/keycloak/callback" + return await oauth.keycloak.authorize_redirect(request, redirect_uri) + + +@app.get("/auth/keycloak/callback") +async def keycloak_callback(request: Request): + try: + token = await oauth.keycloak.authorize_access_token(request) + except Exception as e: + return templates.TemplateResponse("error.html", { + "request": request, + "error": f"Keycloak login failed: {e}", + }) + + # Authlib populates userinfo from the OIDC userinfo endpoint automatically + userinfo = token.get("userinfo") or {} + + # Fall back to manually decoding the id_token JWT payload if needed + if not userinfo.get("sub"): + import base64 + parts = token.get("id_token", "..").split(".") + if len(parts) >= 2: + padded = parts[1] + "=" * (4 - len(parts[1]) % 4) + userinfo = json.loads(base64.urlsafe_b64decode(padded)) + + sub = userinfo.get("sub", "unknown") + email = userinfo.get("email", f"{sub}@keycloak.org") + display_name = userinfo.get("name") or userinfo.get("preferred_username") or email + + user_id = get_or_create_user( + idp_type="keycloak_account", + idp_subject=sub, + email=email, + display_name=display_name, + provider="keycloak", + ) + + request.session["user"] = { + "id": user_id, + "email": email, + "display_name": display_name, + "provider": "Keycloak (Org A)", + } + return RedirectResponse("/", status_code=302) + + +# --------------------------------------------------------------------------- +# Routes: GitHub OAuth +# --------------------------------------------------------------------------- +@app.get("/auth/github/login") +async def github_login(request: Request): + if not GITHUB_CLIENT_ID: + return templates.TemplateResponse("error.html", { + "request": request, + "error": "GitHub OAuth is not configured. Set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in .env", + }) + redirect_uri = f"{APP_BASE_URL}/auth/github/callback" + return await oauth.github.authorize_redirect(request, redirect_uri) + + +@app.get("/auth/github/callback") +async def github_callback(request: Request): + try: + token = await oauth.github.authorize_access_token(request) + except Exception as e: + return templates.TemplateResponse("error.html", { + "request": request, + "error": f"GitHub login failed: {e}", + }) + + # Fetch GitHub user profile + async with httpx.AsyncClient() as http: + resp = await http.get( + "https://api.github.com/user", + headers={"Authorization": f"Bearer {token['access_token']}", + "Accept": "application/vnd.github+json"}, + ) + gh_user = resp.json() + + # Fetch primary email if not in profile + email = gh_user.get("email") + if not email: + email_resp = await http.get( + "https://api.github.com/user/emails", + headers={"Authorization": f"Bearer {token['access_token']}", + "Accept": "application/vnd.github+json"}, + ) + emails = email_resp.json() + primary = next((e for e in emails if e.get("primary")), None) + email = primary["email"] if primary else f"{gh_user['login']}@github.local" + + github_id = str(gh_user["id"]) + display_name = gh_user.get("name") or gh_user.get("login") + + user_id = get_or_create_user( + idp_type="github_account", + idp_subject=github_id, + email=email, + display_name=display_name, + provider="github", + ) + + request.session["user"] = { + "id": user_id, + "email": email, + "display_name": display_name, + "provider": "GitHub (Org B)", + } + return RedirectResponse("/", status_code=302) + + +# --------------------------------------------------------------------------- +# Routes: Logout +# --------------------------------------------------------------------------- +@app.get("/auth/logout") +async def logout(request: Request): + request.session.clear() + return RedirectResponse("/", status_code=302) + + +# --------------------------------------------------------------------------- +# Routes: Documents +# --------------------------------------------------------------------------- +@app.get("/documents/new", response_class=HTMLResponse) +async def new_document_form(request: Request): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + return templates.TemplateResponse("document_new.html", {"request": request, "user": user}) + + +@app.post("/documents/new") +async def create_document(request: Request, title: str = Form(...), content: str = Form(...)): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + + doc_id = str(uuid.uuid4()) + filename = f"{doc_id}.md" + filepath = DOCUMENTS_DIR / filename + + DOCUMENTS_DIR.mkdir(parents=True, exist_ok=True) + filepath.write_text(content, encoding="utf-8") + + db = get_db() + db.execute( + "INSERT INTO documents (id, title, filename, owner_user_id, created_at) VALUES (?, ?, ?, ?, ?)", + (doc_id, title, filename, user["id"], datetime.utcnow().isoformat()), + ) + db.commit() + db.close() + + # Write owner relationship to SpiceDB; remember the ZedToken so the very + # next read (the redirect below) reliably sees this write. + client = get_spicedb() + token = write_relationship(client, "document", doc_id, "owner", "user", user["id"]) + request.session["zedtoken"] = token + + return RedirectResponse(f"/documents/{doc_id}", status_code=302) + + +@app.get("/documents/{doc_id}", response_class=HTMLResponse) +async def view_document(request: Request, doc_id: str): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + + db = get_db() + doc = db.execute("SELECT * FROM documents WHERE id = ?", (doc_id,)).fetchone() + db.close() + + if not doc: + raise HTTPException(status_code=404, detail="Document not found") + + client = get_spicedb() + zedtoken = request.session.get("zedtoken") + + if not check_permission(client, "document", doc_id, "view", user["id"], zedtoken): + return templates.TemplateResponse("error.html", { + "request": request, + "error": "Access denied. You do not have permission to view this document.", + "user": user, + }, status_code=403) + + can_edit = check_permission(client, "document", doc_id, "edit", user["id"], zedtoken) + can_share = check_permission(client, "document", doc_id, "share", user["id"], zedtoken) + + content = "" + filepath = DOCUMENTS_DIR / doc["filename"] + if filepath.exists(): + content = filepath.read_text(encoding="utf-8") + + sharees = [] + if can_share: + # Read all relationships and enrich with display names + rels = read_document_relationships(client, doc_id, zedtoken) + db2 = get_db() + for rel in rels: + if rel["relation"] in ("viewer", "editor") and rel["subject_type"] == "user": + uid = rel["subject_id"] + row = db2.execute("SELECT display_name, email, provider FROM users WHERE id = ?", (uid,)).fetchone() + sharees.append({ + "user_id": uid, + "relation": rel["relation"], + "display_name": row["display_name"] if row else uid, + "email": row["email"] if row else "", + "provider": row["provider"] if row else "", + }) + db2.close() + + # All other users for the sharing dropdown. List by internal user id (the + # UUID) — NOT deduped by email. Each internal user is a distinct shareable + # identity, and its id is exactly the UUID that identity authenticates as + # and that document relationships reference. Collapsing by email would hand + # back a UUID nobody logs in as (breaking the share) and would also merge + # two legitimately-separate identities that share an email across providers. + all_users = [] + if can_share: + db3 = get_db() + rows = db3.execute( + "SELECT id, display_name, email, provider FROM users WHERE id != ? ORDER BY display_name", + (user["id"],), + ).fetchall() + db3.close() + sharee_ids = {s["user_id"] for s in sharees} + all_users = [r for r in rows if r["id"] not in sharee_ids] + + return templates.TemplateResponse("document_view.html", { + "request": request, + "user": user, + "doc": doc, + "content": content, + "can_edit": can_edit, + "can_share": can_share, + "sharees": sharees, + "all_users": all_users, + }) + + +@app.post("/documents/{doc_id}/edit") +async def edit_document(request: Request, doc_id: str, content: str = Form(...)): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + + client = get_spicedb() + if not check_permission(client, "document", doc_id, "edit", user["id"], + request.session.get("zedtoken")): + raise HTTPException(status_code=403, detail="You cannot edit this document") + + db = get_db() + doc = db.execute("SELECT * FROM documents WHERE id = ?", (doc_id,)).fetchone() + db.close() + if not doc: + raise HTTPException(status_code=404) + + filepath = DOCUMENTS_DIR / doc["filename"] + filepath.write_text(content, encoding="utf-8") + + return RedirectResponse(f"/documents/{doc_id}", status_code=302) + + +@app.post("/documents/{doc_id}/share") +async def share_document( + request: Request, + doc_id: str, + target_user_id: str = Form(...), + permission_level: str = Form(...), +): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + + client = get_spicedb() + if not check_permission(client, "document", doc_id, "share", user["id"], + request.session.get("zedtoken")): + raise HTTPException(status_code=403, detail="Only the document owner can share") + + if permission_level not in ("viewer", "editor"): + raise HTTPException(status_code=400, detail="Invalid permission level") + + # Sharing with yourself is a no-op: as owner you already have view/edit/share. + # Reject it so a redundant viewer/editor grant can't be created (and later + # "revoked" with no visible effect). + if target_user_id == user["id"]: + raise HTTPException(status_code=400, detail="You cannot share a document with yourself") + + token = write_relationship(client, "document", doc_id, permission_level, "user", target_user_id) + request.session["zedtoken"] = token + + return RedirectResponse(f"/documents/{doc_id}", status_code=302) + + +@app.post("/documents/{doc_id}/unshare") +async def unshare_document( + request: Request, + doc_id: str, + target_user_id: str = Form(...), + relation: str = Form(...), +): + user = current_user(request) + if not user: + return RedirectResponse("/", status_code=302) + + client = get_spicedb() + if not check_permission(client, "document", doc_id, "share", user["id"], + request.session.get("zedtoken")): + raise HTTPException(status_code=403, detail="Only the document owner can revoke access") + + if relation not in ("viewer", "editor"): + raise HTTPException(status_code=400, detail="Invalid relation") + + token = delete_relationship(client, "document", doc_id, relation, "user", target_user_id) + request.session["zedtoken"] = token + + return RedirectResponse(f"/documents/{doc_id}", status_code=302) diff --git a/federated-authorization/data/documents/.gitkeep b/federated-authorization/data/documents/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/federated-authorization/docker-compose.yml b/federated-authorization/docker-compose.yml new file mode 100644 index 0000000..22dd109 --- /dev/null +++ b/federated-authorization/docker-compose.yml @@ -0,0 +1,78 @@ +services: + keycloak: + image: quay.io/keycloak/keycloak:24.0 + command: start-dev --import-realm + environment: + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: admin + volumes: + - ./keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:ro + ports: + - "8080:8080" + # The Keycloak 24 image ships no curl/wget, so the healthcheck uses bash's + # built-in /dev/tcp to issue a raw HTTP request and confirm the realm is + # actually serving (200 OK), not just that the port is open. + healthcheck: + test: + - "CMD-SHELL" + - "exec 3<>/dev/tcp/localhost/8080 && printf 'GET /realms/org-a HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n' >&3 && grep -q '200 OK' <&3" + interval: 15s + timeout: 10s + retries: 10 + start_period: 40s + + spicedb: + image: authzed/spicedb:latest + command: > + serve + --grpc-preshared-key=demo-token-do-not-use-in-prod + --datastore-engine=memory + --http-enabled + ports: + - "50051:50051" # gRPC + - "8090:8080" # HTTP API (mapped to 8090 on host to avoid conflict with Keycloak) + healthcheck: + test: ["CMD", "grpc_health_probe", "-addr=:50051"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + + app: + build: . + ports: + - "8000:8000" + volumes: + - app-data:/data + environment: + # SpiceDB + SPICEDB_ENDPOINT: spicedb:50051 + SPICEDB_PRESHARED_KEY: demo-token-do-not-use-in-prod + # Keycloak — two addresses are needed because of Docker networking: + # KEYCLOAK_ISSUER is the container-network address used for server-to-server + # calls (token exchange, JWKS fetch, userinfo). Only the app container can + # resolve 'keycloak'; the user's browser cannot. + KEYCLOAK_ISSUER: http://keycloak:8080/realms/org-a + # KEYCLOAK_PUBLIC_ISSUER is the host-facing address used only to build the + # browser redirect URL for the authorization endpoint. 'localhost:8080' is + # what the host exposes, not reachable inside the app container by that name. + KEYCLOAK_PUBLIC_ISSUER: http://localhost:8080/realms/org-a + KEYCLOAK_CLIENT_ID: federated-authz-demo + KEYCLOAK_CLIENT_SECRET: federated-authz-demo-secret + # GitHub — must be supplied via .env or environment + GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-} + GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-} + # App + SESSION_SECRET: ${SESSION_SECRET:-dev-session-secret-change-in-prod} + APP_BASE_URL: http://localhost:8000 + DB_PATH: /data/app.db + DOCUMENTS_DIR: /data/documents + depends_on: + keycloak: + condition: service_healthy + spicedb: + condition: service_started + restart: on-failure + +volumes: + app-data: diff --git a/federated-authorization/keycloak/realm-export.json b/federated-authorization/keycloak/realm-export.json new file mode 100644 index 0000000..ed725cb --- /dev/null +++ b/federated-authorization/keycloak/realm-export.json @@ -0,0 +1,81 @@ +{ + "realm": "org-a", + "enabled": true, + "displayName": "Org A", + "sslRequired": "none", + "registrationAllowed": false, + "loginWithEmailAllowed": true, + "duplicateEmailsAllowed": false, + "resetPasswordAllowed": true, + "editUsernameAllowed": false, + "bruteForceProtected": false, + "clients": [ + { + "clientId": "federated-authz-demo", + "enabled": true, + "protocol": "openid-connect", + "clientAuthenticatorType": "client-secret", + "secret": "federated-authz-demo-secret", + "publicClient": false, + "standardFlowEnabled": true, + "implicitFlowEnabled": false, + "directAccessGrantsEnabled": true, + "serviceAccountsEnabled": false, + "redirectUris": [ + "http://localhost:8000/auth/keycloak/callback", + "http://app:8000/auth/keycloak/callback" + ], + "webOrigins": [ + "http://localhost:8000", + "http://app:8000" + ], + "fullScopeAllowed": true, + "defaultClientScopes": [ + "web-origins", + "profile", + "roles", + "email" + ], + "optionalClientScopes": [ + "address", + "phone", + "offline_access", + "microprofile-jwt" + ] + } + ], + "users": [ + { + "username": "alice", + "email": "alice@keycloak.com", + "emailVerified": true, + "enabled": true, + "firstName": "Alice", + "lastName": "Smith", + "credentials": [ + { + "type": "password", + "value": "alice123", + "temporary": false + } + ], + "requiredActions": [] + }, + { + "username": "carol", + "email": "carol@keycloak.com", + "emailVerified": true, + "enabled": true, + "firstName": "Carol", + "lastName": "Jones", + "credentials": [ + { + "type": "password", + "value": "carol123", + "temporary": false + } + ], + "requiredActions": [] + } + ] +} diff --git a/federated-authorization/requirements.txt b/federated-authorization/requirements.txt new file mode 100644 index 0000000..21ed4fa --- /dev/null +++ b/federated-authorization/requirements.txt @@ -0,0 +1,13 @@ +fastapi==0.115.6 +uvicorn[standard]==0.32.1 +authlib==1.4.0 +httpx==0.28.1 +authzed==0.17.0 +itsdangerous==2.2.0 +jinja2==3.1.5 +python-multipart==0.0.20 +python-dotenv==1.0.1 +starlette==0.41.3 +grpcio==1.68.1 +protobuf==5.29.3 +SQLAlchemy==2.0.36 diff --git a/federated-authorization/spicedb/schema.zed b/federated-authorization/spicedb/schema.zed new file mode 100644 index 0000000..57c5963 --- /dev/null +++ b/federated-authorization/spicedb/schema.zed @@ -0,0 +1,19 @@ +definition user {} + +definition keycloak_account { + relation bound_to: user +} + +definition github_account { + relation bound_to: user +} + +definition document { + relation owner: user + relation editor: user + relation viewer: user + + permission edit = editor + owner + permission view = viewer + edit + permission share = owner +} diff --git a/federated-authorization/static/style.css b/federated-authorization/static/style.css new file mode 100644 index 0000000..d31c212 --- /dev/null +++ b/federated-authorization/static/style.css @@ -0,0 +1,165 @@ +/* FedAuthZ Demo – minimal, clean CSS */ + +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } + +:root { + --primary: #4f46e5; + --primary-dark: #3730a3; + --keycloak: #e8590c; + --github: #24292f; + --danger: #dc2626; + --success: #16a34a; + --gray-100: #f3f4f6; + --gray-200: #e5e7eb; + --gray-600: #4b5563; + --gray-800: #1f2937; + --radius: 8px; + --shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08); + --shadow-lg: 0 4px 12px rgba(0,0,0,.15); +} + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + background: var(--gray-100); + color: var(--gray-800); + min-height: 100vh; + display: flex; + flex-direction: column; +} + +/* Navbar */ +.navbar { + background: #fff; + border-bottom: 1px solid var(--gray-200); + padding: 0 2rem; + height: 60px; + display: flex; + align-items: center; + justify-content: space-between; + box-shadow: var(--shadow); + position: sticky; + top: 0; + z-index: 100; +} +.nav-brand { font-weight: 700; font-size: 1.1rem; display: flex; align-items: center; gap: .5rem; } +.logo { font-size: 1.3rem; } +.nav-user { display: flex; align-items: center; gap: 1rem; } +.user-info { display: flex; flex-direction: column; line-height: 1.2; font-size: .85rem; } +.user-info strong { font-size: .95rem; } +.user-info small { color: var(--gray-600); } + +/* Container */ +.container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; flex: 1; } + +/* Footer */ +.footer { text-align: center; padding: 1rem; color: var(--gray-600); font-size: .8rem; } + +/* Buttons */ +.btn { + display: inline-flex; align-items: center; gap: .5rem; + padding: .5rem 1rem; border-radius: var(--radius); + font-size: .9rem; font-weight: 500; cursor: pointer; + text-decoration: none; border: none; + transition: opacity .15s, transform .1s; +} +.btn:hover { opacity: .9; } +.btn:active { transform: scale(.98); } +.btn-primary { background: var(--primary); color: #fff; } +.btn-primary:hover { background: var(--primary-dark); opacity: 1; } +.btn-outline { background: transparent; color: var(--gray-800); border: 1px solid var(--gray-200); } +.btn-outline:hover { background: var(--gray-100); opacity: 1; } +.btn-danger { background: var(--danger); color: #fff; } +.btn-sm { padding: .3rem .7rem; font-size: .8rem; } +.btn-lg { padding: 1rem 1.5rem; font-size: 1rem; } +.btn-keycloak { background: var(--keycloak); color: #fff; width: 100%; } +.btn-github { background: var(--github); color: #fff; width: 100%; } +.btn-icon { font-size: 1.4rem; } +.btn-title { font-weight: 600; } +.btn-sub { font-size: .78rem; opacity: .85; } + +/* Badges */ +.badge { + display: inline-block; padding: .2rem .5rem; border-radius: 4px; + font-size: .75rem; font-weight: 600; letter-spacing: .02em; +} +.badge-keycloak { background: #fff0eb; color: var(--keycloak); border: 1px solid #f8c3a8; } +.badge-github { background: #f0f0f0; color: var(--github); border: 1px solid #ccc; } +.badge-owner { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; } +.badge-perm-owner { background: #fef3c7; color: #92400e; } +.badge-perm-editor { background: #dbeafe; color: #1e40af; } +.badge-perm-viewer { background: #dcfce7; color: #166534; } + +/* Login page */ +.login-page { justify-content: center; background: linear-gradient(135deg, #e0e7ff 0%, #f0f9ff 100%); } +.login-container { display: flex; align-items: center; justify-content: center; flex: 1; padding: 2rem; } +.login-card { + background: #fff; border-radius: 12px; box-shadow: var(--shadow-lg); + padding: 2.5rem; width: 100%; max-width: 420px; +} +.login-header { text-align: center; margin-bottom: 2rem; } +.logo-large { font-size: 3rem; } +.login-header h1 { font-size: 1.6rem; margin-top: .5rem; } +.subtitle { color: var(--gray-600); font-size: .9rem; margin-top: .3rem; } +.login-divider { display: flex; align-items: center; gap: 1rem; margin: 1.5rem 0; color: var(--gray-600); font-size: .85rem; } +.login-divider::before, .login-divider::after { content: ''; flex: 1; height: 1px; background: var(--gray-200); } +.login-options { display: flex; flex-direction: column; gap: 1rem; } +.login-info { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--gray-200); } +.login-info h3 { font-size: .9rem; color: var(--gray-600); margin-bottom: .5rem; } +.creds-table { width: 100%; font-size: .85rem; } +.creds-table td { padding: .25rem .5rem; } + +/* Dashboard */ +.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; } +.page-header h2 { font-size: 1.4rem; } +.doc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; } +.doc-card { + background: #fff; border-radius: var(--radius); padding: 1.2rem; + box-shadow: var(--shadow); text-decoration: none; color: inherit; + transition: box-shadow .15s, transform .1s; + border: 1px solid var(--gray-200); +} +.doc-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-1px); } +.doc-title { font-weight: 600; margin-bottom: .5rem; } +.doc-meta { font-size: .8rem; color: var(--gray-600); display: flex; align-items: center; gap: .5rem; } +.empty-state { text-align: center; padding: 3rem; color: var(--gray-600); } + +/* Document view */ +.doc-content-card { + background: #fff; border-radius: var(--radius); padding: 1.5rem; + box-shadow: var(--shadow); margin-bottom: 1.5rem; + border: 1px solid var(--gray-200); +} +.doc-content { white-space: pre-wrap; word-break: break-word; font-family: monospace; font-size: .9rem; line-height: 1.6; } +.section { background: #fff; border-radius: var(--radius); padding: 1.5rem; margin-bottom: 1.5rem; box-shadow: var(--shadow); border: 1px solid var(--gray-200); } +.section h3 { margin-bottom: 1rem; font-size: 1.1rem; } +.section h4 { margin-bottom: .75rem; font-size: .95rem; color: var(--gray-600); } +.doc-meta-footer { color: var(--gray-600); font-size: .8rem; margin-top: 1rem; } + +/* Forms */ +.doc-form { display: flex; flex-direction: column; gap: 1rem; } +.form-group { display: flex; flex-direction: column; gap: .3rem; } +.form-group label { font-weight: 500; font-size: .9rem; } +.form-control { + padding: .6rem .8rem; border: 1px solid var(--gray-200); border-radius: var(--radius); + font-size: .9rem; font-family: inherit; width: 100%; + transition: border-color .15s; +} +.form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(79,70,229,.15); } +textarea.form-control { resize: vertical; } +.form-actions { display: flex; gap: .75rem; } +.share-row { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; } +.select-inline { width: auto; flex: 1; min-width: 160px; } + +/* Table */ +.table { width: 100%; border-collapse: collapse; font-size: .88rem; } +.table th { text-align: left; padding: .5rem .75rem; border-bottom: 2px solid var(--gray-200); color: var(--gray-600); font-size: .8rem; text-transform: uppercase; } +.table td { padding: .6rem .75rem; border-bottom: 1px solid var(--gray-200); } + +/* Error */ +.error-card { background: #fff; border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow); max-width: 500px; margin: 3rem auto; text-align: center; } +.error-card h2 { margin-bottom: 1rem; color: var(--danger); } +.error-card p { color: var(--gray-600); margin-bottom: 1.5rem; } + +/* Hints */ +.hint { font-size: .78rem; color: var(--gray-600); font-style: italic; margin-top: .5rem; } +.hint code { background: var(--gray-100); padding: .1rem .3rem; border-radius: 3px; font-style: normal; } diff --git a/federated-authorization/templates/base.html b/federated-authorization/templates/base.html new file mode 100644 index 0000000..3fc2b4b --- /dev/null +++ b/federated-authorization/templates/base.html @@ -0,0 +1,36 @@ + + + + + + {% block title %}FedAuthZ Demo{% endblock %} + + + +{% if user %} + +{% endif %} + +
+ {% block content %}{% endblock %} +
+ +
+ Federated AuthZ Demo — SpiceDB + Keycloak + GitHub OAuth +
+ + diff --git a/federated-authorization/templates/dashboard.html b/federated-authorization/templates/dashboard.html new file mode 100644 index 0000000..80396de --- /dev/null +++ b/federated-authorization/templates/dashboard.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} +{% block title %}Dashboard — FedAuthZ Demo{% endblock %} +{% block content %} + + +{% if documents %} + +{% else %} +
+

No documents yet. Create your first document or ask someone to share one with you.

+

SpiceDB LookupResources found 0 documents you can view.

+
+{% endif %} +{% endblock %} diff --git a/federated-authorization/templates/document_new.html b/federated-authorization/templates/document_new.html new file mode 100644 index 0000000..ed2b003 --- /dev/null +++ b/federated-authorization/templates/document_new.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} +{% block title %}New Document{% endblock %} +{% block content %} + + +
+
+ + +
+
+ + +
+
+ + Cancel +
+
+

SpiceDB will record document:<id>#owner@user:{{ user.id[:8] }}... on creation.

+{% endblock %} diff --git a/federated-authorization/templates/document_view.html b/federated-authorization/templates/document_view.html new file mode 100644 index 0000000..73c20e9 --- /dev/null +++ b/federated-authorization/templates/document_view.html @@ -0,0 +1,99 @@ +{% extends "base.html" %} +{% block title %}{{ doc.title }}{% endblock %} +{% block content %} + + +
+
{{ content }}
+
+ +{% if can_edit %} +
+

Edit Content

+
+
+ +
+ +
+
+{% endif %} + +{% if can_share %} +
+

Share This Document

+

SpiceDB enforces sharing. Only you (the owner) can see this section.

+ + {% if sharees %} +
+

Current Access

+ + + + + + {% for s in sharees %} + + + + + + + + {% endfor %} + +
UserEmailProviderPermission
{{ s.display_name }}{{ s.email }} + + {{ s.provider }} + + {{ s.relation }} +
+ + + +
+
+
+ {% endif %} + + {% if all_users %} + + {% elif not sharees %} +

No other users have logged in yet. Ask your colleague to sign in first, then share with them here.

+ {% endif %} +
+{% endif %} + + +{% endblock %} diff --git a/federated-authorization/templates/error.html b/federated-authorization/templates/error.html new file mode 100644 index 0000000..d9a9cbb --- /dev/null +++ b/federated-authorization/templates/error.html @@ -0,0 +1,9 @@ +{% extends "base.html" %} +{% block title %}Error{% endblock %} +{% block content %} +
+

🚫 Error

+

{{ error }}

+ Go Home +
+{% endblock %} diff --git a/federated-authorization/templates/login.html b/federated-authorization/templates/login.html new file mode 100644 index 0000000..c2532c3 --- /dev/null +++ b/federated-authorization/templates/login.html @@ -0,0 +1,54 @@ + + + + + + Sign In — FedAuthZ Demo + + + +
+ +
+
+ FedAuthZ Demo — SpiceDB + Keycloak + GitHub OAuth +
+ + From 63243a3ad8dd94588d241b1ffc7ffc2ed4ed1eff Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:01:50 +0200 Subject: [PATCH 2/6] Add agentic-rag-authorization to README examples index Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c8e716..286b885 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Examples in this repository include: - How to set up SpiceDB with tracing: see [tracing](./tracing) - How to invoke SpiceDB as a library: see [library](./spicedb-as-library) - How to run SpiceDB in a Kubernetes cluster: see [kubernetes](./kubernetes) +- How to build an agentic RAG system with fine-grained authorization: see [agentic-rag-authorization](./agentic-rag-authorization) - How to federate authorization across multiple identity providers: see [federated-authorization](./federated-authorization) - CI/CD Workflows From 1d43f544dda5e5ee3097c6d780ebf5a5215b7e18 Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:09:08 +0200 Subject: [PATCH 3/6] Fix yamllint errors in federated-authorization docker-compose Add document-start marker and quote all string values to satisfy the repo's quoted-strings yamllint rule. Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- federated-authorization/docker-compose.yml | 59 +++++++++++----------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/federated-authorization/docker-compose.yml b/federated-authorization/docker-compose.yml index 22dd109..e012060 100644 --- a/federated-authorization/docker-compose.yml +++ b/federated-authorization/docker-compose.yml @@ -1,12 +1,13 @@ +--- services: keycloak: - image: quay.io/keycloak/keycloak:24.0 - command: start-dev --import-realm + image: "quay.io/keycloak/keycloak:24.0" + command: "start-dev --import-realm" environment: - KEYCLOAK_ADMIN: admin - KEYCLOAK_ADMIN_PASSWORD: admin + KEYCLOAK_ADMIN: "admin" + KEYCLOAK_ADMIN_PASSWORD: "admin" volumes: - - ./keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:ro + - "./keycloak/realm-export.json:/opt/keycloak/data/import/realm-export.json:ro" ports: - "8080:8080" # The Keycloak 24 image ships no curl/wget, so the healthcheck uses bash's @@ -16,13 +17,13 @@ services: test: - "CMD-SHELL" - "exec 3<>/dev/tcp/localhost/8080 && printf 'GET /realms/org-a HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n' >&3 && grep -q '200 OK' <&3" - interval: 15s - timeout: 10s + interval: "15s" + timeout: "10s" retries: 10 - start_period: 40s + start_period: "40s" spicedb: - image: authzed/spicedb:latest + image: "authzed/spicedb:latest" command: > serve --grpc-preshared-key=demo-token-do-not-use-in-prod @@ -33,46 +34,46 @@ services: - "8090:8080" # HTTP API (mapped to 8090 on host to avoid conflict with Keycloak) healthcheck: test: ["CMD", "grpc_health_probe", "-addr=:50051"] - interval: 10s - timeout: 5s + interval: "10s" + timeout: "5s" retries: 5 - start_period: 10s + start_period: "10s" app: - build: . + build: "." ports: - "8000:8000" volumes: - - app-data:/data + - "app-data:/data" environment: # SpiceDB - SPICEDB_ENDPOINT: spicedb:50051 - SPICEDB_PRESHARED_KEY: demo-token-do-not-use-in-prod + SPICEDB_ENDPOINT: "spicedb:50051" + SPICEDB_PRESHARED_KEY: "demo-token-do-not-use-in-prod" # Keycloak — two addresses are needed because of Docker networking: # KEYCLOAK_ISSUER is the container-network address used for server-to-server # calls (token exchange, JWKS fetch, userinfo). Only the app container can # resolve 'keycloak'; the user's browser cannot. - KEYCLOAK_ISSUER: http://keycloak:8080/realms/org-a + KEYCLOAK_ISSUER: "http://keycloak:8080/realms/org-a" # KEYCLOAK_PUBLIC_ISSUER is the host-facing address used only to build the # browser redirect URL for the authorization endpoint. 'localhost:8080' is # what the host exposes, not reachable inside the app container by that name. - KEYCLOAK_PUBLIC_ISSUER: http://localhost:8080/realms/org-a - KEYCLOAK_CLIENT_ID: federated-authz-demo - KEYCLOAK_CLIENT_SECRET: federated-authz-demo-secret + KEYCLOAK_PUBLIC_ISSUER: "http://localhost:8080/realms/org-a" + KEYCLOAK_CLIENT_ID: "federated-authz-demo" + KEYCLOAK_CLIENT_SECRET: "federated-authz-demo-secret" # GitHub — must be supplied via .env or environment - GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-} - GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-} + GITHUB_CLIENT_ID: "${GITHUB_CLIENT_ID:-}" + GITHUB_CLIENT_SECRET: "${GITHUB_CLIENT_SECRET:-}" # App - SESSION_SECRET: ${SESSION_SECRET:-dev-session-secret-change-in-prod} - APP_BASE_URL: http://localhost:8000 - DB_PATH: /data/app.db - DOCUMENTS_DIR: /data/documents + SESSION_SECRET: "${SESSION_SECRET:-dev-session-secret-change-in-prod}" + APP_BASE_URL: "http://localhost:8000" + DB_PATH: "/data/app.db" + DOCUMENTS_DIR: "/data/documents" depends_on: keycloak: - condition: service_healthy + condition: "service_healthy" spicedb: - condition: service_started - restart: on-failure + condition: "service_started" + restart: "on-failure" volumes: app-data: From 555ed8d8a6625665a4706329aeff63c5029d6299 Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:23:23 +0200 Subject: [PATCH 4/6] Validate document ids to fix open-redirect (CodeQL py/url-redirection) The edit/share/unshare handlers interpolated the user-controlled doc_id path parameter straight into a redirect Location, which CodeQL flagged as URL redirection from a remote source. Document ids are always uuid.uuid4(), so normalize doc_id through uuid.UUID() at the top of each handler: invalid ids now return 404, and the redirect target can only contain hex digits and hyphens, so it cannot escape the /documents/ path. Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- federated-authorization/app.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/federated-authorization/app.py b/federated-authorization/app.py index 7b78da5..f39b09a 100644 --- a/federated-authorization/app.py +++ b/federated-authorization/app.py @@ -659,12 +659,29 @@ async def view_document(request: Request, doc_id: str): }) +def _safe_doc_id(doc_id: str) -> str: + """Return the canonical form of a document id, or 404 on anything invalid. + + Document ids are always generated with ``uuid.uuid4()`` (see + ``create_document``), so a value that isn't a UUID can only be a bad or + malicious request. Normalizing through ``uuid.UUID`` also guarantees the id + is safe to interpolate into a redirect ``Location``: it can contain only hex + digits and hyphens, so it cannot break out of the ``/documents/`` path. + """ + try: + return str(uuid.UUID(doc_id)) + except ValueError: + raise HTTPException(status_code=404, detail="Document not found") + + @app.post("/documents/{doc_id}/edit") async def edit_document(request: Request, doc_id: str, content: str = Form(...)): user = current_user(request) if not user: return RedirectResponse("/", status_code=302) + doc_id = _safe_doc_id(doc_id) + client = get_spicedb() if not check_permission(client, "document", doc_id, "edit", user["id"], request.session.get("zedtoken")): @@ -693,6 +710,8 @@ async def share_document( if not user: return RedirectResponse("/", status_code=302) + doc_id = _safe_doc_id(doc_id) + client = get_spicedb() if not check_permission(client, "document", doc_id, "share", user["id"], request.session.get("zedtoken")): @@ -724,6 +743,8 @@ async def unshare_document( if not user: return RedirectResponse("/", status_code=302) + doc_id = _safe_doc_id(doc_id) + client = get_spicedb() if not check_permission(client, "document", doc_id, "share", user["id"], request.session.get("zedtoken")): From 57781b89135367986a0a26816b0d74b56a6e4a51 Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:17:08 +0200 Subject: [PATCH 5/6] Fix SpiceDB HTTP port mapping to 8443 SpiceDB's REST gateway listens on :8443 inside the container, but the port was mapped from host 8090 to container 8080, so the documented http://localhost:8090 endpoint was unreachable (connection refused). Map 8090:8443 so the REST API is actually exposed. Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- federated-authorization/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/federated-authorization/docker-compose.yml b/federated-authorization/docker-compose.yml index e012060..ac018ee 100644 --- a/federated-authorization/docker-compose.yml +++ b/federated-authorization/docker-compose.yml @@ -31,7 +31,7 @@ services: --http-enabled ports: - "50051:50051" # gRPC - - "8090:8080" # HTTP API (mapped to 8090 on host to avoid conflict with Keycloak) + - "8090:8443" # HTTP API (SpiceDB serves REST on 8443; mapped to 8090 on host to avoid conflict with Keycloak) healthcheck: test: ["CMD", "grpc_health_probe", "-addr=:50051"] interval: "10s" From 672081a5148e5941ef77b50bdfab9235fa3bdfa5 Mon Sep 17 00:00:00 2001 From: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:17:08 +0200 Subject: [PATCH 6/6] Add architecture diagram to federated-authorization README Signed-off-by: Sohan Maheshwar <1119120+sohanmaheshwar@users.noreply.github.com> --- federated-authorization/README.md | 2 ++ federated-authorization/architecture.png | Bin 0 -> 239740 bytes 2 files changed, 2 insertions(+) create mode 100644 federated-authorization/architecture.png diff --git a/federated-authorization/README.md b/federated-authorization/README.md index 1dc1859..4430716 100644 --- a/federated-authorization/README.md +++ b/federated-authorization/README.md @@ -8,6 +8,8 @@ Different organizations use different identity providers, but a single SpiceDB i ## Architecture +![Many identity providers, one federated authorization: external accounts from swappable IdPs each bind to one internal user, and SpiceDB governs document access for internal users only](architecture.png) + ``` ┌─────────────────────────────────────────────────────────────┐ │ Enterprise AuthZ Layer │ diff --git a/federated-authorization/architecture.png b/federated-authorization/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..2bdc5697e91816a2ecaa9948e1c608c9896b0f64 GIT binary patch literal 239740 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�a@0e-^L2%m z{J@7Ktx@ZzUoq713HgWi320zC&2`x8<^s%|2YBEp1VZoiyuu5B@w`z>dF$)LE!)|p zYyRUWkpAXx_Er^CGJ6MD7{Cz`VL>774;Q`V);4951y(iG)hl9;etMUQ>v3}d6B)pl zeJZyT@-No{B;vol009y~FQ9laUr4OlGJKb1g@(Sn3NG`f;-Ni2H8_1UY*9RS|6>vf zJHln|?}MJS3(Sg<9{ZB-vSb_|hdBsG(uXvY<>k9ujRyRRT0p)u_9>PA8Ub|aQ;EHc zb)DTE|I|FgwafIWxs&>14X)>`AtC(v_1hy_=QY;^b$tp1d|beIAfG9Gtgk;bMlC-j zvxQTH@F{qe(>mR2^^t0xh(H#m)UPXMH&8Zwas)86q-MDNYvpH zxf}uvAWa(gCsZN*Cz^)d+BKbdT~Yn{8?+7~fA0S8GHCdTuN{zBEhnt6ta>yGMXu|9 z$(q^9n#;1Qi0u1JiH2-ay9Je9#JL+!y&PO%t7-^}_x>Kfyv*n`jTN4>?bUFcLnxc!KCg|j874v{o($aYvi|f}N1-iU$X%a4 zt9hGbCan`%8sQPvi~K?WMWrbLr`yWzUWt{ysNN{X+>bBd*NBDPjfYGzlA`HDnO=XmVqY96Pw$SSG-lQhqC_nhlmPI67gcLlSKZF2 ze6fGtS3Awiv3j=WhqZN6#r6=w4^$+ znoH9>ENdgpL#myEC&8E}a)igb^8o;aD=nisVf`kIA)|#BmtoZU9Urdntd?rSfe|$Y za&;=G$F*Notw&i-S@RaFqUsSo)8%^ccd(yLOOAaVF!AzAd5EvYRA%0I-kur7KY;z1 zC=Y#D1t^Hv6gibTdiVtF$Fbj&WcQbd!^Zm^HEHV3gL@pHoM2Qs@~A#y(v{h)r} zM>P8b6P~%=s8%z2>(2i9l+jr=>)UQHO(t;Q9xrbGrI}7rOY@b{!J<%?1NkbGnrlji zhkyW~wn8hs(8~khuBO9ek#Dze{?&EafZ3AsS+~>lfsB7iXrWEmhGbqnAOcX#GrwCs zC9%A8ZJGawF^qBw157w9eton{rLclFK#d-B;y6;6 zAW*&9ej^K|l!^B{VwC8i!GDlNVR>*ZMr?gG>nWga_CB_TKpfb|7N>CE1OS5~0~VuV zjd)gF=cz!MEDS(On!r3FmG_^&Q2*inVF;1PvHM8c92V(g3Z*%i*|j$v(Lk0o+AJ_K zj%rL;mC+@pSU$NJsi-80!P-qQ?cu*c;>RA|Dz;11<-4+lie-f^e2 zZ3(LcFclB%S!%^@Jh^SB?cOP=9RcRzzKHL?L@=Eke(oT={?d)Ra;da9b8rpUrupb< zGcnp!Z_V9WPXnr5wTpwaJg^TJ+d12x2?zS(t?nPx-P9N_jJ#O{2Wo6$#E5 zg6J5i^|f;5us>F^x(#dQMarBRbj}_kIxLrEr(VzFg49wHWi{<7E#nX|U&xgdSlkk; zYsg9Go#))EOceq=Ol~$F7;GNo06^&Xe-YGL-0GaBWLoLg>K4@>XFZ!lo}>Fkv$^7? zHW5nXa|%Sm=UrdT4Z^lkowZl}SN6riuhXnx$8%RcG(K)CkH3iTT`94=)rvBfDBhfr zXkp&UzVi^qPvq7Z$!u$UO93>kbjM7^v97ED(gF9t#z@$)qW*X5k|2@wpKXT*PbYt#i80~>PWk~zuYi;Cg+96a(4H#dKHSn9oMtA>@Vu^X zms~K`u)t(#vFpIkdhK>=TqJy;^|Hx7i;Iy|7 zQwdLhOSheH3ad^2q5NU;{`~`$)(#zqZlK711$3>VsK`GpWbZ0}p{DH?xJ(3L;BQmL zY7{iN&j=4L5tdW}J?>x9JE)!itUzzSY%WbP>#gBrealI*6Fb0TWtrw&@)CMqwiMdR zo*QMc#s`+51j0=}Af_3oAnJGJGn~zUxPTOKZVK{qb2=yq-wd&L8y;qM&tDK9^0?f| z3l_E8s$bn{Un*eC9y4QrC4HOL*nxDKx)tE z_hj?O4^q%`xmtzBnPU&qXlp}5B!a~*E0`rP@D}F<&!rSB)TrdT?rgsRdkwZS%Phyk z0n|RwD4=0F_^acbU%P(-sEveKPz;T9wSGPoI+&LX71LxgLQzA}BYFiK&=u7yNS(XP zz2A+8o(dNtFhS~*4IZXBN<)kndCC0i_Kk8(S6qRY!~= z-8VOzz~kXV(L#9wsn@5SuUq*3Q>)8i9&CyKf}qiT(Tll5RRzz8?%@7TSy@z|QQ9+Q zZ!Dko@cv+v!AXyShT>SZ$Xqshc}$=^#^Z1+X3oIiuRdIt4D@KI z@2|5jdzg14Ee^!nlEFwpf8=IHZs2g`bY<`S}rEy=qYd8XfM98VACd`?=b zi`3sla|KIazW`x^?uoui+l^!PJ`-F$I@{rLIr*hhJs_!-V@U)$YJ*4(EJBg|Wed_r zN44Xk`&<=@|#eYw`12hC|>aL*F8ZykNV<}_Tb1J&0@DLHPI8S zXqBCsp*ugqf*8XH*wxC5HzmUH&<9nh1(-N@B01Z{_W46Y4~w*G$;V6V#om{T*k0N) zQVV;$ObLn+{5ZWHFriiLbxjlCQD;h1lX&FNDf+&m1b#vu4wat5>%ji(N52z(J~j8c z=3Vp2XAkef5vIaH%}43FlXe^V*rE#bnej-HnVR?cMk2~GV&|Kqk-f2zFE|5cgC*(B zu+ZWAxwqc&=4n(ckZx?zD%A&ivpL#UR2Nd3Tv54sdFn`!dQX1LOyISSzw3m_Vl+SE9s_;vAxH~o1480a5g^a z`4g=;FT$FeMY{cW#9~v{kzk4GGGZ~YtawiauK{e(_wVfW39|dP>iY?e?xU6v#F;6w zwYHp0`}eDd&Qmg*zw>K4d4Iu0I!2fJ zC#+2Fyia6r43M_94_*4rrV-hq(mgYn{E1^qKHpaiye{BZ%%km57YtT9M~A;(iDq(H z8U(Aao0wvBeDhO&=zfkp*FwzPJ8VN34qehsj%tWe^Dm^<$g-=`c3?YNr@pTEEuYn2 zrWUlZ+a#|z7Mbxu_W1^p;gq}nzG zq}u3a8qgygKOwY!edV3!=ef+Yk-{pZe#s*Y?cmG|&MOa~lPs!MkdsA%lODF}E;n1^ zAxz@)$*yyrSb~>RNBkCsqUCMfS!(HIsg;;GIO<=Wh)4|uacvdQ1f((^wgs*RG>R@2 z*Gih0nlhwHY}8GDzj^*#G~(u#8Yw+HDk$l;cC5{6D42+jjxl!AwEZhG+4Rpc@PeC0 zrgE_PMEDGlWp^W!wVKTCA0JiFK0Cx@v}5ZQ!X=e{O$XV8&dz^lPo55#u$30OfOMOw zxxXK(YZyCT!VQa3$r}&Pwp_a*F}+)y+#bd-Vy94k`}WIbA%C8~;f|_#!C*9%7Q?rP zOtT8Pfw0oySPGTq&MKdr=lDJyF6v*cUbf#>$ImN|%x;#KX6=4K-y!AO}z3UQyf z?sRakHi+DO{gdQU!YDF(JY1RLRw?d&#^CFkz87O{Ux+ogwrX03Q!h!k|KtO^?bj}G z9!yKp$CNGg_ZU>&B(GFCu07&P5B&OMD7H>setw>~H3r+A|Lo1rnP%0P<#nc)xeVxI z!WI?=9EfYd-^ezXiaUga@X($?5AWfUYZk}FkxgJt_@eoEL+9q6CwnJ1kiygQ(c$iz z2Vs(#YTHJ~ODDosR;$_-O}OL@ed%Roc`QHU{W7;d{W*8q=xrHwa-)6P`E2OR#3STT z+=ak_d&%xT1}s4O*#-WIR>ly~jAUBlxs)3^{Lxm89qv^Kc2PsNWF~*VevT>FRewZc z&c%Nis8`mI58lF+$^)CP>93Op5#9K}M3R^_#@EfH!tK z*Zp>09pY*ra*ja{L@$&pDY8^Uue*;9e*;dQL~=~jp51;@Gu;Y3Uo?sekR~8;DtI_@ za&eJg?r=dsfr++gC5J~!wFeU`lLB^V)iqlf@K_JdHcRQ$J+0Ae^7wjl@ihVMmw-p$21ui!)gHTKME3=733NthVzqY^ zNPcuBbSPb$E)&PRtv$S6h1 zRaH~njT1e3SA1gV3?$v+54jL#I$6B;pz0St+hK)6=IK zW}U}cSz3;bU9`d42paS&mNayqBcKYdiCWI7b?Xaf@lt??fBL z1P=4W`C~M+#9?%}90EFM^APO9>A56_a-B#ru$d0$JdxPt-mJI!7}Ne)>7=vvD85y{ zhvhukiP}gJ7ITU8`-qSMpX)V!t^C4VcQN*TqR%0#VxF6MNnP|!G#JGiAzh54k-Pc$ zq%C5tOxh)HsWn`F1+NXC9_{4Oe@L$3P%S^5DF0`Rp*d?a?qc$dlR= zMkC?S(G**tH}k^FSK8=ExVn-UYh$Qi#Xm=w`j z>1oyVA1`n6ig93v2F(bb;?`pz==>DI#g(ioYCpDjfafQZy}i9hus~;RmK*G=)gONb zy%cu5A?=(C%U0B8D151a=rRRP1I-gF>c)LpmlO*NN4>LmO?E@-n9`6iVxkoD4KC@2 zOv=5$*EDT?z&U_Op@M#&iHV6HR3n|KyjU>NvVpWyi5?(*v3#CpJ2ghY3(bHisx~N5 z4F1ym@nK$zq3NNgIrr1@pJH>JhAMRSw45OJt#pplb=-@2_qAneR>K@RvimHFTMvJh zE}tpar80OOpYZz99`Y~I&?zP0S8eMJk)+JUCk!r-2gpeHjb0zF5bx(eDwgxwaLNQ) zaTINWbpYV8;rSfmalrwAsW3?sDT1Yx7iYw~+SS~j?XMRl(ELkt@E!-mBzRVY56QGi!t28QzoDXkYa;+@v|!eaE$(B%C8 zMSo13^Ok*iZW$>_c3!l{l)#^!?IH<~ZV8n%QDn`XS0NkCsPj;4q>;grmMM_bWpVXG zLlaXJasNDGYFZ$91Zf~!veFAHvjoOtHJHE^lK1##xh_6NN}8N^zlGfS zE;=Ja2x+qY{iU^PrEE`7+eFchLl{FosrR2f*2**$VpXrKv-4u%)gQp}r-$GMn^qC( zduHjR?T#yD9QLjiqx$;`e9{d*eE9J4Ee2W}?n7|UH%TCEtYSSuIp0gvhznh-lY2&V zkF)aeuYmT(LU)!;RrFk=dPP!7N$BUb@!NZ7r%(5GJrx@rV?aTq*#-gkvUH>gNP9Cs znP)&aBb>yfp@EAAW1*uiXT5wy5A{ANhGb9b13$Ifm?N$AWqwvxp+_hr?3)(U`AJ%% zt#Wo1+r6rXU`&~Mr>!vE1>#&qO4H_Qoa6uNvQ*$ZC%3jrz~Ko4d*c9f2>ZX|mfgWr zyvm*=K#u@xu&H5z);ymP5FeL!_4M?t8nh+f)J>K(7HVa@bYy)K?QDS-?U&Ozn^EOV z@v*6CQ}rcfE;-%t*%?^}HO$kXJ!rt2e4R8qr8as2KQvUq<#JJ7Q9(5`$+bxH%^OKo zTUM0KjXp-Ts^B0+l*L=bwVLI~j!!1L%Dd#ObkHpUt1n6&OG48&$CU`-7FmN~#^o~W zmpQM$RuUBvpk-J9$y$0}`oEc)2sQfGT_y@dUGFpn0$55?5^Fo76icC&Ka53LDH}ak zDU7BK4egX}&+9?%(aQeg>+zEq)hd0fOjz4hkPq})IiMMxwPI%ycv#G$U{|#5W zOmEy9Rhsa>f&0C2WL$ryT|^9Utj?hU%BH8Uiq~{mVuBo0s9*W&fncmH6oS9OD zfwuYRU%ySLv1LNtIM-z06*<43mG6Ehe?*OEts14_l5$U#4xMXsOFUWgH*wJ5&NXW2 z_lsy^=p(|)aA!s9HU|uMvC5J)ro{>ojWxZ!eF-c_9IHr!G4q1~6NaNFIPe(v-?MO)@-5pGlNc@9@)m{dEutl!H{-{@6&avyk4;jh2BIitciSfb4&1=DW^ z-DmZGb02NByecs{)@>i%&op#iVXv709u>&$tZNB>i=F15a=h8RKi#lJIE_5Gr@m3Xtdt#+l;A}GM7=kpDE9MQ zuP$~#E}dkJrnwPCy4IPZssGD{{<*t^YS^H!?~ML zhBF&=NxI-B9MnbFa=Wp;c3-#$0>Jlnbx{#b#doiM{OAQ#oUHV`Juvk#Snx}ypD=(O z2})prYHg=fC2q?Z=ESW}ByG0Ga+`~s)dDLjDo9}`oWXv%j3KnH}IHu-OJG`fB z(&dW?|2cVyVMEyY{=9{6PG>kHG^1NFjrt2EfOlVjvavvs=gn!8-Y09KVfA(mZ6~K~ zzFN;QWtQqc%)n~QHANnxaIyalD>FJgVo)g5S&ctaI*m5viy~COE^JAz@Qsvac{Hqq zRrf{fJ~`T9?9Z2qjYLXTH(z5?lmV5XP!=@GZqKRtap;+HH-*bpJIClwr%`iyZFE-} zH>8_lASUKZq5A0c>dp>ZJPJgv3IGu@E1TJlaNHK6gay*Gs}?z%FU2g!36Opf%Y+vn zcD6U1pG-e7<3c2a!~zN3)S9onZbW>9JzrfS7nDp)Ow3uIA$bUS5ZNz6> ze8AIOD7A83w0|FP9)ER8c8F!w!C6yKYsiN0U8IMCH`?!eKD4K=SBO37ge)XFlbh)3S|eb{R4c>b#RoXrVndFZVxw#LNNHzcd*5?9 ze>)0-EHj$rKQp9sF1-DYZsG{1u=zoQ?zd`>z+-*53aE=(|NGoa&khIlKOaY$?K3o; zHa6aO&u6ShlVzE1O&3p<`YEn>)_yfcHJN=3T$3}VwInouv#dTD64N#%QM90t@_RJ8Hh zOH@8p^Nz`EZ?wvLk@7fZ=)4jDuMdg zRsLop&QVw+aU0FQP^EYh!%GbZB;j?yBW&*bDc&|obM&2xriL&G}InR^=VA^;~&c#bd;O8pc@&bf6L zGNX~|Redtj*GD$HA7eH(M*eU3?Jbm~A59A+7I0RBdzZpx;8|%&tox7KQb~^q`RqH1 zzHZz@GfPeoP1b+xJ6u3|>xLwLlgFTBq^_`bS)JI9u1K;Kk zpD#_=YBsw6h7d)MBV{0ri zzzZEdzhO1}!;23hAf5>ic@xp>8E*Pk1=##p`?DuHERM0z`iyn?ph?`VC~=Tx=L%eH zc_yKLPWtz>Pu=`uA7%TLZIE$IzTHgb+$c`qv3%tRdH~XL?WVEo`V+5WEA>wVD^7Vp z%Dv~gF^{zVPcH!2k>^6IdqcbGhcw5D6OGvzCwrtf32~1IQyiEN{xQF&=gKwVp5!}k zpHS~6mPo%R`+F)qcXzRiOurl{?n!a!e|Yu^Y`30vKa%{JnU{op=54?H-`V#zY5U2( z)Bjvolt*u$`Ol9Aw9B6OWf+N^e{|A)N!cvC&xCU2o&)ucUxi-j`84@*Dvt{qnCT$6 z^{6sn)%6Bn)a*%p z`n7kxYueK=$s^@zX&rImd=z_Ncl~%f>g)bbGQEjApFGb`F&GvFl{~DzLK<-;A>HeM zwL8ado*43T65G&oTVnmR(GVLi3_U;i+Ji_uD1)ZHYZk@kpAyHKP%3U5ZKA}cSe>2mt$7|>=|$5}P2sk94WWnBe!x5Cz9sh_`mQ7j{P ztfCOAU`_K_>`41B;M%AG=5I%O(_a^kQ=V@>EP`ey6*X>O4wIbT&CnKjHR8-bYN1hu z4ba`W6GB(dx<>s}dQLI5>|d=}+h{d_XJTGE-_2s_-^>wLn~J4xsuG#EYg1Q7&G-Nb z#bBsGrOy3A!c_13y2?)!A3H9c1;E=*&Bv`@Laan|PgM$r-qj~gSJ||APVcRsOJ>$5 zasaB4Fd3NlOt|na$g7D70=DR>9u@EGu~>L*ZlQH!UB%kxo#-WZg_%W{KE@BR1SR%N zzG;X`(VfIPlP3b72CX6P^2q#>(cw}2?_U{h3-EGQydwkghDfie!0-2H)fkofh}MPN zv3xg~@>`N%@!d1z&N zI<1N?jN$6o;W5pZ#{up38~ypU3*J%7E6d|ve@5%97?ZBH9eKKw zIAg-gb+?b#<>wpii>JQGxjJ8&@%jxhT4P#m3)&_`h4!NT9ij24kF9<|L$TY<5yjc| zh|V}d;)1uC-?gb|r&IpGPw_xCx$t$qY3{4(s<$OY7=POD5u2^&GqG)s^^9g2HoxYx zUf7~PA$B0EMF5Pi20+gLCUnMHbodw7|t1AfE#od)!qL~0&L z(NVfJ?u6_MZ>b#fl(OZ&o~w7@owH3%mu{>$Rh*-H^5ID;^R`(pSzKeySHWmU-(!-0yy3>I?c+6e&GlM`{6wf;pnL(Z z>U{ESyS{eUP>qbCuUJ?nV`z2t2yE?q5V)>CfGzPO(ZL_{(Nvw?_v=sZ)bKZz=riey z2ug>c5pnGNfnlfQ&%KN9PRq9KIZ?j&+*kjOHJP^9 zC#AmN{Bw#fzUQtfFh7)Bv>Tzgpy!*&(qX!8QITRyta;+>Fr`ii-@bD)HKJJcc?drJ znCo|tXAW}ccSSmwA#9k3r*;_!Dq0SPBV1j*#r@d)3=YoLQM)UhK2E}ir#cH*( z-?>c?TW{jT-vgX+w1C#i(v({e-k2e zO`5oENVA?OmHM5uATvKdZ~e%h{Rv$Fqu;@_k^#S+_F25GK4c~DJf!@??*GSfnIV#y zs|6)lsnhZFHdQkN9|PLo`s5Xyxy!|2k!b5-|LQ*gEBPxc|DJ*O;gW7oM8VvKqZ-{q z&vxeP?z`HL{ak98#>1Odwe4GcbW_i058P3}47!V6kNkH4KyXOcOfv-IhFne;^e~+M z@;cj-QaMmT+Prqxt?>}LJwl{s8J5UtQ=OXnoe*F26-q7{`|W3?MV+b-_SJ2)scraz zgR$cGXX|B*f8WK=d!C5#Me*5AB$Ah1&hs{Xq~4i$pK(u3ylfk32eU_BlDzU^di z=qJmH)|@8l|9=8lLafH5y#aq4(ugBA`Q6?(x7q*s|Ksw>s0B!~+cv_dCg@>RGsA!h zvYVe3111>njM37=?&>djqZIvL6MUHyu?iJ}{K+Rk4#QgUc+-(H; zGr2V*bTZEU>&Gu32ZhJ%W&etLxMO19y%JxN91eL}hS3_*7aRGoEDl!i9H9ISWjz0{ zcsG7LKQ8RP{)FB5nul7#?E}Etax)g`SPfd9-Fg_$3)O4K zN!5z!xn$nlw5bQA(gPzjHh-b{f3Nfd^PUg6rarLKquIln{Tvix#sZP-KOMT%VQ*DE zx6E*udv|SK&jO(&rjlM+ptOZ9`w9_(n_P~#`AS9&#h6zf&izdvC9$zuUNwV~#Scvv z@?oRNJo6A&mi^aH#*6+)jtf;?EF6iQD%rp_hnwg#&i zNTM>pr)Y5EqC!&uQFG2 z%!;0m|Ivyy66;99%dcm>E4JaS}yY&UFC=7lgP5!2(Uy=|Hmq$z6SayjFzIb;uyC z*jK;uOO5TFOf1{$upD~E=Q39f$=T(JB93Lg+0e=d0{vxHqo1ma_CM~u`1OQTl(JfF zoN51SGz=WuaK0?5a{~R0Cm5?QK)1*D$5B& z>X7Myu_-Cakx3KG#>PQSC>4|Su4Uo7bNZ#a&Rzpwr(@#UyZdjfU>76tKRl}Tq!_V5 zQD$5aUHpJ{QLF%I1d1WSzJ>n(FeD%m9kd8(VzpB77Rmdh@4W>w)q%24I)_o+(_Z}K zv3%yV{eL~$+y46b^u}Vh+Z3~3jjmi&rpmwU*s6~eM zfiLYqnnIM@9w6$fY8K~R6kqKQZTYd#WkeS#m12V^28@*j?0=3_3CyeaQ4)?C)LWaY z`&vsHvuYJU8aBRIPnO8K?o4K4AgOcw&h>*2&2HT1T^|Nl#pz`@Tt%^2UE)o2SSGL; z#|w)dzepAGiTBmB+NRcAhAfU~hZnpWX0WDdo#$eFRv^66W`R&8Br;~uZ{8LNiwf82 z%h|;SG5LO)usvXu@RPWl~4a;=BB&-2`s|M^B9<*SPQc_B4+h|E;yr2bKo(TLi zx=SulGSdge)5IqJ@?f<8ou>i*R$V+fYTx>e#Qe_uwl6zG{pFOyiN?jB+6~$y|6} zPaYC(6Hp6E%Z8I>b}N!S1oz_rmj)9=1m>l}1nrF?&T#iCp8ZW1XygE-sUra7F4AV& zwwVz?OaQLRtPR}-4fx2RoHOc?913%#v7rhVJPUXJ8X6k1%@BIOr0Y`iZm3!}ATQez zelX^|{PLHl@Emss&VBRRF{tt4;;KB7B3 z+8Y~d8@1+-kNbKg>2VeXar4c~+&h6>U$f0L^f>|@Ueoc)+1}Tt_Kv|zbxi;Egvx74 zPsu;}psN|lbtf@#orcq|q|9%JjAYd=EZB~Kk=Qtwxq?UIB$txdCBieKs-e`vN%7D1 z^R@#+B;>Q1n~JuhYr8RWP-~U2?w?VCpKJ0)TdYQXhHz znm6HZ@sWNUpeAy!**I$Gzo{AEDkzvKGmN;`#QqP|>;@2kba8yyYgdADSJ({~(Va8a z1?b{-60hU~^PuPj>3C_f?;joa-cZS<@(uZ+uw04a4R6?b@~Ou{T2UI&zRJP$xJ{AW zW7eJFdV#&!3WM?be6f8;wPl)P;hLSSZRMH3%-H0B_WSk`xdEJ_#S^k#b=nrfe?$9u z@a8MIfOb6|@vN^0-j+~l6rn^B%OVcPf@+OKR}VF8DgpbO)U<8$Et5)UU_+JDo`&{h zr4N27CP)n`n!?f4XtMXr>pWDdX#V!7^fWC-Mkerx4w5Kw1TXJa{H#^sgf(oyM(9Hz zr1qca!%rV_Ur37*`YfV1PW~VT6@JEZ!xLDxe_FAs7u8+T2>$aHFUsaP@bD#TzdBpwp(dP`1 z;wQv0EThco_1#WI0}3JeG_)B-yT2dVLjXinEZp~7a%s0rA~Qt9+{eRQo*P8^$;X_5 zJ+ZdCDadjn|6t^;7>%|o`;1AXz)eLkP;q&wM1g$C2z`>fe&Lmc)6BEOu084H+5JlY zyu%5VdxwUj2Z0{NSJcz`6SM*CO}{N=Xk^YW$)CTHk_uoD?5GHDFK{;1uvq=c@+Wm1H0bB0&xpF#ppg7_XPuqU3 zl+35m@>9{t!fI<01%xsgy!02%rdkxi_ zUD|kskW6XoH1d#R!Ib>7rQNTmmXoSk-p3xK)%5~CWxk@Kc_o*19@_D8pJ=5xTg{WaX#=Ba@ld$nCXjp}qnBrLB+B&Z9sw9_y$qA*HE;a3)g=!0mq^q6>+6f#+ zP0A`eygIIKyR-Lz3LxF>#h~xD3-YbC_>8+51sNVo(RM^gYmrWMMG;V<{Xr%uiQa8A z9o}6@ZOLj-i)Y_CpS2>drU7wyI9_Vdaf8xSy4gNa3rS6uLi2&14~S(bBm`(y{Rr^3 zmC+h3A~3Mq!SW%P_t~D~e-d^b6njw^u%YOyGMv+WfKwQqlI%@a$e&8<6szJ}+tHMc zljF>CK)ONb!^|;?cRb<-kRYcLrv8#bjIDJYEEjdT-=Z;?m!hO#n zbzUo=BJD127tX%lG@v~!E)>y^OybpYomZ;=J`0w}6j3)F5m zM~A4SA?Ds6A0HFDiuZKQnBLky{(bQR=p8Z)zbTpM4o?{VxQH!^US zC;zGLzV}5bzm#*pTNInEK6#(fttSfQu<)*P@ko0QfwmOS@EUf@pOQ3SIhiM1rRKZ5{pzd7->UeH8`hKq;=ASf=Xc@{ z(c##+VgvsI-v20#l)Z6EIzO-D!P@N)cS-)YppQv{G%Mt#IGF9^x@7Kow`D)l(gJ)&~NLP|!sFjAqqJRO>gW zsji0=poDO8sVFMu0rN=1s9e8BOz7G#L!-q0xHfll)I!T=HfQ*BHhe-1WIcs9QlgI} z886f^h%GZ}RK+h|cndXcm$@Q%bSFBe(x}vkoMx1csCkb8e=Db)0Y9NA_ChiEavf++ zP!J}o@sFx>XC6rR`w-i88s4rZ{xAAKnD2vzH;HeegY37&+gS` zo3<4INT7d(Lt-F|zQvb4xHmRDgP18ieCW#qj-#IqcK3PdXU)8)Yk<>RzoMqn z0*|quLM+pP(x>hxfq$f`p^=$0?&eyyd%J+2{Ext~_3q=@1ORkJFyOn9NA^I2p@4R( zc9F*CG@8?=SeTdvp6{=sBt|DxW?p{n&>kdwYzZ~B9V>Tac+-{Ub64mh_Gc|81w>kT zVlk*W`KfsmSo5vt71{xPBwZHasW5(lg!%tPQt$f)&VV4oaRHa{4LvVE@|j`AndOKU>z)-gO^UcVw$J$z1yBom z=c@mm$)_y1rsc+kLnW2hXxx+1oZza5K7kVm#d9KJcH<|R6SsubWK!yT&NJAcm6hc} zqmz)m;AgGS!(2)#!CDyj|1kFD;ZV14`$~vHMJa2FkY!}wiAr{|@5z>ZC&rS5s3>dp zElc)&9}_D3zD%~6?8_Lk4hHkPr{{UT-{*ag_mAH{{n63U!Tq`J>pHLVJg@7vl9KXC z3~!n;)hPLobYujKE4g&(Ou!+xuD4T7s0luEn}Z!ystW9XGPj?kT=%=77Q`7aQSgCh z>Q!E4u5)tYBT<*>E7Iq1K!%<Wq?K zmMUU^0m^(46$yJ-vGf7F?tL+nYg6@!R|z&R;HDqil8MDh!->Vw$t-5a9bnmdpC2VD zbwkHxbc07Ikv!-S<1Vx?$b4<6i6K<+^_RmKjBAJGov6=rVU$n26#LV~75f;BT+r4< zblN$0D0S2DeAG_8=zPkl_t&LUNhwz~K$*N9hKpa{d)FB>UxGm8nd_hAEmd@l+!-Dr zK8kob^G+0{zq8znPi1~lpH`?cAiI-2hAPLJ?5`g=hCU5z!& zFs2;haT|C=OeV`6meap7N1f4&^O&MCsNNgGsU{XvfU**JQTeGx zE}hQyTgb@wIkz5O(B4bd6+Bia+=`RAbn=F9`Jf=#LOt*_rZ3orL8fM{@hYk#eoX`_D!WSjB|4SLyW(6)e5Q@6Kv31;`Fx##J`z^D zz}Vl)@x%qN3lgX$GPKvsj4t-AN4=GSP~TAM2?Pb3JJ48pk6~Qb>t*pjb_S|n7crq$ zhPA4^7V;y_LX819sx(=TU}xa+{ViajQ|f=ijqpMxe-x-F-|ty!x@I28P+z>r|FD~J zSG@p;E3Ng_7&%K)3X~>#^IfuROJ4W3w4?K$5pv|2eF)^n)IVMTB%jHnOwGDWoYfke z%e>Vci9mEgB*0jeF6x=JBwZOxnaU1a`Fhz-NAdxYA_X`-D$1pOCjgs=g}=|IOFPkOT{Sdd_~DY4i6d49gh?w zDptH9n&{@{|Ey*^N2u>dwJmrVh2lCO8++W+Cx+dcC`KFHUR$fO2FU|Vc!S9zNr0q&7p#(|>M@__m03(I_wo12vc47>Gg z>1AfEt$b;UpJVLoeeoLJkcy;9?>pydZ)rXkI!`;94?GCl^)WzBTT4W?8y~7w`SGrT zGCGQmU!gmhFLU;$r%o#peehYu_$48y;)(WwW8;tHG|(lN#cK;?_S_E?XRQmD zBDIw8JGd@ADB!SZ{AW1iW)r~|@WI>;a!1fmw1(0Novb-q!{E8qX05EM`k4SEo?6Js zvHl6_!DukD^ycPle2@N@r>(Da3O&gwcrQPrBC`*94IV(p!Ds}gB(5hq&ff#9Gqsgl z=e*JNZ842Mo!>on)FsYQ$T^BVc8+%Y^RzY^>KnI-fKu~sJs^&dhqLGw7^FvD zbId+`Uyly@(fzi>9Z zNXr+X7QYCcm~O0TuKS0FTEerC)L$)bfD;T0zAQT@i{pCH!Y8^O6K$2Ln^_Zz$%k_1 zY3bvnN*5T;h90>B!)T<$<%g}Ut#dDs0|OA1V0mZr)JO?6a4)odzrd z+ACM&t-Bw-S@wQCApRMt#?HdRY}jqwmk3Bh;2cS6hBbH9WtJsp08~$~CeLGTKhhPW z2}pPbOq@0JW8YA-i};Nxja=pU%-;gDYi?1Un5%|dG4cuuqyEqZi5{;;kL9SJdUf+I z+M$tG8D-L;@#;!yT6=im=W3vX$|;p@8mz|V6&%LE;qbdtu^&Fjh3~WE(bp8&`k7D3 zSv+}iB~8LN8SI7=4CtGfQLHub)%alozt5qO`uXKoqOEiuoq`X3W)KKut3COhSX0mp zEE?dae|PoLXG0BvQKtTthNC|ob8E7}Qj|&3|DAgJn=3mELZuot_K3{n8iyx{^ytVC zHzNI6B62y|YPz_j;+}n0^Yzi%t9{rji=%Nm625cQ^&h^9ebxl&6+klq6v3|SPLEZ7 zvA-+c7%2TnN|+3Pn>(HZkoO+^U9{?RmCaqhVlVP_eX%kov#hFK6$%zplN?O`BF(A1 z1O_22ojH=}KIQeA=md+2E2+>7eAm{VIOf-Vn)*vHei4=Ez>$#xq$hY*xV&Wy9($OF zm785OuArrHk@(RU>2dEKtyb}M-Mfa7{>{y!{;&v{fG{&=sTcwYpvPPNf>RBOr94_( z7OsA_IzZKK+`K7s_{-zS`moG%<(GwUM$l_yg$k5j;Mn&vvND_nN9Yu{S@a8c`iEl& zcC!*6QRU9DM;7_Ute+{x#=@Q-;k3v6?RwvkSG%4*qqqQ3lRTX$TpBn$c1Q-Y@R4~B zl#A{2r}McLK(`$^=(1c%LK2Tfqs^Ic0+dYm4B~2Dq{;ek(p0EbqfJ2P37m(5lu+w8 zGYFh(QU5cXr~hZz^|7@*H|Rr#Jza(ZO3K%lW zjJNL5Q7xW)yCh!N54(^m>!WpiHw_eYWzcvRJRiE1%>iPA=y&lbm?#A^&yC)D5~lEL zw_7qA!aqH+$mJBOzV7?QQc_z=C5&uwE4}xE(VD=IP<{(DE4u-^+tBeW=?m$$jnO9k z!XP3HF!Q|+&rzru2jd}KC6lXxG%lioW=@jgOUa6zpsxGkRGVuE6yIJPk* zif(K78EfV@?&+FB>PuW*LiF@zMR=*6xRrOCy?6`VP2pejGU9jnm~3050q?L|lPm*+ zc3u!K|8!q)f-B)9vW332VgJJo77Cd2ASGMNE9Kaid4)e zw>r!V)03Q_B3eK}(J@8mww4WRsOS~=4am&c{U96BnMp9QJ!CEqH^*l{>oh-RkLPGx z`LNv6N5)Rym){9{6=!?2i?O4 zMB6jg?+-Q~1I{6)tjr}$VH$i)xgReIYCbPmU0ztuT6g~OZTLNdXh}*3>K&3WG~1gPTgZKSyzFI4E1${S8r?YM0DAWj?2 zc%Xk+Z=oLkJ)R~DVW&)2%qINJQzKk$bOGYU@$`MSlhxn^rUwB-8au1VYkd!r?93su z*m|X$FV8D(-69eV=x(}eV7Ix~?aDmAd~(oZ2#9~SlNLLMzQc9yni4Z+Vb$GU0-iBA z7JERyyZiLAtHW3xJ0-naU#vg^qYGf1S?5FIZ#|^Y2EG=->F9pszzDd_L^=GE zXJQDQVxg88^eX3JL>$RaMm zxp+9+UnZ1irrO?pn>{AQJ0-C|nc$szk2n<91j`yn-Ka@4YUA3Lc5-etLe4+4{~J69 zp4vkCrcT2R;Qf2_nsB@@0@Jv}_NNbd>pxDrzZvU|Ano_WI5@4{7YM?@$PB<0RE ziQsFZj!#a;8q;N=X1lZ<>!EdK%mU!4<#LnVVl1wIkCvA4bAnrDp>?cxc78pfmiB7c z6j<}*bhtx2-rFO&Ps3ne4ZYj#L2ev4#AY!)L;kITJo(G$p^9RsbP%FJOIvJ%&buD| zsbfK6r`Dj#H-6>NaE_Ud#d$`_gsu|nS2Nozi#<`Fy=<|>&Q|JM)3SUvx84IP?s_STa^7QFTBWIPS{-9%6Qup())kT)_-x52GKQAm> z*QQ79U-np(o~Y{>srIT`#XSYgi=M(`2NnmHG}8&VQ4-9Xh{$&3UqCXfjnZp8M?>^) z>@4{Qmjbi?%HP&svQ9qCcWbD1xtg?~UMmFPu()6orvc(7yuNs?}d z0~wF&k`%hCjMr$?8$w_`%1rAs-YE?V@&Kv{4O>ps|J`u5%3g*&j(jz(A!fI*joz zhRJ1d-$Pbshg}iv2+n6iJ*lKB=cGpfoMRax2^*G!Wh=U2Xuj)s*!wkb_sE!L%wI`n zTtsta?R2bry@r@bOyU3V$e*qgCM+2`8L`Tlm@wvlA7_1=$a;QBPi3n07h{dF?*>J_ zcWMa(p`8*_FKobsPN+xzqm&%7W!xqtm^=$h>7T*@Bni@wFibk5V678l?& zXga;moB==c%bXFy9Kh*B6135of&_l(fz!Aro5-t84nI$*pY+_#V;)JhX5dVn*}Ng~ z;xu(lNxK`PnI-aIZ|!HI-O8KRCE=>;0#C(Cj4C8dU-Tq(1n!>Z?`~8lWv_E;uB=qt z=;A3~)H2XmrY~tc=0B0RB(Su( z38Cr)Vwao?+2f>plURwDMUDzVlZ`wnc_ab`ckFsQ7ttPAOFO1x?ecM#ihQefq3 zF;nWIJ_ND@(tJCCkzrj*kQ`IEqsgHE?ToS_mPT zZ}3Vt^QOlC&WnVB zS>QA<2cv#-b8{DKHa%1{H7~_;8cNlrGZWoZ`On3x580O&92qa^abJ7hu!pLkybi3f za^7N8XC}EFY$iW>K7TQBUxPXe6=;~k*PI)`L$)RM!S-#4ALCEUsI#F_>7us< z%EziSe3G|Xg@n!N#r=6s%71luS_u1)P?)Dkq#wy*t2rgPtB|LRBc(ft4t8& zyCVIv8_yV)YUjQyaMioII+u|Wz105ip{N}3XU>;r@=VIysgeM(V3p?ddqB%nQZnZz zYn3SV_8lka#bEgzoY@}$x00oa7-x}^tEzLnf;K2~6i*&py=+?MqCWUnQK)Oa#@YO0 z=MJSQzd2^f$8R^gbBf(W#WR1^|jP) zPBujOBSFw7B)4}2ZgnvN_m`j6=|)ExK_vy-N}{EHzCWG7L24XlQd^9---F1&YzaBd z94j^se&Pn}J`ldYew_+|LN1KD@ra6c+(9!@ue9dkEbsfjtO}3gG)!ge$DDgNWZd_p zxu7?#97OP{!uCn>uN-HRDTRJ@EkB&t_f7hf*zt5kME!&R(qjHH3xGjis->Hj{=fBV zO>TtGl!D>g_rNen^!1)I$7E$%eu)F!1TuOeg}{6mT0)L(nXc=6_r%te2ts!N8&=x^ zz%Ly8&jl*|{;gvq)7QMn>o^ljLu*$3sW9a9_cC}$p+=4sYQI6}DaoZ2=b#vur3l7j zTE80eJ=)~vlHm1 zvC(DGMn5)Zwc0zLfB_5ID@N~HQn5)!Kc=s8Is$i_gzv4$WDy5dl|ZwCCCS^sVH<$$ zldmw}bQ)5EOI4vzM_5=Qtn@LZ342;54 zfd=Tu9Ot>`lIF&BaV5kQwb2Ceu2_YINGJeq6i!jHX=$9u*caZc@>do_@lg4i&?zu4 zE4iF(3u4~O@S05p=oSqPdQ&fSA(Hg}d^3vr2_S=kQc@6JFChjU!|6ffDf#baL!!ijB7usY;DiTIif^=@g_|3&mi(bIj44pdNo#O z>TC*+fUo~KC`|>8yiS=P>L!W@khyEZg+ob#wyPydE+YwQd3%f!&-h^y`_@_sl}*u~ z01dIxTJ8{@z6Q(xe&)Nxp8d!Yr7^I55EZ1(^?$+x{OfM=H*fOa^wB4E{|?9PkA$H_BFv|}(PN=t#y6E4on;HG4E%Q# zE##&SYrVPzSXxQIH(pm^VIHkabNTD@YE0>Y372EM+&{SuOJypiQO0YYH}0`!Ia6S? z%C8$HGm0 zQLW>!`rfq7+Yl?pUzMPB4G`O_u@hSMP}$6^6)P8+eP6LUdELLofBQgmHAQ@9RLb~x z8t!alS4SsJCE%VpbQzij0e9=zFJIOF?NYzG?CY{`%lO2TN-#qEy2!WJG#CV%w{~TtvHM@`Bp4!3r(T%=nmQ*d>riuT=6AUJ95KycbeT<% zN=I}$8{i!2WqoPe(hmpG^T^MiAB^yGluXuUhD+FN>TfrBuV?i!)II_7)t4PhCa`#m zh;Zw2VMIbbc&QrmZlU>)g{nJ$m2WtP5WCLiLyXlK&V z|0qzrAu7bn$zc=_v?*HUaJVr-5qt=cRIF6IH?y5Oq6QBcL`S8d2T(ClKTfMeKC^4V zA{z~AbD2NiQRhXNP3e^wVECKAi)kL92jD{+Y0%N;A8HI*z#nJ*lb9J!CibglJ74$N z8{?AT5ZuUMqIo&}BSUUs;rJH34XawlQR(?iC8^ij-$Z{zW_cc(H0uFhZkZaB#z_X$ zs5e%?$hKwE1430zkJOKumD>375$aeiydNJ?{Sx2k0XrFW3LWBtMakR}(TjJLy#r zq=KFmYW0c zMTT?j0qs>@qu0veiFaIFmNRg``0Tm3ef9D#Fuw{)+fTONuUJ_Tq-A8}dGv03Yfr0Z z_b$75XtsKKc4y?(%H|fS)ZYzN%bfREKi=wo{q|{Q706WJ%qQ1=mcBhtvCTiljo{PW z!Q7iWC3)FQ{C9r3-W`mmirg#F&Cdf12nNV@hyPyhs7rPQ{__GkSD0FsAV-wqPy!{K z!2K6sh{Yo8Xu$wj4giT9fn4HVKiCrWQZx$Eqyi&fg@l+;#NE;?U;$ISWSvU=q-1F@ z7I4gB0~0SZtFR%*XM*L$>)nzU@nN5mr;1E|eCPOqKf& zO$!jcG+W`-T#52#ms1B)AaI_X9Vs*Q+x_D_**OCn2lmx(Wr&yG_#2N^#E4v}fiGwV z3^JVXgPuap`Tlb-uP7&b>DD>Lcg&o}`Dofbqf{-Ii3hp~cnENF8@C(>2$o2fo5Ko@ zuiy3T@Vzi4m-P*7M!V+zmA`4%{{;MYMDueNNxsi*OVEgC#bFNV_;!S+dCE1y1{P7j z3$%?nrsN+8^p(QBNwN}{fa$ z@ZZfnSO=?1R(_qfKYRX4IsP_Rv#LR(*F5&;2K@Be2w~*6;zPE5k|!|TnZn%P1KCPh zw@ClmPIYvVUQXnS5grA@t?qt#4z|tYf;n}<=B_2UoagRuHwh*$Aj`}b$Xgi}K7mnO z1tf98RQu+a0-Aizr6WqP(&f$dM-r7!NSf%(54?WNMAFP0@1UiE_Rlg&xqg~+`92cD zG#RmRFpws$0USwmSp%RLe(A8^5|MOUXPbG`z{T7?gV!%J6rS<+7@t`2@Vs+WEM~C3 z!_65MS)f&9l-K^y%2pZ(RV%-O!oLlYC@FR6G(X_fEj9W`Fx>~N&tiT|txd+G7ciKI zfR+EEmqx!}-f2Fg*u8-ZwZmSER_&qZeHV)fenXIplwlMe%5NQw~vnMP+XwSNhrZ9 z5=Lgw_ZBMn2u>e4>H|SSvT#p;%^MIIPkJX`4wrhAd1*bV(VpbQW9ePta@}n7j2p5| zEAzwFV26M~r@}4UtDyO2$e1UL(|ke|`_k-4yMx^UL_fS%=dA6G@*CRe_)qtSgr0X2 z>5>r*-UiM>!jSCsNJ*++9x)&?oZNnfg{YE~liQmG&TVcg0(I^d#HAw`qA|xm+gx_- z&GxU^kd>l|ong!cs!y^ZH=<=9QKo!m@moMcvUA`3=Z%1+ zp^Doa1*#M0>5qqR-qXO<_eXnWVvKzTfnoNcsbBH(ZJj1{wWE!chqta5d~dB^4yVc# zSiChV6%pbFwpGZ^SY9XV0wb4vZJ|b+YB)J5JPd4M+f<;MS1OBQ;FI@~#aAbvPVdu^ zkdP42;;8$NO_a;BzhXzU5i6XM zAL%G&nMbGq*keaYV@9g=iF^j&0oL7Nqx$Y-(quTsj+Bk|L_bzb5!Tx=@J2yYH*)Yb zj*q~~q-xt`lzq}@m4<#Hsvw=h{-L~Js_J(Ge{}{ba2ao|@6}6Uv81Z%#?7_58 zIJ0iwJfF?E_T|mXH?W(?iH%WQk&j=x?e{jr@~4nxU%&KpKkv(06}N6aQ+)UtizMgz z9P{k73{@pr729`*Z6YqIZ~4S8)ORT2-aGzYzqvTm5`DH38s0JhbMYV$JVC1Y;qh}sv#ueADc-NskRB~VD9HDl~ zx;QcFBwX~s-<7fMcm4O&is3CPwS>oi*>>I82lbW%fsaOsV zn*h53bjv97HC;7OLwKOOr$Ik4^!L^bR>yNv7Oa*#-$mO@Z1M)TEiKo~6Icl%9dN@H zm=!C3%|^%X7yImIDdc)QTR{tc%w#P!9=)Ua{Kj}y;zXH538g41sDMke0IpG$z+1D7 zmdEyaS^k*ZF)uaZ!haHPkIUIdnIr4xl<`-Hhz4VT?XnFl=SUyE#PM6LtB+$>nCtFc zk=B%7>9AYxN$Z4OkL9VQ*aX=Du;NbI8u>O-?U!nJmM(qXh-O-$i(GF*TH~)dR8soy zxcy592O+^1OdDqwgBnI(Q|$TpZ7iGj3VYBoc%szM&_XyjXvVv1kxrLhMqihX^LTyUaQm>gAx_fsl{_uy-zZ{pC4?tHn9k|-ltqM4IIlIE>YC4dOxlfup?cCiraSR(RXB7p0QbWO@d3{oL%e}&Z! zGdZ>Q*OzD4ESUWE?Z}UN9f8_4F`yxQeLl^4VGhMo-;=A_rDYBpVp@SC9ayp{f{R~{ z^BhI+@5`L8^LY#xa78u2A*3&|XPjlS$|xx-F%wma6ciMg#>bcF5PFk!E|8L`YVW=t zH&P1W&v_QY`7A9sr93rXR9sNd>fvzEQ(5g&LI{`^%-W{GE}8|LWE6Q?$Zq{;QWbMv zAn)i}skn{tqlDV6sI-5ekG#0QF*Rb1tZOMx-*5V{C#%6sZ`0nyX9sdd4$f4Ozucd4V_kmP&i?Dv%a&F#9QcJE9D& z;o$a4tZ&32@{<ZNTW_~-Mx1bpw%xoYZ}X;cjJ}suv4ts`341LuxTq{={&6w z-n`nUDDT>Rx4fkpt+f+acGflTKd+z#JIIRQiX1bW(*=i!;-gmcGNVBn~(Lm zAP`Zn{tLOzpQXRr{knTsIVk(H(^PF9LbAkz!8UV{USM1)d=>_sJIO1a<)@7Jazy$q zbt=vMhk>}?fmWVl67EocyNj&F?EGfHLH}LYksY!Z6>q&-@|*UT?$Kf{YlSmxOf-d?crUW&mA1ek-G0$R zCWWjcPbH2ksoEK*X)HX>QP>6^HT0(6>)8EVpzx4v#3FjRH(BM+x)7p4u(|XKr=wDW z)70IOB|Mv~%k*H3nRnIoxR0zIdl;8jp{>*Y_^dp+tl^ta11_S6w2i)>dsXPxj zd)5q013Z5KZbNvJ7;z}gXuREgg)kGZU4R8>yXX&3 zs%WWx&z)Ej6MErVPePwDyCiqVI+Vi}yjFuL_mjNHe75nL4X+ z!pax0hRr9hu0x6XcxDuX4$#jEG>_Y3rlfcOkm@t^q6xV@Mu+MIYhUcU`%y_t7isOE z>V_1x+Vp+8T_tmp`e)XfD6{nvC!6NaE7o+hof-_|Q?kx@VoylqsGNnupN%2%;Lq1! zbJgG*FfUb`8r+t$S$`j-f@Sk7zreDcef50U=vV?(e6a$M@kuGt27ISJliP@)T`?1} z92&Bx#pJ4_Bdne^KJt`%;>4kQP914=NC#$@m2w5EX_tX&v_njTL!Fc#URL$chc5kg z2=$Ex^CuJf9xWfE^KfSa={ZNAS}2^OD1t_VO{Byej|s(ZP^uYpRfm5e8!Lcp9N#<6 zGW2}D#XlUHbfhRY>LRz+0;5&eEHSg^fv!wWEC@I z&gW)T@8v}mJ&Ry+dK_dcXkQPqh{;vlTXk)I8`aY^QE=AVmfpzjzLnhfVmOt*45vg@cQ-sHiDt7 z8hW$(`9L6xMuvsFb4N5Y-xg+0?WCp6{;p1@rs32Y8tyh%Gu)5=bS;4C$j|doji#(7 zLy&ek@J0a0BmxCkcyC(L_6o5^a;2bV!P-a^AQ^hNA2`&ZPB}$fXX;WszP;3rrR@&uckM=ZcozJ9i`S_}(e|9xgx&=NDagfmR|YaU)r3 zXm{JdJd`BVeE>uKY5RTMiCRod?6JySdaf4a6#uew$@IbUFS_FpdEk&`;r5@tzn}J(r}iP| z&=lM2^I6RIl}*_WCdPF|b}ZCQD8A)n^+(2h8nk8G+6T ztNh<27`IvsV0b$Q2y6~(Q*Y_CGdYG{h^IsHTVG}5EY^_RtvKB~sHzN@q7szdem!s1 zIT*suUK8RtQLT%7VI4UE=@yT3AK&2dJ#NkK-LEKlrZ%Vv)#2fWBz}kU+{;pAL0G!$U9P{l%ph$&X3fJIB|!oDYzluX@OMtGPiMd z+~F<>MH)HQuL~ZLZw}hh}BcT`zU{O!Z5OppGk?&)aJT1Fn0!=3rfb-v-g4@Cl%*cg= zLFm(#1q?QVZ7v&E)HC@-IrP(Cte8JBF>yo~3UwkXv>R`T)N!2+RaOY@j5m!$7 ziw8$h^o4*d!tSgPGwIBLp@T zCiM4KczR5;w6C`*Ka;#+_!IBRX1BM;=m=ZP;nPXtS(I~QVYfr+z~SWb)w9B19i{yQFxTX5Gr1#t!+X@ieMvljVuwWyuhWve^PUThR^Ir)cIZp8na;#+(!$+a8wc^r})lzy~2g5!4dVky=RsbJP65pnMBzE*-ZF*-w1U4sbcS(iVkp5faa+c(} z-&^4YH`g~k+3j2Q5ZBf$VanMwXsg&Np)b!bws;W^QaBHFE&w=3ej9b$6C71)KL=Jb zTZtFq1b-;YKYL|b2RdP790K`;_SHy$+Yj;l?l3QgzSGfPGv+S!!)DH3G$h?CJ*>LX zBUUrXd){fo2){Y59BWX$F%tP;?_am13(O@f$$R)ja-+^xdHJ2Xcbc|okojl}@^-)s zOA9uFi;OxJ7C7_BcW04n$>)(S7J9XqFSt!1jG1SCKz1q}F@PG7#kFnR7-+e;lsQ{IZSYsE?Uo9l0J4rC4ky1IW<+M z2;15-?ft46@}GDl;L`^Sc5l$v^fEQWg=$~DZiTInCH_UZ5E1otIbnO~=b-F^qvvVc zw43+uqnBv>h~yUBrpSj|USR5}2nl+ORr7J?rH}cb@drDe9@ja$Zw+-QCw^mVYGDP1 zubpH-<~I9c%aHl0fV*eNZs+xGI_`uXS=#}j#h(S7zI)rUxWt=r*)dlPtGtSKHz#$o zbF$a{h=^{zpV~+i{st^YUkDB2`ea2hEhXYSR23(gxPGl-Bar%jA2Y2(sibXR#rzwY}GYe ztn>25lgS=FzUGXyTB2SbHN2DNTN`9I($hbX$j&gXg5tXolkn*|{Re#mPI$2~x3r{p z93RsY`VuWeU*Ag4c~T{3gc+$P+6EzcH8HN!7psvFQz@XNp&WxZgQmfHi#%Uv5@NQt zWQzTEPSx)EjKbX1cj(@tPzor#l>s<)I|hWF-=6c&fuiH%vxac*5XZ@S!{Om4z0kO6 z)(JD_ZsZ)S(&FUNM7eX0opyBkOs;lfR1Nce3Zl4woz*$|k09#K5Pj?b5lr|(gHH$` z`@E1a=*B;7&rA8D!+qnum2e_X>+T9awRNl##~Q+^W4FR7tCmwHt6f?WmSqkfY&8Ft z7jJfv-Px_WcFYsqvJ++EvoCf-*y?eP@M=n~$|6$KEHQYdsV5}pShfjir|(>9a@^Uz ze+>1RZWu75Fi$>A@`w93mzSqx}Sbd!f+wxWjsD1st8%5=QpaGOKFl*$iAzXDTK>h}IZmnHSFcI4Z)xv1cP#q!%! z@c?8_G~2!P$L>i@R0QOcUp+--K&WmQC|GNw{PhEqu~nXH(^{wQGa2h<;qAinIfeqZ z<0jfNYoBg^hDMiGN(!pTWQgl`cXz86{I2ANY?Wc=FVawndzSC6P8siS%y5IvaMo=( zlg6`@btbm~irRNMLo_!37or4*fg>D7{re#sRiEp{R@0L2Fdf6rh;UF!q7a7+NGmvNF7JrJH>fuqj#v2QEPbfqk^v$~esMl7TNl-IZ zJ71xK=#N2GxNCg$^*yY#KeSg``@kj*4gJZ%o(ssMD_zqy#*vYcxn5|!rF&EoFP^@a zzPSXrUw}>31|q)LaSaz~Xeg;@P~PC_>+k*u9vM~XP+zr~Ih5t&$BZE+a`b(woYVj% z+b0ql`tVPO2?~{&URq4d72n^?D9sLzcT8Lz8Lp|YVhJ$D_)(2Pq$_<|3j7$H($KvR z&eDyOJ-miZRSUDYbbbtcuQX-duLqwVqzfJ`HRReg)G=W5!Jh=~q$77UZ^k(cVRcZ( z7|ieLD)n0QnSX_WnK&T~NdF0gOPp4nmYHAN@L7i^K0opWEKmJuIC(hvL@4bMwIws< z&2936V~yHWEO+SM(=VFe+MX|rckk$dOzk9ms~7X#?k-|$FwI;R=~=!I^f4S2IF(+P zD&Y9ZU(Ce}EQ(5)Npe4=X+i!<^{k(dSWa^pFm}H{v2aYbQMc@nJwU^#>~Fo#;~UV= z2vXQ=`xK;JF8kHlml^o&w^CAjPBe_u^&a^P=R(!P_s|?cvYY;rV)fpAe!hU+9ld_H zr>`rXY$I^=^=WCt)?IBZVEvP4KPW~saorAil2hn9>>D{H#5*}Rv2d~o7Fa_YcgVv4ckb{YsuKPp?FOtM25%GWp@#$4To z<6CUP(p%;rLDgtp(0a0(_a7QPdPmP^slI=bF_`r}=yZ!N;;jRBNEqXSx!|uV4V#{2 zK)Hv>1D;}u3CZ|U)D?d54@~V&O=^Msy8Vb6`=E*N35D3p(r)_xPn6MtLGae&2ak~_ zOALp8t5+t{)13U4(5b0B5vR;FK8s7q8KbYy?Rd0hDOmSrg(qA0h&sif@jJy_8Qu#Y z-FsgK=ZUt~Ed{cwh&l^pwb7Nr??21Q>61`q!Otl&Cv2Ms30t&lhcmIx3=c1aY{Fwn z91zJ~0PlTgXBSxPf#k~H?LCHozgsTl(=^aC<8$%f3MGGBs1bBD^!hk#cZ2t&(dq!P zEx!7@y$@a4yt9YcKF-hhjwLZ8XvXJQIu!vjiQJWbeChabPf8?KS;f9eVc^k;Q-~%7avtknI68mN zN8ej~Iv}%WPCzGIii(OopUF-)%&#QxhaF@D!Jc*p!Df|51fQv;`!Co{)Ot19O$}Ov zKkkUKt90z5Fl>C$aA-P&q^wC)csmXU;@EJN4|T(Ow+iSbTEdUaqON-tzZ3VZHZ_k8 zk~woNoEP`EsAW54 z^Wo-BnfyQh0En*uK=e>4=q*=vu*8-a8oDFj%rCZm40fG39xGbh#6!E{P)+mw%I)G{ z(!px?tiK@dP9V63B61LeJKZFDK5?=pEG ze(AtFb^FM^facD|01mCEw6S`4uxGPH+H@%ZmqRYBUVq{Ta9?}ldjY_l^!@HVq8HxP zXEI$5hB6B)FgeI+g+wY7M-V8hbQn|_bsBK&Ko$nkYn@dnLVW#IOF~8={Q7W4f5+#GyU0e5+7qUXxalJ_U+%9s$d-Ia^~>;)hYkeL!@ z)U>CX9dfg?=O~8G)}J(zU|FW;8*TBt+#)Ust3F6;>XX9u8|d;ME*i&8)e)5E`bV$g z55gV$r`c)xr4hRe%R+~Jq6NwLxx!!vCJp$m?ixB@UJ7-NMlLm#sn&r%DpGp4*Tw>4L9cpiM=U z0Kg5382CJON5##p!i1m@wqK?P|35(vQO31Sq&)pydE`n;>r#(#@h;bb%BLQ#F1s%b zwJ+>eX#k)Yo0#ZwwzyFvtvc}s*{1Jk++QLAFq{J6kAnf>QVG>4R>{;v&4+WyTAclm z<>zzm|e>MxeZk7K66O!(o{(V&%}8oEV1E#k z7M=8NX58APHc`|wgkgWfva{f~EnfIZ8e4S<yS2eJ?>K~knUH)4hvy!%bi^a(uiM&n*fIdSM( z1R#IF!`I0-r!5p2?-GRG)zvSP@cd^wELvaoiv_?48WJe7p?b^I7zE`CZ4C7X5xHMy2hVz^lpyEWM z-$36zeG0pBK2(lX>bnC=b?P87QF6?b`iK4R|Di?A$f|!T?30d>oeNv8NkFHTt)s>p z(%{djCmhu7-tF};MBEIBwvheg!k)I3Skh5vWGh_>iG;b(>J%xp>sZKb!#(=bZ`+SI)YzAQ(1#s0agW;C<=01Kapg_tc-9|i6B=SDe; z0_0h^VWZAQ!2F)g1==;u4v7V~rdlTjQcjnk!=UYvLftV^ijeTYQgzo%O&53g={7Av z&~xv;VTsvuhMh){f|(_`-$0BJyf2mSjhRa782XUqvGR;*%^+L~nFu(&036FrI&<$V zQ`BI3;GArw-TcyrtX4oVqWllj{J|j4l1H9|FbRb&U`p8Tuz$jnffH>3M3y0cP!_q? zTKUK-Q$TwJv7FQYPc*xQ?VP7QQV_IRLqUv6%Q^07X3EmXR4a(=f8K7kAanCa8$%^8 z4Q_?9hma(o>7%fnTK|-Z!DbnpZ;O6GqV8kSlX?(BlEyzl+) zclUYJbzx`bf9A}|-#KGK-6N5brfC`r0vo-FbdcX$KH{*vgcuN6OEMVhqb&3sInPyG z&_#uRw3{K;{uU@-Y-^)LyI5^%nX;$Sa>a9TjF8>wJMu6PHITi+$s*kA=~)6)DOa_v zb@E!&9{xhyg2~H_fu{)D~R9GG1ATEUQlvx0XkV)Xzhek2Qi9?A^jS_=*Em~_u3q01qy?Cu_)y4Z8Lcu6iB`~&5l ziV?19Ne{|KtTPyZYVAWRjEIzshIGb}*br=6ALe(79Nd!vAEe7_d9W!6mK9CN@XkDOX$(*JH|F_{&sSd@8o+ZRTF=bQ=Ar zj_(;snpdUMbq!m%Q{D1#b+gbI<+@itPc%I|QNQe3;@Nn4pwg|(URIVzG}1_9ACm61 zld!ei^@ytK(?&;iStmu%z9POxOjfLq8kN^sLW+tXE;CQou*o*Cyg;&_F<2t8BGjd~UXOjsBkEc4F zrW7QVI48E@sF2ys#dlV}LLb3iuF?2TJCU9bh;D0VW0#;RvlvR3w(^utQU%^jHfsb` zO=X2?J`3Cwy_phh)Y zdKQvGMDCyycpxU^3!)&fJk=smq`09c=TNu=ixVR~eRw04b62$_$bt;^Ea;oLIlO*J z8SC0?w)!jd2W)y0#`-BrBH90+fYI?Wxc>lsJ%jh`gX9k&=iF0%G=3SQ$s(g*6hM{n z%{P0AFvM|j&7cIaX_zwl=UP4jgD`X}^{&h8Vr^_9O3Bd^y0DO+nj>@Xy{KvcVb)+= zlIzk2Q>xYD00tuvMe%aprBSq;7n@M*9*YX`+ zERyQW(J*Tk5XuYK3+IBA8+5Cql|Y8Qm%mANh}^2t`KTnoEl`AeTt zL@n^Dioo4<9MYq<+SF~s_UJoYqNr-=bgEYNo1VM}hSli2EjkR~V&5R8k zP%QmVlzI*~#=(;J#D10d}z$S(8FO!?j7m#Pj(z*r%ax^h>ifo zf*W4W`im(}0YTP1KBgYF!bwx<#s+QRelkY7oSQG{T6r+lt{PzeQb#XE3$<0-0%=+v zERB$GMMSm;R}{Y3H0*}yW_l+Cd}4Lkx=M6Q>C457>A3Z}eR&bnj>|3jz<@2uXh`bM zDV-}R6SJ`EIYd4Mp&ae}p%M2Lt7VsWBHOua(C5vSvQ@km2TvdBRG5gTr35)#m`8i0 zCbf%QG>=M+j0QIQ6NKd+6Og}Xjs*Kk%BIDbU$d2dlW&8Je?6Q?M*ErGNB4~hqe6fX zl3ERC4W#B*Dm5Q`u?VtwgS7_9bmD2k=N?N+Hi1Y@tEa5ATqxXXFZ<$M0h3iHkfw^Y zb#3GZ!M5jT?fD0wI)|?$98EWWvfNY349SKY*)QK7Dz%J4TSGG$i7ufBv%l}4%#eN* z^zIuUGg|HFJqUJ$l=#clDL@`im06RPO?c-m102$Zy1c}MvxkE=UfzU+a0&BgjfR!wr*dol5!}C> z*6$F)ey0RB^%})Lv$(^f%yxBmhA8T#t71#@CQc1A^)SyDg=9$XK&f(~ z^NzN9kwu(#KR>@Z>kVOz0BR+daxEUG&f6}}n>9IebVa+dC!xl_Wh9LLQAqs(m*o!@ z0=Z<_oaF{TkHt*M=X0McNPB7ZrW*B=yPGI6pex?~mjS`3|Dc>3U(a&Rm6WdJF`Li9 z5kx;#S1*mE;b3_1_&pVCeQ=I|Unv(vjR;<0 zA3Y~|PgHO4a}DL<>XdfbsL?1KjV$yNOLCrP*gQxHFh74~pj`L-F&5`OCOY#cz=n>q zq84^~O&TfJ4|5#{@WPdLk4mub{q?t#-b%wY!o($LTJNoplF`d1Dk@SUrmwIyN;n`)K>jf{sF7JD}%HN zpLWoI7q~U$JE!IE2 z*N_J&=;&CwPIp@j(iP|T@*h2J&iScn8GQ@)O_u{f0hLK_ zWrX(Fm5t4fR=3~jxoqB=N=kPP3}(9W5>}7=1MqoLGixAcjnz-cB4p5PrYP&ym?YXp zv^f?DbrvIC8 zR#VF8zyQ9U+o#^13jjaL6{t#ogqN-t_f151HBS17B$Y?`(RGmA;Xk)(VwAvKA1sig zk|KsB2Ac#pXv-s=i|D*>;$#V-2F5;V`d1pWk-TlwFxk3rs{4@-6<%kk`ADHGi1spMtLA-dr6`L|v1mu4DmcNNHY_H5SXf!0Zz(2J_;yHs z+!rUQgH5+k0YF4$J3d=zX}W>ioa>a;AoRc_{8(OI3J{^X=&USAfcb6hC;b5Z$30aW zsqjKl1I3H6ENiLJv!YQ5-k=BvEpsLqEJb|?N!-P24SNNen%W|;aks<#8n(AVHqws? zuoJUpq4>41YpFYDgaO0{3@k>}1@|HWm#)fZ>nB?aNKoC`s6cr>TtnevCKmaFZY@Wh z6Nz@9c_u%LFq+zLEi^Mq2S&?N1qH#~{8ak z*RyV`0$86*hE-1F+ixzJG5e;n6?KWf=d!Oy{BMCe=j;Eb38zsq#EUm?j2RI0Daene z>d)Du*<#TQiSe}_13h?a#PwW&U?0WZ;k)Rlk@ru@f-(a6D{(I9|BW zbw=Zj6)77ofk=lAA(r<(=rA3$)YcMeIl^_9M>tL4@ADkfn8bZ`BEtn=hA3EQe=Xe- z56qDbN*K^Ns>DLGM%M1po-L*J;-SiDV+2G^M~C&DmpUVmE4Jg`JVQVH9_7l%!5S9< zIg~=<@7KD&`uOfY&F;%xqQZ-a!}iw^I>wR!;Pgd+xBzIN<=<2HD4-AOH_I5FCivQn8f3F(QO7?`{JWNKL?c^m{IQ zT}bc5(AdbyFFR+j#xDaiq&Zd@eiy1;4btA)pnska&#AdULQ)Yge}l^ls|eLxwL8Ffp`|IP0b07Bis~Gew?}8<#gf3fzFbYIBOlaVM#d}mdcKeb zGw6t5cF;Ra2VMj&(9@mbRy^`VLq-eQHF@ruB-IY0HKoT$PZ_kN40{d={rZx9uA+eQ z*QG4ntf_4{NuS4gI22nLy$QR2_-b;SXg5}k^m;-KF$pnoGiW^x3W9Y(C=t!22WHq< zkeVP0URYo25ZHrw`=)tjn{^A}e!-ND4I4`IhR35Jt(CzNRMf2>8ja5kdyc$9pHea7 zKO(FphQGhqsbPL1(X@#J2h%;g8(Awy^V|ELsW@jm}Y z@N>FeJu58$^`=+!Wwj^mv;E5Ovrqb;;=USSVU;m4v4rJnmcdF{hFaG@neAMXl7&By z&D9fUf@D^M(+sBaexj$nqj(MvRev$=i&w323{8m7`Lra#J|OSGPqF@yf*f;FP=`q;$#xNX3BuvAi0d-=)_aIv(xc}}X6bXa)L^ao+0YxgkI zq-XT+Fk?`kvNXFQ|K1tn^KC>P@Rzz7zymIH?G<2PVTeGpM2OA^EeAsixyA)7>vz?{ zdms?>7|pqvnW)x+6oB2W^FwdT_-$8<_DRsoKs963s;rhbcyHXW${eK^=Vc!Gjk*%F z*zU-DwaNk50JI1DgO$FNga5uQ%p+S%MTON&HJ|VM)wGn4XlVu2cIPT4#_G^2R;>fo z;7?RkN=;s!Z*|*V&`Vd5_iG!y7~#>4?lgwgk(vYdc#9GD3~D>XId14{o3XIm|0o|K z_-*|)soE|R5PSnldt^%`Gc=Sa4OA!Gy?5^kh=_i{#(EgJv7t)~aC{)8Al0{GZfE{F zI5>1mZUK}HGe7HmHj9HxXqR(=2=Flg4;SPi0JsmWqprAH{YNc>>UGX#Sy_36QdPFT zw(%vA^|Hlg7|dWNj~V2c0=4sft}d6bGw?TUDO{(ZxWmE0agB&VKN1_OIwhxAMq2u* ztaWvHxteX!&J#H~%d~c6aqySW*uL-XZJIvcpWqQa9>g31F_?k&oMPf7;=~Paw1G5R zf6;M3Ko_CAaOvQCT+IH?yGW*`H|mmJjEuQfvW)E%eFBGw+!_n3f3io`)sn#go`E))f`g>U3zdrGC z18k5Kz{nNLzm8JLb+4yjN;rR{hS0hG=2)7sggLOtgUe!*GGZ~j4I;&8*&M%f4I`e< zm4o`>ZGc1rieiG{ex{0UkfM2_Sfwz2&~gzNV&q|4W#w` zRdNjfT>$-c(f)zZk7c^Gi9%K(4bn6526NSRH?+=UIR|oGA-j34=L=#g-YIX&;iKpA zkhb^p+tE)^bo>-lcoQ6edU_*#9n=KGtOqV{7W|&if2ElXQ3dR$aT_JFg|>qAL%vI# zZ$3n>>dqu;D*nw3My@@exJg_*>kIoX4qA&0GxbQl<6;b7)nk&QAuMT z;z?<8Z5&`34jN&>1Ha{c0V!1B=Z0(2#m=!9z?Q=sw}&(x~E|VyE%sGl`~7_g_i)w(X4r z0ce%QaGy+wT1sQ`n0H^=>SS!bNVZ;KApE_YA2dNN_Z1ja*;a%~=i2mJ!^LQ-VQ3}R zPDwzt*ba)-4Eoz-7P`x#Qd1q*R)T>&a6tm3KG4PvkbNI5g*jz_DWzmLV)uu--hoP_ zw{r5Ru*NNW6UvoT(cNaTtm#f{o}2W;1s+jo8{v^c6b(a;XUBSqMJVA->%04V;lsEi(ak_vIx66h6N{dYj-{d zt4=TUfL~Uxwfqby2*4|6>nVxo&n*TY+qUR|^wvNk`T;r-Z9_fsGAcJwgz?~LP}nQ_ zOMYKC5F{QF`JcM>`_TD?+$r6$qf8$QkB~(++;bqm(5DgsKf_jZ)?X!)9XK92Iu$BF z9>5;>5^ilg1w_d#QfBJ=wbH`8&?hXR(5=Yme~}*-YcT+vK7*!DY3ViCxCCoTRiMI7 z`6fo~q8$JgdtiCr4kXRfR7(<8A@rY_nJL_jN>c!80{8L~-NiS{cjgGdG0S|Qr}vRr z<7-1W?&U?cT#d3qH+rR3a{8@0kbx&V1)ukd&ln^CZrLOT33>|yGkpDPDgsW@23q48 z%>~O009ZAEVuy-&xDD`ig0XK$c;a^H#1=UkJ$+op8alh0(7{qq={Dm=I}Z3Fu@097 z_!+*KB2(`tm@w?^5LK{Xkd{zVQ&6}KZnO?z7Rz;gg1J_`7hU0!0kf(Q7((gx+;;>#&t0qhE0 z!uaMbp5H}>#eh{Yoqe5)YG^^Tn~Z~X%l24$U12!J?5=l#)pGqBc&Z1amH9}qEV$Pu z&F(QBV23*!qjv$Tf3g_t*D5&aL5;Tf}_FZJ`_T`)0 z-xQaD%2&3*NXIJ-Le%s^Uw|Fx)$*b7wYyH0r5-}Y7zfWmLkScZ00$4~^fZu2>MF2v zovyV3S@%c31_1`=W#6h0#^N)$yb{wvP(#F+?~#9w7;R`Bzv{*jViR)?mx!t4ldo7) z!tKCOUJMybh+&E2HRnYnRN9BPB?zLEsqjG{S|Ah#X$FN3aL0jCgQ`8x?h?0v)N}`S z7&m$`5t?WHy-6`{C}!|mml&UU*#5x+oWmpEAhX6sG20%h312rQ6d5X839oV6kv7$M zdyxd#bUz7X!4qee)YaW4x;tFLr3m~H+8V{!)YN-{OEDkVX|7P6k}p7w13AEwg@2ud z^g3)&8J=34sstcbw8E|qQ9x9eaZ>;)JO<{!0je@c;e+n2XU~vvtDMV3gIDjJyK(Up z3B=H8g>jO;xo03N>ILwe2Fr_x*~isgacd)$Mo-+UoXfaDmyzUa%MsR_0W6^r5f-xu z!aJ^i?X&AOL>TY?gs5U<=#m1DE(vr=!AI&b:w541g+VjmB8JMk-v9}Kgrf?K! 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